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. 

Friday, November 10, 2017

Definisi dan Implementasi Overloading Method dan Overriding Method pada Java

Nama : Fahrur Rosi

NIM : 160411100042

MataKuliah : Pemrograman Berbasis Dekstop D

Overloading
Overloading Method adalah sebuah Function yang memperbolehkan sebuah class mempunyai 2 atau lebih method dengan nama yang sama, dengan syarat parameternya harus berbeda.

Pada method overloading perbedaan parameter mencakup :

1. Banyak parameter
2. Tipe data parameter
3. Urutan tipe data dari parameter

Method Overloading juga dikenal dengan sebutan Static Polymorphism.

Berikut ini contoh Class yang melakukan Overloading:

package javafx;

public class ContohOverloading {
public void jumlah (int a, int b){
System.out.println("Jumlah 2 angka ="+ (a + b));
}
//oveloading perbedaan jumlah parameter
public void jumlah (int a, int b, int c){
System.out.println("Jumlah 3 angka =" + (a + b + c));
}
//overloading perbedaan tipe data parameter
public void jumlah (double a, int b){
System.out.println("Jumlah 2 angka (double+int) = "+ (a + b));
}
//overloading perbedaan urutan tipe data parameter
public void jumlah (int b, double a){
System.out.println("Jumlah 2 angka (int+double) = "+ (a + b));
}
}

Class Utamanya :

package javafx;

public class PenggunaanOverloading {
    public static void main(String[] args) {
        ContohOverloading co  = new ContohOverloading();       
        co.jumlah(50,20);
        co.jumlah(40,20,21);
        co.jumlah(45.20,10);
        co.jumlah(90,33.28);
    }
}


Tampilan Run dan Screnshoot Program :




Overriding
Overriding Method yaitu sebuah function yang bisa menggunakan nama method sama , isi / Body method berbeda , dan Biasanya berbeda kelas ,interface dan implement.

Aturan dari method overriding pada Java :

1. Parameter yang terdapat pada method overriding di subclass harus sama dengan parameter yang terdapat pada parent class.
2. Aturan hak akses, hak akses method overriding di subclass tidak BOLEH lebih ketat di bandingkan dengan hak akses method pada parent class.

Berikut ini contoh overriding :
package javafx;

public class Binatang {
    public void begerak(){
        System.out.println("Binatang bergerak sesuai kemampuannya");
    }
    public void berkembangBiak(){
        System.out.println("Binatang berkembang biak sesuai kemampuannya");
    }

}

package javafx;

public class Mamalia extends Binatang {
    //overriding method parent class
    public void begerak(){
        System.out.println("Mamalia bergerak sebagian besar dengan kakinya");
    }   
    public void berlari(){
        System.out.println("Sebagian Mamalia dapat berlari");
    }
}

Class Utamanya :
package javafx;

public class PenggunaanOverriding {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Binatang b = new Binatang();
        Mamalia m = new Mamalia();
        Binatang bm = new Mamalia();
       
        b.begerak();
        m.begerak();
        bm.begerak();
        bm.berkembangBiak();
    }
}

Diatas Terdapat 3 class yang masing masing saling berhubungan, dan program utamanya yaitu “PenggunaanOverriding”

Dibawah ini adalah Hasil Running dan Scereenshootnya :




Sekian Penjelasan saya Mengenai Overloading Method dan Overriding Method , Semoga bermanfaat bagi kalian semua para pembaca. Materi ini saya dapatkan dari kumpulan sumber yang ada , dan saya rangkum. Tulisan ini juga saya buat untuk memenuhi tugas Pemrograman Berbasis Dekstop .

Powered by Blogger.