Type Class Dasar: Eq, Ord, Show
Penjelasan
Type class mendefinisikan sekumpulan fungsi yang harus diimplementasikan sebuah tipe supaya "mendukung" kemampuan tertentu — mirip interface di bahasa lain. Type class bawaan yang paling sering ditemui: `Eq` (bisa dibandingkan dengan `==`/`/=`), `Ord` (bisa diurutkan dengan `<`/`>`/`compare`), `Show` (bisa diubah jadi String dengan `show`).
Contoh Konsep
data Ukuran = Kecil | Sedang | Besar deriving (Show, Eq, Ord)
-- Karena deriving Ord, urutan constructor menentukan urutan perbandingan
Kecil < Sedang -- True
Sedang < Besar -- True
max Kecil Besar -- Besar
show Sedang -- "Sedang"
Praktikum
Buat tipe data Level = Pemula | Menengah | Mahir deriving (Show, Eq, Ord), lalu bandingkan Pemula dan Mahir dengan (<), dan cetak hasil max-nya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Kalau tipe kustommu perlu `Eq`/`Ord`/`Show` dengan perilaku BAWAAN (perbandingan berdasarkan urutan constructor, tampilan otomatis), cukup tambahkan `deriving (...)` — implementasi manual hanya perlu ditulis kalau butuh perilaku KHUSUS.