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
privateuntuk melindungi data - Berikan akses lewat
public propertyyang 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 💼
