Modul Pelatihan : Pemrograman Berorientasi Obyek dengan Java (Bagian 2)

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

GUI & Event Handling. Viska Mutiawani, M.Sc

Modul Pelatihan : Pemrograman Berorientasi Obyek dengan Java (Bagian 1)

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

Membuat User Interface dengan Swing. Program yang dibuat sebelumnya selalu berbasis console User lebih senang berinteraksi dengan

Materi : GUI AWT & SWING.

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

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

BAB IX MEMBUAT FORM 9.1 Membuat Form Secara Konvensional

Materi 5 Pemrograman Visual

2. Manakah diantara pilihan berikut ini yang merupakan bagian dari event delegation model? Sebuah komponen yang menampilkan message

Inheritance (Pewarisan) Pengertian dasar inheritance

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

Bahasa Pemrograman :: Polimorfism and Abstraction

DIK-020 Pemograman Berorientasi Objek 5/24/2012

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

Modul 08. User Interface 01

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

GUI (Grapichal User Interface)

A. TUJUAN PEMBELAJARAN

GRAPHICAL USER INTERFACE (GUI)

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

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

BAB IX. USER INTERFACE

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

Membuat Menu Login Sederhana [Full Coding]

A. TUJUAN PEMBELAJARAN

Gambar 1: Hirarki class

1.Tujuan. 2. Latar Belakang. Mendefinisikan superclasses dan subclasses Override method dari superclasses Membuat method final dan class final

PEMROGRAMAN II. Materi : nursari2010.blogdetik.com String String Handling Java.util,Java.io. By : Sri Rezeki Candra Nursari


1. Mana dari adapter berikut ini yang merupakan class adapter yang benar didalam Java. ComponentAdapter

Bab Tujuan. 8.2 Delegation Event Model

AWT (ABSTRACT WINDOWS TOOLKITS)

Bahasa Pemrograman :: Inheritance

PERTEMUAN VI AWT DAN SWING TUJUAN PRAKTIKUM. 1. Praktikan mengenal pembuatan GUI pada Java. 2. Praktikan memahami action pada objek dalam Java.

Pemrograman Lanjut. Intro to GUI (Graphical User Interface)

Overriding. Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass. Tujuan: subclass memiliki tingkah laku yang lebih

Pewarisan, Polimorfisme, dan Interface

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

IF PEMROGRAMAN LANJUT GRAPHICAL USER INTERFACE (GUI) 11 DENGAN SWING. Oleh : Andri Heryandi, M.T.

Percobaan 7 GUI(Graphical User Interface )

Inheritance dan Kata Kunci static

Modul Bahasa Pemrograman 1

A. TUJUAN PEMBELAJARAN

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

Slide 6: Writing Classes

MODUL PRAKTIKUM KE 3 A.

PEMROGRAMAN II. By : Sri Rezeki Candra Nursari

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

PEMROGRAMAN BERORIENTASI OBJEK

MODUL 7 - EXCEPTION HANDLING

- Setiap pola yang menggambarkan permasalahan yang terjadi secara berulang, serta

5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

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

GARIS-GARIS BESAR PROGRAM PERKULIAHAN (GBPP)

Dasar Perancangan Graphical User Interface

Membuat Kalkulator dengan Java

1.Tujuan. 2. Latar Belakang

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK MODUL 3 ABSTRAKSI

GUI Event Handling 1

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

BAB I PENDAHULUAN. Maksud dan tujuan dari pembuatan Aplikasi Penentu Nilai Mahasiswa pada pemrograman java adalah:

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

LAPORAN RESMI INHERITANCE

KONSEP OOP: PEWARISAN / INHERITANCE

PEMROGRAMAN BERORIENTASI OBJEK

Materi 1 Pemrograman Visual

CLASS, METHOD DAN MODIFIER

Pemrograman Berorientasi Obyek. Ramos Somya

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

PEMROGRAMAN BERORIENTASI OBJEK

PRAKTIKUM I Class dan Obyek

BAB I PENDAHULUAN. Listing 1.1 menunjukkan program GUI Java sederhana menggunakan AWT. import java.awt.*; import java.awt.event.*;

IKG2I4 / Software Project I

