PHP Programming 6 - Object Oriented Programming (OOP) di PHP
Assalamu'alaikum
Object Oriented Programming
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(); ?> |
Entry Data Propery Class, Output Value Property, dan Output Value Method suatu Class
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>© Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?> |
Class Dengan Berbeda Objek
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>© Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?> |
Variabel Protected
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>© Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?> |
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>© Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?> |
Instruksi Mengembalikan Nilai Return $this di dalam Function
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>© Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?> |
Property Entry Data di Variabel Protected
<?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>© Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?> |
Variabel Private
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>© Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?> |
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
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>© Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>" ?> |