Anda di halaman 1dari 15

MODUL PEMROGRAMAN BERORIENTASI OBJEK

(CCC210)

MODUL 12
GUI

DISUSUN OLEH
INDRIANI NOOR HAPSARI, ST, MT

UNIVERSITAS ESA UNGGUL


2020

Universitas Esa Unggul


http://esaunggul.ac.id 0 / 15
MODUL 12 - Java GUI

A. Kemampuan Akhir Yang Diharapkan

Setelah mempelajari modul ini, diharapkan:


1. Mahasiswa memahami dan menjelaskan komponen Java GUI.
2. Mahasiswa dapat memahami dan menjelaskan Event-Based Programming
pada Java GUI.
3. Mahasiswa dapat menerapkan Java GUI dalam studi kasus.

B. Outline Topik

1. Konsep Polymorphism...................................................Error! Bookmark not defined.


2. Interface........................................................................... Error! Bookmark not defined.
3. Kapan diperlukan Interface?.........................................Error! Bookmark not defined.
4. Cara Mendeklarasikan Interface di Java.................... Error! Bookmark not defined.
5. Cara Mengimplementasikan Interface........................ Error! Bookmark not defined.
6. Kelas Object di Java...................................................... Error! Bookmark not defined.

Universitas Esa Unggul


http://esaunggul.ac.id 1 / 15
C. Uraian

1. Pendahuluan Java Swing

Untuk membuat antarmuka grafis di Java, maka Anda dapat menggunakan Java
Swing yang digunakan untuk membuat aplikasi berbasis jendela (window-based
application). Java Swing dibangun di atas API AWT (Abstract Windowing Toolkit).
Berbeda dengan AWT, Java Swing menyediakan fitur platform-independent dan
komponen yang ringan.

Package javax.swing menyediakan kelas untuk API swing java seperti JButton,
JTextField, JTextArea, JRadioButton, JCheckBox, JMenu, JColorChooser, dan
sebagainya.

Berikut ini adalah hirarki dari API Java Swing.

Gambar 1 Hirarki API Java Swing

Universitas Esa Unggul


http://esaunggul.ac.id 2 / 15
2. JOptionPane

JOptionPane adalah dialog box sederhana untuk Input/Output grafis. JOptionPane


memiliki kelebihan dan kekurangan sebagai berikut.

Kelebihan JOptionPane:
1. Sederhana
2. Fleksibel (dalam hal tertentu)
3. Terlihat lebih baik daripada “the black box of death” (layar hitam console).

Kekurangan JOptionPane:
1. Dibuat dengan fungsi statik
2. Tidak terlalu object-oriented
3. Tidak terlalu powerful (hanya menampilkan dialog box sederhana)

Berikut adalah contoh tampilan dari JOptionPane

Terdapat beberapa tipe dari JOptionPane sebagai berikut

1. showMessageDialog(<parent>, <message>)
Menampilkan sebuah pesan dalam
sebuah dialog dengan tombol OK.

2. showConfirmDialog(<parent>, <message>)
Menampilkan sebuah pesan dengan daftar pilihan Yes, No, Cancel; mengembalikan
pilihan user sebagai sebuah integer dengan nilai sebagai berikut:
JOptionPane.YES_OPTION
JOptionPane.NO_OPTION

Universitas Esa Unggul


http://esaunggul.ac.id 3 / 15
JOptionPane.CANCEL_OPTION

3. showInputDialog(<parent>, <message>)
Menampilkan sebuah pesan dan
textfield untuk menerima input dari user;
mengembalikan nilai yang diinput user
sebagai sebuah String.

Berikut ini adalah contoh penggunaan JOptionPane. Fungsi showMessageDialog


sama dengan fungsi System.out.println, yaitu untuk menampilkan sebuah
pesan.

import javax.swing.*;

public class MessageDialogExample {


public static void main(String[] args) {
JOptionPane.showMessageDialog(null,"How's the
weather?");
JOptionPane.showMessageDialog(null, "Second message");
}
}

Berikut adalah output dari kode program di atas

Universitas Esa Unggul


http://esaunggul.ac.id 1 / 15
3. OnScreen GUI Element

Sebagian besar GUI tidak tersusun atas OptionPane; karena fungsinya sangat
terbatas. Sebagian besar GUI merupakan GUI yang kompleks yang terdiri atas
elemen-elemen berikut:

a. Frame: Sebuah jendela grafis pada layar.


b. Components: GUI widgets seperti button (tombol) atau text fields (kolom teks).
c. Containers: Untuk mengelompokkan komponen-komponen yang memiliki
kesamaan fungsi.

Berikut ini adalah contoh kode program untuk menampilkan frame


Program Sederhana Output Grafis
import javax.swing.*;

public class SimpleFrame {


public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setVisible(true);
}
}
import java.awt.*;
import javax.swing.*;

