Friday, May 27, 2011

Polymorphisme

                Polymorphisme adalah suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.
                Bisa juga 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.
Contoh program java nya :

Simpan dengan nama CoolMahasiswa.java

public class CoolMahasiswa extends Mahasiswa{

public void printNama(){

System.out.println(“Hallo, saya Mahasiswa yang pintar”);

Super.printNama();

}

}

Simpan dengan nama Main.java

public class Main{

public static void main(String[] args]) {

CooltMahasiswa mhs = new CoolMahasiswa();

mhs.setNim(“090411100075”);

mhs.setNama(“Imam Safii”);

mhs.printNim();

mhs.printNama();

}

}

Kemudian compile dan run.

C:\>javac CoolMahasiswa.java

C:\>javac Main.java

C:\>java Main

Kontruksi objek mahasiswa

Nim: 090411100075

Hallo, saya Mahasiswa yang pintar

Nama: Imam Safii

C:\>

              Terlihat bahwa disini kita mengoverride method printNama(), dengan menambahkan beberapa teks tambahan, sehingga method printNama(), pada class CoolMahasiswa, memiliki perilaku yang berbeda dengan class Mahasiswa.

             Polimorfisme juga dapat diambil dalam dunia nyata, seperti misalnya bila dosen bertanya “Apakah saudara mengerti dengan apa yang saya jelaskan?”, maka beberapa orang akan menjawab “Tidak”, beberapa orang menggelengkan kepala sambil bergumam “Hmm…hmmm”, sebagian lagi diam. Dari contoh ini dapat dilihat bahwa masing – masing memiliki respon tertentu terhadap pertanyaan dosen.

            Dengan polimorfisme kita dapat menggunakan objek dalam banyak operasi namun prosesnya bisa jadi berbeda-beda.

Overloading

Overloading adalah suatu keadaan dimana beberapa method memiliki nama yang sama tetapi fungsionalitasnya berbeda.

Ciri Overloading :
– Nama method harus sama
– Daftar parameter harus berbeda
– Return type boleh sama, boleh berbeda


Contoh kedua:
simpennya di Student.java trus kalo ngompile pake command prompt ngompilenya javac Student.java runningnya java StudentInfo soalnya program utamanya ada di class StudentInfo, oke oke

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

Ini adalah hasil runningnya :




 

 program tugas akhir praktikum saya, silahkan dicoba jg ^_^
/*disimpan nama Hewan.java*/
class Hewan {
           
            String nama, jenis, bersuara;
     Hewan(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
                        this.nama=nama;
                        this.jenis=jenis;
                        this.bersuara=bersuara;
    }
    public String toString(){
            return "Ini adalah "+jenis+"\nNamanya "+nama+"\n"+bersuara;
    }
    public void bersuara(){                  
    }
}

/*disimpan nama Polimorfisme.java*/
import java.util.*;
class Polimorfisme{
    public static void main(String args[]){
        Hewan[] hewannya = {
          new Anjing("Broni", "Herder", "Hug Hug Hug......"),
          new Kucing("Kiti", "Persia", "Meong.. Meong... "),
          new Ayam("Toki", "Buras", "kuk kruyu. ")
        };
        Hewan pilihHewan;
       Random pilih = new Random();
        for (int i = 0; i<5 ; i++){
            pilihHewan = hewannya[pilih.nextInt(hewannya.length)];
           System.out.println("\nPilihan Anda:\n" + pilihHewan);
       
           
        }
    }
}

/*disimpan nama Ayam.java*/
class Ayam extends Hewan{
   
    private String nama,jenis,bersuara;
    Ayam(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
            super(nama, jenis, bersuara);
    }
    public void ShowAyam(){
           
            System.out.println("Nama Ayam : "+nama);
            System.out.println("Jenis Ayam : "+jenis);
           
           
//sintaks menampilkan nama dan jenis hewan

    }
    public void bersuara(){
//sintaks menampilkan suara hewan
                        System.out.println("kuk kruyu. ");
    }

}

/*disimpan nama Kucing.java*/
class Kucing extends Hewan
{
    private String nama,jenis,bersuara;
    Kucing(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
                        super(nama, jenis, bersuara);
    }
    public void ShowKucing(){
           
            System.out.println("Nama Kucig : "+nama);
            System.out.println("Jenis Kucing : "+jenis);
           
//sintaks menampilkan nama dan jenis hewan
    }
    public void bersuara(){
//sintaks menampilkan suara hewan
                        System.out.println("Meong.. Meong... ");
    }
}

/*disimpan nama Anjing.java*/
class Anjing extends Hewan{
   
    private String nama,jenis,bersuara;
   
   
    Anjing(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
                        super(nama, jenis, bersuara);
    }
    public void ShowAnjing(){
           
            System.out.println("Nama Anjing : "+nama);
            System.out.println("Jenis Anjing : "+jenis);
           
           
//sintaks menampilkan nama dan jenis hewan

    }
    public void bersuara(){
//sintaks menampilkan suara hewan
                        System.out.println("Hug Hug Hug...... ");
    }

}
 hasil runnignya adalah


 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Blogger Templates