Pages

Friday, April 20, 2012

Inheritance dan Polimorfisme


Bhisma Roby Ilham
51410400
2IA13




Ayi Habibah
51410240
2IA13
bipsayangnyo.blogspot.com




Tugas PBO



1. Inheritance
Inheritance adalah(pewarisan) adalah proses pewarisan data dan method dari suatu kelas ke kelas lainnya. Pewarisan ini bersifat menyeluruh.Semua data dan method milik kelas asalnya diturunkan ke kelas lainnya atau kelas yang baru.
(a).Kelas yang mewariskan dinamakan:(super clas atau kelas induk)
(b).Kelas yang diwariskan dinamakan:(sub class atau kelas anak)


Contoh program inheritance pada java :



import java.io.*;
public class bola {
void kelasbola () {
System.out.println("ciri umum dari pemain bola adalah mengerti permainan");
}}
class penyerang extends bola {
String x = "Penyerang";
void Tampilkanpenyerang () {
System.out.println("dan Posisi yang Anda pilih adalah "+ x );
System.out.println("Posisi ini adalah penyerang, tugasnya memasukkan bola ke gawang");
System.out.println("Pelari cepat, ahli menendang bola, dan pandai mencari kesempatan");
}}
class gelandangtengah extends bola {
String x = "Gelandang Tengah";
void Tampilkangelandangtengah () {
System.out.println("dan Posisi yang Anda pilih adalah "+ x );
System.out.println("Posisi ini mengatur seluruh permainan");
System.out.println("Gelandang tengah wajib bisa mengatur permainan, dari menyerang hingga bertahan");
}}
class back extends bola {
String x = "back";
void Tampilkanback () {
System.out.println("dan Posisi yang Anda pilih adalah "+ x );
System.out.println("Posisi ini bertugas untuk menahan serangan lawan");
System.out.println("Lebih pandai membaca aliran permainan, sehingga bisa menahan lawan");
}}
class Turunan {
public static void main(String[] args) throws IOException{
String sInput = null ;
System.out.println("----Posisi----");
System.out.println("[1]. Penyerang ");
System.out.println("[2]. Gelandang Tengah ");
System.out.println("[3]. Back ");
System.out.print("Masukkan pilihan [1..3] :");
bola generalx = new bola();
penyerang turunan1 = new penyerang();
gelandangtengah turunan2 = new gelandangtengah();
back turunan3 = new back ();
back subxc = new back();
InputStreamReader inputan = new InputStreamReader(System.in);
BufferedReader jm = new BufferedReader(inputan);
sInput = jm.readLine();
int i = Integer.parseInt(sInput);
switch (i) {
case 1 :
generalx.kelasbola ();
turunan1.Tampilkanpenyerang ();break;
case 2 :
generalx.kelasbola ();
turunan2.Tampilkangelandangtengah ();break;
case 3 :
generalx.kelasbola ();
turunan3.Tampilkanback ();break;
default:
System.out.println("Pilihan yang Anda masukkan salah!!");break;
}
}
}


Output:



2. Polimorfisme


Polimorfisme adalah Suatu kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda agar tidak terjadi duplikasi object. Polimorfisme mengizinkan kelas induk untuk mendefinisikan sebuah method general (bersifat umum) untuk semua kelas turunanya, dan selanjutnya kelas-kelas turunan dapat memperbaharui implementasi dari method tersebut secara lebih spesifik sesuai dengan karakteristiknya masing-masing. Polimorfisme dimungkinkan karena adanya mekanisme ikatan dinamis (dynamic bindung). Ikatan dinamis adalah ikatan yang terjadi pada saat program dijalankan (run-time). Ikatan yang terjadi pada saat kompile disebut ikatan statis. Ikatan dinamis hanya dapat terjadi antara suatu objek dinamis dengan metode yang dinamis juga, dalam hal ini metode virtual (maya).

            Polimorfisme adalah kemampuan untuk memperoleh bentuk. Dua objek atau lebih dikatakan polimorfis, bila objek-objek itu mempunyai antar muka-antarmuka identik namun mempunyai perilaku-perilaku berbeda. Bentuk ini memungkinkan kita menganggap sekelompok objek dengan tipe-tipe berbeda seperti dimiliki oleh suatu tipe yang sama. Polimorfisme merupakan fitur yang terjadi karena interaksi setiap konsep pewarisan dan dynamic binding. Contohnya pintu dan jendela memiliki perilaku yang sama yaitu dapat dibuka dan ditutup, namun untuk menutup jendela dilakukan misalnya dari atas ke bawah (vetikal), sedangkan pintu dari depan ke belakang (horizontal).


Contoh program java polimorfisme : 

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


Mahasiswa.java



public class Mahasiswa extends Orang{
    String jeniskelamin;
    public Mahasiswa() {
        //super digunakan untuk memanggil constructor terdekat pada kelas Orang.
        super("Bhisma");
    }
    //overidde methode dari kelas Orang..
    public String getName(){
        return nama;
        }
    public void setName(String nama){
        this.nama = nama;
        }


Karyawan.java


public class Karyawan extends Orang{
    public Karyawan() {
        super("Ayi");
    }
    //ovveride dari kelas Person
    public String getName(){
        return nama;
        }
    public void setName(String nama){
        this.nama = nama;
        }


CallOrang.java


public class CallOrang {
   public static void main(String[] args){
        //contoh polimorfisme di java
        Orang call;
        Mahasiswa m = new Mahasiswa();
        Karyawan n = new Karyawan();
        //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 Karyawan.java : " + sma);
       }


Untuk memanggil kelas-kelas Orang, Mahasiswa, dan Karyawan maka CallOrang.java harus di run, dan berikut hasilnya:







No comments:

Post a Comment