Jumat, 13 April 2012

Inheritance dan Polymorphisme


Pada posting kali ini saya akan membahas mengenai enkapsulasi java. Sebelumnya kita harus mengetahui apa sih pengertian polymorphism dan inheritance pada java itu ??


Polymorphism, 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.
Atau 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.

berikut adalah contoh programnya..
1.simpan dengan nama sayur.java
class Sayur {
String nama, jenis, berwarna;
\\ deklarasi tipe data untuk nama, jenis dan warna adalah String
Sayur(String nama, String jenis, String berwarna){
this.nama=nama;
this.jenis=jenis;
this.berwarna=berwarna;
}
public String toString(){
  return "Ini adalah "+jenis+"\nNamanya "+nama+"\n"+berwarna;
\\ return disini berfungsi untuk mengembalikan string ke awal.
}
  public void berwarna(){
}
}



2. simpan dengan nama  Polimorfisme .java
import java.util.*;
class Polimorfisme{
  public static void main(String args[]){

Sayur[] Sayurnya = {
new Tomat("Tomat", "tomat belanda", "merah"),
new Bayam("Bayam", "bayam prancis", "hijau "),
new Terong("Terong", "terong belanda", "ungu")
};
Sayur PilihSayur;
Random Pilih = new Random();
for (int i = 0; i<5 ; i++){
PilihSayur = Sayurnya[Pilih.nextInt(Sayurnya.length)];
System.out.println("\nPilihan Anda:\n" + PilihSayur);
}
}
}



3. simpan dengan nama Tomat.java
class Tomat extends Sayur{
private String nama,jenis,berwarna;
Tomat(String nama, String jenis, String berwarna){
super(nama, jenis,berwarna);
}
public void ShowTomat(){

System.out.println("Nama sayur : "+nama);
System.out.println("Jenis : "+jenis);
}
public void berwarna(){
//sintaks menampilkan suara hewan
System.out.println("meraaaaah.. ");
  }
}


4. simpan dengan nama  Bayam.java 
class Bayam extends Sayur{
private String nama,jenis,berwarna;
Bayam(String nama, String jenis, String berwarna){
super(nama, jenis, berwarna);
}
public void ShowBayam(){
System.out.println("Nama sayur : "+nama);
System.out.println("Jenis : "+jenis);
}
public void berwarna(){
System.out.println("hijauuuuu ");
}
}




5. simpan dengan nama  Terong .java
class Terong extends Sayur{
private String nama,jenis,berwarna;
Terong(String nama, String jenis, String berwarna){
super(nama, jenis, berwarna);
}
public void ShowTerong(){
System.out.println("Nama sayur : "+nama);
System.out.println("Jenis : "+jenis);
}
public void berwarna(){
System.out.println("Ungu ");
}
}


 

  Selanjutnya simpan semua listing  dengan nama yang telah diberikan. Setelah semuanya disimpan compile satu persatu kemudian running program   Polimorfisme .java

Output program





Selanjutnya adalah inheritance

Inheritance atau pewarisan pada pemrograman berorientasi objek merupakan suatu hubungan dua buah kelas atau lebih. Dengan membangun class baru dengan memanfaatkan class yang telah ada. Bertujuan untuk menggunakan kembali (reuse) code yang telah didefinisikan pada class yang telah ada untuk membentuk class baru class baru disebut dengan subclass (derived/child class). 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.
Class yang menjadi class dasar untuk membentuk class baru disebut superclass (base/parent class). Pada Java, class Object merupakan class yang berada pada tingkat hirarki tertinggi. Seluruh class yang ada pada Java merupakan subclass dari class Object . Subclass dapat menambah atribut/method baru (extends). Subclass dapat mengubah implementasi method dari superclass (overriding).

Extends

  • Pada Java inheritance dilakukan dengan menggunakan kata kunci extend.
  • Suatu class hanya dapat diturunkan dari satu superclass (single inheritance).
  • Subclass mewarisi seluruh atribut dan method public dan protected dari superclass
  • Subclass tidak dapat mengakses atribut dan method private dari superclass
  • Objek superclass diakses menggunakan kata kunci super
  • Access specifier untuk masing-masing atribut dan method dari superclass tidak berubah pada subclass
  • Atribut/method private dari superclass tidak diwariskan  ke subclass
contoh programnya :
simpan dengan nama Bangun.java
class Bangun{
String nama, luas;
public Bangun(String nama){
this.nama = nama;
}
public void printBangunInfo(){
System.out.println("* Nama Bangun : "+nama+" *");
System.out.println("* Luas Bangun : "+luas+" *");
}
public void printBangunNama(){
System.out.println("* Nama Bangun : "+nama+" *");
}
public void printBangunLuas(){
System.out.println("* Luas Bangun : "+luas+" *");
}
}



simpan dengan nama Segitiga.java

class Segitiga extends Bangun{
String nama, luas;
int alas, tinggi;
public Segitiga(String nama){
super(nama);
}
public void printBangunInfo(){
super.printBangunInfo();
}
public void printBangunNama(){
super.printBangunNama();
}
public void printBangunLuas(){
super.luas = String.valueOf((alas*tinggi)/2);
super.printBangunLuas();
}

public void printAlas(){
System.out.println("* Alas : "+alas+" *");
}

public void printTinggi(){
System.out.println("* Tinggi : "+tinggi+" *");
}
}




Simpan dengan nama hasil.java

public class hasil{
public static void main (String[] args){
System.out.println("*********************************");
System.out.println("* LUAS BANGUN *");
System.out.println("*********************************");
Segitiga segitiga = new Segitiga("Segitiga");

segitiga.alas = 19;
segitiga.tinggi = 25;
segitiga.printBangunNama();
segitiga.printAlas();
segitiga.printTinggi();
segitiga.printBangunLuas();
System.out.println("*********************************");
System.out.println("* Hasil *");
segitiga.printBangunInfo();
System.out.println("*********************************");
}
}




Output program



selesaaaiiii.. semoga bermanfaat kawan..

Tidak ada komentar:

Posting Komentar