Konsep Dasar Class dan Object PHP 5
Saya ingin sedikit berbagi pengenalan konsep dasar class, object, dan properties pada PHP 5.
In PHP 5 there is a new Object Model. PHP’s handling of objects has been completely rewritten, allowing for better performance and more features.
Dari keterangan diatas dapat dijelaskan bahwa object PHP5 memuat pemodelan object yang baru dan dukungan object yang lebih lengkap untuk mengatasi berbagai macam kompleksitas, dan PHP5 memberikan performa dan fitur yang lebih baik dibandingkan pada versi sebelumnya.
Sebenarnya PHP4 sudah mempunyai dukungan cukup untuk object, hanya saja, PHP4 dan PHP5 ada perbedaan dalam handling object. Menurut saya, PHP5 lebih ke arah Java saat assigning object. Penggunaan class, penciptaan object, inisialisasi variable yang dipanggil oleh object, serta penggunaan fungsi dan pemanggilannya dengan object di PHP5, “nyaris sama” dengan Java. Hanya saja pada PHP5 cenderung lebih luwes, diantaranya nama file-nya sendiri tidak harus sama dengan nama class.
Class
Setiap pendefinisian kelas (class) dimulai dengan nama kelas itu sendiri, penamaannya bisa apa saja, asal tidak menggunakan nama predefined-variable PHP yang sudah ada.
< ?php class jenisMakanan { // properties // methods } ?>
Sebuah kelas dengan nama jenisMakanan sudah berhasil kita buat, tetapi belum dapat dilakukan apa-apa pada kelas tersebut, karena kita belum menambahkan properti (properties) atau metode (methods) didalamnya.
< ?php class jenisMakanan { function ringan() { echo "krupuk udang"; } } ?>
Nah, sekarang kita sudah menaruh sebuah fungsi ringan() pada kelas makanan. Fungsi pada kelas disebut juga metode (method). Kelas tersebut belum dapat digunakan, karena kita belum mendeklarasikan sebuah instance pada kelas tersebut. Untuk dapat menggunakan kelas tersebut, beserta metode dan properti-nya, maka harus dibuatkan instance dari kelas tersebut menggunakan perintah ‘new ‘. Dengan mendeklarasikan sebuah instance, maka kita dapat menciptakan sebuah obyek (object).
< ?php class jenisMakanan { function ringan() { echo "krupuk udang"; } } $makanan = new jenisMakanan(); $makanan->ringan(); // Hasil: krupuk udang ?>
Object
Seperti pada contoh diatas, digunakan “new” untuk menciptakan sebuah instance dari kelas jenisMakanan dan ditetapkan (assigned) pada variabel $makanan, kemudian memanggil metode ringan() dengan obyek $makanan.
Yang perlu diperhatikan adalah perbedaan antara kelas dengan obyek. Kelas, pada contoh diatas adalah jenisMakanan(), dan $makanan adalah sebuah obyek (object). Kelas hanya bisa dibuat satu saja, semisal dibuat dua kelas dengan nama yang sama, yaitu jenisMakanan, maka akan terjadi kesalahan (error). Walaupun begitu, kita dapat membuat beberapa instance menggunakan satu kelas yang sama.
< ?php class jenisMakanan { function ringan() { echo "krupuk udang"; } } $makanan = new jenisMakanan(); $makanan->ringan(); // Hasil: krupuk udang $makanan2 = new jenisMakanan(); $makanan2->ringan(); // Hasil: krupuk udang ?>
Dari contoh diatas dapat kita lihat terdapat dua instance yang dibuat dari kelas jenisMakanan dimana kita mempunyai 2 obyek, $makanan dan $makanan2. Masing-masing instance memanggil metode ringan().
Properties
Sebuah kelas dapat memiliki variabel-variabel yang disebut properti (properties) atau bisa disebut juga attributes. Tipe-tipe properti tersebut adalah public, private, dan protected.
< ?php class jenisMakanan { public $rasa; function ringan() { echo "krupuk udang" . " " . $this->rasa; } } $makanan = new jenisMakanan(); $makanan->rasa = "enak sekali"; $makanan->ringan(); // Hasil: krupuk udang enak sekali ?>
Pada contoh diatas, kita telah menambahkan sebuah baris, yaitu “public $rasa;“, yang disebut juga access modifiers. Maksudnya adalah kita telah menambahkan sebuah properti public dengan nama $rasa pada kelas yang telah kita buat sebelumnya. Pada metode ringan() juga sudah ditambahkan properti $rasa, dimana variable dari properti $rasa akan ikut ditampilkan. Dapat anda lihat, digunakan $this->rasa untuk memanggil properti $rasa.
Pseudo-variable, $this, adalah sebuah variable yang sudah tersedia ketika suatu metode dipanggil oleh sebuah obyek. $this adalah sebuah acuan yang dapat digunakan untuk memanggil sebuah metode atau properti pada sebuah kelas.
< ?php class MyClass { public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private'; function helloWorld() { echo $public; echo $protected; echo $private; } } $object = new MyClass(); echo $object->public; // Hasil: Public echo $object->protected; // Fatal error: Cannot access protected property MyClass::$protected echo $object->private; // Fatal error: Cannot access private property MyClass::$private $object->helloWorld(); // Hasil: Public, Protected, dan Private ?>
Pada contoh diatas dijelaskan bahwa.
- Properti
publicdapat di akses dari dalam kelas itu sendiri maupun dari luar kelas.Publicadalah properti bebas yang dapat diakses darimana saja. - Properti
protecteddapat di akses dari dalam kelas itu sendiri, tetapi tidak dapat diakses dari luar kelas.Protecteddapat di akses pada kelas itu sendiri (parent class) maupun dari kelas lain (inherited class) yang berasal/pewarisan dari kelas tersebut (parent class). Hal ini dapat dilakukan denganinheritanceyang dijelaskan pada bagian akhir tulisan ini. - Properti
privatedapat di akses dari dalam kelas itu sendiri, tetapi tidak dapat diakses dari luar kelas maupun dari kelas lain.
Seperti halnya properti, kontrol terhadap metode/fungsi dalam kelas dapat dilakukan menggunakan access modifiers.
< ?php class MyClass { public function MyPublic() { // Kode disini. } protected function MyProtected() { // Kode disini. } private function MyPrivate() { // Kode disini. } function Foo() { $this->MyPublic(); $this->MyProtected(); $this->MyPrivate(); } } $object = new MyClass(); $object->MyPublic(); // Dapat berjalan dengan baik $object->MyProtected(); // Terjadi kesalahan (error) $object->MyPrivate(); // Terjadi kesalahan (error) $object->Foo(); // MyPublic, MyProtected, MyPrivate berjalan baik. ?>
Inheritance
Salah satu kelebihan menggunakan sebuah kelas yaitu kita dapat membuat kelas inherits. Pewarisan (inheritance) dilakukan dengan memperpanjang (extends) kelas yang sudah ada dengan cara membuat kelas baru yang mewarisi (inherits) semua properti dan metode yang ada pada kelas aslinya (parent class).
< ?php // parent class class jenisMakanan { public $public = "krupuk udang"; protected $protected = "enak sekali"; private $private = "tidak enak"; // metode/fungsi disini } // inherits class class rasaMakanan extends jenisMakanan { function rasa1() { echo $this->public . " " . $this->protected; } function rasa2() { echo $this->public . " " . $this->private; } } $makanan = new rasaMakanan(); $makanan->rasa1(); // Hasil: krupuk udang enak sekali $makanan->rasa2(); // Hasil: krupuk udang ?>
Pada contoh diatas, terlihat jelas bahwa properti public dan protected dapat ditampilkan dengan memanggil obyek yang ada pada kelas inherits, yaitu kelas rasaMakanan. Sedangkan properti private tidak dapat ditampilkan pada kelas inherits tersebut. Perlakuan access modifiers pada metode-metode yang ada pada kelas tersebut sama perlakuannya terhadap properti-properti seperti yang sudah dijelaskan.
Author: Andy Pradhana (pradhana\at\netzone.web.id)
22 Responses to “Konsep Dasar Class dan Object PHP 5”
Leave a Reply
Terima kasih banyak..info nya membantu sekali mas….
Tapi…boleh gak saya minta YM nya..banyak yg mau d tanya nih mas…
tengkiu…
Kalo ada yg perlu ditanyakan, silakan pm.
Akan saya bantu sebisanya.
YM: masdhana
akhirnya nemu juga basic php 5..
terima kasih banyak.
nanti saya mau add ym nya juga.
veri nice..
thx alot
broo, minta lanjutannya dunk yang make database, gimana yah..?
ya coba nanti saya buat.. masih dikejar deadline nih :p
halo mas..
trimakasih atas bantuanya slama ini..
saya coba beralih ke OOP mas..
mohon bantuanya ya lewat YM..
hehehe..
keep on code!
Terimakasih mas, saia pngen sekali blajar inheritance di PHP, ampe pusiiing..!! OOP di PHP tuh mantab buangeetzz…
Wah penjelasan yang sangat membantu mas, oya nanti kalo ada pertanyaan lebih lanjut aq hub lewat Ym Boleh ya? Makasih mas.
wa…., setelah muter muter nyari pencerahan tentang object dan class nya PHP, akhirna nemu juga yang bahasa indonesia
, baca PHP manual yang pake bahasa inggris mumet hehehe
btw tengkayu wt tulisannya..
minta ijin copy paste ya mas…
tak simpen’e
hehhe
Silakan, ilmu milik kita bersama
makasih banget mas,…penjelasannya cukup gamblang,…jadi lebih ngerti,….!!!n_n.oy q juga maw ijin add YMnya jga ya,….thanks
ijin add ym ya mas^^
Halloo Mas,
mau izin add YM nya
thx
boleh minta aplikasi sederhananya mas,soalnya aku masih newbe di OOP
Saya mau tanya mengenai fungsi __construct dalam suatu class.
Kebanyakan bisa menerima parameter.
Tetapi kadang-kadang menolak pemakaian parameter.
Bisa tolong ? Trims.
mas, kayaknya mas master php ya?
boleh ym-an ga?
banyak yang mau ditanyain nih (maklum baru belajar ^_^)
thanks mas, tutornya bagus banget, apalagi buat sy yang pengen banget belajar class… keep share
Merasa terenyuh dengan tulisannya
)
Ingin rasanya langsung menghadap ke depan KOmp, pengang keyboard trus rajin2 CTRL + Tab (sambil liat tulisan ini)
OOP nya itu lho….
Detil banget.
Thanks banget ya……
Saya sangat ingin sekali belajar PHP classes mas, hubungi Saya di YM Saya di kharis.hidayatulloh yah!
Boss saya add juga YMnya mau tanya2 lebih banyak lagi tentang PHP