Upload
vanny-elsyavitriani-bowo
View
255
Download
5
Embed Size (px)
Citation preview
BAB 9
GUI
BAB 9
GUI BAB 9
GUI
9.1 GUI
9.1.1 Definisi
Graphical User Interface atau yang biasa dikenal dengan GUI
merupakan sebuah mekanisme interaksi yang mudah antara pengguna
dan aplikasinya. Dengan GUI aplikasi menjadi lebih mudah digunakan,
dikuasai dan jauh lebih efisien penggunaannya.
Di dalam Java terdapat dua fasilitas untuk menerapkan, yaitu
dengan menggunakan class dari AWT (Abstract Windowing Toolkit)
dan Swing. AWT berisi komponen-komponen GUI yang menggunakan
native code, sehingga jauh lebih berat dan platform-dependent.
Sedangkan Swing sebagian besar ditulis dengan Java sehingga lebih
ringan dan platform-independent.
9.1.2 Komponen Swing
Berikut adalah tabel yang memaparkan beberapa kompnen GUI
yang terdapat di dalam package javax.swing.
Komponen Deskripsi
JLabel Menampilkan teks atau ikon yang tidak dapat disunting.
JTextField Sebagai masukan pengguna lewat keyboard. Bisa juga untuk menampilkan teks yang dapat/tidak dapat disunting
JTextArea Sama seperti JTextField namun dapat diatur menjadi teks multibaris.
JButton Memacu event ketika diklik.
153
Dasar PEMROGRAMAN JAVA
GUI BAB 9
JCheckBox Berupa pilihan yang bisa dipilih ataupun tidak.
JComboBox Menyediakan pilihan drop-down yang bisa dipilih oleh pengguna.
JList Menyediakan sejumlah pilihan yang bisa dipilih pengguna. Komponen JList memungkinkan pengguna untuk memilih lebih dari satu.
JPanel Sebagai tempat bagi komponen-komponen, bisa juga sebagai area gambar.
9.1.3 Menangani GUI Event
Aplikasi berbasiskan GUI merupakan aplikasi yang
dikendalikan oleh event (event driven). Ketika pengguna berinteraksi
dengan komponen GUI, maka interaksi yang disebut event tersebut
memperintahkan aplikasi untuk melakukan sejumlah tugas. Event
dapat berupa tombol mouse yang diklik, papan keyboard yang ditekan
ataupun pergerakan mouse. Kode program yang menangani event yang
terjadi disebut event-handler. Berikut adalah salah satu contoh class
penerapan event handler dengan menggunakan class tersarang.
private class eventHandler implements ActionListener {
public void static actionPerformed(ActionEvent event) {
.
.
154
Dasar PEMROGRAMAN JAVA
GUI BAB 9
.
}
}
Class tersebut dideklarasikan didalam aplikasi GUI dan
merupakan class private yang hanya bisa diakses dari dalam class yang
memuatnya. Class tersebut mengiplementasikan interface
ActionListener yang memiliki sebuah metode static bernama
actionPerformed(ActionEvent event). Metode inilah yang nantinya diisi
dengan kode program yang menangani sejumlah event yang terjadi
9.2 PRAKTIKUM
I. JUDUL
GUI
II. TUJUAN
Memahami dasar program pembuatan GUI
Menyelesaikan suatu permasalahan dengan metode GUI
III. ALAT DAN BAHAN
Laptop
Compiler J-Creator
IV. LANGKAH KERJA
1. Membuka software JCreator
2. Klik File pada menu bar kemudian New Project
155
Dasar PEMROGRAMAN JAVA
GUI BAB 9
3. Pada Project Wizard. Pilih Basic Java Aplication, kemudian Next
4. Tulis judul project yang diinginkan, kemudian next lalu tekan
Finish
156
Dasar PEMROGRAMAN JAVA
GUI BAB 9
5. Tulis program dibawah Public Static Void
6. Untuk membuat file baru dalam suatu project, caranya dengan
mengklik Add New File
7. Kemudian, pilih Main class seperti dibawah ini, kemudian Next
157
Dasar PEMROGRAMAN JAVA
GUI BAB 9
8. Beri Nama pada file batu, kemudian Finish. Maka file baru telah
dibuat.
9. Tulis program yang ingin kita jalankan
10. Klik Build File, kemudian Run File untuk menjalankan program
11. Lihat hasilnya pada Menu Bar General Output
12. Membuat program untuk soal pada halaman berikut :
1. Buat program untuk melakukan konversi dari suatu ukuran
panjang [cm] menjadi [inch]. Pergunakan suatu Frame dengan
Title: “Konversi dari cm ke inch”. Gunakan sebuah Label dan
sebuah Text Field untuk komponen input, serta sebuah Label
dan sebuah Text Field untuk komponen output program.
Sebagai komando pelaksanaan konversi pergunakan suatu
tombol (Button).
2. Buat program untuk melakukan konversi dari besaran
temperatur Celsius menjadi Rheamur dan Fahrenheit. Tentukan
sendiri komponen-komponen grafis yang anda perlukan.
3. Buat program untuk menerapkan hukum OHM seperti yang
anda telah pelajari pada pelajaran Rangkaian Listrik. Sebagai
besaran input diberikan nilai tegangan dengan satuan Volt dan
besar resistansi dengan satuan Ohm. Selanjutnya program akan
158
Dasar PEMROGRAMAN JAVA
GUI BAB 9
menghitung besar arus listrik yang mengalir pada rangkaian
seri V dan R (pergunakan hukum OHM). Tentukan sendiri
komponen-komponen grafis yang anda perlukan.
4. Buat program untuk menghitung nilai resistansi total, jika
sebagai input diberikan 4 resistor yang dihubungkan secara
paralel.
V. PEMBAHASAN DAN HASIL PERCOBAAN
Jawaban Java
1. import javax.swing.JFrame;
import java.awt.FlowLayout;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class test extends JFrame {
private final double satuInch = 2.54;
private JLabel labelA, labelB;
private JTextField textFieldA, textFieldB;
private JButton buttonKonversi, buttonKeluar;
public test() {
super("Konversi Centimeter ke Inchi");
this.setLayout(new FlowLayout());
this.setSize(200,120);
labelA = new JLabel("Cm =");
labelB = new JLabel("Inch =");
textFieldA = new JTextField(11);
159
Dasar PEMROGRAMAN JAVA
GUI BAB 9
textFieldB = new JTextField(11);
buttonKonversi = new JButton("Konversi!");
buttonKeluar = new JButton("Keluar");
buttonHandler handler = new buttonHandler();
buttonKonversi.addActionListener(handler);
buttonKeluar.addActionListener(handler);
this.add(labelA);
this.add(textFieldA);
this.add(labelB);
this.add(textFieldB);
this.add(buttonKonversi);
this.add(buttonKeluar);
}
private class buttonHandler implements ActionListener {
public void actionPerformed(ActionEvent event) {
if(event.getSource().equals(buttonKonversi)) {
int Cm =
Integer.parseInt(textFieldA.getText());
double Inch = Cm/satuInch;
textFieldB.setText(String.format("%.10f",Inch));
} else
if(event.getSource().equals(buttonKeluar)) {
System.exit(0);
}
}
}
160
Dasar PEMROGRAMAN JAVA
GUI BAB 9
public static void main(String[] args) {
test frameLat4 = new test();
frameLat4.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
frameLat4.setLocationRelativeTo(null);
frameLat4.setVisible(true);
}}
Hasil output :
2. import javax.swing.JFrame;// untuk membuat
import java.awt.FlowLayout;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class test extends JFrame {
private final double satuInch = 2.54;//nilai 1 inch sebesar 2,54
cm
private JLabel labelA, labelB, labelC;//Deklarasi label
161
Dasar PEMROGRAMAN JAVA
GUI BAB 9
private JTextField textFieldA, textFieldB, textFieldC;
private JButton buttonKonversi, buttonKeluar;
public test() {
super("Konversi Suhu");
this.setLayout(new FlowLayout());
this.setSize(200,120);
labelA = new JLabel("Reamur");
labelB = new JLabel("Fahrenheit");
labelC = new JLabel("Kelvin");
textFieldA = new JTextField(11);
textFieldB = new JTextField(11);
textFieldC = new JTextField(11);
buttonKonversi = new JButton("Konversi!");
buttonKeluar = new JButton("Keluar");
buttonHandler handler = new
buttonHandler();//tombol untuk mengeset perintah apa yang di
klik dari tombol keyboard
buttonKonversi.addActionListener(handler);
buttonKeluar.addActionListener(handler);
this.add(labelA);
this.add(textFieldA);
this.add(labelB);
this.add(textFieldB);
this.add(buttonKonversi);
this.add(buttonKeluar);
}
private class buttonHandler implements ActionListener {
public void actionPerformed(ActionEvent event) {
162
Dasar PEMROGRAMAN JAVA
GUI BAB 9
if(event.getSource().equals(buttonKonversi)) {
int Cm =
Integer.parseInt(textFieldA.getText());
double Inch = Cm/satuInch;
textFieldB.setText(String.format("%.10f",));//10-jumlah angka
dibelakang koma
textFieldc.setText(String.format("%.10f",));
} else
if(event.getSource().equals(buttonKeluar)) {
System.exit(0);
}
}
}
public static void main(String[] args) {
konversisuhu frameLat4 = new konversisuhu();
frameLat4.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
frameLat4.setLocationRelativeTo(null);
frameLat4.setVisible(true); }}
Hasil output :
163
Dasar PEMROGRAMAN JAVA
GUI BAB 9
3. import javax.swing.JFrame;
import java.awt.FlowLayout;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class konversitegangan extends JFrame {
private JLabel labelA, labelB, labelC;//Deklarasi label
private JTextField textFieldA, textFieldB, textFieldC;
private JButton buttonKonversi, buttonKeluar;
public konversitegangan() {
super("Konversi Hambatan, Arus, Tegangan");
this.setLayout(new FlowLayout());
this.setSize(200,120);
labelA = new JLabel("Hambatan");
labelB = new JLabel("Arus");
labelC = new JLabel("Tegangan");
textFieldA = new JTextField(11);
textFieldB = new JTextField(11);
textFieldC = new JTextField(11);
buttonKonversi = new JButton("Konversi!");
buttonKeluar = new JButton("Keluar");
buttonHandler handler = new
buttonHandler();//tombol untuk mengeset perintah apa yang di
klik dari tombol keyboard
buttonKonversi.addActionListener(handler);
164
Dasar PEMROGRAMAN JAVA
GUI BAB 9
buttonKeluar.addActionListener(handler);
this.add(labelA);
this.add(textFieldA);
this.add(labelB);
this.add(textFieldB);
this.add(labelC);
this.add(textFieldC);
this.add(buttonKonversi);
this.add(buttonKeluar);
}
private class buttonHandler implements ActionListener {
public void actionPerformed(ActionEvent event) {
if(event.getSource().equals(buttonKonversi)) {
int Hambatan =
Integer.parseInt(textFieldA.getText());
double Arus =
Integer.parseInt(textFieldB.getText());
double Tegangan = Arus*Hambatan;
textFieldB.setText(String.format("%.10f",Arus));//10-
jumlah angka dibelakang koma
textFieldC.setText(String.format("%.10f",Tegangan));
} else
if(event.getSource().equals(buttonKeluar)) {
System.exit(0);
}
}
}
public static void main(String[] args) {
165
Dasar PEMROGRAMAN JAVA
GUI BAB 9
konversitegangan frameLat4 = new konversitegangan();
frameLat4.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
frameLat4.setLocationRelativeTo(null);
frameLat4.setVisible(true); }}
Hasil output :
4. import javax.swing.JFrame;
import java.awt.FlowLayout;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//deklarasi rumus utama, pake label, textfield,dll
public class Resp extends JFrame {
private JLabel labelA, labelB, labelC, labelD, labelE;
private JTextField textFieldA, textFieldB, textFieldC, textFieldD,
textFieldE;
private JButton buttonKonversi, buttonKeluar;
//buat judul frame
public Resp() {
super("Hukum Ohm");
//buat nulis sis frame, ukuran frame
this.setLayout(new FlowLayout());
166
Dasar PEMROGRAMAN JAVA
GUI BAB 9
this.setSize(200,120);
labelA = new JLabel("R1(Ohm) =");
labelB = new JLabel("R2(Ohm)=");
labelC = new JLabel("R3(Ohm) =");
labelD = new JLabel("R4(Ohm)=");
labelE = new JLabel("RPtotal (Ohm)=");
textFieldA = new JTextField(11);
textFieldB = new JTextField(11);
textFieldC = new JTextField(11);
textFieldD = new JTextField(11);
textFieldE = new JTextField(11);
buttonKonversi = new JButton("Hitung");
buttonKeluar = new JButton("Keluar");
buttonHandler handler = new buttonHandler();
buttonKonversi.addActionListener(handler);
buttonKeluar.addActionListener(handler);
//mengatur posisi label, dll
this.add(labelA);
this.add(textFieldA);
this.add(labelB);
this.add(textFieldB);
this.add(labelC);
this.add(textFieldC);
this.add(labelD);
this.add(textFieldD);
this.add(labelE);
this.add(textFieldE);
this.add(buttonKonversi);
167
Dasar PEMROGRAMAN JAVA
GUI BAB 9
this.add(buttonKeluar);
}
//jalanin button buat konversinya sama buat keluar
private class buttonHandler implements ActionListener {
public void actionPerformed(ActionEvent event) {
if(event.getSource().equals(buttonKonversi)) {
double R1 =
Integer.parseInt(textFieldA.getText());
double R2 =
Integer.parseInt(textFieldB.getText());
double R3 =
Integer.parseInt(textFieldC.getText());
double R4 =
Integer.parseInt(textFieldD.getText());
double RPtotal
=1/((1/R1)+(1/R2)+(1/R3)+(1/R4));
textFieldE.setText(String.format("%.2f",RPtotal));
} else
if(event.getSource().equals(buttonKeluar)) {
System.exit(0);
}}}
//buat keluar dari frame
public static void main(String[] args) {
Resp frameGUI1 = new Resp();
frameGUI1.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
frameGUI1.setLocationRelativeTo(null);
168
Dasar PEMROGRAMAN JAVA
GUI BAB 9
frameGUI1.setVisible(true); }}
Hasil output :
169
Dasar PEMROGRAMAN JAVA