Anda di halaman 1dari 27

LAPORAN RESMI

PRAKTIKUM PEMROGRAMAN BERORIENTASI


OBYEK
MODUL 5

“GUI 1 DAN EVENT HANDLER”

Disusun Oleh :

TGL. PRAKTIKUM : 23 November 2015


NAMA : CHANDRA FEBRYAN PUTRA
NRP : 140411100029
KELOMPOK : B1

TELAH DISETUJUI TANGGAL :


Bangkalan, 30 November 2015
Asisten Praktikum

Mohammad Supandi
(120411100027)

LABORATORIUM COMMON COMPUTING

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK

UNIVERSITAS TRUNOJOYO MADURA

2015-2016

BAB I

PENDAHULUAN

1.1 Latar Belakang


GUI merupakan kepanjangan dari Graphical User Interface
dimana GUI digunakan untuk mempercantik tampilan dari sebuah
program,selain itu GUI digunakan untuk mempermudah user
dalam menggunakan program
1.2 Tujuan
1. Mahasiswa dapat memahami penggunaan GUI dengan implementasi
konsep-konsep PBO

2. Mahasiswa dapat memahami penggunaan Event-Handler


BAB II
DASAR TEORI
GUI
Graphical User Interface (GUI), merupakan interface grafis

fungsional yang diperuntukkan untuk memudahkan operasional

sebuah aplikasi bagi penggunanya dengan pendekatan WYSWYG.

Pemrograman interface GUI di Java diawali dengan pengembangan

container Java AWT, yang berkembang sampai versi 2. AWT terdiri

atas komponen-komponen grafis dasar sehingga sangat sesuai untuk

pengembangan multi platform namun ketersediaan komponen

terbatas. Hirarki komponen AWT ditunjukkan pada Gambar …

berikut:

Saat ini untuk pengembangan container GUI lebih dititik beratkan

pada platform Swing atau Jswing atau Java Frame Container (JFC).

Java Swing merupakan perkakas GUI turunan AWT yang sangat

lengkap dan siap pakai dengan kelengkapan berbagai fitur komponen

yang mudah penggunaannya.

Komponen utama yang digunakan sebagai kontainer peletakan

komponen adalah Frame sebagai windows dan Panel sebagai pemaket

komponen. Diantara komponen yang tersedia didalam container

Swing:
pemrograman GUI ditentukan secara hirarki sesuai dengan

peletakan komponen GUI Java sebagaimana ditunjukkan pada

Gambar
Sesuai dengan hirarki tersebut, semua aplikasi GUI JSwing

menggunakan Jframe sebagai komponen dasar window tampilan GUI

serta container komponen lainnya. Sedangkan untuk penempatan

komponen didalam Jframe digunakan panel-panel dari komponen

Jpanel sehingga komponen mudah untuk diatur sesuai dengan layout

dengan menggunakan pemanggilan content pane.

Pada tiap komponen GUI terdapat properti untuk

mengkonfigurasikan tampilan dan bentuk komponen seperti untuk

frame memiliki berbagai properti sebagai berikut:


 Mengatur warna : frame.setBackground(Color.yellow);

 Mengatur ukuran : frame.setSize(300, 400);

 Mengatur kursor : frame.setCursor(teks.getCursor());


 Mengatur tampilan : frame.setVisible(true);

 Menentukan kondisi ketika close:


f.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

 Dan berbagai properti lainnya.

Selain mengatur dan menentukan properti yang dimiliki oleh

setiap komponen, pengaturan posisi komponen juga sangat penting

untuk menjaga kualitas tampilan GUI. Pengaturan tampilan

dilakukan menggunakan aturan layout pada container frame, dimana

terdapat beragam jenis layout sebagai pilihan, diantaranya:


 Flowlayout: bentuk layout yang paling sederhana, dimana setiap
komponen akan mengalir secara dinamis mengikuti line horizontal.

 BorderLayout: bentuk layout mengikuti garis mata angin yang


terdiri atas: center, North, South, West dan East.

Contoh:

 panel.add(aComponent, BorderLayout.CENTER);
 panel.add(anotherComponent, BorderLayout.SOUTH);

 GridLayout: bentuk layout jumlah mengikuti dimensi baris-kolom,


dan pengembangannya terdapat beberapa tipe layout seperti:
GridBagLayout serta BoxLayout. Contoh apabila ditentukan baris
kolom 2x2 maka peletakan komponen akan diatur sesuai dimensi baris
kolom sebagaimana Gambar berikut:

Contoh:

 Panel p = new Panel(new GridLayout(2, 2));


2.1 Event Handler
Komponen-komponen hanyalah sebuah tampilan grafis apabila

tidak memiliki event-handler, dimana event-handler berfungsi untuk

memberikan event kejadian pada komponen seperti: click,exit,dll.

dan dibagian lainnya terdapat listener untuk mendengarkan setiap

event serta kemudian memberikan action.

