Kamis, 31 Desember 2015

SWITCH CASE


A. Pengertian
Percabangan adalah suatu pilihan atau opsi dengan kondisi tertentu. Jika kondisi yang menjadi syarat terpenuhi, maka opsi atau pilihan dijalankan, jika tidak maka sebaliknya. Dalam java terdapat 4 macam jenis percabangan, if, if-else, else-if, dan juga switch. Keempat jenis ini memiliki penggunaan masing-masing. Disini kita akan membahas tentang percabangan switch case.
Switch case digunakan untuk percabangan yang kondisinya banyak. Sedangkan percabangan if  hanya bisa untuk menangani dua kondisi yaitu TRUE atau FALSE. Tapi jika kita ingin melakukan percabangan untuk peringkat nilai, contoh nilai A = sempurna, B = bagus, C = sedang, D = kurang, akan ribet jika kita menggunakan percabangan if untuk menyelesaikan kondisi tersebut. Untuk itu mari kita pelajari percabangan switch case.
Switch Case merupakan salah satu bentuk percabangan, bentuk dari Switch-case merupakan pernyataan yang dirancang khusus untuk menangani pengambilan keputusan yang melibatkan sejumlah atau banyak alternatif penyelesaian. Pernyataan switch-case ini memiliki kegunaan sama seperti if – else bertingkat. Kontruksi if - else yang bertingkat-tingkat seringkali membingungkan pembacaan alur program.
Pernyataan Switch lebih jarang digunakan dibandingkan dengan pernyataan if pada java. Tetapi lebih sering digunakan ketika kita ingin menuliskan percabangan ataupun pengambilan keputusan dengan sangat banyak pilihan. Jika pada percabangan terdapat pilihan banyak, maka perintah switch-case lebih dianjurkan daripada menggunakan if - else.
Tidak dianjurkan pada pilihan yang melibatkan jangkauan (range) tetapi dianjurkan pada pilihan berupa konstanta dan banyak misalnya untuk memilih menu. Java menyediakan intruksi Switch untuk memudahkan pembacaan alur program bercabang yang sangat banyak. meskipun Switch didesain untuk mengganti if - else, akan tetapi Switch memiliki batasan:
a) Variabel penentu harus bertipe Integer, atau yang cocok dengan Integer seperti character, boolean, byte, short dan long
b) Range data yang diperiksa bernilai 0 s/d 255.
Jika kamu ingat pernyataan main( ) pada program Java, pernyataan main memiliki parameter String[ ]args , dimana args merupakan argumen yang diberikan pada saat program dijalankan melalui konsol. Biasanya argumen yang diberikan berupa opsi bagaimana program harus dilaksanakan. Di sini pernyataan switch juga berguna untuk memilih bagaimana program akan berjalan. Jika kamu terbiasa atau pernah bergaul dengan Linux, maka tidak asing untuk menemukan perintah pada Linux seperti "ls -l" atau "tar xfz blabla". Di sini ls atau tar adalah nama program dan "-l" atau "xfz blabla" adalah argumen yang diberikan pada saat program dijalankan.

B. Fungsi
a) Digunakan ketika kita ingin menuliskan percabangan ataupun pengambilan keputusan dengan sangat banyak pilihan
b) Digunakan ketika kita ingin menuliskan percabangan multi arah
c) Instruksi switch case digunakan sebagai instruksi pemilihan dimana aksi yang akan dilakukan bergantung pada nilai dari satu macam variabel saja.


C. Cara Program

