Monday, 30 July 2012

[PHP] - Belajar OOP PHP *Part I*

OOP (Object Oriented Programming) merupakan teknik programming masa kini yang lebih menekankan bagaimana kita berfikir objektif.

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 setenga-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:







<?phpclass Manusia{//atribut//metode}?>
Contoh pedifinisian properti/atribut:

<?phpclass Manusia{// ini properti/atributprivate $nama;private $umur;protected $alamat;//ini metodepublic function Jalan(){//do something..}}?>
Dimana kita lihat disana ada vistibility 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
<?phpclass Manusia{private $Nama;private $Alamat;private $Umur;//constructorfunction __construct($nama, $alamat, $umur){$this->Nama = $nama;$this->Alamat = $alamat;$this->Umur = $umur;}//setter dan getterpublic 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",21);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 : tampilManusia.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());?>
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.

sumber : http://blog.rifkilabs.net/belajar-oop-php-part-1.html

No comments:

Post a Comment