Enum di Swift
Penjelasan
Enum di Swift jauh lebih kuat dibanding enum di kebanyakan bahasa lain — tiap case bisa membawa associated value (data tambahan spesifik ke case itu), mirip enum di Rust. Dicocokkan lewat switch, yang WAJIB menangani semua kemungkinan case (exhaustive), sama seperti match di Rust.
Contoh Konsep
enum StatusPesanan {
case diproses
case dikirim(resi: String) // associated value
case selesai
}
func cekStatus(_ status: StatusPesanan) -> String {
switch status {
case .diproses:
return "Pesanan sedang diproses"
case .dikirim(let resi):
return "Dikirim, resi: \(resi)"
case .selesai:
return "Pesanan selesai"
}
}
let status = StatusPesanan.dikirim(resi: "JX12345")
print(cekStatus(status))
Praktikum
Buat enum Nilai dengan tiga case: a, b, dan c (tanpa associated value). Buat fungsi keterangan(_ nilai: Nilai) -> String yang memakai switch untuk mengembalikan "Sangat baik" (a), "Baik" (b), atau "Cukup" (c). Panggil dengan salah satu case-nya dan tampilkan hasilnya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Kalau enum-nya sudah diketahui tipenya dari konteks (mis. parameter fungsi bertipe Nilai), kamu bisa menulis case-nya langsung dengan titik di depan (mis. .a) tanpa perlu mengulang nama enum-nya (Nilai.a) — sintaks ringkas ini disebut implicit member expression.