Belajar OOP PHP : Part 2

Oke teman – teman kali ini kita akan melanjutkan belajar oop  php.

PART 1 bagi teman – teman yang belum membaca PART 1

8. Constructor dan Destructor

Constructor dan Destructor adalah method bawaan dari OOP PHP. Constructor adalah fungsi yang paling pertama kali dijalan ketika object dibuat. Sedangkan Destructor adalah fungsi yang terakhir kali dijalankan ketika semua kode sudah dijalankan. Constructor dan Destructor harus memiliki hak akses Public. Adapun cara penulisan Constructor dan Destructor adalah dengan menuliskan __construct() dan __ destruct(). Contoh :


<?php

class Mahasiswa {
    public function __construct() { // Contoh Constructor
        echo "Fungsi Construct Terpanggil";
    }
    public function __destruct() { // Contoh Desstructor
        echo "Fungsi Destruct Terpanggil";
    }
}

// function __construct() terpanggil ketika objek ini dibuat
$rizal = new Mahasiswa(); // Object
echo "<br/>Batas <br/>";
// function __destruct() terpanggil ketika file berakhir

?>

Hasil :

Fungsi Construct Terpanggil
Batas
Fungsi Destruct Terpanggil

9. Inheritance

Inheritance/Pewarisan merupakan salah satu konsep OOP, yang dimaksud pewarisan adalah class anak / sub class dapat memiliki sifat dari parent class / base class. Di ibaratkan manusia, maka anak akan memiliki bawaan dari orang tuanya, baik itu sifat maupun penampilan, Jika orang tua nya memiliki rambut hitam maka kemungkinan besar anaknya memiliki rambut hitam.

Dalam pewarisan, property atau method harus memiliki hak akses public atau protected agar bisa diturunkan kepada class anak. Pewarisan dilakukan dengan menuliskan sintaks extends di class anak, Contoh :

<php

class OrangTua {
    protected $rambut = "hitam";
    public function warnaRambut() {
        echo "Warna rambutnya adalah ". $this-&gt;rambut;
    }
}

class Anak extends OrangTua { // Contoh pewarisan

}

$rizal = new Anak();
// class Anak bisa memiliki fungsi warnaRambut dari class OrangTua
echo $rizal->warnaRambut();

?>

Hasil :

Warna rambutnya adalah hitam

Apabila tidak di override/overriding (Menulis property atau method ulang) maka akan menjalankan method bawaan dari class OrangTua. Berikut contoh override, dengan menambahkan property dan method dengan nama yang sama tapi isi berbeda pada class Anak.

<?php

class Anak extends OrangTua { // Contoh pewarisan
    //Contoh dari overriding property dari class OrangTua
    protected $rambut = "merah";
 	
    //Contoh dari overriding method dari class OrangTua
    public function warnaRambut() {
        echo "Ternyata rambutnya adalah ". $this->rambut;
    }
}

?>

Hasil :

Ternyata rambutnya adalah merah

  1. Abstract Class

Abstract class sama seperti class biasa, bedanya abstract class tidak bisa langsung dijadikan object melainkan harus class anak yang menjadi object.

Abstract class digunakan di dalam inheritance (pewarisan class) untuk ‘memaksakan’ implementasi method yang sama bagi seluruh class yang diturunkan dari abstract class. Abstract class digunakan untuk membuat struktur logika penurunan di dalam pemrograman objek. Contoh penggunaan Abstrack class :

<?php

abstract class MakhlukHidup { // contoh Abstract Class
    protected $nafas = "hidung";
    protected $jenisMakhluk = "Manusia";
    public function bernafas() {
 	echo $this->jenisMakhluk. " bernafas melalui ". $this->nafas;
    }
}

class Manusia extends MakhlukHidup { // Contoh pewarisan
 	
}

$orang = new Manusia();
// class Manusia memiliki fungsi bernafas dari class abstract MakhlukHidup
echo $orang->bernafas();

?>

Hasil :

Manusia bernafas melalui hidung

  1. Interface

Interface adalah suatu aturan method atau property yang harus ada dalam suatu class, class harus melakukan override dari interface yang digunakan, cara menggunaka interface adalah dengan sintaks implements dan untuk membuat interface dengan sintaks interface berikut contoh penggunaan interface :

