LAPORAN
PRAKTIKUM
BAHASA PEMROGRAMAN 1
MODUL 7: GRAPHICAL USER INTERFACE (1)
Dosen:
Dede Irawan, M.Kom.
Disusun Oleh:
AGUNG TRIANGGORO
20180910015
Sistem Informasi-A 2018
FAKULTAS
ILMU KOMPUTER
UNIVERSITAS
KUNINGAN
TAHUN
2018
KATA PENGANTAR
Dengan mengucapkan
puji dan syukur kepada Allah SWT atas berkat rahmat dan karuniaNya yang
diberikan kepada kita semua sebagai umatnya. Saya dapat
menyusun makalah dengan judul “Sejarah Java” untuk memenuhi tugas mata kuliah Bahasa
Pemrograman 1.
Makalah yang disusun untuk mempelajari lebih
detail mengenai Sejarah java. Saya berharap
informasi yang saya dapatkan tidak hanya untuk saya sendiri melainkan untuk
para pembaca sebagai ilmu untuk menambah wawasan .
Dalam kesempatan ini saya mengucapkan terima
kasih ,semoga makalah ini dapat memberikan kontribusi positif dan memberikan
manfaat dalam hidup kita nantinya .Dari lubuk hati yang paling dalam, sangat
disadari bahwa ,makalah yang saya
buat masih jauh dari sempurna. Oleh sebab itulah tidak ada salahnya saya mengharapkan berbagai
kritik dan saran yang membangun untuk lebih baik kedepannya.
Kuningan, Desember 2019
Penulis
DAFTAR ISI
KATA PENGANTAR
DAFTAR
ISI
PENDAHULUAN
1.1 LATAR BELAKANG
1.2 RUMUSAN MASALAH
1.3 TUJUAN
PENULISAN
PEMBAHASAN
2.1 Komponen penyusun Java
GUI
2.2 Fungsi GUI
2.3 Macam – macam GUI
2.4 Kelebihan dan Kekurangan GUI
2.5 PRAKTIKUM
2.6 POST TEST
BAB III
PENUTUP
3.1. Kesimpulan
BAB III PEMBAHASAN
2.1 Komponen penyusun Java GUI
Komponen Utama GUI java adalah JFC (Java Fundamental
Class)
1. Koordinat GUI
2. AWT (Abstract Windows Toolkit)
merupakan paket dasar dalam pembentukan GUI dengan menggunakan
platform yang
terdapat dalam masing-masing OS (native
resource) Paket dasar
: java.awt.component
3. Swing Product SUN dalam membangun GUI yang Independent sehingga bersifat cross
platform dalam tampilan window yang dihasilkan. Paket dasar:
javax.swing.Jcomponent
4. Event Handler Aksi-reaksi yang diberikan pada tiap-tiap
komponen GUI
2.2 Fungsi GUI
Dari pemahaman tentang GUI sebelumnya, fungsi-fungsi GUI dalam dunia teknologi
dan informasi saat
ini sangat beragam. Berikut
beberapa fungsi
dari penggunaan GUI dalam dunia Iptek khususnya komputer
:
1. Pointing device dengan
perangkat
berupa mouse
2. Memiliki fungsi sebagai plug and play, yang mana memudahkan user dalam menginstall dan
uninstall hardware/sofware (sinkronisasi)
3. Membuat software-software yang menuntut
aplikasi dalam
komputer user
yang
dapat
digunakan untuk kegiatan user
dalam proses seperti menulis
text, spreadsheet. sound, graphic dan
lain-lain
4.
Untuk digunakan dalam
pembuatan System Operasi
sebagai User
friendly dan ergonomis
5. Pembuatan
website
6. Opensource software/hardware atau pengembang
aplikasi-aplikasi skala besar lainnya.
2.3 Macam – macam GUI
Berikut ini
adalah beberapa macam contoh
GUI
pada Java.
1. AWT (Abstract Window
Toolkit) – SUN Microsystem → Oracle Product
AWT (Abstract Window Toolkit)
ini adalah GUI
Toolkit pertama pada
bahasa pemrograman Java, sayang-nya AWT ini sangat-sangat kekurangan komponen yang biasa digunakan untuk membangun sebuah aplikasi desktop secara lengkap (komponen tabel saja tidak ada ). Terlepas dari kurang-nya komponen GUI yang terdapat pada AWT (Abstract Window Toolkit), aplikasi
yang
dibangun
menggunakan AWT (Abstract
Window Toolkit) akan
tampak
seperti aplikasi
native. Maksudnya yaitu, jika aplikasi yang dibangun menggunakan AWT
(Abstract Window Toolkit) ini dijalankan pada Sistem Operasi Windows. Maka aplikasi ini akan terlihat seperti aplikasi Windows pada
umum-nya, dan begitu juga jika
dijalankan pada
Sistem Operasi Mac
ataupun GNU/Linux. Kenapa
ini bisa terjadi, karena
AWT
(Abstract Window Toolkit) ini benar-benar
memanggil
native subrutin untuk menggambar setiap
komponen-nya ke layar.
2. Java Swing – SUN Microsystem → Oracle
GUI Toolkit yang
mungkin paling banyak dikenal
oleh teman-teman yang baru belajar Pemrograman GUI di Java dibandingkan dengan GUI Toolkit yang lain GUI Toolkit ini lebih
banyak
dikenal dikarenakan
dukungan tutorialnya yang cukup
banyak
bertebaran di Internet, dan juga merupakan standart dari
Java yang mana kita
tidak perlu
melakukan penambahan library
lagi kalau ingin menggunakan GUI Toolkit ini. Selain itu, terdapat 2 IDE besar yang menggunakan GUI
Toolkit Java Swing yaitu NetBeans IDE(OpenSource) dan IntelliJ IDEA (mempunyai versi OpenSource dan Komersial).
Dibandingkan dengan pendahulu-nya yaitu AWT (Abstract Window Toolkit),
Swing mempunyai lebih banyak komponen pendukung untuk membangun sebuah aplikasi yang lengkap
untuk keperluan desktop. Selain didukung dengan banyak-nya komponen,
Swing ini benar-benar murni 100 % ditulis dengan bahasa pemrograman Java tanpa adanya sebuah
wrapper untuk memanggil rutin-rutin native code via JNI
(Java Native Interface). Seluruh komponen yang terdapat pada Swing, semuanya murni digambar sendiri menggunakan API
(Application Programming Interface)
2D untuk memanggil rutin-rutin dasar penggambaran
komponen-nya. Nah dengan
model seperti ini, memungkinkan
sekali aplikasi yang dibangun menggunakan Swing tampak sama
persis di berbagai macam
Sistem Operasi.
Selain
itu, Swing juga mempunyai kemampuan untuk berganti-ganti tampilan menggunakan LAF (Look And Feel) atau themes Sayang-nya, jika
kita menginginkan tampilan GUI yangnative(tampilan-nya sama seperti aplikasi-aplikasi lain pada sistem operasi target) Swing
seperti-nya masih terasa kurang smoothterutama dukungan pada font rendering-nya . Untuk
teman-teman yang penasaran bagaimana sih sebenarnya tampilan dari GUI Toolkit
Swing ini
? Dibawah ini adalah screenshot Swing standart yang bisa kita gunakan tanpa
perlu menambahkan library lagi
3. SWT
(Standart Widget
Tookit) – IBM Product → Eclipse Foundation
SWT (Standart Widget Toolkit) ini adalah sebuah GUI Toolkit yang dikeluaran oleh IBM
sebagai alternatif dari AWT/Java Swing milik
SUN
Microsystem, yang membedakan antara
SWT
(Standart Widget Toolkit)
dan AWT/Java Swing adalah SWT ini benar-benar mengakses native GUI library yang terdapat pada Sistem Operasi melalui JNI
(Java Native Interface).
Dengan model seperti ini, memungkinkan tampilan aplikasi yang dibangun
menggunakan GUI Toolkit
SWT menjadi sama
persis dengan aplikasi native
lain-nya. Kekurangan dari
model pemanggilan native GUI library seperti ini adalah kita harus menyediakan library
untuk tiap- tiap Sistem
Operasi target aplikasi kita.
4. QtJambi –
Trolltech → Nokia Product → Stopped
and Taken By Community
Pernah menggunakan Desktop Environment KDE
? Ingin membuat aplikasi yang tampilan- nya mirip denganKDE ?Kalau teman-teman ingin membangun aplikasi yang tampilan-nya
tampak seperti aplikasi yang terdapat pada KDE tapi masih ingin menggunakan bahasa java sebagai
dasar-nya, maka QtJambi
adalah pilihan yang
tepat untuk
teman-teman. Karena QtJambi ini
merupakan binding Qt Framework
dengan bahasa
Java, tetapi sayang-nya proyek QtJambi sudah tidak disupport oleh Nokia dan secara
resmi telah ditutup Untung-nya, awal
tahun ini ada beberapa developer yang peduli dengan kelangsungan proyek ini dan akhir-nya
membuat sebuah
komunitas untuk melanjutkan pengembangan proyek QtJambi,
sekarang teman-teman bisa melihat perkembangan proyek QtJambi ini pada halaman QtJambi
Community
5.
avaGNOME
– Community Product
Kalau QtJambi diatas ditujukan untuk teman-teman yang sudah akrab dengan API (Application
Programming Interface) Qt Framework, berbeda
dengan JavaGNOME Proyek ini lebih dikhususkan untuk teman-teman pecinta GTK atau yang paling banyak dikenal yaitu
GNOMESama seperti GUI
Toolkit SWT dan QTJambi, JavaGNOME ini juga mengakses
native library tetapi API yang digunakan adalah API dari GTK. Untuk teman-teman yang sudah
terbiasa membangun aplikasi
menggunakan Glade, maka
teman-teman
bisa men-design form-
nya menggunakan Glade dan memanggil-nya menggunakan bahasa java melalui JavaGNOME.
2.4 Kelebihan dan Kekurangan GUI
− Kelebihan GUI :
1. Desain Grafis
lebih menarik.
2. GUI memungkinkan user untuk berinteraksi
dengan komputer secara lebih baik.
3. Memudahkan pengguna.
4. Menarik minat pengguna.
5. Resolusi gambar yang
tinggi.
− Kekurangan GUI :
1. Memakan memory
yang
sangat besar.
2. Bergantung pada perangkat
keras.
3. Membutuhkan
banyak
tempat pada layar
komputer.
4. Tidak
fleksibel.
2.5 PRAKTIKUM
package
modul_07; import
javax.swing.*; import
java.awt.event.*;
public
class program_GUI extends
JFrame implements ActionListener { JLabel label1 = new JLabel();
JLabel
label2 = new JLabel();
JLabel label3 = new JLabel();
JTextField text1 = new JTextField();
JTextField text2 = new JTextField(); JTextField text3 = new JTextField();
JButton button1
= new JButton();
public void CiptakanJFrame(){
setLayout(null); setTitle("Identitas"); setVisible(true);
setSize
(300, 150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void CiptakanJLabel(){
label1.setText("NIM"); label1.setBounds(10,10,250,20); add (label1);
label2.setText("NAMA");
label2.setBounds(10,30,250,20); add (label2);
label3.setText("PROGRAM STUDI");
label3.setBounds(10,50,250,20); add (label3);
}
public void CiptakanJTextField(){ text1.setBounds(120,10,160,20);
add(text1);
text2.setBounds(120,30,160,20);
add(text2);
text3.setBounds(120,50,160,20);
add(text3);
}
public void CiptakanJButton(){
button1.setText("Tampilkan"); button1.setBounds(120,80,95,20); button1.addActionListener(this);
add(button1);
}
public void actionPerformed(ActionEvent e){
text1.setText("20180910015");
text2.setText("Agung Trianggoro");
text3.setText("Sistem Informasi");
}
public static
void main(String[] args) {
program_GUI f1 = new program_GUI(); f1.CiptakanJFrame();
f1.CiptakanJLabel(); f1.CiptakanJTextField();
f1.CiptakanJButton();
}
}
Hasil Run:
2.5 POST TEST
Buat program
kalkulator dengan tampilan
seperti
gambar berikut :
Code Program:
package
modul_07; import
javax.swing.*; import
java.awt.event.*;
import java.text.DecimalFormat;
public class PostTest extends
JFrame implements ActionListener{ JLabel label1
= new JLabel();
JLabel label2 = new JLabel();
JLabel
label3 = new JLabel();
JTextArea text1 = new JTextArea();
//JtextArea text2 = new JTextArea();
//JtextArea text3 = new JTextArea();
JButton button1
= new JButton(); JButton button2 = new JButton(); JButton button3 = new JButton();
JButton button4 = new JButton(); JButton button5 = new JButton();
JButton button6 = new JButton(); JButton button7 = new JButton();
JButton button8 = new JButton(); JButton button9 = new JButton();
JButton button0 = new JButton();
JButton
buttonMC = new JButton();
JButton buttonMR = new JButton(); JButton buttonMS = new JButton();
JButton buttonMplus = new JButton(); JButton buttonMmin = new JButton();
JButton buttonbs = new JButton(); JButton buttonCE = new JButton();
JButton buttonC = new JButton();
JButton buttonPM = new JButton(); JButton buttonakar = new JButton();
JButton
buttonBagi = new JButton();
JButton buttonPersen = new JButton(); JButton buttonKali = new JButton();
JButton button1x = new JButton(); JButton buttonKurang = new JButton();
JButton buttonTambah = new JButton();
JButton buttonSamadengan = new JButton();
JButton
buttonKoma = new JButton();
DecimalFormat koma = new DecimalFormat ("#.##");
double
bil1, bil2, hasil,
n;
int tambah=0, kurang=0, bagi=0,
kali=0, persen=0, akar=0;
public void CiptakanJFrame(){
setLayout (null);
setTitle("Calculator"); setVisible(true); setSize(365,310);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
setResizable (false);
setLocationRelativeTo(null);
}
public void CiptakanJLabel(){
label1.setText("View"); label1.setBounds(10,10,40,20); add(label1);
label2.setText("Edit"); label2.setBounds(50,10,40,20); add(label2);
label3.setText("Help");
label3.setBounds(90,10,250,20); add(label3);
}
public
void CiptakanJTextField(){
text1.setBounds (10, 30, 340, 60);
add(text1);
/*
text2.setBounds (120,30,160,20);
add(text2);
text3.setBounds (120,50,160,20);
add(text3);
}
*/
}
public void CiptakanJButton(){
buttonMC.setText(" MC "); buttonMC.setBounds (10, 100, 58, 22);
buttonMC.addActionListener(this); add(buttonMC);
buttonMR.setText(" MR ");
buttonMR.setBounds (80, 100, 58, 22); buttonMR.addActionListener(this);
add(buttonMR);
buttonMS.setText(" MS ");
buttonMS.setBounds (150, 100, 58, 22); buttonMS.addActionListener(this);
add(buttonMS);
buttonMplus.setText(" M+ ");
buttonMplus.setBounds (220, 100, 58, 22); buttonMplus.addActionListener(this);
add(buttonMplus);
buttonMmin.setText(" M- "); buttonMmin.setBounds (290, 100, 55, 22);
buttonMmin.addActionListener(this); add(buttonMmin);
buttonbs.setText(" ← ");
buttonbs.setBounds (10, 130, 55, 22); buttonbs.addActionListener(this);
add(buttonbs);
buttonCE.setText(" CE ");
buttonCE.setBounds (80, 130, 55, 22); buttonCE.addActionListener(this);
add(buttonCE);
buttonC.setText(" C ");
buttonC.setBounds (150, 130, 55, 22); buttonC.addActionListener(this);
add(buttonC);
buttonPM.setText(" ± ");
buttonPM.setBounds (220, 130, 55, 22);
buttonPM.addActionListener(this); add(buttonPM);
buttonakar.setText(" √ ");
buttonakar.setBounds (290, 130, 55, 22); buttonakar.addActionListener(this);
add(buttonakar);
button7.setText(" 7 ");
button7.setBounds (10, 160, 55, 22); button7.addActionListener(this);
add(button7);
button8.setText(" 8 ");
button8.setBounds (80, 160, 55, 22); button8.addActionListener(this);
add(button8);
button9.setText(" 9 ");
button9.setBounds (150, 160, 55, 22); button9.addActionListener(this);
add(button9);
buttonBagi.setText(" / ");
buttonBagi.setBounds (220, 160, 55, 22); buttonBagi.addActionListener(this);
add(buttonBagi);
buttonPersen.setText(" % ");
buttonPersen.setBounds (290, 160, 55, 22); buttonPersen.addActionListener(this);
add(buttonPersen);
button4.setText(" 4 ");
button4.setBounds (10, 190, 55, 22); button4.addActionListener(this);
add(button4);
button5.setText(" 5 ");
button5.setBounds (80, 190, 55, 22); button5.addActionListener(this);
add(button5);
button6.setText(" 6 ");
button6.setBounds (150, 190, 55, 22); button6.addActionListener(this); add(button6);
buttonKali.setText(" * ");
buttonKali.setBounds (220, 190, 55, 22); buttonKali.addActionListener(this);
add(buttonKali);
button1x.setText(" 1/x ");
button1x.setBounds (290, 190, 58, 22); button1x.addActionListener(this);
add(button1x);
button1.setText(" 1 ");
button1.setBounds (10, 220, 55, 22); button1.addActionListener(this);
add(button1);
button2.setText(" 2 ");
button2.setBounds (80, 220, 55, 22); button2.addActionListener(this);
add(button2);
button3.setText(" 3 ");
button3.setBounds (150, 220, 55, 22);
button3.addActionListener(this); add(button3);
buttonKurang.setText(" - ");
buttonKurang.setBounds (220, 220, 55, 22);
buttonKurang.addActionListener(this); add(buttonKurang);
buttonSamadengan.setText(" = ");
buttonSamadengan.setBounds (290, 220, 55, 50);
buttonSamadengan.addActionListener(this); add(buttonSamadengan);
button0.setText(" 0 ");
button0.setBounds (10, 250, 130, 22); button0.addActionListener(this);
add(button0);
buttonKoma.setText(" . ");
buttonKoma.setBounds (150, 250, 55, 22);
buttonKoma.addActionListener(this); add(buttonKoma);
buttonTambah.setText(" + ");
buttonTambah.setBounds (220, 250, 55, 22); buttonTambah.addActionListener(this);
add(buttonTambah);
}
public void actionPerformed(ActionEvent e) {
Object
source = e.getSource();
if(source == button1){
text1.append("1");
}
if(source == button2){
text1.append("2");
}
if(source == button3){
text1.append("3");
}
if(source == button4){
text1.append("4");
}
if(source == button5){
text1.append("5");
}
if(source == button6){
text1.append("6");
}
if(source == button7){
text1.append("7");
}
if(source == button8){
text1.append("8");
}
if(source == button9){
text1.append("9");
}
if(source == button0){
text1.append("0");
}
if(source == buttonKoma){
bil1 = numberReader();
String
x = koma.format(bil1).replace(',','.') ; bil1 = Float.parseFloat(x); text1.setText(bil1+"");
}
if(source == buttonMS){
bil1 = numberReader(); hasil = bil1;
text1.setText(String.valueOf(hasil+""));
}
if(source == buttonTambah){
bil1 = numberReader();
text1.setText(""); tambah = 1;
kali = 0;
bagi
= 0; kurang = 0;
akar = 0;
}
if(source == buttonKali){
bil1
= numberReader(); text1.setText(""); tambah = 0;
kali
= 1; bagi = 0;
kurang = 0; akar = 0;
}
if(source == buttonKurang){
bil1 = numberReader(); text1.setText(""); kurang = 1;
tambah = 0;
kali = 0;
bagi = 0; akar = 0;
}
if(source == buttonBagi){
bil1
= numberReader();
text1.setText("");
bagi
= 1; tambah =0; kali
= 0; kurang = 0;
akar = 0;
}
if(source == buttonPersen){
bil1 = numberReader();
hasil
= bil1 / 100;
text1.setText(String.valueOf(hasil)); persen
= 1;
}
if(source == buttonakar){
bil1
= numberReader();
text1.setText("");
bagi
= 0;
tambah
= 0; kali = 0;
kurang = 0; akar = 1;
}
if(source == buttonPM){ bil1 = numberReader(); hasil = bil1 - (bil1*2);
text1.setText(String.valueOf(hasil));
}
if(source == buttonMC){
bil1 = 0.0;
bil2 = 0.0;
hasil
= 0.0;
text1.setText("");
}
if(source == buttonCE){
bil1 = 0.0;
text1.setText("");
}
if(source == buttonC){
bil1= 0.0;
bil2= 0.0;
text1.setText("");
}
if(source == buttonMR){
text1.setText(hasil+"");
}
if(source == buttonMplus){
bil1 = numberReader(); hasil += bil1; text1.setText("");
}
if(source == buttonMmin){
bil1 = numberReader(); hasil -= bil1;
text1.setText("");
}
if(source == button1x){
bil1 = numberReader(); hasil = 1 / bil1;
text1.setText(String.valueOf(hasil));
}
if(source == buttonbs){
String backspace = null;
if(text1.getText().length() > 0){
StringBuilder strB = new StringBuilder(text1.getText());
strB.deleteCharAt(text1.getText().length() - 1);
backspace = strB.toString(); text1.setText(backspace);
}
}
if(source == buttonSamadengan){
if(tambah>0){
bil2
= numberReader(); hasil = bil1 +
bil2; text1.setText(String.valueOf(hasil));
}
if(kurang>0){
bil2
= numberReader();
hasil
= bil1 - bil2;
text1.setText(String.valueOf(hasil));
}
if(kali>0){
bil2 = numberReader();
hasil
= bil1 * bil2;
text1.setText(hasil+""); text1.setText(String.valueOf(hasil));
}
if(bagi>0){
bil2
= numberReader(); hasil = bil1 /
bil2; text1.setText(hasil+"");
text1.setText(String.valueOf(hasil));
}
if(akar>0){
bil2 = numberReader();
hasil = Math.sqrt(bil1);
text1.setText(String.valueOf(hasil));
}
}
}
public double
numberReader(){
double bil1;
String
n;
n = text1.getText();
bil1 = Double.valueOf(n);
return bil1;
}
public static
void main (String[] args) { PostTest f1 = new PostTest();
f1.CiptakanJFrame(); f1.CiptakanJLabel(); f1.CiptakanJTextField();
f1.CiptakanJButton();
}
}
Hasil Run: ( 23 x 7 = 161 )
BAB III
PENUTUP
3.1 Kesimpulan
Jadi GUI sangat jelas kaitanya dengan kegiatan penggunaan suatu aplikasi dalam
komputer yang sering digunakan. Dalam hal ini, GUI mempermudah user dalam penggunaannya,
dengan tampilan yang friendly seta ergonomis, user dengan mudah dapat menyesuaikan aplikasi-
aplikasi karena GUI membantu didalam interface yang dapat dipahami penggunaannya. Sehingga
antara user dan sistem, tidak terjadi misscommuncation dalam menerapkan sistem komputerisasi.
0 komentar:
Posting Komentar