Fungsi Switch Case dalam PHP

php-switch-statementSetelah pembahasan tentang Operator If, else dan endif dalam PHP minggu lalu, kali ini masih dalam struktur percabangan Nubie ingin share tentang fungsi switch case dalam php. Seperti pada bahasa pemrograman lainnya, PHP  mendukung proses percabangan dengan menggunakan switch … case. Konsep dari fungsi ini sama seperti fungsi if, yang akan menjalankan suatu eksekusi berdasarkan kondisi yang diperiksa. Fungsi ini juga dapat melakukan proses pengontrollan untuk kondisi yang lebih dari 3 ekspresi. Meskipun fungsi if juga dapat melakukannya, namun akan menyebabkan script tersebut tidak mudah dikontrol.

Di bawah ini contoh penulisannya :

<?php
    
     switch ($kondisi/$expresi)
     {
         case "$kondisi1":
                    $statement1;
                    $break;
         case "$kondisi2":
                    $statement2;
                    break;
         case " ..."
      }

Kemudian contoh script sederhananya di bawah ini :

<?php

    $nilai1 = 100;
    $nilai2 = 150;
    $proses = "penjumlahan";

    switch ($proses)
    {
         case "perkalian":
              $hasil = $nilai1 * $nilai2;
              break;
         case "penjumlahan":
              $hasil = $nilai1 + $nilai2;
              break;
         default:
              $hasil = "Error Tidak ada hasil";
              break;
    }
    
    echo "Hasil $proses = " . $hasil;

?>

Outputnya :

Hasil penjumlahan = 250

Pada baris ke 5 mendefinisikan variabel $proses, lalu dimasukkan sebagai parameter fungsi switch, lihat baris 7. kemudian pada baris 9-15, dilakukan proses pemilihan yang disesuaikan dengan kondisi yang ditemukan pada case. Nah pada baris ke 15 penulisan default: itu adalah apabila tidak ada case yang terpenuhi maka akan dijalankan statement yang ada dalam default tersebut. Jangan lupa di setiap akhir statement case dan default harus diakhiri dengan break.

Selain itu kamu juga dapat menggunakan beberapa kasus menjadi satu solusi dengan mengabaikan sintaks break. Coba kamu perhatikan contoh di bawah ini :

<?php

    $data = 23.56;
    $tipedata = gettype($data);

    switch ($tipedata)
    {
          case "integer":
          case "double":
              $tipedata = "Bertipe bilangan";
              $overloaddata = $data;
              break;
          case "boolean":
              $tipedata = "Bertipe data boolean";
              if ($data)
              {
                   $overloaddata = "True";
              }
              else
              {
                    $overloaddata = "False";
              }
              break;
          case "string":
              $tipedata = "Bertipe data string";
              $overloaddata = $data;
              break;
    }
    
    echo "\$data = $overloaddata <br />";
    echo $tipedata;

?>

Output:

$data = 23.56
Bertipe bilangan

Pada baris 3 didefinisikan bilangan float, kemudian pada baris 4 mencari tipe data dari variabel $data dengan menggunakan fungsi gettype().  Kemudian variabel $data dimasukkan sebagai parameter fungsi switch(), selanjutnya akan dipilih berdasarkan kasus yang ada yaitu bertipe ‘integer’ atau ‘double’ karena dianggap sama oleh aplikasi sehingga pada baris 8 ‘integer’ tidak menggunakan statement dan break, namun akan menggunakan variabel dan statement yang sama dengan baris 9.

Lalu selain dapat menggunakan tipe string dalam case-nya, kamu juga dapat menggunakan angka atau bilangan. Perhatikan contoh di bawah ini:

<?php

$nilaiakhir = 67.56;
$nilaimahasiswa = round($nilaiakhir);

