Algebraic Data Type (data)
Penjelasan
Keyword `data` dipakai untuk membuat tipe data kustom di Haskell. Bentuk paling sederhana mirip enum (beberapa "constructor" tanpa data tambahan), atau bisa juga constructor yang membawa data di dalamnya (mirip class/struct sederhana). Tipe kustom ini otomatis bisa dipakai di pattern matching.
Contoh Konsep
data Warna = Merah | Hijau | Biru deriving (Show, Eq)
deskripsiWarna :: Warna -> String
deskripsiWarna Merah = "Warna api"
deskripsiWarna Hijau = "Warna daun"
deskripsiWarna Biru = "Warna langit"
-- Constructor yang membawa data
data Siswa = Siswa String Int deriving Show -- nama, nilai
budi :: Siswa
budi = Siswa "Budi" 90
Praktikum
Buat tipe data Status = Aktif | NonAktif | Ditangguhkan deriving (Show, Eq), lalu buat fungsi deskripsiStatus :: Status -> String yang mendeskripsikan tiap status dengan pattern matching.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
`deriving (Show, Eq)` otomatis memberi tipe kustommu kemampuan dicetak dengan `show`/`print` dan dibandingkan dengan `==` — tanpa ini, kamu harus mengimplementasikan sendiri kedua kemampuan tersebut secara manual.