Monday, June 24, 2019

PHP Programming 6 - Object Oriented Programming (OOP) di PHP

Assalamu'alaikum

Selama siang, salam programming. Berjumpa lagi di pembahasan PHP, kali ini saya ingin membahas tentang Object Oriented Programming di PHP. Apa itu OOP dan bagaimana pemanfaatannya dalam programming di PHP? Langsung saja berikut pembahasan tentang OOP.

Object Oriented Programming

Masuk ke pembahasan OOP di php. PHP sendiri termasuk bahasa pemrograman yang sudah memanfaatkan OOP atau Object Oriented Programming. Dimana Object Oriented Programming adalah salah satu cara membuat program dengan memecah alur program menjadi modul-modul sederhana yang di sebut object


Implementasi OOP pada PHP sendiri adalah setiap objek yang di buat akan melakukan tugasnya sendiri sendiri. Di dalam OOP, setiap objek akan memapping ke class yang sesuai di panggilnya. Jadi dalam melakukan implementasi OOP, kita memerlukan tiap-tiap class untuk menjalankan object-object dibawahnya

Jadi di dalam pembuatan OOP di PHP ada 4 istilah instruksi yang perlu di ingat yaitu :

  • Class (sebagai induk mapping objeknya). 
  • Property atau variabel di dalam class, yaitu data yang disimpan di dalam class atau juga bisa di sebut ciri-ciri suatu class. 
  • Method atau function di dalam class, yaitu tindakan yang bisa di lakukan di dalam class.
  • Dan Objek, yaitu pemanggilan class di luar struktur class. Fungsinya untuk menjalankan class beserta property dan method di dalam class itu sendiri.
<?php
//pembuatan class
class nama_class{
    //property class
    public $variabel2;
    public $variabel3;
 
    //method class
    function function1(){
        return "Ini Function1";
    }
   

    function function2(){
 
       return "Ini Function2";
    }
}

//pemanggilan atau mapping objek class
$class_baru = new nama_class();
?>
Note : untuk mengembalikan nilai (output) pada function di class sama seperti function pada umumnya, yaitu menggunakan instruksi return. Dan untuk property agar bisa di akses oleh object di luar class harus menggunakan variabel public. Sementara method atau function tidak perlu di deklarasikan sebagai public karena default suatu function sudah bersifat public.

Entry Data Propery Class, Output Value Property, dan Output Value Method suatu Class

Untuk latihan pertama kita akan buat contoh object class tentang identitas object motor. Di class motor ini, saya buat 3 property yang merupakan ciri atau attribute dari motor yaitu pemilik, jenis dan merk. Untuk methodnya (tindakan) saya buat dua yaitu hidupkan motor dan metikan motor.

Lalu untuk menjalankan classnya, kita gunakan instruksi mappping class dengan perintah new kedalam suatu wadah variabel (disini saya membuat variabel $motor_alfa sebagai wadahnya). Setelah itu kita entry data 3 property motor masing masing valuenya. Untuk entry data kita perlu instruksi simbol panah (->) untuk mapping property mana yang ingin di entry beserta value datanya.

Untuk menampilkannya kita tetap menggunakan perintah echo. Jika yang ingin di tampilkan adalah property classnya, maka kita tinggal echo wadah variabel di ikuti dengan simbol tanda panah mapping property yang di tuju. Lalu jika yang ingin di tampilkan adalah method dari classnya, kita tinggal echo wadah variabel di ikuti simbol panah mapping ke nama function di dalam classnya. TIdak seperti menampilkan property, untuk menampilkan method atau function di dalam class ini di perlukan buka tutup kurung yang bisa di isi parameter (jika ada). 

<?php
class motor{
    //property motor
    public $pemilik;
    public $merk;
    public $jenis;
 
    //method motor
    function hidupkan_motor(){
        return "Hidupkan Motor";
    }
 
    function matikan_motor(){
        return "Matikan Motor";
    }
}

//pemanggilan objek motor
$motor_alfa = new motor();

//set propertynya
$motor_alfa -> pemilik = "Alfa";
$motor_alfa -> merk = "Honda";
$motor_alfa -> jenis = "Matic";

