Tutorial Belajar PHP Part 32: Cara Penulisan Struktur Logika Switch Case

Kondisi SWITCH CASE yang akan kita pelajari ini bisa disebut sebagai alternatif penulisan dari kondisi logika IF ELSE IF pada tutorial PHP sebelumnya.


Pengertian Struktur Logika Switch Case PHP

Struktur SWITCH CASE adalah percabangan kode program dimana kita membandingkan isi sebuah variabel dengan beberapa nilai. Jika proses perbandingan tersebut menghasilkan true, maka block kode program akan di proses.

Struktur SWITCH CASE terdiri dari 2 bagian, yakni perintah SWITCH yang berisi nama variabel yang akan diperiksa, serta 1 atau lebih perintah CASE untuk setiap nilai. Struktur switch ini mirip dengan struktur IF yang ditulis berulang.

Katakan kita ingin membuat sebuah program menampilkan kata dari angka 0-5. Jika menggunakan struktur IF, maka butuh 6 perulangan berikut:

<?php
$a = 3;
if ($a=="0") {
  echo "Angka Nol";
}
elseif ($a=="1") {
  echo "Angka Satu";
}
elseif ($a=="2") {
  echo "Angka Dua";
}
elseif ($a=="3") {
  echo "Angka Tiga";
}
elseif ($a=="4") {
  echo "Angka Empat";
}
elseif ($a=="5") {
  echo "Angka Lima";
}
else
  echo "Angka diluar jangkauan";
?>

Tidak ada yang salah dari kode program ini, namun jika memakai switch, kodenya ditulis menjadi:

<?php
$a = 3;
switch ($a) {
case 0 :
  echo "Angka Nol";
  break;
case 1 :
  echo "Angka Satu";
  break;
case 2 :
  echo "Angka Dua";
  break;
case 3 :
  echo "Angka Tiga";
  break;
case 4 :
  echo "Angka Empat";
  break;
case 5 :
  echo "Angka Lima";
  break;
default :
  echo "Angka diluar jangkauan";
  break;
}
?>

Kedua kode program akan menghasilkan output yang sama, namun untuk kondisi logika sederhana, penulisan switch-case lebih disarankan dibandingkan IF.


Aturan Penulisan Struktur Switch Case PHP

Seperti yang terlihat dalam contoh sebelumnya, struktur switch terdiri dari beberapa bagian, berikut format dasar penulisan switch dalam bahasa PHP:

switch ($var) {
case value1:
  statement1;
  break;
case value2:
  statement2;
  break;
}

Setelah keyword switch, kita harus cantumkan variabel yang akan diperiksa dalam tanda kurung. Tiap kondisi yang mungkin terjadi dicantumkan setelah kata kunci case, lalu diikuti nilai yang akan diuji. Jika kondisi sesuai, maka baris statement akan berjalan.

Keyword break dipakai untuk keluar dari switch agar PHP tidak perlu memeriksa case berikutnya.

Alur program untuk switch akan dieksekusi mulai dari baris pertama sampai terakhir. Kata kunci break memegang peranan penting untuk menghentikan switch.

Perhatikan contoh kode PHP berikut:

<?php
$a = 1;
switch ($a) {
case 0:
  echo "Angka Nol ";
case 1 :
  echo "Angka Satu ";
case 2 :
  echo "Angka Dua ";
case 3 :
  echo "Angka Tiga ";
}
?>

Program diatas akan memeriksa nilai $a dan memberikan output tergantung kepada nilainya. Jika sekilas dilihat, maka keluaran program adalah: "Angka Satu" sesuai dengan isi variabel $a. Akan tetapi, jika kita jalankan program diatas, PHP akan memberikan output berupa:

Angka Satu Angka Dua Angka Tiga

Apa yang terjadi? Ini terkait dengan bagaimana PHP menjalankan proses switch.

Ketika program dijalankan, PHP pertama kali akan memeriksa case 0, yaitu apakah $a sama dengan 0, jika tidak, PHP akan lanjut ke case 1 dan memeriksa apakah $a sama dengan 1. Jika iya, maka PHP akan menjalankan echo "Angka Satu", beserta seluruh perintah program untuk case-case di bawahnya. Ini mungkin terkesan aneh, namun adakalanya proses seperti inilah yang dibutuhkan.

Namun, untuk kasus diatas, kita ingin menginstruksikan kepada PHP bahwa setelah case ditemukan, maka switch harus berhenti. Inilah fungsi dari break, yakni sebagai instruksi untuk segera keluar dari switch dan tidak menjalankan case lainnya.

Berikut contoh kode program switch setelah penambahan keyword break:

