18
MAKALAH PRAKTIKUM ABSTRACT & INTERFACE PEMROGRAMAN BERORIENTASI OBJECT DISUSUN OLEH : MELINA KRISNAWATI 12.12.0328 SI 12 F STMIK AMIKOM PURWOKERTO TAHUN AJARAN 2012 / 2013

Java (Netbeans) - Abstract & Interface - Object Oriented Programming

Embed Size (px)

Citation preview

Page 1: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

MAKALAH

PRAKTIKUMABSTRACT & INTERFACE

PEMROGRAMAN BERORIENTASI OBJECT

DISUSUN OLEH :

MELINA KRISNAWATI

12.12.0328

SI 12 F

STMIK AMIKOM PURWOKERTOTAHUN AJARAN 2012 / 2013

Page 2: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

SOAL ( STUDI KASUS )J Modifikasi program berdasarkan praktek abstrak.

J Menambahkan sebuah kelas yang berisi definisi untuk menghitung luas dan keliling

lingkaran, simpan dengan nama file “lingkaran.java”. kemudian buat obyek lingkaran ada

method main() dan tampilkan hasilnya.

Modifikasi program berdasarkan praktek inteface.

Menambahkan sebuah kelas yang berisi definisi untuk menghitung luas dan keliling

segitiga, simpan dengan nama file “InterfaceSegitiga.java”. kemudian pada method

main() buat obyek segitiga tampilkan hasilnya.

Page 3: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

LANDASAN TEORI

INTERFACE

Interface adalah class yang hanya berisi deklarasi method tanpa memiliki implementasi dan

semua property yang dimilikinya bersifat final. Interface mirip dengan abstrak.

Pada java, interface merupakan device yang digunakan untuk komunikasi antarobject berbeda

yang tidak memiliki hubungan apa pun. Interface bisa dikatakan sebagai protocol komunikasi

antarobject tersebut.

Interface merupakan mekanisme dimana kita dapat menentukan metode – metode yang harus

ada pada kelas. Interface hamper mirip dengan kelas abstrak, namun ada beberapa perbedaan

pada interface dan kelas abstrak.

1. Kelas abstrak bisa mengandung metode abstrak dan metode tidak abstrak, sedangkan

pada interface harus semua metode abstrak.

2. Kelas abstrak dapat memiliki atribut, sedangkan interface tidak boleh memiliki atribut.

3. Kelas abstrak digunakan oleh kelas lain menggunakan pewarisan ( extends ), sedangkan

interface menggunakan implementasi ( implements ).

Bentuk umum deklarasi :

[modifier] interface namaInterface [extends] [namaInterface1, namaInterface2,

namaInterfaceN]

{

//deklarasi konstanta

//deklarasi fungsi – fungsi abstrak

}

Page 4: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

suatu class yang mengimplementasikan suatu interface, maka class tersebut menyediakan SEMUA definisi fungsi abstrak yang ada di Interface tersebut.

Deklarasi :

[modifier] class namaKelas implements Interface1 [,Interface2, InterfaceN]

{

//Implementasi Method Abstrak

//Badan Class

}

ABSTRAK

Kelas abstrak merupakan kelas dimana memiliki metode – metode namun tidak dideklarasikan, pendeklarasiannya terjadi ada kelas turunannya. Untuk membuat kelas abstrak sama dengan membuat kelas biasanya, namun diawali dengan kunci abstract pada kelasnya dan diawali dengan kata kunci abstract pada metode yang akan dibuat namun tidak akan dideklarasikan. Metode yang abstract tidak perlu berisikan deklarasinya.

Menurut Sinaga (2004), dijelaskan bahwa Abstract Class adalah class yang tidak dapat diinstantiasi. Dengan kata lain Objek Class tersbut tidak dapat dibuat. Suatu class menjadi class Abstract apabila class tersebut paling tidak memiliki fungsi Abstract.

Perbedaan abstrak dengan interface :

1. Class Abstract dapat memiliki fungsi non abstract (fungsi yang memiliki definisi).2. Class Abstract dapat memiliki deklarasi variable.

Deklarasi :abstract class nama_class{

//Delarasi variabelpublic abstract nama_fungsi_abstrak (parameter);//Deklarasi fungsi yang lain

}

Page 5: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

PEMBAHASANABSTRACT

Pada class BangunDatar :

Pada class ini berisikan Method Abstrak .

Method Abstrak

Merupakan method yang tidak boleh menggunakan/memakai deklarasi.

Jika sebuah method abstrak diisi dengan deklarasi, maka akan error.

Pada class BujurSangkar dan Lingkaran :Pada class ini berisikan extends, tipe data double, dan method.

Extends Untuk mewariskan kelas turunannya, supaya tidak memboroskan coding atau terlalu banyak penulisan coding.

Tipe data doubleTipe data ini digunakan untuk suatu jenis bilangan decimal. Tipe data dapat digunakan sesuai dengan keinginan dan kebutuhan programmer.

MethodMethod tersebut adalah method biasa/method tidak abstrak, artinya boleh diinputkan sebuah deklarasi.

public abstract double hitungLuas();

public abstract double hitungKeliling();

public abstract double HitungLuas();

public abstract double HitungKeliling();

Page 6: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

Pada class AbstractSample :Pada class main ini, berisikan suatu pemanggilan method beserta objek, dan deklarasi.

BangunDatar obyek1 = new BujurSangkar(10) {

};

namaclass objek

System.out.println("Luas bujur sangkar dengan sisi 10 = " + obyek1.hitungLuas());

System.out.println("Kelilingnya ="+obyek1.hitungKeliling());

System.out.println("\n");

INTERFACE

Pada class InterfaceBangunDatar :

