Anda di halaman 1dari 69

MODUL PRAKTIKUM

PEMROGRAMAN VISUAL 2
(Java Programming)

disusun oleh:

Kharis Syaban G., ST., M.Cs

PROGRAM STUDI SISTEM INFORMASI


FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS SEMBILANBELAS NOVEMBER KOLAKA
2018
DAFTAR ISI

Daftar Isi.....................................................................................................................................2
Modul 1. Pengenalan – NetBeans IDE.......................................................................................1
Materi Dasar..........................................................................................................................1
Praktikum 2.1 – Project.........................................................................................................2
Praktikum 1.2 – Hello World.................................................................................................4
Modul 2. Java Swing – Swing Component................................................................................6
Materi Dasar..........................................................................................................................6
Praktikum 2.1 – JLabel, JTextfield, dan JButton.................................................................10
Praktikum 2.2 – JCheckBox dan JRadioButton...................................................................12
Praktikum 2.3 – JList dan JComboBox...............................................................................15
Modul 3. Java Swing – Swing Dialog dan File Chooser..........................................................19
Materi Dasar........................................................................................................................19
Praktikum 3.1 – Pre-defined Dialog Dengan JOptionPane.................................................20
Praktikum 3.2 – File Chooser..............................................................................................23
Modul 4. Java Swing – Swing Menu.......................................................................................27
Materi Dasar........................................................................................................................27
Praktikum 4.1 – Menu.........................................................................................................28
Praktikum 4.2 – Popup Menu..............................................................................................32
Praktikum 4.3 – Toolbar......................................................................................................33
Modul 5. Java Swing – Event Handler.....................................................................................37
Materi Dasar........................................................................................................................37
Praktikum 5.1 – ActionListener...........................................................................................39
Praktikum 5.2 – ItemListener..............................................................................................40
Praktikum 5.3 – MouseListener...........................................................................................40
Praktikum 5.4 – KeyListener...............................................................................................42
Modul 6. Java Swing – Layout.................................................................................................44
Materi Dasar........................................................................................................................44
Praktikum 6.1 – Border Layout...........................................................................................45
Praktikum 6.2 – Card Layout...............................................................................................46
Praktikum 6.3 – Flow Layout..............................................................................................48
Praktikum 6.4 – Grid Layout...............................................................................................49
Praktikum 6.5 – GridBag Layout.........................................................................................50
Modul 7. Java Database Connectivity......................................................................................52
Materi Dasar........................................................................................................................52
Praktikum 7.1 – Java Database Connectivity......................................................................53
Praktikum 7.2 – Insert Data.................................................................................................55
Praktikum 7.3 – Update Data...............................................................................................57
Praktikum 7.4 – Delete Data................................................................................................59
Praktikum 7.5 – Tampil Data...............................................................................................60
Daftar Pustaka..........................................................................................................................63
DAFTAR GAMBAR

Gambar 1. Tampilan NetBeans IDE...........................................................................................1


Gambar 2. Dialog Project Categories.........................................................................................2
Gambar 3. Dialog Project Name and Location..........................................................................3
Gambar 4. Project Workspaces...................................................................................................3
Gambar 5. New File Dialog.......................................................................................................4
Gambar 6. File Name and Location Dialog...............................................................................4
Gambar 7. Output Program HelloWorld.java.............................................................................5
Gambar 8. Komponen penyusun GUI pada NetBeans...............................................................6
Gambar 9. Contoh program menggunakan JLabel, JTextField dan JButton............................10
Gambar 10. Categories dan File Types.....................................................................................11
Gambar 11. Jendela design Netbens Matisse...........................................................................11
Gambar 12. Contoh aplikasi menggunakan JCheckBox dan JRadioButton............................13
Gambar 13. Contoh program menggunakan JComboBox dan JList........................................16
Gambar 14. Jendela Properties.................................................................................................17
Gambar 15. Contoh program menggunakan JfileChooser.......................................................22
Gambar 16. Contoh desain aplikasi..........................................................................................22
Gambar 17. Contoh program menggunakan JfileChooser.......................................................23
Gambar 18. Tampilan JFileChooser.........................................................................................24
Gambar 19. FileChooser ketika dijalankan..............................................................................25
Gambar 20. Contoh program dengan Menu, Popup Menu dan Toolbar..................................28
Gambar 21. Struktur menu dari aplikasi..................................................................................29
Gambar 22. Jendela Properties dari class JMenu.....................................................................30
Gambar 23. ButtonGroup berada dalam kategori Other Components.....................................31
Gambar 24. Properties dari JRadioButtonMenuItem...............................................................32
Gambar 25. Popup menu pada frame.......................................................................................33
Gambar 26. Membuat package baru.........................................................................................34
Gambar 27. Window Properties JButton..................................................................................35
Gambar 28. Jendela icon editor................................................................................................36
Gambar 29. Implementasi ActionListener................................................................................39
Gambar 30. Implementasi ItemListener...................................................................................40
Gambar 31. Implementasi MouseListener...............................................................................41
Gambar 32. JPanel Properties..................................................................................................42
Gambar 33. Implementasi KeyListener....................................................................................43
Gambar 34. Pengaturan Layout pada Frame............................................................................45
Gambar 35. Tampilan Frame dengan BorderLayout................................................................46
Gambar 36. Pengaturan Layout di Properties..........................................................................46
Gambar 37. Tampilan Frame dengan CardLayout...................................................................47
Gambar 38. Pengaturan CardLayout pada panelTest...............................................................47
Gambar 39. Komponen Swing pada panelTest........................................................................47
Gambar 40. Tampilan Frame dengan FlowLayout...................................................................48
Gambar 41. Pengaturan FlowLayout pada Frame....................................................................49
Gambar 42. Tampilan Frame dengan FlowLayout...................................................................49
Gambar 43. Layouting pada GridLayout.................................................................................50
Gambar 44. Tampilan Awal Frame dengan GridBagLayout....................................................50
Gambar 45. Customize GridBagLayout...................................................................................51
Gambar 46. Pengaturan tata letak komponen pada GridBagLayout........................................51
Gambar 47. Hasil akhir layouting komponen pada GridBagLayout........................................52
Gambar 48. Menambah library pada project............................................................................55
Gambar 49. Library yang didukung oleh JDK8.......................................................................55
Gambar 50. Implementasi proses input....................................................................................57
Gambar 51. Implementasi proses update.................................................................................59
Gambar 52. Implementasi proses delete...................................................................................60
Gambar 53. Implementasi proses cari dan tampil data............................................................62
MODUL 1. PENGENALAN – NETBEANS IDE
Kajian : Pengenalan NetBeans IDE
Topik : • Membuat Project pada NetBeans
• Membuat New File pada NetBeans
Kompetensi Utama : • Mahasiswa memahami konsep project pada netbeans.
• Mahasiswa mampu membuat sebuah file baru dan membuat
sebuah program sederhana.

Materi Dasar
Netbeans merupakan sebuah aplikasi Integrated Development Environment (IDE) yang
berbasiskan Java dari Sun Microsystems yang berjalan di atas swing. Swing merupakan
sebuah teknologi Java untuk pengembangan aplikasi desktop yang dapat berjalan pada
berbagai macam platform seperti windows, linux, Mac OS X dan Solaris. Sebuah IDE
merupakan lingkup pemrograman yang di integrasikan ke dalam suatu aplikasi perangkat
lunak yang menyediakan Graphic User Interface (GUI), suatu kode editor atau text, suatu
compiler dan suatu debugger.

2
3

Gambar 1. Tampilan NetBeans IDE


Praktikum 2.1 – Project
Untuk dapat membuat sebuah aplikasi yang berjalan pada platform java dengan netbeans,
langkah-langkah yang dilakukan adalah sebagai berikut:
i. Pada aplikasi NetBeans, pilih menu File, new Projects atau dengan menekan
kombinasi tombol Ctrl+Shift+N pada keyboard; juga bisa dilakukan dengan
menekan icon pada toolbar.

ii. Berikutnya akan muncul sebuah window dialog untuk memilih kategori project.
Pada bagian Categories, pilih Java dan pada bagian Projects pilih Java Application.
Tekan tombol Next.

Gambar 2. Dialog Project Categories

iii. Selanjutnya, akan ditampilkan window dialog untuk menentukan nama project dan
lokasi di mana project tersebut akan disimpan. Secara default, netbeans
menyimpan semua projects yang dibuat di dalam folder NetbeansProjects yang
terletak pada folder user document (contoh pada sistem operasi Windows,
C:\<username PC>\My Documents\). Tekan tombol Next.

Project Name : PraktikumVisualJava1


Project Location : C:\<username_PC>\My
Documents\NetBeansProjects\PraktikumVisualJava1
Gambar 3. Dialog Project Name and Location

iv. Setelah menekan tombol Finish, netbeans akan men-generate semua konfgurasi
yang dibutuhkan dalam membuat sebuah aplikasi seperti source code, library,
deployment, dan sebagainya.

Gambar 4. Project Workspaces


Praktikum 1.2 – Hello World
Setelah membuat sebuah project, langkah berikutnya adalah membuat sebuah class yang
nantinya akan dikompilasi menjadi sebuah program dengan cara seperti berikut:
i. Pilih menu File, New File untuk membuat sebuah class baru. Maka akan muncul
sebuah dialog window untuk memilih Categories dan File Type yang akan dibuat.

Gambar 5. New File Dialog

Pada pilihan Categories pilih Java dan pada bagian File Types, pilih Java Class; Atau
bisa juga dilakukan dengan cara lain yaitu pada projects sidebar, pilih dan klik source
package. Lalu klik kanan untuk memunculkan popup menu, pilih new, Java Class.
ii. Berikutnya akan muncul sebuah dialog yang akan meminta nama fle dan lokasi dari
class yang akan dibuat.

Gambar 6. File Name and Location Dialog

Pada isian class name, silahkan isi dengan nama class yang diinginkan, sedangkan
untuk isian project name, location, dan package tidak perlu diubah. Lalu tekan
tombol Finish. (khusus pada praktikum ini, isian package akan diabaikan dan
akan dibahas secara lebih lanjut pada praktikum berikutnya).
Class Name : HelloWorld
Project : PraktikumVisualJava1
Location : Source Package
Package : <kosongkan>

iii. Setelah menekan tombol Finish, NetBeans akan men-generate sebuah fle baru
dengan nama HelloWorld.java yang tersimpan pada Source Package di project
PraktikumVisualJava1.
iv. Langkah berikutnya adalah membuat sebuah source code yang nantinya akan
dikompilasi menjadi sebuah program. Pada workspace HelloWorld.java, silahkan
ketik source code dimulai dari baris 2 sampai baris 4.

1 public class HelloWorld {


2 public static void main (String[] args) {
3 System.out.println("Hello, world");
4 }
5 }
v. Tahapan berikutnya ada mengkompilasi source code yang telah dibuat, dengan cara
memilih menu Run, Run Project (F6). Berikut adalah output dari source code yang
telah diketik sebelumnya.

Gambar 7. Output Program HelloWorld.java

Netbeans menyediakan beberapa metode untuk menjalankan sebuah program, yang


dijelaskan pada tabel berikut.

Metode Penjelasan
Run Project Mengkompilasi keseluruhan source code yang terdapat pada project
sekaligus menjalankan program sebagai satu kesatuan.
Run File Mengkompilasi sekaligus menjalankan source code tertentu.
Compile File Hanya mengkompilasi source code tapi tidak menjalankan.
MODUL 2. JAVA SWING – SWING COMPONENT

Kajian : Pengenalan Java Swing GUI Builder


Topik : • Komponen Dasar Java Swing
• Penggunaan Swing Gui Builder
Referensi :
Kompetensi Utama : • Mahasiswa memahami konsep pemrograman swing
• Mahasiswa mampu membuat form sederhana menggunakan
komponen swing.
• Mahasiswa mampu memahami konsep penggunaan
komponen swing: JLabel, JTextField, JComboBox, JList,
JRadioButton, JcheckBox, ButtonGroup, dan JButton

Materi Dasar
Dalam aplikasi NetBeans terdapat menu Palette yang berisi Swing dan komponen-
komponen penting didalamnya untuk membangun sebuah aplikasi menggunakan NetBeans,
mungkin masih ada beberapa pengguna NetBeans yang belum tau deskripsi masing-masing
komponen tersebut maka postingan ini dibuat untuk menjelaskan satu persatu komponen
tersebut.

Gambar 8. Komponen penyusun GUI pada NetBeans


Berikut ini penjelasan dari masing-masing bidang yang ada di Palette NetBeans:
Swing Containers

Swing Containers ini menempatkan komponen-komponen yang berfungsi sebagai container /


background.

Nama Deskripsi
Merupakan panel yang dapat digunakan sebagai papan dari suatu
Panel
bidang / layar lain
Split Pane Merupakan 2 tombol yang tebagi menjadi 2 sisi (kiri & kanan)
Merupakan bar yang dapat dimasukkan tool didalamnya, biasanya
Toolbar
digunakan diatas layar
Internal Frame Merupakan bingkai layar baru yang berada didalam bingkai utama
Merupakan panel yang memiliki tab & bisa beralih dari tab 1 ke tab
Tabbed Pane
lainnya
Scroll Pane Merupakan panel yang dapat di scroll baik horizontal ataupun vertikal
Merupakan container yang digunakan untuk membuat multi dokumen
Desktop Pane
interface atau dekstop virtual
Sebuah container yang memungkinkan setiap komponen didalamnya
Layered Pane
saling overlap jika diperlukan

