Kamis, 16 April 2009

Apa itu Object Oriented Programming?

Atas motivasi apakah OOP lahir? Salah satu alasan adalah untuk meningkatkan kualitas program. Tapi apakah menulis program dengan bahasa yang berbasis OOP pasti otomatis menerapkan kaidah OOP? Tidak! Aturan OOP itu ada tapi programmer bisa tidak mengambil manfaatnya jika tidak mengikuti aturan mainnya. Hal ini kadang yang dilakukan banyak programmer pemula dalam OOP. Bukan karena everything in java is object lantas setiap program yang ditulis dengan java bisa disebut sebagai program yang berlandaskan prinsip OOP! Bisa menulis program dengan Java tetapi tetap dengan gaya modular programming. Menulis class-class tanpa ada keterkaitan yang jelas diantara mereka atau menulis sebuah class untuk meng-handle semua task. Juga membuat type semua properti dalam sebuah java bean dengan String walaupun type di persistencenya date atau tipe numeric.
Terus bagaimana cara mengatasinya? Tentunya hanya melalui pemahaman yang benar mengenai OOP. Mengenal kata extends atau implements tidak cukup membuat kita dijalan yang benar dalam object-oriented. Ahlinya mengatakan mimpimu harus berisi tentang turunan, dan polymorphisme harus mengalir didalammu. Cohesion dan louse-coupling harus menjadi dunia keduamu. Memang tidak cukup hanya mengerti prinsip object-oriented programming, juga perlu Object Oriented Design(OOD). Tapi untuk bisa melakukan OOD tentu harus menguasai OOP.

Beberapa kata kunci yang paling penting dalam OOP adalah encapsulation, inheritance, interface, polymorphism, overload, overriding, coupling dan cohesion. Beberapa konsep ini juga bisa semakin kompleks ketika berpasangan dengan konsep access modifier, constructor, casting, assigning, atau return type. Mari kita coba lihat satu-satu.

Encapsulation
Dalam prinsip OOP sesuatu yang sifatnya pribadi dan tidak mestinya dicampuri oleh pihak lain harus disembunyikan untuk diri sendiri. Tetapi ketika pihak luar ingin mengetahui apa nilai yang disembunyikan tadi kita bisa menyediakan sebuah jalan atau method untuk mengambilnya. Tetapi hanya melalui jalan itu sajalah pihak luar tadi bisa mengakses. Begitulah kira-kira encapsulation. Dalam Java hal ini diterapkan dengan cara memberi akses private kepada properti yang mau disembunyikan dan membuat method dengan akses publik untuk setter atau getternya. Contoh:
class Animal {
private String name;
public setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void eat(){
System.out.println(”Every animal needs food”);
}
}
Pastikan deklarasi variable di set private agar tidak bisa diakses langsung oleh pihak luar. Banyak orang kadang mendeklarasikan variable dengan akses default tanpa alasan yang jelas.

Inheritance
Inheritance atau turunan adalah cara menciptakan sebuah tipe atau class baru (subclass) dengan menggunakan kelas lain sebagai templatenya (superclass). Ada dua cara menurunkan sebuah obyek dari obyek lain yang dikenal dengan istilah type implementation dan interface implementation. Type implementation menggunakan cara extends sementara interface implementation menggunakan cara implements. Hasil dari kedua cara ini dikenal juga dengan IS-A yang mana obyek turunan adalah juga bertipe obyek asalnya. Jadi kalau Carnivore diturunkan dari Animal, pastilah Carnivore tersebut juga Animal. Carnivore IS-A Animal. Tetapi tidak sebaliknya, tidak semua Animal adalah Carnivore. Ada juga Omnivore. Dalam Java perbedaan penting mengenai dua cara ini adalah sebuah obyek turunan hanya bisa meng-extends-kan diri dari SATU superclass, sementara melalui interface bisa meng-implements-kan diri dari LEBIH DARI SATU interface. Lalu pertanyaannya kapan cocoknya menggunakan type implementation dan kapan menggunakan interface implementation?
Dalam dunia nyata padanan turunan dengan extends dan turunan dengan implements adalah kira-kira demikian. Extends menurunkan sesuatu yang berupa benda (noun) sementara implements menurunkan sesuatu yang berupa sifat (adjective). Contoh, Lion adalah termasuk Animal yang bisa berlari. Kalau dituliskan dalam code program kira-kira begini:

class Lion extends Animal implements RunLikeable {}

