Pemrograman Web

PHP dan MySQL

Membuat Website Menggunakan PHP dan MySQL Dibuat Khusus Untuk Peserta Pelatihan Pemrograman Web

Kerja sama antara Forum Website BPKP dengan Pusat Informasi Pengawasan BPKP

Bab

1

PENGANTAR
Apa itu PHP..?
PHP (PHP : Hypertext Preprocessor) adalah bahasa pemrograman yang didesign khusus untuk pembuatan website dinamis dan interaktif. Dinamis dalam arti bahwa konten (isi) dari halaman-halaman web yang diakses dapat berubah setiap saat. Interaktif dalam arti dapat memberikan respon berdasar input dari user. Perhatikan dua gambar berikut:

Gb. 1. Akses Halaman Statis Pada gambar diatas, user (menggunakan browser) mengakses alamat www.mysite.org/page.html. Melalui jaringan internet, akses akan diterima oleh webserver. Webserver akan mencari halaman yang diminta oleh user dan mengirimkannya kembali dan halaman akan muncul di browser user.

Proses yang terjadi di webserver hanyalah pencarian halaman (file) yang diminta dan kemudian mengirimkannya kembali. Selama file page.html tidak diubah oleh pemiliknya, maka tampilan yang akan didapatkan tetap sama (statis) Pada gambar berikut:

