Lewati ke konten utama

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.