public class SimpleFrame2 {


public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setForeground(Color.WHITE);
frame.setDefaultCloseOperation
(JFrame.EXIT_ON_CLOSE);
frame.setLocation (new Point(10, 50));
frame.setSize(new Dimension(300,
120));
frame.setTitle("A frame");
frame.setVisible(true);
}
}

Universitas Esa Unggul


http://esaunggul.ac.id 1 / 15
Berikut ini adalah properti yang dimiliki oleh JFrame.

name type description methods

default close int what should happen when getDefaultCloseOperation,


operation frame is closed setDefaultCloseOperation

icon image Image icon in the window's title getIconImage,


bar setIconImage

layout LayoutM how the frame should positi getLayout, setLayout


anager on its components

resizable boolean whether the window can be isResizable, setResizable


resized

title String window's title bar text getTitle, setTitle

Berikut adalah properti yang dimiliki oleh Component.

name type description methods

background Color background color getBackground, set


Background

enabled boolean whether the component can isEnabled, setEnab


be interacted with led

font Font font used to display any text getFont, setFont


on the component

foreground Color foreground color getForeground, set


Foreground

location Point (x, y) position of component getLocation, setLo


on screen cation

size Dimensi width, height of component getSize, setSize


on

preferred Dimensi width, height that the compo getPreferredSize,


size on nent wants to be setPreferredSize

visible boolean whether the component can isVisible, setVisi


be seen on screen ble

Universitas Esa Unggul


http://esaunggul.ac.id 2 / 15
4. Event-Driven Programming

Event-driven programming merupakan pemrograman yang dirancang ketika waktu


program dieksekusi tidak tentu, melainkan menunggu sebuah event (kejadian) terjadi.
Komponen di layar dapat menyebabkan terjadinya event ketika komponen tersebut
di-klik atau ketika dilakukan interaksi lainnya. Event dapat ditangani, yang
menyebabkan program memberikan respon, dan membuat program berjalan melalui
sebuah event (sebuah “event-driven program”).

Berikut ini adalah hirarki Java Event, yang terletak di dalam package
java.awt.event.*
java.lang.Object
+--java.util.EventObject
+--java.awt.AWTEvent
+--java.awt.event.ActionEvent
+--java.awt.event.TextEvent
+--java.awt.event.ComponentEvent
+--java.awt.event.FocusEvent
+--java.awt.event.WindowEvent
+--java.awt.event.InputEvent
+--java.awt.event.KeyEvent
+--java.awt.event.MouseEvent

Untuk dapat menggunakan Java Event, maka perlu meng-import dengan


menuliskan kode berikut di awal program.

import java.awt.event.*;

Universitas Esa Unggul


http://esaunggul.ac.id 3 / 15
5. ACTION EVENT

Event sederhana yang paling banyak digunakan di Swing adalah ActionEvent.


ActionEvent menunjukkan aksi yang terjadi pada komponen GUI. ActionEvent
disebabkan oleh event berikut ini:
a. Klik button
b. Check/Uncheck check box
c. Klik menu
d. Menekan enter di sebuah text field
e. dll

LISTENER
Untuk dapat mendeteksi sebuah event di sebuah komponen, maka program harus
memasang listener pada komponen tersebut. Fungsi listener yang sesuai akan
dipanggil ketika event terjadi (misalkan, ketika sebuah button di-klik). Untuk
ActionEvent, digunakan ActionListener.

Berikut ini adalah salah satu cara menuliskan sebuah ActionListener dalam
program.
// part of Java; you don't write this
public interface ActionListener {
public void actionPerformed(ActionEvent event);
}

// Prints a message when the button is clicked.


public class MyActionListener implements ActionListener {

public void actionPerformed(ActionEvent event){


JOptionPane.showMessageDialog(null,
"An event occurred!");
}

Universitas Esa Unggul


http://esaunggul.ac.id 4 / 15
}

Berikut adalah cara memasang ActionListener pada komponen (button).

JButton button = new JButton("button 1");


ActionListener listener = new MyActionListener();
button.addActionListener(listener);

Sekarang, button akan mencetak “Event occured!” ketika diklik. Fungsi


addActionListener ada di banyak komponen Swing.

6. MOUSE EVENT

Selain ActionEvent, terdapat juga MouseEvent untuk menunggu event yang


terjadi ketika mouse di-klik atau digerakkan pada komponen GUI (biasanya pada
sebuah panel). MouseEvent merespon terhadap aktivitas mouse yang sesuai.
MouseEvent membuat program interaktif yang digerakkan oleh aktivitas mouse.

Untuk dapat mendeteksi sebuah event dari aktivitas mouse di sebuah komponen,
maka program harus memasang listener pada komponen tersebut. Untuk
MouseEvent, digunakan MouseListener.

Berikut adalah interface MouseListener yang dapat diimplementasi pada kelas


