DISKON TERBATAS! Masukkan kupon "skillbaru" saat checkout di kelas apa saja
Skodev
Belajar coding dalam bahasa Indonesia
Pelajari penggunaan kelas abstrak dalam PHP dengan penjelasan simpel dan contoh kode yang dapat dipahami dengan mudah.
Kelas Abstrak di PHP
Dalam pemrograman berorientasi objek (OOP), kelas abstrak adalah konsep penting yang membantu kita untuk mendefinisikan template untuk kelas-kelas lain. Di PHP, kelas abstrak tidak dapat diinstansiasi langsung, tetapi mereka menyediakan struktur yang harus diimplementasikan oleh kelas turunannya.
Sebuah kelas abstrak adalah kelas yang tidak lengkap dan memerlukan kelas lain untuk memberikan implementasi yang spesifik. Kelas abstrak digunakan sebagai dasar bagi kelas lain. Ini membantu untuk mendefinisikan metode abstrak yang harus diimplementasikan oleh semua turunan kelas tersebut.
Untuk membuat kelas abstrak di PHP, kamu menggunakan kata kunci abstract
sebelum kata class
. Berikut adalah contoh sederhana dari kelas abstrak dan cara penggunaannya.
abstract class Kendaraan {
protected $kecepatan;
// Constructor untuk kelas abstrak
public function __construct($kecepatanAwal) {
$this->kecepatan = $kecepatanAwal;
}
// Metode abstrak
abstract public function jalan();
// Metode non-abstrak
public function getKecepatan() {
return $this->kecepatan;
}
}
// Kelas turunan dari kelas abstrak
class Mobil extends Kendaraan {
// Implementasi dari metode abstrak
public function jalan() {
return "Mobil ini berjalan dengan kecepatan " . $this->getKecepatan() . " km/jam.";
}
}
// Instansiasi objek dari kelas Mobil
$mobil = new Mobil(50);
echo $mobil->jalan(); // Output: Mobil ini berjalan dengan kecepatan 50 km/jam.
Sebuah kelas abstrak bisa mengandung properti dan metode seperti kelas biasa. Namun, metode abstrak yang didefinisikan di kelas abstrak harus dideklarasikan tanpa tubuh dan harus diimplementasikan di kelas turunan.
Mari kita buat contoh yang lebih kompleks dengan menambahkan beberapa kelas turunan lagi:
abstract class Hewan {
protected $nama;
public function __construct($nama) {
$this->nama = $nama;
}
abstract public function suara();
public function getNama() {
return $this->nama;
}
}
class Kucing extends Hewan {
public function suara() {
return "Meong";
}
}
class Anjing extends Hewan {
public function suara() {
return "Guk guk";
}
}
$kucing = new Kucing("Luna");
$anjing = new Anjing("Max");
echo $kucing->suara(); // Output: Meong
echo $anjing->suara(); // Output: Guk guk
Dalam kedua contoh di atas, kelas abstrak memberikan kerangka dasar untuk kelas turunannya, memaksa mereka untuk mengimplementasikan metode tertentu sementara masih menyediakan fungsionalitas umum yang bisa dibagi antara semua subkelas.
Kelas abstrak adalah alat yang berguna untuk membangun hierarki kelas yang rapi dan terstruktur dengan mengamanatkan metode tertentu yang harus ada dalam semua kelas turunan, sehingga menambah tingkat abstraksi yang dapat membuat kode lebih fleksibel dan mudah untuk di-maintain.