Kali ini admin berbagi tentang membuat program Java GUI menggunakan Netbeans. Berikut
langkah - langkahnya :
Buat project baru dengan mengklik icon New Project
Disini admin memberi nama project dengan nama PilihanGanda. Jangan centang
bagian Create Main Class. Karena untuk saat ini kita hanya akan bermain di bagian form
saja.
Kemudian kita buat Java Package-nya. Untuk langkah - langkahnya lihat gambar
dibawah ini.
Buat JFrame Form dengan cara klik kanan pada Package Utama > pilih New > pilih
JFrame Form
Di tutorial ini, admin konsentrasikan untuk menggunakan fitur - fitur Palette berikut :
1.
2.
3.
Button untuk mengeksekusi setiap pilihan yaitu button OK dan button Lihat Hasil.
4.
5.
Combo Box untuk memilih materi yang akan dijawab soalnya. Terdiri dari -Pilih-,
Jaringan, Pemrograman.
Buat design form seperti berikut. Ubah nama variabelnya seperti yang ada pada
bagian Navigator.
! ! ! Perlu diketahui, untuk menulis soal - soalnya kita dapat mengkombinasikan dengan
bahasa HTML agar tulisan yang muncul lebih rapi dan lebih bagus tentunya.
Agar button yang kita buat dapat bekerja dengan baik, buat
parameter ButtonGroupseperti berikut.
Kenapa harus dibuat seperti itu? Jawabannya, agar user hanya dapat memilih 1 jawaban
pada setiap soal. Selain itu, agar program dapat berada di tengah - tengah layar saat pertama
kali dirun, maka kita set SetLocationRelativeTo(null); dan agar jendela program tidak
dapat di Maximaze atau Resize maka kita set menjadi false [setResizable (false);]
Lalu klik button Lihat Hasil dan insert kode dibawah ini yang berfungsi untuk
menentukan jawaban yang benar diberi nilai 10, jawaban yang salah diberi nilai 0 kemudian
hasilnya dikali 2 dan ditampilkan dengan MessageDialog.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
if (b1.isSelected()){
poin1 = 10;
}
if (c1.isSelected()){
poin1 = 0;
}
int poin2 = 0;
if (a2.isSelected()){
poin2= 10;
}
if (b2.isSelected()){
poin2 = 0;
}
if (c2.isSelected()){
poin2 =0;
}
int poin3 = 0;
if (a3.isSelected()){
poin3 = 0;
}
if (b3.isSelected()){
poin3 = 10;
}
if (c3.isSelected()){
poin3 = 0;
}
int poin4 = 0;
if (a4.isSelected()){
poin4 = 0;
}
if (b4.isSelected()){
poin4 = 10;
}
if (c4.isSelected()){
poin4 = 0;
}
int poin5 = 0;
if (a5.isSelected()){
poin5 = 0;
}
if (b5.isSelected()){
poin5 = 0;
}
if (c5.isSelected()){
poin5 = 10;
}
int jumlah1 = (poin1+poin2+poin3+poin4+poin5)*2;
javax.swing.JOptionPane.showMessageDialog( SoalPilihanGanda.this, "Nilai An
}
}
100
101
102
103
104
105
106
107
108
109
110
Dan bobot awal dan bias awal yang dipilih secara acak adalah :
Nilai bobot dari layer input ke hidden layer
Vij= 0.1207690864390194, 0.18121937900400642, 0.5373979583380004, 0.6958370793063979,
0.7315162285625711, 0.19241284706221817, 0.618297402969798, 0.5254289914600393
bias 1
b1 = 0.5500964441249149, 0.28941827642665174, 0.4615712532796826, 0.8149000001760573
bias 2
b2= 0.6109600864128633
Topologi jaringan yang kita gunakan adalah menggunakan jaringan MLP Backpropagation
dengan 1 layer input (2 neuron masukan), 1 hiden layer (4 neurron) dan 1 output layer
(1 neuron). Fungsi aktivasi yang kita gunakan pada hidden layer adalah fungsi sigmoid
dan pada output layer, fungsi aktivasi yang kita gunakan adalah fungsi linear.
Pada data test set dan learning set, kolom ketiga dari kedua data kita set sebagai target
keluaran jaringan. Pada proses inisialisasi parameter jaringan, kita beri nilai maximum
epoch = 1000, target error = 0.00001, MSE = 0 dan learning rate = 0,4.
Output Program :
******************Epoch ke-0
MSE = 4.758556221656486
******************Epoch ke-1
MSE = 1.3080030484094292
******************Epoch ke-2
MSE = 1.085172838222893
******************Epoch ke-3
MSE = 1.0549847659147695
******************Epoch ke-4
MSE = 1.046603613669597
******************Epoch ke-5
MSE = 1.0338336469898246
**********************
**********************
**********************
**********************
**********************
**********************
Pada 5 epoch awal, MSE mempunyai nilai yang tinggi, kemudian pada epoch setelahnya,
MSE mengalami penurunan.
1.7505551804252213
V2[] = 1.3100784790048718
0.7668952387082638
0.4267333271027457
-1.2177481267024133
b1[] = 0.3066897306561537
0.31370227499483994
0.5372604876143215
0.12644098313242658
W[] = -1.4092041090128564
0.821117168346266
0.26580529638614636
2.241329804694944
b2 = -0.33554834261466654
Kemudian, kita implementasikan bobot dan bias tersebut untuk test set dengan
menggunakan perhitungan maju (feedforward) saja di jaringan yang sama.
***************TEST SET******************
minimum MSE = 0.018681208923667793
The weights and bias which used at this test function are from the minimum MSE at
epoch :140
out put = -1.0586077904900728
out put = 0.1293472169464956
out put = -0.9036426039696852
out put = 0.28431240346688297
Jika kita merubah fungsi aktivasi pada output layer, dari fungsi linier menjadi fungsi
Hardlimit atau sigmoid, menjadi :
***************TEST SET******************
minimum MSE = 0.018681208923667793
The weight and bias which used at this test function are from the minimum MSE at
epoch :140
out put = -1.0586077904900728 hardlimit(y)= 0.0 sigmoid= 0.25757559762379123
out put = 0.1293472169464956 hardlimit(y)= 1.0 sigmoid= 0.5322917947514457
out put = -0.9036426039696852 hardlimit(y)= 0.0 sigmoid= 0.2883025167191984
out put = 0.28431240346688297 hardlimit(y)= 1.0 sigmoid= 0.5706031484804999
Dengan fungsi Hardlimit pada output layer, hasil output program adalah : 0 1 0 1, yang
berarti jaringan sudah mengenali pola dari learning set dengan baik dan mampu
menghasilkan output yang sesuai pada test set.
Sesuai dengan namanya, algoritma ini melakukan dua tahap komputasi yaitu :
perhitungan maju (feedforward) dan perhitungan mundur (backward), dalam setiap
iterasinya, jaringan akan memperbaiki nilai-nilai bobot dan bias pada semua neuron
yang ada di jaringan.
Algoritma Backpropagation adalah salah satu algoritma yang menggunakan metode
terawasi (supervised learning), dan termasuk jaringan MLP (Multi Layer Perceptron).
pada
tiap
pasangan
elemen
input
pada
hidden layer
mendapatkan
keluaran output
Backpropagation :
Pada tiap unit output, gunakan formula ini untuk memperbaiki nilai bobot dan bias :
Hitung sinyal balik dari output layer pada tiap unit di hidden layer
Pada tiap unit hidden layer, hitung delta_1 untuk memperbaiki nilai bobot dan bias :