Pengenalan PHP
Pada bab ini Anda akan dikenalkan dengan PHP sebagai salah satu server side
programming, pengertian server side programming dan client side programming, serta
alasan mengapa memilih PHP. Tak lupa pula akan dijelaskan tool apa saja yang
diperlukan untuk belajar PHP.
Tentang Client Side dan Server Side Programming
PHP atau merupakan singkatan rekursif dari PHP : Hypertext Preprocessor adalah suatu
bahasa pemrograman yang termasuk kategori server side programming. Wah… apaan
tuh maksudnya server side programming? OK… server side programming adalah jenis
bahasa pemrograman yang nantinya script/program ini akan dijalankan oleh
server. Selanjutnya hasil pengolahan script/program ini akan dikirim ke client
sebagai output.
Sebagai gambaran dari server side programming adalah sebagai berikut ini.
Misalkan Anda ingin membuat script/program untuk menjumlahkan dua buah bilangan
dengan menggunakan PHP. Nah… andaikan Anda telah membuat form untuk input
kedua bilangan dan membuat script PHP untuk mengolah penjumlahan kedua bilangan.
Dalam hal ini, keduanya (form dan script PHP) sama-sama diupload ke server.
Selanjutnya misalkan ada seorang user yang ingin menjumlahkan dua bilangan, maka
user tadi akan mengakses ke server. Apa yang diakses? Tentunya form input bilangan
yang akan dijumlahkan. Dalam hal ini posisi si user adalah sebagai client. Nah… setelah si
user mengisi bilangan pada form, selanjutnya dia mensubmitnya. Trus… kemana
mensubmitnya? Karena Anda tadi membuat script PHP dan form input telah diarahkan
ke script PHP ini , maka data input akan disubmit ke server untuk diolah
menggunakan script PHP yang telah Anda buat tadi. Setelah input diolah (dijumlahkan),
maka hasilnya akan kembali dikirim ke client sebagai output sehingga si user
mengetahui hasil penjumlahan dua bilangan yang diinputkan melalui form tadi.
Penjelasan detail tentang cara mengkaitkan antara form dan script PHP sebagai
pengolahnya akan dijelaskan di bab tentang pemrosesan form.
Trus… selain server side programming, apakah ada jenis yang lain? Oh.. Ada donk yaitu
client side programming. Jenis programming ini merupakan kebalikan dari server side
2
programming. Untuk client side programming, script/program akan diproses di dalam
client sendiri.
Untuk menggambarkan client side programming, kita ambil contoh kasus yang sama
dengan sebelumnya yaitu script menjumlahkan dua bilangan. OK… misalkan Anda
membuat form input untuk memasukkan dua bilangan, serta script untuk
menjumlahkannya. Selanjutnya keduanya ditaruh/diupload ke server. Misalkan ada user
yang ingin menjumlahkan dua bilangan, maka dia akan mengakses ke server form input.
Karena Anda menggunakan script pengolah berjenis client side programming, maka
script ini juga akan terakses oleh si user. Biasanya script ini diletakkan dalam satu
halaman yang sama dengan form. Oleh karena itu bila si user mengakses form, maka
script juga otomatis akan terakses. Setelah si user memasukkan bilangan ke dalam form,
lalu dia mensubmitnya. Trus… kemana submitnya? Yap… submit ini tidak ditujukan ke
server melainkan ke client itu sendiri dan diolah oleh script yang ikut terakses tadi.
Kemudian hasilnya ditampilkan sebagai output.
Salah satu contoh bahasa pemrograman web yang berjenis client side programming
adalah Javascript.
Untuk melihat perbedaan yang kentara antara bahasa pemrograman web yang berjenis
server side programming dan client side programming adalah bisa atau tidaknya
script/program itu ditampilkan ke dalam browser ketika mengaksesnya. Apa
maksudnya?
Cobalah akses suatu halaman situs yang di dalamnya terdapat Javascript, misalnya
http://detik.com. Ketika Anda lihat source halaman web ini (klik kanan, klik View
Page Source pada Firefox atau klik nanan, klik View Source pada IE), maka dapat Anda
lihat isi kode script Javascriptnya, yang biasanya ditandai dengan
<script type="text/javascript" language="javascript">
dan diakhiri dengan tanda
</script>
Mengapa kode Javascript itu bisa terlihat? Ya… karena script itu nantinya akan diproses
oleh komputer client, sehingga kode itu ibaratnya harus didownload terlebih dahulu ke
dalam client.
Selanjutnya bandingkan ‘penampakannya’ ☺ bila Anda mengakses script PHP, misalkan
script yang telah saya buat untuk percobaan (http://rosihanari.net/test.php). Ketika
Anda lihat dibrowser, maka yang tampil adalah hanyalah berupa teks pesan saja. Dan
3
apabila Anda lihat sourcenya, maka tidak tampak perintah-perintah yang berupa kode
PHP. Padahal isi dari script test.php ini adalah sebagai berikut:
<?php
echo "Hello apa kabar?<br />";
echo "Terimakasih atas kepercayaan Anda pada Rosihan Ari sebagai pembimbing belajar
PHP Anda";
?>
Mengapa bisa demikian? Ya… karena script test.php ini telah dijalankan atau diproses di
server dan bukan di client. Dalam hal ini client hanya menerima output hasil pengolahan
script di server.
Mudah-mudahan dari uraian di atas Anda sudah bisa membedakan apa itu server side
programming dan client side programming.
Kenapa PHP?
Di samping PHP, sebenarnya ada beberapa jenis pemrograman lain yang termasuk
server side programming yaitu JSP (Java Server Pages), ASP (Active Server Pages),
Phyton, dan Perl, serta masih ada lagi beberapa yang lain. Namun mengapa saya
rekomendasikan PHP untuk Anda pelajari? Ya… karena PHP memiliki beberapa
kelebihan antara lain:
1. Bahasa pemrograman PHP sangat mudah dipelajari karena mirip dengan bahasa
C/C++
2. PHP mudah diimplementasikan karena software PHP servernya 100% Free
3. Kebanyakan server web hosting mensupport PHP
4. PHP paling banyak digunakan oleh web programmer di seluruh dunia
4
Statistik situs yang menggunakan PHP (sekitar 20 juta situs)
ini
Menurut TIOBE index, PHP merupakan bahasa pemrograman yang memiliki
tingkat rating no. 4 setelah Java, C dan C++ di akhir tahun 2008 ini (Sumber:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html).
Selain itu trend penggunaan PHP sebagai bahasa pemrograman selama kurun
waktu 2002 s/d 2008 adalah sebagai berikut
Sumber : http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
5
Dari grafik di atas tampak bahwa PHP masuk dalam 10 besar bahasa
pemrograman yang paling banyak digunakan, dan PHP termasuk urutan nomor 2
pemrograman favorit.
5. Anda bisa melakukan instalasi PHP server sendiri dengan mudah di komputer
pribadi Anda untuk belajar.
6. Integrasi antara PHP dan database mudah untuk diimplementasikan karena PHP
mensupport banyak database (DBMS), seperti MySQL, MS. Access, Oracle, DB2,
Dbase, Interbase dll.
Tool Apa Saja Yang Diperlukan Untuk Belajar PHP?
Untuk memudahkan Anda belajar PHP, berikut ini beberapa tool yang sebaiknya Anda
miliki :
1. Software web server, bisa dipilih salah satu antara Apache, IIS, PWS (100 % free)
2. Software PHP server (100% free)
3. Software database, sebaiknya pilih MySQL karena 100% free. Bila sudah
menguasai PHP + MySQL bisa dikembangkan dengan database yang lain.
4. Text Editor, misalkan Notepad atau Notepad++. Dalam hal ini saya
merekomendasikan Notepad++ karena selain software ini 100% free, juga
mensupport untuk memudahkan penulisan bahasa program.
5. Web Editor, misalnya Dreamweaver atau Frontpage (sifatnya optional) sebagai
pendukung saja.
Untuk tool no. 1 s/d 3 sebenarnya Anda tidak perlu mencarinya atau menginstalasi
secara terpisah, karena ada software paket yang di dalamnya sudah tersedia web server
Apache, PHP server dan MySQL. Dalam hal ini saya merekomendasikan AppServ
(http://www.appservnetwork.com), XAMPP atau EasyPHP sebagai softwarenya, yang
kesemuanya absolutely FREE.
BAB 2
Instalasi PHP dan Software
Pendukungnya
Pada bab ini Anda akan mempelajari bagaimana cara melakukan instalasi PHP server
dan juga pendukungnya.
Agar script PHP yang Anda buat bisa berjalan, Anda terlebih dahulu harus sudah
menginstall PHP server di komputer Anda. Oya... dalam hal ini kita akan belajar
menginstal PHP server ini di komputer Anda sendiri untuk keperluan belajar. Anda tidak
perlu menjalankan script PHP di server khusus yang spesifikasinya besar atau di server
hosting, tapi cukup di komputer Anda pribadi.
OK... kita mulai masuk ke pokok bahasan utama. Untuk bisa menjalankan PHP, Anda
butuh beberapa software pendukungnya antara lain: Web Server, dan juga database
sebagai pelengkapnya. Database di sini diperlukan ketika Anda ingin membuat aplikasi
web yang diintegrasikan dengan database.
Ada beberapa macam software yang bisa digunakan sebagai web server, diantaranya
adalah : Apache, IIS, dan Personal Web Server. Sedangkan untuk software database,
atau sering disebut dengan istilah DBMS (Database Management System), Anda bisa
menggunakan MySQL, SQL Server, MS. Access, dll.
Nah... di sini saya hanya akan mengajarkan bagaimana melakukan instalasi PHP server,
Apache sebagai web servernya dan juga MySQL sebagai DBMS nya. Mengapa saya
memilih Apache dan MySQL? Ya... karena hampir seluruh server hosting telah
mendukung kedua software. Selain itu keduanya adalah free sehingga tidak perlu
khawatir lagi terkait lisensinya.
OK... untuk menginstal PHP dan pendukungnya, Anda tidak perlu melakukan instalasi
satu persatu, namun bisa langsung sekaligus semuanya. Lho kok bisa? Ya... karena saat
ini banyak tersedia software bundling yang di dalamnya sudah ada PHP server, Apache
dan MySQL nya. Beberapa di antaranya adalah AppServ, XAMPP dan EasyPHP. Tapi
dalam hal ini saya sangat merekomendasikan AppServ karena konfigurasinya yang
sangat mudah dibandingkan yang lain.
7
Instalasi AppServ
Berikut ini cara melakukan instalasi AppServ di komputer Anda.
1. Download software AppServ ini di http://appservnetwork.com
2. OK... setelah Anda mendownloadnya, silakan double click file hasil downloadnya.
3. Secara default, letak file AppServ untuk instalasi ini adalah di C:\AppServ
4. Bila pada instalasi AppServ muncul kotak dialog seperti ini, maka pilihlah semua
option yang ada
Option ini menunjukkan software apa saja dalam AppServ yang ingin
diinstal, dalam hal ini pilihlah semuanya (Apache, MySQL, PHP server dan
phpMyAdmin).
Catatan: phpMyAdmin adalah software untuk mempermudah pengelolaaan
database MySQL
5. Bila sampai pada tahap tampilan instalasi seperti di bawah ini
8
Isikan Name Server nya dengan nama Anda atau apalah sebarang. Nama itu
nantinya dipakai sebagai nama server webnya. Sebaiknya jangan ada spasi untuk
nama servernya. Nama server nanti bisa dipanggil di browser, misal kalau nama
servernya ‘rosihanari’, maka Anda dapat mengakses http://rosihanari di browser
Anda.
6. Selanjutnya apabila instalasi telah sampai pada tampilan berikut ini
Isikan password untuk username: root guna mengakses database MySQL. Oya…
sebaiknya option Enable InnoDB Anda aktifkan supaya MySQL bisa mensupport
relasi dan integritas antara tabel. Apa kelebihan InnoBD? Silakan baca artikel
saya di
9
http://blog.rosihanari.net/foreign-key-relationship-dan-referential-integrity-
di-mysql/
7. Apabila proses instalasi selesai, maka selanjutnya cobalah buka browser Anda
dan arahkan URLnya ke http://namaserver atah http://localhost yang telah Anda
berikan sebelumnya pada proses instalasi. Bila browsernya menampilkan
halaman berikut ini, maka instalasi AppServ sukses.
8. Halaman yang tampil di atas adalah hasil dari akses file index.php yang terletak
dalam direktori C:\AppServ\www. Jadi... file-file web dan juga script PHP yang
nantinya akan Anda buat harus diletakkan di direktori ini . Apakah bisa
diletakkan di tempat lain? Oh bisa saja... bagaimana caranya, simak di Bab 3
tentang bagaimana mengatur konfigurasi di PHP dan Web Server (Apache)
10
BAB 3
Konfigurasi Apache, PHP dan MySQL
Pada bagian ini, Anda diharapkan bisa memahami bagaimana cara melakukan
konfigurasi pada Apache, PHP dan MySQL.
Konfigurasi Apache
Secara default, file web dan script PHP yang nantinya Anda buat akan diletakkan di
direktori C:\AppServ\www. Akan tetapi jika menghendaki direktori ini
dipindahkan, maka hal ini bisa dilakukan. Sebagai contoh, misalkan Anda membuat
folder di D:\ dengan nama webku atau membuat direktori D:\webku untuk meletakkan
file-file web dan script PHPnya. Nah.. supaya file web dan script PHP ini bisa diakses
melalui browser dan web server maka terlebih dahulu Anda harus melakukan setting di
bagian konfigurasi Apache.
Bagaimana cara melakukan setting konfigurasi Apache untuk memindahkan default
direktori untuk meletakkan file web dan script PHPnya? OK ini dia langkah-langkahnya:
1. Klik START > AppServ > Configuration Server
2. Pilih “Apache Edit The httpd.conf Configuration File”
3. Carilah baris bertuliskan DocumentRoot "C:/AppServ/www" pada isi file
httpd.conf ini . Gunakan fasilitas Find pada Notepad
4. Ubahlah baris ini dengan DocumentRoot "D:/webku".
5. Cari juga baris <Directory "C:/AppServ/www"> dan ubahlah menjadi
<Directory "D:/webku">
6. Cari juga baris <Directory "C:/AppServ/www/cgi-bin"> dan ubahlah menjadi
<Directory "D:/webku/cgi-bin">
7. Setelah selesai, simpan kembali file httpd.conf ini .
8. Lakukan Restart pada Apache dengan cara klik START > AppServ > Control Server
by Service > Restart Apache
11
Untuk melihat perubahannya, silakan Anda coba buat file web berikut ini pada Notepad.
<html>
<head>
<title>Ini halaman pertama</title>
</head>
<body>
<h1>Ini halaman web pertamaku</h1>
</body>
</html>
Simpan file ini dengan nama index.htm dan letakkan ke direktori D:\webku.
Selanjutnya panggil file web ini menggunakan web server melalui browser dengan
URL http://localhost atau http://namaserver. Bila halaman web muncul tampilan berisi
teks Test.. Test sebagai mana yang kita tulis di atas, maka konfigurasi sukses. Sedangkan
bila tidak muncul apa-apa atau error, maka coba cek lagi langkah-langkah konfigurasi di
atas. Pastikan nama direktorinya benar.
Sekarang coba buat lagi halaman web yang lain.
<html>
<head>
<title>Ini halaman kedua</title>
</head>
<body>
<h1>Ini halaman web keduaku</h1>
</body>
</html>
Sekarang simpan file di atas dengan nama hal2.htm dan letakkan ke D:\webku.
Kemudian panggil file web ini dengan URL http://localhost/hal2.htm atau
http://namaserver/hal2.htm.
Anda juga bisa membuat folder di dalam D:\webku. Apabila Anda meletakkan file web
ke dalam folder ini , maka cara mengakses ke file web ini melalui browser
adalah http://localhost/namafolder/namafile.
Catatan:
Oya… meskipun Anda bisa langsung membuka kedua file web yang telah dibuat di atas
melalui proses double click pada file melalui Windows Explorer, tapi proses ini tidak
melibatkan web server. Beda prosesnya ketika Anda mengakses file web melalui
http://localhost seperti di atas. Ketika Anda mengakses file web melalui http://localhost,
maka pada prinsipnya proses request web yang dilakukan client (dalam hal ini Anda)
akan diproses oleh web server. Proses yang dimaksud adalah mencari file web yang
12
diinginkan pada root direktori (D:\webku). Setelah ketemu, hasilnya akan dikirim ke web
browser untuk ditampilkan.
13
BAB 4
Struktur Dasar Script PHP
Pada bab ini kita akan mempelajari struktur dasar script PHP, aturan penulisan
statement PHP, cara menyisipkan script PHP ke dalam tag (X)HTML dan juga
kebalikannya, tentang variabel, aturan penamaan variabel, sampai dengan penulisan
komentar.
Struktur Script PHP
Kode-kode PHP dituliskan di antara tanda berikut ini:
<?php
...
...
...
?>
atau
<?
...
...
...
?>
Tips : diantara kedua aturan struktur di atas, sebaiknya gunakan struktur yang pertama
(diawali dengan <?php dan diakhiri dengan ?>). Mengapa? Ya... karena tidak semua web
server mengenali struktur yang kedua.
14
Menyimpan File PHP
Script PHP yang dibuat harus disimpan dalam ekstensi .php. Apabila tidak, maka script
tidak akan bisa dijalankan dan hanya dianggap teks biasa saja. Dahulu script PHP dapat
juga disimpan dalam bentuk ekstensi .php3, namun hal ini berlaku untuk PHP versi 3.x
saja. Sejak rilis 4.x ke atas, ekstensi ini tidak digunakan lagi.
Dimanakah letak script PHP ini harus disimpan supaya bisa dijalankan? Script PHP yang
Anda buat harus diletakkan dalam root direktori dari web server. Apabila Anda
menggunakan AppServ, script PHP diletakkan dalam direktori C:\AppServ\www. Bisa
juga Anda mengubah letak root direktori web servernya ke tempat lain. Untuk
melakukan hal ini baca kembali Bab III.
Selanjutnya coba buat script PHP pertama Anda berikut ini:
<?php
echo "Hello World";
echo "Hello World";
echo "Hello World <br />";
echo "Hello World <br />";
?>
Tips :
Dalam membuat script PHP, sebaiknya text editor NOTEPAD++ supaya lebih mudah
mengetahui baris mana dalam kode PHP yang salah.
Simpan script PHP ini dengan nama test.php, dan letakkan ke dalam root direktori
web server. Perhatikan apa yang tampak ketika script di atas dibuka pada browser
(panggil script di atas dengan URL http://localhost/test.php) !
Sekarang kita akan lihat misalkan ada kesalahan perintah atau sintaks dalam kode PHP
nya. Misalkan ada perintah echo yang salah dalam penulisannya seperti pada script
berikut ini:
<?php
eho "Hello World";
echo "Hello World";
echo "Hello World <br />";
echo "Hello World <br />";
15
?>
Bila script di atas dijalankan di browser, maka akan muncul pesan error:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in
C:\AppServ\www\test.php on line 3
Dari pesan ini tampak adanya kesalahan pada baris ke-3 (on line 3). Dengan
demikian Anda harus segera memperbaikinya. Dengan menggunakan Notepad++ Anda
dapat dengan cepat menemukan nomor baris dari script PHP yang dibuat.
Selanjutnya jawab dalam hati pertanyaan berikut ini:
1. Apa gunanya perintah echo?
2. Mengapa teks “Hello World” yang kedua terletak sebaris dengan “Hello World”
yang pertama?
3. Mengapa teks “Hello World” yang ketiga terletak pada baris yang kedua?
4. Setiap baris statement kode PHP selalu diakhiri dengan tanda semicolon/titik
koma. Apa efeknya bila tanda ini dihapus?
5. Bisakah Anda membuat script PHP untuk menampilkan teks dengan format di
bawah ini pada browser hanya dengan menggunakan sebuah echo saja?
Hello World
Hello World
Hello World
Hello World
Simpan script Anda ini dengan nama test2.php dan letakkan ke dalam folder
bernama ‘test’ yang terlebih dahulu dibuat pada root direktori web server.
Panggil script ini dengan nama URL http://localhost/test/test2.php
Menyisipkan Script PHP dalam Dokumen (X)HTML
Script PHP dapat juga disisipkan ke dalam dokumen (X)HTML. Berikut ini contohnya:
<html>
<head>
<title>Halaman PHP pertamaku</title>
</head>
<body>
<h1>Script PHP dalam (X)HTML</h1>
16
<?php
echo "Hello World!";
echo "Hello World!";
echo "Hello World!";
echo "Hello World!";
echo "Hello World!";
?>
</body>
</html>
Karena dalam dokumen (X)HTML di atas terdapat script PHP, maka file di atas nantinya
juga harus disimpan menggunakan ekstensi .php, bukan .htm atau .html.
Coba tulis script di atas dan simpan dengan nama test3.php. Letakkan script ke dalam
folder ‘test’ seperti sebelumnya dan panggil dengan URL http://localhost/test/test3.php
Kita juga bisa menyisipkan lebih dari satu script PHP dalam sebuah dokumen (X)HTML
seperti contoh di bawah ini
<html>
<head>
<?php echo "<title>Halaman PHP pertamaku</title>"; ?>
</head>
<body>
<h1>Script PHP dalam (X)HTML</h1>
<?php
echo "<p>Ini paragraph yang dibuat dengan script PHP</p>";
echo "<p>Ini paragraph yang dibuat dengan script PHP</p>";
?>
<p>Ini paragraph yang dibuat tanpa script PHP</p>
<p>Ini paragraph yang dibuat tanpa script PHP</p>
<?php
echo "<p>Ini paragraph yang dibuat dengan script PHP</p>";
echo "<p>Ini paragraph yang dibuat dengan script PHP</p>";
?>
</body>
</html>
17
Coba simpan file di atas dengan nama test4.php dan lihat hasilnya di browser.
Penggunaan Variabel
Variabel dalam pemrograman digunakan untuk menyimpan suatu nilai dan jika suatu
saat nilai ini diperlukan kembali untuk proses perhitungan, maka cukup
memanggil nama variable ini .
Dalam PHP, nama suatu variabel ditandai dengan tanda dollar ($). Berikut ini adalah
sintaks untuk menyimpan nilai ke dalam suatu variabel.
$namaVariabel = nilai;
Adapun beberapa aturan penulisan nama variabel adalah sebagai berikut:
• Nama variabel harus diawali dengan huruf atau underscore ( _ )
• Nama variabel hanya boleh dituliskan dengan alpha numeric a-z, A-Z,
0-9 dan underscore
• Nama variabel yang terdiri lebih dari satu kata, dapat dipisahkan dengan
underscore
Berikut ini beberapa contoh menyimpan nilai ke dalam variabel.
<?php
$teks = "Hello World!";
$sebuah_bilangan = 4;
$bilanganYangLain = 8.567;
$teks2 = $teks;
?>
Keterangan:
• Perintah pertama digunakan untuk menyimpan nilai berupa string ke dalam
variabel bernama $teks.
• Perintah kedua digunakan untuk menyimpan nilai berupa bilangan bulat 4 ke
dalam variabel bernama $sebuah_bilangan.
• Perintah ketiga digunakan untuk menyimpan nilai berupa bilangan riil 8.567 ke
dalam variabel bernama $bilanganYanglain.
• Perintah keempat digunakan untuk menyimpan nilai yang tersimpan dalam
variabel $teks, dalam hal ini juga “Hello World!”.
18
Catatan Penting:
Besar kecilnya huruf dalam nama variabel sangat berpengaruh. Maksudnya misalnya
kita membuat variabel $a dengan $A, keduanya adalah berbeda. Sifat ini dinamakan
case sensitive. Jadi hati-hati dalam menuliskan nama variabel.
Menampilkan Nilai Variabel
Untuk menampilkan nilai yang telah tersimpan dalam variabel, kita gunakan echo.
Berikut ini contohnya:
<?php
$teks = "Hello World!";
$sebuah_bilangan = 4;
$bilanganYangLain = 8.567;
$teks2 = $teks;
echo $teks;
echo "<br />" . $sebuah_bilangan;
echo "<br />Isi dari variabel \$bilanganYangLain : " . $bilanganYangLain;
echo "<br />Isi dari variabel \$teks2 adalah : " . $teks2;
?>
Keterangan:
• Tanda titik (dot) digunakan untuk menggabungkan string. Dalam hal ini, nilai
yang akan ditampilkan dianggap sebagai suatu string.
• Tanda backslash (\) di depan $ pada script di atas digunakan untuk menampilkan
tanda $ ke dalam browser. Coba lihat efeknya apabila tanda backslash ini
dihapus.
Lebih Lanjut Tentang Echo
Sekarang… misalkan kita akan menampilkan tag HTML berikut ini ke dalam browser
menggunakan script PHP.
<font color="red">I love using PHP!</font>
19
Tag di atas digunakan untuk menampilkan teks ‘I love using PHP!’ berwarna merah.
Kira-kira bagaimana bentuk script PHP nya? Apakah seperti berikut ini?
<?php
echo "<font color="red">I love using PHP!</font>";
?>
Bila script di atas dijalankan di browser, maka akan terdapat pesan kesalahan. Mengapa
demikian? Ya… karena string yang akan di’echo’ kan terdapat tanda petik dua (double
quotes).
Trus… bagaimana solusinya? Ada 2 solusi yang bisa digunakan. Solusi pertama adalah
ubahlah tanda double quotes pada "red" menjadi single quote 'red'.
<?php
echo "<font color='red'>I love using PHP!</font>";
?>
Cara yang kedua, tambahkan tanda backslash di depan setiap double quotesnya.
<?php
echo "<font color=\"red\">I love using PHP!</font>";
?>
Menyisipkan Komentar dalam Script PHP
Seperti halnya bahasa pemrograman yang lain, komentar dalam suatu kode PHP
tidak akan dieksekusi atau diproses. Biasanya komentar digunakan untuk memberikan
deskripsi tentang script secara keseluruhan atau memberikan penjelasan pada baris
perintah tertentu.
Terdapat dua cara memberikan komentar dalam PHP, yaitu
20
• Menggunakan tanda // di depan teks komentar. Perintah ini hanya bisa
berlaku untuk komentar dalam satu baris
• Menggunakan tanda /* di depan teks komentar dan diakhiri dengan */.
Perintah ini dapat digunakan untuk komentar yang terdiri lebih dari satu baris.
Contoh:
<?php
echo "Hello World!"; // perintah ini akan mencetak Hello World!
?>
Contoh yang lain:
<?php
/*
Berikut ini adalah perintah
untuk menampilkan teks Hello World
pada browser
*/
echo "Hello World!";
?>
Contoh yang lain:
<?php
// Berikut ini adalah perintah
// untuk menampilkan teks Hello World
// pada browser
echo "Hello World!";
?>
21
BAB 5.
Assignment & Operator Aritmatika
Pada bab ini akan dijelaskan lebih mendalam mengenai proses assignment serta
pengenalan beberapa operator aritmatika.
Assignment
Seperti yang telah disinggung pada bab sebelumnya (Bab IV) bahwa proses pemberian
suatu nilai kepada suatu variabel diistilahkan ‘assignment’. Tinjau kembali script yang
telah diberikan sebelumnya pada Bab IV berikut ini
<?php
$teks = "Hello World!";
$sebuah_bilangan = 4;
$bilanganYangLain = 8.567;
$teks2 = $teks;
echo $teks;
echo "<br />" . $sebuah_bilangan;
echo "<br />Isi dari variabel \$bilanganYangLain : " . $bilanganYangLain;
echo "<br />Isi dari variabel \$teks2 adalah : " . $teks2;
?>
Statement-statement yang saya blok tebal (bold) ini merupakan contoh
assignment. Apakah proses assignment hanya berupa bentuk ini ? Yaitu
$namaVariabel = nilai; saja? Ternyata tidak hanya bentuk ini . Kita juga bisa
membuat proses assignment ke dalam bentuk lain, misalnya:
<?php
$a = ($b = 4) + 5;
?>
Wah… apa tuh maksudnya? Statement ini bermakna : Nilai $a adalah 9, yaitu
diperoleh dari $b + 5, dimana $b diassign dengan 4. Dengan demikian sebuah statement
22
ini langsung memuat 2 buah proses assignment, yaitu assignment untuk variabel
$a dan $b sekaligus.
Untuk membuktikan apakah benar nilai $a sekarang 9 dan $b adalah 4, coba tampilkan
ke browser nilai kedua variabel ini . Bisa kan?
Catatan:
Proses assignment memiliki prinsip timpa-menimpa. Wah kok lucu banget istilahnya ☺
Maksudnya adalah, misalkan awalnya kita assign suatu variabel dengan nilai tertentu,
katakanlah X. Selanjutnya variabel tadi kita assign lagi dengan nilai yang baru, misalkan
Y, maka nilai X yang sebelumnya tersimpan akan hilang, ibaratnya ditimpa dengan nilai
Y.
Sebagai bukti akan hal ini, coba jalankan script berikut ini
<?php
$a = 10;
$a = 9;
echo "Nilai variabel \$a adalah : " . $a;
?>
Sebelum Anda lihat hasilnya di browser, coba kira-kira menurut Anda akan muncul apa
di browser? Trus… coba bandingkan hasil perkiraan Anda tadi dengan apa yang muncul
di browser.
Catatan :
Wah… lagi-lagi catatan nih… ☺ Satu lagi catatan yang perlu kita tahu, bahwa jangan
pedulikan tipe data dari nilai yang diassign ke variabelnya. Secara otomatis tipe data
variabel akan menyesuaikan tipe data dari nilai yang diassign-kan. Bingung ya… ??? ☺
Maksudnya begini, misalkan mula-mula kita assign suatu variabel dengan nilai X yang
berupa bilangan bulat. Maka dalam hal ini, tipe data variabel ini juga bilangan
bulat (integer). Selanjutnya kita assign lagi variabel ini dengan nilai berupa string,
katakanlah Y. Maka secara otomatis tipe data variabel ini akan menjadi string. Tipe data
integer sebelumnya tidak berlaku lagi.
Sebagai gambaran, coba jalankan script berikut ini:
<?php
$a = 10;
// mengecek apakah variabel $a bertipe string atau bukan
23
// jika $a string, maka tampilkan ‘$a bertipe string’
// jika $a bukan string, maka tampilkan ‘$a bukan string’
if (is_string($a)) echo "\$a bertipe string<br>";
else echo "\$a bukan string<br>";
$a = "Pemrograman PHP is OK";
// mengecek apakah variabel $a bertipe string atau bukan
// jika $a string, maka tampilkan ‘$a bertipe string’
// jika $a bukan string, maka tampilkan ‘$a bukan string’
if (is_string($a)) echo "\$a bertipe string<br>";
else echo "\$a bukan string<br>";
?>
Mmm.. mohon jangan pedulikan dahulu statement if() di atas, serta perintah is_string().
Fokus Anda adalah mengerti maksud script di atas dan tujuan dari penjelasan ini.
Ketika $a diassign dengan 10, maka script akan memunculkan ‘$a bukan string’. Setelah
$a ini diassign kembali dengan nilai suatu string, maka script berikutnya memunculkan
‘$a bertipe string’.
Operator Aritmatik
Dalam bahasa pemrograman secara umum, operator digunakan untuk
memanipulasi atau melakukan proses perhitungan pada suatu nilai. Ada beberapa
macam operator yang bisa digunakan, diantaranya adalah operator aritmatik, operator
penggabungan string dan operator logika.
Untuk operator penggabungan string, sudah pernah kita gunakan di Bab IV yaitu
menggunakan tanda dot (.). Operator logika akan kita bahas pada bab berikutnya karena
sering digunakan pada statement kontrol. Fokus kita sekarang adalah pada operator
aritmatik.
Operator aritmatik digunakan untuk operasi perhitungan yang melibatkan nilai berupa
bilangan. Namun bisa pula diberikan pada string, namun string yang berupa bilangan.
Ada beberapa macam operator aritmatik, diantaranya adalah
24
Operator Makna Contoh
+ Penjumlahan 2 + 4
- Pengurangan 6 - 2
* Perkalian 5 * 3
/ Pembagian 15 / 3
% Modulus/sisa hasil bagi 43 % 10
Contoh script:
<?php
$penjumlahan = 2 + 4;
$pengurangan = 6 - 2;
$perkalian = 5 * 3;
$pembagian = 15 / 3;
$modulus = 5 % 2;
echo "Hasil: 2 + 4 = " . $penjumlahan."<br>";
echo "Hasil: 6 - 2 = " . $pengurangan."<br>";
echo "Hasil: 5 * 3 = " . $perkalian."<br>";
echo "Hasil: 15 / 3 = " . $pembagian."<br>";
echo "Hasil: 5 % 2 = " . $modulus;
?>
Tingkat Presedensi
Harap hati-hati dalam menggunakan operator aritmatik, terutama jika kita
menggunakan lebih dari satu operator yang berbeda dalam satu statement perhitungan,
sebagai contoh script berikut ini:
<?php
$a = 3 + 4 * 5 – 6;
echo $a;
?>
Apabila script di atas dijalankan, maka hasil yang muncul bukan 29, tapi 17. Mengapa
demikian? Ya… karena operasi aritmatik yang dikerjakan terlebih dahulu adalah
perkalian (*). Mengapa? Perkalian memiliki tingkat presedensi yang lebih tinggi daripada
+ dan -. Setelah perkalian dikerjakan, trus… yang dikerjakan operasi yang mana lagi? +
25
atau -. Keduanya, + dan -, memiliki tingkat presedensi yang sama. Nah… kalo demikian,
maka yang dikerjakan lebih dahulu adalah yang terletak di bagian yang lebih kiri, yaitu +.
Bagaimana dengan operator pembagian (/)? Operator ini memiliki tingkat presedensi
yang sama dengan (*). Keduanya memiliki tingkat presedensi yang lebih tinggi daripada
+ dan -. Sedangkan operator modulo (%) levelnya juga sama dengan * dan /.
Trus… dari script di atas, misalkan kita ingin yang dikerjakan adalah yang penjumlahan
terlebih dulu bagaimana caranya? Ya… seperti dalam pelajaran matematika di SD, kita
berikan tanda kurung.
<?php
$a = (3 + 4) * 5 – 6;
echo $a;
?>
Paham ya… ???
Kombinasi Operator Aritmatik dan Assignment
Selain bentuk operator aritmatik yang dibahas sebelumnya, ada juga operator yang
merupakan kombinasi antara operator aritmatik dengan assignment.
Dalam pemrograman seringkali dijumpai proses yang melibatkan proses increment
(kenaikan nilai). Misalkan kita menginginkan proses increment dengan tingkat kenaikan
1, maka perintah yang dituliskan dapat berupa
$counter = $counter + 1;
Maksud dari perintah di atas adalah, nilai variabel $counter yang baru diperoleh dari
nilai $counter yang lama ditambah 1.
dalam PHP, perintah di atas dapat ditulis dalam satu perintah singkat sebagai
$counter += 1;
Dari contoh di atas tampak bahwa operator yang digunakan (+=) merupakan
gabungan dari operator aritmatik dan assignment. Berikut ini adalah bentuk-bentuk
operator lain jenis ini.
26
Operator Contoh Operasi yang ekuivalen
+= $x += 2; $x = $x + 2;
-= $x -= 4; $x = $x - 4;
*= $x *= 3; $x = $x * 3;
/= $x /= 2; $x = $x / 2;
%= $x %= 5; $x = $x % 5;
.= $my_str.="hello"; $my_str = $my_str . "hello";
Operator Pre/Post Increment dan Decrement
Operator jenis ini merupakan pengembangan dari operator jenis sebelumnya. Operator
ini hanya digunakan pada proses increment maupun decrement dengan tingkat 1.
Berikut ini adalah operator yang termasuk jenis ini:
• $x++;
ekuivalen dengan $x += 1; atau $x = $x + 1;
• $x--;
ekuivalen dengan $x -= 1; atau $x = $x – 1;
Contoh:
<?php
$x = 4;
$x++;
echo "Nilai x yang baru : ". $x;
$x = 4;
$x--;
echo "Nilai x yang baru : ". $x;
?>
Studi Kasus Lain:
1. Menghitung komisi salesman (Script 5.1)
2. Menghitung gaji bersih seorang karyawan (Script 5.2)
27
3. Mengkonversi waktu tempuh ke dalam satuan detik (Script 5.3)
4. Mengkonversi jumlah detik ke satuan jam-menit-detik (Script 5.4)
5. Menghitung selisih dua buah waktu (Script 5.5)
Tugas Untuk Anda
Tugas 1
Ada seorang nasabah bank yang menabung di bank X dengan saldo awal Rp. 1.000.000,-.
Bank X menerapkan kebijakan bunga 3% perbulan dari saldo awal tabungan. Hitunglah
jumlah saldo akhir nasabah ini setelah 11 bulan. Lengkapilah script berikut ini
untuk mengerjakan kasus ini!
<?php
$saldoAwal = 1000000;
$bunga = 0.03;
$bulan = 11;
$saldoAkhir = …;
echo "Saldo akhir setelah ".$bulan." bulan adalah : Rp. ".$saldoAkhir. ",-";
?>
Tugas 2
Lengkapi script berikut ini untuk menampilkan hasil bagi bilangan 100 dengan 3 beserta
sisanya.
<?php
$bilangan = 100;
$pembagi = 3;
.
.
.
echo $bilangan." dibagi dengan ".$pembagi. " adalah ".$hasilBagi." sisa ".$sisaBagi;
?>
Tampilan outputnya:
“100 dibagi dengan 3 adalah 33 sisa 1”
28
Tugas 3
Ibu ingin mengambil uang tabungan sejumlah Rp. 1.575.250,- yang dimilikinya di sebuah
bank. Misalkan pada saat itu uang pecahan yang berlaku adalah Rp. 100.000,-; Rp.
50.000,-; Rp. 20.000,-; Rp. 5.000,-; Rp. 100,- dan Rp. 50. Dengan menggunakan script
PHP, tentukan banyaknya masing-masing uang pecahan yang diperoleh ibu tadi!
Lengkapi script berikut:
<?php
$jumlahUang = 1575250;
.
.
.
echo "Jumlah Rp. 100.000 : ".$a. "<br />";
echo "Jumlah Rp. 50.000 : ".$b. "<br />";
echo "Jumlah Rp. 20.000 : ".$c. "<br />";
echo "Jumlah Rp. 5.000 : ".$d. "<br />";
echo "Jumlah Rp. 100 : ".$e. "<br />";
echo "Jumlah Rp. 50 : ".$f. "<br />";
?>
Keterangan :
$a adalah variabel yang menyatakan jumlah pecahan Rp. 100.000,-
$b adalah variabel yang menyatakan jumlah pecahan Rp. 50.000,-
$c adalah variabel yang menyatakan jumlah pecahan Rp. 20.000,-
$d adalah variabel yang menyatakan jumlah pecahan Rp. 5.000,-
$e adalah variabel yang menyatakan jumlah pecahan Rp. 100,-
$f adalah variabel yang menyatakan jumlah pecahan Rp. 50,-
Ketentuan Pengiriman Tugas:
Tugas dikirim dalam bentuk script yang dikompresi menjadi satu lalu dikirim ke email:
rosihanari@gmail.com dengan subject: TUGAS-BAB 5 KURSUS (nama anda)
29
BAB 6
POST dan GET Request
Pada bab sebelumnya, kita telah mengenal proses assignment. Anda dapat mengassign
suatu nilai kepada suatu variabel. Proses assignment yang telah kita pelajari adalah
dengan cara memberikan perintah sbb:
$namaVariabel = nilai;
Di dalam scriptnya secara langsung. Misalnya:
<?php
$bilangan1 = 2;
$bilangan2 = 6;
$jumlah = $bilangan1 + $bilangan2;
echo "Hasil penjumlahannya adalah ".$jumlah;
?>
Nah… sekarang kita coba kembangkan sedikit. Pada script di atas kita hanya bisa
menjumlahkan bilangan 2 dan 6. Kalaupun kita ingin menjumlahkan bilangan yang lain,
maka kita harus mengedit scriptnya dan mengubah kedua bilangan. Sekarang…
bagaimana kalau kita kembangkan script di atas supaya bisa menjumlahkan bilangan-
bilangan lain tanpa mengubah scriptnya supaya lebih interaktif.
Untuk bisa melakukan hal di atas, Anda terlebih dahulu harus telah memahami POST
dan GET Request.
POST Request
POST request adalah proses mengirim data (submit) melalui form yang berasal dari
(X)HTML. Karena PHP adalah bahasa program atau scripting, maka PHP bisa digunakan
untuk menerima data hasil submit ini . Data yang diterima nantinya bisa diproses
dalam script PHP.
30
Untuk menerima data dari proses submit form dalam PHP, kita gunakan statement
assignment berikut ini.
$namaVariabel = $_POST['nama komponen dalam form'];
Dalam hal ini, nama variabel boleh sama atau tidak sama dengan nama komponen
dalam form. Namun… sangat disarankan, Anda membuat nama variabel yang berbeda
dari nama komponen formnya untuk mencegah hal-hal yang tidak diinginkan, misalnya
hacking.
Perhatikan contoh berikut ini:
Dalam contoh ini, kita coba membuat form HTML yang di dalamnya terdapat dua
komponen input dua buah bilangan.
input.htm
<html>
<head>
<title>Contoh Request POST</title>
</head>
<body>
<h1>Input dua bilangan</h1>
<form method="post" action="proses.php">
Masukkan Bilangan 1 <input type="text" name="bil1" /><br />
Masukkan Bilangan 2 <input type="text" name="bil2" /><br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
Pada form di atas dapat kita lihat bahwa terdapat dua komponen dalam form, yang
masing-masing memiliki nama ‘bil1’ dan ‘bil2’ (perhatikan atribut name="…" pada
komponen). Keduanya kebetulan merupakan komponen form berbentuk text box.
Selanjutnya, perhatikan bagian atribut action="proses.php". Apa maksud dari atribut
ini ? Atribut ini memiliki makna bahwa apabila tombol submit ini diklik, maka
data yang diisikan pada form nantinya akan dikirim dan diolah pada script bernama
proses.php.
Sekarang, kita coba buat script proses.php nya. Dalam script ini, kita coba untuk
membaca nilai yang diisikan ke dalam form di atas, lalu menampilkannya ke browser.
31
proses.php
<?php
$bilangan1 = $_POST['bil1'];
$bilangan2 = $_POST['bil2'];
echo "<p>Anda telah memasukkan bilangan pertama = ".$bilangan1. "</p>";
echo "<p>Anda telah memasukkan bilangan kedua = ".$bilangan2. "</p>";
?>
Anda juga menggabungkan script di atas dengan struktur XHTML yang lebih lengkap
seperti di bawah ini
proses.php
<?php
$bilangan1 = $_POST['bil1'];
$bilangan2 = $_POST['bil2'];
?>
<html>
<head>
<title>Contoh Request POST</title>
</head>
<body>
<h1>Input dua bilangan</h1>
<?php
echo "<p>Anda telah memasukkan bilangan pertama = ".$bilangan1. "</p>";
echo "<p>Anda telah memasukkan bilangan kedua = ".$bilangan2. "</p>";
?>
</body>
</html>
Selain cara di atas yaitu menyimpan nilai dari $_POST[] ke variabel tertentu, Anda dapat
pula langsung menggunakan $_POST[] untuk diproses tanpa disimpan ke variabel
tertentu. Perhatikan contoh berikut ini
32
proses.php
<html>
<head>
<title>Contoh Request POST</title>
</head>
<body>
<h1>Input dua bilangan</h1>
<?php
echo "<p>Anda telah memasukkan bilangan pertama = ".$_POST['bil1']. "</p>";
echo "<p>Anda telah memasukkan bilangan kedua = ".$_POST['bil2']. "</p>";
?>
</body>
</html>
Sekarang kita tinjau contoh kedua. Pada contoh pertama kita buat script proses.php
hanya sekedar menampilkan dua bilangan yang diinputkan pada form. Selanjutnya kita
buat script berikutnya, misalkan masih tetap sama nama filenya yaitu proses.php akan
tetapi digunakan untuk menampilkan hasil penjumlahan dua bilangan yang diinputkan
tadi.
Adapun konsepnya hampir sama, yaitu pertama baca terlebih dahulu bilangan-
bilangannya lalu jumlahkan keduanya dan hasil penjumlahannya kita tampilkan.
proses.php
<?php
$bilangan1 = $_POST['bil1'];
$bilangan2 = $_POST['bil2'];
$jumlah = $bilangan1 + $bilangan2;
?>
<html>
<head>
<title>Contoh Request POST</title>
</head>
<body>
<h1>Input dua bilangan</h1>
<?php
echo "<p>Anda telah memasukkan bilangan pertama = ".$bilangan1. "</p>";
echo "<p>Anda telah memasukkan bilangan kedua = ".$bilangan2. "</p>";
echo "<p>Hasil penjumlahannya adalah ".$jumlah. "</p>";
33
?>
</body>
</html>
GET Request
Apabila POST request adalah proses merequest data melalui form, maka GET request
adalah melalui URL.
Terkadang ketika browsing di internet, kita temukan URL atau link yang berbentuk
misalnya seperti berikut ini
http://situs.com/script.php?a=4&b=6
Perhatikan bagian URL yang saya kasih bold ini . Bagian ini dinamakan
parameter. Konsep GET Request pada prinsipnya mirip dengan POST. Nah… pada contoh
URL di atas maksudnya adalah mensubmit atau mengirim data ke script bernama
script.php. Apa yang dikirim? Yang dikirim adalah nilai a = 4 dan b = 6. Nilai yang dikirim
ini nantinya akan dijadikan sebagai input pada proses yang terjadi di script.php.
Selanjutnya bagaimana membaca input dari GET request ini ? Caranya adalah
menggunakan $_GET['nama parameter'];
Akan saya berikan contoh script untuk menjumlahkan dua buah bilangan yang diinput
melalui GET request.
proses.php
<?php
$bilangan1 = $_GET['bil1'];
$bilangan2 = $_GET['bil2'];
$jumlah = $bilangan1 + $bilangan2;
?>
<html>
<head>
<title>Contoh Request GET</title>
</head>
<body>
<h1>Input dua bilangan</h1>
<?php
echo "<p>Anda telah memasukkan bilangan pertama = ".$bilangan1. "</p>";
34
echo "<p>Anda telah memasukkan bilangan kedua = ".$bilangan2. "</p>";
echo "<p>Hasil penjumlannya adalah ".$jumlah. "</p>";
?>
</body>
</html>
Lantas bagaimana menjumlahkan dua bilangan menggunakan script di atas yang
menggunakan GET request? Caranya cukup mengetikkan URL berikut ini
http://localhost/proses.php?bil1=100&bil2=150
URL di atas akan menjumlahkan dua bilangan yaitu 100 (bil1) dan 150 (bil2).
Catatan:
Tanda ampersand (&) digunakan untuk memisahkan antar parameter.
Anda juga menjalankan script di atas melalui sebuah link.
jumlah.htm
<html>
<head>
<title>Contoh Request GET</title>
</head>
<body>
<a href='http://localhost/proses.php?bil1=100&bil2=150'>Klik di sini</a>
</body>
</html>
Studi Kasus yang Lain
1. Script untuk membaca input yang berasal dari berbagai komponen form (Script
6.1)
2. Script menghitung komisi salesman berdasarkan nilai penjualannya yang diinput
melalui form (Script 6.2)
3. Script menghitung selisih waktu dalam detik dari 2 buah waktu yang diinput
melalui form (Script 6.3)
35
Tugas Untuk Anda
1. Kembangkanlah script yang telah diberikan pada Tugas 1 Modul 5 dengan
menambahkan form input untuk memasukkan saldo awal, besar bunga perbulan
dan juga lama bulan. Jangan lupa untuk menambahkan tombol submit dan reset.
Apabila tombol submit diklik, maka semua data input akan diproses ke script PHP
untuj diolah menghasilkan saldo akhir pada bulan tertentu.
2. Analog soal no. 1. Terapkan pada soal Tugas 2 Modul 5
3. Analog soal no. 1 dan 2. Terapkan pada soal Tugas 3 Modul 5
4. Rancanglah sebuah form untuk pendaftaran online mahasiswa baru dalam
universitas X. Data yang nantinya dimasukkan dalam form pendaftaran adalah:
Nama Lengkap (text box), Tempat Lahir (text box), Tanggal Lahir (gunakan 3 buah
combo box masing-masing untuk tanggal: 1-31, bulan: 1-12 dan tahun: 1970-
1987), Alamat Rumah (text area), Jenis Kelamin (gunakan radiobutton: pria/
wanita), Asal Sekolah (text box), Nilai UAN (text box). Tambahkan pula sebuah
button dan reset.
Apabila data sudah diisi dan selanjutnya diklik tombol submit, maka kirim data
ke sebuah script PHP untuk menampilkan apa yang telah diisikan dalam form
tadi.
Contoh output script bila nama yang diisikan adalah ‘Joko’.
Terimakasih Joko sudah mengisi form pendaftaran.
Nama Lengkap : Joko
Tempat Lahir : XXX
Tanggal Lahir : TGL-BLN-THN
Alamat Rumah : XXX
Jenis Kelamin : Pria
Asal Sekolah : XXX
Nilai UAN : XXX
36
5. Setelah Anda selesai membuat script dan form pada no. 4 di atas, coba ubah
method=’post’ pada formnya menjadi method=’get’. Ubah pula $_POST[] dalam
script PHP nya menjadi $_GET[]. Masih bisakah scriptnya bekerja? Coba amati
efek perubahan ini dan jelaskan apa akibat diberikannya method=’get’
pada form?
Catatan:
Anda bisa mempelajari cara membuat komponen form HTML yang lain dalam tutorial
HTML yang ada di http://rosihanari.net/web-tutorial
37
BAB 7
Statement Kontrol – IF
Sekarang kita masuk ke bab yang sangat penting dalam programming yaitu statement
kontrol. Mengapa sangat penting? Ya… karena dengan statement ini kita bisa
mengontrol aliran program/script.
Pada contoh-contoh script yang sudah saya berikan dalam bab-bab sebelumnya hanya
terdiri dari satu aliran program saja, yaitu top – down. Artinya top – down apa? Artinya
setiap perintah yang ada dijalankan satu-persatu mulai dari atas sampai dengan paling
bawah, dan selesai. Kita ambil contoh script PHP berikut ini yang digunakan untuk
menampilkan luas sebuah persegi panjang dengan panjang 10 satuan luas dan lebar 15
satuan luas.
<?php
$panjang = 10;
$lebar = 15;
$luas = $panjang * $lebar;
echo "Luas persegi panjang = " . $luas . " satuan luas";
?>
Script di atas menggunakan sebuah aliran saja. Pertama jalankan perintah paling atas
($panjang = 10;), lalu jalankan perintah kedua ($lebar = 15), kemudian jalankan perintah
untuk menghitung luas, dan terakhir tampilkan luasnya, selesai.
Namun… tidak semua script/program hanya terdiri dari sebuah aliran saja yang
sederhana seperti di atas. Terkadang atau bahkan sering nantinya kita membuat script
yang di dalamnya terdapat perintah yang harus diulang-ulang sampai berapa kali,
terkadang juga ada perintah yang hanya dijalankan pada kondisi atau berdasarkan
syarat tertentu saja. Hal ini kita bisa atur dengan menggunakan statement kontrol.
Dalam dunia pemrograman umumnya, terdapat 2 jenis statement kontrol yaitu:
statement kontrol kondisional (bersyarat) dan statement kontrol perulangan (looping).
Statement kontrol kondisional adalah statement kontrol yang digunakan untuk
mengatur kapan suatu perintah akan dijalankan. Dengan statement ini kita bisa
mengatur kapan suatu perintah akan dijalankan, yaitu ketika telah dipenuhinya suatu
syarat tertentu.
38
Sedangkan statement kontrol perulangan digunakan untuk mengatur perintah yang
dijalankan secara berulang-ulang.
Dalam PHP, terdapat dua buah statement kontrol yang termasuk statement kontrol
kondisional, yaitu IF dan CASE OF. Sedangkan yang termasuk statement kontrol
perulangan adalah: FOR, WHILE, DO WHILE dan FOREACH.
Untuk mempermudah pembahasan masing-masing statement kontrol ini , akan
dibahas secara bab per bab saja. Nah… pada bab 7 ini pembahasan hanya difokuskan
pada statement kontrol IF. … are u ready to learn? ☺
OK… pembahasan tentang IF ini akan saya mulai dari pertanyaan berikut ini
Apa yang Anda pahami bila menjumpai pernyataan di bawah ini?
Jika sore ini hujan, maka saya akan menghabiskan waktu di rumah.
Pernyataan di atas mengandung sebab akibat. Bila Anda lihat, keterangan ‘sore ini
hujan’ adalah merupakan suatu syarat. Apa akibatnya bila syarat ini terpenuhi?
Ya… ‘saya akan menghabiskan waktu di rumah’. Dengan demikian, ‘saya akan
menghabiskan waktu di rumah’ ini hanya akan dilakukan apabila syaratnya terpenuhi
atau ‘sore ini hujan’.
Dalam dunia logika, istilah ‘terpenuhinya suatu syarat’ dapat dikatakan sebagai ‘syarat
ini bernilai BENAR atau TRUE’.
Nah… bentuk pernyataan ‘jika… maka…’ pada contoh di atas dapat diadopsi dalam
programming. Untuk menyatakan pernyataan ini dalam programming, khususnya
PHP, kita bisa menggunakan statement kontrol IF
Adapun sintaks atau aturan penulisan IF nya adalah sebagai berikut:
if (syarat)
{
statement;
}
Catatan: Kata ‘if’ harus ditulis dalam huruf kecil semua.
Dalam sintaks di atas, bagian ‘statement’ akan dijalankan atau dilakukan jika ‘syarat’
terpenuhi atau ‘syarat’ bernilai benar/true. Trus… bagaimana bila ‘syarat’ tidak
terpenuhi? Ya…bagian ‘statement’ tidak akan dijalankan atau dalam hal ini tidak
39
melakukan apa-apa. Dengan demikian, nilai ‘syarat’ haruslah hanya ada dua
kemungkinan, yaitu BENAR atau SALAH itu saja.
Operator Relasional
Terkadang untuk menyatakan suatu syarat, kita menggunakan operator pembanding
atau relasional. Hasil penggunaan operator relasional ini akan diperoleh nilai BENAR
atau SALAH. Berikut ini beberapa operator relasional yang dapat digunakan
Simbol Makna
< Lebih kecil dari
> Lebih besar dari
>= Lebih besar atau sama dengan
<= Lebih kecil atau sama dengan
== Sama dengan
!= Tidak sama dengan
Perhatikan contoh penggunaan operator relasional pada statement IF berikut ini
<?php
$bil = 10;
if ($bil > 5)
{
echo "Bilangan lebih besar dari 5";
}
?>
Pada script di atas, nilai dari variabel $bil adalah 10. Selanjutnya terdapat statement IF
yang di dalamnya terdapat syarat: jika nilai $bil lebih besar dari 5, maka tampilkan teks
‘Bilangan lebih besar dari 5’. Dalam hal ini syarat bernilai BENAR, karena 10 > 5. Karena
syarat bernilai BENAR, maka perintah echo " Bilangan lebih besar dari 5"; akan
dijalankan.
Namun.. coba perhatikan contoh script berikut ini:
<?php
$bil = 10;
if ($bil == 5)
{
40
echo "Bilangan sama dengan 5";
}
?>
Pada script di atas, syarat bernilai SALAH, karena 10 tidak sama dengan 5. Dengan
demikian perintah echo "Bilangan sama dengan 5"; tidak akan dijalankan.
Operator Logika
Untuk menyatakan suatu syarat, kita dapat menggunakan operator logika. Ketika Anda
menempuh sekolah SMA kelas 1, tentu Anda pernah belajar tentang logika dalam
matematika. Masih ingatkah Anda dengan operator DAN, ATAU dan juga NEGASI, serta
tabel kebenaran BENAR-SALAH? Ya… jangan dikira materi ini tidak ada gunanya.
Materi ini akan dipakai dalam konsep pemrograman.
Dalam pemrograman PHP, terdapat beberapa operator logika yang bisa digunakan:
Operator Makna
&& AND
|| OR
! Negasi
Sedangkan berikut ini tabel kebenaran dari masing-masing operator
Tabel hasil operasi logika AND
Operand 1 Operand 2 Hasil
BENAR BENAR BENAR
BENAR SALAH SALAH
SALAH BENAR SALAH
SALAH SALAH SALAH
Tabel hasil operasi logika OR
Operand 1 Operand 2 Hasil
BENAR BENAR BENAR
BENAR SALAH BENAR
SALAH BENAR BENAR
SALAH SALAH SALAH
41
Tabel hasil operasi logika Negasi (NOT)
Operand Hasil
BENAR SALAH
BENAR SALAH
SALAH BENAR
SALAH BENAR
Contoh penggunaan operator logika
<?php
$hobi = "makan";
if (($hobi == "makan") || ($hobi == "ngemil"))
{
echo "Awas… jangan banyak-banyak, ntar kebanyakan kolesterol<br />";
echo "Serta banyak olahraga ya…";
}
?>
Pada script di atas, nilai $hobi adalah "makan", sedangkan untuk syarat terdapat dua
keadaan yaitu $hobi == "makan" serta $hobi == "ngemil". Diantara kedua keadaan
ini terdapat operator OR. Keadaan pertama dalam hal ini bernilai BENAR
sedangkan keadaan kedua bernilai SALAH. Sehingga apabila kita lihat tabel kebenaran,
BENAR OR SALAH dihasilkan BENAR. Dengan demikian syarat bernilai BENAR dan
akibatnya perintah echo "Awas… jangan banyak-banyak, ntar kebanyakan kolesterol";
akan dijalankan.
Bentuk IF yang lain
Selain bentuk IF di atas, terdapat pula bentuk IF seperti di bawah ini
if (syarat)
{
statement 1
}
else
{
statement 2
}
42
Bentuk if IF di atas, statement 1 akan dijalankan apabila nilai ‘syarat’ adalah BENAR.
Sedangkan bila ‘syarat’ bernilai SALAH maka yang dijalankan adalah statement 2.
Contoh script:
<?php
$bil = 10;
if ($bil == 10)
{
echo "Bilangan sama dengan 10";
}
else
{
echo "Bilangan tidak sama dengan 10";
}
?>
Script di atas akan menampilkan "Bilangan sama dengan 10". Sekarang perhatikan script
berikut ini
<?php
$bil = 12;
if ($bil == 10)
{
echo "Bilangan sama dengan 10";
}
else
{
echo "Bilangan tidak sama dengan 10";
}
?>
Script di atas akan menampilkan "Bilangan tidak sama dengan 10".
Selain bentuk kedua IF di atas, terdapat pula bentuk IF seperti di bawah ini:
if (syarat 1)
{
Statement 1;
}
43
else if (syarat 2)
{
Statement 2
}
else if (syarat 3)
{
Statement 3
}
.
.
else {
Statement X
}
Pada bentuk IF di atas, Statement 1 akan dijalankan apabila ‘syarat 1’ bernilai BENAR.
Jika ‘syarat 1’ bernilai SALAH, maka akan dicek ‘syarat 2’. Jika ‘syarat 2’ BENAR maka
akan dijalankan Statement 2, begitu seterusnya. Dan apabila ternyata tidak ada satupun
syarat yang terpenuhi, barulah Statement X akan dikerjakan.
Contoh script:
<?php
$nilai = 70;
if ($nilai > 50)
{
echo "Nilai lebih besar dari 50";
}
else if ($nilai < 50)
{
echo "Nilai lebih kecil dari 50";
}
else
{
echo "Nilai sama dengan 50";
}
?>
Script di atas akan menghasilkan "Nilai lebih besar dari 50" karena syarat ‘$nilai > 50’
bernilai BENAR. Begitu terdapat syarat yang bernilai benar, maka syarat yang terletak di
bawahnya tidak akan dicek.
44
Selanjutnya bagaimana dengan script berikut ini?
<?php
$nilai = 50;
if ($nilai > 50)
{
echo "Nilai lebih besar dari 50";
}
else if ($nilai < 50)
{
echo "Nilai lebih kecil dari 50";
}
?>
Pada script di atas, syarat ‘$nilai > 50’ bernilai SALAH. Karena syarat ini bernilai SALAH,
maka selanjutnya akan dicek syarat ‘$nilai < 50’. Syarat inipun juga SALAH. Dengan
demikian hasil script di atas tidak akan muncul apa-apa, karena dalam hal ini tidak
terdapat alternatif terakhir ‘else’. Beda halnya pada script berikut ini:
<?php
$nilai = 50;
if ($nilai > 50)
{
echo "Nilai lebih besar dari 50";
}
else if ($nilai < 50)
{
echo "Nilai lebih kecil dari 50";
}
else
{
echo "Nilai sama dengan 50";
}
?>
Pada script di atas, hasil dari script adalah "Nilai sama dengan 50".
45
Contoh-contoh Aplikasi Script dengan IF.
Script untuk menentukan apakah suatu huruf termasuk huruf vokal (asumsi: huruf
yang digunakan adalah kapital)
<?php
$huruf = "A";
if (($huruf == "A") || ($huruf == "I") || ($huruf == "U") || ($huruf == "E") ||
($huruf == "O"))
{
echo "Termasuk huruf vokal";
}
else
{
echo "Tidak termasuk huruf vokal";
}
?>
Script untuk mencari bilangan terbesar dari 3 buah bilangan: 6, 9 dan 10.
Bagaimana ide untuk mencari bilangan terbesar dari ketiga bilangan ini ? Idenya
adalah kita membandingkan setiap bilangannya.
Langkahnya:
1. Kita cari terlebih dahulu bilangan terbesar di antara bilangan pertama dan kedua
(misalkan dinamakan ‘max’)
Untuk mencari ‘max’ caranya dengan membandingkan bilangan pertama dengan
kedua.
Jika bilangan pertama > bilangan kedua, maka nilai ‘max’ adalah bilangan
pertama. Jika tidak, maka ‘max’ adalah bilangan kedua.
2. Setelah kita tahu bilangan terbesar di antara bilangan pertama dan kedua
(‘max’), langkah berikutnya kita cari bilangan terbesar di antara ‘max’ dengan
bilangan ketiga. Nilai terbesar dari ketiga bilangan adalah nilai yang terbesar di
antara bilangan ketiga dengan ‘max’.
Untuk mencari bilangan terbesar antara ‘max’ dengan bilangan ketiga, caranya
sama seperti langkah pertama.
46
<?php
$bil1 = 6;
$bil2 = 9;
$bil3 = 10;
if ($bil1 > $bil2)
{
$max = $bil1;
}
else
{
$max = $bil2;
}
if ($max > $bil3)
{
$maxSemua = $max;
}
else
{
$maxSemua = $bil3;
}
echo "Nilai terbesar dari ketiga bilangan adalah ".$maxSemua;
?>
Script untuk mengilustrasikan proses login.
Script berikut ini akan mengilustrasikan proses login. Sebagai contoh, misalkan user
yang bisa login hanyalah user bernama ‘joko’ (password: ‘jokokusayang’) serta user
bernama ‘amir’ (password: ‘amirkusayang’).
Konsep login pada prinsipnya pengecekan nama user dan password saja. Jika nama user
dan passwordnya cocok maka login sukses.
Pertama kita buat terlebih dahulu form loginnya.
<form method="post" action="login.php">
Username <input type="text" name="username"> <br />
Password <input type="password" name="pass"> <br />
<input type="submit" name="submit" value="Submit">
</form>
47
Selanjutnya kita buat script login.php
<?php
$username = $_POST[‘username’];
$password = $_POST[‘pass’];
if ((($username == "joko") && ($password == "jokokusayang")) ||
(($username == "amir") && ($password == "amirkusayang")))
{
echo "Login sukses";
}
else
{
echo "Login gagal";
}
?>
Script di atas dapat kita pahami bahwa proses login akan sukses bila username yang
dimasukkan adalah ‘joko’ dan passwordnya ‘jokokusayang’, atau usernamenya ‘amir’
dan passwordnya ‘amirkusayang’. Dengan demikian, andaikan usernamenya benar,
misalkan ‘joko’, namun passwordnya salah, maka login juga gagal.
Script untuk mengkonversi nilai angka ke huruf.
Misalkan pada suatu universitas menerapkan kebijakan konversi dari nilai angka ke
huruf sebagai berikut:
Nilai Angka Nilai Huruf
80 s/d 100 A
70 s/d 79 B
60 s/d 69 C
50 s/d 59 D
0 s/d 49 E
Nah.. kita akan coba membuat script PHP untuk melakukan konversi ini .
Dalam hal ini, nilai angka yang diberikan 0 s/d 100. Dengan kata lain, konversi ke nilai
huruf ini akan dilakukan apabila nilai angkanya 0 s/d 100. Untuk itu, dalam script yang
akan dibuat terlebih dahulu akan dilakukan pengecekan apakah nilai yang diberikan 0
s/d 100 atau tidak.
<?php
$nilaiAngka = 87;
48
if (($nilaiAngka < 0) || ($nilaiAngka > 100))
{
echo "Nilai angka yang diberikan salah";
}
else
{
if (($nilaiAngka >= 80) && ($nilaiAngka <= 100))
{
$nilaiHuruf = "A";
}
else if (($nilaiAngka >= 70) && ($nilaiAngka <= 79))
{
$nilaiHuruf = "B";
}
else if (($nilaiAngka >= 60) && ($nilaiAngka <= 69))
{
$nilaiHuruf = "C";
}
else if (($nilaiAngka >= 50) && ($nilaiAngka <= 59))
{
$nilaiHuruf = "D";
}
else if (($nilaiAngka >= 0) && ($nilaiAngka <= 49))
{
$nilaiHuruf = "E";
}
echo "Nilai hurufnya adalah ".$nilaiHuruf;
}
?>
Script di atas akan ekuivalen dengan script berikut ini
<?php
$nilaiAngka = 87;
if (($nilaiAngka < 0) || ($nilaiAngka > 100))
{
echo "Nilai angka yang diberikan salah";
}
else
49
{
if ($nilaiAngka >= 80)
{
$nilaiHuruf = "A";
}
else if ($nilaiAngka >= 70)
{
$nilaiHuruf = "B";
}
else if ($nilaiAngka >= 60)
{
$nilaiHuruf = "C";
}
else if ($nilaiAngka >= 50)
{
$nilaiHuruf = "D";
}
else if ($nilaiAngka >= 0)
{
$nilaiHuruf = "E";
}
echo "Nilai hurufnya adalah ".$nilaiHuruf;
}
?>
Studi Kasus Lain
1. Beberapa alternatif script untuk mencari nilai terbesar dari 3 buah bilangan
(Script 7-1)
2. Script untuk menentukan suatu bilangan termasuk bilangan negatif, positif atau
nol (Script 7-2)
3. Mengarahkan submit form ke bagian tertentu dalam suatu script (Script 7-3)
4. Simulasi membuat menu pilihan (Script 7-4)
50
Tugas Untuk Anda
1. Buatlah form untuk memasukkan bilangan yang menyatakan tahun. Setelah form
ini disubmit, maka akan muncul apakah tahun ini termasuk tahun
kabisat atau tidak. Gunakan script PHP untuk membuat hal ini.
2. Karyawan honorer di perusahan XXX digaji berdasarkan jumlah jam kerjanya
selama satu minggu. Upah per jamnya adalah Rp. 2.000,-. Bila jumlah jam kerja
selama satu minggunya lebih besar dari 48 jam, maka sisanya dianggap jam
lembur dengan upah per jam lemburnya adalah Rp. 3.000,-
Buatlah form untuk memasukkan jumlah jam kerja selama satu minggu seorang
karyawan. Setelah form disubmit, maka akan tampil jumlah upah yang diterima
karyawan ini . Gunakan script PHP untuk membuat hal ini.
3. Berat badan ideal ada kaitannya dengan tinggi badan seseorang. Untuk
menentukan berat badan ideal rumusnya: tinggi badan – 100, lalu hasilnya
dikurangi lagi dengan 10% dari hasil pengurangan pertama.
Berdasarkan keterangan ini , buatlah form yang digunakan untuk
mengisikan tinggi badan seseorang (cm) dan berat badannya (kg). Setelah diisi,
apabila form diklik maka akan muncul keterangan “Berat badan Anda ideal” atau
“Berat badan Anda tidak ideal”.
Berat badan seseorang dikatakan ideal apabila perbedaan berat badan orang
ini terhadap berat badan idealnya tidak lebih dari 2 kg. Bila perbedaan
keduanya lebih dari 2 kg, maka berat badannya dikatakan tidak ideal.
4. Buatlah form untuk memasukkan usia seseorang (dalam tahun). Setelah form
ini diisi dan kemudian disubmit, maka akan muncul keterangan apakah
usia yang diisikan ini termasuk usia tua, dewasa, anak-anak, dan balita
dengan kriteria sbb:
Usia Status
0 – 5 Balita
6 – 16 Anak-anak
17 – 50 Dewasa
> 50 Tua
5. Perhatikan kembali dua script yang ekuivalen untuk mengkonversi nilai angka ke
huruf seperti yang pernah diberikan sebelumnya. Analisislah kedua script yang
ekuivalen ini , dan jelaskan mengapa kedua script ekuivalen!
51
6. Soal analog no. 2, namun dalam hal ini terdapat 4 jenis upah perjam nya
dibedakan berdasarkan golongan:
Golongan Upah perjam
A Rp. 4.000,-
B Rp. 5.000,-
C Rp. 6.000,-
D Rp. 7.500,-
Sedangkan upah lemburnya dihitung sama untuk setiap golongan, yaitu Rp.
3.000,- per jamnya.
Buatlah form untuk mengisikan jumlah jam kerja selama seminggu, dan juga
memilih golongan karyawannya (gunakan combo box). Apabila form ini
disubmit maka akan muncul jumlah upah yang diperoleh karyawan.
52
BAB 8
Statement SWITCH
SWITCH termasuk statement yang dapat dipergunakan untuk menyatakan suatu
pernyataan kondisional atau bersyarat seperti halnya IF.
Adapun sintaks secara umum statement SWITCH dalam PHP adalah sebagai berikut:
switch (var)
{
case value1 : statement A
.
.
break;
case value2 : statement B
.
.
break;
case value3 : statement C
.
.
break;
.
.
default : statement D
.
.
}
Maksud dari sintaks di atas adalah: dalam hal ini nilai yang ada pada variabel (’var’) akan
dicek. Diantara value – value yang ada sebagai pilihan, dalam hal ini value1, value2,
value3, … dst manakah yang sesuai dengan value yang dimiliki oleh ‘var’. Misalkan nilai
var = value1, maka blok yang ada di statement A lah yang dijalankan. Bila nilai var =
value2, maka blok statement B yang akan dijalankan. Namun bila tidak ada value yang
cocok, maka barulah blok yang ada dibagian DEFAULT (statement D) yang akan
dijalankan.
Catatan:
Penggunaan option DEFAULT pada SWITCH adalah optional. Kita bisa untuk tidak
memberikan DEFAULT jika memang tidak diperlukan.
53
Bentuk sintaks SWITCH di atas ekuivalen dengan statement IF berikut ini
if (var == value1)
{
statement A
.
.
}
else if (var == value2)
{
statement B
.
.
}
else if (var == value3)
{
statement C
.
.
}
.
.
else
{
statement D
.
.
}
Apabila kita perhatikan dari konsep SWITCH, maka kita bisa menyimpulkan bahwa
proses pengecekan atau pengujian persyaratan yang terjadi hanyalah proses
perbandingan dalam bentuk ’sama dengan’ atau ‘==’.
SWITCH tidak bisa digunakan untuk kondisional yang di dalamnya terdapat proses
perbandingan seperti ‘lebih besar dari’, ‘lebih kecil dari’, ‘lebih kecil atau sama dengan’,
‘lebih besar atau sama dengan’ dan ‘tidak sama dengan’. Melihat hal ini memang
penggunaan statement IF untuk menyatakan kondisional lebih fleksibel daripada
SWITCH.
Trus… berarti SWITCH tidak lebih efektif daripada IF donk. Tentu tidak. Ada kelebihan
pada penggunaan SWITCH. Berikut ini kelebihannya:
54
• Meskipun makna sintaks SWITCH dan IF yang diberikan di atas adalah sama,
namun terdapat perbedaan dalam prosesnya.
Dalam SWITCH, persyaratan hanya diuji sekali saja. Diantara sekian pilihan value,
secara otomatis PHP akan menjalankan blok dimana valuenya cocok. Proses
pencarian value yang cocok ini tidak dimulai dari pilihan value paling atas namun
secara otomatis langsung menuju value yang cocok.
Sedangkan pada IF.. ELSE syarat diuji beberapa kali. Proses pengujian dimulai
dari syarat IF paling atas, jika tidak terpenuhi dicek dibagian IF bawahnya dst.
Akibatnya, apabila script Anda sangat kompleks atau banyak menggunakan
pernyataan kondisional, penggunaan SWITCH akan menghasilkan proses yang
lebih cepat daripada IF.
• Selain itu, statement yang akan dikerjakan dalam SWITCH bisa kosong atau tidak
melakukan apa-apa. Contoh :
<?php
switch ($i) {
case 0:
case 1:
case 2:
echo "i lebih kecil dari 3 tapi tidak negatif";
break;
case 3:
echo "i sama dengan 3";
}
?>
Nah… berikutnya, saya akan coba berikan contoh penggunaan SWICTH dalam studi
kasus. Studi kasus yang saya ambil di sini adalah bagaimana menampilkan nama bulan
sekarang (current month) dalam bahasa Indonesia.
Adapun ide penyelesaian dari studi kasus ini adalah sebagai berikut :
Langkah pertama kita harus tahu bulan sekarang. Untuk mengetahui nama bulan
sekarang, kita bisa menggunakan function date("n") dalam PHP. Function ini akan
menghasilkan bilangan bulat 1-12 yang mencerminkan angka bulan sekarang.
Trus… apakah Anda sudah punya ide berikutnya? Angka-angka ini mau diapain? …
Yes… Good idea.
55
Langkah kedua, dari angka bulan yang telah diperoleh ini selanjutnya kita
nyatakan ke dalam bahasa Indonesia. Bagaimana menyatakannya? Ya… caranya kita
gunakan logika seperti ini:
Jika angka bulan sama dengan 1, maka nama bulannya ‘Januari’. Jika angka bulan sama
dengan 2, maka bulannya ‘Pebruari’ dan seterusnya.
Untuk mengimplementasikan logika di atas, kita harus menggunakan pernyataan
kondisional. Apakah kita bisa menggunakan SWITCH? Oh… tentu bisa, karena operasi
perbandingan yang digunakan adalah ’sama dengan’. Sehingga bentuk script PHP nya
untuk menampilkan nama bulan dalam bahasa Indonesia adalah sbb:
<?php
$angkaBln = date("n");
switch($angkaBln)
{
case 1 : $namaBln = "Januari";
break;
case 2 : $namaBln = "Pebruari";
break;
case 3 : $namaBln = "Maret";
break;
case 4 : $namaBln = "April";
break;
case 5 : $namaBln = "Mei";
break;
case 6 : $namaBln = "Juni";
break;
case 7 : $namaBln = "Juli";
break;
case 8 : $namaBln = "Agustus";
break;
case 9 : $namaBln = "September";
break;
case 10: $namaBln = "Oktober";
break;
case 11: $namaBln = "Nopember";
break;
case 12: $namaBln = "Desember";
break;
}
56
echo "Nama bulan sekarang adalah : ".$namaBln;
?>
Selain menggunakan date(”n”); untuk mengetahui bulan sekarang, kita juga bisa
menggunakan date(”M”). Penggunaan date(”M”) ini akan menghasilkan nama bulan
akan tetapi dalam 3 huruf depan saja, misalnya ‘Jan’, ‘Feb’, ‘Mar’, ‘Apr’, … , ‘Dec’.
Apabila kita menggunakan function date(”M”) ini, maka scriptnya menjadi
<?php
$bln = date("M");
switch($bln)
{
case "Jan" : $namaBln = "Januari";
break;
case "Feb" : $namaBln = "Pebruari";
break;
case "Mar" : $namaBln = "Maret";
break;
case "Apr" : $namaBln = "April";
break;
case "May" : $namaBln = "Mei";
break;
case "Jun" : $namaBln = "Juni";
break;
case "Jul" : $namaBln = "Juli";
break;
case "Aug" : $namaBln = "Agustus";
break;
case "Sep" : $namaBln = "September";
break;
case "Oct" : $namaBln = "Oktober";
break;
case "Nov" : $namaBln = "Nopember";
break;
case "Dec" : $namaBln = "Desember";
break;
}
echo "Nama bulan sekarang adalah : ".$namaBln;
?>
57
Perhatikan script di atas ! Karena value yang akan dicocokkan berupa string, maka setiap
value pada option CASE diapit tanda petik
Catatan:
Perintah date() merupakan salah satu function. Apa itu function?, selain date() apakah
ada function yang lain? Dan bagaimana cara membuat function, semuanya akan
dijelaskan lebih lanjut di bab yang lain.
Tugas Untuk Anda
1. Misalkan diberikan script berikut ini
<?php
$bil = 10;
switch ($bil)
{
case 5 : echo "Bilangan sama dengan 5 <br />";
break;
case 8 : echo "Bilangan sama dengan 8 <br />";
break;
case 10 : echo "Bilangan sama dengan 10 <br />";
case 12 : echo "Bilangan sama dengan 12 <br />";
default : echo "Bilangan tidak sama dengan 5, 8, 10 dan 12 <br />";
break;
}
?>
Dengan tanpa menjalankan script di browser, coba tebak kira-kira apa outputnya
hayoo?? Bila sudah, coba bandingkan hasilnya bila dijalankan di browser.
Selanjutnya simpulkan!
2. Kerjakan kembali soal no. 6 Modul 7. Gunakan konsep SWITCH!
Keterangan:
Gunakan komponen radiobutton dalam memilih golongan gaji.
3. Kerjakan kembali soal no. 2 Modul 7 menggunakan konsep SWITCH
4. Dengan menggunakan konsep SWITCH, buatlah script untuk membaca bulan
saat ini dan tampilkan jumlah hari dalam bulan ini .
58
5. Buatlah aplikasi sederhana untuk menghitung luas beberapa bangun datar.
Pertama buat halaman index.php yang isinya menu pilihan berbentuk
radiobutton atau combobox yang itemnya sbb:
- Bujur sangkar
- Persegi panjang
- Lingkaran
- Segitiga
Dan sebuah tombol submit di bawah pilihan menu ini .
Misalkan apabila user memilih menu Bujur Sangkar dan ia mengklik submit,
maka nantinya akan muncul form untuk mengisikan panjang sisi bujur sangkar
dan sebuah tombol submit. Jika tombol submit ini diklik maka selanjutnya akan
muncul hasil luasnya. Selanjutnya bila user memilih Persegi Panjang dalam
menunya dan ia mengklik submit maka akan muncul form untuk mengisikan
panjang dan lebar persegi panjang serta sebuah tombol submit. Bila tombol ini
diklik maka akan memunculkan hasil luas persegi panjang. Begitu seterusnya….
Paham kan? Ya… sambil mengingat-ingat pelajaran di SD ☺
Catatan: Gunakan konsep SWITCH dalam menerapkan pemilihan menunya.
59
BAB 9
Statement FOR
Statement ini merupakan salah satu statement yang dapat digunakan untuk
menyatakan proses yang diulang-ulang atau looping.
Tentu kita tahu, bahwa suatu saat looping itu harus berhenti karena tidak mungkin tidak
pernah berhenti ☺ Nah.. berdasarkan hal ini , terdapat 2 kondisi yang dapat
menghentikan looping ini . Coba perhatikan 2 pernyataan sehari-hari berikut ini:
Hari ini saya makan bakso 10 kali.
Hari ini saya terus makan bakso sampai saya kenyang.
Kedua pernyataan di atas sama-sama mengandung proses yang diulang-ulang yaitu
‘makan bakso’. Namun proses ‘makan bakso’ dari kedua pernyataan ini berbeda
cara berhentinya. Pernyataan pertama menunjukkan bahwa ‘makan bakso’ akan
diulang-ulang sampai dengan 10 kali. Setelah sampai 10 kali, maka ‘makan bakso’ ini
akan berhenti. Sedangkan pernyataan yang kedua, dalam hal ini jumlah berapa kali
makan bakso tidak diketahui, namun yang diketahui hanyalah syarat kapan perulangan
ini akan berhenti yaitu ketika ‘sudah kenyang’.
Kedua bentuk looping berdasarkan kapan berhentinya di atas diadopsi ke dalam konsep
pemrograman. Dalam pemrograman, khususnya PHP, nantinya juga akan dijumpai
bentuk-bentuk perulangan ini .
Untuk menyatakan looping yang telah diketahui jumlah perulangannya, kita bisa
menggunakan statement FOR atau WHILE.
Sedangkan bila perulangannya tidak diketahui jumlah perulangannya atau hanya
diketahui kondisi kapan dia harus berakhir maka bisa digunakan WHILE.
Dalam bab ini kita akan bahas terlebih dahulu statement FOR.
Sintaks statement FOR adalah sebagai berikut
for (variabel = nilaiawal; variabel operatorlogika nilaiakhir; increment)
{
Proses yang diulang
}
0
Variabel yang digunakan pada FOR di atas, dinamakan variabel counter atau pencacah.
Contoh:
Script berikut ini akan menghasilkan teks heading mulai dari heading 1, 2 s/d 5.
<?php
$teks = "Hello World";
for ($a = 1; $a <= 5; $a++)
{
echo "<h".$a.">".$teks."</h".$a.">";
}
?>
Hasil output di atas adalah:
Pada for di atas, variabel counternya dalam hal ini adalah $a. Nilai $a ini memiliki nilai
awal sama dengan 1. Selanjutnya operator increment (kenaikan) yang digunakan adalah
$a++ atau $a = $a + 1 (kenaikannya satu) dan nilai akhir untuk $a adalah sama dengan 5.
Perhatikan proses loopingnya sebagai berikut:
1
• $a = 1 dalam hal ini masih memenuhi kondisi ($a <= 5), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h1>Hello World</h1>"
• $a = 2 dalam hal ini masih memenuhi kondisi ($a <= 5), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h2>Hello World</h2>"
• $a = 3 dalam hal ini masih memenuhi kondisi ($a <= 5), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h3>Hello World</h3>"
• $a = 4 dalam hal ini masih memenuhi kondisi ($a <= 5), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h4>Hello World</h4>"
• $a = 5 dalam hal ini masih memenuhi kondisi ($a <= 5), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h5>Hello World</h5>"
• $a = 6 dalam hal ini sudah tidak memenuhi kondisi ($a <= 5), sehingga
perulangan berhenti.
Catatan:
Operator increment tidak harus menggunakan kenaikan 1, contoh
<?php
$teks = "Hello World";
for ($a = 1; $a <= 10; $a+=2)
{
echo "<h".$a.">".$teks."</h".$a.">";
}
?>
Pada contoh di atas, increment yang digunakan adalah kenaikan 2 ($a += 2). Adapun
prosesnya adalah:
• $a = 1 dalam hal ini masih memenuhi kondisi ($a <= 10), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h1>Hello World</h1>"
• $a = 3 dalam hal ini masih memenuhi kondisi ($a <= 10), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h3>Hello World</h3>"
• $a = 5 dalam hal ini masih memenuhi kondisi ($a <= 10), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h5>Hello World</h5>"
• $a = 7 dalam hal ini masih memenuhi kondisi ($a <= 10), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h7>Hello World</h7>"
• $a = 9 dalam hal ini masih memenuhi kondisi ($a <= 10), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h9>Hello World</h9>"
• $a = 11 dalam hal ini sudah tidak memenuhi kondisi ($a <= 10), sehingga
perulangan berhenti.
2
Catatan:
Nilai awal variabel counter tidak harus dimulai dari 1, tapi boleh dari bilangan yang lain.
Catatan:
Selain operator increment, kita juga bisa menggunakan operator decrement (turun)
Contohnya
<?php
$teks = "Hello World";
for ($a = 10; $a > 5; $a--)
{
echo "<h".$a.">".$teks."</h".$a.">";
}
?>
Contoh di atas menggunakan decrement $a-- (nilainya turun 1). Berikut ini prosesnya:
• $a = 10 dalam hal ini masih memenuhi kondisi ($a > 5), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h10>Hello World</h10>"
• $a = 9 dalam hal ini masih memenuhi kondisi ($a > 5), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h9>Hello World</h9>"
• $a = 8 dalam hal ini masih memenuhi kondisi ($a > 5), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h8>Hello World</h8>"
• $a = 7 dalam hal ini masih memenuhi kondisi ($a > 5), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h7>Hello World</h7>"
• $a = 6 dalam hal ini masih memenuhi kondisi ($a > 5), sehingga lakukan
echo "<h".$a.">".$teks."</h".$a.">"; atau mencetak "<h6>Hello World</h6>"
• $a = 5 dalam hal ini sudah tidak memenuhi kondisi ($a > 5), sehingga perulangan
berhenti.
Anda juga bisa menggunakan operator decrement yang lain selain $a--, misalkan $a -= 2,
$a -= 3, dst.
FOR di dalam FOR (nested FOR)
Statement FOR dapat terletak di dalam sebuah FOR, seperti contoh berikut ini
<?php
for ($a = 1; $a < =3; $a++)
3
{
for ($b = 1; $b <= 2; $b++)
{
echo "Nilai a = ".$a. " Nilai b = ".$b. "<br />";
}
}
?>
Contoh di atas disebut juga “nested FOR tingkat 2”.
Proses yang terjadi pada script di atas adalah sbb:
• $a = 1 (masih memenuhi $a < =3), maka lakukan for yang terletak di dalam
o $b = 1 (masih memenuhi $b <= 2) maka cetak "Nilai a = 1 Nilai b = 1"
o $b = 2 (masih memenuhi $b <= 2) maka cetak "Nilai a = 1 Nilai b = 2"
o $b = 3 (tidak memenuhi $b <= 2), maka STOP
• $a = 2 (masih memenuhi $a <= 3), maka lakukan for yang terletak di dalam
o $b = 1 (masih memenuhi $b <= 2) maka cetak "Nilai a = 2 Nilai b = 1"
o $b = 2 (masih memenuhi $b <= 2) maka cetak "Nilai a = 2 Nilai b = 2"
o $b = 3 (tidak memenuhi $b <= 2), maka STOP
• $a = 3 (masih memenuhi $a <= 3), maka lakukan for yang terletak di dalam
o $b = 1 (masih memenuhi $b <= 2) maka cetak "Nilai a = 3 Nilai b = 1"
o $b = 2 (masih memenuhi $b <= 2) maka cetak "Nilai a = 3 Nilai b = 2"
o $b = 3 (tidak memenuhi $b <= 2), maka STOP
• $a = 4 (tidak memenuhi $a <= 3), maka STOP
Dengan demikian script di atas akan menghasilkan output
Nilai a = 1 Nilai b = 1
Nilai a = 1 Nilai b = 2
Nilai a = 2 Nilai b = 1
Nilai a = 2 Nilai b = 2
Nilai a = 3 Nilai b = 1
Nilai a = 3 Nilai b = 2
FOR juga dapat tersusun 3 tingkat atau lebih sesuai kebutuhan yang diinginkan
programmer.
Contoh-contoh script menggunakan FOR:
A. Script PHP untuk menampilkan bilangan bulat 5 s/d 100 yang berkelipatan 10
Konsep untuk menampilkan bilangan bulat ini kita bisa menggunakan
looping. Looping dimulai dari bilangan 5, 6, 7, dst sampai dengan 100. Untuk
4
setiap bilangan nantinya kita cek apakah dia kelipatan 10 atau tidak (kita
gunakan IF). Jika bilangan tsb merupakan kelipatan 10, maka kita tampilkan.
Sedangkan jika tidak, maka abaikan. Berikut ini script PHP nya
<?php
for ($bil = 5; $bil <= 100; $bil++)
{
if ($bil % 10 == 0) echo $bil. "<br />";
}
?>
B. Scrip