Swing Controls

Swing Controls menempatkan komponen-komponen yang fungsinya untuk pengelolaan


Swing.

Nama Deskripsi
Sebuah kolom/area yang digunakan untuk menampilkan tulisan atau
Label
gambar
Toggle Button Tombol yang memiliki 2 keterangan seperti saklar (ON/OFF)
Tombol yang berfungsi untuk memilih dan tidak memilih pilihan
Radio Button
lainnya, tombol ini hanya dapat memilih satu dari sekian pilihan
Komponen yang digunakan sebagai dropdown list, bisa digunakan
Combo Box
untuk memilih multiple selection
Komponen yang digunakan sebagai input / bidang yang dapat diedit
Text Field
(menulis didalamnya)
Komponen yang menyesuaikan tampilan sebuah konten yang terbatas
Scroll Bar
& menampilkan scroll
Sebuah bar yang mengindikasi sebuah pekerjaan dengan menampilkan
Progress Bar
presentasi pekerjaan tersebut
Password Field Sebuah bidang yang digunakan untuk menulis katasandi, tidak akan
Nama Deskripsi
menampilkan karakter & diganti dengan tanda titik
Digunakan untuk keperluan umum seperti membatasi komponen &
Separator
memberikan garis pemisah
Bidang yang sering disebut textarea, biasa digunakan untuk menulis
Editor Pane
apapun didalamnya
Button Sebuah tombol sederhana
Check Box Kotak centang yang dapat dicentang atau tidak
Class yang digunakan untuk membuat multi lingkup eksklusi satu set
Button Group
tombol
List Menampilkan sebuah daftar & dapat dipilih lebih dari satu
Tidak berbeda jauh dengan Editor Pane, sebuah kolom besar yang dapat
Text Area
digunakan untuk menulis
Pengguna dapat menggeser sebuah nilai secara grafik seperti membesar
Slider
kecilkan volume
Komponen yang memungkinkan untuk mengedit sebuah nilai
Formatted Field
didalamnya secara partikular
Sebuah bidang input angka yang memiliki tombol naik dan turun untuk
Spinner
mengontrol angka tersebut
Text Pane Bidang text yang dapat diisi dengan ilai dan menandai isi-isi tersebut
Sebuah direktori folder yang tersusun seperti pohon ketika memiliki
Tree
folder didalam folder

Swing Menus

Swing Menus memiliki komponen-komponen yang dapat digunakan untuk keperluan menu /
navigasi.

Nama Deskripsi
Menu Bar Komponen untuk menampilkan menu dan item menu
Sebuah menu tunggal, bisa digunakan sebagai menu utama jika
Menu
disisipkan submenu
Menu Item Sebuah item menu tunggal didalam menu
Menu Item / CheckBox Sebuah item menu tunggal atau kotak centang didalam menu
Menu Item / RadioButton Sebuah item menu tunggal atau kotak centang didalam menu
Layar munculan kecil yang menampilkan beberapa pilihan /
Popup Menu
menu
Keperluan umum untuk membatasi antara komponen dan
Separator
memberikan garis pembatas
Swing Windows

Swing Windows menampilkan beberapa komponen yang digunakan untuk keperluan jendela
(window) / layar.

Nama Deskripsi
Dialog Sebuah jendela yang digunakan menampilkan dialog
Color Chooser Jendela baru yang digunakan untuk memilih warna / memanipulasi
Jendela yang digunakan untuk menampilkan dialog dan opsi yang
Option Pane
ditampilkan
Frame Top Level Window, digunakan untuk bingkai window utama
File Chooser Jendela baru untuk memilih sebuah file

Swing Fillers

Swing Fillers menampilkan komponen-komponen yang bisa digunakan sebagai pengisi.

Nama Deskripsi
Komponen yang tersedia untuk menggerakkan ke arah vertikal &
Glue
horizontal
Komponen yang memiliki lebar pasti dan dapat bergerak ke arah
Horizontal Strut
horizontal
Vertical Glue Komponen yang memiliki lebar bebas & dapat bergerak ke arah vertikal
Vertical Strut Komponen yang memiliki lebar pasti dan dapat bergerak ke arah vertikal
Komponen yang memiliki lebar bebas & dapat bergerak ke arah
Horizontal Glue
horizontal
Rigid Area Komponen yang memiliki ukuran pasti

AWT

AWT merupakan singkatan dari Abstract Window Tookit menampilkan toolbox widget,
grafis dan widget antarmuka pengguna yang sebelumnya ada di Swing.

Nama Deskripsi
Label Bidang yang menampilkan tulisan, biasa digunakan untuk judul
Text Field Bidang yang menampilkan kolom penulisan
Checkbox Kotak yang dapat dicentang atau tidak
List Menampilkan daftar
Scroll Pane Anak komponen yang otomatis membuat scroll horizontal / vertikal
Canvas Sebuah kanvas kosong dapat dimasukkan sesuatu bahkan oleh pengguna lain
Popup Menu Layar popup yang menampilkan menu atau pilihan lain
Nama Deskripsi
Button Tombol
Text Area Bidang besar untuk menulis beberapa baris kalimat
Choice Kolom tarik-turun yang menampilkan beberapa pilihan untuk dipilih
Scrollbar Tombol scroll yang dapat diterapkan dimana saja
Panel Sebuah panel / container untuk keperluan umum
Menu Bar Sebuah bar menu yang dapat dimasukkan kedalam frame

Java Persistence

Menampilkan komponen lain dari Java yang disediakan di NetBeans

Nama Deskripsi
Entity Manager Sebuah entitas yang terasosiasi dengan persistensi unit
Query Result Hasil dari kueri persistensi
Query Kueri persistensi

Praktikum 2.1 – JLabel, JTextfeld, dan JButton


Label, textfeld dan tombol adalah komponen-komponen dasar yang selalu ada dalam
setiap aplikasi berbasis desktop. Ketiga komponen ini mempunyai fungsi yang sangat
sederhana, textfeld menyimpan data berbentuk text (string) yang relatif pendek , label
banyak digunakan untuk memberikan keterangan penjelas terhadap komponen lain dan
tombol digunakan user untuk menjalankan satu instruksi tertentu.
Berikut ini adalah contoh aplikasi sederhana yang melakukan penjumlahan dua buah
bilangan.

Gambar 9. Contoh program menggunakan JLabel, JTextField dan JButton


Untuk membuat aplikasi ini menggunakan Matisse, lakukan langkah-langkah berikut ini:
i. Buat project baru di Netbeans (kalau sudah membuat project, tidak perlu membuat
lagi) dengan cara memilih menu File, New Project.
ii. Buat class JFrame baru, caranya dengan memilih menu File, New File. Maka akan
muncul dialog New File, pada Categories pilih Swing GUI Forms dan pada File Type
pilih JFrame Form.

Gambar 10. Categories dan File Types

Kemudian beri nama Penjumlahan.java


iii. Buat tampilan form seperti gambar bawah ini, caranya dengan klik Jendela Pallete
di sebalah kanan untuk memilih komponen apa yang akan dibuat, kemudian klik di
jendela Design untuk menempatkan komponen yang sudah dipilih tadi ke dalam
form. Hasilnya terlihat seperti pada gambar berikut.

Gambar 11. Jendela design Netbens Matisse

