Friday, November 17, 2017

Definisi dan Contoh Abstrack Class, Concrete dan Interface

Tugas PBO 2017, Teknik Informatika UTM

Definisi 

Abstract Classs ;
- Tidak dapat digunakan untuk membentuk objek
- Dapat memiliki method abstrak
- Digunakan sebagai base class untuk membentuk class konkrit (concrete class)
- Dibentuk dengan menggunakan kata kunci abstract pada saat definisi class
- Abstract class yaitu sebuah class setengah jadi (abstrak) yang memuat/memiliki method dan atrribut.
- Abstract class sebenarnya adalah sebuah class, sehingga memiliki semua sifat dari class biasa (punya konstruktor).
- Abstract class akan selalu menjadi superclass / hirarki tertinggi dari subclass-subclass-nya.
- Abstract class mempunyai setidaknya satu abstract method.
- Bila subclass method abstract tidak mengimplementasikan isi semua method maka subclass tersebut harus dideklarasikan abstract.

Concrete Class ;
- Mendefinisikan class yang nyata
- Dapat membentuk atau instansiasi object
- Object hanya bisa dibuat dari non-abstract class (concrete class)
- Dapat menurunkan implementasi dari super class
- Dapat sebagai base class pada hierarchical relationship dan membutuhkan class lain untuk mewarisinya

Interface ;
- Interface berbeda dengan class.
- Interface berisi method kosong dan konstanta.
- Method dalam interface tidak mempunyai statement.
- Sehingga deklarasi method dalam interface sama dengan deklarasi abstract method pada abstract class.


Contoh Program Abstract dan Concrete
Ø  Langkah pertama kita akan buat Class MakhlukHidup.java

public abstract class MakhlukHidup {
  
   public abstract void berdiri();
  
   public void oksigen() {
               System.out.println("- Butuh Oksigen");
               System.out.println("- Butuh Makan");
               System.out.println("- Butuh Minum");
   }

}

Ø  Selanjutnya buat Class Manusia.java dan extends ke MakhlukHidup.java

public class Manusia extends MakhlukHidup{
   private String duaKaki;
   public Manusia(String duaKaki) {
               this.duaKaki = duaKaki;
   }
   public void berdiri() {
               System.out.println("Manusia Berdiri menggunakan : " + duaKaki);
              
   }

}

Ø  Buat Class Hewan.java dan extends ke MakhlukHidup.java

public class Hewan extends MakhlukHidup{
   private String kakiEmpat, kakiDua;
   public Hewan (String kakiEmpat, String kakiDua) {
               this.kakiEmpat = kakiEmpat;
               this.kakiDua = kakiDua;
   }
  
   public void berdiri() {
               System.out.println("Sapi Berdiri menggunakan : " + kakiEmpat);
               System.out.println("Pinguin Berdiri menggunakan : " + kakiDua);
              
   }
              
}

Ø  Buat lagi Class Tumbuhan.java dan extends ke MakhlukHidup.java

public class Tumbuhan extends MakhlukHidup{
   private String Akar;
   public Tumbuhan (String Akar) {
               this.Akar = Akar;
   }
   public void berdiri() {
               System.out.println("Tumbuhan Berdiri menggunakan : " + Akar);
              
   }

}

Ø  Yang terakhir buat Class MainMakhlukHidup.java sebagai method mainnya

public class MainMakhlukHidup {
   public void cekMakhlukHidup (MakhlukHidup mHidup) {
               mHidup.berdiri();
               mHidup.oksigen();
   }
  

   public static void main(String[] args) {
               MainMakhlukHidup tMakhlukHidup = new MainMakhlukHidup();
              
               tMakhlukHidup.cekMakhlukHidup(new Manusia("Dua Kaki"));
              
               System.out.println("_____________________________________________");
               tMakhlukHidup.cekMakhlukHidup(new Hewan ("Empat Kaki", "Dua Kaki"));
              
               System.out.println("_____________________________________________");
               tMakhlukHidup.cekMakhlukHidup(new Tumbuhan("Akar"));

   }


}

Hasil Run Program



Contoh Program Interface

Ø  Langkah Pertama Buat Interface Name.java

public interface Name {
   public void setNama(String Nama);
   public String getNama();
   public void setNim(String nim);
   public String getNim();

}
Ø  Membuat class Name1.java implements ke interface Name.java

public class Name1 implements Name{
   private String nama, nim;
  
   public void setNama(String nama) {
                   this.nama = nama;
                  
   }
  
   public String getNama() {
                   return nama;
   }
  
   public void setNim(String nim) {
                   this.nim = nim;
   }
  
   public String getNim() {
                   return nim;
   }

}

Ø  Membuat class Name2.java   implements ke Name.java

public class Name2 implements Name{
private String nama, nim;

   public void setNama(String nama) {
                   this.nama = nama;
                  
   }
  
   public String getNama() {
                   return nama;
   }
  
   public void setNim(String nim) {
                   this.nim = nim;
   }
  
   public String getNim() {
                   return nim;
   }

}

Ø  Membuat MainInterface.java

public class MainInterface {

   public static void main(String[] args) {
                   Name1 n1 = new Name1();
                   n1.setNama("Rosi");
                   n1.setNim("160411100042");
                  
                   Name2 n2 = new Name2();
                   n2.setNama("Kagura");
                   n2.setNim("160411100152");
                  
                   System.out.println(n1.getNama());
                   System.out.println(n1.getNim());
                  
                   System.out.println("________________________________");
                  
                   System.out.println(n2.getNama());
                   System.out.println(n2.getNim());
                  

   }

}


Hasil Run Program

Kapan menggunakannya ?

Menggunakan interface untuk mendefinisikan method standart yang sama dalam class – class yang berbeda sekali kita telah membuat kumpulan definisi method standar (abstrak), kita dapat menulis method tunggal (spesifik) untuk memanipulasi semua class – class yang mengimplementasikan interface tersebut.


Gunakan class abstract untuk mendefinisikan secara luas sifat – sifat dari class tertinggi dari hirarki OOP, dan gunakan sebclassnya (turunannya / child class) untuk melengkapi deskripsi method dari class abstract. 

0 comments:

Post a Comment

Powered by Blogger.