<?php
$a = 1;
switch ($a) {
case 0:
  echo "Angka Nol ";
  break;
case 1 :
  echo "Angka Satu ";
  break;
case 2 :
  echo "Angka Dua ";
  break;
case 3 :
  echo "Angka Tiga ";
  break;
}
?>

Selain kata kunci break, PHP menyediakan keyword default. Perintah ini mirip seperti logika ELSE di dalam struktur IF, yang akan berjalan jika tidak ada case yang cocok. Keyword default diletakkan di akhir blok switch.

Untuk contoh kita diatas, saya akan tambah blok default yang akan berjalan jika nilai variabel $a di luar angka 0-5. Berikut kode PHP nya:

<?php
$a = 9;
switch ($a) {
case 0:
  echo "Angka Nol ";
  break;
case 1 :
  echo "Angka Satu ";
  break;
case 2 :
  echo "Angka Dua ";
  break;
case 3 :
  echo "Angka Tiga ";
  break;
default :
  echo "Angka diluar jangkauan";
  break;
}
?>

PHP membolehkan kita menjalankan satu statement untuk case yang berlainan seperti contoh kode berikut:

<?php
$a = 3;
switch ($a) {
case 0 :
case 1 :
case 2 :
case 3 :
  echo "Angka berada di dalam range 0-3";
  break;
case 4 :
case 5 :
case 6 :
case 7 :
  echo "Angka berada di dalam range 4-7";
  break;
default :
  echo "Angka diluar jangkauan";
  break;
}
?>

Dalam kode ini, saya menyatukan beberapa case ke dalam 1 statement.

Penulisan case untuk struktur switch harus sesuai dengan jenis tipe data yang akan diuji. Selain angka (integer) kita juga bisa menggunakan switch untuk tipe data string:

<?php
$a = "dua";
switch ($a) {
case "nol":
  echo "Angka 0 ";
  break;
case "satu" :
  echo "Angka 1 ";
  break;
case "dua" :
  echo "Angka 2 ";
  break;
case "tiga" :
  echo "Angka 3 ";
  break;
default :
  echo "Angka diluar jangkauan";
  break;
}
?>

Perbedaan Antara Struktur IF dengan SWITCH CASE

Walaupun memiliki tujuan yang hampir sama, namun struktur IF dan switch memiliki perbedaan mendasar.

Di dalam struktur switch, kondisi logika hanya akan diperiksa satu kali saja, yaitu pada awal perintah switch dan hasilnya di bandingkan dengan setiap case. Akan tetapi di dalam struktur if, setiap kondisi akan selalu diperiksa. Sehingga jika kita memiliki struktur percabangan yang banyak, struktur switch akan lebih cepat dieksekusi.

Namun disisi lain, switch memiliki keterbatasan dalam jenis operasi perbandingan yang dapat dilakukan. Operasi perbandingan di dalam switch terbatas untuk operasi "sama dengan" saja. Kita tidak bisa menggunakan switch untuk perbandingan nilai terbesar seperti contoh pada tutorial IF sebelum ini.

Dalam kebanyakan kasus, kita akan sering menggunakan IF dibandingkan switch.


Materi tentang struktur logika SWITCH CASE ini menutup bahasan tentang alur logika. Berikutnya kita akan mulai masuk ke struktur perulangan bahasa PHP, yang dimulai dengan Cara Penulisan Perulangan For dalam PHP.

Saat ini di Duniailkom tersedia eBook / buku PHP Uncover dan OOP PHP Uncover. Materi di kedua buku ini jauh lebih detail daripada tutorial PHP di web Duniailkom. Penjelasan lebih lanjut bisa ke: PHP Uncover dan OOP PHP Uncover.

23 Comments

  1. Cecep
    29 Oct 14
  2. Bagus
    04 Jan 15
    • Andre
      04 Jan 15
      • Aep
        20 Nov 15
        • Andre
          20 Nov 15
  3. Capt_Akromi
    23 Mar 15
    • Andre
      25 Mar 15
      • ettu
        07 Nov 15
        • Andre
          08 Nov 15
  4. fajar septian
    31 Jan 16
    • Andre
      02 Feb 16
  5. Anggara
    18 Mar 16
    • Andre
      20 Mar 16
  6. Idblogpedia
    25 Jul 16
  7. Nanda Mandatory
    27 Jan 17
    • Andre
      28 Jan 17
    • Jhoelpro
      18 Apr 17
      • Andre
        20 Apr 17
  8. Dori
    13 Aug 17
    • Andre
      17 Aug 17
  9. wulan
    27 Oct 17
  10. gio
    20 May 18

Add Comment