iv. Ganti nama setiap komponen agar mudah dikenali. Klik kanan di atas setiap
komponen yang ada dalam Jendela Design di atas, kemudian pilih Change Variable
Name ...
Ganti nama komponen-komponen tersebut (sesuai urutan dari kiri ke kanan, atas ke
bawah) menjadi : txtA, txtB, btnHitung, lblHasil.
v. Menambahkan variabel untuk menampung nilai yang akan dijumlahkan. Klik tombol
Source untuk membuka jendela yang menampilkan kode sumber dari program di
atas kemudian tambahkan kode di bawah ini tepat di bawah defnisi dari class
Penjumlahan (baris 3-4):
1 public class NewJFrame extends javax.swing.JFrame {
2
3 private String str = "Hasilnya adalah : ";
4 private int a, b;
5 ......
vi. Menangani penekanan tombol Jumlah. Klik tombol Design untuk menampilkan
frame yang telah dibuat, klik kanan di atas komponen button Jumlah kemudian pilih
menu Events, Action, actionPerformed. Anda akan dibawa ke jendela Source, dan
akan menemukan kode program seperti berikut.

1 private void btnHitungActionPerformed(java.awt.event.ActionEvent evt) {


2 // TODO add your handling code here:
3 }

Ubah kode diatas menjadi


1 private void btnHitungActionPerformed(java.awt.event.ActionEvent evt) {
2 // TODO add your handling code here:
3 a = Integer.parseInt(txtA.getText());
4 b = Integer.parseInt(txtB.getText());
5 int hasil = a + b;
6 lblHasil.setText(str + hasil);
7 }
vii. Compile dan jalankan program. Tekan tombol SHIFT + F6, atau klik kanan fle
Penjumlahan.java kemudian pilih menu Run File.
Catatan :
• Method Integer.parseInt digunakan untuk merubah String menjadi Integer.
• Method btnHitungActionPerformed akan dipanggil setiap kali kita memencet
tombol btnHitung.
Sekarang anda bisa melihat bahwa bekerja dengan JLabel, JTextField dan JButton sangat
sederhana. Untuk latihan, silahkan ubah yang digunakan dalam program di atas, misalnya
perkalian dua bilangan atau pengurangan dua bilangan.

Praktikum 2.2 – JCheckBox dan JRadioButton


JCheckBox dan JRadioButton hanya bisa mempunyai dua buah kemungkinan nilai, benar
atau salah. Kedua komponen ini digunakan untuk merepresentasikan data yang berupa
pilihan. JCheckBox digunakan jika pilihanya berupa multiple selection, sedangkan
JRadioButton digunakan jika pilihanya berupa single selection. JRadioButton digunakan
misalnya untuk merepresentasikan pilihan jenis kelamin. JCheckBox digunakan misalnya
untuk merepresentasikan pilihan hobby.
ButtonGroup diperlukan untuk mengumpulkan JRadioButton yang mempunyai grup pilihan
yang sama. Misalnya grup pilihan jenis kelamin digunakan untuk mengumpulkan
JRadioButton yang merepresentasikan pilihan laki-laki dan JRadioButton yang
merepresentasikan pilihan perempuan dalam satu group. Jika JRadioButton tidak
diletakkan dalam satu group, maka pilihan laki-laki dan pilihan perempuan bisa dipilih
bersamaan.
Status dari JRadioButton dan JCheckBox dapat diketahui dengan melihat nilai kembalian
dari method isSelected, jika dipilih maka nilai kembalian method isSelected adalah benar,
dan false jika sebaliknya.

Gambar 12. Contoh aplikasi menggunakan JCheckBox dan JRadioButton

Untuk membuat aplikasi ini menggunakan Matisse, lakukan langkah-langkah berikut ini:
i. Buat class baru bertipe JFrame Form, kemudian beri nama Pilihan.java
ii. Buat tampilan di atas menggunakan Matisse. komponen yang harus dibuat adalah :
✔ Dua object JRadioButton : radioBerwarna dan radioTransparan.
✔ Satu object ButtonGroup : groupTipeWarna.
✔ Empat object JCheckBox : chkHijau, chkBiru, chkMerah, chkKuning.
✔ Satu object JTextArea : txtWarna.
✔ Satu object JLabel : lblTipeWarna
Untuk melihat semua komponen yang ada dalam Jendela Design, gunakan Jendela
Navigator di sisi kiri bawah.
iii. Masukkan object radioBerwarna dan radioTransparan ke dalam object
groupTipeWarna. Caranya dengan :
✔ Memilih komponen radioBerwarna di Jendela Design
✔ Klik tab code di Jendela Properties
✔ Pilih properti : Post-Creation Code
✔ Masukkan kode berikut ini kedalam dialog yang muncul :
groupTipeWarna.add(radioBerwarna);
Lakukan langkah yang sama terhadap object radioTransparan.
iv. Menangani event ketika JRadioButton diklik. Caranya dengan :
✔ Memilih komponen radioBerwarna di Jendela Design
✔ Klik kanan komponen radioBerwarna, kemudian pilih menu:
Event > Action > actionPerformed
✔ Anda akan dibawa ke dalam Jendela Code, dan menemukan kode berikut ini

1 private void radioBerwarnaActionPerformed(java.awt.event.ActionEvent evt) {


2 // TODO add your handling code here:
3 }
Ubah kode di atas menjadi:

1 private void radioBerwarnaActionPerformed(java.awt.event.ActionEvent evt) {


2 // TODO add your handling code here:
3 if(radioBerwarna.isSelected()){
4 lblTipeWarna.setText("Tipe warna : " + radioBerwarna.getText());
5 }
6 }
Lakukan langkah yang sama terhadap radioTransparan.
v. Buat sebuah private method untuk menangani event pemilihan terhadap
JCheckBox. Method tampilkanWarna ini nantinya akan dipanggil setiap kali salah
satu dari JCheckBox dipilih. yang dilakukan oleh metod tampilkanWarna adalah
mengecek status setiap JCheckBox, apakah sedang dipilih atau tidak. Jika sedang
dipilih maka text dari JCheckBox tersebut akan ditampilkan dalam txtWarna.
Class StringBufer digunakan untuk menampung nilai text dari JCheckBox yang
statusnya terpilih.

1 private void tampilkanWarna(){


2 StringBuffer warna = new StringBuffer();
3 if(chkBiru.isSelected()){
4 warna.append(chkBiru.getText() + " ");
5 }
6 if(chkHijau.isSelected()){
7 warna.append(chkHijau.getText() + " ");
8 }
9 if(chkKuning.isSelected()){
10 warna.append(chkKuning.getText() + " ");
11 }
12 if(chkMerah.isSelected()){
13 warna.append(chkMerah.getText() + " ");
14 }
15 txtWarna.setText(warna.toString());
16 }

vi. Menangani event pemilihan JCheckBox. Caranya sebagai berikut :


✔ Pilih komponen chkHijau di Jendela Design.
✔ Klik kanan komponen chkHijau untuk memunculkan context (popup) menu.
✔ Pilih menu :
Event > Action > actionPerformed
✔ Anda akan dibawa ke Jendela Code, kemudian dalam method
chkHijauActionPerformed tersebut panggil method tampilkanWarna.
seperti di bawah ini :

1 private void chkHijauActionPerformed(java.awt.event.ActionEvent evt) {


2 // TODO add your handling code here:
3 tampilkanWarna();
4 }
Lakukan hal ini untuk semua JCheckBox.

vii. Compile dan jalankan program dengan menekan tombol SHIFT + F6.
Cara lain dalam menampilkan pilihan adalah dengan menggunakan JList dan JcomboBox.
Kedua komponen ini mempunyai fileksibilitas yang lebih tinggi dan lebih mudah digunakan
jika object yang dimasukkan dalam pilihan lebih kompleks. JList dan JComboBox bisa
mempunyai ComponentEditor agar pilihan yang ditampilkan tidak hanya berupa text, bisa
berupa warna atau icon. Bagian berikutnya akan membahas bagaimana bekerja
menggunakan JList dan JComboBox.

Praktikum 2.3 – JList dan JComboBox


JComboBox memerlukan tempat yang minimalis dibandingkan dengan JRadioButton,
selain itu JComboBox mempunyai bentuk ComboBox yang dapat diedit, sehingga
memungkinkan user untuk memilih pilihan yang tidak ada dalam item JcomboBox.
JList memungkinkan multiple selection dengan menekan tombol : SHIFT + Left Click atau
CTRL + Left Click. Kemampuan ini membantu user jika harus melakukan multiple selection.
JComboBox dan JList sangat fileksibel, kita dapat menambah dan menghapus item di
dalamnya dengan sangat mudah. Sehingga cocok digunakan untuk merepresentasikan
pilihan yang item pilihannya bersifat dinamis.
Bagian pertama program ini terdapat sebuah JComboBox dan JLabel, setiap kali item di
dalam JComboBox dipilih, JLabel di sebelahnya akan menampilkan item yang dipilih
tersebut.
Bagian kedua program ini terdapat sebuah JList dan JTextArea. Setiap kali item-item di
dalam JList dipilih, JTextArea akan menampilkan item-item yang dipilih tersebut
dipisahkan dengan koma (,).
Aplikasi di bawah ini adalah contoh penggunaan JComboBox dan Jlist.
Gambar 13. Contoh program menggunakan JComboBox dan JList

Ikuti langkah-langkah berikut ini untuk membuat program di atas:


i. Buatlah class JFrame Form baru dan beri nama ListAndCombo.java.
ii. Buat tampilan program di atas menggunakan Matisse, kemudian tambahkan
komponen-komponen:
✔ Empat buah JLabel: lblPekerjaan, lblPilihanPekerjaan, lblHobby,
lblPilihanHobby.
✔ Satu buah JComboBox : cmbPekerjaan
✔ Satu buah JList : lstHobby
✔ Satu buah JTextArea : txtPilihanHobby
iii. Merubah isi JComboBox. Untuk merubah isi dari JComboBox dan JList kita akan
menggunakan Jendela Properties, Jendela ini letaknya di sebelah kanan bawah, di
bawah Jendela Pallete dan akan muncul hanya jika jendela Design yang dipilih.
Gambar 14. Jendela Properties

Pilih komponen JComboBox di Jendela Design, Jendela Properties akan


menampilkan properties dari JComboBox. Pada bagian model di dalam Jendela
Properties masukkan item Pelajar, Mahasiswa, Programmer, Technical Writer dan
Tester. Setiap item dipisahkan dengan koma (,).
iv. Merubah isi JList. Pilih JList di Jendela Design maka Jendela Properties untuk JList
akan muncul. Di bagian model isikan item : Membaca, Olahraga, Trekking, Coding,
Menonton Film, Bersepeda dan Mengajar. Setiap item dipisahkan dengan koma (,).
v. Menangani pemilihan JComboBox. Klik kanan JComboBox di Jendela Design,
kemudian pilih menu :
Events > Action > actionPerformed
Jendela Code akan terbuka, tambahkan code seperti di bawah ini :

1 private void cmbPekerjaanActionPerformed(java.awt.event.ActionEvent evt) {


2 lblPilihanPekerjaan.setText("Pekerjaan anda : " +
cmbPekerjaan.getSelectedItem());
3 }
method getSelectedItem dari JComboBox digunakan untuk memperoleh item yang
sedang di pilih dalam JComboBox.
vi. Menangani event pemilihan dari JList. Event yang digunakan untuk menangani
pemilihan item dari JList berbeda dengan JComboBox. JList akan mengaktifkan
ListSelection event ketika user memilih item dalam JList. Untuk menangani event
ini, lakukan langkah-langkah berikut :
✔ Klik kanan pada JList di dalam Jendela Design, kemudian pilih menu :
Events > ListSelection > valueChanged
✔ Dalam jendela kode yang ketik kode seperti berikut ini (baris 2-11):
1 private void lstHobbyValueChanged(javax.swing.event.ListSelectionEvent evt) {
2 List<String> selectedItems = lstHobby.getSelectedValuesList();
3 if (selectedItems == null || selectedItems.size == 0){
4 txtPilihanHobby.setText("");
5 } else{
6 StringBuffer strValues = new StringBuffer();
7 for(Object item : selectedItems){
8 strValues.append(item.toString() + ", ");
9 }
10 txtPilihanHobby.setText(strValues.substring(0, strValues.length() - 2));
11 }
12 }

Catatan :
• Method getSelectedValues dari JList mengembalikan item-item yang
terpilih.
vii. Compile dan jalankan program dengan menekan tombol SHIFT + F6.
MODUL 3. JAVA SWING – SWING DIALOG DAN FILE CHOOSER

Kajian : Pengenalan Java Swing GUI Builder


Topik : • Komponen Lanjutan Java Swing
• Penggunaan pre-defined dialog dan file chooser
Referensi :
Kompetensi Utama : • Mahasiswa memahami konsep pemrograman swing
• Mahasiswa mampu membuat sebuah aplikasi dengan
menggunakan komponen pre-defined dialog dan file
chooser.
• Mahasiswa mampu memahami konsep penggunaan
komponen swing JoptionPane dan JFileChooser.

Materi Dasar
Dialog memerankan peran yang penting dalam aplikasi berbasis desktop. Interaksi antara
user dengan aplikasi terkadang tidak berjalan dengan baik karena user memberikan aksi
yang tidak valid kepada aplikasi. Ketika hal tersebut terjadi, aplikasi harus memberitahukan
kepada user apa yang telah terjadi dan bagaimana seharusnya user memperbaikinya.
Model interaksi seperti ini tepat dilaksanakan menggunakan dialog.
Skenario lain adalah ketika aplikasi memerlukan input dari user agar aplikasi bisa terus
melaksanakan tugasnya, misalnya meminta konfrmasi apakah user yakin akan
melaksanakan sebuah aksi penting terhadap aplikasi seperti delete, update atau add data.
Dialog juga memberikan pembatasan kepada user, sebelum dialog selesai diproses, user
tidak akan bisa berinteraksi dengan bagian aplikasi lainya. Dialog mencegah hal ini terjadi
dengan memastikan bahwa jendela yang bisa diaktifkan hanyalah jendela dialog,
sedangkan jendela aplikasi yang lain tidak dapat diaktifkan selama jendela dialog masih
aktif.
Aplikasi sangat sering menggunakan dialog untuk berinteraksi dengan user, tetapi jenis
interaksinya selalu seragam dan berulang-ulang. Swing menyediakan dialog yang didesign
untuk keperluan yang sering muncul dalam aplikasi, seperti JOptionPane dan
JFileChooser. Swing juga menyediakan class JDialog jika kita ingin membuat dialog custom
sesuai keinginan kita.
Praktikum 3.1 – Pre-defned Dialog Dengan JOptionPane
JOptionPane menyediakan beberapa dialog yang siap pakai dan sering digunakan dalam
aplikasi. JOptionPane sangat memudahkan kita dalam meminta user suatu input tertentu
atau memberitahu user apa yang terjadi dalam aplikasi.
JOptionPane mempunyai banyak static method untuk menampilkan popup dialog dengan
mudah. Terdapat empat method utama yang dapat kita gunakan sebagai landasan
membuat dialog.
Keempat method tersebut secara rinci digambarkan dalam tabel berikut ini:

Method Deskripsi
showConfrmDialog Meminta konfrmasi daru user, seperti yes/no/cancel
showInputDialog Meminta input dari user, baik berupa input text menggunakan
JtextField maupun pilihan menggunakan JComboBox
showMessageDialog Memberitahukan user tentang apa yang baru saja terjadi
showOptionDialog Gabungan dari ketiga jenis dialog di atas

Parameter dari keempat method tersebut mengikuti pola yang konsisten. Terurut dari kiri
ke kanan, berikut ini parameter-parameter yang bisa diterima oleh method-method dalam
class JoptionPane:
a) parentComponent :Mendefsikan komponen yang akan menjadi parent dari dialog
box ini. Frame dari parent component tersebut akan menjadi frame dari dialog dan
dialog akan ditampilkan di tengah-tengah parent component. Jika nilai dari
parentComponent diset null, maka dialog akan menggunakan frame default dan
dialog akan diletakkan ditengah-tengah layar monitor (tergantung L&F).
b) message : Pesan yang deskriptif menerangkan perihal dialog yang muncul. Pada
umumnya message berupa pesan String yang akan diletakkan dalam dialog, namun
jenis object lain juga diijinkan digunakan sebagai message. Object-object yang
diijinkan akan diperlakukan berbeda, object-object tersebut antara lain
i. Object[] : Setiap object akan ditampilkan dalam dialog berurut dari atas ke
bawah. Aturan ini berlaku rekursif untuk semua object didalam array.
ii. Component : Jika object yang dimasukkan sebagai message bertipe
Component, maka Component tersebut akan ditampilkan ditengah-tengah
dialog.
iii. Icon : Icon akan dimasukkan ke dalam sebuah JLabel kemudian ditampilkan di
sebelah kiri dari dialog.
iv. others : Object lainya akan ditampilkan dalam dialog dengan mengambil nilai
kembalian dari method toString dari setiap object.
c) messageType :Mendefsikan jenis dari pesan. Pada umumnya memberikan custom
icon untuk setiap jenis pesan. Setiap L&F manager akan memperlakukan setiap jenis
pesan dengan berbeda, namun perbedaanya tidak akan terlalu mencolok. Pilihan
yang mungkin dan icon yang mewakilinya adalah:
i. ERROR_MESSAGE
ii. INFORMATION_MESSAGE
iii. WARNING_MESSAGE
iv. PLAIN_MESSAGE (tanpa icon)
d) optionType : Mendefsikan tombol-tombol yang akan ditampilkan di bagian bawah
dari dialog
i. DEFAULT_OPTION
ii. YES_NO_OPTION
iii. YES_NO_CANCEL_OPTION
iv. OK_CANCEL_OPTION
Namun kita tidak dibatasi untuk hanya menggunakan empat jenis set tombol di
atas, kita dapat mendefsikan tombol-tombol yang akan muncul sesuai kebutuhan.
e) Options : Deskripsi yang lebih detail dari set tombol yang digunakan dialog. Nilai
yang lazim adalah sebuah array String berisi text yang akan ditampilkan di setiap
tombol. Namun Object lain juga dapat diterima, antara lain:
i. Component
Component akan diletakkan dalam baris tombol secara langsung.
ii. Icon
Sebuah JButton akan dibuat dan didekorasi dengan icon ini.
iii. other
Object dengan tipe selainnya akan dirubah ke dalam bentuk String dengan
mengambil nilai kembalian dari method toString dari object tersebut.
f) Icon : Icon yang digunakan untuk mendekorasi dialog. Jika icon ini didefnisikan
maka akan menimpa icon default yang didefnisikan oleh messageType.
g) Title : Judul dari dialog yang diletakkan di bagian paling atas dari dialog.
h) InitialValue : Nilai default dari pilihan yang mungkin ada dalam dialog.
Aplikasi berikut ini adalah contoh penggunaan JOptionPane untuk menampilkan sebuah
dialog.
Gambar 15. Contoh program menggunakan JfleChooser