//tampilkan propertynya
echo $motor_alfa -> pemilik;
echo "<br>";
echo $motor_alfa -> merk;
echo "<br>";
echo $motor_alfa -> jenis;
echo "<br>";

//tampilkan method class motor
echo $motor_alfa -> hidupkan_motor();
echo "<br>";
echo $motor_alfa -> matikan_motor();
echo "<br>";

?>

<?php
echo "<center>&copy; Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?>
kira-kira hasilnya akan seperti contoh berikut.
 

Class Dengan Berbeda Objek

Jika diatas, kita hanya memapping class motor yang buat ke dalam satu object yaitu $motor_alfa. Maka kali ini kita tentu bisa membuat lebih dari satu object untuk satu class yang sama. Inilah yang di sebut kegunaan terpenting dari OOP Programming. Dimana kita bisa memanfaatkan satu class yang dibuat dengan property dan method di dalam class yang di pakai berkali kali sebagai pembuatan object baru.

Semisal disini saya ingin membuat object selain dari alfa. Disini saya buat object baru yaitu $motor_anton dan $motor_andi untuk di mapping kembali ke class motor. Untuk class motor nya disini saya hanya menggunakan satu property saja yaitu property pemilik. Jadi entry datanyanya nanti ke pemilik masing-masing kendaraan sesuai nama object yang di buat. Berikut script phpnya. 

<?php
class motor{
    //property motor
    public $pemilik;
 
    //method motor
    function hidupkan_motor(){
        return "Hidupkan Motor";
    }
}

//pemanggilan objek motor
$motor_alfa = new motor();
$motor_anton = new motor();
$motor_andi = new motor();

//set property
$motor_alfa -> pemilik = "Alfa";
$motor_anton -> pemilik = "Anton";
$motor_andi -> pemilik = "Andi";

//tampilkan objek motor
echo $motor_alfa -> pemilik;
echo "<br>";
echo $motor_anton -> pemilik;
echo "<br>";
echo $motor_andi -> pemilik;

?>

<?php
echo "<center>&copy; Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?>
kira-kira hasilnya akan seperti contoh berikut.
 

Variabel Protected

Selanjutnya yaitu variabel protected. Berbanding dengan variabel publik yang sudah di jelaskan diatas yang fungsinya bisa di akses selain di dalam class, maka ada satu variabel yang bisa di gunakan sebagai security di dalam program php, yaitu variabel protected. Variabel ini di lakukan untuk melakukan restriksi terhadap suatu variabel (property) atau suatu function (method).


Semisal disini kita ingin melakukan restriksi terhadap property pemilik di dalam class motor. Maka kita tinggal ubah deklarasi variabelnya dari public menjadi protected. Dengan melakukan restriksi ini, ketika file php di akses, maka akan muncul notifikasi error "Cannot access protected property motor" Berikut script phpnya. 
 
<?php
class motor{
    //property motor
    protected $pemilik;
 
    //method motor
    function hidupkan_motor(){
        return "Hidupkan Motor";
    }
}

//pemanggilan objek motor
$motor_alfa = new motor();
$motor_anton = new motor();
$motor_andi = new motor();

//set property
$motor_alfa -> pemilik = "Alfa";
$motor_anton -> pemilik = "Anton";
$motor_andi -> pemilik = "Andi";

//tampilkan objek motor
echo $motor_alfa -> pemilik;
echo "<br>";
echo $motor_anton -> pemilik;
echo "<br>";
echo $motor_andi -> pemilik;

?>

<?php
echo "<center>&copy; Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?>
kira-kira hasilnya akan seperti contoh berikut.
 

Untuk mengakses restriksi akses variabel protected, kita bisa menggunakan celah untuk di arahkan ke function publik. Yang dimana isi functionnya di isi dengan memappingkan ke variabel yang di protected. Jadi dengan begitu variabel yang protected tidak di akses secara langsung melainkan via function.

Semisal disini saya melakukan protected terhadap variabel pemilik dan function hidupkan_motor. Maka untuk mewakilkan variabel, disini saya mengarahkan ke function paksa_property dan function paksa_method. Berikut script phpnya. 

<?php
class motor{
    //property motor
    protected $pemilik = "Alfa";
 
