Pemrograman Berorientasi Objek dalam PHP

Konsep Berorientasi Objek

Pemrograman berorientasi objek (OOP) adalah paradigma pemrograman yang menggunakan "objek" untuk merancang aplikasi dan perangkat lunak. Objek adalah instance dari kelas, yang dapat berisi data dalam bentuk field, juga dikenal sebagai atribut; dan kode dalam bentuk prosedur, juga dikenal sebagai metode. Prinsip utama OOP adalah enkapsulasi, pewarisan, dan polimorfisme.

PHP - Object Oriented Programming

Mendefinisikan Kelas PHP

Dalam PHP, Anda mendefinisikan kelas menggunakan kata kunci class. Kelas adalah blueprint untuk membuat objek. Itu menentukan sebuah 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();

Menjalankan Fungsi Member

Fungsi member didefinisikan dalam kelas dan digunakan untuk melakukan operasi pada properti objek. Anda menjalankan fungsi member pada objek menggunakan operator objek ->.

$myCar->drive(); // Menjalankan 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 pembersihan seperti menutup koneksi database atau membebaskan memori.

class Mobil {
public function __destruct() {
// Tugas pembersihan di sini
}
}

Pewarisan

Pewarisan memungkinkan kelas mewarisi properti dan metode dari kelas lain. Kelas yang mewarisi adalah kelas induk, dan kelas yang mewarisi adalah kelas anak.

class MobilListrik extends Mobil {
// MobilListrik mewarisi properti dan metode dari Mobil
}

Penimpaan Fungsi

Penimpaan fungsi memungkinkan kelas anak memberikan 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 $warna; // Properti publik
public function drive() { // Metode publik
// Kode di sini
}
}

Anggota Privat

Anggota privat hanya dapat diakses dalam kelas tempat mereka didefinisikan. Mereka tidak dapat diakses dari luar kelas.

class Mobil {
private $warna; // Properti privat
private function drive() { // Metode privat
// Kode di sini
}
}

Anggota Terperlindung

Anggota terperlindung dapat diakses dalam kelas tempat mereka didefinisikan dan dalam semua kelas anak.

class Mobil {
protected $warna; // Properti terperlindung
protected function drive() { // Metode terperlindung
// Kode di sini
}
}

Antarmuka

Antarmuka adalah kontrak yang menentukan set metode yang harus diimplementasikan oleh kelas. Jika kelas mengimplementasikan antarmuka, itu berjanji untuk menyediakan implementasi untuk semua metode yang dideklarasikan dalam antarmuka.

interface DapatDiberikan {
public function drive(); // Deklarasi metode
}

class Mobil implements DapatDiberikan {
public function drive() {
// Implementasi metode drive
}
}

Konstanta

Konstanta adalah nilai yang tidak dapat diubah setelah didefinisikan. Mereka berguna untuk mendefinisikan nilai yang tidak seharusnya berubah sepanjang eksekusi program.

class Mobil {
const KECEPATAN_MAX = 100; // Nilai konstanta
}

Kelas Abstrak

Kelas abstrak adalah kelas yang tidak dapat diinstansiasi dan dimaksudkan untuk diperpanjang oleh kelas lain. Itu dapat berisi 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 Static

Kata kunci static digunakan untuk mendeklarasikan properti atau metode yang milik kelas itu sendiri daripada instance kelas. Anggota statis dapat diakses tanpa menciptakan objek kelas.

class Mobil {
public static $jumlah = 0; // Properti statik
public static function getCount() { // Metode statik
return self::$jumlah;
}
}

Kata Kunci Final

Kata kunci final digunakan untuk mencegah kelas dari diperpanjang, atau metode dari diimpiamentasikan ulang.

final class Mobil {
// Kelas ini tidak dapat diperpanjang
}

Menjalankan Konstruktor Orangtua

Saat membuat kelas anak, Anda mungkin ingin menjalankan konstruktor kelas induk untuk menginisialisasi beberapa propertinya. Anda dapat melakukan ini menggunakan kata kunci parent diikuti dengan operator :: dan nama konstruktor.


class MobilListrik extends Mobil {
public function __construct() {
parent::__construct(); // Menjalankan konstruktor induk
// Inisialisasi tambahan di sini
}
}

Credits: Image by storyset