Switch dalam Java
📌 Pendahuluan
switch adalah control statement dalam Java yang digunakan untuk memilih satu dari banyak kondisi berdasarkan nilai tertentu.
Switch biasanya digunakan sebagai alternatif dari if-else if ketika kondisi berbasis nilai tetap.
1️⃣ Struktur Dasar Switch
switch (ekspresi) {
case nilai1:
// kode
break;
case nilai2:
// kode
break;
default:
// kode default
}
Contoh:
int hari = 1;
switch (hari) {
case 1:
System.out.println("Senin");
break;
case 2:
System.out.println("Selasa");
break;
default:
System.out.println("Hari tidak valid");
}
2️⃣ Peran break
break digunakan untuk menghentikan eksekusi pada case tersebut.
Jika tidak menggunakan break, maka akan terjadi fall-through.
Contoh tanpa break:
int angka = 1;
switch (angka) {
case 1:
System.out.println("Satu");
case 2:
System.out.println("Dua");
}
📌 Output:
Satu
Dua
3️⃣ Multiple Case (Gabungan Case)
Beberapa case bisa menggunakan blok yang sama.
int hari = 6;
switch (hari) {
case 6:
case 7:
System.out.println("Weekend");
break;
default:
System.out.println("Hari kerja");
}
4️⃣ Switch dengan Tipe Data
Switch mendukung:
intcharStringenum
Contoh String:
String role = "admin";
switch (role) {
case "admin":
System.out.println("Akses penuh");
break;
case "user":
System.out.println("Akses terbatas");
break;
}
5️⃣ Switch Expression (Java Modern)
Sejak Java 14+, switch bisa digunakan sebagai expression.
int hari = 3;
String namaHari = switch (hari) {
case 1 -> "Senin";
case 2 -> "Selasa";
case 3 -> "Rabu";
default -> "Tidak valid";
};
System.out.println(namaHari);
6️⃣ Perbedaan Switch vs If
| Switch | If |
|---|---|
| Nilai tetap | Kondisi kompleks |
| Lebih rapi untuk banyak pilihan | Lebih fleksibel |
| Cepat dibaca | Lebih powerful |
7️⃣ Best Practice
- Gunakan
switchuntuk banyak pilihan nilai tetap - Selalu gunakan
break(kecuali sengaja fall-through) - Gunakan
defaultuntuk menangani kondisi tak terduga - Gunakan switch expression untuk kode modern
🎯 Penutup
Switch statement membantu membuat kode lebih rapi dan mudah dibaca saat menangani banyak kondisi berbasis nilai tetap.