Switch dan Case pada Bahasa Pemrograman C#
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:
switchmengevaluasi nilai dari suatu ekspresi.casedigunakan untuk membandingkan ekspresi dengan nilai tertentu.breakdigunakan untuk menghentikan eksekusi agar tidak menjalankan case berikutnya.defaultdieksekusi 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.
switchakan memeriksa angka yang dimasukkan dan mencetak nama hari yang sesuai.- Jika angka di luar 1-7,
defaultakan 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
warnadan mencocokkannya dengancaseyang tersedia. - Jika warna yang dimasukkan tidak ada di dalam
case, makadefaultakan 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
gradebernilai 'A', maka output "Sangat Baik". - Jika
gradebernilai 'B' atau 'C', maka output "Baik". - Jika
gradebernilai '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!