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
StrPos
digunakan untuk menghitung jumlah karakter suatu string sintaks: strlen(string) 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
StrToUpper
digunakan untuk merubah suatu string menjadi huruf kecil (lowercase). sintaks: strtolower(string) 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:
UCFirst
substr_count(“This is a test”,”is”); // menghasilkan nilai 2
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:
[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
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’)
Fungsi md5(‘kata_yang_dienkripsi’)
merupakan perintah enkripsi standar pada UNIX yang memanfaatkan password perng-enkripsi yang disebut ‘salt’ yang terdiri dari dua buah karakter 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);
Fungsi fclose()
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+
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)
fungsi ini mempunyai hasil berupa:
nama_file_sumber adalah nama file yang akan dikopi nama_file_tujuan adalah nama file hasil pengkopian 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)
fungsi ini mempunyai hasil berupa:
nama_file_lama adalah nama file yang akan diganti nama_file_baru adalah nama file pengganti 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:
Welcome back $name and your password is $pass"; echo "Logout"; 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: Fill All Details Logout } } } 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. 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.
2.
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) 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: Counter Anda adalah pengunjung ke : $counter"; ?>
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.
2.
Membuat file php (guestbook_1.php) untuk membuat form pengisian guest book. Data yang dimasukkan adalah nama, alamat email, alamat, dan pesan 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: Guestbook S1 Teknik Informatika - Unijoyo
33
File guestbook_2.php : Guestbook "; $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"); ?>
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