Switch dan Case pada Bahasa Pemrograman C#

Switch dan Case pada Bahasa Pemrograman C#
Photo by Mohammad Rahmani / Unsplash

Dalam pemrograman, sering kali kita perlu memeriksa banyak kondisi dalam suatu program. Jika menggunakan if-else secara berulang, kode bisa menjadi sulit dibaca dan dikelola. Untuk mengatasi hal ini, C# menyediakan statement switch dan case, yang memungkinkan kita membuat kode yang lebih bersih dan efisien untuk menangani banyak kondisi.

Artikel ini akan membahas bagaimana cara kerja switch-case dalam C#, kapan harus menggunakannya, serta contoh penerapannya dalam berbagai skenario.

1. Apa Itu Switch-Case?

Switch-case adalah alternatif dari if-else yang digunakan ketika kita perlu memeriksa banyak kemungkinan nilai dari satu variabel.

Sintaks Dasar Switch-Case dalam C#

switch (ekspresi) {
    case nilai1:
        // Blok kode yang dieksekusi jika ekspresi == nilai1
        break;
    case nilai2:
        // Blok kode jika ekspresi == nilai2
        break;
    default:
        // Blok kode jika tidak ada case yang cocok
        break;
}

Penjelasan:

  • switch mengevaluasi nilai dari suatu ekspresi.
  • case digunakan untuk membandingkan ekspresi dengan nilai tertentu.
  • break digunakan untuk menghentikan eksekusi agar tidak menjalankan case berikutnya.
  • default dieksekusi jika tidak ada case yang cocok.

2. Contoh Penggunaan Switch-Case

2.1 Contoh Sederhana

Program berikut menentukan hari dalam seminggu berdasarkan angka yang dimasukkan pengguna.

using System;

class Program {
    static void Main() {
        Console.Write("Masukkan angka (1-7): ");
        int hari = Convert.ToInt32(Console.ReadLine());

        switch (hari) {
            case 1:
                Console.WriteLine("Hari Minggu");
                break;
            case 2:
                Console.WriteLine("Hari Senin");
                break;
            case 3:
                Console.WriteLine("Hari Selasa");
                break;
            case 4:
                Console.WriteLine("Hari Rabu");
                break;
            case 5:
                Console.WriteLine("Hari Kamis");
                break;
            case 6:
                Console.WriteLine("Hari Jumat");
                break;
            case 7:
                Console.WriteLine("Hari Sabtu");
                break;
            default:
                Console.WriteLine("Angka tidak valid");
                break;
        }
    }
}

Output:

Masukkan angka (1-7): 3
Hari Selasa

Penjelasan:

  • Program meminta pengguna memasukkan angka.
  • switch akan memeriksa angka yang dimasukkan dan mencetak nama hari yang sesuai.
  • Jika angka di luar 1-7, default akan mencetak "Angka tidak valid".

3. Switch-Case dengan String

Switch-case tidak hanya bekerja dengan angka, tetapi juga dengan string.

string warna = "Merah";

switch (warna) {
    case "Merah":
        Console.WriteLine("Warna ini melambangkan keberanian.");
        break;
    case "Biru":
        Console.WriteLine("Warna ini melambangkan ketenangan.");
        break;
    case "Hijau":
        Console.WriteLine("Warna ini melambangkan kesejukan.");
        break;
    default:
        Console.WriteLine("Warna tidak dikenali.");
        break;
}

Output:

Warna ini melambangkan keberanian.

Penjelasan:

  • Program akan mengevaluasi nilai variabel warna dan mencocokkannya dengan case yang tersedia.
  • Jika warna yang dimasukkan tidak ada di dalam case, maka default akan dieksekusi.

4. Switch-Case dengan Multiple Case

C# mendukung multiple case, sehingga kita bisa mengelompokkan beberapa kondisi yang memiliki hasil yang sama.

char grade = 'B';

switch (grade) {
    case 'A':
        Console.WriteLine("Sangat Baik");
        break;
    case 'B':
    case 'C':
        Console.WriteLine("Baik");
        break;
    case 'D':
    case 'E':
        Console.WriteLine("Kurang");
        break;
    default:
        Console.WriteLine("Tidak Valid");
        break;
}

Output:

Baik

Penjelasan:

  • Jika grade bernilai 'A', maka output "Sangat Baik".
  • Jika grade bernilai 'B' atau 'C', maka output "Baik".
  • Jika grade bernilai 'D' atau 'E', maka output "Kurang".
  • Jika nilai di luar itu, maka "Tidak Valid".

5. Perbedaan If-Else dan Switch-Case

Perbandingan If-Else Switch-Case
Kompleksitas Baik untuk kondisi kompleks Baik untuk memeriksa nilai tetap
Performa Lebih lambat jika banyak kondisi Lebih cepat karena langsung mengevaluasi
Readability Bisa sulit dibaca jika terlalu banyak else if Lebih bersih jika hanya memeriksa satu variabel
Tipe Data Bisa digunakan untuk semua ekspresi boolean Hanya bisa untuk int, char, string, enum

6. Kapan Harus Menggunakan Switch-Case?

Jika ada banyak kondisi yang memeriksa satu variabel yang sama.
Jika kondisi bersifat diskrit (angka, karakter, atau string tetap).
Jika ingin meningkatkan keterbacaan kode dibandingkan dengan if-else bertingkat.

Jangan gunakan switch-case jika kondisi yang diuji lebih kompleks (misalnya ekspresi boolean yang melibatkan lebih dari satu variabel).

Kesimpulan

  • Switch-case adalah cara efektif untuk menangani banyak kondisi dalam satu variabel.
  • Dapat digunakan untuk berbagai tipe data seperti integer, string, dan char.
  • Menggunakan switch-case lebih bersih dibandingkan if-else bertingkat.
  • Jika kondisi yang diuji lebih kompleks, lebih baik menggunakan if-else.

Dengan memahami konsep switch dan case dalam C#, Anda dapat membuat kode yang lebih rapi, efisien, dan mudah dipahami!

Read more