Konsep Dasar PHP OOP


PHP merupakan bahasa pemrograman yang cukup banyak digunakan untuk membuat web dinamis. Seiring perjalanan waktu PHP terus dikembangkan dan PHP sejak versi PHP 5 telah mendukung Object Oriented Programming atau OOP secara penuh.

Di PHP Object di sini didefinisikan dalam sebuah class. Kemudian Properti object didefinisikan menggunakan kata yang tersisipi var. Sedangkan method dari object berbentuk sebuah function.

Agar artikel ini tersusun dengan rapi, saya membuat daftar isi untuk mempermudah dalam mempelajari PHP OOP ini.

Daftar Isi

Class dan Object

Class merupakan struktur dasar atau sebuah kerangka yang digunakan untuk membentuk sebuah object. Sedangakan Object adalah instance dari class-nya, dengan demikian object itu bisa dikatakan data yang telah terstruktur sesuai dengan yang didefinisikan dalam sebuah class. Jadi di PHP jika Anda ingin membuat object Anda harus mendefinisikan kata class kemudian nama class-nya dibuka dan ditutup menggunakan kurung kurawal {}.Contoh

class Makanan{ }

Dan object diimplementasikan dengan variabel dan dikuti kata new kemudian baru nama class-nya. Contoh

$makanan = new Makanan;

Aturan penulisan class adalah Anda boleh menuliskan dengan semua karakter alfabet (abcde s/d z) baik kapital ataupun bukan kapital dan juga karakter underscore ( _ ). Class tidak boleh ditulis dengan numerik (penomoran) kecuali disisipkan diawal dengan karakter alfabet dan class juga tidak boleh ditulis dengan karakter spesial seperti (!?&*;/-{}<> dan lain sebagainya).

Contoh

//penulisan class yang valid
class Person {}
class biNataNg {}
class __construct{}
class produk123{}

//penulisan class yang invalid
class 123{}
class pak-jaya{}
class Sutimin&amp;Wagimin{}

Property

Property dalam suatu class atau object didefinisikan dengan variable. Penulisan variable di dalam class sama seperti penulisan di variable biasa dengan tanda dolar ($), hanya saja variable dalam class Anda harus menyisipkan kata var sebelum dari variable-nya, jika tidak maka akan error di PHP Anda.

Contoh

class Person{var $first_name; // ini adalah sebuah Property }

Untuk mengimplementasikan Property Anda cukup menulis object dikuti tanda panah -> kemudian langsung nama property-nya tanpa tanda dolar.

Contoh

$rahman = new Person();
$rahman->first_name; // tanpa tanda dolar
//jika Anda menuliskannya seperti ini maka akan error
$rahman->$first_name

Di dalam Property Anda bisa menuliskan default value. Jika property ditulis tanpa default value, maka secara otomatis default value bernilai NULL atau kosong. Contoh

class Person{
  var $first_name; //default value bernilai NULL
  var $last_name = NULL; //sama seperti propery first_name
  var $age = 18; // default value bernilai 18
}

Dalam penulisan default value ada aturan cara pemberian nilainya Anda boleh memberi nilai atau value dengan NULL, boolean, Integer, double, dan String. Anda tidak boleh memberi nilai atau value dengan operator (x+/-), concat, research, global variable, dan tipe data object. Contoh

//Property yang valid
class Person{
  var $valid1 = "Data 1" // string
  var $valid2 = 15 // Integer
  var $valid3 = True; //boolean
  var $valid4 = NULL
  var $valid5 = 1.5 //double bernilai 1,5
}

//Property yang invalid
class Person{
  var $invalid1= 1+1; //operator
  var $invalid2= 'pak' . 'jaya'; //concat
  var $invalid3= new Makanan; // object
  var $invalid4= substr("Data Mahasiswa",0,4); // research
  var $invalid5= $_POST['username']; // global variable
}

Function

Function artinya fungsi, function digunakan untuk mendeklarasikan kode yang terdapat dalam sebuah class. Cara penulisan function cukup menulis function kemudian nama function-nya, dengan atau tanpa method function kemudian tanda kurung () diawali dan diakiri dengan kurung kurawal {}.

Seperti sifatnya dalam logika pemerograman Function itu bisa mengembalikan nilai data (callback). Jika Anda ingin mengembalikan nilai data (callback) dari suatu function, Anda harus meletakan kata return kemudian nilainya. Function jika tidak diberikan callback maka function akan otomatis mengembalikan nilai enol (0)

Contoh

class Makanan{
 function buahan(){//tanpa method function
    //tanpa callback
 }
 function sayuran(){ //tanpa method function
  return "Sayur Asem"; // dengan callback
  }
 function pilih_makanan($nama_makanan){ //dengan method function
 return $nama_makanan; //dengan callback dari variable method function
 }
}

Dalam pengembalian nilai (callback) di function, Anda bisa menggunakan tipe String, Integer, Boolean, NULL, Concat, Operator, Variable, dan Reseach atau pengembalian nilai dari function lainnya. Contoh

class Person {
   function get_name($name);{
     return $name; //variable
  }
  function get_full_name($firstname,$lastname){
   return $firstname . $lastname; //Concat
  }
  function substr_name($name,$start,$length){
   return substr($name,$start,$length); // research atau mengambil nilai dari fungsi lain
  }
  function is_young(){
   return true; //boolean
  }
  function who_is(){
   return "Mahasiswa"; //String
  }
  function get_number(){
   return 1+3; // Integer sekaligus Operator
  }
}

Cara Mengimplementasikan function, sama dengan Anda mengimplementasikan property/variable, hanya saja perbedaannya, pada function wajib Anda tambahkan tanda kurung dua (), jika tidak maka PHP akan mengaggap itu adalah property/variable.Contoh

class Person{
  var $ini_property;
  function ini_function(){
  }
}
$ira=new Person;
$ira->ini_property; // Implementasi property
$ira->ini_function(); // Implementasi function harus menambahkan tanda ()

Visibility Keyword

Visibility keyword adalah sebuah kata kunci keberadaan dari sebuah property/variable dan function, di mana akan berfungsi setelah Anda implementasikan baik dalam class itu maupun dalam luar class. Visibility keyword itu berupa kata public, protected atau private yang disisipkan di awal function atau property/variable. Jika Anda ingin mendefinisikan property/variable dengan menyisipkan kata var sebelum nama variable tersebut maka Anda tidak boleh menyisipkan Visibility keyword karena itu akan membuat PHP Anda menjadi error, kata var itu sudah otomatis sama dengan public. Sedangkan function ada atau tanpa public akan otomatis dikenal sebagai public, tetapi jika Anda ingin menidentifikasikan function sebagai private atau protected, Anda wajib menyisipkan visibility keyword-nya.

Contoh

class Makanan{
 var $SayurAsem; //Var sama dengan Public
 public $Tempe; //Bisa diakses di dalam,luar class dan bisa diawariskan.
 private $Sayur; //Hanya bisa diakses di dalam Class dan tidak bisa diwariskan.
 protected $Telur; //Hanya bisa diakses dan diwariskan di dalam Class

