Object Oriented Programming PHP (OOP PHP)

Object Oriented Programming (OOP) adalah paradigma pemrograman yang mengelompokkan data dan perilaku ke dalam sebuah class (cetak biru) dan object (hasil instansiasi). Di PHP, OOP membuat kode lebih mudah dirawat, dikembangkan, dan dipahami ketika proyek mulai membesar.

Program PHP Tanpa Paradigma OOP (Prosedural)

Sebelum masuk ke OOP, mari lihat contoh prosedural sederhana untuk menghitung luas dan keliling persegi panjang.

<?php
function hitungLuas($p, $l) {
  return $p * $l;
}

function hitungKeliling($p, $l) {
  return (2 * $p) + (2 * $l);
}

$panjang = 10;
$lebar   = 5;

printf("Luas: %s\n", hitungLuas($panjang, $lebar));
printf("Keliling: %s\n", hitungKeliling($panjang, $lebar));

Outputnya:

$ php operasi-persegi.php
Luas: 50
Keliling: 30

Gaya prosedural seperti ini cepat dan mudah. Namun saat kebutuhan bertambah (misalnya ingin menghitung lingkaran, segitiga, dan lainnya), kita akan terdorong menambah fungsi baru atau menambah banyak kondisi dalam fungsi yang sama. Akhirnya kode menjadi sulit dirawat.

Program PHP dengan Paradigma OOP

Pada OOP, kita bisa membungkus data dan operasi menjadi sebuah class. Contoh berikut membuat class PersegiPanjang dengan method hitungLuas() dan hitungKeliling().

<?php
class PersegiPanjang {
  private $panjang;
  private $lebar;

  public function __construct($panjang, $lebar) {
    $this->panjang = $panjang;
    $this->lebar   = $lebar;
  }

  public function hitungLuas() {
    return $this->panjang * $this->lebar;
  }

  public function hitungKeliling() {
    return (2 * $this->panjang) + (2 * $this->lebar);
  }
}

$persegi = new PersegiPanjang(10, 5);
printf("Luas: %s\n", $persegi->hitungLuas());
printf("Keliling: %s\n", $persegi->hitungKeliling());

Keunggulan utamanya: ketika kita ingin menambah bangun datar baru, kita cukup membuat class baru tanpa mengganggu class yang lama.

Contoh: Class untuk Lingkaran

Berikut contoh class Lingkaran. Rumus yang benar:

  • Luas = π × r²
  • Keliling = 2 × π × r
<?php
class Lingkaran {
  private $radius;

  public function __construct($radius) {
    $this->radius = $radius;
  }

  public function hitungLuas() {
    return pi() * $this->radius * $this->radius;
  }

  public function hitungKeliling() {
    return 2 * pi() * $this->radius;
  }
}

$lingkaran = new Lingkaran(5);
printf("Luas: %s\n", $lingkaran->hitungLuas());
printf("Keliling: %s\n", $lingkaran->hitungKeliling());

Ringkasan

  • Prosedural cocok untuk script kecil dan cepat.
  • OOP cocok untuk proyek yang berkembang karena struktur lebih rapi dan mudah dipelihara.
  • Dengan OOP, penambahan fitur baru bisa dilakukan dengan membuat class baru tanpa merusak kode lama.

Lanjutan Materi OOP PHP

Jika Anda ingin saya buatkan versi lanjutan sebagai seri artikel, berikut urutan yang paling enak dibaca:

  1. Konsep dasar: class, object, property, method
  2. Constructor & visibility (public, private, protected)
  3. Inheritance (pewarisan) & overriding
  4. Encapsulation & abstraction
  5. Interface & trait
  6. Namespace & autoloading
  7. Exception handling
  8. Design pattern sederhana (Factory, Singleton, Repository)

Posting Komentar

0 Komentar