Adapun tahapan dalam membuat program tersebut adalah sebagai berikut:


i. Buat class JFrame Form baru, beri nama MessageDialog.java
ii. Masukkan dua buah JTextField : txtA dan txtB, satu buah JButton : btnCheck, dan
sebuah JLabel : lblLogika. Sesuaikan penataan komponen sesuai dengan gambar
berikut.

Gambar 16. Contoh desain aplikasi

iii. Meng-handle event penekanan tombol btnCheck. Ketika tombol btnCheck ditekan,
MessageDialog akan menampilkan dialog yang akan menampilkan kondisi
perbandingan angka yang diinputkan oleh txtA dan txtB. Klik kanan di atas
komponen btnCheck kemudian pilih menu :
Events > Action > actionPerformed.
Anda akan dibawa ke jendela Source, dan akan menemukan kode program seperti
berikut.

1 private void btnCheckActionPerformed(java.awt.event.ActionEvent evt) {


2 // TODO add your handling code here:
3 }
Ubah kode diatas menjadi

1 private void btnCheckActionPerformed(java.awt.event.ActionEvent evt) {


2 // TODO add your handling code here:
3 if (Integer.parseInt(txtA.getText()) > Integer.parseInt(txtB.getText())) {
4 JOptionPane.showMessageDialog(this, "Kondisi Benar, "
+ txtA.getText() + " lebih besar dari " + txtB.getText());
5 } else {
6 JOptionPane.showMessageDialog(this, "Kondisi Salah, "
+ txtA.getText() + " tidak lebih besar dari " + txtB.getText(),
JoptionPane.MESSAGE_PROPERTY,
JOptionPane.WARNING_MESSAGE);
7 }
8 }
Perintah Integer.parseInt digunakan untuk mengkonversi tipe data dari String
(txtA.getText()) menjadi integer.
iv. Compile dan jalankan aplikasinya dengan menekan tombol SHIFT + F6.

Praktikum 3.2 – File Chooser


JFileChooser digunakan untuk bernavigasi dalam fle system, kemudian memilih satu atau
lebih fle atau folder dari list fle dan folder.
JFileChooser pada dasarnya adalah pengembangan dari dialog yang dapat digunakan
untuk memilih fle. JFileChooser dapat digunakan sebagai dialog untuk menyimpan fle
atau untuk membuka fle.
JFileChooser hanya memberikan fasilitas untuk memilih fle atau folder, sedangkan
mekanisme untuk menyimpan atau membuka fle dilakukan sendiri menggunakan library
I/O.
Aplikasi berikut ini adalah contoh penggunaan JFileChooser untuk membuka dan
menyimpan fle.

Gambar 17. Contoh program menggunakan JfleChooser

Tampilan JFileChooser ketika tombol open ditekan adalah seperti di bawah ini :
Gambar 18. Tampilan JFileChooser

Untuk membuat aplikasi di atas lakukan langkah-langkah berikut ini :


i. Buat class JFrame Form baru, beri nama Chooser.java
ii. Masukkan dua buah JTextField : txtOpen dan txtSave, dua buah Jbutton : btnOpen
dan btn save, sebuah JLabel : lblStatus. Sesuaikan penataan komponen sesuai
dengan gambar di atas.
iii. Tambahkan sebuah object JFileChooser sebagai feld dari class Chooser, beri nama
chooser.

1 JFileChooser chooser = new JfileChooser();


2
3 public class Chooser{
4 //kode lain di sini
5 }
iv. FileNameExtentionFilter digunakan sebagai fle fter dalam JFileChooser. Metode
flteringnya adalah mencocokkan ekstensi fle dalam fle system dengan ekstensi
yang ada dalam FileNameExtentionFilter. Contoh kode di bawah ini akan
menyebabkan JfleChooser mempunyai pilihan “JPEG File”, dan jika pilihan tersebut
dipilih, maka fle dengan ekstensi “jpg”, “jpeg”,”JPG” atau“JPEG” saja yang akan
ditampilkan oleh JfleChooser.

1 JFileChooser chooser = new JfileChooser();


2
3 public class Chooser{
4 FileNameExtensionFilter JPEGFilter = new
FileNameExtensionFilter("JPEG File","jpg","jpeg",”JPG”,”JPEG”);
5 chooser.addChoosableFileFilter(JPEGFilter);
6 }
v. Set direktori yang akan dituju oleh JFileChooser. Untuk mengetahui dimana
direktori aktif aplikasi, kita bisa menggunakan system property “user.dir”. Kode
berikut ini akan menyebabkan JFileChooser dibuka pada direktori aktif aplikasi :
1 ....
2 String dir = System.getProperty("user.dir");
3 chooser.setCurrentDirectory(new File(dir));
4 ....
vi. Meng-handle event penekanan tombol btnSave. Ketika tombol btnSave ditekan,
chooser akan menampilkan dialog save fle, kemudian mengambil nama fle yang
dipilih dan menampilkannya dalam txtSave, serta menampilkanya dalam lblStatus.
Berikut ini kodenya :

1 private void btnSaveActionPerformed(ActionEvent evt) {


2 int ret = chooser.showSaveDialog(this);
3 if(ret == JFileChooser.APPROVE_OPTION){
4 File f = chooser.getSelectedFile();
5 lblStatus.setText("Status : saving file" + f.getAbsolutePath());
6 txtSave.setText(f.getAbsolutePath());
7 }
8 }
vii. Meng-handle penekanan tombol btnOpen. Kode untuk menangani penekanan
tombol btnOpen mirip dengan kode untuk menangani penenakan tombol btnSave,
perbedaanya adalah btnOpen akan menampilkan dialog open fle, berikit ini
kodenya :

1 private void btnBrowseActionPerformed(ActionEvent evt){


2 int ret = chooser.showOpenDialog(this);
3
4
if(ret == JFileChooser.APPROVE_OPTION){
5 File f = chooser.getSelectedFile();
6 lblStatus.setText("Status : opening file" + f.getAbsolutePath());
7 txtOpen.setText(f.getAbsolutePath());
8 }
}
viii. Compile dan jalankan aplikasinya dengan menekan tombol SHIFT + F6.

Gambar 19. FileChooser ketika dijalankan


Bekerja dengan JOptionPane dan dengan JFileChooser sangat sederhana. Keduanya
menggunakan modal dialog untuk mengambil input dari user. Modal dialog akan
mencegah user mengakses bagian aplikasi lain sebelum dialog ditutup, atau dalam hal ini
memutuskan pilihan apa yang diambil oleh user.
MODUL 4. JAVA SWING – SWING MENU

Kajian : Pengenalan Java Swing GUI Builder


Topik : • Komponen Lanjutan Java Swing
• Penggunaan Menu, Popup Menu dan Toolbar
Referensi :
Kompetensi Utama : • Mahasiswa memahami konsep pemrograman swing
• Mahasiswa mampu membuat sebuah aplikasi dengan
menggunakan komponen Menu, Popup Menu dan Toolbar.
• Mahasiswa mampu memahami konsep penggunaan
komponen swing Menu, Popup Menu dan Toolbar.

Materi Dasar
Menu, Popup menu dan Toolbar digunakan untuk melakukan navigasi dalam aplikasi.
Dengan ketiga komponen itu navigasi dalam aplikasi menjadi lebih fileksibel dan mudah
digunakan oleh user. Menu dan Toolbar pada umumnya diletakkan di bagian atas dari
aplikasi agar mudah ditemukan oleh user. Sedangkan Popup Menu bisa muncul di mana
saja sesuai dengan konteks aplikasi.
JMenuBar adalah class yang digunakan untuk menampung JMenu. JMenu dapat
menampung satu atau lebih JMenuItem. JMenuItem merupakan bagian terluar dari
struktur menu yang tidak bisa mempunyai child. JSeparatordigunakan untuk memisahkan
antara satu menu item dan menu item yang lain. Jika didalam menu terdapat sub menu,
gunakan JMenu untuk menampung sub menu tersebut. Selain JMenuItem, JMenu juga
dapat menerima class JCheckBoxMenuItem dan JRadioButtonMenuItem.
JPopupMenu mempunyai banyak kesamaan dibandingkan dengan JMenuBar. Perbedaan
utamanya adalah JMenuBar hanya bisa berada di atas sebuah jendela JFrame. Sedangkan
JPopupMenu bisa muncul di mana saja sesuai dengan konteks dari aplikasi.
Perbedaan lainnya terletak di dalam penggunaan umum keduanya. JMenuBar berisikan
menu/instruksi yang bersifat umum dan berlaku untuk semua keadaan dalam aplikasi.
Sedangkan JPopupMenu akan mempunyai menu/instruksi yang berbeda-beda berdasarkan
dari konteks aplikasi. Oleh karena itu JPopupMenu terkadang disebut juga sebagai konteks
menu.
Toolbar memberikan cara yang lebih praktis dibandingkan menu, bahkan bisa dikatakan
bahwa toolbar adalah cara cepat untuk mengakses menu. Oleh karena itu, setiap item
dalam toolbarbiasanya juga tersedia dalam menu. Pada umumnya toolbar diwakili hanya
dengan gambar/icon yang melambangkan perintah dari toolbarnya. Di internet banyak
tersedia toolbar icon gratis yang dapat kita gunakan.
Berbeda dengan JMenuBar dan JPopupMenu yang hanya bisa menerima menu item,
JtoolBar dapat menampung JButton atau control lainya. Seperti contohnya : JCheckBox,
JradioButton, JtoggleButton dan lainya. Normalnya, JToolBar akan diisi dengan JButton
yang dihilangkan text-nya dan diganti dengan icon. Kita juga perlu merubah dekorasi
JButton agar tampilannya terlihat cantik dan menarik.

Gambar 20. Contoh program dengan Menu, Popup Menu dan Toolbar

Untuk membuat program seperti di atas, ada beberapa tahap yang perlu dilakukan. Tahap
pertama adalah membuat Menu, yang kedua adalah membuat Popup Menu dan yang
ketiga adalah membuat Toolbar.

Praktikum 4.1 – Menu


Bekerja dengan Menu dalam Java melibatkan enam komponen Swing, antara lain :
1. JMenuBar : Class yang menampung semua menu, hanya bisa menampung JMenu
sebagai child.
2. JMenu : Class yang mempunyai child menu item. Biasanya JMenu ini yang jadi child
langsung dengan JmenuBar
3. JMenuItem : Ujung dari menu, di sinilah object Action diletakkan, sehingga ketika
kita memilih JMenuItem ada action tertentu yang dijalankan aplikasi.
4. JCheckBoxMenuItem : Ujung dari menu, namun bentuknya lebih mirip JCheckBox.
5. JRadioButtonMenuItem : Ujung dari menu, namun bentuknya lebih mirip
JRadioButton.
6. JSeparator : pemisah antar JMenuItem atau antar JMenu
Setiap komponen menu mempunyai fungsi dan kegunaan masing-masing. Jika kita
perhatikan, menu dalam aplikasi umumnya mempunyai shortcut untuk mengakses menu
tanpa menggunakan bantuan mouse. Misalnya menu File biasanya dapat diakses
menggunakan tombol ALT + F, menu Format dapat diakses dengan ALT + O. Fasilitas
shortcut menu ini disebut sebagai Keyboard Mnemonic. File mempunyai mnemonic F, Format
mempunyai mnemonic O, dan seterusnya. Pada umumnya tampilan mnemonic dari sebuah
menu diwakili dengan huruf yang bergaris bawah.
Matisse mempunyai fasilitas yang sangat OK untuk bekerja dengan Menu, fasilitas drag-
and-drop nya membantu banyak pekerjaan membangun aplikasi barbasis GUI secara
signifkan.
Dalam pada praktikum ini, akan dibuat struktur menu sebagai berikut:

Gambar 21. Struktur menu dari aplikasi

Ikuti langkah-langkah berikut ini untuk membuat struktur menu seperti di atas:
i. Buat sebuah class JFrame dan beri nama ToolbarMenu.java
ii. Menambahkan JMenuBar ke dalam JFrame. Pilih komponen Menu Bar dari Jendela
Pallete kemudian klik JFrame di Jendela Design. Sebuah class JMenuBar akan
ditambahkan di dalam JFrame. Ganti namanya menjadi menuBar.
iii. Menambahkan JMenu ke dalam JMenuBar. Klik kanan JMenuBar yang baru saja kita
buat di Jendela Inspector, kemudian pilih menu :
Add > JMenu
Ganti nama JMenu tersebut menjadi menuFile. Kemudian alihkan perhatian anda ke
Jendela Properties.
Gambar 22. Jendela Properties dari class JMenu