Class ini sama saja dengan class bangundatar pada abstrak, karna hanya berisikan method abstrak dan disitu terdapat tambahan kata kunci final.

Pada class InterfaceBujurSangkar dan InterfaceSegitiga :

Class inipun tidak jauh berbeda dengan class pada abstrak, hanya saja kelas abstrak menggunakan extends untuk mewarisi kelas turunannya, sedangkan interface menggunakan implements.

Pada class InterfaceSample :

Sama saja dengan main class abstrak. Didalamnya berisikan suatu pemanggilan method saja, diikuti dengan deklarasinya.

Page 7: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

LISTING PROGRAM DAN HASIL RUNNINGABSTRACT

Class BangunDatar :

package abstractsample;

/** * * @author azuura */public abstract class BangunDatar {

public abstract double hitungLuas();

public abstract double hitungKeliling();

public abstract double HitungLuas();

public abstract double HitungKeliling();

}

Class BujurSangkar :

package abstractsample;

/** * * @author azuura */

public class BujurSangkar extends BangunDatar{

private double sisi;

public BujurSangkar(double sisi) { this.sisi = sisi; }

Page 8: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

public double hitungKeliling() { return 4 * sisi; }

public double hitungLuas() { return sisi * sisi; }

public double HitungLuas() { throw new UnsupportedOperationException("Not supported yet."); }

public double HitungKeliling() { throw new UnsupportedOperationException("Not supported yet."); }

}

Class Lingkaran :

package abstractsample;

/** * * @author azuura */public class Lingkaran extends BangunDatar {

private double r;

public Lingkaran(double r) { this.r = r; }

Page 9: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

public double HitungKeliling() { return 2 * 3.14 * r; }

public double HitungLuas() { return 3.14 * r * r; }

public double hitungLuas() { throw new UnsupportedOperationException("Not supported yet.");

}

public double hitungKeliling() { throw new UnsupportedOperationException("Not supported yet."); }

}

Class AbstractSample :

package abstractsample;

/**

*

* @author azuura

*/

public class AbstractSample {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

Page 10: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

// TODO code application logic here

BangunDatar obyek1 = new BujurSangkar(10) {

};

System.out.println("Luas bujur sangkar dengan sisi 10 = " + obyek1.hitungLuas());

System.out.println("Kelilingnya = " + obyek1.hitungKeliling());

System.out.println("\n");

BangunDatar obyek2 = new Lingkaran(7) {

};

System.out.println("Luas Lingkaran dengan jari - jari 7 = " + obyek2.HitungLuas());

System.out.println("Kelilingnya = " + obyek2.HitungKeliling());

}

}

Page 11: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

INTERFACE

Class InterfaceBangunDatar :

package abstractsample;

/**

*

* @author azuura

*/

public interface InterfaceBangunDatar {

static final String JENIS = "Bangun Datar 2D";

public abstract double hitungLuas();

public abstract double hitungKeliling();

}

Class InterfaceBujurSangkar :

package abstractsample;

/**

*

* @author azuura

*/

public class InterfaceBujurSangkar implements InterfaceBangunDatar{

Page 12: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

private double sisi;

public String getJenis(){

return JENIS;

}

public InterfaceBujurSangkar(double sisi){

this.sisi = sisi;

}

public double hitungKeliling() {

return sisi * sisi;

}

public double hitungLuas() {

return 4 * sisi;

}

}

Class InterfaceSegitiga :

package abstractsample;

/**

*

* @author azuura

*/

public class InterfaceSegitiga implements InterfaceBangunDatar{

private double alas;

private double tinggi;

Page 13: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

public String getJenis(){

return JENIS;

}

public InterfaceSegitiga(double alas, double tinggi){

this.alas = alas;

this.tinggi = tinggi;

}

public double hitungKeliling() {

return 2 * alas + tinggi;

}

public double hitungLuas() {

return ((alas * tinggi)/2);

}

}

Class InterfaceSample :

package abstractsample;

/**

*

* @author azuura

*/

public class InterfaceSample {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

Page 14: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

// TODO code application logic here

InterfaceBujurSangkar obyek1 = new InterfaceBujurSangkar(10){};

System.out.println("Jenisnya adalah = "+ obyek1.getJenis());

System.out.println("Luas bujur sangkar dengan sisi 10 = "+ obyek1.hitungLuas());

System.out.println("Kelilingnya = "+ obyek1.hitungKeliling());

System.out.println("\n");

InterfaceBangunDatar obyek2 = new InterfaceSegitiga(6, 8){};

System.out.println("Jenisnya adalah = "+ obyek1.getJenis());

System.out.println("Luas Segitiga dengan alas 6, dan tinggi 8 = "+ obyek2.hitungLuas());

System.out.println("Kelilingnya = "+ obyek2.hitungKeliling());

}

}

Page 15: Java (Netbeans) - Abstract & Interface - Object Oriented Programming

KESIMPULAN

Kesimpulannya adalah bahwa Interface merupakan class yang hanya berisi deklarasi method tanpa memiliki implementasi dan semua property yang dimilikinya bersifat final.

Interface mirip dengan class abstract, tetapi interface tidak terkait dengan class hierarki. Interface mendefinisikan sebuah ( signature) dari sebuah kumpulan method tanpa tubuh.

Interface perlu digunakan dalam kerja team, karena programmer yang lain tidak perlu tahu bagaimana detail code ditulis.

Kesimpulan dari abstrak adalah abstrak memiliki Method abstrak dan method biasa/method tidak abstrak. Namun fungsi method abstrak sama dengan gunanya untuk pewarisan.

DAFTAR PUSTAKA

Khannedy, Eko Kurniawan. 2011. Belajar Java Dasar. StripBandunk

http://7seasons.wordpress.com