PERTEMUAN 6 AWT & SWING

dokumen-dokumen yang mirip
Materi : GUI AWT & SWING.

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

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

Swing. suatu program. Tetapi, program Anda akan kelihatan tidak menarik dan tidak nyaman digunakan bagi para

1.Tujuan. 2. Latar Belakang

5/24/2012. Pemograman Berorientasi Objek. Pembahasan. Abstract Windowing Toolkit & Swing. Pembahasan

GUI & Event Handling. Viska Mutiawani, M.Sc

GUI (Grapichal User Interface)

BAB 7 Abstract Windowing Toolkit dan Swing

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

A. TUJUAN PEMBELAJARAN

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

Materi 5 Pemrograman Visual

BAB IX. USER INTERFACE

Graphical User Interface (GUI)

Abstract Window Toolkit

Modul 08. User Interface 01

A. TUJUAN PEMBELAJARAN

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

GUI in Java. Presented by HCI Team Ali Ridho Barakbah Umi Sa adah Nur Rosyid Mubtada i. Supervised by Prof. Kohei Arai

Pemrograman Berorientasi Obyek. Ramos Somya

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Modul Praktikum 7 Pemograman Berorientasi Objek

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

A. TUJUAN PEMBELAJARAN

Pemrograman Berorientasi Objek Lanjut Lecture 3: Layout Manager

Percobaan 7 GUI(Graphical User Interface )

MODUL PRAKTIKUM KE 3 A.

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

PERTEMUAN 3 OBJEK DAN CLASS

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

BAB IX MEMBUAT FORM 9.1 Membuat Form Secara Konvensional

Materi 3 Pemrograman Visual

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

Membangun GUI (dengan AWT & Swing) OOP Java

GRAPHICAL USER INTERFACE (GUI)

Membuat Kalkulator dengan Java

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

Membuat Menu Login Sederhana [Full Coding]

PACKAGE DAN INTERFACE

MODUL 7 - EXCEPTION HANDLING

Pemrograman Lanjut. Intro to GUI (Graphical User Interface)

Pemrograman Java. Pertemuan VIII By: Augury

PACKAGE DAN INTERFACE

Materi 1 Pemrograman Visual

PEMROGRAMAN BERORIENTASI OBJEK

BINA NUSANTARA UNIVERSITY NATA LASE

Materi 4 Pemrograman Visual

Creating Graphical User Interfaces [1] with Java By: De Rosal Ignatius Moses Setiadi

Membuat Frame, Label, TextField dan Button di Java [Full Coding]

DIK-020 Pemograman Berorientasi Objek 5/24/2012

Materi 6 Pemrograman Visual

Dasar Perancangan Graphical User Interface

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

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

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

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

PERTEMUAN 1 Membuat Project & Komponen Swing [PBO II JAVA] dosen : SOPINGI, S.Kom

MEMBUAT APLIKASI ZODIAK SEDERHANA DENGAN JAVA BY : INDRA

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

BAB II. Manggunakan JComboBox

PEMROGRAMAN II. By : Sri Rezeki Candra Nursari

KELAS INNER, KELAS ABSTRAK, DAN INTERFACE. 16 th week Estu Sinduningrum ST,MT

GUI, Ev e Ev n e t n Handling, Ex ception Handling in Java

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

JAVA SWING. Swing merupakan library pada java untuk membuat sebuah tampilan seperti

PERTEMUAN I PENGENALAN JAVA

Sendy Ferdian Sujadi

PERTEMUAN 5 OOP. Objektif : Praktikan mengetahui konsep OOP. Praktikan dapat membuat program sederhana dengan konsep OOP.

Slide 6: Writing Classes

PAKET (PACKAGE) 20 Januari 2012

