latihan codepolitan

Resume Praktikum PBO Modul 5 (Interface dan Abstract)


   Pada praktikum kali ini membahas tentang Interface dan Abstract. Interface mendefinisikan method atau konstanta yang akan di implementasikan pada object lain. Interface memiliki beberapa batasan, yaitu : semua atribut adalah public, static dan final. Semua method adalah abstract dan public. Tidak boleh ada deklarasi konstruktor. Abstrak digunakan untuk method atau class yang belum memiliki implementasi. Abstrak method di deklarasikan pada abstrak class.

Contoh pengunaan Inheritance dalam UML :



Contoh penggunaan Abstrack dalam UML  :


Contoh 1 Multiple Inheritance dalam Java (Project DemoPaket.java) :

Source Code:


/** Kelas Buku  */ (Buku.java)
class Buku {
    String judul, pengarang;
    long hargaBuku;
    public Buku(String judul, String pengarang, long hargaBuku)
    {
        this.judul = judul;
        this.pengarang = pengarang;
        this.hargaBuku = hargaBuku;
        }
    public void cetakBuku()
    {
        System.out.println("\nJudul : "+judul);
        System.out.println("\nPengarang : "+pengarang);
        System.out.println("\nHarga Buku : Rp "+hargaBuku);
        System.out.println();
       
    }
}




/** Interface CD */ (InterfaceCD.java)
interface InterfaceCD
    {
        void cetakCD();
        long getHargaCD();
    }

/** Kelas CD */ (CD.java)
class CD
    {
        String ukuran;
        long hargaCD;
        public CD(String ukuran, long hargaCD)
        {
            this.ukuran = ukuran;
            this.hargaCD = hargaCD;
            }
        public long getHargaCD()
        {
            return hargaCD;
            }
        public void cetakCD()
        {
            System.out.println("Ukuran CD : "+ukuran);
            System.out.println("Harga CD : Rp "+hargaCD);
            System.out.println();
            }
    }


/** Kelas ChildCD merupakan turunan dari CD dan
  mengimplementasian interface InterfaceCD */(ChildCD.java)
class ChildCD extends CD implements InterfaceCD
{
public ChildCD(String ukuran, long hargaCD)
    {
        super(ukuran,hargaCD);
    }
}


/** Kelas paket merupakan turunan dari Buku dan mengimplementasikan
 interface Interface CD */(Paket.java)
class Paket extends Buku implements InterfaceCD {
    long hargaPaket;
    InterfaceCD interfaceCD;
    public Paket(String judul, String pengarang, long HargaBuku, String ukuran, long HargaCD)
    {
        super(judul, pengarang, hargaBuku);
        interfaceCD = new ChildCD(ukuran, hargaCD);
        }
    public void hitungHargaPaket()
    {
        hargaPaket = super.hargaBuku + getHargaCD();
        }
    public void cetakCD()
    {
        interfaceCD.cetakCD();
    }
    public long getHargaCD();
    {
        return (interface CD.getHargaCD());
    }
    public void cetakPaket()
    {
        super.cetakBuku();
        cetakCD();
        System.out.println("Harga paket Buku dan CD: Rp "+ hargaPaket + "/n");
    }
}




 (Main.java)

class DemoPaket {
    public static void main(String[] args) {
        Paket a = new Paket("Pemrograman Berorientasi Objek", "Benyamin Langgu Sinaga", 60000, "700 MB" 50000);
        a.hitungHargaPaket();
        a.cetakPaket();
    }
  }


Contoh 2 Polimorfisme dalam Java (Project CobaPolimorpic.java) :
(Nama – nama Binatang)

Source Code:


(Binatang.java)

public abstract class Binatang {
   Binatang(String jenis)
   {
       this.jenis = jenis;
   }
        protected abstract void suara();//Deklarasi, tidak didefinisikan
        public String toString()
        {
            return "Seekor " +jenis;
        }
        private String jenis;
    }

(Burung.java)

public class Burung extends Binatang
{
    Burung(String nama)
    {
        super("Burung");
        this.nama = nama;
        }
    public void suara()
    {
       System.out.println("berkicau");
    }
       public String toString()
       {
           return super.toString()+ " "+nama;
           }
       private String nama;
}



(Kucing.java)

public class Kucing extends Binatang {
    Kucing(String nama)
    {
        super("Kucing");
        this.nama=nama;
     }
    public void suara()
    {
        System.out.println("mengeong");
    }
    public String toString()
    {
        return super.toString()+ " " +nama;
    }
    private String nama;
}




(Anjing.java)
public class Anjing extends Binatang {
    Anjing(String nama)
    {
    super("Anjing");
    this.nama=nama;
    }
    public void suara()
    {
        System.out.println("menggonggong");
    }
    public String toString()
    {
        return super.toString()+" "+nama;
    }
    private String nama;
}



(Kambing.java)
public class Kambing extends Binatang{
    Kambing(String nama)
    {
        super("Kambing");
        this.nama=nama;
    }
    public void suara()
    {
        System.out.println("mengembik");
    }
    public String toString()
    {
        return super.toString()+" "+nama;
    }
    private String nama;
}




(CobaPolimorpic.java)
import java.util.Random;
public class CobaPolimorpic {

    public static void main(String[] args) {
        Binatang[] peliharaanku = (new Burung( "Kakak Tua"),
                                    new Kambing("Etawa"),
                                     new Anjing("Kintamani"),
                                     new Kucing("Anggora"));
        Binatang kesayangan;
        Random pilihan = new Random();
        //memilih secara acak
        kesayangan = peliharaanku(pilihan.nextInt(peliharaanku.length);
        // mengacak bilangan dari 0 sampailength-1 atau (i-1).
        System.out.println("Binatang Kesayangan anda : " +kesayangan );
        System.out.println("Suaranya : " );
        kesayangan.suara();
    }
}










Comments