29 November 2010

Simplifikasi ala switch

Mungkin banyak dari kita yang bertanya-tanya, apa sih sebenarnya perbedaan antara fungsi if-else dengan switch, padahal jika dilihat secara manfaat, sama saja.

Lantas mengapa ada dua fungsi dalam bahasa pemrogramman yang memiliki manfaat yang sama?

sebelum itu, mari kita sejenak membayangkan sebuah analogi sederhana, perbandingan antara satu orang yang sama yang pada waktu, tempat, dan kesempatan berbeda, membawa sebuah karung.Pada satu kesempatan dia membawa karung dengan menggunakan gerobak dan pada kesempatan yang lain dia membawa karung tsb dengan dipikul di pundaknya

analogi perbedaan itu sama saja dengan perbedaan antara if-else dengan switch, karena meskipun switch ataupun if-else sama-sama mewakili logika syarat, namun sekali lagi, penggunaan anatara kedua ini, harus ditentukan berdasarkan kondisinya

oke, untuk sedikit mempermudah, kita kembali ke analogi diatas.Bisa anda bayangkan, mengapa satu orang yang sama, memiliki dua cara berbeda dalam membawa satu karung yang sama? benar.... jawabannya tergantung dari medan dan kondisi yang dilaluinya, jika kondisi jalannya tak dapat dilalui gerobak, maka mau tak mau orang tersebut harus memikul karung di pundaknya.Namun jika kondisi dan medan memungkinkan, maka untuk menghemat waktu dan energi dia menggunakan gerobak sebagai media angkutnya

Nah, kembali lagi ke perihal if-else dengan switch, sudah cukup jelas, perbedaan diantara kedua ini, bergantung pada cara pandang kita memandang sebuah masalah atau kondisi masalah. wah bahasanya ribet juga ya.... maksudnya adalah, ada saatnya program yang kita tulis memungkinkan untuk menggunakan fungsi if-else ada juga saatnya kita sebaiknya menggunakan fungsi switch sebagai alternative

sebagai contoh studi kasus, ada sebuah program sistem informasi gaji menggunakan php yang mana memiliki kondisi sebagai berikut:

1. Apabila karyawan bekerja selama 1 tahun maka tunjangan sebesar 700000
2. Apabila karyawan bekerja selama 2-3 tahun maka tunjangan sebesar 800000
3. Apabila karyawan bekerja selama lebih dari 3 tahun maka tunjangan sebesar 1000000

nah, dari contoh diatas, menurut anda mana yang akan menjadi lebih simple, menggunakan fungsi if-else atau switch ?

kalau bagi saya, menggunakan switch adalah pilihan yang tepat, karena penulisan coding menjadi sedikit lebih simple, hal ini disebabkan apabila kita menggunakan if-else, maka akan banyak sekali turunan fungsi if atau atribut logika tambahan di fungsi if yang berpotensi membuat kita melakukan kesalahan penulisan syntax.

selain itu, jika menggunakan fungsi if-else bisa dibayangkan di prasyarat ke 3 yang berbunyi "Apabila karyawan bekerja selama lebih dari 3 tahun maka tunjangan sebesar 1000000", bisa anda bayangkan.... prasyaratnya hanya berhenti pada kata "lebih dari 3 tahun", dan itu bisa 4,5,6,7,8, dan seterusnya.... bahkan bisa hingga puluhan tahun, maukah anda menulis atribut logika seperti, misalnya:

if ($lama_kerja == "4")
{
echo "tunjangan : 1000000";
}

dan dilanjut:

if ($lama_kerja == "5")
{
echo "tunjangan : 1000000";
}

......(dan seterusnya hingga hitungan puluhan)

atau selain itu, bisa juga dengan penambahan atribut logika(hingga hitungan puluhan) semisal:

if ($lama_kerja == "4" or $lama_kerja == "5" or $lama_kerja == "8" or ........)
{
echo "tunjangan : 1000000";
}

wah-wah, bisa-bisa jari anda jadi six pack jika anda terus menyemangati diri anda untuk menggunakan logika if-else pada kondisi yang dijabarkan diatas :D

kini..... mari kita bandingkan dengan fungsi switch:

switch ($lama_kerja)
{
case '1' : $tunjangan = 700000;
break;
case '2' : $tunjangan = 800000;
break;
case '3' : $tunjangan = 800000;
break;
default : $tunjangan = 1000000;
}
echo "tunjangan = $tunjangan";

sudah? iya, friend...... hanya sampai disitu saja scriptnya.Apa yang membuatnya berbeda? silahkan amati logika defaultnya, yang menyatakan bahwa apabila bukan(atau diatas) 1,2,3 maka tunjangan adalah sebesar 1000000.

jadi, kalau dari artikel ini kita bisa menafsirkan, setidaknya fungsi switch mampu melakukan simplifikasi logika syarat dibandingkan fungsi if-else

oiya, sebagai catatan, artikel ini adalah hasil pengamatan saya sebagai seorang newbie, jika anda memiliki pengetahuan yang lebih dalam dan ingin memberikan pencerahan lebih terang kepada kita semua, atau ingin membantah dan menyanggah artikel ini dengan koridor keilmuan yang ada, silahkan di kolom komentar ya :)

2 komentar:

 

lafalofe Copyright © 2011 | Template design by O Pregador | Powered by Blogger Templates