Pemrograman Berorientasi Objek (Object-Oriented Programming/OOP) adalah paradigma pemrograman yang sangat penting dalam pengembangan perangkat lunak modern, termasuk dalam ekosistem PHP. OOP memungkinkan pengembang untuk mengelola kompleksitas kode dengan mengorganisasi struktur berdasarkan konsep objek dan kelas. Ini meningkatkan modularitas, reuseability, dan kemudahan pemeliharaan kode.
Untuk memahami konsep dasar OOP seperti Enkapsulasi, Pewarisan (Inheritance), dan Polimorfisme, melihat contoh kode sederhana sangatlah efektif. Kita akan membuat contoh program OOP PHP yang sangat dasar, yaitu simulasi sederhana menggunakan konsep Kelas (Class) untuk merepresentasikan "Kendaraan".
Program berikut mendefinisikan sebuah kelas bernama Kendaraan yang memiliki properti (variabel) dan metode (fungsi). Metode __construct adalah konstruktor yang otomatis dipanggil saat objek dibuat.
<?php
class Kendaraan {
// Properti (Attributes)
public $jenis;
protected $kecepatan = 0;
private $statusMesin = "Mati";
// Konstruktor
public function __construct($jenisKendaraan) {
$this->jenis = $jenisKendaraan;
echo "<p class='output'>Objek Kendaraan jenis " . $this->jenis . " telah dibuat.</p>";
}
// Metode (Behavior)
public function hidupkanMesin() {
$this->statusMesin = "Hidup";
echo "<p class='output'>Mesin " . $this->jenis . " sekarang: " . $this->statusMesin . "</p>";
}
public function percepat($tambahKecepatan) {
if ($this->statusMesin == "Hidup") {
$this->kecepatan += $tambahKecepatan;
echo "<p class='output'>Kecepatan naik menjadi: " . $this->kecepatan . " km/jam.</p>";
} else {
echo "<p class='output'>Tidak bisa menambah kecepatan. Mesin harus dihidupkan terlebih dahulu!</p>";
}
}
public function getStatus() {
return "Kendaraan: " . $this->jenis .
" | Kecepatan Saat Ini: " . $this->kecepatan . " km/jam" .
" | Status Mesin: " . $this->statusMesin;
}
}
// --- Penggunaan Kelas (Instansiasi Objek) ---
// Membuat objek pertama (Mobil)
$mobilSaya = new Kendaraan("Mobil Sedan");
// Memanggil metode
$mobilSaya->percepat(10); // Akan gagal karena mesin mati
$mobilSaya->hidupkanMesin();
$mobilSaya->percepat(50);
echo "<div class='output'>" . $mobilSaya->getStatus() . "</div>";
// Membuat objek kedua (Motor) - menunjukkan reusability
$motorSaya = new Kendaraan("Motor Sport");
$motorSaya->hidupkanMesin();
$motorSaya->percepat(80);
echo "<div class='output'>" . $motorSaya->getStatus() . "</div>";
?>
Dalam contoh di atas, kita melihat empat pilar utama OOP diterapkan secara sederhana:
Kendaraan adalah cetak biru (blueprint). Ini mendefinisikan struktur data (properti) dan perilaku (metode) yang akan dimiliki oleh semua objek Kendaraan.$mobilSaya dan $motorSaya adalah instansi atau wujud nyata dari kelas Kendaraan. Masing-masing memiliki nilai properti yang independen.$kecepatan (protected) dan $statusMesin (private) tidak dapat diakses atau diubah langsung dari luar kelas, melainkan harus melalui metode publik seperti percepat() atau hidupkanMesin(). Ini menjaga integritas data.__construct() memastikan bahwa objek diinisialisasi dengan benar segera setelah dibuat, dalam kasus ini, dengan menetapkan jenis kendaraannya.Dengan menggunakan OOP, jika kita ingin menambahkan jenis kendaraan baru, misalnya Bus, kita cukup membuat objek baru dari kelas Kendaraan tanpa perlu menulis ulang logika percepatan atau pengecekan status mesin. Jika nanti ada kebutuhan khusus untuk Bus (misalnya, metode muatPenumpang()), kita bisa menggunakan konsep Pewarisan (Inheritance) untuk membuat kelas turunan Bus dari kelas Kendaraan, sebuah topik lanjutan yang sangat didukung oleh struktur OOP ini.
Ketika kode PHP di atas dijalankan di server web yang mendukung PHP, output yang dihasilkan akan menunjukkan bagaimana setiap objek berinteraksi dengan metodenya sendiri, sambil menjaga enkapsulasi data:
Contoh program oop php sederhana ini menegaskan bahwa kelas dan objek adalah fondasi kuat untuk membangun aplikasi yang terstruktur dan mudah dikelola dalam PHP.