Pada umumnya nama sebuah interface selalu diakhiri dengan kata able, yang memudahkan programmer untuk menandai dan mengenalinya.
Polymorphism
Melalui inheritance, kita bisa menciptakan sebuah hirarki obyek, baik simple atau kompleks sekali pun. Bayangkan hirarki kompleks seperti hirarki dunia hewan. Hirarkinya pasti berlapis-lapis, tetapi turunan sedalam apapun tetaplah seekor hewan. Polymorphism memungkinkan untuk menukar obyek dari turunan ke obyek superclass-nya. Katakan:

Animal ani = new Animal(); // variable bertipe Animal
ani = new Lion(); // sekarang bertipe Lion

Setelah baris kedua, memanggil method yang didefenisikan di Animal, akan memanggil implementasi method yang ada di Lion. Konsep OOP ini memungkinkan hasil pemanggilan method berubah/berbeda tergantung ke instance obyek mana dia direferensikan. Deklarasi di atas tidak tidak berlaku sebaliknya :
Lion lion = new Animal(); // tidak valid

Overload dan Overriding
Barangkali fitur ini salah satu yang paling jelimet untuk dipahami. Sekilas nampak sama tetapi berbeda. Dalam kalimat sederhana bisa dikatakan demikian, overload adalah menulis lebih dari 1 method dengan nama yang sama tetapi parameter berbeda. Overriding adalah menulis ulang isi method di kelas turunan dimana di kelas atasnya method tersebut sudah ditulis juga. Baik dalam overload dan override nama method yang dioverload/ride harus tetap sama. Dalam hal parameter, parameter di overload harus berbeda tetapi untuk override harus sama. Return type untuk overload harus tetap sama sementar untuk override bisa sama atau berbeda.

Coupling dan cohesion
Simplenya, coupling adalah ketergantungan sebuah class dengan class lain. Apakah jika sebuah class diubah mempengaruhi fungsi class lain? Seberapa besar pengaruhnya? Jika keterikatan antar class bisa diatur sedemikian rupa sehingga perubahan disuatu class tidak banyak atau sama sekali tidak mempegaruhi class lain namanya loose coupling, tetapi kalau tidak namanya tight coupling. Dalam hal OOP sebisa mungkin keterikatan class dengan class lain itu diminalkan alias loose coupling. Sementara cohesion berbicara tentang fungsi dalam konteks dimana semakin kedalam tingkat hirarki class-class itu spesifik fungsinya. Atau juga membagi class-class sedemikian rupa sehingga setiap class menjalankan fungsi spesifik (atau yang mempunyai keterkaikan) dan tidak terkumpul dalam sebuah class besar. Untuk cohesion yang diharapkan adalah high cohession.

Tips
Apakah Anda kira-kira selalu memperhatikan keyword diatas dalam setiap penulisan coding? Mungkin Anda melek dengan OOP tetapi apakah itu dituangkan dalam coding? Juga apakah cukup memahami teori dan praktek untuk membuat program yang berkualitas? Tidak! Jujur dunia Java itu dunia yang kompleks. Banyak programmer otodidak pertama kali akan kebingungan mempelajari Java. Bagi pemula rasanya seperti berada di belantara istilah-istilah dan singkatan yang membingungkan. Pola yang diberikan Endy dalam mempelajari Java EE menurut saya sah-sah saja. Tetapi setelah bisa berbicara dengan Java EE mungkin Anda bertanya bagaimana membuat program berkualitas? Tip saya adalah, kembali pelajari lebih dalam lagi mengenai OOP ditambah OO design. Ada 2 buku yang MUST READ yang harus Anda baca dan selalu baca. Satunya adalah Effective Java (EJ) dan Design Patterns: Elements of Reusable Object-Oriented Software (DP).

Sabtu, 11 April 2009

Konsep OOP di Java

Pemrograman berorientasi objek diciptakan untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada dalam kehidupan nyata. Dalam paradigma ini, sesuai dengan model kehidupan nyata, segala bagian (entiti) dari suatu permasalahan adalah objek. Objek-objek ini kemudian juga dapat berupa gabungan dari beberapa objek yang lebih kecil. Sebagai contoh, tengoklah sebuah mobil. Mobil adalah sebuah objek dalam kehidupan nyata. Namun mobil sendiri terbentuk dari beberapa objek yang lebih kecil seperti roda ban, mesin, jok, dll. Mobil sebagai objek yang merupakan gabungan dari objek yang lebih kecil dibentuk dengan membentuk hubungan antara objek-objek penyusunnya. Begitu juga dengan sebuah program. Objek besar dapat dibentuk dengan menggabungkan beberapa objek-objek dalam bahasa pemrograman. Objek-objek tersebut berkomunikasi dengan saling mengirim pesan kepada objek lain.

