Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress | Tutorial Java SE


Ebook yang direkomendasikan untuk Anda
Ebook Panduan Praktis OOP di PHP


Konsep Statement SWITCH dalam PHP dan Studi Kasus


February 18th, 2009 | by rosihanari | Cetak Artikel Cetak Artikel


GampSMS SMS Gateway

SWITCH termasuk statement yang dapat dipergunakan untuk menyatakan suatu pernyataan kondisional atau bersyarat. Selain SWITCH, kita bisa pula menggunakan IF untuk menyatakan kondisional.

Dalam artikel yang saya tulis pada blog ini, akan dipaparkan tentang konsep SWITCH dan contoh implementasinya dalam studi kasus.

Adapun sintaks secara umum statement SWITCH dalam PHP adalah sebagai berikut:

switch (var)
{
case value1 : statement A
              .
              .
              break;
case value2 : statement B
              .
              .
              break;
case value3 : statement C
              .
              .
              break;
.
.
default     : statement D
              .
              .
}

Maksud dari sintaks di atas adalah: dalam hal ini nilai yang ada pada variabel (‘var’) akan dicek. Jika nilai dari ‘var’ sama dengan ‘value1′, maka statement A akan dijalankan. Bila nilai var sama dengan ‘value2′, maka maka statement B dijalankan. Sedangkan jika nilai ‘var’ sama dengan ‘value3′ maka statement C yang dijalankan begitu seterusnya. Selanjutnya apabila tidak ada value yang cocok atau sama, maka terakhir akan dikerjakan statement D (terletak pada default).

Apabila kita bandingkan dengan bentuk IF, maka statement IF berikut ini ekuivalen dengan sintaks SWITCH di atas

if (var == value1)
{
   statement A
   .
   .
}
else if (var == value2)
     {
        statement B
        .
        .
     }
else if (var == value3)
     {
        statement C
        .
        .
     }
.
.
else
     {
        statement D
        .
        .
     }

Selain bentuk sintaks di atas, kita juga bisa menggunakan sintaks SWITCH berikut ini:

switch (var):
case value1 : statement A
              .
              .
              break;
case value2 : statement B
              .
              .
              break;
case value3 : statement C
              .
              .
              break;
.
.
.
default     : statement D
              .
              .
endswitch;

Catatan:
Penggunaan option DEFAULT pada SWITCH adalah optional. Kita bisa untuk tidak memberikan DEFAULT jika memang tidak diperlukan.

Apabila kita perhatikan dari konsep SWITCH, maka kita bisa menyimpulkan bahwa proses pengecekan atau pengujian persyaratan yang terjadi hanyalah proses perbandingan dalam bentuk ‘sama dengan’. SWITCH tidak bisa digunakan untuk kondisional yang di dalamnya terdapat proses perbandingan seperti ‘lebih besar dari’, ‘lebih kecil dari’, ‘lebih kecil atau sama dengan’, ‘lebih besar atau sama dengan’ dan ‘tidak sama dengan’.
Sehingga memang penggunaan statement IF untuk menyatakan kondisional lebih fleksibel daripada SWITCH.

Trus… berarti SWITCH tidak lebih efektif daripada IF donk. Tentu tidak. Ada kelebihan pada penggunaan SWITCH. Berikut ini kelebihannya:

  • Dalam SWITCH, persyaratan hanya diuji sekali saja. Sedangkan pada IF.. ELSE diuji beberapa kali. Sehingga apabila script Anda sangat kompleks atau banyak menggunakan kondisional, penggunaan SWITCH akan menghasilkan proses yang lebih cepat.
  • Selain itu, statement yang akan dikerjakan dalam SWITCH bisa kosong atau tidak melakukan apa-apa. Contoh :
    <?php
    switch ($i) {
    case 0:
    case 1:
    case 2:
        echo "i lebih kecil dari 3 tapi tidak negatif";
        break;
    case 3:
        echo "i sama dengan 3";
    }
    ?>
    

Sumber : http://www.php.net

Nah… berikutnya, saya akan coba berikan contoh penggunaan SWICTH dalam studi kasus. Studi kasus yang saya ambil di sini adalah bagaimana menampilkan nama bulan sekarang (current month) dalam bahasa Indonesia.

Adapun ide penyelesaian dari studi kasus tersebut adalah sebagai berikut :

