Pemrograman Basis Data
Berbasis Web
Pertemuan Ke-9
(PHP Dasar [2])
Sub Pokok Bahasan
Fungsi-fungsi umum
Enkripsi dan integritas data
Pemrosesan file
Modularisasi
Mengenal Cookie
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
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
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”
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
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
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”;
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
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
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
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
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
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:
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:
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:
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
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()
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()
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
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,
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
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
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>";
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.
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 {
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
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.
Contoh aplikasi dengan
menggunakan PHP
Membuat Counter
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
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>"; ?>
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
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>
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>
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)
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.