Object & Companion Object
Penjelasan
Scala tidak punya kata kunci `static` seperti Java. Sebagai gantinya, method/nilai "statis" ditaruh di dalam `object` — instance tunggal yang otomatis ada. Kalau sebuah `object` punya nama SAMA PERSIS dengan sebuah `class` di file yang sama, itu disebut companion object, dan keduanya bisa saling mengakses anggota private satu sama lain — pola umum untuk membuat factory method.
Contoh Konsep
class Siswa private (val nama: String, val nilai: Int)
object Siswa {
// Factory method: cara terkontrol untuk membuat instance Siswa
def buat(nama: String, nilai: Int): Siswa = {
new Siswa(nama, nilai)
}
}
val s = Siswa.buat("Budi", 90) // dipanggil tanpa 'new', lewat companion object
println(s.nama)
Praktikum
Buat class Produk dengan constructor private, dan companion object Produk dengan factory method buat(nama: String, harga: Double) untuk membuatnya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Companion object sering dipakai untuk validasi sebelum object dibuat (misal menolak harga negatif) — constructor class dibuat `private`, dan satu-satunya jalan membuat instance adalah lewat factory method companion object.