Anonymous Inner Class

dokumen-dokumen yang mirip
Membuat Menu Login Sederhana [Full Coding]

MODUL PRAKTIKUM BERORIENTASI OBJEK NINF615 SEMESTER GASAL 2016/2017 PROGRAM STUDI S1 TEKNIK INFORMATIKA

MODUL III ARRAYLIST TUGAS PENDAHULUAN

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

BAB II VARIABEL DAN TIPE DATA

2 TIPE DATA DAN VARIABEL

Gambar 1. Single Linked List

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

IF PEMROGRAMAN LANJUT EVENT. Oleh : Andri Heryandi, M.T.

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

Materi 5 Pemrograman Visual

Lab Bahasa Pemrograman 2

BAB VI ARRAY Mendeklarasikan Variabel Array int[ ] bilangan; int bilangan[ ]; Mendefinisikan Array Bilangan = new int[5]; Latihan 21. ArrSatu.

Bahasa Pemrograman :: Dasar Pemrograman Java

BAB IX. USER INTERFACE

MODUL PRAKTIKUM KE 9

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

PEMROGRAMAN BERORIENTASI OBJEK

A. TUJUAN PEMBELAJARAN

Topik. 1. Statement if 2. Statement if..else.. 3. Statement if..else.. If (bertingkat ) 4. Penggunaan Input Keyboard

Modul Praktikum 4 Pemograman Berorientasi Objek

BAB 8 Argumen dari Command-line

GUI Event Handling. 5. Mendiskusikan keuntungan-keuntungan dari menggunakan inner dan anonymous class

Praktikum JTable. Gambar 1

EXCEPTION. 2. Pada kondisi bagaimana klausa finally tidak akan dieksekusi? Kode didalam block try memiliki statement return

BAB 8 Argumen dari Command-line

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL)

MODUL 7 - EXCEPTION HANDLING

GUI Event Handling. minggu 13. Wednesday, 16 May 12

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

MODUL PRAKTIKUM KE 3 A.

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

DIK-020 Pemograman Berorientasi Objek 5/24/2012

Bab Tujuan. 8.2 Delegation Event Model

GUI & Event Handling. Viska Mutiawani, M.Sc. 1 Viska Mutiawani - Informatika FMIPA Unsyiah

Fajar Yusran Zebua DASAR ANIMASI

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

Waktu Sisa : 0:43:4. Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum. Mengerjakan finally. Diluar block

Gambar 1. Single Linked List

PRAKTIKUM 5 PAKET, IMPORT DAN INTERFACE

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

Slide 6: Writing Classes

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

PEMROGRAMAN BERORIENTASI OBJEK

BAHASA PEMROGRAMAN JAVA

A. Judul Percobaan/praktikum Tipe Data, Keyword, Variabel, Operator dan Teknik Konfersi

Pemrograman Fery Updi,M.Kom

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

PEMAHAMAN DASAR DASAR JAVA

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD

Exception adalah penanda bahwa kondisi/kejadian yang tidak diinginkan telah terjadi pada program kita. Ada 2 jenis exception (+1 Error):

SUMBER BELAJAR PENUNJANG PLPG

TIPE DATA Pertemuan (K-03/L-03)

A. TUJUAN PEMBELAJARAN. 1. Menerapkan konsep enkapsulasi pada class 2. Mendeklarasikan suatu constructor

Modul Praktikum Bahasa Pemrograman 1

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Jika Anda ingin bisa/sukses dalam kuliah SDA ini, rajinlah mengimplementasikan ADT dan mengerjakan soal-soal yang diberikan.

KUM 3 IMPLEMENTASI LIST

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

KENDALI PROSES. Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan.

Gambar 1. Single Linked List

Pemrograman Berorientasi Obyek (IT251) Ramos Somya, S.Kom., M.Cs.

Percobaan 5 Paket dan Import, Interface

Metode Binnary Searching di Java Console

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

Abstract Class dan Interface. Viska Mutiawani, M.Sc

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

PEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita

GUI & Event Handling. Viska Mutiawani, M.Sc

1. Apa yang harus dilakukan oleh programmer untuk menangani user-defined exception? Menuliskan exception sebagai start method

AWT (ABSTRACT WINDOWS TOOLKITS)

BAB 2 INPUT DARI KEYBOARD

Pertemuan 2 Struktur Kontrol Percabangan

BAB 5 Mendapatkan Input dari Keyboard

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

BAB 5 Mendapatkan Input dari Keyboard

Modul Praktikum 3 Pemograman Berorientasi Objek

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

Permainan Remi Sederhana

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

OPERATOR-OPERATOR DALAM JAVA

Tidak ada satupun dari pilihan di atas yang benar karena checked exception tidak bisa ditulis

Percabangan & Perulangan

IF PEMROGRAMAN LANJUT PERULANGAN. Oleh : Andri Heryandi, M.T.

PENGENALAN LINGKUNGAN KERJA JAVA

PEMROGRAMAN JAVA : ARRAY

Gambar 1. Langkah-langkah pengurutan metode Insertion Sort (1)

Modul 08. User Interface 01

Praktikum Stack. A. Stack Collection di java.util.collection. Percobaan 1. Percobaan 2. import java.util.iterator; import java.util.

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

MATERI PRAKTIKUM STRUKTUR DATA

