Ilustrasi sederhana: Objek dibuat dari cetakan Class.
Pemrograman Berorientasi Objek (Object-Oriented Programming atau OOP) telah menjadi paradigma dominan dalam pengembangan perangkat lunak modern, dan PHP telah mengadopsi fitur OOP secara penuh sejak versi 5. Memahami **contoh oop php** adalah kunci untuk menulis kode yang lebih terstruktur, mudah dipelihara, dan dapat digunakan kembali.
OOP berpusat pada konsep 'Objek', yang merupakan instansiasi dari 'Class'. Class adalah cetak biru (blueprint) yang mendefinisikan struktur data (properties/atribut) dan perilaku (methods/fungsi) dari suatu entitas.
Ada empat pilar utama yang mendasari OOP, dan penerapannya sangat mudah ditemukan dalam **contoh oop php**:
Mari kita lihat contoh oop php paling dasar, yaitu mendefinisikan sebuah Class bernama `Mobil`.
<?php
class Mobil {
// Properties (Atribut)
public $warna;
protected $kecepatan = 0;
private $statusMesin = "Mati";
// Constructor (Metode yang dipanggil saat objek dibuat)
public function __construct($warnaAwal) {
$this->warna = $warnaAwal;
echo "Sebuah mobil warna {$this->warna} telah dibuat.\n";
}
// Method (Perilaku)
public function nyalakanMesin() {
$this->statusMesin = "Hidup";
echo "Mesin menyala. Status: {$this->statusMesin}.\n";
}
public function percepat($tambah) {
if ($this->statusMesin == "Hidup") {
$this->kecepatan += $tambah;
echo "Kecepatan sekarang: {$this->kecepatan} km/jam.\n";
} else {
echo "Tidak bisa berakselerasi, mesin mati.\n";
}
}
}
// Membuat Objek (Instansiasi)
$avanza = new Mobil("Merah"); // Memanggil constructor
$avanza->nyalakanMesin();
$avanza->percepat(50);
// Contoh Akses properti
echo "Warna mobil adalah: " . $avanza->warna . "\n";
// $avanza->kecepatan = 100; // Ini akan menyebabkan error karena 'protected'
?>
Enkapsulasi terlihat dari penggunaan visibility (public, protected, private). Properti `$kecepatan` (protected) hanya bisa diakses oleh Class `Mobil` itu sendiri atau Class turunannya. Properti `$statusMesin` (private) hanya bisa diakses di dalam Class `Mobil`.
Kini, mari kita lihat Pewarisan. Kita buat Class `MobilSport` yang mewarisi dari `Mobil`.
<?php
class MobilSport extends Mobil {
public $turbo = false;
// Override Constructor Parent (memanggil parent constructor)
public function __construct($warnaAwal) {
parent::__construct($warnaAwal);
echo "Ini adalah model Sport.\n";
}
public function aktifkanTurbo() {
$this->turbo = true;
$this->kecepatan += 50; // Bisa mengakses protected property $kecepatan
echo "Turbo aktif! Tambahan kecepatan.\n";
}
}
$ferrari = new MobilSport("Kuning");
$ferrari->nyalakanMesin();
$ferrari->percepat(100); // Menggunakan method dari Parent Class
$ferrari->aktifkanTurbo();
?>
Dalam **contoh oop php** lanjutan ini, `MobilSport` mewarisi semua perilaku `Mobil`. Dengan menggunakan `parent::__construct()`, kita memastikan bahwa proses inisialisasi dari Class induk tetap berjalan. Ini menunjukkan betapa efektifnya penggunaan kembali kode dalam OOP. Struktur kode menjadi lebih logis: semua mobil memiliki warna dan kecepatan dasar, tetapi hanya mobil sport yang punya fitur turbo.
Dengan memahami dasar-dasar Class, Objek, Enkapsulasi, dan Pewarisan, Anda telah menguasai fondasi kuat untuk membangun aplikasi PHP yang skalabel menggunakan prinsip OOP. Selalu fokus pada bagaimana memodelkan dunia nyata ke dalam bentuk Class untuk membuat kode yang intuitif.