OOP Pada PHP (Part 1)

Pembahasan mengenai dasar pemrograman OOP pada PHP

(Rakhmad Maulidi)


Senin Pon, 18 September 2006

OOP Pada PHP (Part 1)

Pada artikel ini akan saya jelaskan implementasi OOP pada PHP. Saya tidak akan menjelaskan secara detail tentang konsep dasar OOP, mungkin bisa anda lihat di artikel lainnya. PHP sudah mendukung OOP mulai versi 5, yang mempunyai bentuk pemodelan object yang baru untuk mengatasi kompleksitas masalah yang tidak bisa dilakukan pada versi sebelumnya. PHP 5 memberikan performa yang lebih baik dan fitur baru dibandingkan versi sebelumnya.

Kelas / Class

Setiap pendefinisain/deklarasi sebuah kelas pada PHP menggunakan class yang diikuti nama kelas, kemudian diikuti tanda '{' dan diakhiri dengan tanda '}' kita bisa memberikan sembarang nama sebuah kelas, selama tidak sama dengan fungsi yang dimiliki PHP. contoh, class print. nama kelas print tidak bisa kita gunakan, karena print adalah fungsi dimiliki oleh PHP. Kita bisa memuat/mendefinisikan properti kelas dan methode kelas di antara tanda "kurung kurawal". variable $this adalah sebuah variable samaran yang digunakan untuk memanggil sebuah propertis atau methode sebuah kelas. Contoh berikut akan lebih memperjelas tentang kelas pada php

class orang{#kelas orang
#Properties Class
  var $nama;
  var $umur;
  var $tinggi;
  var $berat;

function orang (){#Constructor
  echo "Initialisation Object";
}

function get_nama(){
  return $this->nama;
}
}#end class

pada contoh di atas saya membuat sebuah kelas dengan nama orang. Kelas tersebut memiliki propertis nama, umur, tinggi dan berat. Fungsi orang adalah sebuah constructor dari kelas orang, contstructor tersebut akan dijalankan ketika kita membuat sebuah object orang.

Properti kelas

Properti kelas kelas merupakan sebuah identitas/karakter khusus sebuah kelas, contoh Orang pasti memilki tinggi dan berat. Tinggi dan berat tersebut adalah sebuat properti. pada contoh kelas orang di atas mempunyai properti nama, umur, tinggi dan berat. Untuk memberikan nilai dari properti sebuah kelas kita tidak bisa menggunakan cara langsung, seperti memberikan nilai pada sebuah varible. Contoh, misalkan kita akan memberikan nilai pada variable properti nama dengan value "Rakhmad maulidi", untuk memberikan value pada properti kelas kita menggunakan variable $this, Untuk mengakses/menggambil value properti sebuah kelas juga menggunakan variable $this Contoh berikut akan lebih memperjelas tentang cara memberikan value properti kelas pada PHP

$nama="Rakhmad Maulidi";//
$this->nama="Rakhmad Idiluam";//

echo "$nama";//result : Rakhmad Maulidi
echo $this->nama;//result : Rakhmad Idiluam

cara di atas bisa kita jadikan dalam bentuk function berikut :

function set_nama($nama){
  $this->nama=$nama;
}

function get_nama(){
  return $this->nama;
}

Methode/Behavior Kelas

Methode/Behavior Kelas adalah fungsi-fungsi apa yang bisa dilakukan oleh object. Misalkan pada kelas orang bisa melakukan makan, tidur, berjalan. Contoh berikut akan lebih memperjelas tentang cara memberikan methode/behavior kelas pada PHP

function makan($is_makan)
{
  if ($is_makan){
      $mkn = "sedang makan";}
  else{
      $mkn ="sudah makan";
  }
  return $mkn;
}

function tidur($is_tidur)
{
  if ($is_tidur){
      $tdr= "sedang tidur";}
  else{
      $tdr="sudah bangun";
  }
  return $tdr;
}

Nah, setelah intermezzo yang saya sampaikan di atas, sekarang waktunya coding yang lebih kongkrit tentang OOP pada PHP. Untuk membuat object dari sebuah kelas kita menggunakan notasi new, contoh

$rahmat = new orang;
$andi = new orang;
$ali = new orang;