Langkah pertama kita harus tahu bulan sekarang. Untuk mengetahui nama bulan sekarang, kita bisa menggunakan function date("n") dalam PHP. Function tersebut akan menghasilkan bilangan bulat 1-12 yang mencerminkan angka bulan sekarang.

Trus… apakah Anda sudah punya ide berikutnya? Angka-angka tersebut mau diapain? … Yes… Good idea.

Langkah kedua, dari angka bulan yang telah diperoleh tersebut selanjutnya kita nyatakan ke dalam bahasa Indonesia. Bagaimana menyatakannya? Ya… caranya kita gunakan logika seperti ini:

Jika angka bulan sama dengan 1, maka nama bulannya ‘Januari’. Jika angka bulan sama dengan 2, maka bulannya ‘Pebruari’ dan seterusnya.

Untuk mengimplementasikan logika di atas, kita harus menggunakan pernyataan kondisional. Apakah kita bisa menggunakan SWITCH? Oh… tentu bisa, karena operasi perbandingan yang digunakan adalah ‘sama dengan’. Sehingga bentuk script PHP nya untuk menampilkan nama bulan dalam bahasa Indonesia adalah sbb:

<?php

$angkaBln = date("n");

switch($angkaBln)
{
case 1 : $namaBln = "Januari";
         break;
case 2 : $namaBln = "Pebruari";
         break;
case 3 : $namaBln = "Maret";
         break;
case 4 : $namaBln = "April";
         break;
case 5 : $namaBln = "Mei";
         break;
case 6 : $namaBln = "Juni";
         break;
case 7 : $namaBln = "Juli";
         break;
case 8 : $namaBln = "Agustus";
         break;
case 9 : $namaBln = "September";
         break;
case 10: $namaBln = "Oktober";
         break;
case 11: $namaBln = "Nopember";
         break;
case 12: $namaBln = "Desember";
         break;
}

echo "Nama bulan sekarang adalah : ".$namaBln;

?>

Selain menggunakan date(“n”); untuk mengetahui bulan sekarang, kita juga bisa menggunakan date(“M”). Penggunaan date(“M”) ini akan menghasilkan nama bulan akan tetapi dalam 3 huruf depan saja, misalnya ‘Jan’, ‘Feb’, ‘Mar’, ‘Apr’, … , ‘Dec’. Apabila kita menggunakan function date(“M”) ini, maka scriptnya menjadi

<?php

$bln = date("M");

switch($bln)
{
case "Jan" : $namaBln = "Januari";
             break;
case "Feb" : $namaBln = "Pebruari";
             break;
case "Mar" : $namaBln = "Maret";
             break;
case "Apr" : $namaBln = "April";
             break;
case "May" : $namaBln = "Mei";
             break;
case "Jun" : $namaBln = "Juni";
             break;
case "Jul" : $namaBln = "Juli";
             break;
case "Aug" : $namaBln = "Agustus";
             break;
case "Sep" : $namaBln = "September";
             break;
case "Oct" : $namaBln = "Oktober";
             break;
case "Nov" : $namaBln = "Nopember";
             break;
case "Dec" : $namaBln = "Desember";
             break;
}

echo "Nama bulan sekarang adalah : ".$namaBln;

?>

Perhatikan script di atas ! Karena value yang akan dicocokkan berupa string, maka setiap value pada option CASE diapit tanda petik.

OK… demikian penjelasan tentang SWITCH dan contoh implementasiannya. Mudah-mudahan bermanfaat buat Anda.




Share ke Facebook Share ke Twitter
Baca Juga Artikel Terkait
Filosofi Statement IF Dalam Pemrograman
Perintah SQL untuk Mencari Siswa yang Belum Bayar SPP (studi kasus)
Mencari Jumlah Hari dalam Bulan Tertentu
PHP Dasar – Operator dalam PHP
PHP Dasar – Beberapa Aturan dalam Penulisan Script PHP

Kata kunci: PHP - switch -


