Laporan ke 8
-
Upload
independent -
Category
Documents
-
view
3 -
download
0
Transcript of Laporan ke 8
LABORATORIUM KOMPUTER DASAR
PROGRAM STUDI INFORMATIKA / ILMU
KOMPUTER
PROGRAM TEKNOLOGI INFORMASI
DAN ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA
PRAKTIKUM PEMROGRAMAN LANJUT
MODUL 8
Judul Bab : Graphic User Interface Lanjut
Disusun Oleh : Irma Pujadayanti
NIM : 135150201111243
Dilaksanakan Tanggal : 23 Mei 2014
Asisten 1 : Aristiawan Asisten 2 : Iqbal Dhea Furqon Tauhid
Dosen Pengampu : Ir. Sutrisno , M.T.
Pengesahan
Tanggal:
Asisten
SEMESTER :GENAP TAHUN : 2013/2014
A. Definisi Masalah
Soal 8.1
Modifikasi tabel contoh pada TableAdd.java sehingga tampilan awalnya
adalah sebagai berikut :
Kemudian mengganti kolom sex dengan female(Perempuan) kemudian
menambah lagi kolom untuk male(Laki-Laki).
B. Source Code
1 package GUILanjut;
2 import java.awt.BorderLayout;
3 import java.awt.Color;
4 import java.awt.event.*;
5 import java.util.Vector;
6 import javax.swing.*;
7 import javax.swing.JOptionPane;
8 import javax.swing.table.DefaultTableModel;
9
10 //kelas untuk menambahkan tabel
11 public class tableAdd implements ActionListener {
12
13 JFrame frame;
14 ModifyTable table;
15 Vector rows, columns;
16 DefaultTableModel tabModel;
17 JScrollPane scrollPane;
18 JLabel lblMessage;
19 JButton cmdAdd, cmdDelete;
20 JPanel mainPanel, buttonPanel;
21 private String nama ;
22 private String id;
23 private String addres;
24 private String sex;
25
26 //kosntruktor tableAdd untuk menambahkan komponen
didalamnya
27 tableAdd() {
28 rows = new Vector();
29 columns = new Vector();
30 String[] columnNames = {"ID", "Name",
"Address", "Male", "Female"};
31 addColumns(columnNames);
32
33 tabModel = new DefaultTableModel();
34 tabModel.setDataVector(rows, columns);
35
36 table = new ModifyTable();
37 table.setModel(tabModel);
38 table.setRowSelectionAllowed(false);
39
40 scrollPane = new JScrollPane(table);
41 scrollPane.setViewportView(table);
42
43 lblMessage = new JLabel();
44 buttonPanel = new JPanel();
45
46 cmdAdd = new JButton("Add Row");
47 cmdDelete = new JButton("Delete");
48
49 buttonPanel.add(cmdAdd);
50 buttonPanel.add(cmdDelete);
51
52 cmdAdd.addActionListener(this);
53 cmdDelete.addActionListener(this);
54
55 mainPanel = new JPanel();
56 frame = new JFrame("Simple Table Example");
57 frame.setSize(500, 300);
58
59 frame.setLocationRelativeTo(null);
60 mainPanel.setLayout(new BorderLayout());
61 mainPanel.add("Center", scrollPane);
62 mainPanel.add("South", buttonPanel);
63 mainPanel.setBackground(Color.white);
64 buttonPanel.setBackground(Color.white);
65 table.getParent().setBackground(Color.white);
66 frame.getContentPane().add(mainPanel);
67 frame.setVisible(true);
68
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//
untuk exit
69 }
70
71 //method untuk menambahkan kolom
72 public final void addColumns(String[] colName) {
73 for (String colName1 : colName) {
74 columns.addElement((String) colName1);
75 }
76 }
77
78 //method menambahkan baris
79 public void addRow() {
80 Vector r = new Vector();
81 r = createBlankElement();
82 rows.addElement(r);
83 table.addNotify();
84 }
85
86 //method untuk isi data
87 public Vector createBlankElement() {
88 Vector t = new Vector();
89
90 boolean male = false, female = false;
91
92 // menampilkan menu dialog untuk inputan user
93 id = JOptionPane.showInputDialog("Masukan id
anda");
94 nama = JOptionPane.showInputDialog("Masukan
nama anda");
95 addres = JOptionPane.showInputDialog("Masukan
alamat anda");
96 sex = JOptionPane.showInputDialog("Masukan
jenis kelamin anda (L/P)");
97
98 // boolean untuk L akan dicentang dan P tidak
dicentang
99 if (sex.equalsIgnoreCase("L")) {
100 male=true;
101 } else if (sex.equalsIgnoreCase("P")) {
102 female = true;
103
104 }
105
106 t.addElement(getId());
107 t.addElement(getNama());
108 t.addElement(getAddres());
109 t.addElement((male));
110 t.addElement((female));
111 return t;
112 }
113
114 //method menghapus baris
115 @SuppressWarnings("empty-statement")
116 void deleteRow(int index) {
117 try{
118 if (index != -1){
119 rows.removeElementAt(index);
120 table.addNotify();
121 }
122 }catch(Exception e){
123 JOptionPane.showMessageDialog(cmdDelete,"Array
tidak cukup");
124 }
125 }
126
127
128 //method untuk menambahkan dan menghapus baris saat
menekan button
129 @Override
130 public void actionPerformed(ActionEvent source) {
131 if (source.getSource() == (JButton) cmdAdd) {
132 addRow();
133 }
134 if (source.getSource() == (JButton) cmdDelete)
{
135 deleteRow(table.getSelectedRow());
136 }
137 }
138
139 //kelas untuk menentukan tipe data
140 public class ModifyTable extends JTable {
141
142 @Override
143 public Class getColumnClass(int kolom) {
144 switch (kolom) {
145 case 0:
146 return String.class;//kolom id
bertipe string
147 case 1:
148 return String.class;//kolom nama
bertipe string
149 case 2:
150 return String.class;//kolom alamat
bertipe string
151 case 3:
152 return Boolean.class;//kolom male
bertipe boolean
153
154 case 4:
155 return Boolean.class;//kolom female
bertipe boolean
156 default:
157 return String.class;
158
159 }
160 }
161 @Override
162 public void setValueAt(Object value, int row, int
col){
163 if(col > 2){
164 if(getValueAt(row, 3).equals(true)){
165 super.setValueAt(false, row, 3);
166 super.setValueAt(true, row, 4);
167 } else {
168 super.setValueAt(true, row, 3);
169 super.setValueAt(false, row, 4);
170 }
171 }
172 }
173 }
174
175 //method main untuk instanisasi kelas tableAdd
176 public static void main(String[] args) {
177 tableAdd t = new tableAdd();
178 }
179
180 public String getNama() {
181 return nama;
182 }
183
184 public String getId() {
185 return id;
186 }
187
188 public String getAddres() {
189 return addres;
190 }
191
192 public String getSex() {
193 return sex;
194 }
195 }
C. Pembahaasan
1
2-8
11
13-24
Deklarasi package dengan nama GUI
Deklarasi macam – macam import java dimana seperti yang
sudah dideklarasikan pada program
Deklarasi kelas dengan nama table dimana
mengimplementasikan ActionListener
Deklarasi variabel global dengan nama frame dengan tipe
Jframe,kemudian table dengan tipe ModifyTable,kemudian rows
dan columns dengan tipe Vector,DefaultTableModel dengan
nama tabModel,kemudian scrollPane dengan tipe
JScrollPane,kemudian
lblMessage dengan tipe JLabel kemudian deklarasi
variabel dengan nama cmdAdd dan cmdDelete dengan tipe
Jbutton kemudian dengan tipe JButton kemudian deklarasi
dengan nama variable mainPanel,buttonPanel,kemudian
deklarasi atribut dengan nama nama,kemudian deklarasi
atribut dengan nama id kemudian deklarasi atributnya
dengan nama addres
27
28
29
30
31
33
34
36
37
38
40
43
44
46-47
49-50
52-53
55-57
Deklarasi konstruktor dengan nama tableAdd dimana
berfungsi untuk menambahkan komponennya dimana dia
berisi :
Deklarasi pembuatan objek dengan nama rows dari kelas
Vector
Deklarasi object dari kelas Vector dengan nama Vector
Deklarasi array dengan tipe string dengan nama variabel
columnNames dimana berfungsi untuk judul dari tabelnya
dengan nama yang sudah dideklarasikan
Deklarasi method add dengan parameter dari variabel
columnNames
Deklarasi pembuatan objek dari kelas DefaultTableModel
Deklarasi pemanggilan method dari setData dengan
parameter rows dan columns objek tabModel
Deklarasi pembuatan objek dengan nama table dari
ModifyTable
Deklarasi pemanggilan method setModel dengan parameter
tabModel
Deklarasi pemanggilan method setRowSelectionAllowed
dengan parameter false dimana method ini bertipe boolean
Deklarasi objek dari kelas JscrollPane dengan parameter
table kemudian deklarasi pemanggilan method dengan
nama setViewportView dengan parameter table
Deklarasi objek dari kelas JLabel
Deklarasi pembuatan objek dengan nama buttonPanel dari
kelas JPanel
Deklarasi pembuatan objek tombol dari kelas Jbutton
dimana yang dibuat adalah tombol dengan nama Add Row
dan Delete
Deklarasi menambahkan tombol tersebut ke windownya
Deklarasi pemanggilan method yang menangkap interaksi
user dengan tombol tersebut
Deklarasi pembuatan objek dengan nama mainPanel dari
kelas Jpanel kemudian deklarasi pembuatan objek dari
frame dari kelas Jframe dimana berfungsi untuk tampilan
windownya kemudian deklarasi pemanggilan method
setSize dengan parameter yang sudah ditentukan dari objek
frame dimana berfungsi untuk ukuran windownya
59
60
61
62
63
64
65
66
67
68
72-76
Deklarasi pemanggilan method setLocationRelativeTo
dengan parameter null dimana windownya masih kosongan
Deklarasi pemanggilan method dengan nama setLayout
dengan parameter deklarasi objek method dari
BorderLayout
Deklarasi pemanggilan method add dari objek mainPanel
dengan parameter yang sudah ada dalam program dimana
berfungsi menambahkan scrollPane pada windownya dan
peletakan scrollPane pada windownya
Deklarasi pemanggilan method add dengan parameter yang
sudah ditentukan dimana berfungsi untuk peletakkan
tombol dari buttonPanel
Deklarasi pemanggilan method setBackground dari
mainPanel dengan argumen yang sudah ditentukan yang
berfungsi untuk mengeset warna dari baground dari
windownya
Deklarasi pemanggilan method setBackground dari objek
buttonPanel dengan parameter yang sudah dideklarasikan
dimana berfungsi untuk mengeset baground dari
tombolnya
Deklarasi pemanggilan method dengan nama getParent dan
pemanggilan method setBackground dengan argumen yang
sudah ditentukan dalam program
Deklarasi pemanggilan method dengan nama
getContentPane dan pemanggilan method add dengan
argumen yang sudah ditentukan dalam program
Deklarasi pemanggilan pemanggilan method dengan nama
setVisible dengan argumen true dimana berfungsi untuk
menampilkan windownya
Deklarasi pemanggilan method dengan nama
setDefaultCloseOperation dimana method ini berfungsi
untuk menutup window dan menyatakan proses sudah
selesai
Deklarasi mehod dengan nama addColumns dimana
berparameter Array String dimana parameter disini adalah
judulnya kemudian method ini berisi perulangan untuk
mendapatkan judul tabel dan dimasukkan kedalam
tabelnya
79-83
87-112
116-125
130-137
140-161
Deklarasi method untuk menambahkan baris dimana dia
berisi pembuatan objek kemudian deklarasi dimana objek
yang sudah diciptakan sama dengan method
createBlankElement() kemudian pemanggilan method
addElement dengan argumen yang sudah ditentukan
kemudian pemanggilan method addNotify
Deklarasi method dengan nama createBlankElement
dimana method ini berfungsi untuk mengisi data pada
rownya dimana diawali dengan pembuatan objek dengan
nama t dari kelas Vector kemudian deklarasi variabel
dengan nama male dan female dengan nilai awal false
kemudian deklarasi untuk inputan id,nama,addres dan sex
kemudian masuk kedalam suatu kondisi diman jika kita
menginputkan L maka male yang kecentang yang
mengindikasikan bahwa itu adalah laki – laki kemudian
jika P maka masuk ke dalam kondisi kedua yang
mengindikasikan bahwa itu perempuan
kemudian deklarasi untuk menambahkan inputan user ke
tablenya
Deklarasi method dengan nama deleteRow dimana
berparameter dengan nama int index dimana ini
menangkap nilai indek pada kolomnya yang kita ingin
hapus dimana berisi pertama deklarasi try yaitu Exception
Handling dimana berfungsi untuk menankap error apabila
indeks dalam arraynya sudah habis tapi user tetap menekan
tombol delete kemudian masuk kondisi jika indexnya tidak
sama dengan -1 maka masuk kekondisi bawahnya yaitu
menghapus kolomnya kemudian jika index sama dengan -1
maka error akan tetapi errornya ditangkap oleh catch dan
menampilkan pesan kepada user bahwa array tidak cukup
Deklarasi method actionPerformed dengan parameter
ActionEvent source dimana method ini berfungsi untuk
menankap interaksi user dengan tombol delete dan Addrow
pada JButton
Deklarasi class dari ModifyTable dimana turunan dari
Jtable kemudian deklarasi override method
getColumnClass dimana method ini berisi switch case tipe
dari masing – masing kolom dimana kolom pertama
162-173
176-177
180-195
,kedua,bertipe string kemudian kolom ketiga dan keempat
bertipe boolean jika tidak memenuhi case maka dia
mereturn String
Deklarasi method dengan nama setValauAt dimana method
ini berfungsi untuk untuk memilih salah satu dan
mencentangnya checkbox pada table
Deklarasi method main dimana berisi pembuatan objek
dengan nama t dari kelas tableAdd
Deklarasi method getter dengan nama getNama
,getId,getAddres ,getSex dimana untuk mendapatkan
inputan dari user
D. Screenshoot Program
Tampilan Utama dimana table masih kosong
Dimana ini tampilan kalau kita mengklik tombol Add Row
Tampilan setelah user memasukan data pada Add Row
Meselect kolom yang mau dihapus
Kondisi setelah dihapus
Kondisi ketika tabel sudah kosong akan tetapi user tetap memasakkan diri
menekan tombol Delete
E. Kesimpulan
1. Perbedaan library java AWT dan javax swing
Komponen swing secara langsung diletakkan dilayar menggunakan
kode Java.
Sedangkan AWT seperti java.awt.window atau java.awt.panel harus
digambar menggunakan GUI asli milik platform di mana dia
dijalankan, jadi penampilan program yg ditulis dg AWT akan selalu
berpenampilan seperti platformnya, sedangkan Swing penampilannya
tetap sama.
Dibanding dengan AWT penggunaan komponen-komponen Swing
lebih memakan resource yang lebih sedikit.
AWT memang mampu menangani interface grafis yang sederhana,
tetapi untuk skala proyek AWT ketinggalan jauh daripada Swing.
Komponen Swing berawalan J sedangkan AWT tidak.
2. Kelebihan dan kekurangan dari library package javax swing
Swing memiliki tampilan lebih kaya, bervariasi dan lebihbagus dari
AWT. Swing menggunakan metode Painted yaitu objek GUI digambar
dalam frame kosong sehingga akan berperilaku sama pada setiap
platform.