• Tidak ada hasil yang ditemukan

Paket dan Interface. 15 th week Estu Sinduningrum ST,MT

N/A
N/A
Protected

Academic year: 2021

Membagikan "Paket dan Interface. 15 th week Estu Sinduningrum ST,MT"

Copied!
46
0
0

Teks penuh

(1)

Paket dan Interface

15th week

(2)

Mengimpor paket yang Telah

Dibuat ke dalam program

(3)

Langkah-langkah

Mengimpor paket yang Telah

Dibuat ke dalam program

Berikut ini contoh kode program yang akan menunjukkan cara

pembuatan paket.

Di sini, kita akan menyimpan file kode program ke dalam paket

contohpkg

, yang secara fisik diisimpan dalam direktori

ContohPkg. Ikuti langkah-langkah berikut:

(4)

Estu Sinduningrum, ST, MT

set CLASSPATH dari direktori kerja Anda. sebagai contoh, apabila Anda, bekerja di direktori E:\Latihan_OOP, maka Anda dapat menuliskan perintah berikut pada command-prompt.

Aktifkan direktori kerja Anda dan buat direktori baru

dengan nama ContohPkg di dalamnya melalui

(5)

Buat file baru dengan nama

Lingkaran.java

dan simpan ke

dalam direktori Contohpkg. lsikan kode berikut ke dalamnya.

Estu Sinduningrum, ST, MT

package ContohPkg;

