Senin, 29 Agustus 2016

BAB VII: Object Oriented Programming PHP Part III

Okey gaes pada BAB ini kita akan mempelajari tentang Inheritance, Interface dan Abstract Class. Langsung aja yaa kita santap materinya..

10.  Inheritance
Inheritance/pewarisan merupakan salah satu konsep OOP, maksud dari pewarisan adalah class anak/sub-class dapat memiliki sifat dari parent class/master class.
Apabila diibaratkan seperti manusia, maka anak akan memiliki bawaan dari orang tua, baik itu sifat maupun penampilan. Sebagai contoh apabila orang tua memiliki warna kulit putih maka anaknya kemungkinan besar punya kulit putih.

Dalam pewarisan sifat ini, property dan method yang memiliki hak akses Public dan Protected yang akan diturunkan kepada anak. Pewarisan dilakukan dengan menuliskan fungsi extends di class anak, contohnya sebagai berikut:

class OrangTua{   
    protected  $rambut = “hitam”;
public function tampilkan() {
echo “Warna rambutnya adalah : “ . $this->rambut;
}
}
Class Anak extends OrangTua{ //contoh dari pewarisan sifat
}
$anggit = new Anak();
//class anak bisa memiliki fungsi tampilkan
//dari class OrangTua
$anggit->tampilkan();

Maka hasilnya adalah “Warna rambutnya adalah: hitam” , karena class Anak memiliki property bawaan $rambut dan memiliki fungsi bawaan tampilkan().
Apabila tidak di override/overriding (menulis ulang fungsinya), maka fungsi bawaan dari class OrangTua yang akan berjalan.
Contoh dari overriding, tambahkan fungsi berikut di class Anak:

class Anak extends OrangTua{ //contoh dari pewarisan sifat
    // contoh dari overriding $rambut dari orang tua
    protected $rambut = “Merah”;
    // contoh dari overriding function tampilkan()
    public function tampilkan() {
        echo “Rambutnya : “ . $this->rambut;
    }
}

Maka hasilnya adalah “Rambutnya Merah”.

11.  Interface
Interface adalah suatu aturan method dan property apa saja yang harus ada dalam suatu class, class harus melakukan overriding dari interface yang digunakan, cara penggunaan dari intrface adalah dengan “implements”.
Apabila diibaratkan dalam keehidupan sehari-hari, interface adalah peraturan dari sekolah, class yang implements dari interface adalah murid dari sekolah, apabila murid tidak mematuhi peraturan dari sekolah, maka murid akan dikeluarkan. Hal ini sama seperti jika class yang melakukan implements tidak melakukan override diproperty atau method yang ada di interface, maka akan terjadi error.
Adapun contoh penggunaan interface sebagai berikut:

interface Sopan{    // contoh dari penulisan interface
public function menyapa();   // method yang harus di override
}
// contoh dari penggunaan interface dengan implements
class Manusia implements Sopan{
    //contoh dari override method di interface
    public function menyapa() {
        echo “Halo apa kabar?”;
    }
}
$anggit = new Manusia();
$anggit->menyapa();   //pemanggil fungsi menyapa();

Hasilnya adalah “Halo apa kabar?”.
Tapi apabila class Manusia tidak membuat method menyapa(), maka terjadi error.

12.  Abstract Class
Abstract Class sama seperti class biasa, bedanya dia harus memiliki anak dan tidak bisa langsung dijadikan object, harus class anaknya yang dijadikan object.
Adapun cara penulisannya menggunaka abstract class, contohnya sebagai berikut:

abstract class MakhlukHidup{  //contoh abstract class
    protected $mata = 2;
    public function tampilkan() {
    echo “Manusia memiliki “ . $this->mata . “Mata”;
    }
}
class Manusia extends MakhlukHidup{  // contoh pewarisan sifat
}
$anggit = new Manusia();
// class manusia punya fungsi tampilkan dari class MakhlukHidup
$anggit->tampilkan();

Maka hasilnya adalah “Manusia memiliki 2 mata”.
Sekilas sama seperti class biasa, tapi abstract class tidak bisa dibuat object misalnya new MakhlukHidup(); maka akan terjadi kesalahan (error).



BAB VI nya cukup dulu, next lanjut materi selanjutnya di BAB VIII
Thanks..

Tidak ada komentar:

Posting Komentar

Perbedaan Sistem Informasi Eksekutif, Sistem Infromasi Manajemen, Sistem Pendukung Keputusan dan Sistem Pakar

Perbedaan SIE, SIM, SPK dan Sistem Pakar. Kali ini saya akan sedikit berbagi pengetahuan tentang : 1. Apa itu Sistem Informasi Ekseku...