1. Apa itu Enkapsulasi?
Enkapsulasi (Encapsulation) adalah konsep dalam Object Oriented Programming (OOP) yang digunakan untuk membungkus data dan method ke dalam sebuah class, serta mengontrol siapa saja yang boleh mengaksesnya.
Dengan enkapsulasi:
- Detail proses internal disembunyikan
- Akses ke data dibatasi
- Interaksi dilakukan melalui method yang disediakan
Konsep ini sering disebut juga sebagai information hiding.
2. Mengapa Enkapsulasi Penting?
Tanpa enkapsulasi, data dalam program bisa:
- Diubah sembarangan
- Menyebabkan error tak terduga
- Merusak alur logika program
Enkapsulasi membantu:
- Menjaga keamanan data
- Membuat program lebih rapi dan modular
- Memudahkan pengembangan dan pemeliharaan kode
3. Analogi Enkapsulasi dalam Kehidupan Sehari-hari
Bayangkan sebuah AC.
Untuk mengatur suhu AC:
- Kita tidak membongkar AC
- Kita cukup menggunakan remote
Di dalam AC terdapat:
- Rangkaian elektronik
- Sensor
- Proses kerja internal
Semua itu disembunyikan dari pengguna.
Remote berfungsi sebagai interface untuk mengakses fungsi AC.
👉 Class = AC
👉 Method public = tombol remote
👉 Proses internal = method private/protected
4. Hak Akses dalam Enkapsulasi
Untuk mengatur enkapsulasi, OOP menyediakan 3 jenis hak akses:
| Hak Akses | Bisa Diakses Dari |
|---|---|
public |
Dari mana saja |
protected |
Dari class sendiri & class turunan |
private |
Hanya dari class itu sendiri |
5. Contoh 1: Hak Akses public
Property dan method public dapat diakses dari luar class.
Contoh Kode
<?php
class Mobil {
public $pemilik;
public function nyalakanMobil() {
return "Mesin mobil dinyalakan";
}
}
$mobilBudi = new Mobil();
$mobilBudi->pemilik = "Budi";
echo $mobilBudi->pemilik;
echo $mobilBudi->nyalakanMobil();
?>
Penjelasan
- Property
$pemilikbisa diubah langsung - Method
nyalakanMobil()bisa dipanggil dari luar class - Tidak ada pembatasan akses
6. Contoh 2: Hak Akses protected
Property atau method protected:
- Tidak bisa diakses dari luar class
- Bisa diakses oleh class itu sendiri atau class turunannya
Contoh Kode (Akan Error)
<?php
class Mobil {
protected $pemilik = "Budi";
}
$mobil = new Mobil();
echo $mobil->pemilik; // ERROR
?>
Cara Mengakses protected dengan Benar
Gunakan method public sebagai perantara.
<?php
class Mobil {
protected $pemilik = "Budi";
public function getPemilik() {
return $this->pemilik;
}
protected function nyalakanMobil() {
return "Mesin mobil hidup";
}
public function paksaNyalakan() {
return $this->nyalakanMobil();
}
}
$mobil = new Mobil();
echo $mobil->getPemilik();
echo $mobil->paksaNyalakan();
?>
Penjelasan
- Property tetap tersembunyi
- Akses dilakukan lewat method yang disediakan
- Kontrol penuh di tangan pembuat class
7. Contoh 3: Hak Akses private
Hak akses private adalah yang paling ketat.
Property atau method:
- Hanya bisa diakses oleh class itu sendiri
- Tidak bisa diakses oleh class turunan
Contoh Kode
$tipehanya dikenal oleh classKendaraan- Class turunan tidak bisa mengakses
- Cocok untuk data yang benar-benar rahasia
8. Manfaat Enkapsulasi dalam PBO
Dengan menerapkan enkapsulasi, Anda mendapatkan:
✅ Data lebih aman
✅ Class lebih rapi dan terstruktur
✅ Perubahan kode tidak merusak class lain
✅ Mengurangi kesalahan pemrograman
✅ Mudah dikembangkan di masa depan
9. Ringkasan Singkat
- Enkapsulasi = membungkus data + membatasi akses
- Gunakan:
public→ bebas diaksesprotected→ untuk pewarisanprivate→ untuk data internal
- Akses data tersembunyi melalui method public
- Enkapsulasi membuat program lebih aman dan profesional
10. Tips Belajar Enkapsulasi
💡 Selalu sembunyikan data penting
💡 Gunakan getter & setter
💡 Jangan semua property dibuat public
💡 Anggap class seperti mesin, bukan sekadar kumpulan variabel