Property & Encapsulation di Kotlin
Penjelasan
Setiap property (field) di Kotlin otomatis punya getter (dan setter kalau pakai var) di baliknya, walau kamu tidak menulisnya — mirip C#, tapi lebih implisit lagi. Kalau butuh validasi khusus, kamu bisa menimpa setter default-nya secara manual, sambil tetap diakses seperti property biasa dari luar.
Contoh Konsep
class Akun {
var saldo: Double = 0.0
set(value) {
if (value >= 0) { // validasi, tidak boleh negatif
field = value // "field" merujuk ke penyimpanan asli di baliknya
}
}
}
fun main() {
val akunku = Akun()
akunku.saldo = 50000.0 // seperti akses field biasa, padahal memanggil setter
println(akunku.saldo) // 50000.0
}
Praktikum
Buat class Siswa dengan property var nama: String = "" yang setter-nya menolak nilai kosong (string kosong, biarkan nilai lama kalau ditolak). Buat object-nya, set nama dengan nama kamu, lalu tampilkan lewat println.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Kalau property-mu tidak butuh validasi khusus, JANGAN tulis get()/set() sama sekali — biarkan Kotlin memakai implementasi default-nya, yang sudah otomatis benar dan lebih ringkas dibanding menulis boilerplate getter/setter seperti di Java.