Isi properti text dengan string “File”. Kemudian set isi properti mnemonic dengan
string “f”, hal ini akan menyebabkan tampilanya menuFile menjadi File dan user
dapat menekan tombol ALT + F untuk mengaktifkan menu menuFile.
iv. Menambahkan JMenuItem. Langkah berikutnya adalah menambahkan JMenuItem
ke dalam JMenu menuFile yang telah dibuat di langkah sebelumnya. caranya, klik
kanan di JMenu menuFile di Jendela Inspector, kemudian pilih menu :
Add > JMenuItem
Tambahkan berturut-turut menuNew, menuOpen dan menuSave. Pilih JMenuItem
dari Jendela Inspector, kemudian untuk masing-masing JMenuItem set text dan
mnemonic yang sesuai dari Jendela Properties.
v. Menambahkan JSeparator. Dalam struktur menu yang bagus, menu yang
mempunyai fungsi serupa diletakkan dalam urutan berderdekatan dan dipisahkan
dengan separator (pemisah). Langkah menambahkan Jseparator tidak berbeda
dengan langkah menambahkan JMenuItem, klik kanan di JMenu menuFile
kemudian pilih menu:
Add > JSeparator
vi. Menambahkan JMenu. Berikutnya kita akan menambahkan JMenu baru ke dalam
Jmenu menuFile. JMenu yang baru ini akan bertindak sebagai sub menu. Caranya
juga sama : klik kanan di JMenu menuFile kemudian pilih menu :
Add > JMenu
Beri nama menuSetting, set text dan mnemonic yang sesuai pada Jendela
Properties.
vii. Menambahkan JCheckBoxMenuItem. Perilaku JCheckBoxMenuItem tidak berbeda
jauh dengan JCheckBox biasa, bedanya hanyalah JCheckBoxMenuItem berada
dalam struktur menu. Cara menambahkan JCheckBoxMenuItem sama dengan
komponen lain : klik kanan JMenu menuSetting kemudian pilih menu :
Add > JCheckBoxMenuItem
Beri nama chkLineNumber, set text dan mnemonic yang sesuai pada Jendela
Properties.
JCheckBoxMenuItem sedikit sepesial dibandingkan dengan JMenuItem, karena
JCheckBoxMenuItem memiliki properties selected. Properties selected ini
digunakan untuk menentukan apakah JCheckBoxMenuItem dalam keadaan terpilih
atau tidak.
viii. Menambahkan JRadioButtonMenuItem. Dalam contoh ini kita akan mempunyai dua
buah JRadioButtonMenuItem, radioBinary dan radioText. Keduanya dibuat dengan
langkah yang sama dengan komponen lain, klik kanan di JMenu menuSetting,
kemudian pilih menu :
Add > JRadioButtonMenuItem
Set text dan mnemonic yang sesuai dari Jendela Properties.
ix. Menambahkan ButtonGroup. Seperti halnya JRadioButton, JRadioButtonMenuItem
juga memerlukan ButtonGroup agar hanya satu buah JRadioButtonMenuItem yang
bisa dipilih. Cara menambahkan ButtonGroup sangat mudah, klik item ButtonGroup
dari Jendela Pallete kemudian klik Jendela Design, maka otomatis ButtonGroup
akan ditambahkan. Ganti namanya menjadi groupOpenMethod.
Dalam Jendela Navigator, ButtonGroup yang baru dibuat tadi akan berada dalam
kategori Other Components, seperti terlihat dalam gambar di bawah ini :

Gambar 23. ButtonGroup berada dalam kategori Other Components

x. Menambahkan JRadioButtonMenuItem ke dalam ButtonGroup. Pilih masing-masing


JRadioButtonMenuItem dari Jendela Inspector, kemudian perahatikan Jendela
Properties dari JRadioButtonMenuItem tersebut, pada bagian groupButton pilih
item groupOpenMethod, seperti terlihat dalam gambar di bawah ini :
Gambar 24. Properties dari JRadioButtonMenuItem

xi. Compile dan jalankan class ToolbarMenu.java. Klik kanan class ToolbarMenu dari
Jendela Design kemudaian pilih menu Run File atau tekan tombol SHIFT + F6.

Praktikum 4.2 – Popup Menu


Popup menu pada dasarnya tidak jauh berbeda dibandingkan dengan menu biasa, hanya
saja popup menu dapat muncul di mana saja, tidak hanya di bagian atas JFrame seperti
halnya JMenuBar. Selain itu kita harus menentukan kapan popup muncul, pada umumnya
popup akan muncul ketika user melakukan klik kanan terhadap suatu komponen Swing.
Misalnya, ketika suatu table di klik kanan terdapat popup yang muncul, dan sebagainya.
Popup menu terutama digunakan sebagai “context sensitive menu”, dimana menu yang
ditampilkan oleh popup menu tergantung konteks dari aplikasi, semisal : komponen apa
yang dikenai aksi klik kanan, bagaimana keadaan data dalam komponen tersebut dan
sebagainya.
Aplikasi yang memerlukan interaksi yang sangat intens dengan user sebaiknya
menggunakan popup menu untuk memudahkan user mengakses action tertentu. Hal ini
jauh lebih praktis dibanding user harus mengakses menu dalam JMenuBar di bagian atas
JFrame. Popup menu dalam contoh program di atas akan muncul ketika user melakukan
klik kanan terhadap JFrame. menu yang ditampilkanya pun hanya ada tiga buah: cut, copy
dan paste.
Ikuti langkah-langkah beritkut ini untuk membuat Popup menu :
i. Buka class ToolbarMenu.java, yang telah dibuat dalam langkah sebelumnya dalam
Jendela Design.
ii. Klik Jendela Pallete dan pilih JPopupMenu, kemudian klik Jendela Design. Secara
otomatis JPopupMenu akan ditambahkan dalam class ToolbarMenu.java. Ganti
nama variabel JpopupMenu yang baru saja dibuat menjadi popUpMenu.
JPopupMenu tidak terlihat dalam Jendela Design, namun anda bisa mengkasesnya
melalui Jendela Navigator.
iii. Menambahkan JMenuItem. Seperti halnya JMenuBar, JPopupMenu dapat memiliki
child berupa JMenu, JMenuItem, JCheckBoxMenuItem, JRadioButtonMenuItem
dan Jseparator. Menambahkan JMenuItem ke dalam JPopupMenu sangat
sederhana, caranya : klik kanan pada JPopupMenu di Jendela Design, kemudian
pilih menu :
Add > JMenuitem
Ganti nama objectnya menjadi menuCut, beralihlah ke Jendela Properties
kemudian set text dan mnemonic yang sesuai.
Lakukan langkah ini untuk JMenuItem yang lain, menuCopy dan menuPaste.
iv. Memunculkan JPopupMenu. Ketika tombol kanan mouse di klik di atas JFrame,
JPopupMenu akan tampil. Agar behavior tersebut berjalan, kita perlu menangani
event mouseClick terhadap JFrame. Caranya :
✔ Klik kanan JFrame di Jendela Design, kemudian pilih menu :
Events > Mouse > mouseClicked
✔ Di dalam jendela source yang terbuka masukkan kode berikut ini :

1 private void formMouseClicked(java.awt.event.MouseEvent evt) {


2 // TODO add your handling code here:
3 if (evt.getButton() == MouseEvent.BUTTON3) {
4 popUpMenu.show((Component) evt.getSource(),
5 evt.getX(), evt.getY());
6 }
7 }
Kondisi if di atas digunakan apakah tombol yang diklik mouse adalah tombol
sebelah kanan, jika nilai kembalian method getButton sama dengan nilai
BUTTON3 maka benar tombol kanan yang ditekan.
Method show digunakan untuk memunculkan popup menu, parameter
pertama diisi dengan Component dimana nantinya popup menu akan
ditampilkan, sedangkan parameter kedua dan ketiga diisi dengan letak
koordinat popup menu akan ditampilkan.
v. Simpan fle ToolbarMenu.java, compile dan jalankan. Kemudian coba munculkan
popup menu dengan mengklik kanan JFrame.

Gambar 25. Popup menu pada frame


Praktikum 4.3 – Toolbar
Toolbar memberikan dimensi lain dalam mengakses menu dbandingkan menu ataupun
popup menu. Pada umumnya Toolbar merupakan cara singkat untuk mengakses menu.
Menu yang diwakili toolbar adalah menu yang bersifat umum dan tidak terikat pada
konteks tertentu.
Kegunaan lain dari toolbar adalah mempercantik tampilan aplikasi, karena toolbar biasanya
adalah tombol yang didekorasi dengan icon yang menarik. Selain itu toolbar juga
memberikan kesempatan kepada user untuk mengkustomisasi tampilan dari aplikasi.
Karena layout toolbar sangat fileksibel, user bisa memindah-mindahkan letak toolbar di
dalam aplikasi, di atas, di bawah atau di samping, atau bahkan mengambang (foating) di
atas jendela yang sedang aktif.
Dalam contoh program di atas kita akan membuat sebuah JToolBar dengan dua buah
JButton yang telah didekorasi dengan icon cantik. Icon yang digunakan banyak tersedia di
internet, format file yang dipilih adalah .png, karena format file ini paling bagus dalam
menangani transparasi komponen.
Sebelum mulai membuat JToolBar, kita perlu mempersiapkan terlebih dahulu icon yang
akan digunakan sebagai dekorasi JButton. Ikuti langkah-langkah berikut ini :
a) Buatlah sebuah Java package baru untuk menampung semua icon yang akan
digunakan. Caranya klik kanan di jendela Projects bagian nama project, pilih menu :
New > Java Package

Gambar 26. Membuat package baru

Beri nama images untuk Java package yang baru saja kita buka.
b) Memasukkan Icon ke dalam package. Untuk memasukkan image ke dalam package
kita perlu tahu dimana project disimpan, misalkan project disimpan dalam folder :
C:\javaswing
Buka file explorer, kemudian navigasi ke folder (untuk Windows OS)
C:\<username_PC>\My Document\NetbeansProjects\<project_name>\src\images
Copy semua icon yang diperlukan ke dalam folder di atas.
c) Build project. Langkah ini diperlukan untuk mengcompile semua fle .java menjadi
file .class. Selain itu proses ini juga akan mengkopi file selain file .java (termasuk file
icon) ke dalam folder build\classes. Jika proses ini tidak dilaksanakan, maka ketika
program dijalankan, fle icon tidak akan ditemukan dan program menjadi error .
Setelah proses persiapan selesai, lakukan langkah-langkah berikut untuk membuat Toolbar
:
i. Buka class ToolbarMenu.java yang sudah dibuat di langkah sebelumnya.
ii. Buat sebuah object JToolBar, caranya : klik item JToolBar dari Jendela Pallete,
kemudian klik JFrame di Jendela Design. Secara otomatis sebuah object JToolBar
akan dimasukkan ke dalam JFrame. Ganti namanya menjadi toolBar.
iii. Menambahkan JButton dalam JToolBar. Klik item JButton dalam Jendela Pallete
kemudian klik komponen JToolBar yang baru saja kita buat tadi. JButton baru akan
diletakkan di atas JToolBar, ganti nama JButton tersebut menjadi btnNew.
Letakkan lagi satu buah JButton di atas JToolBar dan beri nama btnMaximize.
iv. Mendekorasi Tampilan JButton. Agar tampilan JButton terlihat cantik, kita perlu
mengeset beberapa nilai dari properti JButton, seperti terlihat pada gambar di
bawah ini :

Gambar 27. Window Properties JButton

✔ Text, hapus nilai textnya.


✔ Border, pilih bordernya menjadi empty border dan set nilai bordernya
menjadi [5,5,5,5]. Tujuan pemberian empty border ini agar tombol
berukuran lebih besar dibandingkan dengan icon yang akan digunakan
nanti, dan setiap mouse melewati JButton, ada efek transisi yang cantik.
✔ Untuk mengedit border dari JButton, Matisse menyediakan Jendela Border
untuk memilih border yang kita inginkan untuk Jbutton. Border yang dipilih
bisa single border, atau composite border yang terdiri dari beberapa border.
✔ Opaque, uncheck nilai opaque. Bertujuan agar tombolnya berwarna
transparan, sehingga mempunyai warna background yang sama dengan
background JToolBar.
✔ Icon, ganti iconya dengan icon yang telah disiapkan. Untuk memasukkan
icon ke dalam JButton, tekan tombol di samping pilihan Icon di dalam
Jendela Properties, kemudian akan muncul Dialog Icon Editor seperti di
bawah ini :

Gambar 28. Jendela icon editor

✔ Pilih radio button Classpath, kemudian tekan tombol Select File dan pilih
salah satu icon yang telah disiapkan. Tekan OK. Lakukan langkah-langkah
yang sama terhadap JButton yang lain.
v. Compile dan jalankan class ToolbarMenu untuk melihat hasilnya.
MODUL 5. JAVA SWING – EVENT HANDLER

Kajian : Pengenalan Event Handler pada Java


Topik : • Java Swing GUI
• Implementasi event pada komponen Swing
Referensi :
Kompetensi Utama : • Mahasiswa memahami konsep event handling dan tipe-tipe
event pada java.
• Mahasiswa mampu membuat sebuah aplikasi dengan
menggunakan komponen swing dan bagaimana
mengimplementasikan sebuah event pada aplikasi.
• Mahasiswa mampu memahami konsep event dan tipe-tipe
event.

