PHP - Enkapsulasi
Enkapsulasi adalah salah satu prinsip fundamental dari pemrograman berorientasi objek (OOP). Hal ini merujuk kepada pengemasan data bersama dengan metode yang beroperasi pada data itu. Dalam PHP, enkapsulasi dapat dicapai menggunakan kelas dan modifier akses seperti public, private, dan protected. Panduan ini akan mengajarkan Anda dasar-dasar enkapsulasi dalam PHP, mulai dari anggota public, kemudian melanjutkan ke anggota private, dan akhirnya mencakup anggota protected.
Anggota Public
Anggota public dapat diakses dari mana saja, baik dalam maupun diluar kelas. Mereka dideklarasikan menggunakan kata kunci public
. Berikut adalah contoh kelas sederhana dengan anggota public:
class Car {
public $color;
public function setColor($color) {
$this->color = $color;
}
public function getColor() {
return $this->color;
}
}
$myCar = new Car();
$myCar->setColor("red");
echo "My car is " . $myCar->getColor() . "."; // Output: My car is red.
Dalam contoh ini, kita memiliki kelas Car
dengan properti public $color
dan dua metode public setColor()
dan getColor()
. Kita dapat mudah mengatur dan mendapatkan warna mobil dari luar kelas.
Anggota Private
Anggota private hanya dapat diakses dalam kelas tempat mereka didefinisikan. Mereka dideklarasikan menggunakan kata kunci private
. Berikut adalah contoh kelas dengan anggota private:
class BankAccount {
private $balance;
public function __construct($initialBalance) {
$this->balance = $initialBalance;
}
public function deposit($amount) {
if ($amount > 0) {
$this->balance += $amount;
}
}
public function getBalance() {
return $this->balance;
}
}
$myAccount = new BankAccount(100);
$myAccount->deposit(50);
echo "My account balance is " . $myAccount->getBalance() . "."; // Output: My account balance is 150.
Dalam contoh ini, kita memiliki kelas BankAccount
dengan properti private $balance
dan dua metode public deposit()
dan getBalance()
. Properti $balance
tidak dapat diakses langsung dari luar kelas, tetapi kita dapat mengoperasinya menggunakan metode deposit()
dan mendapatkan nilainya menggunakan metode getBalance()
.
Anggota Protected
Anggota protected dapat diakses dalam kelas tempat mereka didefinisikan serta dalam subclass mana pun. Mereka dideklarasikan menggunakan kata kunci protected
. Berikut adalah contoh kelas dengan anggota protected:
class Animal {
protected $name;
public function __construct($name) {
$this->name = $name;
}
}
class Dog extends Animal {
public function bark() {
echo "Woof! I am " . $this->name . ".";
}
}
$myDog = new Dog("Buddy");
$myDog->bark(); // Output: Woof! I am Buddy.
Dalam contoh ini, kita memiliki kelas Animal
dengan properti protected $name
. Kelas Dog
mengextend kelas Animal
dan memiliki akses ke properti $name
karena itu protected. Kita dapat menggunakan properti $name
dalam kelas Dog
untuk implementasi metode bark()
.
Kesimpulan
Enkapsulasi adalah konsep penting dalam OOP yang membantu menjaga integritas data dengan membatasi akses langsung kepadanya. Dengan menggunakan modifier akses seperti public, private, dan protected, Anda dapat mengendalikan bagaimana data Anda diakses dan diubah. Memahami enkapsulasi akan membantu Anda menulis kode yang lebih kuat dan mudah dipelihara dalam PHP dan bahasa OOP lainnya.
Credits: Image by storyset