Anda di halaman 1dari 71

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 dari situs
www.apachefriends.org.
Jalankan file hasil unduh tersebut (xampp-win32-1.7.3.exe)
Muncul layar seperti berikut :
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 ditempat-
tempat 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 Contoh


Integer 78
Float 9,15
String “Selamat Datang”
Boolean TRUE
true
FALSE
False
 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 Keterangan
Arithmetic (Aritmetika) Melakukan operasi aritmatika biasa, seperti
pengurangan dan penambahan
Assigment (Penugasan/Penempatan) Menempatkan nilai ke sebuah variabel.
Bitwise Melakukan operasi bit individu pada sebuah nilai
integer
Comparison (Pembandingan) Membandingkan nilai dalam bentuk Boolean (nilai
kembalian-nya adalah TRUE atau FALSE)
Error Control Untuk penanganan kesalahan
Execution Digunakan untuk melaksanakan perintah shell.
Incrementing/ Decrementing Melakukan penambahan / pengurangan nilai
(Penambahan / Pengurangan) sebuah variabel
Logical Operator Boolean seperti TRUE, FALSE atau NOT
String Hanya mempunyai satu operator untuk
penggabungan String
Array Melakukan operasi terhadap Array.

Operator Aritmetika

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

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 Hasil
&& (and) $x && $y TRUE jika kedua nilai $x dan $y TRUE. FALSE
jika tidak.
and $d and $y TRUE jika kedua nilai $x dan $y TRUE. FALSE
jika tidak.
|| (or) $x || $y TRUE jika salah satu TRUE. FALSE jika tidak
(kedua-duanya FALSE)
or $x or $y TRUE jika salah satu TRUE. FALSE jika tidak
(kedua-duanya FALSE)
xor $x xor $y TRUE jika $x atau $y (tetapi tidak keduanya)
TRUE, FALSE jika tidak.
! (not) !$x 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 Hasil
== (equal) $x == $y TRUE jika $x sama dengan $y, FALSE jika
tidak
!= (not equal) $x != $y TRUE jika $x tidak sama dengan $y, FALSE
jika tidak
=== (identical) $x === $y TRUE jika $x sama dengan $y dan ber-tipe
sama. FALSE jika tidak
!== (not identical) $x !== $y TRUE jika $x sama dengan $y dan tidak ber-
tipe sama, FALSE jika tidak
< (lebih kecil) $x < $y TRUE jika $x lebih kecil dari $y, FALSE jika
tidak
> (lebih besar) $x > $y TRUE jika $x lebih besar dari $y, FALSE jika
tidak
<= (lebih kecil sama $x <= y TRUE jika $x lebih kecil atau sama dengan $y,
dengan) FALSE jika tidak
>= (lebih besar $x >= $y TRUE jika $x lebih besar atau sama dengan
sama dengan) $y, FALSE jika tidak

Operator Penambahan/Pengurangan (Incrementing/Decrementing)

Sering kali itu sangat berguna untuk menambah atau mengurangi nilai 1 (berulang-
ulang). 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; // M enambah satu ke $x dan mengembalikan hasilnya


$x++; // M engembalikan nilai yang ada di $ x, baru kemudian menambahkan satu ke $x
--$x; // Mengurangi satu dari $x dan mengembalikan hasilnya
$x-- ; // 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 Arti
\n Karakter ganti baris
\t Karakter tab horisontal
\v 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 Type Options
Id Int(11) Primary key, auto increment
Nama Varchar(255)
Email Varchar(255)
Isi Text
Tglkomentar Datetime
Posting_id Int(11)

3. Tabel User
Nama Field Type Options
Id Int(11) Primary key, auto increment
Username Varchar(255)
Password Varchar(255)
Lastlogin Datetime

Membuat tabel posting.

mysql>> create tabl e posting(id integer primary key auto_increment,judul varchar(255),


pengantar text,isi text,tglposting datetime);

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. Menyimpan query (perintah sql) ke dalam variabel $query;
4. Menjalankan perintah query dengan mysql_query($query).
5. Menampilkan hasil looping while terhadap array hasil dari perintah
mysql_fetch_array($result).

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 name= "pengantar" rows="3 " cols= "70"> <?php echo stripslashes($row-
>pengantar) ?></textarea><br />
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();
?>
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....