 function nama_makanan(){ //Ada atau tanpa public otomatis dikenal Public
 }

 private function nama_bahan_makanan(){
 }

 protected function jenis_sayuran(){
 }
}

Public artinya umum, jadi attribute public dapat diakses dari dalam, luar dan class turunan (sumber: roes-wibowo.com). Function tanpa ada visibility keyword berupa public akan otomatis mempunyai attribute atau visibility keyword berupa public. Artinya Anda boleh menyisipkap atau tidak menyisipkan kata public sebelum kata function.

Contoh

class Person{
   public function get_firstname($fullname){
      return substr($fullname,0,6);
   }
   function get_lastname(){ // visibility sama seperti di atas yakni public
  }
}
$rohim = new Person;
$rohim->get_firstname('rohim'); //bisa di deklarasikan karena PUBLIC
$rohim->get_lastname(); //bisa di deklarasikan karena PUBLIC juga

Private artinya khusus, attribute ini hanya dapat diakses dari dalam class dan tidak berlaku untuk pewarisan (inheritance). Berikut contoh penggunaan private:

class Mobil{
 private $no_mesin;

 private function get_no_mesin(){
  return $this->no_mesin;
 }

}
 class Bus extends Mobil{
  private function no_mesin(){
   return parent::get_no_mesin(); //ini akan error sebab tidak bisa diwarisi
  }
 }

 $bis=new Bus;
 echo $bis->no_mesin(); //error function tidak dapat dibaca

Protected artinya diproteksi, attribute ini dapat diakses dari dalam class dan class pewarisnya (inheritance) saja. Berikut contoh penggunaan protected:

class Mobil{
 protected $no_mesin;

 protected function get_no_mesin(){
  $this->no_mesin="V8";
  return $this->no_mesin;
 }

}
 class Bus extends Mobil{
  function no_mesin(){
   return parent::get_no_mesin();
  }
 }

 $bis=new Bus;
 echo $bis->no_mesin();
 $sedan=new Mobil;
 echo $sedan->get_no_mesin(); //error tidak bisa tampilkan karena tidak berada dalam class

Pewarisan (Inheritance)

Dalam PHP OOP dikenal sistem Inheritance atau pewarisan, yang dimaksud dengan Inheritance adalah sebuah pewarisan class (parent) ke class baru (child) yang mewakili semua function yang ada di class utama (parent). Inheritance berfungsi untuk membuat class baru tanpa harus membuat kembali class yang sama, maksudnya?.Fungsi inheritance akan berguna sekali jika Anda menggunakan Framework PHP, Anda tidak perlu lagi menulis ulang code classnya, cuma di wariskan saja.

Contoh Pewarisan (Inheritance):

class Mobil{
 private $no_mesin;

 private function get_no_mesin(){
  return $this->no_mesin;
 }

}
 class Bus extends Mobil{
  function no_mesin(){
   return parent::get_no_mesin();//mengambil nilai dari Parrent Class nya
  }

Oke Next, nanti akan saya sambung pada bagian artikel selanjutnya dadah semoga bermanfaat.