Selasa, 31 Mei 2011

Modul 2 Praktikum PBO: Polymorphism

Hai temen2... kmabali lgi nih... skrg Q mo bahas tentang modul 2 di praktikum PBO nih smoga bermanfaat ya...

Tapi sebelum ngebahas lebih lanjut tentang apa aja modul 2 itu, pasti temen2 bertanya2 apa itu polymorphism, klo bhasanya presenter salah satu acra musik di TV swasta i2, cekidot mngenal polymorphism...!


Polymorphism adalah kemampuan dari objek untuk menggunakan method dengan nama yang sama tetapi dengan tipe atau parameter yang berbeda-beda. Secara prinsip, polimorphism sama seperti interface.yaitu memaksa sub classnya untuk mengoverride method-methodnya.

Salah satu Keuntungan dari polymorphism itu sendiri yaitu Menghindari duplikasi object,kita dapat menciptakan class baru dari class yang sudah ada,sehingga tidak perlu menuliskan code dari nol ataupun mengulangnya, namun tetap bisa menambahkan attribute dan atau method unik dari class itu sendiri. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface banyak aksi. Seperti halnya dalam membuat gambar segitiga.

Polymorphism itu sendiri terbagi menjadi 2 bagian yaitu :
* function overloading yaitu function yang bisa dideklarasikan lebih dari 1 kali dengan menggunakan nama yang sama namun menggunakan parameter yang berbeda.
Contoh :

Public void cetak(){ }
Public void cetak(String str){ }
Public void cetak(String str,int line){ }

* function overriding yaitu kemampuan suatu objek untuk menjalankan/memanggil method dengan cara yang berbeda.
Contoh:

cetak();
cetak(“kalimat”);
cetak(“kalimat”,5);

Selain pembahasan diatas tersebut, saya juga dapet implementasi dan tugas akhir dari modul 2 ini, lanjung aja ya kawand......cekidot!!!

implementasi

Kita membuat tiga object class dengan nama Student, subclass, StudentGrad dan class StudentInfo. Class Student tersebut mempunyai method Write yang digunakan
untuk melewatkan argumen untuk kemudian ditampilkan dengan menggunakan method Display.
Pengen tahu source code di java langsung ja nih...


/*Disimpan dengan nama Student.java*/
/*Kode Program untuk kelas Student*/
class student_mega {
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_diah {
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();
}

}

Output untuk Source code diatas sebagai berikut:


Tugas akhir


Tugas pada modul 2 ini yaitu kita disuruh membuat kelas polimorfisme dengan menampilkan kelas hewan yang terdiri dari anjing, ayam dan Kucing.
Langsung ja nih source codenya bisa dilihat di bwh ini:
Pada source code ini terdiri dari beberapa kelas,ni sintak Class Polimorfisme


/*Disimpan dalam file polimorfisme.java*/
/*Kode Program untuk kelas polimorfisme*/
//Kelas induk
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(); } }
}

Sintaks untuk Class Hewan


/*Disimpan dalam file hewan.java*/
/*Kode Program untuk kelas hewan*/
class hewan {
private String tipe; //kelas bisa diakses oleh kelas sendiri
public hewan(String tipe){ //kelas hewan dapat diakses oleh kelas luar
this.tipe = tipe; //pendeklarasian variabel tipe
}

public String toString(){ //pengubahan tipe data dari string akan dibaca string lagi
return "Ini adalah "+tipe;//pengulangan kembali nama hewan
}

public void bersuara(){ //method untuk suara hewan
}

}

Sintaks untuk Class anjing


/*Disimpan dalam file Anjing.java*/
/*Kode Program untuk kelas Anjing*/
class Anjing extends hewan{ //kelas turunan dari kelas hewan
private String nama; //pendeklarasian nama untuk hak akses private
private String jenis; //pendeklarasian jenis untuk hak akses private
public Anjing(String nama, String jenis){ //pendeklarasian kelas anjing dengan hak akses publik

super("Anjing"); //merupakan kunci dari suatu kelas yang diturunkan

//pendeklarasian variabel
this.nama=nama;
this.jenis=jenis;
}

public void bersuara(){ //method suara dari kelas anjing
System.out.println("Guk.. Guk.. Guk.. ");

}

//pengulangan kembali dimana string diubah menjadi string lagi
public String toString(){
return super.toString()+"\nIni adalah "+jenis+" bernama "+nama;

}

}

Sintaks untuk Class ayam


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

}

Sintaks untuk Class kucing


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

}


berikut ini output dari source code diatas:


Semoga bermanfaat ya kawand....dan temend2 bsa lebih mengerti lagi apa yang dimaksud polimorfisme, utuk modul ini cukup sekian ya... kita ketemu di modul berikutnya....gotcha!!!

Tidak ada komentar:

Posting Komentar