SlideShare a Scribd company logo
MAKALAH
PRAKTIKUM
ABSTRACT & INTERFACE
PEMROGRAMAN BERORIENTASI
OBJECT
DISUSUN OLEH :
MELINA KRISNAWATI
12.12.0328
SI 12 F
STMIK AMIKOM PURWOKERTO
TAHUN AJARAN 2012 / 2013
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.
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
}
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 variabel
public abstract nama_fungsi_abstrak (parameter);
//Deklarasi fungsi yang lain
}
PEMBAHASAN
ABSTRACT
Pada class BangunDatar :
Pada class ini berisikan Method Abstrak .
 Method Abstrak
public abstract double hitungLuas();
public abstract double hitungKeliling();
public abstract double HitungLuas();
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 double
Tipe data ini digunakan untuk suatu jenis bilangan decimal. Tipe data dapat digunakan
sesuai dengan keinginan dan kebutuhan programmer.
 Method
Method tersebut adalah method biasa/method tidak abstrak, artinya boleh diinputkan
sebuah deklarasi.
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.
LISTING PROGRAM DAN HASIL RUNNING
ABSTRACT
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;
}
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;
}
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) {
// 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());
}
}
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{
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;
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) {
// 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());
}
}
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

More Related Content

PDF
[RPL2] Sequence Diagram
PDF
[PBO] Pertemuan 5 - Inheritance
PDF
[PBO] Pertemuan 5 - Polymorphism
PDF
[PBO] Pertemuan 6 - Abstrak
DOCX
Laporan Basis Data (DDL)
PDF
[PBO] Pertemuan 3 - Package, enkapsulasi & instansiasi objek
PDF
LAPORAN TUGAS AKHIR PERANCANGAN APLIKASI KNOWLEDGE BASE SYSTEM UNTUK INSTRUKS...
[RPL2] Sequence Diagram
[PBO] Pertemuan 5 - Inheritance
[PBO] Pertemuan 5 - Polymorphism
[PBO] Pertemuan 6 - Abstrak
Laporan Basis Data (DDL)
[PBO] Pertemuan 3 - Package, enkapsulasi & instansiasi objek
LAPORAN TUGAS AKHIR PERANCANGAN APLIKASI KNOWLEDGE BASE SYSTEM UNTUK INSTRUKS...

What's hot (20)

PPTX
Paparan seminar proposal ta 30092011
PPTX
Media 2,3 dimensi dan lingkungan
PPT
Model sebagai Media Pembelajaran
PDF
Object oriented programming dengan php
DOCX
Makalah perulangan
DOCX
Himpunan matematika diskrit
PDF
Kelas XII prakarya dan kewirausahaan Buku Siswa, kurikulum 2013
PDF
[RPL2] Class Diagram dan Relasinya (2)
DOCX
Perulangan atau looping dalam java
PDF
Menejemen Proyek
PDF
[RPL2] Pertemuan 3 - UML dan USECASE VIEW
PDF
AR Assemblr edu
DOC
Makalah tentang firewall
PPTX
Materi Kecerdasan Buatan
PDF
Representasi Pengetahuan
PDF
Minggu 5_Skala Pengukuran
DOCX
MAKALAH CLOUD COMPUTING
DOCX
Learning management system makalah kel 3
PDF
[RPL2] Class Diagram dan Konsep Object Oriented (1)
Paparan seminar proposal ta 30092011
Media 2,3 dimensi dan lingkungan
Model sebagai Media Pembelajaran
Object oriented programming dengan php
Makalah perulangan
Himpunan matematika diskrit
Kelas XII prakarya dan kewirausahaan Buku Siswa, kurikulum 2013
[RPL2] Class Diagram dan Relasinya (2)
Perulangan atau looping dalam java
Menejemen Proyek
[RPL2] Pertemuan 3 - UML dan USECASE VIEW
AR Assemblr edu
Makalah tentang firewall
Materi Kecerdasan Buatan
Representasi Pengetahuan
Minggu 5_Skala Pengukuran
MAKALAH CLOUD COMPUTING
Learning management system makalah kel 3
[RPL2] Class Diagram dan Konsep Object Oriented (1)
Ad

Viewers also liked (20)

