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.