Modul Praktikum 9 BAB IX LAYOUTING. Departemen Teknologi Informasi Telkom Applied Science School H a l

KONSEP OOP: POLYMORPHISM

Pemrograman Java. Pertemuan VIII By: Augury

Graphical User Interface (GUI)

Pemrograman Berorientasi. Abstract & Interface

Polymorphism (Polimorfisme)

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

Materi 3 Pemrograman Visual

LAPORAN TUGAS AKHIR APLIKASI KALKULATOR BERBASIS JAVA

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan

Abstract Class dan Interface. Viska Mutiawani, M.Sc

IKG2I4 / Software Project I

MODUL 2. UML, Generalization, and Specialization UML. 2.1 Pengertian UML. 2.2 Diagram-Diagram yang Ada Dalam UML TUJUAN PRAKTIKUM LANDASAN TEORI

Bab 8. Dasar-Dasar OOP

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

Praktikum 6 Abstract, Interface, Overloading, Overriding, dan Package

Overriding, Overloading, Polymorphism. Pertemuan 10 Pemrograman Berbasis Obyek Dr. Rodiah

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

Sendy Ferdian Sujadi

IKG2I4 / Software Project I

subclass class manapun private default protected public package yang sama

Transkripsi:

Modul Pelatihan : Pemrograman Berorientasi Obyek dengan Java (Bagian 2) Disusun oleh: Nurmaya, S.Kom, M.Eng Herika Hayurani, M.Kom Nova Eka Diana, S.Kom, M.Eng PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS YARSI APRIL 2015 Jl. Letjen. Suprapto, Cempaka Putih Jakarta Pusat 10510 - Telp/Fax : (021) 4269301 Website : www.yarsi.ac.id

DAFTAR ISI DAFTAR ISI... i DAFTAR TABEL... iii DAFTAR GAMBAR... iv PRAKTIKUM 6 INHERITANCE (BAGIAN KEDUA)... 1 6.1 Tujuan... 1 6.2 Deskripsi... 1 6.3 Praktikum... 1 6.3.1 Overriding Method... 1 6.3.1.1 Class Person... 2 6.3.1.2 Class Student... 3 6.3.1.4 Class InternationalStudent... 3 6.3.1.5 Class Teacher... 4 6.3.1.6 Class MainTester... 6 PRAKTIKUM 7 INTERFACE... 9 7.1 Tujuan... 9 7.2 Deskripsi... 9 7.3 Praktikum... 9 7.3.1 Interface Weight... 10 7.3.2 Class Person Implements Interface Weight... 10 7.3.3 Class Car... 11 7.3.4 Mencetak informasi berat di class MainTester... 12 7.3.5 Konversi Tipe Class dan Interface... 12 PRAKTIKUM 8 POLIMORFISME dan INNER CLASS... 14 8.1 Tujuan... 14 8.2 Deskripsi... 14 8.2.1 POLIMORFISME... 14 Fakultas Teknologi Informasi Universitas YARSI i

8.2.1.1 Overloading... 14 8.2.1.2 Overriding... 14 8.2.2 INNER CLASS... 14 8.3 Praktikum... 14 8.3.1 Overloading... 14 8.3.2 Inner Class... 17 PRAKTIKUM 9 Graphical User Interface (GUI)... 20 9.1 Tujuan... 20 9.2 Deskripsi... 20 9.2.1 Element Penting di GUI... 20 9.2.2 Java API : GUI... 21 9.3 Praktikum... 22 Fakultas Teknologi Informasi Universitas YARSI ii

DAFTAR TABEL Tabel 1 Class Person with additional method... 2 Tabel 2 Class Student... 3 Tabel 3 Class InternationalStudent... 4 Tabel 4 Class Teacher... 5 Tabel 5 Mencetak Informasi Penghasilan di Class MainTester... 6 Tabel 6 interface Weight... 10 Tabel 7 interface Weight... 10 Tabel 8 interface Weight... 11 Tabel 9 Modifikasi Class MainTester (cetak Berat)... 12 Tabel 10 Konversi Tipe Class dan Interface... 12 Tabel 11 Overloading Method di class Student... 15 Tabel 12 Cetak Overloading Method... 15 Tabel 13 Membuat Inner Class di Class MainTester... 17 Tabel 14 Membuat Window... 23 Tabel 15 Add Component... 24 Tabel 16 Add Event Handling dan Event Listener... 25 Tabel 17 Program Latihan Java GUI... 28 Fakultas Teknologi Informasi Universitas YARSI iii

