Senin, 25 Maret 2013

Polimorfisme dengan proses override

Proses override dibentuk agar Java dapat mendukung konsep polimorfisme. Sedangkan Polimorfisme itu sendiri adalah kemampuan suatu objek untuk mengungkap banyak hal melalui satu cara yang sama. Polimorfisme merupakan salah satu hal esensial dalam konsep pemrograman berorientasi objek karena alasan berikut : polimorfisme mengizinkan kelas induk untuk mendefinisikan sebuah method general (bersifat umum) untuk semua kelas turunannya, dan selanjutnya kelas-kelas turunan dapat memperbaharui impelemtasi dari method tersebut secara lebih spesifik sesuai dengan karakteristiknya masing-masing.

Untuk mempermudah dalam memahami konsep ini. Kita ambil contoh. Misalnya sebuah kelas induk dengan nama Penyanyi, yang akan diturunkan lagi menjadi kelas PenyanyiJazz, PenyanyiPop, PenyanyiDangdut. Pada saat kita memilih 5 orang penyanyi untuk menyanyikan suatu lagu, maka kelima penyanyi tersebut pasti akan menyanyi dengan karakteristiknya masing-masing. Artinya apabila dia adalah penyani jazz maka pola nada atau irama yang dia nyanyikan tentu akan kental dengan nuansa jazz. begitu pula apabila dia merupakan seorang penyanyi pop maupun dangdut, maka nadanya juga akan berirama pop atau dangdut. Berikut ini contoh implementasi kasus tersebut ke dalam kode program.

Kelas Penyanyi :






Kelas turunan PenyanyiJazz :
Kelas turunan PenyanyiPop : 
Kelas turunan PenyanyiDangdut : 
Main Program DemoPolimorfisme : 
Output Program :

Seperti yang dilihat diatas, kita mendeklarasikan variabel aaaareferensi ke tipe Penyanyi dengan nama p. Sampai disini, kita belum mengetahui apakah p merupakan penyanyi jazz, penyanyi pop, ataukah penyanyi dangdut. Namun pada saat p mengacu ke objek dari kelas PenyanyiJazz, kemudian kita memanggil method bernyanyi() melalui referensi tersebut, maka method yang akan dieksekusi adalah method bernyanyi() yang terdapat pada kelas PenyanyiJazz. Ini artinya, method yang akan dipanggil oleh p akan tergantung dari objek yang sedang ditunjuk atau diacu oleh p. Begitu pula apabila p sedang menunjuk ke objek dari kelas PenyanyiPop maupun PenyanyiDangdut, method yang dipanggil pun akan disesuaikan dengan objek yang ada. Hal semacam inilah yang dinamakan polimorfisme. Artinya, cara yang dilakukan sama, yaitu p.bernyanyi(), akan tetapi implementasinya berbeda-beda sesuai dengan tipe objek yang sedang diacu. Penentuan objek mana yang akan diacu dilakukan pada saar run-time sehingga proses ini dikenal dengan istilah runtime polymorphism atau dynamic method dispatch (pengiriman method secara otomatis).

Anggota :
http://muhyinhari.blogspot.com/ (Muhyin Hari Sasono)

Tidak ada komentar:

Posting Komentar