Materi Dasar
Perubahan keadaan objek dikenal sebagai event, seperti event yang menggambarkan
perubahan keadaan sumber. Event dihasilkan sebagai hasil interaksi pengguna dengan
komponen GUI. Misalnya, mengklik sebuah tombol, menggerakkan mouse, memasukkan
karakter melalui keyboard, memilih item dari daftar, dan menggulir halaman adalah
aktivitas yang menyebabkan terjadinya event.
Event Handling adalah mekanisme yang mengendalikan event dan memutuskan apa yang
harus terjadi jika sebuah event terjadi. Mekanisme ini memiliki kode yang dikenal sebagai
event handler, yang dijalankan saat sebuah event terjadi.
Java menggunakan Delegation Event Model untuk menangani event. Model ini
mendefnisikan mekanisme standar untuk menghasilkan dan menangani sebuuah event.
Delegation Event Model memiliki dua participant sebagai berikut.
 Source – Source adalah objek tempat event terjadi. Source bertanggung jawab
untuk menyediakan informasi event yang terjadi pada handler nya. Java
memberikan class sebagai objek source.
 Listener - Juga dikenal sebagai event handler. Listener bertanggung jawab untuk
menghasilkan tanggapan terhadap suatu event. Dari sudut pandang implementasi
Java, listener juga merupakan objek. Listener menunggu sampai menerima sebuah
event. Begitu event diterima, listener memproses event tersebut.
Manfaat dari pendekatan ini adalah bahwa logika GUI benar-benar terpisah dari logika
yang menghasilkan event. Elemen GUI dapat mendelegasikan pemrosesan event ke bagian
kode yang terpisah.
Dalam model ini, listener perlu didaftarkan pada objek source sehingga listener bisa
menerima notifkasi event. Ini adalah cara yang efsien untuk menangani event karena
pemberitahuan event dikirim hanya kepada listener yang ingin menerimanya.
Java menyediakan berbagai kelas Event, namun hanya yang lebih sering digunakan akan
dibahas. Salah satu contoh penggunaan event telah dipraktekkan pada praktikum-
praktikum sebelumnya, yaitu event ketika sebuah komponen (JButton, JComboBox, JList)
ditekan oleh user.

SWING Event Classes

Class Deskripsi
AWTEvent Dasar dari class event untuk semua event yang ada pada SWING.
Class ini dan sub-sub class nya menggantikan class original
java.awt.Event
ActionEvent ActionEvent akan dibangkitkan ketika sebuah button di klik atau item
dari sebuah list di klik dua kali.
InputEvent Class InputEvent adalah dasar dari semua class event untuk semua
event yang terdapat pada komponen input.
KeyEvent Ketika memasukkan sebuah karakater, KeyEvent akan di-generate
MouseEvent Event ini mengindikasikan sebuah aksi yang diberikan oleh mouse
pada suatu komponen.
WindowEvent Class ini merepresentasikan perubahan keadaan dari suatu window.
AdjustmentEvent Objek kelas ini mewakili peristiwa penyesuaian yang dikeluarkan
oleh objek Adjustable.
ComponentEvent Class ini merepresentasikan perubahan keadaan dari suatu window.
ContainerEvent Class ini merepresentasikan perubahan keadaan dari suatu window.
MouseMotionEvent Class ini merepresentasikan perubahan keadaan dari suatu window.
PaintEvent Class ini merepresentasikan perubahan keadaan dari suatu window.

Event listener merepresentasikan sebuah interface yang bertanggungjawab untuk meng-


handle suatu event. Java menyediakan berbagai macam class untuk event listener, setiap
method dari sebuah metode yang ada pada event listener memiliki sebuah argumentasi
objek yang mana merupakan sebuah sub class dari class EventObject. Contohnya, metode
untuk even listener pada mouse hanya menerima sebuah instance dari MouseEvent; di
mana class MouseEvent diturunkan dari class EventObject.

SWING Event Listener Interfaces

Class Deskripsi
ActionListener Listener ini biasa digunakan untuk menerima action event.
ComponentListener Listener ini biasa digunakan untuk menerima component event
ItemListener Listener ini biasa digunakan untuk menerima item event
KeyListener Listener ini biasa digunakan untuk menerima key event
MouseListener Listener ini biasa digunakan untuk menerima mouse event
WindowListener Listener ini biasa digunakan untuk menerima window event
AdjustmentListener Listener ini biasa digunakan untuk menerima adjustment event
ContainerListener Listener ini biasa digunakan untuk menerima container event
MouseMotionListener Listener ini biasa digunakan untuk menerima motion event
FocusListener Listener ini biasa digunakan untuk menerima focus event

Praktikum 5.1 – ActionListener


Sebuah kelas yang memproses ActionEvent harus mengimplementasikan interface ini.
Objek kelas itu harus terdaftar dengan komponen. Objek dapat didaftarkan menggunakan
metode addActionListener (). Saat aksi terjadi, metode actionPerformed objek itu
dipanggil.
Aplikasi berikut ini adalah contoh penggunaan ActionListener.

Gambar 29. Implementasi ActionListener

Untuk membuat aplikasi di atas lakukan langkah-langkah berikut ini :


i. Buat class JFrame Form baru, beri nama ActionListener.java
ii. Masukkan dua buah JLabel: lblHeader dan lblStatus dan satu buah JButton: btnOk.
Sesuaikan penataan komponen sesuai dengan gambar di atas.
iii. Menangani event pada JButton. Klik kanan JButton di Jendela Design, kemudian
pilih menu :
Events > Action > actionPerformed
Jendela Code akan terbuka, tambahkan code seperti di bawah ini :

1 private void btnOkActionPerformed(java.awt.event.ActionEvent evt) {


2 // TODO add your handling code here:
3 lblStatus.setText("Status: Ok Button Clicked.");
4 }
method setText dari JLabel digunakan untuk men-set value dari lblStatus.
iv. Compile dan jalankan class ActionListener untuk melihat hasilnya atau tekan
Shift+F6.

Praktikum 5.2 – ItemListener


Kelas yang memproses ItemEvent harus mengimplementasikan antarmuka ini. Objek kelas
tersebut harus terdaftar dengan komponen. Objek dapat didaftarkan menggunakan
metode addItemListener (). Saat acara aksi terjadi, object itemStateChanged method akan
dipanggil.

Gambar 30. Implementasi ItemListener

Untuk membuat aplikasi di atas lakukan langkah-langkah berikut ini :


i. Buat class JFrame Form baru, beri nama ItemListener.java
ii. Masukkan tiga buah JLabel: lblHeader, lblHobi, dan lblStatus dan tiga buah
JCheckBox: cbMemasak, cbOlahraga, dan cbMemasak. Sesuaikan penataan
komponen sesuai dengan gambar di atas.
iii. Menangani event pada JCheckBox. Klik kanan cbMembaca di Jendela Design,
kemudian pilih menu :
Events > Item > itemStateChanged
Jendela Code akan terbuka, tambahkan code seperti di bawah ini :

1 private void cbMembacaItemStateChanged(java.awt.event.ItemEvent evt) {


2 // TODO add your handling code here:
3 lblStatus.setText(((JCheckBox) evt.getItem()).getText() + " Checkbox: "
+ (evt.getStateChange() == 1 ? "checked" : "unchecked"));
4 }
method getStateChange dari ItemListener akan menangkap aksi event yang terjadi
pada cbMembaca.
Lakukan cara yang sama pada cbOlahraga dan cbMemasak.

iv. Compile dan jalankan class ActionListener untuk melihat hasilnya atau tekan
Shift+F6.
Praktikum 5.3 – MouseListener
Kelas yang memproses MouseEvent harus mengimplementasikan antarmuka ini. Objek
kelas itu harus terdaftar dengan komponen. Objek dapat didaftarkan menggunakan
metode addMouseListener ().

Method-method yang terdapat pada MouseListener


Method Deskripsi
dipanggil saat tombol mouse diklik (ditekan dan
void mouseClicked(MouseEvent e)
dilepas) pada komponen.
void mouseEntered(MouseEvent e) Dipanggil saat mouse memasuki komponen.
void mouseExited(MouseEvent e) Dipanggil saat mouse keluar komponen.
Dipanggil saat tombol mouse ditekan pada
void mousePressed(MouseEvent e)
komponen.
Dipanggil saat tombol mouse dilepaskan pada
void mouseReleased(MouseEvent e)
sebuah komponen.

Gambar 31. Implementasi MouseListener

Untuk membuat aplikasi di atas lakukan langkah-langkah berikut ini :


i. Buat class JFrame Form baru, beri nama MouseListener.java
ii. Masukkan dua buah JLabel: lblHeader, dan lblStatus dan satu buah JPanel:
panelTest; serta satu buah Jlabel yang akan diletakkan di dalam panelTest.
Sesuaikan penataan komponen sesuai dengan gambar di atas.
iii. Modifkasi tampilan panelTest dengan mengklik tab Properties
Gambar 32. JPanel Properties

Pada pilihan background, pilih dan sesuaikan warna latar. Berikutnya, pada pilihan
border pilih dan sesuaikan border untuk panel sesuai yang diinginkan.
iv. Menangani event MouseListener pada JPanel. Klik kanan panelTest di Jendela
Design, kemudian pilih menu :
Events > Mouse > mouseClicked
Jendela Code akan terbuka, tambahkan code seperti di bawah ini :

1 private void panelTestMouseClicked(java.awt.event.MouseEvent evt) {


2 // TODO add your handling code here:
3 lblStatus.setText("Status: Mouse Clicked: (" + evt.getX() + ", "
+ evt.getY() + ")");
4 }
method getX dan getY dari MouseEvent akan menangkap kordinat lokasi yang
ditunjuk oleh mouse.

v. Compile dan jalankan class MouseListener untuk melihat hasilnya atau tekan
Shift+F6.

Praktikum 5.4 – KeyListener


Kelas yang memproses KeyEvent harus mengimplementasikan antarmuka ini. Objek kelas
itu harus terdaftar dengan komponen. Objek dapat didaftarkan menggunakan metode
addKeyListener ().

Method-method yang terdapat pada MouseListener


Method Deskripsi
void keyPressed(KeyEvent e) dipanggil saat tombol pada keyboard ditekan
void keyReleased(KeyEvent e) dipanggil saat tombol pada keyboard dilepas
void keyTyped(KeyEvent e) dipanggil saat tombol pada keyboard diketik
Gambar 33. Implementasi KeyListener

Untuk membuat aplikasi di atas lakukan langkah-langkah berikut ini :


i. Buat class JFrame Form baru, beri nama KeyListener.java
ii. Masukkan dua buah JLabel: lblHeader dan lblStatus, satu buah JButton: btnOK
serta satu buah JtextField: txtTest. Sesuaikan penataan komponen sesuai dengan
gambar di atas.
iii. Menangani event KeyListener pada JTextField. Klik kanan txtTest di Jendela
Design, kemudian pilih menu :
Events > Key > KeyPressed
Jendela Code akan terbuka, tambahkan code seperti di bawah ini :

1 private void txtTestKeyPressed(java.awt.event.KeyEvent evt) {


2 // TODO add your handling code here:
3 if(evt.getKeyCode() == KeyEvent.VK_ENTER){
4 lblStatus.setText("Entered text: " + txtTest.getText());
5 }
6 }
method getKeyCode dari KeyEvent akan menangkap tombol keyboard yang
ditekan. Sedangkan KeyEvent.VK_ENTER merupakan value yang disimpan dari
KeyEvent untuk tombol Enter yang terdapat pada keyboard.

iv. Compile dan jalankan class KeyListener untuk melihat hasilnya atau tekan Shift+F6.
MODUL 6. JAVA SWING – LAYOUT

Kajian : Pengenalan Layout


Topik : • Java Swing/AWT GUI
• Implementasi layout dalam mendesain suatu desain tatap
muka
Referensi :
Kompetensi Utama : • Mahasiswa memahami konsep layout dalam mendesain
suatu GUI.
• Mahasiswa mampu membuat sebuah aplikasi dengan
menggunakan komponen swing dan bagaimana mengatur
suatu layout aplikasi.
• Mahasiswa mampu memahami layouting dan tipe-tipe
layout.

Materi Dasar
Layout mengacu pada penataan komponen dalam suatu container. Dengan cara lain, dapat
dikatakan bahwa layout menempatkan komponen pada posisi tertentu dalam container.
Layout Manager secara otomatis memposisikan semua komponen dalam container. Bahkan
jika tidak menggunakan Layout Manager, komponen masih diposisikan oleh Layout
Manager secara default. Properti seperti ukuran, bentuk, dan pengaturan bervariasi dari
satu layout manager ke layout manager yang lain. Bila ukuran applet atau window aplikasi
berubah, ukuran, bentuk, dan susunan komponen juga berubah sebagai contoh, yaitu
layout manager beradaptasi dengan dimensi appletviewer atau jendela aplikasi.
Layout Manager diasosiasikan dengan setiap objek Container. Setiap layout manager
adalah objek kelas yang mengimplementasikan interface LayoutManager.
Berikut adalah daftar pengaturan layout yang umum digunakan saat merancang GUI
menggunakan AWT.