<?php
 	
interface Praktikum { // Contoh penulisan interface
    public function berdoa(); // method yang harus di override
}
 	
// Contoh penggunaan interface dengan implements
class Mahasiswa implements Praktikum{
    public function berdoa(){
        echo"Sebelum memulai praktikum harus berdoa";
    }
}
 	
$mhs= new Mahasiswa();
echo $mhs->berdoa(); // Pemanggilan fungsi berdoa();

?>

Hasil :

Sebelum memulai praktikum harus berdoa

Apabila Mahasiswa tidak membuat method berdoa() maka akan terjadi error.

Scope Resolution Operator
Scope Resolution Operator adalah pemanggilan property/method secara langsung dengan nama class tanpa membuat objek, contoh pemanggilan nya adalah nama class dilanjutkan double colon lalu nama method atau property contoh Mahasiswa::berdoa() lebih lengkapnya seperti contoh berikut :

<?php
 	
class Mahasiswa{
    public function berdoa() {
 	echo "Sebelum memulai praktikum harus berdoa";
    }
}
 	
// Contoh penggunaan Scope Resolution Operator
Mahasiswa::berdoa();

?>

Hasil :

Sebelum memulai praktikum harus berdoa

Static property dan static method
Static property dan static method adalah property (variabel) dan method (function) yang melekat kepada class, bukan kepada objek. Konsep static property memang ‘agak keluar’ dari konsep objek sebagai tempat melakukan proses, karena sebenarnya class hanya merupakan ‘blueprint’ saja.

Untuk membuat static property dan static method, kita menambahkan keyword ‘static’ setelah penulisan hak akses property atau method, seperti contoh berikut:

<?php

class Mahasiswa{
    public static $agama;
    public static function berdoa(){
 	echo "Sebelum memulai praktikum harus berdoa Menurut Agama ";
    }
}
 	
// set static property
Mahasiswa::$agama = "Islam";
// Memanggil static Method
Mahasiswa::berdoa();
// get static property
echo Mahasiswa::$agama;

?>

Hasil :

Sebelum memulai praktikum harus berdoa Menurut Agama Islam

Dikarenakan static melekat pada class bukan objek maka pemanggilannya melalui class, dalam static method tidak dapat menggunakan $this dikarenakan tidak menggunakan objek dalam pemanggilannya.

Self keyword
Self keyword adalah keyword yang berfungsi untuk memanggil property/method milik dirinya sendiri, sederhananya self keyword memanggil property atau method pada class dimana self keyword itu digunakan, contoh penggunaan :

<?php

class OrangTua {
    public function tempat(){
 	echo "Ini Fungsi Dari Class Orang Tua <br>";
    }
    public function tampil(){
 	self::tempat(); // Contoh Penggunaan self
 	$this->tempat(); // Contoh Penggunaan this
    }
}
 	
class Anak extends OrangTua {
    public function tempat(){
 	echo "Ini Fungsi Dari Class Anak <br>";
    }
}
 	
$manusia = newAnak();
//menampilkan method tampil() melalui objek dari class anak
$manusia->tampil();

?>

Hasil :

Ini Fungsi Dari Class Orang Tua

Ini Fungsi Dari Class Anak

Parent keyword
Parent keyword adalah keyword untuk memanggil property atau method milik parent class, sehingga walau pun property atau method sudah di override di class anak, tetap bisa menggunakan class asli. Berikut contoh penggunaan parent keyword :

<?php
 	
class OrangTua {
    public function tempat(){
 	echo "Ini Fungsi Dari Class Orang Tua <br>";
    }
}
 	
class Anak extends OrangTua {
    public function tampil() {
 	parent::tempat(); // Contoh Penggunaan parent
 	$this->tempat(); // Contoh Penggunaan this
    }

    public function tempat() {
 	echo "Ini Fungsi Dari Class Anak <br>";
    }
}
 	
$manusia = newAnak();
//menampilkan method tampil() melalui objek dari class anak
$manusia->tampil();

?>

Hasil :

Ini Fungsi Dari Class Orang Tua

Ini Fungsi Dari Class Anak

Selesai dan Terima kasih.

Leave a Reply

Your email address will not be published. Required fields are marked *