Wah, dah harus bikin modul nih. Yup, sejak pindah jadi asisten di lab lantai 7 aku kebagian jadi koordinator PV2 (Pemrograman Visual 2). Tapi mulai semester depan sih, tapinya lagi, aku sekarang dah harus bikin modul. Deadline tanggal 20 Jan ‘06. Padahal sekarang baru sampe bab 3, kurang 5 bab lagi. Hiks…
Hmm.. Kebetulan bab 3 tentang polymorphism. Yah, cari-cari lagi reference di buku besar Deitel, yup buku yang bisa jadi bantal soalnya tebelnya minta ampun. But it’s worth with the thickness… Akhirnya dapet sedikit pencerahan dan bangkit sedikit ingatan yang dulu hampir ilang. Hehe…
Sedikit aja sharing…
— Start of Sharing —
Ternyata polymorphism bisa dilakukan dengan 2 cara, hmm… Dari arti katanya sih brarti banyak bentuk, apanya yang banyak bentuk..?? Kalo diterjemahkan secara OOP ternyata adalah pemakaian beberapa methods atau properties dengan nama yang sama tetapi mempunyai fungsi yang berbeda.
Ada 2 cara untuk melakukan polymorphism yaitu overloading dan overriding. Apaan tuh.. Sek satu-satu ya…
Yang ini agak teknis, soalnya tak ambil langsung dari modulku…
Overloading
Overloading adalah pemakaian beberapa methods ataupun properties dengan nama yang sama, tetapi memiliki daftar parameter/argument yang berbeda. Perbedaan yang dimaksud adalah beda jumlah parameter, beda tipe data, atau beda keduanya (jumlah parameter dan tipe data). Methods ataupun properties yang hanya beda return value (nilai balik) tidak bisa dikatakan sebagai overloading.
Keyword yang dipakai adalah Overloads. Jika dalam satu class, keyword ini bersifat optional artinya kita tidak harus menambahkan keyword Overloads ketika mendefinisikan beberapa methods ataupun properties yang menerapkan konsep overloading. Apabila kita tetap ingin memakainya, maka keyword Overloads harus digunakan di semua methods ataupun properties tadi. Apabila beda class, keyword Overloads ini harus digunakan.
Overriding
Overriding adalah kemampuan class turunan untuk memodifikasi methods atau properties dari class induk. Dengan overriding kita bisa membuat implementasi baru pada methods atau properties di class turunan yang berbeda dengan methods atau properties yang ada pada class induk.
Perbedaan utama antara Overloading dengan Overriding adalah pada pemakaian parameter. Pada overloading kita bisa mengubah parameter, sedangkan pada overriding kita tidak boleh mengubah parameter.
Ada beberapa keyword yang bisa dipakai di overriding, antara lain:
Keyword Overridable
Keyword ini digunakan pada methods atau properties di class induk yang menandakan bahwa methods atau properties tadi bisa di-override pada class turunan.
Keyword Overrides
Keyword ini digunakan pada class turunan yang menandakan bahwa methods atau properties tadi meng-override methods atau properties yang ada di class induk.
Keyword NotOverridable
Keyword ini digunakan pada methods atau properties di suatu class yang menandakan bahwa methods atau properties tadi tidak bisa di-override pada class turunan.
Keyword MustOverride
Seperti dijelaskan pada modul 2, keyword ini digunakan untuk mendeklarasikan abstract methods atau abstract properties. Hanya ada deklarasi header di sini, tanpa ada pendefinisian implementasi. Class yang mempunyai abstract methods atau abstract properties harus didefinisikan juga sebagai abstract class dengan keyword MustInherit.
— End of Sharing —
That’s all 4 today, moga bermanfaat. Ntar wes aku mau upload di web file-file hasil kaya’ ginian, biar lebih enak dilihat.


OK, tak bedek’i ya? Sebelum dibede’i sama praktikannya
Kalau class Orang punya method getTipe() returnnya: “Orang jeh”. Method getTipe() ini overridable.
Terus class Mahasiswa extends Orang punya method getTipe() override milik Orang. Di class Mahasiswa getType() returnnya “Masih muda, mahasiswa lah”.
Pertanyaannya jika:
Dim org as Orang
org = new Mahasiswa()
maka org.getType() returnnya apa?
Sorry Ho, ini tebak-tebakan anak kecil yang lagi belajar PBO.
Comment by abud — 2 June, 2006 @ 2:26 pm
eh, koq ada yang “tipe”, ada yang “type”. Maksudnya sama, yang ngetik aja agak blo’on.
Comment by abud — 2 June, 2006 @ 2:28 pm
Sori baru bales, hehe… baru baca ama baru coba-coba. Wedi salah jawab hayo.
Ternyata jawabane “Masih muda, mahasiswa lah”. Moga gak salah se, soale masih pemula kalo di OOP hayo.
Ganbatene…!!!
Comment by Ho — 6 June, 2006 @ 9:24 am
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
Comment by 11 — 3 January, 2009 @ 10:00 pm