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.

PHP - Encapsulation

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