Selasa, 30 April 2013

 Pertanyaan :

Buatlah ringkasan dan cara penggunaan dari Polymorphism dan Inheritance pada kasus permasalahan yang sering terjadi.



Jawaban :
Polymorphism adalah teknik pemrograman yang memungkinkan programmer menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek,maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki sifat yang berbeda.

Contoh program Java menggunakan teknik Polymorphism :

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;
}

untuk yang ini simpan dengan nama StudentGrad.java
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;
}

dan yang ini simpan dengan nama file StudentInfo.java

class StudentInfo {
     public static void main (String args[]) {
         StudentGrad myStudent = new StudentGrad(); 
         myStudent.Write(10,1,"Bob","Smith", 2000,"Columbia University","CS");
         myStudent.Display();   
        }
}
Inheritance
Inheritance atau pewarisan pada pemrograman berorientasi objek merupakan suatu hubungan dua buah kelas atau lebih. dalam hal ini ada kelas yang memiliki atribut method yang sama dengan kelas lainnya beserta atribut dan metode tambahan yang merupakan sifat khusus kelas yang menjadi turunannnya. Pada dasarnya, teknik inheritance digunakan untuk membuat suatu class yang masih memiliki sifat atau spesifikasi dari class induknya / superclass.
Dalam proses pewarisan ini data dan method yang dimiliki oleh suatu class akan diwariskan seluruhnya kepada class pewarisnya.  Suatu class yang mewariskan disebut dengan Super Class atau Class Induk. Sedangkan class yang diwariskan disebut dengan SubClass atau Class Sub atau Class Anak. Suatu method diclass anak memiliki nama yang sama dengan method diclass induknya disebut dengan Override (Overriding). Overriding adalah kemampuan class anak untuk memodifikasi atau mendefinisikan kembali data dan method dari kelas induknya. Untuk mengaplikasikan konsep inheritance didalam program, dengan menggunakan kata kunci extends. Sifat lain perwarisan yaitu Overloading, yaitu penggunaan satu nama class untuk beberapa method yang berbeda parameter.
contoh program menggunakan teknik inheritance :

program induk mangga.java

public class mangga
{
    protected String namemangga;
    protected String jenis;
    public mangga()
    {
        System.out.println(“\n Contoh Program  Inheritance”);
        System.out.println(“============================”);
        System.out.println(“   Masukan construktor mangga  “);
        System.out.println(“–Dijalankan oleh class Apel–”);
        namemangga=”mangga madu”;
        jenis=”unggulan”;
    }
    public mangga(String name,String jenis)
    {
        this.namemangga=namemangga;
        this.jenis=jenis;
    }   
    public String getName()
    {
        return namemangga;
    }
    public String getjenis()
    {
        return jenis;
    }
}

program anak/turunan:

program jeruk.java

public class jeruk extends mangga
{
    protected String namejeruk;
    protected String jenisjeruk;
    public jeruk()
    {
        System.out.println(“Nama mangga :”+namemangga);
        System.out.println(“Address mangga :”+jenis);
        System.out.println(“\n”);
        System.out.println(” Masukan Construktor jeruk “);
        System.out.println(“—-dijalankan class anggur—-”);
        namejeruk=”jeruk bali”;
        jenis jeruk=”kualitas 1”;
        }
        public jeruk(String namejeruk,String jenisjeruk)
        {
            this.namejeruk=namejeruk;
            this.jenisjeruk=jenis jeruk;
        }
        public String getNama()
        {
            return namejeruk;
        }
        public String getjenis()
        {
            return jenisjeruk;
        }
        public static void main(String []args)
        {
            jeruk sari=new jeruk();
        }
}

program anggur.java

public class anggur extends jeruk
{
    public anggur()
    {
        System.out.println(“Nama jeruk  :”+namejeruk);
        System.out.println(“jenis jeruk :”+jenisjeruk);
    }
    public static void main(String []args)
    {
        String namaanggur;
        anggur lagan=new anggur();
        System.out.println(“\n ini anggur kualitas terbaik”);
        System.out.println(“Nama anggur : anggur australia”);
        System.out.println(“”);
    }
}

jika ingin menjalankan program datas makan kita perlu mengkompile terlebih dahulu class apel.java, jangan di run karena main programnya terdapat dalam class jeruk.java dan anggur.java.


Metodenya adalah sebagai berikut :
-Dengan satu baris perintah kita bisa menggunakannya untuk berbagai keperluan, fungsi itu akan menyesuaikan sendiri ke pemanggilnya.
-Ilustrasinya adalah tombol play. Dimana-mana tombol play fungsinya sama, untuk menjalankan. Padahal beda cara kerja tombol play di vcd dan radio.