Pages

Total Tayangan Halaman

Senin, 16 April 2012

Memahami Konsep Inheritance (Pewarisan) dan Polimorfisme Pada OOP

Nama : Mochamad Yudha Sugiarto Sultan
Npm : 54410445
Kelas : 2IA13
Kelompok saya adalah : Dirgan Traviata Masjaya
Blog teman saya : http://dear-gun.blogspot.com

INHERITANCE
Inheritance adalah pewarisan yang artinya sebuah kelas yang mewarisi atribut dan methode dari kelas lain yang masih sejenis, sebagai contoh dalam dunia nyata adalah kelas hewan menurunkan sifat dan kemampuannya kepada kelas hewan mamalia, kelas hewan bertulang belakang dll, kelas Hewan sebagai superclass dan mewarisi atribut juga methodenya kepada hewan mamalia sebagai subclass.

Kita dapat mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada. Penurunan sifat ini bisa dilakukan secara bertingkat-tingkat, sehingga semakin ke bawah kelas tersebut menjadi semakin spesifik. Sub kelas memungkinkan kita untuk melakukan spesifikasi detail dan perilaku khusus dari kelas supernya. Dengan konsep pewarisan, seorang programmer dapat menggunakan kode yang telah ditulisnya pada kelas super berulang kali pada kelas-kelas turunannya tanpa harus menulis ulang semua kode-kode itu.

Penurunan sifat memungkinkan kita untuk membuat sebuah objek baru yang sama dengan objek sebelumnya yang telah didefinisikan. Karakteristik dari suatu objek diturunkan ke objek yang lain sehingga objek yang baru akan memiliki karakteristik yang sama dengan induknya. Penurunan ini diawali dengan mendefinisikan objek induk, sehingga dengan menggunakan objek induk tersebut, dapat membuat objek yang bertumpu pada objek induknya. Sehingga akan terbentuk objek keturunan. Dimana setiap objek turunannya dapat mengakses semua data dan program yang dimiliki oleh objek induknya. Berikut ini contoh program sederhana menggunakan Java dengan Eclipse.

Contoh Program :

save dengan nama PersegiPanjang.java

class PersegiPanjang
{
double panjang;
double lebar;

PersegiPanjang(double panjang, double lebar) {
this.panjang = panjang;
this.lebar = lebar;
}

PersegiPanjang()
{
throw new UnsupportedOperationException("Not yet implemented");
}
double hitungLuas() {
return (panjang * lebar);
}
double getPanjang() {
return panjang;
}
double getLebar() {
return lebar;
}
}kemudian buat lagi dengan nama filenya Balok.java


class Balok extends PersegiPanjang{
double tinggi;

Balok(double panjang, double lebar, double tinggi) {
super(panjang, lebar);
this.tinggi = tinggi;
}

@Override
double hitungLuas() {
return (panjang * lebar * tinggi);
}
}

Selanjutnya membuat program utama, untuk menampilkan hasil proses yang dilakukan oleh class PersegiPanjang dan class Balok.

save dengan nama file Hitung.java


class Balok extends PersegiPanjang{
double tinggi;

Balok(double panjang, double lebar, double tinggi) {
super(panjang, lebar);
this.tinggi = tinggi;
}

@Override
double hitungLuas() {
return (panjang * lebar * tinggi);
}
}
outputnya :




POLIMORFISME
Dalam pemrograman berorientasi object kita mengenal suatu istilah yaitu “ Polimorfisme ”, yaitu suatu teknik dalam programming yang lebih mengarahkan kita untuk memprogram secara general dari pada secara spesifik. Sebagai contoh seumpama kita memiliki 3 class berbeda yaitu: “Motor”, “Mobil” dan “Pesawat”. Dimana ketiga class tersebut adalah turunan dari class “Kendaraan”. Dalam kelas kedaraan terdapat suatu method yaitu “Move()”, akan tetapi apakah method “Move()” akan memberikan hasil yang sama pada tiga class tersebut. Dimana jika method “Move()” dipanggil pada class “Motor” akan menghasilkan perpindahan 30Km, jika pada class “Mobil” akan menghasilkan perpindahan 70Km dan jika dipanggil pada class “Pesawat” akan menghasilkan perpindahan 300Km. Hal inilah yang kita sebut sebagai Polimorfisme , yaitu penggunaan method yang sama, yang akan menghasilkan suatu hasil yang berbeda tergantung class yang menggunakan method tersebut.
Berikut ini adalah contoh program java yang menggunakan polimorfisme :

save dengan nama file Orang.java
public class Orang {
public String nama;
public String alamat;

//Constructor...
public Orang(){
}
public Orang(String nama) {
this.nama = nama;
}
public Orang(String nama,String alamat){
this.nama=nama;
this.alamat=alamat;
}

//accessor method mengembalikan nilai
public String getName(){
return nama;
}

//mutator methode untuk mengubah nilai dari instance.
public void setName(String nama){
this.nama = nama;
}
}


save dengan nama file Mahasiswa.java
public class Mahasiswa extends Orang{
String jeniskelamin;
public Mahasiswa() {

//super digunakan untuk memanggil constructor terdekat pada kelas Orang.
super("Dirgan");
}

//overidde methode dari kelas Orang..
public String getName(){
return nama;
}

public void setName(String nama){
this.nama = nama;
}
}

save dengan nama file Pekerja.java
public class Pekerja extends Orang{
public Pekerja() {
super("Yudha");
}

//ovveride dari kelas Person
public String getName(){
return nama;
}

public void setName(String nama){
this.nama = nama;
}
}

save dengan nama file CallOrang.java untuk memanggil semua class…intinya sebagai pusat pemanggilan.

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

//contoh polimorfisme di java
Orang call;
Mahasiswa m = new Mahasiswa();
Pekerja n = new Pekerja();

//memanggil dari kelas mahasiswa
call = m;
String smp = call.getName();
System.out.println("aku dari bagian Mahasiswa.java : " + smp);

//memanggil dari kelas pekerja
call = n;
String sma = call.getName();
System.out.println("aku dari bagian Pekerja.java : " + sma);
}
}

Tidak ada komentar:

Posting Komentar