Thursday, 18 May 2017

Struktur if else pada PHP

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.

ContohNamaKeterangan
$a == $bSama denganTRUE bila $a sama dengan $b meskipun beda tipe data
$a === $bIdentik denganTRUE bila isi dan tipe data $a dan $b sama
$a != $bTidak sama denganTRUE bila $a tidak sama dengan $b
$a <> $bTidak sama denganTRUE bila $a tidak sama dengan $b
$a !== $bTidak identik denganTRUE bila $a dan $b tidak identik (isi dan tipe sama)
$a < $bLebih kecil dariTRUE bila $a lebih kecil dari $b
$a > $bLebih besar dariTRUE bila $a lebih besar dari $b
$a <= $bLebih kecil sama denganTRUE bila $a lebih kecil atau sama dengan $b
$a >= $bLebih besar sama denganTRUE bila $a lebih besar atau sama dengan $b
$a <=> $bSpaceship (PHP 7)-1, 0, atau 1 bila $a lebih kecil, sama dengan, atau lebih besar dari $b
$a ?? $b ?? $cNull 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:
?
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.

ContohNamaKeterangan
$a and $bDanTRUE bila $a dan $b dua-duanya benar
$a && $bDanTRUE bila $a dan $b dua-duanya benar
$a or $bAtauTRUE bila $a atau $b salah satu benar
$a || $bAtauTRUE bila $a atau $b salah satu benar
$a xor $bXorTRUE bila $a berbeda dengan $b
!$aNotTRUE 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