Pemrograman Berorientasi Objek (OOP) adalah paradigma pemrograman yang berfokus pada pengorganisasian kode menjadi objek-objek yang memiliki data (properti) dan tindakan (metode) yang terkait. OOP memungkinkan Anda untuk mengelompokkan kode menjadi unit yang lebih terorganisir dan mudah dikelola. Dalam PHP, OOP memungkinkan Anda untuk membuat kelas-kelas dan objek-objek yang memadukan data dan fungsionalitas.
Kelas, Objek, Properti, dan Metode dalam PHP
class Manusia {
// Properti
public $nama;
public $umur;
// Metode
public function sapa() {
return "Halo, nama saya " . $this->nama . " dan saya berumur " . $this->umur . " tahun.";
}
}
// Membuat objek
$orang = new Manusia();
$orang->nama = "John";
$orang->umur = 30;
// Memanggil metode
echo $orang->sapa();
Pada bagian ini, Anda membuat kelas Manusia
yang memiliki dua properti, yaitu $nama
dan $umur
, serta satu metode yaitu sapa()
. Kemudian Anda membuat objek $orang
dari kelas Manusia
, mengatur properti nama dan umur, dan memanggil metode sapa()
untuk mengeluarkan salam sesuai dengan properti yang diatur.
Pewarisan (Inheritance), Polimorfisme, dan Enkapsulasi dalam OOP PHP
Pewarisan:
class Mahasiswa extends Manusia {
public $nim;
public function info() {
return "Saya mahasiswa dengan NIM " . $this->nim;
}
}
$mahasiswa = new Mahasiswa();
$mahasiswa->nama = "Jane";
$mahasiswa->umur = 20;
$mahasiswa->nim = "12345";
echo $mahasiswa->sapa();
echo $mahasiswa->info();
Di bagian ini, Anda membuat kelas Mahasiswa
yang merupakan turunan dari kelas Manusia
. Ini berarti kelas Mahasiswa
mewarisi properti dan metode dari kelas Manusia
. Anda juga menambahkan properti khusus nim
dan metode info()
dalam kelas Mahasiswa
. Setelah membuat objek $mahasiswa
dari kelas Mahasiswa
, Anda dapat memanggil metode sapa()
dan info()
.
Polimorfisme:
function introspeksi(Manusia $orang) {
echo $orang->sapa();
}
$mahasiswa = new Mahasiswa();
$mahasiswa->nama = "Alice";
$mahasiswa->umur = 22;
$mahasiswa->nim = "67890";
introspeksi($mahasiswa);
Fungsi introspeksi()
menerima argumen berupa objek dari kelas Manusia
. Namun, Anda memanggilnya dengan objek $mahasiswa
yang merupakan turunan kelas Mahasiswa
, yang sebenarnya juga adalah objek dari kelas Manusia
. Ini adalah contoh polimorfisme, di mana objek dari kelas yang berbeda (tapi terkait) dapat digunakan secara interchangeably dalam konteks tertentu.
Enkapsulasi:
class Kendaraan {
private $jenis;
public function setJenis($jenis) {
$this->jenis = $jenis;
}
public function getJenis() {
return $this->jenis;
}
}
$mobil = new Kendaraan();
$mobil->setJenis("Mobil");
echo $mobil->getJenis();
Dalam kelas Kendaraan
, Anda menggunakan enkapsulasi dengan mendeklarasikan properti $jenis
sebagai private. Properti ini hanya dapat diakses melalui metode setJenis()
dan getJenis()
, yang masing-masing digunakan untuk mengatur dan mengambil nilai properti $jenis
. Ini membantu mencegah akses langsung ke properti dari luar kelas dan memberikan kontrol lebih atas bagaimana data diakses dan dimanipulasi.
Studi Kasus: Penggunaan OOP dalam Pengembangan Web dengan PHP
class Artikel {
private $judul;
private $isi;
public function setJudul($judul) {
$this->judul = $judul;
}
public function setIsi($isi) {
$this->isi = $isi;
}
public function tampilkanArtikel() {
echo "<h2>" . $this->judul . "</h2>";
echo "<p>" . $this->isi . "</p>";
}
}
$artikel1 = new Artikel();
$artikel1->setJudul("Pengenalan OOP dalam PHP");
$artikel1->setIsi("Pemrograman Berorientasi Objek (OOP) adalah...");
$artikel2 = new Artikel();
$artikel2->setJudul("Pewarisan dan Polimorfisme dalam OOP");
$artikel2->setIsi("Pewarisan memungkinkan kelas untuk mewarisi properti...");
$artikel1->tampilkanArtikel();
$artikel2->tampilkanArtikel();
Dalam studi kasus ini, Anda membuat kelas Artikel
yang memiliki properti private $judul
dan $isi
, serta metode setJudul()
, setIsi()
, dan tampilkanArtikel()
. Anda membuat dua objek dari kelas Artikel
, mengatur judul dan isi masing-masing artikel, dan kemudian memanggil metode tampilkanArtikel()
untuk menampilkan konten artikel dalam format HTML. Ini adalah contoh bagaimana OOP dapat digunakan dalam pengembangan web untuk mengelola konten dengan lebih terstruktur.
Kesimpulan
Dalam pemrograman PHP berorientasi objek (OOP):
- Kita dapat membuat kelas yang memiliki properti (variabel) dan metode (fungsi).
- Objek adalah instansi dari kelas yang memiliki nilai properti tertentu.
- Pewarisan memungkinkan kelas untuk mewarisi properti dan metode dari kelas lain, memungkinkan penggunaan kembali kode.
- Polimorfisme memungkinkan objek dari kelas yang berbeda untuk merespons metode dengan cara yang berbeda.
- Enkapsulasi mengacu pada konsep menyembunyikan detail internal kelas dan hanya mengekspos fungsionalitas yang dibutuhkan.
Contoh penggunaan OOP dalam pengembangan web dapat ditemukan dalam studi kasus sistem manajemen konten sederhana, di mana kelas Artikel
digunakan untuk mengatur dan menampilkan konten dengan lebih terstruktur dan terkelola. OOP membantu meningkatkan organisasi dan keterbacaan kode, serta memungkinkan penggunaan kembali dan perluasan kode yang lebih mudah.