Rabu, 06 Desember 2017

Pngenalan OOP

Saat mempelajari OOP, Anda akan mengenal tentang : 

1. Encapsulation (Pembungkusan)
Encapsulation merupakan sebuah karateristik OOP dimana program terbungkus (menjadi satu) data (property/field) dan prilaku (fungsi/method), artinya lebih memperhatikan aspek internal daripada aspek insternal

2. Polymorphison (Banyak Bentuk)
Polymorphison merupakan suatu karakter OOP dimana objek yang berbeda dapat memakai method dengan nama yang sama pada suatu class

3. Inheritance (Turunan)
Inheritance merupakan suatu karakteristik OOP dimana class (parent class/base class) dapat diturunkan ke class yang lain (child class/derived class) sehingga class anak dapat memiliki data atau perilaku dari orang tuanya

Sintak-Sintak OOP

OOP pada PHP sama seperti konsep OOP pada biasanya, yaitu ada Class, Object, Property, Method, Inherintace, dan lain-lain
1. Class
class bila di ibaratkan adalah pembungkus untuk atribut/
property dan method dalam OOP. Adapun cara penulisan class adalah sebagai berikut :
class Manusia {
//Property dan method ditulis disini 
}

Pada kode tersebut, kita membuat sebuah class bernama manusia yang akan menjadi tempat property dan method yang akan dibuat, cara penulisan class adalah dengan menggunakan huruf besar di awal.

2. Object
Setelah kita membuat class, kita akan berbicara tentang object. object digunakan untuk suatu object berdasarkan class. Kalau di ibaratkan class adalah cetakan dan object adalah hasil jadinya. contoh class adalah manusia maka object adalah manusia itu sendiri , contoh nama manusia.

class Manusia {
//Property dan method ditulis disini 
}
$mazdan = new Manusia(); //Object
cara penulisan object adalah dengan cara membuat variabel dan mengetikan sintak new

3. Access Modifer
access modifer adalah hak akses yang ada di OOP. Hak Akses yang ada pada OOP ada tiga yaitu :

