Tuesday, November 06, 2012

OOP: Polymorphism

Pengantar Polymorphism atau polimorfisma.


Polymorphism  adalam Fitur dalam Bahasa Program dimana data atau objek dengan tipe berbeda, bisa dikelola melalui mekanisme atau interface yang sama .

Jenis2 polimorfisma di antaranya:

1. Ad-hoc polymorphism
Bila sebuah fungsi atau proses yang sama mempunyai implementasi yang berbeda-beda, sesuai dengan jenis dari entitas yang memiliki proses tersebut.  Caranya melalui: method overloading.  


2. Parametric polymorphism.

Sebuah function atau a data type dapat dituliskan secara generik sehingga dapat menangani nilai secara identik, tanpa tergantung tipe datanya apa .

3. Sub Type polymorphism/Inclusion Polymorphism
Satu objek merupakan sub tipe dari objek yang lain.  Mekanismenya melalui inheritance atau subclassing , dengan teknik yang disebut overriding.


Overloading dan Overriding

Overloading
Teknik untuk menggunakan ulang nama method (dalam sebuah Class), tetapi dengan argumen dan atau return value yang berbeda.
Dalam implementasi kode, sebuah method bisa dideklarasikan lebih dari satu kali, dan masing-masing mempunyai argumen atau parameter input yang berbeda.


Overriding
Teknik  untuk menggunakan ulang nama method (dari Class yang berbeda) dengan argumen dan nilai balikan yang sama. Pada teknik ini, dilakukan inheritance dari satu Class ke Class yang lain, dan method yang diturunkan pada Class Anak ditulis ulang. 


Berikut contoh kode pada Overloading. 

Class  SepedaMotor()
{
      public double  CekHargaJual(int Tahun)
       {
if (Tahun<2000) return 2000000;
else return 50000000;
       }

       public double CekHargaJual(String Merek, int Tahun)
      {
if (Tahun<2000 && Merk!=“Honda”)
   return 2000000;
else
   return 3000000;
      }

Pada contoh di atas, tampak untuk melakukan fungsi bernama CekHargaJual, ada dua method yang sama didefinisikan dalam satu Class, tetapi yang satu mempunyai satu argumen (Tahun), satunya lagi dua argumen (Merek dan Tahun).  Teknik kode ini disebut Overloading.




Berikut adalah contoh kode pada Overriding.

Class MahlukHidup()
{
  public void Makan()
{
  System.out.println(“Dengan Tangan”);
};
  public void Minum(){};
}

selanjutnya dibuat Class Manusia yang merupakan turunan dari Class  MahlukHidup. Tetapi disini, method Makan ditulis ulang, sehingga cara Makan() Manusia tidak lagi sama dengan MahlukHidup.




Class Manusia extends MahlukHidup()
{
      public void Berbicara(){};
      public void Makan()
       {
System.out.println(“Dengan Sendok”);
       }


Teknik ini disebut overriding, yakni adanya proses menggantikan fungsi tertentu sehingga mempunyai penerapan yang berbeda, meskipun namanya sama.














No comments: