Study
Dart

Encapsulation & Getter/Setter di Dart

Penjelasan

Dart TIDAK punya keyword private seperti Java/C# — sebagai gantinya, field/method yang namanya diawali underscore (_) otomatis private, tapi HANYA private di level FILE/LIBRARY, bukan di level class. Dart juga punya getter dan setter kustom (get/set) untuk menambah logika saat property diakses/diubah, mirip computed property di Swift/Kotlin.

Contoh Konsep

class Akun {
  double _saldo = 0; // private, diawali underscore

  double get saldo => _saldo; // getter

  set saldo(double nilai) { // setter dengan validasi
    if (nilai >= 0) {
      _saldo = nilai;
    }
  }
}

void main() {
  var akunku = Akun();
  akunku.saldo = 50000; // seperti akses field biasa, padahal memanggil setter
  print(akunku.saldo); // 50000.0
}

Praktikum

Buat class Siswa dengan field private _nama, disertai getter nama dan setter nama yang menolak nilai kosong. Buat object-nya, set nama dengan nama kamu, lalu tampilkan lewat getter.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Karena private di Dart cuma berlaku per-FILE (bukan per-class seperti bahasa lain), dua class yang didefinisikan di file .dart YANG SAMA bisa saling mengakses field private satu sama lain — tapi TIDAK bisa diakses dari file lain sama sekali, meski class turunannya sekalipun.