Visualisasi Konsep Dasar Pemrograman Berorientasi Objek
Pemrograman Berorientasi Objek (OOP) adalah paradigma pemrograman yang sangat penting dalam pengembangan perangkat lunak modern, termasuk di PHP. PHP versi modern sangat mendukung penuh fitur OOP seperti Enkapsulasi, Pewarisan (Inheritance), dan Polimorfisme. Menggunakan OOP membantu kita membangun kode yang lebih terstruktur, mudah dikelola, dan dapat digunakan kembali (reusable).
Inti dari OOP adalah konsep Class (cetak biru) dan Object (instansi dari class). Sebuah class mendefinisikan atribut (properties) dan perilaku (methods) yang akan dimiliki oleh objek yang dibuat darinya.
Mari kita lihat contoh sederhana di mana kita membuat sebuah class dasar bernama Kendaraan. Class ini akan memiliki properti seperti merek dan tahun, serta metode seperti startMesin().
<?php
class Kendaraan {
// Properti (Atribut)
public $merek;
protected $tahun;
private $kecepatan = 0;
// Constructor: Dipanggil saat objek dibuat
public function __construct($merek, $tahun) {
$this->merek = $merek;
$this->tahun = $tahun;
echo "Objek Kendaraan {$this->merek} tahun {$this->tahun} berhasil dibuat.
";
}
// Method (Perilaku)
public function startMesin() {
return "Mesin {$this->merek} telah dinyalakan.";
}
public function tambahKecepatan($nilai) {
$this->kecepatan += $nilai;
return "Kecepatan saat ini: {$this->kecepatan} km/jam.";
}
// Getter untuk properti private
public function getTahun() {
return $this->tahun;
}
}
// Membuat Objek (Instansiasi)
$mobilSaya = new Kendaraan("Toyota Avanza", 2020);
$motorSaya = new Kendaraan("Honda Vario", 2022);
// Menggunakan objek
echo "<br>";
echo $mobilSaya->startMesin() . "<br>";
echo $mobilSaya->tambahKecepatan(50) . "<br>";
echo "Tahun pembuatan mobil: " . $mobilSaya->getTahun() . "<br>";
echo "<br>";
echo $motorSaya->startMesin() . "<br>";
// Contoh mengakses properti publik
echo "Merek motor: " . $motorSaya->merek . "<br>";
Dalam contoh di atas, kita menerapkan Enkapsulasi. Properti $kecepatan disetel sebagai private, artinya ia hanya bisa diakses atau dimodifikasi dari dalam class itu sendiri (melalui method tambahKecepatan). Properti $tahun disetel sebagai protected, yang berarti bisa diakses oleh class turunan.
Untuk menunjukkan Pewarisan (Inheritance), kita bisa membuat class baru MobilListrik yang mewarisi dari class Kendaraan menggunakan kata kunci extends.
<?php
class MobilListrik extends Kendaraan {
private $kapasitasBaterai;
public function __construct($merek, $tahun, $baterai) {
// Memanggil constructor parent class
parent::__construct($merek, $tahun);
$this->kapasitasBaterai = $baterai;
}
// Overriding method dari parent
public function startMesin() {
return "Mesin listrik {$this->merek} (tenang) telah diaktifkan.";
}
public function cekBaterai() {
return "Kapasitas baterai: {$this->kapasitasBaterai} kWh.";
}
}
$mobilBaru = new MobilListrik("Tesla Model 3", 2023, 75);
echo "<br>";
echo $mobilBaru->startMesin() . "<br>"; // Menggunakan method yang di-override
echo $mobilBaru->cekBaterai() . "<br>";
echo "Tahun mobil listrik (diambil dari parent): " . $mobilBaru->getTahun() . "<br>";
Mengapa repot-repot menggunakan OOP? Jawabannya terletak pada skalabilitas dan pemeliharaan (maintenance).
Meskipun pada proyek PHP kecil mungkin terasa berlebihan, menguasai contoh program oop php adalah investasi fundamental untuk karir pengembangan web yang serius. Ini adalah dasar bagi semua framework modern seperti Laravel dan Symfony.