    //method motor
    protected function hidupkan_motor(){
        return "Hidupkan Motor";
    }
 
    public function paksa_property(){
        return $this -> pemilik;
    }
 
    public function paksa_method(){
        return $this -> hidupkan_motor();
    }
}

//pemanggilan objek motor
$motor_alfa = new motor();

//tampilkan method motor
echo $motor_alfa -> paksa_property();
echo "<br>";
echo $motor_alfa -> paksa_method();

?>

<?php
echo "<center>&copy; Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?>
kira-kira hasilnya akan seperti contoh berikut.

 
Note : untuk mengarahkan function ke variabel atau function yang protected, kita harus menggunakan instruksi mengembalikan nilai seperti return. Instruksi return di gunakan untuk mengembalikan nilai yang sifatnya hanya untuk function itu sendiri. Jika sudah melibatkan mengembalikan nilai di luar function, maka kita membutuhkan intruksi $this yang fungsinya untuk mengembalikan nilai ke variabel atau function lain.

Instruksi Mengembalikan Nilai Return $this di dalam Function

Di note diatas sudah saya jelaskan sekilas fungsi instruksi Return $this yang digunakan untuk mengembalikan nilai ke variabel atau function lain. Instruksi mengembalikan nilai ini sering digunakan di dalam pemakaian function. Praktiknya, pemakaian $this ini juga bisa digunakan untuk menghubungkan output string biasa di function dengan variabel atau function lain.

Semisal pada kasus pemakai motor diatas tadi, ketika kita berikan output "Hidupkan Motor " namun pemilik motornya tidak di ketahui. Maka kita bisa menggabungkan variabel pemilik di dalam function hidupkan_motor. Berikut script phpnya. 

<?php
class motor{
    //property motor
    public $pemilik;
  
    //method motor
    function hidupkan_motor(){
        return "Hidupkan Motor " . $this -> pemilik;
    }
}

//pemanggilan objek motor
$motor_alfa = new motor();
$motor_anton = new motor();
$motor_andi = new motor();

//set property
$motor_alfa -> pemilik = "Alfa";
$motor_anton -> pemilik = "Anton";
$motor_andi -> pemilik = "Andi";

//tampilkan objek motor
echo $motor_alfa -> hidupkan_motor();
echo "<br>";
echo $motor_anton -> hidupkan_motor();
echo "<br>";
echo $motor_andi -> hidupkan_motor();

?>

<?php
echo "<center>&copy; Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?>
kira-kira hasilnya akan seperti contoh berikut.
 

Property Entry Data di Variabel Protected

Kembali lagi ke pembahasan tentang variabel protected, jika di atas saya mencoba value data pada variabel yang di protected di dalam property restriksi itu sendiri. Kita juga bisa memberikan value pada variabel protected dengan memanfaatkan parameter dari function yang memapping property protected tersebut. Cara nya kita tinggal mewadahkan value dalam suatu variabel yang di arahkan ke parameter suatu fungsi di dalam class itu sendiri. Berikut script phpnya. 

<?php
class motor{
    //property motor
    protected $pemilik;
 
    //method motor
    protected function hidupkan_motor(){
        return "Hidupkan Motor";
    }
 
    public function paksa_property($p){
        $this -> pemilik = $p;
        echo $this -> pemilik;
    }
 
    public function paksa_method(){
        return $this -> hidupkan_motor();
    }
}

//pemanggilan objek motor
$motor_alfa = new motor();

//tampilkan method motor
echo $motor_alfa -> paksa_property("Alfa");
echo "<br>";
echo $motor_alfa -> paksa_method();

?>

<?php
echo "<center>&copy; Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?>
kira-kira hasilnya akan seperti contoh berikut.
 

Variabel Private

Yang sudah di bahas yaitu variabel public dan protected. Maka yang terakhir yaitu variabel private. Seperti namanya, variabel private berarti privasi. Variabel private digunakan untuk memberikan suatu variabel ke dalam mode private. Artinya jika suatu variabel private di deklarasi di dalam class, maka variabel tersebut tidak bisa di akses dari luar class maupun dari turunan class itu sendiri.


