pemrograman basis data berbasis web 09 · pemrograman basis data berbasis web pertemuan ke-9 (php...
TRANSCRIPT
S1 Teknik Informatika - Unijoyo 1
Pemrograman Basis Data Berbasis Web
Pertemuan Ke-9(PHP Dasar [2])Noor [email protected]
S1 Teknik Informatika - Unijoyo 2
Sub Pokok Bahasan
Fungsi-fungsi umumEnkripsi dan integritas dataPemrosesan fileModularisasiMengenal CookieContoh aplikasi dengan menggunakan PHP
S1 Teknik Informatika - Unijoyo 3
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 4
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 5
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 6
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 7
Fungsi DateSintaks: 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 8
Fungsi Mail Sintaks:
mail(string tujuan , string subject , string isi [, string header] );
Contoh:$pengirim = “From: [email protected]”;$tujuan = “[email protected]”;$subject = “Pemberitahuan”;$isi = “Ini adalah percobaan pengiriman e-mail dengan
menggunakan PHP”;mail($tujuan,$subject,$isi,$pengirim);
S1 Teknik Informatika - Unijoyo 9
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 10
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 11
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 file2. Memproses file/manipulasi file3. Menutup file
S1 Teknik Informatika - Unijoyo 12
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 13
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 14
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 15
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 16
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 17
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 18
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 19
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 20
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 21
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 22
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 23
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 24
File index.php:<?php//memeriksa jika cookie disetif (!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 25
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 26
File login.php:<?phpif(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 27
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 28
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 29
Contoh aplikasi dengan menggunakan PHP
Membuat Counter Membuat Guest Book (Buku Tamu)
S1 Teknik Informatika - Unijoyo 30
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 31
File counter.txt0
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 32
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 33
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 34
File guestbook_2.php :<html><head> <title> Guestbook </title> </head><body bgcolor="#99CCFF"><font color="#000066" face="Helvetica" size="2">
<?php$to="[email protected]";$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>