Case Class di Scala
Penjelasan
Case class adalah fitur khas Scala untuk membuat class yang fokus menyimpan data (mirip data class di Kotlin). Cukup tambahkan kata kunci `case` di depan `class`, dan Scala otomatis membuatkan: `toString()` yang deskriptif, `equals()`/`hashCode()` berdasarkan isi field (bukan referensi), method `copy()` untuk membuat salinan dengan sebagian field diubah, dan constructor tanpa perlu `new`.
Contoh Konsep
case class Produk(nama: String, harga: Double)
val p1 = Produk("Sepatu", 200000) // tanpa 'new'
println(p1) // Produk(Sepatu,200000.0), toString otomatis
val p2 = Produk("Sepatu", 200000)
println(p1 == p2) // true, dibandingkan berdasarkan ISI, bukan referensi
val p3 = p1.copy(harga = 180000) // salinan dengan harga diubah, sisanya sama
println(p3) // Produk(Sepatu,180000.0)
Praktikum
Buat case class Siswa(nama: String, nilai: Int). Buat 2 instance dengan nilai sama, bandingkan dengan ==, lalu buat salinan salah satunya dengan nilai berbeda memakai copy().
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Case class adalah pilihan default yang bagus untuk model data di Scala (mirip DTO) — hampir selalu lebih baik daripada class biasa kalau tujuannya cuma membungkus data.