Rabu, 05 Desember 2012

Polimorfisme dan Inheritance Pada Pemrograman Java

NAMA : Fikri Rizky Wijaya
NIM : 2011-81-077
TUGAS : Teori Pemrograman Java
SEKSI : 10

1. 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 :

Kemampuan dari referensi untuk mengubah sifat menurut object apa yang dijadikan acuan dinamakan polimorfisme. Polimorfisme menyediakan multiobject dari subclasses yang berbeda untuk diperlakukan sebagai object dari superclass tunggal, secara otomatis menunjuk method yang tepat untuk menggunakannya ke particular object berdasar subclass yang termasuk di dalamnya.
Contoh lain yang menunjukkan properti polimorfisme adalah ketika kita mencoba melalui referensi ke method.
contoh program :
class kendaraan {
public void bahanbakar (){
System.out.println("kendaraan berbahanbakar :");
}
}
// Membuat kelas turunan mobil yang merupakan turunan dari class kendaraan :
class mobil extends kendaraan {
public void bahanbakar(){
System.out.println(" MOBIL bahan bakar bensin");
}
}
//Membuat kelas turunan kereta api yang merupakan turunan dari class kendaraan :
class keretaapi extends kendaraan {
public void bahanbakar (){
System.out.println("KERETA API bahan bakar batu bara");
}
}
//Membuat kelas turunan pesawat yang merupakan turunan dari class kendaraan :
class pesawat extends kendaraan {
public void bahanbakar(){
System.out.println("PESAWAT berbahan bakar Bensol");
}
}
// Membuat class bahanbakarkendaraan untuk mengetes class-class yang telah dibuat :
public class bahanbakarkendaraan {
public static void main(String[] args){
kendaraan kendaraan = new kendaraan();
mobil MOBIL = new mobil();
keretaapi KERETAAPI = new keretaapi();
pesawat PESAWAT = new pesawat();


kendaraan.bahanbakar();


kendaraan = MOBIL;
kendaraan.bahanbakar();


kendaraan = KERETAAPI;
kendaraan.bahanbakar();


kendaraan = PESAWAT;
kendaraan.bahanbakar();
}
}
output :

 
  2. INHERITANCE

Inheritance adalah salah satu teknik pemrograman berorientasi object yang digunakan agar suatu codingan dapat digunakan kembali oleh programmer lain / reuseable. Hal tersebut dilakukan dengan cara membuat turunan dari suatu class yang sudah ada, yaitu dengan membuat child class. Contohnya adalah jika ada programmer yang membuat suatu class yaitu shape yang memiliki atribut atribut luas, dan position kita tidak perlu membuat class baru ketika kita ingin membuat suatu class rectangle yang notabennya juga termasuk shape, jadi kita cuma perlu untuk menurunkan class shape tadi ke class rectangle yang akan kita buat.   Dari gambar diatas dapat kita ketahui hierarki dari penurunan class shape menjadi class class lainya yang notabennya masih termasuk dalam class shape. Selain itu dalam iheritance ini kita juga mulai mengenal yang dinamakan access modifier, yaitu keyword untuk merubah atribut dari suatu field dalam suatu class, dimana dalam java access modifier tersebut ada 4, yaitu: (none) -> Akses ke field tersebut hanya terbatas pada suatu package Public -> Field tersebut dapat diakses dari semua tempat, asal masih dalam satu scope Private -> Akses ke field tersebut hanya terbatas pada class dimana field tersebut ada Protected -> Akses ke filed tersebut hanya terbatas pada class dimana field tersebut ada, beserta class turunan dari class field tersebut. Untuk contoh program dapat dilihat dibawah ini, yang merupakan inheritance class person menjadi class student.
 contoh program :
//class Person.java
public class Person {

protected String name;
protected int age;

public Person(String name, int age) {
    this.name = name;
    this.age = age;
}

public String getName() {
    return this.name;
}

public int getAge() {
    return this.age;
}
}

//class Student.java

public class Student extends Person {

 private String schoolName;

 public Student(String name, int age, String schoolName) {
     super(name, age);
     this.schoolName = schoolName;
 }

 public String getSchoolName() {
     return this.schoolName;
 }
}

//class Main.java

public class Main {

  public static void main(String[] args) {
      Person person = new Person("Yohanda", 19);
      Student student = new Student("Mandala", 18, "SMAN 2");

      System.out.println("Informasi tentang object person : ");
      System.out.println("Name : " + person.getName());
      System.out.println("Age : " + person.getAge());
      System.out.println();

      System.out.println("Informasi tentang object student : ");
      System.out.println("Name : " + student.getName());
      System.out.println("Age : " + student.getAge());



      System.out.println("School Name : " + student.getSchoolName());
  }
}

output :

3 komentar:

  1. wah pas banget nih ada tugas buat ke-2nya di java, nice info sob.. ^^

    BalasHapus
  2. Kirimin lagi dong java nya supaya banyak..gw lgi banyak tugas nihh =)) :)

    BalasHapus
  3. pass banget nihh untuk ngerjain tugass bessar PBO

    BalasHapus