Study
Haskell

If-Then-Else & Guards

Penjelasan

`if`/`then`/`else` di Haskell adalah EKSPRESI, bukan statement — karena itu `else` WAJIB ada (setiap cabang harus menghasilkan nilai bertipe sama). Untuk banyak kondisi, guards (`| kondisi = hasil`) biasanya lebih idiomatik dan mudah dibaca daripada if/else berantai.

Contoh Konsep

-- if/else sebagai ekspresi, else wajib ada
status :: Int -> String
status nilai = if nilai >= 70 then "Lulus" else "Tidak lulus"

-- Guards, lebih ringkas untuk banyak kondisi
predikat :: Int -> String
predikat nilai
  | nilai >= 85 = "A"
  | nilai >= 70 = "B"
  | otherwise   = "C"   -- otherwise = kondisi default, selalu True

Praktikum

Buat fungsi kategoriUmur :: Int -> String memakai guards, mengembalikan "Anak" (< 13), "Remaja" (13-17), atau "Dewasa" (>= 18).

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Selalu sertakan `otherwise` sebagai guard terakhir (mirip `default`/`else`) — kalau tidak ada guard yang cocok dan tidak ada `otherwise`, Haskell akan melempar error "Non-exhaustive patterns" saat runtime.