Pada bagian 1 dari artikel ini, kita telah belajar mengenai variabel dan
operasi matematika sederhana terhadap variabel di PHP. Konsep dasar
require() dan include() juga sudah kita kenal. Kali ini kita
akan mencoba untuk melanjutkan sedikit mengenai cakupan variabel, sebelum
berlanjut pada pengolahan form HTML.
Bar Ten-Fourty
Dalam pemrograman, seringkali kita ingin menggunakan variabel dengan cakupan
yang berbeda-beda. Ada variabel yang kita inginkan untuk digunakan di seluruh
program atau sering disebut variable global, ada variabel yang hanya ingin kita
gunakan di dalam cakupan sebuah fungsi atau prosedur.
Variabel dalam PHP memiliki cakupan dalam konteks variabel itu didefinisikan.
Umumnya variabel PHP hanya memiliki cakupan tunggal saja. Anda tidak perlu
khawatir dengan keterbatasan ini, karena ternyata kita dapat memperluas cakupan
variabel dengan memanfaatkan fungsi require() dan include()
yang telah kita pelajari. Untuk lebih jelas, mari kita lihat contohnya pada
program coba7.php di bawah ini.
$bartender = "Guinan";
include ("ten_fourty_bar.inc");
?>
Dalam contoh di atas, variabel $bartender akan memiliki cakupan pada
file skrip ten_fourty_bar.inc (atau dapat pula dilihat secara
sebaliknya). Jika kita membuat file skrip ten_fourty_bar.inc berisi
perintah php seperti di bawah ini.
echo "Bartender di Bar Ten-Fourty saat ini adalah : $bartender";
?>
Maka, hasil eksekusi program coba7.php adalah sebagai berikut
Namun jika pada program ten_fourty_bar.inc dibuat sebuah fungsi, maka
variabel $bartender tidak dapat mencakup ke dalam fungsi tersebut,
kecuali jika $bartender dimasukkan sebagai argumen dalam fungsi
tersebut atau $bartender dalam fungsi tersebut dideklarasikan sebagai
variabel global dengan perintah deklarasi global atau lewat variabel
$GLOBALS[]. Lebih detail mengenai penggunaan variabel dalam fungsi
akan kita bahas lagi pada saat kita membicarakan mengenai perancangan fungsi.
Kode program PHP disimpan sebagai sebuah file skrip. Jika aplikasi web yang
kita bangun memperlakukan file-file skrip itu sebagai modul dari aplikasi, maka
mungkin kita akan mendapatkan masalah jika kita ingin menggunakan variabel
lintas file skrip tersebut.
Kita dapat saja membuat sebuah file yang berisi nilai variabel yang akan
dipanggil lintas file. File ini kemudian selalu di-include() pada
modul-modul yang membutuhkan variabel tersebut. Namun solusi semacam ini tidak
memungkinkan kita untuk melakukan perubahan dinamis pada variabel tersebut.
Cara ini lebih tepat digunakan untuk konstanta global.
Cara lain adalah dengan melewatkan (passing thru) nilai variable dari
satu file skrip/dokumen ke file skrip/dokumen lain yang dipanggil setelahnya.
Terdapat dua cara untuk melakukan ini yaitu dengan:
- Menambahkan langsung variabel dan nilainya pada URL file skrip atau dokumen yang dipanggil. Contohnya kita memiliki host localhost dan file yang akan dipanggil adalah deep_space_9_bar.php terletak pada direktori root. Variable $bartender dapat dikenali nilainya oleh file deep_space_9_bar.php jika kita memanggil file tersebut dengan URL : http://localhost/deep_space_9_bar.php?bartender=Guinan. Jika kita ingin melewatkan variabel lain selain $bartender, misalkan $pengisiacara="Data", maka kita dapat menambahkan URL tersebut sehingga menjadi http://localhost/deep_space_9_bar.php?bartender=Guinan&pengisiacara=Data. Antar variabel dipisahkan dengan karakter "&".
- Menggunakan cara form HTML baik dengan metode POST/GET yang akan melewatkan nilai dari tag <INPUT> untuk ditangkap sebagai variabel oleh file yang dituju dalam ACTION. Lebih jelas lagi mengenai hal ini akan kita bicarakan pada saat membahas tentang form HTML.
PHP memiliki keunikan lain karena dapat membuat nama variabel dari nilai
variabel yang lain. Lihatlah contoh berikut ini.
$bartender = "Guinan";
$$bartender = "Bartender Misterius";
echo "$bartender, ${$bartender}\n";
echo "$bartender, $Guinan\n";
?>
Baris pertama adalah deklarasi variabel $bartender sekaligus pengisian
nilainya dengan "Guinan", sedangkan baris yang kedua sebenarnya adalah
deklarasi variabel dengan nama $Guinan yang diisi nilai "Bartender
Misterius". Sekalipun perintahnya berbeda, baris ketiga dan keempat memberikan
hasil keluaran yang sama yaitu.
Penulisan $$bartender dan ${$bartender} adalah variasi cara
untuk menyebut variabel yang sama (dalam konteks ini adalah variabel
$Guinan). Tanda kurung kurawal "{...}" akan banyak gunanya
jika kita telah mulai menggunakan nama variabel dari nilai variabel lain dalam
larik (array) variabel. Misalnya variabel ${$bartender[1]}
artinya variabel dengan nama dari isi variabel indeks 1 dari larik variabel
$bartender, sedangkan variabel ${$bartender}[1] adalah
variabel indeks 1 dari larik variabel dengan nama dari isi variabel
$bartender.
Ketika saya menuliskan paragraf di atas, saya menjadi sedikit mengkhawatirkan
kondisi Anda setelah membaca kalimat terakhir saya. Pegang kening Anda, dan
jika panas, Anda dapat mencoba lagi membaca dan mengerti paragraf tersebut di
kesempatan yang lain atau bisa juga Anda membaca keterangan berikut ini.
Notasi ${$bartender[1]} artinya kita memiliki larik variabel
$bartender, misalkan isi $bartender[1]="Guinan",
$bartender[2]="Q", $bartender[3]="Riker", dan seterusnya.
Maka notasi ${$bartender[1]} yang kita maksudkan adalah variabel
$Guinan bukan $Q atau pun $Riker. Pada notasi kedua
yakni ${$bartender}[1] artinya kita memiliki variabel non larik
$bartender yang misalkan berisi nilai "Guinan", sehingga notasi
${$bartender}[1] secara implisit berarti kita memiliki variabel larik
$Guinan[1], $Guinan[2], dan seterusnya.
Apakah Anda telah cukup puas dengan pembahasan mengenai variabel? Jika belum
puas maka dengan sangat menyesal saya katakan bahwa saat ini tiba-tiba
mood saya untuk membahas variabel telah hilang. Mood saya
sekarang adalah membicarakan masalah form.
Pintu Masuk Holodeck di USS Enterprise
Form merupakan cara termudah, terumum, dan tercepat untuk membuat situs web
Anda lebih hidup dan mampu berinteraksi dengan pengunjung yang mengaksesnya.
Banyak keuntungan yang bisa Anda dapatkan dari penggunaan form dalam dokumen
HTML, misalkan Anda dapat menanyakan apakah pengunjung situs Anda menyukai
produk Anda atau bahkan Anda dapat meminta kepada pengunjung wanita yang cantik
untuk menuliskan nomor teleponnya bagi Anda. Tentu saja jika mereka bersedia.
Mungkin tidak banyak hasilnya, namun tidak ada salahnya berharap akan ada yang
jatuh dalam perangkap Anda.
PHP membuat hidup kita menjadi lebih mudah karena PHP dapat membuat pemrosesan
form untuk mengambil data masukan dari pengguna menjadi lebih sederhana dan
cepat. Jangan pernah membayangkan Anda saat ini dapat menemukan kemudahan ini
pada bahasa Perl atau C/C++, misalnya. Jika kebetulan suatu saat Anda menemukan
kemudahan ini pada Perl, sebenarnya ini bukan salah PHP, namun hanya karena
kebetulan Perl yang berkembang terlalu pesat.
Sebagai permulaan, Anda dapat mencoba membuat file HTML berikut ini yang dapat
Anda simpan dengan nama login.html.
<head>
<basefont face="Arial">
</head>
<body>
<center>
<form method="GET" action="proseslogin.php">
<table cellspacing="5" cellpadding="5" border="1">
<tr>
<td colspan="2" align="center">
NCC-1701D USS Enterprise<br>
Fasilitas Holodeck
</td>
</tr>
<tr>
<td>
<font size="-1">Silakan Masukkan Nama Anda
</td>
<td>
<input type="text" name="namaofficer" size="20">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="loginofficer" value="Login">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
Hal kritikal pada file di atas yang akan kita bahas adalah adalah tag
<FORM>.
........
</form>
Atribut action pada tag <FORM> menunjukkan nama
dari file skrip di sisi server, yang dalam kasus kita ini akan bertugas untuk
memproses informasi yang dimasukkan ke form. Sementara itu atribut
method akan menentukan tata cara informasi akan dilewatkan ke file
skrip yang ditunjuk oleh atribut action.
Dalam standar HTML, dikenal dua macam method untuk memproses informasi
yang dimasukkan ke form agar dapat diproses oleh file skrip yang dituju, yaitu
GET dan PUT. Penggunaan GET akan menyebabkan seluruh
isian form dilewatkan ke file skrip yang dituju dengan cara ditambahkan pada
URL file skrip yang dituju, sementara PUT tidak akan menambahkan URL
file skrip yang dituju dengan hasil isian form. Untuk lebih jelasnya, Anda bisa
kembali membuka referensi standar HTML yang Anda miliki.
File ini jika dipanggil lewat browser akan memberikan tampilan sebagai berikut.
Untuk kasus kita saat ini, kita baru setengah jalan. Kita harus membuat file
proseslogin.php yang akan menerima data isian dari file
login.html. File skrip yang akan kita buat ini akan bertugas melakukan
pengecekan nama officer yang akan memasuki ruang holodeck. Berhubung
sampai saat ini kita belum mempelajari mengenai pernyataan kondisional
(conditional statement) dan operator logika, maka sementara ini file
proseslogin.php hanya akan kita buat untuk menunjukkan kepada Anda
bagaimana data dikirimkan oleh form pada file login.html dan diproses
atau digunakan pada file proseslogin.php.
Inilah file proseslogin.php yang kita akan kita buat.
<head>
<basefont face="Arial">
</head>
<body>
<center>
<font face="Arial" size="-1">
Hmm, pernahkah Anda berimajinasi, <? echo $namaofficer; ?> ?
<P>
Holodeck mampu membuat Anda berimajinasi dan menjalaninya hampir tanpa batas.
<P>
Anda siap memasuki holodeck?
</font>
</center>
</body>
</html>
Misalkan Anda mengisikan data pada form, misalkan saja "Parto", kemudian anda
tekan tombol "Login", maka tampak pada browser Anda sebagai berikut.
Seperti yang Anda lihat, pada saat sebuah form dikirimkan ke sebuah skrip PHP,
semua pasangan variabel dan nilainya yang ada pada form tersebut secara
otomatis tersedia untuk digunakan oleh skrip PHP tersebut. Dalam contoh di
atas, saat form yang ada pada login.html dikirim, variabel
$namaofficer otomatis terbentuk pada skrip PHP
proseslogin.php dan variabel ini langsung terisi dengan data yang
diisikan pada form oleh pengguna.
Jika Anda mencoba melakukan hal yang sama dengan Perl, maka Anda perlu secara
eksplisit menulis kode untuk melakukan ekstrak dan mengambil nilai dari
variabel-variabel dalam form. PHP telah secara otomatis melakukan semua ini
untuk Anda, sehingga kode program Anda akan lebih sederhana dan proses
development aplikasi menjadi lebih cepat.
Kehati-hatian Dalam Memilih
Saya tidak akan mengelak jika Anda memprotes contoh di atas terlalu sederhana.
Memang saat ini kita belum mulai melakukan seleksi calon pengguna holodeck.
Untuk dapat melakukannya, mari kita mempelajari pernyataan kondisional dan
operator logika. Bentuk paling dasar dari pernyataan kondisional adalah
perbandingan, misalnya "jika ini sama dengan itu maka lakukan hal ini, dan
seterusnya".
PHP memiliki operator-operator logika yang sangat berguna untuk menyusun
pernyataan kondisional. Berikut ini adalah daftarnya.
Misalkan $alpha=7 dan $beta=4.
Operator | Arti | Ekspresi | Hasil Evaluasi Nilai |
== | sama dengan | $alpha == $beta | False |
!= | tidak sama dengan | $alpha != $beta | True |
> | lebih besar daripada | $alpha > $beta | True |
< | lebih kecil daripada | $alpha < $beta | False |
>= | lebih besar atau sama dengan | $alpha >= $beta | True |
<= | lebih kecil atau sama dengan | $alpha <= $beta | False |
PHP4 juga memperkenalkan sebuah operator logika baru, yang melakukan pengecekan
baik kesamaan nilai maupun jenis nilai dari variabel. Operator ini adalah
===. Pada bagian akhir bagian ini akan ditunjukkan ilustrasi
penggunaan operator ini.
Officer Yang Berhak Masuk Holodeck
Bentuk paling sederhana dari pernyataan kondisional dalam PHP adalah pernyataan
"if", yang kurang lebih adalah seperti di bawah ini:
lakukan hal ini!;
}
Bagian kondisi adalah merupakan ekspresi kondisional yang akan
dievaluasi apakah hasilnya true (benar) atau false (salah). Jika
hasil pengecekan kondisi bernilai true, maka seluruh kode PHP
yang ada dalam blok if (di antara dua kurung kurawal) akan dieksekusi. Jika
tidak (hasil pengecekan false), maka seluruh kode PHP dalam blok if akan
dilewati dan eksekusi program akan dilanjukan ke baris setelah blok
if.
Sekarang kita coba memodifikasi program proseslogin.php dengan membuat
sistem validasi/otentikasi sederhana untuk nama officer yang diperkenankan
memasuki holodeck. Misalkan akses ke holodeck hanya diperbolehkan untuk
officer "Riker".
<head>
<basefont face="Arial">
</head>
<body>
<center>
<?php
// validasi nama officer dan tampilkan pesan yang sesuai
if ($namaofficer == "Riker")
<font face="Arial" size="-1">
Hmm, pernahkah Anda berimajinasi, <? echo $namaofficer; ?> ?
<P>
Holodeck mampu membuat Anda berimajinasi dan menjalaninya hampir tanpa batas.
<P>
Selamat datang di holodeck USS Enterprise. <BR>
Anda siap memasuki holodeck?
</font>
<?php
<?php
// jika nama officer tidak sesuai
if ($namaofficer != "Riker")
<font face="Arial" size="-1">
Hmm, Anda ingin berimajinasi, <? echo $namaofficer; ?> ?
<P>
Sayang sekali, Anda dalam tugas.
<P>
Anda tidak diperkenankan memasuki holodeck.
</font>
<?php
</center>
</body>
</html>
Anda dapat menyusun beberapa blok if secara bertumpuk (nested) untuk
melakukan penyeleksian lebih ketat terhadap beberapa kondisi. Misalkan Anda
ingin mencari Leutenant Worf, Anda dapat menyusun pengkondisian seperti di
bawah ini.
if ($pekerjaan == "Officer Starfleet")
if ($pesawat == "USS Enterprise")
if ($ras == "Klingon")
$nama = "Worf";
}
Jika Tidak, Maka ...
Selain bentuk "if" seperti yang telah kita pelajari, PHP juga memiliki
bentuk pernyataan kondisional "if-else", yang selain memiliki blok
perintah PHP yang dieksekusi jika kondisi bernilai true juga memiliki
blok perintah PHP yang akan dijalankan jika kondisi bernilai false.
Konstruksi "if-else" adalah seperti ini.
lakukan hal ini!;
}
lakukan hal itu!;
}
Dengan konstruksi ini, maka kita dapat membuat program proseslogin.php
menjadi lebih efisien daripada menggunakan dua buah blok if.
<head>
<basefont face="Arial">
</head>
<body>
<center>
<?php
// validasi nama officer dan tampilkan pesan yang sesuai
if ($namaofficer == "Riker")
<font face="Arial" size="-1">
Hmm, pernahkah Anda berimajinasi, <? echo $namaofficer; ?> ?
<P>
Holodeck mampu membuat Anda berimajinasi dan menjalaninya hampir tanpa batas.
<P>
Selamat datang di holodeck USS Enterprise. <BR>
Anda siap memasuki holodeck?
</font>
<?php
// jika nama officer tidak sesuai
<font face="Arial" size="-1">
Hmm, Anda ingin berimajinasi, <? echo $namaofficer; ?> ?
<P>
Sayang sekali, Anda dalam tugas.
<P>
Anda tidak diperkenankan memasuki holodeck.
</font>
<?php
</center>
</body>
</html>
Menu Harian Holodeck USS Enterprise
PHP juga menyediakan bentuk pernyataan kondisional "if-elseif-else"
untuk menangani kemungkinan yang lebih banyak dari pemilihan kondisi. Bentuk
pernyataan kondisional ini adalah seperti di bawah ini.
lakukan tindakan 1;
}
lakukan tindakan 2;
}
lakukan tindakan 3;
}
else
lakukan tindakan yang lain;
}
Mari kita lihat contoh penerapannya untuk membuat pilihan menu harian di
holodeck USS Enterprise.
<head>
<style type="text/css">
td {font-family: Arial;}
</style>
</head>
<body>
<font face="Arial" size="+2">
Pilihan Menu Harian Holodeck USS Enterprise
</font>
<form method="GET" action="prosesmenu.php">
<table cellspacing="5" cellpadding="5" border="0">
<tr>
<td align="center">
Pilih Hari
</td>
<td align="right">
<select name="hari">
<option value="Senin">Senin
<option value="Selasa">Selasa
<option value="Rabu">Rabu
<option value="Kamis">Kamis
<option value="Jumat">Jumat
<option value="Sabtu">Sabtu
<option value="Minggu">Minggu
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Klik Di Sini!">
</td>
</tr>
</table>
</form>
</body>
</html>
Dengan skrip di atas kita bermaksud membuat pilihan menu harian di holodeck.
Simpanlah skrip di atas dengan nama menu.php. Untuk dapat bekerja,
perlu kita buat skrip di bawah ini, yang akan kita simpan dengan nama
prosesmenu.php.
if ($hari == "Senin")
$topik = "Romeo dan Juliet (Shakespeare)";
}
$topik = "Petualangan Robin Hood";
}
$topik = "Jurassic Park";
}
$topik = "Indiana Jones";
}
$topik = "Final Fantasy";
}
$topik = "Maaf, Holodeck USS Enterprise tutup saat weekend.";
}
<html>
<head>
<basefont face="Arial">
</head>
<body>
Menu Petualangan Holodeck USS Enterprise<br>
Hari <? echo $hari; ?> : <br>
<b><? echo $topik; ?><b>
</body>
</html>
Dengan dua skrip di atas, maka kita dapat memilih nama hari pada skrip pertama
dan menekan tombol untuk mengaktifkan skrip kedua yang akan memilihkan topik
holodeck untuk hari yang dipilih. Patut diingat, bahwa begitu sebuah kondisi
dalam bentuk "if-elseif-else" ditemukan bernilai true maka
seluruh kode dalam blok kondisi yang tersebut akan dieksekusi, dan berikutnya
aliran program akan dilanjutkan pada baris kode setelah blok
"if-elseif-else". Jadi dalam bentuk penyataan kondisional seperti ini
tidak ada dua buah blok kondisi yang akan dijalankan secara bersamaan. Hanya
kondisi yang pertama kali ditemukan bernilai true yang akan dijalankan,
selebihnya akan dilewatkan. Kode berikut ini akan memberi ilustrasi secara
lebih baik.
$alpha = 12;
$beta = 15;
$delta = 19;
$gamma = 24;
$kondisi = "";
if ($alpha < $beta)
$kondisi .= "Alpha Lebih Kecil Daripada Beta <br>";
}
$kondisi .= "Alpha Lebih Kecil Daripada Delta <br>";
}
$kondisi .= "Alpha Lebih Kecil Daripada Gamma <br>";
}
$kondisi .= "Tidak Ada Kondisi Yang Sesuai <br>";
}
<html>
<head>
<basefont face="Arial">
</head>
<body>
<?php
echo $kondisi;
?>
</body>
</html>
Jika skrip di atas dijalankan, sebenarnya ada 3 kondisi yang bernilai
true, namun pada kenyataannya hanya kode pada blok kondisi pertama
($alpha < $beta) saja yang dijalankan. Dua kondisi lainnya yang
juga bernilai true tidak dijalankan, karena bentuk
"if-elseif-else" hanya mengeksekusi blok kondisi pertama yang
ditemukan bernilai true. kemudian akan dilanjutkan dengan mengeksekusi
baris perintah/kode setelah bentuk pernyataan kondisional.
Notasi $kondisi .= "bla-bla-bla" adalah notasi penyambungan sebuah
untai (string). Notasi ini mirip dengan di bahasa pemrograman C/C++, dan
berlaku juga untuk operator aritmatika. Tabel berikut ini menunjukkan notasi
normal dan notasi singkatannya yang berlaku di PHP.
Notasi Normal | Notasi Singkat | Keterangan |
$a = $a + 1 | $a++ | Tambahkan 1 ke $a dan simpan hasilnya di $a |
$a = $a + $x | $a += $x | Tambahkan $x ke $a dan simpan hasilnya di $a |
$a = $a - 1 | $a-- | Kurangkan 1 dari $a dan simpan hasilnya di $a |
$a = $a - $x | $a -= $x | Kurangkan $x dari $a dan simpan hasilnya di $a |
$a = $a . $x | $a .= $x | Sambungkan string $x ke string $a dan simpan hasilnya di $a |
Dan, Atau, Tidak
Masih ingatkah dengan skrip mencari Worf? Mari kita lihat lagi skrip tersebut.
if ($pekerjaan == "Officer Starfleet")
if ($pesawat == "USS Enterprise")
if ($ras == "Klingon")
$nama = "Worf";
}
Anda bisa tidak setuju dengan saya, namun sebenarnya skrip di atas terlalu
kompleks dan sedikit mengerikan. PHP menawarkan juga operator logika yang dapat
digunakan untuk menyederhanakan skrip di atas. Tabel berikut ini akan
menunjukkan operator logika dalam PHP.
Operator | Arti | Ekspresi | Hasil Evaluasi Nilai |
&& | AND | $alpha == $delta && $alpha > $beta | True |
$alpha && $beta < $beta | False | ||
|| | OR | $alpha == $delta || alpha < $beta | True |
$alpha > $delta || alpha < $beta | False | ||
! | NOT | !$alpha | False |
Dengan pengetahuan logika ini, maka kita bisa menulis kembali skrip pencarian
Worf dengan lebih sederhana.
if ($pekerjaan == "Officer Starfleet" && $pesawat == "USS Enterprise" && $ras == "Klingon")
$nama = "Worf";
}
Bukankah skrip di atas lebih sederhana?
Sekali Lagi, Memilih Di Antara Banyak Pilihan
PHP juga menyediakan alternatif pernyataan kondisional selain dengan keluarga
"if-else" yaitu bentuk "switch-case", dengan bentuk
pernyataan seperti berikut ini.
{
case (kondisi_pertama_benar)
Lakukan Tindakan Untuk Kondisi Pertama;
case (kondisi_kedua_benar)
Lakukan Tindakan Untuk Kondisi Kedua;
case (kondisi_ketiga_benar)
Lakukan Tindakan Untuk Kondisi Ketiga;
.............. dan seterusnya ............
}
Lakukan Tindakan Untuk Kondisi Pertama;
case (kondisi_kedua_benar)
Lakukan Tindakan Untuk Kondisi Kedua;
case (kondisi_ketiga_benar)
Lakukan Tindakan Untuk Kondisi Ketiga;
.............. dan seterusnya ............
}
Kini kita akan mencoba menulis kembali kode program prosesmenu.php
yang digunakan untuk menampilkan menu harian holodeck. Dengan menggunakan
bentuk "switch-case", skrip program akan menjadi seperti di bawah ini.
// variabel penentu dalam hal ini adalah $hari yang dipilih pengguna
switch ($hari)
case "Senin":
$topik = "Romeo dan Juliet (Shakespeare)";
break;
// kondisi kedua
case "Selasa":
$topik = "Petualangan Robin Hood";
break;
// kondisi ketiga
case "Rabu":
$topik = "Jurassic Park";
break;
// kondisi keempat
case "Kamis":
$topik = "Indiana Jones";
break;
// kondisi kelima
case "Jumat":
$topik = "Final Fantasy";
break;
// jika selain kondisi yang di atas
default:
$topik = "Maaf, Holodeck USS Enterprise tutup saat weekend.";
break;
}
<html>
<head>
<basefont face="Arial">
</head>
<body>
Menu Petualangan Holodeck USS Enterprise<br>
Hari <? echo $hari; ?> : <br>
<b><? echo $topik; ?><b>
</body>
</html>
Ada beberapa kata kunci yang penting dalam penggunaan pernyataan
"switch-case". Pertama adalah perintah break yang digunakan
untuk keluar dari blok "switch" dan melanjutkan ke baris perintah
sesudah blok tersebut setelah ditemukan sebuah kondisi true yang
pertama. Tanpa penggunaan break, maka case berikutnya akan
kembali dievaluasi walaupun telah case sebelumnya telah ditemukan
bernilai true. Kata default digunakan untuk "menangkap" kondisi
dimana nilai variable penentu tidak memenuhi semua kriteria/kondisi pada
case-case yang ada.
Bersatu Kita Teguh
Sampai sejauh ini, program pengolahan form yang kita buat selalu menggunakan
dua halaman web yaitu satu halaman HTML yang berisi form dan satu lagi adalah
halaman skrip PHP untuk memproses masukan form dan menghasilkan keluaran yang
sesuai. PHP sesungguhnya menyediakan cara yang lebih baik untuk dapat
menggabungkan dua halaman tersebut menjadi satu halaman saja, dengan cara
menangkap nilai dari variabel yang dikirimkan oleh tombol pemroses di form.
Telah kita ketahui bahwa saat form dikirimkan ke skrip PHP, seluruh variabel
form akan menjadi tersedia dalam lingkungan skrip PHP. Tombol pemroses, juga
akan mengirimkan nilai dari variabel sesuai namanya, jika tombol pemroses ini
ditekan dengan tujuan mengirimkan isian form. Dengan melakukan pengecekan
terhadap ada tidaknya nilai variabel dari tombol pemroses, maka programmer
dapat menggunakan file PHP tunggal untuk menghasilkan baik form isian maupun
keluarannya jika isi form dikirimkan.
Mari kita coba menggabungkan dua halaman menjadi satu halaman skrip PHP dalam
kasus menu harian holodeck. Berikut ini adalah skrip gabungannya, misalkan kita
simpan dalam nama menu.php.
if (!$proses)
// jika $proses tidak memiliki nilai, artinya adalah
// form tidak dalam proses pengiriman, maka skrip akan
// menampilkan form isian.
<head>
<style type="text/css">
td {font-family: Arial;}
</style>
</head>
<body>
<font face="Arial" size="+2">
Pilihan Menu Harian Holodeck USS Enterprise
</font>
<form method="GET" action="<? echo $PHP_SELF; ?>">
<table cellspacing="5" cellpadding="5" border="0">
<tr>
<td align="center">
Pilih Hari
</td>
<td align="right">
<select name="hari">
<option value="Senin">Senin
<option value="Selasa">Selasa
<option value="Rabu">Rabu
<option value="Kamis">Kamis
<option value="Jumat">Jumat
<option value="Sabtu">Sabtu
<option value="Minggu">Minggu
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="proses" value="Klik Di Sini!">
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
// jika $proses memiliki nilai, berarti data isian
// form sedang dikirim, maka skrip akan memproses
// isian form.
// variabel penentu dalam hal ini adalah $hari yang dipilih pengguna
switch ($hari)
case "Senin":
$topik = "Romeo dan Juliet (Shakespeare)";
break;
// kondisi kedua
case "Selasa":
$topik = "Petualangan Robin Hood";
break;
// kondisi ketiga
case "Rabu":
$topik = "Jurassic Park";
break;
// kondisi keempat
case "Kamis":
$topik = "Indiana Jones";
break;
// kondisi kelima
case "Jumat":
$topik = "Final Fantasy";
break;
// jika selain kondisi yang di atas
default:
$topik = "Maaf, Holodeck USS Enterprise tutup saat weekend.";
break;
}
<html>
<head>
<basefont face="Arial">
</head>
<body>
Menu Petualangan Holodeck USS Enterprise<br>
Hari <? echo $hari; ?> : <br>
<b><? echo $topik; ?><b>
</body>
</html>
<?php
Dengan skrip di atas, maka baik form maupun proses untuk dapat menghasilkan
keluaran dapat disatukan dalam satu halaman skrip PHP. Variabel $proses adalah
variabel yang dihasilkan jika tombol pemroses ditekan. Ada tidaknya nilai
variabel ini yang akan menentukan apakah skrip ini memberikan keluaran berupa
form ataukah akan memproses hasil isian form.
Untuk agar form yang dikirim dapat menghasilkan variabel $proses pada
lingkungan skrip PHP, maka perlu dilakukan perubahan pada tag HTML untuk
tombol submit, yaitu dari:
menjadi perlu ditambah atribut name seperti berikut ini.
Hal lain yang patut dicermati adalah pada tag <form>.
Alih-alih menggunakan atribut action="menu.php", kita dapat
menggunakan variabel pre-defined PHP yaitu $PHP_SELF yang akan
secara tepat menunjukkan bahwa skrip yang dituju adalah skrip itu sendiri.
Dengan demikian, perubahan nama file menu.php menjadi nama yang lain,
tidak menyebabkan kita perlu memodifikasi atribut action pada
tag <form>. Bentuk dari tag <form>
menjadi seperti berikut ini.
Catatan Tambahan
Operator ===
Berikut ini adalah contoh penggunaan operator === yang berfungsi untuk
melakukan pengecekan variabel apakah memiliki nilai dan jenis yang sama.
if (!$proses)
// jika nilai variabel $proses tidak ada, maka
// tampilkan halaman pertama (form isian)
<head>
<style type="text/css">
td {font-family: Arial;}
</style>
</head>
<body>
<form method="GET" action="<? echo $PHP_SELF; ?>">
<table cellspacing="5" cellpadding="5" border="0">
<tr>
<td align="center">
Masukkan Sesuatu!
</td>
<td align="right">
<input type="text" name="var1">
</td>
</tr>
<tr>
<td align="center">
Masukkan Yang Lainnya!
</td>
<td align="right">
<input type="text" name="var2">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="proses" value="Test Variabel">
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
// jika nilai variabel $proses ada, maka lakukan pemrosesan
// terhadap isian form if ($var1 === $var2)
$hasil = "Kedua variabel identik dan berjenis sama."
}
else
$hasil = "Kedua variabel tidak identik dan/atau tidak berjenis sama."
}
<html>
<head>
<basefont face="Arial">
</head>
<body>
<b><? echo $hasil; ?></b>
</body>
</html>
<?php
Alternatif Penulisan
PHP juga mendukung alternatif cara penulisan (syntax) untuk struktur
kontrol yang telah kita bicarakan. Anda dapat menuliskan kode dengan cara
seperti ini.
if ($warp == 0)
echo "Mesin Warp Tidak Diaktifkan.";
}
echo "Mesin Warp Sedang Diaktifkan.";
}
atau Anda dapat menuliskan seperti ini
<?php
if ($warp == 0):
Alternatif kedua sama saja dengan yang pertama, dan secara sederhana dibuat
dengan mengganti tanda kurung kurawal pertama pada setiap pasangan dengan tanda
colon/titik dua [:], menghapus tanda kurung kurawal kedua, dan mengakhiri
seluruh blok dengan sebuah perintah "endif".
Baiklah, cukup dahulu bagian kedua dari pelajaran dasar PHP ini. Selanjutnya,
kita akan belajar melakukan perulangan, sedikit tentang array, dan lebih jauh
mengenai form. Jangan sampai ketinggalan!
Tidak ada komentar:
Posting Komentar