Pemberian event-handler dapat dilakukan secara global melalui

implementasi interface event-handler, sebagaimana contoh berikut:

Sedangkan secara local yang biasa disediakan oleh IDE GUI


seperti

NetBeans:
Sedangkan secara local yang biasa disediakan oleh IDE GUI
seperti

NetBeans:

Sedangan cara lainnya, Event-Handler juga terdapat pada


berbagai interface default seperti halnya event-handler untuk mouse
atau keyboard. Contoh event-handler untk mouse:
BAB III

TUGAS PENDAHULUAN

3.1 Soal
1. Jelaskan apa itu tipe data collection !
2. Apa fungsi dari operator “< >”diamond dalam collection ?
3. Jelaskan perbedaan antara list dan map !
4. Apa itu interface comparable ?
4.2 Jawab
1. Tipe data collection merupakan tipe data yang berupa rangkaian
atau kumpulan data yang terindeks. Tipe data collection di gunakan untuk
menyimpan objek dan objek yang ada dalam data collection di sebut
elemen.
2. Fungsi dari operator “< >” diamond adalah sebagai batasan dalam
penggunaan tipe data collection. Operator ini membatasi collection hanya
memiliki satu tipe objek.
3. List merupakan bentuk collection objek yang mampu
mengelompokkan tipe data yang sama atau berbeda.
Map merupakan bentuk collection objek yang mampu menampung data
dalam bentuk berpasangan berdasarkan index (Value dan Key nya).
4. Interface comperable adalah sebuah fungsi yang
mengimplementasikan interface comparable dalam sebuah class, sehingga
objek tersebut dapat di bandingkan.
BAB IV

IMPLEMENTASI

4.1 Kegiatan Praktikum


1. Buatlah desain-desain sederhana GUI dengan menggunakan flow-layout,
dan
2. Terapkan layout sederhana dengan menggunakan GridLayout,
sebagaimana code program berikut ini:
3. Dari hasil aplikasi GUI yang dihasilkan source code tersebut lakukanlah
modifikasi untuk memperbaiki tampilan dan tambahan fungsionalnya
sesuai yang anda inginkan.
4.2 Tugas Praktikum

 Soal
1. Buatlah kalkulator untuk operasional dasar penjumlahan, pengurangan,
pembagian dan perkalian dengan menggunakan scratch code.
 Jawab

