Pemrograman Berorientasi Objek dalam PHP
Konsep Berorientasi Objek
Pemrograman berorientasi objek (OOP) adalah paradigma pemrograman yang menggunakan "objek" untuk merancang aplikasi dan software. Objek ini adalah instance dari kelas, yang dapat mengandung data dalam bentuk field, juga dikenal sebagai atribut; dan kode, dalam bentuk prosedur, juga dikenal sebagai metode. Prinsip utama OOP adalah pengecualian, pewarisan, dan polimorfisme.
Mendefinisikan Kelas PHP
Dalam PHP, Anda mendefinisikan kelas menggunakan kata kunci class
. Kelas adalah blueprint untuk membuat objek. Itu menentukan set properti dan metode yang umum bagi semua objek dari satu jenis.
class Mobil {
// Properti dan metode kelas di sini
}
Membuat Objek dalam PHP
Untuk membuat objek dari kelas, Anda gunakan kata kunci new
diikuti dengan nama kelas.
$myCar = new Mobil();
Menjelajah Fungsi Anggota
Fungsi anggota didefinisikan dalam kelas dan digunakan untuk melakukan operasi pada properti objek. Anda menjelajah fungsi anggota pada objek menggunakan operator objek ->
.
$myCar->drive(); // Menjelajah metode drive pada objek $myCar
Fungsi Konstruktor
Konstruktor adalah metode khusus yang secara otomatis dipanggil saat objek dibuat dari kelas. Itu digunakan untuk menginisialisasi properti objek.
class Mobil {
public function __construct() {
// Inisialisasi properti di sini
}
}
Destructor
Destructor adalah metode khusus yang secara otomatis dipanggil saat objek dihancurkan atau keluar dari rentang. Itu digunakan untuk melakukan tugas penyelesaian seperti menutup koneksi database atau melepaskan memori.
class Mobil {
public function __destruct() {
// Tugas penyelesaian di sini
}
}
Pewarisan
Pewarisan memungkinkan kelas mewarisi properti dan metode dari kelas lain. Kelas yang diwarisi disebut kelas induk, dan kelas yang mewarisi disebut kelas anak.
class MobilListrik extends Mobil {
// MobilListrik mewarisi properti dan metode dari Mobil
}
Penimpaan Fungsi
Penimpaan fungsi memungkinkan kelas anak untuk menyediakan implementasi yang berbeda dari metode yang sudah didefinisikan dalam kelas induknya.
class MobilListrik extends Mobil {
public function drive() {
// Implementasi yang berbeda dari metode drive
}
}
Anggota Publik
Anggota publik dapat diakses dari mana saja, baik di dalam maupun di luar kelas.
class Mobil {
public $color; // Properti publik
public function drive() { // Metode publik
// Kode di sini
}
}
Anggota Privat
Anggota privat hanya dapat diakses dalam kelas mereka didefinisikan. Mereka tidak dapat diakses dari luar kelas.
class Mobil {
private $color; // Properti privat
private function drive() { // Metode privat
// Kode di sini
}
}
Anggota Terperlindung
Anggota terperlindung dapat diakses dalam kelas mereka didefinisikan dan dalam semua kelas anak.
class Mobil {
protected $color; // Properti terperlindung
protected function drive() { // Metode terperlindung
// Kode di sini
}
}
Antarmuka
Antarmuka adalah kontrak yang mendefinisikan set metode yang harus diimplementasikan oleh kelas. Jika kelas mengimplementasikan antarmuka, itu berjanji untuk menyediakan implementasi untuk semua metode yang dideklarasikan dalam antarmuka.
interface DapatDijalankan {
public function drive(); // Deklarasi metode
}
class Mobil implements DapatDijalankan {
public function drive() {
// Implementasi metode drive
}
}
Konstanta
Konstanta adalah nilai yang ditetapkan dan tidak dapat diubah setelah didefinisikan. Mereka berguna untuk mendefinisikan nilai yang tidak pernah berubah sepanjang eksekusi program.
class Mobil {
const MAX_SPEED = 100; // Nilai konstanta
}
Kelas Abstrak
Kelas abstrak adalah kelas yang tidak dapat diinstansiasi dan dimaksudkan untuk diperpanjang oleh kelas lain. Itu dapat mengandung metode abstrak, yang adalah metode tanpa implementasi, dan metode konkrit dengan implementasi.
abstract class Kendaraan {
abstract public function move(); // Metode abstrak
public function stop() { // Metode konkrit
// Kode di sini
}
}
Kata Kunci Statik
Kata kunci static
digunakan untuk mendeklarasikan properti atau metode yang milik kelas itu sendiri daripada instance kelas. Anggota statik dapat diakses tanpa membuat objek kelas.
class Mobil {
public static $count = 0; // Properti statik
public static function getCount() { // Metode statik
return self::$count;
}
}
Kata Kunci Final
Kata kunci final
digunakan untuk mencegah kelas dari diperpanjang, atau metode dari diimpi.
final class Mobil {
// Kelas ini tidak dapat diperpanjang
}
Menjelajah Konstruktor Induk
Saat membuat kelas anak, Anda mungkin ingin menjelajah konstruktor kelas induk untuk menginisialisasi beberapa propertinya. Anda dapat melakukan ini menggunakan kata kunci parent
diikuti oleh operator ::
dan nama konstruktor.
class MobilListrik extends Mobil {
public function __construct() {
parent::__construct(); // Menjelajah konstruktor induk
// Inisialisasi tambahan di sini
}
}
Credits: Image by storyset