Study
C#

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.

Editor Latihan

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.