DAFTAR GAMBAR Gambar 1 Contoh Aplikasi GUI... 20 Gambar 2 Contoh JComponent... 21 Gambar 3 Contoh Container... 22 Gambar 4 API GUI... 22 Gambar 5 Border Layout... 26 Gambar 6 Flow Layout... 26 Gambar 7 Box Layout... 26 Gambar 8 Aplikasi GUI dengan Layout Manager... 27 Fakultas Teknologi Informasi Universitas YARSI iv

PRAKTIKUM 6 INHERITANCE (BAGIAN KEDUA) Waktu : 30 menit 6.1 Tujuan Tujuan dari Praktikum 6 adalah peserta mampu memahami konsep inheritance dalam Java. 6.2 Deskripsi Inheritance (pewarisan) adalah konsep dalam pemrograman berorientasi object dimana sebuah class dapat mewarisi atribut dan method dari class lain. Class yang mewarisi disebut sebagai subclass, sedangkan class yang diwarisi disebut sebagai superclass. Saat deklarasi subclass, gunakan keyword extends setelah deklarasi class, lalu diikuti dengan nama superclass-nya. Untuk memanggil constructor dari superclass-nya, suatu subclass harus memanggilnya dengan keyword super yang diletakkan pada statement pertama di constructor subclass. Dengan menggunakan Inheritance, kita dapat melalukan a. Overriding Method b. Memanggil Constructor SuperClass dari Constructor Subclass 6.3 Praktikum Pada praktikum 6 anda telah membuat class Person, Student, Teacher, dan InternasionalStudent di dalam package mypeopleexample. Class Student dan class Teacher merupakan subclass dari class Person. Class InternationalStudent merupakan subclass dari class Student. Class-class ini akan kita modifikasi untuk mempraktekan Overriding Method. 6.3.1 Overriding Method Method subclass meng-override (menimpa) method superclass hanya jika memiliki nama dan tipe parameter yang sama seperti pada method superclass Ketika method X ada di superclass dan subclassnya, maka overriding method yang dieksekusi Overriding method (method yang menimpa) adalah method di subclass Fakultas Teknologi Informasi Universitas YARSI 1

