Skip to content

zaidan's blog

a newbie, writing IT-related stuff and some personal experiences

Menu
  • IT
  • Personal life/opinion
  • Linux
  • Sepeda
  • Proxmox
  • VM/Container
  • Kuliah/Catatan Kuliah
Menu

Pemrograman Visual #1 – Java Swing

Posted on 27/03/202624/03/2026 by Zaidan

Java Swing adalah sekumpulan packages yang digunakan untuk membuat aplikasi desktop yang dilengkapi dengan GUI. Nama packages-nya adaldah javax.swing.

Komponen Dasar Swing

Sambil kita belajar jenis-jenis komponen yang ada, kita sekalian coba juga di BlueJ.

Untuk belajar materi kali ini, kita buat class baru, lalu buat terlebih dahulu “struktur” utama kodenya:

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Swing{
    public static void main (String[] args){
        //tuliskan kode di sini
    }
}
  • import javax.swing.*;. Untuk memanggil semua kelas (*) yang ada di paket swing. Isinya bermacam-macam seperti frame, label, button, dan lain-lain.
  • import java.awt.event.ActionEvent;. Fungsinya adalah memanggil kelas ActionEvent* yang digunakan untuk menangani action* seperti klik tombol. Bisa dibilang semacam “sensor” yang menangkap kejadian.
  • import java.awt.event.ActionListener;. Memanggil ActionListener yang berisi method actionPerformed yang akan dijalankan secara otomatis apabila terjadi aksi. Bisa diibaratkan sebagai perintah yang harus dijalankan apabila ada aksi yang dilakukan, seperti klik tombol.
  • public class Swing{. Deklarasi kelas dengan nama Swing. Nama kelas harus sama dengan nama file (pada pengujian kali ini naman filenyaSwing.java).
  • public static void main(String[] args) { ... }. Merupakan method utama yang pertama kali dijalankan saat program dimulai.

Nantinya, kode bisa dituliskan/dicoba pada bagian //tuliskan kode di sini

JFrame

Fungsinya adalah sebagai tempat untuk menampung komponen lain. Dapat diibaratkan sebagai “kanvas”.

JFrame frame = new JFrame("Testing Aplikasi");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

image host

JLabel

Fungsinya adalah untuk labeling atau menampilkan teks/gambar.

        JFrame frame = new JFrame("Aplikasi Pertamaku");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null); // mematikan layout manager agar setBounds bekerja

        JLabel label = new JLabel("Zaidan");
        label.setBounds(100, 50, 100, 30); // merupakan posisi label (x, y, lebar, tinggi)
        frame.add(label);

        frame.setVisible(true);

image host

setBounds merupakan perintah untuk menentukan lokasi dan ukuran komponen (misalnya label teks) dalam jendela aplikasi.
setLayout(null); digunakan agar setBounds dapat diterapkan. Java memiliki Layout Manager yang akan mengabaikan setBounds apabila tidak bernilai null.

JTextField

Fungsinya adalah tempat di mana pengguna mengetik teks pendek.

        JTextField textField = new JTextField();
        textField.setBounds(120,20,150,25);
        frame.add(textField);

image host

JButton

Digunakan untuk menjalankan aksi saat diklik (baca: tombol).

...
        JLabel label = new JLabel("Nama");
        label.setBounds(80, 20, 100, 30); // merupakan posisi label (x, y, lebar, tinggi)
        frame.add(label);

        JTextField textField = new JTextField();
        textField.setBounds(120,20,150,25);
        frame.add(textField);

        JButton button = new JButton ("Kirim");
        button.setBounds(120, 60, 100,30);
        button.addActionListener (e -> {
            String nama = textField.getText();
            JOptionPane.showMessageDialog(frame, "Halo " + nama);
        });
        frame.add(button);

        frame.setVisible(true);
...

image host

image host

  • JButton: Membuat tombol dengan nama “Kirim”.
  • addActionListener: Mirip seperti “pendengar” yang menunggu sampai tombol diklik.
  • e -> {...}: Kode yang akan dijalankan saat tombol diklik.
  • textField.getText(): Perintah untuk mengambil teks yang dimasukkan pada kotak teks.
  • JOptionPane.showMessageDialog: Perintah untuk memunculkan dialog box.

JRadioButton

Berfungsi untuk memilih salah satu dari beberapa opsi yang ada.

...
        JRadioButton rbLaki = new JRadioButton("Laki-Laki");
        JRadioButton rbPerempuan = new JRadioButton("Perempuan");
        rbLaki.setBounds(20, 60, 100,25);
        rbPerempuan.setBounds(120, 60, 100, 25);

        ButtonGroup bg = new ButtonGroup();
        bg.add(rbLaki);
        bg.add(rbPerempuan);

        frame.add(rbLaki);
        frame.add(rbPerempuan);
...

image host

  • JRadioButton: Menyiapkan dua pilihan (Laki-Laki dan Perempuan).
  • rbLaki/Perempuan.setBounds: Mengatur posisi/koordinat pilihan.
  • ButtonGroup: Grup yang mengikat radio buttons tersebut. Dengan ButtonGroup, hanya satu opsi saja yang dapat dipilih. ButtonGroup berupa objek logika, jadi tidak muncul di layar.
  • frame.add: Untuk menampilkan pilihan/radio button ke layar.

JComboBox

Berfungsi sebagai pilihan yang bisa di-scroll (dropdown menu).

...
        String[] Kota = {"Jakarta", "Bogor", "Depok", "Tangerang", "Bekasi"};
        JComboBox<String> comboKota = new JComboBox<>(Kota);
        comboKota.setBounds (100,100,150,25);
        frame.add(comboKota);
...

image host

  • String[]Kota {...}: Membuat tempat yang berisi pilihan (berupa array);
  • JComboBox<String> comboKota = new JComboBox<>(Kota);: Komponen dropdown-nya berupa teks/string dan berisi array yang sudah dibuat sebelumnya.
  • comboKota.setBounds: Menentukan posisi dari menu dropdown.

Untuk tulisan kali ini sampai di sini dulu ya. Kita lanjutkan di tulisan yang akan datang. Sampai jumpa. Bye.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Tulisan saya yang lain:

  • Migrasi VM ke Proxmox VE Menggunakan Clonezilla
  • Instalasi Web Server Apache pada VM (Proxmox VE)
  • Percobaan HA Proxmox VE dengan 2 Server + Qdevice – part 2
  • Ayam Penyet Surabaya

Kategori

  • Asciidoc
  • Docker
  • IT
  • jaringan
  • Kuliah/Catatan Kuliah
  • Linux
  • Mail Server
  • Makanan/Minuman
  • Nakivo
  • Personal life/opinion
  • Proxmox
  • RedHat
  • Sepeda
  • SSL
  • Uncategorized
  • Vinchin
  • VM/Container
  • VMWare
  • Windows
  • XCP-ng

Arsip blog

  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023

© 2026 zaidan's blog | Powered by Superbs Personal Blog theme