DOCX
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
PDF
Pelajaran oop java 2 pengertian method dan cara pembuatan method by hermawan
DOCX
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
PDF
4 abstract class, interface
PPTX
Materi ii dasar dasar netbeans
PDF
OOP Dalam Pemrograman Java
DOCX
Collection in Java
PDF
javainterface
DOCX
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
DOCX
Laporan PBO Pratikum 3
DOCX
Laporan PBO pratikum 2
PPT
Keliling bangun persegi panjang
PDF
Modul Praktek Java OOP
DOCX
Tugas Praktikum Pemrograman Berorientasi Objek
PPT
Java collection
PDF
Collections In Java
DOCX
contoh Program sederhana Java dan penjelasan programnya
PPTX
Power point bangun datar Kelas 3 SD
PPT
Collection Framework in java
KEY
Practical OOP In Java
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Pelajaran oop java 2 pengertian method dan cara pembuatan method by hermawan
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
4 abstract class, interface
Materi ii dasar dasar netbeans
OOP Dalam Pemrograman Java
Collection in Java
javainterface
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan PBO Pratikum 3
Laporan PBO pratikum 2
Keliling bangun persegi panjang
Modul Praktek Java OOP
Tugas Praktikum Pemrograman Berorientasi Objek
Java collection
Collections In Java
contoh Program sederhana Java dan penjelasan programnya
Power point bangun datar Kelas 3 SD
Collection Framework in java
Practical OOP In Java
Ad

Similar to Java (Netbeans) - Abstract & Interface - Object Oriented Programming (18)

PDF
Modul 7 pbo
PPTX
Interfaces & abstrack classes UNP Padang.pptx
PPTX
Abstract Class & Interface
PDF
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
PDF
Pemrograman 2 Part 3.pdf
PPT
8_file_2013-06-05_100800_candra_irawan_m.kom__.ppt
PPT
Lanjutan-Konsep-OOPLanjutan-Konsep-OOP.ppt
PPT
8.PPBO_Abstract Class_dan_Interface,.ppt
PPTX
SEC12S3 - MATKUL - PBO - 7 - Abstract.pptx
PDF
[PBO] Pertemuan 6 - Interface
PDF
Pewarisan, Polimorfisme, dan Interface
PDF
PPTX
DESAIN PEMROGRAMAN BERORIENTASI OBJEK - INTERFACE DAN KELAS ABSTRAK.pptx
PPT
Pemrograman Berorientasi Objek AbstractClass_dan_Interface.ppt
PDF
12. tambahan polymorphisme
PPT
pbo 3 ervan
PDF
Modul Object Oriented Programming
PPT
1. konsep pbo
Modul 7 pbo
Interfaces & abstrack classes UNP Padang.pptx
Abstract Class & Interface
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
Pemrograman 2 Part 3.pdf
8_file_2013-06-05_100800_candra_irawan_m.kom__.ppt
Lanjutan-Konsep-OOPLanjutan-Konsep-OOP.ppt
8.PPBO_Abstract Class_dan_Interface,.ppt
SEC12S3 - MATKUL - PBO - 7 - Abstract.pptx
[PBO] Pertemuan 6 - Interface
Pewarisan, Polimorfisme, dan Interface
DESAIN PEMROGRAMAN BERORIENTASI OBJEK - INTERFACE DAN KELAS ABSTRAK.pptx
Pemrograman Berorientasi Objek AbstractClass_dan_Interface.ppt
12. tambahan polymorphisme
pbo 3 ervan
Modul Object Oriented Programming
1. konsep pbo

More from Melina Krisnawati (19)

