PBO 2017 TEKNIK INFORMATIKA UTM

Abstract class adalah kelas yang terletak pada posisi tertinggi pada hierarki kelas. Kelas ini digunakan sebagai basis bagi penurunan kelas lainnya, sehingga abstract class tidak dapat diinstansiasi secara langsung menjadi object. Suatu abstract class bisa mengandung method kongkrit dan/atau method abstract. Abstract method meruapakan suatu method yang tidak mempunyai badan method. Hanya berupa nama method dan parameter inputan method.

package .....;
public abstract class Hewan {
  // Deklarasi method
  public abstract void data(String nama, string ttl);
  public void mHewan(){
          system.out.println("Hewan : Kelinci");
}



Concrete Class adalah suatu class turunan,  yang mengimplementasi ,method yang di deklarasikan pada class Abstract.

package .....;
public abstract class Hewan {
  // Deklarasi method
   abstract void setMakanan();
  abstract void setWarna();
  abstract void setName();
}
Kode program diatas artinya : Mendeklarasikan abstract class dengan nama Hewan yang di dalamnya terkandung abstract method setName,setMakanan, dan setWarna.Kemudian mari kita buat subclass Kelinci yang inherit dari superclass diatas, seperti berikut ini
 public class Kelinci extends Hewan {
    public void setName(){
      System.out.println("Nama hewan adalah \"KELINCI\"");
    }
     
    public void setMakanan(){
      System.out.println("Makanan kelinci adalah \"WORTEL\"");
    }
     
     public void setWarna(){
      System.out.println("Warna kelinci \"PUTIH\"");
    }
     
    public static void main(String[] args){
      Kelinci k = new Kelinci();
      k.setName();
      k.setMakanan();
      k.setWarna();
    }
 }


Interface adalah class yang hanya mengandung deklarasi method tanpa memiliki implementasi dan semua property yang dimilikinya bersifat final. Interface mirip dengan class abstrak, tetapi interface tidak terikat dengan class hierarki.

public interface Control {
 public void pindahChannel(int channel);
 public void perbesarVolume(int intensitas);
 public void perkecilVolume(int intensitas);
}
public class TVPolitron implements Control{
 String[] channel = {"RCTI","SCTV","INDOSIAR","ANTV","TV7"};
 public void pindahChannel(int channel) {
  System.out.println("Pindah channel pada TV Politron ke "+ this.channel[channel]);
 }

 public void perbesarVolume(int intensitas) {
 
  System.out.println("Perbesar volume pada TV Politron sebanyak "+ intensitas);
 }

 public void perkecilVolume(int intensitas) {
    System.out.println("Perkecil volume pada TV Politron sebanyak "+ intensitas);
 }

}
public class TVSamsung implements Control{
 String[] channel = {"RCTI","SCTV","INDOSIAR","ANTV","TV7"};

 public void pindahChannel(int channel) { 
  System.out.println("Pindah channel pada TV Samsung ke "+ this.channel[channel]);
 }
public void perbesarVolume(int intensitas) { 
  System.out.println("Perbesar volume pada TV Samsung sebanyak "+ intensitas);
 }
public void perkecilVolume(int intensitas) { 
  System.out.println("Perkecil volume pada TV Samsung sebanyak "+ intensitas);
 }
}
public class RemoteControl {
 public void kirimPerintahKeTv(int aksi,Control tv,int tombol){
  switch(aksi){
   case 1:
    tv.pindahChannel(tombol);
    break;
   case 2:
    tv.perbesarVolume(tombol);
    break;
   case 3:
    tv.perkecilVolume(tombol);
    break;
  }
 }
}
public class TestRemoteControl {
 public static void main(String[] args){
  TVPolitron tvp = new TVPolitron();
  TVSamsung tvs = new TVSamsung();
  RemoteControl rc = new RemoteControl();
 
  rc.kirimPerintahKeTv(1,tvp,1); 
 }
}



Kapan kita harus menggunakan abstact ?
Saat kita menggunakan method yang sama secara berulang-ulang.Seperti contoh diatas.

Kapan kita harus menggunakan concrete ?
Saat kita menggunakan turunan dari class abstract.Seperti contoh diatas.

Kapan kita harus menggunkan interface ?
Saat tidak ada method yang digunkan secara berulang-ulang. Seperti contoh diatas.


Comments

Popular posts from this blog

Overriding and Overloading

Permasalahan dan Tawaran Solusi Dinas Kependudukan dan Pencatatan Sipil Bangkalan