Gb. 2. Akses Halaman Dinamis Pada gambar diatas, user (menggunakan browser) mengakses alamat www.mysite.org/page.php. Melalui jaringan internet, akses akan diterima oleh webserver. Webserver (setelah dikonfigurasi tentunya) mengetahui bahwa halaman yang diminta harus diproses terlebih dahulu oleh scripting engine. Maka request (permintaan akan diteruskan ke scripting engine. Scripting Engine akan membaca file yang diminta, memprosesnya (mungkin dalam prosesnya akan melakukan koneksi ke system, database atau email) dan mengirim hasil proses tersebut kembali ke web server. Dari sini barulah webserver mengirim kembali hasil proses scripting engine tadi (dalam format yang dikenali oleh browser) ke browser user. Hasil yang diterima oleh user tidak bergantung pada berubah atau tidaknya file page.php melainkan pada proses interpretasi yang terjadi. Jika page.php melakukan koneksi dan membaca sebuah tabel dari database, maka isi halaman yang akan tampil tergantung pada isi dari tabel tersebut.

Instalasi
Jika proses interaksi antar user (browser) dengan webserver dari sebuah website dinamis mengikuti proses seperti gambar ke 2, maka muncul pertanyaan: Apakah untuk pengembangan (pembuatan) website dinamis harus mempunyai beberapa komputer sekaligus, satu untuk user / programmer, satu untuk webserver dan satu lagi untuk database server? Jawabannya adalah TIDAK. Kita dapat menginstalasi webserver (dan scripting engine-nya) sekaligus database servernya dalam satu komputer. Namun proses seperti dalam gambar 2 tersebut tetap tidak berubah, hanya saja ini terjadi dalam komputer yang sama. (Browser, Web Server, Scripting Engine dan Database server).

Apache, PHP dan MySQL
Instalasi Terpisah Kita dapat melakukan instalasi Apache (web server), PHP (scripting engine -nya) dan Database MySQL secara terpisah. Instalasi terpisah tidak dibahas pada buku ini. Jika tertarik untuk melakukannya secara terpisah silahkan merujuk ke situsnya: Apache (www.apache.org) PHP (www.php.net) Mysql (www.mysql.com) Instalasi Terpadu (Bundle) Banyak pihak telah membuat paket-paket instalasi terpadu, dimana hanya dengan menggunakan satu installer, maka kita akan mendapatkan Apache Web Server, PHP dan MySQL-nya sekaligus. Beberapa paket instalasi terpadu ini antara lain : WAMP Server (www.wampserver.com) Foxserv (www.foxserv.net) PhpTriad (http://sourceforge.net/projects/phptriad/) XAMPP (www.apachefriends.org) Buku ini akan menggunakan paket instalasi dari XAMPP untuk platform Microsoft Windows (untuk platform lain, mis. Linux, silahkan merujuk ke situsnya. Pada saat buku ini ditulis, versi XAMPP terbaru adalah XAMPP 1.7.3 Instalasi XAMPP For Windows. Unduh paket XAMPP untuk platform Windows www.apachefriends.org. Jalankan file hasil unduh tersebut (xampp-win32-1.7.3.exe) Muncul layar seperti berikut :

-

dari

situs

Perhatikan pada isian Destination folder. Jika kita ingin mengubahnya, tekan browse, dan tentukan di folder mana kita akan menyimpan hasil instalasi. Jika diterima seperti default diatas, itu berarti kita akan melakukan instalasi di drive C:\. Dengan nama folder xampp. Tekan Install Proses instalasi akan dimulai. Tunggu sampai muncul layar berikut:

Jawab y untuk membuat shortcut di desktop anda. Muncul layar berikut:

Jawab y Muncul layar berikut:

Jawab n Muncul layar berikut:

Tekan Enter Muncul layar berikut:

Tekan Enter (Meskipun pilihannya sebenarnya salah). Muncul layar berikut:

Untuk saat ini kita pilih x (Exit) terlebih dahulu.

Menjalankan web server dan MySQL server Double click icon XAMPP Control Panel (di desktop) atau Browse folder C:\\xampp\ (menggunakan Windows Explorer). Double Click file xampp-control.exe (Catatan: folder disesuaikan dengan folder tempat kita menyimpan instalasi xampp) Muncul layar berikut

Tekan tombol start pada Apache dan MySQL sehingga tampak seperti berikut:

Buka Browser, ketikkan pada addess bar: http://localhost <enter> Jika browser kita menampilkan halaman seperti berikut ini:

Ini berarti proses instalasi XAMPP telah berhasil dilakukan. Untuk keperluan pelajaran selanjutnya dalam buku ini, kita harus mengubah default halaman ke folder tempat kita membuat program. Dalam buku ini diasumsikan semua program akan dibuat di folder c:\\workshop. - Buat folder workshop di drive C: - Stop Apache (dari xampp-controlpanel). - Buka file httpd.conf yang ada di folder c:\xampp\apache\conf\ dengan text editor. (ingat, sesuaikan dengan folder tempat kita melakukan instalasi) - Cari baris berikut: DocumentRoot "C:/xampp/htdocs" Ganti dengan: DocumentRoot "C:/workshop" - Cari baris berikut <Directory "C:/xampp/htdocs"> Ganti dengan: <Directory “C:/workshop”> - Simpan kembali file tersebut. - Start Apache (dari xampp-controlpanel) - Buka browser, ketik di adress bar http://localhost <enter> Jika browser menampilkan halaman berikut:

Berarti perubahan pada file httpd.conf telah berhasil. - Mari kita testing sekali lagi dengan membuat program PHP pertama kita. Buka teks editor, ketikkan kode program dibawah ini
<?php $nama = “EkoBayong”; echo “Selamat datang “ . $nama; phpinfo(); ?>

Simpan dengan nama file testing.php ke folder c:\\workshop. (untuk selanjutnya tidak akan dikatakan ke folder mana anda menyimpan, kecuali jika berbeda dari default diatas.) - Buka broswser. Ketik pada adress bar : http://localhost/testing.php - Browser akan menampilkan halaman seperti berikut:

- Lho... kok beda...? pasti... !!! Karena seharusnya browser kita menampilkan halaman seperti berikut:

- Ok. Instalasi Apache, PHP dan MySQL selesai.

Software Lain
- SQLYog Community Edition Software ini digunakan untuk melakuan manajemen dan administrasi MySQL. Pada saat buku ini dibuat, versi SQLYog Community Edition ini adalah SQLyog85community. SQLYog Community Edition dapat diunduh dari http://code.google.com/p/sqlyog/ - Teks Editor Untuk membuat program php, kita dapat menggunakan text editor apapun (mis. notepad, crimson editor, Notepad++) atau menggunakan IDE (Integrated Development Environtment) semacam Komodo Edit, Eclipse, Zend Studio, Netbeans dan sebagainya.

Browser
Anda bisa menggunakan browser apapun (Internet Expoler, Mozilla Firefox, Opera, Google Chrome dan sebagainya)

Lain-lain
- Secangkir kopi dan sebungkus snack. - Sediakan juga obat sakit kepala untuk mengatasi pusing karena belajar bahasa pemrograman. - Sabar dan tawakal.

Bab

2

DASAR-DASAR BAHASA PHP
Pada bab sebelumnya, kita telah mempersiapkan hal-hal yang diperlukan untuk melakukan pemrograman PHP. Pada bab ini kita akan mempelajari konsep dasar PHP meliputi variabel, tipe data, operator dan konstanta.

Variabel
Variabel adalah bagian mendasar dari setiap bahasa pemrograman. Variable adalah wadah untuk menyimpan nilai tertentu. Isi sebuah variable dapat diubah sepanjang jalannya program. Kemampuan ini yang membuat variabel begitu berguna. Perhatikan potongan kode program PHP berikut ini:
<?php echo 2 + 5 ?>

Jika dijalankan program tersebut akan menghasilkan output : 7. Hal ini benar, bagaimanapun jika kita menginginkan mencetak nilai yang lain, katakanlah 10 + 15 maka kita harus menulis baris program yang lain. Atau, anggaplah kita menghadapi situasi dimana kita harus menampilkan hasil sebuah query yang sama ke sebuah tabel berkali-kali selama jalannya program.
<?php echo “query ke sebuah table”; ---------echo “query ke sebuah table”; ?>

Perhatikan bahwa tanpa variable, kita harus mengulang query tersebut ditempattempat yang membutuhkannya. Sangat tidak efektif jika query-nya cukup panjang. Berbeda dengan yang berikut:
<?php $query = “query ke sebuah tabel”;

echo $query; ---------echo $query; ?>

Lebih ringkas... kita cukup menuliskan query di satu tempat,masukkan ke sebuah variabel ($query) dan ketika kita membutuhkannya kembali, kita cukup menggunakan variabelnya saja.

Aturan Penamaan Variabel.
Di PHP, aturan penamaan variabel adalah sebagai berikut:  Nama variabel diawali dengan tanda $  Karakter pertama sesudah $ harus berupa huruf atau tanda _ (underscore)  Karakter selebihnya dapat berupa huruf, angka atau _ tanpa batasan panjang. Nama variable bersifat Case-Sensitive (membedakan antara huruf besar dan kecil), $Variable dan $variable adalah dua variabel yang berbeda. Meskipun panjang nama variabel tidak dibatasi, tetapi membuat nama variabel lebih dari 30 karakter tidaklah praktis karena memudahkan kita melakukan kesalahan penulisan nama variable. Juga gunakan nama variabel yang menggambarkan isinya. $nama_pegawai tentu lebih menggambarkan isinya dibandingkan dengan $np misalnya.

Tipe Data
Tipe data di PHP meliputi :  Tipe Data Scalar Tipe data scalar adalah tipe data yang hanya mengandung nilai tunggal. PHP mempunyai 4 tipe data scalar sebagai berikut (beserta contoh):
Tipe Data Integer Float String Boolean 78 9,15 “Selamat Datang” TRUE true FALSE False Contoh

 Tipe Data Compound Tipe data compound dapat mengandung lebih dari satu nilai. Tipe data compound di PHP adalah Array dan Object.  Tipe Data Spesial PHP mempunyai 2 tipe data spesial, yaitu Resource (referensi ke sebuah sumber eksternal, database misalnya. ) dan NULL (variable yang tidak mengandung nilai apapun).

Konstanta
Jika sebuah variable dapat diubah isinya sepanjang jalannya program, konstanta digunakan untuk menyimpan nilai tetap dan tidak dapat diubah. Konstanta didefinisikan menggunakan fungsi define(). Aturan penamaan hampir mirip dengan aturan penamaan variable kecuali tanda awal $. Konstanta juga bersifat Case-Sensitive. Pada prakteknya, penamaan konstanta selalu menggunakan huruf kapital. Konstanta hanya dapat menampung nilai Boolean, Integer, Float dan String. Contoh :
<?php define(“NAMA_APLIKASI”, “Aplikasi Sistem Informasi Kepegaw aian”); define(“VERSI”, “2.00”); echo NAMA_APLIKASI . VERSI; ?>

Operator
Operator adalah simbol yang digunakan untuk memanipulasi satu atau lebih nilai, biasanya menghasilkan sebuah nilai baru dalam prosesnya. Operator dalam PHP dibagai ke dalam 10 kelompok sebagai berikut :
Tipe Arithmetic (Aritmetika) Assigment (Penugasan/Penempatan) Bitwise Comparison (Pembandingan) Error Control Execution Incrementing/ Decrementing Keterangan Melakukan operasi aritmatika pengurangan dan penambahan biasa, seperti

Menempatkan nilai ke sebuah variabel. Melakukan operasi bit individu pada sebuah nilai integer Membandingkan nilai dalam bentuk Boolean (nilai kembalian-nya adalah TRUE atau FALSE) Untuk penanganan kesalahan Digunakan untuk melaksanakan perintah shell. Melakukan penambahan / pengurangan nilai

(Penambahan / Pengurangan) Logical String Array

sebuah variabel Operator Boolean seperti TRUE, FALSE atau NOT Hanya mempunyai penggabungan String satu operator untuk

Melakukan operasi terhadap Array.

Operator Aritmetika
Operator + (Penambahan) - (Pengurangan) * (Perkalian) / (Pembagian) % (Modulus/Sisa pembagian) 11 + 9 = 20 23 – 7 = 16 10 * 9 = 90 10 / 5 = 2 10/2 = 0 Contoh

Operator Penugasan / Penempatan Operator = digunakan untuk menempatkan sebuah nilai ke sebuah variable. Contoh $nama = “John” , $harga = 1000. Tanda = dapat digunakan bersama operator lain untuk memudahkan menuliskan sebuah ekspresi. Sebagai contoh: $total_harga += $harga unit ini sama dengan $total_harga = $total_harga + $harga_unit Operator Logika Operator logika bekerja pada nilai Boolean. Sebelum melihat bagaimana operator logika bekerja, mari kita lihat terlebih dahulu nilai Boolean. Nilai Boolean selalu berisi salah satu dari TRUE atau FALSE. PHP secara otomatis mengevaluasi ekspresi sebagai TRUE atau FALSE saat dibutuhkan. Sebagai contoh, ekspresi berikut dievaluasi ke TRUE
1 10 == 10 9>7 Eko” != “Panjul”

Ekspresi berikut dievaluasi ke FALSE
3 <2 10 == 9 “Eko” == “Panjul”

PHP juga menganggap nilai-nilai berikut sebagai FALSE:
FALSE Integer Zero (0) Float Zero (0.00) String kosong (“”) String Zero (“0”) Array dengan Zero Element NULL

Nilai selain itu dianggap sebagai TRUE dalam konteks Boolean. Berikut adalah operator logika di PHP Operator Contoh
&& (and) and || (or) or xor ! (not) $x && $y $d and $y $x || $y $x or $y $x xor $y !$x

Hasil
TRUE jika kedua nilai $x dan $y TRUE. FALSE jika tidak. TRUE jika kedua nilai $x dan $y TRUE. FALSE jika tidak. TRUE jika salah satu TRUE. FALSE jika tidak (kedua-duanya FALSE) TRUE jika salah satu TRUE. FALSE jika tidak (kedua-duanya FALSE) TRUE jika $x atau $y (tetapi tidak keduanya) TRUE, FALSE jika tidak. TRUE jika $x FALSE dan sebaliknya.

Operator Pembandingan (Comparison) Digunakan untuk membandingkan operand satu dengan lainnya. Nilai yang dihasilkan dari pembandingan ini adalah TRUE atau FALSE. Operator ini banyak digunakan statetemen-statemen pengambilan keputusan dan perulangan. Berikut adalah operator-operator pembandingan di PHP: Operator Contoh
== (equal) != (not equal) === (identical) $x == $y $x != $y $x === $y

Hasil

TRUE jika $x sama dengan $y, FALSE jika tidak TRUE jika $x tidak sama dengan $y, FALSE jika tidak TRUE jika $x sama dengan $y dan ber-tipe sama. FALSE jika tidak

!== (not identical) < (lebih kecil) > (lebih besar)

$x !== $y $x < $y $x > $y

TRUE jika $x sama dengan $y dan tidak bertipe sama, FALSE jika tidak TRUE jika $x lebih kecil dari $y, FALSE jika tidak TRUE jika $x lebih besar dari $y, FALSE jika tidak TRUE jika $x lebih kecil atau sama dengan $y, FALSE jika tidak TRUE jika $x lebih besar atau sama dengan $y, FALSE jika tidak

<= (lebih kecil sama $x <= y dengan) >= (lebih besar $x >= $y sama dengan)

Operator Penambahan/Pengurangan (Incrementing/Decrementing) Sering kali itu sangat berguna untuk menambah atau mengurangi nilai 1 (berulangulang). Situasi ini terjadi begitu sering, misalnya ketika membuat perulangan (looping). Di PHP ada operator khusus yang digunakan untuk melakukan tugas ini yaitu operator Incrementing dan Decrementing. Operator ini ditulis sebagai dua tanda plus atau minus, sebelum atau setelah nama variabel, seperti:
++$x; $x++; --$x; $x-- ; // M enambah satu ke $x dan mengembalikan hasilnya // M engembalikan nilai yang ada di $ x, baru kemudian menambahkan satu ke $x // Mengurangi satu dari $x dan mengembalikan hasilnya // Mengembalikan nilai yang ada di $x, baru mengurangi $x dengan 1

Operator String Operator string hanya ada satu yaitu . (dot) yang digunakan untuk menggabungkan string. Contoh:
<?php $nama_depan = “Eko”; $nama_belakang = “Bayong”; echo $nama_depan . “ ” . $nama_belakang; //atau $nama_lengkap = $nama_depan . “ “ . $nama_belakang; echo $nama_lengkap; ?>

Operator Precedence Perhatikan contoh berikut :
<?php echo 3 + 4 * 10; ?>

Program diatas jika dijalankan akan menghasilkan output 43, bukan 70. Hal ini terjadi karena * level precedence lebih tinggi dari +. Sehingga prosesnya adalah operasi 4 * 10 akan dilakukan terlebih dahulu baru ditambah dengan 3. Berikut adalah tabel operator precedence dari beberapa operator PHP: ++ -(int) (float) (string) (array) (object) (bool) (casting) ! (not) * / % (arithmetic) + - . (arithmetic) < < = > > = < > (comparison) == != === !== (comparison) & & (and) || (or) = += - = *= /= .= %= (assignment) And Xor or Untuk menghasilkan nilai 70 dan bukannya 43 kode program diatas harus diubah menjadi seperti berikut ini:
<?php echo (3 + 4) * 10; ?>

Anda dapat mengubah urutan eksekusi dari operator dalam ekspresi dengan menggunakan tanda kurung. Sehingga kode diatas akan membuat 3+4 dikerjakan terlebih dahulu baru kemudian di * dengan 10.

Bab

3

MULAI MEMBUAT PROGRAM PHP
Program Pertama
Mari kita mulai menulis program PHP kita. Tulis kode berikut :
<html> <head> <title>Program Pertama< /title> </head> <body> < ?php echo "Selamat Datang di Workshop PHP"; ?> </body> </html>

Simpan dengan nama file latihan-1.php Buka browser kita dan ketikkan di address bar http://localhost/latihan-1.php Browser akan menampilkan hasil seperti berikut (menggunakan IE):

Secara default, file yang mengandung program PHP harus disimpan dengan nama file dengan extention .php. Perhatikan contoh program tadi, kita menemukan apa yang disebut dengan PHP Delimiter yaitu <?php ..... ?>. Semua yang kita tuliskan diantara delimiter tersebut akan diterjemahkan sebagai kode PHP dan semua yang ada diluarnya akan diperlakukan sebagai HTML atau teks biasa. Tidak ada batasan berapa banyak blok script PHP (<?php ... ?>). Kita lihat contoh berikut (simpan dengan nama file latihan-2.php):
<?php echo "<html> <head> <title>Program Kedua< /title> </head> <body>"; $nama = "Eko Bayong"; echo $nama . " Selamat Datang di Workshop PHP"; echo "</body> </html> "; ?>

Dalam contoh diatas, semuanya dimasukkan ke dalam blok PHP. Atau contoh berikut (simpan dengan nama file latihan-3.php) :
<html> <head> <title>Program Pertama</title> </head> <body> <?php $nama = "Eko Bayong"; ?> Selamat Datang <?php echo $nama ?> di worksho p PHP <br /> Hari ini tgl : <?php echo date("d-m-Y"); ?> Jam : < ?php echo date("h:m:s"); ?> </body> </html>

Dalam contoh ini kita menjumpai lebih dari satu blok PHP.

Memahami STRING
String adalah sederet karakter yang berada diantara ‘ ‘ (single quote/ tanda petik tunggal) atau “ ” (double quote/tanda petik ganda).

Sintak Tanda Petik Tunggal Mengapit string dalam tanda petik tunggal adalah cara yang paling sederhana untuk membuat string (tidak menerjemahkah variable ataupun karakter khusus). Sintak Tanda Petik Ganda Hampir mirip dengan string yang diapit oleh tanda petik tunggal, kecuali bahwa string yang diapit tanda petik ganda akan menerjemahkan variable atau karakter khusus. Karakter-karakter yang mempunyai arti khusus ini, biasa disebut dengan escape sequence antara lain:
Sequence \n \t \v \\ \” \$ Arti Karakter ganti baris Karakter tab horisontal Karakter tab vertical Karakter Backslash Karakter “ (double quote) Simbol $

Mari kita lihat dalam contoh program (simpan dengan nama file Latihan-4.php):
<?php $gelar_depan = "Dr."; $gelar_belakang = "SE, MM "; $nama_depan = "Ahmad"; //berikut ada tanda petik yang merupakan bagian dari string itu sendiri $nama_belakang = "Rifa\"i"; echo "Nama Pegawai : $gelar_depan $nama_depan $nama_belakang, $gelar_belakang <br />"; //tampilkan kembali menggunakan tanda petik tunggal echo 'Nama Pegawai : $ gelar_depan $nama_depan $nama_belakang, $gelar_belakang<br />'; //tambahkan escape squence echo "Nama Pegawai : \n$ gelar_depan $nama_depan $nama_belakang, \t$gelar_belakang< br />"; echo "==================================================="; ?>

Jika kita tampilkan di browser:

Perhatikan perbedaan antara string yang diapit tanda petik tunggal dan tanda petik ganda. Lantas dimana \n dan \t berada..? \n dan \t tidak akan berpengaruh di browser, tapi pada source code halaman itu. Buka melalui menu view – source (IE) atau CTRL-U jika menggunakan Firefox. Perhatikan source code tersebut.

Memahami ARRAY
Array merupakan sebuah fitur yang powerful dari sebuah bahasa pemrograman karena memudahkan kita untuk bekerja dengan sejumlah besar data yang sama. Misalkan kita menuliskan sebuah program untuk menyimpan 100 data pegawai, daripada harus membuat 100 variabel terpisah ($pegawai1, $pegawai2... $pegawai100) kita dapat membuat satu variabel array $pegawai yang menyimpan informasi semua pegawai tersebut. Anatomi Array PHP mendukung dua tipe array yaitu: 1. Array dengan index (Indexed Array) Ini adalah array dimana setiap elemen direferensikan dengan sebuah index numerik, biasanya mulai dari o. Sebagai contoh, elemen pertama memiliki index 0, elemen ke 2 memiliki index 1 dan seterusnya. 2. Array Asosiatif (Associative Array) Array jenis ini (disebut juga dengan hash atau map) setiap elemen direferensikan dengan index string. Sebagai contoh kita data membuat sebuah array dengan data pegawai dimana data umur kita beri index “umur” Nilai yang dapat disimpan dalam elemen array dapat berupa tipe apapun bahkan dicampur dalam satu array. Jadi array dapat berisi string pada elemen pertama, integer pada elemen kedua dan boolean pada elemen ketiga, bahkan berisi array yang lain.

Membuat Array Cara paling sederhana untuk membuat variable array adalah dengan menggunakan kontruktor array(). Contoh:
$pegawai = array(“ekobayong”, “parmin”, “panjul”);

Baris kode diatas membuat array dengan 3 elemen dengan setiap elemennye berupa string dan disimpan di variable $pegawai. Array ini adalah array dengan index numerik. Untuk mengakses “ekobayong” kita harus menuliskan $pegawai[0] dan untuk mengakses “panjul” kita menggunakan index 2 ($pegawai[2]). Jika kita ingin membuat sebuah array assosiative, dimana elemen-elemennya akan diindex menggunakan string, kita harus menggunakan operator =>. Contoh :
$bukuperpustakaan = array(“judul”=> “Programming Visual Basic”, “thn_terbit” => 2008, “penerbit”=> “Wrox Publishing”, “jml_halaman”=> 520 );

Jika kita ingin menampikan penerbit maka kita tuliskan $bukuperpustakaan[“penerbit”]; dan untuk menampilkan judul kita gunakan $bukuperpustakaan[“judul”];

Membaca (mengambil data) Array
Kita lihat kembali contoh array diatas :
$pegawai = array(“ekobayong”, “parmin”, “panjul”);

Untuk membaca data dari array tersebut kita gunakan index numerik 0, 1 atau 2 jadi: $pegawai[0]  ekobayong $pegawai[1]  parmin Dan $pegawai[2]  panjul. Untuk contoh array asosiatif
$bukuperpustakaan = array(“judul”=> “Programming Visual Basic”, “thn_terbit” => 2008, “penerbit”=> “Wrox Publishing”, “jml_halaman”=> 520 );

Jika kita ingin menampilkan data penerbit maka : $bukuperpustakaan[“penerbit”]  Wrox Publishing $bukuperpustakaan[“jml_halaman”]  520

Array Multidimensi
Seperti telah dikatakan diatas bahwa elemen array juga dapat berupa array, maka kita dapat membuat sebuah array multidimensi. (Juga dikenal sebagai array bersarang karena mereka terdiri dari satu atau lebih array bersarang di dalam array yang lain). Perhatikan contoh berikut :
<?php $databuku = array( array("judul" => "Beginning PHP 5.3", "penerbit" => "Wrox"), array("judul" => "PHP For Absolute Beginner", "penerbit" => "Apress"), array("judul" => "Web Dev elopment with PHP and MySQL", "penerbit" => "Sams Publishing"), array("judul" => "Beginning PHP5, Apache, and MySQL Web Development", "penerbit" => "Wrox") ); echo "<h2>Judul-Judul Buku Rekomendasi< /h2> "; //looping array foreach($databuku as $dba) { foreach($ dba as $key => $value) { echo $key . " : " . $value . "<br />"; } } echo "<hr>"; //akses salah satu elemen saja echo "Akses isi salah satu array : <br />"; echo "Judul : " . $databuku[1 ]["judul"] . "<br /> "; echo "Penerbit : " . $ databuku[1]["penerbit"] . "< br />"; ?>

Pada contoh diatas dibuat sebuah array $databuku dimana elemen-elemennya terdiri dari array. Berikut hasil dari program diatas jika ditampilkan di browser:

Berikut adalah contoh lain dari penggunaan array. Program berikut digunakan untuk menampilkan data tanggal dalam format hari, tanggal bulan tahun dalam bahasa Indonesia.
<?php $array_hari = array("","Senin","Selasa","Rabu","Kamis","Jum'at","Sabtu","M inggu"); $array_bulan = array("01" => "Januari", "02" => "Pebruari", "03" => "Maret", "04" => "April", "05" => "Mei", "06" => "Juni", "07" => "Juli", "08" => "Agustus", "09" => "September", "10" => "Oktober", "11" => "Nopember", "12" => "Desember"); $tanggal = date("d"); $bulan = date("m"); $tahun = date("Y");

$hari = date("N"); $tanggal_id = $array_hari[$hari] . ", " . $tanggal . " " . $array_bulan[$bulan] . " " . $tahun; echo "Tanggal dalam format indonesia: " . $tanggal_id; ?>

Berikut adalah hasil dari program diatas jika ditampilkan dibrowser:

PENGAMBILAN KEPUTUSAN
Sebagaimana bahasa pemrograman lain, PHP mengijinkan kita untuk melakukan operasi pengambilan keputusan menggunakan statement-statement kondisional.

Statemen IF
Statemen kondisional yang paling mudah untuk dimengeri adalah statemen IF. Struktur dari perintah ini adalah sebagai berikut:
If (kondisi) { //blok program }

Jika kondisi yang ada didalam tanda kurung terpenuhi (bernilai True) maka blok program yang ada di antara tanda {..} akan dijalankan. Perhatikan contoh berikut :
<?php $data_absen = array( array("nama" => "Pegawai 1", "jamkerja" => 6), array("nama" => "Pegawai 2", "jamkerja" => 8), array("nama" => "Pegawai 3", "jamkerja" => 9) );

$jamkerja_standar = 8; foreach($data_absen as $da) { $ potongan = "--"; echo "Nama Pegawai : " . $ da["nama"] . "<br />"; echo "Jam Kerja : " . $da["jamkerja"] . "< br>"; //start contoh if statemen if ($da["jamkerja"] < $jamkerja_standar) { $potongan = "Terkena potongan 5%"; } //end echo "Potongan : " . $potongan . "<br />"; } ?>

Jika ditampilkan dibrowser:

Statemen ELSE
Statement else digunakan untuk memberikan alternatif jika kondisi yang ada di statemen if tidak terpenuhi (bernilai false). Struktur dari statement if dengan else :
If (kondisi) { //blok program } else { //blok program alternatif }

Jika kondisi yang ada di statemen if terpenuhi (bernilai true) maka blok program akan dikerjakan, jika kondisi tidak terpenuhi (bernilai false) maka blok program alternatif yang akan di kerjakan. Perhatikan contoh berikut:
<?php $data_absen = array( array("nama" => "Pegawai 1", "jamkerja" => 6), array("nama" => "Pegawai 2", "jamkerja" => 8), array("nama" => "Pegawai 3", "jamkerja" => 9) ); $jamkerja_standar = 8; foreach($data_absen as $da) { $ potongan = "--"; echo "Nama Pegawai : " . $ da["nama"] . "<br />"; echo "Jam Kerja : " . $da["jamkerja"] . "< br>"; //start contoh if statemen if ($da["jamkerja"] < $jamkerja_standar) { $potongan = "Terkena potongan 5%"; } else { $potongan = "Tidak terkena potongan"; } //end echo "Potongan : " . $potongan . "<br />"; } ?>

Jika kita tampilkan di browser:

Kita bisa mengkombinasikan statement else dengan statement if lainnya untuk membuat alternatif sebanyak yang kita inginkan (Nested IF). Perhatikan contoh program berikut:
<?php $tanggal = date("d"); $bulan = date("m"); $tahun = date("Y"); $hari = date("N"); $bulan_id = ""; if ($bulan == "01") { $bulan_id = "Januari"; } elseif ($bulan == "02") { $bulan_id = "Pebruari"; } elseif ($bulan == "03") { $bulan_id = "Maret"; } elseif ($bulan == "04") { $bulan_id = "April"; } elseif ($bulan == "05") { $bulan_id = "Mei"; }

elseif ($bulan == "06") { $bulan_id = "Juni"; } elseif ($bulan == "07") { $bulan_id = "Juli"; } elseif ($bulan == "08") { $bulan_id = "Agustus"; } elseif ($bulan == "09") { $bulan_id = "September"; } elseif ($bulan == "10") { $bulan_id = "Oktober"; } elseif ($bulan == "11") { $bulan_id = "Nopember"; } else { $bulan_id = "Desember"; } echo "Sekarang Bulan : " . $bulan_id; ?>

Program tersebut akan menampilkan nama bulan (dalam bahasa indonesia) tergantung pada tanggal sistem.

Statemen SWITCH, CASE, BREAK, DEFAULT
Statement-statement ini digunakan sebagai alternatif dari IF..ELSEIF..ELSE. terutama jika kita membandingkan variabel yang sama berkali-kali. Mari kita tulis kembali contoh program diatas, kali ini menggunakan statement switch,case,break dan default.
<?php $tanggal = date("d"); $bulan = date("m"); $tahun = date("Y"); $hari = date("N"); $bulan_id = ""; switch ($bulan) { case "01" : $ bulan_id = "Januari";

break; case "02" : $ bulan_id = "Pebruari"; break; case "03" : $ bulan_id = "M aret"; break; case "04" : $ bulan_id = "April"; break; case "05" : $ bulan_id = "M ei"; break; case "06" : $ bulan_id = "Juni"; break; case "07" : $ bulan_id = "Juli"; break; case "08" : $ bulan_id = "Agustus"; break; case "09" : $ bulan_id = "September"; break; case "10" : $ bulan_id = "Oktober"; break; case "11" : $ bulan_id = "Nopember"; break; case "12" : $ bulan_id = "Desember"; default : $ bulan_id = "Nama Bulan....?"; } echo "Sekarang Bulan : " . $bulan_id; ?>

Contoh berikut akan memperlihatkan kembali statement swich :
<?php $array_hari = array("","Senin","Selasa","Rabu","Kamis","Jum'at","Sabtu","M inggu"); $hari = date("N"); $hari_id = $array_hari[$hari]; switch ($hari_id) { case "Senin" : case "Selasa" : case "Rabu" : case "Kamis" : case "Jum'at" : echo "Hari <b> " . $hari_id . "</b> adalah hari kerja"; break; case "Sabtu" : case "Minggu" : echo "Hari<b> " . $hari_id . "< /b> ngapain ke kantor...?"; break; default : echo "Gak Jelas...?"; } ?>

STATEMEN PENGULANGAN
Ide dasar dari pengulangan adalah menjalankan blok kode program secara berulang-ulang samapi suatu kondisi terpenuhi. Seperti dalam statemen pengambilan keputusan, statemen pengulangan membutuhkan ekspresi yang menghasilkan nilai true atau false. Jika ekspresi menghasilkan nilai true maka pengulangan akan berlanjut. Jika ekspresi menghasilkan false maka eksekusi akan keluar dari pengulangan ke baris pertama dibawah struktur pengulangan tersebut. Statemen-statemen pengulangan di PHP yaitu : - while - for

Statement WHILE
Struktur statemen while adalah seperti berikut:
while ( ekspresi ) { //blok kode }

Atau
while (ekpresi) : //kode program endwhile;

Perhatikan contoh program berikut:
<?php $i = 1; while($i <= 100) { echo $i . "<br /> "; $i++; } ?>

Program diatas akan menampilkan hasil berupa daftar angka 1 s.d. 100. Perhatikan ekspresi yang ada didalam while. Berikut juga contoh penggunaan while:
<?php $array_hari = array("","Senin","Selasa","Rabu","Kamis","Jum'at","Sabtu","M inggu"); $i = 1; while($i <= 7) { echo $array_hari[$i] . "<br />"; $i++; } ?>

Jalankan program tersebut.

Statement FOR
Struktur statemen for adalah sebagai berikut:
for (ekspresi1;ekspresi2,ekspresi3) { //blok program }

Atau
for(ekpresi1;ekpresi2,ekspresi3) : //blok program endfor;

Ekspresi pertama (ekspresi1) dievaluasi (dieksekusi) sekali tanpa syarat pada awal iterasi. Disetiap awal iterasi, ekspresi2 akan dievaluasi di setiap iterasi. Jika ekpresi2 menghasilkan true, iterasi berjalan terus dan blok program akan dijalankan. Jika ekspresi2 menghasilkan false, iterasi akan berhenti. Ekpresi3 akan dijalankan pada akhir setiap iterasi. Perhatikan contoh berikut:
<?php $array_hari = array("","Senin","Selasa","Rabu","Kamis","Jum'at","Sabtu","M inggu"); for($i=1;$i<=7;$i++) { echo $array_hari[$i] . "<br />"; } for($i=1;$i<=100;$i++) : echo $i . " - "; endfor; ?>

Ekspresi pertama (EXPR1) dievaluasi (dieksekusi) sekali tanpa syarat pada awal loop. Di awal setiap iterasi, expr2 dievaluasi. Jika mengevaluasi TRUE, loop terus dan pernyataan bersarang (s) dijalankan. Jika dievaluasi ke FALSE, pelaksanaan loop berakhir. Pada akhir setiap iterasi, expr3 dievaluasi (dijalankan).

FUNGSI
Fungsi adalah sebuah kode blok yang digunakan untuk melakukan tugas tertentu. Fungsi adalah bagian penting dari setiap bahasa pemrograman. Fungsi berguna untuk beberapa alasan: - Menghindari duplikasi kode. - Memudahkan mengeliminasi kesalahan. - Dapat digunakan ulang pada script atau aplikasi lain. - Membantu dalam pembuatan proyek-proyek besar.

Memanggil Fungsi
Sebuah fungsi dapat berupa fungsi built-in (bawaan) atau fungsi yang didefinisikan sendiri oleh kita. Cara memanggil fungsi (baik built-in maupun UDF) : $var = nama_fungsi([parameter1,parameter2....]);

Jumlah parameter yang dikirim akan berbeda, tergantung fungsi-nya dan bahkan mungkin berbeda untuk fungsi yang sama. Parameter yang dikirim harus valid dan dalam urutan tertentu seperti yang diharapkan oleh fungsi. Fungsi juga mungkin akan mengembalikan sebuah nilai. Berikut beberapa contoh fungsi built-in : //menghitung panjang sebuah string $panjang = strlen(“PHP”); // $panjang akan berisi nilai 3. //bulan dari tanggal sistem (January, February dsb). $bulan = date(“F”); //$bulan akan berisi July (saat modul ini ditulis) PHP menyediakan banyak sekali fungsi built-in (lebih dari 700 fungsi). Kita bisa mendapatkannya dalam manual PHP (dowload di www.php.net).

Membuat dan Menggunakan Fungsi
Jika diperlukan (seringkali) kita membuat fungsi sendiri. Sintaks untuk membuat fungsi adalah sebagai berikut: function namafungsi([parameter1,parameter2....] { //blok program } Nama fungsi dapat berupa string yang dimulai dengan huruf atau garis bawah diikuti dengan nol atau lebih huruf, garis bawah, dan digit. Nama Fungsi bersifat case-insensitif. Biasanya, fungsi mengembalikan nilai tertentu. Untuk mengembalikan nilai dari fungsi, gunakan return. Ketika pernyataan return ditemui pada saat menjalankan fungsi, maka alur program akan kembali ke program pemanggil. Contoh program:
<?php function html_header($title= "Belum ada Judul") { echo "<html> <head> <title>$title</title> </head> <body>"; } function html_footer() { echo "< body>< /html> "; } function translate_to_day_id($hari) { $array_hari = array("","Senin","Selasa","Rabu","Kamis","Jum'at","Sabtu","Minggu"); return $array_hari[$hari]; }

function translate_date_to_id($tanggal) { $array_bulan = array("01" => "Januari", "02" => "Pebruari", "03" => "M aret", "04" => "April", "05" => "M ei", "06" => "Juni", "07" => "Juli", "08" => "Agustus", "09" => "September", "10" => "Oktober", "11" => "Nopember", "12" => "Desember"); $bln = substr($tanggal, 5, 2); $tahun = substr($tanggal, 0, 4); $tanggal = substr($tanggal, 8, 2); $date_id = $tanggal . " " . $ array_bulan[$ bln] . " " . $tahun; return $date_id; } function br($jumlah=1) { for($i=0;$i<=$jumlah;$i++) { echo "<br />"; } } //program yang menggunakan fungsi- fungsi diatas. html_header("Contoh Fungsi"); echo "Hari ini : " . translate_to_day_id(date("N")); echo br(3); echo translate_date_to_id(date("Y-m-d")); //contoh yang salah (tanpa parameter sedangkan di definisi fungsi mengharuskan ada parameter) echo translate_to_day_id(); html_footer(); ?>

BEKERJA DENGAN FORM
Bagian terpenting dari PHP sebagai bahasa pemrograman untuk membuat sebuah web yang interaktif adalah kemampuan menerima dan kemudian memproses data yang dikirim user. Salah satu cara yang paling umum untuk menerima masukkan dari user (pengguna) aplikasi web adalah melalui form HTML.

Form HTML
Sekilas kita akan kembali melihat bagaimana form HTML dibuat. Sebuah form HTML dibuat menggunakan tag-tag HTML untuk input, seperti <input>, <select>, <textarea>. Form HTML diawali dengan tag <form> dan diakhiri dengan tax </form> Mari kita lihat contoh form HTML Login berikut ini (kode HTML berikut dimasukkan ke file program php. Bukan file HTML biasa:
<?php function html_header($title= "Belum ada Judul") { echo "<html> <head> <title>$title</title> </head> <body>"; } function html_footer() { echo "< body>< /html> "; } html_header(); ?> <h3>Login Page< /h3> <form name="login" action="dologin.php" method= "post"> Username< br /> <input type="text" name="username"><br /> Password< br /> <input type="password" name= "password" /><br /> <input type="submit" value= "Login" /> </form> <?php html_footer(); ?>

Perhatikan pada tag form, atribut action memberitahukan lokasi file yang akan menerima data dari form tersebut. Atribut method digunakan untuk menentukan bagaimana data akan dikirim. Apakah dikirim sebagai variable (menggunakan GET) dan melekat ke URL atau dikirim sebagai bagian dari transaksi protokol HTTP.

Catatan tentang metode GET: - Metode ini menambahkan data ke URL dengan pasangan namavariableform=nilai. - Metode ini berguna untuk pengiriman form dimana pengguna ingin menandai hasilnya (bookmark) - Tidak ada batas untuk banyak data yang dapat ditempatkan di URL (bervariasi antar browser). Oleh karena itu kita tidak dapat memastikan bahwa semua data dari form HTML akan benar-benar ditransfer. - Jangan menggunakan metode ini untuk menyampaikan informasi yang sensitif. (Password atau informasi lainnya. Catatan tentang metode POST - Metode ini mengirimkan data form sebagai bagian dari transaksi HTTP. - Form dengan metode pengiriman POST tidak dapat ditandai (bookmark) - Merupakan metode yang lebih aman untuk mengirimkan data dan tidak memiliki batas besaran data yang akan dikirim. Jika contoh program diatas diubah dengan method=”GET” maka ketika ketika tombol submit (login) ditekan, url akan berubah menjadi (http://www.domain.com/ dologin.php?username=ekobayong&password=ddd). Apakah ini cara yang tepat...

?

Mari kita coba lagi membuat sebuah form yang lebih lengkap, sekaligus contoh program yang digunakan untuk memprosesnya dalam satu file. Form ini berupa form pendaftaran pelatihan. Form berupa isian data : - Namalengkap - Tgl. Lahir (dipisahkan antara tanggal, bulan, dan tahun). Pilihan tahun hanya 25 tahun terakhir. - Jenis Kelamin - Alamat - Kota - Kode Post - Nomor Telepon - Email - Keterangan Tambahan Setelah form diisi dan dikirim, program akan menampilkan data isian tersebut.
<?php function html_header($title= "Belum ada Judul") { echo "<html> <head> <title>$title</title> <style> *{ font-family:v erdana; font-size:11px; } #dataterkirim { background-color: silver;

} input, textarea { border:1px solid silver; } < /style> </head> <body>"; } function html_footer() { echo "< body>< /html> "; } $array_bulan = array("01" => "Januari", "02" => "Pebruari", "03" => "M aret", "04" => "April", "05" => "M ei", "06" => "Juni", "07" => "Juli", "08" => "Agustus", "09" => "September", "10" => "Oktober", "11" => "Nopember", "12" => "Desember"); //jika ada pengiriman data html_header("Pendaftaran"); echo "<h3>Pendaftaran< /h3>"; if($_POST) { //tampilkan datanya echo "<div id='dataterkirim'>"; echo "<h3>Data Terkirim</h3>"; echo "Nama : < br />< b>" . $_POST["nama"] . "< /b><br /> "; //tgl $tgl = $_PO ST["tgl"]; $ bulan = $_POST["bulan"]; $tahun = $_POST["tahun"]; echo "Tgl.Lahir: < br /><b>" . $tgl . " " . $array_bulan[$bulan] . " " . $tahun . "</b><br />"; echo "Jenis Kelamin: < br /><b>"; echo ($_POST["jk"] == "L ") ? "Laki-Laki" : "Perempuan";

echo "</b><br />"; echo "Alamat: <b><br />" . $_POST["alamat"] . "< /b><br /> "; echo "Kota:<b><br />" . $_POST["kota"] . " " . $_POST["kodepos"] . "< /b><br />"; echo "No. Telepon/HP<b>< br /> " . $_POST["kodepos"] . "</b>< br /> "; echo "Email<b><br />" . $_POST["email"] . "</b><br />"; echo "Keterangan< b><br />" . $_POST["keterangan"] . "<b><br />"; echo "</div>"; } ?> <form name="pendaftaran" action= "" method= "post"> Nama : <br /> <input type="text" name="nama" size="20" maxlength= "100" /><br /> Tgl. L ahir:<br /> <select name= "tgl"> <?php //gunakan for untuk mengisi option dari 1 s.d. 31 for($i=1;$i<=31;$i++) { echo "<option value=$i>$i</option> "; } ?> </select> <select name= "bulan"> <? foreach($array_bulan as $key => $value) { echo "<option value=$key>$value</option>"; } ?> </select> <select name= "tahun"> < ?php $tahun = date("Y"); $start = $tahun - 25; for($start;$start<=$tahun;$start++) { echo "<option v alue=$start>$start</option>"; } ?> </select><br /> Jenis Kelamin<br />

<input type="radio" name="jk" v alue="L" checked="checked" />Laki-Laki <input type="radio" name="jk" v alue="P" />Perempuan<br /> Alamat:< br /> <textarea name="alamat" rows="3" cols= "70"></textarea><br /> Kota:<br /> <input type="text" name="kota" size= "30" maxlength="50" /><br /> Kode Post:<br /> <input type="text" name="kodepos" size="10" maxlength= "5" /><br /> No. Telepon :<br /> <input type="text" name="notelp" size= "15" maxlength="15" /><br /> Email :<br /> <input type="text" name="email" size="15" maxlength= "15" />< br /> Keterangan Tambahan:<br /> <textarea name="keterangan" rows= "5" cols="70"></textarea><br /> <input type="submit" value= "Daftar" /> </form> <?php html_footer(); ?>

Berikut tampilan dibrowser:

Bab

4

BEKERJA DENGAN DATABASE

MySQL
Pada prinsipnya, kita dapat menggunakan database yang lain selain MySQL. Ada banyak sekali database yang didukung oleh PHP, dari MySQL, PostgreSQL, Microsoft SQL Server, Oracle, Db2 dan lain-lain. Pada buku ini kita akan menggunakan MySQL. Sekedar diketahui, database ini merupakan database yang paling banyak digunakan oleh programmer web dengan beberapa alasan berikut: - Merupakan satu database yang paling populer digunakan di pemrograman web. - Tersedia secara bebas (download, install, use). - Mudah untuk diinstall di berbagai sistem operasi (Termasuk UNIX, Windows, MAC dan LINUX). - Hampir semua perusahaan penyedia jasa layanan Hosting mendukung MySQL. - Cepat dan mampu digunakan untuk database besar dan kompleks.

Instalasi MySQL di Windows.
Pada bab I kita telah melakukan instalasi MySQL menggunakan paket installer XAMPP. Ini berarti MySQL telah siap digunakan.

Log in ke MySQL.
Catatan: Sesuai dengan instalasi pada Bab I, tambahkan path untuk program-program MySQL ke PATH di environment variable komputer kita. Pada buku ini tambahkan path C:\xampp\mysql\bin . Untuk login ke MySQL, tulis perintah ini di konsole (command prompt). mysql –u root (untuk instalasi menggunakan XAMPP, password root masih kosong). Sehingga perintah diatas akan langsung membawa kita ke konsol MySQL. (parameter –u adalah untuk menentukan user yang akan dipakai untuk login. Saat ini kita akan menggunakan login dengan root. Pada aplikasi yang sebenarnya kita harus membuat user lain, dan jangan pernah menggunakan user root untuk aplikasi. User root adalah user tertinggi dalam sistem MySQL). Perintah diatas akan membawa kita ke konsol MySQL seperti tampak berikut ini (mungkin sedikit berbeda):

Membuat Hak Akses
Perintah untuk memberi hak akses mempunyai format sebagai berikut:
GRANT privileges [column] ON item TO username [IDENTIFIED BY „password‟] [WITH GR ANT OPTION]

Kali ini kita akan memberikan privileges baru untuk root dengan password ‘x’.
mysql>> grant all privileges on *.* to root@localhost i dentified by “x” with grant option;

Arti dari perintah diatas adalah : Berikan semua privileges pada semua database dan table ke user root di localhost, password = x dan hak untuk memberikan hak akses (grant) kepada user lain. (mysql>> adalah tanda konsol mysql. Bukan merupakan bagian dari perintah yang kita jalankan).

Membuat Database
Format perintah untuk membuat database baru:
mysql>> create database namadatabase;

Mari kita buat sebuah database blog untuk kepentingan latihan berikutnya pada buku ini.
mysql>> create database blog;

Untuk menampilkan daftar database yang sudah ada gunakan perintah:
mysql>> show databases;

Untuk menghapus database yang sudah tidak diperlukan lagi :
mysql>> drop namadatabase;

Untuk mengaktifkan / menggunakan salah satu database yang ada gunakan perintah:
mysql>> use namadatabase;

Membuat Tabel
Format perintah untuk membuat sebuah table adalah sebagai berikut:
CREATE TABLE namatabel ( namafiel d type [option],...);

Contoh: Mari kita buat dua buah tabel untuk membuat sebuah blog sederhana. 1 tabel untuk menyimpan setiap posting kita, 1 tabel untuk menyimpan komentar dari pengunjung. Struktur tabel tersebut adalah sebagai berikut: 1. Tabel posting Nama Field Type Options Id Int(11) Primary key, auto increment Judul Varchar(255) Pengantar Text Isi Text Tglposting Datetime 2. Tabel komentar Nama Field Id Nama Email Isi Tglkomentar Posting_id 3. Tabel User Nama Field Id Username Password Lastlogin Membuat tabel posting.
mysql>> create tabl e posting(id integer primary key auto_increment,judul varchar(255), pengantar text,isi text,tglposting datetime);

Type Int(11) Varchar(255) Varchar(255) Text Datetime Int(11)

Options Primary key, auto increment

Type Int(11) Varchar(255) Varchar(255) Datetime

Options Primary key, auto increment

Membuat tabel komentar
mysql>> create tabl e komentar(id integer pri mary key auto_increment,nama varchar(255), email varchar(255),isi text,tglkomentar datetime,posting_id integer);

Membuat tabel user
mysql>> create tabl e user(id integer pri mary key auto_increment,username varchar(255), password varchar(255),lastl ogin datetime) ;

Menampilkan Tabel yang ada di Database
mysql>> show tabl es;

Menampilkan deskripsi tabel.
mysql>> desc namatable;

Contoh:
mysql>> desc posting;

akan menampilkan informasi seperti berikut:

Mengisi Tabel
Untuk mengisi data ke dalam tabel kita gunakan perintah insert. Format perintah insert adalah sebagai berikut:
INSERT [INTO] namatable (colum1,colum2,c olum3...) VALUES(value1,val ue2,value3....)

Contoh: Mari kita masukkan data-data berikut ke dalam tabel posting Judul Pengantar Isi Tglposting Pemrograman Web Banyak bahasa yang Mau membuat 2010-07-10 20:10:45 harus dipilih... mau program web..? pilih yang mana..? Terdapat banyak sekali bahasa pemrograman yang bisa digunakan.... Pemrograman Desktop Mulai dari Visual Basic Mana pilihan yang 2010-08-10 13:01:45 sampai Java... mulai C, tepat ketika harus C++ sampai bahasa menentukan bahasa yang kurang kita pemrograman untuk kenal... aplikasi desktop....

mysql>> insert into posting (judul,pengantar,isi,tglposting) values(“Pemrograman Web”, “Banyak bahasa yang harus dipilih... mau pilih yang mana..?”,“M au membuat program web..? Terdapat banyak sekali bahasa pemrograman yang bisa digunakan....”, “2010-07-10 20:10:45”); mysql>> insert into posting(judul,pengantar,isi, tglposting) values(“Pemrograman Desktop”, “Mulai dari Visual Basic sampai Java.. mulai C, C++ sampai bahasa yang kurang kita kenal..”, “Mana pilihan yang tepat ketika harus menentukan bahasa pemrograman untuk aplikasi desktop....”, “2010-08-10 13:01:45)”;

Catatan: field /kolom auto_increment akan diisi secara otomatis oleh MySQL.

Menampilkan Data
Perintah untuk menampilkan data SELECT. Format perintah ini adalah sebagai berikut:
SELECT field FROM namatabel [WHER E kondisi] [GROUP BY group_type] [ORDER BY order_type][LIMIT limit_criteria];

Contoh: - Menampilkan semua data dari tabel posting select * from posting; - Menampilkan judul,pengantar dari tabel posting select judul,pengatar from posting; - Menampilkan semua data untuk id=2 select * from posting where id=2; - Menampilkan judul,pengantar,tglposting diurutkan berdasarkan tanggal select judul,pengantar,tglposting from posting order by tglposting asc;

Update Data
Perintah untuk update data adalah UPDATE. Format umum perintah ini adalah:
UPDAT E namatabel set fiel d1=ekspresi1,field2=ekpresi2 .... [WHER E kondisi];

Contoh: - Mengubah judul=Pemrograman Web menjadi Pemrograman Berbasis Web update posting set judul="Pemrograman Berbasis Web" where judul="Pemrograman Web"; - Mengubah tglposting menjadi 2010-08-01 08:00 untuk id=2 update posting set tglposting="2010-08-01 08:00" where id=2;

Menghapus Data
Perintah untuk menghapus data adalah DELETE. Format umum perintah ini adalah:
DELETE FROM namatabel [ WHERE kondisi];

Contoh: - Menghapus record dengan judul=”Pemrograman Desktop”; delete from posting where judul=”Pemrograman Desktop”; - Menghapus semua record delete from posting;

Akses MySQL dari PHP
Mari kita lihat contoh berikut: (sebelumnya berikan perintah berikut untuk membuat sebuat user mysql baru dengan nama webuser@localhost password = x. User ini hanya dapat select,update,insert,delete ke database blog. mysql>> grant all privileges on blog.* to webuser@localhost identified by “x”; mysql>> glush privileges; ).
<?php mysql_connect("localhost", "webuser", "x") or die ("Koneksi G agal"); mysql_select_db("blog"); $query = "select * from posting order by tglposting desc;"; $result = mysql_query($query); while($row = mysql_fetch_array($result)) { echo "< b>" . $row["judul"] . "</b>< br /> "; } ?>

Jika kita tampilkan di browser:

Tipikal program PHP yang berinteraksi dengan MySQL adalah sebagai berikut: 1. Lakukan koneksi. 2. Pilih Database 3. Lakukan Query 4. Tampilkan hasilnya. Untuk melakukan koneksi ke database MySQL digunakan perintah: mysql_connect(“host”,”user”,”password”; Untuk memilih database digunakan perintah: mysql_select_db(“namadatabase”); Untuk melaksanakan query digunakan perintah: mysql_query(“query”); Untuk membaca hasil query dapat digunakan perintah-perintah berikut: mysql_fetch_array : Mengambil baris-baris hasil query sebagai array asosiatif, array numerik, atau keduanya mysql_fetch_row : Mengambil baris-baris hasil query sebagai array numerik mysql_fetch_object : Mengambil baris-baris hasil query sebagai obyek mysql_fetch_assoc : Mengambil baris-baris hasil query sebagai array asosiatif. mysql_num_rows : Mendapatkan informasi berapa jumlah baris hasil query mysql_insert_id : Mendapatkan informasi field id auto increment yang dihasilkan dari query terakhir. Proram diatas dapat dijelaskan sebagai berikut: 1. Program melakukan koneksi ke server MySQL yang ada di localhost, menggunakan user webuser dan password x. Perintah die akan dijalankan jika ternyata koneksi gagal dilakukan. Misal password yang kita berikan salah, atau server MySQL sedang tidak berjalan. Perintah die(pesan) akan menyebabkan pesan ditampilkan dilayar dan menghentikan eksekusi program. 2. Program memilih database blog

3. 4. 5.

Menyimpan query (perintah sql) ke dalam variabel $query; Menjalankan perintah query dengan mysql_query($query). Menampilkan hasil looping while terhadap array mysql_fetch_array($result).

hasil

dari

perintah

Mari kita lihat contoh berikut yang merupakan modifikasi dari program sebelumnya untuk melihat bagaimana perintah-perintah lain digunakan untuk mendapatkan hasil dari sebuah query.
<?php //koneksi ke server $conn = mysql_connect("localhost", "webuser", "x"); //jika tidak berhasil if(!$ conn) { echo "Gagal melakukan koneksi ke Database System."; exit; } if(!mysql_select_db("blog")){ echo "Gagal menggunakan database yang diinginkan"; exit; } $query = "select * from posting order by tglposting desc;"; if(!$result = mysql_query($query)) { echo "Query gagal dilakukan"; exit; } //menampilkan jumlah baris yang didapatkan echo "Jumlah Posting : " . mysql_num_rows($result) . "<br />"; echo "<hr /> "; //menampilkan hasil query sebagai array asosiatif menggunakan mysql_fetch_array echo "mysql_fetch_array<br />"; while($row = mysql_fetch_array($result)) { echo "< b>" . $row["judul"] . "</b>< br /> "; echo "Posting tanggal : " . $row["tglposting"] . "<br />"; } echo "<hr /> "; //kembalikan pointer ke 0 mysql_data_seek($result, 0); //menampilkan hasil query sebagai array asosiatif menggunakan mysql_fetch_assoc echo "mysql_fetch_assoc<br />"; while($row = mysql_fetch_assoc($result)) {

echo "< b>" . $row["judul"] . "</b>< br /> "; echo "Posting tanggal : " . $row["tglposting"] . "<br />"; } echo "<hr /> "; //kembalikan pointer ke 0 mysql_data_seek($result, 0); //menampilkan hasil query sebagai array numerik echo "mysql_fetch_row<br /> "; while($row = mysql_fetch_row($result)) { echo "< b>" . $row[1] . "</b><br /> "; echo "Posting tanggal : " . $row[4] . "<br />"; } echo "<hr /> "; //kembalikan pointer ke 0 mysql_data_seek($result, 0); //menampilkan hasil query sebagai object echo "mysql_fetch_object<br />"; while($row = mysql_fetch_object($result)) { echo "< b>" . $row->judul . "</b>< br /> "; echo "Posting tanggal : " . $row->tglposting . "<br />"; } ?>

Jika kita tampilkan dibrowser:

Bab

5

MEMBUAT BLOG SEDERHANA

Persiapan
Pada bab ini kita akan membuat sebuah program blog sederhana. Tampilan akhir dari program ini adalah sebagai berikut : Halaman Awal.

-

Dihalaman awal akan ditampilkan daftar posting diurutkan berdasarkan tanggal terbaru. Untuk membaca posting secara terinci, user harus memilih dengan klik di judul posting. Tampilan rinci posting dan komentar terkait serta form untuk mengisi komentar.

-

Pemilik blog mempunyai accout untuk login. Berikut tampilan halaman login

-

Berikut tampilan halaman daftar posting setelah login.

Dihalaman ini terdapat link untuk logout, edit, delete dan show posting serta link untuk membuat posting baru.

-

Berikut tampilan edit posting

-

Tabel yang perlu dibuat adalah tabel posting, komentar dan user. Tabel posting dan komentar telah dibuat pada bab sebelumnya, jadi kali ini kita hanya perlu membuat sebuah tabel lagi yaitu tabel user. Struktur tabel tersebut adalah sebagai berikut:

-

-

Tambahkan data ke tabel user: Username : adminuser Password : md5(‘x’) Lastlogin : masukkan tanggal dan jam saat ini. Buat struktur folder baru seperti berikut :

Program
Mari kita mulai membuat programnya. 1. Buat file config.php simpan di folder include Berikut listing program-nya.
<?php define(ROO T,"/blog/"); define(CSS_FOLDER, ROO T . "public/css/"); define(IMAGES_FOLDER, ROOT . "public/images/"); define(MYSQL_HOST,'localhost'); define(MYSQL_USER,"webuser"); define(MYSQL_PASSWORD,"x"); define(MYSQL_DB,"blog"); define(TITLE,"MySimple Weblog"); define(AUTHOR,"S&amp;R"); define(VERSIO N,"1.00"); define(YEAR,date("Y")); define(META_DESCRIPTIO N,"S&amp;R Blog, Blog tentang apapun"); define(META_KEYWO RD,"PHP, MySQL,APACHE, HTML, C SS, Anything about IT Stuff"); $kon = mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASSWO RD ); if (!$kon) { echo "Koneksi gagal dilakukan"; exit; } $db = mysql_select_db(MYSQL_DB); if (!$db) { echo "Database tidak ditemukan"; exit; } ?>

2.

Buat file tanggal.php simpan di folder include Berikut listring programnya.

<?php function convert_to_longdate_id($tanggal) { $array_hari = array("","Senin","Selasa","Rabu","Kamis","Jum'at","Sabtu","Minggu"); $array_bulan = array("01" => "Januari", "02" => "Pebruari",

"03" => "M aret", "04" => "April", "05" => "M ei", "06" => "Juni", "07" => "Juli", "08" => "Agustus", "09" => "September", "10" => "Oktober", "11" => "Nopember", "12" => "Desember"); //cari hari terlebih dahulu $date = date_create($tanggal); $hari = $array_hari[date_format($date,"N")]; $bulan = $array_bulan[date_format($date,"m")]; return $hari . ", " . date_format($date,"d") . " " . $ bulan . " " . date_format($date,"Y"); } ?>

3.

Buat file layout.php simpan di folder include Berikut listing programnya.

<?php function html_header() { echo ' <!DOCTYPE html PUBLIC "-//W3C //DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns= "http://www.w3.org/1999/xhtml"> <head> <meta http-equiv= "Content- Type" content="text/html; charset= iso-8859-1" /> < meta name="description" content="' . META_DESC RIPTION . '" /> < meta name="keyword" content= "' . META_KEYWO RD . '" /> <title>' . TITLE . '</title> < link rel="stylesheet" type= "text/css" href="' . C SS_FOLDER . 'style.css" /> </head> <body> <div id="container"> < div id= "header"> <div id="logo">&nbsp;</div>

< /div> < div id= "content">'; } function footer_text() { return "CopyRight &copy; " . AU THOR . " " . YEAR . " Version: " . VERSIO N; } function html_footer() { echo ' </div> <div id="clear">< /div> <div id="footer">' . footer_text() . '</div> </body>< /html>'; } function br($jumlah=1) { for($i=0;$i<=$jumlah;$i++) { echo "<br />"; } } function form_komentar() { echo "< form name='komentar' method='post' action=''> "; echo " Nama<br /><input tye='text' name='nama' size='20' /><br />"; echo " Email<br /><input tye='text' name='email' size='20' /><br />"; echo " Komentar< br /><textarea cols='60' rows='6' name='komentar'></textarea><br />"; echo "< input type='submit' value='Kirim' />"; echo "< /form>"; } ?>

4.
*{

Buat file style.css simpan di folder public/css Berikut listing file-nya:

font-family: verdana, sans-serif; font-size: 12px; color: black; } html { min-height: 100%; } body {

margin:auto; background:#3484d2 url("../images/bg.jpg") repeat- x 110px bottom; background-repeat: repeat- x; } #container { filter:alpha(opacity=90); opacity:0.9; background-color: white; width:700px; margin: auto; padding:10px; } #header { width: 700px; height: 205px; } #logo { top:10px; left:250px; height: 192px; width:339px; position: relativ e; background-image: url(../images/logo2.png); background-position: top left; background-repeat: no-repeat; } #nulis{ top:10px; left:300px; height: 300px; width:339px; position: absolute; background-image: url(../images/nulis.jpg); background-position: top left; background-repeat: no-repeat; } #content { width: 700px; padding-bottom: 20px;

} #sidecontent { width: 200px; float: left; } #clear { clear: both; } #footer { width: 700px; padding-top:40px; text-align: right; font-size: 10px; } h1{ font-size:15px; text-decoration: none; font-family:"Lucida Sans"; font-style: italic; } h1 a { font-size:15px; color: #319db5; text-decoration: none; font-family:"Lucida Sans"; font-style: italic; } h1 a:hover { color: red; } a{ color:blue; text-decoration:none; } .tanggal { font-size:9px; } .pengantar { font-style: italic;

display: block; font-size: 10px; } input, textarea { border: 1px solid silv er; }

5.

Buat file index.php di folder blog Berikut listring program-nya:

<?php include "include/config.php"; include "include/layout.php"; include "include/tanggal.php"; html_header(); //query ke posting $query = "select * from posting order by tglposting desc;"; $result = mysql_query($query); //loop result while($row = mysql_fetch_object($result)) { echo "<h1><a href='" . ROOT . "show.php?post_id=" . $row->id . "'>" . stripslashes($row>judul) . "</a></h1>"; echo "<span class='tanggal'>Ditulis pada :" . convert_to_longdate_id($row->tglposting) . "</span><br />"; echo stripslashes(nl2br($row->pengantar)); } html_footer(); ?>

6.

Buat file show.php di folder blog Berikut listing program-nya:

<?php include "include/config.php"; include "include/layout.php"; include "include/tanggal.php"; html_header(); //query ke posting if($_GET["post_id"] and !empty($_GET["post_id"])) { $query = "select * from posting where id= " . $_GET["post_id"] . ";"; $result = mysql_query($ query);

if(!$result) { echo "Query Gagal dilakuk an"; } else { if(mysql_num_rows($result) == 0) { echo "Tidak ada Posting tersebut<br /> "; echo "Hmm.... <a href='" . ROOT . "'>kembali ke home saja ya...</a> "; } else{ $row = mysql_fetch_object($result); echo "<h1>$row->judul</h1>"; echo "<span class='tanggal'>" . convert_to_longdate_id($row->tglposting) . "< /span><br />"; echo "<span class='pengantar'>". stripslashes(nl2br($row->pengantar)) . "</span>< br /> "; echo stripslashes(nl2br($row->isi)); echo br(2); //jika ada komentar masuk if ($_POST) { $error = array(); $posting_id = $_GET["post_id"]; if(isset($_POST["nama"]) and !empty($_POST["nama"])) { $nama = stripslashes($_PO ST["nama"]); } else { array_push($error, "Nama harus diisi"); } if(isset($_POST["email"]) and !empty($_POST["email"])) { $ email = stripslashes($_PO ST["email"]); } else { array_push($error,"Email harus diisi"); } if(isset($_POST["komentar"]) and !empty($_PO ST["komentar"])) { $komentar = stripslashes($_POST["komentar"]); } else { array_push($error,"Komentar harus diisi"); } //jika tidak ada kesalahan

if (empty($error)) { //dapatkan tanggal hari ini $ date = date("Y-m-d H:m:s"); $ query = "insert into komentar (nama,email,isi,tglkomentar,posting_id) values ( '". $nama . "','" . $email . "','" . $komentar . "','" . $date . "','" . $posting_id . "')"; if(!$result = mysql_query($query)) { echo "Gagal input komentar"; } else { echo "Terima kasih atas kunjungan dan komentar anda"; br(2); } } } //tampilkan komentar terkait $query = "select * from komentar where posting_id= " . $_GET["post_id"]; $result = mysql_query($query); //jika belum ada komentar if (mysql_num_rows($result) == 0) { echo "Belum ada komentar masuk"; echo br(2); } else { //tampilkan komentarnya echo "Jumlah komentar : < b>" . mysql_num_rows($result) . "</b><br />"; while($row = mysql_fetch_object($result)) { echo "<h1>$row->nama</h1>"; echo "<span class='tanggal'> " . conv ert_to_longdate_id($row->tglkomentar) . "</span><br />"; echo "<span class='tanggal'>" . $row-> email . "< /span><br />"; echo stripslashes(nl2br($row->isi)); echo br(1); } } echo "<b>Silahkan Isi Komentar</b><br />"; if (!empty($error)) {

foreach($ error as $e) { echo $ e . "<br />"; } } form_komentar(); echo br(2) . "<a href='" . ROO T . "'>Back to Home</a> "; } } } else { echo "Hmm....< a href='" . ROOT . "'>kembali ke home saja ya...</a>"; } html_footer(); ?>

7.

Buat file index.php di folder admin Berikut listing program-nya:

<?php include "../include/config.php"; include "../include/layout.php"; include "../include/tanggal.php"; session_start(); html_header(); //jika ada data login $error = array(); if ($_POST) { if($_POST["username"] && !empty($_POST["username"])) { $username = mysql_real_escape_string($_POST["username"]); } else { array_push($error,"Username...?"); } if($_POST["password"] && !empty($_PO ST["password"])) { $ password = md5(mysql_real_escape_string($_POST["password"])); }

else { array_push($error,"Password...?"); } //jika tidak ada error if (empty($error)) { //check ke db $ query = "select * from user where username='" . $username . "' and password='" . $password . "';"; $result = mysql_query($query); if (mysql_num_rows($result) == 0) { array_push($ error,"Invalid Username dan Password "); } else { $row = mysql_fetch_object($result); $_SESSION['id'] = $row->id; $_SESSION['username'] = $row->username; //echo "Login Sukses"; header("Location:". ROOT . "admin/postinglist.php"); } } } //login page ?> <h3>Login Page< /h3> <?php if(!empty($ error)) { foreach($error as $e) { echo $e . "<br />"; } } ?> <form name="login" action="" method="post"> Username< br /> <input type="text" name="username" size="20" /><br /> Password< br /> <input type="password" name= "password" size="20" /><br /> <input type="submit" value= "Login" /> </form>

<?php html_footer(); ?>

8.

Buat file postinglist.php di folder admin Berikut listring program-nya

<?php include "../include/config.php"; include "../include/layout.php"; include "../include/tanggal.php"; session_start(); if(empty($_SESSIO N["id"])) { header("L ocation:" . ROOT ."admin"); } html_header(); echo "Welcome " . $_SESSIO N["username"]; echo "&nbsp;&nbsp;<a href='" . ROO T ."admin/logout.php'>Logout</a> "; //query ke posting $query = "select * from posting order by tglposting desc;"; $result = mysql_query($query); //loop result while($row = mysql_fet ch_object($result)) { echo "<h1><a href='show.php?post_id=" . $row->id . "'> " . $row->judul . "< /a></h1>"; echo "<span class='tanggal'>Ditulis pada :" . convert_to_longdate_id($row->tglposting) . "</span><br />"; echo stripslashes(nl2br($row->pengant ar)) . "< br /> "; echo "<a href='edit.php?post_id= " . $row->id . "'>Edit< /a>&nbsp;&nbsp;"; echo "<a href='delete.php?post_id= " . $row->id . "'>Delete</a> &nbsp;&nbsp;"; echo "<a href='show.php?post_id= " . $row->id . "'>Show< /a>"; } br(2); echo "<a href='postnew.php'>Buat Baru< /a> "; html_footer(); ?>

9.

Buat file postnew.php di folder admin Berikut listring program-nya:

<?php include "../include/config.php"; include "../include/layout.php";

include "../include/tanggal.php"; session_start(); if(empty($_SESSIO N["id"])) { header("L ocation:" . ROOT ."admin"); } html_header(); if($_POST) { $error = array(); if(isset($_POST["judul"]) and !empty($_PO ST["judul"])) { $ judul = addslashes($_PO ST["judul"]); } else { array_push($error, "Judul harus diisi"); } if(isset($_POST["pengantar"]) and !empty($_POST["pengantar"])) { $ pengantar = addslashes($_POST["pengantar"]); } else { array_push($error, "Pengantar harus diisi"); } if(isset($_POST["isi"]) and !empty($_POST["isi"])) { $ isi = addslashes($_POST["isi"]); } else { array_push($error, "Isi harus diisi"); } if (empty($error)) { //dapatkan tanggal hari ini $date = date("Y-m- d H:m:s"); $query = "insert into posting (judul,pengantar,isi,tglposting) values('" . $ judul . "','" . $pengantar . "','" . $isi . "','" . $date . "');"; if(!$result = mysql_query($query)) { echo "Gagal menyimpan posting"; } else { header("Location:postinglist.php"); } } }

if($error) { foreach($ error as $e) { echo $ e . "<br />"; } } ?> <form action= "" method="post" name= "new"> Judul<br > <input type="text" name="judul" size= "70" /><br /> Pengantar< br /> <textarea name="pengantar" rows="3 " cols="70"></textarea><br /> Isi<br /> <textarea name="isi" rows="10" cols= "70"></textarea><br /> <input type="submit" value= "Simpan" /> <a href= "postinglist.php">Batal</a> </form> <?php html_footer(); ?>

10. Buat file edit.php di folder admin Berikut listing program-nya:
<?php include "../include/config.php"; include "../include/layout.php"; include "../include/tanggal.php"; session_start(); if(empty($_SESSIO N["id"])) { header("L ocation:" . ROOT ."admin"); } html_header(); if($_GET["post_id"] and !empty($_GET["post_id"])) { $query = "select * from posting where id= " . $_GET["post_id"] . ";"; $result = mysql_query($ query); if(!$result) { echo "Query Gagal dilakukan"; } else { if(mysql_num_rows($result) == 0) {

echo "Tidak ada Posting tersebut<br /> "; echo "Hmm.... <a href='" . ROOT . "'>kembali ke home saja ya...</a> "; } else { $row = mysql_fetch_object($result); //jika ada komentar masuk if ($_POST) { $error = array(); $posting_id = $_GET["post_id"]; if(isset($_POST["judul"]) and !empty($_PO ST["judul"])) { $ judul = addslashes($_PO ST["judul"]); } else { array_push($error, "Judul harus diisi"); } if(isset($_POST["pengantar"]) and !empty($_POST["pengantar"])) { $ pengantar = addslashes($_POST["pengantar"]); } else { array_push($error,"Pengantar harus diisi"); } if(isset($_POST["isi"]) and !empty($_POST["isi"])) { $ isi = addslashes($_POST["isi"]); } else { array_push($error,"Isi harus diisi"); } //jika tidak ada kesalahan if (empty($error)) { //dapatkan tanggal hari ini $ date = date("Y-m-d H:m:s"); $ query = "update posting set judul='" . $judul . "', pengantar='" . $pengantar . "',isi='" . $isi . "',tglposting='" . $date . "' where id= " . $_GET["post_id"] . ";"; if(!$result = mysql_query($query)) { echo "Gagal Edit Posting"; echo $query;

} else { header("Location:postinglist.php"); } } } if (!empty($error)) { foreach($ error as $e) { echo $ e . "<br />"; } } ?> <form action= "" method="post" name= "new"> Judul<br > <input type= "text" name= "judul" size="70" value= "<?php echo stripslashes($row ->judul) ?>"/>< br /> Pengantar< br /> <textarea Isi<br /> <textarea name="isi" rows="10" cols="70">< ?php echo stripslashes($row->isi) ?></textarea><br /> <input type="submit" value= "Simpan" /> <a href="postinglist.php">Batal< /a> </form> <?php } } } else { echo "Hmm....< a href='" . ROOT . "'>kembali ke home saja ya...</a>"; } html_footer(); ?> name= "pengantar" rows="3 " cols= "70"> <?php echo stripslashes($row>pengantar) ?></textarea><br />

11. Buat file delete.php di folder admin Berikut listing program-nya:
<?php include "../include/config.php"; include "../include/layout.php"; include "../include/tanggal.php"; session_start(); if(empty($_SESSIO N["id"])) { header("L ocation:" . ROOT ."admin"); } html_header(); echo "Welcome " . $_SESSIO N["username"]; echo "&nbsp;&nbsp;<a href='" . ROO T ."admin/logout.php'>Logout</a><br /><br /> "; if(empty($_SESSIO N["id"])) { header("L ocation:" . ROOT ."admin"); } if($_GET) { if($_GET["post_id"] and !empty($_GET["post_id"])) { $ post = intval($_GET["post_id"]); if ($post) { //hapus $query = "delete from posting where id=" . $_GET["post_id"]; $res = mysql_query($query); if($res) { //hapus komentar terkait $ query = "delete from komentar where posting_id=" . $_GET["post_id"]; $res = mysql_query($query); echo "Record telah dihapus<br />"; echo "<a href='postinglist.php'>Back</a>"; } else { echo "Gagal melakukan penghapusan<br />"; echo "<a href='postinglist.php'>Back</a>;"; } } else { echo "Hm... apa yang mau dihapus... "; echo "<a href='postinglist.php'>Back to List< /a>";

} } else { echo "Hm... apa yang mau dihapus... "; echo "<a href='postinglist.php'>Back to List< /a>"; } } else { echo "Hm... apa yang mau dihapus... "; echo "<a href='postinglist.php'>Back to List< /a>"; } html_footer(); ?>

12. Buat file logout.php di folder admin Berikut listing program-nya:
<?php include "../include/config.php"; session_start(); $_SESSION = array(); session_destroy(); header("Location:" . ROOT ); ?>

13. Selamat mencoba....