Electricity Lightning

Pages

Banner 468 x 60px

Agung Trianggoro - 20180910015 - Sistem Informasi 2018 A - Fakultas Komputer - Universitas Kuningan
 

Senin, 23 Desember 2019

Laporan Praktikum MODUL 7: GRAPHICAL USER INTERFACE (1)

0 komentar
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

BAB I
PENDAHULUAN
1.1 LATAR BELAKANG
1.2 RUMUSAN MASALAH
1.3 TUJUAN PENULISAN


BAB II
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