yang Anda buat.

Universitas Esa Unggul


http://esaunggul.ac.id 5 / 15
// part of Java; you don't write this
public interface MouseListener {
public void mouseClicked(MouseEvent event);
public void mouseEntered(MouseEvent event);
public void mouseExited(MouseEvent event);
public void mousePressed(MouseEvent event);
public void mouseReleased(MouseEvent event);
}

Berikut ini adalah salah satu cara menuliskan sebuah MouseListener dalam
program.
package java.awt.event;

public class MyMouseListener implements MouseListener {


public void mouseClicked(MouseEvent event) {}
public void mouseEntered(MouseEvent event) {}
public void mouseExited(MouseEvent event) {}

public void mousePressed(MouseEvent event) {


System.out.println("User pressed mouse button!");
}

public void mouseReleased(MouseEvent event) {}


}

Berikut adalah cara memasang MouseListener pada komponen (panel).

// assumes some custom panel class named MyPanel


MyPanel panel = new MyPanel();
panel.addMouseListener(new MyMouseListener());

Sekarang, apabila mouse ditekan pada panel, maka program akan mencetak “User
pressed mouse button!”.

Universitas Esa Unggul


http://esaunggul.ac.id 6 / 15
7. KEYBOARD EVENT

KeyEvent digunakan untuk menunggu event yang terjadi ketika keyboard ditekan
pada komponen GUI (biasanya pada sebuah panel). KeyEvent merespon terhadap
aktivitas keyboard yang sesuai. KeyEvent membuat program interaktif yang
digerakkan oleh aktivitas keyboard seperti mengendalikan karakter yang ditampilkan
di layar dan mensimulasikan input teks.

Untuk dapat mendeteksi sebuah event dari aktivitas keyboard di sebuah komponen,
maka program harus memasang listener pada komponen tersebut. Untuk
KeyEvent, digunakan KeyListener.

Berikut adalah interface KeyListener yang dapat diimplementasi pada kelas yang
Anda buat.

// part of Java; you don't write this


public interface KeyListener {
public void keyPressed(KeyEvent event);
public void keyReleased(KeyEvent event);
public void keyTyped(KeyEvent event);
}

Agar tidak perlu mengimplementasikan semua fungsi yang ada di KeyListener,


bisa digunakan KeyAdapter, yaitu sebuah kelas yang mengimplement seluruh
fungsi pada interface KeyListener. Sehingga, kita dapat menuliskan sebuah
KeyListener dalam program dengan mengimplementasi KeyAdapter dan hanya
menuliskan fungsi listener yang diperlukan saja.

Universitas Esa Unggul


http://esaunggul.ac.id 7 / 15
package java.awt.event;

class PacManKeyListener extends KeyAdapter {


public void keyPressed(KeyEvent event) {
char keyChar = event.getKeyChar();
int keyCode = event.getKeyCode();

if (keyCode == KeyEvent.VK_RIGHT) {
pacman.setX(pacman.getX() + 1);
pacpanel.repaint();
} else if (keyChar == 'Q') {
System.exit(0);
}
}
}

Berikut adalah cara memasang KeyListener pada komponen (panel).

// assumes some custom panel class named PacPanel


PacPanel panel = new PacPanel();
panel.addKeyListener(new PacKeyListener());

Sekarang, apabila ditekan tombol “panah kanan” di keyboard, lokasi axis pacman
akan bertambah satu (ke kanan), dan bila tombol “Q” akan keluar dari program.

Universitas Esa Unggul


http://esaunggul.ac.id 8 / 15
D. Latihan
1. Pada Java, untuk membuat antarmuka grafis digunakan Java Swing untuk
membuat aplikasi berbasis jendela (window-based application).
a) Benar
b) Salah
c) Tidak diketahui
2. Frame, Container, dan Component merupakan bagian dari package Java Swing.
a) Benar
b) Salah
c) Tidak diketahui
3. ActionEvent, ActionListener, MouseEvent, MouseListener, KeyEvent, dan
KeyListener merupakan bagian dari package Java AWT Event.
a) Benar
b) Salah
c) Tidak diketahui
4. Untuk membuat MouseEvent, perlu dipasang ActionListener.
a) Benar
b) Salah
c) Tidak diketahui
5. Untuk membuat KeyboardEvent, perlu dipasang ActionListener.
a) Benar
b) Salah
c) Tidak diketahui

Universitas Esa Unggul


http://esaunggul.ac.id 9 / 15
E. Daftar Referensi

Stuart Reges and Marty Stepp, Building Java Programs : A Back to Basics Approach,
Pearson, 2019.
buildingjavaprograms.com
https://docs.oracle.com/javase/tutorial/uiswing/

Universitas Esa Unggul


http://esaunggul.ac.id 10 /
15

Anda mungkin juga menyukai