Object-Oriented Programming (OOP) dalam PHP
PHP mendukung paradigma pemrograman berorientasi objek (OOP), yang memungkinkan kita untuk membuat kelas, objek, dan menerapkan prinsip-prinsip OOP seperti enkapsulasi, pewarisan, dan polimorfisme.
1. Konsep Dasar OOP
- Class: Cetak biru untuk membuat objek.
- Object: Instance dari sebuah class.
- Property: Variabel yang dimiliki oleh sebuah objek.
- Method: Fungsi yang dimiliki oleh sebuah objek.
2. Membuat Class dan Object
<?php
class Car {
public $brand;
public $color;
public function __construct($brand, $color) {
$this->brand = $brand;
$this->color = $color;
}
public function describe() {
return "Mobil ini adalah $this->brand berwarna $this->color.";
}
}
$myCar = new Car("Toyota", "Merah");
echo $myCar->describe();
?>
3. Enkapsulasi
Membatasi akses ke properti dan method dengan public
, private
, dan protected
.
<?php
class BankAccount {
private $balance = 0;
public function deposit($amount) {
$this->balance += $amount;
}
public function getBalance() {
return $this->balance;
}
}
$account = new BankAccount();
$account->deposit(1000);
echo $account->getBalance(); // Output: 1000
?>
4. Pewarisan (Inheritance)
Memungkinkan sebuah class untuk mewarisi properti dan method dari class lain.
<?php
class Animal {
public $name;
public function __construct($name) {
$this->name = $name;
}
public function makeSound() {
return "Suara tidak diketahui";
}
}
class Dog extends Animal {
public function makeSound() {
return "Guk guk!";
}
}
$dog = new Dog("Bulldog");
echo $dog->makeSound(); // Output: Guk guk!
?>
5. Polimorfisme
Memungkinkan method dalam subclass untuk menggantikan method di superclass.
<?php
class Shape {
public function getArea() {
return 0;
}
}
class Circle extends Shape {
private $radius;
public function __construct($radius) {
$this->radius = $radius;
}
public function getArea() {
return pi() * pow($this->radius, 2);
}
}
$circle = new Circle(5);
echo $circle->getArea(); // Output: 78.5398
?>
6. Interface
Interface mendefinisikan kontrak yang harus diikuti oleh class yang mengimplementasikannya.
<?php
interface Animal {
public function makeSound();
}
class Cat implements Animal {
public function makeSound() {
return "Meong!";
}
}
$cat = new Cat();
echo $cat->makeSound(); // Output: Meong!
?>
7. Kesimpulan
- Gunakan class dan object untuk membuat struktur kode yang lebih terorganisir.
- Gunakan enkapsulasi untuk membatasi akses data.
- Gunakan pewarisan dan polimorfisme untuk kode yang lebih fleksibel.
- Gunakan interface untuk memastikan class mengikuti kontrak tertentu.
Dengan menggunakan OOP dalam PHP, kode menjadi lebih mudah dipahami, dikelola, dan diperluas.