Untuk implementasinya disini saya membuat class kendaraan dengan turunan class nya motor. Dimana class motor ini memapping variabel private dari induknya di class kendaraan tentang property jenis_kendaraan. Di latihan ini saya buat dua cara yang berbeda untuk menampilkan variabel private. Yaitu dari class yang mengelola variabel private (class kendaraan) dan class dari luar class kendaraan, dalam hal ini saya buat class turunan yaitu class motor.

Untuk membuat class motor dengan induk class kendaraan, kita bisa menggunakan instruksi extends. Dan tentu disini kita masih menggunakan instruksi return $this sebagai perintah untuk mengembalikan nilai ke mapping suatu variabel lain. Berikut script phpnya. 

<?php
// buat class kendaraan
class kendaraan{
 
    //property dengan hak akses privasi
    private $jenis_kendaraan = "matic";
 
    public function tampilkan_jenis(){
         return $this -> jenis_kendaraan;
    }
}

// buat class turunan motor
class motor extends kendaraan{
    public function tampilkan_jenis(){
        return $this -> jenis_kendaraan;
    }
}

//buat objek dari class motor
$kendaraan_baru = new kendaraan;
$motor_baru = new motor;

//menjalankan method dari class kendaraan
echo $kendaraan_baru -> tampilkan_jenis();
echo "<br>";

//menjalankan method dari class motor
echo $motor_baru -> tampilkan_jenis();

?>

<?php
echo "<center>&copy; Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?>
kira-kira hasilnya akan seperti contoh berikut.
 

Note : dengan menggunakan variabel yang bersifat private, sekalipun itu adalah keturunan classnya sendiri. Maka jika variabel di deklarasi private tidak bisa di akses siapapun kecuali oleh class itu sendiri.

Instruksi Return Parent :: Value_Mapping

Masuk ke pembahasan instruksi selanjutnya yaitu instruksi return parent. Instruksi ini digunakan dalam kondisi tertentu saja dengan catatan instruksi ini di jalankan di class turunan. Fungsi instruksi ini hampir sama penggunaannya dengan instruksi return $this. Bedanya instruksi ini di jalankan jika suatu mapping pada method memiliki nama property atau nama method yang sama.

Semisal disini saya membuat nama function lihat_spec pada class kendaraan dengan value "A". Lalu di class turunannya saya membuat lagi function dengan nama yang sama yaitu lihat_spec dengan value yang berbeda "B". Otomatis, nilai value dari function lihat_spec akan memilih data value yang terbaru yaitu function di class turunannya yang memiliki value "B". Jika kita menggunakan instruksi return $this pada kondisi seperti ini, maka otomatis hasil outputnya akan menghasilkan value "B".

Untuk melakukan output dari value induk classnya, kita bisa menggunakan instruksi "return parent :: value_mapping". Berikut contoh script phpnya. 

<?php
// buat class kendaraan
class kendaraan{
 
    public function lihat_spec(){
        return "Spec kendaraan : Motor, Honda, Matic, 125cc";
    }
}

// buat class turunan motor
class motor extends kendaraan{
    public function lihat_spec(){
        return "Spec kendaraan : Motor, Yamaha, Matic, 125cc";
    }
 
    public function lihat_spec_kendaraan(){
        return parent :: lihat_spec();
    }
}

//buat objek dari class motor
$motor_baru = new motor;

//menjalankan method dari class kendaraan
echo $motor_baru -> lihat_spec();
echo "<br>";

//menjalankan method dari class motor
echo $motor_baru -> lihat_spec_kendaraan();

?>

<?php
echo "<center>&copy; Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?>
kira-kira hasilnya akan seperti contoh berikut.
 

Demikian penjelasan mengenai Object Oriented Programming (OOP) di php. Semoga bermanfaat bagi pembaca. Sekian dari saya, jika ada yang ingin di tanyakan bisa letakkan komentar di bawah. Terima kasih sudah berkunjung, sampai berjumpa di pembahasan berikutnya. Salam programming!!

0 komentar:

Post a Comment

Kenal Saya

Follow My Twitter

Profil



Nama saya Alfa Farhan Syarief, web ini ada berdasarkan nama saya sendiri. Saya sendiri masih duduk tingkat SMK. Lebih lengkapnya saya masih bersekolah di SMKN 1

More »

Blog Archive

Recent Comment