Konsep-konsep pemrograman berorientasi objek dalam Java secara umum sama dengan yang digunakan oleh bahasa-bahasa lain. Jadi kebanyakan konsep yang kita bahas juga terdapat dalam bahasa selain Java. Namun, terkadang terdapat perbedaan-perbedaan kecil antara penerapan konsep-konsep tersebut dalam masing-masing bahasa. Perbedaan-perbedaan ini juga akan dijelaskan seiring penjelasan masing-masing konsep.

Objek

Dalam penjelasan mengenai analogi, kita sudah menyinggung mengenai objek. Sekarang kita akan mengupas lebih dalam tentang objek sebagai konsep kunci dari pemrograman berorientasi objek.

Baik dalam dunia nyata atau dalam sebuah program, sebuah objek memiliki dua karakteristik, yaitu state dan behaviour. State adalah keadaan dari sebuah objek, seperti mobil memiliki state warna, model, tahun pembuatan, kondisi, dll. Sedang behaviour adalah kelakuan dari objek tersebut, seperti mobil dapat melaju, membelok, membunyikan klakson, dll. Objek menyimpan statenya dalam satu atau lebih variabel, dan mengimplementasikan behaviournya dengan metode. Dengan penjelasan di atas, dapat disimpulkan bahwa objek adalah bagian software yang dibentuk dengan variabel-variabel dan metode-metode yang berhubungan dengan variabel tersebut.

Dengan karakteristik tersebut, kita dapat memodelkan berbagai objek dalam kehidupan nyata ke dalam objek-objek dalam sebuah program. Lebih lanjut kita dapat memodelkan objek-objek abstrak ke dalam sebuah program. Contoh umum untuk konsep abstrak seperti ini adalah objek Event, yaitu objek untuk mewakili peristiwa klik atau tombol ditekan.

Sebuah objek yang dibentuk dari sebuah kelas biasa disebut instans dalam terminologi OOP. Artinya objek tersebut adalah wujud nyata dari sebuah kelas. Variabel dan metode dari instans ini disebut variabel instans dan metode instans. Setiap instans menyimpan variabelnya sendiri-sendiri, jadi nilai variabel untuk tiap instans bisa berbeda.

Message (Pesan)

Objek-objek yang bekerja sama membentuk suatu sistem harus saling berkomunikasi untuk menjalankan sistem tersebut. Dalam sebuah program, objek-objek berkomunikasi satu sama lain dengan mengirimkan pesan. Sebagai contoh, jika sebuah objek ingin memanggil metode dari objek lain, maka objek ini akan mengirimkan sebuah pesan yang meminta objek tujuan untuk menjalankan metode yang dikehendaki. Pesan ini akan berisi informasi-informasi yang dibutuhkan objek tujuan untuk dapat menunaikan permintaan tadi.

Sebuah pesan dibentuk oleh informasi berikut ini: 1) objek yang dituju; 2) nama metode yang ingin dipanggil; 3) parameter yang dibutuhkan metode tersebut. Misalnya:

anotherObject.aMethod(parameter1);

Bila sebuah objek ingin memanggil metode miliknya sendiri, maka informasi pertama adalah dirinya sendiri. Untuk menunjuk diri sendiri dalam Java digunakan kata kunci this. Maka contoh sebelumnya akan menjadi:

this.aMethod(parameter1);

Atau kita dapat menghilangkan informasi pertama sehingga menjadi:

aMethod(parameter1);

karena bila informasi pertama tidak ada, kompiler akan secara otomatis menunjuk ke objek itu sendiri.

Ada dua keuntungan dalam penggunaan pesan, yaitu: 1) semua kebutuhan interaksi antarobjek dapat dilakukan; 2) objek-objek yang saling berinteraksi tidak harus berada dalam satu proses atau bahkan dalam satu komputer.

Kelas

Kelas adalah semacam cetakan, atau template, untuk membuat objek. Ibaratkan sebuah rancangan rumah yang digunakan untuk membangun ratusan rumah. Rumah yang dibangun tersebut adalah objek dari kelas rancangan rumah. Hal ini dapat dilakukan karena semua objek rumah yang dibangun memiliki karakteristik yang sama, sehingga dapat dibuatkan semacam blueprint­nya. Tetapi objek-objek yang dibangun tetap akan memiliki bentuk fisik tertentu sendiri-sendiri, seperti variabel dalam sebuah program, atau pintu sebuah objek rumah. Dengan penjelasan ini, kelas dapat kita definisikan kembali menjadi sebuah blueprint, atau prototipe, yang mendefinisikan variabel dan metode yang sama untuk semua objek sejenis.

