1 PENGENALAN PHP PHP adalah PHP Hypertext Prepocessor, bahasa scripting yang diciptakan pertama kali oleh Rasmus Lerdorf. Bahasa ini, paling banyak di...
PENGENALAN PHP PHP adalah PHP Hypertext Prepocessor, bahasa scripting yang diciptakan pertama kali oleh Rasmus Lerdorf. Bahasa ini, paling banyak digunakan di dunia. PHP sangat powerfull untuk digunakan sebagai aplikasi web, karena dukungan built-in terhadap database yang menjadikan PHP semakin diminati.
Bentuk Dasar PHP
PHP parser membutuhkan suatu pengenalan yang membedakan dengan element lain, yang terdapat pada dokumen web kita. Mekanisme yang digunakan dalam PHP biasa disebut dengan “escaping to PHP”. Dalam penulisan tag PHP, terdapat empat cara penulisan yang dapat kita lakukan, yaitu :
t e N
1. default tag
a r d
2. short tag 3. script tag 4. ASP-style tag
By
n e H
1.1 default tag Default tag adalah tag yang paling banyak digunakan oleh para programmer PHP. Bentuk penulisan dari tag tersebut adalah :
Print “Hello, PHP is Great !”;
Page 1 / 46
http://www.hendra-jatnika.web.id
1.2 short tag Short tag adalah tag yang paling pendek dalam penulisan tag PHP. Bentuk penulisan dari tag tersebut adalah :
Print “Hello, PHP is Great !”;
1.3 script tag Bentuk penulisan dari tag ini adalah : <script languange=”php”> Print “Hello, PHP is Great !”;
1.4 ASP-style tag Bentuk penulisan dari tag ini adalah : <% %>
t e N
a r d
Print “Hello, PHP is Great !”;
By
n e H
Apabila kita akan menggunakan tag ini, maka sebelumnya kita harus mengaktifkan tag ini di dalam file konfigurasi php.ini (asp tags = ON).
Menyisipkan Kode PHP dalam kode HTML
Kelebihan lain dari PHP adalah kemampuannya dalam output dan input ditulis secara langsung berdampingan dengan bahasa pemrograman yang lain, seperti HTML dan Javascript.
Page 2 / 46
http://www.hendra-jatnika.web.id
Sebagai contoh : // contoh.php Contoh Program PHP is, PHP Hypertext Prepocessor !”; ?>
Komentar
Bentuk penulisan komentar dalam PHP ada bermacam-macam, antara lain : // komentar untuk satu baris # komentar untuk satu baris (shell-Style)
t e N
/* … */ komentar untuk banyak baris (C-Style)
a r d
n e H
Selanjutnya, silahkan anda coba kode di bawah ini dan simpan dengan ekstension “.php”, misalnya “coba.php” dan simpan di direktori kerja anda.
By
// coba.php
Untuk menjalankannya, kita dapat mulai membuka browser web menggunakan Mozilla, Konqueror, Netscape, atau dengan Internet Explorer. Kemudian arahkan alamat
pada
file
coba.php
yang
telah
kita
buat
tadi,
misal
:
http://localhost/coba.php, maka Anda akan mendapatkan tampilan browser yang berisikan parameter-parameter yang di-setting unutuk PHP yang kiata miliki. Interpeter PHP dalam mengeksekusi kode PHP pada sisi server (disebut serverside) dan berbeda dengan mesin maya Java yang mengeksekusi program pada sisi client (client-side).
Page 3 / 46
http://www.hendra-jatnika.web.id
Cobalah Anda ketikkan kode di bawah ini, lalu simpan dengan nama “coba1.php”. Panggil melalui browser, dan amati bagaimana hasilnya ! // coba1.php Contoh Program Hei, kapal asing ! Silahkan Identifikasikan diri Anda ! Ini adalah Kapal Federasi Planet USS Enterprise. ”; echo “Saya Kapiten, Kapiten Bandung Junior, Kapten Kapal !”; ?>
Pada setiap akhir perintah PHP selalu diakhiri dengan tanda titik-koma (;), seperti juga Perl dan C. Bagi seorang pemula, keharusan ini seringkali dilupakan
t e N
dan menjadi sebuah kesalahan umum terjadi. Programmer PHP dapat
a r d
menyisipkan komentar yang tidak akan dieksekusi oleh mesin PHP dengan dua cara, seperti contoh berikut :
By
?>
n e H
// ini adalah komentar satu baris /* kalau yang ini, komentar dalam banyak baris, yang baru akan selesai setelah diakhiri dengan */
Variabel
Variabel/peubah adalah bagaikan garam dan sayur dalam bahasa pemrograman, dan kabar baiknya PHP pun memilikinya. Variabel dapat dibayangkan sebagai sebuah tempat penyimpanan data bagi nilai numerik maupun non numerik, agar dapat digunakan pada bagian lain dari script program PHP. PHP mendukung berbagai jenis variabel, yaitu : o Integer (bilangan bulat) o Bilangan floating point (presisi tunggal, ganda)
Page 4 / 46
http://www.hendra-jatnika.web.id
o Boolean o Null (untuk variabel yang belum di-set) o String o Array o Object o Resource o Unknown Jika Anda terbiasa menggunakan bahasa C atau Pascal, maka Anda harus bersiap-siap kehilangan sebuah kewajiban, karena pada PHP Anda tidak perlu mendefinisikan/mendeklarasikan
terlebih
dahulu
jenis
variabel
sebelum
menggunakannya. PHP memiliki kepandaian untuk membedakan jenis variabel secara otomatis berdasarkan konteks yang sedang berlaku bagi variabel
t e N
tersebut.
a r d
Setiap variabel dalam PHP selalu dimulai dengan tanda dollar ($) dan harus
n e H
dimulai dengan huruf, dan dapat diikuti oleh huruf dan angka. Dengan demikian $warspeed, $impuls_speed, $LCAR, dan $Dilithium1 adalah contoh variabel yang valid.
By
Ingat ! Variabel dalam PHP peka terhadap perbedaan huruf kapital dan non kapital, yang berarti case-sensitive. Mari kita coba sedikit penggunaan variabel dalam PHP dengan contoh di bawah ini !
Page 5 / 46
http://www.hendra-jatnika.web.id
// coba2.php Contoh Program Hei, kapal asing ! Silahkan Identifikasikan diri Anda ! Ini adalah Kapal Federasi Planet USS Enterprise. Saya $nama_blk, $nama_dpn $nama_tgh $nama_blk, Kapten Kapal ! ?>
Berikut ini adalah contoh mengenai betapa luwesnya penggunaan variabel dalam PHP. Simpan kode ini dalam nama “coba3.php”.
a r d
n e H
// coba3.php
By
t e N
// kini $a adalah variabel jenis string echo “Nilai a adalah $a (string) ”; $a=55; // kini $a adalah variabel jenis integer echo “Nilai a berubah menjadi $a (integer) ”; $a=7.5;
?>
// kini $a adalah variabel jenis floating point echo “Nilai a sekarang menjadi $a (floating point) ”;
Page 6 / 46
http://www.hendra-jatnika.web.id
STRUKTUR KONTROL Pada bab ini, kita akan membahas tentang struktur kontrol dalam bahasa PHP. Struktur kontrol yang dimiliki PHP, hampir sama dengan bahasa pemrograman lain. Struktur kontrol yang merupakan pengatur aliran program, berbentuk rangkaian perintah yang harus ditulis untuk memenuhi beberapa keadaan yaitu : Mengulang suatu perintah jika terpenuhi suatu kondisi. Melanjutkan sebuah pernyataan bila kondisi terpenuhi. Memilih sebuah pilihan dari beberapa alternatif bila kondisi terpenuhi. 1. Pencabangan Operator if, else, dan elsif merupakan operator yang selalu anda temui dalam bahasa pemrograman apapun. Secara umum penggunaan operator ini adalah sebagai berikut : If (kondisi_pertama) { //maka, apabila kondisi_pertama terpenuhi semua yang //berada di sini akan dijalankan. } Elseif (kondisi_kedua) { //maka, apabila kondisi_kedua terpenuhi semua yang //berada di sini akan dijalankan. } Else (kondisi_ketiga) { //Jika kondisi_pertama dan kondisi_kedua tidak terpenuhi //maka perintah yang berada di sini yang akan dijalankan. }
t e N
a r d
By
n e H
Sebagai contoh, silahkan anda ketikkan beberapa script berikut ini ! contoh_1.php
?>
$a = 5; $b = 7; if ($a > $b) { echo "Nilai a lebih besar dari b !"; } else { echo "Nilai b lebih besar dari a !"; }
Page 7 / 46
http://www.hendra-jatnika.web.id
contoh_2.php Air dalam bentuk beku !"; } elseif ($suhu < 100) { echo "Air dalam bentuk cair !"; } else { echo "Air dalam bentuk gas !"; } ?>
2. Pengulangan Operator berikutnya yang akan banyak anda pakai adalah “for” dan “while”. Operator while akan berbentuk seperti berikut : while (kondisi) { //maka, apabila “kondisi” tetap dipenuhi, semua yang //berada di sini akan TERUS dijalankan. }
Page 8 / 46
http://www.hendra-jatnika.web.id
Contoh klasik penggunaan while adalah untuk menampilkan angka terus menerus hingga kondisi dalam perintah while tidak dipenuhi. Sebagai contoh, ketikkan script berikut ini !
?>
Pada contoh di atas, perintah echo akan terus dijalankan selama kondisi dalam while terpenuhi, yaitu selama $angka belum melebihi harga “10”. Sementara itu nilai $angka terus bertambah dengan perintah “$angka++;”, yang memiliki makna sama dengan perintah “$angka = $angka + 1;”. Perintah for digunakan untuk mengulangi perintah dengan jumlah pengulangan yang sudah diketahui. Untuk perintah for, bentuk umumnya adalah sebagai berikut :
t e N
a r d
for (expr1,expr2,expr3) { //perintah dalam blok for; }
By
n e H
Operator for akan terus menjalankan perintah yang berada dalam tanda { … } selama “expr2” terpenuhi. Sementara itu, “expr1” dijalankan hanya saat pertama operasi for berjalan, setelah itu sama sekali dilupakan. Sedang “expr3” akan selalu dijalankan pada setiap akhir loop. Ketiklah script berikut ini !
?>
for ($i=3;$i<=7;$i++) { echo " PERSIB Maung Bandung "; }
Page 9 / 46
http://www.hendra-jatnika.web.id
OPERATOR Operator adalah simbol yang digunakan untuk memanipulasi data, seperti penjumlahan dan pengurangan. Ada operator yang menggunakan satu operan dan ada pula yang menggunakan dua operan. Pada modul ini, operator dikelompokkan menjadi beberapa kategori, yaitu : 1. Operator Aritmatika Adalah operator yang berhubungan dengan fungsi matematika. Contoh
Operasi
Hasil
$a + $b
Penjumlahan
Jumlah dari $a dan $b
$a - $b
Pengurangan
$a dikurangi $b
$a * $b
Perkalian
Hasil kali $a dan $b
$a / $b
Pembagian
$a % $b
Modulus (sisa pembagian)
$a dibagi $b
aN
et
Sisa dari $a dibagi $b
r d n
Program berikut akan memberikan contoh penggunaan operator aritmatika ! Contoh_6.php
By
He
$x = 2; $x++; echo "$x "; // x bernilai 3 $x--; echo "$x "; // x bernilai 2 $x +=5; echo "$x ”; // x bernilai 7 $x -=3; echo "$x ”; // x bernilai 4 $x *=6; echo "$x ”; // x bernilai 24 $x /=4; echo "$x ”; // x bernilai 6 ?>
Page 10 / 46
http://www.hendra-jatnika.web.id
2. Operator String Hanya ada satu operator string dalam PHP, yaitu penggabungan (“.”). Perhatikan contoh berikut ! Contoh_7.php
?>
$a = "Hallo... "; //sekarang kita punya variabel a bertipe string $b = "Apa kabar ?"; $c = $a.$b; //ini cara menyambung string $d = "Selamat Pagi !!!"; echo $c.$d;
3. Operator Penugasan (Assignment) Operator penugasan dalam PHP adalah “=”. Artinya operan di sebelah kiri diisi dengan operan di sebelah kanan. 4. Operator Logika Operator logika akan membandingkan true dan false. Seperti bahasa C, PHP telah mendefinisikan FALSE dengan 0 dan TRUE dengan 1.
t e N
Operator
Operasi
ra
d n e
== !=
By
H
Sama dengan
Tidak sama dengan
<
Lebih kecil
>
Lebih besar
<=
Lebih kecil sama dengan
>=
Lebih besar sama dengan
AND &&
Logika And
OR ||
Logika Or
XOR
Logika XOR
!
Logika Not
Page 11 / 46
http://www.hendra-jatnika.web.id
AKSES FILE Pada modul ini akan dibahas beberapa fungsi yang akan digunakan untuk menyimpan data ke dalam suatu file (berkas) dan membaca data yang tersimpan dalam file (berkas) serta fungsi-fungsi yang berkaitan dengan pengelolaan file. Karena keterbatasan waktu dan ruang, dalam modul ini hanya dibahas fungsi-fungsi yang dianggap perlu jika anda ingin lebih jauh tentang pengelolaan file, anda dapt membaca manula PHP atau referensi lain yang bisa dijadikan pegangan. No 1. 2.
Mode R r+
3.
W
4.
w+
5.
A
6.
a+
7.
B
Tabel Mode Akses File Operasi Membaca file Membaca dan menulis ke dalam file, pointer di awal file Menulis, membuat file jika belum ada dan mengabaikan isi file sebelumnya. Menulis, membuat file jika belum ada dan mengabaikan isi file sebelumnya. Pointer di awal file. Menambah dan menyimpan isi file (append) pada End of File (eof), membuat file jika belum ada. Pointer di akhir file. Membaca dan menulis file, membuat file jika belum ada dan menambah isi file pada End of File (eof). Pointer di akhir file. Binary, digunakan agar file yang disimpan tidak dibedakan sebagai file teks atau biner.
t e N
a r d
By
n e H
Fungsi-fungsi untuk mengelola file (berkas) adalah sebagai berikut : fopen(namafile,mode) Berfungsi untuk membuka file. Sintaks : fopen(namafile,mode); Contoh : $fp = fopen(“coretan.txt”,“r”); $fp fopen data.txt r
: : : :
file handle. fungsi untuk membuka file dalam PHP. nama file, bisa dilengkapi dengan PATH. mode akses file.
Page 12 / 46
http://www.hendra-jatnika.web.id
fclose(file handle) Berfungsi untuk menutup file yang telah dibuka. Sintaks : fclose(file handle); Contoh : fclose($fp); fgets(file handle,jumlah data) Berfungsi untuk membaca data yang terdapat dalam file. Sintaks : fgets(file handle,jumlah data); Contoh : $data = fgets($fp,100); fputs(file handle,data) Berfungsi untuk menulis data ke dalam file. Sintaks : fputs(file handle,string output); Contoh : fputs($data,“Internet 2”); Keterangan di atas adalah penjelasan mengenai beberapa fungsi yang berkaitan dengan file (berkas), agar anda lebih paham mengenai pengelolaan file, berikut salah satu contoh sederhana. Silahkan anda kerjakan dan simpan dengan nama file file_01.php, tapi sebelum anda membuat file PHP-nya, anda buat terlebih dahulu file teks sederhana bernama coretan.txt. Agar isinya seragam dengan rekan-rekan yang lain, tuliskan sesuai dengan contoh di bawah ini !
t e N
a r d
n e H
Adalah suatu kenyataan bahwa manusia itu diciptakan berpasangan, saling bergantung satu sama lain, tak dapat dipisahkan. Manusia adalah malaikat bersayap satu, dan untuk terbang harus berpelukan. Jika anda menemukan hawamu, cintailah dia sepenuh hati. Tinggalkan semua ke-akuan dan nikmatilah semua yang ada pada dirinya, karena itu merupakan bagian dari hatimu.
By
Jika anda telah menyimpan file tersebut ke dalam direktori, anda lakukan langkah selanjutnya dengan menuliskan sintaks PHP di bawah ini : Akses File Sederhana
Membuka File coretan.txt
Page 13 / 46
http://www.hendra-jatnika.web.id
Kalau anda sudah selesai dengan file di atas, buka file tersebut pada browser anda ! Jangan lupa nama direktori kerja yang telah anda buat sebelumnya ! http://localhost/1201XXX/file_01.php Berikut contoh operasi untuk menuliskan ke dalam sebuah file, simpan dengan nama file_02.php ! Menulis ke dalam file
Tuliskan ke File !
orang
yang
echo “Ini teks yang akan di simpan ke file”; echo $kata; $data=fopen(“nasihat.txt”,“w+”); for (i=1;i<=5;i++); { fputs($data,$kata); } echo “”;
t e N
a r d
?>
n e H
Bagaimana hasilnya ? Berhasilkah ? Baiklah, kita coba lagi satu bentuk contoh yang berkaitan dengan pengecekan file dan pembacaan file.
By
Pengecekan File ”; $nasihat2=“nasihat.txt”; If (file_exists($nasihat2)) { $data=fopen($nasihat2,“r”); while(!feof($data)) { $isi=trim(fgets($data,255)); echo $isi; } } else echo “File tidak ditemukan !”;
?>
Page 14 / 46
http://www.hendra-jatnika.web.id
Jika sudah selesai, simpan file anda tersebut dengan nama file_03.php. Selamat menikmati ! Jadikan sesuatu itu menjadi menyenangkan agar segalanya dapat dinikmati !!!
Tampilan Contoh Program
1. file_01.php
t e N
a r d
2. file_02.php
By
n e H
Page 15 / 46
http://www.hendra-jatnika.web.id
3. file_03.php
t e N
a r d
By
n e H
Page 16 / 46
http://www.hendra-jatnika.web.id
MySQL Hallo ! Kita bertemu lagi pada pertemuan ke-4. Pada kesempatan ini, kita akan membahas Structured Query Languange (SQL) dilanjutkan dengan cara instalasi MySQL dan Koneksi MySQL dengan PHP. Structured Query Languange adalah suatu bahasa terstruktur yang dapat digunakan untuk berkomunikasi dengan database dalam mencari data yang diinginkan. Pada pertemuan kali ini, kita tidak akan terlalu banyak membahas SQL, karena kami rasa Anda telah mempelajarinya dalam mata kuliah SBD 1 dan SBD 2. Software SQL yang digunakan dalam praktikum kali ini adalah MySQL. Anda mungkin bertanya, kenapa harus menggunakan database MySQL ? Ada beberapa pertimbangan menggunakan database MySQL, yaitu : 1. MySQL mendukung banyak bahasa pemrograman seperti C, C++, Java, Perl, dan Pyton. Anda dapat menggunakan bahasa pemrograman tersebut sebagai interface dengan program MySQL. 2. MySQL merupakan metode yang sangat cepat dalam relasi antar tabel pada databasenya. Dengan menggunakan one-sweep multijoin, MySQL sangat efisien dalam mengelola informasi yang Anda minta yang berasal dari banyak tabel sekaligus. 3. MySQL telah sangat luas digunakan di dunia sehingga jika Anda mendapat masalah dalam menggunakan MySQL, Anda dapat bertanya kepada banyak orang yang siap membantu menyelesaikan masalah tersebut.
t e N
a r d
n e H
Instalasi MySQL Dalam memulai MySQL ada beberapa hal yang harus kita perhatikan. MySQL dapat berjalan di platform apa saja. Jika anda menggunakan platform Windows 98, terdapat 2 server berbeda yang dapat Anda gunakan yaitu :
By
mysqld mysqld-opt
Meng-compile perintah dengan debug yang penuh dan mencek alokasi memori secara otomatis. Optimized untuk Pentium processor.
Untuk memulai server mysqld, kita harus berada dalam mode DOS. Ketikkan perintah berikut ! C:\apache\mysql\bin\mysqld Untuk mematikan server MySQL, kita dapat menggunakan perintah : C:\apache\mysql\bin\mysqladmin –u root shutdown Nah, jika kita berada dalam platform Windows NT, 2000, atau XP, kita dapat menggunakan server mysqld-nt.
Page 17 / 46
http://www.hendra-jatnika.web.id
Masih di dalam mode DOS, Anda dapat ketikkan perintah berikut ! C:\apache\mysql\bin\mysqld-nt --install Anda dapat memulai server MySQL atau menghentikannya dengan dua perintah berikut ! NET START mysql NET STOP mysql Apabila semua sukses dilakukan maka kita sudah dapat memulai menggunakan MySQL, caranya ketikkan perintah berikut ! C:\apache\mysql\bin\mysql Maka akan tampilannya akan seperti ini ! C:\apache\mysql\bin>mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 to server version: 3.23.47-nt
t e N
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
a r d
mysql>
n e H
Untuk melihat database dalam MySQL, kita dapat menggunakan perintah berikut ini :
By
C:\apache\mysql\bin>mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 to server version: 3.23.47-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show databases; +------------+ | Database | +------------+ | Penjualan | | hospital | | identitas | | mahasiswa| | mhs | | mysql | | seminar | | seminar_it| | test | +------------+ 9 rows in set (0.00 sec) mysql>
Page 18 / 46
http://www.hendra-jatnika.web.id
Apabila kita akan melakukan koneksi ke suatu database, gunakan perintah use . Selain itu, agar kita mengetahui tabel-tabel apa saja yang ada pada database tersebut, kita dapat menggunakan perintah show tables. mysql> use mysql; Database changed mysql> show tables; +-----------------+ | Tables_in_mysql | +-----------------+ | columns_priv | | db | | func | | host | | tables_priv | | user | +-----------------+ 6 rows in set (0.00 sec) mysql>
Untuk keluar dari MySQL, ketikkan perintah quit atau \q.
t e N
Perintah-perintah dasar MySQL use ; Melakukan koneksi ke suatu database.
a r d
n e H
describe ; Menampilkan struktur suatu tabel.
By
create ( , …); Membuat tabel sesuai dengan keinginan kita. select from ; Melihat isi suatu tabel, untuk field jika anda ingin melihat keseluruhan field yang ada pada suatu tabel, anda dapat menggantikannya dengan tanda * (wildcard), tanpa harus menuliskan seluruh nama field yang ada pada tabel. insert into values (‘’, …); insert into (, …) values (‘’, …); Melakukan proses input data ke dalam sebuah tabel, perlu diingat untuk proses input data dengan perintah pertama di atas urutan data yang diisikan harus terurut sesuai dengan field-field yang ada pada tabel.
Page 19 / 46
http://www.hendra-jatnika.web.id
update set = where ; Melakukan proses update suatu data ke dalam suatu tabel sesuai dengan kondisi yang ditentukan oleh kita. Koneksi PHP dengan MySQL Karena pada praktikum ini kita belajar tentang PHP & MySQL, maka kita akan coba melakukan koneksi dari PHP terhadap MySQL. Sebagai latihan, buat file PHP dengan nama koneksi.php dengan sintak seperti berikut !
?>
$koneksi=mysql_connect("localhost","root",""); if (!$koneksi) die("Koneksi ke MySQL tidak dapat dilakukan"); mysql_close($koneksi); echo "Koneksi berhasil dilakukan !!!";
Baiklah, kini saatnya untuk latihan membuat database dalam MySQL ! Buatlah sebuah database dengan nama startrek dan buat tabel peralatan dengan struktur tabel sebagai berikut !
t e N
No Nama Field 1 NamaPeralatan 2 Jumlah 3 HargaSatuan
a r d
en
By
H
Type Data Varchar(40) Smallint Integer
Setelah Anda membuat tabel di atas, isikan tabel tersebut dengan data-data berikut ini : NamaPeralatan Phaser Tricorder Visor Analyzer Photonik
Jumlah 2 5 1 3
HargaSatuan 7500 12500 16000 2300
Pada latihan di atas, kita belajar tentang koneksi. Pada kesempatan ini kita juga bisa mengecek jumlah baris dan kolom suatu tabel. Untuk lebih jelasnya, ketikkan sintak PHP berikut dan simpan dengan nama kolomfield.php :
Page 20 / 46
http://www.hendra-jatnika.web.id
//koneksi ke server MySQl $koneksi=mysql_connect("localhost","root",""); if (!$koneksi) die("Koneksi ke MySQL tidak dapat dilakukan !"); //koneksi ke database $pilih_db=mysql_select_db("startrek",$koneksi); if (!$pilih_db) die("Database yang anda pilih, tidak dapat terkoneksi !"); echo "Semua koneksi berhasil dilakukan !!!"; //perintah query $hasil=mysql_query("Select * from peralatan",$koneksi); echo "
STUDI KASUS Keep Smile !! Selamat bergabung kembali pada pertemuan ke-5. Sedikit mengulas mengenal pertemuan kemarin, pada pertemuan kali ini kita akan membahas PHP dan MySQL dalam bentuk aplikasi. Oleh karena itu, saya harapkan anda untuk selalu memperhatikan langkahlangkah yang telah disusun dalam modul ini. Studi kasus kali ini, kita akan membuat sebuah pendaftaran seminar secara online disertai pencariannya, oleh karena itu pertama kali yang perlu anda siapkan adalah sebuah database dengan nama seminar dan sebuah tabel dengan nama daftar. Dalam mode DOS, aktifkan MySQL anda dengan mengetikan : C:\apache\mysql\bin\mysql Buat database dengan tabelnya ! C:\apache\mysql\bin>mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 to server version: 3.23.47-nt
t e N
a r d
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
n e H
mysql> create database seminar; mysql> use seminar; database changed mysql> create table daftar( -> nama char(30) not null, -> alamat char(50), -> email char(20), -> telepon char(12) );
By
Setelah database dan tabel selesai dibuat, pastikan server apache anda berjalan ! Jika anda telah melakukan langkah-langkah di atas, maka sekarang anda buat beberapa file PHP sesuai yang kita butuhkan untuk membangun situs pendaftaran online seminar. Buatlah file-file berikut ini !!!
Hallo Teman ! Kita bertemu kembali dalam sebuah seminar Information Technology dengan tema
" Prospek Kerja dunia IT "
Selama ini kita tidak pernah tahu ? Seberapa jauh kemampuan kita ? dan dimana prospek kerja kita ? Maka dari itu ikutilah ! seminar IT Ingat hanya di STMIK BANDUNG
[Lihat.php]------------------------------------------------------------ :: Lihat Data
Daftar Peserta Seminar"; echo "
"; echo "
"; echo "
Nama
"; echo "
Alamat
"; echo "
Email
"; echo "
Telepon
"; echo "
"; while ($baris=mysql_fetch_array($result)) { echo "
"; echo "
".$baris[0]."
"; echo "
".$baris[1]."
"; echo "
".$baris[2]."
"; echo "
".$baris[3]."
"; echo "
"; } echo "
"; echo "
"; } else { echo "Data nggak berhasil dilihat !"; } ?> Kembali
t e N
a r d
By
n e H
Page 25 / 46
http://www.hendra-jatnika.web.id
[Cari.php]------------------------------------------------------------- :: Lihat Data
Daftar Peserta Seminar"; echo "
"; echo "
"; echo "
Nama
"; echo "
Alamat
"; echo "
Email
"; echo "
Telepon
"; echo "
"; while ($baris=mysql_fetch_array($result)) { echo "
"; echo "
".$baris[0]."
"; echo "
".$baris[1]."
"; echo "
".$baris[2]."
"; echo "
".$baris[3]."
"; echo "
"; } echo "
"; echo "
"; } else { echo "Data nggak berhasil ditemukan !"; } ?> Kembali
t e N
a r d
By
n e H
Page 26 / 46
http://www.hendra-jatnika.web.id
ARRAY Kalau anda sering berkecimpung dalam pemrograman, tentu anda sudah sering mendengar bahkan menggunakan array. Array merupakan variabel jamak yang memiliki beberapa index elemen yang dideklarasikan dalam bentuk numerik ataupun string. Sedangkan isi dari array sering dinamakan dengan elemen array. Misalnya kita ingin membuat variabel tentang partai politik di Indonesia. Kita bisa menuliskannya sebagai berikut : $partai_nasionalis = “pdi-p”; $partai_islam = “pk-sejahtera”; $partai_sosialis = “prd”; Pembuatan variabel di atas adalah variabel biasa, bukan array. Sedangkan kalau kita ingin memasukkannya ke dalam array, maka akan berbentuk sebagai berikut : $partai = array(“pdi-p”, “pk-sejahtera”, “prd”);
t e N
atau, anda dapat menuliskannya dengan cara sebagai berikut :
Ingat, dalam PHP (sebagaiman dalam bahasa C) setiap array dimulai dengan angka 0. Untuk lebih meyakinkan diri, mari kita coba beberapa contoh berikut ini !
MODUL 7 Form adalah suatu hal yang sangat penting dalam pembuatan web, karena dengan form inilah user dapat berkomunikasi dengan sistem dan sistem berkomunikasi dengan user. Dalam pembuatan ini haruslah dibuat dengan sebaik-baiknya jangan terlalu rumit karena akan membuat user kita malas untuk mengisi form yang kita sediakan. Untuk praktek kali ini, kita akan menggunakan form yang telah ada pada pertemuan sebelumnya, yaitu pendaftaran seminar IT online. Seperti yang telah anda buat form tersebut tidak memiliki apakah form itu benar atau tidak isinya. Form tersebut tidak perlu ditulis, tinggal anda pakai sekarang mengenai validasi, seperti yang sudah ditulis. Form tersebut memiliki variabel-variabel, yaitu :
nama alamat telepon email
Variabel-variabel di atas akan divalidasi dengan script berikut ini : FormDaftar.php
"; } if(empty($nama)) { echo "Nama Anda tidak boleh kosong "; } if(empty($alamat)) { echo "Alamat Anda tidak boleh kosong "; } if(empty($email)) { echo "Email Anda tidak boleh kosong "; } if(empty($telepon)) { echo "Telepon Anda tidak boleh kosong "; }
t e N
a r d
if(!empty($nim)&& !empty($nama)&& !empty($alamat)&& !empty($email)&& !empty($telepon)) { if(!is_numeric($nim)) { echo "NIM harus dengan Angka Nama harus dengan Huruf Angka Telepon tidak valid !! "; }*/ $polaemail="^.+@.+\..+$"; if(!eregi($polaemail,$email)) { echo "Email Anda tidak valid !!
By
n e H
if($result) { echo "Data dengan nama ".$nama.", tersimpan ke database"; echo " "; } else { echo "Data tidak berhasil disimpan"; } } } } ?> HomeLihat Peserta
2 Page 31 / 46
http://www.hendra-jatnika.web.id
Lihat.php :: Lihat Data
Daftar Peserta Seminar"; echo "
"; echo "
"; echo "
NIM
"; echo "
Nama
"; echo "
Alamat
"; echo "
Telepon
"; echo "
Email
"; echo "
Action
"; echo "
"; while ($baris=mysql_fetch_array($result)) { echo "
"; } if(empty($nama)) { echo "Nama Anda tidak boleh kosong "; } if(empty($alamat)) { echo "Alamat Anda tidak boleh kosong "; } if(empty($email)) { echo "Email Anda tidak boleh kosong "; } if(empty($telepon)) { echo "Telepon Anda tidak boleh kosong "; }
t e N
a r d
echo ""; echo " ";
n e H
if(!empty($nim)&& !empty($nama)&& !empty($alamat)&& !empty($email)&& !empty($telepon)) { if(!is_numeric($nim)) { echo "NIM harus dengan Angka "; } if(is_numeric($nama)) { echo "Nama harus dengan Huruf "; } /*$polatelp="^\[0-9]{2}-[0-9]+$"; if(!eregi($polatelp,$Telepon)) { echo "Angka Telepon tidak valid !! "; }*/ $polaemail="^.+@.+\..+$"; if(!eregi($polaemail,$email)) { echo "Email Anda tidak valid !! "; } if(!$errmsg) { $sql="UPDATE pendaftaran SET nim='$nim',nama='$nama',alamat='$alamat',telepon='$telepon',email='$email' where nim='$nim' "; mysql_query($sql); } }
user authentication user authentication dalam pemograman web sangat penting! karena dengan user authentication kita dapat menentukan hak-hak dari user yang mengakses situs kita, dalam user authentication yang harus diperhatikan adalah level, level ini berfungsi untuk menentukan privilege tiap user dalam kasus modul kali ini ada 2 tingkatan user, ini bisa ditambahkan kemudian oleh anda sesuai dengan kebutuhan. skenario dari aplikasi yang kita buat. admin boleh melakukan apapun pada situs kita dalam hal ini menambah,mengurangi dsb, kemudian user biasa dia hanya punya hak untuk membaca dsb. untuk itu kita membutuhkan suatu table yang akan memuat user-user: create table user ( username varchar(16)not null, password varchar(16)not null, level tinyint(8)not ull, primary key(username)); setelah itu masukkan data-data yang dibutuhkan. insert into user values(“admin”,”nimda”,”1”),(“anu”,”ini”,”2”); lalu test di MySQL command
t e N
mysql>select * from user;
a r d
dalam modul kali ini ada dua script yang akan dipakai: form_login.php : didalam script ini terdapat form untuk login dan pemproses dari form itu sendiri jadi dia memproses dirinya sendiri dengan sintak action=. detail.php: di dalam script ini terdapat penghapusan cookie dari memory dan fungsi penghapusan cookie ini untuk melakukan logout dari sistem yang kita buat.
By
n e H
form_login.php pada code snippet dibawah dilakukan suatu koneksi dan query pada database MySQL kemudian hasil dari query tersebut disimpan di variable handling berupa $result dan hasilnya di lakukan peng-array-an dengan fungsi mysql_fetch_array() hasil dari array ini disimpan di variabel $row. if ($submit) { mysql_connect("localhost", "root", ""); mysql_select_db("mhs"); $sql = "SELECT level FROM user WHERE username = '$username' AND password = '$password' "; $result = mysql_query($sql); while ($row = mysql_fetch_array($result)) { $level = $row["level"]; } lakukan pembandingan dengan username dan password yang ada didatabase dengan username+password yang kita masukkan di form login jika tidak sesuai maka keluar pesan “anda tidak punya hak”
Page 37 / 46
http://www.hendra-jatnika.web.id
if (!mysql_num_rows($result)) { echo "Anda Tidak punya hakkkkk!!."; jika username+password sesuai PHP akan membuat cookies pada memory dan menyimpannya dan waktu dari cooki yang kita buat diset 1 jam setelah itu dia menghapus sendiri } else { setcookie('username', $_POST['username'], (time()+2592000), '/', '', 0); setcookie('level', $_POST['level'], (time()+2592000), '/', '', 0); } sekarang kita mulai dengan pengkondisian, jika levelnya = 1 maka anda sebagai admin elseif level anda 2 maka anda user.. if ($level == "1") { echo "Anda login sebagai admin detail "; } elseif ($level == "2") { echo "Anda login sebai user detail "; } jika user belum mempunyai cookie maka keluar form untuk login
t e N
a r d
detail.php
By
n e H
isi dari detail.php ini adalah penghapusan cookie yang dibuat oleh PHP dari memori jika tombol logout ini ditekan maka akan menghapus cookie if ($submit) { setcookie('username', '', time() - 3600); setcookie(‘level', '', time() - 3600); echo "Anda telah logout } else { jika seseorang ingin mengakses halaman ini dengan tidak melalui proses login akan keluar pesan anda tidak berhak if (!$_COOKIE['username']) { exit; } ?>
echo "Anda tidak berhak melihat halaman ini";
dan keluar halaman yang menunjukkan jatidiri kita dan tombol logout pun akan keluar ! jika tombol logout ini di tekan akan mengacu pada penghaousan cookie diatas Your User Name:
Session & Cookies Tidak seperti PHP 3.0, PHP 4.x ini memiliki kemampuan untuk menangani session management, session di PHP 4 mudah digunakan powerful dan gampangan di kostumasi. Membuat session dapat membuat kita mencatat kelakuan user melalui waktu yang user gunakan untuk mengakses situs kita. Untuk mengasosiasikan data dengan user, anda membutuhkan session ID yakni kunci untuk “mengikat” user dengan data yang digunakan yang menghapusnya jika tidak digunakan lagi. Cookies Cookies adalah sebuah paket informasi kecil yang dikirimkan oleh web server dan disimpan ke komputer client, hal ini dapat menguntungkan pembuat situs karena data bergantung dari user session untuk mengakses data yang lain. Hal ini juga dapat menjaga hubungan antara client dengan server dapat terus terjaga. Komponen dari cookie :
t e N
Name : nama cookie
Value : nilai cookie
Expiration date : lifetime(waktu hidup) dari cookie yang kita buat
Domain : domain yang diakses oleh user dalam melakukan koneksi dengan server
By
a r d
n e H
Path : jalur yang dispesifikasikan di URLs
Security : setting security apakah cookie ini ada di jalur “aman”
[ cookie tidak akan dibahas panjang-lebar, karena sudah di modul sebelumnya ] Mencek apakah cookie sudah dihidupkan ? Test Cookies Cookie Check Status : %s ', $status?"000000":"FF0000", $status?"Support Cookie OK !!" : "Support Cookie FAILED !!"); ?> Page 41 / 46
http://www.hendra-jatnika.web.id
Dasar Session Session management adalah suatu mekanisme untuk menjaga keadaan tentang request/hit dari user yang sama melalui waktu yang telah ditentukan, di dalam hal ini session berarti waktu yang digunakan user dalam mengakses website. Masalahnya HTTP tidak punya mekanisme untuk menjaga kondisi request seseorang dan request satu dengan request lainnya tidak saling berhubungan. Web server sendiri tidak dengan mudah dapt membedakan antara single user dan tidak mengetahui session. Session manajemen mengacu pada bagaimana data dengan user saling terkait selama user tersebut mengunjungi halaman web. Memulai Session Dalam PHP 4, session dimulai dengan menuliskan session_start(), atau secara tidak langsung
dengan
mendaftarkan
variabel
untuk
session,
menggunakan
session_register(). Biasanya Anda dapat memanggil session dengan session_start() di atas halaman web. Jadi variabel session sudah dibuat dan tinggal melakukan
t e N
pemanggilan. Jika Anda melakukan pemanggilan session, ada beberapa kejadian yang
a r d
terjadi yaitu :
n e H
1. PHP men-cek apakah session ID-nya valid, ada atau tidak. 2. Jika tidak ada session ID, maka PHP akan membuat session ID yang baru.
By
3. Jika session ID ada, variabel session yang tidak dipanggil akan diaktifkan kembali. Meregistrasi
sebuah
session
variabel
dapat
dilakukan
melalui
perintah
session_register(). Fungsi ini membuat (register) variabel yang dapat disimpan melalui session, dan dapat dipanggil selama masa session user. Jika anda ingin melepaskan register variabel yang ada pada session, maka dapat dilakukan ‘pelepasan’ dengan perintah session_unregister().
Page 42 / 46
http://www.hendra-jatnika.web.id
session.php
session2.php
?>
session_start(); if(!session_is_registered('hits')) { session_register('hits'); } $hits++; print "Anda telah mengakses halaman ini sebanyak $hits kali";
Implementasi
t e N
Karena pada pertemuan sebelumnya telah ada tabel user dalam database mhs yang
a r d
berisi username, password, dan level, maka jumlah tabel yang dipakai ada 2 tabel.
n e H
Buatlah sebuah tabel dengan nama session. Tabel ini berfungsi untuk menampung session id dari seluruh user yang ada pada aplikasi yang kita buat susunannya adalah sebagai berikut : create table session (
By
user varchar(16)not null, session_id varchar(32)not null, primary key(user,session_id)); Tiap halaman yang diakses akan memeriksa ke database apakah username ini sudah masuk ke tabel session atau belum. Jika belum tampilkan error ! index.php WELCOME ::::
if($row["hasil"]=="0") { echo "Anda tidak berhak masuk ke halaman ini"; } elseif ($row["hasil"]!="0") { echo "Anda user yang berhak ! "; echo "ID anda adalah $id "; echo "[Logout]"; }
a r d
By
n e H
?>
index.u.php
INI HALAMAN USER
Page 44 / 46
http://www.hendra-jatnika.web.id
login.php
t e N
a r d
//insert data session untuk id tertentu mysql_query("insert into session values('$id','$sess')");
n e H
//tentukan level user if($hasil_data["level"]==2) { if($hasil_data["username"]!=$username) { //kalo gak ada, daftar dulu header("location:index.php?message=Daftar Heula !"); } else { //kalo nama user, tampilkan halaman ini header("location:index.u.php?id=$id&session_id=$sess"); } } elseif($hasil_data["level"]==1) { //tampilkan halaman admin header("location:index.a.php?id=$id&sess=$sess"); }
By
?>
}
Page 45 / 46
http://www.hendra-jatnika.web.id
logout.php
?>
mysql_connect("localhost","root",""); mysql_select_db("mhs"); mysql_query("delete from session where user='$id'"); mysql_close(); header("location:index.php?message=you have succesfully logged out"); exit;
tanggal_jam.php Contoh Program Menampilkan Tanggal dan Jam Sekarang tanggal :
Coba anda bedakan dengan yang ini ! "; print (date("D-F-Y")); echo ""; ?>