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 #1b – Java Swing

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

Hai semuanya, apa kabar? Kita lanjutin lagi belajar Java-nya. Terakhir, kita bahas tentang JTextArea.

Fungsinya adalah untuk mengetik teks panjang (lebih dari satu baris).

JTextArea textArea = new JTextArea();
textArea.setBounds(20, 140,250,80);
frame.add(textArea);

Sekalian kita “rapiin” juga kodingannya. Biar lebih enak dilihatnya.

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

public class Swing{
    public static void main (String[] args){
        JFrame frame = new JFrame("Aplikasi Pertamaku");
        frame.setSize(400, 450);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null); // mematikan layout manager agar setBounds bekerja
        frame.setLocationRelativeTo(null);

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

        //Input Nama
        JTextField textField = new JTextField();
        textField.setBounds(100,20,200,25);
        frame.add(textField);

        //Label Gender
        JLabel labelGender = new JLabel ("Gender");
        labelGender.setBounds (30, 60,100,30);
        frame.add(labelGender);

        //Radio Button Gender
        JRadioButton rbLaki = new JRadioButton("Laki-Laki");
        JRadioButton rbPerempuan = new JRadioButton("Perempuan");
        rbLaki.setBounds(120, 60, 100,25);
        rbPerempuan.setBounds(220, 60, 100, 25);

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

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

        //Label Kota
        JLabel labelKota = new JLabel("Kota");
        labelKota.setBounds(30,100,100,30);
        frame.add(labelKota);


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


        //Label Textarea
        JLabel labelAlamat = new JLabel("Alamat");
        labelAlamat.setBounds(30,140,100,30);
        frame.add(labelAlamat);


        //TextArea + scroll pane
        JTextArea textArea = new JTextArea();
        textArea.setLineWrap(true); //pindah baris otomatis
        textArea.setWrapStyleWord(true);
        JScrollPane scrollPane = new JScrollPane(textArea);
        scrollPane.setBounds(100, 140, 200,80);
        frame.add(scrollPane);


        //Tombol kirim     
        JButton buttonKirim = new JButton ("Kirim");
        buttonKirim.setBounds(140, 260, 100,35);
        buttonKirim.addActionListener (e -> {
           String nama = textField.getText();
           String kota = (String) comboKota.getSelectedItem();
           String gender = rbLaki.isSelected() ? "Laki-Laki": (rbPerempuan.isSelected() ? "Perempuan" : "Belum Dipilih");

           String pesan = "Halo " + nama + "\n Asal: " + kota + "\n Gender: " + gender;
           JOptionPane.showMessageDialog(frame, pesan);
        });
        frame.add(buttonKirim);


        frame.setVisible(true);
    }
}

image host
image host

Kita coba rangkum, apa aja yang ada pada kode tersebut.

JFrame – Kanvas Utama

JFrame dapat diibaratkan sebagai jendela aplikasinya. Ada metode setSize yuang digunakan untuk mengatur ukuran jendela. Ada juga konstanta (constant) EXIT_ON_CLOSE untuk memastikan aplikasi benar-benar tertutup saat tombol close (X) diklik.

JLabel

Merupakan teks yang berfungsi sebagai “papan nama” agar pengguna dapat mengetahui kotak/tombol di dekatnya digunakan untuk mengissi apa (contohnya: nama, gender, alamat, dll).

Input:

  • `JTextField“: Kotak satu baris untuk mengetik teks pendek (seperti nama).
  • JRadioButton: Pilihan opsi yang dapat dipilih salah satunya (juga menggunakan opsi ButtonGroup).
  • JComboBox: Menu dropdown yang dapat digunakan pengguna untuk memilih daftar yang sudah disediakan.
  • JTextArea: Textbox besar untuk mengetikkan teks yang lebih panjang, misalnya alamat lengkap. Dilengkapi juga dengan JScrollPane agar muncul scrollbar secara otomatis apabila konten sudah terlalu panjang.

Layouting (null layout)

Dengan perintah setLayout (null), kita dapat mengatur posisi dari objek (ditambah setBounds(x, y, lebar, tinggi)) agar kita dapat menentukan posisi dari komponen yang ditampilkan di layar.

JButton & ActionListener

Bisa diibaratkan sebagai “otak” dari aplikasi yang dibuat. Program akan mengambil semua data yang sudah diisi oleh pengguna (menggunakan fungsi .getText() atau .getSelectedItem()). Data-data tersebut digabungkan menjadi satu kalimat panjang (String pesan), kemudian ditampilkan lewat jendela pop-up kecil yang muncul di layar (JOptionPane).

setVisible – Menampilkan Aplikasi

Tanpa setVisible, walaupun kode sudah dijalankan, tapi tidak akan bisa muncul di layar.

Penutup

Begitulah ringkasan mengenai fungsi dari berbagai komponen yang ada di Java Swing. Kita sudah coba juga membuat aplikasi sederhana dari komponen-komponen tersebut. Untuk tulisan kali ini sampai di sini dulu ya. Sampai jumpa. Bye.

Leave a Reply Cancel reply

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

Tulisan saya yang lain:

  • Membuat USB Bootable di Linux Menggunakan Ventoy
  • QDevice: Cara Lain Agar Cluster 2 Node Bisa HA di Proxmox VE
  • Sakit Puskesmas
  • Coba Install Debian 12 – Bookworm

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