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:
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 dengancase
yang tersedia. - Jika warna yang dimasukkan tidak ada di dalam
case
, makadefault
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!