Selasa, 17 April 2012

Pengertian Inherintance dan Contoh Programnya

Nama : Ledy Sri Rejeki
NPM : 53410989
Kelas : 2ia07
Tugas : PBO
Teman Sekelompok : Irfan Maulana
Link : http://ipanmydreams.blogspot.com


Inherentance

Setelah membahas mengenai Enskapsulasi di pertemuan sebelumnya, kali ini saya ingin membahas mengenai pengertian dan contoh program dari pemograman Inherentance. Mudah-mudah berguna bagi para pembaca ya, cekidotlah .
Salah satu konsep dasar dari pemrograman berbasis objek pada java adalah Inheritance, berikut ini saya akan memberikan sedikit gambaran tentang inheritance.
Pada dasarnya, kita melakukan inheritance(pewarisan) untuk membuat suatu class baru(class turunan/subclass) yang masih memiliki sifat atau spesifikasi dari superclass.

Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
Dan pengertian dari Inheritance itu sendiri adalah salah satu bentuk penggunaan kembali perangkat lunak dimana suatu kelas baru dibuat dari kelas yang sudah ada dengan memakai variabel data fungsi (method) dari kelas yang sudah ada tersebut serta menambah atribut/pelaku yang baru, kelas baru otomatis memiliki variabel atau fungsi yang dimiliki kelas asal yang merupakan pewarisan pada pemrograman berorientasi objek yang merupakan suatu hubungan dua buah kelas atau lebih. Dalam hal ini ada kelas yang memiliki atribut dan metode yang sama dengan kelas lainnya beserta atribut dan metode tambahan yang merupakan sifat khusus kelas yang menjadi turunannya. Sebagai contoh, misalkan ada sebuah kelas Titik yang mempunyai kelas turunan Titik3D:
class Titik
private integer x
private integer y
Titik()
x < 0 y < 0 {end Titik} public getX() -> integer
-> x
{end getX}

public getY() -> integer
-> y
{end getY}
{end class}
class Titik3D: Titik
private integer z

Titik3D()
z <- 0 {end Titik3D} public getZ() -> integer
-> z
{end getZ}

{end class}
Keterkaitan antara kelas Titik dan Titik3D adalah kelas Titik3D merupakan kelas turunan dari kelas Titik. Dalam hal ini kelas Titik disebut dengan kelas dasar atau super classatau base classsedangkan kelas Titik3D disebut sebagai kelas turunan atau derived classatau subclass.
Pada contoh di atas, ketika kelas Titik3D dibuat objeknya maka objek tersebut dapat menggunakan metode yang ada pada kelas Titik walau pada kode programnya metode itu tidak dituliskan, misalkan sebagai berikut:
Titik3D p <- new Titik3D()
integer x <- p.getX()
integer y <- p.getY()
integer z <- p.getZ()

Beberapa aturan tentang pewarisan(inheritance) yang perlu diperhatikan :
1. Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati dengan mudah.

2. Subclass juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass ini. Misal : class B merupakan subclass dari class A, kita dapat membuat class baru yang diturunkan dari class B sehingga class baru tersebut akan memiliki apa yang dimiliki oleh class A dan class B.

3. Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (kontrol pengaksesan). Di dalam java, kontrol pengaksesan dapat digambarkan dalam tabel berikut ini:


Keuntungan dari pewarisan adalah tidak perlu mengutak atik kode kelas yang membutuhkan tambahan atribut atau metode saja, karena tinggal membuat kelas turunannya tanpa harus mengubah kode kelas dasarnya. Kelas dasar akan mewariskan semua atribut dan kodenya kecuali konstruktor dan destruktor yang memiliki izin akses publicdan protectedke kelas turunannya dengan izin akses yang sama dengan pada kelas dasar.
Ketika sebuah kelas turunan dibuat objeknya saat eksekusi, maka secara implisit konstruktor kelas dasar dipanggil terlebih dahulu baru kemudian konstruktor kelas turunan dijalankan. Begitu juga saat objek dimusnahkan maka secara destruktor kelas turunan akan dijalankan baru kemudian destruktor kelas dasar dijalankan.

Contoh Program Inheritance :
import java.io.*;
import java.util.Scanner;
class daftarmenu
{
public int porsi;
public double harga;
}
class makanan extends daftarmenu
{
public void setharga()
{
harga = 8000;
}
}
class minuman extends daftarmenu
{
public void setharga()
{
harga = 15000;
}
}
class cucimulut extends daftarmenu
{
public void setharga(double h) //set harga melalui inputan si pengguna
{
harga = h;
}
public double getharga() //mengambil info harga dari setiap class
{
return(harga);
}
}
public class daftarmenu //untuk menjalankan program utama
{
public static void main(String[] args)
{
double h;
cucimulut s = new cucimulut (); //create object untuk setiap class
minuman l = new minuman();
makanan n = new makanan ();
Scanner sc = new Scanner(System.in);

System.out.print(“Harga : “);
h = sc.nextDouble();
s.setharga(h);
System.out.println(“Harga cucimulut :”+s.getharga());
n.harga = 8000; //akses langsung ke atribut
n.porsi = 2;
biaya = n.harga * n.porsi;
System.out.println(“Biaya :”+biaya);

//menu program dan manipulasi object yg lain
//bisa diletakkan di sini
}
}


Sumber : http://nur-arianto.blogspot.com/2009/11/inheritance-pada-java.html

Tidak ada komentar:

Posting Komentar