Polymorphism atau polimorfisme

Polimorfisme berasal dari bahasa Yunani yang berarti banyak bentuk. Dalam PBO, konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah obyek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda.
Dalam konsep yang lebih umum sering kali polimorfisme disebut dalam istilah satu interface banyak aksi. Polimorfisme merupakan suatu konsep yang menyatakan sesuatu yang sama dapat memiliki berbagai bentuk dan prilaku yang berbeda. Polimorfisme memberikan sebuah aksi pada obyek yang dibagi ke atas dan ke bawah, setiap obyek dalam hirarki mengeimplementasikan aksi dari dirinya sendiri.
Contoh yang konkret dalam dunia nyata yaitu mobil. Mobil yang ada di pasaran terdiri atas bebagai tipe dan berbagai merek, namun semuanya memiliki interface kemudi yang sama, seperti: stir, tongkat transmisi, pedal gas, dan rem.
Jika seseorang dapat mengemudikan satu jenis mobil saja dari satu merek tertentu, maka orang itu akan dapat mengemudikan hampir semua jenis mobil yang ada, karena semua mobil tersebut menggunakan interface yang sama, tidak berarti cara kerjanya juga sama.
Misal pedal gas, jika ditekan maka kecepatan mobil akan meningkat, tapi bagaimana proses peningkatan kecepatan ini dapat berbeda-beda untuk setiap jenis mobil. Contoh lainnya bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakkan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tunggal dalam program dapat memegang berbagai jenis obyek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapametode yang berbeda di saat yang berbeda dalam panggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas pertama.
Salah satu jenis polimorfisme pada C++ dapat dikenakan pada fungsi atau operator dan dikenal dengan istilah overloading. Sebagai contoh, kita dapat membuat suatu fungsi bernama gambar. Kalau kita hanya menyertakan posisi X dan Y saja maka yang digambar adalah titik. Kalau yang disertakan adalah dua pasang X dan Y, maka hasilnya berupa garis. Adapun kalau yang disertakan adalah posisi X dan Y serta jari-jari, yang digambar adalah lingkaran. 


Overloading terhadap fungsi

Terkadang kemampuan overloading dan polymorphism dibedakan, meskipun perbedaannya terletak pada sudut peninjauannya. Pengikatan pada polymorphism dilakukan pada saat program dijalankan (disebut pengikatan belakangan atau pengikatan dinamis), sedangkan pengikatan pada overloading dilakukan pada saat kompilasi.


Reviewmu.com

0 comments:

Posting Komentar

Terima kasih atas komentar atau sarannya.

Makasih ya udah komentar | Kembali ke atas