Switch & Case

Switch & Case 🔀

switch adalah struktur kontrol yang memungkinkan kita memilih satu dari beberapa blok kode untuk dieksekusi, berdasarkan nilai sebuah ekspresi. Cocok digunakan ketika satu variabel dibandingkan dengan banyak nilai konstan.


Sintaks Dasar Switch

int hari = 3;

switch (hari) {
  case 1:
    print('Senin');
    break;
  case 2:
    print('Selasa');
    break;
  case 3:
    print('Rabu');
    break;
  case 4:
    print('Kamis');
    break;
  case 5:
    print('Jumat');
    break;
  default:
    print('Akhir pekan');
}

Output: Rabu


Pentingnya break

Setiap case yang memiliki isi wajib diakhiri dengan break (atau return/throw). Dart tidak mengizinkan fall-through seperti di C atau Java:

int kode = 2;

switch (kode) {
  case 1:
    print('Satu');
    break;
  case 2:
    print('Dua');
    break; // wajib ada
  case 3:
    print('Tiga');
    break;
  default:
    print('Tidak dikenal');
}

Menggabungkan Case (Fall-through Kosong)

Dart mengizinkan beberapa case yang kosong (tanpa kode) berdampingan untuk menangani beberapa nilai dengan satu aksi:

String huruf = 'a';

switch (huruf) {
  case 'a':
  case 'e':
  case 'i':
  case 'o':
  case 'u':
    print('Huruf vokal');
    break;
  default:
    print('Huruf konsonan');
}

Switch dengan String

String perintah = 'maju';

switch (perintah) {
  case 'maju':
    print('Bergerak ke depan');
    break;
  case 'mundur':
    print('Bergerak ke belakang');
    break;
  case 'berhenti':
    print('Berhenti di tempat');
    break;
  default:
    print('Perintah tidak dikenal: $perintah');
}

Menggunakan return di dalam Switch

Jika switch berada di dalam fungsi, bisa menggunakan return sebagai pengganti break:

String namaHari(int hari) {
  switch (hari) {
    case 1: return 'Senin';
    case 2: return 'Selasa';
    case 3: return 'Rabu';
    case 4: return 'Kamis';
    case 5: return 'Jumat';
    case 6: return 'Sabtu';
    case 7: return 'Minggu';
    default: return 'Tidak valid';
  }
}

void main() {
  print(namaHari(3)); // Rabu
  print(namaHari(6)); // Sabtu
}

Kapan Gunakan Switch vs If-Else?

Gunakan switch:
✓ Membandingkan satu variabel dengan banyak nilai konstan
✓ Nilai yang dibandingkan adalah int, String, atau enum
✓ Banyak cabang setara — lebih bersih dari banyak else if

Gunakan if-else:
✓ Kondisi kompleks atau melibatkan rentang nilai (nilai >= 60)
✓ Membandingkan hasil ekspresi boolean
✓ Kondisi melibatkan banyak variabel sekaligus
// Lebih baik pakai switch:
switch (statusPesanan) {
  case 'diproses': ...
  case 'dikirim': ...
  case 'selesai': ...
}

// Lebih baik pakai if-else:
if (nilai >= 90) { ... }
else if (nilai >= 80) { ... }
else if (nilai >= 70) { ... }

💡 Tips: Di Dart 3.0+, hadir fitur switch expression dan pattern matching yang jauh lebih powerful dan ringkas. Namun untuk pemula, kuasai dulu switch statement dasar yang sudah dijelaskan di sini — itulah fondasi untuk memahami fitur yang lebih canggih. 🚀

Sebelumnya

Informasi Kursus

Kursus

Dart Dasar

Kategori

Kontrol Alur

Durasi Pelajaran

20 menit

Pelajaran dalam Kategori Ini