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

What's hot (20)

PPT
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
RUDISELAMAT2
 
PPTX
Unit 3 lecture-2
vishal choudhary
 
PDF
Modul Pemrograman Berorientasi Objek
Wahyu Widodo
 
DOCX
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Melina Krisnawati
 
PDF
[PBO] Pertemuan 6 - Interface
rizki adam kurniawan
 
PDF
Implementasi dan pengujian sistem
aidilsukri
 
PDF
Mengapa kita memerlukan basis data
Ahmad Saktia Yunus
 
PDF
[PBO] Pertemuan 2 - Method, String & array
rizki adam kurniawan
 
PPT
Java Collections Framework
Sony India Software Center
 
PDF
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Debby Ummul
 
PPTX
Inheritance in java
yash jain
 
PPTX
struktur data
Ayu_lestari
 
PDF
Visual basic 6 tutorial its 4
Renhard Manurung
 
PDF
Burp suite
Ammar WK
 
PPTX
Abstract class and interface
Mazharul Sabbir
 
PPT
Inheritance C#
Raghuveer Guthikonda
 
PDF
[PBO] Pertemuan 5 - Inheritance
rizki adam kurniawan
 
PPTX
Exceptional Handling in Java
QaziUmarF786
 
PPTX
Object Oriented Programming with C#
foreverredpb
 
PPTX
Java Final Keyword
Ducat India
 
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
RUDISELAMAT2
 
Unit 3 lecture-2
vishal choudhary
 
Modul Pemrograman Berorientasi Objek
Wahyu Widodo
 
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Melina Krisnawati
 
[PBO] Pertemuan 6 - Interface
rizki adam kurniawan
 
Implementasi dan pengujian sistem
aidilsukri
 
Mengapa kita memerlukan basis data
Ahmad Saktia Yunus
 
[PBO] Pertemuan 2 - Method, String & array
rizki adam kurniawan
 
Java Collections Framework
Sony India Software Center
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Debby Ummul
 
Inheritance in java
yash jain
 
struktur data
Ayu_lestari
 
Visual basic 6 tutorial its 4
Renhard Manurung
 
Burp suite
Ammar WK
 
Abstract class and interface
Mazharul Sabbir
 
Inheritance C#
Raghuveer Guthikonda
 
[PBO] Pertemuan 5 - Inheritance
rizki adam kurniawan
 
Exceptional Handling in Java
QaziUmarF786
 
Object Oriented Programming with C#
foreverredpb
 
Java Final Keyword
Ducat India
 

Viewers also liked (20)

DOCX
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Melina Krisnawati
 
PDF
Pelajaran oop java 2 pengertian method dan cara pembuatan method by hermawan
hermawanawang
 
PDF
4 abstract class, interface
Robbie AkaChopa
 
PPTX
Materi ii dasar dasar netbeans
Izal Kernel
 
PDF
OOP Dalam Pemrograman Java
Anjar Ridwan
 
DOCX
Collection in Java
Home
 
PDF
javainterface
Arjun Shanka
 
DOCX
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Ekha Cahya Nugraha
 
DOCX
Laporan PBO Pratikum 3
rahmi wahyuni
 
DOCX
Laporan PBO pratikum 2
rahmi wahyuni
 
PPT
Keliling bangun persegi panjang
School of Visual Arts
 
PDF
Modul Praktek Java OOP
Zaenal Arifin
 
DOCX
Tugas Praktikum Pemrograman Berorientasi Objek
Pungkas Soebarkah
 
PPT
Java collection
Arati Gadgil
 
PDF
Collections In Java
Binoj T E
 
DOCX
contoh Program sederhana Java dan penjelasan programnya
stephan EL'wiin Shaarawy
 
PPTX
Power point bangun datar Kelas 3 SD
Fauziyatun Ni'amah
 
PPT
Collection Framework in java
CPD INDIA
 
KEY
Practical OOP In Java
wiradikusuma
 
DOCX
Membuat aplikasi perhitungan luas dan keliling bangun datar dengan macromedia...
St. Risma Ayu Nirwana
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Melina Krisnawati
 
Pelajaran oop java 2 pengertian method dan cara pembuatan method by hermawan
hermawanawang
 
