Puji syukur atas ke hadirat Allah SWT, karena berkat rahmat-Nya penulis
dapat menyelesaikan makalah yang berjudul Interface dan Exception. Makalah ini
diajukan guna memenuhi tugas mata kuliah Pemograman Berbasis Objek.
Penulis mengucapkan terima kasih kepada semua pihak yang telah
membantu sehingga makalah ini dapat diselesaikan sesuai dengan waktunya.
Makalah ini masih jauh dari sempurna, oleh karena itu saya mengharapkan kritik
dan saran yang bersifat membangun demi kesempurnaan makalah ini.
Semoga makalah ini memberikan informasi bagi mahasiswa lainnya
khususnya mahasiswa Politeknik Negeri Lhokseumawe dan bermanfaat untuk
pengembangan ilmu pengetahuan bagi kita semua dan terutama bagi penulis
sendiri.
Demikian makalah ini saya buat semoga bermanfaat untuk para pembaca.
Buket Rata, 12 Desember 2015
Tim Penulis
DAFTAR ISI
KATA PENGANTAR...............................................................................................i
DAFTAR ISI............................................................................................................ii
BAB I PENDAHULUAN........................................................................................1
1.1.
Latar Belakang..........................................................................................1
1.1.1. Interface.................................................................................................1
1.1.2. Exception...............................................................................................1
BAB II PEMBAHASAN.........................................................................................3
2.1.
Konsep Interface........................................................................................9
2.1.1. Pelaksanaan..........................................................................................10
2.3. Interface Lanjutan.......................................................................................12
2.2.1.
2.3.
Pelaksanaan......................................................................................14
Exception.................................................................................................16
2.3.1 Pelaksanaan...........................................................................................18
2.4.
2.4.1 Pelaksanaan...........................................................................................21
2.5.
2.5.1 Pelaksanaan...........................................................................................23
BAB III PENUTUP...............................................................................................25
3.1
Kesimpulan..............................................................................................25
DAFTAR PUSTAKA.............................................................................................26
ii
BAB I
PENDAHULUAN
1.1.
Latar Belakang
1.1.1. Interface
Pada proses pengembangan sistem sering kali kita dihadapkan kepada
berbagai ragam teknologi atau berbagai jenis teknik pembuatan program.
Misalnya dalam membuat aplikasi kita menggunakan berbagai jenis apliaksi
database dengan gaya pemrograman yang berbeda. Java memberikan fasilitas
untuk menjembatani perbedaan tersebut dengan apa yang disebut dengan
interface. Interface lebih mempermudah analyst dalam membuat konsep aplikasi,
interface mirip dengan pola atau biasa disebut dengan cetak biru aplikasi.
Apabila sbuah class java menggunakan interface maka class tersebut
mngimplementasikan interface. Pada saat class mengimplementasikan interface
walaupun semua yang ada di interface harus dicantumkan, namun tidak semuanya
harus berisi perintah atau proses. deklarasi interface harus public, karena memang
fungsi class pengguna interface adalah untuk digunakan secara public
Interface dalam kehidupan sehari-hari ibarat sebuah clausul kontrak, yang
berisi pasal-pasal, namun pasal-pasal tersebut masih kosong dan akan di isi pada
saat kontrak tersebut digunakan.
1.1.2. Exception
Dalam pembuatan program seringkali dijumpai error atau kesalahan. Oleh
karena itu, diperlukan suatu mekanisme yang membantu menangani error atau
kesalahan yang terjadi, baik saat pembuatan maupun implementasi program. Java
menyediakan mekanisme dalam pemrograman untuk menangani hal-hal tersebut
yang disebut dengan exception.
BAB II
PEMBAHASAN
2.1.
nama mirip dengan modul Modula . Paket-paket Java dapat disimpan dalam file
yang dikompresi dan disebut file JAR , memungkinkan kelas untuk mendownload lebih cepat sebagai kelompok daripada satu per satu. Programmer juga
biasanya menggunakan paket untuk mengatur kelas yang termasuk kategori yang
sama atau menyediakan fungsi serupa.
1. Sebuah paket menyediakan namespace yang unik untuk jenis yang
dikandungnya.
2. Kelas dalam paket yang sama dapat mengakses anggota-paket akses
masing-masing.
Java class library (Java API) memiliki banyak sekali kelas (Java
predefined classes) yang diletakkan ke dalam paket (package) untuk dapat
dipergunakan kembali di dalam program. Paket tersebut digunakan untuk
mengelompokkan kelas-kelas yang mempunyai kemiripan fungsi (related class).
Kelas-kelas Java yang akan digunakan di dalam program, terlebih dahulu harus
diimpor beserta dengan nama paket di mana kelas tersebut berada, kecuali untuk
kelas Java yang berada di paket java.lang seperti kelas JOptionPane yang berada
di paket javax.swing dan kelas DecimalFormat yang berada di paket java.text.
Berikut ini adalah daftar beberapa paket Java yang sering dipergunakan di dalam
kode program Java.
java.lang
java.util
java.io
java.math
java.nio
java.net
java.security
java.sql
java.awt
javax.swing
komponen
java.applet
The java.lang
Semua kelas yang dibuat akan tersimpan di direktori yang sekarang aktif (current
directory atau default package) ketika program sumber Java dikompilasi. Karena
program sumber Java terletak di direktori, misalnya c:\hindro\javasc dan proses
kompilasi juga dilakukan di direktori tersebut, maka file bytecode hasil kompilasi
juga akan tersimpan di direktori yang sama.
2.1.1. Tingkat Akses
1. Tingkat Akses Private
Dengan menggukanan data dan method dengan tingkat akses private,maka
data dan method tersebut hanya dapat di akses oleh kelas yang di milikinya saja.
Modifier private, menunjukkan bahwa suatu class, method atau variabel hanya
dapat diakses dari dalam kelas tersebut. modifier ini biasanya digunakan untuk
kelas, method, atau variabel yang memang ingin disimpan atau tidak dapat
digunakan oleh kelas yang lain (tidak berguna untuk kelas yang lain).
Keyword Private
Ini adalah file privateClass.java
package satu;
public class privateClass{
private static int kuadrat(int bilangan){
return bilangan*bilangan;
}
}
class pengakses{
public static void main (String[] args) {
privateClass a=new privateClass();
System.out.println (Hasil 3 kuadrat = +a.kuadrat(3));
}
}
Ini adalah file pengakses1 yang terletak di package yang berbeda tetapi
merupakan subclass atau anak kelas dari privateClass.
package dua;
import satu.privateClass;
public class pengakses1 extends satu.privateClass{
static privateClass a=new privateClass();
public static void main (String[] args) {
System.out.println (Hasil dari 9 kuadrat adalah +a.kuadrat(9));
}
}
Ini adalah file pengakses2 yang terletak pada package yang berbeda tapi bukan
termasuk anak kelas dari privateClass.
package dua;
import satu.privateClass;
public class pengakses2 {
static privateClass a=new privateClass();
public static void main (String[] args) {
System.out.println (a.kuadrat(9)); //kuadrat(int) has protected access in
satu.privateClass
}
}
}
}
class pengakses{
public static void main (String[] args) {
protectedClass a=new protectedClass();
System.out.println (Hasil 3 kuadrat = +a.kuadrat(3));
}
}
Di bawah ini adalah isi file pengakses2 yang terletak pada package yang berbeda
dan bukan subclass dari class protectedClass.
package dua;
import satu.protectedClass;
public class pengakses2 {
static protectedClass a=new protectedClass();
public static void main (String[] args) {
System.out.println (a.kuadrat(9)); //error
}
}
2.1.1. Pelaksanaan
Praktek 1 : Interface ActionListener
Coba dan pelajari contoh penggunaan interface dalam aplikasi GUI berikut.
Dalam contoh ini Kelas Tombol diturunkan dari kelas Frame, dan juga
mengimplementasikan interface ActionListener, yang memiliki sebuah method
yaitu : ActionPerformed.
import java.awt.*;
import java.awt.event.*;
public
class
Tombol
extends
Frame
implements
ActionListener {
//dekarasi komponen
Button bTekan = new Button();
TextField txt1 = new TextField("
");
public Tombol() {
//layout komponen
this.setLayout(new FlowLayout());
//menambahkan komponen ke frame
this.add(bTekan,null);
this.add(txt1,null);
//menulis text ke button
bTekan.setLabel("Tekan Aku");
//menambahkan action listener ke komponen
bTekan.addActionListener(this);
}
//implementasi method ActionPerformed
public void actionPerformed(ActionEvent e){
Object cmd = e.getSource();
if (cmd.equals(bTekan))
txt1.setText("Halo Semua");
}
public static void main(String[] argv){
10
Bangun2D
hitung_Keliling().
memiliki
method,
yaitu
hitung_Luas()
dan
Lingkaran
-daftar field
+daftar method
interface Bangun2D{
public double hitung_Luas();
public double hitung_Keliling();
}
class Lingkaran implements Bangun2D{
private double jejari;
public void setJejari(double jejari){
this.jejari=jejari;
}
public double getJejari(){
11
return this.jejari;
}
public double hitung_Luas(){
return (3.14 * this.jejari * this.jejari);
}
public double hitung_Keliling(){
return (2 * 3.14 * this.jejari);
}
}
class TestLingkaran{
public static void main(String[] arg){
Lingkaran bunder = new Lingkaran();
bunder.setJejari(10);
double luas = bunder.hitung_Luas();
double keliling = bunder.hitung_Keliling();
System.out.println("Luas lingkaran dengan jejari
"+bunder.getJejari()+ " adalah "+luas);
System.out.println("Keliling lingkaran dengan jejari
"+bunder.getJejari()+" adalah "+keliling);
}
}
12
[modifier]
class
NamaKelas
extends
NamaKelasInduk
implements NamaInterface {
//isi kelas
}
class
NamaKelas
implements
NamaInterface1,
NamaInterface2, {
//isi kelas
}
Suatu Interface dapat diperluas menjadi Interface baru yang lebih lengkap.
[modifier] interface NamaInterface2 extends NamaInterface1{
//daftar konstanta dan method
}
2.2.1. Pelaksanaan
13
interface MRequires{
int getValue();
}
class Mixin implements MProvides
{
private final MRequires parent;
public Mixin(MRequires parent) {
this.parent = parent;
}
public void func() {
System.out.println("Nilai dari method func: " +
parent.getValue());
}
}
class Parent
{
private int value;
public Parent(int value ) {
this.value = value;
}
public int getValue() {
return this.value;
}
}
class Child extends Parent implements MRequires, MProvides{
private final MProvides mixin;
public Child(int value){
super(value);
this.mixin = new Mixin(this);
}
public void func(){
mixin.func();
14
}
}
class TestInherInterface{
public static void main(String[] arg){
Child anak = new Child(5);
anak.func();
System.out.println("nilai
getValue:"+anak.getValue());
}
dari
method
15
2.3. Exception
Dalam pembuatan program seringkali dijumpai error atau kesalahan. Oleh
karena itu, diperlukan suatu mekanisme yang membantu menangani error atau
kesalahan yang terjadi, baik saat pembuatan maupun implementasi program. Java
menyediakan mekanisme dalam pemrograman untuk menangani hal-hal tersebut
yang disebut dengan exception.
Exception adalah event yang terjadi ketika program menemui kesalahan
pada saat instruksi program dijalankan. Banyak hal yang dapat menimbulkan
event ini, misalnya crash, harddisk rusak dengan tiba-tiba, sehingga programprogram tidak bisa mengakses file-file tertentu. Programmer pun dapat
menimbulkan event ini, misalnya dengan melakukan pembagian dengan bilangan
nol, atau pengisian elemen array melebihi jumlah elemen array yang dialokasikan
dan sebagainya.
Exception terdiri dari dua macam kelompok, yaitu :
16
Ada lima kata kunci yang digunakan oleh Java untuk menanngani
exception ini, yaitu, try, catch, finally, throw, dan throws.
Situasi yang menyebabkan exception dibagi menjadi 3 kategori yaitu,
Kesalahan
Java.
Hal
ini
merupakan
kesalahan
dalam
Error.
Exception
yang
didefinisikan
dalam
keas
ini
yaitu,
ThreadDeath,
Linkage
Error,
VirtualMachineError.
Kelas exception mempunyai banyak kelas turunan. Dua kelas yang penting
yaitu,
IOException
RuntimeException
17
Keterangan
Kesalahan pada operasi aritmatika
Beberapa jenis indeks di luar batas
Array diciptakan dengan ukuran negatif
Penggunaan acuan null yang tidak valid
Penyimpanan array dengan tipe data yang
tidak sesuai.
Cast yang tidak valid
Argumen yang tidak benar
Aturan sekuriti yang dilanggar
Operasi monitor ilegal
Lingkungan yang tidak benar
Operasi yang tidak didukung
2.3.1 Pelaksanaan
Macam penanganan exception, exception menggunakan kata kunci try, catch, dan
finally sebagai berikut :
18
19
20
itu. Jika tidak ditemukan, maka Java akan melakukan penelusuran ke blok
berikutnya dan bila tetap tidak ditemukan, maka penanganan exception secara
default akan menghentikan programnya.
Penggunaan kata kunci throws berhubungan erat dengan penggunaan
exception yang dicek oleh Java. Klausa throws mendaftarkan tipe-tipe exception
yang dapat dilempar method. Hal ini diperlukan agar diketahui semua exception
yang mungkin dilempar method atau subkelasnya, kecuali tipe Error atau
RunTimeException yang dilakukan sistem Java secara otomatis bila menemui
pelangggaran aturan-aturan Java. Semua exception yang hendak dilempar method
harus dideklarasikan di klausa throws. Jika method melemparkan exception yang
tidak dideklarasikan di deklarasi method, maka kompilator akan memberi pesan
kesalahan.
2.4.1 Pelaksanaan
Secara umum, penggunaan kata kunci throw, yaitu, Throw ObjekEksepsi;
ObjekEksepsi disini adalah semua obyek yang merupakan turunan dari class
throwable.
Contoh Program Menggunakan throw
public class DemoEksepsi {
public static void methodLain() {
try
{
throw new ArrayIndexOutOfBoundsException(1);
}
catch (ArrayIndexOutOfBoundsException e){
System.out.println("Penanganan
eksepsi
dalam
Method
MethodLain()");
throw e;
}
}
public static void main(String[]args) {
try
{
methodLain();
21
}
catch (ArrayIndexOutOfBoundsException e){
System.out.println("Penanganan eksepsi dalam Method main()");
}
}
}
pembauatan
kelas
eksepsi
baru
adalah
mudah.
Tinggal
mendefinisikan turunan kelas Exception (yang juga merupakan turunan dari kelas
Throwable). Kelas baru tersebut tidak perlu mengimplementasikan apapun. Hanya
perlu mendeklarasikan konstruktor yang mungkin akan digunakan.
22
Fungsi
Mengembalikan object
String getLocalizedMessage()
String getMessage()
void printStackTrace()
void printStackTrace(PrintStream
eksepsi
Menampilkan stack trace
Mengirim hasil dari stack trace ke
Throwable
stream)
stream yang telah ditentukan
void printStackTrace(PrintWriter stream) Mengirim hasil dari stack trace ke
String toString()
tersebut.
Akan
dipanggil
2.5.1 Pelaksanaan
Contoh Program Membuat Exception
class EksepsiKu extends Exception{
EksepsiKu(String s){
super(s);
}
}
class TestEksepsiKu {
public static void methodKu() throws EksepsiKu {
throw new EksepsiKu("Isi Eksepsi");
}
23
24
BAB III
PENUTUP
3.1 Kesimpulan
Interface adalah kelas yang benar-benar abstrak, artinya hanya berisi
deklarasi method dan (jika ada) konstanta saja. Method-method tersebut nantinya
harus diimplementasikan pada real class.
Sedangkat Paket pada Java adalah mekanisme untuk mengatur Java kelas
ke ruang nama mirip dengan modul Modula . Paket-paket Java dapat disimpan
dalam file yang dikompresi dan disebut file JAR , memungkinkan kelas untuk
men-download lebih cepat sebagai kelompok daripada satu per satu.
Exception adalah event yang terjadi ketika program menemui kesalahan
pada saat instruksi program dijalankan. Banyak hal yang dapat menimbulkan
event ini, misalnya crash, harddisk rusak dengan tiba-tiba, sehingga programprogram tidak bisa mengakses file-file tertentu.
Ada lima kata kunci yang digunakan oleh Java untuk menanngani
exception ini, yaitu, try, catch, finally, throw, dan throws.
25
DAFTAR PUSTAKA
Wikipedia. 2013. Java. http://id.wikipedia.org/wiki/Java. 04-10-2013
Lyyrac. 2013. Belajar Java. http://java.lyracc.com/belajar/java-untuk-pemula. 0410-2013.
Uin-Malang. 2011. Fun with Java Language Programaing. http://blog.uinmalang.ac.id/funjava/. 04-10-2013
Rangsang Purnama, Tuntunan Pemrograman Java Jilid 3, Prestasi Pustaka,
Jakarta, 2005.
Sinaga B.L, Pemrograman Berorientasi Objek dengan Java, Gava Media,
Yogyakarta, 2004.
26