SlideShare a Scribd company logo
Pemrograman Web dengan PHP dan MySQL

v1.0

Pemrograman Web
dengan PHP dan MySQL
Achmad Solichin, S.Kom
Buku ini disusun berdasarkan materi perkuliahan Pemrograman Web sesuai
dengan kurikulum standar di perguruan tinggi komputer. Di dalam buku ini
tidak terlalu dibahas mengenai teori dan algoritma pemrograman, namun
banyak berisi contoh‐contoh program yang dapat dipraktekkan secara langsung
serta disertai dengan penjelasannya. Dengan demikian, buku ini sangat cocok
bagi Anda yang baru belajar pemrograman web dan haus akan contoh‐contoh
program. Buku ini juga sesuai dijadikan sebagai referensi penyusunan
praktikum perkuliahan bagi mahasiswa maupun siswa.

Achmad Solichin (achmatim@gmail.com)

Achmad Solichin, S.Kom
Universitas Budi Luhur, Jakarta
http://achmatim.net – achmatim@gmail.com

1
Pemrograman Web dengan PHP dan MySQL

…ku persembahkan untuk Indonesia tanah air tercinta, dan untuk Chotimatul
Musyarofah istri tersayang serta Muhammad Lintang putra tercinta kami…

Achmad Solichin (achmatim@gmail.com)

2
Pemrograman Web dengan PHP dan MySQL

Lisensi Dokumen
Seluruh isi dalam dokumen ini dapat digunakan, dimodifikasi dan disebarluaskan secara
bebas untuk tujuan pendidikan, pembelajaran dan bukan komersial (non profit), dengan
syarat tidak menghilangkan, menghapus atau mengubah atribut penulis dokumen ini dan
pernyataan dalam lisensi dokumen yang disertakan di setiap dokumen. Tidak diperbolehkan
melakukan penulisan ulang atau mengkomersialkan buku ini kecuali mendapatkan ijin
terlebih dahulu dari penulis.

Achmad Solichin (achmatim@gmail.com)

3
Pemrograman Web dengan PHP dan MySQL

