Belajar OOP PHP (Part 1)

OOP (Object Oriented Programming) merupakan teknik programming masa kini yang lebih menekankan bagaimana kita berfikir objektif “object”.  Jika kita telah terlebih dahulu megenal java maka saya rasa tidak begitu kesulitan memahami OOP Pada PHP, Walaupun ada beberapa perbedaan. Hanya saja kita sedikit menyesuaikan bagaimana penggunaan konsep OOP diterapkan pada PHP. Pada dasarnya OOP mempunyai basic yang sama disemua programming language. Nah pertanyaanya kenapa masih banyak juga yang masih menggunakan prosedural ? Sementara PHP sendiri sudah imrove OO (Object Oriented) sejak PHP4 dan PHP5.xx Penyempurnaannya.

Ini karena banyak dari kita terbiasa prosedural dan untuk pindah ke OO biasanya sedikit kesulitan. Dan beberapa programmer yang biasa prosedural biasanya mereka coding yang berbasis OOP masih serasa prosedural. Beberapa pilar utama OOP seperti encapsulation, polymorphism, inheritance.

Itu sebagian utama konsep OOP, Anda harus benar-benar matang kuasai dan pahami konsep OO nya, jika setengah setengah nanti akan kesulitan. Jangan setengah-setengah kalo belajar, sama akarnya sekalian. 😛 Mari kita bahasa sedikit demi sedikit. Nanti juga jadi bukit. 😀

Encapsulation, merupakan suatu teknik untuk menyembunyikan sebuah informasi yang tidak boleh diketahui dari sisi user. Lalu apa yang disembunyikan? Ya tentu data dan fungsi yang saling berhubungan satu dengan yang lain.

Polymorphism, Sebuah fungsi yang berada pada kelas induknya. Jika kita menurunkan beberapa kelas turunan yang berbeda, maka setiap objek dari kelas turunan tersebut akan mengalses fungsi yang sama.

Inheritance, atau pewarisan, lebih singkatnya dimana suatu class induk dapat mempunyai banyak turunan dan mewarisini semua sifat dari induknya.

contoh cara pembuatan class

Contoh:

<?php

class Manusia{

//atribut

//metode

}

?>

Contoh pedifinisian properti/atribut:

<?php

class Manusia{

// ini properti/atribut

private $nama;

private $umur;

protected $alamat;

//ini metode

public function jalan(){

//do something..

}

}

?>

Dimana kita lihat disana ada visibility private, public dan ada juga protected. Visibility public, ini jelas bisa diakses dari luar kelas dan tidak ada batasannya. Visibility private , hanya kelas itu sendiri yang boleh mengaksesnya diluar kelas tidak bisa. Visibility protected, hanya turunannya saja yang boleh akses. Ketiga tersebut tergantung kebutuhan kita dalam penggunaannya

Lalu ada juga construct, dan destruct.

Fungsinya jika construct itu jika pertama dijalankan makan yang pertama kali dibaca adalah construct

dan destruct kebalikannya, sebagai pembersihan objek.

Contoh:

<?php

class Manusia{

function __construct(){

echo “ini konstruktor”;

}

function __destruct(){

echo “ini destruct”;

}

}

?>

Contoh lengkapnya :

Misalnya kita punya class manusia dan manusia mempunyai atribut nama, alamat, umur dsb.

Lalu manusia punya metode makan, jalan dsb.

File : Manusia.php

<?php

class Manusia{

private $nama;

private $alamat;

private $umur;

//constructor

function __construct($nama, $alamat, $umur){

$this->nama = $nama;

$this->alamat = $alamat;

$this->umur = $umur;

}

//setter dan getter

public function getNama(){

return $this->nama;

}

public function setNama($nama){

$this->nama = $nama;

}

public function getAlamat(){

return $this->alamat;

}

public function setAlamat($alamat){

$this->alamat = $alamat;

}

public function getUmur(){

return $this->umur;

}

public function setUmur($umur){

$this->umur = $umur;

}

}
//membuat objek
$rifki = new Manusia("rifki","bandung",100);
echo $rifki->getNama()  . "<br />";
echo $rifki->getAlamat(). "<br />";
echo $rifki->getUmur()  . "<br />";
?>

Ada cara lain untuk mengakses dari file diatas kita buat file baru dengan menggunakan fungsi __autoload(). Sebenarnya membuat satu file diatas juga bisa seperti contoh diatas, tapi coba juga deh ini. 😀

File : tampil_manusia.php

<?php

//fungsi penggunaan autoload untuk

//mengurangi akibat banyak file yang di include/require dari berbagai file,

//maka solusinya menggunakan __autoload()

function __autoload($myClass){

require_once $myClass . '.php';

}

//membuat objek

$rifki = new Manusia("","","");

$rifki->setNama("Muhamad Rifki");

$rifki->setAlamat("Majalengka");

$rifki->setUmur(21);

printf ("Nama : %s <br />", $rifki->getNama());

printf ("Alamat : %s <br />", $rifki->getAlamat());

printf ("Umur : %d <br />", $rifki->getUmur());

?>

Seperti yang disinggung diatas mengenai ada perbedaan di java dan PHP, Ini akan dibahas pada part 2, Hanya sedikit intro aja untuk memahaminya.

Fungsi overloading di java dapat membuat fungsi lebih dari satu dengan nama fungsi yang sama tetapi punya jumlah parameter berbeda, Sedangkan di PHP Buka seperti itu fungsinya untuk overloading, Di PHP sebagai solusi mengatasi permasalahan yang sifatnya dinamis, dan yang perlu di catat jangan gunakan static di overloading, karena PHP tidak mengijinkan hal itu.

Lanjut ke Belajar OOP PHP Overloading (Part 2)

  • Nano

    nice info gan.. thanks 🙂

  • najeeb

    thank’s untuk sharingnya gan

  • endip

    mantap gan