Prosedur dan Fungsi. Ciri prosedur pada java selalu dimulai dengan : private/public void namaprosedur ( tipedataparameter1 namaparameter1,

INSTRUKSI PENCABANGAN

AWT (ABSTRACT WINDOWS TOOLKITS)

PENGENALAN JAVA GUI PROGRAMMING

IKG2I4 / Software Project I

Modul 7 Praktikum Pemrograman Visual

TUGAS PEMROGRAMAN BERBASIS JAVA ADARA HIJAB


Sendy Ferdian Sujadi

Arranging Components on a User Interface. Pertemuan 14 Pemrograman Berorientasi Obyek Oleh Tita Karlita

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

BAGIAN XIII GRAPHICAL USER INTERFACE DENGAN SWING. Praktikum I : Menggunakan JFrame, JTextField, JLabel dan JButton

MODUL PROFESIONAL PEMBINAAN KARIER

GARIS-GARIS BESAR PROGRAM PERKULIAHAN (GBPP)

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

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

Pemrograman Berbasis Java PERSEWAAN PELAMPUNG. Riska Nony Oktaviani Kelas 21 Teknik Informatika Teknologi Informasi

Belajar Set Currency Format di TextField Java

Bab Tujuan. 8.2 Delegation Event Model

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

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

PEMROGRAMAN BERORIENTASI OBJEK

Refreshing Praktikum: GUI (Graphical User Interface)

Program Kalkulator Sederhana Menggunakan Java Netbeans

visit :

SOAL UAS Mata Kuliah : Pemrograman Berorientasi Objek Lanjutan

Modul Praktikum 1 Pemograman Berorientasi Objek

MODUL PRAKTIKUM KE 8

Transkripsi:

Obyektif Praktikum : PERTEMUAN 6 AWT & SWING Memahami persamaan dan perbedaan antara AWT dan Swing. Mendesain aplikasi GUI menggunakan AWT. Memahami action pada objek dalam Java. Mendesain aplikasi GUI menggunakan Swing. Perbedaan antara komponen dan kontainer. Menjelaskan tentang flow layout, border layout, dan grid layout dalam komponen GUI. 1

DASAR GUI Program GUI (Graphical User Interface) merupakan metode pendesainan program ke dunia nyata (real world) atau visual bukan dalam bentuk console. Paket yang dapat digunakan untuk mengembangkan program-program GUI adalah AWT dan Swing. Paket AWT (Abstract Window Toolkit ) dan Swing AWT = sekumpulan library yang tidak tergantung pada platform (platform independent) dan digunakan untuk menyederhanakan implementasi user interface. Swing = bentuk implementasi yang menambahkan komponen-komponen dalam sistem GUI tetapi masih didasarkan pada arsitekstur AWT. 2

Class pada AWT Window Classes Fundamental Berikut ini adalah daftar dari beberapa class penting pada kontainer yang telah disediakan oleh AWT. 3

PEMROGRAMAN DENGAN AWT Selain untuk pemrograman yang berbasis konsol, java juga mendukung pemrograman berbasiskan GUI (Graphical User Interface), Salah satunya menggunakan AWT (Abstract Window Toolkit). Komponen-komponen AWT Button Button merupakan kelas yang digunakan untuk memasang sebuah tombol pada window. Bentuk Umum : Button <nama objek>=new Button(<Text Button>); Label Label adalah class pada java yang digunakan untuk menampilkan sebuah text pada window. Bentuk umum : Label <nama objek>=new Label(<Isi dari Text>); TextField CheckBox List, dll 4

KOMPONEN GUI PADA AWT Grafik Beberapa method grafik ditemukan dalam class Graphic. Dibawah ini adalah daftar dari beberapa method. 5

CONTOH PROGRAM SEDERHANA MENGGUNAKAN AWT import java.awt.*; public class AwtPertama { public static void main(string[] bowo) { Frame win=new Frame("Coba AWT"); win.setsize(300,200); win.show(); Output : 6

PEMROGRAMAN SWING Komponen - Komponen Swing Top-level container berfungsi untuk menyediakan ruang bagi komponen- komponen lainnya. Container jenis ini terdiri atas JFrame, JWindow, Jdialog, dan Japplet. Intermediate container komponen (non top-level) yang keberadaannya untuk menampung komponen lainnya, misal panel, tabbed, dan tool bar. Komponen Atomic (tunggal) berfungsi untuk menampilkan dan/atau menerima informasi. Contohnya adalah text field, button, dan label. Container adalah jenis komponen yang menampung dan mengelola komponenkomponen lainnya. Agar suatu komponen dapat digunakan, biasanya harus diletakkan di sebuah container. Pengaturan tata letak komponen : FlowLayout GridbagLayout BorderLayou BoxLayout SpringLayout CardLayout 7

CONTOH PROGRAM SEDERHANA MENGGUNAKAN SWING import javax.swing.*; class Swing extends JFrame { Swing(){ super("ini SWING LHO..."); setsize(300,300); show(); setdefaultcloseoperation(jframe.exit_on_close); public static void main(string[] args) { Swing sw=new Swing(); Output : 8

LAYOUT MANAGER FlowLayout Manager FlowLayout Manager adalah default manager untuk class JPanel dan subclassnya. Berikut adalah bagaimana FlowLayout Manager bekerja, dimana memiliki tiga constructor seperti daftar di bawah ini: FlowLayout Constructors 1. FlowLayout() Membuat object baru FlowLayout dengan posisi di tengah dan lima unit horizontal dan vertikal gap dimasukkan pada komponen sebagai default. 2. FlowLayout(int align) Membuat object baru FlowLayout dengan posisi spesifik dan lima unit horizontal dan vertikal gap dimasukkan pada komponen sebagai default. 3. FlowLayout(int align, int hgap, int vgap) Membuat object baru FlowLayout dengan argumen pertama sebagai posisi pada komponen dan hgap untuk horizontal dan vgap untuk vertikal pada komponen Gap dapat dikatakan sebagai jarak antara komponen dan biasanya diukur dengan satuan pixel. Posisi argumen mengikuti penulisan sebagai berikut : 1. FlowLayout.LEFT 2. FlowLayout.CENTER 3. FlowLayout.RIGHT 9

Contoh Program FlowLayout Manager import java.awt.flowlayout; import javax.swing.*; class FlowLayoutDemo extends JFrame { public static void main(string args[]) { FlowLayoutDemo fld = new FlowLayoutDemo(); fld.setlayout(new FlowLayout(FlowLayout.RIGHT, 10, 10)); fld.add(new JButton("ONE")); fld.add(new JButton("TWO")); fld.add(new JButton("THREE")); fld.setsize(100, 100); fld.setvisible(true); 10

BorderLayout Manager BorderLayout membagi kontainer menjadi lima bagian diantaranya utara, selatan, timur, barat, dan tengah. Constructor BorderLayout 1. BorderLayout() Membuat object BorderLayout baru tanpa spasi yang diaplikasikan diantara komponen yang berbeda. 2. BorderLayout(int hgap, int vgap) Membuat object BorderLayout baru dengan spasi unit hgap horizontal dan unit vgap vertikal yang diaplikasikan diantara komponen yang berbeda. Berikut ini adalah daftar dari kelima region. 1. BorderLayout.NORTH 2. BorderLayout.SOUTH 3. BorderLayout.EAST 4. BorderLayout.WEST 5. BorderLayout.CENTER 11

Contoh Program Borderlayout Manager import java.awt.borderlayout; import javax.swing.*; class BorderLayoutDemo extends JFrame { public static void main(string args[]) { BorderLayoutDemo bld = new BorderLayoutDemo(); bld.setlayout(new BorderLayout(10, 10)); //may remove bld.add(new JButton("NORTH"), BorderLayout.NORTH); bld.add(new JButton("SOUTH"), BorderLayout.SOUTH); bld.add(new JButton("EAST"), BorderLayout.EAST); bld.add(new JButton("WEST"), BorderLayout.WEST); bld.add(new JButton("CENTER"), BorderLayout.CENTER); bld.setsize(200, 200); bld.setvisible(true); 12

GridLayout Manager GridLayout manager membagi kontainer menjadi baris dan kolom. Semua region memiliki ukuran yang sama. Berikut ini adalah daftar dari constructor untuk class GridLayout. Constructor GridLayout 1. GridLayout() Membuat object GridLayout baru dengan satu baris dan satu kolom sebagai default 2. GridLayout(int rows, int cols) Membuat object GridLayout baru dengan jumlah baris dan kolom sesuai dengan keinginan 3. GridLayout(int rows, int cols, int hgap, int vgap) Membuat object GridLayout baru dengan jumlah baris dan kolom yang ditentukan. Unit spasi hgap horizontal dan vgap vertikal diaplikasikan ke dalam komponen. 13

Contoh Program Gridlayout Manager import java.awt.*; class GridLayoutDemo extends Frame { public static void main(string args[]) { GridLayoutDemo gld = new GridLayoutDemo(); gld.setlayout(new GridLayout(2, 3, 4, 4)); gld.add(new Button("ONE")); gld.add(new Button("TWO")); gld.add(new Button("THREE")); gld.add(new Button("FOUR")); gld.add(new Button("FIVE")); gld.setsize(200, 200); gld.setvisible(true); 14

JBUTTON, JLABEL DAN JTEXTFIELD JLabel JLabel merupakan komponen yang digunakan untuk menampilkan teks yang pendek atau gambar atau keduanya. Komponen Label memiliki konstruktor sebagai berikut : 15

Contoh Program Menggunakan JLabel import java.awt.*; public class TesButton extends Frame { public static void main(string[] args) { TesButton apl = new TesButton(); public TesButton() { super("coba LABEL"); setsize(300, 100); Panel paneltombol = new Panel(); paneltombol.add(new Label("INI LABEL")); add("south", paneltombol); show(); Output : 16

JBUTTON, JLABEL DAN JTEXTFIELD JButton Kelas JButton berguna untuk membuat objek tombol yang dapat dilengkapi dengan judul tombol dan gambar, selain itu JButton merupakan komponen yang dapat menghasilkan suatu event jika tombol diklik oleh user. Komponen JButton memiliki konstruktor sebagai berikut : 17

Contoh Program Menggunakan JButton 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(); Output : 18

JBUTTON, JLABEL DAN JTEXTFIELD JTextField JTextField merupakan objek yang berguna untuk memasukkan atau mengedit data satu baris. Komponen JTextField memiliki konstruktor sebagai berikut : 19

Contoh Program Menggunakan JLabel 20

PENANGANAN KEJADIAN Penanganan kejadian atau ActionEvent pada java merupakan suatu cara untuk berinteraksi antara program dengan user. Tabel berikut memperlihatkan beberapa event dan event listener yang umumnya diperlukan dalam aplikasi : Pada paket ini dapat digunakan oleh komponen AWT maupun SWING, agar objek dapat menangani suatu kejadian, objek tersebut harus didaftarkan sebagai listener. Contohnya adalah sebagai berikut : JButton But = new JButton( Kirim ); But.addActionListener(this); 21

CONTOH PROGRAM PENANGANAN KEJADIAN import javax.swing.*; import java.awt.event.*; class Coba extends JFrame implements ActionListener { JButton But = new JButton( Kirim ); but.addactionlistener(this); show(); setdefaultcloseoperation(jframe.exit_on_close); public void actionperformed(actionevent e) { if(e.getsource()==but){string kata=""; kata=jt.gettext(); JOptionPane.showMessageDialog(null,kata); 22

Latihan Program Berikut ini adalah contoh program sederhana menginput dan menampilkan data dengan swing -awt. Ikutilah langkah-langkah berikut : Step 1 : Buka dan ketikan program pada teks editor notepad++ Anda. Simpan nama file pertama sama seperti nama classnya, yaitu Travel.java Misal disimpan pada direktori D folder praktikan Travel.java Ketikkan program berikut pada teks editor Anda. //import fungsi untuk menggunakan perintah swing dan awt import javax.swing.jframe; import javax.swing.jbutton; import javax.swing.jlabel; import javax.swing.jtextfield; import javax.swing.jcheckbox; import javax.swing.jcombobox; import java.awt.font; import java.awt.color; import java.awt.event.actionlistener; import java.awt.event.actionevent ; import java.awt.event.itemlistener; import java.awt.event.itemevent ; 23

//dekarasi class turunan Jframe dan implementasi dari ActionListener class tampilan extends JFrame implements ActionListener { *deklarasikan variabel ht,sub,jum bertipe integer, variabel disc dan total bertipe double. Semua variabel tersebut bersifat private...... //deklarasi variabel array item bertipe string berikut isinya private String[] item = {"","Jakarta","Cirebon","Tasikmalaya"; //buat gui yang dibutuhkan seperti combobox, label, checkbox, textfield private JComboBox tuj = new JComboBox(item); private JLabel judul = new JLabel("Program Travel Bintang Kejora"); private JLabel nama = new JLabel("Nama"); private JLabel tujuan = new JLabel("Tujuan"); private JLabel jumlah = new JLabel("Jumlah Tiket"); private JLabel member = new JLabel("Member"); private JCheckBox cb = new JCheckBox ("Ya"); private JLabel harga = new JLabel("Harga Tiket"); private JLabel sub_t = new JLabel("Sub Total"); private JLabel diskon = new JLabel("Diskon"); private JLabel t_harga = new JLabel("Total Harga"); private JTextField txtnama = new JTextField(); private JTextField txtujumlah = new JTextField(); private JTextField txtharga = new JTextField(); private JTextField txtsub = new JTextField(); 24

private JTextField txtdiskon = new JTextField(); private JTextField txttotal = new JTextField(); *buat 2 button bernama dan berlabel hitung dan ulangi bersifat private...... tampilan() //deklarasi method {//isi var super super("program Travel Created By Andriyan"); //perintah untuk menutup frame/keluar program setdefaultcloseoperation(jframe.exit_on_close); *menentukan lokasi (100,100), ukuran (495,250) dan layout (null)......... //memberi nama gui add(judul); add(nama); add(txtnama); add(tujuan); add(tuj); add(jumlah); add(txtujumlah); add(member); add(cb); add(harga); add(txtharga); add(sub_t); add(txtsub); add(diskon); add(txtdiskon); add(t_harga); add(txttotal); add(hitung); add(ulangi); //setting teks judul.setfont(new Font("Times New Roman",Font.BOLD,20)); judul.setbounds(10,10,300,20); 25

nama.setbounds(10,50,100,20); txtnama.setbounds(120,50,100,20); tujuan.setbounds(10,75,100,20); tuj.setbounds(120,75,100,20); jumlah.setbounds(10,100,100,20); txtujumlah.setbounds(120,100,100,20); member.setbounds(10,125,100,20); cb.setbounds(115,125,100,20); harga.setbounds(260,50,100,20); txtharga.setbounds(370,50,100,20); sub_t.setbounds(260,75,100,20); txtsub.setbounds(370,75,100,20); diskon.setbounds(260,100,100,20); txtdiskon.setbounds(370,100,100,20); t_harga.setbounds(260,125,100,20); txttotal.setbounds(370,125,100,20); hitung.setbounds(130,175,100,20); ulangi.setbounds(250,175,100,20); //kirim action jika tombol diklik ke method ActionListener tuj.addactionlistener(this); cb.addactionlistener(this); hitung.addactionlistener(this); ulangi.addactionlistener(this); setvisible(true); //perintah agar semua gui dapat ditampilkan 26

//deklarasi method untuk menampilkan aksi jika tombol hitung diklik public void actionperformed(actionevent e) { //perintah untuk menentukkan harga tiket sesuai tujuan String item = (String)tuj.getSelectedItem(); *buat seleksi if bersarang dengan kondisi : jika tujuan Jakarta maka harga tiket 100000 jika tujuan Cirebon maka harga tiket 15000 jika tujuan Tasikmalaya maka harga tiket 20000 selain dari ketiga tujuan diatas maka harga tiket 0............ Object obj= e.getsource(); if (obj == hitung) {//perintah menghitung diskon dan total harga tiket jum = Integer.parseInt(txtujumlah.getText()); sub = jum * ht ; if (cb.isselected()) if (cb.isselected()) {disc = 0.10 * sub; else {disc = 0.0; total = sub-disc; 27

txtharga.settext("rp. "+ht); txtsub.settext("rp. "+sub); txtdiskon.settext("rp. "+disc); txttotal.settext("rp. "+total); //perintah jika tombol ulangi diklik maka semua inputan akan direset lagi. if (obj == ulangi) { txtnama.settext(""); txtujumlah.settext(""); txtharga.settext(""); txtsub.settext(""); txtdiskon.settext(""); txttotal.settext(""); public class Travel //program utama { public static void main(string[] arg) { new tampilan(); //penggil method tampilan 28

Step 2 : Ikuti langkah berikut untuk meng-compile program yang telah Anda buat. Buka command prompt Anda. Masuk ke direktori dan folder tempat program tersebut disimpan. Misal program disimpan pada direktori D folder praktikan Perintah masuk/pindah ke direktori D, ketik D: Perintah masuk ke folder praktikan, ketik cd<spasi>praktikan Setelah masuk ke direktori dan folder yang dituju, untuk meng-compile program Anda ketikkan perintah : Contoh : Step 3 : javac<spasi> Travel.java javac TestVehicle.java Untuk menjalankan program yang telah Anda buat, ketikkan perintah : Contoh : java<spasi>namafile java Travel 29

Tampilan Output 30

Koreksi Latihan Program //import fungsi untuk menggunakan perintah swing dan awt import javax.swing.jframe; import javax.swing.jbutton; import javax.swing.jlabel; import javax.swing.jtextfield; import javax.swing.jcheckbox; import javax.swing.jcombobox; import java.awt.font; import java.awt.color; import java.awt.event.actionlistener; import java.awt.event.actionevent ; import java.awt.event.itemlistener; import java.awt.event.itemevent ; 31

class tampilan extends JFrame implements ActionListener { private int ht,sub,jum; private double disc,total; private String[] item = {"","Jakarta","Cirebon","Tasikmalaya"; private JComboBox tuj = new JComboBox(item); private JLabel judul = new JLabel("Program Travel Bintang Kejora"); private JLabel nama = new JLabel("Nama"); private JLabel tujuan = new JLabel("Tujuan"); private JLabel jumlah = new JLabel("Jumlah Tiket"); private JLabel member = new JLabel("Member"); private JCheckBox cb = new JCheckBox ("Ya"); private JLabel harga = new JLabel("Harga Tiket"); private JLabel sub_t = new JLabel("Sub Total"); private JLabel diskon = new JLabel("Diskon"); private JLabel t_harga = new JLabel("Total Harga"); private JTextField txtnama = new JTextField(); private JTextField txtujumlah = new JTextField(); private JTextField txtharga = new JTextField(); private JTextField txtsub = new JTextField(); private JTextField txtdiskon = new JTextField(); private JTextField txttotal = new JTextField(); private JButton hitung = new JButton("Hitung"); private JButton ulangi = new JButton("Ulangi"); 32

tampilan() { super("program Travel Created By Andriyan"); setdefaultcloseoperation(jframe.exit_on_close); setlocation(100,100); setsize(495,250); setlayout(null); add(judul); add(nama); add(txtnama); add(tujuan); add(tuj); add(jumlah); add(txtujumlah); add(member); add(cb); add(harga); add(txtharga); add(sub_t); add(txtsub); add(diskon); add(txtdiskon); add(t_harga); add(txttotal); add(hitung); add(ulangi); judul.setfont(new Font("Times New Roman",Font.BOLD,20)); judul.setbounds(10,10,300,20); nama.setbounds(10,50,100,20); txtnama.setbounds(120,50,100,20); tujuan.setbounds(10,75,100,20); tuj.setbounds(120,75,100,20); jumlah.setbounds(10,100,100,20); txtujumlah.setbounds(120,100,100,20); member.setbounds(10,125,100,20); cb.setbounds(115,125,100,20); harga.setbounds(260,50,100,20); txtharga.setbounds(370,50,100,20); 33

sub_t.setbounds(260,75,100,20); txtsub.setbounds(370,75,100,20); diskon.setbounds(260,100,100,20); txtdiskon.setbounds(370,100,100,20); t_harga.setbounds(260,125,100,20); txttotal.setbounds(370,125,100,20); hitung.setbounds(130,175,100,20); ulangi.setbounds(250,175,100,20); tuj.addactionlistener(this); cb.addactionlistener(this); hitung.addactionlistener(this); ulangi.addactionlistener(this); setvisible(true); public void actionperformed(actionevent e) { String item = (String)tuj.getSelectedItem(); if (item.equals("jakarta")) {ht = 100000; else if (item.equals("cirebon")) {ht = 15000; else if (item.equals("tasikmalaya")) {ht = 20000; 34

else {ht = 0; Object obj= e.getsource(); if (obj == hitung) { jum = Integer.parseInt(txtujumlah.getText()); sub = jum * ht ; if (cb.isselected()) if (cb.isselected()) {disc = 0.10 * sub; else {disc = 0.0; total = sub-disc; txtharga.settext("rp. "+ht); txtsub.settext("rp. "+sub); txtdiskon.settext("rp. "+disc); txttotal.settext("rp. "+total); if (obj == ulangi) { txtnama.settext(""); txtujumlah.settext(""); txtharga.settext(""); txtsub.settext(""); 35

txtdiskon.settext(""); txttotal.settext(""); public class Travel //program utama { public static void main(string[] arg) { new tampilan(); 36