Pages

Minggu, 12 Juni 2011

Modul 2 PBO

POLYMORPH
               Metode disebut polimorfis jika aksi yang dilakukan oleh suatu metode berbeda-beda tergantung pada objek aktual pada saat metode itu dijalankan. Polimorfisme adalah salah satu fitur utama dalam pemrograman berorientasi objek. Sebagai contoh, sebuah class induk dengan nama Student mempunyai subclass StudentGrad, dan ditambahkan class lain dengan nama StudentInfo.

Gambar 1 : Class Student dan subclass nya
                  Dari gambar diatas class StudentInfo digambarkan mempunyai hubungan polymorfisme dengan class StudentGrad dan tentunya dengan class induk dari StudentGrad yaitu class induk Student..
TUGAS PENDAHULUAN
    1. Keuntungan apa yang bisa didapat dengan Polymorphism? Kita bisa membuat kode program tanpa harus mengetahui persis apa yang akan dilakukan program saat kita menulis program tersebut
    1. Bagaimana hubungan antar teknik overloading dengan Polymorphism? Metode overloading adalah mendefinisikan metode yang memiliki nama yang sama, tetapi dengan signature yang berbeda dalam definisi class yang sama. Sedangkan polimorfisme merupakan kemampuan dari suatu variabel referensi objek untuk memiliki aksi berbeda bila metode yang sama dipanggil, dimana aksi metode tergantung dari tipe objeknya dan signature metode harus sama baik pada superclass maupun subclass.


KEGIATAN PRAKTIKUM
Membuat kelas Student       
/*Disimpan dengan nama Student.java*/
/*Kode Program untuk kelas Student*/
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;
}
Membuat kelas StudentGrad yang merupakan kelas turunan dari kelas Student     
/*Disimpan dengan nama StudentGrad.java*/
/*Kode Program untuk kelas StudentGrad*/
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;
}
Membuat kelas StudentInfo yang digunakan untuk memasukan agumen ke kedua metode pada masing-masing class Student dan StudentGrad   
/*Disimpan dengan nama StudentInfo.java*/
/*Kode Program untuk kelas StudentInfo*/
class StudentInfo {
     public static void main (String args[]) {
         StudentGrad myStudent = new StudentGrad();
         myStudent.Write(10, 1,"Bob","Smith", 2000,"Columbia University","CS");
         myStudent.Display();  
        }
}
Hasil Running:

TUGAS AKHIR
Membuat kelas hewan
/*Disimpan dalam file hewan.java*/
/*Kode Program untuk kelas hewan*/
class hewan {
      private String tipe;
      public hewan(String tipe){
            this.tipe = tipe;
      }
      public String toString(){
            return "Ini adalah "+tipe;
      }
      public void bersuara(){
      }
}
Membuat kelas Anjing, Ayam, Kucing, Sapi, Kambing, dan Bebek yang merupakan kelas turunan dari kelas hewan
/*Disimpan dalam file Anjing.java*/
/*Kode Program untuk kelas Anjing*/
class Anjing extends hewan{
    private String nama;
    private String jenis;
    public Anjing(String nama, String jenis){
      super("Anjing");
      this.nama=nama;
      this.jenis=jenis;
     
    }
    public void bersuara(){
      System.out.println("Guk.. Guk.. Guk.. ");
    }
    public String toString(){
        return super.toString()+"\nIni adalah "+jenis+" bernama "+nama;
    }
}

/*Disimpan dalam file Ayam.java*/
/*Kode Program untuk kelas Ayam*/
class Ayam extends hewan{
    private String nama;
    private String jenis;
    public Ayam(String nama, String jenis){
      super("Ayam");
      this.nama=nama;
      this.jenis=jenis;
    }
    public void bersuara(){
      System.out.println("Kukuruyuk.. Petok.. Petok..");
    }
    public String toString(){
        return super.toString()+"\nIni adalah "+jenis+" bernama "+nama;
    }
}

/*Disimpan dalam file Kucing.java*/
/*Kode Program untuk kelas Kucing*/
class Kucing extends hewan{
    private String nama;
    private String jenis;
     
    public Kucing(String nama){
      super("Kucing");
      this.nama=nama;
    }
    public Kucing(String nama, String jenis){
      super("Kucing");
      this.nama=nama;
      this.jenis=jenis;
    }
    public void bersuara(){
      System.out.println("Meong.. Meong.. Meong.. ");
    }
    public String toString(){
        return super.toString()+"\nIni adalah "+jenis+" bernama "+nama;
    }
}

/*Disimpan dalam file Sapi.java*/
/*Kode Program untuk kelas Sapi*/
class Sapi extends hewan{
    private String nama;
    private String jenis;
    public Sapi(String nama, String jenis){
      super("Sapi");
      this.nama=nama;
      this.jenis=jenis;
     
    }
    public void bersuara(){
      System.out.println("Hemma.. Hemma.. Hemma.. ");
    }
    public String toString(){
        return super.toString()+"\nIni adalah "+jenis+" bernama "+nama;
    }
}

/*Disimpan dalam file Kambing.java*/
/*Kode Program untuk kelas Kambing*/
class Kambing extends hewan{
    private String nama;
    private String jenis;
     
    public Kambing(String nama){
      super("Kambing");
      this.nama=nama;
    }
    public Kambing(String nama, String jenis){
      super("Kambing");
      this.nama=nama;
      this.jenis=jenis;
    }
    public void bersuara(){
      System.out.println("Mbeek.. Mbeek.. Mbeek.. ");
    }
    public String toString(){
        return super.toString()+"\nIni adalah "+jenis+" bernama "+nama;
    }
}

/*Disimpan dalam file Bebek.java*/
/*Kode Program untuk kelas Bebek*/
class Bebek extends hewan{
    private String nama;
    private String jenis;
     
    public Bebek(String nama){
      super("Bebek");
      this.nama=nama;
    }
    public Bebek(String nama, String jenis){
      super("Bebek");
      this.nama=nama;
      this.jenis=jenis;
    }
    public void bersuara(){
      System.out.println("Wek.. Wek.. Wek.. Wek.. ");
    }
    public String toString(){
        return super.toString()+"\nIni adalah "+jenis+" bernama "+nama;
    }
}
Membuat kelas polimorfisme yang merupakan program utama dan sekaligus mengimplementasikan penggunaan metode polimorfisme
/*Disimpan dalam file polimorfisme.java*/
/*Kode Program untuk kelas polimorfisme*/
import java.util.Random;
class polimorfisme{
    public static void main(String args[]){
        hewan[] hewannya = {
            new Anjing("Broni", "Herder"),
            new Kucing("Kiti", "Persia"),
            new Ayam("Toki", "Buras")
        };
        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);
            pilihHewan.bersuara();
        }
    }
}
Hasil Running :

0 komentar:

Posting Komentar