Source Code
package calculator;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.GridLayout;
import java.awt.TextField;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class GUIcalc {


public Button
but_0,but_1,but_2,but_3,but_4,but_5,but_6,but_7,but
_8,but_9,but_tambah,but_kali,but_bagi,but_kurang,bu
t_hapus,but_reset,but_samadengan;
public TextField field;

public void view(){


JFrame frame = new JFrame();
JPanel panel_atas = new JPanel();
TextField field = new TextField();
panel_atas.add(field,BorderLayout.CENTER);
JPanel panel_kanan = new JPanel();
panel_kanan.setLayout(new GridLayout(2,1));
but_hapus = new Button();
but_reset = new Button();
but_hapus.setLabel("Del");
but_reset.setLabel("Reset");
panel_kanan.add(but_hapus);
panel_kanan.add(but_reset);

JPanel panel_tengah = new JPanel(new


GridLayout(3,3));

but_0=new Button();
but_1=new Button();
but_2=new Button();
but_3=new Button();
but_4=new Button();
but_5=new Button();
but_6=new Button();
but_7=new Button();
but_8=new Button();
but_9=new Button();
but_kali=new Button();
but_tambah=new Button();
but_kurang=new Button();
but_bagi=new Button();
but_samadengan=new Button();
but_0.setLabel("0");
but_1.setLabel("1");
but_2.setLabel("2");
but_3.setLabel("3");
but_4.setLabel("4");
but_5.setLabel("5");
but_6.setLabel("6");
but_7.setLabel("7");
but_8.setLabel("8");
but_9.setLabel("9");
but_kali.setLabel("*");
but_tambah.setLabel("+");
but_kurang.setLabel("-");
but_bagi.setLabel("/");
but_samadengan.setLabel("=");
panel_tengah.add(but_1);
panel_tengah.add(but_2);
panel_tengah.add(but_3);
panel_tengah.add(but_4);
panel_tengah.add(but_5);
panel_tengah.add(but_6);
panel_tengah.add(but_7);
panel_tengah.add(but_8);
panel_tengah.add(but_9);
panel_tengah.add(but_kali);
panel_tengah.add(but_tambah);
panel_tengah.add(but_kurang);
panel_tengah.add(but_bagi);
panel_tengah.add(but_samadengan);
frame.add(panel_kanan, BorderLayout.EAST);
frame.add(panel_atas, BorderLayout.NORTH);
frame.add(panel_tengah,
BorderLayout.CENTER);
frame.setSize(300, 300);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE
);
frame.setVisible(true);
/*
* To change this license header, choose
License Headers in Project Properties.
* To change this template file, choose Tools |
Templates
* and open the template in the editor.
*/
package calculator;

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

/**
*
* @author chandra
*/
public class Calculator implements
ActionListener {
double tampung;
double angka=0;
String angka1="";
double hasil=0;
GUIcalc mycalculator;
int tampung1=0;
public void calc(){
mycalculator=new GUIcalc();
mycalculator.view();

mycalculator.but_1.addActionListener((ActionListene
r) this);
mycalculator.but_2.addActionListener((ActionListene
r) this);

mycalculator.but_3.addActionListener((ActionListene
r) this);

mycalculator.but_4.addActionListener((ActionListene
r) this);

mycalculator.but_5.addActionListener((ActionListene
r) this);

mycalculator.but_6.addActionListener((ActionListene
r) this);

mycalculator.but_7.addActionListener((ActionListene
r) this);

mycalculator.but_8.addActionListener((ActionListene
r) this);

mycalculator.but_9.addActionListener((ActionListene
r) this);

mycalculator.but_kali.addActionListener((ActionList
ener) this);

mycalculator.but_tambah.addActionListener((ActionLi
stener) this);

mycalculator.but_kurang.addActionListener((ActionLi
stener) this);

mycalculator.but_bagi.addActionListener((ActionList
ener) this);

mycalculator.but_hapus.addActionListener((ActionLis
tener) this);
mycalculator.but_reset.addActionListener((ActionLis
tener) this);
}

public static void main(String[] args) {

@Override
public void actionPerformed(ActionEvent ae)
{
if (ae.getSource() ==
mycalculator.but_1){
angka += 1;
mycalculator.field.setText("1");
}
else if (ae.getSource() ==
mycalculator.but_2){
angka +=2;
mycalculator.field.setText("2");
}
else if (ae.getSource() ==
mycalculator.but_3){
angka +=3;
mycalculator.field.setText("3");
}
else if (ae.getSource() ==
mycalculator.but_4){
angka +=4;
mycalculator.field.setText("4");
}
else if (ae.getSource() ==
mycalculator.but_5){
angka +=5;
mycalculator.field.setText("5");
}
else if (ae.getSource() ==
mycalculator.but_6){
angka +=6;
mycalculator.field.setText("6");
}
else if (ae.getSource() ==
mycalculator.but_7){
angka +=7;
mycalculator.field.setText("7");
}
else if (ae.getSource() ==
mycalculator.but_8){
angka +=8;
mycalculator.field.setText("8");
}
else if (ae.getSource() ==
mycalculator.but_9){
angka +=9;
mycalculator.field.setText("9");
}
else if (ae.getSource() ==
mycalculator.but_tambah) {
tampung =
Double.parseDouble(angka1);
mycalculator.field.setText("0");
angka1 = "";
tampung1 = 1;
}
else if (ae.getSource() ==
mycalculator.but_kurang) {
tampung =
Double.parseDouble(angka1);
mycalculator.field.setText("0");
angka1 = "";
tampung1 = 2;
}
else if (ae.getSource() ==
mycalculator.but_kali) {
tampung =
Double.parseDouble(angka1);
mycalculator.field.setText("0");
angka1 = "";
tampung1 = 3;
}
else if (ae.getSource() ==
mycalculator.but_bagi) {
tampung =
Double.parseDouble(angka1);
mycalculator.field.setText("0");
angka1 = "";
tampung1 = 4;
}
else if(ae.getSource() ==
mycalculator.but_hapus){
mycalculator.field.setText("0");
angka1 = "0";
}
else if(ae.getSource() ==
mycalculator.but_reset){
mycalculator.field.setText("0");
angka1 = "0";
tampung = 0;
}
else if (ae.getSource() ==
mycalculator.but_samadengan) {
switch (tampung1) {
case 1:
hasil = tampung +
Double.parseDouble(angka1);
angka =
Double.toString(hasil);

mycalculator.field.setText(Double.toString(hasil));
break;
case 2:
hasil = tampung -
Double.parseDouble(angka1);
angka =
Double.toString(hasil);

mycalculator.field.setText(Double.toString(hasil));
break;
case 3:
hasil = tampung *
Double.parseDouble(angka1);
angka =
Double.toString(hasil);
mycalculator.field.setText(Double.toString(hasil));
break;
case 4:
hasil = tampung /
Double.parseDouble(angka1);
angka =
Double.toString(hasil);

mycalculator.field.setText(Double.toString(hasil));
break;
}
}
}

}
BAB V

PENUTUP

5.1 Kesimpulan

GUI digunakan agar pengguna dapat mengoperasikan program

dengan mudah,dimana GUI menerapkan konsep WYSWYG

Event Handler digunakan untuk mengatur kejadian apa saja yang

terjadi ketika pengguna menekan sebuah tombol

5.2 Saran

Praktikum berjalan baik,tidak ada saran yang berarti.

Anda mungkin juga menyukai