Kata Pengantar
Internet merupakan salah satu fenomena paling berpengaruh dalam beberapa dekade
terakhir ini, baik bagi perkembangan teknologi itu sendiri maupun bagi perkembangan
disiplin ilmu lain, seperti ekonomi, politik, sosial dan budaya. Perkembangan internet juga
berpengaruh langsung terhadap perkembangan situs web. Di awal kemunculannya, internet
maupun situs web belum begitu populer karena layanannya yang masih terbatas. Namun
lihatlah saat ini, situs web sudah demikian populer dan layanannya pun beragam, mulai dari
situs berita seperti Detik dan Okezone, situs penyedia email seperti Yahoo dan Gmail,
sampai situs pertemanan (social networking) seperti Friendster dan Facebook.
Dalam kaitannya dengan situs web dan layanan di dalamnya tidak lepas dari teknologi
di baliknya, yaitu pemrograman web, desain web dan database. Salah satu bahasa
pemrograman yang banyak digunakan untuk membangun suatu situs web adalah PHP
(http://www.php.net). Penggunaannya saat ini bahkan sudah mencapai 25 juta situs web.
Sedangkan dari sisi database, penggunaan MySQL (http://www.mysql.com) masih juga
mendominasi dalam aplikasi berbasis web.
Melalui buku ini, penulis berusaha mengenalkan dasar‐dasar dari PHP dan MySQL
untuk membangun suatu situs web. Buku ini sebagian besar menyajikan berbagai contoh
program yang disusun secara terstruktur dari yang mudah sampai yang cukup kompleks.
Dengan adanya contoh‐contoh program tersebut, diharapkan pembaca dapat
mempraktekkannya secara langsung (learning by doing) dan dapat menyimpulkan sendiri
maksud dari setiap perintah dalam program dengan cara melihat hasil yang ditampilkan di
layar (browser). Di akhir buku ini, disajikan contoh yang lebih nyata, yaitu aplikasi situs berita
sederhana yang dapat dikembangkan lebih lanjut.
Buku ini cocok bagi pembaca yang baru mulai belajar PHP dan MySQL secara mandiri
karena contoh‐contoh dalam buku ini disajikan sesederhana mungkin. Buku ini juga cocok
digunakan sebagai panduan praktikum pemrograman web di perguruan tinggi, sekolah
maupun kursus‐kursus.
Akhirnya penulis berharap agar buku ini bermanfaat bagi perkembangan ilmu dan
pengetahuan di Indonesia, khususnya dalam hal pemrograman web dan internet. Saran dan
kritik untuk perbaikan buku ini sangat penulis harapkan. Saran, kritik dan masukan mengenai
buku ini dapat disampaikan melalui email ke penulis di achmatim@gmail.com atau melalui
situs penulis di http://achmatim.net.
Penulis
Achmad Solichin

Achmad Solichin (achmatim@gmail.com)

4
Pemrograman Web dengan PHP dan MySQL

Daftar Isi
I.

Pengenalan Web Server dan Server Side Scripting ...............................7
1.
2.

Server Side Scripting ................................................................................................... 8

3.
II.

Web Server .................................................................................................................. 7
Test Instalasi XAMPP di Browser............................................................................... 13

Struktur Dasar PHP ............................................................................. 14
1.
2.

Mari Mengenal PHP .................................................................................................. 14

3.

Say Hello to PHP ........................................................................................................ 15

4.

Variabel ..................................................................................................................... 15

5.

Tipe Data ................................................................................................................... 16

6.

Konstanta .................................................................................................................. 17

7.

Operator dalam PHP ................................................................................................. 17

8.
III.

Sebelum Belajar PHP ................................................................................................. 14

Komentar Program .................................................................................................... 19

Struktur Kondisi dan Perulangan ........................................................ 21
1.
2.

Struktur Perulangan .................................................................................................. 25

3.
IV.

Struktur Kondisi......................................................................................................... 21
Struktur Break dan Continue .................................................................................... 29

Penanganan Form ............................................................................... 30
1.
2.

Form Input Type TEXT dan PASSWORD .................................................................... 33

3.

Form Input Type RADIO ............................................................................................ 36

4.

Form Input Type CHECK BOX .................................................................................... 38

5.

Form Input Type COMBO BOX .................................................................................. 39

6.
V.

Berbagai Cara Penanganan Form .............................................................................. 30

Form Input Type TEXTAREA ...................................................................................... 41

Array dan Fungsi ................................................................................. 43
1.
2.

Fungsi‐fungsi Array dalam PHP ................................................................................. 47

3.
VI.

Pengantar Array ........................................................................................................ 43
Fungsi dalam PHP ...................................................................................................... 50

Penanganan String dan Tanggal ......................................................... 52
1.
2.

Fungsi‐fungsi String dalam PHP ................................................................................ 53

3.
VII.

Pengantar String........................................................................................................ 52
Fungsi‐fungsi Operasi Tanggal dalam PHP ................................................................ 60

File dan Direktori ................................................................................ 62
1.

Penanganan File ........................................................................................................ 62

Achmad Solichin (achmatim@gmail.com)

5
Pemrograman Web dengan PHP dan MySQL

2.
3.

Manipulasi File .......................................................................................................... 68

4.
VIII.

Membuat dan Menghapus Direktori ........................................................................ 66
Upload File ................................................................................................................ 69

Session dan Cookies ............................................................................ 72
1.
2.

IX.

Session....................................................................................................................... 72
Cookies ...................................................................................................................... 75

Pemrograman Berorientasi Objek dalam PHP ................................... 77
1.
2.

Object dan Class ........................................................................................................ 77

3.

Properties dan Method ............................................................................................. 78

4.

Mendefinisikan Class................................................................................................. 78

5.
X.

Pengantar Pemrograman Berorientasi Objek ........................................................... 77

Memanfaatkan Class yang Tersedia.......................................................................... 82

Pengenalan DBMS dan MySQL ........................................................... 84
1.
2.

Tentang MySQL ......................................................................................................... 85

3.

Instalasi MySQL di Windows ..................................................................................... 85

4.

Koneksi ke Server MySQL dengan MySQL Client ...................................................... 95

5.
XI.

Tentang Database, DBMS dan RDBMS...................................................................... 84

Berbagai MySQL Client untuk Administrasi Server MySQL ....................................... 96

Pengenalan Structured Query Language ............................................ 99
1.
2.

Membuat, Mengubah dan Menghapus Table ........................................................ 101

3.

Menambah Record dengan INSERT ........................................................................ 105

4.

Mengedit Record dengan UPDATE ......................................................................... 106

5.
XII.

Apa Itu SQL ? ............................................................................................................. 99

Menghapus Record dengan DELETE ....................................................................... 107

Aplikasi Berita dengan PHP dan MySQL ........................................... 113
1.

Merancang Struktur Database ................................................................................ 113

2.

Membuat File Koneksi Database............................................................................. 114

3.

Membuat Halaman Input Berita ............................................................................. 114

4.

Menampilkan Berita Terbaru di Halaman Depan ................................................... 115

5.

Membuat Halaman Arsip Berita ............................................................................. 117

6.

Membuat Halaman Edit Berita ............................................................................... 118

7.

Membuat Halaman Delete Berita ........................................................................... 120

8.

CSS sebagai Pemanis Tampilan ............................................................................... 120

Achmad Solichin (achmatim@gmail.com)

6
Pemrograman Web dengan PHP dan MySQL

Bab 1

Pengenalan Web Server dan Server Side
Scripting
Pengenalan Web Server
Instalasi dan Konfigurasi Web Server
Instalasi dan Konfigurasi PHP
Testing Web Server dan PHP

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.

R

Web Documents

Gambar 1.1. Standar Web Architecture

Gambar 1.2. Dynamic Web Architecture
Beberapa Web Sever yang banyak digunakan di internet antara lain :
1. Apache Web Server (http://www.apache.org)
2. Internet Information Service, IIS (http://www.microsoft.com/iis)

Achmad Solichin (achmatim@gmail.com)

7
Pemrograman Web dengan PHP dan MySQL

3. Xitami Web Server (http://www.xitami.com)
4. Sun Java System Web Server
(http://www.sun.com/software/products/web_srvr/home_web_srvr.xml)

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) :
5. ASP (Active Server Page) dan ASP.NET
6. ColdFusion (http://www.macromedia.com/software/coldfusion)
7. Java Server Pages (http://java.sun.com/products/jsp/)
8. Perl (http://www.perl.org)
9. Phyton (http://www.python.org)
10. PHP (http://www.php.net)
Keistimewaan PHP
Cepat
Free
Mudah dipelajari
Multi-platform
Dukungan technical-support
Banyaknya komunitas PHP
Aman
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 jangan berkecil hati, 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.
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.
Penulis sendiri menyarankan pemakaian XAMPP atau WAMP Server karena versi
software di dalamnya menggunakan versi terbaru.
Persiapan Instalasi
1. Pastikan komputer Anda belum terinstall web server lain seperti IIS atau PWS
karena dapat menyebabkan bentrok dengan web server Apache. Namun
demikian, jika Anda masih tetap mempertahankan program tersebut, setelah
instalasi selesai Anda dapat mengkonfigurasikan Apache secara manual
dengan mengganti nomor port yang digunakan.

Achmad Solichin (achmatim@gmail.com)

8
Pemrograman Web dengan PHP dan MySQL

2. Download Source XAMPP versi stabil terbaru di http://apachefriends.org. Pilih
versi sesuai dengan sistem operasi yang Anda gunakan (tersedia versi untuk
Windows, Linux dan Mac).
3. Pastikan komputer yang Anda gunakan berjalan dengan baik dengan
kapasitas memori dan hardisk yang masih mencukupi.
Proses Instalasi XAMPP
1. Jalankan file installer XAMPP xampp-win32-x.x.x-installer.exe.

Gambar 1.1. File installer XAMPP
2. Akan ditampilkan window instalasi XAMPP. Pilih Next > untuk memulai proses
instalasi.

Gambar 1.2. Window Instalasi XAMPP

Achmad Solichin (achmatim@gmail.com)

9
Pemro
ograman Web dengan PHP dan MySQL
L

3. A
Akan ditampilkan windo lokasi tuj
ow
juan instalasi (destinat
tion folder), tentukan
lo
okasi (folde
er) dimana XAMPP a
a
akan diinst
tall dengan menekan tombol
n
n
Browse.. . Pilih tombol Next > unt
B
P
tuk melanju
utkan proses instalasi.
s

Gambar 1.3. Folder tujuan in
nstalasi XAM
MPP
mpilkan wind
dow pilihan untuk kem
n
mudahan m
mengakses
4. Selanjutnya akan ditam
XAMPP nantinya. Tekan tombol Ins
X
stall untuk m
melanjutkan proses ins
n
stalasi.

Ga
ambar 1.4. W
Window pilih
han XAMPP
Pemrograman Web dengan PHP dan MySQL

5. Proses instalasi dimulai.

Gambar 1.5. Proses instalasi dimulai
6. Proses instalasi selesai. Klik Finish untuk menutup proses instalasi.

Gambar 1.6. Proses instalasi selesai

Achmad Solichin (achmatim@gmail.com)

11
Pemrograman Web dengan PHP dan MySQL

7. Jika proses instalasi berjalan dengan lancar makan akan ditampilkan window
konfirmasi.

Gambar 1.7. Konfirmasi Instalasi Berhasil
8. Kita dapat mengatur XAMPP dengan mengakses XAMPP Control Panel yang
dapat diakses melalui menu di Program Files atau icon di taskbar.

Gambar 1.8. XAMPP Control Panel

Achmad Solichin (achmatim@gmail.com)

12
Pemrograman Web dengan PHP dan MySQL

Test Instalasi XAMPP di Browser
Untuk memastikan bahwa XAMPP beserta PHP, Apache dan MySQL berjalan
dengan baik, bukalah browser dan ketikkan URL sebagai berikut:
http://localhost
Jika semua sudah berjalan dengan baik, maka akan ditampilkan gambar sebagai
berikut:

Gambar 1.9. Tampilan XAMPP di Browser
Pilih bahasa yang ingin digunakan dan akan ditampilkan halaman utama XAMPP
sebagai berikut:

Gambar 1.9. Tampilan XAMPP di Browser

Achmad Solichin (achmatim@gmail.com)

13
Pemrograman Web dengan PHP dan MySQL

Bab 2

Struktur Dasar PHP
Sebelum Belajar PHP
Mari Mengenal PHP
Say Hello to PHP
Variabel
Tipe Data
Konstanta
Operator dalam PHP
Komentar Program

Sebelum Belajar PHP
1. Saya asumsikan Anda telah mengenal dengan cukup baik komputer Anda, dan
juga bisa mengoperasikannya. Jadi Anda seharusnya sudah mengerti
perbedaan file dan direktori, bagaimana menyimpan file atau document,
bagaimana meng-copy file, dan seterusnya.
2. Saya asumsikan Anda telah mengerti bagaimana membuka dan menggunakan
salah satu atau salah semua dari editor seperti Notepad, EditPlus, Crimson
Editor, Dreamweaver, atau yang lainnya. Saya asumsikan juga, Anda telah
mengerti bagaimana membuat, mengedit, dan menyimpan suatu file dengan
editor tersebut.
3. Saya asumsikan bahwa Apache, PHP, dan MySQL di komputer yang Anda
pakai sudah berjalan sebagaimana mestinya.
4. Saya asumsikan Anda telah mengerti bagaimana cara menggunakan Web
Browser (IE, Mozilla, Opera, dsb)
5. Saya asumsikan Anda telah mengenal dan mengerti dengan cukup baik
tentang tag-tag HTML dan juga bagaimana menggunakannya. Anda tentu
sudah mengambil matakuliah Pemrograman Web 1 atau Internet kan ?
6. Saya asumsikan bahwa penglihatan Anda masih normal sehingga bisa
membedakan antara :
Tulisan nama, Nama dan NAMA
Koma (,), titik-koma (;) dan titik-dua (:)
Kutip-tunggal (‘) dan kutip-ganda (“)
Tulisan namamhs, nama_mhs dan nama mhs
7. Saya asumsikan Anda pernah menggunakan www.google.com

Mari Mengenal PHP
Tahukah Anda, PHP itu.....
1. Merupakan singkatan recursive dari PHP : Hypertext Prepocessor
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

Achmad Solichin (achmatim@gmail.com)

14
Pemrograman Web dengan PHP dan MySQL

hitungLuas() ≠ HitungLuas()
echo = ECHO
while = WHILE
6. Mudah dipelajari.

Say Hello to PHP
1. Ketikkan perintah di bawah ini di editor :
Program 2.1
Nama File : hello.php
Deskripsi : Program sederhana menampilkan sebuah string di layar.
1
2
3

<?php
echo "Hello, Nama saya PHP ";
?>

2. Simpan dengan nama “hello.php” di document-root komputer Anda.
3. Buka browser dan ketikkan alamat http://localhost/hello.php
4. Lihat hasilnya di browser. Akan terlihat tampilan seperti pada gambar 2.1

Gambar 2.1. Tampilan Program 2.1

Variabel
Digunakan untuk menyimpan sebuah value, data atau informasi
Nama variabel diawali dengan tanda $
Panjang tidak terbatas
Setelah tanda $ diawali oleh huruf atau under-scrore (_). 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.

Achmad Solichin (achmatim@gmail.com)

15
Pemrograman Web dengan PHP dan MySQL

1
2
3
4
5
6
7

<?php
$nim = "0411500400";
$nama = 'Chotimatul Musyarofah';
echo "NIM : " . $nim . "<br>";
echo "Nama : $nama";
?>

Gambar 2.2. Tampilan Program 2.2

Tipe Data
Pada PHP, tipe data variabel tidak didefinisikan oleh programmer, akan tetapi
secara otomatis ditentukan oleh intepreter PHP. Namun demikian, PHP
mendukung 8 (delapan) buah tipe data primitif, yaitu :
1. boolean
2. integer
3. float
4. string
5. array
6. object
7. resource
8. NULL
Program 2.3
Nama File
: tipe.php
Deskripsi
: Program contoh penanganan beberapa tipe data dasar dalam
PHP.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

<?php
$nim = "0411500400";
$nama = 'Chotimatul Musyarofah';
$umur = 23;
$nilai = 82.25;
$status = TRUE;
echo "NIM : " . $nim . "<br>";
echo "Nama : $nama<br>";
print "Umur : " . $umur; print "<br>";
printf ("Nilai : %.3f<br>", $nilai);
if ($status)
echo "Status : Aktif";
else
echo "Status : Tidak Aktif";
?>

Achmad Solichin (achmatim@gmail.com)

16
Pemrograman Web dengan PHP dan MySQL

Gambar 2.3. Tampilan Program 2.3

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
2
3
4
5
6
7
8

<?
define ("NAMA", "Achmad Solichin");
define ("NILAI", 90);
//NAMA = "Muhammad"; //akan menyebabkan error
echo "Nama : " . NAMA;
echo "<br>Nilai : " . NILAI;
?>

Gambar 2.4. Tampilan Program 2.4

Operator dalam PHP
Jenis Operator
Aritmatika

Operator
+
*
/
%

Contoh
$a + $b
$a - $b
$a * $b
$a / $b
$a % $b

Achmad Solichin (achmatim@gmail.com)

Keterangan
Pertambahan
Pengurangan
Perkalian
Pembagian
Modulus, sisa pembagian

17
Pemrograman Web dengan PHP dan MySQL

Penugasan
Bitwise

=
&
|
^
~
<<
>>

$a = 4;

$a diisi dengan 4

$a & $b
$a | $b
$a ^ $b
~$b
$a << $b
$a >> $b

Bitwise AND
Bitwise OR
Bitwise XOR
Bitwise NOT
Shift Left
Shift Right

Perbandingan

==
===
!=
<>
!==
<
>
<=
>=

$a
$a
$a
$a
$a
$a
$a
$a
$a

== $b
=== $b
!= $b
<> $b
!== $b
< $b
> $b
<= $b
>= $b

Sama dengan
Identik
Tidak sama dengan
Tidak sama dengan
Tidak identik
Kurang dari
Lebih dari
Kurang dari sama dengan
Lebih dari sama dengan

Logika

and
&&
or
||
xor

$a
$a
$a
$a
$a

and $b
&& $b
or $b
|| $b
xor $b

!

!$a

TRUE jika $a dan $b TRUE
TRUE jika $a dan $b TRUE
TRUE jika $a atau $b TRUE
TRUE jika $a dan/atau $b TRUE
TRUE jika $a atau $b TRUE, tapi
tidak keduanya
TRUE jika $a FALSE

.

$a . $b

Penggabungan string $a dan $b

String

Program 2.5
Nama File
: operator.php
Deskripsi
: Program beberapa Operator aritmatika dalam PHP.
1
2
3
4
5
6
7
8

<?
$gaji = 1000000;
$pajak = 0.1;
$thp = $gaji - ($gaji*$pajak);
echo "Gaji sebelum pajak = Rp. $gaji <br>";
echo "Gaji yang dibawa pulang = Rp. $thp";
?>

Gambar 2.5. Tampilan Program 2.5

Achmad Solichin (achmatim@gmail.com)

18
Pemrograman Web dengan PHP dan MySQL

Program 2.6
Nama File
: operator2.php
Deskripsi
: Program operator logika dan perbandingan dalam PHP.
1
2
3
4
5
6
7
8
9
10
11

<?
$a = 5;
$b = 4;
echo
echo
echo
echo
echo
echo
?>

"$a == $b : ". ($a == $b);
"<br>$a != $b : ". ($a != $b);
"<br>$a > $b : ". ($a > $b);
"<br>$a < $b : ". ($a < $b);
"<br>($a == $b) && ($a > $b) : ".(($a != $b) && ($a > $b));
"<br>($a == $b) || ($a > $b) : ".(($a != $b) || ($a > $b));

Gambar 2.6. Tampilan Program 2.6

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
2
3
4
5
6
7
8
9
10

<?
/* Ini komentar tidak akan tercetak di layar
yang ini juga komentar
*/
// Nah kalo ini komentar satu baris
# Terus kalo ini juga komentar
echo "Ini akan tercetak di layar";
?>

Achmad Solichin (achmatim@gmail.com)

19
Pemrograman Web dengan PHP dan MySQL

Gambar 2.7. Tampilan Program 2.7

Achmad Solichin (achmatim@gmail.com)

20
Pemrograman Web dengan PHP dan MySQL

Bab 3

Struktur Kondisi dan Perulangan
Struktur Kondisi
+ Struktur Kondisi If
+ Struktur Kondisi If...Else
+ Struktur Kondisi Khusus ? :
+ Struktur Kondisi Switch...Case
Struktur Perulangan
+ Struktur Kondisi For
+ Struktur Kondisi While
+ Struktur Kondisi Do...While
+ Struktur Kondisi Foreach
Struktur Break dan Continue

Struktur Kondisi
Struktur Kondisi If
if (kondisi) {
statement-jika-kondisi-true;
}
Keterangan :
kondisi merupakan statemen atau variabel yang akan diperiksa TRUE
atau FALSE-nya.
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.
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
Struktur Kondisi Switch ... Case
switch ($var) {
case '1' : statement-1; break;
case '2' : statement-2; break;
....
}

Achmad Solichin (achmatim@gmail.com)

21
Pemrograman Web dengan PHP dan MySQL

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
2
3
4
5
6

<?php
$nilai = 80;
if ($nilai >= 60) {
echo "Nilai Anda $nilai, Anda LULUS";
}
?>

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.

Gambar 3.1. Tampilan Program 3.1
Program 3.2
Nama File
: if_else.php
Deskripsi
: Program Struktur Kondisi If..Else.
1
2
3
4
5
6
7
8

<?php
$nilai = 50;
if ($nilai >= 60) {
echo "Nilai Anda $nilai, Anda LULUS";
} else {
echo "Nilai Anda $nilai, Anda GAGAL";
}
?>

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.

Achmad Solichin (achmatim@gmail.com)

22
Pemrograman Web dengan PHP dan MySQL

Gambar 3.2. Tampilan Program 3.2
Program 3.3
Nama File
: if_else2.php
Deskripsi
: Program Memeriksa username dan password dengan If..Else.
1
2
3
4
5
6
7
8
9

<?php
$user = "achmatim";
$pass = "123"
if ($user == "achmatim" && $pass == "123") {
echo "Login Berhasil";
} else {
echo "Login Gagal";
}
?>

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.

Gambar 3.3. Tampilan Program 3.3
Program 3.4
Nama File
: if_var.php
Deskripsi
: Program Memeriksa suatu variabel ada atau tidak.
1
2
3
4
5
6
7
8

<?php
$user="";
if (!isset($user)) {
echo "Variabel tidak ada/belum terbentuk";
} else {
echo "Variabel ada";
}
?>

Achmad Solichin (achmatim@gmail.com)

23
Pemrograman Web dengan PHP dan MySQL

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 diremark atau dihilangkan maka statement pada baris ke-4 yang akan dijalankan.

Gambar 3.4. Tampilan Program 3.4
Program 3.5
Nama File
: switch.php
Deskripsi
: Program Struktur Switch..Case untuk menampilkan nama hari
dalam bahasa Indonesia.
1
2
3
4
5
6
7
8
9
10
11
12
13
14

<?php
$day = date ("D");
switch ($day) {
case 'Sun' : $hari = "Minggu"; break;
case 'Mon' : $hari = "Senin"; break;
case 'Tue' : $hari = "Selasa"; break;
case 'Wed' : $hari = "Rabu"; break;
case 'Thu' : $hari = "Kamis"; break;
case 'Fri' : $hari = "Jum'at"; break;
case 'Sat' : $hari = "Sabtu"; break;
default
: $hari = "Kiamat";
}
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
diperlajari 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.

Gambar 3.5. Tampilan Program 3.5

Achmad Solichin (achmatim@gmail.com)

24
Pemrograman Web dengan PHP dan MySQL

Program 3.6
Nama File
: if_khusus.php
Deskripsi
: Program Struktur Kondisi Khusus ? untuk memeriksa tahun
kabisat.
1
2
3
4
5

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

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”

Gambar 3.6. Tampilan Program 3.6

Struktur Perulangan
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.
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.

Achmad Solichin (achmatim@gmail.com)

25
Pemrograman Web dengan PHP dan MySQL

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.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

<?php
/* contoh 1 */
for ($i = 1; $i <= 10; $i++) {
echo "$i ";
}
echo "<br><br>";
/* contoh 2 */
for ($i = 1; ; $i++) {
if ($i > 10) {
break;
}
echo "$i ";
}
echo "<br><br>";
/* contoh 3 */
$i = 1;
for (; ; ) {
if ($i > 10) {
break;
}
echo "$i ";
$i++;
} echo "<br><br>";
/* contoh 4 */
for ($i = 1; $i <= 10; print "$i ", $i++);
?>

Achmad Solichin (achmatim@gmail.com)

26
Pemrograman Web dengan PHP dan MySQL

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).

Gambar 3.7. Tampilan Program 3.7
Program 3.8
Nama File
: while.php
Deskripsi
: Program Struktur Perulangan While dan beberapa variasinya.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

<?php
/* contoh 1 */
$i = 1;
while ($i <= 10) {
echo $i++;
}
echo "<br><br>";
/* contoh 2 */
$i = 1;
while ($i <= 10):
echo "$i";
$i++;
endwhile;
echo "<br><br>";
/* contoh 3 */
$i = 1;
while ($i <= 6) {
echo "<h$i>Heading $i</h$i>";
$i++;
}
?>

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>

Achmad Solichin (achmatim@gmail.com)

27
Pemrograman Web dengan PHP dan MySQL

Gambar 3.8. Tampilan Program 3.8
Program 3.9
Nama File
: dowhile.php
Deskripsi
: Program Struktur Perulangan dengan Do...While.
1
2
3
4
5
6
7
8
9

<?php
$i = 1;
do {
echo "$i ";
$i+=2;
} while ($i <= 20);
?>

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 bawah.

Gambar 3.9. Tampilan Program 3.9

Achmad Solichin (achmatim@gmail.com)

28
Pemrograman Web dengan PHP dan MySQL

Struktur Break dan Continue
Program 3.10
Nama File
: break.php
Deskripsi
: Program Struktur Break dan Continue.
1
2
3
4
5
6
7
8
9
10
11

<?php
for ($i=1; $i<10; $i++) {
if ($i == 5)
continue;
if ($i == 8)
break;
echo "$i ";
}
?>

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)

Gambar 3.10. Tampilan Program 3.10

Achmad Solichin (achmatim@gmail.com)

29
Pemrograman Web dengan PHP dan MySQL

Bab 4

Penanganan Form
Berbagai Cara Penanganan Form
Form Input Type TEXT dan PASSWORD
Form Input Type RADIO
Form Input Type CHECKBOX
Form Input Type COMBO BOX
Form Input Type TEXTAREA
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.
Untuk merancang sebuah form inputan, setidaknya ada 3 (tiga) hal penting, yi :
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.

Berbagai Cara Penanganan Form
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

<html>
<head><title>Pengolahan Form</title></head>
<body>
<FORM ACTION="" METHOD="POST" NAME="input">
Nama Anda : <input type="text" name="nama"><br>
<input type="submit" name="Input" value="Input">
</FORM>
</body>
</html>
<?php
if (isset($_POST['Input'])) {
$nama = $_POST['nama'];
echo "Nama Anda : <b>$nama</b>";
}
?>

Achmad Solichin (achmatim@gmail.com)

30
Pemrograman Web dengan PHP dan MySQL

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.

Gambar 4.1. Tampilan Program 4.1
Cara 2 : Memisahkkan 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
2
3
4
5
6
7
8
9

<html>
<head><title>Pengolahan Form</title></head>
<body>
<FORM ACTION="proses02.php" METHOD="POST" NAME="input">
Nama Anda : <input type="text" name="nama"><br>
<input type="submit" name="Input" value="Input">
</FORM>
</body>
</html>

Achmad Solichin (achmatim@gmail.com)

31
Pemrograman Web dengan PHP dan MySQL

Program 4.3
Nama File
: proses02.php
Deskripsi
: Program penanganan form inputan untuk Program 4.2.
1
2
3
4
5
6

<?php
if (isset($_POST['Input'])) {
$nama = $_POST['nama'];
echo "Nama Anda : <b>$nama</b>";
}
?>

Gambar 4.2. Tampilan Program 4.2

Gambar 4.3. Tampilan Program 4.3
Program 4.4
Nama File
: input03.php
Deskripsi
: Program menampilkan form inputan dengan method GET
1
2
3
4
5
6
7
8
9

<html>
<head><title>Pengolahan Form</title></head>
<body>
<FORM ACTION="proses03.php" METHOD="GET" NAME="input">
Nama Anda : <input type="text" name="nama"><br>
<input type="submit" name="Input" value="Input">
</FORM>
</body>
</html>

Achmad Solichin (achmatim@gmail.com)

32
Pemrograman Web dengan PHP dan MySQL

Program 4.5
Nama File
: proses03.php
Deskripsi
: Program penanganan form inputan untuk Program 4.4.
1
2
3
4
5
6

<?php
if (isset($_GET['Input'])) {
$nama = $_GET['nama'];
echo "Nama Anda : <b>$nama</b>";
}
?>

Gambar 4.4. Tampilan Program 4.4

Gambar 4.5. Tampilan Program 4.5
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, penangan 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 !

Form Input Type TEXT dan PASSWORD
Program 4.6
Nama File
: input04.php
Deskripsi
: Program menampilkan form inputan text dalam jumlah banyak.
1
2

<html>
<head><title>Pengolahan Form ~ Text</title></head>

Achmad Solichin (achmatim@gmail.com)

33
Pemrograman Web dengan PHP dan MySQL

3
4
5
6
7
8
9
10
11
12
13

<body>
<FORM ACTION="proses04.php" METHOD="POST" NAME="input">
Sahabat-sahabat Dekatku<br>
<input type="text" name="nama1"><br>
<input type="text" name="nama2"><br>
<input type="text" name="nama3"><br>
<input type="text" name="nama4"><br>
<input type="submit" name="Input" value="Input">
</FORM>
</body>
</html>

Program 4.7
Nama File
: proses04.php
Deskripsi
: Program penanganan form inputan untuk Program 4.6.
1
2
3
4
5
6
7
8
9
10
11
12
13

<?php
if (isset($_POST['Input'])) {
$nama1 = $_POST['nama1'];
$nama2 = $_POST['nama2'];
$nama3 = $_POST['nama3'];
$nama4 = $_POST['nama4'];
echo "<b>Nama Sahabat-sahabat Dekatku :</b> <br>";
echo $nama1. "<br>";
echo $nama2. "<br>";
echo $nama3. "<br>";
echo $nama4. "<br>";
}
?>

Penjelasan Program 4.6 dan 4.7
Baris 3-6 program 4.7 merupakan proses pengambilan nilai dari masingmasing form inputan text yang terdapat pada program 4.6. Selanjutnya variabel
ini ditampilkan di layar (baris 8-11, program 4.7).

Gambar 4.6. Tampilan Program 4.6

Achmad Solichin (achmatim@gmail.com)

34
Pemrograman Web dengan PHP dan MySQL

Gambar 4.7. Tampilan Program 4.7
Program 4.8
Nama File
: input05.php
Deskripsi
: Program menampilkan form login (inputan text dan password).
1
2
3
4
5
6
7
8
9
10
11
12

<html>
<head><title>Login Here</title></head>
<body>
<FORM ACTION="proses05.php" METHOD="POST" NAME="input">
<h2>Login Here...</h2>
Username : <input type="text" name="username"><br>
Password : <input type="password" name="password"><br>
<input type="submit" name="Login" value="Login">
<input type="reset" name="reset" value="Reset">
</FORM>
</body>
</html>

Program 4.9
Nama File
: proses05.php
Deskripsi
: Program sederhana untuk memeriksa inputan username dan
password pada program 4.8
1
2
3
4
5
6
7
8
9
10
11

<?php
if (isset($_POST['Login'])) {
$user = $_POST['username'];
$pass = $_POST['password'];
if ($user == "achmatim" && $pass == "123") {
echo "<h2>Login Berhasil</h2>";
} else {
echo "<h2>Login Gagal</h2>";
}
}
?>

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).

Achmad Solichin (achmatim@gmail.com)

35
Pemrograman Web dengan PHP dan MySQL

Gambar 4.8. Tampilan Program 4.8

Gambar 4.9. Tampilan Program 4.9 Jika Login Berhasil

Gambar 4.10. Tampilan Program 4.9 Jika Login Gagal

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
2
3
4
5

<html>
<head><title>Pilih Jurusan</title></head>
<body>
<FORM ACTION="proses06.php" METHOD="POST" NAME="input">
<h2>Pilih Jurusan Anda :</h2>

Achmad Solichin (achmatim@gmail.com)

36
Pemrograman Web dengan PHP dan MySQL

6
7
8
9
10
11
12
13

<input type="radio" name="jurusan" value="TI" checked>
Teknik Informatika<br>
<input type="radio" name="jurusan" value="SI"> Sistem
Informasi<br>
<input type="radio" name="jurusan" value="SK"> Sistem
Komputer<br>
<input type="radio" name="jurusan" value="KA">
Komputerisasi Akuntansi<br>
<input type="submit" name="Pilih" value="Pilih">
</FORM>
</body>
</html>

Program 4.11
Nama File
: proses06.php
Deskripsi
: Program untuk mengambil dan menampilkan jurusan yang dipilih
pada program 4.10
1
2
3
4
5
6
7

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

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 masingmasing 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 !

Gambar 4.11. Tampilan Program 4.10

Achmad Solichin (achmatim@gmail.com)

37
Pemrograman Web dengan PHP dan MySQL

Gambar 4.12. Tampilan Program 4.11

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
2
3
4
5
6
7
8
9
10
11
12
13

<html>
<head><title>Band Favorit ~ Inputan Checkbox</title></head>
<body>
<FORM ACTION="proses07.php" METHOD="POST" NAME="input">
<h2>Pilih Band Favorit Anda :</h2>
<input type="checkbox" name="band01" value="Padi"
checked> Padi<br>
<input type="checkbox" name="band02" value="Sheila On
7"> Sheila On 7<br>
<input type="checkbox" name="band03" value="Dewa 19">
Dewa 19<br>
<input type="checkbox" name="band04" value="Ungu">
Ungu<br>
<input type="submit" name="Pilih" value="Pilih">
</FORM>
</body>
</html>

Program 4.13
Nama File
: proses07.php
Deskripsi
: Program untuk menampilkan nama band favorit sesuai dengan
inputan pada program 4.12
1
2
3
4
5
6
7
8
9
10
11
12
13
14

<?php
if (isset($_POST['Pilih'])) {
echo "Band Favorit Anda adalah :<br>";
if (isset($_POST['band01'])) {
echo "+ " . $_POST['band01'] . "<br>";
}
if (isset($_POST['band02'])) {
echo "+ " . $_POST['band02'] . "<br>";
}
if (isset($_POST['band03'])) {
echo "+ " . $_POST['band03'] . "<br>";
}
if (isset($_POST['band04'])) {
echo "+ " . $_POST['band04'] . "<br>";

Achmad Solichin (achmatim@gmail.com)

38
Pemrograman Web dengan PHP dan MySQL

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 masingmasing 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)

Gambar 4.13. Tampilan Program 4.12

Gambar 4.14. Tampilan Program 4.13

Form Input Type COMBO BOX
Program 4.14
Nama File
: input08.php
Deskripsi
: Program menampilkan form inputan film kartun favorit dengan
combo box.

Achmad Solichin (achmatim@gmail.com)

39
Pemrograman Web dengan PHP dan MySQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

<html>
<head><title>Film Kartun Favorit ~ Inputan Combo
box</title></head>
<body>
<FORM ACTION="proses08.php" METHOD="POST" NAME="input">
<h2>Pilih Film Kartun Favorit Anda :</h2>
<select name="kartun">
<option value="Sponge Bob">Sponge Bob</option>
<option value="Sinchan">Sinchan</option>
<option value="Conan">Conan</option>
<option value="Doraemon">Doraemon</option>
<option value="Dragon Ball">Dragon Ball</option>
<option value="Naruto">Naruto</option>
</select>
<input type="submit" name="Pilih" value="Pilih">
</FORM>
</body>
</html>

Program 4.15
Nama File
: proses08.php
Deskripsi
: Program untuk menampilkan nama film kartun favorit sesuai
dengan inputan pada program 4.14
1
2
3
4
5
6
7

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

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 !

Gambar 4.15. Tampilan Program 4.14

Achmad Solichin (achmatim@gmail.com)

40
Pemrograman Web dengan PHP dan MySQL

Gambar 4.16. Tampilan Program 4.15

Form Input Type TEXTAREA
Program 4.16
Nama File
: input09.php
Deskripsi
: Program menampilkan form inputan kritik dan saran dengan text
area.
1
2
3
4
5
6
7
8
9
10
11
12
13

<html>
<head><title>Kritik dan Saran ~ Inputan
Textarea</title></head>
<body>
<FORM ACTION="proses09.php" METHOD="POST" NAME="input">
<h2>Input Kritik / Saran :</h2>
<textarea name="saran" cols="40"
rows="5"></textarea><br>
<input type="submit" name="Proses" value="Input
Saran">
</FORM>
</body>
</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
2
3
4
5
6
7

<?php
if (isset($_POST['Proses'])) {
$saran = nl2br($_POST['saran']);
echo "Kritik / Saran Anda adalah : <br>";
echo "<font color=blue><b>$saran</b></font>";
}
?>

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 !

Achmad Solichin (achmatim@gmail.com)

41
Pemrograman Web dengan PHP dan MySQL

Gambar 4.17. Tampilan Program 4.16

Gambar 4.18. Tampilan Program 4.17

Achmad Solichin (achmatim@gmail.com)

42
Pemrograman Web dengan PHP dan MySQL

Bab 5

Array dan Fungsi
Pengantar Array
Mendeklarasikan dan Menampilkan Array
Fungsi-fungsi Array dalam PHP
Fungsi dalam PHP

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.

Mendeklarasikan dan Menampilkan Array
Program 5.1
Nama File
: array01.php
Deskripsi
: Program mendeklarasikan array dengan index numeric.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

<?php
$arrBuah = array ("Mangga", "Apel", "Pisang", "Jeruk");
echo $arrBuah[0]; //Mangga
echo $arrBuah[3]; //Jeruk
$arrWarna = array();
$arrWarna[] = "Merah";
$arrWarna[] = "Biru";
$arrWarna[] = "Hijau";
$arrWarna[] = "Putih";
echo $arrWarna[0]; //Merah
echo $arrWarna[2]; //Hijau
?>

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.

Achmad Solichin (achmatim@gmail.com)

43
Pemrograman Web dengan PHP dan MySQL

Gambar 5.1. Tampilan Program 5.1
Program 5.2
Nama File
: array02.php
Deskripsi
: Program mendeklarasikan array dengan index string (array
assosiatif).
1
2
3
4
5
6
7
8
9
10
11
12
13
14

<?php
$arrNilai = array ("Ani" => 80, "Otim" => 90, "Ana" => 75,
"Budi" => 85);
echo $arrNilai['Ani'];
//80
echo $arrNilai['Otim'];
//90
$arrNilai = array();
$arrNilai['Ami'] = 80;
$arrNilai['Asma'] = 95;
$arrNilai['Sri'] = 77;
echo $arrNilai['Asma'];
echo $arrNilai['Ami'];

//95
//80

?>

Penjelasan Program 5.2
Untuk mendeklarasikan atau mendefinisikan sebuah array assosiatif (array
yang menggunakan index selain integer), dapat dengan cara menyebutkan indexnya 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 assosiatif juga bisa dilakukan
seperti pada baris ke-7 sampai baris ke-10

Gambar 5.2. Tampilan Program 5.2
Program 5.3
Nama File
: array03.php
Deskripsi
: Program menampilkan seluruh isi array dengan index numerik.

Achmad Solichin (achmatim@gmail.com)

44
Pemrograman Web dengan PHP dan MySQL

1
2
3
4
5
6
7
8
9
10
11
12
13

<?php
$arrWarna = array ("Blue","Black","Red","Yellow","Green");
echo "Menampilkan isi array dengan for : <br>";
for ($i=0; $i<count($arrWarna); $i++) {
echo "Do you like <font color=$arrWarna[$i]>". $arrWarna[$i]
."</font> ?<br>";
}
echo "<br>Menampilkan isi array dengan foreach : <br>";
foreach ($arrWarna as $warna) {
echo "Do you like <font color=$warna>". $warna ."</font>
?<br>";
}
?>

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

Gambar 5.3. Tampilan Program 5.3
Program 5.4
Nama File
: array04.php
Deskripsi
: Program menampilkan seluruh isi array assosiatif.
1
2

<?php
$arrNilai = array ("Ani" => 80, "Otim" => 90, "Ana" => 75,
"Budi" => 85);

Achmad Solichin (achmatim@gmail.com)

45
Pemrograman Web dengan PHP dan MySQL

3
4
5
6
7
8
9
10
11
12
13
14

echo "Menampilkan isi array dengan foreach : <br>";
foreach ($arrNilai as $nama => $nilai) {
echo "Nilai $nama = $nilai<br>";
}
reset ($arrNilai);
echo "<br>Menampilkan isi array dengan while dan list : <br>";
while (list ($nama, $nilai) = each($arrNilai)) {
echo "Nilai $nama = $nilai<br>";
}
?>

Penjelasan Program 5.4
Untuk menampilkan array assosiatif 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 assosiatif ditampilkan
dengan struktur while yang menggunakan fungsi list() dan each().

Gambar 5.4. Tampilan Program 5.4
Program 5.5
Nama File
: array05.php
Deskripsi
: Program mencetak struktur array.
1
2
3
4
5
6
7
8
9

<?
$arrWarna = array ("Blue","Black","Red","Yellow","Green");
$arrNilai = array ("Ani" => 80, "Otim" => 90, "Ana" => 75,
"Budi" => 85);
echo "<pre>";
print_r ($arrWarna);
echo "<br>";
print_r ($arrNilai);
echo "</pre>";
?>

Achmad Solichin (achmatim@gmail.com)

46
Pemrograman Web dengan PHP dan MySQL

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

Gambar 5.5. Tampilan Program 5.5

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

Achmad Solichin (achmatim@gmail.com)

47
Pemrograman Web dengan PHP dan MySQL

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

<?php
$arrNilai = array ("Ani" => 80, "Otim" => 90, "Sri" => 75,
"Budi" => 85);
echo "<b>Array sebelum pengurutan</b>";
echo "<pre>";
print_r($arrNilai);
echo "</pre>";
sort($arrNilai);
reset($arrNilai);
echo "<b>Array setelah pengurutan dengan sort()</b>";
echo "<pre>";
print_r($arrNilai);
echo "</pre>";
rsort($arrNilai);
reset($arrNilai);
echo "<b>Array setelah pengurutan dengan rsort()</b>";
echo "<pre>";
print_r($arrNilai);
echo "</pre>";
?>

Program 5.7
Nama File
: array07.php
Deskripsi
: Program mengurutkan array dengan asort() dan arsort().
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

<?php
$arrNilai = array ("Ani" => 80, "Otim" => 90, "Sri" => 75,
"Budi" => 85);
echo "<b>Array sebelum pengurutan</b>";
echo "<pre>";
print_r($arrNilai);
echo "</pre>";
asort($arrNilai);
reset($arrNilai);
echo "<b>Array setelah pengurutan dengan asort()</b>";
echo "<pre>";
print_r($arrNilai);
echo "</pre>";
arsort($arrNilai);
reset($arrNilai);
echo "<b>Array setelah pengurutan dengan arsort()</b>";
echo "<pre>";
print_r($arrNilai);
echo "</pre>";
?>

Program 5.8
Nama File
: array08.php
Deskripsi
: Program mengurutkan array dengan ksort() dan krsort().

Achmad Solichin (achmatim@gmail.com)

48
Pemrograman Web dengan PHP dan MySQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

<?php
$arrNilai = array ("Ani"=>80, "Otim"=>90, "Sri"=>75,
"Budi"=>85);
echo "<b>Array sebelum pengurutan</b>";
echo "<pre>";
print_r($arrNilai);
echo "</pre>";
ksort($arrNilai);
reset($arrNilai);
echo "<b>Array setelah pengurutan dengan ksort()</b>";
echo "<pre>";
print_r($arrNilai);
echo "</pre>";
krsort($arrNilai);
reset($arrNilai);
echo "<b>Array setelah pengurutan dengan krsort()</b>";
echo "<pre>";
print_r($arrNilai);
echo "</pre>";
?>

Program 5.9
Nama File
: array09.php
Deskripsi
: Program mengatur posisi pointer dalam array.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

<?php
$transport = array('foot', 'bike', 'car', 'plane');
echo "<pre>";
print_r ($transport);
echo "</pre>";
$mode = current($transport);
echo $mode."<br>"; // $mode =
$mode = next($transport);
echo $mode."<br>"; // $mode =
$mode = current($transport);
echo $mode."<br>"; // $mode =
$mode = prev($transport);
echo $mode."<br>"; // $mode =
$mode = end($transport);
echo $mode."<br>"; // $mode =
$mode = current($transport);
echo $mode."<br>"; // $mode =
?>

'foot';
'bike';
'bike';
'foot';
'plane';
'plane';

Program 5.10
Nama File
: array10.php
Deskripsi
: Program mencari elemen array.
1
2
3
4
5
6
7
8
9

<?php
$arrBuah = array ("Mangga", "Apel", "Pisang", "Kedondong",
"Jeruk");
if (in_array ("Kedondong", $arrBuah)) {
echo "Ada buah Kedondong di sini";
} else {
echo "Tidak ada buah Kedondong di sini";
}
?>

Achmad Solichin (achmatim@gmail.com)

49
Pemrograman Web dengan PHP dan MySQL

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
2
3
4
5
6
7
8
9
10
11

<?php
function cetak_ganjil () {
for ($i=0; $i<100; $i++) {
if ($i%2 == 1) {
echo "$i ";
}
}
}
//pemanggilan fungsi
cetak_ganjil();
?>

Program 5.12
Nama File
: array02.php
Deskripsi
: Program fungsi dengan parameter.
1
2
3
4
5
6
7
8
9
10
11
12
13
14

<?php
function cetak_ganjil ($awal, $akhir) {
for ($i=$awal; $i<$akhir; $i++) {
if ($i%2 == 1) {
echo "$i ";
}
}
}
//pemanggilan fungsi
$a = 10;
$b = 50;
echo "<b>Bilangan ganjil dari $a sampai $b : </b><br>";
cetak_ganjil($a, $b);
?>

Program 5.13
Nama File
: fungsi03.php
Deskripsi
: Program fungsi yang mengembalikan nilai.
1
2
3
4
5
6
7
8
9

<?php
function luas_lingkaran ($jari) {
return 3.14 * $jari * $jari;
}
//pemanggilan fungsi
$r = 10;
echo "Luas lingkaran dengan jari-jari $r = ";
echo luas_lingkaran($r);
?>

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

Achmad Solichin (achmatim@gmail.com)

50
Pemrograman Web dengan PHP dan MySQL

1
2
3
4
5
6
7
8
9
10
11

<?php
function tambah_string ($str) {
$str = $str . ", Jakarta";
return $str;
}
//
$str = "Universitas Budi Luhur";
echo "$str = $str<br>";
echo tambah_string ($str). "<br>";
echo "$str = $str<br>";
?>

Program 5.15
Nama File
: fungsi05.php
Deskripsi
: Program passing by reference dalam fungsi.
1
2
3
4
5
6
7
8
9
10
11

<?php
function tambah_string (&$str) {
$str = $str . ", Jakarta";
return $str;
}
//
$str = "Universitas Budi Luhur";
echo "$str = $str<br>";
echo tambah_string ($str). "<br>";
echo "$str = $str<br>";
?>

Program 5.16
Nama File
: fungsi06.php
Deskripsi
: Program menampilkan defined-function yang didukung oleh PHP.
1
2
3
4
5
6
7
8
9
10

<?php
function luas_lingkaran ($jari) {
return 3.14 * $jari * $jari;
}
$arr = get_defined_functions();
echo "<pre>";
print_r($arr);
echo "</pre>";
?>

Program 5.17
Nama File
: fungsi07.php
Deskripsi
: Program memeriksa suatu fungsi tersedia di PHP atau tidak.
1
2
3
4
5
6
7

<?php
if (function_exists('exif_read_data')) {
echo "Fungsi exif_read_data() ada di PHP.<br />n";
} else {
echo "Fungsi exif_read_data() tidak ada di PHP.<br />n";
}
?>

Achmad Solichin (achmatim@gmail.com)

51
Pemrograman Web dengan PHP dan MySQL

Bab 6

Penanganan String dan Tanggal
Pengantar String
Fungsi-fungsi String dalam PHP
Fungsi-fungsi Operasi Tanggal dalam PHP

Pengantar String
String merupakan kumpulan dari karakter. Dalam PHP, karakter sama
dengan byte, dimana terdapat 256 karakter. PHP tidak mendukung nativeunicode.
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
Program 6.1
Nama File
: string01.php
Deskripsi
: Program string dengan single quoted ( ' ).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

<?php
echo 'this is a simple string';
echo 'You can also have embedded newlines in
strings this way as it is
okay to do';
// Outputs: Arnold once said: "I'll be back"
echo 'Arnold once said: "I'll be back"';
// Outputs: You deleted C:*.*?
echo 'You deleted C:*.*?';
// Outputs: You deleted C:*.*?
echo 'You deleted C:*.*?';
// Outputs: This will not expand: n a newline
echo 'This will not expand: n a newline';
// Outputs: Variables do not $expand $either
echo 'Variables do not $expand $either';
?>

Program 6.2
Nama File
: string02.php
Deskripsi
: Program string dengan heredoc sintaks.
1
2
3
4
5
6
7
8
9
10
11

<?php
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
/* More complex example, with variables. */
class foo
{
var $foo;

Achmad Solichin (achmatim@gmail.com)

52
Pemrograman Web dengan PHP dan MySQL

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

var $bar;
function foo()
{
$this->foo = 'Foo';
$this->bar = array('Bar1', 'Bar2', 'Bar3');
}
}
$foo = new foo();
$name = 'Achmatim';
echo <<<EOT
<u>$str</u><br>
My name is "<b>$name</b>". I am printing some <b>$foo->foo</b>.
Now, I am printing some <b>{$foo->bar[1]}</b>.
This should print a capital 'A': x41
EOT;
?>

Gambar 6.1. Tampilan Program 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.

Achmad Solichin (achmatim@gmail.com)

53
Pemrograman Web dengan PHP dan MySQL

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 uppercase.
wordwrap() – memotong sejumlah karakter dalam string dengan stringbreak-character.
Program 6.3
Nama File
: string03.php
Deskripsi
: Program penggunaan fungsi strtolower, strtoupper, ucfirst,
ucwords, strrev, dan strlen dalam string.
1
2
3
4
5
6
7
8
9
10
11

<?php
$str = "Everything i do, i do it for YOU";
echo
echo
echo
echo
echo
echo
echo
?>

"<b>String asli</b> : $str";
"<br><b>strtolower()</b> : ". strtolower($str);
"<br><b>strtoupper()</b> : ". strtoupper($str);
"<br><b>ucfirst() :</b> ". ucfirst($str);
"<br><b>ucwords() :</b> ". ucwords($str);
"<br><b>strrev() :</b> ". strrev($str);
"<br><b>Jumlah karakter</b> : ". strlen($str);

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.

Achmad Solichin (achmatim@gmail.com)

54
Pemrograman Web dengan PHP dan MySQL

Gambar 6.2 Tampilan Program 6.3
Program 6.4
Nama File
: string04.php
Deskripsi
: Program penggunaan fungsi addslashes dan stripslashes pada
string.
1
2
3
4
5
6
7
8
9

<?php
$str = "Is your name O'Reilly ?";
$str2 = addslashes ($str);
$str3 = stripslashes ($str2);
echo "<b>String asli</b> : $str";
echo "<br><b>addslashes()</b> : $str2";
echo "<br><b>stripslashes()</b> : $str3";
?>

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.

Gambar 6.3. Tampilan Program 6.4
Program 6.5
Nama File
: string05.php
Deskripsi
: Program penggunaan fungsi chr untuk menampilkan 256 karakter
ASCII.

Achmad Solichin (achmatim@gmail.com)

55
Pemrograman Web dengan PHP dan MySQL

1
2
3
4
5
6

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

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
2
3
4
5
6
7
8
9
10
11
12
13

<?php
$str = "<b><u>Everything I do, I do it for you</u></b>";
echo $str."<br>";
//no tag html
echo strip_tags ($str). "<br>";
//allow tag <u>
echo strip_tags ($str,"<u>")."<br>";
//tampil apa adanya
echo htmlspecialchars ($str)."<br>";
//tampil apa adanya
echo htmlentities ($str);
?>

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 ke12, fungsi htmlspecialchars dan htmlentities akan mengubah semua tag HTML
menjadi HTML special character, sehingga tag HTML akan ditampilkan apa adanya

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

Achmad Solichin (achmatim@gmail.com)

56
Pemrograman Web dengan PHP dan MySQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

<?php
$number = 1234.56;
// english notation (default)
$english_format_number = number_format($number);
echo "<br>".$english_format_number; // 1,235
// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
echo "<br>".$nombre_format_francais; // 1 234,56
//indonesian notation
$format_indonesia = number_format ($number, 2, ',', '.');
echo "<br>".$format_indonesia; //1.234,56
$number = 1234.5678;
// english notation without thousands seperator
$english_format_number = number_format($number, 2, '.', '');
echo "<br>". $english_format_number; // 1234.57
?>

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
2
3
4
5
6
7
8
9
10
11
12
13
14

<?php
// Contoh 1
$buah = "mangga pisang rambutan apel jeruk kedondong";
$buahan = explode(" ", $buah);
echo $buahan[0]."<br>"; // mangga
echo $buahan[3]."<br>"; // apel
// Contoh 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) =
explode(":", $data);
echo $user."<br>"; // foo
echo $pass; // *
?>

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 masingmasing akan menjadi elemen array $buahan.
Program 6.9
Nama File
: string09.php
Deskripsi
: Program penggunaan fungsi implode untuk menggabungkan array
menjadi string.

Achmad Solichin (achmatim@gmail.com)

57
Pemrograman Web dengan PHP dan MySQL

1
2
3
4
5
6

<?php
$buahan = array('mangga','jeruk','rambutan','apel','nanas');
$buah = implode(",", $buahan);
echo "Saya suka buah ". $buah;
// mangga,jeruk,rambutan,apel,nanas
?>

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
2
3
4
5
6
7
8
9
10

<?php
$file
$ext1
$ext2
$ext3

=
=
=
=

"test.this.txt";
strstr($file, ".");
strchr($file, ".");
strrchr($file, ".");

echo $ext1. "<br>";
echo $ext2. "<br>";
echo $ext3;
?>

//.this.txt
//.this.txt
//.txt

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
2
3
4
5
6
7

<?php
$text = "The quick brown fox jumped over the lazy dog.";
$newtext = wordwrap($text, 15, "<br>");
echo $text."<br><br>";
echo $newtext;
?>

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>”

Achmad Solichin (achmatim@gmail.com)

58
Pemrograman Web dengan PHP dan MySQL

Gambar 6.5. Tampilan Program 6.11
Program 6.12
Nama File
: string12.php
Deskripsi
: Program penggunaan fungsi nl2br dalam string.
1
2
3
4
5
6
7
8
9
10
11
12
14

<form action="" method="post">
Input teks di sini :<br>
<textarea name="input" cols="40" rows="4"></textarea><br>
<input type="submit" name="Submit" value="Proses">
</form>
<?php
if (isset($_POST['Submit'])) {
$txt = $_POST['input'];
echo "<u>Tanpa nl2br() :</u> <br>$txt<br><br>";
echo "<u>Dengan nl2br :</u> <br>". nl2br ($txt);
}
?>

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. Untuk mencoba program di atas, inputkan string sebagai berikut :
bila yang tertulis untukku
adalah yang terbaik untukku
kan kujadikan kau kenangan
yang terindah dalam hidupku
namun tak kan mudah bagiku
meningalkan jejak hidupku
yang tlah terukir abadi
sebagai kenangan yang terindah
Program 6.13
Nama File
: string13.php
Deskripsi
: Program penggunaan fungsi substr untuk memotong string.
1
2
3
4
5
6
7
8
9

<form action="" method="post">
NIM Anda :
<input type="text" name="txtnim"><br>
<input type="submit" name="Submit" value="Proses">
</form>
<?php
if (isset($_POST['Submit'])) {
$nim = $_POST['txtnim'];

Achmad Solichin (achmatim@gmail.com)

59
Pemrograman Web dengan PHP dan MySQL

10
11
12
14
15
16
17
18
19
20
21
22
23
24
25
26

}
?>

$a = substr ($nim, 2, 2);
switch($a) {
case '11' : $jurusan = "Teknik Informatika";
break;
case '22' : $jurusan = "Sistem Informasi";
break;
case '33' : $jurusan = "Sistem Komputer";
break;
case '44' : $jurusan = "Komputerisasi Akuntansi";
break;
default
: $jurusan = "Salah jurusan";
}
echo "Nim Anda : $nim<br>";
echo "Jurusan Anda : $jurusan";

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.

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

j

Tanggal tanpa nol

1 s/d 31

l (lowercase Nama hari lengkap dalam
'L')
seminggu

Sunday through Saturday

N

Urutan hari dalam seminggu

1 (untuk Monday) s/d
7 (untuk Sunday)

S

Akhiran angka English untuk
tanggal, 2 karakter

st, nd, rd atau th.

w

Urutan hari dalam seminggu

0 (untuk Sunday) s/d
6 (untuk Saturday)

z

Urutan hari dalam setahun

0 s/d 365

Urutan minggu dalam setahun

Contoh: 42 (minggu ke-42
dalam tahun ini)

F

Nama bulan lengkap

January s/d December

m

Urutan bulan dalam setahun
dengan nol

01 s/d 12

M

Tiga digit nama bulan dalam
setahun

Jan s/d Dec

n

Urutan bulan dalam setahun,

1 s/d 12

Minggu
W
Bulan

Achmad Solichin (achmatim@gmail.com)

60
Pemrograman Web dengan PHP dan MySQL

parameter

Keterangan

Contoh nilai

tanpa nol
t

Jumlah hari dalam tiap bulan

28 s/d 31

Y

4 (empat) digit tahun

Contoh: 1999 atau 2006

y

2 (dua) digit tahun

Contoh: 99 or 06

Tahun

Waktu
a

Lowercase Ante meridiem dan Post
am atau pm
meridiem

A

Uppercase Ante meridiem dan Post
AM atau PM
meridiem

g

Jam format 12 tanpa nol

1 s/d 12

G

Jam format 24 tanpa nol

0 s/d 23

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
2
3
4
5
6
7
8
9
10
11
12
14
15
16

<?php
// Sekarang tanggal 13 April 2006 09:43:49
echo "<br>". date("d/m/Y H:i:s");
// 13/04/2006 09:43:03
echo "<br>". date("F j, Y, g:i a");
// April 13, 2006, 9:43 am
echo "<br>". date("d.m.y");
// 13.04.06
echo "<br>". date("Ymd");
// 20060413
// 13-04-06, 4330 4349 4 Thuam06 102
echo "<br>". date('j-m-y, it is w Day z ');
// it is the 13th day.
echo "<br>". date('it is the jS day.');
// Thu Apr 13 9:43:49 KRAST 2006
echo "<br>". date("D M j G:i:s T Y");
echo "<br>". date("H:i:s");
// 17:16:17
?>

Program 6.15
Nama File
: date02.php
Deskripsi
: Program menampilkan nama hari dalam bahasa Indonesia.
1
2
3
4
5
6
7

<?php
// Sekarang tanggal 13 April 2006 09:43:49
$arrDay = array("Minggu", "Senin", "Selasa", "Rabu", "Kamis",
"Jum'at", "Sabtu");
$day = date ("w");
//0 - 6 of day
echo "Hari ini hari : <b>" . $arrDay[$day]."</b>";
?>

Achmad Solichin (achmatim@gmail.com)

61
Pemrograman Web dengan PHP dan MySQL

Bab 7

File dan Direktori
Membuat, Menulis dan Membaca Isi File
+ Membuka dan Membuat File
+ Menulis ke File
+ Membaca Isi File
+ Menutup File
Membuat dan Menghapus Direktori
Manipulasi File
+ Mendapatkan Informasi File
+ Copy, Rename dan Delete File
Upload File

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 :
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
r
r+
w
w+
a
a+

Keterangan
Hanya untuk baca file, pointer berada di awal file
Untuk baca dan tulis file, pointer berada di awal file
Hanya untuk tulis file, isi file lama dihapus, jika file belum ada maka
akan di-create
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 maka di-create
Untuk membaca dan menambahkan isi file, pointer berada di akhir file,
jika file belum ada maka di-create

Program 7.1
Nama File
: file01.php
Deskripsi
: Program mengakses (membuka) file dengan mode r.
1
2
3
4
5
6
7
8
9
10

<?php
$namafile = "data.txt";
$handle = fopen ($namafile, "r");
if (!$handle) {
echo "<b>File tidak dapat dibuka atau belum ada</b>";
} else {
echo "<b>File berhasil dibuka</b>";
}
fclose($handle);
?>

Achmad Solichin (achmatim@gmail.com)

62
Pemrograman Web dengan PHP dan MySQL

Gambar 7.1 Tampilan Program 7.1
Program 7.2
Nama File
: file02.php
Deskripsi
: Program mengakses (membuka) file dengan mode w.
1
2
3
4
5
6
7
8
9
10

<?php
$namafile = "data.txt";
$handle = fopen ($namafile, "w");
if (!$handle) {
echo "<b>File tidak dapat dibuka atau belum ada</b>";
} else {
echo "<b>File berhasil dibuka</b>";
}
fclose($handle);
?>

Gambar 7.2 Tampilan Program 7.2
Menulis ke File
fwrite ($handle, $isi);
fputs ($handle, $isi);
Program 7.3
Nama File
: file03.php
Deskripsi
: Program menulis ke file.
1
2
3

<?php
$namafile = "data.txt";
$handle = fopen ($namafile, "w");

Achmad Solichin (achmatim@gmail.com)

63
Pemrograman Web dengan PHP dan MySQL

4
5
6
7
8
9
10
11
12
13

if (!$handle) {
echo "<b>File tidak dapat dibuka atau belum ada</b>";
} else {
fwrite ($handle, "Fakultas Teknologi Informasin");
fputs ($handle, "Universitas Budi Luhurn");
//file_put_contents ($namafile, "Jakarta");
echo "<b>File berhasil ditulis</b>";
}
fclose($handle);
?>

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 7.3 (buka dengan WordPad).

Gambar 7.3. File data.txt dibuka dengan WordPad
Membaca Isi File
fread ($handle [,$panjang]);
fgets ($handle [,$panjang]);
Program 7.4
Nama File
: file04.php
Deskripsi
: Program membaca dan menampilkan isi file.
1
2
3
4
5
6
7
8
9
10
11
12
13

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

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.

Achmad Solichin (achmatim@gmail.com)

64
Pemrograman Web dengan PHP dan MySQL

Program 7.5
Nama File
: file05.php
Deskripsi
: Program membaca isi file baris tiap baris.
1
2
3
4
5
6
7
8
9
10
11
12
13

<?php
$namafile = "data.txt";
$handle = fopen ($namafile, "r");
if (!$handle) {
echo "<b>File tidak dapat dibuka atau belum ada</b>";
} else {
echo "<b>Isi file : </b><br>";
while ($isi = fgets ($handle, 2048)) {
echo "$isi<br>";
}
}
fclose($handle);
?>

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.

Gambar 7.4. Tampilan Program 7.5
Program 7.6
Nama File
: file06.php
Deskripsi
: Program membaca isi file baris tiap baris.
1
2
3
4
5
6
7
8
9
10
11

<?php
$namafile = "data.txt";
$handle = @fopen($namafile, "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer."<br>";
}
fclose($handle);
}
?>

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.

Achmad Solichin (achmatim@gmail.com)

65
Pemrograman Web dengan PHP dan MySQL

Menutup File
fclose ($handle);
Program 7.7
Nama File
: file07.php
Deskripsi
: Program aplikasi user counter dengan file.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

<?php
$counter_file="counter.txt";
if (!file_exists ($counter_file)) {
fopen ($counter_file, "w");
}
$file = fopen($counter_file,"r");
$counter = fread($file,10);
fclose($file);
$counter++;
echo "<h2>Anda adalah pengunjung ke - $counter</h2>";
$file = fopen($counter_file, "w");
fwrite($file,$counter);
fclose($file);
?>

Gambar 7.5. Tampilan Program 7.7

Membuat dan Menghapus Direktori
Membuat Direktori Baru
Program 7.8
Nama File
: file08.php
Deskripsi
: Program membuat direktori baru.
1
2
3
4
5
6
7
8
9

<?php
$dir = "images"; //nama direktori
$cek = mkdir ($dir);
if ($cek) {
echo "Direktori <b>$dir</b> berhasil dibuat";
} else {
echo "Direktori <b>$dir</b> gagal dibuat";
}
?>

Achmad Solichin (achmatim@gmail.com)

66
Pemrograman Web dengan PHP dan MySQL

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.
Menghapus Direktori
Program 7.9
Nama File
: file09.php
Deskripsi
: Program menghapus direktori.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

<?php
//buat direktori
$dir = "include";
//nama direktori
$cek = mkdir ($dir);
if ($cek) {
echo "Direktori <b>$dir</b> berhasil dibuat";
} else {
echo "Direktori <b>$dir</b> gagal dibuat";
}
//hapus direktori
$del = rmdir ($dir);
if ($del) {
echo "<br>Direktori <b>$dir</b> berhasil dihapus";
} else {
echo "<br>Direktori <b>$dir</b> gagal dihapus";
}
?>

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.
Menampilkan Isi Direktori
Program 7.10
Nama File
: file10.php
Deskripsi
: Program menampilkan file dan direktori dalam suatu direktori.
1
2
3
4
5
6
7
8
9
10
11

<?php
$dir = "images";
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "$file<br>";
}
}
closedir($handle);
}
?>

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.

Achmad Solichin (achmatim@gmail.com)

67
Pemrograman Web dengan PHP dan MySQL

Manipulasi File
Mendapatkan Informasi File
Beberapa Fungsi yang berhubungan dengan informasi dan manipulasi file,
terdapat dalam tabel sebagai berikut :
Fungsi
file_exists($file)
is_file($file)
is_dir($file)
is_executable($file)
is_writable($file)
is_readable($file)
fileatime($file)
filectime($file)
filemtime($file)
filesize($file)
filetype($file)

Keterangan
Memeriksa apakah $file ada atau tidak
Memeriksa apakah $file adalah file atau bukan.
Memeriksa apakah $file adalah direktori atau bukan.
Memeriksa apakah $file termasuk file yang bisa dijalankan
secara langsung atau bukan.
Memeriksa apakah $file termasuk file yang bisa ditulis atau
diedit.
Memeriksa apakah $file termasuk file yang bisa dibaca
atau tidak.
Menghasilkan waktu akses terakhir file (unix timestamp).
Menghasilkan waktu pembuatan file (unix timestamp).
Menghasilkan waktu modifikasi terakhir file ( dalam unix
timestamp).
Menghasilkan ukuran besar file (dalam byte).
Menghasilkan jenis file.

Program 7.11
Nama File
: file11.php
Deskripsi
: Program memeriksa keberadaan suatu file.
1
2
3
4
5
6
7
8
9

<?php
$filename = "data.txt";
if (file_exists($filename)) {
echo "File $filename ADA";
} else {
echo "File $filename TIDAK ADA";
}
?>

Program 7.12
Nama File
: file12.php
Deskripsi
: Program mendapatkan beberapa informasi file.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

<?php
$file = "data.txt";
if (is_file($file)) {
echo "File <b>$file</b> adalah FILE<br>";
//
if (is_executable ($file)) {
echo "File <b>$file</b> bisa dijalankan secara
langsung (executable)<br>";
} else {
echo "File <b>$file</b> TIDAK executable<br>";
}
//
if (is_writable ($file)) {
echo "File <b>$file</b> bisa ditulis / diedit<br>";
} else {
echo "File <b>$file</b> TIDAK bisa ditulis /
diedit<br>";
}

Achmad Solichin (achmatim@gmail.com)

68
Pemrograman Web dengan PHP dan MySQL

18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

//
if (is_readable ($file)) {
echo "File <b>$file</b> bisa dibaca<br>";
} else {
echo "File <b>$file</b> TIDAK bisa dibaca<br>";
}
//
echo "Akses terakhir file <b>$file</b> = ". date("d-m-Y
H:i:s.", fileatime($file)). "<br>";
echo "File <b>$file</b> dibuat = ". date("d-m-Y H:i:s.",
filectime($file)). "<br>";
echo "Modifikasi terakhir file <b>$file</b> = ". date("dm-Y H:i:s.", filemtime($file)). "<br>";
echo "Ukuran file <b>$file</b> = ". filesize($file). "
bytes<br>";
echo "Jenis file <b>$file</b> = ".filetype($file). "<br>";
} else if (is_dir($file)){
echo "File <b>$file</b> adalah DIREKTORI<br>";
} else {
echo "File <b>$file</b> tidak dikenal<br>";
}
?>

Copy, Rename dan Delete File
Program 7.13
Nama File
: file13.php
Deskripsi
: Program meng-copy, rename dan delete file.
1
2
3
4
5
6
7
8
9
10
11
12
13
14

<?php
$file = "data.txt";
$filebaru = "databaru.txt";
$filebaru2 = "databaru2.txt";
if (copy ($file, $filebaru)) {
echo "File <b>$file</b> berhasil dicopy menjadi
<b>$filebaru</b>. <br>";
}
if (rename ($filebaru, $filebaru2)) {
echo "File <b>$filebaru</b> berhasil direname menjadi
<b>$filebaru2</b>. <br>";
}
if (unlink ($filebaru2)) {
echo "File <b>$filebaru2</b> berhasil dihapus. <br>";
}
?>

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.

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"

Achmad Solichin (achmatim@gmail.com)

69
Pemrograman Web dengan PHP dan MySQL

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
2
3
4
5
6
7
8
9

<html>
<head><title>Upload File</title></head>
<body>
<FORM ACTION="upload.php" METHOD="POST"
ENCTYPE="multipart/form-data">
Upload File : <input type="file" name="file"><br>
<input type="submit" name="Upload" value="Upload">
</FORM>
</body>
</html>

Program 7.15
Nama File
: upload.php
Deskripsi
: Program proses upload file.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

<?php
if (isset($_POST['Upload'])) {
$dir_upload = "images/";
$nama_file = $_FILES['file']['name'];
//
if (is_uploaded_file($_FILES['file']['tmp_name'])) {
$cek = move_uploaded_file ($_FILES['file']['tmp_name'],
$dir_upload.$nama_file);
if ($cek) {
die ("File berhasil diupload");
} else {
die ("File gagal diupload");
}
}
}
?>

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!

Achmad Solichin (achmatim@gmail.com)

70
Pemrograman Web dengan PHP dan MySQL

Gambar 7.6. Tampilan Program 7.14

Achmad Solichin (achmatim@gmail.com)

71
Pemrograman Web dengan PHP dan MySQL

Bab 9

Session dan Cookies
Session
Cookies

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
autentifikasi 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
2
3
4
5
6
7
8
9
10
11

<?php
/****************************************************
Nama file : session01.php
Halaman ini merupakan halaman contoh penciptaan session.
Perintah session_start() harus ditaruh di perintah pertama
tanpa spasi di depannya. Perintah session_start() harus ada
pada setiap halaman yang berhubungan dengan session
*****************************************************/
session_start();
if (isset ($_POST['Login'])) {
$user = $_POST['user'];

Achmad Solichin (achmatim@gmail.com)

72
Pemrograman Web dengan PHP dan MySQL

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

$pass = $_POST['pass'];
//periksa login
if ($user == "achmatim" && $pass = "123") {
//menciptakan session
$_SESSION['login'] = $user;
//menuju ke halaman pemeriksaan session
echo "<h1>Anda berhasil LOGIN</h1>";
echo "<h2>Klik <a href='session02.php'>di sini
(session02.php)</a>
untuk menuju ke halaman pemeriksaan session";
}
} else {
?>
<html>
<head>
<title>Login here...</title>
</head>
<body>
<form action="" method="post">
<h2>Login Here...</h2>
Username : <input type="text" name="user"><br>
Password : <input type="password" name="pass"><br>
<input type="submit" name="Login" value="Log In">
</form>
</body>
</html>
<? } ?>

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 9.1 berikut ini :

Gambar 9.1. Error yang terjadi karena sebelum session_start() sudah ada output
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

Achmad Solichin (achmatim@gmail.com)

73
Pemrograman Web dengan PHP dan MySQL

menggunakan database, bisa
password ke tabel database.

diganti dengan pemeriksaan

username

dan

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

<?php
/*************************************************************
Halaman ini merupakan contoh halaman pemeriksaan session. Pemeriksaan session biasanya dilakukan jika suatu halaman memiliki
akses terbatas. Misalnya harus login terlebih dahulu.
**************************************************************/
session_start();
//pemeriksaan session
if (isset($_SESSION['login'])) { //jika sudah login
//menampilkan isi session
echo "<h1>Selamat Datang ". $_SESSION['login'] ."</h1>";
echo "<h2>Halaman ini hanya bisa diakses jika Anda sudah
login</h2>";
echo "<h2>Klik <a href='session03.php'>di sini
(session03.php)</a> untuk LOGOUT</h2>";
} else {
//session belum ada artinya belum login
die ("Anda belum login! Anda tidak berhak masuk ke halaman
ini.Silahkan login <a href='session01.php'>di sini</a>");
}
?>

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.

Achmad Solichin (achmatim@gmail.com)

74
Pemrograman Web dengan PHP dan MySQL

Program 9.3
Nama File
: session03.php
Deskripsi
: Program menghapus session.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

<?php
/********************************************************
Halaman ini merupakan halaman logout, dimana kita menghapus
session yang ada.
*********************************************************/
session_start();
if (isset($_SESSION['login'])) {
unset ($_SESSION);
session_destroy();
//
echo "<h1>Anda sudah berhasil LOGOUT</h1>";
echo "<h2>Klik <a href='session01.php'>di sini</a> untuk
LOGIN kembali</h2>";
echo "<h2>Anda sekarang tidak bisa masuk ke halaman
<a href='session02.php'>session02.php</a> lagi</h2>";
}
?>

Penjelasan Program 9.3.
Program 9.3 merupakan contoh program penghapusan session.
Penghapusan session biasanya digunakan ketika user melalukan 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.

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 shooping 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
2
3
4
5
6
7
8
9

<?php
$value = 'achmatim';
$value2 = 'Achmad Solichin';
setcookie("username", $value);
setcookie("namalengkap", $value2, time()+3600);
hour */

/* expire in 1

echo "<h1>Ini halaman pengesetan cookie</h1>";

Achmad Solichin (achmatim@gmail.com)

75
Pemrograman Web dengan PHP dan MySQL

10
11

echo "<h2>Klik <a href='cookie02.php'>di sini</a> untuk
pemeriksaan cookies</h2>";
?>

Program 9.5
Nama File
: cookie02.php
Deskripsi
: Program pemeriksaan cookie.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

<?php
if(isset($_COOKIE['username'])) {
echo "<h1>Cookie 'username' ada. Isinya : " .
$_COOKIE['username'];
} else {
echo "<h1>Cookie 'username' TIDAK ada.</h1>";
}
if(isset($_COOKIE['namalengkap'])) {
echo "<h1>Cookie 'namalengkap' ada. Isinya : " .
$_COOKIE['namalengkap'];
} else {
echo "<h1>Cookie 'namalengkap' TIDAK ada.</h1>";
}
echo "<h2>Klik <a href='cookie01.php'>di sini</a> untuk
penciptaan cookies</h2>";
echo "<h2>Klik <a href='cookie03.php'>di sini</a> untuk
penghapusan cookies</h2>";
?>

Program 9.6
Nama File
: cookie03.php
Deskripsi
: Program penghapusan cookie.
1
2
3
4
5
6
7
8
9
10

<?php
// set the expiration date to one hour ago
setcookie ("username", "", time() - 3600);
setcookie ("namalengkap", "", time() - 3600);
echo "<h1>Cookie Berhasil dihapus.</h1>";
echo "<h2>Klik <a href='cookie01.php'>di sini</a> untuk
penciptaan cookies</h2>";
echo "<h2>Klik <a href='cookie02.php'>di sini</a> untuk
pemeriksaan cookies</h2>";
?>

Achmad Solichin (achmatim@gmail.com)

76
Pemrograman Web dengan PHP dan MySQL

Bab 10

Pemrograman Berorientasi Objek dalam
PHP
Pengantar Pemrograman Berorientasi Objek
Object dan Class
Properties dan Method
Mendefinisikan Class

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 mahasiswanya. 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. Polymorphisme
PHP khususnya PHP 5 sudah mendukung beberapa konsep OOP. Akan tetapi
PHP 5 tidak mendukung konsep Multiple-inheritance dan polymorphisme.

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 bagianbagian 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

Achmad Solichin (achmatim@gmail.com)

77
Pemrograman Web dengan PHP dan MySQL

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.

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 (_).

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.
Menambahkan Properties (Variabel)
Perhatikan contoh pendefinisian class beserta propertiesnya, sbb :
1
2
3
4
5
6
7
8

class Mobil
{
var $warna;
var $merk;
var $harga;
//Tambahkan pendefinisian method di sini
}

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
2
3
4
5
6

class Mobil
{
var $warna = "Biru";
var $merk = "BMW";
var $harga = "10000000";

Achmad Solichin (achmatim@gmail.com)

78
Pemrograman Web dengan PHP dan MySQL

7
8

//Tambahkan pendefinisian method di sini
}

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

class Mobil
{
var $warna = "Biru";
var $merk = "BMW";
var $harga = "10000000";
function gantiWarna ($warnaBaru)
{
$this->warna = $warnaBaru;
}
function tampilWarna ()
{
echo "Warna mobilnya : " . $this->warna;
}
}

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.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

class Mobil
{
var $warna;
var $merk;
var $harga;
function __construct()
{
$this->warna = "Biru";
$this->merk = "BMW";
$this->harga = "10000000";
}
function gantiWarna ($warnaBaru)
{
$this->warna = $warnaBaru;
}
function tampilWarna ()
{
echo "Warna mobilnya : " . $this->warna;

Achmad Solichin (achmatim@gmail.com)

79
Pemrograman Web dengan PHP dan MySQL

22
23

}
}

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 10.1
Nama File
: pbo01.php
Deskripsi
: Program sederhana pendefinisian class dan pemanggilan class.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

<?
class Mobil
{
var $warna;
var $merk;
var $harga;
function __construct()
{
$this->warna = "Biru";
$this->merk = "BMW";
$this->harga = "10000000";
}
function gantiWarna ($warnaBaru)
{
$this->warna = $warnaBaru;
}
function tampilWarna ()
{
echo "Warna mobilnya : " . $this->warna;
}
}
$a = new Mobil();
$b = new Mobil();
echo "<b>Mobil pertama</b><br>";
$a->tampilWarna();
echo "<br>Mobil pertama ganti warna<br>";
$a->gantiWarna("Merah");
$a->tampilWarna();
//
echo "<br><b>Mobil kedua</b><br>";
$b->gantiWarna("Hijau");
$b->tampilWarna();
?>

Program 10.2
Nama File
: pbo02.inc.php
Deskripsi
: Program class untuk membuat sebuah form inputan sederhana.
1
2
3

<?php
/*
Nama Class : Form

Achmad Solichin (achmatim@gmail.com)

80
Pemrograman Web dengan PHP dan MySQL

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

Deskripsi
*/

: CLass untuk membuat form inputan text sederhana

class Form
{
var $fields = array();
var $action;
var $submit = "Submit Form";
var $jumField = 0;
function __construct($action, $submit)
{
$this->action = $action;
$this->submit = $submit;
}
function displayForm()
{
echo "<form action='".$this->action."' method='POST'>";
echo "<table width='100%'>";
for ($j=0; $j<count($this->fields); $j++) {
echo "<tr><td align='right'>".$this->
fields[$j]['label']."</td>";
echo "<td><input type='text' name='".$this->
fields[$j]['name']."'></td></tr>";
}
echo "<tr><td colspan='2'>";
echo "<input type='submit' value='".$this->submit.
"'></td></tr>";
echo "</table>";
}
function addField($name, $label)
{
$this->fields [$this->jumField]['name'] = $name;
$this->fields [$this->jumField]['label'] = $label;
$this->jumField ++;
}
}
?>

Program 10.3
Nama File
: pbo03.php
Deskripsi
: Program memanfaatkan Program 10.2 untuk membuat form
inputan sederhana.
1
2
3
4
5
6
7
8
9
10
11

<?php
include "pbo02.inc.php";
echo "<html><head><title>Mahasiswa</title></head><body>";
$form = new Form ("","Input Form");
$form->addField ("txtnim", "Nim");
$form->addField ("txtnama", "Nama");
$form->addField ("txtalamat", "Alamat");
echo "<h3>Silahkan isi form berikut ini :</h3>";
$form->displayForm();
echo "</body></html>";
?>

Penjelasan Program 10.3
Program 10.3 di atas merupakan contoh pemanggilan class yang
didefinisikan pada Program 10.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 10.1

Achmad Solichin (achmatim@gmail.com)

81
Pemrograman Web dengan PHP dan MySQL

Gambar 10.1. Tampilan Program 10.3

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 Extention 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, PosgreSQL, 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-desaigner 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 http://smarty.php.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

Achmad Solichin (achmatim@gmail.com)

82
Pemrograman Web dengan PHP dan MySQL

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
http://www.aditus.nu/jpgraph/

Achmad Solichin (achmatim@gmail.com)

83
Pemrograman Web dengan PHP dan MySQL

Bab 11

Pengenalan DBMS dan MySQL
Tentang Database, DBMS, dan RDBMS
Tentang MySQL
Instalasi MySQL di Windows
Koneksi ke Server MySQL dengan MySQL Client
Berbagai Tools Administrasi Server MySQL

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 :
DBMS

Database

Tabel

Tabel

Database

Tabel

Database

Tabel

Tabel

Field & Record

Achmad Solichin (achmatim@gmail.com)

84
Pemrograman Web dengan PHP dan MySQL

Gambar 11.1. Hierarki Database

Tentang MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL
(bahasa Inggris: database management system) atau DBMS yang multithread,
multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat
MySQL tersedia sebagai perangkat lunak gratis di bawah lisensi GNU General
Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk
kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.
Tidak seperti Apache yang merupakan software yang dikembangkan oleh
komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya
masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial
Swedia yaitu MySQL AB. MySQL AB memegang penuh 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.
Beberapa kelebihan MySQL antara lain :
Free (bebas didownload)
Stabil dan tangguh
Fleksibel dengan berbagai pemrograman
Security yang baik
Dukungan dari banyak komunitas
Kemudahan management database.
Mendukung transaksi
Perkembangan software yang cukup cepat.

Instalasi MySQL di Windows
Persiapan
1. Download Source MySQL di http://www.mysql.com/downloads/
MySQL versi terakhir saat materi ini dibuat adalah MySQL 5.0.45. Silahkan
Anda download versi terakhir tersebut dan simpan di komputer Anda. Pada
dasarnya, instalasi untuk setiap versi MySQL tidak jauh berbeda.
Proses Instalasi MySQL
1. Setelah Anda mendapatkan source MySQL, selanjutnya Anda perlu mengekstrak file tersebut ke komputer Anda.
2. Jalankan file Setup.exe yang ada di dalam folder source MySQL. Lihat
gambar berikut ini !

Achmad Solichin (achmatim@gmail.com)

85
Pemrograman Web dengan PHP dan MySQL

Gambar 2.1. File Setup.exe
3. MySQL Setup akan mengekstrak file instalasi MySQL seperti pada gambar
berikut ini.

Gambar 2.2. Proses Instalasi Dimulai
4. Selanjutnya akan ditampilkan window MySQL Server 5.0 Setup Wizard for
MySQL. Klik tombol Next untuk memulai proses instalasi.

Gambar 2.3. Memulai Proses Instalasi

Achmad Solichin (achmatim@gmail.com)

86
Pemrograman Web dengan PHP dan MySQL

5. Selanjutnya akan ditampilkan pilihan untuk memilih cara instalasi. Pilih
Typical jika kita ingin menginstall MySQL yang umumnya digunakan.

Gambar 2.4. Pilih tipe instalasi
6. Selanjutnya akan ditampilkan window informasi konfigurasi MySQL, yaitu tipe
instalasi dan folder tujuan instalasi. Klik Install untuk memulai proses
instalasi.

Gambar 2.5. Window Informasi Konfigurasi Instalasi
7. Proses instalasi dimulai.

Achmad Solichin (achmatim@gmail.com)

87
Pemrograman Web dengan PHP dan MySQL

Gambar 2.6. Window Setup Type
8. Selanjutnya ditampilkan window informasi mengenai MySQL Enterprise. Klik
Next untuk melanjutkan.

Gambar 2.7. Window MySQL Enterprise

Achmad Solichin (achmatim@gmail.com)

88
Pemrograman Web dengan PHP dan MySQL

Gambar 2.8. Window informasi MySQL Monitoring
9. Proses instalasi selesai dan akan ditampilkan seperti pada gambar di bawah
ini. Jika kita ingin langsung mengkonfigurasikan server MySQL (password,
service dll) maka pilihkan checkbox Configure the MySQL Server now dan
tekan tombol Finish.

Gambar 2.9. Proses instalasi Selesai
10. Selanjutnya ditampilkan window MySQL Server Instance Configuration
Wizard. Klik Next untuk melanjutkan.

Achmad Solichin (achmatim@gmail.com)

89
Pemrograman Web dengan PHP dan MySQL

Gambar 2.10. Window MySQL Server Instance Configuration Wizard
11. Selanjutnya terdapat pilihan tipe konfigurasi yang diinginkan, Detailed
Configuration atau Standard Configuration. Pilih dan klik Next untuk
melanjutkan.

Gambar 2.11. Window Pilihan tipe konfigurasi
12. Selanjutnya terdapat pilihan tipe server yang diinginkan, Developer, Server,
atau Dedicated MySQL Server. Pilih salah satu dan klik Next untuk
melanjutkan.

Achmad Solichin (achmatim@gmail.com)

90
Pemrograman Web dengan PHP dan MySQL

Gambar 2.12. Pilihan tipe server MySQL
13. Selanjutnya terdapat pilihan penggunaan database MySQL, untuk
Multifunctional, Transactional Only atau Non-Transactional Only. Pilih
salah satu dan klik Next untuk melanjutkan.

Gambar 2.13. Window Pilihan penggunaan Database.
14. Selanjutnya terdapat setting-an InnoDB Tablespace Settings dimana
diminta memilih tempat untuk tablespace InnoDB. Klik Next untuk
melanjutkan.

Achmad Solichin (achmatim@gmail.com)

91
Pemrograman Web dengan PHP dan MySQL

Gambar 2.14. Window InnoDB Tablespace Settings.
15. Selanjutnya terdapat pilihan perkiraan seberapa besar koneksi user ke server.
Pilih salah satu dan klik Next untuk melanjutkan.

Gambar 2.15. Pilihan Perkiraan Seberapa Besar Koneksi User ke Server
16. Selanjutnya terdapat window untuk memilih nomor PORT yang digunakan
untuk MySQL. Next untuk melanjutkan.

Achmad Solichin (achmatim@gmail.com)

92
Pemrograman Web dengan PHP dan MySQL

Gambar 2.16. Window pilihan port MySQL.
17. Selanjutnya terdapat pilihan nama service MySQL yang akan digunakan oleh
Windows. Pilih salah satu dan klik Next untuk melanjutkan.

Gambar 2.17. Window pilihan Nama Service MySQL.
18. Selanjutnya diminta memodifikasi security. Pilih password untuk root (user
tertinggi di MySQL) dan klik Next untuk melanjutkan.

Achmad Solichin (achmatim@gmail.com)

93
Pemrograman Web dengan PHP dan MySQL

Gambar 2.18. Window Security Setting.
19. Proses konfigurasi selesai dan klik Execute untuk menyimpan konfigurasi dan
menjalankan servis MySQL.

Gambar 2.19. Proses konfigurasi server MySQL selesai.

Achmad Solichin (achmatim@gmail.com)

94
Pemrograman Web dengan PHP dan MySQL

Koneksi ke Server MySQL dengan MySQL Client
MySQL menyediakan tools untuk melakukan koneksi ke server MySQL, yaitu
MySQL Command-Line Client. Tools tersebut dapat diakses dari menu Start > All
Programs > MySQL > MySQL Server 5> MySQL Command Line Client.
Tampilannya kurang lebih tampak pada gambar berikut ini:

Gambar 12.13. MySQL Command Line Client
Untuk melakukan koneksi ke server MySQL, Anda cukup mengetikkan
password koneksi MySQL. Password ini didefinisikan pada saat proses instalasi.
Jika passwordnya benar, maka akan ditampilkan window sbb :

Gambar 2.20. Koneksi ke Server MySQL dengan User root
Setelah koneksi ke server MySQL berhasil dilakukan, maka akan ditampilkan
prompt mysql> seperti pada gambar 12.14. Query atau perintah-perintah MySQL
dapat dituliskan pada prompt MySQL ini. Akhiri setiap query dengan titik-koma
(;). Selanjutnya untuk keluar dari server MySQL dapat dilakukan dengan
mengetikkan perintah quit atau q pada prompt mysql>.

Achmad Solichin (achmatim@gmail.com)

95
Pemrograman Web dengan PHP dan MySQL

Berbagai MySQL Client untuk 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.

Gambar 2.21. Tampilan MySQL command line client
2. MySQL-Front
MySQL-Front merupakan front-end MySQL berbasis Windows yang cukup
banyak digunakan. MySQL-Front memiliki user interface yang cukup mudah
digunakan, bahkan oleh user pemula. Pada awalnya MySQL-Front merupakan
software yang free, namun mulai versi 3.0 ke atas, software ini menjadi
software yang bersifat shareware dengan masa percobaan selama 30 hari.
Jika Anda ingin mencoba software ini, cobalah MySQL-Front versi 2.5 karena
selain masih bebas untuk didownload, versi 2.5 cukup stabil dan sudah teruji.
Situs resmi MySQL-Front beralamat di http://www.mysqlfront.de

Gambar 2.22. Tampilan MySQL Front

Achmad Solichin (achmatim@gmail.com)

96
Pemrograman Web dengan PHP dan MySQL

3. 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
dapat
didownload
secara
gratis
di
http://www.phpmyadmin.net

Gambar 2.23. Tampilan halaman PHPMyAdmin
4. 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

Gambar 2.24. Tampilan layar SQLYog

Achmad Solichin (achmatim@gmail.com)

97
Pemrograman Web dengan PHP dan MySQL

5. MySQL Administrator dan MySQL Query Browser
MySQL Administrator dan MySQL Query Browser merupakan tools
administrasi database MySQL yang tersedia di situs resmi MySQL
Keduanya
dapat
didownload
di
alamat
(http://www.mysql.com).
http://www.mysql.com/products/tools/.
Beberapa fitur MySQL Administrator, antara lain:
• Administrasi user.
• Halaman monitoring server.
• Optimatisasi MySQL
• Informasi umum keadaan server
• Status replication.
• Cross-platform.
Beberapa fitur MySQL Query Browser, antara lain:
• Tampilan dan menu yang mudah (user-friendly).
• Mendukung beberapa window hasil (result preview) sekaligus.
• Kemudahan dalam menulis query dengan visual tools.
• Manipulasi database.
• Membuat dan manipulasi tabel.
• SQL statements debugging.

Gambar 2.25. Tampilan layar MySQL Administrator dan MySQL Control Center

Achmad Solichin (achmatim@gmail.com)

98
Pemrograman Web dengan PHP dan MySQL

Bab 12

Pengenalan Structured Query Language
Apa Itu SQL ?
Membuat, Menampilkan, Membuka dan Menghapus Database
Membuat, Mengubah dan Menghapus Table
Menambah Record dengan INSERT
Mengedit Record dengan UPDATE
Menghapus Record dengan DELETE
Menampilkan Record dengan SELECT

Apa Itu 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 ANSII 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 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

Membuat, Menampilkan, Membuka dan Menghapus Database
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 di C:mysqldata. Di dalam folder tersebut nantinya akan terdapat file-file
yang berhubungan dengan tabel dalam database.

Achmad Solichin (achmatim@gmail.com)

99
Pemrograman Web dengan PHP dan MySQL

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)
Membuat 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 :

+--------------+
| Database
|
+--------------+
| mahasiswa
|
| mysql
|
| test
|
+--------------+
3 rows in set (0.02 sec)
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
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” :

Achmad Solichin (achmatim@gmail.com)

100
Pemrograman Web dengan PHP dan MySQL

DROP DATABASE mahasiswa;
Membuat, Mengubah dan Menghapus Table
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
NUMERIK

TIPE
TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT
FLOAT
DOUBLE
DECIMAL

DATE/TIME

DATE
DATETIME
TIMESTAMP
TIME
YEAR

STRING

CHAR
VARCHAR
TINYTEXT
TEXT
BLOB

KETERANGAN
-128 s/d 127 SIGNED
0 s/d 255 UNSIGNED
-32768 s/d 32767 SIGNED
0 s/d 65535 UNSIGNED.
-8388608 s/d 8388607 SIGNED
0 s/d 16777215 UNSIGNED
-2147483648 s/d 2147483647 SIGNED
0 s/d 4294967295 UNSIGNED.
-9223372036854775808 s/d
9223372036854775807 SIGNED
0 s/d 18446744073709551615 UNSIGNED.
Bilangan pecahan presisi tunggal
Bilangan pecahan presisi ganda
Bilangan dengan desimal
Tanggal dengan format YYYY-MM-DD
Tanggal dan waktu dengan format :
YYYY-MM-DD HH:MM:SS
Tanggal dan waktu dengan format :
YYYYMMDDHHMMSS
Waktu dengan format HH:MM:SS
Tahun dengan format YYYY
0 – 255 karakter
0 – 255 karakter
String dengan panjang maksimum 255
karakter
String dengan panjang maksimum 65535
karakter
String dengan panjang maksimum 65535

Achmad Solichin (achmatim@gmail.com)

101
Pemrograman Web dengan PHP dan MySQL

MEDIUMTEXT
MEDIUMBLOB
LONGTEXT
LONGBLOB
KHUSUS

ENUM
SET

karakter
String dengan panjang
16777215 karakter
String dengan panjang
16777215 karakter
String dengan panjang
4294967295 karakter
String dengan panjang
4294967295 karakter

maksimum
maksimum
maksimum
maksimum

Tipe data dengan isi tertentu
Tipe data dengan isi tertentu

Sebagai contoh, kita akan membuat tabel baru dengan struktur sebagai
berikut :
Nama tabel : mhs
No Nama Field
1
nim
2
nama
3
tgllahir
4
alamat

Tipe
Varchar
Varchar
Date
Text

Panjang
10
30
-

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 :

Achmad Solichin (achmatim@gmail.com)

102
Pemrograman Web dengan PHP dan MySQL

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

+---------------------+
| Tables_in_mahasiswa |
+---------------------+
| mhs
|
+---------------------+
1 rows in set (0.01 sec)
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) |
| PRI |
|
|
| nama
| varchar(30) |
|
|
|
|
| tgllahir | date
| YES |
| NULL
|
|
| alamat
| text
| YES |
| NULL
|
|
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
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.
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
“definisi_field_baru” (nama field, tipe dan option lain).

baru

dengan

» ADD INDEX nama_index

Achmad Solichin (achmatim@gmail.com)

103
Pemrograman Web dengan PHP dan MySQL

Option ini digunakan untuk
“nama_index” pada tabel.

menambahkan

index

dengan

nama

» 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 :
1. Menambahkan field “agama” ke tabel mhs

ALTER TABLE mhs ADD agama varchar(15) NOT NULL;
2. Menambahkan primary key pada suatu tabel

ALTER TABLE mhs ADD PRIMARY KEY(nim);
3. Mengubah panjang field agama menjadi 10 karakter dalam tabel mhs

ALTER TABLE mhs CHANGE agama agama varchar(10);
4. Mengubah tipe field agama menjadi char(2) dalam tabel mhs

ALTER TABLE mhs MODIFY agama char(2) NOT NULL;
5. Menghapus field agama dari tabel mhs

ALTER TABLE mhs DROP agama;
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.
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;

Achmad Solichin (achmatim@gmail.com)

104
Pemrograman Web dengan PHP dan MySQL

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 ('0411500121','Achmad Solichin',
'1982-06-05','Jakarta Selatan');
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 :
+------------+-----------------+------------+-----------------+
| nim
| nama
| tgllahir
| alamat
|
+------------+-----------------+------------+-----------------+
| 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan |
+------------+-----------------+------------+-----------------+
1 row in set (0.19 sec)
Latihan
Tambahkan 10 data (record) baru ke tabel mhs sehingga isi tabel mhs menjadi
sebagai berikut !
+------------+-----------------+------------+-----------------+
| nim
| nama
| tgllahir
| alamat
|
+------------+-----------------+------------+-----------------+
| 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan |
| 0411500123 | Chotimatul M
| 1983-03-12 | Jakarta Selatan |
| 0422500111 | Bajuri
| 1983-03-25 | Tangerang
|
| 0444500011 | Oneng
| 1980-05-22 | Jakarta Utara
|
| 0433500115 | Unyil
| 1980-08-29 | Tangerang
|

Achmad Solichin (achmatim@gmail.com)

105
Pemrograman Web dengan PHP dan MySQL

| 0411500116 | Ujang
| 1984-10-06 | Jakarta Barat
|
| 0422500316 | Jebleh
| 1984-10-06 | Cengkareng
|
| 0433500333 | Dono
| 1984-10-06 | Jakarta Selatan |
| 0422500433 | Dini
| 1986-12-10 | Jakarta Selatan |
| 0411500331 | Dana
| 1986-07-11 | Jakarta Selatan |
| 0444500315 | Dani
| 1985-01-01 | Jakarta Barat
|
+------------+-----------------+------------+-----------------+

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 masingmasing field.
Perintah WHERE diikuti oleh kondisi tertentu yang menentukan record mana
yang 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 !
1. Mengubah alamat menjadi “Tangerang” untuk mahasiswa yang mempunyai
nim 0411500121

UPDATE mhs SET alamat='Tangerang' WHERE
nim='0411500121';
Dan jika query di atas berhasil dieksekusi maka akan ditampilkan hasil
sebagai berikut :

Query OK, 1 row affected (0.27 sec)
Rows matched: 1 Changed: 1 Warnings: 0
2. Mengubah tanggal lahir menjadi “12 Maret 1983” dan alamat menjadi
“Bandung” untuk mahasiswa yang mempunyai nim 0422500316

UPDATE mhs SET tgllahir='1982-06-05', alamat='Jakarta
Selatan' WHERE nim='0422500316';

Achmad Solichin (achmatim@gmail.com)

106
Pemrograman Web dengan PHP dan MySQL

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 (didelete). 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 !
1. Menghapus data mahasiswa yang mempunyai nim 0411500331

DELETE FROM mhs WHERE nim='0411500331';
Dan jika query di atas berhasil dieksekusi maka akan ditampilkan hasil
sebagai berikut :

Query OK, 1 row affected (0.11 sec)
2. Menghapus semua mahasiswa yang beralamat di “Bandung”

DELETE FROM mhs WHERE alamat='Bandung';
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 !
1. Menampilkan seluruh data atau record (*) dari tabel mhs

SELECT * FROM mhs;

Achmad Solichin (achmatim@gmail.com)

107
Pemrograman Web dengan PHP dan MySQL

Dan jika query di atas berhasil dieksekusi maka akan ditampilkan hasil
sebagai berikut :
+------------+-----------------+------------+-----------------+
| nim
| nama
| tgllahir
| alamat
|
+------------+-----------------+------------+-----------------+
| 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan |
| 0411500123 | Chotimatul M
| 1983-03-12 | Jakarta Selatan |
| 0422500111 | Bajuri
| 1983-03-25 | Tangerang
|
| 0444500011 | Oneng
| 1980-05-22 | Jakarta Utara
|
| 0433500115 | Unyil
| 1980-08-29 | Tangerang
|
| 0411500116 | Ujang
| 1984-10-06 | Jakarta Barat
|
| 0422500316 | Jebleh
| 1982-06-05 | Jakarta Selatan |
| 0433500333 | Dono
| 1984-10-06 | Jakarta Selatan |
| 0422500433 | Dini
| 1986-12-10 | Jakarta Selatan |
| 0444500315 | Dani
| 1985-01-01 | Jakarta Barat
|
+------------+-----------------+------------+-----------------+
10 rows in set (0.25 sec)
2. 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 :
+------------+-----------------+
| nim
| nama
|
+------------+-----------------+
| 0411500121 | Achmad Solichin |
| 0411500123 | Chotimatul M
|
| 0422500111 | Bajuri
|
| 0444500011 | Oneng
|
| 0433500115 | Unyil
|
| 0411500116 | Ujang
|
| 0422500316 | Jebleh
|
| 0433500333 | Dono
|
| 0422500433 | Dini
|
| 0444500315 | Dani
|
+------------+-----------------+
10 rows in set (0.11 sec)
3. Menampilkan data mahasiswa yang mempunyai nim 0411500123

SELECT * FROM mhs WHERE nim = '0411500123';
Hasil query di atas adalah sbb :
+------------+--------------+------------+-----------------+
| nim
| nama
| tgllahir
| alamat
|
+------------+--------------+------------+-----------------+
| 0411500123 | Chotimatul M | 1983-03-12 | Jakarta Selatan |
+------------+--------------+------------+-----------------+
1 row in set (0.06 sec)
4. Menampilkan data semua mahasiswa yang beralamat di luar Jakarta Selatan

Achmad Solichin (achmatim@gmail.com)

108
Pemrograman Web dengan PHP dan MySQL

SELECT * FROM mhs WHERE alamat != 'Jakarta Selatan';
Hasil query di atas adalah sbb :
+------------+--------+------------+---------------+
| nim
| nama
| tgllahir
| alamat
|
+------------+--------+------------+---------------+
| 0422500111 | Bajuri | 1983-03-25 | Tangerang
|
| 0444500011 | Oneng | 1980-05-22 | Jakarta Utara |
| 0433500115 | Unyil | 1980-08-29 | Tangerang
|
| 0411500116 | Ujang | 1984-10-06 | Jakarta Barat |
| 0444500315 | Dani
| 1985-01-01 | Jakarta Barat |
+------------+--------+------------+---------------+
5 rows in set (0.02 sec)
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.
5. Menampilkan data semua mahasiswa yang beralamat di Jakarta Selatan dan
lahir pada tahun 1982.

SELECT * FROM mhs WHERE alamat = 'Jakarta Selatan' &&
YEAR(tgllahir) = '1982';
Hasil query di atas adalah sbb :
+------------+-----------------+------------+-----------------+
| nim
| nama
| tgllahir
| alamat
|
+------------+-----------------+------------+-----------------+
| 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan |
| 0422500316 | Jebleh
| 1982-06-05 | Jakarta Selatan |
+------------+-----------------+------------+-----------------+
2 rows in set (0.00 sec)
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

Achmad Solichin (achmatim@gmail.com)

109
Pemrograman Web dengan PHP dan MySQL

hari dari suatu tanggal, dan masih banyak fungsi lain yang berhubungan
dengan tanggal.
6. 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 :
+------------+-----------------+------+
| nim
| nama
| umur |
+------------+-----------------+------+
| 0411500121 | Achmad Solichin |
24 |
| 0411500123 | Chotimatul M
|
23 |
| 0422500111 | Bajuri
|
23 |
| 0444500011 | Oneng
|
26 |
| 0433500115 | Unyil
|
26 |
| 0411500116 | Ujang
|
22 |
| 0422500316 | Jebleh
|
24 |
| 0433500333 | Dono
|
22 |
| 0422500433 | Dini
|
20 |
| 0444500315 | Dani
|
21 |
+------------+-----------------+------+
10 rows in set (0.05 sec)
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.
7. Menampilkan semua mahasiswa jurusan TI

SELECT * FROM mhs WHERE SUBSTRING(nim,3,2)='11';
Hasil query di atas adalah sbb :
+------------+-----------------+------------+-----------------+
| nim
| nama
| tgllahir
| alamat
|
+------------+-----------------+------------+-----------------+
| 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan |
| 0411500123 | Chotimatul M
| 1983-03-12 | Jakarta Selatan |
| 0411500116 | Ujang
| 1984-10-06 | Jakarta Barat
|
+------------+-----------------+------------+-----------------+
3 rows in set (0.19 sec)
Keterangan
Pada query di atas terdapat fungsi SUBSTRING yang berguna untuk
memotong suatu string. Format fungsi SUBSTRING adalah sebagai berikut :

SUBSTRING(field, awal, panjang)
8. Menampilkan semua data mahasiswa secara urut berdasarkan nama dengan
perintah ORDER BY

SELECT * FROM mhs ORDER BY nama;

Achmad Solichin (achmatim@gmail.com)

110
Pemrograman Web dengan PHP dan MySQL

Hasil query di atas adalah sbb :
+------------+-----------------+------------+-----------------+
| nim
| nama
| tgllahir
| alamat
|
+------------+-----------------+------------+-----------------+
| 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan |
| 0422500111 | Bajuri
| 1983-03-25 | Tangerang
|
| 0411500123 | Chotimatul M
| 1983-03-12 | Jakarta Selatan |
| 0444500315 | Dani
| 1985-01-01 | Jakarta Barat
|
| 0422500433 | Dini
| 1986-12-10 | Jakarta Selatan |
| 0433500333 | Dono
| 1984-10-06 | Jakarta Selatan |
| 0422500316 | Jebleh
| 1982-06-05 | Jakarta Selatan |
| 0444500011 | Oneng
| 1980-05-22 | Jakarta Utara
|
| 0411500116 | Ujang
| 1984-10-06 | Jakarta Barat
|
| 0433500115 | Unyil
| 1980-08-29 | Tangerang
|
+------------+-----------------+------------+-----------------+
10 rows in set (0.01 sec)
9. Menampilkan semua data mahasiswa secara urut berdasarkan nim secara
DESCENDING

SELECT * FROM mhs ORDER BY nim DESC;
Hasil query di atas adalah sbb :
+------------+-----------------+------------+-----------------+
| nim
| nama
| tgllahir
| alamat
|
+------------+-----------------+------------+-----------------+
| 0444500315 | Dani
| 1985-01-01 | Jakarta Barat
|
| 0444500011 | Oneng
| 1980-05-22 | Jakarta Utara
|
| 0433500333 | Dono
| 1984-10-06 | Jakarta Selatan |
| 0433500115 | Unyil
| 1980-08-29 | Tangerang
|
| 0422500433 | Dini
| 1986-12-10 | Jakarta Selatan |
| 0422500316 | Jebleh
| 1982-06-05 | Jakarta Selatan |
| 0422500111 | Bajuri
| 1983-03-25 | Tangerang
|
| 0411500123 | Chotimatul M
| 1983-03-12 | Jakarta Selatan |
| 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan |
| 0411500116 | Ujang
| 1984-10-06 | Jakarta Barat
|
+------------+-----------------+------------+-----------------+
10 rows in set (0.00 sec)
10. 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 :
+------------+-----------------+------------+-----------------+
| nim
| nama
| tgllahir
| alamat
|
+------------+-----------------+------------+-----------------+
| 0411500116 | Ujang
| 1984-10-06 | Jakarta Barat
|
| 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan |
| 0411500123 | Chotimatul M
| 1983-03-12 | Jakarta Selatan |
| 0422500111 | Bajuri
| 1983-03-25 | Tangerang
|
| 0422500316 | Jebleh
| 1982-06-05 | Jakarta Selatan |
+------------+-----------------+------------+-----------------+
5 rows in set (0.13 sec)

Achmad Solichin (achmatim@gmail.com)

111
Pemrograman Web dengan PHP dan MySQL

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

Achmad Solichin (achmatim@gmail.com)

112
Pemrograman Web dengan PHP dan MySQL

Bab 13

Aplikasi Berita dengan PHP dan MySQL
Merancang Struktur Database
Membuat File Koneksi Database
Membuat Halaman Input Berita
Menampilkan Berita Terbaru di Halaman Depan
Menampilkan Berita Lengkap
Membuat Halaman Arsip Berita
Membuat Halaman Edit Berita
Membuat Halaman Delete Berita
CSS sebagai Pemanis Tampilan

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
id_berita
id_kategori
judul
headline
isi
pengirim
tanggal

Tipe
Int
Int
Varchar
Text
Text
Varchar
Datetime

Tabel “kategori”
Nama Field
Tipe
id_kategori
Int
nm_kategori
Varchar
deskripsi
Varchar

Panjang
5
3
100
15
-

Keterangan
Primary Key, Auto Increment
Foreign Key
Judul berita
Berita singkat
Berita lengkap
Pengirim berita
Tanggal dan waktu kirim berita

Panjang
3
30
200

Keterangan
Primary Key, Auto Increment
Nama kategori
Deskripsi kategori

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)
) TYPE=MyISAM;
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),
) TYPE=MyISAM;
Catatan : Isikan sejumlah data ke tabel kategori langsung di database

Achmad Solichin (achmatim@gmail.com)

113
Pemrograman Web dengan PHP dan MySQL

Membuat File Koneksi Database
Program 1
Nama File
Deskripsi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

<?php
$host
$user
$pass
$dbnm

: koneksi.php
: Program koneksi ke database.
=
=
=
=

"localhost";
"root";
"";
"pw2";

$conn = mysql_connect ($host, $user, $pass);
if ($conn) {
$buka = mysql_select_db ($dbnm);
if (!$buka) {
die ("Database tidak dapat dibuka");
}
} else {
die ("Server MySQL tidak terhubung");
}
?>

Membuat Halaman Input Berita
Program 2
Nama File
Deskripsi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

: input_berita.php
: 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','$pengirim',
now())";
$sql = mysql_query ($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>

Achmad Solichin (achmatim@gmail.com)

114
Pemrograman Web dengan PHP dan MySQL

30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

<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">
<?
$query = "SELECT id_kategori, nm_kategori
FROM kategori ORDER BY nm_kategori";
$sql = mysql_query ($query);
while ($hasil = mysql_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>

Menampilkan Berita Terbaru di Halaman Depan
Program 3
Nama File
Deskripsi
1
2
3
4
5
6

: index.php
: Program menampilkan 5 berita terbaru di halaman depan.

<?php
include "koneksi.php";
?>
<html>
<head><title>Index Berita</title>

Achmad Solichin (achmatim@gmail.com)

115
Pemrograman Web dengan PHP dan MySQL

7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

<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>
<?
$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 = mysql_query ($query);
while ($hasil = mysql_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>

Menampilkan Berita Lengkap
Program 4
Nama File
Deskripsi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

: berita_lengkap.php
: 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>
<?
$query = "SELECT A.id_berita, B.nm_kategori, A.judul,
A.isi, A.pengirim, A.tanggal
FROM berita A, kategori B WHERE

Achmad Solichin (achmatim@gmail.com)

116
Pemrograman Web dengan PHP dan MySQL

23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

A.id_kategori=B.id_kategori && A.id_berita='$id_berita'";
$sql = mysql_query ($query);
$hasil = mysql_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>

Membuat Halaman Arsip Berita
Program 5
Nama File
Deskripsi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

: arsip_berita.php
: 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;
}
}
</script>
</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>
<?
$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 = mysql_query ($query);
while ($hasil = mysql_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']);
//

Achmad Solichin (achmatim@gmail.com)

117
Pemrograman Web dengan PHP dan MySQL

38
39
40
41
42
43
44
45
46
47
48
49
50
51

//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>

Membuat Halaman Edit Berita
Program 6
Nama File
Deskripsi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

: edit_berita.php
: 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 = mysql_query ($query);
$hasil = mysql_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 = mysql_query ($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>";

Achmad Solichin (achmatim@gmail.com)

118
Pemrograman Web dengan PHP dan MySQL

39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94

}
}
?>
<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="<? echo $judul ?>"></td>
</tr>
<tr>
<td>Kategori</td>
<td>:
<select name="kategori">
<?
$query = "SELECT id_kategori,
nm_kategori FROM kategori ORDER BY nm_kategori";
$sql = mysql_query ($query);
while ($hasil = mysql_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"><?=$headline?></textarea></td>
</tr>
<tr>
<td>Isi Berita</td>
<td>: <textarea name="isi" cols="50"
rows="10"><?=$isi?></textarea></td>
</tr>
<tr>
<td>Pengirim</td>
<td>: <input type="text" name="pengirim"
size="20" value="<?=$pengirim?>"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;&nbsp;
<input type="hidden" name="hidberita"
value="<?=$id_berita?>">
<input type="submit" name="Edit" value="Edit
Berita">&nbsp;
<input type="reset" name="reset"
value="Cancel"></td>
</tr>
</table>
</FORM>

Achmad Solichin (achmatim@gmail.com)

119
Pemrograman Web dengan PHP dan MySQL

95
96

</body>
</html>

Membuat Halaman Delete Berita
Program 7
Nama File
Deskripsi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

: delete_berita.php
: 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>
<?
//proses delete berita
if (!empty($id_berita) && $id_berita != "") {
$query = "DELETE FROM berita WHERE
id_berita='$id_berita'";
$sql = mysql_query ($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>

CSS sebagai Pemanis Tampilan
Program 8
Nama File
Deskripsi
1
2
3
4
5
6

: style.css
: File CSS sebagai pemanis tampilan.

body {
font-family:verdana;
font-size:11px;
}
a {
color:#0000ff;

Achmad Solichin (achmatim@gmail.com)

120
Pemrograman Web dengan PHP dan MySQL

7
8
9
10
11
12
13
14
15
16

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

Achmad Solichin (achmatim@gmail.com)

121
Pemrograman Web dengan PHP dan MySQL

Tentang Penulis
Achmad Solichin. Adalah Lulusan Teknik Informatika, Fakultas
Teknologi Informasi, Universitas Budi Luhur, Jakarta (S1, 2005).
Saat ini sedang menempuh pendidikan S2 di Magister Teknologi
Informasi Universitas Indonesia (2008). Kegiatan sehari‐hari adalah
sebagai Dosen di Universitas Budi Luhur (http://www.bl.ac.id),
sekaligus sebagai Kepala Laboratorium Komputer Universitas Budi
Luhur (http://labkom.bl.ac.id). Kegiatan lain aktif sebagai
programmer, web developer, system analyst dan memberikan pelatihan di berbagai
bidang komputer serta membuat tutorial‐tutorial praktis di bidang komputer. Penulis
juga terlibat dalam pengembangan E‐Learning di Universitas Budi Luhur. Penulis
memiliki situs utama di http://achmatim.net yang berisi berbagai tutorial praktis
seputar pemrograman, web design, database dan materi kuliah. Penulis dapat
dihubungi melalui email di achmatim@gmail.com atau YM achmatim.

Achmad Solichin (achmatim@gmail.com)

122

More Related Content

What's hot (15)

DOCX
Tugas laporan project aplikasi website
Gilang Ramadhan
 
PDF
SKRIPSI APLIKASI TOKO ONLINE SISTEM LELANG
Een Pahlefi
 
PDF
Design dan Pemrograman Web
oldias
 
DOCX
Laporan pembuatan desain web joomla
Wina Fajriatin
 
PDF
Web Service
Wahyu Widodo
 
DOCX
Tugas laporan aplikasi web nova muhdalifah
zakianadalina97
 
DOCX
Makalah Web Programming 1
Dwi Mardianti
 
DOCX
Tugas laporan proyek aplikasi
pembunuhan_skala_besar
 
PDF
Modul Html Universitas Indraprasta
Kaffah Web Studio
 
PDF
2015-18. ilham setia pambudi - pemrograman web e-learning berbasis php
Syiroy Uddin
 
PDF
training module "web application development with cms and bootstrap"
Dewi Rahmawati
 
DOC
Laporan tugas besar
1110651055
 
PDF
Seri Belajar Mandiri – Pemrograman Java Untuk Pemula
Agus Kurniawan
 
PDF
Web Interaktif
Wahyu Widodo
 
PPT
Mengelola isi halaman web 3
Eko Supriyadi
 
Tugas laporan project aplikasi website
Gilang Ramadhan
 
SKRIPSI APLIKASI TOKO ONLINE SISTEM LELANG
Een Pahlefi
 
Design dan Pemrograman Web
oldias
 
Laporan pembuatan desain web joomla
Wina Fajriatin
 
Web Service
Wahyu Widodo
 
Tugas laporan aplikasi web nova muhdalifah
zakianadalina97
 
Makalah Web Programming 1
Dwi Mardianti
 
Tugas laporan proyek aplikasi
pembunuhan_skala_besar
 
Modul Html Universitas Indraprasta
Kaffah Web Studio
 
2015-18. ilham setia pambudi - pemrograman web e-learning berbasis php
Syiroy Uddin
 
training module "web application development with cms and bootstrap"
Dewi Rahmawati
 
Laporan tugas besar
1110651055
 
Seri Belajar Mandiri – Pemrograman Java Untuk Pemula
Agus Kurniawan
 
Web Interaktif
Wahyu Widodo
 
Mengelola isi halaman web 3
Eko Supriyadi
 

Similar to Pemrograman web dengan php my sql (20)

PDF
Pemrograman web dengan_php_my_sql
Fahmi Nugraha
 
PDF
Pemrograman web dengan_php_my_sql
Yayan Adrianova Eka Tuah,S.Kom
 
PDF
Pemrograman web dengan php my sql sholichin-fix
Fajar Baskoro
 
PDF
Pemrograman web dengan_php_my_sql
Ajhy_Gaskinz
 
PDF
Pemrograman web dengan php my sql
Herry Mardiyanto
 
PDF
Pemrograman web dengan php my sql
anarkonam
 
PDF
Pemrograman Web with PHP MySQL
djokotingkir999
 
PDF
BOOK-web-programming.pdf
Anandaindrasetiawan1
 
DOC
Aplikasi Jaringan Pendukung Sistem Infrmasi Berbasis Website Sma Arinda Palem...
JpPhone
 
PDF
Menyelam dan menaklukan samudra php
Albertz Ace-Red
 
PDF
Ebook php menyelam dan menaklukan samudra php
Media Cyber
 
PDF
Ebook PHP - menyelam dan menaklukan samudra php
Puguh Nugroho
 
PDF
Modul training-php-rc1-u3
plusasy
 
PDF
Modul training-php-rc1-u3
Jamil Jamil
 
PDF
Laporan
nindilani
 
PDF
2015-09. deka bagus - pemrograman web joomla
Syiroy Uddin
 
PDF
Ci indonesia
kaniadona
 
PDF
Ci indonesia
kaniadona
 
PDF
Ci 1
dedidarwis
 
PPTX
Tugas 6 0317 - imelda felicia - 1412510545
imeldafelicia
 
Pemrograman web dengan_php_my_sql
Fahmi Nugraha
 
Pemrograman web dengan_php_my_sql
Yayan Adrianova Eka Tuah,S.Kom
 
Pemrograman web dengan php my sql sholichin-fix
Fajar Baskoro
 
Pemrograman web dengan_php_my_sql
Ajhy_Gaskinz
 
Pemrograman web dengan php my sql
Herry Mardiyanto
 
Pemrograman web dengan php my sql
anarkonam
 
Pemrograman Web with PHP MySQL
djokotingkir999
 
BOOK-web-programming.pdf
Anandaindrasetiawan1
 
Aplikasi Jaringan Pendukung Sistem Infrmasi Berbasis Website Sma Arinda Palem...
JpPhone
 
Menyelam dan menaklukan samudra php
Albertz Ace-Red
 
Ebook php menyelam dan menaklukan samudra php
Media Cyber
 
Ebook PHP - menyelam dan menaklukan samudra php
Puguh Nugroho
 
Modul training-php-rc1-u3
plusasy
 
Modul training-php-rc1-u3
Jamil Jamil
 
Laporan
nindilani
 
2015-09. deka bagus - pemrograman web joomla
Syiroy Uddin
 
Ci indonesia
kaniadona
 
Ci indonesia
kaniadona
 
Tugas 6 0317 - imelda felicia - 1412510545
imeldafelicia
 
Ad

Recently uploaded (20)

PDF
MODUL PEMBELAJARAN DEEP LEARNING SENI RUPA KELAS 6 CP 032 REVISI 2025 KURIKUL...
AndiCoc
 
PDF
bahan ajar berbasis web : unsur kalsium.pdf
iraw72694
 
PDF
Modul Ajar B Indonesia Kelas 5 Deep Learning
Adm Guru
 
PPTX
Definisi Sastra - Pengantar Sastra | Konsep Esensial Kesusastraan
IKIP Siliwangi
 
PDF
MODUL PEMBELAJARAN DEEP LEARNING PENDIDIKAN PANCASILA KELAS 6 CP 032 REVISI 2...
AndiCoc
 
PDF
Modul Ajar Matematika Kelas 10 Deep Learning
Adm Guru
 
PDF
Berkenalan Dengan Energi Materi IPAS Kelas III Semester Ganjil.pdf
z9ydinna
 
PPTX
Teknik Cost Reduction Biaya Manufaktur (Cost of Goods Manufactured)_Training ...
Kanaidi ken
 
PDF
Modul Ajar PAI Kelas 8 Deep Learning New
Adm Guru
 
PDF
Modul Ajar PJOK Kelas 9 Deep Learning pdf
Adm Guru
 
PDF
Materi Seminar AITalks: AI dan Roh Kudus
SABDA
 
PDF
Modul Ajar Pendidikan Pancasila Kelas 8 Deep Learning
Adm Guru
 
PPTX
PPT PROPOSAL PjBL - KEL 2 Kewarganegaraan.pptx
HelenaManurung
 
PDF
Materi 3 : Strategi Penyediaan Buku BOSP
NoorAfifah12
 
PDF
Modul Ajar Informatika Kelas 7 Deep Learning
Adm Guru
 
PDF
Materi : MekanismePelatihanKoding_KA.pdf
NoorAfifah12
 
PDF
Modul Ajar Ekonomi Kelas 10 Deep Learning
Adm Guru
 
PPTX
Asset Selection and Criticality_Training *ASSET INTEGRITY MANAGEMENT (AiM).pptx
Kanaidi ken
 
PPTX
inkuiri kolaboratif pengertian menyeluruh
andigunawan781
 
PDF
Modul Ajar Matematika Kelas 8 Deep Learning
Tribuana Edu
 
MODUL PEMBELAJARAN DEEP LEARNING SENI RUPA KELAS 6 CP 032 REVISI 2025 KURIKUL...
AndiCoc
 
bahan ajar berbasis web : unsur kalsium.pdf
iraw72694
 
Modul Ajar B Indonesia Kelas 5 Deep Learning
Adm Guru
 
Definisi Sastra - Pengantar Sastra | Konsep Esensial Kesusastraan
IKIP Siliwangi
 
MODUL PEMBELAJARAN DEEP LEARNING PENDIDIKAN PANCASILA KELAS 6 CP 032 REVISI 2...
AndiCoc
 
Modul Ajar Matematika Kelas 10 Deep Learning
Adm Guru
 
Berkenalan Dengan Energi Materi IPAS Kelas III Semester Ganjil.pdf
z9ydinna
 
Teknik Cost Reduction Biaya Manufaktur (Cost of Goods Manufactured)_Training ...
Kanaidi ken
 
Modul Ajar PAI Kelas 8 Deep Learning New
Adm Guru
 
Modul Ajar PJOK Kelas 9 Deep Learning pdf
Adm Guru
 
Materi Seminar AITalks: AI dan Roh Kudus
SABDA
 
Modul Ajar Pendidikan Pancasila Kelas 8 Deep Learning
Adm Guru
 
PPT PROPOSAL PjBL - KEL 2 Kewarganegaraan.pptx
HelenaManurung
 
Materi 3 : Strategi Penyediaan Buku BOSP
NoorAfifah12
 
Modul Ajar Informatika Kelas 7 Deep Learning
Adm Guru
 
Materi : MekanismePelatihanKoding_KA.pdf
NoorAfifah12
 
Modul Ajar Ekonomi Kelas 10 Deep Learning
Adm Guru
 
Asset Selection and Criticality_Training *ASSET INTEGRITY MANAGEMENT (AiM).pptx
Kanaidi ken
 
inkuiri kolaboratif pengertian menyeluruh
andigunawan781
 
Modul Ajar Matematika Kelas 8 Deep Learning
Tribuana Edu
 
Ad

Pemrograman web dengan php my sql

  • 1. Pemrograman Web dengan PHP dan MySQL v1.0 Pemrograman Web dengan PHP dan MySQL Achmad Solichin, S.Kom Buku ini disusun berdasarkan materi perkuliahan Pemrograman Web sesuai dengan kurikulum standar di perguruan tinggi komputer. Di dalam buku ini tidak terlalu dibahas mengenai teori dan algoritma pemrograman, namun banyak berisi contoh‐contoh program yang dapat dipraktekkan secara langsung serta disertai dengan penjelasannya. Dengan demikian, buku ini sangat cocok bagi Anda yang baru belajar pemrograman web dan haus akan contoh‐contoh program. Buku ini juga sesuai dijadikan sebagai referensi penyusunan praktikum perkuliahan bagi mahasiswa maupun siswa. Achmad Solichin ([email protected]) Achmad Solichin, S.Kom Universitas Budi Luhur, Jakarta http://achmatim.net – [email protected] 1
  • 2. Pemrograman Web dengan PHP dan MySQL …ku persembahkan untuk Indonesia tanah air tercinta, dan untuk Chotimatul Musyarofah istri tersayang serta Muhammad Lintang putra tercinta kami… Achmad Solichin ([email protected]) 2
  • 3. Pemrograman Web dengan PHP dan MySQL Lisensi Dokumen Seluruh isi dalam dokumen ini dapat digunakan, dimodifikasi dan disebarluaskan secara bebas untuk tujuan pendidikan, pembelajaran dan bukan komersial (non profit), dengan syarat tidak menghilangkan, menghapus atau mengubah atribut penulis dokumen ini dan pernyataan dalam lisensi dokumen yang disertakan di setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang atau mengkomersialkan buku ini kecuali mendapatkan ijin terlebih dahulu dari penulis. Achmad Solichin ([email protected]) 3
  • 4. Pemrograman Web dengan PHP dan MySQL Kata Pengantar Internet merupakan salah satu fenomena paling berpengaruh dalam beberapa dekade terakhir ini, baik bagi perkembangan teknologi itu sendiri maupun bagi perkembangan disiplin ilmu lain, seperti ekonomi, politik, sosial dan budaya. Perkembangan internet juga berpengaruh langsung terhadap perkembangan situs web. Di awal kemunculannya, internet maupun situs web belum begitu populer karena layanannya yang masih terbatas. Namun lihatlah saat ini, situs web sudah demikian populer dan layanannya pun beragam, mulai dari situs berita seperti Detik dan Okezone, situs penyedia email seperti Yahoo dan Gmail, sampai situs pertemanan (social networking) seperti Friendster dan Facebook. Dalam kaitannya dengan situs web dan layanan di dalamnya tidak lepas dari teknologi di baliknya, yaitu pemrograman web, desain web dan database. Salah satu bahasa pemrograman yang banyak digunakan untuk membangun suatu situs web adalah PHP (http://www.php.net). Penggunaannya saat ini bahkan sudah mencapai 25 juta situs web. Sedangkan dari sisi database, penggunaan MySQL (http://www.mysql.com) masih juga mendominasi dalam aplikasi berbasis web. Melalui buku ini, penulis berusaha mengenalkan dasar‐dasar dari PHP dan MySQL untuk membangun suatu situs web. Buku ini sebagian besar menyajikan berbagai contoh program yang disusun secara terstruktur dari yang mudah sampai yang cukup kompleks. Dengan adanya contoh‐contoh program tersebut, diharapkan pembaca dapat mempraktekkannya secara langsung (learning by doing) dan dapat menyimpulkan sendiri maksud dari setiap perintah dalam program dengan cara melihat hasil yang ditampilkan di layar (browser). Di akhir buku ini, disajikan contoh yang lebih nyata, yaitu aplikasi situs berita sederhana yang dapat dikembangkan lebih lanjut. Buku ini cocok bagi pembaca yang baru mulai belajar PHP dan MySQL secara mandiri karena contoh‐contoh dalam buku ini disajikan sesederhana mungkin. Buku ini juga cocok digunakan sebagai panduan praktikum pemrograman web di perguruan tinggi, sekolah maupun kursus‐kursus. Akhirnya penulis berharap agar buku ini bermanfaat bagi perkembangan ilmu dan pengetahuan di Indonesia, khususnya dalam hal pemrograman web dan internet. Saran dan kritik untuk perbaikan buku ini sangat penulis harapkan. Saran, kritik dan masukan mengenai buku ini dapat disampaikan melalui email ke penulis di [email protected] atau melalui situs penulis di http://achmatim.net. Penulis Achmad Solichin Achmad Solichin ([email protected]) 4
  • 5. Pemrograman Web dengan PHP dan MySQL Daftar Isi I. Pengenalan Web Server dan Server Side Scripting ...............................7 1. 2. Server Side Scripting ................................................................................................... 8 3. II. Web Server .................................................................................................................. 7 Test Instalasi XAMPP di Browser............................................................................... 13 Struktur Dasar PHP ............................................................................. 14 1. 2. Mari Mengenal PHP .................................................................................................. 14 3. Say Hello to PHP ........................................................................................................ 15 4. Variabel ..................................................................................................................... 15 5. Tipe Data ................................................................................................................... 16 6. Konstanta .................................................................................................................. 17 7. Operator dalam PHP ................................................................................................. 17 8. III. Sebelum Belajar PHP ................................................................................................. 14 Komentar Program .................................................................................................... 19 Struktur Kondisi dan Perulangan ........................................................ 21 1. 2. Struktur Perulangan .................................................................................................. 25 3. IV. Struktur Kondisi......................................................................................................... 21 Struktur Break dan Continue .................................................................................... 29 Penanganan Form ............................................................................... 30 1. 2. Form Input Type TEXT dan PASSWORD .................................................................... 33 3. Form Input Type RADIO ............................................................................................ 36 4. Form Input Type CHECK BOX .................................................................................... 38 5. Form Input Type COMBO BOX .................................................................................. 39 6. V. Berbagai Cara Penanganan Form .............................................................................. 30 Form Input Type TEXTAREA ...................................................................................... 41 Array dan Fungsi ................................................................................. 43 1. 2. Fungsi‐fungsi Array dalam PHP ................................................................................. 47 3. VI. Pengantar Array ........................................................................................................ 43 Fungsi dalam PHP ...................................................................................................... 50 Penanganan String dan Tanggal ......................................................... 52 1. 2. Fungsi‐fungsi String dalam PHP ................................................................................ 53 3. VII. Pengantar String........................................................................................................ 52 Fungsi‐fungsi Operasi Tanggal dalam PHP ................................................................ 60 File dan Direktori ................................................................................ 62 1. Penanganan File ........................................................................................................ 62 Achmad Solichin ([email protected]) 5
  • 6. Pemrograman Web dengan PHP dan MySQL 2. 3. Manipulasi File .......................................................................................................... 68 4. VIII. Membuat dan Menghapus Direktori ........................................................................ 66 Upload File ................................................................................................................ 69 Session dan Cookies ............................................................................ 72 1. 2. IX. Session....................................................................................................................... 72 Cookies ...................................................................................................................... 75 Pemrograman Berorientasi Objek dalam PHP ................................... 77 1. 2. Object dan Class ........................................................................................................ 77 3. Properties dan Method ............................................................................................. 78 4. Mendefinisikan Class................................................................................................. 78 5. X. Pengantar Pemrograman Berorientasi Objek ........................................................... 77 Memanfaatkan Class yang Tersedia.......................................................................... 82 Pengenalan DBMS dan MySQL ........................................................... 84 1. 2. Tentang MySQL ......................................................................................................... 85 3. Instalasi MySQL di Windows ..................................................................................... 85 4. Koneksi ke Server MySQL dengan MySQL Client ...................................................... 95 5. XI. Tentang Database, DBMS dan RDBMS...................................................................... 84 Berbagai MySQL Client untuk Administrasi Server MySQL ....................................... 96 Pengenalan Structured Query Language ............................................ 99 1. 2. Membuat, Mengubah dan Menghapus Table ........................................................ 101 3. Menambah Record dengan INSERT ........................................................................ 105 4. Mengedit Record dengan UPDATE ......................................................................... 106 5. XII. Apa Itu SQL ? ............................................................................................................. 99 Menghapus Record dengan DELETE ....................................................................... 107 Aplikasi Berita dengan PHP dan MySQL ........................................... 113 1. Merancang Struktur Database ................................................................................ 113 2. Membuat File Koneksi Database............................................................................. 114 3. Membuat Halaman Input Berita ............................................................................. 114 4. Menampilkan Berita Terbaru di Halaman Depan ................................................... 115 5. Membuat Halaman Arsip Berita ............................................................................. 117 6. Membuat Halaman Edit Berita ............................................................................... 118 7. Membuat Halaman Delete Berita ........................................................................... 120 8. CSS sebagai Pemanis Tampilan ............................................................................... 120 Achmad Solichin ([email protected]) 6
  • 7. Pemrograman Web dengan PHP dan MySQL Bab 1 Pengenalan Web Server dan Server Side Scripting Pengenalan Web Server Instalasi dan Konfigurasi Web Server Instalasi dan Konfigurasi PHP Testing Web Server dan PHP 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. R Web Documents Gambar 1.1. Standar Web Architecture Gambar 1.2. Dynamic Web Architecture Beberapa Web Sever yang banyak digunakan di internet antara lain : 1. Apache Web Server (http://www.apache.org) 2. Internet Information Service, IIS (http://www.microsoft.com/iis) Achmad Solichin ([email protected]) 7
  • 8. Pemrograman Web dengan PHP dan MySQL 3. Xitami Web Server (http://www.xitami.com) 4. Sun Java System Web Server (http://www.sun.com/software/products/web_srvr/home_web_srvr.xml) 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) : 5. ASP (Active Server Page) dan ASP.NET 6. ColdFusion (http://www.macromedia.com/software/coldfusion) 7. Java Server Pages (http://java.sun.com/products/jsp/) 8. Perl (http://www.perl.org) 9. Phyton (http://www.python.org) 10. PHP (http://www.php.net) Keistimewaan PHP Cepat Free Mudah dipelajari Multi-platform Dukungan technical-support Banyaknya komunitas PHP Aman 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 jangan berkecil hati, 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. 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. Penulis sendiri menyarankan pemakaian XAMPP atau WAMP Server karena versi software di dalamnya menggunakan versi terbaru. Persiapan Instalasi 1. Pastikan komputer Anda belum terinstall web server lain seperti IIS atau PWS karena dapat menyebabkan bentrok dengan web server Apache. Namun demikian, jika Anda masih tetap mempertahankan program tersebut, setelah instalasi selesai Anda dapat mengkonfigurasikan Apache secara manual dengan mengganti nomor port yang digunakan. Achmad Solichin ([email protected]) 8
  • 9. Pemrograman Web dengan PHP dan MySQL 2. Download Source XAMPP versi stabil terbaru di http://apachefriends.org. Pilih versi sesuai dengan sistem operasi yang Anda gunakan (tersedia versi untuk Windows, Linux dan Mac). 3. Pastikan komputer yang Anda gunakan berjalan dengan baik dengan kapasitas memori dan hardisk yang masih mencukupi. Proses Instalasi XAMPP 1. Jalankan file installer XAMPP xampp-win32-x.x.x-installer.exe. Gambar 1.1. File installer XAMPP 2. Akan ditampilkan window instalasi XAMPP. Pilih Next > untuk memulai proses instalasi. Gambar 1.2. Window Instalasi XAMPP Achmad Solichin ([email protected]) 9
  • 10. Pemro ograman Web dengan PHP dan MySQL L 3. A Akan ditampilkan windo lokasi tuj ow juan instalasi (destinat tion folder), tentukan lo okasi (folde er) dimana XAMPP a a akan diinst tall dengan menekan tombol n n Browse.. . Pilih tombol Next > unt B P tuk melanju utkan proses instalasi. s Gambar 1.3. Folder tujuan in nstalasi XAM MPP mpilkan wind dow pilihan untuk kem n mudahan m mengakses 4. Selanjutnya akan ditam XAMPP nantinya. Tekan tombol Ins X stall untuk m melanjutkan proses ins n stalasi. Ga ambar 1.4. W Window pilih han XAMPP
  • 11. Pemrograman Web dengan PHP dan MySQL 5. Proses instalasi dimulai. Gambar 1.5. Proses instalasi dimulai 6. Proses instalasi selesai. Klik Finish untuk menutup proses instalasi. Gambar 1.6. Proses instalasi selesai Achmad Solichin ([email protected]) 11
  • 12. Pemrograman Web dengan PHP dan MySQL 7. Jika proses instalasi berjalan dengan lancar makan akan ditampilkan window konfirmasi. Gambar 1.7. Konfirmasi Instalasi Berhasil 8. Kita dapat mengatur XAMPP dengan mengakses XAMPP Control Panel yang dapat diakses melalui menu di Program Files atau icon di taskbar. Gambar 1.8. XAMPP Control Panel Achmad Solichin ([email protected]) 12
  • 13. Pemrograman Web dengan PHP dan MySQL Test Instalasi XAMPP di Browser Untuk memastikan bahwa XAMPP beserta PHP, Apache dan MySQL berjalan dengan baik, bukalah browser dan ketikkan URL sebagai berikut: http://localhost Jika semua sudah berjalan dengan baik, maka akan ditampilkan gambar sebagai berikut: Gambar 1.9. Tampilan XAMPP di Browser Pilih bahasa yang ingin digunakan dan akan ditampilkan halaman utama XAMPP sebagai berikut: Gambar 1.9. Tampilan XAMPP di Browser Achmad Solichin ([email protected]) 13
  • 14. Pemrograman Web dengan PHP dan MySQL Bab 2 Struktur Dasar PHP Sebelum Belajar PHP Mari Mengenal PHP Say Hello to PHP Variabel Tipe Data Konstanta Operator dalam PHP Komentar Program Sebelum Belajar PHP 1. Saya asumsikan Anda telah mengenal dengan cukup baik komputer Anda, dan juga bisa mengoperasikannya. Jadi Anda seharusnya sudah mengerti perbedaan file dan direktori, bagaimana menyimpan file atau document, bagaimana meng-copy file, dan seterusnya. 2. Saya asumsikan Anda telah mengerti bagaimana membuka dan menggunakan salah satu atau salah semua dari editor seperti Notepad, EditPlus, Crimson Editor, Dreamweaver, atau yang lainnya. Saya asumsikan juga, Anda telah mengerti bagaimana membuat, mengedit, dan menyimpan suatu file dengan editor tersebut. 3. Saya asumsikan bahwa Apache, PHP, dan MySQL di komputer yang Anda pakai sudah berjalan sebagaimana mestinya. 4. Saya asumsikan Anda telah mengerti bagaimana cara menggunakan Web Browser (IE, Mozilla, Opera, dsb) 5. Saya asumsikan Anda telah mengenal dan mengerti dengan cukup baik tentang tag-tag HTML dan juga bagaimana menggunakannya. Anda tentu sudah mengambil matakuliah Pemrograman Web 1 atau Internet kan ? 6. Saya asumsikan bahwa penglihatan Anda masih normal sehingga bisa membedakan antara : Tulisan nama, Nama dan NAMA Koma (,), titik-koma (;) dan titik-dua (:) Kutip-tunggal (‘) dan kutip-ganda (“) Tulisan namamhs, nama_mhs dan nama mhs 7. Saya asumsikan Anda pernah menggunakan www.google.com Mari Mengenal PHP Tahukah Anda, PHP itu..... 1. Merupakan singkatan recursive dari PHP : Hypertext Prepocessor 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 Achmad Solichin ([email protected]) 14
  • 15. Pemrograman Web dengan PHP dan MySQL hitungLuas() ≠ HitungLuas() echo = ECHO while = WHILE 6. Mudah dipelajari. Say Hello to PHP 1. Ketikkan perintah di bawah ini di editor : Program 2.1 Nama File : hello.php Deskripsi : Program sederhana menampilkan sebuah string di layar. 1 2 3 <?php echo "Hello, Nama saya PHP "; ?> 2. Simpan dengan nama “hello.php” di document-root komputer Anda. 3. Buka browser dan ketikkan alamat http://localhost/hello.php 4. Lihat hasilnya di browser. Akan terlihat tampilan seperti pada gambar 2.1 Gambar 2.1. Tampilan Program 2.1 Variabel Digunakan untuk menyimpan sebuah value, data atau informasi Nama variabel diawali dengan tanda $ Panjang tidak terbatas Setelah tanda $ diawali oleh huruf atau under-scrore (_). 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. Achmad Solichin ([email protected]) 15
  • 16. Pemrograman Web dengan PHP dan MySQL 1 2 3 4 5 6 7 <?php $nim = "0411500400"; $nama = 'Chotimatul Musyarofah'; echo "NIM : " . $nim . "<br>"; echo "Nama : $nama"; ?> Gambar 2.2. Tampilan Program 2.2 Tipe Data Pada PHP, tipe data variabel tidak didefinisikan oleh programmer, akan tetapi secara otomatis ditentukan oleh intepreter PHP. Namun demikian, PHP mendukung 8 (delapan) buah tipe data primitif, yaitu : 1. boolean 2. integer 3. float 4. string 5. array 6. object 7. resource 8. NULL Program 2.3 Nama File : tipe.php Deskripsi : Program contoh penanganan beberapa tipe data dasar dalam PHP. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <?php $nim = "0411500400"; $nama = 'Chotimatul Musyarofah'; $umur = 23; $nilai = 82.25; $status = TRUE; echo "NIM : " . $nim . "<br>"; echo "Nama : $nama<br>"; print "Umur : " . $umur; print "<br>"; printf ("Nilai : %.3f<br>", $nilai); if ($status) echo "Status : Aktif"; else echo "Status : Tidak Aktif"; ?> Achmad Solichin ([email protected]) 16
  • 17. Pemrograman Web dengan PHP dan MySQL Gambar 2.3. Tampilan Program 2.3 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 2 3 4 5 6 7 8 <? define ("NAMA", "Achmad Solichin"); define ("NILAI", 90); //NAMA = "Muhammad"; //akan menyebabkan error echo "Nama : " . NAMA; echo "<br>Nilai : " . NILAI; ?> Gambar 2.4. Tampilan Program 2.4 Operator dalam PHP Jenis Operator Aritmatika Operator + * / % Contoh $a + $b $a - $b $a * $b $a / $b $a % $b Achmad Solichin ([email protected]) Keterangan Pertambahan Pengurangan Perkalian Pembagian Modulus, sisa pembagian 17
  • 18. Pemrograman Web dengan PHP dan MySQL Penugasan Bitwise = & | ^ ~ << >> $a = 4; $a diisi dengan 4 $a & $b $a | $b $a ^ $b ~$b $a << $b $a >> $b Bitwise AND Bitwise OR Bitwise XOR Bitwise NOT Shift Left Shift Right Perbandingan == === != <> !== < > <= >= $a $a $a $a $a $a $a $a $a == $b === $b != $b <> $b !== $b < $b > $b <= $b >= $b Sama dengan Identik Tidak sama dengan Tidak sama dengan Tidak identik Kurang dari Lebih dari Kurang dari sama dengan Lebih dari sama dengan Logika and && or || xor $a $a $a $a $a and $b && $b or $b || $b xor $b ! !$a TRUE jika $a dan $b TRUE TRUE jika $a dan $b TRUE TRUE jika $a atau $b TRUE TRUE jika $a dan/atau $b TRUE TRUE jika $a atau $b TRUE, tapi tidak keduanya TRUE jika $a FALSE . $a . $b Penggabungan string $a dan $b String Program 2.5 Nama File : operator.php Deskripsi : Program beberapa Operator aritmatika dalam PHP. 1 2 3 4 5 6 7 8 <? $gaji = 1000000; $pajak = 0.1; $thp = $gaji - ($gaji*$pajak); echo "Gaji sebelum pajak = Rp. $gaji <br>"; echo "Gaji yang dibawa pulang = Rp. $thp"; ?> Gambar 2.5. Tampilan Program 2.5 Achmad Solichin ([email protected]) 18
  • 19. Pemrograman Web dengan PHP dan MySQL Program 2.6 Nama File : operator2.php Deskripsi : Program operator logika dan perbandingan dalam PHP. 1 2 3 4 5 6 7 8 9 10 11 <? $a = 5; $b = 4; echo echo echo echo echo echo ?> "$a == $b : ". ($a == $b); "<br>$a != $b : ". ($a != $b); "<br>$a > $b : ". ($a > $b); "<br>$a < $b : ". ($a < $b); "<br>($a == $b) && ($a > $b) : ".(($a != $b) && ($a > $b)); "<br>($a == $b) || ($a > $b) : ".(($a != $b) || ($a > $b)); Gambar 2.6. Tampilan Program 2.6 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 2 3 4 5 6 7 8 9 10 <? /* Ini komentar tidak akan tercetak di layar yang ini juga komentar */ // Nah kalo ini komentar satu baris # Terus kalo ini juga komentar echo "Ini akan tercetak di layar"; ?> Achmad Solichin ([email protected]) 19
  • 20. Pemrograman Web dengan PHP dan MySQL Gambar 2.7. Tampilan Program 2.7 Achmad Solichin ([email protected]) 20
  • 21. Pemrograman Web dengan PHP dan MySQL Bab 3 Struktur Kondisi dan Perulangan Struktur Kondisi + Struktur Kondisi If + Struktur Kondisi If...Else + Struktur Kondisi Khusus ? : + Struktur Kondisi Switch...Case Struktur Perulangan + Struktur Kondisi For + Struktur Kondisi While + Struktur Kondisi Do...While + Struktur Kondisi Foreach Struktur Break dan Continue Struktur Kondisi Struktur Kondisi If if (kondisi) { statement-jika-kondisi-true; } Keterangan : kondisi merupakan statemen atau variabel yang akan diperiksa TRUE atau FALSE-nya. 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. 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 Struktur Kondisi Switch ... Case switch ($var) { case '1' : statement-1; break; case '2' : statement-2; break; .... } Achmad Solichin ([email protected]) 21
  • 22. Pemrograman Web dengan PHP dan MySQL 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 2 3 4 5 6 <?php $nilai = 80; if ($nilai >= 60) { echo "Nilai Anda $nilai, Anda LULUS"; } ?> 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. Gambar 3.1. Tampilan Program 3.1 Program 3.2 Nama File : if_else.php Deskripsi : Program Struktur Kondisi If..Else. 1 2 3 4 5 6 7 8 <?php $nilai = 50; if ($nilai >= 60) { echo "Nilai Anda $nilai, Anda LULUS"; } else { echo "Nilai Anda $nilai, Anda GAGAL"; } ?> 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. Achmad Solichin ([email protected]) 22
  • 23. Pemrograman Web dengan PHP dan MySQL Gambar 3.2. Tampilan Program 3.2 Program 3.3 Nama File : if_else2.php Deskripsi : Program Memeriksa username dan password dengan If..Else. 1 2 3 4 5 6 7 8 9 <?php $user = "achmatim"; $pass = "123" if ($user == "achmatim" && $pass == "123") { echo "Login Berhasil"; } else { echo "Login Gagal"; } ?> 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. Gambar 3.3. Tampilan Program 3.3 Program 3.4 Nama File : if_var.php Deskripsi : Program Memeriksa suatu variabel ada atau tidak. 1 2 3 4 5 6 7 8 <?php $user=""; if (!isset($user)) { echo "Variabel tidak ada/belum terbentuk"; } else { echo "Variabel ada"; } ?> Achmad Solichin ([email protected]) 23
  • 24. Pemrograman Web dengan PHP dan MySQL 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 diremark atau dihilangkan maka statement pada baris ke-4 yang akan dijalankan. Gambar 3.4. Tampilan Program 3.4 Program 3.5 Nama File : switch.php Deskripsi : Program Struktur Switch..Case untuk menampilkan nama hari dalam bahasa Indonesia. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php $day = date ("D"); switch ($day) { case 'Sun' : $hari = "Minggu"; break; case 'Mon' : $hari = "Senin"; break; case 'Tue' : $hari = "Selasa"; break; case 'Wed' : $hari = "Rabu"; break; case 'Thu' : $hari = "Kamis"; break; case 'Fri' : $hari = "Jum'at"; break; case 'Sat' : $hari = "Sabtu"; break; default : $hari = "Kiamat"; } 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 diperlajari 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. Gambar 3.5. Tampilan Program 3.5 Achmad Solichin ([email protected]) 24
  • 25. Pemrograman Web dengan PHP dan MySQL Program 3.6 Nama File : if_khusus.php Deskripsi : Program Struktur Kondisi Khusus ? untuk memeriksa tahun kabisat. 1 2 3 4 5 <?php $tahun = date ("Y"); $kabisat = ($tahun%4 == 0) ? "KABISAT" : "BUKAN KABISAT"; echo "Tahun <b>$tahun</b> $kabisat"; ?> 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” Gambar 3.6. Tampilan Program 3.6 Struktur Perulangan 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. 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. Achmad Solichin ([email protected]) 25
  • 26. Pemrograman Web dengan PHP dan MySQL 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. 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 <?php /* contoh 1 */ for ($i = 1; $i <= 10; $i++) { echo "$i "; } echo "<br><br>"; /* contoh 2 */ for ($i = 1; ; $i++) { if ($i > 10) { break; } echo "$i "; } echo "<br><br>"; /* contoh 3 */ $i = 1; for (; ; ) { if ($i > 10) { break; } echo "$i "; $i++; } echo "<br><br>"; /* contoh 4 */ for ($i = 1; $i <= 10; print "$i ", $i++); ?> Achmad Solichin ([email protected]) 26
  • 27. Pemrograman Web dengan PHP dan MySQL 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). Gambar 3.7. Tampilan Program 3.7 Program 3.8 Nama File : while.php Deskripsi : Program Struktur Perulangan While dan beberapa variasinya. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <?php /* contoh 1 */ $i = 1; while ($i <= 10) { echo $i++; } echo "<br><br>"; /* contoh 2 */ $i = 1; while ($i <= 10): echo "$i"; $i++; endwhile; echo "<br><br>"; /* contoh 3 */ $i = 1; while ($i <= 6) { echo "<h$i>Heading $i</h$i>"; $i++; } ?> 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> Achmad Solichin ([email protected]) 27
  • 28. Pemrograman Web dengan PHP dan MySQL Gambar 3.8. Tampilan Program 3.8 Program 3.9 Nama File : dowhile.php Deskripsi : Program Struktur Perulangan dengan Do...While. 1 2 3 4 5 6 7 8 9 <?php $i = 1; do { echo "$i "; $i+=2; } while ($i <= 20); ?> 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 bawah. Gambar 3.9. Tampilan Program 3.9 Achmad Solichin ([email protected]) 28
  • 29. Pemrograman Web dengan PHP dan MySQL Struktur Break dan Continue Program 3.10 Nama File : break.php Deskripsi : Program Struktur Break dan Continue. 1 2 3 4 5 6 7 8 9 10 11 <?php for ($i=1; $i<10; $i++) { if ($i == 5) continue; if ($i == 8) break; echo "$i "; } ?> 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) Gambar 3.10. Tampilan Program 3.10 Achmad Solichin ([email protected]) 29
  • 30. Pemrograman Web dengan PHP dan MySQL Bab 4 Penanganan Form Berbagai Cara Penanganan Form Form Input Type TEXT dan PASSWORD Form Input Type RADIO Form Input Type CHECKBOX Form Input Type COMBO BOX Form Input Type TEXTAREA 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. Untuk merancang sebuah form inputan, setidaknya ada 3 (tiga) hal penting, yi : 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. Berbagai Cara Penanganan Form 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <html> <head><title>Pengolahan Form</title></head> <body> <FORM ACTION="" METHOD="POST" NAME="input"> Nama Anda : <input type="text" name="nama"><br> <input type="submit" name="Input" value="Input"> </FORM> </body> </html> <?php if (isset($_POST['Input'])) { $nama = $_POST['nama']; echo "Nama Anda : <b>$nama</b>"; } ?> Achmad Solichin ([email protected]) 30
  • 31. Pemrograman Web dengan PHP dan MySQL 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. Gambar 4.1. Tampilan Program 4.1 Cara 2 : Memisahkkan 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 2 3 4 5 6 7 8 9 <html> <head><title>Pengolahan Form</title></head> <body> <FORM ACTION="proses02.php" METHOD="POST" NAME="input"> Nama Anda : <input type="text" name="nama"><br> <input type="submit" name="Input" value="Input"> </FORM> </body> </html> Achmad Solichin ([email protected]) 31
  • 32. Pemrograman Web dengan PHP dan MySQL Program 4.3 Nama File : proses02.php Deskripsi : Program penanganan form inputan untuk Program 4.2. 1 2 3 4 5 6 <?php if (isset($_POST['Input'])) { $nama = $_POST['nama']; echo "Nama Anda : <b>$nama</b>"; } ?> Gambar 4.2. Tampilan Program 4.2 Gambar 4.3. Tampilan Program 4.3 Program 4.4 Nama File : input03.php Deskripsi : Program menampilkan form inputan dengan method GET 1 2 3 4 5 6 7 8 9 <html> <head><title>Pengolahan Form</title></head> <body> <FORM ACTION="proses03.php" METHOD="GET" NAME="input"> Nama Anda : <input type="text" name="nama"><br> <input type="submit" name="Input" value="Input"> </FORM> </body> </html> Achmad Solichin ([email protected]) 32
  • 33. Pemrograman Web dengan PHP dan MySQL Program 4.5 Nama File : proses03.php Deskripsi : Program penanganan form inputan untuk Program 4.4. 1 2 3 4 5 6 <?php if (isset($_GET['Input'])) { $nama = $_GET['nama']; echo "Nama Anda : <b>$nama</b>"; } ?> Gambar 4.4. Tampilan Program 4.4 Gambar 4.5. Tampilan Program 4.5 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, penangan 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 ! Form Input Type TEXT dan PASSWORD Program 4.6 Nama File : input04.php Deskripsi : Program menampilkan form inputan text dalam jumlah banyak. 1 2 <html> <head><title>Pengolahan Form ~ Text</title></head> Achmad Solichin ([email protected]) 33
  • 34. Pemrograman Web dengan PHP dan MySQL 3 4 5 6 7 8 9 10 11 12 13 <body> <FORM ACTION="proses04.php" METHOD="POST" NAME="input"> Sahabat-sahabat Dekatku<br> <input type="text" name="nama1"><br> <input type="text" name="nama2"><br> <input type="text" name="nama3"><br> <input type="text" name="nama4"><br> <input type="submit" name="Input" value="Input"> </FORM> </body> </html> Program 4.7 Nama File : proses04.php Deskripsi : Program penanganan form inputan untuk Program 4.6. 1 2 3 4 5 6 7 8 9 10 11 12 13 <?php if (isset($_POST['Input'])) { $nama1 = $_POST['nama1']; $nama2 = $_POST['nama2']; $nama3 = $_POST['nama3']; $nama4 = $_POST['nama4']; echo "<b>Nama Sahabat-sahabat Dekatku :</b> <br>"; echo $nama1. "<br>"; echo $nama2. "<br>"; echo $nama3. "<br>"; echo $nama4. "<br>"; } ?> Penjelasan Program 4.6 dan 4.7 Baris 3-6 program 4.7 merupakan proses pengambilan nilai dari masingmasing form inputan text yang terdapat pada program 4.6. Selanjutnya variabel ini ditampilkan di layar (baris 8-11, program 4.7). Gambar 4.6. Tampilan Program 4.6 Achmad Solichin ([email protected]) 34
  • 35. Pemrograman Web dengan PHP dan MySQL Gambar 4.7. Tampilan Program 4.7 Program 4.8 Nama File : input05.php Deskripsi : Program menampilkan form login (inputan text dan password). 1 2 3 4 5 6 7 8 9 10 11 12 <html> <head><title>Login Here</title></head> <body> <FORM ACTION="proses05.php" METHOD="POST" NAME="input"> <h2>Login Here...</h2> Username : <input type="text" name="username"><br> Password : <input type="password" name="password"><br> <input type="submit" name="Login" value="Login"> <input type="reset" name="reset" value="Reset"> </FORM> </body> </html> Program 4.9 Nama File : proses05.php Deskripsi : Program sederhana untuk memeriksa inputan username dan password pada program 4.8 1 2 3 4 5 6 7 8 9 10 11 <?php if (isset($_POST['Login'])) { $user = $_POST['username']; $pass = $_POST['password']; if ($user == "achmatim" && $pass == "123") { echo "<h2>Login Berhasil</h2>"; } else { echo "<h2>Login Gagal</h2>"; } } ?> 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). Achmad Solichin ([email protected]) 35
  • 36. Pemrograman Web dengan PHP dan MySQL Gambar 4.8. Tampilan Program 4.8 Gambar 4.9. Tampilan Program 4.9 Jika Login Berhasil Gambar 4.10. Tampilan Program 4.9 Jika Login Gagal 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 2 3 4 5 <html> <head><title>Pilih Jurusan</title></head> <body> <FORM ACTION="proses06.php" METHOD="POST" NAME="input"> <h2>Pilih Jurusan Anda :</h2> Achmad Solichin ([email protected]) 36
  • 37. Pemrograman Web dengan PHP dan MySQL 6 7 8 9 10 11 12 13 <input type="radio" name="jurusan" value="TI" checked> Teknik Informatika<br> <input type="radio" name="jurusan" value="SI"> Sistem Informasi<br> <input type="radio" name="jurusan" value="SK"> Sistem Komputer<br> <input type="radio" name="jurusan" value="KA"> Komputerisasi Akuntansi<br> <input type="submit" name="Pilih" value="Pilih"> </FORM> </body> </html> Program 4.11 Nama File : proses06.php Deskripsi : Program untuk mengambil dan menampilkan jurusan yang dipilih pada program 4.10 1 2 3 4 5 6 7 <?php if (isset($_POST['Pilih'])) { $jurusan = $_POST['jurusan']; echo "Jurusan Anda adalah <b><font color='red'>$jurusan</font></b>"; } ?> 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 masingmasing 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 ! Gambar 4.11. Tampilan Program 4.10 Achmad Solichin ([email protected]) 37
  • 38. Pemrograman Web dengan PHP dan MySQL Gambar 4.12. Tampilan Program 4.11 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 2 3 4 5 6 7 8 9 10 11 12 13 <html> <head><title>Band Favorit ~ Inputan Checkbox</title></head> <body> <FORM ACTION="proses07.php" METHOD="POST" NAME="input"> <h2>Pilih Band Favorit Anda :</h2> <input type="checkbox" name="band01" value="Padi" checked> Padi<br> <input type="checkbox" name="band02" value="Sheila On 7"> Sheila On 7<br> <input type="checkbox" name="band03" value="Dewa 19"> Dewa 19<br> <input type="checkbox" name="band04" value="Ungu"> Ungu<br> <input type="submit" name="Pilih" value="Pilih"> </FORM> </body> </html> Program 4.13 Nama File : proses07.php Deskripsi : Program untuk menampilkan nama band favorit sesuai dengan inputan pada program 4.12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php if (isset($_POST['Pilih'])) { echo "Band Favorit Anda adalah :<br>"; if (isset($_POST['band01'])) { echo "+ " . $_POST['band01'] . "<br>"; } if (isset($_POST['band02'])) { echo "+ " . $_POST['band02'] . "<br>"; } if (isset($_POST['band03'])) { echo "+ " . $_POST['band03'] . "<br>"; } if (isset($_POST['band04'])) { echo "+ " . $_POST['band04'] . "<br>"; Achmad Solichin ([email protected]) 38
  • 39. Pemrograman Web dengan PHP dan MySQL 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 masingmasing 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) Gambar 4.13. Tampilan Program 4.12 Gambar 4.14. Tampilan Program 4.13 Form Input Type COMBO BOX Program 4.14 Nama File : input08.php Deskripsi : Program menampilkan form inputan film kartun favorit dengan combo box. Achmad Solichin ([email protected]) 39
  • 40. Pemrograman Web dengan PHP dan MySQL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <html> <head><title>Film Kartun Favorit ~ Inputan Combo box</title></head> <body> <FORM ACTION="proses08.php" METHOD="POST" NAME="input"> <h2>Pilih Film Kartun Favorit Anda :</h2> <select name="kartun"> <option value="Sponge Bob">Sponge Bob</option> <option value="Sinchan">Sinchan</option> <option value="Conan">Conan</option> <option value="Doraemon">Doraemon</option> <option value="Dragon Ball">Dragon Ball</option> <option value="Naruto">Naruto</option> </select> <input type="submit" name="Pilih" value="Pilih"> </FORM> </body> </html> Program 4.15 Nama File : proses08.php Deskripsi : Program untuk menampilkan nama film kartun favorit sesuai dengan inputan pada program 4.14 1 2 3 4 5 6 7 <?php if (isset($_POST['Pilih'])) { $film = $_POST['kartun']; echo "Film Kartun Favorit Anda adalah : <font color=blue><b>$film</b></font>"; } ?> 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 ! Gambar 4.15. Tampilan Program 4.14 Achmad Solichin ([email protected]) 40
  • 41. Pemrograman Web dengan PHP dan MySQL Gambar 4.16. Tampilan Program 4.15 Form Input Type TEXTAREA Program 4.16 Nama File : input09.php Deskripsi : Program menampilkan form inputan kritik dan saran dengan text area. 1 2 3 4 5 6 7 8 9 10 11 12 13 <html> <head><title>Kritik dan Saran ~ Inputan Textarea</title></head> <body> <FORM ACTION="proses09.php" METHOD="POST" NAME="input"> <h2>Input Kritik / Saran :</h2> <textarea name="saran" cols="40" rows="5"></textarea><br> <input type="submit" name="Proses" value="Input Saran"> </FORM> </body> </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 2 3 4 5 6 7 <?php if (isset($_POST['Proses'])) { $saran = nl2br($_POST['saran']); echo "Kritik / Saran Anda adalah : <br>"; echo "<font color=blue><b>$saran</b></font>"; } ?> 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 ! Achmad Solichin ([email protected]) 41
  • 42. Pemrograman Web dengan PHP dan MySQL Gambar 4.17. Tampilan Program 4.16 Gambar 4.18. Tampilan Program 4.17 Achmad Solichin ([email protected]) 42
  • 43. Pemrograman Web dengan PHP dan MySQL Bab 5 Array dan Fungsi Pengantar Array Mendeklarasikan dan Menampilkan Array Fungsi-fungsi Array dalam PHP Fungsi dalam PHP 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. Mendeklarasikan dan Menampilkan Array Program 5.1 Nama File : array01.php Deskripsi : Program mendeklarasikan array dengan index numeric. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <?php $arrBuah = array ("Mangga", "Apel", "Pisang", "Jeruk"); echo $arrBuah[0]; //Mangga echo $arrBuah[3]; //Jeruk $arrWarna = array(); $arrWarna[] = "Merah"; $arrWarna[] = "Biru"; $arrWarna[] = "Hijau"; $arrWarna[] = "Putih"; echo $arrWarna[0]; //Merah echo $arrWarna[2]; //Hijau ?> 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. Achmad Solichin ([email protected]) 43
  • 44. Pemrograman Web dengan PHP dan MySQL Gambar 5.1. Tampilan Program 5.1 Program 5.2 Nama File : array02.php Deskripsi : Program mendeklarasikan array dengan index string (array assosiatif). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php $arrNilai = array ("Ani" => 80, "Otim" => 90, "Ana" => 75, "Budi" => 85); echo $arrNilai['Ani']; //80 echo $arrNilai['Otim']; //90 $arrNilai = array(); $arrNilai['Ami'] = 80; $arrNilai['Asma'] = 95; $arrNilai['Sri'] = 77; echo $arrNilai['Asma']; echo $arrNilai['Ami']; //95 //80 ?> Penjelasan Program 5.2 Untuk mendeklarasikan atau mendefinisikan sebuah array assosiatif (array yang menggunakan index selain integer), dapat dengan cara menyebutkan indexnya 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 assosiatif juga bisa dilakukan seperti pada baris ke-7 sampai baris ke-10 Gambar 5.2. Tampilan Program 5.2 Program 5.3 Nama File : array03.php Deskripsi : Program menampilkan seluruh isi array dengan index numerik. Achmad Solichin ([email protected]) 44
  • 45. Pemrograman Web dengan PHP dan MySQL 1 2 3 4 5 6 7 8 9 10 11 12 13 <?php $arrWarna = array ("Blue","Black","Red","Yellow","Green"); echo "Menampilkan isi array dengan for : <br>"; for ($i=0; $i<count($arrWarna); $i++) { echo "Do you like <font color=$arrWarna[$i]>". $arrWarna[$i] ."</font> ?<br>"; } echo "<br>Menampilkan isi array dengan foreach : <br>"; foreach ($arrWarna as $warna) { echo "Do you like <font color=$warna>". $warna ."</font> ?<br>"; } ?> 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 Gambar 5.3. Tampilan Program 5.3 Program 5.4 Nama File : array04.php Deskripsi : Program menampilkan seluruh isi array assosiatif. 1 2 <?php $arrNilai = array ("Ani" => 80, "Otim" => 90, "Ana" => 75, "Budi" => 85); Achmad Solichin ([email protected]) 45
  • 46. Pemrograman Web dengan PHP dan MySQL 3 4 5 6 7 8 9 10 11 12 13 14 echo "Menampilkan isi array dengan foreach : <br>"; foreach ($arrNilai as $nama => $nilai) { echo "Nilai $nama = $nilai<br>"; } reset ($arrNilai); echo "<br>Menampilkan isi array dengan while dan list : <br>"; while (list ($nama, $nilai) = each($arrNilai)) { echo "Nilai $nama = $nilai<br>"; } ?> Penjelasan Program 5.4 Untuk menampilkan array assosiatif 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 assosiatif ditampilkan dengan struktur while yang menggunakan fungsi list() dan each(). Gambar 5.4. Tampilan Program 5.4 Program 5.5 Nama File : array05.php Deskripsi : Program mencetak struktur array. 1 2 3 4 5 6 7 8 9 <? $arrWarna = array ("Blue","Black","Red","Yellow","Green"); $arrNilai = array ("Ani" => 80, "Otim" => 90, "Ana" => 75, "Budi" => 85); echo "<pre>"; print_r ($arrWarna); echo "<br>"; print_r ($arrNilai); echo "</pre>"; ?> Achmad Solichin ([email protected]) 46
  • 47. Pemrograman Web dengan PHP dan MySQL 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 Gambar 5.5. Tampilan Program 5.5 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 Achmad Solichin ([email protected]) 47
  • 48. Pemrograman Web dengan PHP dan MySQL 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?php $arrNilai = array ("Ani" => 80, "Otim" => 90, "Sri" => 75, "Budi" => 85); echo "<b>Array sebelum pengurutan</b>"; echo "<pre>"; print_r($arrNilai); echo "</pre>"; sort($arrNilai); reset($arrNilai); echo "<b>Array setelah pengurutan dengan sort()</b>"; echo "<pre>"; print_r($arrNilai); echo "</pre>"; rsort($arrNilai); reset($arrNilai); echo "<b>Array setelah pengurutan dengan rsort()</b>"; echo "<pre>"; print_r($arrNilai); echo "</pre>"; ?> Program 5.7 Nama File : array07.php Deskripsi : Program mengurutkan array dengan asort() dan arsort(). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?php $arrNilai = array ("Ani" => 80, "Otim" => 90, "Sri" => 75, "Budi" => 85); echo "<b>Array sebelum pengurutan</b>"; echo "<pre>"; print_r($arrNilai); echo "</pre>"; asort($arrNilai); reset($arrNilai); echo "<b>Array setelah pengurutan dengan asort()</b>"; echo "<pre>"; print_r($arrNilai); echo "</pre>"; arsort($arrNilai); reset($arrNilai); echo "<b>Array setelah pengurutan dengan arsort()</b>"; echo "<pre>"; print_r($arrNilai); echo "</pre>"; ?> Program 5.8 Nama File : array08.php Deskripsi : Program mengurutkan array dengan ksort() dan krsort(). Achmad Solichin ([email protected]) 48
  • 49. Pemrograman Web dengan PHP dan MySQL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?php $arrNilai = array ("Ani"=>80, "Otim"=>90, "Sri"=>75, "Budi"=>85); echo "<b>Array sebelum pengurutan</b>"; echo "<pre>"; print_r($arrNilai); echo "</pre>"; ksort($arrNilai); reset($arrNilai); echo "<b>Array setelah pengurutan dengan ksort()</b>"; echo "<pre>"; print_r($arrNilai); echo "</pre>"; krsort($arrNilai); reset($arrNilai); echo "<b>Array setelah pengurutan dengan krsort()</b>"; echo "<pre>"; print_r($arrNilai); echo "</pre>"; ?> Program 5.9 Nama File : array09.php Deskripsi : Program mengatur posisi pointer dalam array. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <?php $transport = array('foot', 'bike', 'car', 'plane'); echo "<pre>"; print_r ($transport); echo "</pre>"; $mode = current($transport); echo $mode."<br>"; // $mode = $mode = next($transport); echo $mode."<br>"; // $mode = $mode = current($transport); echo $mode."<br>"; // $mode = $mode = prev($transport); echo $mode."<br>"; // $mode = $mode = end($transport); echo $mode."<br>"; // $mode = $mode = current($transport); echo $mode."<br>"; // $mode = ?> 'foot'; 'bike'; 'bike'; 'foot'; 'plane'; 'plane'; Program 5.10 Nama File : array10.php Deskripsi : Program mencari elemen array. 1 2 3 4 5 6 7 8 9 <?php $arrBuah = array ("Mangga", "Apel", "Pisang", "Kedondong", "Jeruk"); if (in_array ("Kedondong", $arrBuah)) { echo "Ada buah Kedondong di sini"; } else { echo "Tidak ada buah Kedondong di sini"; } ?> Achmad Solichin ([email protected]) 49
  • 50. Pemrograman Web dengan PHP dan MySQL 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 2 3 4 5 6 7 8 9 10 11 <?php function cetak_ganjil () { for ($i=0; $i<100; $i++) { if ($i%2 == 1) { echo "$i "; } } } //pemanggilan fungsi cetak_ganjil(); ?> Program 5.12 Nama File : array02.php Deskripsi : Program fungsi dengan parameter. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php function cetak_ganjil ($awal, $akhir) { for ($i=$awal; $i<$akhir; $i++) { if ($i%2 == 1) { echo "$i "; } } } //pemanggilan fungsi $a = 10; $b = 50; echo "<b>Bilangan ganjil dari $a sampai $b : </b><br>"; cetak_ganjil($a, $b); ?> Program 5.13 Nama File : fungsi03.php Deskripsi : Program fungsi yang mengembalikan nilai. 1 2 3 4 5 6 7 8 9 <?php function luas_lingkaran ($jari) { return 3.14 * $jari * $jari; } //pemanggilan fungsi $r = 10; echo "Luas lingkaran dengan jari-jari $r = "; echo luas_lingkaran($r); ?> Program 5.14 Nama File : fungsi04.php Deskripsi : Program passing by value dalam fungsi. Achmad Solichin ([email protected]) 50
  • 51. Pemrograman Web dengan PHP dan MySQL 1 2 3 4 5 6 7 8 9 10 11 <?php function tambah_string ($str) { $str = $str . ", Jakarta"; return $str; } // $str = "Universitas Budi Luhur"; echo "$str = $str<br>"; echo tambah_string ($str). "<br>"; echo "$str = $str<br>"; ?> Program 5.15 Nama File : fungsi05.php Deskripsi : Program passing by reference dalam fungsi. 1 2 3 4 5 6 7 8 9 10 11 <?php function tambah_string (&$str) { $str = $str . ", Jakarta"; return $str; } // $str = "Universitas Budi Luhur"; echo "$str = $str<br>"; echo tambah_string ($str). "<br>"; echo "$str = $str<br>"; ?> Program 5.16 Nama File : fungsi06.php Deskripsi : Program menampilkan defined-function yang didukung oleh PHP. 1 2 3 4 5 6 7 8 9 10 <?php function luas_lingkaran ($jari) { return 3.14 * $jari * $jari; } $arr = get_defined_functions(); echo "<pre>"; print_r($arr); echo "</pre>"; ?> Program 5.17 Nama File : fungsi07.php Deskripsi : Program memeriksa suatu fungsi tersedia di PHP atau tidak. 1 2 3 4 5 6 7 <?php if (function_exists('exif_read_data')) { echo "Fungsi exif_read_data() ada di PHP.<br />n"; } else { echo "Fungsi exif_read_data() tidak ada di PHP.<br />n"; } ?> Achmad Solichin ([email protected]) 51
  • 52. Pemrograman Web dengan PHP dan MySQL Bab 6 Penanganan String dan Tanggal Pengantar String Fungsi-fungsi String dalam PHP Fungsi-fungsi Operasi Tanggal dalam PHP Pengantar String String merupakan kumpulan dari karakter. Dalam PHP, karakter sama dengan byte, dimana terdapat 256 karakter. PHP tidak mendukung nativeunicode. 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 Program 6.1 Nama File : string01.php Deskripsi : Program string dengan single quoted ( ' ). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <?php echo 'this is a simple string'; echo 'You can also have embedded newlines in strings this way as it is okay to do'; // Outputs: Arnold once said: "I'll be back" echo 'Arnold once said: "I'll be back"'; // Outputs: You deleted C:*.*? echo 'You deleted C:*.*?'; // Outputs: You deleted C:*.*? echo 'You deleted C:*.*?'; // Outputs: This will not expand: n a newline echo 'This will not expand: n a newline'; // Outputs: Variables do not $expand $either echo 'Variables do not $expand $either'; ?> Program 6.2 Nama File : string02.php Deskripsi : Program string dengan heredoc sintaks. 1 2 3 4 5 6 7 8 9 10 11 <?php $str = <<<EOD Example of string spanning multiple lines using heredoc syntax. EOD; /* More complex example, with variables. */ class foo { var $foo; Achmad Solichin ([email protected]) 52
  • 53. Pemrograman Web dengan PHP dan MySQL 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 var $bar; function foo() { $this->foo = 'Foo'; $this->bar = array('Bar1', 'Bar2', 'Bar3'); } } $foo = new foo(); $name = 'Achmatim'; echo <<<EOT <u>$str</u><br> My name is "<b>$name</b>". I am printing some <b>$foo->foo</b>. Now, I am printing some <b>{$foo->bar[1]}</b>. This should print a capital 'A': x41 EOT; ?> Gambar 6.1. Tampilan Program 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. Achmad Solichin ([email protected]) 53
  • 54. Pemrograman Web dengan PHP dan MySQL 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 uppercase. wordwrap() – memotong sejumlah karakter dalam string dengan stringbreak-character. Program 6.3 Nama File : string03.php Deskripsi : Program penggunaan fungsi strtolower, strtoupper, ucfirst, ucwords, strrev, dan strlen dalam string. 1 2 3 4 5 6 7 8 9 10 11 <?php $str = "Everything i do, i do it for YOU"; echo echo echo echo echo echo echo ?> "<b>String asli</b> : $str"; "<br><b>strtolower()</b> : ". strtolower($str); "<br><b>strtoupper()</b> : ". strtoupper($str); "<br><b>ucfirst() :</b> ". ucfirst($str); "<br><b>ucwords() :</b> ". ucwords($str); "<br><b>strrev() :</b> ". strrev($str); "<br><b>Jumlah karakter</b> : ". strlen($str); 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. Achmad Solichin ([email protected]) 54
  • 55. Pemrograman Web dengan PHP dan MySQL Gambar 6.2 Tampilan Program 6.3 Program 6.4 Nama File : string04.php Deskripsi : Program penggunaan fungsi addslashes dan stripslashes pada string. 1 2 3 4 5 6 7 8 9 <?php $str = "Is your name O'Reilly ?"; $str2 = addslashes ($str); $str3 = stripslashes ($str2); echo "<b>String asli</b> : $str"; echo "<br><b>addslashes()</b> : $str2"; echo "<br><b>stripslashes()</b> : $str3"; ?> 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. Gambar 6.3. Tampilan Program 6.4 Program 6.5 Nama File : string05.php Deskripsi : Program penggunaan fungsi chr untuk menampilkan 256 karakter ASCII. Achmad Solichin ([email protected]) 55
  • 56. Pemrograman Web dengan PHP dan MySQL 1 2 3 4 5 6 <?php echo "Menampilkan bilangan ASCII"; for ($i=1; $i<=256; $i++) { echo "<br>$i.t". chr($i); } ?> 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 2 3 4 5 6 7 8 9 10 11 12 13 <?php $str = "<b><u>Everything I do, I do it for you</u></b>"; echo $str."<br>"; //no tag html echo strip_tags ($str). "<br>"; //allow tag <u> echo strip_tags ($str,"<u>")."<br>"; //tampil apa adanya echo htmlspecialchars ($str)."<br>"; //tampil apa adanya echo htmlentities ($str); ?> 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 ke12, fungsi htmlspecialchars dan htmlentities akan mengubah semua tag HTML menjadi HTML special character, sehingga tag HTML akan ditampilkan apa adanya Gambar 6.4. Tampilan Program 6.6 Program 6.7 Nama File : string07.php Deskripsi : Program penggunaan fungsi number_format untuk mengatur format tampilan angka. Achmad Solichin ([email protected]) 56
  • 57. Pemrograman Web dengan PHP dan MySQL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?php $number = 1234.56; // english notation (default) $english_format_number = number_format($number); echo "<br>".$english_format_number; // 1,235 // French notation $nombre_format_francais = number_format($number, 2, ',', ' '); echo "<br>".$nombre_format_francais; // 1 234,56 //indonesian notation $format_indonesia = number_format ($number, 2, ',', '.'); echo "<br>".$format_indonesia; //1.234,56 $number = 1234.5678; // english notation without thousands seperator $english_format_number = number_format($number, 2, '.', ''); echo "<br>". $english_format_number; // 1234.57 ?> 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 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php // Contoh 1 $buah = "mangga pisang rambutan apel jeruk kedondong"; $buahan = explode(" ", $buah); echo $buahan[0]."<br>"; // mangga echo $buahan[3]."<br>"; // apel // Contoh 2 $data = "foo:*:1023:1000::/home/foo:/bin/sh"; list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data); echo $user."<br>"; // foo echo $pass; // * ?> 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 masingmasing akan menjadi elemen array $buahan. Program 6.9 Nama File : string09.php Deskripsi : Program penggunaan fungsi implode untuk menggabungkan array menjadi string. Achmad Solichin ([email protected]) 57
  • 58. Pemrograman Web dengan PHP dan MySQL 1 2 3 4 5 6 <?php $buahan = array('mangga','jeruk','rambutan','apel','nanas'); $buah = implode(",", $buahan); echo "Saya suka buah ". $buah; // mangga,jeruk,rambutan,apel,nanas ?> 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 2 3 4 5 6 7 8 9 10 <?php $file $ext1 $ext2 $ext3 = = = = "test.this.txt"; strstr($file, "."); strchr($file, "."); strrchr($file, "."); echo $ext1. "<br>"; echo $ext2. "<br>"; echo $ext3; ?> //.this.txt //.this.txt //.txt 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 2 3 4 5 6 7 <?php $text = "The quick brown fox jumped over the lazy dog."; $newtext = wordwrap($text, 15, "<br>"); echo $text."<br><br>"; echo $newtext; ?> 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>” Achmad Solichin ([email protected]) 58
  • 59. Pemrograman Web dengan PHP dan MySQL Gambar 6.5. Tampilan Program 6.11 Program 6.12 Nama File : string12.php Deskripsi : Program penggunaan fungsi nl2br dalam string. 1 2 3 4 5 6 7 8 9 10 11 12 14 <form action="" method="post"> Input teks di sini :<br> <textarea name="input" cols="40" rows="4"></textarea><br> <input type="submit" name="Submit" value="Proses"> </form> <?php if (isset($_POST['Submit'])) { $txt = $_POST['input']; echo "<u>Tanpa nl2br() :</u> <br>$txt<br><br>"; echo "<u>Dengan nl2br :</u> <br>". nl2br ($txt); } ?> 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. Untuk mencoba program di atas, inputkan string sebagai berikut : bila yang tertulis untukku adalah yang terbaik untukku kan kujadikan kau kenangan yang terindah dalam hidupku namun tak kan mudah bagiku meningalkan jejak hidupku yang tlah terukir abadi sebagai kenangan yang terindah Program 6.13 Nama File : string13.php Deskripsi : Program penggunaan fungsi substr untuk memotong string. 1 2 3 4 5 6 7 8 9 <form action="" method="post"> NIM Anda : <input type="text" name="txtnim"><br> <input type="submit" name="Submit" value="Proses"> </form> <?php if (isset($_POST['Submit'])) { $nim = $_POST['txtnim']; Achmad Solichin ([email protected]) 59
  • 60. Pemrograman Web dengan PHP dan MySQL 10 11 12 14 15 16 17 18 19 20 21 22 23 24 25 26 } ?> $a = substr ($nim, 2, 2); switch($a) { case '11' : $jurusan = "Teknik Informatika"; break; case '22' : $jurusan = "Sistem Informasi"; break; case '33' : $jurusan = "Sistem Komputer"; break; case '44' : $jurusan = "Komputerisasi Akuntansi"; break; default : $jurusan = "Salah jurusan"; } echo "Nim Anda : $nim<br>"; echo "Jurusan Anda : $jurusan"; 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. 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 j Tanggal tanpa nol 1 s/d 31 l (lowercase Nama hari lengkap dalam 'L') seminggu Sunday through Saturday N Urutan hari dalam seminggu 1 (untuk Monday) s/d 7 (untuk Sunday) S Akhiran angka English untuk tanggal, 2 karakter st, nd, rd atau th. w Urutan hari dalam seminggu 0 (untuk Sunday) s/d 6 (untuk Saturday) z Urutan hari dalam setahun 0 s/d 365 Urutan minggu dalam setahun Contoh: 42 (minggu ke-42 dalam tahun ini) F Nama bulan lengkap January s/d December m Urutan bulan dalam setahun dengan nol 01 s/d 12 M Tiga digit nama bulan dalam setahun Jan s/d Dec n Urutan bulan dalam setahun, 1 s/d 12 Minggu W Bulan Achmad Solichin ([email protected]) 60
  • 61. Pemrograman Web dengan PHP dan MySQL parameter Keterangan Contoh nilai tanpa nol t Jumlah hari dalam tiap bulan 28 s/d 31 Y 4 (empat) digit tahun Contoh: 1999 atau 2006 y 2 (dua) digit tahun Contoh: 99 or 06 Tahun Waktu a Lowercase Ante meridiem dan Post am atau pm meridiem A Uppercase Ante meridiem dan Post AM atau PM meridiem g Jam format 12 tanpa nol 1 s/d 12 G Jam format 24 tanpa nol 0 s/d 23 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 2 3 4 5 6 7 8 9 10 11 12 14 15 16 <?php // Sekarang tanggal 13 April 2006 09:43:49 echo "<br>". date("d/m/Y H:i:s"); // 13/04/2006 09:43:03 echo "<br>". date("F j, Y, g:i a"); // April 13, 2006, 9:43 am echo "<br>". date("d.m.y"); // 13.04.06 echo "<br>". date("Ymd"); // 20060413 // 13-04-06, 4330 4349 4 Thuam06 102 echo "<br>". date('j-m-y, it is w Day z '); // it is the 13th day. echo "<br>". date('it is the jS day.'); // Thu Apr 13 9:43:49 KRAST 2006 echo "<br>". date("D M j G:i:s T Y"); echo "<br>". date("H:i:s"); // 17:16:17 ?> Program 6.15 Nama File : date02.php Deskripsi : Program menampilkan nama hari dalam bahasa Indonesia. 1 2 3 4 5 6 7 <?php // Sekarang tanggal 13 April 2006 09:43:49 $arrDay = array("Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jum'at", "Sabtu"); $day = date ("w"); //0 - 6 of day echo "Hari ini hari : <b>" . $arrDay[$day]."</b>"; ?> Achmad Solichin ([email protected]) 61
  • 62. Pemrograman Web dengan PHP dan MySQL Bab 7 File dan Direktori Membuat, Menulis dan Membaca Isi File + Membuka dan Membuat File + Menulis ke File + Membaca Isi File + Menutup File Membuat dan Menghapus Direktori Manipulasi File + Mendapatkan Informasi File + Copy, Rename dan Delete File Upload File 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 : 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 r r+ w w+ a a+ Keterangan Hanya untuk baca file, pointer berada di awal file Untuk baca dan tulis file, pointer berada di awal file Hanya untuk tulis file, isi file lama dihapus, jika file belum ada maka akan di-create 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 maka di-create Untuk membaca dan menambahkan isi file, pointer berada di akhir file, jika file belum ada maka di-create Program 7.1 Nama File : file01.php Deskripsi : Program mengakses (membuka) file dengan mode r. 1 2 3 4 5 6 7 8 9 10 <?php $namafile = "data.txt"; $handle = fopen ($namafile, "r"); if (!$handle) { echo "<b>File tidak dapat dibuka atau belum ada</b>"; } else { echo "<b>File berhasil dibuka</b>"; } fclose($handle); ?> Achmad Solichin ([email protected]) 62
  • 63. Pemrograman Web dengan PHP dan MySQL Gambar 7.1 Tampilan Program 7.1 Program 7.2 Nama File : file02.php Deskripsi : Program mengakses (membuka) file dengan mode w. 1 2 3 4 5 6 7 8 9 10 <?php $namafile = "data.txt"; $handle = fopen ($namafile, "w"); if (!$handle) { echo "<b>File tidak dapat dibuka atau belum ada</b>"; } else { echo "<b>File berhasil dibuka</b>"; } fclose($handle); ?> Gambar 7.2 Tampilan Program 7.2 Menulis ke File fwrite ($handle, $isi); fputs ($handle, $isi); Program 7.3 Nama File : file03.php Deskripsi : Program menulis ke file. 1 2 3 <?php $namafile = "data.txt"; $handle = fopen ($namafile, "w"); Achmad Solichin ([email protected]) 63
  • 64. Pemrograman Web dengan PHP dan MySQL 4 5 6 7 8 9 10 11 12 13 if (!$handle) { echo "<b>File tidak dapat dibuka atau belum ada</b>"; } else { fwrite ($handle, "Fakultas Teknologi Informasin"); fputs ($handle, "Universitas Budi Luhurn"); //file_put_contents ($namafile, "Jakarta"); echo "<b>File berhasil ditulis</b>"; } fclose($handle); ?> 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 7.3 (buka dengan WordPad). Gambar 7.3. File data.txt dibuka dengan WordPad Membaca Isi File fread ($handle [,$panjang]); fgets ($handle [,$panjang]); Program 7.4 Nama File : file04.php Deskripsi : Program membaca dan menampilkan isi file. 1 2 3 4 5 6 7 8 9 10 11 12 13 <?php $namafile = "data.txt"; $handle = fopen ($namafile, "r"); if (!$handle) { echo "<b>File tidak dapat dibuka atau belum ada</b>"; } else { $isi = fgets ($handle, 2048); //$isi2 = fread ($handle, 20); echo "Isi 1 : $isi<br>"; //echo "Isi 2 : $isi2<br>"; } fclose($handle); ?> 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. Achmad Solichin ([email protected]) 64
  • 65. Pemrograman Web dengan PHP dan MySQL Program 7.5 Nama File : file05.php Deskripsi : Program membaca isi file baris tiap baris. 1 2 3 4 5 6 7 8 9 10 11 12 13 <?php $namafile = "data.txt"; $handle = fopen ($namafile, "r"); if (!$handle) { echo "<b>File tidak dapat dibuka atau belum ada</b>"; } else { echo "<b>Isi file : </b><br>"; while ($isi = fgets ($handle, 2048)) { echo "$isi<br>"; } } fclose($handle); ?> 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. Gambar 7.4. Tampilan Program 7.5 Program 7.6 Nama File : file06.php Deskripsi : Program membaca isi file baris tiap baris. 1 2 3 4 5 6 7 8 9 10 11 <?php $namafile = "data.txt"; $handle = @fopen($namafile, "r"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); echo $buffer."<br>"; } fclose($handle); } ?> 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. Achmad Solichin ([email protected]) 65
  • 66. Pemrograman Web dengan PHP dan MySQL Menutup File fclose ($handle); Program 7.7 Nama File : file07.php Deskripsi : Program aplikasi user counter dengan file. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php $counter_file="counter.txt"; if (!file_exists ($counter_file)) { fopen ($counter_file, "w"); } $file = fopen($counter_file,"r"); $counter = fread($file,10); fclose($file); $counter++; echo "<h2>Anda adalah pengunjung ke - $counter</h2>"; $file = fopen($counter_file, "w"); fwrite($file,$counter); fclose($file); ?> Gambar 7.5. Tampilan Program 7.7 Membuat dan Menghapus Direktori Membuat Direktori Baru Program 7.8 Nama File : file08.php Deskripsi : Program membuat direktori baru. 1 2 3 4 5 6 7 8 9 <?php $dir = "images"; //nama direktori $cek = mkdir ($dir); if ($cek) { echo "Direktori <b>$dir</b> berhasil dibuat"; } else { echo "Direktori <b>$dir</b> gagal dibuat"; } ?> Achmad Solichin ([email protected]) 66
  • 67. Pemrograman Web dengan PHP dan MySQL 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. Menghapus Direktori Program 7.9 Nama File : file09.php Deskripsi : Program menghapus direktori. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php //buat direktori $dir = "include"; //nama direktori $cek = mkdir ($dir); if ($cek) { echo "Direktori <b>$dir</b> berhasil dibuat"; } else { echo "Direktori <b>$dir</b> gagal dibuat"; } //hapus direktori $del = rmdir ($dir); if ($del) { echo "<br>Direktori <b>$dir</b> berhasil dihapus"; } else { echo "<br>Direktori <b>$dir</b> gagal dihapus"; } ?> 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. Menampilkan Isi Direktori Program 7.10 Nama File : file10.php Deskripsi : Program menampilkan file dan direktori dalam suatu direktori. 1 2 3 4 5 6 7 8 9 10 11 <?php $dir = "images"; if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { echo "$file<br>"; } } closedir($handle); } ?> 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. Achmad Solichin ([email protected]) 67
  • 68. Pemrograman Web dengan PHP dan MySQL Manipulasi File Mendapatkan Informasi File Beberapa Fungsi yang berhubungan dengan informasi dan manipulasi file, terdapat dalam tabel sebagai berikut : Fungsi file_exists($file) is_file($file) is_dir($file) is_executable($file) is_writable($file) is_readable($file) fileatime($file) filectime($file) filemtime($file) filesize($file) filetype($file) Keterangan Memeriksa apakah $file ada atau tidak Memeriksa apakah $file adalah file atau bukan. Memeriksa apakah $file adalah direktori atau bukan. Memeriksa apakah $file termasuk file yang bisa dijalankan secara langsung atau bukan. Memeriksa apakah $file termasuk file yang bisa ditulis atau diedit. Memeriksa apakah $file termasuk file yang bisa dibaca atau tidak. Menghasilkan waktu akses terakhir file (unix timestamp). Menghasilkan waktu pembuatan file (unix timestamp). Menghasilkan waktu modifikasi terakhir file ( dalam unix timestamp). Menghasilkan ukuran besar file (dalam byte). Menghasilkan jenis file. Program 7.11 Nama File : file11.php Deskripsi : Program memeriksa keberadaan suatu file. 1 2 3 4 5 6 7 8 9 <?php $filename = "data.txt"; if (file_exists($filename)) { echo "File $filename ADA"; } else { echo "File $filename TIDAK ADA"; } ?> Program 7.12 Nama File : file12.php Deskripsi : Program mendapatkan beberapa informasi file. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php $file = "data.txt"; if (is_file($file)) { echo "File <b>$file</b> adalah FILE<br>"; // if (is_executable ($file)) { echo "File <b>$file</b> bisa dijalankan secara langsung (executable)<br>"; } else { echo "File <b>$file</b> TIDAK executable<br>"; } // if (is_writable ($file)) { echo "File <b>$file</b> bisa ditulis / diedit<br>"; } else { echo "File <b>$file</b> TIDAK bisa ditulis / diedit<br>"; } Achmad Solichin ([email protected]) 68
  • 69. Pemrograman Web dengan PHP dan MySQL 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 // if (is_readable ($file)) { echo "File <b>$file</b> bisa dibaca<br>"; } else { echo "File <b>$file</b> TIDAK bisa dibaca<br>"; } // echo "Akses terakhir file <b>$file</b> = ". date("d-m-Y H:i:s.", fileatime($file)). "<br>"; echo "File <b>$file</b> dibuat = ". date("d-m-Y H:i:s.", filectime($file)). "<br>"; echo "Modifikasi terakhir file <b>$file</b> = ". date("dm-Y H:i:s.", filemtime($file)). "<br>"; echo "Ukuran file <b>$file</b> = ". filesize($file). " bytes<br>"; echo "Jenis file <b>$file</b> = ".filetype($file). "<br>"; } else if (is_dir($file)){ echo "File <b>$file</b> adalah DIREKTORI<br>"; } else { echo "File <b>$file</b> tidak dikenal<br>"; } ?> Copy, Rename dan Delete File Program 7.13 Nama File : file13.php Deskripsi : Program meng-copy, rename dan delete file. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php $file = "data.txt"; $filebaru = "databaru.txt"; $filebaru2 = "databaru2.txt"; if (copy ($file, $filebaru)) { echo "File <b>$file</b> berhasil dicopy menjadi <b>$filebaru</b>. <br>"; } if (rename ($filebaru, $filebaru2)) { echo "File <b>$filebaru</b> berhasil direname menjadi <b>$filebaru2</b>. <br>"; } if (unlink ($filebaru2)) { echo "File <b>$filebaru2</b> berhasil dihapus. <br>"; } ?> 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. 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" Achmad Solichin ([email protected]) 69
  • 70. Pemrograman Web dengan PHP dan MySQL 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 2 3 4 5 6 7 8 9 <html> <head><title>Upload File</title></head> <body> <FORM ACTION="upload.php" METHOD="POST" ENCTYPE="multipart/form-data"> Upload File : <input type="file" name="file"><br> <input type="submit" name="Upload" value="Upload"> </FORM> </body> </html> Program 7.15 Nama File : upload.php Deskripsi : Program proses upload file. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <?php if (isset($_POST['Upload'])) { $dir_upload = "images/"; $nama_file = $_FILES['file']['name']; // if (is_uploaded_file($_FILES['file']['tmp_name'])) { $cek = move_uploaded_file ($_FILES['file']['tmp_name'], $dir_upload.$nama_file); if ($cek) { die ("File berhasil diupload"); } else { die ("File gagal diupload"); } } } ?> 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! Achmad Solichin ([email protected]) 70
  • 71. Pemrograman Web dengan PHP dan MySQL Gambar 7.6. Tampilan Program 7.14 Achmad Solichin ([email protected]) 71
  • 72. Pemrograman Web dengan PHP dan MySQL Bab 9 Session dan Cookies Session Cookies 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 autentifikasi 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 2 3 4 5 6 7 8 9 10 11 <?php /**************************************************** Nama file : session01.php Halaman ini merupakan halaman contoh penciptaan session. Perintah session_start() harus ditaruh di perintah pertama tanpa spasi di depannya. Perintah session_start() harus ada pada setiap halaman yang berhubungan dengan session *****************************************************/ session_start(); if (isset ($_POST['Login'])) { $user = $_POST['user']; Achmad Solichin ([email protected]) 72
  • 73. Pemrograman Web dengan PHP dan MySQL 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 $pass = $_POST['pass']; //periksa login if ($user == "achmatim" && $pass = "123") { //menciptakan session $_SESSION['login'] = $user; //menuju ke halaman pemeriksaan session echo "<h1>Anda berhasil LOGIN</h1>"; echo "<h2>Klik <a href='session02.php'>di sini (session02.php)</a> untuk menuju ke halaman pemeriksaan session"; } } else { ?> <html> <head> <title>Login here...</title> </head> <body> <form action="" method="post"> <h2>Login Here...</h2> Username : <input type="text" name="user"><br> Password : <input type="password" name="pass"><br> <input type="submit" name="Login" value="Log In"> </form> </body> </html> <? } ?> 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 9.1 berikut ini : Gambar 9.1. Error yang terjadi karena sebelum session_start() sudah ada output 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 Achmad Solichin ([email protected]) 73
  • 74. Pemrograman Web dengan PHP dan MySQL menggunakan database, bisa password ke tabel database. diganti dengan pemeriksaan username dan 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <?php /************************************************************* Halaman ini merupakan contoh halaman pemeriksaan session. Pemeriksaan session biasanya dilakukan jika suatu halaman memiliki akses terbatas. Misalnya harus login terlebih dahulu. **************************************************************/ session_start(); //pemeriksaan session if (isset($_SESSION['login'])) { //jika sudah login //menampilkan isi session echo "<h1>Selamat Datang ". $_SESSION['login'] ."</h1>"; echo "<h2>Halaman ini hanya bisa diakses jika Anda sudah login</h2>"; echo "<h2>Klik <a href='session03.php'>di sini (session03.php)</a> untuk LOGOUT</h2>"; } else { //session belum ada artinya belum login die ("Anda belum login! Anda tidak berhak masuk ke halaman ini.Silahkan login <a href='session01.php'>di sini</a>"); } ?> 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. Achmad Solichin ([email protected]) 74
  • 75. Pemrograman Web dengan PHP dan MySQL Program 9.3 Nama File : session03.php Deskripsi : Program menghapus session. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <?php /******************************************************** Halaman ini merupakan halaman logout, dimana kita menghapus session yang ada. *********************************************************/ session_start(); if (isset($_SESSION['login'])) { unset ($_SESSION); session_destroy(); // echo "<h1>Anda sudah berhasil LOGOUT</h1>"; echo "<h2>Klik <a href='session01.php'>di sini</a> untuk LOGIN kembali</h2>"; echo "<h2>Anda sekarang tidak bisa masuk ke halaman <a href='session02.php'>session02.php</a> lagi</h2>"; } ?> Penjelasan Program 9.3. Program 9.3 merupakan contoh program penghapusan session. Penghapusan session biasanya digunakan ketika user melalukan 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. 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 shooping 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 2 3 4 5 6 7 8 9 <?php $value = 'achmatim'; $value2 = 'Achmad Solichin'; setcookie("username", $value); setcookie("namalengkap", $value2, time()+3600); hour */ /* expire in 1 echo "<h1>Ini halaman pengesetan cookie</h1>"; Achmad Solichin ([email protected]) 75
  • 76. Pemrograman Web dengan PHP dan MySQL 10 11 echo "<h2>Klik <a href='cookie02.php'>di sini</a> untuk pemeriksaan cookies</h2>"; ?> Program 9.5 Nama File : cookie02.php Deskripsi : Program pemeriksaan cookie. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php if(isset($_COOKIE['username'])) { echo "<h1>Cookie 'username' ada. Isinya : " . $_COOKIE['username']; } else { echo "<h1>Cookie 'username' TIDAK ada.</h1>"; } if(isset($_COOKIE['namalengkap'])) { echo "<h1>Cookie 'namalengkap' ada. Isinya : " . $_COOKIE['namalengkap']; } else { echo "<h1>Cookie 'namalengkap' TIDAK ada.</h1>"; } echo "<h2>Klik <a href='cookie01.php'>di sini</a> untuk penciptaan cookies</h2>"; echo "<h2>Klik <a href='cookie03.php'>di sini</a> untuk penghapusan cookies</h2>"; ?> Program 9.6 Nama File : cookie03.php Deskripsi : Program penghapusan cookie. 1 2 3 4 5 6 7 8 9 10 <?php // set the expiration date to one hour ago setcookie ("username", "", time() - 3600); setcookie ("namalengkap", "", time() - 3600); echo "<h1>Cookie Berhasil dihapus.</h1>"; echo "<h2>Klik <a href='cookie01.php'>di sini</a> untuk penciptaan cookies</h2>"; echo "<h2>Klik <a href='cookie02.php'>di sini</a> untuk pemeriksaan cookies</h2>"; ?> Achmad Solichin ([email protected]) 76
  • 77. Pemrograman Web dengan PHP dan MySQL Bab 10 Pemrograman Berorientasi Objek dalam PHP Pengantar Pemrograman Berorientasi Objek Object dan Class Properties dan Method Mendefinisikan Class 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 mahasiswanya. 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. Polymorphisme PHP khususnya PHP 5 sudah mendukung beberapa konsep OOP. Akan tetapi PHP 5 tidak mendukung konsep Multiple-inheritance dan polymorphisme. 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 bagianbagian 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 Achmad Solichin ([email protected]) 77
  • 78. Pemrograman Web dengan PHP dan MySQL 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. 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 (_). 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. Menambahkan Properties (Variabel) Perhatikan contoh pendefinisian class beserta propertiesnya, sbb : 1 2 3 4 5 6 7 8 class Mobil { var $warna; var $merk; var $harga; //Tambahkan pendefinisian method di sini } 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 2 3 4 5 6 class Mobil { var $warna = "Biru"; var $merk = "BMW"; var $harga = "10000000"; Achmad Solichin ([email protected]) 78
  • 79. Pemrograman Web dengan PHP dan MySQL 7 8 //Tambahkan pendefinisian method di sini } 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class Mobil { var $warna = "Biru"; var $merk = "BMW"; var $harga = "10000000"; function gantiWarna ($warnaBaru) { $this->warna = $warnaBaru; } function tampilWarna () { echo "Warna mobilnya : " . $this->warna; } } 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. 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 class Mobil { var $warna; var $merk; var $harga; function __construct() { $this->warna = "Biru"; $this->merk = "BMW"; $this->harga = "10000000"; } function gantiWarna ($warnaBaru) { $this->warna = $warnaBaru; } function tampilWarna () { echo "Warna mobilnya : " . $this->warna; Achmad Solichin ([email protected]) 79
  • 80. Pemrograman Web dengan PHP dan MySQL 22 23 } } 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 10.1 Nama File : pbo01.php Deskripsi : Program sederhana pendefinisian class dan pemanggilan class. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 <? class Mobil { var $warna; var $merk; var $harga; function __construct() { $this->warna = "Biru"; $this->merk = "BMW"; $this->harga = "10000000"; } function gantiWarna ($warnaBaru) { $this->warna = $warnaBaru; } function tampilWarna () { echo "Warna mobilnya : " . $this->warna; } } $a = new Mobil(); $b = new Mobil(); echo "<b>Mobil pertama</b><br>"; $a->tampilWarna(); echo "<br>Mobil pertama ganti warna<br>"; $a->gantiWarna("Merah"); $a->tampilWarna(); // echo "<br><b>Mobil kedua</b><br>"; $b->gantiWarna("Hijau"); $b->tampilWarna(); ?> Program 10.2 Nama File : pbo02.inc.php Deskripsi : Program class untuk membuat sebuah form inputan sederhana. 1 2 3 <?php /* Nama Class : Form Achmad Solichin ([email protected]) 80
  • 81. Pemrograman Web dengan PHP dan MySQL 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 Deskripsi */ : CLass untuk membuat form inputan text sederhana class Form { var $fields = array(); var $action; var $submit = "Submit Form"; var $jumField = 0; function __construct($action, $submit) { $this->action = $action; $this->submit = $submit; } function displayForm() { echo "<form action='".$this->action."' method='POST'>"; echo "<table width='100%'>"; for ($j=0; $j<count($this->fields); $j++) { echo "<tr><td align='right'>".$this-> fields[$j]['label']."</td>"; echo "<td><input type='text' name='".$this-> fields[$j]['name']."'></td></tr>"; } echo "<tr><td colspan='2'>"; echo "<input type='submit' value='".$this->submit. "'></td></tr>"; echo "</table>"; } function addField($name, $label) { $this->fields [$this->jumField]['name'] = $name; $this->fields [$this->jumField]['label'] = $label; $this->jumField ++; } } ?> Program 10.3 Nama File : pbo03.php Deskripsi : Program memanfaatkan Program 10.2 untuk membuat form inputan sederhana. 1 2 3 4 5 6 7 8 9 10 11 <?php include "pbo02.inc.php"; echo "<html><head><title>Mahasiswa</title></head><body>"; $form = new Form ("","Input Form"); $form->addField ("txtnim", "Nim"); $form->addField ("txtnama", "Nama"); $form->addField ("txtalamat", "Alamat"); echo "<h3>Silahkan isi form berikut ini :</h3>"; $form->displayForm(); echo "</body></html>"; ?> Penjelasan Program 10.3 Program 10.3 di atas merupakan contoh pemanggilan class yang didefinisikan pada Program 10.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 10.1 Achmad Solichin ([email protected]) 81
  • 82. Pemrograman Web dengan PHP dan MySQL Gambar 10.1. Tampilan Program 10.3 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 Extention 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, PosgreSQL, 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-desaigner 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 http://smarty.php.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 Achmad Solichin ([email protected]) 82
  • 83. Pemrograman Web dengan PHP dan MySQL 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 http://www.aditus.nu/jpgraph/ Achmad Solichin ([email protected]) 83
  • 84. Pemrograman Web dengan PHP dan MySQL Bab 11 Pengenalan DBMS dan MySQL Tentang Database, DBMS, dan RDBMS Tentang MySQL Instalasi MySQL di Windows Koneksi ke Server MySQL dengan MySQL Client Berbagai Tools Administrasi Server MySQL 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 : DBMS Database Tabel Tabel Database Tabel Database Tabel Tabel Field & Record Achmad Solichin ([email protected]) 84
  • 85. Pemrograman Web dengan PHP dan MySQL Gambar 11.1. Hierarki Database Tentang MySQL MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis di bawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL. Tidak seperti Apache yang merupakan software yang dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia yaitu MySQL AB. MySQL AB memegang penuh 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. Beberapa kelebihan MySQL antara lain : Free (bebas didownload) Stabil dan tangguh Fleksibel dengan berbagai pemrograman Security yang baik Dukungan dari banyak komunitas Kemudahan management database. Mendukung transaksi Perkembangan software yang cukup cepat. Instalasi MySQL di Windows Persiapan 1. Download Source MySQL di http://www.mysql.com/downloads/ MySQL versi terakhir saat materi ini dibuat adalah MySQL 5.0.45. Silahkan Anda download versi terakhir tersebut dan simpan di komputer Anda. Pada dasarnya, instalasi untuk setiap versi MySQL tidak jauh berbeda. Proses Instalasi MySQL 1. Setelah Anda mendapatkan source MySQL, selanjutnya Anda perlu mengekstrak file tersebut ke komputer Anda. 2. Jalankan file Setup.exe yang ada di dalam folder source MySQL. Lihat gambar berikut ini ! Achmad Solichin ([email protected]) 85
  • 86. Pemrograman Web dengan PHP dan MySQL Gambar 2.1. File Setup.exe 3. MySQL Setup akan mengekstrak file instalasi MySQL seperti pada gambar berikut ini. Gambar 2.2. Proses Instalasi Dimulai 4. Selanjutnya akan ditampilkan window MySQL Server 5.0 Setup Wizard for MySQL. Klik tombol Next untuk memulai proses instalasi. Gambar 2.3. Memulai Proses Instalasi Achmad Solichin ([email protected]) 86
  • 87. Pemrograman Web dengan PHP dan MySQL 5. Selanjutnya akan ditampilkan pilihan untuk memilih cara instalasi. Pilih Typical jika kita ingin menginstall MySQL yang umumnya digunakan. Gambar 2.4. Pilih tipe instalasi 6. Selanjutnya akan ditampilkan window informasi konfigurasi MySQL, yaitu tipe instalasi dan folder tujuan instalasi. Klik Install untuk memulai proses instalasi. Gambar 2.5. Window Informasi Konfigurasi Instalasi 7. Proses instalasi dimulai. Achmad Solichin ([email protected]) 87
  • 88. Pemrograman Web dengan PHP dan MySQL Gambar 2.6. Window Setup Type 8. Selanjutnya ditampilkan window informasi mengenai MySQL Enterprise. Klik Next untuk melanjutkan. Gambar 2.7. Window MySQL Enterprise Achmad Solichin ([email protected]) 88
  • 89. Pemrograman Web dengan PHP dan MySQL Gambar 2.8. Window informasi MySQL Monitoring 9. Proses instalasi selesai dan akan ditampilkan seperti pada gambar di bawah ini. Jika kita ingin langsung mengkonfigurasikan server MySQL (password, service dll) maka pilihkan checkbox Configure the MySQL Server now dan tekan tombol Finish. Gambar 2.9. Proses instalasi Selesai 10. Selanjutnya ditampilkan window MySQL Server Instance Configuration Wizard. Klik Next untuk melanjutkan. Achmad Solichin ([email protected]) 89
  • 90. Pemrograman Web dengan PHP dan MySQL Gambar 2.10. Window MySQL Server Instance Configuration Wizard 11. Selanjutnya terdapat pilihan tipe konfigurasi yang diinginkan, Detailed Configuration atau Standard Configuration. Pilih dan klik Next untuk melanjutkan. Gambar 2.11. Window Pilihan tipe konfigurasi 12. Selanjutnya terdapat pilihan tipe server yang diinginkan, Developer, Server, atau Dedicated MySQL Server. Pilih salah satu dan klik Next untuk melanjutkan. Achmad Solichin ([email protected]) 90
  • 91. Pemrograman Web dengan PHP dan MySQL Gambar 2.12. Pilihan tipe server MySQL 13. Selanjutnya terdapat pilihan penggunaan database MySQL, untuk Multifunctional, Transactional Only atau Non-Transactional Only. Pilih salah satu dan klik Next untuk melanjutkan. Gambar 2.13. Window Pilihan penggunaan Database. 14. Selanjutnya terdapat setting-an InnoDB Tablespace Settings dimana diminta memilih tempat untuk tablespace InnoDB. Klik Next untuk melanjutkan. Achmad Solichin ([email protected]) 91
  • 92. Pemrograman Web dengan PHP dan MySQL Gambar 2.14. Window InnoDB Tablespace Settings. 15. Selanjutnya terdapat pilihan perkiraan seberapa besar koneksi user ke server. Pilih salah satu dan klik Next untuk melanjutkan. Gambar 2.15. Pilihan Perkiraan Seberapa Besar Koneksi User ke Server 16. Selanjutnya terdapat window untuk memilih nomor PORT yang digunakan untuk MySQL. Next untuk melanjutkan. Achmad Solichin ([email protected]) 92
  • 93. Pemrograman Web dengan PHP dan MySQL Gambar 2.16. Window pilihan port MySQL. 17. Selanjutnya terdapat pilihan nama service MySQL yang akan digunakan oleh Windows. Pilih salah satu dan klik Next untuk melanjutkan. Gambar 2.17. Window pilihan Nama Service MySQL. 18. Selanjutnya diminta memodifikasi security. Pilih password untuk root (user tertinggi di MySQL) dan klik Next untuk melanjutkan. Achmad Solichin ([email protected]) 93
  • 94. Pemrograman Web dengan PHP dan MySQL Gambar 2.18. Window Security Setting. 19. Proses konfigurasi selesai dan klik Execute untuk menyimpan konfigurasi dan menjalankan servis MySQL. Gambar 2.19. Proses konfigurasi server MySQL selesai. Achmad Solichin ([email protected]) 94
  • 95. Pemrograman Web dengan PHP dan MySQL Koneksi ke Server MySQL dengan MySQL Client MySQL menyediakan tools untuk melakukan koneksi ke server MySQL, yaitu MySQL Command-Line Client. Tools tersebut dapat diakses dari menu Start > All Programs > MySQL > MySQL Server 5> MySQL Command Line Client. Tampilannya kurang lebih tampak pada gambar berikut ini: Gambar 12.13. MySQL Command Line Client Untuk melakukan koneksi ke server MySQL, Anda cukup mengetikkan password koneksi MySQL. Password ini didefinisikan pada saat proses instalasi. Jika passwordnya benar, maka akan ditampilkan window sbb : Gambar 2.20. Koneksi ke Server MySQL dengan User root Setelah koneksi ke server MySQL berhasil dilakukan, maka akan ditampilkan prompt mysql> seperti pada gambar 12.14. Query atau perintah-perintah MySQL dapat dituliskan pada prompt MySQL ini. Akhiri setiap query dengan titik-koma (;). Selanjutnya untuk keluar dari server MySQL dapat dilakukan dengan mengetikkan perintah quit atau q pada prompt mysql>. Achmad Solichin ([email protected]) 95
  • 96. Pemrograman Web dengan PHP dan MySQL Berbagai MySQL Client untuk 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. Gambar 2.21. Tampilan MySQL command line client 2. MySQL-Front MySQL-Front merupakan front-end MySQL berbasis Windows yang cukup banyak digunakan. MySQL-Front memiliki user interface yang cukup mudah digunakan, bahkan oleh user pemula. Pada awalnya MySQL-Front merupakan software yang free, namun mulai versi 3.0 ke atas, software ini menjadi software yang bersifat shareware dengan masa percobaan selama 30 hari. Jika Anda ingin mencoba software ini, cobalah MySQL-Front versi 2.5 karena selain masih bebas untuk didownload, versi 2.5 cukup stabil dan sudah teruji. Situs resmi MySQL-Front beralamat di http://www.mysqlfront.de Gambar 2.22. Tampilan MySQL Front Achmad Solichin ([email protected]) 96
  • 97. Pemrograman Web dengan PHP dan MySQL 3. 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 dapat didownload secara gratis di http://www.phpmyadmin.net Gambar 2.23. Tampilan halaman PHPMyAdmin 4. 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 Gambar 2.24. Tampilan layar SQLYog Achmad Solichin ([email protected]) 97
  • 98. Pemrograman Web dengan PHP dan MySQL 5. MySQL Administrator dan MySQL Query Browser MySQL Administrator dan MySQL Query Browser merupakan tools administrasi database MySQL yang tersedia di situs resmi MySQL Keduanya dapat didownload di alamat (http://www.mysql.com). http://www.mysql.com/products/tools/. Beberapa fitur MySQL Administrator, antara lain: • Administrasi user. • Halaman monitoring server. • Optimatisasi MySQL • Informasi umum keadaan server • Status replication. • Cross-platform. Beberapa fitur MySQL Query Browser, antara lain: • Tampilan dan menu yang mudah (user-friendly). • Mendukung beberapa window hasil (result preview) sekaligus. • Kemudahan dalam menulis query dengan visual tools. • Manipulasi database. • Membuat dan manipulasi tabel. • SQL statements debugging. Gambar 2.25. Tampilan layar MySQL Administrator dan MySQL Control Center Achmad Solichin ([email protected]) 98
  • 99. Pemrograman Web dengan PHP dan MySQL Bab 12 Pengenalan Structured Query Language Apa Itu SQL ? Membuat, Menampilkan, Membuka dan Menghapus Database Membuat, Mengubah dan Menghapus Table Menambah Record dengan INSERT Mengedit Record dengan UPDATE Menghapus Record dengan DELETE Menampilkan Record dengan SELECT Apa Itu 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 ANSII 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 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 Membuat, Menampilkan, Membuka dan Menghapus Database 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 di C:mysqldata. Di dalam folder tersebut nantinya akan terdapat file-file yang berhubungan dengan tabel dalam database. Achmad Solichin ([email protected]) 99
  • 100. Pemrograman Web dengan PHP dan MySQL 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) Membuat 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 : +--------------+ | Database | +--------------+ | mahasiswa | | mysql | | test | +--------------+ 3 rows in set (0.02 sec) 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 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” : Achmad Solichin ([email protected]) 100
  • 101. Pemrograman Web dengan PHP dan MySQL DROP DATABASE mahasiswa; Membuat, Mengubah dan Menghapus Table 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 NUMERIK TIPE TINYINT SMALLINT MEDIUMINT INT BIGINT FLOAT DOUBLE DECIMAL DATE/TIME DATE DATETIME TIMESTAMP TIME YEAR STRING CHAR VARCHAR TINYTEXT TEXT BLOB KETERANGAN -128 s/d 127 SIGNED 0 s/d 255 UNSIGNED -32768 s/d 32767 SIGNED 0 s/d 65535 UNSIGNED. -8388608 s/d 8388607 SIGNED 0 s/d 16777215 UNSIGNED -2147483648 s/d 2147483647 SIGNED 0 s/d 4294967295 UNSIGNED. -9223372036854775808 s/d 9223372036854775807 SIGNED 0 s/d 18446744073709551615 UNSIGNED. Bilangan pecahan presisi tunggal Bilangan pecahan presisi ganda Bilangan dengan desimal Tanggal dengan format YYYY-MM-DD Tanggal dan waktu dengan format : YYYY-MM-DD HH:MM:SS Tanggal dan waktu dengan format : YYYYMMDDHHMMSS Waktu dengan format HH:MM:SS Tahun dengan format YYYY 0 – 255 karakter 0 – 255 karakter String dengan panjang maksimum 255 karakter String dengan panjang maksimum 65535 karakter String dengan panjang maksimum 65535 Achmad Solichin ([email protected]) 101
  • 102. Pemrograman Web dengan PHP dan MySQL MEDIUMTEXT MEDIUMBLOB LONGTEXT LONGBLOB KHUSUS ENUM SET karakter String dengan panjang 16777215 karakter String dengan panjang 16777215 karakter String dengan panjang 4294967295 karakter String dengan panjang 4294967295 karakter maksimum maksimum maksimum maksimum Tipe data dengan isi tertentu Tipe data dengan isi tertentu Sebagai contoh, kita akan membuat tabel baru dengan struktur sebagai berikut : Nama tabel : mhs No Nama Field 1 nim 2 nama 3 tgllahir 4 alamat Tipe Varchar Varchar Date Text Panjang 10 30 - 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 : Achmad Solichin ([email protected]) 102
  • 103. Pemrograman Web dengan PHP dan MySQL SHOW TABLES; Perintah di atas akan menampilkan seluruh tabel yang sudah ada dalam suatu database. Contoh hasil dari perintah di atas adalah sebagai berikut : +---------------------+ | Tables_in_mahasiswa | +---------------------+ | mhs | +---------------------+ 1 rows in set (0.01 sec) 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) | | PRI | | | | nama | varchar(30) | | | | | | tgllahir | date | YES | | NULL | | | alamat | text | YES | | NULL | | +----------+-------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) 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. 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 “definisi_field_baru” (nama field, tipe dan option lain). baru dengan » ADD INDEX nama_index Achmad Solichin ([email protected]) 103
  • 104. Pemrograman Web dengan PHP dan MySQL Option ini digunakan untuk “nama_index” pada tabel. menambahkan index dengan nama » 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 : 1. Menambahkan field “agama” ke tabel mhs ALTER TABLE mhs ADD agama varchar(15) NOT NULL; 2. Menambahkan primary key pada suatu tabel ALTER TABLE mhs ADD PRIMARY KEY(nim); 3. Mengubah panjang field agama menjadi 10 karakter dalam tabel mhs ALTER TABLE mhs CHANGE agama agama varchar(10); 4. Mengubah tipe field agama menjadi char(2) dalam tabel mhs ALTER TABLE mhs MODIFY agama char(2) NOT NULL; 5. Menghapus field agama dari tabel mhs ALTER TABLE mhs DROP agama; 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. 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; Achmad Solichin ([email protected]) 104
  • 105. Pemrograman Web dengan PHP dan MySQL 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 ('0411500121','Achmad Solichin', '1982-06-05','Jakarta Selatan'); 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 : +------------+-----------------+------------+-----------------+ | nim | nama | tgllahir | alamat | +------------+-----------------+------------+-----------------+ | 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan | +------------+-----------------+------------+-----------------+ 1 row in set (0.19 sec) Latihan Tambahkan 10 data (record) baru ke tabel mhs sehingga isi tabel mhs menjadi sebagai berikut ! +------------+-----------------+------------+-----------------+ | nim | nama | tgllahir | alamat | +------------+-----------------+------------+-----------------+ | 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan | | 0411500123 | Chotimatul M | 1983-03-12 | Jakarta Selatan | | 0422500111 | Bajuri | 1983-03-25 | Tangerang | | 0444500011 | Oneng | 1980-05-22 | Jakarta Utara | | 0433500115 | Unyil | 1980-08-29 | Tangerang | Achmad Solichin ([email protected]) 105
  • 106. Pemrograman Web dengan PHP dan MySQL | 0411500116 | Ujang | 1984-10-06 | Jakarta Barat | | 0422500316 | Jebleh | 1984-10-06 | Cengkareng | | 0433500333 | Dono | 1984-10-06 | Jakarta Selatan | | 0422500433 | Dini | 1986-12-10 | Jakarta Selatan | | 0411500331 | Dana | 1986-07-11 | Jakarta Selatan | | 0444500315 | Dani | 1985-01-01 | Jakarta Barat | +------------+-----------------+------------+-----------------+ 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 masingmasing field. Perintah WHERE diikuti oleh kondisi tertentu yang menentukan record mana yang 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 ! 1. Mengubah alamat menjadi “Tangerang” untuk mahasiswa yang mempunyai nim 0411500121 UPDATE mhs SET alamat='Tangerang' WHERE nim='0411500121'; Dan jika query di atas berhasil dieksekusi maka akan ditampilkan hasil sebagai berikut : Query OK, 1 row affected (0.27 sec) Rows matched: 1 Changed: 1 Warnings: 0 2. Mengubah tanggal lahir menjadi “12 Maret 1983” dan alamat menjadi “Bandung” untuk mahasiswa yang mempunyai nim 0422500316 UPDATE mhs SET tgllahir='1982-06-05', alamat='Jakarta Selatan' WHERE nim='0422500316'; Achmad Solichin ([email protected]) 106
  • 107. Pemrograman Web dengan PHP dan MySQL 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 (didelete). 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 ! 1. Menghapus data mahasiswa yang mempunyai nim 0411500331 DELETE FROM mhs WHERE nim='0411500331'; Dan jika query di atas berhasil dieksekusi maka akan ditampilkan hasil sebagai berikut : Query OK, 1 row affected (0.11 sec) 2. Menghapus semua mahasiswa yang beralamat di “Bandung” DELETE FROM mhs WHERE alamat='Bandung'; 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 ! 1. Menampilkan seluruh data atau record (*) dari tabel mhs SELECT * FROM mhs; Achmad Solichin ([email protected]) 107
  • 108. Pemrograman Web dengan PHP dan MySQL Dan jika query di atas berhasil dieksekusi maka akan ditampilkan hasil sebagai berikut : +------------+-----------------+------------+-----------------+ | nim | nama | tgllahir | alamat | +------------+-----------------+------------+-----------------+ | 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan | | 0411500123 | Chotimatul M | 1983-03-12 | Jakarta Selatan | | 0422500111 | Bajuri | 1983-03-25 | Tangerang | | 0444500011 | Oneng | 1980-05-22 | Jakarta Utara | | 0433500115 | Unyil | 1980-08-29 | Tangerang | | 0411500116 | Ujang | 1984-10-06 | Jakarta Barat | | 0422500316 | Jebleh | 1982-06-05 | Jakarta Selatan | | 0433500333 | Dono | 1984-10-06 | Jakarta Selatan | | 0422500433 | Dini | 1986-12-10 | Jakarta Selatan | | 0444500315 | Dani | 1985-01-01 | Jakarta Barat | +------------+-----------------+------------+-----------------+ 10 rows in set (0.25 sec) 2. 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 : +------------+-----------------+ | nim | nama | +------------+-----------------+ | 0411500121 | Achmad Solichin | | 0411500123 | Chotimatul M | | 0422500111 | Bajuri | | 0444500011 | Oneng | | 0433500115 | Unyil | | 0411500116 | Ujang | | 0422500316 | Jebleh | | 0433500333 | Dono | | 0422500433 | Dini | | 0444500315 | Dani | +------------+-----------------+ 10 rows in set (0.11 sec) 3. Menampilkan data mahasiswa yang mempunyai nim 0411500123 SELECT * FROM mhs WHERE nim = '0411500123'; Hasil query di atas adalah sbb : +------------+--------------+------------+-----------------+ | nim | nama | tgllahir | alamat | +------------+--------------+------------+-----------------+ | 0411500123 | Chotimatul M | 1983-03-12 | Jakarta Selatan | +------------+--------------+------------+-----------------+ 1 row in set (0.06 sec) 4. Menampilkan data semua mahasiswa yang beralamat di luar Jakarta Selatan Achmad Solichin ([email protected]) 108
  • 109. Pemrograman Web dengan PHP dan MySQL SELECT * FROM mhs WHERE alamat != 'Jakarta Selatan'; Hasil query di atas adalah sbb : +------------+--------+------------+---------------+ | nim | nama | tgllahir | alamat | +------------+--------+------------+---------------+ | 0422500111 | Bajuri | 1983-03-25 | Tangerang | | 0444500011 | Oneng | 1980-05-22 | Jakarta Utara | | 0433500115 | Unyil | 1980-08-29 | Tangerang | | 0411500116 | Ujang | 1984-10-06 | Jakarta Barat | | 0444500315 | Dani | 1985-01-01 | Jakarta Barat | +------------+--------+------------+---------------+ 5 rows in set (0.02 sec) 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. 5. Menampilkan data semua mahasiswa yang beralamat di Jakarta Selatan dan lahir pada tahun 1982. SELECT * FROM mhs WHERE alamat = 'Jakarta Selatan' && YEAR(tgllahir) = '1982'; Hasil query di atas adalah sbb : +------------+-----------------+------------+-----------------+ | nim | nama | tgllahir | alamat | +------------+-----------------+------------+-----------------+ | 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan | | 0422500316 | Jebleh | 1982-06-05 | Jakarta Selatan | +------------+-----------------+------------+-----------------+ 2 rows in set (0.00 sec) 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 Achmad Solichin ([email protected]) 109
  • 110. Pemrograman Web dengan PHP dan MySQL hari dari suatu tanggal, dan masih banyak fungsi lain yang berhubungan dengan tanggal. 6. 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 : +------------+-----------------+------+ | nim | nama | umur | +------------+-----------------+------+ | 0411500121 | Achmad Solichin | 24 | | 0411500123 | Chotimatul M | 23 | | 0422500111 | Bajuri | 23 | | 0444500011 | Oneng | 26 | | 0433500115 | Unyil | 26 | | 0411500116 | Ujang | 22 | | 0422500316 | Jebleh | 24 | | 0433500333 | Dono | 22 | | 0422500433 | Dini | 20 | | 0444500315 | Dani | 21 | +------------+-----------------+------+ 10 rows in set (0.05 sec) 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. 7. Menampilkan semua mahasiswa jurusan TI SELECT * FROM mhs WHERE SUBSTRING(nim,3,2)='11'; Hasil query di atas adalah sbb : +------------+-----------------+------------+-----------------+ | nim | nama | tgllahir | alamat | +------------+-----------------+------------+-----------------+ | 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan | | 0411500123 | Chotimatul M | 1983-03-12 | Jakarta Selatan | | 0411500116 | Ujang | 1984-10-06 | Jakarta Barat | +------------+-----------------+------------+-----------------+ 3 rows in set (0.19 sec) Keterangan Pada query di atas terdapat fungsi SUBSTRING yang berguna untuk memotong suatu string. Format fungsi SUBSTRING adalah sebagai berikut : SUBSTRING(field, awal, panjang) 8. Menampilkan semua data mahasiswa secara urut berdasarkan nama dengan perintah ORDER BY SELECT * FROM mhs ORDER BY nama; Achmad Solichin ([email protected]) 110
  • 111. Pemrograman Web dengan PHP dan MySQL Hasil query di atas adalah sbb : +------------+-----------------+------------+-----------------+ | nim | nama | tgllahir | alamat | +------------+-----------------+------------+-----------------+ | 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan | | 0422500111 | Bajuri | 1983-03-25 | Tangerang | | 0411500123 | Chotimatul M | 1983-03-12 | Jakarta Selatan | | 0444500315 | Dani | 1985-01-01 | Jakarta Barat | | 0422500433 | Dini | 1986-12-10 | Jakarta Selatan | | 0433500333 | Dono | 1984-10-06 | Jakarta Selatan | | 0422500316 | Jebleh | 1982-06-05 | Jakarta Selatan | | 0444500011 | Oneng | 1980-05-22 | Jakarta Utara | | 0411500116 | Ujang | 1984-10-06 | Jakarta Barat | | 0433500115 | Unyil | 1980-08-29 | Tangerang | +------------+-----------------+------------+-----------------+ 10 rows in set (0.01 sec) 9. Menampilkan semua data mahasiswa secara urut berdasarkan nim secara DESCENDING SELECT * FROM mhs ORDER BY nim DESC; Hasil query di atas adalah sbb : +------------+-----------------+------------+-----------------+ | nim | nama | tgllahir | alamat | +------------+-----------------+------------+-----------------+ | 0444500315 | Dani | 1985-01-01 | Jakarta Barat | | 0444500011 | Oneng | 1980-05-22 | Jakarta Utara | | 0433500333 | Dono | 1984-10-06 | Jakarta Selatan | | 0433500115 | Unyil | 1980-08-29 | Tangerang | | 0422500433 | Dini | 1986-12-10 | Jakarta Selatan | | 0422500316 | Jebleh | 1982-06-05 | Jakarta Selatan | | 0422500111 | Bajuri | 1983-03-25 | Tangerang | | 0411500123 | Chotimatul M | 1983-03-12 | Jakarta Selatan | | 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan | | 0411500116 | Ujang | 1984-10-06 | Jakarta Barat | +------------+-----------------+------------+-----------------+ 10 rows in set (0.00 sec) 10. 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 : +------------+-----------------+------------+-----------------+ | nim | nama | tgllahir | alamat | +------------+-----------------+------------+-----------------+ | 0411500116 | Ujang | 1984-10-06 | Jakarta Barat | | 0411500121 | Achmad Solichin | 1982-06-05 | Jakarta Selatan | | 0411500123 | Chotimatul M | 1983-03-12 | Jakarta Selatan | | 0422500111 | Bajuri | 1983-03-25 | Tangerang | | 0422500316 | Jebleh | 1982-06-05 | Jakarta Selatan | +------------+-----------------+------------+-----------------+ 5 rows in set (0.13 sec) Achmad Solichin ([email protected]) 111
  • 112. Pemrograman Web dengan PHP dan MySQL 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 Achmad Solichin ([email protected]) 112
  • 113. Pemrograman Web dengan PHP dan MySQL Bab 13 Aplikasi Berita dengan PHP dan MySQL Merancang Struktur Database Membuat File Koneksi Database Membuat Halaman Input Berita Menampilkan Berita Terbaru di Halaman Depan Menampilkan Berita Lengkap Membuat Halaman Arsip Berita Membuat Halaman Edit Berita Membuat Halaman Delete Berita CSS sebagai Pemanis Tampilan 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 id_berita id_kategori judul headline isi pengirim tanggal Tipe Int Int Varchar Text Text Varchar Datetime Tabel “kategori” Nama Field Tipe id_kategori Int nm_kategori Varchar deskripsi Varchar Panjang 5 3 100 15 - Keterangan Primary Key, Auto Increment Foreign Key Judul berita Berita singkat Berita lengkap Pengirim berita Tanggal dan waktu kirim berita Panjang 3 30 200 Keterangan Primary Key, Auto Increment Nama kategori Deskripsi kategori 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) ) TYPE=MyISAM; 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), ) TYPE=MyISAM; Catatan : Isikan sejumlah data ke tabel kategori langsung di database Achmad Solichin ([email protected]) 113
  • 114. Pemrograman Web dengan PHP dan MySQL Membuat File Koneksi Database Program 1 Nama File Deskripsi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php $host $user $pass $dbnm : koneksi.php : Program koneksi ke database. = = = = "localhost"; "root"; ""; "pw2"; $conn = mysql_connect ($host, $user, $pass); if ($conn) { $buka = mysql_select_db ($dbnm); if (!$buka) { die ("Database tidak dapat dibuka"); } } else { die ("Server MySQL tidak terhubung"); } ?> Membuat Halaman Input Berita Program 2 Nama File Deskripsi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 : input_berita.php : 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','$pengirim', now())"; $sql = mysql_query ($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> Achmad Solichin ([email protected]) 114
  • 115. Pemrograman Web dengan PHP dan MySQL 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 <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"> <? $query = "SELECT id_kategori, nm_kategori FROM kategori ORDER BY nm_kategori"; $sql = mysql_query ($query); while ($hasil = mysql_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> Menampilkan Berita Terbaru di Halaman Depan Program 3 Nama File Deskripsi 1 2 3 4 5 6 : index.php : Program menampilkan 5 berita terbaru di halaman depan. <?php include "koneksi.php"; ?> <html> <head><title>Index Berita</title> Achmad Solichin ([email protected]) 115
  • 116. Pemrograman Web dengan PHP dan MySQL 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 <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> <? $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 = mysql_query ($query); while ($hasil = mysql_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> Menampilkan Berita Lengkap Program 4 Nama File Deskripsi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 : berita_lengkap.php : 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> <? $query = "SELECT A.id_berita, B.nm_kategori, A.judul, A.isi, A.pengirim, A.tanggal FROM berita A, kategori B WHERE Achmad Solichin ([email protected]) 116
  • 117. Pemrograman Web dengan PHP dan MySQL 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 A.id_kategori=B.id_kategori && A.id_berita='$id_berita'"; $sql = mysql_query ($query); $hasil = mysql_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> Membuat Halaman Arsip Berita Program 5 Nama File Deskripsi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 : arsip_berita.php : 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; } } </script> </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> <? $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 = mysql_query ($query); while ($hasil = mysql_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']); // Achmad Solichin ([email protected]) 117
  • 118. Pemrograman Web dengan PHP dan MySQL 38 39 40 41 42 43 44 45 46 47 48 49 50 51 //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> Membuat Halaman Edit Berita Program 6 Nama File Deskripsi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 : edit_berita.php : 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 = mysql_query ($query); $hasil = mysql_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 = mysql_query ($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>"; Achmad Solichin ([email protected]) 118
  • 119. Pemrograman Web dengan PHP dan MySQL 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 } } ?> <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="<? echo $judul ?>"></td> </tr> <tr> <td>Kategori</td> <td>: <select name="kategori"> <? $query = "SELECT id_kategori, nm_kategori FROM kategori ORDER BY nm_kategori"; $sql = mysql_query ($query); while ($hasil = mysql_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"><?=$headline?></textarea></td> </tr> <tr> <td>Isi Berita</td> <td>: <textarea name="isi" cols="50" rows="10"><?=$isi?></textarea></td> </tr> <tr> <td>Pengirim</td> <td>: <input type="text" name="pengirim" size="20" value="<?=$pengirim?>"></td> </tr> <tr> <td>&nbsp;</td> <td>&nbsp;&nbsp; <input type="hidden" name="hidberita" value="<?=$id_berita?>"> <input type="submit" name="Edit" value="Edit Berita">&nbsp; <input type="reset" name="reset" value="Cancel"></td> </tr> </table> </FORM> Achmad Solichin ([email protected]) 119
  • 120. Pemrograman Web dengan PHP dan MySQL 95 96 </body> </html> Membuat Halaman Delete Berita Program 7 Nama File Deskripsi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 : delete_berita.php : 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> <? //proses delete berita if (!empty($id_berita) && $id_berita != "") { $query = "DELETE FROM berita WHERE id_berita='$id_berita'"; $sql = mysql_query ($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> CSS sebagai Pemanis Tampilan Program 8 Nama File Deskripsi 1 2 3 4 5 6 : style.css : File CSS sebagai pemanis tampilan. body { font-family:verdana; font-size:11px; } a { color:#0000ff; Achmad Solichin ([email protected]) 120
  • 121. Pemrograman Web dengan PHP dan MySQL 7 8 9 10 11 12 13 14 15 16 text-decoration:underline; } a:hover { color:#ffffff; background-color:#8AC452; text-decoration:none; } input, textarea, select, option { font-family:verdana; } Achmad Solichin ([email protected]) 121
  • 122. Pemrograman Web dengan PHP dan MySQL Tentang Penulis Achmad Solichin. Adalah Lulusan Teknik Informatika, Fakultas Teknologi Informasi, Universitas Budi Luhur, Jakarta (S1, 2005). Saat ini sedang menempuh pendidikan S2 di Magister Teknologi Informasi Universitas Indonesia (2008). Kegiatan sehari‐hari adalah sebagai Dosen di Universitas Budi Luhur (http://www.bl.ac.id), sekaligus sebagai Kepala Laboratorium Komputer Universitas Budi Luhur (http://labkom.bl.ac.id). Kegiatan lain aktif sebagai programmer, web developer, system analyst dan memberikan pelatihan di berbagai bidang komputer serta membuat tutorial‐tutorial praktis di bidang komputer. Penulis juga terlibat dalam pengembangan E‐Learning di Universitas Budi Luhur. Penulis memiliki situs utama di http://achmatim.net yang berisi berbagai tutorial praktis seputar pemrograman, web design, database dan materi kuliah. Penulis dapat dihubungi melalui email di [email protected] atau YM achmatim. Achmad Solichin ([email protected]) 122