Pemrograman Web Dengan PHP Dan MySQL

Unduh sebagai docx, pdf, atau txt
Unduh sebagai docx, pdf, atau txt
Anda di halaman 1dari 152

Pemrograman Web dengan PHP

dan MySQL
Daftar Isi

Daftar Isi..................................................................................................................................................i
Bab 1 Pengenalan Web Server dan Server Side Scripting.......................................................................1
1.1. Web Server.............................................................................................................................1
1.2. Server Side Scripting...............................................................................................................2
1.3. Instalasi Apache, PHP dan MySQL dengan XAMPP.................................................................2
1.4. Test Instalasi XAMPP di Browser............................................................................................3
Bab 2 Struktur Dasar PHP......................................................................................................................4
2.1. Mengenal PHP........................................................................................................................4
2.2. Say Hello to PHP.....................................................................................................................4
2.3. Variabel..................................................................................................................................5
2.4. Tipe Data................................................................................................................................6
2.5. Konstanta...............................................................................................................................7
2.6. Operator dalam PHP...............................................................................................................8
2.7. Komentar Program...............................................................................................................10
Bab 3 Struktur Kondisi dan Perulangan...............................................................................................12
3.1. Struktur Kondisi....................................................................................................................12
3.2. Struktur Perulangan..............................................................................................................17
3.3. Struktur Break dan Continue................................................................................................21
Bab 4 Penanganan Form......................................................................................................................23
4.1. Berbagai Cara Penanganan Form..........................................................................................23
4.2. Form Input Type TEXT dan PASSWORD................................................................................27
4.3. Form Input Type RADIO........................................................................................................31
4.4. Form Input Type CHECK BOX................................................................................................32
4.5. Form Input Type COMBO BOX..............................................................................................34
4.6. Form Input Type TEXTAREA..................................................................................................35
Bab 5 Array dan Fungsi........................................................................................................................38
5.1. Pengantar Array....................................................................................................................38
5.2. Mendeklarasikan dan Menampilkan Array...........................................................................38
5.3. Fungsi-fungsi Array dalam PHP.............................................................................................43
5.4. Fungsi dalam PHP.................................................................................................................46
Bab 6 Penanganan String dan Tanggal.................................................................................................49
6.1. Pengantar String...................................................................................................................49
6.2. Fungsi-fungsi String dalam PHP............................................................................................50

i
6.3. Fungsi-fungsi Operasi Tanggal dalam PHP............................................................................57
Bab 7 File dan Direktori.......................................................................................................................60
7.1. Penanganan File...................................................................................................................60
7.2. Membuat dan Menghapus Direktori....................................................................................65
7.3. Manipulasi File......................................................................................................................66
7.4. Upload File............................................................................................................................68
Bab 8 Session dan Cookies...................................................................................................................71
8.1. Session..................................................................................................................................71
8.2. Cookies.................................................................................................................................74
Bab 9 Pemrograman Berorientasi Objek dalam PHP............................................................................77
9.1. Pengantar Pemrograman Berorientasi Objek.......................................................................77
9.2. Object dan Class...................................................................................................................77
9.3. Properties dan Method........................................................................................................78
9.4. Mendefinisikan Class............................................................................................................78
9.5. Memanfaatkan Class yang Tersedia.....................................................................................83
Bab 10 Teknik Modularitas...................................................................................................................85
10.1. Konsep Modularitas..........................................................................................................85
10.2. Penerapan Teknik Modularitas.........................................................................................87
Bab 11 Pengenalan DBMS dan MySQL.................................................................................................94
11.1. Tentang Database, DBMS dan RDBMS..............................................................................94
11.2. Tentang MySQL.................................................................................................................95
11.3. Storage Engine di MySQL..................................................................................................97
11.4. Instalasi MySQL.................................................................................................................99
11.5. Administrasi Server MySQL...............................................................................................99
BAB 12 Pengenalan Structured Query Language................................................................................102
12.1. Dasar SQL........................................................................................................................102
12.2. Membuat, Menampilkan, Membuka dan Menghapus Database...................................102
12.3. Membuat, Mengubah dan Menghapus Table.................................................................104
12.5. Mengedit Record dengan UPDATE.................................................................................110
12.6. Menghapus Record dengan DELETE...............................................................................111
12.7. Menampilkan Record dengan SELECT.............................................................................111
12.8. Eksport dan Import Database.........................................................................................117
Bab 13 Pemrograman PHP dan MySQL..............................................................................................121
13.1. Koneksi PHP ke MySQL...................................................................................................121
13.2. Menjalankan Query SQL di PHP......................................................................................121

ii
13.3. Konsep INSERT Data.......................................................................................................122
13.4. Konsep Menampilkan Data.............................................................................................126
13.5. Konsep Update Data.......................................................................................................128
13.6. Konsep Hapus Data.........................................................................................................134
Bab 14 Aplikasi Berita dengan PHP dan MySQL..................................................................................136
14.1. Merancang Struktur Database........................................................................................136
14.2. Membuat File Koneksi Database....................................................................................137
14.3. Membuat Halaman Input Berita.....................................................................................137
14.4. Menampilkan Berita Terbaru di Halaman Depan............................................................139
14.5. Menampilkan Berita Lengkap.........................................................................................140
14.6. Membuat Halaman Arsip Berita.....................................................................................141
14.7. Membuat Halaman Edit Berita.......................................................................................142
14.8. Membuat Halaman Delete Berita...................................................................................145
14.9. CSS sebagai Pemanis Tampilan.......................................................................................146

iii
Bab 1
Pengenalan Web Server dan Server Side
Scripting

1.1. Web Server

Web Server merupakan sebuah perangkat lunak dalam server yang berfungsi menerima permintaan
(request) berupa halaman web melalui HTTP atau HTTPS dari klien yang dikenal dengan browser web
dan mengirimkan kembali (response) hasilnya dalam bentuk halaman-halaman web yang umumnya
berbentuk dokumen HTML.

Gambar 1.1. Standar Web Architecture

Gambar 1.2. Dynamic Web Architecture

1
Beberapa Web Sever yang banyak digunakan di internet antara lain :

