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.

PHP - Object Oriented Programming

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