0% menganggap dokumen ini bermanfaat (0 suara)
99 tayangan156 halaman

PL 10 Gui

GUI

Diunggah oleh

Zahratul Fitri
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
99 tayangan156 halaman

PL 10 Gui

GUI

Diunggah oleh

Zahratul Fitri
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 156

Java Fundamentals:

3. Java GUI
Pemrograman Lanjut PTIIK UB
Dosen: Herman Tolle

Slide ini dibuat oleh


Pak Romy Satriowahono
Course Outline
1. OOP Concepts:
Konsep dan Paradigma Object-Oriented
2. Java Basics:
Memahami Sintaks dan Grammar Bahasa Java
3. Java GUI:
Swing, GUI Component, Event Handling, Pengembangan
Aplikasi GUI
4. Java Algorithms:
Pengantar Algoritma, Struktur Data, Algorithm Analysis
5. Java Advanced:
Eksepsi, Thread, Java API
6. Java Database:
Koneksi ke Database, Pengembangan Aplikasi Database
3. Java GUI
Java GUI

1. Konsep Graphical User Interface (GUI)


di Java
2. Komponen Dasar Swing
3. Penanganan Kejadian (Event Handling)
4. Studi Kasus Membangun Aplikasi GUI
3.1 Konsep Graphical User
Interface (GUI) di Java
API untuk Aplikasi GUI di Java
1. AWT (Abstract Window Toolkit):
Library dan komponen GUI (java.awt) yang pertama
kali diperkenalkan oleh Java, Sun tidak
merekomendasikan lagi penggunaan komponen GUI
dari AWT
2. Swing or JFC (Java Foundation Class):
Library dan komponen GUI (javax.swing) terbaru dari
Java dan yang direkomendasikan Sun untuk
pemrograman GUI. Komponen Swing sebagian besar
adalah turunan AWT dan lebih lengkap daripada
AWT
Fitur Swing
Komponen GUI Lengkap: button, listbox, combobox,
textarea, dsb
Pluggable Look-and-Feel: tampilan GUI dapat diubah
sesuai dengan kehendak (tidak perlu mengikuti native
sistem operasi)
Data Transfer Antar Komponen: drag and drop, copy
and paste
Internationalization: proses desain aplikasi yang
memungkinkan aplikasi dijalankan sesuai dengan
preferensi tanpa rekompilasi
Localization: proses translasi teks ke bahasa lokal dan
menambahkan komponen lokal
3.2 Komponen Swing
Komponen Dasar Swing
1. Top-Level Container: kontainer dasar dimana komponen
lainnya diletakkan (JFrame, JDialog dan Applet)
2. Intermediate Container: kontainer perantara dimana
komponen lainnya diletakkan
(JPanel, JScrollPane, JTabbedPane, JToolbar, JSplitPane)
3. Atomic Component: komponen yang memiliki fungsi
spesifik dan menerima interaksi langsung dari user
(JButton, JLabel, JTextArea, dsb)
4. Layout Manager: mengatur tata letak dan posisi komponen
dalam kontainer (BorderLayout, BoxLayout, FlowLayout,
GridBagLayout, GridLayout)
5. Event Handling: menangani event yang dilakukan user (klik
mouse, ketik keyboard, perbesar frame, dsb)
Desain Aplikasi GUI dengan Netbeans
3.2.1 Top-Level Container

JFrame, JDialog, Applet


Top Level Container
JFrame
//1. Create the frame
JFrame frame = new JFrame("Frame Beraksi");

//2. Optional: What happens when the frame closes?


frame.setDefaultCloseOperation(JFrame.EXIT_ N_CLOSE);

//3. Create components and put them in the frame


//...create emptyLabel...
frame.getContentPane().add(emptyLabel , BorderLayout.CENTER);

//4. Size the frame


frame.pack();

//5. Show it
frame.setVisible(true);
FrameBeraksi.java
public class FrameBeraksi {
public static void main(String[] args){
JFrame frame = new JFrame("Frame Beraksi");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JLabel emptyLabel = new JLabel("Frame Beraksi");


frame.getContentPane().add(emptyLabel);

frame.setSize(400,200);
frame.setVisible(true);
}
}
FrameBeraksi2.java
import javax.swing.*;

