Senin, 06 Juni 2011

POLYMORPHISM


Polymorphism merupakan konsep OOP yang memberikan fleksibilitas kepada programmer dalam menulis program.  Dengan mengaplikasikan konsep polymorphism, programmer dapat memperlakukan seluruh object yang berasal dari superclass yang sama seakan-akan mereka adalah object dari superclass.
Dari pengertian tersebut,  polymorphism dapat didefinisikan dengan penggunaan lebih dari satu  method dengan nama yang sama (pembedanya adalah berdasarkan jumlah dan jenis parameter yang didefinisikannya). Polymorphism bisa dibangun dengan menerapkan :
•  Overiding  : mendefinisikan method dengan nama sama pada class yang berbeda
•  Overloading : mendefinisikan method dengan nama sama dalam satu class.
Konsep overloading, sudah sering kita gunakan dalam penggunaan  constructor. Sedangkan konsep overiding, dapat kita manfaatkan dalam beberapa kasus  inheritance, di mana menginginkan penamaan method dengan nama sama namun berbeda dalam impelementasinya, atau dalam kata lain dalam penggunaan interface.
Dari pengertian lain bahwa polymorphism dapat berperan untuk penerapan  reusability lebih mudah ketika menerapkan proses penurunan  class. Atau dengan kata lain, dengan  polymorphism,  reference type  dapat merupakan  superclass dari  object type  yang digunakan.
Dalam kasus dunia nyata, jika kita bekerja sebaga tim, kita bisa mempercayakan proses pembuatan berbagai  class kepada teman satu tim kita dengan mudahnya, jika  class tersebut telah merupakan  subclass dari  superclass yang menjadi  class utama dalam pembuatan program tersebut, namun proses tersebut tidak perlu mengubah class-class yang telah kita buat sebelumnya.
Keuntungan apa yang bisa didapat dengan Polymorphism yaitu:
1.      Aplikasi Mudah Terjulur: 
Setelah aplikasi ditulis menggunakan konsep polimorfisme, dengan mudah dapat diperpanjang, menyediakan objek baru yang sesuai dengan antarmuka asli. Hanya menghubungkan kembali perlu menunjukkan perubahan baru bersama dengan aplikasi lama. Dalam bahasa pemrograman, selalu ada kebutuhan untuk menambahkan dan mengubah. Dengan memanfaatkan konsep polimorfisme, waktu dan tenaga kerja berkurang di samping perawatan membuat masa depan lebih mudah.
2.      Helps in reusability of code. Membantu dalam usabilitas kode.
3.      Provides easier maintenance of applications. Menyediakan lebih mudah pemeliharaan aplikasi.
4.      Helps in achieving robustness in applications. Membantu dalam mencapai ketahanan dalam aplikasi.
Bagaimana hubungan antar teknik overloading dengan Polymorphism yaitu keadaan pada saat terjadinya polimorfisme pada class yang sama atau pada suatu parent class dan subclassnya,yang mempunyai ciri-ciri adalah : Nama Method harus sama,Daftar parameter harus beda,Return Tipe boleh sama,juga boleh beda.
Contoh :
Membuat tiga object class dengan nama Student, subclass StudentGrad dan class StudentInfo
class Student {
   public void Write(int ID, int Grad, String Fname, String Lname) {
       m_ID = ID;
       m_Graduation = Grad;
       m_First = Fname;
       m_Last = Lname;
    }  
    public void Display(){
        System.out.println( "Student: " + m_ID + " " + m_First + " " + m_Last + " Graduated: " + m_Graduation);
    }  
    private int m_ID, m_Graduation;  
    private String m_First;  
    private String m_Last;
}
class StudentGrad extends Student {
   public void Write(int ID, int Grad, String Fname, String Lname, int yrGrad, String unSch, String major) {
       super.Write(ID, Grad, Fname, Lname);
       m_UndergradSchool = unSch;
       m_Major = major;
       m_Grad = Grad;
       YearGraduated = yrGrad;
    }
    public void Display(){
        super.Display();
        System.out.println(" Graduated: " + m_Grad + " " + m_UndergradSchool + " " + m_Major + " " + YearGraduated);
    }  
    private Integer YearGraduated,m_Grad;
    private String m_UndergradSchool;
    private String m_Major;
}

class StudentInfo {
     public static void main (String args[]) {
         StudentGrad myStudent = new StudentGrad();
         myStudent.Write(10, 1,"Hilyati","Safitri", 2000,"Harvard University","CS");
         myStudent.Display();  
        }
}
Hasil Running Program:



Contoh 2:Kucing, Ayam, dan Anjing merupakan makhluk hidup yang masuk kategori hewan, tiap hewan pasti mempunyai identitas baik itu berupa tipe hewan dan suaranya.
Gambar 2 : Class Hewan dan subclass nya




Source Codenya:
 
Hasil Running Program:

 

1 komentar: