Properties & Encapsulation di C#
Penjelasan
Berbeda dari Java yang mengharuskan method getter/setter terpisah (getNama()/setNama()), C# punya property — field yang diakses seperti field biasa dari luar, tapi sebenarnya dijalankan lewat blok get (mengambil nilai) dan set (mengubah nilai, bisa sekalian validasi) di baliknya. Untuk kasus sederhana tanpa validasi, C# punya auto-implemented property yang lebih ringkas lagi.
Contoh Konsep
class Akun {
private double _saldo;
public double Saldo {
get { return _saldo; }
set {
if (value >= 0) { // validasi, tidak boleh negatif
_saldo = value;
}
}
}
// Auto-implemented property, tanpa validasi
public string Nama { get; set; }
}
// Akun akunku = new Akun();
// akunku.Saldo = 50000; // seperti akses field biasa, padahal memanggil set
// Console.WriteLine(akunku.Saldo); // 50000
Praktikum
Buat class Siswa dengan property Nama yang menolak nilai kosong (string kosong) lewat get/set manual (pakai field private _nama di baliknya). Buat object-nya di Main(), set Nama dengan nama kamu, lalu tampilkan lewat get-nya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Kalau property-mu tidak butuh validasi khusus, langsung pakai auto-implemented property (public string Nama { get; set; };) — C# otomatis membuat field private tersembunyi di baliknya, kamu tidak perlu menulisnya sendiri.