Pemrograman Basis Data Berbasis Web Pertemuan Ke-9 (PHP Dasar [2]) Noor Ifada S1 Teknik Informatika - Unijoyo 1
Sub Pokok Bahasan Fungsi-fungsi umum Enkripsi dan integritas data Pemrosesan file Modularisasi Mengenal Cookie Contoh aplikasi dengan menggunakan PHP S1 Teknik Informatika - Unijoyo 2
Fungsi-fungsi umum Fungsi String digunakan untuk memanipulasi string untuk berbagai macam kebutuhan Fungsi Date digunakan untuk mengambil tanggal dan jam. Hasil dari fungsi ini adalah sebuah string yang berisi tanggal/jam sesuai dengan format yang diinginkan. Fungsi Mail digunakan untuk mengirimkan e-mail ke alamat e-mail tertentu S1 Teknik Informatika - Unijoyo 3
Fungsi String StrLen digunakan untuk menghitung jumlah karakter suatu string sintaks: strlen(string) StrPos digunakan untuk mencari posisi pertama suatu sub string pada suatu string fungsi ini biasanya digunakan untuk mencari suatu sub string di dalam suatu string sintaks: strpos(string, sub_string) Str_repeat digunakan untuk mengulang isi suatu string sintaks: str_repeat(string, int jumlah perulangan) S1 Teknik Informatika - Unijoyo 4
StrToLower digunakan untuk merubah suatu string menjadi huruf kecil (lowercase). sintaks: strtolower(string) StrToUpper Digunakan untuk merubah suatu string menjadi huruf besar (uppercase) Sintaks: strtoupper(string) SubStr digunakan untuk mengambil suatu sub string dengan panjang tertentu dari suatu string pada posisi tertentu pula. sintaks: substr(string, int posisi, int posisi) contoh: substr( abcdefg,0,3); // menghasilkan string abc substr( abcdefg,3,2); // menghasilkan string de S1 Teknik Informatika - Unijoyo 5
SubStr_Count digunakan untuk menghitung jumlah sub string dalam suatu string sintaks: substr_count( string, string substring) Contoh: substr_count( This is a test, is ); // menghasilkan nilai 2 UCFirst digunakan untuk mengganti karakter pertama pada suatu string menjadi huruf besar sintaks: ucfirst(string) UCWords digunakan untuk mengganti karakter pertama pada setiap kata dalam suatu string menjadi huruf besar sintaks: ucwords(string) S1 Teknik Informatika - Unijoyo 6
Fungsi Date Sintaks: date(string format) Format yang dikenal dalam fungsi date misalkan: a - "am" or "pm" A - "AM" or "PM" d - day of the month, 2 digits with leading zeros; i.e. "01" to "31" D - day of the week, textual, 3 letters; i.e. "Fri" h - hour, 12-hour format; i.e. "01" to "12" H - hour, 24-hour format; i.e. "00" to "23" i - minutes; i.e. "00" to "59" I (capital i) - "1" if Daylight Savings Time, "0" otherwise. s - seconds; i.e. "00" to "59" S - English ordinal suffix, textual, 2 characters; i.e. "th", "nd Dan lain-lain Contoh: date( Y-m-d ); // menghasilkan 2008-07-24 date( H:i:s ); // menghasilkan 20:15:07 S1 Teknik Informatika - Unijoyo 7
Fungsi Mail Sintaks: mail(string tujuan, string subject, string isi [, string header] ); Contoh: $pengirim = From: alamat@email.com ; $tujuan = web_master@website.com ; $subject = Pemberitahuan ; $isi = Ini adalah percobaan pengiriman e-mail dengan menggunakan PHP ; mail($tujuan,$subject,$isi,$pengirim); S1 Teknik Informatika - Unijoyo 8
Enkripsi dan Integritas Data Enkripsi data diperlukan dalam aplikasi yang berhubungan dengan password. Data user beserta passwordnya harus disimpan sehingga yang tidak mungkin dibaca oleh orang lain bahkan oleh seorang administrator sekalipun. Enkripsi merupakan proses pengaburan data password semula ke dalam bentuk lain yang tidak mudah ditebak, namun dapat dikembalikan lagi ke bentuk semula jika diperlukan. Karena alasan keamananlah, maka enkripsi banyak digunakan pada proses authentikasi di dalam database. S1 Teknik Informatika - Unijoyo 9
Beberapa fungsi untuk enkripsi data: Fungsi password( kata_yang_dienkripsi ) akan memperhitungkan bahwa sebuah password hasil enkripsi berasal dari sebuah plaintext string biasanya dipakai pada pemasukan data ke database MySQL. Hasil tersebut harus digunakan sebagai password yang disimpan di dalam user grant table. Fungsi crypt( kata_yang_dienkripsi, password_pengenkripsi ) merupakan perintah enkripsi standar pada UNIX yang memanfaatkan password perng-enkripsi yang disebut salt yang terdiri dari dua buah karakter Fungsi md5( kata_yang_dienkripsi ) menghasilkan enkripsi berupa sederetan character yang berjumlah 32 digit Fungsi crc32(string) untuk menghitung nilai polinomial crc32 terhadap suatu string biasanya digunakan untuk memvalidasi integritas data yang dikirim dari suatu lokasi ke lokasi lain menggunakan piranti komunikasi S1 Teknik Informatika - Unijoyo 10
Pemrosesan File File adalah merupakan tempat untuk menyimpan data sekunder secara permanen di dalam suatu media penyimpan misal hardisk, diskette dan lainnya. Secara umum format file terbagi menjadi dua yaitu file teks dan binary. Tiga tahap pengaksesan dalam skema dasar pengaksesan file: 1. Membuka file 2. Memproses file/manipulasi file 3. Menutup file S1 Teknik Informatika - Unijoyo 11
Beberapa fungsi dalam pemrosesan file: Fungsi fopen() untuk membuka/mengakses file fungsi ini dapat mengakses file dari sistem file, atau melalui HTTP atau FTP di internet. sintaks: fopen($filename,mode_akses); filename adalah variabel nama file yang akan dibuka mode_akses adalah metode pengaksesan file tersebut, apakah file tersebut diakses hanya untuk dibaca, ditulis atau ditambah. Mode akses yang diberikan: a a+ r r+ w w+ Fungsi fclose() untuk menutup file/berkas digunakan Fungsi fgets() untuk melihat isi dari file digunakan sintaks: fgets($filename,length) filename adalah variabel nama file yang akan dibuka length menunjukkan jumlah karakter yang diambil. pada fungsi ini setiap tag HTML akan dieksekusi (agar tag HTML tidak bisa dieksekusi maka digunakan fungsi fgetss()) S1 Teknik Informatika - Unijoyo 12
Fungsi fputs() untuk memasukkan data ke dalam file sintaks: fputs($namafile,$variabel_data) $namafile adalah variabel file tujuan data tersebut $variabel_data adalah variabel isi data yang akan dimasukkan Fungsi feof() untuk menentukan akhir dari sebuah file. Jika sudah pada akhir file, fungsi ini akan bernilai True S1 Teknik Informatika - Unijoyo 13
Fungsi copy() untuk mengkopi suatu file file yang akan dikopi dapat diambil melalui masukan data formulir sintaks: copy(nama_file_sumber,nama_file_tujuan) nama_file_sumber adalah nama file yang akan dikopi nama_file_tujuan adalah nama file hasil pengkopian fungsi ini mempunyai hasil berupa: TRUE jika file berhasil dikopi FALSE jika terjadi kegagalan dalam proses pengkopian Contoh: copy( data_mahasiswa.doc, data.rtf ); S1 Teknik Informatika - Unijoyo 14
Fungsi unlink() untuk menghapus file sintaks: unlink(nama_file) fungsi ini mempunyai hasil berupa: TRUE jika file berhasil dihapus FALSE jika terjadi kegagalan dalam proses penghapusan Contoh: unlink( data_mahasiswa.doc ); S1 Teknik Informatika - Unijoyo 15
Fungsi rename() untuk mengganti nama file sintaks: rename(nama_file_lama,nama_file_baru) nama_file_lama adalah nama file yang akan diganti nama_file_baru adalah nama file pengganti fungsi ini mempunyai hasil berupa: TRUE jika file berhasil diubah/diganti FALSE jika terjadi kegagalan dalam proses pengubahan Contoh: rename( data_mahasiswa.doc, data.rtf ); S1 Teknik Informatika - Unijoyo 16
Fungsi file_exists() untuk memeriksa kondisi suatu file, apakah file tersebut ada atau tidak sintaks: file_exists(nama_file) Fungsi ini mempunyai hasil berupa: TRUE jika file ada FALSE jika file tidak ada Fungsi filesize() untuk mengetahui besar ukuran suatu file digunakan sintaks: filesize(nama_file) Fungsi ini mempunyai hasil bertipe integer, yang menyatakan ukuran file dalam satuan byte. S1 Teknik Informatika - Unijoyo 17
Modularisasi Modularisasi adalah penyusunan/pembuatan program berdasarkan modul-modul Modul dapat berupa fungsi atau prosedur Jenis modularisasi di dalam PHP antara lain: require() include() require_once() include_once() S1 Teknik Informatika - Unijoyo 18
require() bentuk modular yang digunakan untuk menggabungkan suatu skrip PHP atau teks dari file lain dengan script PHP yang memanggilnya, file yang digabungkan tidak harus script PHP teknik require sangat berguna untuk membuat template (pola) yang memudahkan proses pengembangan aplikasi dengan menggunakan pola tampilan include() hampir sama dengan require(), akan tetapi include() digunakan untuk menggabungkan suatu script atau file dengan script pemanggilnya include dapat digunakan dalam struktur pengulangan, untuk melakukan pemanggilan file-file yang berbeda. require_once() pada dasarnya sama dengan require(), akan tetapi di dalam require_once duplikasi fungsi atau duplikasi pemanggilan dapat dihindari, karena secara default require_once akan memaksa PHP untuk menggunakan nama fungsi atau pemanggilan yang telah ada. include_once() hampir sama dengan require_once, akan tetapi pada include_once() setiap kali dijalankan akan selalu ada evaluasi ulang S1 Teknik Informatika - Unijoyo 19
Mengenal Cookie Session dan cookie dapat digunakan untuk mencatat jejak (track) tertentu yang dilakukan oleh pengunjung web site, misalnya mencatat jumlah kunjungan, nama dan kunjungan terakhir. Mesin client atau web browser menyimpan informasi tersebut dan mengirimnya ke web server pada saat terjadi request S1 Teknik Informatika - Unijoyo 20
Tentang Cookie dan Session Cookie: disimpan di dalam harddisk client cookie mungkin tidak dapat berjalan jika di-blok oleh pengguna dengan mengubah setting security web browser secara umum, cookie disimpan bersama dengan username dan password (password dapat di-enkripsi sebelum disimpan demi keamanan data) sehingga di dalam cookie akan tersimpan username dan password yang telah ter-enkripsi. Cara yang lebih baik adalah menghindari penyimpanan username dan sebagai gantinya gunakan suatu ID unik yang di-generate secara otomatis serta acak. Session: disimpan di server. Session pada dasarnya menyerupai token, di-generate saat authentikasi dilakukan. Session aktif selama browser yang mengakses halaman tercatat masih terbuka. S1 Teknik Informatika - Unijoyo 21
Fungsi Cookie PHP Cookie dikirim bersama dengan HTTP header dengan menggunakan fungsi set_cookie() Sintaks: boolean setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]] ) semua argumen kecuali name bersifat opsional jika hanya argumen name yang disertakan, cookie dengan nama itu akan di-overwrite pada komputer client suatu argumen dapat diganti dengan string kosong ("") untuk mengabaikan argumen tersebut argumen expire dan secure adalah berupa integer dan tidak dapat dilewatkan dengan string kosong. Sebagai gantinya gunakanlah bilangan nol (0) argumen expire merupakan suatu integer regular Unix time seperti yang dikembalikan oleh fungsi time() atau mktime() argumen secure menunjukkan bahwa cookie hanya akan ditransfer melalui koneksi secure HTTPS. S1 Teknik Informatika - Unijoyo 22
Contoh penggunaan Cookie Contoh ini memungkinkan username dan password untuk disimpan pada komputer client sebagai cookie dan menerimanya saat diperlukan Terdapat tiga file PHP yang digunakan, yaitu index.php, login.php dan logout.php Halaman utama (index.php) memeriksa apakah cookie telah dibuat atau belum. Jika cookie telah ada maka username dan password yang tersimpan ditampilkan S1 Teknik Informatika - Unijoyo 23
File index.php: <?php //memeriksa jika cookie diset if (!isset($_cookie['cookie_info'])) { echo $_COOKIE['cookie_info'];?> <body> <form method="post" action="login.php"> <center><h1>cookies </h1></center> <table border="0" width="auto"> <tr><td width="33%">login Name</td><td width="33%"><input type="text" name="name" size="20"></td> <td width="34%"> </td></tr><tr><td width="33%">password</td> <td width="33%"><input type="password" name="pass" size="20"></td> <td width="34%"><input type="checkbox" name="set value="on">remember Me</td></tr> </table> <center> <p><input type="submit" value="submit" name="sub"> <input type="reset" value="reset" name="res"></p> </center> </body> </form> <?php } else { //Cookie ada dan data ditampilkan $cookie_info = explode("-", $_COOKIE['cookie_info']); //Ekstrak Data $name = $cookie_info[0]; $pass = $cookie_info[1]; echo "<center><h3>welcome back $name and your password is $pass"; echo "<a href='logout.php'>logout</a>"; exit; }?> S1 Teknik Informatika - Unijoyo 24
Variabel $_COOKIE atau HTTP_COOKIE_VARS bersifat super global yang digunakan untuk menerima data. Sekali cookie ada maka data di dalamnya dapat diterima. Tanda dash ( - ) dapat digunakan sebagai pemisah setiap field, misalnya name-password. Halaman login.php ditampilkan saat cookie belum dibuat. Pengguna harus memilih checkbox jika ingin detailnya diingat oleh sistem. S1 Teknik Informatika - Unijoyo 25
File login.php: <?php if(empty($_post['name']) empty($_post['pass'])) {?> <b>fill All Details </b> <?php exit; } else { //mengumpulakn detail dan validasi $time = time(); $name = $_POST['name']; $pass =md5($_post['pass']); $check = $_POST['set']; $db = mysql_connect("localhost", "root","") or die(mysql_error()); mysql_select_db("test",$db) or die(mysql_error()); $query = "select * from Login where name='$name and password='$pass'"; $sql = mysql_query($query) or die(mysql_error()); $count = mysql_num_rows($sql); if ($count == 1) { $cookie_data = $name.'-'.$pass; if($check=='on') { if(setcookie ("cookie_info",$cookie_data, $time+3600)==true) { echo "Cookie SET".$cookie_data;?> <a href='logout.php'>logout</a> <? } } } else { echo "Authentication Failed"; exit; } }?> S1 Teknik Informatika - Unijoyo 26
Pada file login.php, user di-authentikasi dan jika sesuai dengan data dalam database maka name dan password diletakkan dalam cookie. Password dienskripsi menggunakan algoritma md5 dan digabung dengan - sebagai pemisah field. Variabel $cookie_data berisi string gabungan. Fungsi setcookie digunakan untuk menyimpan data ke dalam cookie. Argumen pertama adalah nama referensi cookie, yaitu cookie_info. Argumen kedua adalah data yang disimpan dan ketiga akan menentukan berapa lama cookie berlaku (valid). Pada contoh ini, masa hidup cookie adalah 1 jam. Fungsi time() mengembalikan waktu sekarang dari sistem Unix time stamp. Sebagai contoh 1072724721 sebenarnya berarti Mon, 29 Dec 2003 19:05:21 UTC. Dengan menambahkan 3600 ke Unix time stamp, 1072724721 + 3600 = 1072728321 yang berarti Mon, 29 Dec 2003 20:05:21 UTC. Cookie mengembalikan TRUE jika pembuatannya sukses. S1 Teknik Informatika - Unijoyo 27
Halaman logout.php menghapus cookie yang telah dibuat. <?php $time = time(); if (isset($_cookie['cookie_info'])) { setcookie ("cookie_info", "", $time - 3600); echo "Logged Out"; } echo $time;?> Fungsi yang digunakan untuk menghapus cookie adalah setcookie (fungsi yang juga digunakan untuk membuat cookie). Kode di atas memperlihatkan pengurangan 3600 terhadap nilai variabel $time. Ini sebenarnya hanya memberikan waktu mundur ke cookie. Saat dikurang 3600 detik atau 1 jam cookie menjadi kadaluarsa. S1 Teknik Informatika - Unijoyo 28
Contoh aplikasi dengan menggunakan PHP Membuat Counter Membuat Guest Book (Buku Tamu) S1 Teknik Informatika - Unijoyo 29
Membuat Counter Aplikasi web yang paling sederhana yang akan dibahas adalah mengenai pembuatan counter dengan menggunakan PHP. Fungsi counter di sini adalah untuk menghitung berapa kali suatu halaman situs web telah dibuka oleh pengunjung. Langkah-langkah: 1. Membuat file teks (counter.txt) agar setiap kali suatu halaman web ditampilkan maka terlebih dulu isi file tersebut akan dibaca nilainya dan di-update (ditambahkan nilainya dengan 1). Nilai counter diinisialisasi bernilai 0 (nol) 2. Membuat file php (counter.php) untuk: membaca nilai di dalam file teks meng-update nilai counter menyimpan nilai yang baru di file menampilkan nilainya di layar browser S1 Teknik Informatika - Unijoyo 30
File counter.txt 0 File counter.php: <html> <head> <title> Counter </title> </head> <?php $filecounter="counter.txt"; $open=fopen($filecounter,'r+'); $counter=fread($open,filesize($filecounter)); fclose($open); $counter++; $write=fopen($filecounter,'w'); fputs($write,$counter); fclose($write); echo "<b> Anda adalah pengunjung ke : $counter</b>";?> </html> S1 Teknik Informatika - Unijoyo 31
Membuat Guest Book (Buku Tamu) Salah satu bagian penting dari sebuah website adalah fasilitas pengisian guest book (buku tamu) untuk mengetahui siapa saja pengunjung website dan juga mendapatkan komentar dari pengunjung tersebut. Di dalam contoh berikut ini, data isian guest book akan dikirimkan ke suatu alamat email tertentu. Langkah-langkah: 1. Membuat file php (guestbook_1.php) untuk membuat form pengisian guest book. Data yang dimasukkan adalah nama, alamat email, alamat, dan pesan 2. Membuat file php (guestbook_2.php) untuk menerima masukan data dari form di atas yang selanjutnya akan dikirimkan ke alamat email tertentu S1 Teknik Informatika - Unijoyo 32
File guestbook_1.php: <html> <head><title>guestbook</title></head> <body bgcolor="#99ccff"> <font color="#000066" face="helvetica" size ="2"> <table> <caption align="top"> <b>guest BOOK</b> </caption> <tr> <td colspan="2"> <hr size=1 width=100% > </hr> </td> </tr> <form action="guestbook_2.php" method=post> <tr> <td> Name : </td> <td> <input type=text name=nama size=30> </td> </tr> <tr> <td> E-Mail : </td> <td> <input type=text name=email size=30> </td> </tr> <tr> <td> Address : </td> <td> <input type=text name=alamat size=30> </td> </tr> <tr> <td valign ="top"> Message : </td> <td> <textarea name=pesan rows=9 cols=40> </textarea> </td> </tr> <tr> <td align="center" colspan="2"> <input type=submit value="submit"> <input type=reset value="reset"> </td> </tr> </form> </table> </font> </body> </html> S1 Teknik Informatika - Unijoyo 33
File guestbook_2.php : <html> <head> <title> Guestbook </title> </head> <body bgcolor="#99ccff"> <font color="#000066" face="helvetica" size="2"> <?php $to="admin-myweb@yahoo.com"; $subject="guest Book"; $from="from: $nama <$email>"; $content=""; $content.="guest Book\n"; $content.="name : $nama\n"; $content.="e-mail : $email\n"; $content.="address : $alamat\n"; $content.="message: $pesan\n"; mail($to,$subject,$content,$from); echo("thank you for your visit:\n");?> </body> </html> S1 Teknik Informatika - Unijoyo 34
Summary Beberapa fungsi umum yang disediakan di PHP yang dapat langsung digunakan, misalnya fungsi string, fungsi date dan fungsi mail Enkripsi data diperlukan dalam proses authentikasi sehingga data user beserta passwordnya tidak dapat dibaca oleh orang lain bahkan oleh seorang administrator sekalipun Dalam pemrosesan file, terdapat tiga tahap pengaksesan yaitu membuka file, memproses file/manipulasi file dan menutup file Modularisasi adalah penyusunan/pembuatan program berdasarkan modul-modul (dapat berupa prosedur ataupun fungsi) Session dan cookie dapat digunakan untuk mencatat jejak (track) tertentu yang dilakukan oleh pengunjung website S1 Teknik Informatika - Unijoyo 35
Daftar Pustaka Chris Bates [2006]. Web Programming: Building Internet Applications, Third Edition, John Wiley & Sons Ltd, England. Husni [2007]. Pemrograman Database Berbasis Web, Graha Ilmu, Yogyakarta. Sutarman, S.Kom [2003]. Membangun Aplikasi Web dengan PHP dan MySQL, Graha Ilmu, Yogyakarta. http://www.php.net S1 Teknik Informatika - Unijoyo 36