Belajar Access Modifier Tanpa Bikin Mules
Salah satu kekuatan OOP adalah Encapsulation — yaitu kemampuan untuk membungkus data agar hanya bisa diakses oleh bagian program yang tepat. Ibarat dapur restoran, kamu gak mau semua pelanggan langsung masuk ke dalam dan ngacak-ngacak masakan, kan?
Encapsulation menjaga agar data kamu gak diubah sembarangan. Di C#, ini dilakukan dengan bantuan access modifier seperti private
, public
, dan protected
.
🔐 Apa Itu Encapsulation?
Encapsulation adalah teknik membungkus data + logika pengaksesannya di dalam class.
- private: hanya bisa diakses dari dalam class itu sendiri
- public: bisa diakses dari mana saja
- protected: bisa diakses dari class itu dan class turunannya
Contoh Tanpa Encapsulation (Berbahaya!)
class Produk { public string Nama; public double Harga; }
Dengan deklarasi public
seperti itu, siapa saja bisa mengubah harga sesuka hati:
Produk p = new Produk(); p.Nama = "Teh Manis"; p.Harga = -50000; // 💣 Harga minus? Ini bahaya!
🛡️ Solusi: Gunakan Enkapsulasi dengan Property
Kita bungkus field harga
dan atur aksesnya dengan properti:
class Produk { private double harga; public double Harga { get { return harga; } set { if (value >= 0) harga = value; else Console.WriteLine("Harga tidak boleh negatif!"); } } public string Nama { get; set; } }
📌 Apa Untungnya?
- Data hanya bisa diubah lewat aturan logis
- Tidak ada data “nakal” yang bikin error tersembunyi
- Program kamu jadi lebih aman dan scalable
💡 Studi Kasus Singkat
Skenario: toko online kamu punya sistem input harga. Tapi kamu gak mau input ngawur seperti -1000 atau 999999999. Jadi kamu buat filter via properti:
Produk p = new Produk(); p.Nama = "Pulsa"; p.Harga = -1000; // Output: Harga tidak boleh negatif!
Program tetap jalan, tapi data invalid ditolak secara elegan.
🧠 Kesimpulan
Kalau kamu ingin bikin aplikasi yang profesional dan tahan banting, kamu butuh Encapsulation.
- Gunakan
private
untuk melindungi data - Berikan akses lewat
public property
yang punya kontrol - Jangan izinkan siapa pun masuk dapur — kecuali mereka bener-bener tahu cara masak!
📘 Artikel Berikutnya:
Kita akan bahas Inheritance di C# — alias pewarisan class. Biar kamu bisa bikin class turunan kayak ProdukDigital
dari Produk
, dengan fitur tambahannya sendiri!
Kalau class-mu udah aman, saatnya berbagi warisan 💼