Ada 23 komentar dalam artikel ini.



  1. rais says:

    kemarin iseng seh nyoba pake operator logika ‘lebih besar’, lebig kecil’

    ternyata bisa…meskipun dipaksa tapi cukup sekali saja…

  2. setiyo says:

    tanks atas ilmunya, pokoe web site mu apik banget, & ilmu php nya dikasih update yang baru lagi.

  3. muslim says:

    Thank’s 4 U’R Tutorial
    Sangat membantu

  4. Mbah Ableh says:

    Selain itu, statement yang akan dikerjakan dalam SWITCH bisa kosong atau tidak melakukan apa-apa. Contoh :

    Menurut saya, pernyataan tersebut kurang benar, karena

    switch ($i) {
    case 0:
    case 1:
    case 2:
    echo “i lebih kecil dari 3 tapi tidak negatif”;
    break;

    mempunyai arti bahwa case pertama sampe ke 3 itu mempunyai satu hasil yang sama.

    bukan berarti case 1 dan 2 nilainya kosong.

  5. gilang says:

    Assalamualaikum. Artikelnya sangat menarik. Namun yang ingin saya tanyakan adalah, apakah statement switch bisa digunakan untuk membuat skrip theme switcher. Maaf bila pertanyaan nya membingungkan.

  6. selama ini saya menggunakan script berikut untuk menampilkan nama bulan, apakah beda? apakah ada kekurangannya dibanding pakai switch?

    “Januari”, “Februari”, “Maret”, “April”, “Mei”, “Juni”, “Juli”, “Agustus”, “September”, “Oktober”, “November”, “Desember”);
    echo “Nama bulan sekarang adalah : “.$nama_bulan[$angka_bulan];
    ?>

  7. tutik says:

    menarik juga PHP
    jd pengen nyoba
    saya download tutorial kok ga bisa za????
    .-= tutik´s last blog ..SENAT FIS =-.

  8. jhun says:

    wah…mas artikelnya membuat saya ingin baca dan ingin baca..terusin ya..dari sekian banyak blog yang saya buka,,,di sini lah aku temukan yang begitu koopertif,imajinatif,dan kreatif,,,
    LANJUTKAN MAS..
    saya butuh artikel seperti ini apa lagi untuk belajar masalah pemprograman

  9. surya says:

    Mas mau tanya nich?
    gimana cara membuat benner seperti di web ini .. yang bertulisan mau kaos wordpress keren? (selengkapnya) dan bisa di klick close itu.

    mohon bantuannya..

    thk u
    success yah mas

  10. surya says:

    Mas… saya coba ke tempat kejadian perkara dulu yah…
    (TKP) :-)

    slalu stand by di sini kok, untuk belajar.. bagi2 ilmu dunia, dan amal di akhirat

    success dan met tahun baru mas rosihanari

  11. deksa syafradha says:

    mas artikellnya sangat menarik, saya ingin contoh-contoh lain dari penggunaan switch? dan lainnya juga bisa ditambahkan terutama dari php dasar contohnya fungsi, string dll. terima kasih mas. rosi..

  12. Ibhel says:

    Mas kalo misalnya case 1-100 mesti harus ketik satu per satu???

    <?php
    switch ($i) {
    case 0:
    case 1:
    case 2:
    .
    .
    case 100:
    ada cara pendek gak???
    Thanks before… Artikel yg sangat membantu….

    • rosihanari says:

      @ibhel: ya memang harus dibuat satu persatu gitu mas kalo kondisinya banyak, memangnya anda mau bikin apa sih kok syaratnya banyak banget??? :-)

  13. syam says:

    bagus banget artikel-nya bang,,,,, lebih mudah di serap…..

  14. henry says:

    Pak saia mau tanya sedikit misalnya logika pembayaran jadi pas di tekan proses bayar maka data di database langsung terupdate….
    mohon penjelasannya

  15. Unte says:

    Pak Rosihan…

    Bagaimana cara nya membuat switch bahasa id – en di website ?

    terima kasih



 

Komentar/pertanyaan Anda!

Mohon maaf, komentar/pertanyaan yang menggunakan email palsu atau komentar bernada negatif, cemooh, umpatan, cacian atau sejenisnya secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

Mohon maaf jika seandainya ada beberapa pertanyaan Anda yang tidak direspon atau ditanggapi mengingat banyaknya komentar yang masuk dan keterbatasan kemampuan/ilmu saya dalam menjawab pertanyaan satu persatu. Saya harap Anda bisa memahami dan memakluminya.

Semua komentar atau pertanyaan yg masuk tidak akan langsung tampil di halaman ini, karena akan dimoderasi dahulu.


*