Study
Swift

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.

Editor Latihan

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.