Sebagai contoh, misalkan kita ingin membuat kelas Rumah, maka kita harus membuat sebuah kelas yang mendefinisikan semua variabel yang dimiliki objek dari kelas tersebut. Selain itu, kelas tersebut juga harus mendeklarasikan metode-metode yang dimiliki objek dari kelas dan juga membuat implementasi dari metode tersebut. Dengan adanya kelas ini, kita dapat membuat sebanyak apapun objek-objek rumah yang sejenis, yaitu jenis yang didefinisikan oleh kelas Rumah. Setiap objek Rumah diciptakan, sistem akan mengalokasikan sejumlah memori untuk objek tersebut dan variabel-variabelnya. Dengan begitu setiap objek akan memiliki salinan masing-masing untuk setiap variabel instans.

Setelah mengenal konsep kelas, saatnya Anda dikenalkan dengan variabel kelas. Variabel kelas sebenarnya sama dengan variabel instans. Bedanya adalah, setiap objek berbagi satu dan hanya satu variabel kelas, tapi masing-masing memiliki salinan dari variabel instans. Misalkan kelas Rumah yang kita buat hanya akan mendukung 2 lantai, dan setiap objek Rumah terdiri atas 2 lantai. Maka informasi ini cukup disimpan satu kali, karena nilainya tidak berbeda untuk semua objek. Lebih jauh, bila ada satu objek yang mengubah nilai dari variabel kelas, maka semua objek sejenis lainnya akan mengikuti perubahan itu. Di samping variabel, terdapat juga metode kelas. Metode jenis ini dapat langsung dipanggil melalui kelas dan bukan dari instans kelas tersebut.

Pewarisan

Terminologi asing untuk pewarisan adalah inheritance. Mungkin dalam literatur lain Anda akan sering menjumpai istilah ini. Secara gamblang, pewarisan berarti sebuah kelas mewarisi state dan behaviour dari kelas lain. Sebagai contoh, sebuah kelas RumahMewah akan mewarisi state dan behaviour dari kelas Rumah. Begitu juga dengan kelas RumahSederhana. Kelas RumahMewah dan RumahSederhana disebut subkelas, atau kelas anak, dari kelas Rumah, yang disebut superkelas, atau kelas induk.

Seluruh subkelas akan mewarisi (inherits) state dan behaviour dari superkelasnya. Dengan begitu, semua subkelas dari superkelas yang sama akan memiliki state dan behaviour yang sama. Namun, masing-masing subkelas bisa menambah sendiri state atau behaviournya. Misalkan, pada kelas Rumah tidak terdapat variable kolamRenang, namun subkelas RumahMewah memiliki variabel tersebut. Contoh lain misalnya kelas Rumah tidak memiliki metode nyalakanAlarm, namun rumah mewah memiliki metode itu.

Dalam kasus tertentu subkelas mungkin memiliki implementasi behaviour yang berbeda dengan superkelasnya. Hal seperti ini disebut override. Contohnya subkelas SepedaBalap memiliki implementasi metode ubahGigi yang berbeda dengan implementasi metode tersebut pada superkelas Sepeda.

Tingkat pewarisan tidak hanya terbatas pada dua tingkatan. Dari contoh di atas, kita bisa saja membuat subkelas dari kelas SepedaBalap, dan seterusnya. Kita bisa terus memperpanjang tingkat pewarisan ini sepanjang yang kita butuhkan. Dengan begitu, subkelas-subkelas yang dibuat akan lebih khusus dan lebih terspesialisasi. Namun terdapat batasan pewarisan dalam Java yang disebut single inheritance. Artinya sebuah kelas hanya dapat mewarisi sifat dari satu dan hanya satu superkelas saja. Dalam beberapa bahasa pemrograman berorientasi objek lain, yang berlaku adalah multiple inheritance. Artinya sebuah kelas dapat mewarisi sifat dari beberapa superkelas sekaligus.

Dalam Java, terdapat kelas Object yang merupakan superkelas dari semua kelas dalam Java, baik yang builtin ataupun yang kita buat sendiri, lansung maupun tidak langsung. Karena itu sebuah variabel bertipe Object akan dapat menyimpan referensi ke objek apapun dalam bahasa Java. Kelas Object ini memiliki behaviour yang dibutuhkan semua objek untuk dapat dijalankan di Java Virtual Machine. Sebagai contoh, semua kelas mewarisi metode toString dari kelas Object, yang mengembalikan representasi String dari objek tersebut.

