Bab I
Bab I
2. DASAR TEORI
The Java Foundation Class (JFC) merupakan bagian penting dari Java SDK termasuk dalam
koleksi API dimana dapat mempermudah pengembangan aplikasi JAVA GUI dan membantu
pengembang dalam mendesain dan mengimplementasikan aplikasi visual yang lebih baik.
JFC terdiri dari lima APIs utama (source:JENI):
a. AWT. d. Accessibility.
b. Swing. e. Drag and Drop.
c. Java2D.
Pada Praktikum ini, dibahas AWT dan Swing menyediakan komponen GUI yang dapat
digunakan dalam membuat aplikasi Java dan applet. Tidak seperti beberapa komponen
AWT yang menggunakan native code, keseluruhan Swing ditulis menggunakan bahasa
pemrograman Java. Swing menyediakan implementasi platform-independent dimana
aplikasi yang dikembangkan dengan platform yang berbeda dapat memiliki tampilan yang
sama. Begitu juga dengan AWT menjamin tampilan look and feel pada aplikasi yang
dijalankan pada dua mesin yang berbeda menjadi terlihat sama. Swing API dibangun dari
beberapa API yang mengimplementasikan beberapa jenis bagian dari AWT.
Kesimpulannya, komponen AWT dapat digunakan dengan komponen Swing.
Konsep dasar Pembuatan GUI :
Container (Tempat atau wadah), obyek yang dapat menampung komponen grafis dan
tempat yang lebih kecil. Contoh : Frame, panel.
Component, obyek grafis yang berfungsi untuk menampilkan data, menerima
masukan, atau menunjukkan suatu kondisi. Contoh : buttons, labels, text field.
Event, obyek yang mempresentasikan suatu kejadian. Contoh : gerakan mouse,
penekanan tombol.
Listener, suatu obyek yang ‘menunggu’ suatu kejadian khusus dan akan bereaksi
(melakukan sesuatu) jika kejadian tersebut terjadi.
55
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS MUSLIM INDONESIA
Dalam mengembangkan aplikasi GUI, komponen GUI seperti tombol atau textfield
diletakkan di dalam kontainer.
a. Beberapa kelas penting pada kontainer yang telah disediakan oleh AWT & SWING.
Tabel 6.1 AWT & SWING
AWT CLASS Deskripsi
Component Abstract Class untuk objek yang dapat ditampilkan pada console ,
berinteraksi dengang user dan bagian utama dari semua kelas AWT.
Container Abstract Subclass dari Component Class dan sebuah komponen yang
dapat menampung komponen yang lainnya.
Panel Turunan dari Container Class dan sebuah frame atau window tanpa
titlebar, menubar tidak termasuk border serta Superclass dari applet
class.
Window Turunan dari Container class. Top level window, dimana berarti tidak
bisa dimasukkan dalam objek yang lainnya dan tidak memiliki border
serta menubar.
b. Method-method yang digunakan untuk membuat window atau frame antara lain:
Tabel 6.2 Method
Methods Fungsi
void setSize(int width, int height) Untuk mengatur ukuran window,
menggunakan metode setSize.
mengubah ukuran komponen ini dengan
void setSize(Dimension d) width dan height sebagai parameter.
mengubah ukuran dengan d.width dan
d.height berdasar pada spesifikasi
Dimension d.
void setVisible(boolean b) mengatur visibility window menjadi true,
Default dari window adalah not visible atau
tak tampak. Agar panel dapat terlihat atau
visible, harus diletakkan di dalam window
yang dapat terlihat seperti sebuah frame
c. Beberapa method grafik ditemukan dalam Graphic class dan biasanya digunakan pada
Aplikasi Applet, antara lain:
d. Layout manager berfungsi untuk mengatur tampilan dari komponen di dalam container dan
menentukan posisi serta ukuran suatu komponen. Layout manager dapat diatur
menggunakan metode setLayout dari Container class. Metode ini dapat ditulis sebagai
berikut:
void setLayout(LayoutManager mgr)
Jika tidak menggunakan layout manager, dapat mengisi null sebagai argumen untuk
metode tersebut. Tetapi selanjutnya, akan mengatur posisi elemen secara manual dengan
menggunakan metode setBounds dari Components class:
public void setBounds(int x, int y, int width, int height)
Metode ini mengatur posisi berdasarkan pada argumen x dan y, dan ukuran berdasarkan
argumen width dan height. Berikut ini beberapa layout manager yang terdapat di dalam
Java.
1. FlowLayout
Tabel 6.5 Konstruktor FlowLayout
FlowLayout Constructors
FlowLayout()
Membuat objek baru FlowLayout dengan posisi di tengah dan lima unit horizontal dan
vertikal gap dimasukkan pada komponen sebagai default.
FlowLayout(int align)
FlowLayout Constructors
FlowLayout Constructors
Membuat objek baru FlowLayout dengan posisi spesifik dan lima unit horizontal dan
vertikal
gap dimasukkan pada komponen sebagai default.
FlowLayout(int align, int hgap, int vgap)
Membuat objek baru FlowLayout dengan argumen pertama sebagai posisi pada
komponen
2. BorderLayout
Tabel 6.6 Konstruktor BorderLayout
BorderLayout Constructors
BorderLayout()
Membuat objek BorderLayout baru tanpa spasi yang diaplikasikan diantara
komponen yang
berbeda.
BorderLayout(int hgap, int vgap)
Membuat objek BorderLayout baru dengan spasi unit hgap horizontal dan unit vgap
vertikal
yang diaplikasikan diantara komponen yang berbeda.
3. GridLayout
Tabel 6.7 Konstruktor GridLayout
GridLayout Constructors
GridLayout()
Membuat objek GridLayout baru dengan satu baris dan satu kolom sebagai default
GridLayout(int rows, int cols)
Membuat objek GridLayout baru dengan jumlah baris dan kolom sesuai dengan
keinginan
GridLayout(int rows, int cols, int hgap, int vgap)
Membuat objek GridLayout baru dengan jumlah baris dan kolom yang ditentukan.
Unit spasi
hgap horizontal dan vgap vertikal diaplikasikan ke dalam komponen.
4. GridBagLayout
5. CardLayout
e. Untuk membuat tampilan yang lebih komplek, dapat menggabungkan layout manager yang
berbeda dengan menggunakan panel. Panel adalah kontainer dan komponen pada saat
yang sama. Komponen dapat dimasukkan ke dalam panel dan kemudian ditambahkan
panel ke dalam region yang diinginkan di dalam kontainer.
Seperti pada package AWT, package dari Swing menyediakan banyak kelas untuk membuat
aplikasi GUI. Package tersebut dapat ditemukan di javax.swing.
Tabel 6.8 Perbedaan AWT dan Swing
NO AWT Swing
1 Komponen AWT ditulis Komponen Swing ditulis menyeluruh
sebagaian menggunakan Java menggunakan Java
2 Program GUI awalnya Program GUI ditulis menggunakan banyak kelas
dikembangkan menggunakan dari package Swing yang mempunyai tampilan
package AWT look and feel yang sama meski dijalankan pada
beda platform
3 AWT menyediakan komponen Swing menyediakan komponen yang lebih
seperti window classic menarik seperti color chooser dan option pane
4 Komponen GUI milik AWT Nama komponen Swing sama dengan nama
hampir sama persis dengan komponen AWT tetapi dengan tambahan huruf
komponen GUI milik Swing. J pada prefixnya
f. Top-level containers seperti Jframe dan Japplet dalam Swing tidak cocok dengan AWT. Ini
adalah syarat menambahkan komponen ke dalam kontainer. Jika ingin menambahkan
langsung sebuah komponen kedalam kontainer sebagai container AWT, maka gunakan
metode getContentPane dari container.
3. PERSIAPAN PRAKTIKUM
a. Instalasi Lingkungan Pengembang Aplikasi yaitu Java Development Kit (JDK) dan IDE
Netbeans.
b. Pembuatan FIle pada IDE Netbeans.
1. Klik menu File kemudian pilih New File, akan muncul tampilan sebagai berikut :
Gambar 6.1 Kota Dialog Java New File
2. Pada Categories : pilih Java dan File Types : Java Class. klik next maka akan muncul
tampilan sebagai berikut :
Gambar 6.2 Kota Dialog Java New Frame Form
3. Tulis nama file pada Class Name, jika ingin membuat package maka isi nama paket
pada bagian Package (opsional) kemudian Finish maka akan muncul tampilan sebagai
berikut :
Gambar 6.3 Halaman Editor Java Class
c. Pembuatan form window menggunakan package AWT/ Swing pada IDE Netbeans.
1. Tambahkan paket AWT/Swing pada kode program:
import java.awt.*; atau import javax.swing.*;
2. Gunakan Frame Class dengan menurunkannya ke sub kelas dengan mengggunakan
kata kunci extends Frame.
3. Method atau konstruktor pada kelas dibuat untuk desain komponen grafis yang berisi
method dari Frame Class yaitu setSize (width,height); dan setVisible(true); yang akan
membentuk sebuah window
4. Eksekusi aplikasi melalui intruksi program utama yang berisi instansiasi objek kelas.,
contoh program :
package javaa.gui.awt;
import java.awt.*;
/**
* @author Mardiyyah
*/
public class BuatJendelaAWT extends Frame{
}
}
Hasil Eksekusi :
Gambar 6.4 Hasil Eksekusi Java Class
5. Untuk menutup aplikasi secara “paksa”, klik menu Run Stop Build/Run:
[ProjectName] Stop (pilih proses yang akan ditutup).
d. Penggunaan komponen grafis pallete package AWT dan Swing pada IDE Netbeans.
1. Klik komponen grafis berdasarkan ketegori paket dan container pada pallete (sebelah
kanan window).
2. Tarik komponen tersebut menggunakan pointer lalu letakkan ke frame sehingga
komponen tersebut berada pada container panel dan frame. Lakukan pada
komponen dan paket yang berbeda.
3. Eksekusi aplikasi dengan menekan shift+f6 atau klik menu Run Run Project.
4. PELAKSANAAN PRAKTIKUM
1. Percobaan : Membuat Project dan Package
Buatlah project bernama PraktekJavaL6 pada direktori bernama NIM_ANDA
(kelanjutan praktikum5) Contoh:
Nama Direktori : 13020140001 (NIM ANDA)
Nama Project : PraktekJavaL6
Nama Package : javaa.gui.awt dan javaa.gui.swing
public SimpleForm(){
desainForm();
}
public void desainForm(){
//instansiasi objek
label = new Label("Welcome...!");
textField = new TextField("Ahlan Wasahlan..!");
button = new Button("Selamat Datang");
import java.awt.BorderLayout;
import javax.swing.*;
/**
*
* @author NIM_ANDA, NAMA_ANDA, Hari/tgl, dan waktu
*/
public class FormSwingDemo extends JFrame {
private String[] daftarNama={"Bulqis","Zam","Ken"};
private String[]
daftarFak={"FIK","FT","FTI","FK","FKG"};
private JMenuBar menuBar;
private JMenu menu;
private JMenuItem menuitem;
private JLabel lNim, lNama,lsandi,lgender, ljml,
//sambung
lFak,lstatus,lMemo,lslider,lprogrss;
Modul Praktikum Pemrogram Java Lanjut 2016 66
private JTextField txtNim;
private JList listNama;
private JPasswordField sandi;
private JCheckBox cbGender1, cbGender2;
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS MUSLIM INDONESIA
// lanjutan
lFak,lstatus,lMemo,lslider,lprogrss;
private JTextField txtNim;
private JList listNama;
private JPasswordField sandi;
private JCheckBox cbGender1, cbGender2;
private JRadioButton status;
private JTextArea memo;
private JComboBox choiceFak ;
private JButton btnTutup;
private JProgressBar progressbar;
private JSlider slider;
private JSpinner spin;
private JPanel pnlKomponen1;
private JPanel pnlKomponen2;
private JPanel pnlButton;
public FormSwingDemo() {
desainJendela();
}
void desainJendela(){//instansiasi objek komponen grafis
pnlKomponen1 = new JPanel();
pnlKomponen2 = new JPanel();
pnlButton = new JPanel();
menuBar = new JMenuBar();
menu = new JMenu("File");
menuitem = new JMenuItem("Simpan");
lNim = new JLabel ("NIM : ");
lNama = new JLabel ("Nama : ");
lsandi = new JLabel ("Sandi : ");
lgender = new JLabel("Gender : ");
lFak = new JLabel ("Fakultas : ");
ljml = new JLabel ("Jumlah : ");
lstatus = new JLabel("Status : ");
lMemo = new JLabel ("Pesan : ");
lslider = new JLabel("Slider : ");
lprogrss= new JLabel("ProgreessBar: ");
txtNim = new JTextField(10);
sandi = new JPasswordField(10);
cbGender1 = new JCheckBox("Pria");
cbGender2 = new JCheckBox("Wanita");
status = new JRadioButton("aktif");
listNama = new JList(daftarNama);
memo = new JTextArea(5, 5);
choiceFak = new JComboBox();
progressbar = new JProgressBar();
slider = new JSlider(0, 50);
btnTutup = new JButton("Ini tombol button !!!");
spin = new JSpinner();
//mengatur posisi tampilan window
setLocation(100, 100);
setSize(800, 250);
setTitle("Komponen Grafis");//menentukan judul window
//menambah komponen pada panel
pnlKomponen1.add(lNim); //sambung
// lanjutan
pnlKomponen1.add(txtNim);
pnlKomponen1.add(lNama);
pnlKomponen1.add(listNama);
pnlKomponen1.add(lsandi);
pnlKomponen1.add(sandi);
pnlKomponen1.add(lgender);
pnlKomponen1.add(cbGender1);
pnlKomponen1.add(cbGender2);
pnlKomponen1.add(lFak);
pnlKomponen1.add(choiceFak);
pnlKomponen1.add(ljml);
pnlKomponen1.add(spin);
pnlKomponen2.add(lstatus);
pnlKomponen2.add(status);
pnlKomponen2.add(lMemo);
pnlKomponen2.add(memo);
pnlKomponen2.add(lslider);
pnlKomponen2.add(slider);
pnlKomponen2.add(lprogrss);
pnlKomponen2.add(progressbar);
pnlButton.add(btnTutup);
// menambah menu
menu.add("Baru");
menu.add(menuitem);
// menambah menu pada menubar
menuBar.add(menu);
// menambah atau mengatur menubar pada frame
setJMenuBar(menuBar);
pack();
}
public static void main(String[] args) {
setDefaultLookAndFeelDecorated(true); //style window
new FormSwingDemo().setVisible(true);
}
}
package javaa.gui.swing;
import java.awt.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
/**
*
* @author NIM_ANDA, NAMA_ANDA, Hari/tgl, dan waktu
*/
public FormLayoutDemo() {
//invokasi method
desainForm();
}
void desainForm() {
//model tabel
tabel.setModel(tabelMode);
tab.setSize(100, 100);
/* North Panel */
//Panels menggunakan FlowLayout sebagai default
panelNorth.add(tab); //sambung
panelNorth.add(new JFormattedTextField("ini
Modul Praktikum Pemrogram
FormattedTextFieldJava Lanjut 2016
!!!")); 69
String name = optionPane.showInputDialog(
"Assalamu alaykum,,hi.. what's your name?");
optionPane.showMessageDialog(null,
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS MUSLIM INDONESIA
//lanjutan
panelNorth.add(new JFormattedTextField("ini
FormattedTextField !!!"));
/* Center Panel */
//Panels menggunakan GridLayout
panelCenter.setLayout(new GridLayout(4, 4));
panelCenter.add(new TextField("1st TextField"));
panelCenter.add(new TextField("2nd TextField"));
panelCenter.add(new Checkbox("chk1", cbg, false));
panelCenter.add(new Checkbox("chk2", cbg, true));
/* South Panel */
//Panels menggunakan BorderLayout
panelSouth.setLayout(new BorderLayout());
panelSouth.add(new Checkbox("centang ini !!!"),
BorderLayout.CENTER);
panelSouth.add(new Checkbox("checklist!"),
BorderLayout.EAST);
panelSouth.add(new Checkbox("silahkan pilih!"),
BorderLayout.WEST);
package javaa.gui.applet;
import java.applet.*;
import java.awt.*;
/**
*
* @author NIM_ANDA, NAMA_ANDA, Hari/tgl, dan waktu
*/
public class AppletGUI1 extends Applet{
BorderLayout bl; //Manager Layout
Button t1, t2, t3, t4, t5;
// method untuk memulai eksekusi aplikasi applet
public void init(){
bl = new BorderLayout(5, 10);
t1 = new Button("Tombol 1");
t2 = new Button("Tombol 2");
t3 = new Button("Tombol 3");
t4 = new Button("Tombol 4");
t5 = new Button("Tombol 5");
setLayout(bl);
add("North", t1);
add("South", t2);
add("East", t3);
add("West", t4);
add("Center", t5);
}
}
package javaa.gui.applet;
import java.applet.Applet;
import java.awt.*;
/**
*
* @author NIM_ANDA, NAMA_ANDA, Hari/tgl, dan waktu
*/
public class AppletGUI2 extends Applet {
//membuat tombol atau command button
Button tombol = new Button("Tombol Button");
//membuat kotak ce atau checkbox
Checkbox cekA = new Checkbox("Cek Pertama");
Checkbox cekB = new Checkbox("Cek Kedua");
//membuat option button
CheckboxGroup opsi = new CheckboxGroup();
Checkbox opsi1 = new Checkbox("Opsi satu", opsi, true);
Checkbox opsi2 = new Checkbox("Opsi dua", opsi, false);
Checkbox opsi3 = new Checkbox("Opsi tiga", opsi, false);
//membuat combo
Modul Praktikum Pemrogram box2016
Java Lanjut 71
Choice pilih = new Choice();
//menambah gambar
Image gambar;
//membuat label
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS MUSLIM INDONESIA
5. LATIHAN
1. Praktekkan dan Amati hasil dari kode Program sebagai berikut!
add(chooser);
add(new Scrollbar());
setLocation(150,150);
setTitle("Aplikasi FrameWControls");
pack();
}
public static void main(String args[]) {
javax.swing.JFrame.setDefaultLookAndFeelDecorated(true);
new FrameWControls("FrameWControls").setVisible(true);
}
}
6. TUGAS
1. Buatlah Aplikasi Java GUI menggunakan paket SWING dan AWT yang menampilkan
Desain Form sebagai berikut :
2. Buatlah Aplikasi Java GUI menggunakan paket Applet yang menampilkan Desain Form
sebagai berikut :