DASAR PEMROGRAMAN JAVA. Astrid Lestari Tungadi, S.Kom., M.TI.

Transkripsi:

1 PERTEMUAN KE- 13 Anonymous Inner Class 1. Tujuan Membuat kelas di dalam kelas yang bersifat anonymous. 2. Teori Seperti pada pertemuan sebelumnya, bahasa pemrograman Java mengijinkan anda mendefinisikan inner class. Ada dua tipe tambahan dari inner class. Anda dapat mendeklarasikan inner class di dalam bodi method. Class seperti ini disebut local inner class. Anda juga dapat mendeklarasikan inner class didalam bodi method tanpa memberi nama dari inner class tersebut. Class seperti ini disebut dengan anonymous inner class. Cara ini dipakai pada saat anda membuat hanya sebuah objek di dalam kelas ini, anda tidak perlu memberi nama dari kelas tersebut. Pada kenyataan pemrograman, anonymous inner class merupakan implementasi dari interface. (Interface adalah seperti kelas yang anggotanya hanya berupa deklarasi method, atau method yang tidak punya kode program). Perhatikan kembali program pada pertemuan sebelumnya (file StrukturData.java). Di kelas ini terdapat inner class dengan nama InnerIteratorGenap. Berikut potongan programnya. public class StrukturData {...... Untuk menjadi anonymous inner class, kelas InnerIteratorGenap diubah menjadi interface: interface InnerIteratorGenap { public boolean hasnext(); public int getnext(); Selanjutnya kita buat kelas yang bersifat anonymous inner class untuk mengimplementasikan interface ini.

2 3. Pelaksanaan Praktikum 1. Perhatikan kembali file StrukturData.java yang terdapat pada pertemuan sebelunya, seperti berikut. (yang dicetak tebal adalah yang akan diubah). Catatan: agar anda masih punya file asli StrukturData.java, sebaiknya kopi file ini menjadi file StrukturData2.java. Tentu saja ganti juga nama kelas menjadi: public class StrukturData2. (dicetak miring dalam kode di bawah). public class StrukturData2 { //ciptakan array private final static int SIZE = 15; private int[] larikbulat = new int[size]; public StrukturData2() { //isi array dengan nilai bulat urut naik for (int i = 0; i < SIZE; i++) { larikbulat[i] = i; //cetak nilai dari indeks genap dari array InnerIteratorGenap iterator = this.new InnerIteratorGenap(); public static void main(string s[]) { //isi array dengan nilai bulat urut naik // dan cetak nilai pada indeks genap StrukturData2 sd = new StrukturData2(); sd.printgenap(); 2. Tambahkan pada bagian paling atas file ini (di luar kelas StrukturData2) dengan kode berikut: // interface InnerIteratorGenap // seperti class, tetapi tidak mempunyai // implementasi method interface InnerIteratorGenap { public boolean hasnext(); public int getnext();

3 3. Hapuslah bagian inner class InnerIteratorGenap di bawah ini: 4. Gantilah method printgenap(): (yang dicetak tebal adalah yang akan diubah) //cetak nilai dari indeks genap dari array InnerIteratorGenap iterator = this.new InnerIteratorGenap(); menjadi seperti berikut: (yang dicetak tebal adalah hasil perubahannya) //awal anonymous inner class InnerIteratorGenap iterator = new InnerIteratorGenap(){ ; // akhir anonymous inner class 5. Kompilasi dan jalankan. Perhatikan hasilnya di layar:

4 6. Seperti interface InnerIteratorGenap, buatlah interface InnerIteratorSemua di luar kelas StrukturData2 (sebaiknya pada bagian paling atas). 7. Seperti method printgenap(), buatlah method printsemua() di dalam kelas StrukturData2, yang didalamnya terdapat anonymous inner class dari implementasi interface InnerIteratorSemua. Method printsemua() digunakan untuk mencetak semua bilangan yang ada pada kelas ini. 8. Pada method main panggil method printsemua() seperti berikut: sd.printsemua(); Contoh Lain 9. Buatlah kelas InnerClassTest, seperti berikut: import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.timer; * Program mendemonstrasikan anonymous inner class * penulis Cay Horstmann, * sebagian telah diubah oleh Sudarmanto public class InnerClassTest { public static void main(string[] args){ TalkingClock clock = new TalkingClock(); clock.start(1000, true); // menjaga program tetap berjalan sampai user memilih "Ok" JOptionPane.showMessageDialog(null, "Quit program?"); System.exit(0); * clock yang mencetak waktu pada interval tertentu class TalkingClock{ * Memulai clock. * @param interval: interval antar pesan(dalam milidetik) * @param beep: true maka clock membunyikan beep private int interval; private boolean beep; public TalkingClock(){ this.interval = 500; this.beep = false;

5 Memulai clock. public void start(int interval, boolean beep) { this.beep = beep; ActionListener listener = new TimePrinter(); Timer t = new Timer(interval, listener); t.start(); private class TimePrinter implements ActionListener{ public void actionperformed(actionevent event){ Date now = new Date(); System.out.println("Waktu sekarang adalah: " + now); if (beep) Toolkit.getDefaultToolkit().beep(); 10. Kompilasi dan jalankan. Perhatikan hasilnya di layar. 4. Tugas 1. Ubahlah program InnerClassTest ini (bagian kelas TimePrinter) sehingga berbentuk anonymous inner class).