switch($nilaimahasiswa)
{
   case ($nilaimahasiswa > 95) :
      $nilaidalamangka = "A";
      $statuskelulusan = "Lulus";
      $keteranganstudi = "Lanjutkan Kuliah";
      break;
   case ($nilaimahasiswa <= 94 && $nilaimahasiswa >= 90):
      $nilaidalamangka = "A-";
      $statuskelulusan = "Lulus";
      $keteranganstudi = "Lanjutkan Kuliah";
      break;
   case ($nilaimahasiswa <= 89 && $nilaimahasiswa >= 85):
      $nilaidalamangka = "B+";
      $statuskelulusan = "Lulus";
      $keteranganstudi = "Lanjutkan Kuliah";
      break;
   case ($nilaimahasiswa <= 84 && $nilaimahasiswa >= 80):
      $nilaidalamangka = "B";
      $statuskelulusan = "Lulus";
      $keteranganstudi = "Lanjutkan Kuliah";
      break;
   case ($nilaimahasiswa <= 79 and $nilaimahasiswa >= 75):
      $nilaidalamangka = "B-";
      $statuskelulusan = "Lulus";
      $keteranganstudi = "Lanjutkan Kuliah";
      break;
   case ($nilaimahasiswa <= 74 and $nilaimahasiswa >= 70):
      $nilaidalamangka = "C+";
      $statuskelulusan = "Lulus";
      $keteranganstudi = "Lanjutkan Kuliah";
      break;
   case ($nilaimahasiswa <= 69 and $nilaimahasiswa >= 65):
      $nilaidalamangka = "C";
      $statuskelulusan = "Lulus";
      $keteranganstudi = "Lanjutkan Kuliah";
      break;
   case ($nilaimahasiswa <= 64 and $nilaimahasiswa >= 60):
      $nilaidalamangka = "C-";
      $statuskelulusan = "Tidak Lulus";
      $keteranganstudi = "Boleh Melanjutkan Mata Kuliah ";
      $keteranganstudi .= "Bersyarat berikutnya";
      break;
   case ($nilaimahasiswa <= 59 and $nilaimahasiswa >= 55):
      $nilaidalamangka = "D+";
      $statuskelulusan = "Tidak Lulus";
      $keteranganstudi = "Mengulang Tahun Depan";
      break;
   case ($nilaimahasiswa <= 54 and $nilaimahasiswa >= 50):
      $nilaidalamangka = "D";
      $statuskelulusan = "Tidak Lulus";
      $keteranganstudi = "Mengulang Tahun Depan";
      break;
   case ($nilaimahasiswa <= 49 and $nilaimahasiswa >= 45):
      $NilaiDalamgAngka = "D-";
      $statuskelulusan = "Tidak Lulus";
      $keteranganstudi = "Mengulang Tahun Depan";
      break;
   case ($nilaimahasiswa < 45):
      $nilaidalamangka = "F";
      $statuskelulusan = "Tidak Lulus";
      $keteranganstudi = "Mengulang Tahun Depan";
      break;
}

echo "Hasil Studi Mahasiswa : " . "<br ?>";
echo "Nilai Studi = " . $nilaimahasiswa;
echo "<br />";
echo "Nilai Akhir = " . $nilaidalamangka;
echo "<br />";
echo "Status Kelulusan = " . $statuskelulusan;
echo "<br />";
echo "Keterangan Studi = " . $keteranganstudi;

?>

Output:

Hasil Studi Mahasiswa :
Nilai Studi = 68
Nilai Akhir = C
Status Kelulusan = Lulus
Keterangan Studi = Lanjutkan Kuliah

Pada baris 3-4 adalah proses pengambilan data dari nilai mahasiswa. Kemudian variabel $nilaimahasiswa dimasukkan sebagai parameter di fungsi switch() untuk dievaluasi kondisinya. Pada contoh kasus di atas yang diperiksa adalah bertipe integer dan memiliki range nilai, karena memiliki nilai 68 maka cocok kasus yang terpenuhi adalah pada baris 38 dimana kasusnya adalah jika nilai mahasiswa <= 69 dan nilai mahasiswa >= 65.

Nah sekarang sudah mengerti kan tentang fungsi switch case dalam php dan cukup mudah bukan.

Semoga bermanfaat. 🙂

3
Leave a Reply

avatar
2 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
fadielsedefiarthaNubie22 Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
defiartha
Guest

bagus . sangat membantu saya dalam memahami materi

Nubie22
Guest
Nubie22

Keren ka fadiel … bisa dbkin pembelajaran dasar saya .. mkasih yawww …. kali2 nama saya bawa . Wkwkwk