OOP sering digunakan oleh banyak framework PHP. Kali ini saya ingin membahas 4 dasar dari OOP itu sendiri menggunakan bahasa pemrograman PHP.
Selamat malam,
Kali ini saya akan membahas mengenai OOP di bahasa pemrograman PHP. Object Oriented Programming (OOP) atau biasa dikenal sebagai pemrograman berorientasi objek adalah sebuah paradigma pemrograman dimana
kita membungkus kumpulan dari data atau fungsi kedalam sebuah objek dimana objek - objek tersebut dibungkus lagi di dalam sebuah class. Jika anda bingung dengan bahasa saya mungkin bisa dilihat pengertian-nya disini
Object-oriented programming - Wikipedia
Didalam OOP terdapat 4 pilar yaitu :
- Encapsulation = Memberikan visibilitas terhadap variabel atau method didalam sebuah class.
- Abstraction = Membuat sebuah abstraksi dari sebuah class, dimana isinya berupa data yang pasti ada di objek tersebut.
- Polymorphism = Kemampuan sebuah class untuk memanggil method dari class "indux" dan dapat menghasilkan responnya sendiri.
- Inheritance = Setiap class yang dibuat bisa memiliki "anak" dan setiap "anak" mewarisi class "indux"-nya.
Encapsulation / Enkapsulasi
Enkapsulasi dibagi menjadi 3 yaitu :
- Public = variabel / method bisa dipanggil oleh siapa saja
- Protected = variabel / method hanya bisa dipanggil oleh class itu sendiri atau class "anak"-nya.
- Private = variabel / method hanya bisa dipanggil oleh class itu sendiri.
contoh kode :
<?php class Person { public $nama = 'Enggar'; protected $hobby = 'Ngegame'; private $umur = 17; } class Enggar extends Person { public function intro() { echo $this->nama; // bisa dipanggil echo $this->hobby; // bisa dipanggil echo $this->umur; // tidak bisa dipanggil } } $enggar = new Enggar(); echo $enggar->nama; // bisa dipanggil echo $enggar->hobby; // tidak bisa dipanggil echo $enggar->umur; // tidak bisa dipanggilContoh kode enkapsulasi di PHPAbstraction / Abstraksi
Penggunaan abstraction biasanya melibatkan class interface atau abstract dimana dibuatkan satu base model yang nantinya akan digunakan oleh class lain.
<?php abstract class Kendaraan { abstract function jalan(); } class Mobil extends Kendaraan { public function jalan() { echo 'Roda berputar'; } } class Pesawat extends Kendaraan { public function jalan() { echo 'Terbang'; } } Contoh abstractionKode diatas menunjukkan bahwa class kendaraan memiliki method "jalan" nah untuk cara berjalannya nanti bisa berbeda - beda tiap kendaraan.
Polymorphism
Polymorphism memiliki 2 jenis yaitu :
- Statis / Overloading = Memanggil class dan method dari class lain.
- Dinamis / Overiding = Mengubah method dari class "indux"
Inheritance / Pewarisan
Class "anak" dapat memanggil method dari class "induk" asalkan propertynya bersifat public dan protected.
<?php class Kucing { public function bunyinya() { echo "meoww"; } protected function jumlahKaki() { echo 4; } } class Anggora extends Kucing { public function jumlahKaki() { parent::jumlahKaki(); } } $kucingAnggora = new Anggora(); $kucingAnggora->bunyinya(); // meoww $kucingAnggora->jumlahKaki(); // 4Contoh kode inheritanceUntuk pemanggilan method yang memiliki property protected perlu menambahkan parent agar mengarah ke method milik class "indux".
Mungkin cukup sekian dari saya, Sampai jumpa.