Overriden method (method yang ditimpa) adalah method di superclass 6.3.1.1 Class Person Langkah-langkah yang harus dilakukan: 1. Buatlah class Person (tanpa method main) 2. Buatlah atribut/property/instance variable di class Person (deklarasikan dengan tipe yang sesuai): a. name untuk menyimpan nama orang b. address untuk menyimpan alamat orang c. hitungpenghasilan untuk menghitung penghasilan orang 3. Buatlah method getter dan setter untuk setiap atribut Person. package mypeopleexample; Tabel 1 Class Person with additional method public class Person { private String name; private String address; private double penghasilan; public String getname() { return name; public void setname(string name) { this.name = name; public String getaddress() { return address; public void setaddress(string address) { this.address = address; public void setpenghasilan(double penghasilan) { this.penghasilan = penghasilan; public double getpenghasilan(){ return penghasilan; Fakultas Teknologi Informasi Universitas YARSI 2

6.3.1.2 Class Student Langkah-langkah yang harus dilakukan: 1. Buatlah class Student (tanpa method main) yang merupakan subclass dari class Person 2. Buatlah atribut/property/instance variable di class Student (deklarasikan dengan tipe yang sesuai): a. school untuk menyimpan sekolah siswa b. grade untuk menyimpan nilai siswa 3. Buatlah method getter dan setter untuk setiap atribut Student. package mypeopleexample; Tabel 2 Class Student public class Student extends Person { private String school; private double grade; public String getschool() { return school; public void setschool(string school) { this.school = school; public double getgrade() { return grade; public void setgrade(double grade) { this.grade = grade; 6.3.1.4 Class InternationalStudent Langkah-langkah yang harus dilakukan: 1. Buatlah class InternationalStudent (tanpa method main) yang merupakan subclass dari class Student Fakultas Teknologi Informasi Universitas YARSI 3

2. Buatlah atribut/property/instance variable di class InternationalStudent (deklarasikan dengan tipe yang sesuai): a. country untuk menyimpan asal negara 3. Buatlah method getter dan setter untuk setiap atribut InternationalStudent. package mypeopleexample; Tabel 3 Class InternationalStudent public class InternationalStudent extends Student { /** * Creates a new instance of InternationalStudent */ public InternationalStudent() { private String country; public String getcountry() { return country; public void setcountry(string country) { this.country = country; 6.3.1.5 Class Teacher Langkah-langkah yang harus dilakukan: 1. Buatlah class Teacher (tanpa method main) yang merupakan subclass dari class Person 2. Buatlah atribut/property/instance variable di class Teacher (deklarasikan dengan tipe yang sesuai): a. subject untuk menyimpan subject yang diampu b. position untuk menyimpan jabatan 3. Buatlah method getter dan setter untuk setiap atribut Teacher. 4. Buatlah method setpenghasilan yang terdapat di Class Person beserta parameternya ke Class Teacher Fakultas Teknologi Informasi Universitas YARSI 4

package mypeopleexample; Tabel 4 Class Teacher public class Teacher extends Person{ private String subject; private int position; private double penghasilan; /* * position * 1 : dekan * 2 : wakil dekan * 3 : kps * 4 : no position * */ public String getsubject() { return subject; public void setsubject(string subject) { this.subject = subject; public void setposition(int position){ this.position = position; public int getposition(){ return position; @Override public void setpenghasilan(double penghasilan) { if(getposition()==1){ penghasilan = penghasilan + 5000000; else if(getposition()==2){ penghasilan = penghasilan + 3500000; else if(getposition()==3){ penghasilan = penghasilan + 2500000; else{ this.penghasilan = penghasilan; // TODO Auto-generated method stub super.setpenghasilan(this.penghasilan); Fakultas Teknologi Informasi Universitas YARSI 5

6.3.1.6 Class MainTester Langkah-langkah yang harus dilakukan: 1. Buatlah class MainTester (berisi method main) 2. Buatlah perintah untuk mencetak hasil Override Method di Class Teacher yaitu informasi penghasilan Tabel 5 Mencetak Informasi Penghasilan di Class MainTester package mypeopleexample; import java.text.decimalformat; public class MainTester { public static void main(string[] args) { // Create object instances and invoke methods. // Note that you can use methods defined // in a parent class for object // instances of the child class. Person person1 = new Person(); person1.setname("tom Jones"); Student student1 = new Student(); student1.setname("ccr"); student1.setschool("lexington High"); InternationalStudent internationalstudent1 = new InternationalStudent(); internationalstudent1.setname("bill Clinton"); internationalstudent1.setschool("lexington High"); internationalstudent1.setcountry("korea"); Teacher teacher1 = new Teacher(); teacher1.setname("beatles"); teacher1.setsubject("history"); teacher1.setposition(1); Fakultas Teknologi Informasi Universitas YARSI 6

teacher1.setpenghasilan(7000000); /* * position * 1 : dekan * 2 : wakil dekan * 3 : kps * 4 : no position * */ // Display name of object instances // using the getname() method // defined in the Person class. System.out.println("Displaying names of all object instances"); System.out.println(" person1.getname() = " + person1.getname()); System.out.println(" student1.getname() = " + student1.getname()); System.out.println(" internationalstudent1.getname() = " + internationalstudent1.getname()); System.out.println(" teacher1.getname() = " + teacher1.getname()); //Display penghasilan of object instances //using the getpenghasilan() method //defined in the person class System.out.println(" person1.getpenghasilan() = " + person1.getpenghasilan()); System.out.println(" student1.getpenghasilan() = " Fakultas Teknologi Informasi Universitas YARSI 7

+ student1.getpenghasilan()); System.out.println(" internationalstudent1.getpenghasilan() = " + internationalstudent1.getpenghasilan()); System.out.println(" teacher1.getpenghasilan() = " + new DecimalFormat("").format(teacher1.getPenghasilan())); Fakultas Teknologi Informasi Universitas YARSI 8

PRAKTIKUM 7 INTERFACE Waktu : 30 menit 7.1 Tujuan Tujuan dari Praktikum 7 adalah peserta mampu memahami konsep interface dalam Java. 7.2 Deskripsi Interface berisi sekumpulan method abstrak, yaitu method tanpa isi atau implementasi. Method-method tersebut harus diimplementasikan ke sebuah objek yang mengimplementasikan interface tersebut. Interface bersifat umum dan dapat digunakan oleh banyak kelas yang tidak saling berkaitan. Ilustrasi : Terdapat dua kelas yaitu sayuran dan baju yang memiliki sifat yang sama yaitu kedua-duanya perlu dicuci. Sehingga, kita bisa buat sebuah interface dengan nama Washable yang didalamnya dideklarasikan method wash. Interface tersebut akan diimplementasikan oleh Class Vegetable yaitu kelas sayuran dan Class Cloth yang merupakan kelas baju. Berikut contoh pemrogramannya. 7.3 Praktikum Anda akan membuat sebuah interface bernama Weight di package mypeopleexample, yang merupakan sebuah interface untuk menyimpan informasi berat. Dilanjutkan denga memodifikasi class Person yang merupakan kelas orang dan membuat kelas baru di package mypeopleexample yaitu Fakultas Teknologi Informasi Universitas YARSI 9

class Car yang merupakan kelas mobil. Tambahkan cetak berat mobil di method MainTester. 7.3.1 Interface Weight Langkah-langkah yang harus dilakukan: 1. Buatlah sebuah interface dengan nama Weigth 2. Buatlah method setweight dan getweight package mypeopleexample; public interface Weight { Tabel 6 interface Weight public void setweight(int weight); public int getweight(); 7.3.2 Class Person Implements Interface Weight Langkah-langkah yang harus dilakukan: 1. Implementasikan interface Weight ke class Person 2. Buatlah atribut/property/instance variable di class Person (deklarasikan dengan tipe yang sesuai): a. weight untuk menyimpan berat orang 3. Override method setweight dan getweight yang terdapat di interface Weight Tabel 7 interface Weight public class Person implements Weight { private int weight @Override public void setweight(int weight) { this.weight = weight; Fakultas Teknologi Informasi Universitas YARSI 10

@Override public int getweight() { // TODO Auto-generated method stub return weight; 7.3.3 Class Car 1. Buatlah class Car (tanpa method main) 2. Buatlah atribut/property/instance variable di class Person (deklarasikan dengan tipe yang sesuai): a. weight untuk menyimpan berat mobil 3. Implementasikan interface Weight 4. Override method setweight dan getweight yang terdapat di interface Weight Tabel 8 interface Weight package mypeopleexample; public class Car implements Weight{ int weight; @Override public void setweight(int weight) { this.weight = weight; @Override public int getweight() { return weight; Fakultas Teknologi Informasi Universitas YARSI 11

7.3.4 Mencetak informasi berat di class MainTester public class MainTester { Tabel 9 Modifikasi Class MainTester (cetak Berat) public static void main(string[] args) { // Create object instances and invoke methods. // Note that you can use methods defined // in a parent class for object // instances of the child class. Person person1 = new Person(); person1.setname("tom Jones"); person1.setweight(65); Car car1 = new Car(); car1.setweight(1270); System.out.println(" person1.setweight() = " + person1.getweight()); System.out.println(" car1.setweight = " + car1.getweight()); 7.3.5 Konversi Tipe Class dan Interface Anda dapat mengkonversi dari tipe class ke tipe interface ataupun sebaliknya, dengan asumsi telah disediakan class yang implements interface tersebut. public class MainTester { Tabel 10 Konversi Tipe Class dan Interface public static void main(string[] args) { Weight iweight; //Class to Interface Person person1 = new Person(); iweight = person1; iweight.setweight(65); System.out.println(" weight.setweight() = " + iweight.getweight()); Fakultas Teknologi Informasi Universitas YARSI 12

//Interface to Class Person p1 = (Person) iweight; p1.setweight(70); System.out.println(" p1.setweight = " + p1.getweight()); Fakultas Teknologi Informasi Universitas YARSI 13

PRAKTIKUM 8 POLIMORFISME dan INNER CLASS Waktu : 30 menit 8.1 Tujuan Tujuan dari Praktikum 8 adalah peserta mampu memahami konsep Polimorfisme dalam Java. 8.2 Deskripsi 8.2.1 POLIMORFISME Polimorfisme adalah konsep penting dalam OOP yang banyak digunakan di Java dan bahasa pemrograman lainnya. Dua jenis polimorfisme adalah Overloading dan Overriding 8.2.1.1 Overloading Penggunaan nama yang sama untuk lebih dari 1 method /constructor pada class yang sama. Contohnya lihat tabel 8.2.1.2 Overriding Penggunaan nama dan tipe parameter yang sama untuk lebih dari 1 method pada superclass dan subclass-nya. Contohnya lihat Tabel 9. 8.2.2 INNER CLASS Inner Class adalah suatu class yang didefinisikan di dalam Class lain layaknya seperti variabel atau method pada sebuah Class. Oleh karena itu, instance dari Inner Class dapat mengakses semua member dari outer Classnya, bahkan yang private. 8.3 Praktikum 8.3.1 Overloading Langkah-langkah membuat overloading adalah sebagai berikut : a. Tambahkan dua method yang memiliki nama yang sama yaitu setnip dengan input parameter yang berbeda di class Student. Method setnip pertama memiliki input parameter bertipe Integer. Sedangkan yang kedua bertipe Fakultas Teknologi Informasi Universitas YARSI 14

String. Kemudian buat dua buah method getnip berdasarkan tipe data yang dikembalikan. Tabel 11 Overloading Method di class Student package mypeopleexample; public class Student extends Person { private String school,snip; private double grade; private int nip; public void setnip(int nip){ this.nip = nip; public void setnip(string snip){ this.snip = snip; public int getnip(){ return nip; public String getsnip(){ return snip; public String getschool() { return school; public void setschool(string school) { this.school = school; b. Tambahkan perintah cetak NIP (Nomor Induk Pelajar) di kelas utama yaitu MainTester package mypeopleexample; Tabel 12 Cetak Overloading Method import java.text.decimalformat; public class MainTester { public static void main(string[] args) { Student student1 = new Student(); Fakultas Teknologi Informasi Universitas YARSI 15

student1.setname("ccr"); student1.setschool("lexington High"); student1.setnip(120300004); InternationalStudent internationalstudent1 = new InternationalStudent(); internationalstudent1.setname("bill Clinton"); High"); internationalstudent1.setschool("lexington internationalstudent1.setcountry("korea"); internationalstudent1.setnip("120300004x"); System.out.println(" student1.getname() = " + student1.getname()); System.out.println(" student1.getschool() = " + student1.getschool()); System.out.println(" student1.getnip() = " + student1.getnip()); System.out.println(" internationalstudent1.getname() = " System.out.println(" internationalstudent1.getschool() = " + internationalstudent1.getschool()); System.out.println(" internationalstudent1.getsnip() = " + internationalstudent1.getname()); Fakultas Teknologi Informasi Universitas YARSI 16

+ internationalstudent1.getsnip()); 8.3.2 Inner Class Contoh membuat Inner Class di Class MainTester adalah sebagai berikut Buatlah sebuah Inner Class dengan nama ChangingFormat yang berfungsi untuk mengubah format double menjadi format decimal Didalam Method Main panggilah Inner Class tersebut untuk mengubah format nilai penghasilan guru menjadi format decimal Tabel 13 Membuat Inner Class di Class MainTester package mypeopleexample; import java.text.decimalformat; public class MainTester { public static void main(string[] args) { MainTester mt = new MainTester(); ChangingFormat cf = mt.new ChangingFormat(); Student student1 = new Student(); student1.setname("ccr"); student1.setschool("lexington High"); InternationalStudent internationalstudent1 = new InternationalStudent(); internationalstudent1.setname("bill Clinton"); internationalstudent1.setschool("lexington High"); internationalstudent1.setcountry("korea"); Teacher teacher1 = new Teacher(); teacher1.setname("beatles"); Fakultas Teknologi Informasi Universitas YARSI 17

teacher1.setsubject("history"); teacher1.setposition(1); teacher1.setpenghasilan(7000000); /* * position * 1 : dekan * 2 : wakil dekan * 3 : kps * 4 : no position * */ System.out.println(" student1.getpenghasilan() = " + cf.getformatchanging(student1.getpenghasilan())); System.out.println(" internationalstudent1.getpenghasilan() = " + cf.getformatchanging(internationalstudent1.getpenghasilan()) ); " System.out.println(" teacher1.getpenghasilan() = + cf.getformatchanging(teacher1.getpenghasilan())); class ChangingFormat{ String formatchange; public String getformatchanging(double penghasilan){ DecimalFormat df = new DecimalFormat(""); formatchange = df.format(penghasilan); Fakultas Teknologi Informasi Universitas YARSI 18

return formatchange; Fakultas Teknologi Informasi Universitas YARSI 19

PRAKTIKUM 9 GRAPHICAL USER INTERFACE (GUI) Waktu : 30 menit 9.1 Tujuan Tujuan dari Praktikum 9 adalah peserta memahami mengenai konsep GUI dalam Java. 9.2 Deskripsi GUI adalah sebuah interaksi antarmuka pengguna yang menggunakan metode interaksi pada perangkat elektronik secara grafis antara pengguna dan komputer. Java GUI adalah sebuah pemrograman dengan bahasa Java yang dibuat menggunakan aplikasi berbasis GUI. 9.2.1 Element Penting di GUI Gambar 1 Contoh Aplikasi GUI Component Elemen-elemen yang menempati area pada layar, misalnya: button, textfield, label Container Area yang dapat berisi atau memegang komponen lainnya, misal: window, panel. Fakultas Teknologi Informasi Universitas YARSI 20

Event Handler Bagaimana cara menangani event/aksi dari suatu komponen (eventaction) dan apa yang harus dilakukan (listener). 9.2.2 Java API : GUI a. SWING (javax.swing.*) JComponent : JTextField, JLabel, JButton, JComboBox, Jpanel, dan lain-lain Gambar 2 Contoh JComponent Container : JFrame, JApplet, dan lain-lain JComponent tidak boleh langsung ditambahkan ke top-level container (JFrame, JApplet) karena merupakan lightweight components Harus ditambahkan ke content-pane dari top-level container Content-pane adalah container yang bisa diset layout-nya, dan digunakan untuk mengelompokkan component. Ada dua cara: 1. Get content-pane getcontentpane() dan menambahkan komponen diatasnya (default layout : BORDER_LAYOUT) 2. Set content-pane ke JPanel Fakultas Teknologi Informasi Universitas YARSI 21

Gambar 3 Contoh Container b. Event AWT (java.awt.event.*) Event class: ActionEvent, MouseEvent, KeyEvent, WindowEvent Event Listener interface: ActionListener, MouseListener, KeyListener, WindowListener Event Listener Adapter: MouseAdapter, KeyAdapter, WindowAdapter Gambar 4 API GUI 9.3 Praktikum Langkah-langkah dalam membuat Aplikasi GUI 1. Create Window Fakultas Teknologi Informasi Universitas YARSI 22

Tahapan-tahapan dalam membuat sebuah Window. 1. Buat Class bertipe JFrame Buatlah sebuah kelas frame yang bernama MyFrame yang mengextends class JFrame pada package mygui. 2. Tampilkan window (frame) dengan size tertentu setsize(300, 300); // Untuk mengeset width dan height frame setvisible(true); // Untuk menampilkan frame package mygui; Tabel 14 Membuat Window import javax.swing.*; public class MyFrame extends JFrame{ public MyFrame(){ setsize(300,300); settitle("my Empty Frame"); setdefaultcloseoperation(jframe.exit_on_close); setvisible(true); public static void main(string[] args) { MyFrame frame = new MyFrame(); 2. Add Component Tambahkan component-component seperti button, textfield yang disesuaikan dengan kebutuhan Fakultas Teknologi Informasi Universitas YARSI 23

Tabel 15 Add Component public class MyFrame extends JFrame { public MyFrame() { setsize(300,300); settitle("my Empty Frame"); setdefaultcloseoperation(jframe.exit_on_close); JButton button = new JButton("Click Me"); this.getcontentpane().add(button); setvisible(true); public static void main(string[] args) { MyFrame frame = new MyFrame(); 3. Event Handling & Listener Membuat agar tombol Click Me akan memberikan sebuah aksi ketika diklik Dua hal yang harus disediakan, yaitu: 1. Method yang akan dipanggil ketika tombol diklik 2. Cara untuk memanggil method tersebut Mengimplementasikan sebuah interface listener yang dapat mendengar event dari event source yaitu tombol Click Me. Setiap jenis event memiliki interface listener yang sesuai dengan eventnya. Contoh : a. MouseEvent implements MouseListener b. ActionEvent implements ActionListener Fakultas Teknologi Informasi Universitas YARSI 24

Adapun tahapan mengimplementasikan Event Listener untuk ActionEvent package mygui; 1. Class meng-implements interface ActionListener 2. Registar ke komponen yang ingin didengarkan 3. Definisikan method event-handling untuk mendengarkan ActionListener interface implementasi method actionperformed Tabel 16 Add Event Handling dan Event Listener import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.*; public class MyFrame extends JFrame implements ActionListener{ JButton button; public MyFrame(){ setsize(300,300); button = new JButton("Click Me"); button.addactionlistener(this); this.getcontentpane().add(button); settitle("my Empty Frame"); setdefaultcloseoperation(jframe.exit_on_close); setvisible(true); public static void main(string[] args) { MyFrame frame = new MyFrame(); @Override public void actionperformed(actionevent arg0) { JOptionPane.showMessageDialog(this, "HAI- HAI"); button.settext("i've been Clicked"); 4. Layout Fakultas Teknologi Informasi Universitas YARSI 25

Untuk merapihkan letak component-componet frame dapat menggunakan Layout Manager. Berikut jenis-jenis dari Layout Manager 1. Border Layout Membagi background component ke dalam lima daerah utama Merupakan layout manager default untuk frame Gambar 5 Border Layout 2. Flow Layout Menyusun komponen dari kiri ke kanan Jika lebar window tidak mencukupi, maka komponen baru akan diletakkan pada baris berikutnya Gambar 6 Flow Layout 3. Box Layout Mirip dengan FlowLayout Namun, mampu menyusun komponen-komponen secara vertikal Gambar 7 Box Layout Fakultas Teknologi Informasi Universitas YARSI 26

Latihan: Buatlah program java untuk membuat tampilan GUI seperti dibawah ini Gambar 8 Aplikasi GUI dengan Layout Manager Fakultas Teknologi Informasi Universitas YARSI 27

Tabel 17 Program Latihan Java GUI package mygui; import java.awt.borderlayout; import java.awt.container; import java.awt.flowlayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.*; public class MyFrame extends JFrame { JButton button; public MyFrame(){ setsize(400,400); settitle("layout Manager Example"); setdefaultcloseoperation(jframe.exit_on_close); setvisible(true); Container con = getcontentpane(); con.setlayout(new BorderLayout()); JPanel northpanel = new JPanel(); northpanel.setlayout(new FlowLayout()); northpanel.add(new JButton("North 1")); northpanel.add(new JButton("North 2")); con.add(northpanel,borderlayout.north); con.add(new JButton("South"),BorderLayout.SOUTH); con.add(new JButton("West"),BorderLayout.WEST); Fakultas Teknologi Informasi Universitas YARSI 28

con.add(new JButton("East"),BorderLayout.EAST); con.add(new JButton("Center"),BorderLayout.CENTER); public static void main(string[] args) { MyFrame frame = new MyFrame(); Fakultas Teknologi Informasi Universitas YARSI 29

Untuk informasi lebih lanjut, silakan menghubungi: Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas YARSI 1. Nurmaya, S.Kom, M.Eng E-mail : nurmaya@yarsi.ac.id 2. Herika Hayurani, M.Kom E-mail : herika.hayurani@yarsi.ac.id 3. Nova Eka Diana, S.Kom, M.Eng E-mail : nova.diana@yarsi.ac.id Fakultas Teknologi Informasi Universitas YARSI 30