Layout Manager Deskripsi


BorderLayout Border Layout mengatur komponen agar sesuai di lima wilayah: timur,
barat, utara, selatan, dan tengah.
CardLayout Objek CardLayout memperlakukan setiap komponen dalam wadah
sebagai kartu. Hanya satu kartu yang terlihat pada satu waktu.
FlowLayout FlowLayout adalah layout default. Layout ini mengatur komponen
dalam arah aliran.
GridLayout GridLayout mengelola komponen dalam bentuk kotak persegi panjang.
GridBagLayout Ini adalah kelas layout manager yang paling fleksibel. Objek
GridBagLayout menyelaraskan komponen secara vertikal, horizontal,
atau sepanjang garis dasar mereka tanpa memerlukan komponen
dengan ukuran yang sama.
GroupLayout GroupLayout secara hierarkis mengelompokkan komponen untuk
memposisikannya dalam Container.
SpringLayout A SpringLayout positions the children of its associated container
according to a set of constraints.

Praktikum 6.1 – Border Layout


BorderLayout kelas mengatur komponen agar sesuai di lima wilayah: timur, barat, utara,
selatan, dan tengah. Setiap wilayah hanya dapat memuat satu komponen dan masing-
masing komponen di masing-masing wilayah diidentifkasi oleh konstanta yang
bersangkutan NORTH, SOUTH, EAST, WEST, dan CENTER.
Untuk membuat aplikasi di atas lakukan langkah-langkah berikut ini :
i. Buat class JFrame Form baru, beri nama BorderLayout.java
ii. Setting layout pada Frame BorderLayout, dengan cara klik kanan Frame
BorderLayout > Set Layout > Border Layout.

Gambar 34. Pengaturan Layout pada Frame

iii. Masukkan lima buah JButton: btnNorth, btnSouth, btnWest, btnEast, dan
btnCenter. Sesuaikan penataan komponen sesuai dengan gambar berikut.
Gambar 35. Tampilan Frame dengan BorderLayout

iv. Untuk pengaturan layout untuk masing-masing komponen dapat dilakukan dengan
cara memilih komponen yang akan diatur kemudian pada Properties > Layout

Gambar 36. Pengaturan Layout di Properties

v. Compile dan jalankan class BorderLayout untuk melihat hasilnya atau tekan
Shift+F6.

Praktikum 6.2 – Card Layout


Kelas CardLayout mengatur setiap komponen dalam wadah sebagai kartu. Hanya satu
kartu yang terlihat sekaligus, dan wadah itu berfungsi sebagai setumpuk kartu.
Untuk membuat aplikasi yang mengimplementasikan CardLayout lakukan langkah-langkah
berikut ini :
i. Buat class JFrame Form baru, beri nama CardLayout.java
ii. Masukkan satu buah Jlabel: lblKomponen, satu buah JcomboBox: cmbKomponen
[Label Satu, Label Dua, Label Tiga, Label Empat], satu buah JButton: btnTampil,
satu buah JPanel: panelTest. Sesuaikan penataan komponen sesuai dengan gambar
berikut.

Gambar 37. Tampilan Frame dengan CardLayout

iii. Setting layout pada panelTest,


Set Layout > CardLayout Layout.

Gambar 38. Pengaturan CardLayout pada panelTest

iv. Tambahkan komponen empat buah JLabel pada panelTest

Gambar 39. Komponen Swing pada panelTest


v. Masuk ke Source , kemudian tambahkan kode berikut (baris 4-7).

1 public Praktikum_6_2() {
2 initComponents();
3
4 panelTest.add(lblSatu, “satu”);
5 panelTest.add(lblDua, “dua”);
6 panelTest.add(lblTiga, “tiga”);
7 panelTest.add(lblEmpat, “empat”);
8 }

vi. Pada bagian Design, tambahkan event pada btnTampil


Event >Action > actionPerformed
Jendela Code akan terbuka, tambahkan code seperti di bawah ini :

1 CardLayout cardLayout = (CardLayout) panelTest.getLayout();


2 switch(cmbKomponen.getSelectedIndex()) {
3 case 0: cardLayout.show(panelTest, satu); break;
4 case 1: cardLayout.show(panelTest, dua); break;
5 case 2: cardLayout.show(panelTest, tiga); break;
6 case 3: cardLayout.show(panelTest, empat); break;
7 default: break;
8 }
method show akan menampilkan komponen yang tertumpuk pada panelTest
vii. Compile dan jalankan class CardLayout untuk melihat hasilnya atau tekan Shift+F6.

Praktikum 6.3 – Flow Layout


Berbeda dengan BorderLayout yang membagi wilayah menjadi 5 bagian utama (north,
south, east, west, dan center), FlowLayout tidak membagi wilayah menjadi beberapa
bagian, tetapi terdiri dari satu bagian yang mengalir dari kiri ke kanan.

Gambar 40. Tampilan Frame dengan FlowLayout


Untuk membuat aplikasi di atas, lakukan langkah-langkah berikut ini :
i. Buat class JFrame Form baru, beri nama FlowLayout.java
ii. Setting layout pada Frame BorderLayout,
Set Layout > FlowLayout.

Gambar 41. Pengaturan FlowLayout pada Frame

iii. Masukkan dua JLabel: lblNama dan lblAlamat, dua JTextField: txtNama dan
txtAlamat. Sesuaikan penataan komponen sesuai dengan gambar berikut.

Gambar 42. Tampilan Frame dengan FlowLayout

iv. Compile dan jalankan class FlowLayout untuk melihat hasilnya atau tekan Shift+F6.

Praktikum 6.4 – Grid Layout


Sama seperti FlowLayout yang pengaturan tiap komponennya dari kiri ke kanan,
GridLayout mengatur komponen dalam sebuah Grid. Berbeda dengan FlowLayout,
GridLayout membagi ukuran yang sama untuk semua komponen yang dimasukkan ke
dalam Layout.
Langkah-langkah membuat sebuah Frame dengan GridLayout:
i. Buat class JFrame Form baru, beri nama GridLayout.java
ii. Setting layout pada Frame
Set Layout > Grid Layout.
iii. Masukkan tiga buah JLabel: lblNama, lblAlamat, dan lblHobi; Tiga buah JtextField:
txtNama, txtAlamat, txtHobi. Sesuaikan penataan komponen sesuai dengan
gambar berikut.
Gambar 43. Layouting pada GridLayout

iv. Compile dan jalankan class GridLayout untuk melihat hasilnya atau tekan Shift+F6.

Praktikum 6.5 – GridBag Layout


Jika GridLayout mengatur komponen hanya secara horizontal, GridBagLayout mengatur
komponen secara horizontal dan vertikal dalam bentuk tabel.
Langkah-langkah membuat sebuah Frame dengan GridBagLayout:
i. Buat class JFrame Form baru, beri nama GridBagLayout.java
ii. Setting layout pada Frame
Set Layout > GridBag Layout.
iii. Masukkan tiga buah JLabel: lblNama, lblJenisKelamin, dan lblAlamat; Dua buah
JTextField: txtNama dan txtAlamat; Dua buah JradioButton: rbPria dan rbWanita;
Satu buah ButtonGroup. Sesuaikan penataan komponen sesuai dengan gambar
berikut.

Gambar 44. Tampilan Awal Frame dengan GridBagLayout

iv. Klik Navigator, kemudian pilih Frame


GridBag Layout > Costumize
Gambar 45. Customize GridBagLayout

akan ditampilkan jendela interaktif pengaturan GridBag Layout

Gambar 46. Pengaturan tata letak komponen pada GridBagLayout

atur tata letak komponen dengan mengubah nilai pada Layout Constraint sehingga
menjadi seperti berikut.
Gambar 47. Hasil akhir layouting komponen pada GridBagLayout

v. Compile dan jalankan class GridBag Layout untuk melihat hasilnya atau tekan
Shift+F6.
MODUL 7. JAVA DATABASE CONNECTIVITY

Kajian : Konektivitas database di java


Topik : • Java Database Connectivity
• Implementasi proses CRUD database menggunakan java
Referensi :
Kompetensi Utama : • Mahasiswa memahami konsep database dan
implementasinya dengan pemrograman java.
• Mahasiswa mampu membuat database dan mengkoneksikan
ke dalam sebuah program java.
• Mahasiswa mampu melakukan proses create, read, update,
dan delete pada database menggunakan java.

Materi Dasar
Java Database Connectivity adalah API yang digunakan Java untuk melakukan koneksi
dengan aplikasi lain atau dengan berbagai macam database. JDBC memungkinkan kita
untuk membuat aplikasi Java yang melakukan tiga hal: konek ke sumber data,
mengirimkan query dan statement ke database, menerima dan mengolah resultset yang
diperoleh dari database.
JDBC mempunyai empat komponen :
1. JDBC API
JDBC API menyediakan metode akses yang sederhana ke sumber data relational
(RDBMS) menggunakan pemrograman Java. dengan menggunakan JDBC API, kita
bisa membuat program yang dapat mengeksekusi SQL, menerima hasil ResultSet,
dan mengubah data dalam database. JDBC API juga mempunyai kemampuan untuk
berinteraksi dengan lingkungan terdistribusi dari jenis sumber data yang berbeda-
beda. JDBC API adalah bagian dari Java Platform yang disertakan dalam library JDK
maupun JRE. JDBC API sekarang ini sudah mencapai versi 5.0 yang disertakan dalan
JDK 8.0.
2. JDBC Driver Manager
Class DriverManager dari JDBC bertugas untuk mendefsikan object-object yang
dapat digunakan untuk melakukan koneksi ke sebuah sumber data. Secara
tradisional DriverManager telah menjadi tulang punggung arsitektur JDBC.
3. JDBC Test Suite
JDBC Test Suite membantu kita untuk mencara driver mana yang cocok digunakan
untuk melakukan sebuah koneksi ke sumber data tertentu. Tes yang dilakukan tidak
memerlukan resource besar ataupun tes yang komprehensif, namun cukup tes-tes
sederhana yang memastikan ftur-ftur penting JDBC dapat berjalan dengan lancar.
4. JDBC-ODBC Bridge
Bridge ini menyediakan fasilitas JDBC untuk melakukan koneksi ke sumber data
menggunakan ODBC (Open DataBase Connectivity) driver. Sebagai catatan, anda
perlu meload driver ODBC di setiap komputer client untuk dapat menggunakan
bridge ini. Sebagai konsekuensinya, cara ini hanya cocok dilakukan di lingkungan
intranet dimana isu instalasi tidak menjadi masalah.
Dengan keempat komponen yang dipunyainya, JDBC menjadi tools yang dapat diandalkan
untuk melakukan koneksi, mengambil data dan merubah data dari berbagai macam
sumber data. Modul ini hanya akan membahas dua komponen pertama dari keempat
komponen yang dipunyai oleh JDBC, yaitu JDBC API dan DriverManager. Sumber data yang
digunakan adalah Relational Database.

Praktikum 7.1 – Java Database Connectivity


JDBC memerlukan database driver untuk melakukan koneksi ke suatu sumber data.
Database driver ini bersifat spesifk untuk setiap jenis sumber data. Database driver
biasanya dibuat oleh pihak pembuat sumber datanya, namun tidak jarang juga komunitas
atau pihak ketiga menyediakan database driver untuk sebuah sumber data tertentu.
Perlu dipahami sekali lagi bahwa database driver bersifat spesifk untuk setiap jenis sumber
data. Misalnya, Database Driver MySql hanya bisa digunakan untuk melakukan koneksi ke
database MySql dan begitu juga database driver untuk Postgre SQL juga hanya bisa
digunakan untuk melakukan koneksi ke database Postgre SQL.
Langkah-langkah praktikum membuat konektivitas database dengan java, adalah sebagai
berikut.
i. Buat sebuah project baru dengan nama Java Database Connectivity
ii. Tambahkan sebuah library pada project yang telah dibuat
Project Java Database Connectivity > Library > Add Library
Gambar 48. Menambah library pada project

lalu akan ditampilkan sebuah window yang berisi library yang disediakan oleh
netbeans. Pilih MySQL JDBC Driver, lalu pilih Add Library

Gambar 49. Library yang didukung oleh JDK8

iii. Buat sebuah class baru dengan nama DBConnection yang berfungsi untuk
mengkoneksikan database MySQL dengan Java.
Setelah membuat class baru, tambahkan kode berikut (baris 3-16).

1 public class DBConnection {


2
3 private Connection connection = null;
4
5 public DBConnection() {
6 try {
7 DriverManager.registerDriver(new com.mysql.jdbc.Driver());
8 connection = DriverManager
.getConnection("jdbc:mysql://localhost/db_visual_java",
"root", "root");
9 } catch (SQLException ex) {
10 System.err.println(ex.getMessage());
11 }
12
13 if (connection == null) {
14 JOptionPane.showMessageDialog(null, "Koneksi Gagal!");
15 } else {
16 JOptionPane.showMessageDialog(null, "Koneksi Berhasil!");
17 }
18 }
19 }
Perhatikan baris 8!! Pada method getConnection terdapat tiga argumen, yaitu
1. "jdbc:mysql://localhost/nama_database", merupakan alamat database yang
dikoneksikan.
2. "username", merupakan username untuk mengakses database
3. "password", merupakan password untuk mengakses database
iv. PENTING!!! sesuaikan konfgurasi nama database, username, dan password pada
DBMS yang digunakan.
v. Compile dan jalankan class DBConnection untuk melihat hasilnya atau tekan
Shift+F6.

