Tutorial Belajar C Part 36: Percabangan Kondisi Switch Case Bahasa C

Kondisi SWITCH CASE yang akan kita pelajari kali ini bisa dipakai sebagai alternatif penulisan kondisi logika IF ELSE IF yang baru saja kita bahas.

Namun tidak semua kondisi IF ELSE IF bisa dikonversi ke dalam bentuk SWITCH CASE. Apa saja itu? kita akan bahas dengan detail dalam lanjutan tutorial bahasa pemrograman C kali ini.


Pengertian Kondisi SWITCH CASE Bahasa C

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

Kondisi SWITCH CASE terdiri dari 2 bagian, yakni perintah SWITCH dimana terdapat nama variabel yang akan diperiksa, serta 1 atau lebih perintah CASE, masing-masing untuk setiap nilai yang ingin diperiksa.

Berikut format dasar penulisan kondisi SWITCH CASE dalam bahasa C:

  switch (nama_variabel) {
    case 'nilai_1':
      // Kode program yang dijalankan jika nama_variabel == nilai_1
      break;
    case 'nilai_2':
      // Kode program yang dijalankan jika nama_variabel == nilai_2
      break;
    case 'nilai_3':
      // Kode program yang dijalankan jika nama_variabel == nilai_3
      break;
    ...
    ...
    default:
       // Kode program yang dijalankan jika tidak ada kondisi yang terpenuhi
  }

Di awal kode program, terdapat perintah SWITCH untuk menginput variabel yang akan diperiksa. Kemudian terdapat beberapa perintah CASE yang diikuti dengan sebuah nilai. Jika isi dari variabel sama dengan salah satu nilai ini, maka blok kode program akan dijalankan. Jika ternyata tidak ada kondisi CASE yang sesuai, blok default di baris paling bawah lah yang akan dijalankan.

Di dalam setiap block case diakhiri dengan perintah break; agar struktur CASE langsung berhenti begitu kondisi terpenuhi. Mari langsung kita lihat contoh prakteknya.


Contoh Kode Program Percabangan SWITCH CASE Bahasa C

Dalam tutorial sebelumnya, kita telah membuat program menampilkan nilai dengan struktur IF ELSE IF. Kita akan coba konversi kode tersebut menjadi struktur SWITCH CASE. Sebelumnya, berikut kode program menampilkan nilai dengan struktur IF ELSE IF:

#include <stdio.h>
int main(void)
{
  char nilai;

  printf("Input Nilai Anda (A - E): ");
  scanf("%c",&nilai);

  if (nilai == 'A' ) {
    printf("Pertahankan! \n");
  }
  else if (nilai == 'B' ) {
    printf("Harus lebih baik lagi \n");
  }
  else if (nilai == 'C' ) {
    printf("Perbanyak belajar \n");
  }
  else if (nilai == 'D' ) {
    printf("Jangan keseringan main \n");
  }
  else if (nilai == 'E' ) {
    printf("Kebanyakan bolos... \n");
  }
  else {
    printf("Maaf, format nilai tidak sesuai \n");
  }
  return 0;
}

Program yang sama bisa dikonversi ke dalam bentuk SWITCH CASE berikut:

#include <stdio.h>

int main(void)
{
  char nilai;

  printf("Input Nilai Anda (A - E): ");
  scanf("%c",&nilai);

  switch (nilai) {
    case 'A':
      printf("Pertahankan! \n");
      break;
    case 'B':
      printf("Harus lebih baik lagi \n");
      break;
    case 'C':
      printf("Perbanyak belajar \n");
      break;
    case 'D':
      printf("Jangan keseringan main \n");
      break;
    case 'E':
      printf("Kebanyakan bolos... \n");
      break;
    default:
      printf("Maaf, format nilai tidak sesuai \n");
  }

  return 0;
}

Hasil kode program:

Input Nilai Anda (A - E): A
Pertahankan!

Input Nilai Anda (A - E): D
Jangan keseringan main

Input Nilai Anda (A - E): E
Kebanyakan bolos...

Input Nilai Anda (A - E): F
Maaf, format nilai tidak sesuai

Di baris 8 saya meminta user untuk menginput salah satu huruf antara 'A' – 'E'. Nilai huruf ini disimpan ke dalam variabel nilai yang di set dengan tipe data char.

Kondisi SWITCH CASE dimulai pada baris 10. Di sini terdapat perintah switch (nilai), yang artinya saya ingin memeriksa isi dari variabel nilai. Seluruh block SWITCH ini berada di dalam tanda kurung kurawal, yakni mulai dari baris 10 sampai 28.

Di baris 11 terdapat perintah case 'A': Ini artinya jika variabel nilai berisi karakter 'A', maka jalankan isi dari block CASE, yakni perintah printf("Pertahankan! \n"). Lalu terdapat perintah break di baris 13 agar struktur CASE lain tidak perlu di proses lagi.

Di baris 14 terdapat perintah CASE kedua, yakni case 'B':. Sama seperti sebelumnya, blok ini akan dijalankan jika variabel nilai berisi huruf 'B'. Demikian seterusnya sampai case 'E' : di baris 23.

Jika ternyata tidak ada nilai yang sesuai, maka block default di baris 26 yang akan di eksekusi.

Struktur SWITCH CASE ini terlihat lebih rapi daripada struktur IF ELSE IF, dan kadang kala bisa lebih efisien. Namun SWITCH CASE juga memiliki batasan, yakni tidak bisa dipakai untuk kondisi yang lebih kompleks seperti perbandingan dengan tanda lebih besar dari " > ", maupun penggabungan kondisi.

Kita tidak bisa membuat struktur CASE seperti berikut:

case > '90':
  printf("Pertahankan! \n");
  break;

Kondisi perbandingan di atas hanya bisa ditulis menggunakan struktur IF.

Sehingga jika kondisi yang diperiksa cukup rumit, tetap harus menggunakan struktur IF ELSE IF. Struktur SWITCH CASE hanya cocok dipakai untuk operasi perbandingan sederhana, dimana nilai yang diperiksa hanya terdiri dari nilai yang tetap.


Dalam tutorial ini kita telah membahas pengertian dan cara penggunaan struktur SWITCH CASE dalam bahasa pemrograman C. Selanjutnya akan disambung dengan struktur perulangan (loop), yang diawali dengan perulangan FOR.

 

3 Comments

  1. Anonymous
    23 Mar 19
  2. Anonymous
    13 Apr 22

Add Comment