PDF
makalah sistem operasi - android vd ios
PDF
Laporan praktikum i dan ii tentang mengenal perintah dasar linux ubuntu
PDF
Kode program layout xml dan tampilan ui graphical (menggunakan eclipse)
PDF
menu strip - visual basic
DOCX
Tugas algoritma fibonacci
DOCX
Tugas algoritma faktorial
DOCX
Algoritma - Array
PPTX
Aplikasi sistem informasi pada fungsi fungsi organisasi
DOCX
Laporan Final Project - Aplikasi Sistem Informasi Rental CD - Netbeans
PDF
Java (Netbeans) - Exception handling - Object Oriented Programming
DOCX
Java (Netbeans) - Looping - Object Oriented Programming
DOCX
Laporan pembuatan Final Project (Java - Netbeans) "Rental CD"
DOC
Konsep & storyboard game multimedia (puzzle alphabet)
PPTX
Multimedia 2D (Game) - Puzzle alphabet
DOCX
Pemrograman Mobile - Try Catch
PDF
Laporan praktikum 4 Sistem Operasi - External Command (mem, xcopy, system, l...
PDF
Laporan praktikum 3 - Sistem Operasi Internal & External Command (Lanjutan)
PDF
Laporan praktikum 2 - Sistem Operasi - internal command - copy con, rename,...
PDF
Laporan Praktikum - Sistem Operasi - Perintah Internal Command
makalah sistem operasi - android vd ios
Laporan praktikum i dan ii tentang mengenal perintah dasar linux ubuntu
Kode program layout xml dan tampilan ui graphical (menggunakan eclipse)
menu strip - visual basic
Tugas algoritma fibonacci
Tugas algoritma faktorial
Algoritma - Array
Aplikasi sistem informasi pada fungsi fungsi organisasi
Laporan Final Project - Aplikasi Sistem Informasi Rental CD - Netbeans
Java (Netbeans) - Exception handling - Object Oriented Programming
Java (Netbeans) - Looping - Object Oriented Programming
Laporan pembuatan Final Project (Java - Netbeans) "Rental CD"
Konsep & storyboard game multimedia (puzzle alphabet)
Multimedia 2D (Game) - Puzzle alphabet
Pemrograman Mobile - Try Catch
Laporan praktikum 4 Sistem Operasi - External Command (mem, xcopy, system, l...
Laporan praktikum 3 - Sistem Operasi Internal & External Command (Lanjutan)
Laporan praktikum 2 - Sistem Operasi - internal command - copy con, rename,...
Laporan Praktikum - Sistem Operasi - Perintah Internal Command

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

  • 1. MAKALAH PRAKTIKUM ABSTRACT & INTERFACE PEMROGRAMAN BERORIENTASI OBJECT DISUSUN OLEH : MELINA KRISNAWATI 12.12.0328 SI 12 F STMIK AMIKOM PURWOKERTO
  • 2. TAHUN AJARAN 2012 / 2013 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.
  • 3. 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 :
  • 4. [modifier] interface namaInterface [extends] [namaInterface1, namaInterface2, namaInterfaceN] { //deklarasi konstanta //deklarasi fungsi – fungsi abstrak } 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 :
  • 5. 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 variabel public abstract nama_fungsi_abstrak (parameter); //Deklarasi fungsi yang lain } PEMBAHASAN ABSTRACT Pada class BangunDatar : Pada class ini berisikan Method Abstrak .  Method Abstrak public abstract double hitungLuas(); public abstract double hitungKeliling(); public abstract double HitungLuas();
  • 6. 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 double Tipe data ini digunakan untuk suatu jenis bilangan decimal. Tipe data dapat digunakan sesuai dengan keinginan dan kebutuhan programmer.  Method Method tersebut adalah method biasa/method tidak abstrak, artinya boleh diinputkan sebuah deklarasi. Pada class AbstractSample :
  • 7. 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 :
  • 8. Sama saja dengan main class abstrak. Didalamnya berisikan suatu pemanggilan method saja, diikuti dengan deklarasinya. LISTING PROGRAM DAN HASIL RUNNING ABSTRACT Class BangunDatar : package abstractsample; /** * * @author azuura */ public abstract class BangunDatar { public abstract double hitungLuas(); public abstract double hitungKeliling();
  • 9. 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; } public double hitungKeliling() {
  • 10. 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;
  • 11. /** * * @author azuura */ public class Lingkaran extends BangunDatar { private double r; public Lingkaran(double r) { this.r = r; } 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.");
  • 12. } 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) { // TODO code application logic here BangunDatar obyek1 = new BujurSangkar(10) { }; System.out.println("Luas bujur sangkar dengan sisi 10 = " + obyek1.hitungLuas());
  • 13. 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()); } } INTERFACE Class InterfaceBangunDatar : package abstractsample;
  • 14. /** * * @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{ private double sisi; public String getJenis(){ return JENIS; }
  • 15. 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; public String getJenis(){ return JENIS; } public InterfaceSegitiga(double alas, double tinggi){ this.alas = alas;
  • 16. 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) { // TODO code application logic here InterfaceBujurSangkar obyek1 = new InterfaceBujurSangkar(10){}; System.out.println("Jenisnya adalah = "+ obyek1.getJenis());
  • 17. 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()); } } KESIMPULAN Kesimpulannya adalah bahwa Interface merupakan class yang hanya berisi deklarasi method tanpa memiliki implementasi dan semua property yang dimilikinya bersifat final.
  • 18. 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