Manfaat penggunaan konsep pewarisan antara lain: pertama, kita dapat menggunakan kembali kelas-kelas yang kita buat (sebagai superkelas) dan membuat kelas-kelas baru berdasar superkelas tersebut dengan karakteristik yang lebih khusus dari behaviour umum yang dimiliki superkelas. Kedua, kita dapat membuat superkelas yang hanya mendefinisikan behaviour namun tidak memberi implementasi dari metode-metode yang ada. Hal ini berguna jika kita ingin membuat semacam template kelas. Kelas semacam ini disebut kelas abstrak, karena behaviournya masih abstrak dan belum diimplementasikan. Subkelas-subkelas dari kelas semacam ini, yang disebut kelas konkret, mengimplementasikan behaviour abstrak tersebut sesuai dengan kebutuhan masing-masing.

Sedikit penjelasan mengenai kelas abstrak, kelas ini bisa memiliki hanya satu atau lebih metode abstrak. Subkelas dari kelas ini bertanggung jawab untuk memberikan implementasi untuk metode-metode abstrak tersebut. Sebagai akibat dari keberadaan metode abstrak ini, kelas abstrak tidak dapat diinstanskan (dibuatkan instansnya) atau digunakan untuk menciptakan sebuah objek dari kelas tersebut.

Interface

Arti harfiah dari interface adalah antarmuka, yaitu suatu alat untuk digunakan benda-benda yang tidak terhubung secara langsung untuk berinteraksi. Dalam bahasa pemrograman, interface digunakan oleh berbagai objek yang tidak terhubung untuk saling berinteraksi. Jadi dalam bahasa pemrograman, interface dapat didefinisikan sebagai koleksi definisi metode-metode dan variabel-variabel konstan, namun tanpa implementasi. Implementasi akan dilakukan oleh kelas-kelas yang mengimplements interface ini. Tanpa implementasi di sini tidak seperti pada kelas abstrak yang merupakan metode-metode yang tidak melakukan apa-apa, melainkan hanya sekedar nama metode saja.

Sebelumnya telah dijelaskan bahwa sebuah kelas tidak dapat menjadi subkelas dari beberapa superkelas, melainkan hanya bisa menjadi subkelas dari satu superkelas saja. Hal ini membuat desain program lebih rapi dan teratur, sehingga dapat mengurangi kompleksitas program. Namun, terkadang hal ini dapat menjadi suatu halangan yang tidak menyenangkan, yaitu saat kita membutuhkan suatu kelas yang memiliki sifat-sifat dari dua atau lebih kelas lain. Pada masalah seperti ini, interface dapat memberikan alternatif jalan keluar.

Dengan adanya interface maka beberapa kelas akan dapat menangani interaksi yang sama namun dengan behaviour yang bisa berbeda. Misalnya beberapa kelas mengimplementasi sebuah interface yang sama, maka kelas-kelas tersebut dapat menangani interaksi sesuai interface tersebut, namun tiap kelas dapat memiliki implementasi yang berbeda-beda.

Begitu juga bila sebuah kelas mengimplementasi banyak interface, maka kelas tersebut akan dapat menangani interaksi-interaksi sesuai salah satu interface yang diimplement oleh kelas tersebut. Namun, kelas tersebut harus mengimplementasi sendiri behaviournya. Di sinilah letak perbedaan penggunaan interface dengan multiple inheritance. Dalam multiple inheritance, layaknya single inheritance, subkelas tidak harus mengimplementasikan sendiri behaviournya karena secara default kelas tersebut akan mengikuti behaviour superkelasnya.

Jumat, 10 April 2009

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="Arie Maulidi";//
$this->nama="Arie Idiluam";//

echo "$nama";//result : Arie Maulidi
echo $this->nama;//result : Arie 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 disampaikan 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 ada tiga object orang yaitu $rahmad, $andi dan $ali. Masing object akan memiliki properti sendiri-sendiri, misalkan saya akan memberikan 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);

Senin, 06 April 2009

Object Oriented Programming adalah sebuah terobosan baru dalam dunia pemrograman. Pemrograman berorientasi objek. Pemrograman ini mempertinggi kualitas dan produktifitas pengembangan software. Program pengembangannya dilakukan dengan pendekatan building block. Setiap block, disebut object, bersifat independen dan mampu berjalan sendiri atau saling kunci dengan object lain dengan mudah dan otomatis. Object-object berinteraksi dengan saling memberikan informasi satu terhadap yang lainnya. Masing-masing object harus berisikan informasi mengenai dirinya sendiri (encapsulation) dan object yang dapat dikaitkan (inheritance).