Anda di halaman 1dari 16

POLIMORFISME

APA ITU POLIMORFISME?


Polimorfisme berasal dari bahasa yunani yang berarti
banyak bentuk.
Polimorfisme adalah pemikiran bahwa objek dinamis suatu
kelas dasar dapat berprilaku seperti kelas turunan
KONSEP POLIMORFISME
 Ketika objek tersebut menunjuk kelas dasar, objek tersebut
berperilaku seperti kelas dasar, tetapi ketika objek tersebut
menunjuk kelas turunan, objek tersebut berprilaku seperti kelas
turunan.
 Objek dapat memiliki beberapa bentuk tergantung pada saat itu
kelas mana yang ditunjuk.
 Yang perlu menjadi catatan bahwa perubahan perilaku ini dari kelas
dasar pada kelas turunan,tidak dapat objek kelas turunan menunjuk
kelas dasar.
PENJELASAN
 Polimorfisme pada suatu metode tertentu berhubungan
dengan sebuah pengiriman pesan yang tergantung
kepada objek tertentu dimana pesan itu dikirim.
contohnya: bila sebuah burung menerima pesan
“bergerak cepat” dia akan menggerakan sayapnya dan
terbang. Ini disebut polimorfisme karena sebuah variabel
tunggal dalam pemrograman dapat memgang berbagai
jenis objek yang berbeda selagi program berjalan, dan
teks program yang sama dapat memanggil beberapa
metode yang berbeda disaat yang berbeda dalam
pemanggilan yang sama.
CARA KERJA
 Polimorfisme pada pewarisan tunggal Pendeklarasian nya dengan
cara menambah kata virtual pada deklarasi fungsi. Jika suatu metode
dideklarasikan secara virtual dalam kelas dasar, maka keadaan
virtual tetap akan berlaku untuk fungsi yang sama di seluruh kelas
turunan meskipun kata virtual tidak disebutkan.
 Polimorfisme pada pewarisan jamak
Pada pewarisan jamak kata virtual harus disebutkan pada semua
metode pada kelas dasar yang dirancang dapat mengadakan ikatan
dinamis.
o Polimorfisme pada pewarisan jamak virtual
kata virtual hanya dipakai pada metode kelas yang bersifat dinamis .
PERBEDAAN POLIMORFISME DAN
PEWARISAN
 Pewarisan adalah pemrograman berbasis object karena suatu sifat
atau method didefinisikan dalam superclass, sifat ini secara otomatis
diwariskan dari semua subclasses. Jadi, Anda dapat menuliskan
kode method hanya sekali dan mereka dapat digunakan oleh semua
subclass. Subclass hanya perlu mengimplementasikan perbedaannya
sendiri dan induknya.
 Polimorfisme
polimorfisme dapat beroperasi pada 2 arah yaitu saatnya
pengompilasian dan saat pengeksekusian.
CONTOH PROGRAM
 void keterangan()
 Polimorfisme pada pewarisan tunggal  {
 cout <<"Keterangan() pada mamalia..." <<endl;
 Contoh :  }
 #include <iostream.h>  };

 #include <conio.h>   

    class sapi : public mamalia

 class mahluk  {

 void info()
 {
 {
 public :
 cout <<"Informasi() pada sapi..." <<endl;
 void info()
 }
 {   
 cout <<"Informasi() pada mahluk..." <<endl;  void keterangan()
 }  {
    cout <<"Keterangan() pada sapi..." <<endl;
 virtual void keterangan()  }

 {  Definisi obyek mamalia

 cout <<"Keterangan() pada mahluk..." <<endl;  };  

 void main()
 }
 Definisi obyek SAPI_BALI
 };
 { clrscr();
  
 Definisi pointer ke obyek berkelas mahluk
 class mamalia : public mahluk
 mamalia MAMALIA; sapi SAPI_BALI;
 {
 mahluk *BINATANG;
 void info()
  
 {  BINATANG = &MAMALIA;
 cout <<"Informasi() pada mamalia..." <<endl;  Menunjuk ke obyek MAMALIA
 }  BINATANG ->info(); BINATANG ->keterangan();

 cout <<"----------------------------" <<endl;

  

 Menunjuk ke obyek SAPI_BALI

 BINATANG = &SAPI_BALI; BINATANG ->info();

 BINATANG ->keterangan();

 }
HASIL
PENJELASAN

 Mula-mula terdapat penciptaan obyek berkelas MAMALIA dan SAPI dan


pointer yang menunjuk ke kelas mahluk. Kemudian pointer ini diatur agar
menunjuk ke obyek dinamis berkelas mamalia. Saat fungsi anggota
informasi() dipanggil dari pointer, ternyata yang ditampilkan adalah fungsi
anggota dari kelas mahluk. Tetapi tidak demikian halnya dengan keterangan().
  

 Pemanggilan binatang->keterangan() akan menyebabkan fungsi anggota


keterangan() milik kelas mamalia-lah yang dijalankan, mengingat pointer
binatang telah diatur untuk menunjuk ke obyek berkelas mamalia, Hal yang
serupa berlaku kalau pointer binatang diatur menunjuk ke obyek berkelas sapi
(yaitu SAPI_BALI)
  

 Suatu fungsi anggota yang dibuat sebagai fungsi virtual perlu dideklarasikan
ulang pada setiap kelas turunan. Bentuk pendeklarasiannya harus sama namun
kata kunci virtual tidak harus diberikan pada kelas turunannya.
  
POLIMORFISME PADA PEWARISAN
JAMAK
PENJELASAN
POLIMORFISME PADA JAMAK VIRTUAL
PENJELASAN

Anda mungkin juga menyukai