Study
Haskell

Maybe: Menghindari Null

Penjelasan

Haskell TIDAK punya konsep `null`/`nil`/`undefined` sama sekali. Sebagai gantinya, nilai yang "mungkin tidak ada" direpresentasikan lewat tipe `Maybe a` — bisa berupa `Just nilai` (ada isinya) atau `Nothing` (kosong). Compiler MEMAKSA kamu menangani kedua kemungkinan lewat pattern matching, sehingga bug "lupa cek null" secara struktural tidak mungkin terjadi.

Contoh Konsep

cariHarga :: String -> Maybe Double
cariHarga "Apel" = Just 15000
cariHarga _ = Nothing

deskripsiHarga :: Maybe Double -> String
deskripsiHarga (Just harga) = "Harganya " ++ show harga
deskripsiHarga Nothing = "Tidak ditemukan"

main :: IO ()
main = do
  putStrLn (deskripsiHarga (cariHarga "Apel"))    -- "Harganya 15000.0"
  putStrLn (deskripsiHarga (cariHarga "Mangga"))   -- "Tidak ditemukan"

Praktikum

Buat fungsi cariStok :: String -> Maybe Int yang mengembalikan Just stok untuk "Sepatu" (misal 5) dan Nothing untuk nama lain, lalu buat fungsi deskripsiStok yang menangani keduanya.

Editor Latihan

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

Tips

Fungsi `fromMaybe defaultValue maybeValue` (dari modul Data.Maybe) berguna untuk mengambil isi Maybe dengan cepat, memberi nilai default kalau Nothing — alternatif ringkas dibanding pattern matching manual untuk kasus sederhana.