Institut Teknologi Bisnis & Bahasa
DIAN CIPTA CENDIKIA
24S31
3.
Pemrograman Java Desktop
Dr. Eko Subiyantoro, [Link].,[Link].,MT.
NUPN : 9907014154
Prodi Sistem Informasi
4. DASAR GUI - JAVA SWING[1]
11..11.. TTUUJJUUAAN
N PPEEM
MBBEELLAAJJAARRAAN
N
Mahasiswa mampu:
1. Memahami perbedaan aplikasi desktop vs web.
2. Memahami dasar-dasar GUI dalam Java.
3. Memahami konsep event-driven programming dalam Java Swing.
4. Mampu membuat dan menjalankan proyek pertama dengan JFrame & JPanel.
11..22.. PPEEN
NGGAAN
NTTAARR
1.2.1 Apa Itu Pemrograman Java Desktop?
Java Desktop adalah pengembangan aplikasi berbasis GUI (Graphical User Interface) yang
berjalan di sistem operasi tanpa memerlukan browser. Java Swing adalah salah satu teknologi
utama untuk membangun GUI dalam Java.
1.2.2 Perbandingan Aplikasi Desktop vs Web
Kriteria Aplikasi Desktop Aplikasi Web
Berjalan di OS tertentu (Windows, Mac, Dapat diakses via browser di berbagai
Platform
Linux) perangkat
Instalasi Harus diinstal secara manual Tidak perlu instalasi
Lebih cepat, menggunakan sumber
Performa Bergantung pada koneksi internet
daya lokal
UI/UX Fleksibel dan lebih cepat responsif Terbatas pada fitur browser
1.2.3 Teknologi GUI dalam Java
AWT (Abstract Window Toolkit) – versi lama, kurang fleksibel.
Swing – Framework GUI yang modern kaya fitur.
JavaFX – Alternatif modern dengan tampilan lebih canggih.
1.2.4 Struktur Dasar Aplikasi Java Swing
JFrame → Window utama aplikasi.
JPanel → Container untuk menampung komponen.
Komponen GUI (JButton, JLabel, JTextField, dll.) → Elemen interaktif.
Program Studi: Semester: II Tanggal:
Feb. 2025
SI 01 01 VT
Sistem Informasi
Hal
Mata Kuliah: Pemrograman 24S31
Dibuat oleh:
[Link]:
1 - 13
Java Desktop 14/02/2025 Eko Subiyantoro
11..33.. JJAAVVAA SSW
WIIN
NGG
1.3.1 Hirarki Kelas
Hirarki kelas kontainer tingkat atas Swing (JFrame, JDialog, JApplet) adalah sebagai berikut.
Kontainer Swing tingkat atas ini sangat berat, yang bergantung pada subsistem windowing yang
mendasari platform asli.
Hirarki kelas JComponents Swing adalah sebagai berikut. JComponent dan turunannya adalah
komponen dari kelas Swing.
Program Studi: Semester: II Tanggal:
Feb. 2025
SI 01 01 VT
Sistem Informasi
Hal
Mata Kuliah: Pemrograman 24S31
Dibuat oleh:
[Link]:
2 - 13
Java Desktop 14/02/2025 Eko Subiyantoro
1.3.2 Komponen Java Swing
1. JFrame
Dalam Java Swing, sebagian besar aplikasi akan dibangun di dalam komponen dasar JFrame,
yang membuat jendela untuk menampung komponen lain.
Kode Program Analisa Program
Perhatikan bahwa kita dapat
menginisialisasi frame dengan string
“Hello Swing”, yang menciptakan frame
kosong dengan judul “Hello Swing” seperti
gambar di bawah ini. Fungsi
setDefaultCloseOperation memberi tahu
frame apa yang harus dilakukan saat
pengguna menutup frame dan
JFrame.EXIT_ON_CLOSE mengembalikan
perintah keluar saat pengguna menutup
frame. Ukuran frame dapat diatur dengan
parameter lebar dan tinggi setSize.
Perhatikan bahwa tanpa fungsi setVisible
dengan parameter true, Anda tidak akan
melihat apa pun di layar. Untuk melihat
bagian GUI, kita memerlukan fungsi ini dan
mengaturnya menjadi true.
Output
2. JLabel
JLabel adalah area untuk menampilkan string pendek atau gambar atau keduanya. Biasanya kita
dapat menambahkan JLabel ke dalam JFrame yang telah kita buat di bagian sebelumnya dan
menampilkan tampilan yang berbeda. Dengan kode Java berikut yang ditambahkan setelah
pembuatan JFrame, label dengan teks “Selamat Datang Java Desktop” akan dibuat.
Kode Program Analisa Program
Program Studi: Semester: II Tanggal:
Feb. 2025
SI 01 01 VT
Sistem Informasi
Hal
Mata Kuliah: Pemrograman 24S31
Dibuat oleh:
[Link]:
3 - 13
Java Desktop 14/02/2025 Eko Subiyantoro
JLabel adalah area untuk
menampilkan string
pendek atau gambar atau
keduanya. Biasanya kita
dapat menambahkan
JLabel ke dalam JFrame
yang telah kita buat di
bagian sebelumnya dan
menampilkan tampilan
yang berbeda. Dengan
kode Java berikut yang
ditambahkan setelah
pembuatan JFrame, label
dengan teks “Selamat
Datang Java Desktop”
akan dibuat.
Output
3. JPanel
JPanel merupakan wadah populer untuk menampung berbagai komponen. Wadah ini dapat diatur
dan ditambahkan dengan menggunakan kode yang mirip dengan berikut ini.
4. JButton
JButton merupakan implementasi dari tombol "tekan". Tombol ini dapat ditekan dan dikonfigurasi
untuk melakukan berbagai tindakan, menggunakan event listener. Untuk bagian ini, kita akan
membahasnya di bagian terakhir. Dalam kode berikut, kita menambahkan tiga tombol ke dalam
panel dengan nama yang berbeda: Tombol 1, Tombol 2, Tombol 3.
Program Studi: Semester: II Tanggal:
Feb. 2025
SI 01 01 VT
Sistem Informasi
Hal
Mata Kuliah: Pemrograman 24S31
Dibuat oleh:
[Link]:
4 - 13
Java Desktop 14/02/2025 Eko Subiyantoro
Kode Program
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class JButtonExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Hello Swing");
JLabel label = new JLabel("Selamat Datang Java Desktop", [Link]);
JPanel panel = new JPanel();
BoxLayout boxlayout = new BoxLayout(panel, BoxLayout.Y_AXIS);
[Link](boxlayout);
[Link](new EmptyBorder(new Insets(45, 70, 45, 70)));
JButton jb1 = new JButton("Button 1");
JButton jb2 = new JButton("Button 2");
JButton jb3 = new JButton("Button 3");
[Link](jb1);
[Link](jb2);
[Link](jb3);
[Link](new GridLayout(2, 1));
[Link](label);
[Link](panel);
Program Studi: Semester: II Tanggal:
Feb. 2025
SI 01 01 VT
Sistem Informasi
Hal
Mata Kuliah: Pemrograman 24S31
Dibuat oleh:
[Link]:
5 - 13
Java Desktop 14/02/2025 Eko Subiyantoro
[Link]();
[Link](JFrame.EXIT_ON_CLOSE);
[Link](true);
}
}
Output
5. JRadioButton
Di sini, JRadioButton sangat berbeda dari JButton. Ini adalah tombol radio yang dapat dipilih atau
tidak dipilih. Gunakan dengan objek ButtonGroup untuk membuat grup tombol, di mana hanya
satu tombol yang dapat dipilih pada satu waktu.
Kode Program
import [Link];
import [Link];
import [Link];
import [Link];
public class RadioButtonExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Hello Swing");
JPanel panel = new JPanel();
ButtonGroup bg = new ButtonGroup();
JRadioButton rb1 = new JRadioButton("Male", true);
JRadioButton rb2 = new JRadioButton("Female", false);
JRadioButton rb3 = new JRadioButton("Not specified", false);
[Link](rb1);
[Link](rb2);
[Link](rb3);
[Link](rb1);
[Link](rb2);
[Link](rb3);
[Link](panel);
[Link]();
Program Studi: Semester: II Tanggal:
Feb. 2025
SI 01 01 VT
Sistem Informasi
Hal
Mata Kuliah: Pemrograman 24S31
Dibuat oleh:
[Link]:
6 - 13
Java Desktop 14/02/2025 Eko Subiyantoro
[Link](JFrame.EXIT_ON_CLOSE);
[Link](true);
}
}
Output
6. JTable
JTable digunakan untuk membuat tabel dua dimensi biasa. Tabel tersebut dapat menampilkan
data di dalamnya. Selain itu, pengguna juga dapat mengedit data. Contoh berikut menunjukkan
bahwa kami membuat tiga kolom: ID, Nama, Usia. Di setiap kolom, kami telah mengatur
data/informasi di dalamnya.
Kode Program
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class JTableExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Hello Swing");
String[ ][ ] data = {{"01", "Alex", "18"}, {"02", "Brandon", "20"},
{"03", "Cassie", "18"}, {"04", "Steve", "25"}};
String[ ] column = {"ID", "Name", "Age"};
JTable jt = new JTable(data, column);
JScrollPane sp = new JScrollPane(jt);
[Link](sp);
[Link]();
[Link](JFrame.EXIT_ON_CLOSE);
[Link](true);
}
}
Output
Program Studi: Semester: II Tanggal:
Feb. 2025
SI 01 01 VT
Sistem Informasi
Hal
Mata Kuliah: Pemrograman 24S31
Dibuat oleh:
[Link]:
7 - 13
Java Desktop 14/02/2025 Eko Subiyantoro
7. JComboBox
JComboBox adalah komponen untuk memilih nilai dari daftar drop-down. Anda dapat memilih
satu dan hanya satu elemen dari daftar tersebut. Contoh berikut menunjukkan cara membuat
daftar drop-down, yang dapat digunakan untuk memilih negara-negara berikut: “Australia”,
“China”, “Inggris”, “Rusia”, “Amerika Serikat”..
Kode Program
import [Link];
import [Link];
public class JComboBoxExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Hello Swing");
String[] country = {"Australia", "China", "England", "Russia", "United States"};
JComboBox cb = new JComboBox(country);
[Link](cb);
[Link]();
[Link](JFrame.EXIT_ON_CLOSE);
[Link](true);
}
}
Output
Program Studi: Semester: II Tanggal:
Feb. 2025
SI 01 01 VT
Sistem Informasi
Hal
Mata Kuliah: Pemrograman 24S31
Dibuat oleh:
[Link]:
8 - 13
Java Desktop 14/02/2025 Eko Subiyantoro
7. JMenu
Dalam contoh ini, kita memiliki pengaturan yang berbeda pada menu. Kita memiliki menu File,
yang mencakup submenu simpan, keluar, dan menu Edit, termasuk submenu salin, potong,
tempel, dan menu Bantuan.
Kode Program
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class JMenuExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Hello Swing");
JPanel panel = new JPanel();
JTextArea ta = new JTextArea();
JMenuBar mb = new JMenuBar();
JMenu file = new JMenu("File");
JMenu edit = new JMenu("Edit");
JMenu help = new JMenu("Help");
JMenuItem save = new JMenuItem("Save");
JMenuItem quit = new JMenuItem("Quit");
JMenuItem cut = new JMenuItem("Cut");
JMenuItem copy = new JMenuItem("Copy");
JMenuItem paste = new JMenuItem("Paste");
JMenuItem tryYourBest = new JMenuItem("Try your best:)");
[Link](save);
[Link](quit);
[Link](cut);
[Link](copy);
[Link](paste);
[Link](tryYourBest);
Program Studi: Semester: II Tanggal:
Feb. 2025
SI 01 01 VT
Sistem Informasi
Hal
Mata Kuliah: Pemrograman 24S31
Dibuat oleh:
[Link]:
9 - 13
Java Desktop 14/02/2025 Eko Subiyantoro
[Link](file);
[Link](edit);
[Link](help);
JButton jb1 = new JButton("Button 1");
JButton jb2 = new JButton("Button 2");
JButton jb3 = new JButton("Button 3");
[Link](jb1);
[Link](jb2);
[Link](jb3);
[Link](new GridLayout(3, 1));
[Link](mb);
[Link](panel);
[Link](ta);
[Link]();
[Link](JFrame.EXIT_ON_CLOSE);
[Link](true);
}
}
Output
1.3.3 Java Swing Event Action
Dalam Java Swing, event handling adalah mekanisme yang memungkinkan program merespons
tindakan pengguna seperti klik tombol, pergerakan mouse, atau penekanan tombol keyboard.
Event handling di Java menggunakan konsep Event-Driven Programming dengan tiga komponen
utama:
1. Event Source – Komponen GUI yang memicu event (misalnya, tombol).
2. Event Object – Objek yang mewakili event yang terjadi (misalnya, ActionEvent).
3. Event Listener – Kelas yang menangani event dan memberikan respons yang sesuai.
Diagram Class Event Handling di Java Swing
Berikut adalah ilustrasi diagram class untuk event handling di Java Swing:
Program Studi: Semester: II Tanggal:
Feb. 2025
SI 01 01 VT
Sistem Informasi
Hal
Mata Kuliah: Pemrograman 24S31
Dibuat oleh:
[Link]:
10 - 13
Java Desktop 14/02/2025 Eko Subiyantoro
Komponen dalam Class Diagram
1. Component (JButton, etc.)
Merupakan sumber event, seperti tombol atau
input pengguna.
2. ActionEvent (Event Object)
Objek yang menyimpan informasi tentang
event yang terjadi.
3. ActionListener (Interface)
Interface yang harus diimplementasikan untuk
menangani event.
4. MyActionListener (Custom Listener)
Implementasi konkret yang menangani
event melalui metode actionPerformed().
Kode Program Analisa Program
import [Link].*;
import [Link].*;
import [Link];
import [Link];
public class SwingEventExample extends JFrame {
public SwingEventExample() {
Membuat JFrame (SwingEventExample)
setTitle("Event Handling Example"); Menentukan ukuran (setSize) dan
setSize(300, 200); operasi keluar
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); (setDefaultCloseOperation).
setLayout(new FlowLayout()); Menggunakan FlowLayout untuk
tata letak sederhana.
JButton button = new JButton("Klik Saya"); Membuat Komponen GUI
JLabel label = new JLabel("Belum diklik"); JButton – Tombol yang akan
memicu event.
[Link](new ActionListener() {
JLabel – Label untuk menampilkan
@Override
public void actionPerformed(ActionEvent e) {
teks setelah tombol ditekan.
[Link]("Tombol diklik!"); Menambahkan ActionListener
} Menggunakan
}); [Link]() untuk
add(button); menangani klik tombol.
add(label); Metode actionPerformed() akan
setVisible(true); mengganti teks label saat tombol
} diklik.
public static void main(String[] args) {
SwingEventExample sw = new SwingEventExample();
}
}
Output
Program Studi: Semester: II Tanggal:
Feb. 2025
SI 01 01 VT
Sistem Informasi
Hal
Mata Kuliah: Pemrograman 24S31
Dibuat oleh:
[Link]:
11 - 13
Java Desktop 14/02/2025 Eko Subiyantoro
11..44 KKEESSIIM
MPPUULLAAN
N
Java Swing adalah framework untuk membangun GUI aplikasi desktop.
JFrame adalah window utama, sementara JPanel digunakan sebagai container.
Event handling memungkinkan pengguna berinteraksi dengan aplikasi.
Java Swing Event Handling menggunakan ActionListener untuk menangani event.
Event Source (misalnya JButton) menghasilkan ActionEvent yang diterima oleh
ActionListener.
Dengan memahami dasar-dasar Swing, kita bisa mulai membangun aplikasi yang lebih
kompleks.
11..55 RREEFFEERRN
NSSII
1. [Link]
2. [Link]
3. [Link]
Program Studi: Semester: II Tanggal:
Feb. 2025
SI 01 01 VT
Sistem Informasi
Hal
Mata Kuliah: Pemrograman 24S31
Dibuat oleh:
[Link]:
12 - 13
Java Desktop 14/02/2025 Eko Subiyantoro
11..66 PPEEN
NYYUUSSUUN
N
Eko Subiyantoro adalah widyaiswara di BBPPMPV BOE-VEDC Malang di Departemen Teknologi
Informasi. Lahir di Banyuwangi pada tahun 1975. Pendidikan SD, SMP, dan
STM (sekarang SMK) diselesaikan di kota kelahirannya. Selanjutnya ia
menyelesaikan S1 di Program Studi Pendidikan Teknik Elektronika FPTK
IKIP Yogyakarta (sekarang UNY) pada tahun 1998. Sarjana Sains Terapan
(SST) diperolehnya melalui program beasiswa Dikmenjur (sekarang
Direktorat Pembinaan Sekolah Menengah Kejuruan) di PENS ITS
Surabaya pada tahun 2002 pada Prodi Teknologi Informasi dengan
predikat cum laude. Magister Teknik diperolehnya melalui program
beasiswa unggulan BPKLN di ITS Surabaya Program Studi Teknik Elektro
konsentrasi Jaringan Cerdas Multimedia pada tahun 2009 juga dengan
predikat cum laude. Doktor diperolehnya juga melalui beasiswa
unggulan bagi pegawai Kemdikbud di Prodi S3 Ilmu Komputer FMIPA
Universitas Gadjah Mada.
Pengalaman luar negeri diperolehnya melalui program Inwent dari pemerintah Jerman pada
tahun 2003 dalam program Advance Automation Training. Selain itu, pada tahun 2006 mengikuti
Expert Program Maintenance and Repair di Abha College Kingdom of Saudi Arabia (KSA).
Selanjutnya pada tahun 2013 melalui IGI kerja sama Indonesia–Jerman diikutkan dalam program
Modern Management School di Kassel Jerman.
Penulis memiliki pengalaman kerja di PPPPTK BOE/VEDC Malang sebagai Kepala Departemen
Teknologi Informasi selama 2 periode 2010–2013 dan 2013–2015. Selain itu juga sebagai tim
pengembang Java Education Network Indonesia (JENI), sebuah sistem yang diinisiasi BPKLN
Kemdikbud dalam kurun waktu tahun 2007–2009. Sertifikasi yang diperoleh dalam bidang
pemrograman adalah Sun Certified Java Programmer (SCJP) pada tahun 2008.
Eko Subiyantoro dapat dihubungi melalui alamat e-mail ekovedc@[Link] WA.081334456101
Program Studi: Semester: II Tanggal:
Feb. 2025
SI 01 01 VT
Sistem Informasi
Hal
Mata Kuliah: Pemrograman 24S31
Dibuat oleh:
[Link]:
13 - 13
Java Desktop 14/02/2025 Eko Subiyantoro