Home > oop > The Problem of Multiple Inheritance

The Problem of Multiple Inheritance

Ya, meskipun konsep multiple inheritance itu diperlukan, ternyata ada masalah untuk diimplementasikan. Sesuai dengan konsepnya, inheritance memungkinkan kita mengakses data (atribut/data slot) atau meng-invoke method pada suatu objek yang tidak didefinisikan pada kelas objek tsb. Compiler akan mencarikannya di kelas-kelas ancestor-nya. Pada single inheritance, algoritme pencarian data atau method tsb tidak terlalu sulit. Compiler tinggal mencari ke definisi kelas parent-nya. Jika tidak ada, terus dicari ke kelas parent dari parent-nya, dst-nya sampai ketemu atau sampai di ujung inheritance-chain (akan ada pesan error jika tidak ketemu).

Nah, pada multiple inheritance, algoritma pencarian menjadi lebih rumit, karena parent sebuah kelas bisa lebih dari satu. Kemana compiler harus mulai mencari, ke parent A-kah atau parent B dulu ? Perlu backtrack jika di satu path tidak ketemu. Belum lagi jika ada shared-parent, masalah bertambah lagi. Atau jika ada lebih dari satu data slot atau method dengan nama yang sama, hingga terjadi clash…

Beberapa bahasa pemrograman berorientasi objek menggunakan pendekatan yang berbeda-beda untuk penanganan masalah-masalah tersebut. Akan tetapi, dari beberapa literatur dinyatakan bahwa penanganan masalah ini belum dianggap mature…

Yang perlu diperhatikan adalah, dengan adanya perbedaan pendekatan dan penanganan di berbagai bahasa, berhati-hatilah jika akan berpindah bahasa. Pastikan bahwa hasil optimal yang sudah dicapai di suatu bahasa tidak jadi salah setelah program anda di-porting ke bahasa yang lain.

Gunakan multiple inherintance hanya jika benar-benar dibutuhkan saja. Hindari jika bisa…

Categories: oop
  1. February 26, 2009 at 5:43 pm

    rasanya sekarang sedikit bahasa yang mengenable fitur multiple inheritance
    untuk melindungi programmer dari kebingungan dan compiler dari kesulitan dalam tracking😀
    lagipula jarang ada solusi yang harus benar-benar menggunakan multiple inheritance

  2. February 26, 2009 at 11:18 pm

    Hingga saat ini memang belum sempat sampai menggunakan konsep ini secara nyata, atau mungkin karena memang jam terbang yang masih sedikit,.😛

  3. February 27, 2009 at 10:17 am

    Ya Petra, memang sedikit. Beberapa bahasa menerapkan alternatif lain untuk support ‘semacam’ multiple inheritance tapi lebih praktis, seperti perspective, interface, delegation, mixin class…
    Buat para ‘pengembang bahasa’ tentunya implementasi multiple inheritance ini jadi tantangan tersendiri, karena kalo berhasil, akan sangat menguntungkan programmer.

    Ya Dwinanto, tugas-tugas di kuliah mungkin belum terlalu kompleks ya…

  4. February 27, 2009 at 1:52 pm

    entah sih ya,
    menurut pendapat saya multiple inheritance itu lebih banyak resikonya daripada keuntungannya, Bu….

  5. March 2, 2009 at 6:44 am

    “Utamakan komposisi dibandingkan inheritance”, hehe..
    Aduh, itu kata-kata bijak masih teringat.. :p

  6. March 2, 2009 at 5:48 pm

    Ya Petra, untuk sementara ini sebaiknya hindari multiple inheritance…

    Arie, design principles ini banyak disebut-sebut saat membahas design pattern ya…
    Jadi, dari pengalaman para expert, ternyata memang sebaiknya melakukan komposisi daripada inheritance. Tapi tentu ada banyak kasus yang sebaiknya diselesaikan dengan inheritance…

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: