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.
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.