bab 9 (gui ).docx

23
BAB 9 GUI

Upload: vanny-elsyavitriani-bowo

Post on 05-Jan-2016

256 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: BAB 9 (GUI ).docx

BAB 9

GUI

BAB 9

Page 2: BAB 9 (GUI ).docx

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

Page 3: BAB 9 (GUI ).docx

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

Page 4: BAB 9 (GUI ).docx

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

Page 5: BAB 9 (GUI ).docx

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

Page 6: BAB 9 (GUI ).docx

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

Page 7: BAB 9 (GUI ).docx

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

Page 8: BAB 9 (GUI ).docx

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

Page 9: BAB 9 (GUI ).docx

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

Page 10: BAB 9 (GUI ).docx

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

Page 11: BAB 9 (GUI ).docx

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

Page 12: BAB 9 (GUI ).docx

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

Page 13: BAB 9 (GUI ).docx

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

Page 14: BAB 9 (GUI ).docx

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

Page 15: BAB 9 (GUI ).docx

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

Page 16: BAB 9 (GUI ).docx

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

Page 17: BAB 9 (GUI ).docx

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

Page 18: BAB 9 (GUI ).docx

GUI BAB 9

frameGUI1.setVisible(true); }}

Hasil output :

169

Dasar PEMROGRAMAN JAVA