public class Lingkaran {

private final double PI = 3.1416;

private double r;

public Lingkaran(double r) {

this.r = r;

}

public double luas() {

return (PI * r * r);

}

public double keliling() {

return (2 * PI * r);

(6)

Buat file baru dengan nama

Segitiga.java

dan simpan ke

dalam direktori Contohpkg. lsikan kode berikut ke dalamnya.

Estu Sinduningrum, ST, MT

package ContohPkg;

public class Segitiga {

private double tinggi;

private double alas;

public Segitiga(double tinggi, double alas) {

this.tinggi = tinggi;

this.alas = alas;

}

public double luas() {

return ((tinggi * alas)/2);

}

}

(7)

Buat file baru dengan nama

DemoPanggilPaket

.java dan

simpan ke dalam direktori Latihan_OOP

.

lsikan kode berikut ke dalamnya.

Estu Sinduningrum, ST, MT

// mengimpor semua kelas yang terdapat pada paket ContohPkg

import ContohPkg.*;

class DemoPanggilPaket {

public static void main(String[] args) {

Lingkaran obLingkaran = new Lingkaran(7);

Segitiga obSegitiga = new Segitiga(4, 3);

System.out.println("Luas lingkaran : " +

obLingkaran.luas());

System.out.println("Keliling lingkaran : " +

obLingkaran.keliling());

System.out.println("Luas Segitiga : " +

obSegitiga.luas());

} }

(8)

Paket di dalam Paket

Estu Sinduningrum, ST, MT

(9)

Peranan Tingkat Akses

di dalam Paket

Java membagi empat kategori dari keberadaan sebuah anggota

kelas, yaitu sebagai berikut:

Kelas turunan di dalam paket yang sama.

Bukan kelas turunan di dalam paket yang sama.

Kelas turunan di dalam paket yang berbeda.

Bukan kelas turunan dan juga berada di dalam paket yang

berbeda

(10)

Tabel berikut ini akan menunjukkan apakah anggota kelas

dengan tingkat akses tertentu dapat diakses

oleh bagian-bagian di atas atau tidak.

Tingkat Akses private Tingkat Akses protected Tingkat Akses public Tanpa Tingkat Akses

Kelas yang sama Ya Ya Ya Ya

Kelas turunan Paket sama Tidak Ya Ya Ya Bukan Kelas turunan Paket sama Tidak Ya Ya Ya Kelas turunan Paket berbeda Tidak Ya Ya Tidak Bukan Kelas turunan Paket berbeda

Tidak Tidak Ya Tidak

(11)

Contoh hirarki kelas dan interface

Estu Sinduningrum, ST, MT

Kelas AlatMusikPetik, AlatMusikTiup,

dan AlatMusikpukul

mengimplementaskan interface

AlatMusik.

Dengan demikian,

keras-kelas ini harus

mengimplementasikan

semua method yang

terdapat pada interface

AlatMusik.

selanjutnya, kita menurunkan

kelas AlatMusikPetik menjadi dua

kelas turunan lainnya, yaitu kelas

Gitar dan Bass.

Melalui cara ini, kelas Gitar akan

mewarisi sifat-sifat yang terdapat

pada kelas AlatMusikPetik

(12)

DemoInterface.java

(13)

Estu Sinduningrum, ST, MT interface AlatMusik { void mainkan(); void setelNada(); String ambilNama(); }

class AlatMusikPetik implements AlatMusik { protected String nama;

public void mainkan() {

System.out.println(ambilNama() + " dimainkan dengan cara petik");

}

public void setelNada() {

System.out.println("Setel nada pada " + ambilNama()); }

public String ambilNama() { return nama;

} }

class AlatMusikTiup implements AlatMusik { protected String nama;

public void mainkan() {

System.out.println(ambilNama() +" dimainkan dengan cara tiup");

}

public void setelNada() {

System.out.println("Setel nada pada " + ambilNama()); }

public String ambilNama() { return nama;

} }

class AlatMusikPukul implements AlatMusik { protected String nama;

public void mainkan() {System.out.println(ambilNama() + " dimainkan dengan cara pukul");

}

public void setelNada() {

System.out.println("Setel nada pada " + ambilNama()); }

public String ambilNama() { return nama;

} }

class Gitar extends AlatMusikPetik { Gitar(String nama) {

this.nama = nama; } }

class Bass extends AlatMusikPetik { Bass(String nama) {

this.nama = nama; } }

class DemoInterface {

public static void main(String[] args) { AlatMusikPetik gitar, bass;

gitar = new Gitar("Gitar"); bass = new Bass("Bass");

gitar.mainkan(); gitar.setelNada(); System.out.println(); bass.mainkan(); bass.setelNada(); } }

(14)

Membuat Referensi ke

Tipe Interface

Selain ke tipe kelas, kita juga dapat membuat sebuah referensi

objek ke tipe interface.

Sebagai contoh, kita dapat membuat referensi ke interface

AlatMusik untuk memanggil method yang terdapat pada kelas

Gitar dan Bass.

Perhatikan contoh potongan kode program berikut ini.

(15)

Variabel di dalam Interface

Sebuah interface tidak hanya dapat berisi sekumpulin method saja,

akan tetapi juga berisi deklarasi variabel-variabel di dalamnya.

Hal yang perlu diperhatikan di sini, bahwa variabel-variabel

tersebut akan memiliki sifat statis dan final.

Ini berarti bahwa variabel-variabel tersebut akan dianggap sebagai

konstanta yang nilainya tidak dapat diubah oleh kelas-kelas yang

mengimplementasikannya.

(16)

DemoVarInterface.java

(17)

Estu Sinduningrum, ST, MT import java.io.*; interface Hari { int MINGGU = 1; int SENIN = 2; int SELASA = 3; int RABU = 4; int KAMIS = 5; int JUMAT = 6; int SABTU = 7; }

class DemoVarInterface implements Hari { public static void main(String[] args) { String sInput = null;

System.out.print("Masukkan nomor hari (1..7): ");

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

try {

sInput = br.readLine();

int i = Integer.parseInt(sInput); String namaHari = null;

switch (i) {

case MINGGU : namaHari = "Minggu"; break; case SENIN : namaHari = "Senin"; break; case SELASA : namaHari = "Selasa"; break; case RABU : namaHari = "Rabu"; break; case KAMIS : namaHari = "Kamis"; break; case JUMAT : namaHari = "Jumat"; break; case SABTU : namaHari = "Sabtu"; break; }

System.out.println("Hari ke-" + i + " adalah " + namaHari);

} catch (IOException ioe) { ioe.printStackTrace(); }

} }

(18)

Interface Dapat Diturunkan

Menjadi Interface Lain

Sama halnya dengan kelas, interface juga dapat diturunkan menjadi

interface lain dengan menggunakan kata kunci extends. Namun

terdapat satu hal yang harus diperhatikan yaitu pada saat kita

mengimplementasikan interface turunan, kita juga harus

mengimplementasikan semua method yang didefinisikan pada

interface induk.

(19)

DemoInterfaceTurunan.java

(20)

Estu Sinduningrum, ST, MT

interface IInduk {

double tambah(double a, double b); double kurang(double a, double b); }

interface ITurunan extends IInduk { double kali(double a, double b); double bagi(double a, double b); }

class Aritmetika implements ITurunan { private double x; private double y; Aritmetika(double x, double y) { this.x = x; this.y = y; }

public double tambah(double a, double b) { return (a + b);

}

public double kurang(double a, double b) { return (a - b);

}

public double kali(double a, double b) { return (a * b);

}

public double bagi(double a, double b) { return (a / b);

}

public void cetakHasil() {

System.out.println("x = " + x); System.out.println("y = " + y); System.out.println();

System.out.println("x + y = " + tambah(x, y)); System.out.println("x - y = " + kurang(x, y)); System.out.println("x * y = " + kali(x, y)); System.out.println("x / y = " + bagi(x, y)); } }

class DemoInterfaceTurunan {

public static void main(String[] args) {

// membuat objek Aritmetika dengan x=10.0 dan y=2.5

Aritmetika obj = new Aritmetika(10.0, 2.5); obj.cetakHasil();

(21)
(22)

Penjebakan Eksepsi

Hal terburuk dan paling dihindari dalam dunia pemrograman

adalah bug (kesalahan) pada saat proses eksekusi di dalam program

yang kita buat.

Secara umum, kesalahan tersebut disebut juga dengan eksepsi.

Menurut definisi umum, eksepsi adalah suatu kondisi abnormal

yang terjadi pada saat runtime.

Pada bahasa pemprogaman lain yang belum mendukung

mekanisme penanganan eksepsi, kesalahan-kesalah yang terjadi

harus diperiksa secara manual (biasanya melalui kode error

(23)

Cara seperti itu tentu memiliki kelemahan karena proses

pelacakannya masih sulit dilakukan.

Untuk mengatasi permasalahan tersebut, Java menyediakan sebuah

mekanisme penanganan kesalahan yang biasa disebut dengan

exception-handling.

Setiap kesalahan akan dibentuk menjadi sebuah objek.

Estu Sinduningrum, ST, MT

(24)

Dalam Java, runtime error (kesalahan-kesalahan yang terjadi pada saat

program sedang berjalan) direpresentasikan dengan eksepsi.

Eksepsi adalah suatu objek yang dibuat pada saat program mengalami suatu

kondisi yang tidak wajar (abnormal).

Pada

saat

eksepsi

terjadi

maka

dikatakan

eksepsi

telah

dibangkitkan/dilempar - thrown.

Apabila terjadi, maka eksepsi tersebut haruslah ditangkap - caught.

Eksepsi dapat dibangkitkan secara otomatis oleh sistem Java runtime secara

manual oleh kita sendiri melalui kode yang kita tulis.

Estu Sinduningrum, ST, MT

(25)

Terdapat lima buah kata kunci yang disediakan oleh Java

menangani eksepsi, yaitu: try, catch, throw, throws, dan finally.

Kegunaan dari kelima kata kunci tersebut akan kita kaji lebih

detail pada slide ini.

Estu Sinduningrum, ST, MT

(26)

Blok throw, try dan catch

Untuk menanggapi

Exception

, pemanggilan terhadap metode yang

menghasilkan

Exception

harus ditempatkan di dalam blok

try

.

Blok

try

adalah blok kode yang dimulai kata kunci

try

diapit

pasangan kurung kurawal ({ ... }).

Setiap blok

try

diasosiasikan dengan satu blok

catch

atau lebih.

(27)

Contoh:

trv {

// Pemanggilan metode yang menghasilkan exception

// dilakukan di sini

}

Jika metode dimaksudkan untuk menangkap

Exception

yang dilempar

metode yang dipanggil,maka pemanggilan harus ditempatkan di blok try.

Jika

Exception

dilempar,

Exception

itu ditangani oleh blok

catch

.

Blok-blok

catch

menangani tipe tipe Exception berbeda. Berikut ini

adalah blok

try

dan

cacth

untuk menangani

Exception

dengan tipe

Exception

.

Estu Sinduningrum, ST, MT

(28)

Contoh:

Try {

// Pemanggilan metode yang menghasilkan exception

// dilakukan di sini

} catch (Excepflon e) {

// Penanganan terhadap exception

// dilakukan di sini

}

Blok throw, try dan catch

(29)

Tahap-tahap Kejadian:

1.

Ketika suatu metode di blok try melemparkan sembarang tipe

Exception, eksekusi blok try tersebut dihentikan.

2.

Kendali program segera dilewatkan ke blok catch yang

diasosiasikan.

3.

Jika blok catch menangani tipe Exception yang diberikan, maka

blok catch akan mengambil alih kendali eksekusi.

4.

Jika blok catch tidak dapat menangani Exception, rnaka

Exception dilewatkan ke pemanggil metode itu.

5.

Di aplikasi, proses ini berlanjut sampai blok catch dapat

menangkap Exception atau Exception mencapai metode main()

dan tidak ditangkap sehingga menyebabkan aplikasi diakhiri.

Estu Sinduningrum, ST, MT

(30)

Penanganan Exception dilakukan di blok catch. Penanganan kesalahan

ini untuk menghindari Exception ditangani oleh sistem Java yang

secara default segera menghentikan program aplikasi dan mencetak

stack pemanggilan

Terdapat tiga manfaat penanganan Exception sendiri, yaitu :

1.

memungkinkan kita meniadakan kesalahan

2.

mencegah program dihentikan sistem Java secara otomatis

3.

dapat irember'ikan tambahan informasi yang berguna untuk

pemakai aplikasi atau untuk kegiatan debugging.

Blok throw, try dan catch

(31)

DemoInterfaceTurunan.java

(32)

Netbean

30

/* * DivByZeroNextToy.java * * Created on June 1, 2003, 7:12 AM */ /** */

public class DivByZeroNextToy {

/** Creates a new instance of DivByZeroNextToy */ public DivByZeroNextToy() {

}

public static void main (String args[]) { int zeroInt = 0;

int anInt = 10; try {

int divResult = anInt / zeroInt;

System.out.println("Hasilnya adalah " + divResult); } catch (ArithmeticException e) {

//menangkap kesalahan div-by-zero

System.out.println("Terjadi pembagian dengan nol"); System.out.println("Diatasi blok penanganan sendiri");

}

System.out.println("Kalimat setelah catch");

(33)

/*

* DivByZeroNextNextToy.java */

public class DivByZeroNextNextToy {

/** Creates a new instance of DivByZeroNextNextToy */ public DivByZeroNextNextToy() {

}

public static void main (String args[]) { int anInt = 10;

for (int zeroInt =-1;zeroInt<2;zeroInt++){ try {

int divResult = anInt / zeroInt;

System.out.println("Hasilnya adalah " + divResult); }catch (ArithmeticException e) {

//menangkap kesalahan div-by-zero

System.out.println("Terjadi pembagian dengan nol"); System.out.println("Diatasi blok penanganan sendiri");

}

System.out.println("Kalimat setelah catch"); } } }

Estu Sinduningrum, ST, MT

Netbean

31

(34)

/*

* DivByZeroNextNextNextToy.java */

public class DivByZeroNextNextNextToy {

/** Creates a new instance of DivByZeroNextNextNextToy */ public DivByZeroNextNextNextToy() {

}

public static void main (String args[]) { int anInt = 10;

for (int zeroInt =-1;zeroInt<2;zeroInt++){ try {

int divResult = anInt / zeroInt;

System.out.println("Hasilnya adalah " + divResult); }catch (ArithmeticException e) {

//menangkap kesalahan div-by-zero System.out.println("Pesan di exception: "+e); System.out.println("Terjadi pembagian dengan nol"); System.out.println("Diatasi blok penanganan sendiri");

}

System.out.println("Kalimat setelah catch");

} } } Estu Sinduningrum, ST, MT

Netbean

32

(35)

THANK YOU

(36)

AWT & SWING

Selain untuk pemrograman yang berbasis konsol, java juga mendukung

pemrograman berbasiskan GUI (Graphical User Interface), Salah

satunya menggunakan AWT (Abstract Window Toolkit).

AWT merupakan cara untuk membuat pemrograman windows pada

java, komponen komponen AWT terdapat dalam paket java.awt. Selain

itu dapat juga menggunakan swing untuk pemrograman berbasis

window,

(37)

Tujuan

1. Memahami penggunaan AWT dan Swing dalam aplikasi

2. Memahami Event penulisan kode / method pada objek

3. Mendesain aplikasi GUI menggunakan AWT.

4. Mendesain aplikasi GUI menggunakan Swing.

(38)

Estu Sinduningrum, ST, MT

lnteraksi program Java, AWT, dan Sistem

Window

Program meminta sebuah

komponen; misalnya tombol

berdasarkan Source code

pada AWT

Permintaan program yang menggunakan komponen yang

didefinisikan oleh AWT dipetakan ke objek peer yang

terkait dan..

peer pasangan dari

komponen disampaikan

ke sistem Window

Sistem Window

menampilkan tombol layar

Pemakai mengklik

tombol tersebut

SistemWindow menyampaikan

kejadian ini ke penangan

kejadian Java

dan kemudian

(39)

Abstract Windowing Toolkit (AWT)

vs. Swing

AWT

Beberapa komponen AWT menggunakan

native code

Platform-dependent

Memastikan elemen Look and Feel dari aplikasi pada mesin yang

berbeda dapat dibandingkan

Swing

Ditulis menggunakan Java seluruhnya

Platform-independent

Memastikan aplikasi yang dibangun pada platform yang berbeda akan

memiliki tampilan yang sama

Dibangun dengan beberapa API yang mengimplementasikan beberapa

bagian AWT

Dapat digunakan bersama AWT

(40)

AWT GUI Components: Dasar class Window

Estu Sinduningrum, ST, MT

Metode

Keterangan

Component

Kelas dasar untuk semua komponen yang menyusun sistem

penjedelaan. Kelas ini memiliki metode yang berfungsi untuk

memproses kjadian masukan dari pemakai, misalnya ketika pemakai

mengklik pemakai mengklik suatu tombol

Window

Merupakan jendela kosong yang tidak memiliki tepi ataupun menu bar. Dapat digunakan untuk mewujudkan menu pop-up. Biasanya kelas ini jarang

digunakan, mengingat dua subkelasnya ( Frame & Dialog) lebih bermanfaat.

Frame

Merupakan subkelas dari Window. Memungkinkan untuk membuat jendela yang dilengkapi dengan judul

Dialog

Merupakan kelas untuk membuat jendela yang bersifat pop-up yang

memungkinkan pemakai mengetikkan sebaris teks. Terdapat subkelas bernama FileDialog yang dapat menampilkan daftar berkas yang dapat dipilih oleh

pemakai. Kelas Dialog memungkinkan untuk membuat jendela yang bersifat modal ataupun modeless.

Applet

Bermanfaat untuk menangani aplikasi yang berjalan pada

(41)

Estu Sinduningrum, ST, MT

Berikut ini adalah contoh program sederhana menggunakan AWT:

Pada program diatas dilakukan import terhadap java.awt.*, karena pada program diatas

menggunakankomponenAWT. Untuk membentuk sebuah window, harus dibuat sebuah

objek dari class Frame, program diatas objek win terbentuk dari class Frame.

Sedangkan metode set Size, digunakan untuk mengatur ukuran window, dan metode

show digunakan untuk menampilkan window.

AWT

package Awt1;

import java.awt.*;

public class AwtPertama {

public static void main(String[] args) {

Frame win=new Frame(" CobaAWT"); win.setSize(300,200);

win.show();} }

(42)

Estu Sinduningrum, ST, MT

Button merupakan kelas yang digunakan untuk memasang sebuah

tombol pada window kita, bentuk umum penggunaan button

adalah sebagai berikut:

Button <namaobjek>=new Button(<Text Button>);

Label adalah class pada java yang digunakan untuk menampilkan

sebuah text pada window, bentuk umum penggunaan Label adalah

sebagai berikut:

Label <namaobjek>=new Label(<Isi dariText>);

(43)

Estu Sinduningrum, ST, MT

package Awt2;

// Berkas: TesButton.java import java.awt.*;

public class TesButton extends Frame { public static void main(String[] args) { TesButton apl = new TesButton(); }

public TesButton() { super("Tes Button"); setSize(300, 100);

Panel panelTombol = new Panel();

panelTombol.add(new Button("Perbesar")); panelTombol.add(new Button("Selesai")); add("South", panelTombol); show(); } }

(44)
(45)

Tugas

Buat soal PG 50 soal beserta jawabannya, mengenai java.

Buat 20 soal Esai.

Bebas dari buku, Internet

Dalam bentuk document.

(46)

Gambar

Tabel berikut ini akan menunjukkan apakah anggota kelas   dengan tingkat akses tertentu dapat diakses

Referensi

Dokumen terkait

Urutan proses object diagram adalah pada Sistem Informasi Geografis Pemetaan Rumah Makan di Kabupaten Tanah Laut memiliki banyak mengelola di antaranya mengelola admin,

Untuk mengetahui besarnya pengaruh ukuran perusahaan, profitabilitas, solvabilitas, opini audit secara parsial terhadap audit delay pada perusahaan pertambangan

Hasil penelitian yang diperoleh dalam penelitian ini adalah: (1) penyelenggaraan pemberdayaan keluarga melalui KUBE Srikandi yang meliputi: (a) tahap perencanaan

Dengan perkataan lain, jika tingkat layanan yang tinggi hanya dapat disediakan oleh satu atau sedikit rute saja, maka hal tersebut belum dapat secara efektif menarik masyarakat

Terbang Bancahan di Desa Sukorejo Kecamatan Parengan Kabupaten Tuban. merupakan kesenian tradisional yang hidup dan berkembang di lingkungan masyarakat mayoritas

Dengan menginputkan data-data detail dari obligasi dan matriks transisi serta kurva maju, maka akan diperoleh nilai valuation untuk kedua obligasi yang dapat dilihat

Dalam telur itik, protein lebih banyak terdapat pada bagian kuning telur (17%), sedangkan bagian putihnya terdiri atas ovalbumin (putih telur) dan... Protein telur

Asisten Kesra Sekda Provinsi Jateng 19.30 – 20.15 Paparan:  Rencana Pelaksanaan Pengembangan Kampung KB di Kabupaten Cilacap guna mendukung Penanggulangan Kemiskinan