4 abstract class, interface
Robbie AkaChopa
 
Materi ii dasar dasar netbeans
Izal Kernel
 
OOP Dalam Pemrograman Java
Anjar Ridwan
 
Collection in Java
Home
 
javainterface
Arjun Shanka
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Ekha Cahya Nugraha
 
Laporan PBO Pratikum 3
rahmi wahyuni
 
Laporan PBO pratikum 2
rahmi wahyuni
 
Keliling bangun persegi panjang
School of Visual Arts
 
Modul Praktek Java OOP
Zaenal Arifin
 
Tugas Praktikum Pemrograman Berorientasi Objek
Pungkas Soebarkah
 
Java collection
Arati Gadgil
 
Collections In Java
Binoj T E
 
contoh Program sederhana Java dan penjelasan programnya
stephan EL'wiin Shaarawy
 
Power point bangun datar Kelas 3 SD
Fauziyatun Ni'amah
 
Collection Framework in java
CPD INDIA
 
Practical OOP In Java
wiradikusuma
 
Membuat aplikasi perhitungan luas dan keliling bangun datar dengan macromedia...
St. Risma Ayu Nirwana
 
Ad

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

PDF
Modul 7 pbo
arrofikzulkarnaen
 
PPTX
Interfaces & abstrack classes UNP Padang.pptx
RizalSitanggang1
 
PDF
Algoritma dan Struktur Data
As Faizin
 
PPTX
DESAIN PEMROGRAMAN BERORIENTASI OBJEK - INTERFACE DAN KELAS ABSTRAK.pptx
HardikaKhusnulia
 
PPTX
SEC12S3 - MATKUL - PBO - 7 - Abstract.pptx
muhammaddliyaaul
 
PDF
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
hermawanawang
 
DOCX
Muhammad Firdaus
muhammaddaus
 
PPT
Lanjutan-Konsep-OOPLanjutan-Konsep-OOP.ppt
AliKhumaidi4
 
DOCX
Nelly
nellylawar
 
DOCX
Delphi
Hardini_HD
 
DOCX
Class dan object
Hardini_HD
 
PDF
Pemrograman 2 Part 3.pdf
JeffryAndrian
 
PDF
Pemograman berorientasi objek
Alvin Setiawan
 
DOCX
Blog.yuna
syf_yunarti
 
PDF
Pewarisan, Polimorfisme, dan Interface
Ibrahim Naki
 
DOCX
Modul 1 Algo
STMIK AKAKOM
 
PDF
Pengenalan Java
Laili Aidi
 
PDF
Modul pratikum pbo - ENCAPSULATION
rahmantoyuri
 
DOCX
Dasar pemrograman C++
Andan Sperrow
 
PDF
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Debby Ummul
 
Modul 7 pbo
arrofikzulkarnaen
 
Interfaces & abstrack classes UNP Padang.pptx
RizalSitanggang1
 
Algoritma dan Struktur Data
As Faizin
 
DESAIN PEMROGRAMAN BERORIENTASI OBJEK - INTERFACE DAN KELAS ABSTRAK.pptx
HardikaKhusnulia
 
SEC12S3 - MATKUL - PBO - 7 - Abstract.pptx
muhammaddliyaaul
 
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
hermawanawang
 
Muhammad Firdaus
muhammaddaus
 
Lanjutan-Konsep-OOPLanjutan-Konsep-OOP.ppt
AliKhumaidi4
 
Nelly
nellylawar
 
Delphi
Hardini_HD
 
Class dan object
Hardini_HD
 
Pemrograman 2 Part 3.pdf
JeffryAndrian
 
Pemograman berorientasi objek
Alvin Setiawan
 
Blog.yuna
syf_yunarti
 
Pewarisan, Polimorfisme, dan Interface
Ibrahim Naki
 
Modul 1 Algo
STMIK AKAKOM
 
Pengenalan Java
Laili Aidi
 
Modul pratikum pbo - ENCAPSULATION
rahmantoyuri
 
Dasar pemrograman C++
Andan Sperrow
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Debby Ummul
 
Ad

More from Melina Krisnawati (19)

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

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