Minggu, 15 Maret 2009

OOP?????????

OOP?

Objek adalah kumpulan variabel dan method(fungsi) yang saling berkaitan. Pernah menggunakan struct dalam C atau record dalam Pascal/Delphi? Dalam struct dan record, kita bisa mengumpulkan tipe-tipe variabel yang berlainan. Nah, objek adalah perkembangan dari struct (kira-2 begitu). Dalam objek, kita bisa mengumpulkan variabel-2 dengan tipe yang boleh berbeda-2 dan fungsi-2 yang disebut method. Objek sebenarnya meniru konsep alam. Ilustrasinya seperti ini. Sebutlah suatu objek, misalnya anjing. Anjing memiliki kondisi: warna, tinggi, lapar, sakit, dll. Selain itu anjing juga memiliki hal-hal yang biasa dilakukan, seperti: menggonggong, menggigit, goyang ekor, dll. Nah kondisi pada alam (misal anjing) ditiru dengan Variabel sedangkan hal-hal yang biasa dilakukan ditiru dengan Method. Nah penggabungan antara Variabel dan Method itulah yang disebut Enkapsulasi.

Hal penting berikutnya dalam OOP adalah Message. Antara objek satu dengan objek yang lain berkomunikasi melalui Message. Ketika objek A ingin objek B melakukan sesuatu, maka objek A mengirim Message ke objek B. Contoh: Misalnya objek A adalah Y3dips. Objek B adalah Sepeda. Jika Y3dips ingin memindahkan gigi sepedanya ke gigi 5, maka Y3dips akan mengirim Message ke Sepeda (diketahui sepeda memiliki kemampuan/Method pindahGigi) berbunyi pindahGigi(5). Lengkapnya ditulis : Sepeda.pindahGigi(5). Message itu akan dilaksanakan oleh Sepeda. Kemampuan pindahGigi memerlukan informasi gigi yang diinginkan, dalam hal ini 5. Maka sekarang Variabel (nantinya kita sebut atribut) gigi bernilai 5.

Bicara tentang Class, kita bayangkan dalam contoh sebelumnya bahwa Sepeda milik Y3dips adalah sepeda gunung (kita sebut SepedaGunung). Tentunya selain SepedaGunung terdapat sepeda lain seperti SepedaOnta, SepedaTandem, dll. Tapi yang jelas, jenis-jenis tadi termasuk Sepeda. Jadi SepedaGunung adalah Instance dari Sepeda. SepedaGunung memiliki atribut-atribut(seperti gigi, roda, panjang, pedal, dll) juga kemampuan(seperti pindahGigi(), belok(), dll) Sepeda. Ada perbedaan antara Object dan Class. Class adalah blue print atau rancangan dari Object. Jadi dengan satu Class, kita dapat membuat berapapun Object.

Inheritance adalah pewarisan sifat. Sebuah Subclass akan mewarisi sifat dari Superclass-nya. Dalam contoh di atas, SepedaGunung akan memiliki atribut gigi, roda dan panjang dan juga kemampuannya yaitu pindahGigi dan belok. Tetapi Subclass tidak harus hanya memiliki sifat dan kemampuan yang sama persis dengan Superclassnya, tetapi biasanya ditambahkan sifat dan kemampuan lain yang membedakannya dengan Subclass lain dengan Superclass yang sama. Itulah yang membuat SepedaGunung dan SepedaOnta berbeda. Subclass juga dapat melakukan Override terhadap sifat dan kemampuan warisan Superclassnya. Misalnya yang dilakukan oleh SepedaTandem. SepedaTandem memiliki lebih dari dua roda dan juga pedal sehingga perlu memiliki kemampuan untuk mengaturnya. Sehingga suatu kemampuan warisan dari class Sepeda dapat diganti atau ditambahkan.

Interface membuat satu class dapat berinteraksi dengan class lain yang benar-benar berbeda. Misalnya dalam Show Room yang menjual Mobil, Motor juga Sepeda (ini misalnya lho). Tentu saja ManajerShowRoom harus bisa mengatur sepeda-sepeda bersama dengan Mobil-2 dan Motor-2. Masalahnya adalah perbedaan class yang sangat mencolok. Interface mengatasinya dengan cara:
1) mencari persamaan antara class-2 yang berbeda tanpa memaksa class tersebut saling berhubungan.
2) membuat Method yang ingin deterapkan pada class-class.

Konsep-konsep OOP di atas ada pada Java.

sumber :
devit_naibaho@yahoo.com

Tidak ada komentar:

Posting Komentar

Tolong kasih komentarnya
agar menjadi perbaikan di masa yang akan datang