Terdapat dua cara melakukan percabangan di dalam PHP. Yaitu dengan percabangan if-else dan percabangan switch.
Sebelum membahas lebih lanjut mengenai percabangan, kita harus membahas operator pembanding dan operator logika:
Operator pembanding pada PHP
Operator pembanding berguna untuk membandingkan dua pernyataan. Pernyataan dapat berupa literal, variabel, konstanta ataupun fungsi.
Contoh | Nama | Keterangan |
---|---|---|
$a == $b | Sama dengan | TRUE bila $a sama dengan $b meskipun beda tipe data |
$a === $b | Identik dengan | TRUE bila isi dan tipe data $a dan $b sama |
$a != $b | Tidak sama dengan | TRUE bila $a tidak sama dengan $b |
$a <> $b | Tidak sama dengan | TRUE bila $a tidak sama dengan $b |
$a !== $b | Tidak identik dengan | TRUE bila $a dan $b tidak identik (isi dan tipe sama) |
$a < $b | Lebih kecil dari | TRUE bila $a lebih kecil dari $b |
$a > $b | Lebih besar dari | TRUE bila $a lebih besar dari $b |
$a <= $b | Lebih kecil sama dengan | TRUE bila $a lebih kecil atau sama dengan $b |
$a >= $b | Lebih besar sama dengan | TRUE bila $a lebih besar atau sama dengan $b |
$a <=> $b | Spaceship (PHP 7) | -1, 0, atau 1 bila $a lebih kecil, sama dengan, atau lebih besar dari $b |
$a ?? $b ?? $c | Null Coalesce / penggabungan null (PHP 7) | Salah satu dari $a, $b atau $c yang tidak NULL. NULL bila semua bernilai NULL |
Untuk lebih jelasnya mengenai operator "sama dengan" dan operator "identik dengan", dapat melihat contoh berikut:
Operator Logika pada PHP
Operator logika berfungsi menggabungkan dua kondisi (true atau false) menjadi kondisi yang baru.
1
2
3
4
5
6
7
8
9
| $a = 23; $b = "23" ; $contoh1 = ( $a == $b ); $contoh2 = ( $a === $b ); $contoh3 = ( $a != $b ); $contoh4 = ( $a !== $b ); echo "<pre>" ; var_dump( $a , $b , $contoh1 , $contoh2 , $contoh3 , $contoh4 ); echo "</pre>" ; |
Output:
int(23) string(2) "23" bool(true) bool(false) bool(false) bool(true)
Operator Logika pada PHP
Operator logika berfungsi menggabungkan dua kondisi (true atau false) menjadi kondisi yang baru.
Contoh | Nama | Keterangan |
---|---|---|
$a and $b | Dan | TRUE bila $a dan $b dua-duanya benar |
$a && $b | Dan | TRUE bila $a dan $b dua-duanya benar |
$a or $b | Atau | TRUE bila $a atau $b salah satu benar |
$a || $b | Atau | TRUE bila $a atau $b salah satu benar |
$a xor $b | Xor | TRUE bila $a berbeda dengan $b |
!$a | Not | TRUE bila $a FALSE, FALSE bila $a TRUE |
Struktur if-else pada PHP
Percabangan if-else adalah percabangan yang paling banyak dipakai. Struktur percabangan if-else adalah sebagai berikut:
1
2
3
4
5
6
7
8
9
| <?php if (kondisi1) { //Kode untuk kondisi 1 } else if (kondisi2) { //Kode untuk kondisi 2 } else { //Kode bila semua kondisi lain bernilai false } ?> |
Kode di atas terbagi menjadi tiga bagian. Yaitu bagian if (kondisi1) { ... }, bagian else if (kondisi2) { ... }, dan bagian else { ... }. Bagian else if dan bagian else bersifat opsional, bisa disertakan, bisa juga tidak. Berikut contoh penggunaan struktur if sederhana:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| <?php if (isset( $_POST [ 'login' ])) { echo "<pre><b>Data yang dikirim:</b> \n" .print_r( $_POST , true). "</pre><hr />" ; echo "Anda telah menekan tombol Login <hr />" ; } ?><!doctype html> <html> <head><title>Coba IF-ELSE</title></head> <body> <form method= "POST" action= "" > <table> <tr> <td>Username</td> <td><input type= "text" name= "username" /></td> </tr> <tr> <td>Password</td> <td><input type= "password" name= "password" /></td> </tr> <tr> <td colspan= "2" ><button name= "login" >Login</button></td> </tr> </table> </form> </body> </html> |
Mulai dari <!doctype html> sampai habis, adalah script HTML untuk menampilkan form. Ketika diklik, form tersebut akan mengirimkan data form ke alamat yang dituju di dalam atribut action. Berhubung atribut action kosong, maka data dikirim ke alamat yang sama dengan alamat halaman yang sedang tampil.
Saat data dikirim ke script ini, script ini diparse ulang dari awal. Mulai dari bagian atas.
Pada script di atas, baris 2 sampai 5 adalah contoh if sederhana. Berikut adalah penjelasan baris per baris:
- Baris 2: Jika ada kiriman data dengan nama "login", lakukan yang di dalam kurung kurawal.
- isset($a) adalah fungsi yang bernilai TRUE bila variabel $a ada. Dan FALSE bila variabel $a tidak ada.
- Baris 3: Menampilkan <pre>[data yang dikirim]</pre>. Dibungkus dengan <pre> agar karakter enter menjadi baris baru pada HTML.
- Baris 4: Hanya menampilkan di layar: "Anda telah menekan tombol login".
- Baris 5: Akhir dari kode berkondisi. Disimbolkan dengan kurung kurawal.
Untuk mencoba script ini, jalankan, dan input username dan password ke dalam form, dan tekan tombol login. Akan tampil pesan "Anda telah menekan tombol login".
Berikutnya, coba ganti baris 2 sampai 5 (berikutnya akan disebut baris 2 sampai 7) di atas menjadi:
1
2
3
4
5
6
| if (isset( $_POST [ 'login' ])) { echo "<pre><b>Data yang dikirim:</b> \n" .print_r( $_POST , true). "</pre><hr />" ; echo "Anda telah menekan tombol Login <hr />" ; } else { echo "Tombol Login belum ditekan <hr/>" ; } |
Ada tambahan pada baris 5 sampai 7:
- Baris 5: Akhir dari kondisi "Jika ada kiriman data $_POST bernama login".
- Else: maksudnya: jika kondisi "Ada kiriman data bernama login" tidak terpenuhi
- Baris 6: (Jika "Tidak" "Ada kiriman data $_POST bernama login"), tampilkan tulisan "Tombol login belum ditekan"
- Baris 7: Akhir dari kondisi "Tidak" "Ada kiriman data $_POST bernama login"
Else adalah kondisi "selain", atau "tidak". Jadi apabila kondisi pada if di atasnya misalnya adalah $total > 20000, maka else dari kondisi tersebut berarti $total <= 20000.
Untuk mencoba script yang telah berubah, coba refresh halaman tersebut. Jika ada peringatan, tekan OK. Akan tampil "Anda TELAH menekan tombol login". Ini karena ketika suatu halaman direfresh, data POST akan dikirimkan sekali lagi. Untuk melihat pesan "Tombol Login BELUM ditekan", klik pada URL dan tekan enter. Atau buka tab baru dan ketikkan alamat script ini.
No comments:
Post a Comment