a. Public 
Ketika Property/Method memiliki hak akses public, maka property/method tersebut bisa diakses di luar class bisa berlangsung di akses dari object.(untuk penjelasan property, method dan turunan ada dibawah

b. Protected
Ketika Property/Method memiliki hak akses Protected, maka property/method hanya bisa di akses didalam class dan aka diturunkan ke class turunan nya, , property/method tersebut tidak bisa di akses secara langsung dari object/ di luar class

c. Private
Ketika property/method memiliki hak akses private, maka property/method tersebut tidak bisa diakses di luar class dan juga tidak akan di turunkan kepada class turunan nya

4. Property 
Property adalah sebuah variable yang ada di dalam class. kalau di ibaratkan sebagai manusia , property adalah segala sesuatu yang ada pada tubuh nmanusia , seperti mata, telingan , mulut hidung, tangan, kaki, dan sebagai nya

adapun cara penulisan property adalah dengan menuliskan hak akses/access modifier , lalu buat nama variable/propertynya contohnya:

class Manusia {
public $tangan;
public $nama;
}
 $mazdan = new manusia();
$tangan dan $nama adalah property yang ada dalam class Manusia, property $nama dan tangan memiliki hak akses public, artinya bisa diakses secara langsung dari object. Contohnya:
class Manusia {
public $tangan;
public $nama = "mazdanang";
}
 $mazdan = new manusia();
echo $mazdan->nama;
Kira menampilan isi dari $nama yang ada di class Manusia, maka hasilnya "Aji Kamaludin";

5. Method
Method adalah fungsi yang ada di dalam class. method ini bila di ibaratkan dalam object, contoh manusia , method adalah apa saja hal yang bisa dilakukan oelh manusia, contohnya seperti makan, minum, berjalan, melihat , dan lain-lain

Adapun cara penulisan method adalah hak akses dari fungsi, lalu tulis fungsinya. contoh sebagai berikut :
class Manusia {
 public function membaca(){
                   echo "manusia membaca buku"; 
                                            }
$mazdan = new Manusia();
$mazdan->membaca(); 
Dalam class, kita membuat method membaca, karena memiliki hak akses public, maka membaca bisa dipanggil dari luar class, apabila dijalankan hasilnya adalah "manusia membaca buku".

6. Setter and Getter
Setter adalah method yang digunakan untuk memasukan data ke dalam property, sedangkan Getter adalah method yang digunakan untuk mendapatkan data.

Fungsi dari setter dan getter adalah untuk memasukan dan mendapatkan data dari property yang memiliki hak akses private/protected.adapun contoh setter dan getter:

class Manusia {
private $nama
public function setNama($nama){                //contoh dari setter
                         $this->nama = $nama;
                                                   }
public function getNama(){                         // contoh dari getter
                         return $nama;
                                                  }
}
$mazdan = new Manusia();
$mazdan->setNama('mazdan');                                 // memanggil setter
echo $mazdan->getNama();                               // memanggil getter
7.Variable this 
variable this($this) adalah sebuah variable yang menandakan kalau property atau method berada dalam class tersebut. Contohnya:

class Manusia{
private $nama
public function tampilkanNama(){
                         echo $this->nama;                //contoh dari penggunaan $this
                                                      }
}
8. Constructor
Constructor adalah salah satu method bawaan dari OOP PHP dalam class Constructor adalah fungsi yang paling pertama dijalankan ketika object dibuat. constructor harus memiliki hak akses public.

Adapun cara penulisan constructor adalah dengan menuliskan __construct() contohnya:

class Manusia{
public fungtion __construct(){
                       echo "Fungsi Construct dipanggil";
                                               }
}
// fungsi __construct dipanggil ketika object ini dibuat
$aji = new Manusia();

Maka hasil dari kode tersebut adalah "Funsing Construct dipanggil".

9. Destructor
Destructor adalah salah satu method bawaan dari OOP PHP dalam class Destructor adalah fungsi yang paling akhir dijalankan ketika semua kode sudah dijalankan. Destructor hrus memiliki hak akses publik

adapun cara penulisan destructor adalah dengan menuliskan __destruct();, contoh penulisanya :
class Manusia {
public function __destruct(){
                       echo ""Fungsi Destruct dipanggil";
                                           }
}
$mazdan = new Manusia();
echo "hallo<br>";
echo "tampil ke dua<br>";
// fungsi destruct di panggil paling akhir file
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 di ibaratkan seperti manusia, maka anak akan memiliki bawaan dari orang tua, baik itu sifat maupun penampilan. apabila orang tuanya warna kulitnya hitam maka anaknya kemungkinan besar punya kulit hitam.

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 funvtion tampilkan(){
       echo "Warna rambutnya adalah :".$this->rambut;
                                            }

}

class Anak extends OrangTua{

}

$mazdan = new Anak();
$mazdan->tampilkan();

Maka hasilnya adalah "Warna rambutnya adalah : hitam", karena class anda memiliki property bawaan $rambut dan memiliki fungsi bawaan tampilkan(). Apabilatidak 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{

protected $rambut = "Merah";

public function tampilkan(){

                     echo "rambutnya: ".$this->rambut;

                                       }

}
Maka hasilnya adalah "Rambutnya Merah";

11. 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 menggunakan abstract class, contohnya sebagai berikut:

abstract class MakhlukHidup {
protected $mata = 2;
public function tampilkan(){
                         echo "Manusia memiliki ". $this->mata."Mata";
                                            }
}
class Manusia extends MakhlukHidup{
}
$mazdan -> new Manusia();
$mazdan->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.

12. 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 interface yang digunakan, cara penggunaan dari interface adalah dengan "implements".

Apabila di ibaratkan dalam kehidupan 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 melalukan override di property atau method yang ada di interface , maka akan terjadi error. adapun contoh penggunaan interface sebagai berikut ;

interface Sopan {
public function menyapa();
                        }
class Manusia implements Sopan(){
public function menyapa() {
                        echo "Halo apa kabar ?";
                                           }
}
 $mazdan = new Manusia();
$mazdan -> menyapa();

Apabila class manusia tidak membuat method menyapa(), maka akan terjadi error. hasilnya adalah "Halo apa kabar ?".

13. Scope Resolution Operator
Scope Resolution Operator adalah cara pemanggilan property/method dari class secara langsung tanpa perlu membuat sebuah object.

adapun cara penggunaannya adalah dengan menulis :: diantara class dan property/method yang dipanggil, Class::method() atau Class::property. contoh penggunaan dari resolution adalah sebagai berikut :
class Manusia {
   public function menyapa(){
                 echo "Hallo apa kabar ?";
                                             }
}
Manusia::manyapa();

maka hasilnya adalah "Hallo apa kabar ?".

14. Self Keyword
self keyword digunakan untuk memenggil property/method milik dirinya sendiri. cara penggunaanya menggunakan self::method(), contohnya sebagai berikut ini:

class OrangTua{
public function tampilkan(){
          self::tempat();
          $this->tempat();
                                            }
public function tempat(){
        echo "ini fungsi orangtua<br>";
                                       }
}
class Anak extends OrangTua{
         public function tempat(){
                   echo "ini fungsi anak<br>";
                                                 }
}
$mazdan = new Anak();
$mazdan->tampilkan();

Maka hasilnya adalah:
"ini fungsi orangtua
ini fungsi anak"
jadi fungsi self:: tersebut adlah untuk membaca method yang ada di class dimana self:: itu dipanggil

15.Parent Keyword
Parent Keyword digunakan untuk memanggil property atau method milik parent dari suatu class, cara penggunaanya menggunakan parent::method();

Dengan adanya parent keyword ini, kita bisa memanggil fungsi asli dari parent class/master class, walaupun fungsi itu sudah di override oleh class child/sub-class. contoh penggunaanya sebagai beikut:

class OrangTua{
public function tempat(){
           echo "ini fungsi orang tua<br>";
                                        }
}
class Anak extends OrangTua{
public function tampilkan(){
           parent::tempat();
           $this->tempat();
                                            }
public function tempat(){
            echo "Ini fungsi anak <br>";
                                        }
}
$mazdan = new Anak();
$mazdan->tampilkan();

maka hasilnya akan :
"ini fungsi orangtua
ini fungsi anak"
jadi fungsi parent:: tersebut adalah untuk membaca method yang ada di class parent dari class anak.

Sumber : Buku Lokomedia - Bikin Framework PHP sendiri dengan teknik OOP & MVC , David Naista, Blog Mas Aji

Tidak ada komentar:

Posting Komentar