1. Apache Web Server (http://www.apache.org)


2. Nginx (https://www.nginx.com/)
3. Internet Information Service, IIS (http://www.microsoft.com/iis)
4. LiteSpeed Web Server (https://www.litespeedtech.com/products/litespeed-web-server)
5. GWS (Google Web Server)

1.2. Server Side Scripting

Server Side Scripting merupakan sebuah teknologi scripting atau pemrograman web dimana
script (program) dikompilasi atau diterjemahkan di server. Dengan server side scripting,
memungkinkan untuk menghasilkan halaman web yang dinamis.

Beberapa contoh Server Side Scripting (Programming) :

1. ASP (Active Server Page) dan ASP.NET


2. Java Server Pages (http://java.sun.com/products/jsp/)
3. Perl (http://www.perl.org)
4. Python (http://www.python.org)
5. PHP (http://www.php.net)
6. JavaScript (Server-side JavaScript: Node.js, http://nodejs.org)
7. Ruby on Rails (https://rubyonrails.org/)

Saat ini bahasa pemrograman server side yang paling populer adalah PHP. PHP memiliki
keistimewaan sebagai berikut:

 Bahasa pemrograman PHP sangat mudah dipelajari karena mirip dengan bahasa C/C++.
 PHP mudah diimplementasikan dan software PHP servernya bebas digunakan (Free).
 Kebanyakan server web hosting men-support PHP.
 PHP paling banyak digunakan oleh web programmer di seluruh dunia.
 Anda bisa melakukan instalasi PHP server sendiri dengan mudah di komputer pribadi Anda
untuk belajar.
 Integrasi antara PHP dan database mudah untuk diimplementasikan karena PHP men-
support banyak database (DBMS), seperti MySQL, MS. Access, Oracle, DB2, Dbase,
Interbase dll.

1.3. Instalasi Apache, PHP dan MySQL dengan XAMPP

Proses instalasi Apache, PHP dan MySQL seringkali menjadi kendala terutama bagi pemula yang baru
belajar pemrograman web dengan PHP. Hal tersebut disebabkan karena software tersebut harus
diinstall dan dikonfigurasikan satu per satu. Bagi belum mengerti benar, tentu sering mengalami
kesulitan, apalagi bagi kita yang belajar secara mandiri.

Namun saat ini banyak tersedia aplikasi paket yang menyatukan ketiga software tersebut (Apache,
PHP dan MySQL) ke dalam satu installer. Proses instalasinya pun dapat dilakukan dengan mudah dan
cepat, hanya perlu next, next, and finish. Untuk XAMPP tersedia versi portabel dimana tinggal
mengekstrak file zip ke suatu folder dan dapat langsung dijalankan.
Beberapa aplikasi paket tersebut antara lain:

1. XAMPP (versi Windows) dan LAMPP (versi Linux) yang dapat didownload
di http://apachefriends.org.
2. WAMP Server.
3. APPServ
4. PHPTriad.

Untuk pemula disarankan pemakaian XAMPP atau WAMP Server karena versi software di dalamnya
menggunakan versi terbaru.

1.4. Test Instalasi XAMPP di Browser

Untuk memastikan bahwa XAMPP beserta PHP, Apache dan MySQL berjalan dengan baik, bukalah
browser dan ketikan URL sebagai berikut:

http://localhost

Jika semua sudah berjalan dengan baik, maka akan ditampilkan gambar sebagai berikut:
Bab 2
Struktur Dasar
PHP

2.1. Mengenal PHP

Beberapa hal yang perlu diketahui tentang PHP :

1. PHP Merupakan singkatan recursive dari PHP : Hypertext Preprocessor


2. Pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1994.
3. Harus ditulis di antara tag :
• <? dan ?>
• <?php dan ?>
• <script language=”php”> dan </script>
• <% dan %>
4. Setiap satu statement (perintah) biasanya diakhiri dengan titik-koma (;)
5. CASE SENSITIVE untuk nama identifier yang dibuat oleh user (berupa variable,
konstanta, fungsi, dll.), namun TIDAK CASE SENSITIVE untuk identifier built-in dari PHP.
Jadi :
• $nama ≠ $Nama ≠ $NAMA
• hitungLuas() ≠ HitungLuas()
• echo = ECHO
• while = WHILE
6. Mudah dipelajari.

2.2. Say Hello to PHP

Program pertama untuk menampilkan tulisan di browser:

i. Ketikan perintah di bawah ini di editor :


Program 2.1
Nama File : hello.php
Deskripsi : Program sederhana menampilkan sebuah string di layar.
<?php
echo "Hello, Nama saya PHP ";
?>

ii. Simpan dengan nama “hello.php” di document-root (\xampp\htdocs) komputer Anda.


iii. Buka browser dan ketikan alamat http://localhost/hello.php
iv. Lihat hasilnya di browser. Akan terlihat tampilan seperti pada gambar berikut :
2.3. Variabel

Variabel dalam bahasa pemrograman disebut juga simbol yang mewakili nilai tertentu. Digunakan
untuk menyimpan sebuah value, data atau informasi, dalam PHP beberapa ketentuan tentang
penulisan variabel adalah sebagai berikut :

 Nama variabel diawali dengan tanda $


 Panjang tidak terbatas
 Setelah tanda $ diawali oleh huruf atau under-score ( _ ). Karakter berikutnya bisa terdiri dari
huruf, angka, dan karakter tertentu yang diperbolehkan (karakter ASCII dari 127 – 255).
 Bersifat case-sensitive.
 Tidak perlu dideklarasikan.
 Tidak boleh mengandung spasi.
 Contoh :

Benar Salah
― $_name ― $3name
― $first_name ― $name?
― $name3 ― $first+name
― $name_3 ― $first.name
― $first name

Program 2.2
Nama File : variabel.php
Deskripsi : Program mengisi dan menampilkan variabel di layar.

1 <?php
2 $nim = "0411500400";
3 $nama = 'Chotimatul
4 Musyarofah'; echo "NIM : " .
5 $nim . "<br>"; echo "Nama :
6 $nama";
?>
2.4. Tipe Data

Pada PHP, tipe data variabel tidak didefinisikan oleh programmer, akan tetapi secara otomatis
ditentukan oleh interpreter PHP. Namun demikian, PHP mendukung 8 (delapan) buah tipe data
primitif, yaitu :

 boolean
 integer
 float
 string
 array
 object
 resource
 NULL

Program 2.3
Nama File : tipe.php
Deskripsi : Program contoh penanganan beberapa tipe data dasar dalam PHP.

1 <?php
2 $nim = "0411500400";
3 $nama = 'Chotimatul Musyarofah';
4 $umur = 23;
5 $nilai = 82.25;
6 $status = TRUE;
7
8 echo "NIM : " . $nim .
9 "<br>"; echo "Nama :
10 $nama<br>";
11 print "Umur : " . $umur; print
12 "<br>"; printf ("Nilai : %.3f<br>",
13 $nilai); if ($status)
14 echo "Status : Aktif";
else
15 echo "Status : Tidak Aktif";
16 ?>

2.5. Konstanta

Konstanta merupakan variabel konstan yang nilainya tidak berubah-ubah. Untuk mendefinisikan
konstanta dalam PHP, menggunakan fungsi define()

Program 2.4
Nama File : konstanta.php
Deskripsi : Program penggunaan konstanta dalam PHP.

1 <?php
2 define ("NAMA", "Achmad Solichin");
3 define ("NILAI", 90);
4 /*NAMA = "Achmad"; akan menyebabkan error */
5 echo "Nama : " . NAMA;
6 echo "<br>Nilai : " . NILAI;
7 ?>
2.6. Operator dalam PHP

Jenis Operator Operator Contoh Keterangan


Aritmatika + $a + $b Pertambahan
- $a - $b Pengurangan
* $a * $b Perkalian
/ $a / $b Pembagian
% $a % $b Modulus, sisa pembagian
Penugasan = $a = 4; $a diisi dengan 4
Bitwise & $a & $b Bitwise AND
| $a | $b Bitwise OR
^ $a ^ $b Bitwise XOR
~ ~$b Bitwise NOT
<< $a << $b Shift Left
>> $a >> $b Shift Right
Perbandingan == $a == $b Sama dengan
=== $a === $b Identik
!= $a != $b Tidak sama dengan
<> $a <> $b Tidak sama dengan
!== $a !== $b Tidak identik
< $a < $b Kurang dari
> $a > $b Lebih dari
<= $a <= $b Kurang dari sama dengan
>= $a >= $b Lebih dari sama dengan
Logika and $a and $b TRUE jika $a dan $b TRUE
&& $a && $b TRUE jika $a dan $b TRUE
or $a or $b TRUE jika $a atau $b TRUE
|| $a || $b TRUE jika $a dan/atau $b TRUE
xor $a xor $b TRUE jika $a atau $b TRUE, tapi
tidak keduanya
! !$a TRUE jika $a FALSE
String . $a . $b Penggabungan string $a dan $b
Program 2.5
Nama File : operator.php
Deskripsi : Program beberapa Operator aritmetika dalam PHP.

1 <?
2 $gaji = 1000000;
3 $pajak = 0.1;
4 $thp = $gaji - ($gaji*$pajak);
5 echo "Gaji sebelum pajak = Rp. $gaji <br>";
6 echo "Gaji yang dibawa pulang = Rp. $thp";
7 ?>

Program 2.6
Nama File : operator2.php
Deskripsi : Program operator logika dan perbandingan dalam PHP.

1 <?php
2 $a = 5;
3 $b = 4;
4 echo "$a == $b : ". ($a == $b);
5 echo "<br>$a != $b : ". ($a != $b);
6 echo "<br>$a > $b : ". ($a > $b);
7 echo "<br>$a < $b : ". ($a < $b);
8 echo "<br>($a == $b) && ($a > $b) : ".(($a != $b) && ($a > $b));
9 echo "<br>($a == $b) || ($a > $b) : ".(($a != $b) || ($a > $b));
10 ?>
2.7. Komentar Program

Dalam PHP, komentar program bisa menggunakan :

 /* dan */
 // dan
 #

Program 2.7
Nama File : komentar.php
Deskripsi : Program cara memberikan komentar dalam program PHP.

1 <?php
2 /* Ini komentar tidak akan tercetak di layar
3 yang ini juga komentar
4 */
5 // Nah kalo ini komentar satu baris
6
7 # Terus kalo ini juga komentar
8 echo "Ini akan tercetak di
9 layar";
?>
Bab 3
Struktur Kondisi dan Perulangan

3.1. Struktur Kondisi

a. Struktur Kondisi If

if (kondisi) {
statement-jika-kondisi-true;
}

Keterangan :
 kondisi merupakan statemen atau variabel yang akan diperiksa TRUE atau FALSE-nya.

b. Struktur Kondisi If ... Else

if (kondisi) {
statement-jika-kondisi-true;
} else {
statement-jika-kondisi-false;
}

Keterangan :
 kondisi merupakan statemen atau variabel yang akan diperiksa TRUE atau FALSE-nya. Jika
kondisinya TRUE maka statemen yang berada di blok if akan dieksekusi, sebaliknya jika
kondisinya FALSE maka statemen yang berada di blok else yang akan dieksekusi.

c. Struktur Kondisi Khusus ? :

(kondisi) ? benar : salah;

Keterangan :
 kondisi merupakan statemen atau variabel yang akan diperiksa TRUE atau FALSE-nya.
Statement pada blok benar dan salah hanya boleh satu statemen saja

d. Struktur Kondisi Switch ... Case

switch ($var) {
case '1' : statement-1; break;
case '2' : statement-2; break;
....
}

Keterangan :
 $var merupakan variabel yang akan diperiksa isi atau nilainya. Tipe data variabel ini
tidak dibatasi.
 Value pada case juga bisa berupa string, integer, boolean, bahkan bisa berupa conditional-
statement. Boleh memakai kutip tunggal maupun kutip ganda.
Program 3.1
Nama File : if.php
Deskripsi : Program Struktur Kondisi If.

1 <?php
2 $nilai = 80;
3 if ($nilai >= 60) {
4 echo "Nilai Anda $nilai, Anda LULUS";
5 }
6 ?>

Penjelasan Program 3.1


Pada program di atas, terdapat pemeriksaan kondisi apakah isi variabel $nilai lebih dari 60 (baris 3).
Jika kondisi ini bernilai TRUE (variabel $nilai berisi nilai yang lebih besar dari 60) maka statement
pada baris ke-4 akan dijalankan. Sebaliknya jika kondisinya FALSE, maka statement pada baris ke-4
tidak akan dijalankan.

Program 3.2
Nama File : if_else.php
Deskripsi : Program Struktur Kondisi If..Else.

1 <?php
2 $nilai = 50;
3 if ($nilai >= 60) {
4 echo "Nilai Anda $nilai, Anda LULUS";
5 } else {
6 echo "Nilai Anda $nilai, Anda GAGAL";
7 }
8 ?>

Penjelasan Program 3.2


Pada program di atas, terdapat pemeriksaan kondisi apakah isi variabel $nilai lebih dari 60 (baris 3).
Jika kondisi ini bernilai TRUE (variabel $nilai berisi nilai yang lebih besar dari 60) maka statement
pada baris ke-4 akan dijalankan. Sebaliknya jika kondisinya FALSE, maka statement pada baris ke-6
yang akan dijalankan. Pada contoh program di atas, kondisi pada baris ke-3 bernilai FALSE karena isi
variabel $nilai adalah 50.

Program 3.3
Nama File : if_else2.php
Deskripsi : Program Memeriksa username dan password dengan If..Else.

1 <?php
2 $user = "achmatim";
3 $pass = "123";
4 if ($user == "achmatim" && $pass == "123") {
5 echo "Login Berhasil";
6 } else {
7 echo "Login Gagal";
8 }
9 ?>

Penjelasan Program 3.3


Pada program di atas, terdapat pemeriksaan kondisi apakah isi variabel $nilai sama dengan
“achmatim” dan apakah isi variabel $pass sama dengan “123” (baris 4). Jika kedua kondisi tersebut
bernilai TRUE maka statement pada baris ke-5 akan dijalankan. Sebaliknya jika salah satunya bernilai
FALSE, maka statement pada baris ke-7 yang akan dijalankan.
Program 3.4
Nama File : if_var.php
Deskripsi : Program Memeriksa suatu variabel ada atau tidak.

1 <?php
2 $user="";
3 if (!isset($user)) {
4 echo "Variabel tidak ada/belum terbentuk";
5 } else {
6 echo "Variabel ada";
7 }
8 ?>

Penjelasan Program 3.4


Pada program di atas, terdapat fungsi isset() yang merupakan fungsi untuk memeriksa apakah suatu
variabel sudah terbentuk (ada) atau belum. Fungsi akan bernilai TRUE jika variabelnya ada. Jadi jika
baris ke-2 dari program di atas di- remark atau dihilangkan maka statement pada baris ke-4 yang
akan dijalankan.
Program 3.5
Nama File : switch.php
Deskripsi : Program Struktur Switch..Case untuk menampilkan nama hari dalam
bahasa Indonesia.

1 <?php
2 $day = date ("D");
3 switch ($day) {
4 case 'Sun' : $hari = "Minggu";
5 break; case 'Mon' : $hari = "Senin";
6 break; case 'Tue' : $hari =
7 "Selasa"; break; case 'Wed' : $hari
8 = "Rabu"; break; case 'Thu' : $hari
9 = "Kamis"; break; case 'Fri' : $hari
10 = "Jum'at"; break; case 'Sat' :
11 $hari = "Sabtu"; break; default :
12 $hari = "Kiamat";
13 }
14 echo "Hari ini hari <b>$hari</b>";
?>
Penjelasan Program 3.5
Pada program di atas, variabel $day (baris ke-2) akan berisi 3 (tiga) digit pertama dari nama hari
dalam bahasa Inggris. Dengan fungsi date(), kita akan memperoleh informasi tanggal, hari dan waktu
sekarang. Fungsi ini akan dipelajari lebih lanjut pada Bab mendatang. Selanjutnya isi variabel $day
akan diperiksa dengan switch (baris ke-3), jika isinya adalah ‘Sun’ maka $hari adalah “Minggu” dan
seterusnya.

Program 3.6
Nama File : if_khusus.php
Deskripsi : Program Struktur Kondisi Khusus ? untuk memeriksa tahun kabisat.

1 <?php
2 $tahun = date ("Y");
3 $kabisat = ($tahun%4 == 0) ? "KABISAT" : "BUKAN KABISAT";
4 echo "Tahun <b>$tahun</b> $kabisat";
5 ?>

Penjelasan Program 3.6


Pada program di atas, fungsi date() dengan parameter “Y” (baris ke-2) akan menghasilkan 4 digit
tahun sekarang. Pada baris ke-3 akan diperiksa apakah isi variabel $tahun jika dimodulus dengan 4
akan menghasilkan nilai 0. Jika TRUE maka $kabisat akan berisi “KABISAT” dan jika FALSE $kabisat
akan berisi “BUKAN KABISAT”

3.2. Struktur Perulangan

a. Struktur Perulangan For

for (init_awal, kondisi, counter)


{ statement-yang-diulang;
}
Keterangan :
 init_awal merupakan inisialisasi atau nilai awal variable.
 kondisi merupakan statemen kondisi yang akan membatasi perulangan.
 counter merupakan pertambahan atau pengurangan nilai variabel sehingga perulangan
tetap berjalan.

b. Struktur Perulangan While

init_awal;
while (kondisi)
{ statement-yang-
diulang; counter;
}
Keterangan :
 init_awal merupakan inisialisasi atau nilai awal variable.
 kondisi merupakan statemen kondisi yang akan membatasi perulangan.
 counter merupakan pertambahan atau pengurangan nilai variabel sehingga perulangan
tetap berjalan.
c. Struktur Perulangan Do ... while

init_awal;
do {
statement-yang-diulang;
counter;
} while (kondisi);
Keterangan :
 init_awal merupakan inisialisasi atau nilai awal variable.
 kondisi merupakan statemen kondisi yang akan membatasi perulangan.
 counter merupakan pertambahan atau pengurangan nilai variabel sehingga perulangan
tetap berjalan.
 Pada struktur do...while, pemeriksaan kondisi ada di bawah, sehingga statement yang
berada dalam block do...while setidaknya akan dieksekusi sebanyak satu kali.

d. Struktur Perulangan Foreach

foreach (array_expression as $value)


statement;

foreach (array_expression as $key => $value)


statement;
Keterangan :
 Struktur foreach biasanya digunakan untuk melakukan perulangan berdasarkan isi
suatu array. Perulangan akan berakhir jika isi array telah habis.

Program 3.7
Nama File : for.php
Deskripsi : Program Struktur Perulangan For dan beberapa variasinya.

1 <?php
2
3 /* contoh 1 */
4 for ($i = 1; $i <= 10; $i++) {
5 echo "$i ";
6 }
7 echo "<br><br>";
8
9 /* contoh 2 */
10 for ($i = 1; ; $i++)
11 { if ($i > 10)
12 { break;
13 }
14 echo "$i ";
15 }
16 echo "<br><br>";
17
18 /* contoh 3 */
19 $i = 1;
20 for (; ; )
21 { if ($i >
22 10) { break;
23 }
24 echo "$i ";
25 $i++;
26 } echo "<br><br>";
27
28 /* contoh 4 */
29 for ($i = 1; $i <= 10; print "$i ", $i++);
30
31 ?>

Penjelasan Program 3.7


Program di atas merupakan bentuk-bentuk perulangan dengan menggunakan for. Contoh yang
pertama (baris 4-6) merupakan bentuk yang paling umum. Pada contoh 2, batas akhir perulangan
tidak disebutkan dalam for, tapi diatur dengan if dan break (baris 11-13).

Program 3.8
Nama File : while.php
Deskripsi : Program Struktur Perulangan While dan beberapa variasinya.

1 <?php
2 /* contoh 1 */
3 $i = 1;
4 while ($i <= 10) {
5 echo $i++;
6 }
7 echo "<br><br>";
8
9 /* contoh 2 */
10 $i = 1;
11 while ($i <= 10):
12 echo "$i";
13 $i++;
14 endwhile;
15 echo "<br><br>";
16
17 /* contoh 3 */
18 $i = 1;
19 while ($i <= 6) {
20 echo "<h$i>Heading $i</h$i>";
21 $i++;
22 }
23 ?>

Penjelasan Program 3.8


Program di atas merupakan beberapa variasi perulangan dengan while. Contoh yang pertama (baris
3-6) merupakan bentuk yang paling umum dipakai. Blok perintah (baris 5) akan dijalankan selama
pemeriksaan kondisi pada baris ke-4 bernilai TRUE. Contoh kedua merupakan bentuk lain dari while,
bentuk ini jarang digunakan. Pada contoh ketiga, penggunaan perulangan untuk menampilkan tulisan
dengan format <H1> sampai <H6>

Program 3.9
Nama : dowhile.php
File : Program Struktur Perulangan dengan Do...While.
Deskripsi
1 <?php
2
3 $i = 1;
4 do {
5 echo "$i ";
6 $i+=2;
7 } while ($i <= 20);
8
9 ?>

Penjelasan Program 3.9


Program di atas akan menampilkan bilangan ganjil antara 1 sampai 20 menggunakan struktur
perulangan do..while Pada struktur perulangan do...while, pemeriksaan kondisi berada di akhir.
3.3. Struktur Break dan Continue

Program 3.10
Nama : break.php
File : Program Struktur Break dan Continue.
Deskripsi

1 <?php
2
3 for ($i=1; $i<10; $i++) {
4 if ($i == 5)
5 continue;
6 if ($i == 8)
7 break; echo "$i ";
8 }
9
10
?>
11

Penjelasan Program 3.10


Dari program di atas, dapat disimpulkan bahwa perintah continue akan melanjutkan proses
perulangan tanpa melewati (meng-eksekusi) baris perintah di bawahnya. Jadi perintah pada baris 6-8
akan dilewati (5 tidak akan tercetak) Sedangkan dengan perintah break akan menyebabkan program
menghentikan perulangan (langsung keluar dari perulangan)
Quiz :

Ada seorang nasabah bank yang menabung di bank X dengan saldo awal Rp. 1.000.000,-. Bank X
menerapkan kebijakan bunga 3% per bulan dari saldo awal tabungan. Hitunglah jumlah saldo akhir
nasabah tersebut setelah 11 bulan. Lengkapilah script berikut ini untuk mengerjakan kasus ini!
//Program: hitungsaldo.php

<?php
$saldoAwal = 1000000;
$bunga = 0.03;
$bulan = 11;
$saldoAkhir = ...;
echo "Saldo akhir setelah ".$bulan." bulan adalah : Rp.
".$saldoAkhir. ",-";
?>
Bab 4
Penanganan Form

Form inputan dibuat dengan tag-tag HTML. Halaman yang mengandung form murni (tidak ada script
PHP) tidak harus disimpan dalam bentuk PHP, bisa dalam bentuk html.

1. METHOD
Method dari sebuah form menentukan bagaimana data inputan form dikirim. Method ini
ada dua macam, yaitu GET dan POST. Method ini menentukan bagaimana data inputan
dikirim dan diproses oleh PHP.
2. ACTION
Action dari sebuah form menentukan dimana data inputan dari form diproses. Jika action ini
dikosongkan, maka dianggap proses form terjadi di halaman yang sama. Jadi halaman form
dan halaman proses bisa saja dipisah atau dijadikan satu.
3. SUBMIT BUTTON
Submit button merupakan sebuah tombol (pada umumnya) yang berfungsi sebagai trigger
pengiriman data dari form inputan. Jika tombol ini ditekan, maka data form akan dikirimkan
(diproses) di halaman yang sudah ditentukan pada atribut action.

4.1. Berbagai Cara Penanganan Form

a. Cara 1 : Menyatukan antara Form dan Proses

Proses pengolahan form dilakukan di halaman yang sama dengan form inputannya. Jika proses
penanganan form berada di satu halaman, maka value atribut action pada tag form tidak perlu diisi
(dikosongkan).

Program 4.1
Nama File : input01.php
Deskripsi : Program Contoh pengolahan form dimana antara form inputan dan
proses pengolahan inputan berada dalam satu halaman.

1 <html>
2 <head><title>Pengolahan Form</title></head>
3 <body>
4 <FORM ACTION="" METHOD="POST" NAME="input">
5 Nama Anda : <input type="text" name="nama"><br>
6 <input type="submit" name="Input" value="Input">
7 </FORM>
8 </body>
9 </html>
10
11 <?php
12 if (isset($_POST['Input'])) {
13 $nama = $_POST['nama'];
14 echo "Nama Anda : <b>$nama</b>";
15 }
16 ?>
Penjelasan Program 4.1
Beberapa hal yang perlu diperhatikan dari program 4.1 di atas, di antaranya mengenai nama setiap
komponen form karena nama ini akan menjadi index array dalam PHP. Pada program 4.1 di atas,
value atribut action pada tag form tidak diisi (baris 4), ini berarti bahwa proses pengolahan form
berada di halaman yang sama. Selanjutnya (baris 4) method yang digunakan dalam penanganan form
adalah POST. Cara ini lebih disarankan dalam penanganan sebuah form inputan.

Mulai baris ke-11 hingga 16, terdapat script / program PHP yang akan menangani (mengolah) nilai
yang diinputkan melalui form. Letak proses inputan ini boleh sebelum atau sesudah form, tergantung
kebutuhan. Pada baris ke-12, terdapat pemeriksaan kondisi apakah tombol dengan nama “Input”
(perhatikan index array $_POST dan bandingkan dengan name tombol submit pada form) benar-
benar ditekan atau tidak oleh user. Selanjutnya pada baris ke-13, nilai inputan dari form akan diambil
dengan cara mengakses array $_POST sesuai dengan komponen form yang akan diambil. Pada baris
13 ini, isi komponen inputan dengan nama “nama” akan diambil dan dimasukkan ke variabel $nama.
Index array $_POST pada baris 13 harus sama dengan value atribut name pada baris ke-5

b. Cara 2 : Memisahkan antara Form dan Proses

Proses pengolahan form dilakukan di halaman yang terpisah dengan form inputannya. Jika
proses penanganan form berada dilakukan di halaman yang berbeda, maka value atribut action
pada tag form harus diisi dengan alamat halaman tempat proses pengolahan form.

Program 4.2
Nama File : input02.php
Deskripsi : Program menampilkan form inputan dengan method POST

1 <html>
2 <head><title>Pengolahan Form</title></head>
3 <body>
4 <FORM ACTION="proses02.php" METHOD="POST" NAME="input">
5 Nama Anda : <input type="text" name="nama"><br>
6 <input type="submit" name="Input" value="Input">
7 </FORM>
8 </body>
9 </html>

Program 4.3
Nama File : proses02.php
Deskripsi : Program penanganan form inputan untuk Program 4.2.

1 <?php
2 if (isset($_POST['Input'])) {
3 $nama = $_POST['nama'];
4 echo "Nama Anda : <b>$nama</b>";
5 }
6 ?>
Program 4.4
Nama File : input03.php
Deskripsi : Program menampilkan form inputan dengan method GET

1 <html>
2 <head><title>Pengolahan Form</title></head>
3 <body>
4 <FORM ACTION="proses03.php" METHOD="GET" NAME="input">
5 Nama Anda : <input type="text" name="nama"><br>
6 <input type="submit" name="Input" value="Input">
7 </FORM>
8 </body>
9 </html>

Program 4.5
Nama File : proses03.php
Deskripsi : Program penanganan form inputan untuk Program 4.4.

1 <?php
2 if (isset($_GET['Input'])) {
3 $nama = $_GET['nama'];
4 echo "Nama Anda : <b>$nama</b>";
5 }
6 ?>
Penjelasan Program 4.2, 4.3, 4.4 dan 4.5
Program 4.2 dan program 4.3 pada prinsipnya sama dengan program 4.1. Hasilnya pun sama. Akan
tetapi, proses penanganan form (PHP) terpisah dengan tampilan form inputannya (HTML). Pada
program 4.2 dan 4.3, penanganan form menggunakan method POST, sedang pada program 4.4 dan
4.5, penanganan form dilakukan dengan method GET. Perhatikan, method ini menentukan
bagaimana sebuah form diproses dan bagaimana variabel inputan diambil. Bandingkan baris ke-2 dan
ke-3 pada program 4.3 dan program 4.5 !

4.2. Form Input Type TEXT dan PASSWORD

Program 4.6
Nama File : input04.php
Deskripsi : Program menampilkan form inputan text dalam jumlah banyak.

1 <html>
2 <head><title>Pengolahan Form ~ Text</title></head>
3 <body>
4 <FORM ACTION="proses04.php" METHOD="POST" NAME="input">
5 Sahabat-sahabat Dekatku<br>
6 <input type="text" name="nama1"><br>
7 <input type="text" name="nama2"><br>
8 <input type="text" name="nama3"><br>
9 <input type="text" name="nama4"><br>
10 <input type="submit" name="Input" value="Input">
11 </FORM>
12 </body>
13 </html>

Program 4.7
Nama File : proses04.php
Deskripsi : Program penanganan form inputan untuk Program 4.6.

1 <?php
2 if (isset($_POST['Input'])) {
1 $nama1 = $_POST['nama1'];
2 $nama2 = $_POST['nama2'];
3 $nama3 = $_POST['nama3'];
4 $nama4 = $_POST['nama4'];
5 echo "<b>Nama Sahabat-sahabat Dekatku :</b> <br>";
6 echo $nama1. "<br>";
7 echo $nama2.
8 "<br>"; echo
9 $nama3. "<br>";
10 echo $nama4.
11 "<br>";
}
Penjelasan Program 4.6 dan 4.7
Baris 3-6 program 4.7 merupakan proses pengambilan nilai dari masing-masing form inputan text
yang terdapat pada program 4.6. Selanjutnya variabel ini ditampilkan di layar (baris 8-11, program
4.7).
Program 4.8
Nama File : input05.php
Deskripsi : Program menampilkan form login (inputan text dan password).

1 <html>
2 <head><title>Login Here</title></head>
3 <body>
4 <FORM ACTION="proses05.php" METHOD="POST" NAME="input">
5 <h2>Login Here...</h2>
6 Username : <input type="text" name="username"><br>
7 Password : <input type="password" name="password"><br>
8 <input type="submit" name="Login" value="Login">
9 <input type="reset" name="reset" value="Reset">
10 </FORM>
11 </body>
12 </html>

Program 4.9
Nama File : proses05.php
Deskripsi : Program sederhana untuk memeriksa inputan username dan password
pada program 4.8

1 <?php
2 if (isset($_POST['Login'])) {
3 $user = $_POST['username'];
4 $pass = $_POST['password'];
5 if ($user == "udin" && $pass == "12345") {
6 echo "<h2>Login Berhasil</h2>";
7 } else {
8 echo "<h2>Login Gagal</h2>";
9 }
10 }
11 ?>

Penjelasan Program 4.8 dan 4.9


Program 4.8 akan menampilkan form login sederhana yang terdiri dari inputan username dan
password. Selanjutnya nilai yang diinput akan diproses di program 4.9. Jika username dan password
diinput dengan benar maka akan ditampilkan pesan berhasil (lihat gambar) dan jika login salah maka
akan ditampilkan pesan kesalahan (lihat gambar).
4.3. Form Input Type RADIO

Pada inputan jenis radio button, user hanya bisa memilih satu pilihan di antara beberapa pilihan.

Program 4.10
Nama File : input06.php
Deskripsi : Program menampilkan form pilihan jurusan dengan radio button

1 <html>
2 <head><title>Pilih Jurusan</title></head>
3 <body>
4 <FORM ACTION="proses06.php" METHOD="POST" NAME="input">
5 <h2>Pilih Jurusan Anda :</h2>
6 <input type="radio" name="jurusan" value="TI" checked> Teknik Informatika<br>
7 <input type="radio" name="jurusan" value="SI"> Sistem Informasi<br>
8 <input type="radio" name="jurusan" value="SK"> Sistem Komputer<br>
9 <input type="radio" name="jurusan" value="KA"> Komputerisasi Akuntansi<br>
10 <input type="submit" name="Pilih" value="Pilih">
11 </FORM>
12 </body>
13 </html>

Program 4.11
Nama File : proses06.php
Deskripsi : Program untuk mengambil dan menampilkan jurusan yang dipilih pada
program 4.10

1 <?php
2 if (isset($_POST['Pilih'])) {
3 $jurusan = $_POST['jurusan'];
4 echo "Jurusan Anda adalah
5 <b><font color='red'>$jurusan</font></b>";
6 }
7 ?>

Penjelasan Program 4.10 dan 4.11


Program 4.10 akan menampilkan form pilihan inputan jurusan dengan radio button (lihat gambar).
Pada form inputan jenis radio button, name dari masing-masing radio button harus sama, akan tetapi
value-nya harus dibedakan. Perhatikan program 4.10 baris 6-9 ! Untuk mengambil nilai (value) dari
form jenis radio, bisa langsung dengan mengakses name dari form tersebut. Perhatikan program 4.11
baris ke-3 !
4.4. Form Input Type CHECK BOX

Pada form inputan jenis check box, user dimungkinkan memilih lebih dari satu pilihan.

Program 4.12
Nama File : input07.php
Deskripsi : Program menampilkan form inputan nama band favorit dengan check box.

1 <html>
2 <head><title>Band Favorit ~ Inputan Checkbox</title></head>
3 <body>
4 <FORM ACTION="proses07.php" METHOD="POST" NAME="input">
5 <h2>Pilih Band Favorit Anda :</h2>
6 <input type="checkbox" name="band01" value="Padi" checked> Padi<br>
7 <input type="checkbox" name="band02" value="Sheila On"> Sheila On 7<br>
8 <input type="checkbox" name="band03" value="Dewa 19"> Dewa 19<br>
9 <input type="checkbox" name="band04" value="Ungu"> Ungu<br>
10 <input type="submit" name="Pilih" value="Pilih">
11 </FORM>
12 </body>
13 </html>

Program 4.13
Nama File : proses07.php
Deskripsi : Program untuk menampilkan nama band favorit sesuai dengan inputan
pada program 4.12

1 <?php
2 if (isset($_POST['Pilih'])) {
3 echo "Band Favorit Anda adalah :<br>";
4 if (isset($_POST['band01'])) {
5 echo "+ " . $_POST['band01'] . "<br>";
6 }
7 if (isset($_POST['band02'])) {
8 echo "+ " . $_POST['band02'] . "<br>";
9 }
10 if (isset($_POST['band03'])) {
11 echo "+ " . $_POST['band03'] . "<br>";
12 }
13 if (isset($_POST['band04'])) {
14 echo "+ " . $_POST['band04'] . "<br>";
15 }
16 }
17 ?>

Penjelasan Program 4.12 dan 4.13


Program 4.12 akan menampilkan form pilihan inputan check box band favorit (lihat gambar). Pada
form inputan jenis check box, name dari masing-masing check box harus dibedakan. User dapat
memilih lebih dari satu pilihan. Perhatikan program 4.12 baris 6-9 ! Untuk mengambil nilai (value)
dari form jenis check box, sebaiknya diperiksa terlebih dahulu apakah check box dipilih atau tidak,
dengan menggunakan fungsi isset(). Perhatikan program 4.13 baris ke-4. Jika check box di-cek
(dipilih) maka ambil value dari check box tersebut (baris ke-5)
4.5. Form Input Type COMBO BOX

Program 4.14
Nama File : input08.php
Deskripsi : Program menampilkan form inputan film kartun favorit dengan combo box.

1 <html>
2 <head><title>Film Kartun Favorit</title></head>
3 <body>
4 <FORM ACTION="proses08.php" METHOD="POST" NAME="input">
5 <h2>Pilih Film Kartun Favorit Anda :</h2>
6 <select name="kartun">
7 <option value="Sponge Bob">Sponge Bob</option>
8 <option value="Sinchan">Sinchan</option>
9 <option value="Conan">Conan</option>
10 <option value="Doraemon">Doraemon</option>
11 <option value="Dragon Ball">Dragon Ball</option>
12 <option value="Naruto">Naruto</option>
13 </select>
14 <input type="submit" name="Pilih" value="Pilih">
15 </FORM>
16 </body>
17 </html>

Program 4.15
Nama File : proses08.php
Deskripsi : Program untuk menampilkan nama film kartun favorit sesuai dengan inputan
pada program 4.14

1 <?php
2 if (isset($_POST['Pilih'])) {
3 $film = $_POST['kartun'];
4 echo "Film Kartun Favorit Anda adalah :
5 <font color=blue><b>$film</b></font>";
6 }
7 ?>

Penjelasan Program 4.14 dan 4.15


Program 4.14 akan menampilkan form pilihan inputan combo box film kartun favorit (lihat gambar).
Untuk membuat inputan jenis combo box, bisa menggunakan tag <select> dan <option>. Pada form
inputan jenis check box, name diletakkan pada tag <select>. User hanya dapat memilih satu pilihan
dari sejumlah pilihan yang ditampilkan dalam bentuk drop down list. Lihat gambar. Untuk mengambil
nilai (value) dari form jenis combo box, dapat langsung mengaksesnya sesuai dengan name-nya.
Perhatikan program 4.15 baris ke-3 !

4.6. Form Input Type TEXTAREA

Program 4.16
Nama File : input09.php
Deskripsi : Program menampilkan form inputan kritik dan saran dengan text area.

1 <html>
2 <head><title>Kritik dan Saran ~ Inputan
3 Textarea</title></head>
4 <body>
5 <FORM ACTION="proses09.php" METHOD="POST" NAME="input">
6 <h2>Input Kritik / Saran :</h2>
7 <textarea name="saran" cols="40"
8 rows="5"></textarea><br>
9 <input type="submit" name="Proses" value="Input
10 Saran">
11 </FORM>
12 </body>
13 </html>

Program 4.17
Nama File : proses09.php
Deskripsi : Program untuk menampilkan isi kritik / saran sesuai dengan inputan text area
pada program 4.16

1 <?php
2 if (isset($_POST['Proses'])) {
3 $saran = nl2br($_POST['saran']);
4 echo "Kritik / Saran Anda adalah : <br>";
5 echo "<font
6 color=blue><b>$saran</b></font>";
7 }
?>
Penjelasan Program 4.16 dan 4.17
Program 4.16 akan menampilkan form kritik saran menggunakan text area (lihat gambar). Untuk
membuat inputan jenis combo box, bisa menggunakan tag <textarea>. Berbeda dengan inputan type
text yang hanya bisa diinput satu baris, pada text area, bisa diinput lebih dari satu baris. Lihat
gambar. Untuk mengambil nilai (value) dari form jenis textarea, dapat langsung mengaksesnya sesuai
dengan name-nya. Perhatikan program 4.17 baris ke-3 !
Bab 5
Array dan
Fungsi

5.1. Pengantar Array

Array merupakan tipe data terstruktur yang berguna untuk menyimpan sejumlah data yang bertipe
sama. Bagian yang menyusun array disebut elemen array, yang masing-masing elemen dapat diakses
tersendiri melalui index array. Index array dapat berupa bilangan integer atau string.

5.2. Mendeklarasikan dan Menampilkan Array

Program 5.1
Nama File : array01.php
Deskripsi : Program mendeklarasikan array dengan index numeric.

1 <?php
2
3 $arrBuah = array ("Mangga", "Apel", "Pisang", "Jeruk");
4 echo $arrBuah[0]; //Mangga
5 echo $arrBuah[3]; //Jeruk
6
7 $arrWarna = array();
8 $arrWarna[] = "Merah";
9 $arrWarna[] = "Biru";
10 $arrWarna[] = "Hijau";
11 $arrWarna[] = "Putih";
12 echo $arrWarna[0];
13 //Merah echo
14 $arrWarna[2]; //Hijau
15
?>
Penjelasan Program 5.1
Untuk mendeklarasikan atau mendefinisikan sebuah array di PHP bisa menggunakan keyword
array(). Pada program 5.1, terdapat pendeklarasian dan pendefinisian array pada baris ke-3. Jumlah
elemen array tidak perlu disebutkan saat deklarasi. Sedangkan untuk menampilkan isi array pada
elemen tertentu, cukup dengan menyebutkan nama array beserta index array-nya (lihat baris ke-4
dan ke-5). Pendeklarasian dan pengisian array juga bisa dilakukan seperti pada baris ke-7 sampai
baris ke-11. Dengan pendefinisian array seperti pada dua cara di atas, index (key) array secara
otomatis akan diisi dengan bilangan bulat integer yang dimulai dari 0.
Program 5.2
Nama File : array02.php
Deskripsi : Program mendeklarasikan array dengan index string (array asosiatif).

php 1
2
rrNilai 3= array("Ani"=>80, "Otim"=>90, "Ana"=>75, "Budi"=>85); echo $arrNilai['Ani'];//80
ho $arrNilai['Otim'];//90
4
5
6
array();7
mi'] = 80;
8
sma'] = 995;
ri'] = 10
77; echo $arrNilai['Asma']; echo $arrNilai['Ami'];
11 //95
12 //80
13
14 ?>

Penjelasan Program 5.2


Untuk mendeklarasikan atau mendefinisikan sebuah array asosiatif (array yang menggunakan index
selain integer), dapat dengan cara menyebutkan index- nya terlebih dahulu diikuti operator => dan
diikuti value atau nilai elemennya. Lihat program baris ke-3 ! Sedangkan untuk menampilkan value
atau nilai dari suatu array, bisa dengan menyebutkan nama array yang diikuti index arraynya (lihat
baris ke-4 dan ke-5). Pendefinisian array asosiatif juga bisa dilakukan seperti pada baris ke-7 sampai
baris ke-10.
Program 5.3
Nama File : array03.php
Deskripsi : Program menampilkan seluruh isi array dengan index numerik.

1 <?php
2 $arrWarna = array ("Blue","Black","Red","Yellow","Green");
3 echo "Menampilkan isi array dengan for : <br>";
4 for ($i=0; $i<count($arrWarna); $i++) {
5 echo "Do you like <font color=$arrWarna[$i]>". $arrWarna[$i]
6 ."</font> ?<br>";
7 }
8 echo "<br>Menampilkan isi array dengan foreach : <br>";
9 foreach ($arrWarna as $warna) {
10 echo "Do you like <font color=$warna>". $warna ."</font>
11 ?<br>";
12 }
13 ?>

Penjelasan Program 5.3


Untuk menampilkan keseluruhan isi array bisa dilakukan dengan perulangan for, while, do..while
atau foreach. Baris 5 – 7 program di atas merupakan contoh menampilkan array dengan perulangan
for. Fungsi count() pada baris ke-5 berfungsi untuk mencari jumlah elemen dari array $assWarna.
Untuk menampilkan array juga bisa menggunakan struktur foreach(). Struktur foreach akan
mengambil elemen array mulai dari posisi pointer sampai akhir pointer. Pada contoh program di atas
(baris ke-10) bisa dinyatakan dengan pernyataan bahwa “untuk setiap elemen array $arrWarna,
masukkan ke variabel $warna”. Tampilan program 5.3 bisa dilihat pada gambar 5.3
Program 5.4
Nama File : array04.php
Deskripsi : Program menampilkan seluruh isi array asosiatif.

1 <?php
2 $arrNilai=array("Ani"=>80,"Otim"=>90,"Ana"=>75,"Budi"=>85);
3
4 echo "Menampilkan isi array dengan foreach : <br>";
5 foreach ($arrNilai as $nama => $nilai) {
6 echo "Nilai $nama = $nilai<br>";
7 }
8 reset ($arrNilai);
9 echo "<br>Menampilkan isi array dengan while dan list :
10 <br>"; while (list ($nama, $nilai) = each($arrNilai)) {
11 echo "Nilai $nama = $nilai<br>";
12 }
13
14 ?>

Penjelasan Program 5.4


Untuk menampilkan array asosiatif bisa menggunakan perulangan foreach dan while dengan fungsi
list() dan each(). Baris ke-5 dari program 5.4. di atas bisa dinyatakan dengan pernyataan “untuk
setiap elemen array $arrNilai, masukkan key/index-nya ke variabel $nama dan masukkan value-nya
ke variabel $nilai”. Pada baris ke-8 terdapat fungsi reset() yang berfungsi mengembalikan pointer
array ke elemen pertama. Pada baris ke-10, array asosiatif ditampilkan dengan struktur while yang
menggunakan fungsi list() dan each().
Program 5.5
Nama File : array05.php
Deskripsi : Program mencetak struktur array.

1 <?php
2 $arrWarna = array ("Blue","Black","Red","Yellow","Green");
3 $arrNilai=array("Ani"=>80,"Otim"=>90,"Ana"=>75,"Budi"=>85);
4 echo "<pre>";
5 print_r
6 ($arrWarna); echo
7 "<br>"; print_r
8 ($arrNilai); echo
9 "</pre>";
?>

Penjelasan Program 5.5


Pada program 5.5 di atas terdapat fungsi print_r() (baris ke-5) yang berfungsi untuk menampilkan
struktur dari array. Tampilan program 5.5 bisa dilihat pada gambar 5.5
5.3. Fungsi-fungsi Array dalam PHP

PHP menyediakan lebih dari 70 fungsi untuk manipulasi array. Fungsi-fungsi array dalam PHP bisa
dilihat di alamat http://ca.php.net/manual/en/ref.array.php.

Fungsi Pengurutan Array


 arsort() – Pengurutan array berdasarkan value secara descending
 asort() – Pengurutan array berdasarkan value secara ascending
 krsort() – Pengurutan array berdasarkan index/key secara descending
 ksort() – Pengurutan array berdasarkan index/key secara ascending
 rsort() – Pengurutan array berdasarkan value secara descending dengan
mengubah index/key
 sort() – Pengurutan array berdasarkan value secara ascending dengan mengubah index/key
 shuffle() – Random pengurutan array

Fungsi Pengaturan Pointer Array


 current() – Mendapatkan elemen array yang ditunjuk oleh pointer
 end() – Pointer menunjuk pada elemen array terakhir
 key() – Mendapatkan key yang ditunjuk oleh pointer
 next() – Pointer menunjuk pada elemen selanjutnya
 prev() – Pointer menunjuk pada elemen sebelumnya
 reset() – Memindahkan pointer array ke awal (elemen pertama)
 count() – Menghitung jumlah elemen array

Fungsi Pencarian pada Array


 array_search() – Mencari posisi (key) dari suatu value dalam array
 array_key_exists() – Memeriksa suatu key ada dalam array atau tidak
 in_array() – Memeriksa suatu elemen ada dalam array atau tidak
Program 5.6
Nama File : array06.php
Deskripsi : Program mengurutkan array dengan sort() dan rsort().

1 <?php
2 $arrNilai=array("Ani"=>80,"Otim"=>90,"Sri"=>75,"Budi"=>85);
3 echo "<b>Array sebelum pengurutan</b>";
4 echo "<pre>";
5 print_r($arrNilai);
6 echo "</pre>";
7
8 sort($arrNilai);
9 reset($arrNilai);
10 echo "<b>Array setelah pengurutan dengan sort()</b>";
11 echo "<pre>";
12 print_r($arrNilai);
13 echo "</pre>";
14
15 rsort($arrNilai);
16 reset($arrNilai);
17 echo "<b>Array setelah pengurutan dengan rsort()</b>";
18 echo "<pre>";
19 print_r($arrNilai);
20 echo "</pre>";
21 ?>

Program 5.7
Nama File : array07.php
Deskripsi : Program mengurutkan array dengan asort() dan arsort().

1 <?php
2 $arrNilai=array("Ani"=>80,"Otim"=>90,"Sri"=>75,"Budi"=>85);
3 echo "<b>Array sebelum pengurutan</b>";
4 echo "<pre>";
5 print_r($arrNilai);
6 echo "</pre>";
7
8 asort($arrNilai);
9 reset($arrNilai);
10 echo "<b>Array setelah pengurutan dengan asort()</b>";
11 echo "<pre>";
12 print_r($arrNilai);
13 echo "</pre>";
14
15 arsort($arrNilai);
16 reset($arrNilai);
17 echo "<b>Array setelah pengurutan dengan arsort()</b>";
18 echo "<pre>";
19 print_r($arrNilai);
20 echo "</pre>";
21 ?>
Program 5.8
Nama File : array08.php
Deskripsi : Program mengurutkan array dengan ksort() dan krsort().

1 <?php
2 $arrNilai=array("Ani"=>80,"Otim"=>90,"Sri"=>75,"Budi"=>85);
3 echo "<b>Array sebelum pengurutan</b>";
4 echo "<pre>";
5 print_r($arrNilai);
6 echo "</pre>";
7
8 ksort($arrNilai);
9 reset($arrNilai);
10 echo "<b>Array setelah pengurutan dengan ksort()</b>";
11 echo "<pre>";
12 print_r($arrNilai);
13 echo "</pre>";
14
15 krsort($arrNilai);
16 reset($arrNilai);
17 echo "<b>Array setelah pengurutan dengan krsort()</b>";
18 echo "<pre>";
19 print_r($arrNilai);
20 echo "</pre>";
21 ?>

Program 5.9
Nama File : array09.php
Deskripsi : Program mengatur posisi pointer dalam array.

1 <?php
2 $transport = array('foot', 'bike', 'car', 'plane');
3 echo "<pre>";
4 print_r ($transport);
5 echo "</pre>";
6
7 $mode = current($transport);
8 echo $mode."<br>"; // $mode = 'foot';
9 $mode = next($transport);
10 echo $mode."<br>"; // $mode = 'bike';
11 $mode = current($transport);
12 echo $mode."<br>"; // $mode = 'bike';
13 $mode = prev($transport);
14 echo $mode."<br>"; // $mode = 'foot';
15 $mode = end($transport);
16 echo $mode."<br>"; // $mode = 'plane';
17 $mode = current($transport);
18 echo $mode."<br>"; // $mode = 'plane';
19 ?>
Program 5.10
Nama File : array10.php
Deskripsi : Program mencari elemen array.

1 <?php
2 $arrBuah = array ("Mangga", "Apel", "Pisang", "Kedondong",
3 "Jeruk");
4 if (in_array ("Kedondong", $arrBuah)) {
5 echo "Ada buah Kedondong di sini";
6 } else {
7 echo "Tidak ada buah Kedondong di sini";
8 }
9 ?>

5.4. Fungsi dalam PHP

Bentuk umum pendefinisian fungsi dalam PHP


function nama_fungsi(parameter1,...,n) {
statement2;
}

Program 5.11
Nama File : fungsi01.php
Deskripsi : Program sederhana mendefinisikan dan memanggil fungsi tanpa parameter dan
tanpa return value.

1 <?php
2 function cetak_ganjil () {
3 for ($i=0; $i<100; $i++) {
4 if ($i%2 == 1) {
5 echo "$i ";
6 }
7 }
8 }
9 //pemanggilan fungsi
10 cetak_ganjil();
11 ?>

Program 5.12
Nama File : array02.php
Deskripsi : Program fungsi dengan parameter.

1 <?php
2 function cetak_ganjil ($awal, $akhir) {
3 for ($i=$awal; $i<$akhir; $i++) {
4 if ($i%2 == 1) {
5 echo "$i ";
6 }
7 }
8 }
9 //pemanggilan fungsi
10 $a = 10;
11 $b = 50;
12 echo "<b>Bilangan ganjil dari $a sampai $b : </b><br>";
13 cetak_ganjil($a, $b);
14 ?>

Program 5.13
Nama File : fungsi03.php
Deskripsi : Program fungsi yang mengembalikan nilai.

1 <?php
2 function luas_lingkaran ($jari) {
3 return 3.14 * $jari * $jari;
4 }
5 //pemanggilan fungsi
6 $r = 10;
7 echo "Luas lingkaran dengan jari-jari $r = ";
8 echo luas_lingkaran($r);
9 ?>

Program 5.14
Nama File : fungsi04.php
Deskripsi : Program passing by value dalam fungsi.

1 <?php
2 function tambah_string ($str) {
3 $str = $str . ", Bandung";
4 return $str;
5 }
6 //
7 $str = "STMIK Dharma Negara";
8 echo "\$str = $str<br>";
9 echo tambah_string ($str). "<br>";
10 echo "\$str = $str<br>";
11 ?>

Program 5.15
Nama File : fungsi05.php
Deskripsi : Program passing by reference dalam fungsi.

1 <?php
2 function tambah_string (&$str) {
3 $str = $str . ", Bandung";
4 return $str;
5 }
6 //
7 $str = "STMIK Dharma Negara";
8 echo "\$str = $str<br>";
9 echo tambah_string ($str). "<br>";
10 echo "\$str = $str<br>";
11 ?>
Program 5.16
Nama File : fungsi06.php
Deskripsi : Program menampilkan defined-function yang didukung oleh PHP.

1 <?php
2 function luas_lingkaran ($jari) {
3 return 3.14 * $jari * $jari;
4 }
5
6 $arr = get_defined_functions();
7 echo "<pre>";
8 print_r($arr);
9 echo "</pre>";
10 ?>

Program 5.17
Nama File : fungsi07.php
Deskripsi : Program memeriksa suatu fungsi tersedia di PHP atau tidak.

1 <?php
2 if (function_exists('exif_read_data')) {
3 echo "Fungsi exif_read_data() ada di PHP.<br />\n";
4 } else {
5 echo "Fungsi exif_read_data() tidak ada di PHP.<br />\n";
6 }
7 ?>
Bab 6
Penanganan String dan
Tanggal

6.1. Pengantar String

String merupakan kumpulan dari karakter. Dalam PHP, karakter sama dengan byte, dimana terdapat
256 karakter. PHP tidak mendukung native Unicode.
Untuk menuliskan sebuah string dalam PHP, bisa menggunakan 3 (tiga) cara, yaitu dengan :
1. Single quoted – kutip tunggal ( ' )
2. Double quoted – kutip ganda ( " )
3. Heredoc sintaks, menggunakan operator <<<, setelah operator ini terdapat identifier (EOT, EOD)
lalu baris baru dan teks itu sendiri dan diakhiri dengan identifier (EOT, EOD).
4. Nowdoc sintaks (mulai PHP 5.3.0), menggunakan tanda petik tunggal untuk identifier ‘EOD’,
‘EOT’

Program 6.1
Nama File : string01.php
Deskripsi : Program string dengan single quoted ( ' ).

1 <?php
2 echo 'this is a simple string'.'<BR>';
3
4 echo 'You can also have embedded newlines in
5 strings this way as it is
6 okay to do<BR>';
7
8 // Outputs: Arnold once said: "I'll be back"
9 echo 'Arnold once said: "I\'ll be
10 back"'.'<BR>';
11
12 // Outputs: You deleted C:\*.*?
13 echo 'You deleted
14 C:\\*.*?'.'<BR>';
15
16 // Outputs: You deleted C:\*.*?
17 echo 'You deleted C:\*.*?'.'<BR>';
18
19 // Outputs: This will not expand: \n a newline
20 echo 'This will not expand: \n a newline'.'<BR>';
21
22 // Outputs: Variables do not $expand $either
echo 'Variables do not $expand $either'.'<BR>';
Program 6.2
Nama File : string02.php
Deskripsi : Program string dengan heredoc sintaks.

1 <?php
2 $str = <<<EOD
3 Example of string
4 spanning multiple lines
5 using heredoc syntax.
6 EOD;
7
8 /* More complex example, with variables. */
9 class foo
10 {
11 var $foo;
12 var $bar;
13
14 function foo()
15 {
16 $this->foo = 'Foo';
17 $this->bar = array('Bar1', 'Bar2', 'Bar3');
18 }
19 }
20
21 $foo = new foo();
22 $name = 'Achmatim';
23
24 echo <<<EOT
25 <u>$str</u><br>
26 My name is "<b>$name</b>". I am printing some <b>$foo->foo</b>.
27 Now, I am printing some <b>{$foo->bar[1]}</b>.
28 This should print a capital 'A': \x41
29 EOT;
30 ?>

6.2. Fungsi-fungsi String dalam PHP

PHP menyediakan lebih dari 90 fungsi untuk manipulasi string. Fungsi-fungsi string dalam PHP bisa
dilihat di http://ca.php.net/manual/en/ref.strings.php.

Beberapa fungsi manipulasi string yang sering digunakan, antara lain :


 addslashes() – menambahkan backslashes (\) di setiap tanda kutip (quote) dalam string.
 chr() – menghasilkan karakter dari bilangan ASCII
 crypt() – menghasilkan string terenkripsi searah.
 echo() – menampilkan satu atau beberapa string.
 explode() – memecah string berdasarkan suatu delimiter (separator).
 htmlentities () – mengubah semua tag html menjadi HTML entities.
 htmlspecialchars() – mengubah semua karakter khusus menjadi HTML entities
 implode() – menggabungkan elemen array menjadi string dengan suatu
delimiter (separator).
 join() – sama dengan implode()
 ltrim() – menghapus karakter tertentu (“ “, \t, \n, \r, \0, \x0B) di awal string.
 md5() – menghasilkan string terenkripsi searah.
 nl2br() – menambahkan HTML line break (<BR>) sebelum semua baris baru dalam string.
 number_format() – mengatur format angka.
 ord() – menghasilkan kode ASCII dari suatu karakter.
 password_hash() – menghasilkan string terenkripsi searah.
 rtrim() - menghapus karakter tertentu (“ “, \t, \n, \r, \0, \x0B) di akhir string.
 split() – sama dengan explode
 str_repeat() – mengulang string
 str_replace() – mengganti semua string dalam pola menjadi suatu string.
 strip_tags() – mengabaikan HTML dan PHP tag dalam string.
 stripslashes() – menghilangkan backslashes (\) dalam string.
 strlen() – menghitung panjang string.
 strpos() – mencari posisi pertama sebuah string dalam string.
 strrchr() – mencari posisi terakhir sebuah karakter dalam string.
 strrpos() – mencari posisi terakhir sebuah string dalam string.
 strrev() – membalik string.
 strstr() – mencari posisi pertama sebuah karakter dalam string.
 strtolower() – mengubah string menjadi huruf kecil (lower-case).
 strtoupper() – mengubah string menjadi huruf kapital (upper-case)
 substr() – memotong string
 trim() - menghapus karakter tertentu (“ “, \t, \n, \r, \0, \x0B) di akhir dan akhir string.
 ucfirst() – mengubah huruf pertama dari semua string menjadi Upper-case.
 ucwords() – mengubah huruf pertama tiap kata dalam string menjadi upper-case.
 wordwrap() – memotong sejumlah karakter dalam string dengan string-break-character.

Program 6.3
Nama File : string03.php
Deskripsi : Program penggunaan fungsi strtolower, strtoupper, ucfirst, ucwords, strrev, dan
strlen dalam string.

1 <?php
2 $str = "Everything i do, i do it for YOU";
3 echo "<b>String asli</b> : $str";
4 echo "<br><b>strtolower()</b> : ".
5 strtolower($str); echo "<br><b>strtoupper()</b> :
6 ". strtoupper($str); echo "<br><b>ucfirst() :</b>
7 ". ucfirst($str);
8 echo "<br><b>ucwords() :</b> ". ucwords($str);
9 echo "<br><b>strrev() :</b> ". strrev($str);
10 echo "<br><b>Jumlah karakter</b> : ". strlen($str);
11 $pasw = 'mypassword';
12 $salt = '$2y$10$usesomesillystringforsalt$';
13 echo "<BR><b>Crypt('".$pasw."','".$salt."') :</b> ".
14 crypt($pasw,$salt);
15 echo "<BR><b>password_hash('".$pasw."',PASSWORD_DEFAULT) :</b> ".
16 password_hash($pasw, PASSWORD_DEFAULT);
echo "<BR><b>password_hash('".$pasw."',PASSWORD_BCRYPT) :</b> ".
17 password_hash($pasw, PASSWORD_BCRYPT);
18 ?>

Penjelasan Program 6.3


Beberapa fungsi yang digunakan dalam program 6.3 di atas antara lain :
 strtolower, untuk mengubah string menjadi lower-case.
 strtoupper, untuk mengubah string menjadi upper-case.
 ucfirst, untuk mengubah huruf pertama string menjadi upper-case.
 ucwords, untuk mengubah huruf pertama tiap kata menjadi upper-case.
 strrev, untuk membalik string.
 strlen, untuk menghitung panjang string.
 crypt, untuk menyandikan password.
 password_hash, untuk menyandikan password.

Program 6.4
Nama File : string04.php
Deskripsi : Program penggunaan fungsi addslashes dan stripslashes pada string.

1 <?php
2 $str = "Is your name O'Reilly ?";
3 $str2 = addslashes ($str);
4 $str3 = stripslashes ($str2);
5
6 echo "<b>String asli</b> : $str";
7 echo "<br><b>addslashes()</b> : $str2";
8 echo "<br><b>stripslashes()</b> : $str3";
9 ?>

Penjelasan Program 6.4


Pada program 6.4 di atas terdapat fungsi addslashes() yang akan menambahkan backslashes (\)
pada setiap quote dalam string, dan sebaliknya fungsi stripslashes akan menghilangkan backslashes
pada string.
Program 6.5
Nama File : string05.php
Deskripsi : Program penggunaan fungsi chr untuk menampilkan 256 karakterASCII.

1 <?php
2 echo "Menampilkan bilangan ASCII";
3 for ($i=1; $i<=256; $i++) {
4 echo "<br>$i.\t". chr($i);
5 }
6 ?>

Penjelasan Program 6.5


Program 6.5 di atas akan menampilkan 256 karakter ASCII. Pada baris 4, terdapat fungsi chr() yang
akan mengubah nilai $i (integer) menjadi karakter ASCII.

Program 6.6
Nama File : string06.php
Deskripsi : Program penggunaan fungsi strip_tags, htmlspecialchars, dan htmlentities untuk
mengatur tag HTML.

1 <?php
2 $str = "<b><u>Everything I do, I do it for you</u></b>";
3
4 echo $str."<br>";
5 //no tag html
6 echo strip_tags ($str). "<br>";
7 //allow tag <u>
8 echo strip_tags ($str,"<u>")."<br>";
9 //tampil apa adanya
10 echo htmlspecialchars ($str)."<br>";
11 //tampil apa adanya
12 echo htmlentities ($str);
13 ?>
Penjelasan Program 6.6
Program 6.6 di atas merupakan contoh penggunaan fungsi strip_tags, htmlspecialchars dan
htmlentities untuk menangani tag-tag HTML yang ada dalam string. Pada baris ke-6, fungsi
strip_tags akan menghilangkan semua tag HTML. Pada baris ke-8, fungsi strip_tags dengan
tambahan parameter “<u>” akan menghilangkan semua tag HTML kecuali tag <u>. Pada baris ke-10
dan ke-12, fungsi htmlspecialchars dan htmlentities akan mengubah semua tag HTML menjadi HTML
special character, sehingga tag HTML akan ditampilkan apa adanya.

Program 6.7
Nama File : string07.php
Deskripsi : Program penggunaan fungsi number_format untuk mengatur format tampilan
angka.

1 <?php
2 $number = 1234.56;
3
4 // English notation (default)
5 $english_format_number = number_format($number);
6 echo "<br>".$english_format_number; // 1,235
7
8 // French notation
9 $nombre_format_francais = number_format($number, 2, ',', ' ');
10 echo "<br>".$nombre_format_francais; // 1 234,56
11
12 //Indonesian notation
13 $format_indonesia = number_format ($number, 2, ',', '.');
14 echo "<br>".$format_indonesia; //1.234,56
15 $number = 1234.5678;
16
17 // English notation without thousands separator
18 $english_format_number = number_format($number, 2, '.', '');
19 echo "<br>". $english_format_number; // 1234.57
20
21 ?>
Penjelasan Program 6.7
Program 6.7 di atas merupakan contoh penggunaan fungsi number_format untuk mengatur tampilan
angka. Secara default, fungsi number_format akan memformat angka dengan model Inggris yaitu
setiap tiga digit dipisahkan dengan koma (,) dan tanpa pecahan. Pada baris ke-9, fungsi
number_format akan mengubah format angka dengan 2 digit pecahan (parameter kedua), pecahan
dipisahkan dengan koma (parameter ketiga) dan setiap tiga digit dipisahkan dengan spasi (parameter
keempat).

Program 6.8
Nama File : string08.php
Deskripsi : Program penggunaan fungsi explode untuk memecah string menjadi array.

1 <?php
2 // Contoh 1
3 $buah = "mangga pisang rambutan apel jeruk kedondong";
4 $buahan = explode(" ", $buah);
5 echo $buahan[0]."<br>"; // mangga
6 echo $buahan[3]."<br>"; // apel
7
8 // Contoh 2
9 $data = "foo:*:1023:1000::/home/foo:/bin/sh";
10 list($user, $pass, $uid, $gid, $gecos, $home, $shell) =
11 explode(":", $data);
12 echo $user."<br>"; // foo
13 echo $pass; // *
14
15 ?>

Penjelasan Program 6.8


Program 6.8 di atas merupakan contoh penggunaan fungsi explode untuk memecah string
berdasarkan pola (aturan) tertentu. Pada baris ke-4, dengan fungsi explode() akan memecah string
$buah berdasarkan spasi dan masing-masing akan menjadi elemen array $buahan.

Program 6.9
Nama File : string09.php
Deskripsi : Program penggunaan fungsi implode untuk menggabungkan array menjadi string.

1 <?php
2 $buahan = array('mangga','jeruk','rambutan','apel','nanas');
3 $buah = implode(",", $buahan);
4
5 echo "Saya suka buah ". $buah;
6 // mangga,jeruk,rambutan,apel,nanas
7 ?>

Penjelasan Program 6.9


Program 6.9 di atas merupakan contoh penggunaan fungsi implode() untuk menggabungkan semua
isi array menjadi satu string. Fungsi implode merupakan kebalikan dari fungsi explode. Pada baris ke-
3, dengan fungsi implode() akan menggabungkan setiap elemen array $buahan menjadi string $buah
dengan pemisah koma di antara tiap elemen.
Program 6.10
Nama File : string10.php
Deskripsi : Program penggunaan fungsi strstr, strchr dan strrchr untuk mengambil
sebagian string berdasarkan pola (karakter) tertentu.

1 <?php
2 $file = "test.this.txt";
3 $ext1 = strstr($file, ".");
4 $ext2 = strchr($file, ".");
5 $ext3 = strrchr($file, ".");
6
7 echo $ext1. "<br>"; //.this.txt
8 echo $ext2. "<br>"; //.this.txt
9 echo $ext3; //.txt
10 ?>

Penjelasan Program 6.10


Program 6.10 di atas merupakan contoh pengambilan sebagian string berdasarkan pola (karakter)
tertentu. Fungsi strstr dan strchr pada baris ke-3 dan ke-4 akan mengambil string setelah karakter
titik (.) dimana pencarian dilakukan dari awal string. Sedangkan fungsi strrchr, akan mengambil string
setelah karakter titik (.) yang mana pencarian dilakukan dari akhir string.

Program 6.11
Nama File : string11.php
Deskripsi : Program penggunaan fungsi wordwrap untuk memotong sejumlah karakter
dari string.

1 <?php
2 $text = "The quick brown fox jumped over the lazy dog.";
3 $newtext = wordwrap($text, 20, "<br>");
4
5 echo $text."<br><br>";
6 echo $newtext;
7 ?>

Penjelasan Program 6.11


Program 6.11 di atas merupakan contoh penggunaan fungsi wordwrap untuk memotong sejumlah
karakter dari string. Pada baris ke-3, fungsi wordwrap akan memotong string $text per-15 karakter
dan dipisahkan (ditambahkan) dengan string “<br>”

Program 6.12
Nama File : string12.php
Deskripsi : Program penggunaan fungsi nl2br dalam string.

1 <form action="" method="post">


2 Input teks di sini :<br>
3 <textarea name="input" cols="40" rows="4"></textarea><br>
4 <input type="submit" name="Submit" value="Proses">
5 </form>
6
7 <?php
8 if (isset($_POST['Submit'])) {
9 $txt = $_POST['input'];
10 echo "<u>Tanpa nl2br() :</u> <br>$txt<br><br>";
11 echo "<u>Dengan nl2br :</u> <br>". nl2br ($txt);
12 }
13 ?>

Penjelasan Program 6.12


Program 6.12 di atas merupakan contoh penggunaan fungsi nl2br. Fungsi nl2br() akan menambahkan
karakter pindah baris (<br>) di setiap awal baris string inputan.

Program 6.13
Nama File : string13.php
Deskripsi : Program penggunaan fungsi substr untuk memotong string.

1 <form action="" method="post">


2 NIM Anda :
3 <input type="text" name="txtnim"><br>
4 <input type="submit" name="Submit" value="Proses">
5 </form>
6
7 <?php
8 if (isset($_POST['Submit'])) {
9 $nim = $_POST['txtnim'];
10 $a = substr ($nim, 2, 2);
11 switch($a) {
12 case '11' : $jurusan = "Teknik Informatika";
13 break;
14 case '22' : $jurusan = "Sistem Informasi";
15 break;
16 case '33' : $jurusan = "Sistem Komputer";
17 break;
18 case '44' : $jurusan = "Komputerisasi Akuntansi";
19 break;
20 default : $jurusan = "Salah jurusan";
21 }
22 echo "Nim Anda : $nim<br>";
23 echo "Jurusan Anda :
24 $jurusan";
25 }
?>
Penjelasan Program 6.13
Program 6.13 di atas merupakan contoh penggunaan fungsi substr (baris ke-10) untuk memotong
string. Pada baris ke-10 tersebut, string $nim akan dipotong mulai karakter index ke-2 (index dimulai
dari 0) sepanjang 2 karakter.

6.3. Fungsi-fungsi Operasi Tanggal dalam PHP

Fungsi dalam Operasi tanggal dalam PHP yang utama dan sering digunakan adalah fungsi date().
Fungsi ini akan menghasilkan tanggal dan waktu server sekarang. Beberapa pilihan parameter dari
fungsi date() ini dapat dilihat pada tabel berikut ini :

Parameter Keterangan Contoh nilai


Hari
d Tanggal, 2 digit dengan nol 01 s/d 31
D Tiga digit nama hari dalam seminggu Mon s/d Sun
Parameter Keterangan Contoh nilai
j Tanggal tanpa nol 1 s/d 31
l (lowercase 'L') Nama hari lengkap dalam seminggu Sunday through Saturday
1 (untuk Monday) s/d 7 (untuk
N Urutan hari dalam seminggu
Sunday)
Akhiran angka English untuk tanggal, 2
S st, nd, rd atau th.
karakter
0 (untuk Sunday) s/d 6 (untuk
w Urutan hari dalam seminggu
Saturday)
z Urutan hari dalam setahun 0 s/d 365
Minggu
Contoh: 42 (minggu ke-42 dalam
W Urutan minggu dalam setahun
tahun ini)
Bulan
F Nama bulan lengkap January s/d December
Urutan bulan dalam setahun dengan
m 01 s/d 12
nol
M Tiga digit nama bulan dalam setahun Jan s/d Dec
Urutan bulan dalam setahun, tanpa
n 1 s/d 12
nol
t Jumlah hari dalam tiap bulan 28 s/d 31
Tahun
Y 4 (empat) digit tahun Contoh: 1999 atau 2018
y 2 (dua) digit tahun Contoh: 99 or 18
Waktu
Lowercase Ante meridiem dan Post
a am atau pm
meridiem
Uppercase Ante meridiem dan Post
A AM atau PM
meridiem
g Jam format 12 tanpa nol 1 s/d 12
Uppercase Ante meridiem dan Post
G 0 s/d 23
meridiem
h Jam format 12 dengan nol 01 s/d 12
H Jam format 24 dengan nol 00 s/d 23
i Menit dengan nol 00 s/d 59
s Detik dengan nol 00 s/d 59

Program 6.14
Nama File : date01.php
Deskripsi : Program menampilkan date/time dengan berbagai parameter.

1 <?php
2 //date_default_timezone_set("Asia/Jakarta");
3 // Tanggal saat ini
4 echo "<br>". date("d/m/Y H:i:s");
5 echo "<br>". date("F j, Y, g:i a");
6 echo "<br>". date("d.m.y");
7 echo "<br>". date("Ymd");
8 //
9 echo "<br>". date('j-m-y, it is w Day z ');
10 // it is the 13th day.
11 echo "<br>". date('\i\t \i\s \t\h\e jS \d\a\y.');
12 //
13 echo "<br>". date("D M j G:i:s T Y");
14 echo "<br>". date("H:i:s");
15 ?>

Program 6.15
Nama File : date02.php
Deskripsi : Program menampilkan nama hari dalam bahasa Indonesia.

1 <?php
2 // Tanggal Sekarang
3 $arrDay = array("Minggu", "Senin", "Selasa", "Rabu", "Kamis",
4 "Jum'at", "Sabtu");
5 $day = date ("w"); //0 - 6 of day
6
7 echo "Hari ini hari : <b>" . $arrDay[$day]."</b>";
8 ?>
Bab 7
File dan Direktori

7.1. Penanganan File

Dalam management file dan direktori, PHP menyediakan lebih dari 70 fungsi. Beberapa fungsi
utama yang berhubungan dengan management file (create, write, append, dan delete), antara lain :

a. Membuka dan Membuat File

fopen ($namafile, $mode);

Keterangan :
$namafile merupakan nama file yang akan dibuat, sedangkan $mode merupakan mode akses file.
Mode akses file yang bisa digunakan yaitu :

Mode Keterangan
r Hanya untuk baca file, pointer berada di awal file
r+ Untuk baca dan tulis file, pointer berada di awal file
w Hanya untuk tulis file, isi file lama dihapus, jika file belum ada maka akan di-create
w+ Untuk baca dan tulis file, isi file lama dihapus, jika file belum ada maka akan di-create
Hanya untuk menambahkan isi file, pointer berada di akhir file, jika file belum ada
a
maka di-create
Untuk membaca dan menambahkan isi file, pointer berada di akhir file, jika file belum
a+
ada maka di-create

Program 7.1
Nama File : file01.php
Deskripsi : Program mengakses (membuka) file dengan mode r.

1 <?php
2 $namafile = "data.txt";
3 $handle = fopen ($namafile, "r");
4 if (!$handle) {
5 echo "<b>File tidak dapat dibuka atau belum ada</b>";
6 } else {
7 echo "<b>File berhasil dibuka</b>";
8 }
9 fclose($handle);
10 ?>
Program 7.2
Nama File : file02.php
Deskripsi : Program mengakses (membuka) file dengan mode w.

1 <?php
2 $namafile = "data.txt";
3 $handle = fopen ($namafile, "w");
4 if (!$handle) {
5 echo "<b>File tidak dapat dibuka atau belum ada</b>";
6 } else {
7 echo "<b>File berhasil dibuka</b>";
8 }
9 fclose($handle);
10 ?>
b. Menulis ke File

fwrite ($handle, $isi);


fputs ($handle, $isi);

Program 7.3
Nama File : file03.php
Deskripsi : Program menulis ke file.

1 <?php
2 $namafile = "data.txt";
3 $handle = fopen ($namafile, "w");
4 if (!$handle) {
5 echo "<b>File tidak dapat dibuka atau belum ada</b>";
6 } else {
7 fwrite ($handle, "Jurusan Teknik Informasi\n");
8 fputs ($handle, "STMIK Dharma Negara\n");
9 //file_put_contents ($namafile, "Jakarta");
10 echo "<b>File berhasil ditulis</b>";
11 }
12 fclose($handle);
13 ?>

Penjelasan Program 7.3


Untuk menulis ke file, dapat menggunakan fungsi fwrite() dan fputs(). Variabel $handle merupakan
mode pengaksesan file, dimana mode yang digunakan harus bisa menulis ke file. Contohnya mode w
dan a. Selain itu, kita juga bisa menggunakan fungsi file_puts_contents() dengan parameter berupa
nama file dan isi yang akan ditambahkan. Jika program di atas dijalankan, maka isi file data.txt akan
berisi seperti pada gambar :

c. Membaca Isi File

fread ($handle [,$panjang]);


fgets ($handle [,$panjang]);

Program 7.4
Nama File : file04.php
Deskripsi : Program membaca dan menampilkan isi file.

1 <?php
2 $namafile = "data.txt";
3 $handle = fopen ($namafile, "r");
4 if (!$handle) {
5 echo "<b>File tidak dapat dibuka atau belum ada</b>";
6 } else {
7 $isi = fgets ($handle, 2048);
8 $isi2 = fread ($handle, 20);
9 echo "Isi 1 : $isi<br>";
10 echo "Isi 2 : $isi2<br>";
11 }
12 fclose($handle);
13 ?>

Penjelasan Program 7.4


Untuk membaca isi file, bisa menggunakan fungsi fgets() dan fread(). Fungsi fgets() akan membaca isi
file tiap baris. Sedangkan fungsi fread() akan membaca isi file setiap jumlah byte tertentu. Pada
program di atas, baris ke-8 akan membaca file setiap 20 byte atau 20 karakter.

Program 7.5
Nama File : file05.php
Deskripsi : Program membaca isi file baris tiap baris.

1 <?php
2 $namafile = "data.txt";
3 $handle = fopen ($namafile, "r");
4 if (!$handle) {
5 echo "<b>File tidak dapat dibuka atau belum ada</b>";
6 } else {
7 echo "<b>Isi file : </b><br>";
8 while ($isi = fgets ($handle, 2048)) {
9 echo "$isi<br>";
10 }
11 }
12 fclose($handle);
13 ?>

Penjelasan Program 7.5


Program 7.5 di atas akan menampilkan keseluruhan isi file, dimana isi file akan dibaca tiap baris.
Pembacaan dilakukan dari baris pertama sampai baris terakhir.
Program 7.6
Nama File : file06.php
Deskripsi : Program membaca isi file baris tiap baris.

1 <?php
2 $namafile = "data.txt";
3 $handle = @fopen($namafile, "r");
4 if ($handle) {
5 while (!feof($handle)) {
6 $buffer = fgets($handle, 4096);
7 echo $buffer."<br>";
8 }
9 fclose($handle);
10 }
11 ?>

Penjelasan Program 7.6


Program 7.6 di atas akan menampilkan keseluruhan isi file, dimana isi file akan dibaca tiap baris.
Pembacaan dilakukan selama pointer file belum sampai di end-of-file. Fungsi feof() pada baris ke-5
berfungsi untuk memeriksa pointer file sudah berada di akhir file atau belum.

d. Menutup File

fclose ($handle);

Program 7.7
Nama File : file07.php
Deskripsi : Program aplikasi user counter dengan file.

1 <?php
2 $counter_file="counter.txt";
3 if (!file_exists ($counter_file)) {
4 fopen ($counter_file, "w");
5 }
6 $file = fopen($counter_file,"r");
7
8 $counter = fread($file,10);
9 fclose($file);
10
11 $counter++;
12
13 echo "<h2>Anda adalah pengunjung ke - $counter</h2>";
14 $file = fopen($counter_file, "w");
15 fwrite($file,$counter);
16 fclose($file);
17 ?>
7.2. Membuat dan Menghapus Direktori

a. Membuat Direktori Baru

Program 7.8
Nama File : file08.php
Deskripsi : Program membuat direktori baru.

1 <?php
2 $dir = "images"; //nama direktori
3 $cek = mkdir ($dir);
4 if ($cek) {
5 echo "Direktori <b>$dir</b> berhasil dibuat";
6 } else {
7 echo "Direktori <b>$dir</b> gagal dibuat";
8 }
9 ?>

Penjelasan Program 7.8


Program 7.8 di atas akan membuat direktori bernama “images” di direktori tempat program 7.8
disimpan. Fungsi untuk membuat direktori baru dalam PHP adalah mkdir(). Jika direktori yang akan
dibuat berada di luar tempat program disimpan, maka sertakan path direktori secara lengkap.

b. Menghapus Direktori

Program 7.9
Nama File : file09.php
Deskripsi : Program menghapus direktori.

1 <?php
2 //buat direktori
3 $dir = "include"; //nama direktori
4 $cek = mkdir ($dir);
5 if ($cek) {
6 echo "Direktori <b>$dir</b> berhasil dibuat";
7 } else {
8 echo "Direktori <b>$dir</b> gagal dibuat";
9 }
10 //hapus direktori
11 $del = rmdir ($dir);
12 if ($del) {
13 echo "<br>Direktori <b>$dir</b> berhasil dihapus";
14 } else {
15 echo "<br>Direktori <b>$dir</b> gagal dihapus";
16 }
17 ?>

Penjelasan Program 7.9


Program 7.9 di atas akan membuat direktori baru bernama “include” (lihat baris ke-4). Setelah itu,
direktori akan dihapus dengan fungsi rmdir() pada baris ke-10. Fungsi rmdir() hanya bisa menghapus
direktori kosong. Jika direktori ada isinya maka, gunakan fungsi rekursif untuk menghapus isi
direktori. Lihat contoh di PHP Manual.

c. Menampilkan Isi Direktori

Program 7.10
Nama File : file10.php
Deskripsi : Program menampilkan file dan direktori dalam suatu direktori.

1 <?php
2 $dir = "images";
3 if ($handle = opendir($dir)) {
4 while (false !== ($file = readdir($handle))) {
5 if ($file != "." && $file != "..") {
6 echo "$file<br>";
7 }
8 }
9 closedir($handle);
10 }
11 ?>

Penjelasan Program 7.10


Program 7.10 di atas akan menampilkan di layar, semua file dan direktori yang berada dalam
direktori “images”. Fungsi opendir() pada baris ke-3 adalah untuk membuka direktori. Sedangkan
fungsi readdir() akan membaca file dalam direktori satu per satu secara urut. Fungsi closedir() pada
baris ke-9 adalah untuk menutup pembukaan direktori.

7.3. Manipulasi File

a. Mendapatkan Informasi File

Beberapa Fungsi yang berhubungan dengan informasi dan manipulasi file, terdapat dalam tabel
sebagai berikut :
Fungsi Keterangan
file_exists($file) Memeriksa apakah $file ada atau tidak
is_file($file) Memeriksa apakah $file adalah file atau bukan.
is_dir($file) Memeriksa apakah $file adalah direktori atau bukan.
is_executable($file) Memeriksa apakah $file termasuk file yang bisa dijalankan secara langsung
atau bukan.
is_writable($file) Memeriksa apakah $file termasuk file yang bisa ditulis atau diedit.
is_readable($file) Memeriksa apakah $file termasuk file yang bisa dibaca atau tidak.
fileatime($file) Menghasilkan waktu akses terakhir file (unix timestamp).
filectime($file) Menghasilkan waktu pembuatan file (unix timestamp).
filemtime($file) Menghasilkan waktu modifikasi terakhir file ( dalam unix timestamp).
filesize($file) Menghasilkan ukuran besar file (dalam byte).
filetype($file) Menghasilkan jenis file.

Program 7.11
Nama File : file11.php
Deskripsi : Program memeriksa keberadaan suatu file.

1 <?php
2 $filename = "data.txt";
3
4 if (file_exists($filename)) {
5 echo "File $filename ADA";
6 } else {
7 echo "File $filename TIDAK ADA";
8 }
9 ?>

Program 7.12
Nama File : file12.php
Deskripsi : Program mendapatkan beberapa informasi file.

1 <?php
2 $file = "data.txt";
3
4 if (is_file($file)) {
5 echo "File <b>$file</b> adalah FILE<br>";
6 //
7 if (is_executable ($file)) {
8 echo "File <b>$file</b> bisa dijalankan secara
9 langsung (executable)<br>";
10 } else {
11 echo "File <b>$file</b> TIDAK executable<br>";
12 }
13 //
14 if (is_writable ($file)) {
15 echo "File <b>$file</b> bisa ditulis / diedit<br>";
16 } else {
17 echo "File <b>$file</b> TIDAK bisa ditulis /
18 diedit<br>";
19 }
20 //
21 if (is_readable ($file)) {
22 echo "File <b>$file</b> bisa dibaca<br>";
23 } else {
24 echo "File <b>$file</b> TIDAK bisa dibaca<br>";
25 }
26 //
27 echo "Akses terakhir file <b>$file</b> = ". date("d-m-Y H:i:s.",
28 fileatime($file)). "<br>";
29 echo "File <b>$file</b> dibuat = ". date("d-m-Y H:i:s.",
30 filectime($file)). "<br>";
31 echo "Modifikasi terakhir file <b>$file</b> = ". date("dm-Y H:i:s.",
32 filemtime($file)). "<br>";
33 echo "Ukuran file <b>$file</b> = ". filesize($file).
34 " bytes<br>";
35 echo "Jenis file <b>$file</b> = ".filetype($file). "<br>";
36 } else if (is_dir($file)){
37 echo "File <b>$file</b> adalah DIREKTORI<br>";
38 } else {
39 echo "File <b>$file</b> tidak dikenal<br>";
40 }
41 ?>

b. Copy, Rename dan Delete File

Program 7.13
Nama File : file13.php
Deskripsi : Program meng-copy, rename dan delete file.

1 <?php
2 $file = "data.txt";
3 $filebaru = "databaru.txt";
4 $filebaru2 = "databaru2.txt";
5 if (copy ($file, $filebaru)) {
6 echo "File <b>$file</b> berhasil dicopy menjadi <b>$filebaru</b>.
7 <br>";
8 }
9 if (rename ($filebaru, $filebaru2)) {
10 echo "File <b>$filebaru</b> berhasil direname menjadi
11 <b>$filebaru2</b>. <br>";
12 }
13 if (unlink ($filebaru2)) {
14 echo "File <b>$filebaru2</b> berhasil dihapus. <br>";
15 }
16 ?>

Penjelasan Program 7.13


Program 7.13 di atas terdapat beberapa fungsi untuk meng-copy, rename dan delete file. Fungsi
copy() pada baris ke-5 akan menduplikasi file $file menjadi file $filebaru. Selanjutnya fungsi
rename() akan mengganti nama file $filebaru menjadi $filebaru2. Fungsi unlink() pada baris ke-11
akan menghapus file $filebaru2.

7.4. Upload File

PHP, sebagai server-side-scripting, sangat memungkinkan untuk menangani upload file ke server.
Ada beberapa hal yang perlu diperhatikan dalam upload file ini, yaitu :
1. Pada Form HTML harus ditambahkan atribut :
ENCTYPE="multipart/form-data"
2. Form inputan upload file dapat menggunakan tag <input> dengan value atribut TYPE=”FILE”.
3. Untuk menangani inputan, PHP menyediakan sebuah variabel array global yaitu $_FILES.
Index dari variabel ini antara lain :
 $_FILES[‘file’][‘name’] : Nama asli dari file yang diupload
 $_FILES[‘file’][‘tmp_name’] : Nama temporary file yang diupload
 $_FILES[‘file’][‘size’] : Ukuran file asli (dalam byte)
 $_FILES[‘file’][‘type’] : MIME type file yang diupload
4. Destination folder file upload harus bisa writable (bisa diakses), biasanya dengan permission
777 atau 775.

Program 7.14
Nama File : form_upload.php
Deskripsi : Program menampilkan form upload file.

1 <html>
2 <head><title>Upload File</title></head>
3 <body>
4 <FORM ACTION="upload.php" METHOD="POST"
5 ENCTYPE="multipart/form-data">
6 Upload File : <input type="file" name="file"><br>
7 <input type="submit" name="Upload" value="Upload">
8 </FORM>
9 </body>
10 </html>

Program 7.15
Nama File : upload.php
Deskripsi : Program proses upload file.

1 <?php
2 if (isset($_POST['Upload'])) {
3 $dir_upload = "images/";
4 $nama_file = $_FILES['file']['name'];
5 //
6 if (is_uploaded_file($_FILES['file']['tmp_name'])) {
7 $cek = move_uploaded_file ($_FILES['file']['tmp_name'],
8 $dir_upload.$nama_file);
9 if ($cek) {
10 die ("File berhasil diupload");
11 } else {
12 die ("File gagal diupload");
13 }
14 }
15 }

Penjelasan Program 7.15


Program 7.15 di atas merupakan program sederhana penanganan upload file. Fungsi
is_uploaded_file() pada baris ke-6 akan mengupload file yang telah dipilih melalui form pada
program 7.14 ke folder temporary (sementara). Selanjutnya pada baris ke-7, file yang sudah diupload
ke folder temporary akan dipindahkan (move) ke direktori yang diinginkan menggunakan fungsi
move_uploaded_file(). Lihat baris ke-7!
Bab 8
Session dan
Cookies

8.1. Session

Session merupakan hal yang cukup penting dalam aplikasi berbasis web. Dengan session
memungkinkan programmer menyimpan informasi user secara semi-permanen, artinya selama masa
tertentu informasi akan tersimpan. Penyimpanan isi variabel session berada di server, jadi tidak bisa
diakses secara langsung oleh client.

Dalam aplikasi berbasis web, session banyak digunakan sebagai autentikasi login. Dengan session
memungkinkan programmer mengatur siapa saja yang bisa mengakses suatu halaman. Misalnya saja,
untuk melihat halaman kotak surat pada email, kita harus login terlebih dahulu. Dalam proses login
antara lain akan terjadi pembuatan suatu session yang akan dibawa oleh user di setiap halaman. Di
halaman kotak surat, session tersebut akan diperiksa. Jika session benar maka user dipersilahkan
membuka halaman kotak surat, namun jika salah maka user tidak bisa membuka halaman kotak surat
dan biasanya akan diminta untuk login terlebih dahulu. Itulah sebabnya, user tidak bisa mengakses
halaman kotak surat secara langsung tanpa melakukan login.

Dalam penanganan session terdapat beberapa proses yang perlu diperhatikan :


 Proses pembuatan session
 Proses pemeriksaan session
 Proses penghapusan session

Selanjutnya bagaimana session itu sendiri dijalankan? Agar proses penyimpanan dalam session
berjalan, PHP melakukan beberapa hal berikut ini :

1. PHP meng-generate (membentuk) sebuah ID session. ID session ini merupakan sejumlah


deret angka random yang unik untuk setiap user dan hampir tidak mungkin bisa ditebak. ID
session disimpan oleh PHP di dalam variabel sistem PHP dengan nama PHPSESSID
2. PHP menyimpan nilai yang akan Anda simpan dalam session di dalam file yang berada di
server. Nama file tempat penyimpanan session tersebut sesuai (sama) dengan ID session. File
disimpan dalam suatu direktori yang ditunjukkan oleh session.save_path dalam file php.ini.
3. PHP melempar ID session ke setiap halaman.
4. PHP mengambil nilai session dari file session untuk setiap halaman session.

Program 9.1
Nama File : session01.php
Deskripsi : Program menciptakan session.

1 <?php
2 /****************************************************
3 Nama file : session01.php
4 Halaman ini merupakan halaman contoh penciptaan session.
5 Perintah session_start() harus ditaruh di perintah pertama
6 tanpa spasi di depannya. Perintah session_start() harus ada
7 pada setiap halaman yang berhubungan dengan session
8 *****************************************************/
9 session_start();
10 if (isset($_POST['Login'])) {
11 $user = $_POST['user'];
12 $pass = $_POST['pass'];
13 //periksa login
14 if ($user == "budi" && $pass = "1234") {
15 //menciptakan session
16 $_SESSION['login'] = $user;
17 //menuju ke halaman pemeriksaan session
18 echo "<h1>Anda berhasil LOGIN</h1>";
19 echo "<h2>Klik <a href='session02.php'>di sini (session02.php)</a>
20 untuk menuju ke halaman pemeriksaan session";
21 }
22 } else {
23 ?>
24 <html>
25 <head>
26 <title>Login here...</title>
27 </head>
28 <body>
29 <form action="" method="post">
30 <h2>Login Here...</h2>
31 Username : <input type="text" name="user"><br>
32 Password : <input type="password" name="pass"><br>
33 <input type="submit" name="Login" value="Log In">
34 </form>
35 </body>
36 </html>
37 <?php } ?>

Penjelasan Program 9.1.


Pada program di atas terdapat fungsi session_start() yang berada pada baris ke-9. Fungsi session_start()
berfungsi untuk memulai sebuah session. Fungsi harus dipanggil pertama kali dalam suatu halaman PHP,
artinya fungsi session_start() harus dipanggil sebelum sesuatu tampil di layar, walaupun hal itu hanya berupa
spasi. Jika sebelum session_start() terdapat output yang ditampilkan maka akan terjadi error seperti pada
gambar berikut ini :

Selanjutnya, program 9.1 akan menampilkan sebuah form login sederhana di layar. Form terdiri dari
form inputan username, password dan sebuah tombol login. Jika tombol login ditekan maka
pemeriksaan kondisi pada baris 10 akan bernilai TRUE dan perintah yang ada di blok if akan
dieksekusi. Baris 11 dan 12 merupakan perintah untuk mengambil nilai pada form inputan
username dan password. Nilai username dan password tersebut diperiksa pada baris 14.
Pemeriksaan username dan password ini, untuk aplikasi web yang sudah menggunakan
database, bisa diganti dengan pemeriksaan username dan password ke tabel database.

Pada baris 16, terdapat perintah sebagai berikut :

$_SESSION['login'] = $user;

Baris perintah tersebut merupakan perintah untuk membuat session baru (create session) dimana
nama session adalah “login” dan isi dari session adalah $user. $_SESSION merupakan sebuah variabel
array global yang didefinisikan oleh PHP, jadi variabel ini harus ditulis dengan huruf kapital (upper-
case). Selanjutnya, pada baris 18-20 akan ditampilkan pesan bahwa login berhasil dan juga sebuah
link menuju ke halaman pemeriksaan session (session02.php, program 9.2).

Program 9.2
Nama File : session02.php
Deskripsi : Program pemeriksaan session.

1 <?php
2 /*************************************************************
3 Halaman ini merupakan contoh halaman pemeriksaan session. Peme-
4 riksaan session biasanya dilakukan jika suatu halaman memiliki
5 akses terbatas. Misalnya harus login terlebih dahulu.
6 **************************************************************/
7 session_start();
8
9 //pemeriksaan session
10 if (isset($_SESSION['login'])) { //jika sudah login
11 //menampilkan isi session
12 echo "<h1>Selamat Datang ". $_SESSION['login'] ."</h1>";
13 echo "<h2>Halaman ini hanya bisa diakses jika Anda sudah
14 login</h2>";
15 echo "<h2>Klik <a href='session03.php'>di sini (session03.php)</a>
16 untuk LOGOUT</h2>";
17 } else {
18 //session belum ada artinya belum login
19 die ("Anda belum login! Anda tidak berhak masuk ke halaman
20 ini. Silahkan login <a href='session01.php'>di sini</a>");
21 }
22 ?>

Penjelasan Program 9.2


Program 9.2 di atas diawali dengan pemanggilan fungsi session_start(). Hal ini berarti dalam halaman
program ini terdapat operasi session. Pada baris 10 program di atas, terdapat pemeriksaan
keberadaan variabel $_SESSION[‘login’] dengan menggunakan fungsi isset(). Pemeriksaan kondisi ini
akan bernilai TRUE jika $_SESSION[‘login’] sudah terbentuk. Jika bernilai TRUE maka blok program
baris 11-14 yang akan dieksekusi, dan sebaliknya, jika FALSE maka blok program baris 16-17 yang
akan dijalankan. Blok program baris 11-14 hanya bisa diakses saat user sudah login dengan benar.
Dengan kata lain, bagian tersebut merupakan bagian yang bersifat private (terbatas).
Untuk menampilkan isi variabel session dapat dilakukan seperti pada baris 12 program di atas. Cukup
dengan meng-echo variabel $_SESSION[‘login’].

Jika user belum login (tidak melewati halaman login) atau langsung mengakses halaman ini, maka
akan ditampilkan pesan bahwa user tidak berhak masuk ke halaman ini. Fungsi die() pada baris 17
digunakan untuk menampilkan suatu pesan sekaligus men-terminate program, artinya perintah
selain die() akan diabaikan.

Program 9.3
Nama File : session03.php
Deskripsi : Program menghapus session.

1 <?php
2 /********************************************************
3 Halaman ini merupakan halaman logout, dimana kita menghapus
4 session yang ada.
5 *********************************************************/
6 session_start();
7 if (isset($_SESSION['login'])) {
8 unset ($_SESSION);
9 session_destroy();
10 //
11 echo "<h1>Anda sudah berhasil LOGOUT</h1>";
12 echo "<h2>Klik <a href='session01.php'>di sini</a> untuk LOGIN
13 kembali</h2>";
14 echo "<h2>Anda sekarang tidak bisa masuk ke halaman
15 <a href='session02.php'>session02.php</a> lagi</h2>";
16 }
17 ?>

Penjelasan Program 9.3.


Program 9.3 merupakan contoh program penghapusan session. Penghapusan session biasanya
digunakan ketika user melakukan logout. Proses penghapusan session dilakukan dengan memanggil
fungsi unset() dan fungsi session_destroy(). Fungsi unset() digunakan untuk menghapus atau
menghilangkan suatu variabel. Sedangkan session_destroy() digunakan untuk menghapus semua
data yang berhubungan dengan session tersebut.

8.2. Cookies

Seperti halnya session, cookies juga merupakan sebuah konsep penyimpanan informasi user. Hanya
saja, jika session tempat penyimpanan berada di server, cookies berada di client. Oleh karena itu,
konsep cookies sebaiknya jangan digunakan untuk menyimpan informasi login user seperti
username, password dsb. Selain user bisa melihat informasi yang disimpan, user juga bisa men-
disable cookies itu sendiri. Jika cookies di-disable, maka program yang memanfaatkan cookies
tentunya tidak akan berjalan dengan baik.

Cookies sendiri biasanya dipakai dalam aplikasi shopping cart. Biasa digunakan untuk menyimpan
sementara, produk-produk yang dipilih oleh pengunjung pada saat berbelanja.

Dalam penanganan cookies juga terdapat beberapa proses yang perlu diperhatikan :
 Proses pembuatan cookies
 Proses pemeriksaan cookies
 Proses penghapusan cookies

Program 9.4
Nama File : cookie01.php
Deskripsi : Program membuat cookie.

1 <?php
2 $value = 'achmatim';
3 $value2 = 'Achmad Solichin';
4
5 setcookie("username", $value);
6 setcookie("namalengkap", $value2, time()+3600); /* expire in 1 hour
7 */
8
9 echo "<h1>Ini halaman pengesetan cookie</h1>";
10
11 echo "<h2>Klik <a href='cookie02.php'>di sini</a> untuk
12 pemeriksaan cookies</h2>";
13 ?>

Program 9.5
Nama File : cookie02.php
Deskripsi : Program pemeriksaan cookie.

1 <?php
2
3 if(isset($_COOKIE['username'])) {
4 echo "<h1>Cookie 'username' ada. Isinya : " .
5 $_COOKIE['username'];
6 } else {
7 echo "<h1>Cookie 'username' TIDAK ada.</h1>";
8 }
9 if(isset($_COOKIE['namalengkap'])) {
10 echo "<h1>Cookie 'namalengkap' ada. Isinya : " .
11 $_COOKIE['namalengkap'];
12 } else {
13 echo "<h1>Cookie 'namalengkap' TIDAK ada.</h1>";
14 }
15 echo "<h2>Klik <a href='cookie01.php'>di sini</a> untuk penciptaan
16 cookies</h2>";
17 echo "<h2>Klik <a href='cookie03.php'>di sini</a> untuk penghapusan
18 cookies</h2>";
19 ?>

Program 9.6
Nama File : cookie03.php
Deskripsi : Program penghapusan cookie.

1 <?php
2 // set the expiration date to one hour ago
3 setcookie ("username", "", time() - 3600);
4 setcookie ("namalengkap", "", time() - 3600);
5 echo "<h1>Cookie Berhasil dihapus.</h1>";
6 echo "<h2>Klik <a href='cookie01.php'>di sini</a> untuk
7 penciptaan cookies</h2>";
8 echo "<h2>Klik <a href='cookie02.php'>di sini</a> untuk
9 pemeriksaan cookies</h2>";
10 ?>
Bab 9
Pemrograman Berorientasi Objek dalam PHP

9.1. Pengantar Pemrograman Berorientasi Objek

PHP pada awalnya hanyalah kumpulan script sederhana. Dalam perkembangannya, selanjutnya
ditambahkan berbagai fitur pemrograman berorientasi objek. Hal ini dimulai sejak PHP 4. Dengan
lahirnya PHP 5, fitur-fitur pemrograman berorientasi objek semakin mantap dan semakin cepat.
Dengan PHP 5, script yang menggunakan konsep object-oriented akan lebih cepat dan lebih efisien.

Pemrograman berorientasi objek atau object-oriented programming (OOP) merupakan suatu


pendekatan pemrograman yang menggunakan object dan class. Saat ini konsep OOP sudah
semakin berkembang. Hampir setiap perguruan tinggi di dunia mengajarkan konsep OOP ini pada
mahasiswa nya. Pemrograman yang banyak dipakai dalam penerapan konsep OOP adalah Java dan
C++.

OOP bukanlah sekedar cara penulisan sintaks program yang berbeda, namun lebih dari itu, OOP
merupakan cara pandang dalam menganalisa sistem dan permasalahan pemrograman. Dalam OOP,
setiap bagian dari program adalah object. Sebuah object mewakili suatu bagian program yang akan
diselesaikan.

Beberapa konsep OOP dasar, antara lain :


1. Encapsulation (Class dan Object)
2. Inheritance (Penurunan sifat), dan
3. Polymorphism

PHP khususnya PHP 5 sudah mendukung beberapa konsep OOP. Akan tetapi PHP 5 tidak mendukung
konsep Multiple-inheritance dan polymorphism.

9.2. Object dan Class

Bagian dasar dari sebuah program yang berorientasi objek adalah objects. Secara mudah kita dapat
memahami mengenai object ini. Sebagai contoh, sebuah mobil adalah objek. Sebuah mobil
mempunyai properties atau bagian- bagian di dalamnya, seperti warna, mesin, roda, pintu dsb.
Sebuah mobil juga dapat melakukan sesuatu (ada sesuatu yang bisa dilakukan dengan mobil), seperti
mengisi bensin, menyalakan mesin, berjalan, mengerem dsb.

Biasanya object adalah sebuah kata benda. Orang adalah object. Demikian juga mobil, pohon,
bunga, komputer, TV, buku dsb. Namun, object tidak selamanya sebuah objek fisik. Bisa saja
sebuah benda abstrak, seperti account bank, sebuah file di komputer, database, pesan email, acara
TV, dsb.

Class merupakan penjelasan atau deskripsi dari object. Di dalam class, terdapat penjelasan tentang
suatu object termasuk properties yang dimilikinya serta kelakuan atau method yang bisa dilakukan
oleh object. Sebagai contoh, class Orang. Class Orang tentu setidaknya memiliki beberapa bagian
seperti tangan, kaki, mata, telinga dsb. Class Orang juga setidaknya harus bisa jalan, bisa loncat, bisa
lari, bisa melihat, bisa bicara dsb.

Salah satu keuntungan program didefinisikan dengan konsep OOP adalah adanya pengkapsulan
(encapsulation) program dalam class dan object, dimana programmer yang menggunakan class tidak
perlu mengetahui isi dan jalannya class secara detail, hanya perlu tahu bagaimana cara
menggunakannya. Sama halnya dengan sebuah mobil misalnya. Seorang pemilik mobil tentunya tidak
perlu mengetahui bagian-bagian mobil secara menyeluruh. Dia tidak perlu mengetahui bagaimana
mesin mobil melakukan pembakaran dan bagaimana mesin mobil bisa menggerakkan roda, dsb. Dia
hanya perlu tahu bagaimana cara menjalankan mobil, bagaimana menghentikan mobil, dan fungsi
mobil lainnya.

9.3. Properties dan Method

Setiap class memiliki properties yang kadang disebut juga attributes. Properties dari sebuah mobil
misalnya warna, ukuran, harga dsb. Di dalam class, properties dinyatakan dengan sebuah
variabel. Misalnya $warna, $harga, dsb.

Method merupakan sesuatu yang bisa dilakukan oleh object. Method dalam PHP sama artinya
dengan sebuah fungsi. Method yang mungkin dipunyai dari sebuah mobil misalnya, method untuk
menghidupkan mobil, menjalankan mobil, menghentikan mobil, dsb.

Penamaan properties dan method memiliki aturan yang sama dengan penamaan sebuah variabel
atau fungsi. Akan tetapi berdasarkan kesepakatan (convention), penamaan properties dan method
harus menggunakan camel Caps, dimana tiap kata diawali dengan huruf besar kecuali kata pertama,
setiap kata digabung tanpa spasi atau under-score ( _ ).

9.4. Mendefinisikan Class

Bentuk umum mendefinisikan sebuah class adalah sbb. :

class namaClass
{
Deklarasikan dan definisikan properties di sini
Definisikan semua method di sini
}

Penamaan namaClass pada dasarnya sama dengan penamaan variabel. Penamaan bebas, boleh apa
saja, kecuali stdClass. PHP sudah menggunakan nama stdClass sebagai nama class built-in. Isi tubuh
class terletak di antara tanda kurung kurawal buka ( { ) dan kurawal tutup ( } ). Di tubuh class terdapat
pendefinisian properties (variabel) dan method-method class.

a. Menambahkan Properties (Variabel)


Perhatikan contoh pendefinisian class beserta properties nya, sbb. :

1 class Mobil
2 {
3 var $warna;
4 var $merk;
5 var $harga;
6
7 //Tambahkan pendefinisian method di sini
8 }
Pendeklarasian variabel dalam class seperti pada contoh di atas, bukanlah suatu keharusan, karena
dalam PHP variabel tidak perlu dideklarasikan, cukup digunakan saja. Namun demikian,
pendeklarasian variabel yang digunakan sangat dianjurkan untuk kemudahan pembacaan dan
pemahaman program.

Variabel class juga dapat langsung diinisialisasi dengan sebuah nilai. Namun inisialisasi variabel tidak
boleh mengandung operasi aritmatika maupun operasi yang lainnya. Perhatikan contoh sebagai
berikut :

1 class Mobil
2 {
3 var $warna =
4 "Biru"; var $merk
5 = "BMW";
6 var $harga = "10000000";
7
8 //Tambahkan pendefinisian method di sini
}
b. Menambahkan Method

Untuk menambahkan method, tinggal mendefinisikan method seperti halnya fungsi biasa. Misalnya
kita akan menambahkan fungsi atau method untuk mengganti warna mobil dan untuk
menampilkan warna mobil. Nama method pada dasarnya terserah (mengikuti aturan nama variabel).
Namun demikian, jangan menggunakan nama method yang diawali dengan dua buah under-score (
) yaitu __construct(), destruct() dan __clone() karena ketiga fungsi tersebut mempunyai arti
tersendiri di PHP.

Lihat contoh menambahkan method sbb. :

1 class Mobil
2 {
3 var $warna =
4 "Biru"; var $merk
5 = "BMW";
6 var $harga = "10000000";
7
8 function gantiWarna ($warnaBaru)
9 {
10 $this->warna = $warnaBaru;
11 }
12
13 function tampilWarna ()
14 {
15 echo "Warna mobilnya : " . $this->warna;
16 }
}
Pada listing program di atas sudah ditambahkan fungsi atau method gantiWarna() dan
tampilWarna(). Untuk mengakses properties (variabel) bisa menggunakan keyword $this. Keyword ini
me-refer pada class tempatnya berada. Method gantiWarna() mempunyai satu parameter, yaitu
$warnaBaru.
c. Menambahkan Konstruktor

Konstruktor merupakan sebuah method khusus yang akan secara otomatis dijalankan saat object
terbentuk. Konstruktor tidak harus ada, namun dalam satu class hanya boleh ada satu konstruktor.
Method konstruktor biasanya berisi pemberian nilai default dari masing-masing properties (variabel).

Untuk membuat konstruktor, cukup dengan mendefinisikan suatu fungsi dengan nama
construct(). Perhatikan contoh sebagai berikut :

1 class Mobil
2 {
3 var $warna;
4 var $merk;
5 var $harga;
6
7 function construct()
8 {
9 $this->warna = "Biru";
10 $this->merk = "BMW";
11 $this->harga = "10000000";
12 }
13
14 function gantiWarna ($warnaBaru)
15 {
16 $this->warna = $warnaBaru;
17 }
18
19 function tampilWarna ()
20 {
21 echo "Warna mobilnya : " . $this->warna;
22 }
23 }

d. Membentuk Objek Class

Untuk menggunakan sebuah objek, harus dibentuk objek dari classnya. Dari sebuah class bisa
dibentuk beberapa objek sekaligus. Bentuk umum pembentukan objek adalah sbb :

$namaObjek = new namaClass();

Sedangkan untuk memanggil anggota (member) dari class dapat dengan format sbb :

$namaObjek->variabel;
$namaObjek->namaMethod();

Program 9.1
Nama File : pbo01.php
Deskripsi : Program sederhana pendefinisian class dan pemanggilan class.

1 <?php
2 class Mobil
3 {
4 var $warna;
5 var $merk;
6 var $harga;
7
8 function construct()
9 {
10 $this->warna = "Biru";
11 $this->merk = "BMW";
12 $this->harga = "10000000";
13 }
14
15 function gantiWarna ($warnaBaru)
16 {
17 $this->warna = $warnaBaru;
18 }
19
20 function tampilWarna ()
21 {
22 echo "Warna mobilnya : " . $this->warna;
23 }
24 }
25
26 $a = new Mobil();
27 $b = new Mobil();
28 echo "<b>Mobil pertama</b><br>";
29 $a->tampilWarna();
30 echo "<br>Mobil pertama ganti warna<br>";
31 $a->gantiWarna("Merah");
32 $a->tampilWarna();
33 //
34 echo "<br><b>Mobil kedua</b><br>";
35 $b->gantiWarna("Hijau");
36 $b->tampilWarna();
37 ?>

Program 9.2
Nama File : pbo02.inc.php
Deskripsi : Program class untuk membuat sebuah form inputan sederhana.

1 <?php
2 /*
3 Nama Class : Form
4 Deskripsi : CLass untuk membuat form inputan text sederhana
5 */
6
7 class Form
8 {
9 var $fields = array();
10 var $action;
11 var $submit = "Submit Form";
12 var $jumField = 0;
13
14 function construct($action, $submit)
15 {
16 $this->action = $action;
17 $this->submit = $submit;
18 }
19
20 function displayForm()
21 {
22 echo "<form action='".$this->action."' method='POST'>";
23 echo "<table width='100%'>";
24 for ($j=0; $j<count($this->fields); $j++) {
25 echo "<tr><td align='right'>".$this->fields[$j]['label']."</td>";
26 echo "<td><input type='text' name='".$this->fields[$j]
27 ['name']."'></td></tr>";
28 }
29 echo "<tr><td colspan='2'>";
30 echo "<input type='submit' value='".$this->submit. "'></td></tr>";
31 echo "</table>";
32 }
33 function addField($name, $label)
34 {
35 $this->fields [$this->jumField]['name'] = $name;
36 $this->fields [$this->jumField]['label'] = $label;
37 $this->jumField ++;
38 }
39 }
40 ?>

Program 9.3
Nama File : pbo03.php
Deskripsi : Program memanfaatkan Program 10.2 untuk membuat form inputan sederhana.

1 <?php
2 include "pbo02.inc.php";
3 echo "<html><head><title>Mahasiswa</title></head><body>";
4 $form = new Form ("","Input Form");
5 $form->addField ("txtnim", "Nim");
6 $form->addField ("txtnama", "Nama");
7 $form->addField ("txtalamat", "Alamat");
8 echo "<h3>Silahkan isi form berikut ini :</h3>";
9 $form->displayForm();
10 echo "</body></html>";
11 ?>

Penjelasan Program 9.3


Program 9.3 di atas merupakan contoh pemanggilan class yang didefinisikan pada Program 9.2
(pbo02.inc.php). Untuk itu pertama kali program pbo02.inc.php harus di-include-kan dengan
menggunakan fungsi include(). Perhatikan program baris ke-2. Untuk menambahkan form inputan
text box, hanya perlu dengan memanggil fungsi addField(). Hasil tampilan dari program di atas dapat
dilihat pada gambar dibawah :
9.5. Memanfaatkan Class yang Tersedia

Dengan adanya konsep pemrograman berorientasi objek, pada programmer PHP di seluruh dunia
dapat lebih mudah berbagi teknik programming. Kita bisa membuat suatu class dan programmer lain
dapat dengan mudah menggunakannya tanpa perlu mengetahui proses jalannya class tersebut. Just
use it! Di internet saat ini bertebaran begitu banyak class dengan fungsinya masing-masing yang
tersedia secara cuma-cuma dan dapat dimodifikasi secara bebas. Situs yang berisi kumpulan-
kumpulan class PHP yang cukup terkenal antara lain http://www.phpclasses.org. Silahkan berkunjung
dan ambil class yang Anda inginkan. Selain itu, Anda juga bisa mendapatkan banyak class PHP di
kumpulan repository PHP dengan nama PECL (PHP Extension Community Library). PECL dapat diakses
di http://pecl.php.net .

Berikut ini beberapa aplikasi PHP yang dibuat dengan konsep OOP yang banyak digunakan dalam
aplikasi berbasis web :

1. PEAR
PEAR merupakan singkatan dari PHP Extension and Application Repository. PEAR berisi kumpulan
class PHP yang dapat digunakan sewaktu-waktu. Class yang cukup banyak digunakan dari PEAR
adalah PEAR::DB yang merupakan abstraction layer antara aplikasi PHP dengan database. Dengan
PEAR::DB program menjadi lebih fleksibel dan secara mudah dapat berganti jenis database
apapun (MySQL, PostgreSQL, Oracle dsb). PEAR dapat di-download dan dilihat di situs
http://pear.php.net

2. Smarty
Smarty merupakan sebuah template-engine untuk PHP. Dengan Smarty memungkinkan terjadi
pemisahan antara logika program (PHP) dan tampilan halaman web. Jadi programmer dan web-
designer dapat mengerjakan sebuah project aplikasi secara paralel (bersamaan). Smarty
merupakan salah satu template-engine yang banyak digunakan saat ini. Selain memisahkan
antara logika program dan layout program, smarty juga dapat mempercepat akses ke halaman
web karena smarty juga menggunakan konsep cache halaman web. Beberapa situs yang
menggunakan Smarty antara lain www.bl.ac.id, www.blogsome.com, www.tikiwiki.org dan
sebagainya. Smarty dapat di-download di situs https://www.smarty.net/
3. FPDF
FPDF merupakan class PHP yang memungkinkan untuk membuat (generate) file PDF dengan PHP
murni, tanpa menggunakan library PDFlib. F dari FPDF merupakan singkatan dari Free: jadi Anda
bisa mendapatkannya secara cuma-cuma dan juga dapat memodifikasinya. Informasi mengenai
FPDF bisa didapat di situsnya http://www.fpdf.org

4. JpGraph
JpGraph merupakan library PHP untuk pembuatan grafik, baik dalam bentuk grafik batang, pie,
chart, line dsb. JpGraph membutuhkan extension PHP berupa PHP GD. JpGraph dapat
didownload secara gratis di https://jpgraph.net/
Bab 10
Teknik
Modularitas

10.1. Konsep Modularitas

Konsep modularitas dalam programming diperlukan untuk mempermudah dalam pengorganisasian


script/program. Adapun prinsip dari konsep ini adalah meletakkan beberapa perintah yang
menjalankan suatu tugas khusus ke dalam modul atau file script tersendiri. Setiap kali modul
tersebut dibutuhkan, kita hanya menyisipkan modul tersebut ke dalam script yang sedang dibuat
dengan cara memanggilnya.

Adapun cara memanggil modul dengan menggunakan perintah :

include "namafilemodul";

Perhatikan gambaran penggunaan konsep modularitas berikut ini:

Misalkan Anda membuat modul dan disimpan dalam script bernama modulku.php. Selanjutnya Anda
sedang membuat script tertentu katakanlah diberi nama file scriptku.php. Kebetulan dalam
scriptku.php Anda membutuhkan modulku.php, maka skema yang terjadi adalah:

Dari skema di atas, jelas tampak bahwa bila Anda memberikan perintah include "modulku.php";
dalam scriptku.php, maka akan identik dengan bila Anda menyisipkan script yang ada dalam
modulku.php ke dalam scriptku.php secara manual.

Contoh:
Dalam contoh ini kita akan menggunakan konsep modularitas untuk membuat script operasi
aritmatika penjumlahan dan pengurangan dari 2 buah bilangan. Untuk input bilangannya disimpan
dalam modul tersendiri, misalkan dinamakan bilangan.php. Selanjutnya modul ini akan di-include-
kan ke dalam script penjumlahan dan pengurangan.

Program 10.1
Nama File : bilangan.php
Deskripsi : Deklarasi bilangan

1 <?php
2
3 $bil1 = 10;
4 $bil2 = -5;
5
6 ?>

Program 10.2
Nama File : jumlah.php
Deskripsi : Program penambahan dengan menggunakan deklarasi bilangan.php

1 <?php
2
3 include "bilangan.php";
4
5 $hasil = $bil1 + $bil2;
6 echo "Hasil penjumlahannya adalah : ".$hasil;
7
8 ?>

Bentuk script jumlah.php di atas akan identik dengan script berikut ini

1 <?php
2
3 $bil1 = 10;
4 $bil2 = -5;
5
6 $hasil = $bil1 + $bil2;
7 echo "Hasil penjumlahannya adalah : ".$hasil;
8
9 ?>

Program 10.3
Nama File : kurang.php
Deskripsi : Program pengurangan dengan menggunakan deklarasi bilangan.php

1 <?php
2
3 include "bilangan.php";
4
5 $hasil = $bil1 - $bil2;
6 echo "Hasil pengurangannya adalah : ".$hasil;
7
8 ?>

Script kurang.php di atas akan identik dengan

1 <?php
2
3 $bil1 = 10;
4 $bil2 = -5;
5
6 $hasil = $bil1 - $bil2;
7 echo "Hasil pengurangannya adalah : ".$hasil;
8
9 ?>

10.2. Penerapan Teknik Modularitas

Teknik modularitas dapat dipergunakan dalam pengaturan layout halaman web supaya lebih mudah.
Sebelum Anda mengenal teknik modularitas, apa yang Anda lakukan bila diminta membuat halaman
web sejumlah 20 buah dengan desain layout yang sama, namun kontennya berbeda? Tentu Anda
akan membuat satu buah desain template untuk layout, lalu Anda tinggal mengganti kontennya saja.

Namun bagaimana seandainya dari 20 buah halaman web tersebut Anda ingin ubah desainnya?
Tentu Anda harus mengubah semua halaman satu persatu. Bagaimana bila terdapat 100 buah
halaman web dan kesemuanya Anda ingin ubah desainnya? Tentunya banyak pekerjaan yang harus
dilakukan.

Di sinilah kita akan gunakan teknik modularitas. Dengan teknik modularitas ini, Anda dapat
mengubah desain layout dari banyak halaman web dengan satu langkah saja secara cepat.

a. Dasar teknik modularitas

Misalkan kita buat desain layout untuk halaman web kita sebagai berikut:

<html>
<head>
<title>Halaman Webku</title>
</head>
<body background="yellow">
<h1><font face="arial">…</font></h1>
<p><font face="verdana"> … </font></p>
</body>
</html>

Misalkan kita akan membuat 3 halaman web menggunakan layout di atas. Maka caranya, kita cari
blok dalam HTML layout yang nantinya akan diisi dengan konten yang berbeda-beda untuk masing-
masing halaman.

<html>
<head>
<title>Halaman Webku</title>
</head>
<body bgcolor="yellow">
<h1><font face="arial">…</font></h1>
<p><font face="verdana"> … </font></p>
</body>
</html>

Keterangan:
Bagian yang diblok di atas merupakan bagian tag yang nantinya akan diisi dengan konten yang
berbeda-beda untuk setiap halamannya.
Langkah selanjutnya, kita pindahkan tag HTML mulai bagian paling atas dari layout sampai
dengan sebelum tag yang dicetak tebal. Tag-tag tersebut kita pindahkan ke dalam modul
tersendiri, misalkan dinamakan header.php

Program 10.4
Nama File : header.php
Deskripsi : Blok header

1 <html>
2 <head>
3 <title>Halaman Webku</title>
4 </head>
5 <body bgcolor="yellow">

Kemudian pindahkan tag setelah bagian yang dicetak tebal dalam layout sampai dengan tag terakhir
ke dalam modul tersendiri dan simpan dengan nama footer.php.

Program 10.5
Nama File : footer.php
Deskripsi : Blok footer

1 </body>
2 </html>

Selanjutnya untuk setiap halaman yang ingin Anda buat, berikan include "header.php" dan
include "footer.php";

Program 10.6
Nama File : hal1.php
Deskripsi : Halaman 1

1 <?php
2 include "header.php";
3 ?>
4
5 <h1><font face="arial">Ini Halaman 1</font></h1>
6 <p><font face="verdana">Ini isi halaman 1. Ini isi halaman
7 1</font></p>
8
9 <?php
10 include "footer.php";
11 ?>

Program 10.7
Nama File : hal2.php
Deskripsi : Halaman 2

1 <?php
2 include "header.php";
3 ?>
4
5 <h1><font face="arial">Ini Halaman 2</font></h1>
6 <p><font face="verdana">Ini isi halaman 2. Ini isi halaman
7 2</font></p>
8
9 <?php
10 include "footer.php";
11 ?>

Program 10.8
Nama File : hal3.php
Deskripsi : Halaman 3

1 <?php
2 include "header.php";
3 ?>
4
5 <h1><font face="arial">Ini Halaman 3</font></h1>
6 <p><font face="verdana">Ini isi halaman 3. Ini isi halaman
7 3</font></p>
8
9 <?php
10 include "footer.php";
11 ?>

Dengan demikian, kita akan peroleh 3 halaman web yang pasti memiliki layout yang sama.
Selanjutnya bagaimana bila kita ingin mengubah layoutnya? Misal kita ubah warna background
menjadi hijau. Yang Anda lakukan hanyalah mengedit modul header.php karena pengaturan
warna background terdapat pada modul tersebut.

header.php

1 <html>
2 <head>
3 <title>Halaman Webku</title>
4 </head>
5 <body bgcolor="green">

Secara seketika ketiga halaman web tadi akan otomatis backgroundnya berubah menjadi hijau
semuanya.

b. Teknis modularitas pada banyak halaman

Selain cara di atas, Anda juga bisa menggunakan cara yang lain dalam pengaturan layout.
Misalkan konfigurasi pengaturan layout seperti jenis font, dan warna background Anda
letakkan dalam modul tersendiri.

Program 10.9
Nama File : config2.php
Deskripsi : File konfigurasi

1 <?php
2 $warnaBackground = "yellow";
3 $jenisFontHeading = "arial";
4 $jenisFontParagraf = "verdana";
5 ?>

Program 10.10
Nama File : header2.php
Deskripsi : Blok header

1 <?php
2 include "config2.php";
3 ?>
4
5 <html>
6 <head>
7 <title>Halaman Webku</title>
8 </head>
9 <body bgcolor="<?php echo $warnaBackground; ?>">

Program 10.11
Nama File : footer2.php
Deskripsi : blok footer

1 </body>
2 </html>

Program 10.12
Nama File : hal21.php
Deskripsi : Halaman 1

1 <?php
2 include "header2.php";
3 ?>
4
<h1><font
5 face="<?php echo $jenisFontHeading; 1</font></h1>
?>">Ini Halaman
<p><font
6 face="<?php echo $jenisFontParagraf;
1. Ini
7 isi halaman 1</font></p> ?>">Ini isi halaman
8
9
10
11 <?php
12 include "footer2.php";
13 ?>

Program 10.13
Nama File : hal22.php
Deskripsi : Halaman 2

1 <?php
2 include "header2.php";
3 ?>
4
5 <h1><font face="<?php echo $jenisFontHeading; ?>">Ini
6 Halaman 2</font></h1>
7 <p><font face="<?php echo $jenisFontParagraf; ?>">Ini isi halaman
8 2. Ini isi halaman
9 2</font></p>
10
11 <?php
12 include "footer2.php";
13 ?>

Program 10.14
Nama File : hal23.php
Deskripsi : Halaman 3

1 <?php
2 include "header2.php";
3 ?>
4
5 <h1><font face="<?php echo $jenisFontHeading; ?>">Ini Halaman
6 3</font></h1>
7 <p><font face="<?php echo $jenisFontParagraf; ?>">Ini isi halaman
8 3. Ini isi halaman
9 3</font></p>
10
11 <?php
12 include "footer2.php";
13 ?>

Dengan demikian, bila Anda ingin mengubah layout ketiga halaman web maka Anda cukup
mengubah modul config2.php.

c. Teknis modularitas pada pengaturan layout form

Selanjutnya bagaimana bila kita mengintegrasikan konsep modularitas yang terkait dengan
pengaturan layout di atas dengan form processing?

Untuk contoh sederhananya, digunakan contoh script menjumlahkan dua buah bilangan dengan
inputnya melalui form.

Misalkan kita ambil desain layout halaman webnya seperti contoh sebelumnya, yaitu terdiri dari
modul header3.php dan footer3.php nya sebagai berikut:

Program 10.15
Nama File : config3.php
Deskripsi : File konfigurasi

1 <?php
2 $warnaBackground = "yellow";
3 $jenisFontHeading = "arial";
4 $jenisFontParagraf = "verdana";
5 ?>
Program 10.16
Nama File : header3.php
Deskripsi : Blok Header

1 <?php
2 include "config3.php";
3 ?>
4
5 <html>
6 <head>
7 <title>Penjumlahan Bilangan</title>
8 </head>
9 <body bgcolor="<?php echo $warnaBackground; ?>">

Program 10.17
Nama File : footer3.php
Deskripsi : Blok footer

1 </body>
2 </html>

Selanjutnya kita buat form yang terletak dalam halaman yang menggunakan layout tersebut:

Program 10.18
Nama File : form3.php
Deskripsi : Form masukan

1 <?php
2 include "header3.php";
3 ?>
4
5 <h1><font face="<?php echo $jenisFontHeading; ?>">Input
6 Bilangan</font></h1>
7 <p><font face="<?php echo $jenisFontParagraf; ?>">Masukkan dua buah
8 bilangan pada form berikut ini</font></p>
9
10 <form method="post" action="proses3.php"> Bilangan 1 <input
11 type="text" name="bil1" /><br /> Bilangan 2 <input type="text"
12 name="bil2" /><br />
13 <input type="submit" name="submit" value="Jumlahkan" />
14 </form>
15
16 <?php
17 include "footer3.php";
18 ?>
Program 10.19
Nama File : proses3.php
Deskripsi : Halaman pemrosesan

1 <?php
2 include "header3.php";
3
4 $bil1 = $_POST['bil1'];
5 $bil2 = $_POST['bil2'];
6 $hasil = $bil1 + $bil2;
7 ?>
8
9 <h1><font face="<?php echo $jenisFontHeading; ?>">Output</font></h1>
10 <p><font face="<?php echo $jenisFontParagraf; ?>">Hasil
11 penjumlahannya adalah
12 <?php echo $hasil; ?> </font></p>
13
14 <?php
15 include "footer3.php";
16 ?>
Bab 11
Pengenalan DBMS dan
MySQL

11.1. Tentang Database, DBMS dan RDBMS

Basis data (atau database) adalah kumpulan informasi yang disimpan di dalam komputer secara
sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh
informasi dari basis data tersebut (http://id.wikipedia.org/wiki/Database). Database digunakan untuk
menyimpan informasi atau data yang terintegrasi dengan baik di dalam komputer.

Untuk mengelola database diperlukan suatu perangkat lunak yang disebut DBMS (Database
Management System). DBMS merupakan suatu sistem perangkat lunak yang memungkinkan user
(pengguna) untuk membuat, memelihara, mengontrol, dan mengakses database secara praktis dan
efisien. Dengan DBMS, user akan lebih mudah mengontrol dan memanipulasi data yang ada.

Sedangkan RDBMS atau Relationship Database Management System merupakan salah satu jenis
DBMS yang mendukung adanya relationship atau hubungan antar tabel. Di samping RDBMS, terdapat
jenis DBMS lain, misalnya Hierarchy DBMS, Object Oriented DBMS, dsb.

Beberapa software atau perangkat lunak DBMS yang sering digunakan dalam aplikasi program antara
lain :
 DB2 - http://www-306.ibm.com/software/data/db2/
 Microsoft SQL Server - http://www.microsoft.com/sql/
 Oracle - http://www.oracle.com
 Sybase - http://www.sybase.com/
 Interbase - http://www.borland.com/interbase
 Teradata - http://www.teradata.com/
 Firebird - http://www.firebirdsql.org/
 MySQL – http://www.mysql.com
 PostgreSQL - http://www.postgresql.org/

Dalam konsep database, urutan atau hierarki database sangatlah penting. Urutan atau hierarki
database digambarkan dalam gambar sbb :
11.2. Tentang MySQL

MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (Database Management
System) atau DBMS. Namanya merupakan kombinasi dari “My”, yaitu nama anak perempuan dari
Michael Widenius (yang merupakan salah satu pencipta dari MySQL) dan “SQL” yang merupakan
kependekan dari Structured Query Language. Proyek pengembangan MySQL menyediakan kode
sumber nya di bawah lisensi GNU General Public License, tetapi mereka juga menjual di bawah
lisensi komersial untuk kasus-kasus di mana penggunaannya tidak cocok dengan penggunaan GPL.
MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, yang sekarang
dimiliki oleh Oracle Corporation, di mana memegang hak cipta hampir atas semua kode sumbernya.
Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark,
Allan Larsson, dan Michael "Monty" Widenius.

Pada tanggal 16 Januari 2008 Sun Microsystems, Inc mengumumkan aksi korporasi - akuisisi terhadap
MySQL AB sehingga menjadikan Sun sebagai salah satu perusahaan dengan produk platform open
source terbesar seperti Java, OpenSolaris dan akhirnya MySQL. Berselang setahun kemudian,
tepatnya pada tanggal 20 April 2009 giliran Oracle melakukan akusisi terhadap Sun Microsystems.
Sejak saat itu berkembang isu Oracle - yang memiliki produk database yang berkompetisi dengan
MySQL - akan mematikan MySQL. Namun sampai sejauh ini hal tersebut belum terbukti.

MySQL adalah komponen utama dari perangkat lunak aplikasi web Open-source LAMP (dan jenis
“AMP” lainnya). LAMP adalah akronim untuk “Linux, Apache, MySQL, Perl / PHP / Python”. Aplikasi
yang menggunakan database MySQL meliputi: TYPO3, MODx, Joomla, WordPress, Simple Machines
Forum, phpBB, MyBB, dan Drupal. MySQL juga digunakan di banyak situs web skala besar dan profil
besar, termasuk Google (meskipun tidak untuk pencarian), Facebook, Twitter, Flickr, dan YouTube.

MySQL memiliki beberapa keistimewaan, antara lain :


 Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux,
FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
 Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak
sumber terbuka, di bawah lisensi GPL sehingga dapat digunakan secara gratis.
 Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang
bersamaan tanpa mengalami masalah atau konflik.
 'Performance tuning', MySQL memiliki kecepatan yang menakjubkan dalam menangani
query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
 Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed /
unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
 Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung
perintah Select dan Where dalam perintah (query).
 Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama
host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
 Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan
jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 miliar baris. Selain itu
batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
 Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP,
Unix soket (UNIX), atau Named Pipes (NT).
 Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih
dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
 Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan
bahasa pemrograman dengan menggunakan fungsi API (Application Programming
Interface).
 Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool) yang dapat
digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan
petunjuk online.
 Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani
ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.

Berikut Fitur serta kapabilitas yang dimiliki oleh MySQL:


 Unjuk kerja yang tinggi dalam memproses query sederhana, dalam arti dapat memproses
lebih banyak SQL per satuan waktu.
 Memiliki lebih banyak tipe data seperti : signed/unsigned integer yang memiliki panjang
data sebesar 1,2,3,4 dan 8 byte, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME,
DATETIME, TIMESTAMP, YEAR, SET dan tipe ENUM.
 Mendukung field yang dijadikan Index, dengan maksimal 32 index dalam satu tabel. *
 MYSQL memiliki beberapa lapisan keamanan, seperti subnetmask, nama host, dan izin akses
user dengan sistem perijinan yang mendetail serta sandi/password terenkripsi.
 Konektivitas , MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP ,Unix
soket (UNIX),atau Named Pipes(NT).
 Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang
bersamaan tanpa mengalami masalah atau konflik
 Command and function, MySQL memiliki fungsi dan operator secara penuh yang
mendukung perintah select dan where dalam query.
 Structure Table, MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani
ALTER TABLE dibandingkan DBMS lainnya.
 Mendukung penuh terhadap kalimat SQL GROUP BY dan ORDER BY. Mendukung terhadap
fungsi penuh ( COUNT(),COUNT(), DISTINCT() AVG(), STD(), SUM(), MAX() dan MIN() )

Terdapat beberapa fork1 dari MySQL, diataranya :


 MariaDB adalah fork yang dikembangkan komunitas dari sistem manajemen basis data
relasional MySQL yang dimaksudkan untuk tetap bebas di bawah GNU GPL. Fork terkenal karena
dipimpin

1
Pembuatan cabang baru dari kode yang sudah ada guna memulai proyek yang lainnya. Cabang ini dapat
dikembangkan secara independen dari proyek utamanya, dengan opsi yang tidak tersedia pada awal
pemulaannya.
oleh pengembang asli MySQL (Michael "Monty" Widenius). MariaDB dibuat karena kekhawatiran
atas akuisisi oleh Oracle. Kontributor diminta untuk membagi hak cipta mereka dengan Yayasan
MariaDB. MariaDB bermaksud untuk mempertahankan kompatibilitas yang tinggi dengan
MySQL, memastikan kemampuan penggantian "drop-in" dengan pustaka binary yang sama persis
dan API dan perintah MySQL yang tepat sama. Namun ada beberapa perbedaan yang
didokumentasikan dan ketidaksesuaian antara versi MySQL dan MariaDB, dan beberapa alat
untuk berinteraksi dengan MySQL, seperti Workbench MySQL, tidak sepenuhnya kompatibel
dengan MariaDB. Ini termasuk mesin penyimpanan (storage engine) XtraDB untuk menggantikan
InnoDB, serta mesin penyimpanan baru, Aria, yang berniat untuk menjadi mesin transaksional
dan non-transaksional bahkan mungkin termasuk dalam versi masa depan MySQL.
 Percona Server, di-fork oleh Percona, bertujuan untuk mempertahankan kompatibilitas penuh
ke rilis MySQL resmi, sambil berfokus pada kinerja dan meningkatkan visibilitas ke dalam operasi
server. Juga termasuk dalam Percona Server adalah XtraDB, fork dari Mesin Penyimpanan
InnoDB. Percona menyertakan sejumlah fitur skalabilitas, ketersediaan, keamanan, dan backup
data yang hanya tersedia di edisi Enterprise komersial MySQL.

11.3. Storage Engine di MySQL

Data di MySQL disimpan di dalam file-file (memori) menggunakan berbagai teknik berbeda. Setiap
teknik menggunakan mekanisme penyimpanan, fasilitas pengindeksan, tingkatan penguncian
berbeda yang pada akhirnya akan memberikan rentang kemampuan dan fungsi yang berbeda pula.

Dengan menggunakan teknik berbeda, Anda dapat memperoleh kecepatan proses atau manfaat
tambahan yang akan meningkatkan keseluruhan fungsi dari aplikasi. Masing-masing teknik dan
serangkaian fungsi di dalam sistem MySQL inilah yang disebut dengan storage engine atau table type.

Secara standar, MySQL dilengkapi dengan sejumlah storage engine yang telah diprakonfigurasi dan
diaktifkan di server MySQL. Dua storage engine MySQL yang umum digunakan adalah InnoDB dan
MyISAM. InnoDB adalah storage engine standar untuk MySQL versi 5.5 ke atas, sedangkan MyISAM
adalah storage engine yang digunakan sebelum MySQL versi 5.5.

Anda dapat menetukan atau memilih storage engine yang akan digunakan pada server, database
maupun tabel. Jika Anda tidak menentukan storage engine yang akan digunakan, maka storage
engine standar yang digunakan adalah yang sesuai dengan konfigurasi server MySQL.

Berapa storage engine MySQL 5.5:

 InnoDB : merupakan storage engine yang aman untuk proses-proses transaksional pada
MySQL yang memiliki kemampuan commit, rollback dan crash-recovery guna memproteksi
data penguna. InnoDB menyimpan data pengguna dalam indeks-indeks yang terklaster
(clustered indexes) untuk mengurangi I/O atas kueri umum (common queries) berdasarkan
primary key. Guna mendukung integritas data, InnoDB juga mendukung Foreign Key untuk
referential- integrity constraint. InnoDB adalah storage engine standar untuk MySQL versi 5.5
ke atas.
 MyISAM : merupakan storage engine standar untuk MySQL sebelum versi 5.5 dan yang
paling panyak digunakan pada data werehousing, Web dan lingkungan aplikasi lainnya.
Beberapa contoh CMS (Content Management System) terkenal yang telah menggunakan
MySQL diantaranya adalah Joomla, Wordpress dan Drupal.
 Memory : merupakan storage engine yang menyimpan data di RAM untuk akses cepat
terhadap pencarian data. Storage engine yang awalnya dikenal sebagai HEAP engine ini
pemanfaatannya cenderung mengalami penurunan.
 CSV : mulai ditambahkan di MySQL versi 4.1.4, merupakan storage engine yang menyimpan
data dalam bentuk file text dan menggunakan pembatas koma untuk memisahkan format nilai.
Anda dapat menggunakannya untuk bertukar data antar perangkat lunak yang mendukung
format CSV.
 Merge : merupakan storage engine yang memudahkan Administrator Database MySQL untuk
mengelompokkan secara logis serangkaian tabel MyISAM yang identik dan mengacunya
sebagai satu obyek.
 Archive : mulai ditambahkan di MySQL versi 4.1.3, merupakan storage engine yang digunakan
untuk menyimpan atau memperoleh informasi dalam jumlah cukup besar dari tabel-tabel yang
tidak terindeks.
 Blackhole : merupakan storage engine yang menerima tetapi tidak menyimpan data dan
proses pengambilan data selalu tidak menghasilkan apapun (an empty set), digunakan dalam
disain database terdistribusi dimana data otomatis direplikasi tetapi tidak disimpan.
 Federated : mulai ditambahkan di MySQL versi 5.0, merupakan storage engine yang
menawarkan kemampuan untuk menghubungkan server MySQL yang terpisah untuk membuat
satu database logis dari banyak server fisik.

Secara lengkap storage engine yang ada dalam keluarga MySQL adalah sebagai berikut :

Under active
Name Vendor License Transactional
development
Archive Oracle GPL No Yes
Aria MariaDB GPL No Yes
Berkeley DB Oracle AGPLv3 ? No
BlitzDB ? GPL No Yes
CassandraSE MariaDB GPL No No
CONNECT MariaDB GPL ? Yes
CSV Oracle GPL No Yes
DeepSQL Deep Information Custom Yes Yes
Sciences Proprietary
Falcon Oracle GPL Yes No
Federated Oracle GPL ? No
FederatedX MariaDB GPL ? Yes
InfiniDB Calpont GPL Yes Yes
InnoDB Oracle GPL Yes Yes
mroonga MariaDB GPL ? Yes
MyISAM Oracle GPL No No
MyMax CEICOM Solutions Custom Yes Yes
Proprietary
MyRocks Facebook GPLv2 Yes Yes
NDB Oracle GPLv2 Yes Yes
sequence MariaDB GPL Yes Yes
SphinxSE Sphinx Technologies GPL No Yes
TokuDB TokuTek Modified GPL Yes Yes
WiredTiger WiredTiger GPL Yes Yes
XtraDB Percona GPL Yes Yes
11.4. Instalasi MySQL

Cara paling mudah untuk menjalankan MySQL adalah dengan menggunakan software XAMPP.
Jalankan “XAMPP Control” kemudian klik Start pada baris MySQL. Maka akan tampil layar sebagai
berikut :

Pada versi XAMPP yang baru software DBMS yang dijalankan sebenarnya bukan MySQL tapi
MariaDB, namun demikian tidak terdapat perbedaan yang banyak dalam pengoperasian
dan perintah-perintah SQL yang ada.

11.5. Administrasi Server MySQL

Berikut ini beberapa tools yang biasa digunakan dalam mempermudah administrasi server MySQL.
Tools berikut ini hanya digunakan untuk mempermudah administrasi MySQL, jadi tidak harus
digunakan.

1. MySQL Command Line Client

MySQL Command Line Client merupakan tools default MySQL yang sudah disertakan dalam file
instalasi MySQL. Aplikasi ini dapat digunakan untuk melakukan koneksi ke MySQL melalui text-based
mode.
2. PHPMyAdmin

PHPMyAdmin merupakan front-end MySQL berbasis web. PHPMyAdmin dibuat dengan


menggunakan PHP. Saat ini, PHPMyAdmin banyak digunakan dalam hampir semua penyedia hosting
yang ada di internet. PHPMyAdmin mendukung berbagai fitur administrasi MySQL termasuk
manipulasi database, tabel, index dan juga dapat mengeksport data ke dalam berbagai format data.
PHPMyAdmin juga tersedia dalam 50 bahasa lebih, termasuk bahasa Indonesia.
PHPMyAdmin telah disertakan dalam instalasi XAMPP, karena berbasis web yang perlu dilakukan
adalah dengan menjalankan Apache (dan MySQL tentunya) kemudian meng-klik tombol Admin pada
baris MySQL, seperti gambar berikut :

Cara lain adalah dengan mengetikkan alamat http://localhost/phpmyadmin/ pada alamat browser.

3. SQLYog

SQLYog merupakan salah satu front-end MySQL yang cukup populer saat ini. Dengan dukungan fitur
yang cukup banyak dan lengkap, SQL Yog tersedia versi commercial dan community (free). SQLYog
dapat didownload di situsnya http://www.webyog.com.
BAB 12
Pengenalan Structured Query Language

12.1. Dasar SQL

SQL merupakan singkatan dari Structured Query Language. SQL atau juga sering disebut sebagai
query merupakan suatu bahasa (language) yang digunakan untuk mengakses database. SQL
dikenalkan pertama kali dalam IBM pada tahun 1970 dan sebuah standar ISO dan ANSI ditetapkan
untuk SQL. Standar ini tidak tergantung pada mesin yang digunakan (IBM, Microsoft atau Oracle).

Hampir semua software database mengenal atau mengerti SQL. Jadi, perintah SQL pada semua
software database hampir sama.

Terdapat 2 (dua) jenis perintah utama SQL, yaitu :

1. DDL atau Data Definition Language

DDL merupakan perintah SQL yang berhubungan dengan pendefinisian suatu struktur database,
dalam hal ini database dan table. Beberapa perintah dasar
yang termasuk DDL ini antara lain :
 CREATE
 ALTER
 RENAME
 DROP

2. DML atau Data Manipulation Language

DML merupakan perintah SQL yang berhubungan dengan manipulasi atau pengolahan data atau
record dalam table. Perintah SQL yang termasuk dalam DML antara lain :
 SELECT
 INSERT
 UPDATE
 DELETE

12.2. Membuat, Menampilkan, Membuka dan Menghapus Database

1. Membuat Database

Sintaks umum SQL untuk membuat suatu database adalah sebagai berikut :

CREATE DATABASE [IF NOT EXISTS] nama_database;

Bentuk perintah di atas akan membuat sebuah database baru dengan nama nama_database. Aturan
penamaan sebuah database sama seperti aturan penamaan sebuah variabel, dimana secara umum
nama database boleh terdiri dari huruf, angka dan under-score (_). Jika database yang akan dibuat
sudah ada, maka akan muncul pesan error. Namun jika ingin otomatis menghapus database yang
lama jika sudah ada, aktifkan option IF NOT EXISTS. Setiap kita membuat database baru, maka
sebenarnya MySQL akan membuat suatu folder (direktori) sesuai dengan nama databasenya yang
ditempatkan secara default (bila menggunakan XAMPP) di [drive]: \xampp\mysql\data. Di dalam
folder tersebut nantinya akan terdapat file-file yang berhubungan dengan tabel dalam database.
Berikut ini contoh perintah untuk membuat database baru dengan nama “mahasiswa” :

CREATE DATABASE mahasiswa;

Jika query di atas berhasil dieksekusi dan database berhasil dibuat, maka akan ditampilkan pesan
sebagai berikut :

Query OK, 1 row affected (0.02 sec)

2. Menampilkan Database

Untuk melihat database yang baru saja dibuat atau yang sudah ada, dapat menggunakan perintah
sebagai berikut :

SHOW DATABASES;

Hasil dari perintah di atas akan menampilkan semua database yang sudah ada di MySQL. Berikut ini
contoh hasil dari query di atas :

Dalam PHPMyAdmin database yang ada selalu ditampilkan pada kolom di kiri.

3. Membuka Database

Sebelum melakukan manipulasi tabel dan record yang berada di dalamnya, kita harus membuka atau
mengaktifkan databasenya terlebih dahulu. Untuk membuka database “mahasiswa”, berikut ini
querynya :
USE mahasiswa;

Jika perintah atau query di atas berhasil, maka akan ditampilkan pesan sebagai berikut :

Database changed

4. Menghapus Database

Untuk menghapus suatu database, sintaks umumnya adalah sbb :

DROP DATABASE [IF EXISTS] nama_database;

Bentuk perintah di atas akan menghapus database dengan nama nama_database. Jika databasenya
ada maka database dan juga seluruh tabel di dalamnya akan dihapus. Jadi berhati-hatilah dengan
perintah ini! Jika nama database yang akan dihapus tidak ditemukan, maka akan ditampilkan pesan
error. Aktifkan option IF EXISTS untuk memastikan bahwa suatu database benar-benar ada.

Berikut ini contoh perintah untuk menghapus database dengan nama “mahasiswa” :

DROP DATABASE mahasiswa;

12.3. Membuat, Mengubah dan Menghapus Table

1. Membuat Table

Bentuk umum SQL untuk membuat suatu table secara sederhana sebagai berikut :

CREATE TABLE nama_tabel


( field1 tipe(panjang), field2
tipe(panjang),
...
fieldn tipe(panjang),
PRIMARY KEY (field_key)
);

Bentuk umum di atas merupakan bentuk umum pembuatan tabel yang sudah disederhanakan.
Penamaan tabel dan field memiliki aturan yang sama dengan penamaan database.

MySQL menyediakan berbagai tipe data dengan spesifikasi dan panjang masing-masing. Tipe data
untuk field dalam MySQL diantaranya ditampilkan pada tabel berikut ini :

JENIS TIPE TIPE KETERANGAN


NUMERIK TINYINT -128 s/d 127 SIGNED
0 s/d 255 UNSIGNED
SMALLINT -32768 s/d 32767 SIGNED
0 s/d 65535 UNSIGNED.
MEDIUMINT -8388608 s/d 8388607 SIGNED
0 s/d 16777215 UNSIGNED
INT -2147483648 s/d 2147483647 SIGNED
0 s/d 4294967295 UNSIGNED.
BIGINT -9223372036854775808 s/d
JENIS TIPE TIPE KETERANGAN
9223372036854775807 SIGNED
0 s/d 18446744073709551615 UNSIGNED.
FLOAT Bilangan pecahan presisi tunggal
DOUBLE Bilangan pecahan presisi ganda
DECIMAL Bilangan dengan desimal
DATE/TIME DATE Tanggal dengan format YYYY-MM-DD
DATETIME Tanggal dan waktu dengan format : YYYY-MM-DD
HH:MM:SS
TIMESTAMP Tanggal dan waktu dengan format :
YYYYMMDDHHMMSS
TIME Waktu dengan format HH:MM:SS
YEAR Tahun dengan format YYYY
STRING CHAR 0 – 255 karakter
VARCHAR 0 – 255 karakter
TINYTEXT String dengan panjang maksimum 255 karakter
TEXT String dengan panjang maksimum 65535 karakter
BLOB String dengan panjang maksimum 65535 karakter
MEDIUMTEXT String dengan panjang maksimum 16777215
karakter
MEDIUMBLOB String dengan panjang maksimum 16777215
karakter
LONGTEXT String dengan panjang maksimum 4294967295
karakter
LONGBLOB String dengan panjang maksimum 4294967295
karakter
KHUSUS ENUM Tipe data dengan isi tertentu
SET Tipe data dengan isi tertentu

Sebagai contoh, kita akan membuat tabel baru dengan struktur sebagai berikut : Nama

tabel : mhs
No Nama Field Tipe Panjang
1 nim Varchar 10
2 nama Varchar 30
3 tgllahir Date -
4 alamat Text -

Untuk membuat tabel tersebut di atas, query atau perintah SQL-nya adalah sebagai berikut :

CREATE TABLE mhs (


nim varchar(10) NOT NULL,
nama varchar(30) NOT NULL,
tgllahir date,
alamat text,
PRIMARY KEY(nim)
);

Jika query untuk membuat tabel di atas berhasil dijalankan, maka akan ditampilkan pesan
sebagai berikut :

Query OK, 0 rows affected (0.16 sec)


Pada perintah di atas, beberapa hal yang perlu diperhatikan :
 CREATE TABLE merupakan perintah dasar dari pembuatan table.
 mhs merupakan nama tabel yang akan dibuat.
 Nim, nama, tgllahir dan alamat merupakan nama field
 Varchar, date dan text merupakan tipe data dari field
 NOT NULL merupakan option untuk menyatakan bahwa suatu field tidak boleh kosong.
 PRIMARY KEY merupakan perintah untuk menentukan field mana yang akan dijadikan
primary key pada tabel.
 10 dan 30 di belakang tipe data merupakan panjang maksimal dari suatu field
 Untuk tipe data date dan text (dan beberapa tipe data lainnya) panjang karakter maksimalnya
tidak perlu ditentukan.
 Jangan lupa akhiri perintah dengan titik-koma (;)

Selanjutnya untuk melihat tabel mhs sudah benar-benar sudah ada atau belum, ketikkan perintah
berikut ini :

SHOW TABLES;

Perintah di atas akan menampilkan seluruh tabel yang sudah ada dalam suatu database. Contoh hasil
dari perintah di atas adalah sebagai berikut :

Untuk melihat struktur tabel “mhs” secara lebih detail, cobalah perintah atau query sebagai berikut :

DESC mhs;

DESC merupakan singkatan dari DESCRIBE (dalam query bisa ditulis lengkap atau hanya 4 karakter
pertama) dan mhs adalah nama tabel yang akan dilihat strukturnya. Dari perintah di atas, akan
ditampilkan struktur tabel mhs sebagai berikut :

+ + + + + + +
| Field | Type | Null | Key | Default | Extra |
+ + + + + + +
| nim | varchar(10) | NO | PRI | NULL | |
| nama | varchar(30) | NO | | NULL | |
| tgllahir | date | YES | | NULL | |
| alamat | text | YES | | NULL | |
+ + + + + + +

Perintah DESC tidak berlaku di phpMyAdmin, untuk melihat struktur klik pada tabel dan pilih tab
Struktur (Stucture), tampilannya sebagai berikut :
Dari struktur tabel mhs yang ditampilkan di atas, dapat diketahui bahwa :
 Terdapat 4 (empat) field dengan tipe masing-masing.
 Primary Key dari tabel mhs adalah nim. Lihat kolom Key pada field nim.
 Untuk field nim dan nama defaultnya tidak boleh kosong. Lihatlah kolom Null dan Default pada
field nim dan nama
 Untuk field tgllahir dan alamat defaultnya boleh kosong. Lihatlah kolom Null dan Default
pada field tgllahir dan alamat.

2. Mengubah Struktur Table dengan ALTER

Untuk mengubah struktur suatu tabel, bentuk umum perintah SQL-nya sebagai berikut :

ALTER TABLE nama_tabel alter_options;

dimana :
 ALTER TABLE merupakan perintah dasar untuk mengubah tabel.
 nama_tabel merupakan nama tabel yang akan diubah strukturnya.
 alter_options merupakan pilihan perubahan tabel. Option yang bisa digunakan, beberapa
di antaranya sebagai berikut :
― ADD definisi_field_baru, Option ini digunakan untuk menambahkan field baru
dengan “definisi_field_baru” (nama field, tipe dan option lain).
― ADD INDEX nama_index, Option ini digunakan untuk menambahkan index dengan
nama “nama_index” pada tabel.
― ADD PRIMARY KEY (field_kunci), Option untuk menambahkan primary key pada tabel
― CHANGE field_yang_diubah definisi_field_baru Option untuk mengubah
field_yang_diubah menjadi definisi_field_baru
― MODIFY definisi_field Option untuk mengubah suatu field menjadi definisi_field
― DROP nama_field Option untuk menghapus field nama_field
― RENAME TO nama_tabel_baru Option untuk mengganti nama tabel

Beberapa contoh variasi perintah ALTER untuk mengubah struktur suatu tabel antara lain :

a. Menambahkan field “agama” ke tabel mhs

ALTER TABLE mhs ADD agama varchar(15) NOT NULL;

b. Menambahkan primary key pada suatu tabel


ALTER TABLE mhs ADD PRIMARY KEY(nim);

c. Mengubah panjang field agama menjadi 10 karakter dalam tabel mhs

ALTER TABLE mhs CHANGE agama agama varchar(10);

d. Mengubah tipe field agama menjadi char(2) dalam tabel mhs

ALTER TABLE mhs MODIFY agama char(2) NOT NULL;

e. Menghapus field agama dari tabel mhs

ALTER TABLE mhs DROP agama;

3. Mengubah Nama Tabel

Untuk mengubah nama suatu tabel, dapat menggunakan perintah SQL sbb :

RENAME TABLE mhs TO mahasiswa;


ALTER TABLE mhs RENAME TO mahasiswa;

Perintah di atas akan mengubah tabel mhs menjadi mahasiswa.

4. Menghapus Tabel

Untuk menghapus sebuah tabel, bentuk umum dari perintah SQL adalah sebagai berikut :

DROP TABLE nama_tabel;

Contohnya kita akan menghapus tabel dengan nama “mahasiswa” maka perintah SQL-nya
adalah :

DROP TABLE mahasiswa;

12.4. Menambah Record dengan INSERT

Bentuk umum perintah SQL untuk menambahkan record atau data ke dalam suatu tabel adalah
sebagai berikut :

INSERT INTO nama_tabel VALUES (‘nilai1’,’nilai2’,...);

Atau dapat dengan bentuk sebagai berikut :

INSERT INTO nama_tabel(field1,field2,...)


VALUES (‘nilai1’,’nilai2’,...);

Atau dapat juga dengan bentuk sebagai berikut :


INSERT INTO nama_tabel
SET field1=’nilai1’, field2=’nilai2’,...;

Sebagai contoh, kita akan menambahkan sebuah record ke dalam tabel mhs yang telah kita buat
sebelumnya. Berikut ini perintah SQL untuk menambahkan sebuah record ke dalam tabel mhs :

INSERT INTO mhs VALUES ('0411500116', 'Fadhil Susanto', '1999-10-


06', 'Bandung');

Jika perintah SQL di atas berhasil dieksekusi maka akan ditampilkan pesan sebagai berikut :

Query OK, 1 row affected (0.00 sec)

Setelah perintah SQL di atas berhasil dieksekusi, maka record atau data dalam tabel mhs akan
bertambah. Jalankan perintah berikut ini untuk melihat isi tabel mhs !

SELECT * FROM mhs;

Dan berikut ini hasil dari perintah SQL di atas :

Latihan
Tambahkan 10 data (record) baru ke tabel mhs sehingga isi tabel mhs menjadi sebagai berikut !
12.5. Mengedit Record dengan UPDATE

Proses update bisa sewaktu-waktu dilakukan jika terdapat data atau record dalam suatu tabel yang
perlu diperbaiki. Proses update ini tidak menambahkan data (record) baru, tetapi memperbaiki data
yang lama. Perubahan yang terjadi dalam proses update bersifat permanen, artinya setelah perintah
dijalankan tidak dapat di-cancel (undo).

Bentuk umum perintah SQL untuk mengedit suatu record atau data dari suatu tabel adalah sebagai
berikut :

UPDATE nama_tabel SET field1=’nilaibaru’ [WHERE kondisi];

Pada perintah untuk update di atas :


 UPDATE merupakan perintah dasar untuk mengubah record tabel.
 nama_tabel merupakan nama tabel yang akan diubah recordnya.
 Perintah SET diikuti dengan field-field yang akan diubah yang mana diikuti juga dengan
perubahan isi dari masing-masing field. Untuk mengubah nilai dari beberapa field sekaligus,
gunakan koma (,) untuk memisahkan masing-masing field.
 Perintah WHERE diikuti oleh kondisi tertentu yang menentukan record manayang akan diedit
(diubah). Perintah WHERE ini boleh ada boleh juga tidak. Jika WHERE tidak ditambahkan
pada perintah update maka semua record dalam tabel bersangkutan akan berubah.

Perhatikan beberapa contoh perintah UPDATE tabel mhs berikut ini :

a. Mengubah alamat menjadi “Cimahi” untuk mahasiswa yang mempunyai nim 0411500121

UPDATE mhs SET alamat='Cimahi' WHERE nim='0411500121';


Dan jika query di atas berhasil dieksekusi maka akan ditampilkan hasil sebagai berikut :

b. Mengubah tanggal lahir menjadi “12 Maret 1997” dan alamat menjadi “Bandung”
untuk mahasiswa yang mempunyai nim 0422500316

UPDATE mhs SET tgllahir='1997-03-12', alamat='Bandung' WHERE


nim='0422500316';

12.6. Menghapus Record dengan DELETE

Proses delete dilakukan jika terdapat data atau record dalam suatu tabel yang perlu dihapus atau
dihilangkan. Perubahan yang terjadi dalam proses delete bersifat permanen, artinya setelah perintah
dijalankan tidak dapat di-cancel (undo). Jadi berhati-hatilah dengan perintah delete !
Bentuk umum perintah SQL untuk menghapus suatu record atau data dari tabel adalah sebagai
berikut :

DELETE FROM nama_tabel [WHERE kondisi];

Pada perintah untuk delete di atas :


 DELETE FROM merupakan perintah dasar untuk menghapus suatu record dari tabel.
 nama_tabel merupakan nama tabel yang akan dihapus recordnya.
 Perintah WHERE diikuti oleh kondisi tertentu yang menentukan record mana yang akan dihapus
(di-delete). Perintah WHERE ini boleh ada boleh juga tidak. Namun demikian, jika WHERE tidak
ditambahkan pada perintah delete maka semua record dalam tabel bersangkutan akan
terhapus. Jadi jangan lupa menambahkan WHERE jika kita tidak bermaksud mengosongkan tabel

Perhatikan beberapa contoh perintah DELETE dari tabel mhs berikut ini !

a. Menghapus data mahasiswa yang mempunyai nim 0411500331

DELETE FROM mhs WHERE nim='0411500331';

b. Menghapus semua mahasiswa yang beralamat di “Bandung”

DELETE FROM mhs WHERE alamat='Bandung';

12.7. Menampilkan Record dengan SELECT

Perintah SELECT digunakan untuk menampilkan sesuatu. Sesuatu di sini bisa berupa sejumlah data
dari tabel dan bisa juga berupa suatu ekspresi. Dengan SELECT kita bisa mengatur tampilan atau
keluaran sesuai tampilan yang diinginkan.
Bentuk dasar perintah SELECT data dari tabel adalah sebagai berikut :

SELECT [field | *] FROM nama_tabel [WHERE kondisi];

Perhatikan beberapa contoh perintah SELECT dari tabel mhs berikut ini !

a. Menampilkan seluruh data atau record (*) dari tabel mhs

SELECT * FROM mhs;

Dan jika query di atas berhasil dieksekusi maka akan ditampilkan hasil sebagai berikut :

b. Menampilkan field nim dan nama dari seluruh mahasiswa dalam tabel mhs

SELECT nim, nama FROM mhs;

Jika query di atas berhasil dieksekusi maka akan ditampilkan hasil sebagai berikut :
c. Menampilkan data mahasiswa yang mempunyai nim 0411500123

SELECT * FROM mhs WHERE nim = '0411500123';

Hasil query di atas adalah sbb :

d. Menampilkan data semua mahasiswa yang beralamat di luar Bandung

SELECT * FROM mhs WHERE alamat != 'Bandung';

Hasil query di atas adalah sbb :


Berikut ini operator perbandingan yang dapat digunakan untuk membandingkan dua buah nilai
dalam MySQL :
 Operator =, akan bernilai TRUE jika nilai yang dibandingkan sama.
 Operator != atau <>, akan bernilai TRUE jika nilai yang dibandingkan TIDAK SAMA (berbeda).
 Operator >, akan bernilai TRUE jika nilai yang pertama lebih besar dari nilai kedua.
 Operator >=, akan bernilai TRUE jika nilai yang pertama lebih besar atau sama dengan
nilai kedua.
 Operator <, akan bernilai TRUE jika nilai yang pertama lebih kecil dari nilai kedua.
 Operator <=, akan bernilai TRUE jika nilai yang pertama lebih kecil atau sama dengan nilai kedua.

e. Menampilkan data semua mahasiswa yang beralamat di Garut dan lahir diatas tahun 1997.

SELECT * FROM mhs WHERE alamat = 'Garut' && YEAR(tgllahir) >


'1997';

Hasil query di atas adalah sbb :

Berikut ini operator penghubung yang dapat digunakan untuk menghubungkan antara dua kondisi
dalam MySQL :
 Operator && atau AND, akan menghubungkan dua kondisi dimana akan bernilai TRUE jika
kedua kondisi bernilai TRUE.
 Operator || atau OR, akan menghubungkan dua kondisi dimana akan bernilai TRUE jika
salah satu atau kedua kondisi bernilai TRUE.
 Operator !, akan me-reverse nilai suatu kondisi logika.
Keterangan :
Fungsi YEAR pada query di atas akan menghasilkan nilai TAHUN dari suatu tanggal. Selain fungsi
YEAR, juga terdapat fungsi MONTH yang akan menghasilkan nama BULAN dari tanggal, fungsi DAY
yang akan menghasilkan hari dari suatu tanggal, dan masih banyak fungsi lain yang berhubungan
dengan tanggal.

f. Menampilkan nim, nama dan umur dari semua mahasiswa.

SELECT nim, nama, YEAR(now())-YEAR(tgllahir) AS umur FROM mhs;

Hasil query di atas adalah sbb :

Keterangan :
Pada query di atas terdapat fungsi YEAR yang akan mengambil tahun dari suatu tanggal. Selanjutnya
fungsi now() akan me-return tanggal dan waktu sistem saat query dieksekusi. Proses perhitungan
umur dialiaskan dengan nama ‘umur’. Untuk mengaliaskan gunakan perintah AS yang diikuti nama
alias.

g. Menampilkan semua mahasiswa jurusan TI

SELECT * FROM mhs WHERE SUBSTRING(nim,3,2) = '11';

Hasil query di atas adalah sbb :


Keterangan :
Pada query di atas terdapat fungsi SUBSTRING yang berguna untuk memotong suatu string. Format
fungsi SUBSTRING adalah sebagai berikut : SUBSTRING(field, awal, panjang)

h. Menampilkan semua data mahasiswa secara urut berdasarkan nama dengan perintah ORDER BY

SELECT * FROM mhs ORDER BY nama;

Hasil query di atas adalah sbb :

i. Menampilkan semua data mahasiswa secara urut berdasarkan nim secara DESCENDING

SELECT * FROM mhs ORDER BY nim DESC;

Hasil query di atas adalah sbb :


j. Menampilkan 5 record (data) pertama dari tabel mhs secara urut berdasarkan nim dengan LIMIT

SELECT * FROM mhs ORDER BY nim LIMIT 0,5;

Hasil query di atas adalah sbb. :

Keterangan :
Pada query di atas bentuk LIMIT digunakan untuk membatasi hasil tampilan. LIMIT banyak digunakan
untuk menampilkan data yang relatif banyak. Format fungsi LIMIT adalah sebagai berikut : LIMIT
awal, jumlah_record

12.8. Eksport dan Import Database

Eksport database digunakan ketika anda ingin berpindah dari localhost ke Hosting, berpindah dari
Hosting satu ke Hosting lainnya, melakukan backup database dan sebagainya. Intinya, ketika anda
melakukan eksport database MySQL maka anda ingin menyimpan/memindahkan file database dari
website. Dan anda akan mendapatkan file MySQL dalam berupa format .SQL, CSV atau yang lainnya.

Sedangkan import dilakukan untuk memasukkan kembali (restore) database ke dalam DBMS MySQL
dari hasil eksport.

1. Eksport Database

Langkah pertama yaitu masuk ke phpMyAdmin. Selanjutnya yaitu silahkan pilih database yang ingin
di eksport. Kemudian klik Menu Export (Ekspor) kemudian pada Export Method silahkan klik Quick
(Cepat). Lalu pilih format SQL. Terdapat berbagai format yang bisa anda pilih seperti SQL, PDF, CSV
dan sebagainya. Jika anda ingin melakukan import database lagi maka sebaiknya memilih SQL.
Setelah itu klik Go (kirim).

Ketika muncul dialog Save, pilih OK lalu simpan file dengan klik Save.

2. Import Database

Untuk melakukan import (restore) database langkahnya sebagai berikut :


a. Buat Database, dengan mengklik New

b. Lalu masukkan nama Database dan klik Buat (Create)


c. Pilih Database dan pilih tab Impor (Import), kemudian pilih file SQL hasil eksport

d. Geser ke bagian bawah dan klik Kirim (Go)


e. Bila berhasil maka akan tampil sebagai berikut:
Bab 13
Pemrograman PHP dan
MySQL

Setelah Anda mengenal beberapa bentuk perintah SQL untuk memanipulasi atau mengolah data di
MySQL, pada bab ini Anda akan diperkenalkan bagaimana menerapkan konsep tersebut yang
terintegrasi dengan script PHP.

13.1. Koneksi PHP ke MySQL

Perintah PHP untuk koneksi ke MySQL adalah:

mysqli_connect(‘nama host’, ‘nama user’, ‘password’, ‘nama db’);

Dimana:
 Nama Host : nama komputer di mana MySQL nya berada, kalo berada di komputer itu
sendiri maka nama hostnya: ‘localhost’, bisa juga diberi nomor IP dari komputernya.
 Nama User : nama user yang memiliki hak akses ke MySQL nya
 Password : password dari nama user yang punya hak akses ke MySQL
 Nama DB : nama database yang akan dipilih

Contoh:
Berikut ini adalah script untuk melakukan koneksi ke MySQL dengan nama host: localhost, user :
root, password: “” (tidak pakai password), dan nama database: contoh

<?php
$host = "localhost";
$user = "root";
$pass = "";
$dbnm = "contoh";
$conn = mysqli_connect($host, $user, $pass, $dbnm);
// Check connection
if (mysqli_connect_errno()){
echo "Gagal koneksi ke MySQL: " . mysqli_connect_error();
}
?>

Sebaiknya script di atas kita simpan dalam file script tersendiri, misalkan koneksi.php. Selanjutnya
script tersebut kita includekan ke dalam script lain yang di dalamnya terdapat query-query SQL.

13.2. Menjalankan Query SQL di PHP

Setelah kita melakukan koneksi dari PHP ke MySQL, selanjutnya kita bisa menjalankan query melalui
script PHP.

Untuk menjalankan query SQL di PHP, kita gunakan perintah :

mysqli_query($conn, $query);

Contoh:
Berikut ini contoh script PHP untuk menjalankan query SQL untuk insert data ke tabel MySQL.
<?php

include "koneksi.php";

$query = "INSERT INTO namaTabel(field1, field2) VALUES(value1,


value2)";
mysqli_query($conn, $query);

?>

13.3. Konsep INSERT Data

Pada bab ini terlebih dahulu akan diperkenalkan bagaimana konsep inserting data ke MySQL melalui
MySQL melalui script PHP yang diintegrasikan dengan form input.

Studi Kasus

Dalam studi kasus ini akan dicontohkan bagaimana cara membuat form registrasi yang di dalamnya
terdapat beberapa jenis komponen input seperti textbox, radiobutton, combo box, checkbox dan
textarea.

Form tersebut akan diterapkan dalam kasus registrasi peserta suatu seminar secara online. Untuk
keperluan tersebut terlebih dahulu kita buat tabelnya.

# Nama Jenis Ekstra


1 id int(11) NOT NULL, AUTO_INCREMENT
2 namaPeserta varchar(30) NOT NULL
3 tglLahir date
4 tmptLahir varchar(30)
5 JKel varchar(1)
6 alamat text
7 tglDaftar date
8 informasi text

Keterangan:
 Field ‘informasi’ digunakan untuk menyimpan keterangan darimana peserta seminar
mendapatkan informasi tentang seminar (dari surat kabar, televisi, atau dari
teman).
 Field ‘id’ diset bertipe data integer dan berupa auto increment. Maksud dari auto increment
adalah secara otomatis akan muncul nomor urut begitu data baru dimasukkan ke dalam
tabel.
 Field dengan tipe data DATE, harus berformat YYYY-MM-DD (tahun-bulan-tgl)

Dengan menggunakan PHPMyAdmin Buat Data base “Seminar”, kemudian buat tabel “Peserta”
sebagai berikut :

CREATE DATABASE seminar;

CREATE TABLE peserta (


id int AUTO_INCREMENT NOT NULL primary key,
namaPeserta varchar(30) NOT NULL,
tglLahir date,
tmptLahir
varchar(30), JKel
varchar(1), alamat
text,
tglDaftar date,
informasi text

Selanjutnya kita siapkan form untuk input data peserta seminarnya.

Program 13.1
Nama File : registrasi.php
Deskripsi : Menampilkan formulir pendaftaran peserta seminar

<html>
<head>
<title>Registrasi Peserta Seminar</title>
</head>
<body>
<h1>Registrasi Peserta Seminar</h1>

<form method="post" action="submit.php">


<table>
<tr><td>Nama Lengkap</td><td>:</td>
<td><input type="text" name="nama" /></td></tr>
<tr><td>Alamat</td><td>:</td>
<td><textarea name="alamat"></textarea></td></tr>
<tr><td>Tempat Lahir</td><td>:</td>
<td><input type="text" name="tmptLhr" /></td></tr>
<tr><td>Tanggal Lahir</td><td>:</td>
<td>
<select name="tgl">
<?php
// script untuk menampilkan list
// tanggal 1 s/d 31 pada combo box
for($i=1; $i<=31; $i++)
{
echo "<option value='".$i."'>".$i."</option>";
}
?>
</select>
<select name="bln">
<?php
// script untuk menampilkan list
// bulan 1 s/d 12 pada combo box
for($i=1; $i<=12; $i++)
{
echo "<option value='".$i."'>".$i."</option>";
}
?>
</select>
<select name="thn">
<?php
// script untuk menampilkan list
// tahun 1950 s/d 1990 pada combo box
for($i=1960; $i<=2010; $i++)
{
echo "<option value='".$i."'>".$i."</option>";
}
?>
</select>
</td>
</tr>
<tr><td>Jenis Kelamin</td><td>:</td>
<td><input type="radio" name="jkel"
value="L" /> Laki-laki <br/>
<input type="radio" name="jkel"
value="P" /> Perempuan</td>
</tr>
<tr><td>Tahu informasi seminar dari mana?</td><td>:</td>
<td><input type="checkbox" name="info[]"
value="Televisi" /> Televisi <br />
<input type="checkbox" name="info[]"
value="Surat Kabar" /> Surat Kabar <br />
<input type="checkbox" name="info[]"
value="Teman" /> Teman</td>
</tr>
<tr><td></td><td></td><td>
<input type="submit" name="submit"
value="Submit" /></td></tr>
</table>
</form>
</body>
</html>

Form di atas akan tampak seperti di bawah ini begitu dibuka di browser:
Setelah kita buat form registrasinya, selanjutnya kita buat form untuk proses penyimpanan data
pesertanya.

Program 13.2
Nama File : submit.php
Deskripsi : Menyimpan informasi pendaftaran peserta seminar

<?php

include "koneksi.php";

if(isset($_POST['submit'])){
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$tmptLhr = $_POST['tmptLhr'];
// membentuk format thn-bln-tgl
$tglLhr = $_POST['thn']. "-".$_POST['bln']. "-".$_POST['tgl'];
$jkel = $_POST['jkel'];
// membaca tanggal sekarang (recent date) format thn-bln-tgl
$tglDaftar = date("Y-m-d");

$info = "";
if(!empty($_POST['info'])){
// Loop to store and display values of individual checked checkbox.
foreach($_POST['info'] as $selected){
$info = $info . "," . $selected;
}
}
if (substr($info,0,1) == ",") {
$info=substr($info,1 , strlen($info)-1);
}

$query = "INSERT INTO peserta


(namaPeserta, tglLahir, tmptLahir, jkel, alamat, tglDaftar, informasi)
VALUES ('$nama', '$tglLhr', '$tmptLhr', '$jkel', '$alamat',
'$tglDaftar', '$info' )";

$hasilQuery = mysqli_query($conn, $query);

if ($hasilQuery) echo "Data sudah tersimpan ke database";


else echo "Penyimpanan data gagal";
}
?>

Untuk menyimpan field Informasi yang berupa checkbox, yang mana user dapat meng-klik lebih dari
satu pilihan maka varibelnya disimpan dalam array "info[]", hal ini untuk memudahkan
penyimpanan informasinya dimana akan disimpan dalam database dengan dipisahkan oleh koma,
bila dilihat pada database maka seperti berikut :
Coding untuk melakukan hal tersebut dapat dilihat pada submit.php sebagai berikut :

$info = "";
if(!empty($_POST['info'])){
foreach($_POST['info'] as $selected){
$info = $info . "," . $selected;
}
}
if (substr($info,0,1) == ",") {
$info=substr($info,1 , strlen($info)-1);
}

Untuk koneksi ke database kita buat script yang akan di-include-kan setiap kali kita memrlukan
kodeksi ke database sebagai berikut :

Program 13.3
Nama File : koneksi.php
Deskripsi : Rutin untuk koneksi ke database.

<?php
$host = "localhost";
$user = "root";
$pass = "";
$dbnm = "seminar";
$conn = mysqli_connect($host, $user, $pass, $dbnm);
// Check connection
if (mysqli_connect_errno()) {
echo "Gagal koneksi ke MySQL: " . mysqli_connect_error();
die();
}
?>

13.4. Konsep Menampilkan Data

Konsep menampilkan data dengan script PHP ini adalah menggabungkan query SELECT di SQL yang
dijalankan dalam script PHP.

Konsep dasar menampilkan data dengan script PHP ini adalah :


1. Buat query SQL untuk menampilkan data (gunakan SELECT)
2. Jalankan query tersebut dengan menggunakan mysqli_query() di PHP
3. Baca data hasil query tersebut dengan proses fetching. Gunakan perintah mysqli_fetch_array() di
PHP. Hasil dari mysqli_fetch_array() ini adalah suatu nilai dalam bentuk array asosiatif dengan
nama field tabel sebagai indeksnya.
4. Tampilkan data dari proses fetching sesuai nama field yang ada dalam array.

Program 13.4
Nama File : view.php
Deskripsi : Menampilkan informasi peserta seminar.
<html>
<head>
<title>Data Peserta</title>
</head>
<body>
<h1>Data Peserta</h1>
<table border="1">
<tr><th>Nama Peserta</th><th>Tgl Lahir</th><th>Tempat Lahir</th>
<th>Alamat</th><th>Jenis Kelamin</th><th>Tgl Daftar</th>
<th>Informasi dari</
</tr>

<?php

include "koneksi.php";

$query = "SELECT * FROM peserta";


$hasil = mysqli_query($conn, $query);

while ($data = mysqli_fetch_array($hasil))


{
echo "<tr><td>".$data['namaPeserta']."</td><td>".
$data['tglLahir']."</td><td>".$data['tmptLahir'].
"</td><td>".$data['alamat']."</td><td>".
$data['JKel']."</td><td>".$data['tglDaftar'].
"</td><td>".$data['informasi']."</td></tr>";
}
?>

</table>
</body>
</html>

Keterangan:
 Dalam melakukan proses fetching data menggunakan mysql_fetch_array() dilakukan per baris
data dari hasil query. Sehingga untuk memfetching semua data hasil query, kita gunakan looping
WHILE.
 Selama masih ada baris data hasil query yang bisa difetch, maka looping ini akan terus
berjalan dan baru akan berhenti bila sudah tidak ada baris lagi yang bisa difetch (akhir dari
baris data).
 Setiap kali data difetch, selanjutnya langsung ditampilkan dengan echo.

PENTING!!
Besar kecilnya huruf dalam indeks array harus sama dengan nama fieldnya. Jika tulisannya berbeda,
maka data tidak akan muncul.

Hasil dari script view.php di atas adalah sebagai berikut :


13.5. Konsep Update Data

Proses update suatu data dengan menggunakan script PHP dan MySQL biasanya memiliki mekanisme
sebagai berikut:

1. Tampilkan list data terlebih dahulu


2. Buat sebuah link pada setiap baris data yang menuju proses update. Link tersebut memuat
sebuah parameter yang di dalamnya terdapat value yang nantinya digunakan sebagai
acuan dalam proses update datanya.
3. Selanjutnya bila link tersebut diklik akan muncul form berisi data yang akan diedit.

Dalam melakukan proses update data, pada prinsipnya adalah menjalankan query update pada SQL
nya.

UPDATE namaTabel SET namafield = value WHERE …

Sesuai dengan mekanisme di atas, maka langkah pertama kita buat terlebih dahulu script untuk
menampilkan list datanya. Dalam script list ini, data akan disajikan dalam bentuk tabel dengan 6
buah kolom. Lima kolom pertama untuk menampilkan data semua fieldnya, sedangkan kolom
terakhir untuk meletakkan link untuk editnya.

Selanjutnya, bagaimana bentuk link editnya? Link edit misalkan kita buat sebagai berikut :

http://.../edit.php?id=...

Dimana id merupakan identifikasi unik (Auto Increment) dari peserta yang dihasilkan secara
otomatis saat penambahan data, bila dilihat pada tabelnya terlihat sebagai berikut:

Dalam link edit di atas, link akan diarahkan ke script edit.php yang nantinya akan memunculkan form
untuk keperluan edit data. Di dalam link tersebut terdapat parameter id yang nantinya digunakan
sebagai acuan peserta manakah yang datanya akan diedit. Sebagai contoh, misalkan akan diedit
mahasiswa bernim ‘42’ maka linknya akan berbentuk

http://.../edit.php?id=42

Script lengkapnya adalah sebagai berikut :


Program 13.5
Nama File : list.php
Deskripsi : Menampilkan informasi peserta seminar dengan opsi untuk meng-update data.

<html>
<head>
<title>Data Peserta</title>
</head>
<body>
<h1>Data Peserta</h1>
<table border="1">
<tr><th>Nama Peserta</th><th>Tgl Lahir</th><th>Tempat Lahir</th>
<th>Alamat</th><th>Jenis Kelamin</th><th>Tgl Daftar</th>
<th>Action</t</tr>

<?php

include "koneksi.php";

$query = "SELECT * FROM peserta";


$hasil = mysqli_query($conn, $query);

while ($data = mysqli_fetch_array($hasil))


{
echo "<tr>
<td>".$data['namaPeserta']."</td>
<td>".$data['tglLahir']."</td>
<td>".$data['tmptLahir']."</td>
<td>".$data['alamat']."</td>
<td>".$data['JKel']."</td>
<td>".$data['tglDaftar']."</td>
<td><a href='edit.php?id=".$data['id']."'>Edit</a></td>
</tr>"
;
}
?>

</table>
</body>
</html>

Hasil dari script di atas akan menghasilkan tampilan sebagai berikut:


Langkah selanjutnya kita buat script edit.php yang nantinya akan memunculkan form edit sekaligus
data peserta yang akan diedit. Untuk memunculkan data mahasiswa yang akan diedit digunakan
query SELECT dengan id sebagai syaratnya. Dalam hal ini id yang ada dalam link edit lah yang
nantinya akan digunakan sebagai syarat.

SELECT * FROM peserta WHERE id = …;

Berikut ini adalah script edit.php untuk memunculkan form dan data yang akan diedit.

Program 13.6
Nama File : edit.php
Deskripsi : Edit informasi peserta seminar.

<?php

include "koneksi.php";

$id = $_GET['id'];

$query = "SELECT * FROM peserta WHERE id = '$id'";


$hasil = mysqli_query($conn, $query);
$data = mysqli_fetch_array($hasil);

$pecahTgl = explode("-", $data['tglLahir']);


$tgl = $pecahTgl[2];
$bln = $pecahTgl[1];
$thn = $pecahTgl[0];

echo "<h1>Ubah data Peserta Seminar</h1>";

echo "<form method='POST' action='update.php'>";


echo "<table>";
echo "<tr><td>Nama Lengkap</td><td>:</td><td><input type='text'
name='nama' value='".$data['namaPeserta']."'></td></tr>";
echo "<tr><td>Alamat</td><td>:</td><td><textarea
name='alamat'>".$data['alamat']."</textarea></td></tr>";
echo "<tr><td>Tempat Lahir</td><td>:</td><td><input type='text'
name='tmptLhr' value='".$data['tmptLahir']."'></td></tr>";

echo "<tr><td>Tgl Lahir</td><td>:</td><td>


<select name='tgl'>";
for ($i=1; $i<=31; $i++)
{
if ($i == $tgl) echo "<option value='".$i."'
selected>".$i."</option>";
else echo "<option value='".$i."'>".$i."</option>";
}
echo "</select>
<select name='bln'>";
for ($i=1; $i<=12; $i++)
{
if ($i == $bln) echo "<option value='".$i."'
selected>".$i."</option>";
else echo "<option value='".$i."'>".$i."</option>";}
echo "</select>
<select name='thn'>";
for ($i=1960; $i<=2010; $i++)
{
if ($i == $thn) echo "<option value='".$i."'
selected>".$i."</option>";
else echo "<option value='".$i."'>".$i."</option>";}
echo "</select>

</td></tr>";

echo "<tr><td>Jenis Kelamin</td><td>:</td><td>";


if ($data['JKel'] == "L")
echo "<input type='radio' name='jkel' value='L' checked> Laki-
Laki <br/>
<input type='radio' name='jkel' value='P'> Perempuan";
else if ($data['JKel'] == "P")
echo "<input type='radio' name='jkel' value='L'> Laki-Laki <br/>
<input type='radio' name='jkel' value='P' checked>
Perempuan";
echo "</td></tr>";

echo "<tr><td>Tahu informasi seminar dari mana?</td><td>:</td>


<td><input type='checkbox' name='info[]'
value='Televisi'";
if (strpos($data{'informasi'}, 'Televisi')!== false){echo "checked";}

echo " /> Televisi <br />


<input type='checkbox' name='info[]'
value='Surat Kabar'";
if (strpos($data{'informasi'}, 'Surat Kabar')!== false){echo "checked";}

echo "/> Surat Kabar <br />


<input type='checkbox' name='info[]'
value='Teman'";
if (strpos($data{'informasi'}, 'Teman')!== false){echo "checked";}

echo "/> Teman</td> </tr>";

echo "</table>";
echo "<input type='hidden' name='id' value='".$data['id']."'>";
echo "<input type='submit' name='submit' value='Submit'>";
echo "</form>";

?>

Untuk edit tanggal lahir mahasiswa, kita menggunakan 3 komponen combobox yang masing-masing
digunakan untuk tanggal, bulan dan tahun. Option dari masing-masing combobox digenerate
otomatis dengan looping FOR.

Untuk menampilkan jenis kelamin menggunakan radio button maka perlu ditambahkan statemen
checked pada jenis kelamin yang sesuai dengan jenis kelamin yang ada pada database, scriptnya
dapat dilihat pada cupilkan dari baris script diatas sebagai berikut :

if ($data['JKel'] == "L"
echo "<input type='radio' name='jkel' value='L' checked> Laki-Laki <br/>
<input type='radio' name='jkel' value='P'> Perempuan";
else if ($data['JKel'] == "P")
echo "<input type='radio' name='jkel' value='L'> Laki-Laki <br/>
<input type='radio' name='jkel' value='P' checked> Perempuan";
echo "</td></tr>";

Demikian pula untuk sumber informasi seminar yang menggunakan Checkbox harus dipilih sesuai
yang sudah ada di database, dengan menggunakan coding seperti berikut :

echo "<tr><td>Tahu informasi seminar dari mana?</td><td>:</td>


<td><input type='checkbox' name='info[]'
value='Televisi'";
if (strpos($data{'informasi'}, 'Televisi')!== false){echo
"checked";}
echo " /> Televisi <br />
<input type='checkbox' name='info[]'
value='Surat Kabar'";
if (strpos($data{'informasi'}, 'Surat Kabar')!== false){echo
"checked";}
echo "/> Surat Kabar <br />
<input type='checkbox' name='info[]'
value='Teman'";
if (strpos($data{'informasi'}, 'Teman')!== false){echo "checked";}

echo "/> Teman</td> </tr>";

Hal ini dilakukan dengan mengecek field informasi dengan menggunakan fungsi strpos, bila terdapat
sumber yang sesuia maka ditambahkan statement checked pada item checkbok yang sesuai.

Kemudian untuk menyimpan informasi id peserta agar dapat diupate maka disimpan dalam hidden
input seperti berikut :

echo "<input type='hidden' name='id' value='".$data['id']."'>";

Hasil tampilan dari script edit.php diatas adalah sebagai berikut :


Dengan demikian kita sekarang bisa konsentrasi ke script updatenya. Konsepnya hanyalah
menjalankan query SQL UPDATE.

Program 13.6
Nama File : update.php
Deskripsi : Update informasi peserta seminar.

de "koneksi.php";

set($_POST['submit'])){
$_POST['id'];
= $_POST['nama'];
at = $_POST['alamat'];
Lhr = $_POST['tmptLhr'];
= $_POST['jkel'];
mbentuk format thn-bln-tgl
hr = $_POST['thn']. "-".$_POST['bln']. "-".$_POST['tgl'];

= "";
mpty($_POST['info'])){
op to store and display values of individual checked checkbox.
ch($_POST['info'] as $selected){
= $info . "," . $selected;

ubstr($info,0,1) == ",") {
=substr($info,1 , strlen($info)-1);

y = "UPDATE peserta
amaPeserta = '$nama', alamat = '$alamat', JKel = '$jkel', tmptLahir = '$tmptLhr', tgllahir
masi = '$info'
WHERE id = $id";

$hasil = mysqli_query($conn,$query);
if ($hasil) echo "Data sudah diupdate";
else echo "Data gagal diupdate";
}
?>

Bila berhasil di-update, maka akan tampil pesan : “Data sudah diupdate”

13.6. Konsep Hapus Data

Konsep utama dari proses penghapusan data MySQL dengan PHP adalah menjalankan query SQL
DELETE FROM … pada script PHP tersebut.

Berikut script untuk hapus data.

Program 13.6
Nama File : hapus.php
Deskripsi : Hapus informasi peserta seminar sesuai dengan yang dipilih.

<h1>Hapus Data Peserta</h1>

<?php

include "koneksi.php";

$proses = isset($_GET['proses']) ? $_GET['proses'] : '';


if ($proses == "hapus")
{
// bagian ini akan dijalankan ketika link hapus diklik
//(parameter proses=hapus)

// membaca id dari URL berparameter


$id = $_GET['id'];

// mengecek keberadaan data peserta dengan id yang dipilih


$query = "SELECT count(*) as jum FROM peserta WHERE id = $id";
$hasil = mysqli_query($conn, $query);
$data = mysqli_fetch_array($hasil);

// jika jumlah mahasiswa ber NIM tersebut tidak ada,


// maka muncul keterangan
if ($data['jum'] == 0) {
echo "<p>Data yang akan dihapus tidak ada</p>";
}
else
{
// jika ada, maka lakukan penghapusan
$query = "DELETE FROM peserta WHERE id = $id";
$hasil = mysqli_query($conn, $query);
}
}
// menampilkan data semua peserta & link untuk menghapus
$query = "SELECT * FROM peserta";
$hasil = mysqli_query($conn,$query);
$jum = mysqli_num_rows($hasil);
echo "<table border='1'>";
echo "<tr><th>ID</th><th>Nama Peserta</th>";
echo "<th>Tgl Lahir</th><th>Tempat Lahir</th>";
echo "<th>Alamat</th><th>Jenis Kelamin</th><th>Proses</t</tr>";
while ($data = mysqli_fetch_array($hasil))
{
echo "<tr><td>".$data['id']."</td><td>".$data['namaPeserta'].
"</td><td>".$data['alamat']."</td><td>".$data['tmptLahir'].
"</td><td>".$data['tglLahir']."</td><td>".$data['JKel'].
"</td><td><a href='".$_SERVER['PHP_SELF']. "?
proses=hapus&id=".$data['id']."'>Hapus</a></td></tr>";
}
echo "</table>";
echo "<p>Jumlah data : ".$jum."</p>";
?>
Bab 14
Aplikasi Berita dengan PHP dan MySQL

14.1. Merancang Struktur Database

Untuk membuat aplikasi berita secara sederhana, langkah pertama adalah merancang tabel-tabel
database yang diperlukan. Secara sederhana, struktur tabel dapat dibuat dengan spesifikasi sebagai
berikut :

Tabel “berita”

Nama Field Tipe Panjang Keterangan


id_berita Int 5 Primary Key, Auto Increment
id_kategori Int 3 Foreign Key
judul Varchar 100 Judul berita
headline Text - Berita singkat
isi Text - Berita lengkap
pengirim Varchar 15 Pengirim berita
tanggal Datetime - Tanggal dan waktu kirim berita

Tabel “kategori”

Nama Field Tipe Panjang Keterangan


id_kategori Int 3 Primary Key, Auto Increment
nm_kategori Varchar 30 Nama kategori
deskripsi Varchar 200 Deskripsi kategori

Buat Database “news” :

CREATE DATABASE news;

Berikut ini perintah (SQL) untuk membuat tabel “berita”

CREATE TABLE berita (


id_berita int(5) unsigned NOT NULL auto_increment,
id_kategori int(3) unsigned NOT NULL default '0',
judul varchar(100) NOT NULL default '',
headline text NOT NULL,
isi text NOT NULL,
pengirim varchar(15) NOT NULL default '',
tanggal datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id_berita)
);

Berikut ini perintah (SQL) untuk membuat tabel “kategori”

CREATE TABLE kategori (


id_kategori int(3) unsigned NOT NULL auto_increment,
nm_kategori varchar(30) NOT NULL default '',
deskripsi varchar(200) NOT NULL default '',
PRIMARY KEY (id_kategori)
);
Catatan : Isikan sejumlah data ke tabel kategori langsung di database, misalnya seperti di bawah ini :

14.2. Membuat File Koneksi Database

Program 14.1
Nama File : koneksi.php
Deskripsi : Program koneksi ke database.

<?php
$host = "localhost";
$user = "root";
$pass = "";
$dbnm = "news";
$conn = mysqli_connect($host, $user, $pass, $dbnm);
// Check connection
if (mysqli_connect_errno()){
echo "Gagal koneksi ke MySQL: " . mysqli_connect_error();
}
?>

14.3. Membuat Halaman Input Berita

Program 14.2
Nama File : input_berita.php
Deskripsi : Program input
berita.

<?php
include "koneksi.php";
//proses input berita
if (isset($_POST['Input'])) {
$judul = addslashes(strip_tags($_POST['judul']));
$kategori= $_POST['kategori'];
$headline= addslashes(strip_tags($_POST['headline']));
$isi_berita = addslashes(strip_tags($_POST['isi']));
$pengirim= addslashes(strip_tags($_POST['pengirim']));
//insert ke tabel
$query= "INSERT INTO berita VALUES('','$kategori','$judul','$headline','$isi_berita','$peng
now())";
$sql = mysqli_query($conn, $query);
if ($sql) {
echo "<h2><font color=blue>Berita telah berhasil ditambahkan</font></h2>";
} else {
echo "<h2><font color=red>Berita gagal ditambahkan</font></h2>";
}
}
?>
<html>
<head>
<title>Input Berita
</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<a href="index.php">Halaman Depan
</a> |
<a href="arsip_berita.php">Arsip Berita
</a> |
<a href="input_berita.php">Input Berita
</a>
<br>
<br>
<FORM ACTION="" METHOD="POST" NAME="input">
<table cellpadding="0" cellspacing="0" border="0"
width="700">
<tr>
<td colspan="2">
<h2>Input Berita
</h2>
</td>
</tr>
<tr>
<td width="200">Judul Berita
</td>
<td>:
<input type="text" name="judul"
size="30">
</td>
</tr>
<tr>
<td>Kategori
</td>
<td>:
<select name="kategori">
<?php
$query = "SELECT id_kategori, nm_kategori FROM
kategori ORDER BY nm_kategori";
$sql = mysqli_query($conn, $query);
while ($hasil = mysqli_fetch_array($sql)) {
echo "<option
value='$hasil[id_kategori]'>$hasil[nm_kategori]</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>Headline Berita
</td>
<td>:
<textarea name="headline" cols="50" rows="4">
</textarea>
</td>
</tr>
<tr>
<td>Isi Berita
</td>
<td>:
<textarea name="isi" cols="50" rows="10">
</textarea>
</td>
</tr>
<tr>
<td>Pengirim
</td>
<td>:
<input type="text" name="pengirim" size="20">
</td>
</tr>
<tr>
<td>&nbsp;
</td>
<td>&nbsp;&nbsp;
<input type="submit" name="Input"
value="Input Berita">&nbsp;
<input type="reset" name="reset" value="Cancel">
</td>
</tr>
</table>
</FORM>
</body>
</html>

14.4. Menampilkan Berita Terbaru di Halaman Depan

Program 14.3
Nama File : index.php
Deskripsi : Program menampilkan 5 berita terbaru di halaman depan

<?php
include "koneksi.php";
?>
<html>
<head>
<title>Index Berita
</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<a href="index.php">Halaman Depan
</a> |
<a href="arsip_berita.php">Arsip Berita
</a> |
<a href="input_berita.php">Input Berita
</a>
<br>
<br>
<h2>Halaman Depan ~ Lima Berita Terbaru
</h2>
<?php
$query = "SELECT A.id_berita, B.nm_kategori, A.judul,
A.headline, A.pengirim, A.tanggal
FROM berita A, kategori B WHERE A.id_kategori=B.id_kategori ORDER BY
A.id_berita DESC LIMIT 0,5";
$sql = mysqli_query($conn, $query);
while ($hasil = mysqli_fetch_array($sql)) {
$id_berita = $hasil['id_berita'];
$kategori = stripslashes($hasil['nm_kategori']);
$judul = stripslashes($hasil['judul']);
$headline = nl2br(stripslashes($hasil['headline']));
$pengirim = stripslashes($hasil['pengirim']);
$tanggal = stripslashes($hasil['tanggal']);
//
//tampilkan berita
echo "<font size=4><a
href='berita_lengkap.php?id=$id_berita'>$judul</a></font><br>";
echo "<small>Berita dikirimkan oleh <b>$pengirim</b>
pada tanggal <b>$tanggal</b> dalam kategori <b>$kategori</b></small>";
echo "<p>$headline</p>";
echo "<hr>";
}
?>
</body>
</html>

14.5. Menampilkan Berita Lengkap

Program 14.4
Nama File : berita_lengkap.php
Deskripsi : Program menampilkan berita secara lengkap.

<?php
include "koneksi.php";

if (isset($_GET['id']))
{
$id_berita = $_GET['id'];
}
else
{
die("Error. No Id Selected! ");
}

?>
<html>
<head><title>Berita Lengkap</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<a href="index.php">Halaman Depan</a> |
<a href="arsip_berita.php">Arsip Berita</a> |
<a href="input_berita.php">Input Berita</a>
<br /><br />
<h2>Berita Lengkap</h2>
<?php
$query = "SELECT A.id_berita, B.nm_kategori, A.judul,
A.isi, A.pengirim, A.tanggal
FROM berita A, kategori B WHERE
A.id_kategori=B.id_kategori && A.id_berita='$id_berita'";
$sql = mysqli_query($conn, $query);
$hasil = mysqli_fetch_array($sql);
$id_berita = $hasil['id_berita'];
$kategori = stripslashes($hasil['nm_kategori']);
$judul = stripslashes($hasil['judul']);
$isi = nl2br(stripslashes($hasil['isi']));
$pengirim = stripslashes($hasil['pengirim']);
$tanggal = stripslashes($hasil['tanggal']);

//
// tampilkan berita

echo "<font size=5 color=blue>$judul</font><br />";


echo "<small>Berita dikirimkan oleh <b>$pengirim</b>
pada tanggal <b>$tanggal</b> dalam kategori
<b>$kategori</b></small>";
echo "<p>$isi</p>";
?>
</body>
</html>

14.6. Membuat Halaman Arsip Berita

Program 14.5
Nama File : arsip_berita.php
Deskripsi : Program arsip keseluruhan berita.

<?php
include "koneksi.php";
?>
<html>
<head><title>Arsip Berita</title>
<link rel="stylesheet" href="style.css">
<script language="javascript">
function tanya() {
if (confirm ("Apakah Anda yakin akan menghapus berita ini ?")) {
return true;
} else {
return
false;
}
}
</head>
<body>
<a href="index.php">Halaman Depan</a> |
<a href="arsip_berita.php">Arsip Berita</a> |
<a href="input_berita.php">Input Berita</a>
<br /><br />
<h2>Arsip Berita</h2>
<ol>
<?php
$query = "SELECT A.id_berita, B.nm_kategori, A.judul, A.pengirim,
A.tanggal
FROM berita A, kategori B WHERE A.id_kategori=B.id_kategori
ORDER BY A.id_berita DESC";
$sql = mysqli_query($conn, $query);

while ($hasil = mysqli_fetch_array($sql))


{
$id_berita = $hasil['id_berita'];
$kategori = stripslashes($hasil['nm_kategori']);
$judul = stripslashes($hasil['judul']);
$pengirim = stripslashes($hasil['pengirim']);
$tanggal = stripslashes($hasil['tanggal']);

//
// tampilkan arsip berita

echo "<li><a href='berita_lengkap.php?id=$id_berita'>$judul</a><br


/>";
echo "<small>Berita dikirimkan oleh <b>$pengirim</b> pada tanggal
<b>$tanggal</b> dalam kategori <b>$kategori</b><br />";
echo "<b>Action : </b><a
href='edit_berita.php?id=$id_berita'>Edit</a> | ";
echo "<a href='delete_berita.php?id=$id_berita' onClick='return
tanya()'>Delete</a>";
echo "</small></li><br /><br />";
}

?>
</ol>
</body>
</html>

14.7. Membuat Halaman Edit Berita

Program 14.6
Nama File : edit_berita.php
Deskripsi : Program edit
berita.

<?php
include "koneksi.php";

if (isset($_GET['id']))
{
$id_berita = $_GET['id'];
}
else
{
die("Error. No Id Selected! ");
}

$query = "SELECT id_berita, id_kategori, judul, headline, isi,


pengirim, tanggal
FROM berita WHERE id_berita='$id_berita'";
$sql = mysqli_query($conn, $query);
$hasil = mysqli_fetch_array($sql);
$id_berita = $hasil['id_berita'];
$id_kategori = stripslashes($hasil['id_kategori']);
$judul = stripslashes($hasil['judul']);
$headline = stripslashes($hasil['headline']);
$isi = stripslashes($hasil['isi']);
$pengirim = stripslashes($hasil['pengirim']);
$tanggal = stripslashes($hasil['tanggal']);

// proses edit berita

if (isset($_POST['Edit']))
{
$id_berita = $_POST['hidberita'];
$judul = addslashes(strip_tags($_POST['judul']));
$kategori = $_POST['kategori'];
$headline = addslashes(strip_tags($_POST['headline']));
$isi_berita = addslashes(strip_tags($_POST['isi']));
$pengirim = addslashes(strip_tags($_POST['pengirim']));

// update berita

$query = "UPDATE berita SET


id_kategori='$kategori',judul='$judul',headline='$headline',
isi='$isi_berita',pengirim='$pengirim' WHERE
id_berita='$id_berita'";
$sql = mysqli_query($conn, $query);
if ($sql)
{
echo "<h2><font color=blue>Berita telah berhasil
diedit</font></h2>";
}
else
{
echo "<h2><font color=red>Berita gagal diedit</font></h2>";
}
}

?>
<html>
<head>
<title>Edit Berita
</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<a href="index.php">Halaman Depan
</a> |
<a href="arsip_berita.php">Arsip Berita
</a> |
<a href="input_berita.php">Input Berita
</a>
<br />
<br />
<FORM ACTION="" METHOD="POST" NAME="input">
<table cellpadding="0" cellspacing="0" border="0"
width="700">
<tr>
<td colspan="2">
<h2>Input Berita
</h2>
</td>
</tr>
<tr>
<td width="200">Judul Berita
</td>
<td>:
<input type="text" name="judul"
size="30" value="<?php
echo $judul
?>">
</td>
</tr>
<tr>
<td>Kategori
</td>
<td>:
<select name="kategori">
<?php
$query = "SELECT id_kategori,
nm_kategori FROM kategori ORDER BY nm_kategori";
$sql = mysqli_query($conn, $query);

while ($hasil = mysqli_fetch_array($sql))


{
$selected = ($hasil['id_kategori'] == $id_kategori) ? "selected" :
"";
echo "<option
value='$hasil[id_kategori]'
$selected>$hasil[nm_kategori]</option>";
}

?>
</select>
</td>
</tr>
<tr>
<td>Headline Berita
</td>
<td>:
<textarea name="headline" cols="50" rows="4">
<?php echo $headline?>
</textarea>
</td>
</tr>
<tr>
<td>Isi Berita
</td>
<td>:
<textarea name="isi" cols="50" rows="10">
<?php echo $isi?>
</textarea>
</td>
</tr>
<tr>
<td>Pengirim
</td>
<td>:
<input type="text" name="pengirim"
size="20" value="<?php echo $pengirim ?>">
</td>
</tr>
<tr>
<td>&nbsp;
</td>
<td>&nbsp;&nbsp;
<input type="hidden" name="hidberita"
value="<?php echo $id_berita?>">
<input type="submit" name="Edit" value="Edit Berita">&nbsp;
<input type="reset" name="reset" value="Cancel">
</td>
</tr>
</table>
</FORM>
</body>
</html>

14.8. Membuat Halaman Delete Berita

Program 14.7
Nama File : delete_berita.php
Deskripsi : Program untuk menghapus berita.

<?php
include "koneksi.php";

if (isset($_GET['id']))
{
$id_berita = $_GET['id'];
}
else
{
die("Error. No Id Selected! ");
}

?>
<html>
<head>
<title>Delete Berita
</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<a href="index.php">Halaman Depan
</a> |
<a href="arsip_berita.php">Arsip Berita
</a> |
<a href="input_berita.php">Input Berita
</a>
<br />
<br />
<?php

// proses delete berita

if (!empty($id_berita) && $id_berita != "")


{
$query = "DELETE FROM berita WHERE id_berita='$id_berita'";
$sql = mysqli_query($conn, $query);
if ($sql)
{
echo "<h2><font color=blue>Berita telah berhasil
dihapus</font></h2>";
}
else
{
echo "<h2><font color=red>Berita gagal dihapus</font></h2>";
}

echo "Klik <a href='arsip_berita.php'>di sini</a> untuk kembali ke


halaman arsip berita";
}
else
{
die("Access Denied");
}

?>
</body>
</html>

14.9. CSS sebagai Pemanis Tampilan

Program 14.8
Nama File : style.css
Deskripsi : File CSS sebagai pemanis tampilan.

body {
font-
family:verdana;
}
a {
color:#0000ff;
}
a:hover {
color:#ffffff;
background-
color:#8AC452; text-
decoration:none;
}
input, textarea, select, option
{ font-family:verdana;
}

Anda mungkin juga menyukai