OOP adalah cara menulis program dengan menggunakan objek. Bayangkan Anda membuat aplikasi yang mengelola data pengguna. Daripada menulis kode yang berulang-ulang, OOP memungkinkan Anda membuat blueprint (cetakan) untuk objek yang bisa digunakan berkali-kali.
1. Konsep Utama OOP
Konsep | Penjelasan | Contoh di Dunia Nyata |
---|---|---|
Class | Cetakan atau blueprint untuk membuat objek | "Blueprint rumah" |
Object | Hasil dari class, yang memiliki data dan fungsi | "Rumah yang dibangun dari blueprint" |
Encapsulation | Menyembunyikan detail data dan hanya memberikan akses melalui metode tertentu | "Kulkas hanya bisa dibuka dengan pintunya, tidak bisa langsung mengambil isinya dari belakang" |
Inheritance | Pewarisan sifat dari satu class ke class lain | "Anak mewarisi sifat orang tua" |
Polymorphism | Kemampuan satu fungsi memiliki bentuk berbeda di class turunan | "Tombol power di TV dan laptop sama-sama untuk menyalakan, tetapi cara kerjanya berbeda" |
2. Implementasi dalam PHP
Mari kita buat contoh sederhana OOP di PHP:
(a) Membuat Class dan Object
<?php
// Blueprint (Class)
class Mobil {
public $merk;
public $warna;
public function __construct($merk, $warna) {
$this->merk = $merk;
$this->warna = $warna;
}
public function info() {
return "Mobil {$this->merk} berwarna {$this->warna}.";
}
}
// Membuat object dari class Mobil
$mobil1 = new Mobil("Toyota", "Merah");
echo $mobil1->info(); // Output: Mobil Toyota berwarna Merah.
?>
🛠Penjelasan:
- Class
Mobil
adalah blueprint. $merk
dan$warna
adalah properti (data).- Method
info()
adalah fungsi dalam class. - Keyword
$this
digunakan untuk mengakses properti dari class. - Object
new Mobil("Toyota", "Merah")
dibuat dari blueprintMobil
.
(b) Konsep Encapsulation (Menyembunyikan Data)
<?php
class BankAccount {
private $saldo = 0;
public function deposit($jumlah) {
$this->saldo += $jumlah;
return "Saldo bertambah menjadi Rp{$this->saldo}";
}
public function getSaldo() {
return "Saldo Anda: Rp{$this->saldo}";
}
}
$akun = new BankAccount();
echo $akun->deposit(100000); // Saldo bertambah menjadi Rp100000
echo $akun->getSaldo(); // Saldo Anda: Rp100000
?>
🛠Penjelasan:
private $saldo
→ Tidak bisa diakses langsung dari luar.deposit()
dangetSaldo()
→ Digunakan untuk mengontrol akses saldo.
Jika mencoba echo $akun->saldo;
, akan error karena saldo bersifat private.
(c) Konsep Inheritance (Pewarisan)
<?php
// Parent class
class Kendaraan {
public $merk;
public function __construct($merk) {
$this->merk = $merk;
}
public function jalan() {
return "{$this->merk} sedang berjalan!";
}
}
// Child class (Mewarisi class Kendaraan)
class Motor extends Kendaraan {
public $roda = 2;
public function info() {
return "{$this->merk} memiliki {$this->roda} roda.";
}
}
$motor = new Motor("Honda");
echo $motor->jalan(); // Honda sedang berjalan!
echo $motor->info(); // Honda memiliki 2 roda.
?>
🛠Penjelasan:
Motor
mewarisi (extends
)Kendaraan
.Motor
bisa menggunakan methodjalan()
dariKendaraan
.
(d) Konsep Polymorphism (Satu Fungsi, Berbeda Perilaku)
<?php
class Hewan {
public function suara() {
return "Hewan bersuara...";
}
}
class Kucing extends Hewan {
public function suara() {
return "Meong!";
}
}
class Anjing extends Hewan {
public function suara() {
return "Guk guk!";
}
}
$kucing = new Kucing();
$anjing = new Anjing();
echo $kucing->suara(); // Meong!
echo $anjing->suara(); // Guk guk!
?>
🛠Penjelasan:
Kucing
danAnjing
punya method suara() dengan perilaku berbeda.- PHP akan menggunakan method dari class yang lebih spesifik.
Kesimpulan
✅ OOP membuat kode lebih terstruktur, mudah dibaca, dan bisa digunakan ulang.
✅ Encapsulation menyembunyikan detail internal.
✅ Inheritance memungkinkan class untuk mewarisi sifat.
✅ Polymorphism memungkinkan satu fungsi bekerja berbeda.
🚀 Dengan OOP, aplikasi menjadi lebih mudah dikelola dan dikembangkan. 🚀