Praktikum 7.2 – Insert Data


Adapun tahapan-tahapan adalah sebagai berikut:
i. Pada Project Java Database Connectivity, buat sebuah Frame baru dengan nama
menyesuaikan pada tabel di database yang telah dibuat sebelumnya. Pada
praktikum seterusnya akan tetap digunakan project ini.
ii. Tambahkan komponen Swing: satu buah JButton: btnSimpan; tiga buah JLabel:
lblNIK, lblNama, dan lblJenisKelamin; duah buah JTextField: txtNIK dan txtNama;
Dua buah JRadioButton: rbPria dan rbWanita; serta satu ButtonGroup. Atur tata
letak komponen-komponen tersebut, sehingga menjadi seperti berikut.
Gambar 50. Implementasi proses input

iii. Pada bagian Source, tambahkan kode berikut.

1 public class Person extends javax.swing.JFrame {


2
3 private Connection connection = null;
4
5 ....
Kode di atas berguna untuk menampung value Connection ke database dan akan
digunakan untuk menghubungkan database dengan java.
Tambahkan pula kode berikut (baris 5-17) di dalam constuctor yang telah dibuat.
Kode ini bertugas untuk meng-handle koneksi dari java ke database.

1 public Person() {
2 initComponents();
3 setLocationRelativeTo(null);
4
5 try {
6 DriverManager.registerDriver(new com.mysql.jdbc.Driver());
7 connection = DriverManager
.getConnection("jdbc:mysql://localhost/nama_database",
"username", "pasword");
8 } catch (SQLException ex) {
9 System.err.println(ex.getMessage());
10 }
11
12 if (connection == null) {
13 JOptionPane.showMessageDialog(null, "Koneksi Gagal!");
14 } else {
15 JOptionPane.showMessageDialog(null, "Koneksi Berhasil!");
16 }
17 }
Perhatikan!! nama_database, username, dan password HARUS disesuaikan dengan
konfgurasi database yang telah dibuat sebelumnya.
iv. Buat event untuk btnSimpan sehingga ketika btnSimpan diklik maka akan
menyimpan data inputan ke dalam tabel Person. Klik kanan JButton di Jendela
Design, kemudian pilih menu :
Events > Action > actionPerformed
Jendela Code akan terbuka, tambahkan code seperti di bawah ini :

1 private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) {


2 // TODO add your handling code here:
3 String nik = txtNIK.getText();
4 String nama = txtNama.getText();
5 String jenis_kelamin = "";
6 if (rbPria.isSelected()) {
7 jenis_kelamin = "Laki-laki";
8 } else if (rbWanita.isSelected()) {
9 jenis_kelamin = "Perempuan";
10 }
11
12 String sqlQuery = "insert into t_person(nik, nama, jenis_kelamin)
values (?,?,?)";
13
14 try {
15 PreparedStatement preparedStatement = connection
.prepareStatement(sqlQuery);
16 preparedStatement.setString(1, nik);
17 preparedStatement.setString(2, nama);
18 preparedStatement.setString(3, jenis_kelamin);
19 preparedStatement.executeUpdate();
20 } catch (SQLException ex) {
21 System.err.println("Terjadi Kesalahan: "+ex.getMessage());
22 }
23 }
method getText dari JTextField digunakan untuk mengambil value dari txtNIK dan
txtNama. Sedangkan method isSelected dari JradioButton digunakan untuk
mengetahui apakah radiobutton tesebut terpilih atau tidak, jika terpilih akan
mengembalikan sebuah Boolean dengan nilai True.
Perhatikan baris 12! Query SQL yang digunakan untuk menginput data ke dalam
tabel ditampun ke dalam sebuah variabel dengan tipe STRING.
Perhatikan baris 15-22! Perintah pada java yang digunakan untuk melakukan
proses insert data ke dalam tabel.

v. Compile dan jalankan class Person untuk melihat hasilnya atau tekan Shift+F6.
Untuk memastikan apakah data telah terinput ke dalam tabel Person, buka MySQL
editor lalu ketikkan perintah berikut dengan terlebih dahulu memilih database yang
digunakan.

1 Mysql> select * from t_person;


Jika data yang telah diinput pada program Java yang telah dibuat terdapat pada
tabel Person, maka proses insert data telah berhasil dilakukan.
Praktikum 7.3 – Update Data
Adapun tahapan-tahapan adalah sebagai berikut:
i. Pada Project Java Database Connectivity, buka Frame yang telah dibuat
sebelumnya
ii. Tambahkan komponen Swing: satu buah JButton: btnUpdate; Atur tata letak
komponen tersebut, sehingga menjadi seperti berikut.

Gambar 51. Implementasi proses update

iii. Buat event untuk btnUpdate sehingga ketika btnUpdate diklik maka akan
mengubah data inputan yang ada tabel Person. Klik kanan JButton di Jendela
Design, kemudian pilih menu :
Events > Action > actionPerformed
Jendela Code akan terbuka, tambahkan code seperti di bawah ini :

1 private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {


2 // TODO add your handling code here:
3 String nik = txtNIK.getText();
4 String nama = txtNama.getText();
5 String jenis_kelamin = "";
6 if (rbPria.isSelected()) {
7 jenis_kelamin = "Laki-laki";
8 } else if (rbWanita.isSelected()) {
9 jenis_kelamin = "Perempuan";
10 }
11
12 String sqlQuery = "update t_person set nama=?, jenis_kelamin=? “
+” where nik=?";
13
14 try {
15 PreparedStatement preparedStatement = connection
.prepareStatement(sqlQuery);
16 preparedStatement.setString(1, nama);
17 preparedStatement.setString(2, jenis_kelamin);
18 preparedStatement.setString(3, nik);
19 preparedStatement.executeUpdate();
20 } catch (SQLException ex) {
21 System.err.println("Terjadi Kesalahan: "+ex.getMessage());
22 }
23 }
method getText dari JTextField digunakan untuk mengambil value dari txtNIK dan
txtNama. Sedangkan method isSelected dari JradioButton digunakan untuk
mengetahui apakah radiobutton tesebut terpilih atau tidak, jika terpilih akan
mengembalikan sebuah Boolean dengan nilai True.

iv. Compile dan jalankan class Person untuk melihat hasilnya atau tekan Shift+F6.
Untuk memastikan apakah data telah berubah pada tabel Person, buka MySQL
editor lalu ketikkan perintah berikut dengan terlebih dahulu memilih database yang
digunakan.

1 Mysql> select * from t_person;


Jika data yang telah diinput pada program Java yang telah berubah, maka proses
update data telah berhasil dilakukan.

Praktikum 7.4 – Delete Data


Adapun tahapan-tahapan adalah sebagai berikut:
i. Pada Project Java Database Connectivity, buka Frame yang telah dibuat
sebelumnya
ii. Tambahkan komponen Swing: satu buah JButton: btnDelete; Atur tata letak
komponen tersebut, sehingga menjadi seperti berikut.

Gambar 52. Implementasi proses delete

iii. Buat event untuk btnDelete sehingga ketika btnDelete diklik maka akan
menghapus data yang ada tabel Person. Klik kanan JButton di Jendela Design,
kemudian pilih menu :
Events > Action > actionPerformed
Jendela Code akan terbuka, tambahkan code seperti di bawah ini :
1 private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {
2 // TODO add your handling code here:
3 String nik = txtNIK.getText();
4
5 String sqlQuery = "delete from t_person where nik=?";
6
7 try {
8 PreparedStatement preparedStatement = connection
.prepareStatement(sqlQuery);
9 preparedStatement.setString(1, nik);
10 preparedStatement.executeUpdate();
11 } catch (SQLException ex) {
12 System.err.println("Terjadi Kesalahan: "+ex.getMessage());
13 }
14 }

iv. Compile dan jalankan class Person untuk melihat hasilnya atau tekan Shift+F6.
Untuk memastikan apakah data telah terhapus pada tabel Person, buka MySQL
editor lalu ketikkan perintah berikut dengan terlebih dahulu memilih database yang
digunakan.

1 Mysql> select * from t_person;


Jika data yang telah diinput pada program Java yang telah berubah, maka proses
update data telah berhasil dilakukan.

Praktikum 7.5 – Tampil Data


Pada sesi praktikum ini, akan dilakukan proses untuk menampilkan data yang terdapat di
tabel pada database ke dalam program java.
Adapun langkah-langkah untuk praktikum ini, adalah sebagai berikut.
i. Pada Project Java Database Connectivity, buka Frame yang telah dibuat
sebelumnya
ii. Tambahkan komponen Swing: satu buah JTable: tblData; satu buah JButton:
btnCari. Atur tata letak komponen tersebut, sehingga menjadi seperti berikut.
Gambar 53. Implementasi proses cari dan tampil data

iii. Buat event untuk btnCari sehingga ketika btnCari diklik maka akan menampilkan
data yang ada tabel Person pada komponen txtNIK, txtNama, dan
radioButtonKelamin. Klik kanan JButton di Jendela Design, kemudian pilih menu :
Events > Action > actionPerformed
Jendela Code akan terbuka, tambahkan code seperti di bawah ini :

1 private void btnCariActionPerformed(java.awt.event.ActionEvent evt) {


2 // TODO add your handling code here:
3 String nik = txtNIK.getText();
4
5 String sqlQuery = "select nik, nama, jenis_kelamin “
6 + “from t_person where nik=?";
7
8 try {
9 PreparedStatement preparedStatement = connection
.prepareStatement(sqlQuery);
10 preparedStatement.setString(1, nik);
11
12 ResultSet resultSet = preparedStatement.executeQuery();
13
14 if (resultSet.next()) {
15 txtNIK.setText(resultSet.getString(1));
16 txtNama.setText(resultSet.getString(2));
17 String jenis_kelamin = resultSet.getString(3);
18 if (jenis_kelamin.equals("Laki-laki")) {
19 rbPria.setSelected(true);
20 } else if (jenis_kelamin.equals("Perempuan")) {
21 rbWanita.setSelected(true);
22 }
23 }
24 } catch (SQLException ex) {
25 System.err.println("Terjadi Kesalahan: "+ex.getMessage());
26 }
27 }
Perhatikan baris 12! ResultSet merupakan perintah untuk menampilkan data pada
tabel ke dalam program java
iv. Langkah berikutnya adalah menampilkan data yang terdapat pada tabel di
database untuk dimunculkan ke dalam komponen JTable pada java.
Pada bagian Source, tambahkan kode berikut (baris 3-4) pada bagian awal program

1 public class Person extends javax.swing.JFrame {


2 private Connection connection = null;
3 private final String[] header = {"NIK", "Nama", "Jenis Kelamin"};
4 private DefaultTableModel tableModel = null;
5 ....
Berikutnya tambahkan kode berikut (baris 5-6) di dalam constructor.

1 public Person() {
2 initComponents();
3 setLocationRelativeTo(null);
4
5 tableModel = new DefaultTableModel(header, 0);
6 tableData.setModel(tableModel);
7
8 try {
9 .....

Buat sebuah private method dengan nama tampilData()

1 private void tampilData() {


2 String sqlQuery = "select * from t_person";
3 try {
4 Statement statement = connection.createStatement();
5 ResultSet resultSet = statement.executeQuery(sqlQuery);
6
7 while (resultSet.next()) {
8 Object[] dataRow = new Object[3];
9 dataRow[0] = resultSet.getString("nik");
10 dataRow[1] = resultSet.getString("nama");
11 dataRow[2] = resultSet.getString("jenis_kelamin");
12 tableModel.addRow(dataRow);
13 }
14 } catch (SQLException ex) {
15 System.err.println("Terjadi Kesalahan: "+ex.getMessage());
16 }
17 }
Panggil method tampilData pada bagian akhir constructor (baris 10).

1 public Person() {
2 initComponents();
3 .....
4 try {
5 .....
6 } catch (SQLException ex) {
7 System.err.println("Terjadi Kesalahan: "+ex.getMessage());
8 }
9
10 tampilData();
11 }
v. Compile dan jalankan class Person untuk melihat hasilnya atau tekan Shift+F6.
DAFTAR PUSTAKA
Bima, Ifnu. Java Desktop Aplikasi POS Berarsitektur Three Tier Menggunakan Swing,
Hibernate, dan Spring [pdf]. (https://www.scribd.com/doc/53411895/Java-Desktop-
Ifnu-Bima, diakses tanggal 15 Maret 2017)
TutorialsPoint. MySQL Tutorial [online]. (https://www.tutorialspoint.com/mysql/index.htm,
diakses tanggal 20 Februari 2018)
TutorialsPoint. Swing Tutorial [online]. (https://www.tutorialspoint.com/swing/index.htm,
diakses tanggal 20 Februari 2018)