Pada contoh tersebut saya membuat tiga object orang yaitu $rahmad, $andi dan $ali. Masing object akan memiliki properti sendiri-sendiri, misalkan saya akan membeikan value "Rakhmad Idiluam" dari properti nama dari object $rahmad, dan pada object lainnya:

$rahmad->set_nama("Rakhmad Maulidi");
$andi->set_nama("Andi Malarangeng");
$ali ->set_nama("Ali bin Abu Tholib");

Untuk mendapatkan value dari masing properti name dari object kita bisa melakukan cara berikut:

$rahmad->get_nama();
$andi->get_nama();
$ali->get_nama();

untuk penggunaan methode atau behavior pada object kita bisa melakukan cara berikut:

$rahmad->tidur(true);
$andi->makan(true);
$ali->get_nama(false);

Berikut contoh scriptnya (download)

Daftar Komentar

jaylangkung

jaylangkung@...  Selasa Pahing, 17 Oktober 2006
kalo bikin klas nya paging gimana ya mas rahmat?

masaris

masajihad@...  Selasa Pahing, 17 Oktober 2006
ikut koment nich,,, kalo sampe sekarang ada ga php yg murni oop ? trus saya punya kendala dalam oop terkadang saya harus multiple inherits dimana sampe dengan saat ini saya belum ketemu sama yang support hal ini... Kalo ada yg tahu...minta tolong ya... Thk Wass

idiluam

idiluam@...  Rabu Pon, 18 Oktober 2006
Php sampai versi yang terbaru masih belum mendukung multi inherent seperti C++. bahkan java yang murni oop belum mendukung multi inherent, kalo ngak salah kalo di java ngakalinya pakek class abstract. aku googling & ngoprek dulu ya...sapa tau di php bisa diakali juga sama seperti java

galih dtc

kurang_kerjaan_bgt@...  Jum'at Legi, 10 November 2006
ga taek taekan programe koyo entut ga iso di gawe megelno
Aryo:

Wah, seperti peribahasa, buruk muka cermin dipecah ;))

Ya ndak boleh begitu lah. Kalo ada kendala bukannya mending ditanyakan saja.
Aku nyoba download, dan menjalankannya, berhasil dengan sukses kok.

Jadi, masalahnya di mana nih?

idiluam

idiluam@...  Jum'at Legi, 10 November 2006
enktesinya yang salah mas, coba direname jadi .php dari .htm bisa dijalanin, karena mungkin yang di attachment ama mas aryo extensi .htm.
Aryo:

Yang aku upload sudah .php, dan jika didownload dari Firefox atau IE, jadinya tetep .php.
Cuma kalo didownload dari Opera maka ekstensinya jadi .htm.
Jadi, kesalahan ada pada ... ah, sudahlah ;)

Jadi, silakan script attachnya direname jadi .php bagi yang mendapatkan hasil .htm.

ferdhie

ferdhie@...  Selasa Kliwon, 14 November 2006
ini syntax php4. untuk php 5 udah ada syntax u/ konstruktor, dan encapsulation

suprapto

suprapto@...  Senin Kliwon, 4 Desember 2006
Saya Suprapto bisa Kontak di Kantor BPS ( BADAN PUSAT STATISTIK ) Jakarta,.....Ape aje,...? Bisa DI Hubungin di 021- 68454710 rumah ,....Ok. punya direktori Kenegaraan Dunia Internet........ Universal/Global dan Cermin Pancasila Universal Cermin Feconi ( Satya Lencana Karya Satya Pengabdian untuk Pegawai Negri Sipil Seluruh INDONESIA,..?

jhuyhhj

safdg@...  Selasa Legi, 5 Desember 2006
usdgfdhsdf

hutaru

hutaru_oki@...  Minggu Pahing, 15 April 2007
can i know and use the registry in the windows

ReY

okarai@...  Selasa Wage, 22 Mei 2007
//////
galih dtc
kurang_kerjaan_bgt@...Jum'at Legi, 10 November 2006
ga taek taekan programe koyo entut ga iso di gawe megelno/////

Banyak nemu orang-orang munafik kayak elu. Bisanya cuma hina, ngata2in karya orang. Gw tanya elu bisa ga? jangan bacot aja bisanya.

Buat Mas Aryo, sukses ya..


URL: http://bengkelprogram.com/data-artikel-779.0.bps