Selasa, 17 April 2012

Pengertian Polymorphism dan Contoh Programnya

Nama : Ledy Sri Rejeki
NPM : 53410989
Kelas : 2ia07
Tugas : PBO
Teman Sekelompok : Irfan Maulana
Link : http://ipanmydreams.blogspot.com


Salah satu Pemrograman Berorientasi Objek yang lain adalah polymorphism yaitu kemampuan objek bertipe sama beraksi berbeda terhadap “pesan” yang sama.

Polymorphism merupakan suatu aksi yang memungkinkan pemogram menyampaikan suatu pesan tertentu keluar dari hierarki obyeknya, dimana suatu obyek tersebut yang berbeda memberikan tanggapan ataupun respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek. Itu berarti, Polymorphism “mempunyai banyak bentuk” yang juga merupakan salah satu sifat class yang memungkinkan sebuah method mempunyai nama yang sama, namun memiliki aksi yang berbeda.
Polymorphism adalah pemikiran bahwa objek dinamis suatu class dasar dapat berperilaku seperti class turunan. Jika objek menunjuk class dasar maka ia perilaku seperti class dasar, dan jika ia menunjuk class turunan ia akan berperilaku seperti class turunan.

Dalam hal ini obkjek memiliki beberapa bentuk, tergantung ia menunjuk kemana. Dalam hal ini suatu objek atau class dan perubahan perilakunya adalah dari kelas dasar ke kelas turunan, tidak bisa objek kelas turunan menunjuk ke kelas dasar. Polimorfisme dimungkinkan karena adanya mekanisme ikatan dinamis, ikatan ini adalah ikatan yang terjadi ketika program dijalankan (run-time), ikatan yang terjadi pada saat compiling disebut ikatan dinamis. Ikatan dinamis hanya akan terjadi antara suatu objek dinamis dengan metode yang dinamis juga, dalam hal ini metode virtual (maya)

Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk. Dalam PBO, konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda.
Keuntungan Pemograman dengan menggunakan Polymorphism adalah :
• Kita dapat menggunakan kelas-kelas yang kita buat (sebagai super kelas) dan membuat kelas kelas baru berdasar superkelas tersebut dengan karakteristik yang lebih khusus dari behaviour umum yang dimiliki superkelas.

• kita dapat membuat super kelas yang hanya mendefinisikan behaviuor namun tidak memberikan implementasidari metode-metode yang ada.Hal ini berguna jika kita ingin membuat semacam template kelas,kelas semacam ini disebut kelas abstrak karena behaviournya masih abstrak dan belum diimplementasikan.subkelas-subkelas dari kelas semacam ini yang disebut kelas konkret,mengimplementasikan behaviuor abstrak tersebut sesuai dengan kebutuhan masing-masing.

• Menghindari duplikasi object,kita dapat menciptakan class baru dari class yang sudah ada,sehingga tidak perlu menuliskan code dari nol ataupun mengulangnya, namun tetap bisa menambahkan attribute dan atau method unik dari class itu sendiri. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface banyak aksi.

Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.
Pada dasarnya ada 2 tipe polymorphism, yaitu:

1. Static atau trivial merupakan, function overloading (penggunaan kembali nama fungi yang sama tapi dgn argumen yang berbeda) yang terbagi dalam 3 signature yaitu:

- Jenis Array
- Letak Array
- Type Array

Contoh function overloading :
void tambah (int a, int b);
void tambah(float d, float c);

2. Dynamic atau true
Merupakan function overriding (sebuah fungsi dalam class turunan yang memiliki nama, return type argumen function yang sama dengan fungsi dalam class induk). Menggunakan virtual method.

Pure Virtual Method (tanpa function body)
contoh : virtual void jalan() = 0;

Squasi Virtual Method (ada function body)
contoh : virtual void info() {;}

Contoh Program Polymorphism :
class mencetakdata {

// membuat method dengan nama sama tapi berbeda tipe data
public void cobacetak(String Mencetak) {
System.out.println(Mencetak);
}
public void cobacetak(int Mencetak) {
System.out.println(Mencetak);
}
public void cobacetak(double Mencetak) {
System.out.println(Mencetak);
}
public void cobacetak(char Mencetak) {
System.out.println(Mencetak);
}
}

public class cobapolymor {

public static void main(String[] args) {
mencetakdata data = new mencetakdata();

System.out.print("Cetak Data Tipe String : ");
data.cobacetak("DKI Jakarta");

System.out.print("Cetak Data Tipe Integer : ");
data.cobacetak(1992);

System.out.print("Cetak Data Tipe Double : ");
data.cobacetak(16.5 / 2);

System.out.print("Cetak Data Tipe Char : ");
data.cobacetak('N');
}
}


Sumber : http://johari.e-nixsoft.com/?p=3
http://putriayuwulansari03pot.blogspot.com/2010/01/polymorphism.html

Tidak ada komentar:

Posting Komentar