Paket dan Interface 15 th week Estu Sinduningrum ST,MT
Mengimpor paket yang Telah Dibuat ke dalam program
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:
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 perintah berikut:
Buat file baru dengan nama Lingkaran.java dan simpan ke dalam direktori Contohpkg. lsikan kode berikut ke dalamnya. 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);
Buat file baru dengan nama Segitiga.java dan simpan ke dalam direktori Contohpkg. lsikan kode berikut ke dalamnya. 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);
Buat file baru dengan nama DemoPanggilPaket.java dan simpan ke dalam direktori Latihan_OOP. lsikan kode berikut ke dalamnya. // 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());
Paket di dalam Paket package pkg t1[.pkg 2 [.pkg 3[pkgN]]] ;
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
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 Bukan Kelas turunan Paket sama Kelas turunan Paket berbeda Bukan Kelas turunan Paket berbeda Tidak Ya Ya Ya Tidak Ya Ya Ya Tidak Ya Ya Tidak Tidak Tidak Ya Tidak
Contoh hirarki kelas dan interface Dengan demikian, keraskelas ini harus mengimplementasikan semua method yang terdapat pada interface AlatMusik. Kelas AlatMusikPetik, AlatMusikTiup, dan AlatMusikpukul mengimplementaskan 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
Netbean27 DemoInterface.java
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 Estu AlatMusikPukul Sinduningrum, implements ST, MT 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();
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.
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.
Netbean28 DemoVarInterface.java
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); 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(); try {
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.
Netbean29 DemoInterfaceTurunan.java
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();
Penjebakan Eksepsi
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 tertentu).
Penjebakan Eksepsi 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.
Penjebakan Eksepsi 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.
Penjebakan Eksepsi 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.
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.
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. Blok throw, try dan catch
Blok throw, try dan catch Contoh: Try { // Pemanggilan metode yang menghasilkan exception // dilakukan di sini catch (Excepflon e) { // Penanganan terhadap exception // dilakukan di sini
Blok throw, try dan catch 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.
Blok throw, try dan catch 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.
Netbeans 30-32 DemoInterfaceTurunan.java
/* * 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"); Netbean 30
/* * 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"); Netbean 31
/* * DivByZeroNextNextNextToy.java */ public class DivByZeroNextNextNextToy { Netbean 32 /** 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");
Cont Next Week THANK YOU
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,
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.
lnteraksi program Java, AWT, dan Sistem Window Permintaan program yang menggunakan komponen yang didefinisikan oleh AWT dipetakan ke objek peer yang terkait dan.. peer pasangan dari komponen disampaikan ke sistem Window dan kemudian menyampaikan SistemWindow ke program menyampaikan kejadian ini ke penangan kejadian Java Program meminta sebuah komponen; misalnya tombol berdasarkan Source code pada AWT Sistem Window menampilkan Pemakai tombol mengklik layar tombol tersebut
AWT Abstract Windowing Toolkit (AWT) vs. Swing 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
AWT GUI Components: Dasar class Window Metode Component Window Frame Keterangan 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 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. Merupakan subkelas dari Window. Memungkinkan untuk membuat jendela yang dilengkapi dengan judul Dialog Applet 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. Bermanfaat untuk menangani aplikasi yang berjalan pada Web browser.
AWT Berikut ini adalah contoh program sederhana menggunakan 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(); 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.
Komponen-komponen AWT 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>);
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();
Hasil
Tugas Buat soal PG 50 soal beserta jawabannya, mengenai java. Buat 20 soal Esai. Bebas dari buku, Internet Dalam bentuk document.
Terima kasih