switch(ekspresi){
case konstanta -1:
pernyataan -1;
pernyataan -2;
…..
break;
case konstanta -2:
pernyataan -1;
…..
break;
case konstanta -n:
pernyataan -n;
…..
break
default :
…..
…..
break;
}
Konsep di atas menjelaskan bawah untuk pernyataan adalah nilai yang akan diseleksi dan akan dibuat case pada setiap case untuk setiap nilai dari variable yang sesuai.
Keterangan :
case nilai: (nilai yang sama dengan variabel)
Pernyataan;
break;
Adalah pernyataan yang dikerjakan jika nilai sesuai dengan nilai variabel di dalam sebuah switch (nilai) yang diberikan.
default:
Pernyataan ;
break;
Adalah pernyataan yang dikerjakan jika nilai dari kecocokan variable nilai di switch (nilai) tidak memenuhi disetiap case nilai.
Setiap blok default maupun case harus diakhiri dengan tanda titik dua ( : ) dan break diakhiri dengan tanda semikolon ( ; ).
Pernyataan switch akan menyeleksi atau mencari sebuah kondisi yang diberikan dan kemudian akan membandingan hasilnya dengan konstanta yang berada di dalam case. Pembandingan akan dimulai dari konstanta1 sampai konstanta akhir. Jika hasil yang didapatkan sama dengan konstanta3 maka statemen pada konstanta3 akan diproses. Jika hasil tidak ada yang memenuhi kriteria dari masing-masing konstanta maka statement yang berada pada default akan diproses.
Tipe data dari pernyataan harus karakter atau integer. Default mengekspresikan statement alternatife yaitu jika nilai yang dimasukan tidak sesuai dengan nilai nilai konstan yang telah didefinisikan.
Break berfungsi sebagai statement peloncatan atau untuk mengakhiri statement. Apabila tidak ada break, komputer akan mengeksekusi intruksi yang berada di bawahnya walaupun berada di case yang berbeda. Contohnya, misalnya hasil yang kita dapatkan akan memproses konstanta1, apabila pada case konstanta1 tidak ada break, maka statement2 pada case konstanta2 sampai case konstanta3 akan ikut di proses. Maka dari itu apabila menggunakan Switch Case , jangan lupa untuk menulis break pada akhir statemen.

D. Perbedaan Antara struktur  IF dengan Switch
Walaupun memiliki tujuan yang hampir sama, namun struktur if dan switch memiliki perbedaan yang mendasar. Di dalam struktur switch, kondisi logika hanya akan diperiksa satu kali saja, yaitu pada awal perintah switch, dan hasilnya dibandingkan dengan setiap case. Akan tetapi di dalam struktur if, setiap kondisi akan selalu diperiksa. Sehingga jika anda 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 hal-hal sederhana seperti memeriksa nilai dari sebuah variabel.
Struktur switch tidak bisa digunakan untuk percabangan program dengan operasi yang lebih rumit seperti membandingkan 2 variabel. Kita tidak bisa menggunakan switch untuk membuat kode program menentukan nilai terbesar seperti contoh pada tutorial if sebelum ini. Untuk kebanyakan kasus, kita akan sering menggunakan if dibandingkan switch.

E. Contoh
import java.util.*;
public class Switch_Case
{
 public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
 char nilai = 'B';
String nama;
System.out.print("Masukkan nama: ");
nama = input.nextLine();
System.out.println("Nilai : "+nilai);
System.out.println("\n");
switch(nilai)
{
case 'A': System.out.println(nama+" Nilai Anda memuaskan");
break;
case 'B': System.out.println(nama+" Nilai Anda bagus");
break;
case 'C': System.out.println(nama+" Nilai Anda cukup");
break;
}
}


Output :
Masukkan Nama : RATIH
Nilai :B

RATIH Nilai Anda Bagus


BAB II
Kesimpulan
a) Switch Case merupakan salah satu bentuk percabangan, bentuk dari Switch-case merupakan pernyataan yang dirancang khusus untuk menangani pengambilan keputusan yang melibatkan sejumlah atau banyak alternatif penyelesaian.
b) Setiap cabang akan dijalankan jika syarat nilai konstanta tersebut dipenuhi dan default akan dijalankan jika semua cabang diatasnya tidak terpenuhi.
c) Pernyataan break menunjukan bahwa perintah siap keluar dari switch. Jika pernyataan ini tidak ada, maka program akan diteruskan kecabang – cabang yang lainnya.

9 komentar:

  1. Kalau switch itu hanya untuk tipe int kah?bisa gak untuk tipe char?

    BalasHapus
    Balasan
    1. contoh diatas switch bisa menggunakan char, bahkan bisa menggunakan string. contoh switch untuk nama buah, pasti bisa dibuat case 'apel' atau case 'jeruk' dengan tipe data string.

      Hapus
  2. Bahasa yg disampaikan mudah dipahami, thanks 👍

    BalasHapus
  3. Mohon koreksi bisa keliru.
    Pada bagian D menyatakan bahwa IF, setiap kondisi akan diperiksa. Padahal tidak diperiksa seluruhnya apabila IF sudah terpenuhi.
    misal
    char huruf="B";
    if (huruf=="A")
    System.out.println("Huruf A");
    else if (huruf=="B")
    System.out.println("Huruf B");
    else if (huruf=="C")
    System.out.println("Huruf C");

    ketika jawaban sudah ketemu B maka else if untuk C tidak akan dijalankan.

    BalasHapus