public class FrameBeraksi2 extends JFrame {


public FrameBeraksi2() {
super("Frame Beraksi 2");
setSize(300, 100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] arguments) {
FrameBeraksi2 frame= new FrameBeraksi2();
}
}
3.2.2 Intermediate Container
Menu
3.2.3 Atomic Component
JButton
public class ButtonBeraksi extends JFrame {
JButton load = new JButton("Load");
JButton save = new JButton("Save");
public ButtonBeraksi() {
super("Button Beraksi");
setSize(140, 170);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane = new JPanel();
pane.add(load);
pane.add(save);
add(pane);
setVisible(true);
}
public static void main(String[] arguments) {
ButtonBeraksi button = new ButtonBera
}
Choice with ComboBox, CheckBox, RadioButton
Choice with ComboBox, CheckBox, RadioButton
3.2.4 Layout Manager
Jenis Layout Manager
1. Border Layout
2. Flow Layout
3. Grid Layout
4. Grid Bag Layout
5. Box Layout
6. Card Layout
BorderLayoutBeraksi.java
public class BorderLayoutBeraksi extends JFrame { public static void main(String[] args) {
JButton nButton = new JButton("North"); BorderLayoutBeraksi frame = new
JButton sButton = new JButton("South");
BorderLayoutBeraksi();
JButton eButton = new JButton("East");
Frame.setVisible(true);
JButton wButton = new JButton("West");
JButton cButton = new JButton("Center"); }
JButton( Center ); }
public BorderLayoutBeraksi() {
super("Border Layout Beraksi"); setSize(240, 280);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
add(nButton, BorderLayout.NORTH);
add(sButton, BorderLayout.SOUTH);
add(eButton, BorderLayout.EAST);
add(wButton, BorderLayout.WEST);
add(cButton, BorderLayout.CENTER); }
BorderLayout
FlowLayoutBeraksi.java
public class FlowLayoutBeraksi extends JFrame { public static void main(String[] args) {
JButton a = new JButton("Alibi"); FlowLayoutBeraksi frame = new
FlowLayoutBeraksi();
JButton b = new JButton("Burglar");
}
JButton c = new JButton("Corpse"); }
JButton d = new JButton("Deadbeat");
JButton e = new JButton("Evidence");
public static void main(String[] args) {
FlowLayoutBeraksi frame = new
FlowLayoutBeraksi();
JButton f = new JButton("Fugitive");
public FlowLayoutBeraksi() {
super("Flow Layout Beraksi"); setSize(360, 120);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
FlowLayout lm = new FlowLayout(FlowLayout.LEFT);
setLayout(lm);
add(a); add(b); add(c); add(d);
add(e); add(f);
setVisible(true);
}
GridLayoutBeraksi.java
GridLayout family = new
GridLayout(3, 3, 10, 10);
public class GridLayoutBeraksi extends JFrame {
JButton marcia = new JButton("Marcia"); pane.setLayout(family);
pane.add(marcia); pane.add(carol);
JButton carol = new JButton("Carol");
pane.add(greg); pane.add(jan);
JButton greg = new JButton("Greg"); pane.add(alice); pane.add(peter);
pane.add(cindy); pane.add(mike);
JButton jan = new JButton("Jan");
pane.add(bobby);
JButton alice = new JButton("Alice");
JButton( Alice ); add(pane);
setVisible(true);
JButton peter = new JButton("Peter"); }
JButton cindy = new JButton("Cindy");
public static void main(String[] args) {
JButton mike = new JButton("Mike"); GridLayoutBeraksi frame = new
JButton bobby = new JButton("Bobby"); GridLayoutBeraksi();
}
}
public GridLayoutBeraksi() {
super(" Grid Layout Beraksi ");
setSize(260, 260);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane = new JPanel();
GridLayout
BorderLayout + GridLayout
GridBagLayout
BoxLayoutBeraksi.java
public class BoxLayoutBeraksi extends JFrame { public static void main(String[] args) {
public BoxLayoutBeraksi() { BoxLayoutBeraksi st = new
super("BoxLayoutBeraksi"); setSize(430, 150);
BoxLayoutBeraksi();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
JPanel commandPane = new JPanel();
BoxLayout horizontal = new }
BoxLayout(commandPane,BoxLayout.X AXIS);
commandPane.setLayout(horizontal);
JButton subscribe = new JButton("Subscribe");
JButton unsubscribe = new
JButton("Unsubscribe");
JButton refresh = new JButton("Refresh");
commandPane.add(subscribe);
commandPane.add(unsubscribe);
commandPane.add(refresh);
add(commandPane);
}
CardLayoutBeraksi.java

class CardLayoutBeraksi{
public static void main(String[] args){
JFrame frame = new JFrame("Card Layout Beraksi");
JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel();
JButton button = new JButton("Button dalam panel ke 1");
JT tA t t JT tA ("T t d l l k 2")
JTextArea text = new JTextArea("Text dalam panel ke 2");
panel1.add(button); panel2.add(text);
JTabbedPane tab = new JTabbedPane();
tab.add(panel1, "Tab 1"); tab.add(panel2, "Tab 2");
frame.getContentPane().add(tab,BorderLayout.NORTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack(); frame.setVisible(true);
}
}
3.3 Penanganan Kejadian
(Event Handling)
Event
1. Event adalah kejadian atau peristiwa yang
dilakukan oleh user terhadap user interface
menggunakan peralatan mouse dan keyboard
2. Setiap objek dapat dinotifikasi jika suatu event
terjadi sehingga objek tersebut dapat memutuskan
apa yang harus dilakukan untuk menanggapi
(menangani) event tersebut (event handling)
3. Agar suatu objek dapat dinotifikasi tentang suatu
event, objek harus mendaftarkan diri sebagai event
listener ke sumber yg menghasilkan event, dan
mengimplementasikan interface listener yg sesuai
Proses Penanganan Event (Kejadian)
1. Komponen harus didaftarkan sebagai pendengar (listener) dg
menggunakan method addXXXListener()
JButton tombolSelesai = new JButton(Selesai);
tombolSelesai.addActionListener(this);
2. Meng-implementasi interface listener atau meng-extends class
adapter (bisa juga dengan membuat inner class)
1. class HelloGUI implements MouseListener{}
2. class HelloGUI extends MouseAdapter{} atau
class HelloGUI extends JFrame{ class handler extends MouseAdapter{}}
3. Menuliskan code penangan event pada method handler
MouseAdapter{
public void mouseClicked(MouseEvent e){
//code penangan kejadian
}
}
Listener Yang Sering Digunakan
Kategori Interface Method
Listener
Action
Yang Banyak
ActionListener
Dipakai
actionPerformed(ActionEvent)
Item ItemListener itemStateChanged(ItemEvent)
Mouse MouseListener mouseClicked(MouseEvent)
mouseEntered(MouseEvent)
mouseExited(MouseEvent)
mousePressed(MouseEvent)
mouseReleased(MouseEvent)
Mouse Motion MouseMotionListener mouseDragged(MouseEvent)
mouseMoved(MouseEvent)
Key KeyListener keyPressed(KeyEvent)
keyReleased(KeyEvent)
keyTyped(KeyEvent
Focus FocusListener focusGained(FocusEvent)
focusLost(FocusEvent)
Window WindowListener windowClosing(Windowevent)
windowOpened(Windowevent)
windowActived(Windowevent)
windowDeactived(Windowevent)
Daftar Listener Lengkap
Listener (Semua Komponen Swing)
Listener Deskripsi

ComponentListener Mendengarkan perubahan size, position, atau visibility


dari komponen
FocusListener Mendengarkan ketika komponen mendapatkan atau
kehilangan fokus keyboard
KeyListener Mendengarkan penekanan tombol keyboard (hanya
untuk komponen yang mendapat fokus keyboard)
MouseListener Mendengarkan penekanan mouse, klik mouse,
pelepasan mouse, dan pergerakan mouse
MouseMotionListener Mendengarkan perubahan posisi kursor mouse pada
komponen
MouseWheelListener Mendengarkan pergerakan roda mouse pada
komponen
HierarchyListener Mendengarkan perubahan hirarki komponen karena
kejadian yang berubah
HierarchyBoundListener Mendengarkan perubahan hirarki komponen karena
kejadian pergerakan dan perubahan ukuran
Listener API Table -1-
Listener or Adapter Listener Method Deskripsi
ActionListener actionPerformed(ActionEvent)

AncestorListener ancestorAdded(AncestorEvent)
ancestorMoved(AncestorEvent)
ancestorRemoved(AncestorEvent)
CaretListener caretUpdate(CaretEvent)
CellEditorListener editingStopped(ChangeEvent)
editingCanceled(ChangeEvent)
ChangeListener stateChanged(ChangeEvent)
ComponentListener componentHidden(ComponentEvent)
ComponentAdapter componentMoved(ComponentEvent)
componentResized(ComponentEvent)
componentShown(ComponentEvent
ContainerListener componentAdded(ContainerEvent)
ContainerAdapter componentRemoved(ContainerEvent)
DocumentListener changedUpdate(DocumentEvent)
insertUpdate(DocumentEvent)
removeUpdate(DocumentEvent)
ExceptionListener exceptionThrown(Exception)
Listener API Table -2-
Listener or Adapter Listener Method Deskripsi
FocusListener focusGained(FocusEvent)
FocusAdapter focusLost(FocusEvent)
HierarchyBoundsListener ancestorMoved(HierarchyEvent)
HierarchyBoundsAdapter ancestorResized(HierarchyEvent)
HierarchyListener hierarchyChanged(HierarchyEvent)
HyperlinkListener hyperlinkUpdate(HyperlinkEvent)
InputMethodListener caretPositionChanged(InputMethodEvent)
inputMethodTextChanged(InputMethodEvent)
InternalFrameListener internalFrameActivated(InternalFrameEvent)
InternalFrameAdapter internalFrameClosed(InternalFrameEvent)
internalFrameClosing(InternalFrameEvent)
internalFrameDeactivated(InternalFrameEvent)
internalFrameDeiconified(InternalFrameEvent)
internalFrameIconified(InternalFrameEvent)
internalFrameOpened(InternalFrameEvent)
ItemListener itemStateChanged(ItemEvent)
KeyListener keyPressed(KeyEvent)
KeyAdapter keyReleased(KeyEvent)
keyTyped(KeyEvent
Listener API Table -3-
Listener or Adapter Listener Method Deskripsi
ListDataListener contentsChanged(ListDataEvent)
intervalAdded(ListDataEvent)
intervalRemoved(ListDataEvent)
ListSelectionListener valueChanged(ListSelectionEvent)
MenuDragMouseList menuDragMouseDragged(MenuDragMouseEvent)
ener menuDragMouseEntered(MenuDragMouseEvent)
menuDragMouseExited(MenuDragMouseEvent)
menuDragMouseReleased(MenuDragMouseEvent)
MenuKeyListener menuKeyPressed(MenuKeyEvent)
menuKeyReleased(MenuKeyEvent)
menuKeyTyped(MenuKeyEvent)
MenuListener menuCanceled(MenuEvent)
menuDeselected(MenuEvent)
menuSelected(MenuEvent)
Listener API Table -4-
Listener or Adapter Listener Method Deskripsi

MouseListener mouseClicked(MouseEvent)
mouseEntered(MouseEvent)
mouseExited(MouseEvent)
mousePressed(MouseEvent)
mouseReleased(MouseEvent)
MouseMotionListener mouseDragged(MouseEvent)
MouseMotionAdapter, mouseMoved(MouseEvent)
MouseInputAdapter
MouseWheelListener popupMenuCanceled(PopupMenuEvent)
MouseAdapter popupMenuWillBecomeInvisible(PopupMenuEven
t)
popupMenuWillBecomeVisible(PopupMenuEvent)
PropertyChangeListener propertyChange(PropertyChangeEvent)
TableColumnModelListener columnAdded(TableColumnModelEvent)
columnMoved(TableColumnModelEvent)
columnRemoved(TableColumnModelEvent)
columnMarginChanged(ChangeEvent)
columnSelectionChanged(ListSelectionEvent)
Membangun Aplikasi GUI
dengan Netbeans
The Palette
The Design Area
The Source Editor
The Property Editor
The Inspector
3.4 Studi Kasus Membangun
Aplikasi GUI
Studi Kasus Aplikasi GUI

1. Aplikasi Konversi Suhu


2. Aplikasi Pertambahan Dua Angka
3. Aplikasi Penghitungan Jumlah Hari
4. Aplikasi Penampil Gambar
5. Aplikasi Kalkulator
6. Aplikasi Penentu Nilai Mahasiswa
7. Aplikasi Biodata Mahasiswa
Aplikasi Konversi Suhu

GUI Component: TextField, Label, Button


Events: actionPerformed, mouseClicked
Algoritma untuk Event Handling
1. Ambil Isi dari textfield, simpan dalam variabel
celcius
2. Konversi celcius ke fahrenheit dengan rumus di
bawah, dan simpan hasilnya dalam variabel
fahrenheit
fahrenheit = 1.8 * celcius + 32
3. Tempelkan hasil (fahrenheit) ke label fahrenheit
(menimpa isi lama)
1. Membuat Project Baru
2. Memberi Nama Project

Nama Project: CelciusToFahrenheit


Uncheck: Create Main Class
3. Menambahkan JFrame Form Pada
Project

Nama Frame: CelciusToFahrenheitGUI


Package: GUI
3. Menempatkan GUI Component ke
Design (Frame)
4. Mengubah Text dari
GUI Component (Edit Text)

JTextField1: Kosongi
JLabel1: Celcius
JLabel2: Fahrenheit
JButton1: Convert
5. Mengubah Nama Variable dari
Setiap GUI Component (Change
Variable Name)

JTextField1: celciusTextField
JLabel1: celciusLabel
JLabel2: fahrenheitLabel
JButton1: convertButton
6. Rapikan Tampilan Frame
Program Kita (Potong Yang Tidak
Perlu)
7. Buat Event untuk Convert
Button

Klik Kanan Pada Convert Button


Pilih Event Action ActionPerfomed
atau Pilih Event Mouse MouseClick
8. Buat Code untuk Event Handling
di Convert Button

double celcius = Double.parseDouble(celciusTextField.getText());


double fahrenheit =celcius * 1.8 + 32;
fahrenheitLabel.setText(fahrenheit + " Fahrenheit");
9. Kompilasi (Build, F11) Project
10. Jalankan (Run, F6) Project
Bisa Juga dengan Klik Kanan dan pilih
Run Pada File Java
Memainkan Variable
Properties
Tahapan Membuat Aplikasi GUI
1. Membuat Project baru
2. Menambahkan JFrame Form (top level container)
3. Diatas JFrame diletakkan JPanel (intermediate container)
4. Tempelkan atomic (GUI) component
5. Edit text dari tiap component
6. Edit nama variable dari tiap component (untuk
mempermudah coding)
7. Rapikan tampilan dengan mengedit JFrame, JPanel dan
mengubah Layout
8. Pilih component yang akan mengelola event dan pilih
jenis event sesuai dengan kebutuhan
9. Tambahkan kode di method event yang disediakan
Rumus Konversi Suhu
Kelvin = Celcius + 273.15
Fahrenheit = Celcius * 1.8 + 32
Reamur = Celcius * 0.8
Kelvin = (Fahrenheit + 459.67) / 1.8
Celsius = (Fahrenheit 32) / 1.8
Reamur = (Fahrenheit 32) / 2.25
Celcius = Kelvin 273.15
Fahrenheit = Kelvin * 1.8 459.67
Reamur = (Kelvin 273.15) * 0.8
Kelvin = Reamur / 0.8 + 273.15
Celsius = Reamur/ 0.8
Fahrenheit = (Reamur 7.5) * 24/7 + 32
Aplikasi Pertambahan Dua Angka

GUI Component: Panel, Label, TextField, Button


Logic Programming: if-else
Events: actionPerformed
Features: requestFocus, Sistem.exit(0)
Aplikasi Pertambahan Dua Angka
1. Angka Pertama dan
Angka Kedua
dimasukkan oleh user
2. Tombol Tambah diklik
maka akan keluar hasil
pertambahan di field
ketiga
3. Tombol Hapus untuk
membersihkan layar
4. Setelah tombol Hapus,
arahkan fokus ke
TextField Angka
Pertama
Aplikasi Operasi Dua Angka

GUI Component: Panel, Label, TextField, Button


Logic Programming: if-else
Event: actionPerformed, keyTyped
Features: pembuatan method baru
Operasi Dua Angka
Fitur Tambahan:
1. Error dialog muncul
bila input nilai bukan
numerik
2. Gunakan Event
keyTyped pada
TextField untuk
tampilkan error
3. Memunculkan error
dialog:
JOptionPane.showMessageDialog
(this, error);
method baru

panggil method
class dan method baru
Aplikasi Penghitungan Jumlah Hari

GUI Component: Panel, Label, TextField, PasswordField,


Button, ComboBox
Logic Programming: if-else, switch
Event: actionPerformed, keyTyped
Aplikasi Penghitungan Jumlah Hari
1. Muncul login form, bila ID User
dan Password = admin, maka
aplikasi akan muncul
2. Tombol Hitung diklik, maka akan
muncul jumlah hari pada bulan
dan tahun yang ditunjuk
3. Perhatikan bahwa ada
perhitungan tahun kabisat pada
bulan pebruari
4. Tombol simpan untuk
menyimpan hasil ke file

Error Dialog:
1. Error dialog muncul bila input nilai
bukan numerik (digit)
2. Error dialog muncul bila isian
kosong
Ganti TextField menjadi ComboBox
Aplikasi Penampil Gambar
dengan Button

GUI Component: BorderLayout, Button, CardLayout


Logic Programming: none
Event: actionPerformed
Penampil Gambar (Button)
Aplikasi Penampil Gambar
dengan Button (FullScreen
Undecorated)

GUI Component: BorderLayout, Button, CardLayout


Logic Programming: none
Event: actionPerformed
Aplikasi Penampil Gambar
dengan ComboBox

GUI Component:ComboBox, CardLayout


Logic Programming: none
Event: itemStateChanged
Penampil Gambar (ComboBox)
Login Form dan Konfirmasi Keluar
Aplikasi

GUI Component:TextField, PasswordField,


Menu Bar, Menu Item
Logic Programming: If-Else
Event: KeyPressed
Aplikasi Penentu Nilai Mahasiswa

GUI Component: Label, TextField, Button


Logic Programming: if-else, switch
Event: actionPerformed, keyTyped
Aplikasi Penentu Nilai Mahasiswa
Nilai Rata-Rata:
UTS+TM+UAS/3
Grade:
1. 90-: A
2. 80-89: B
3. 70-79: C
Hasil:
1. A-C: Lulus
2. D: Tidak Lulus

Fitur Tambahan:
1. Error dialog muncul ketika input
nilai bukan numerik, nilai tidak
antara 0-100, atau isian kosong
2. Konfirmasi ketika keluar aplikasi
Aplikasi Kalkulator

GUI Component: Panel, TextArea,


Button
Logic Programming: If-Else, Switch
Aplikasi Kalkulator
1. Cara bekerja seperti
kalkulator
2. Tombol yang kita
tekan akan muncul di
layar
3. Hasil perhitungan
akan muncul di layar
4. Keterangan:
C = clear layar
B = backspace
E = exit
5. Exit dengan konfirmasi
Hints: Tahapan Kerja Kalkulator
7 + 8 = 15
operandSatu operator operandDua samadengan hasil

1. operandSatu: tampilkan angka yg ditekan di layar


2. operator:
1. Ambil yang ada di layar, simpan sebagai variable operandSatu
2. Beri tanda operator apa yg dijalankan (+, -, *, dst)
3. operandDua: tampilkan angka yg ditekan di layar
4. samadengan:
1.Ambil yang ada di layar, simpan sebagai variable operandDua
2.Buat keputusan (if or switch), operator apa yang digunakan dan proses apa yg
dilakukan
if(operator.equals(+)){
layar.setText(operandSatu + operandDua);
}else if(){ ...
}
Aplikasi Text to Voice

GUI Component: CheckBox,


ComboBox, RadioButton, TextArea
Logic Programming: If-Else
Aplikasi Text to Voice
1. Masukkan text berupa kalimat
ke dalam TextArea
2. Ketika tombol Speak Text,
maka text yang telah ditulis
akan dibuah ke dalam bentu
voice (bisa membacakan)
3. Hints:
Gunakan library FreeTTS dari
http://sourceforge.net/projects/freetts/
Aplikasi Biodata Organisasi

GUI Component: CheckBox,


ComboBox, RadioButton, TextArea
Logic Programming: If-Else
Aplikasi Biodata Organisasi
1. Nama dan Alamat ditulis
2. Pekerjaan (PNS, TNI,
Karyawan, Pengusaha)
dipilih
3. Jenis Kelamin dipilih
4. Cetak tebal di cek
5. Ketika klik Tampilan, maka
data akan ditampilkan di
TextArea di bawah
6. Tombol Simpan untuk
menyimpan di file (txt)
Hints
Font tebal = new Font(Arial, Font.BOLD, 12)
Font tipis = new Font(Arial, Font.PLAIN, 12)

if(yaTebal.getText().equals(Ya)){
hasilTextArea.setFont(tebal);
}else{
hasilTextArea.setFont(tipis);
}
Aplikasi Biodata Mahasiswa

GUI Component: Menubar,


Menuitem, Table
Aplikasi Biodata Mahasiswa
1. Aplikasi dengan frame lengkap
beserta menubar dan menuitem
2. Data diisi kemudian diklik
Tambahkan maka data akan
masuk ke table
3. Bersihkan: membersihkan isian
di Textfield
4. Hapus: menghapus record di
table
5. Simpan: menyimpan record di
file
6. Keluar: keluar aplikasi
Sistem ATM
Kembangkan aplikasi Bank yang
sudah pernah kita bangun, menjadi
Sistem ATM yg berbasis ke GUI
Gunakan class Bank.java sebagai
class control yg membantu proses
melihat saldo, mengambil uang dan
menyimpan uang
Gunakan perpindahan frame untuk
MenuLogin dan MenuUtama
Gunakan dialog
(JOptionPane.showInputDialog)
untuk mengambil data pada
Menyimpan Uang dan Mengambil
Uang
Konversi Kurs Mata Uang
Konversi Kurs Mata Uang Lengkap
1 USD = 10800 RP 1 EUR = 12737 RP 1 JPY = 99 RP
Text to Speech
Searching di Google dengan
keyword Free TTS jar
Download library dan
masukkan freetts.jar ke
dalam direktori libraries
dengan klik kanan add
jar/folder
Buat user interface design,
dan buat event pada tombol
Speak Text yang berisi logic
code untuk mengeluarkan
suara dari text (hanya perlu 4
baris code)
Tugas Bonus (Kelas E)
Membuat Aplikasi GUI, Perhitungan Nilai Akhir Mata
Kuliah
Input: Nilai Angka masing-masing komponen penilaian
Output: Nilai Akhir
Tombol Fungsi: Hitung, Hapus, Simpan, Keluar
Pengumpulan Laporan DOC (Soal, Source Code,
Screenshot hasil, contoh file text), dikirim ke email
dosen dg subject: SIE-bonus-nim
Deadline: 15 Juni 2014
Tugas Bonus (Kelas F)
Membuat Aplikasi GUI, Perhitungan Nilai IP Semester
Input: Nilai Angka / Huruf masing-masing MK, Jumlah
SKS masing-masing MK
Output: Nilai IP Semester, Save ke File
Rumus IPs = ( SKSi * NAi ) / TotalSks
Tombol Fungsi: Hitung, Hapus, Simpan, Keluar
Pengumpulan Laporan DOC (Soal, Source Code,
Screenshot hasil, contoh file text), dikirim ke email
dosen dg subject: SIF-bonus-nim
Deadline: 15 Juni 2014
Referensi
1. Sharon Zakhour et al, The Java Tutorial Fourth Edition,
http://java.sun.com/docs/books/tutorial
2. Cay Horstmann, Big Java: Earl Objects 5th Edition, John Wiley & Sons,
2013
3. Deitel & Deitel, Java Howto Program 9th Edition, Prentice Hall, 2012
4. Richard M. Reese, Oracle Certified Associate Java SE 7 Programmer
Study Guide, Packt Publishing, 2012
5. Walter Savitch, Absolute Java 5th Edition, Pearson Education, 2013
6. Mark Allen Weiss, Data Structures and Algorithm Analysis in Java 3rd
Edition, Pearson Education, 2012
7. Anany Levitin, Introduction to the Design and Analysis of Algorithms
3rd Edition, Pearson Education, 2012
8. Ying Bai, Practical Database Programming with Java, John Wiley &
Sons, 2011

Anda mungkin juga menyukai