" UNION ALL " +
" SELECT a.nama,0 AS bobot1,SUM(a.bobot) AS bobot2,0 AS bobot3,a.kode_gangguan,a.kode_kategori,a.ket " +
" FROM perolehan_copy AS a " +
" WHERE a.kode_kategori=2 GROUP BY a.nama " +
" UNION ALL " +
" SELECT a.nama,0 AS bobot1,0 AS bobot2,SUM(a.bobot) AS bobot3,a.kode_gangguan,a.kode_kategori,a.ket " +
" FROM perolehan_copy AS a " +
" WHERE a.kode_kategori=3 GROUP BY a.nama) AS aa, gangguan AS bb, kategori AS cc " +
" WHERE aa.kode_gangguan=bb.kode_gangguan AND aa.kode_kategori=cc.kode_kategori AND aa.ket='"+jenisData+"' " +
" GROUP BY aa.nama";
ResultSet r = s.executeQuery(sql);
while (r.next()){
Object[] o = new Object[8];
o[0]=false;
o[1]=r.getString("nama");
o[2]=r.getString("bobot1");
o[3]=r.getString("bobot2");
o[4]=r.getString("bobot3");
o[5]=r.getString("bb.nama_gangguan");
o[6]=r.getString("t1");
o[7]=r.getString("t2");
tabel.addRow(o);
}
r.close();
s.close();
}catch (SQLException e){
JOptionPane.showMessageDialog(this, "Error Load Data Pilih","Error Message",0);
}finally{
System.out.println("Berhasil load data dipilih");
}
}
public void getBobotBias(){
int i,j;
Statement s;
ResultSet r;
String sql;
try{
s = c.createStatement();
//jumlah hidden
sql = "SELECT * FROM bobotbias_hidden WHERE bobotbias='jumlah hidden'";
r = s.executeQuery(sql);
while (r.next()) {
jumHL = Integer.parseInt(r.getString("nilai"));
}
r.close();
//nilai max
sql = "SELECT * FROM bobotbias_hidden WHERE bobotbias='nilai max'";
r = s.executeQuery(sql);
while (r.next()) {
max = r.getDouble("nilai");
}
r.close();
//bobot hidden
v = new double[jumInput][jumHL];
for(i=0;i
for(j=0;j
sql = "SELECT * from bobotbias_hidden WHERE bobotbias='v["+i+"]["+j+"]'";
r = s.executeQuery(sql);
while (r.next()) {
v[i][j] = r.getDouble("nilai");
}
}
}
r.close();
//bias hidden
bv = new double[1][jumHL];
for(i=0;i
sql = "SELECT * from bobotbias_hidden WHERE bobotbias='bv["+i+"]'";
r = s.executeQuery(sql);
while (r.next()) {
bv[0][i] = r.getDouble("nilai");
}
}
r.close();
//bobot output
w = new double[jumHL][jumOutput];
for(i=0;i
for(j=0;j
sql = "SELECT * from bobotbias_output WHERE bobotbias='w["+i+"]["+j+"]'";
r = s.executeQuery(sql);
while (r.next()) {
w[i][j] = r.getDouble("nilai");
}
}
}
r.close();
//bias output
bw = new double[1][jumOutput];
for(i=0;i
sql = "SELECT * from bobotbias_output WHERE bobotbias='bw["+i+"]'";
r = s.executeQuery(sql);
while (r.next()) {
bw[0][i] = r.getDouble("nilai");
}
}
r.close();
s.close();
System.out.println("Berhasil load bobot dan bias");
}catch (SQLException e){
JOptionPane.showMessageDialog(this, "Error Load Bobot Bias","Error Message",0);
}
}
private void dataPengujian(){
int i,j,rowCount;
ArrayList list = new ArrayList();
jumData = 0;
//get jumlah data
rowCount = jTable1.getModel().getRowCount();
if(jRadioButton1.isSelected()){
for(i=0;i
jumData = jTable1.getModel().getRowCount();
list.add(i);
}
}else{
for(i=0;i
if((Boolean)jTable1.getModel().getValueAt(i, 0)==true){
jumData += 1;
list.add(i);
}
}
}
//get data
data = new double[jumData][jumInput];
target = new int[jumData][jumOutput];
nama = new String[jumData];
gangguan = new String[jumData];
for(i=0;i
int a = (Integer)list.get(i);
nama[i] = (String)jTable1.getModel().getValueAt(a,1);
gangguan[i] = (String)jTable1.getModel().getValueAt(a,5);
for(j=0;j
data[i][j] = Double.parseDouble((String)jTable1.getModel().getValueAt(a,j+2));
}
target[i][0] = Integer.parseInt((String)jTable1.getModel().getValueAt(a,6));
target[i][1] = Integer.parseInt((String)jTable1.getModel().getValueAt(a,7));
}
}
private void forwardPass(){
final double e = 2.718281828;
double[][] z;
int i,j,k;
double zin,yin;
// System.out.println("max:" +max);
/** hitung dan cari nilai z **/
zin = 0;
z = new double[jumData][jumHL];
for(i=0;i
for(j=0;j
zin = 1*bv[0][j];
for(k=0;k
zin += ((data[i][k]/max)*v[k][j]);
}
z[i][j] = 1/(1 + (Math.pow(e, (-(zin)))));
}
}
/** hitung dan cari nilai y **/
yin = 0;
y = new double[jumData][jumOutput];
for(i=0;i
for(j=0;j
yin = 1*bw[0][j];
for(k=0;k
yin += (z[i][k]*w[k][j]);
}
y[i][j] = 1/(1 + (Math.pow(e, (-(yin)))));
}
}
}
private void hasil(){
DefaultTableModel tabel2 = new DefaultTableModel();
int t1,t2;
int jumBenar=0;
String gangguanOut="";
String cek = "";
jTable2.setModel(tabel2);
tabel2.addColumn("Nama");
tabel2.addColumn("T1");
tabel2.addColumn("T2");
tabel2.addColumn("Target");
tabel2.addColumn("Y1");
tabel2.addColumn("Y2");
tabel2.addColumn("Output");
tabel2.addColumn("Hasil");
tabel2.getDataVector().removeAllElements();
tabel2.fireTableDataChanged();
int jumCol = tabel2.getColumnCount();
for(int i=0;i
//target
t1 = (int) Math.round(y[i][0]);
t2 = (int) Math.round(y[i][1]);
try{
Statement s = c.createStatement();
String sql = "SELECT * FROM gangguan WHERE target1="+t1+" AND target2="+t2;
ResultSet r = s.executeQuery(sql);
while (r.next()) {
gangguanOut = r.getString("nama_gangguan");
}
r.close();
s.close();
}catch (SQLException e){
System.out.println("Error Load Data Gangguan");
}
if((target[i][0]==t1)&&(target[i][1]==t2)){
cek = "Benar";
jumBenar++;
}else{
cek = "Salah";
}
Object[] obj = new Object[jumCol];
obj[0] = nama[i];
obj[1] = target[i][0];
obj[2] = target[i][1];
obj[3] = gangguan[i];
obj[4] = y[i][0];
obj[5] = y[i][1];
obj[6] = gangguanOut;
obj[7] = cek;
tabel2.addRow(obj);
}
double persen = (jumBenar*100)/jumData;
jTextField2.setText(new DecimalFormat("##.##").format(persen)+" %");
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
home utama = new home();
this.dispose();
utama.setVisible(true);
}
private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
DefaultTableModel data1 = (DefaultTableModel)jTable1.getModel();
DefaultTableModel data2 = (DefaultTableModel)jTable2.getModel();
jRadioButton2.setSelected(false);
data1.setRowCount(0);
data2.setRowCount(0);
dataPilih("Data Latih");
jTable1.setEnabled(false);
}
private void formWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
tampilData();
}
private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
DefaultTableModel data1 = (DefaultTableModel)jTable1.getModel();
DefaultTableModel data2 = (DefaultTableModel)jTable2.getModel();
jRadioButton1.setSelected(false);
data1.setRowCount(0);
data2.setRowCount(0);
dataPilih("Data Awal");
jTable1.setEnabled(true);
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dataPengujian();
getBobotBias();
forwardPass();
hasil();
}
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int i = jTable1.getSelectedRow();
if((Boolean)jTable1.getValueAt(jTable1.getSelectedRow(), 0)==false){
jTable1.setValueAt(true, i, 0);
}else{
jTable1.setValueAt(false, i, 0);
}
}
From Prediksi
public class prediksi extends javax.swing.JFrame {
Connection cc = TugasAkhir.getConnection();
DefaultTableModel tabel = new DefaultTableModel();
String[] kategori = null;
String[] soal = null;
double[] bobot = null;
String[] a = null;
String[] b = null;
String[] c = null;
String[] d = null;
String[] e = null;
int[] jumPerKategori = null;
int jumSoal = 0;
int jumKategori = 0;
int pointer = 0;
int poin = 0;
String jawaban;
Boolean edit = false;
public prediksi() {
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int x = (dim.width-getWidth())/2;
int y = (dim.height-getHeight())/2;
setLocation(y, y);
initComponents();
}
public void tampilSoal(){
int i = 0;
jTable1.setModel(tabel);
//set table column
tabel.addColumn("Soal");
tabel.addColumn("Jawaban");
tabel.getDataVector().removeAllElements();
tabel.fireTableDataChanged();
//get data soal
try{
Statement s = cc.createStatement();
//get jumlah kategori soal
String jumKategoriSQL = "SELECT COUNT(kode_kategori) AS jum_kategori FROM kategori";
ResultSet r = s.executeQuery(jumKategoriSQL);
while (r.next()){
jumKategori = r.getInt("jum_kategori");
}
r.close();
//get jumlah perKategori
jumPerKategori = new int[jumKategori];
String jumPerKategoriSQL = "SELECT COUNT(kode_kategori) AS jum_per_kategori FROM pertanyaan GROUP BY kode_kategori;";
r = s.executeQuery(jumPerKategoriSQL);
i = 0;
while (r.next()){
jumPerKategori[i] = r.getInt("jum_per_kategori");
i++;
}
r.close();
//get jumlah soal
String jumSQL = "SELECT COUNT(kode_pertanyaan) AS jumlah FROM pertanyaan";
r = s.executeQuery(jumSQL);
while (r.next()){
jumSoal = r.getInt("jumlah");
}
r.close();
//assign array length
kategori = new String[jumSoal];
soal = new String[jumSoal];
bobot = new double[jumSoal];
a = new String[jumSoal];
b = new String[jumSoal];
c = new String[jumSoal];
d = new String[jumSoal];
e = new String[jumSoal];
//get pertanyaan
String sql = "SELECT * FROM pertanyaan ORDER BY kode_pertanyaan";
r = s.executeQuery(sql);
i = 0;
while (r.next()){
kategori[i] = r.getString("kode_kategori");
soal[i] = r.getString("soal");
bobot[i] = 0.0;
a[i] = r.getString("pilihanA");
b[i]=r.getString("pilihanB");
c[i]=r.getString("pilihanC");
d[i]=r.getString("pilihanD");
e[i]=r.getString("pilihanE");
i++;
}
r.close();
s.close();
}catch(SQLException ee){
System.out.println(ee);
}
jTable1.setEnabled(false);
jLabel1.setText(""+(pointer+1));
jLabel9.setText(""+jumSoal);
jTextArea1.setText(soal[0]);
jRadioButton2.setText(a[0]);
jRadioButton1.setText(b[0]);
jRadioButton3.setText(c[0]);
jRadioButton4.setText(d[0]);
jRadioButton5.setText(e[0]);
}
public void radioEnable(){
jRadioButton1.setEnabled(true);
jRadioButton2.setEnabled(true);
jRadioButton3.setEnabled(true);
jRadioButton4.setEnabled(true);
jRadioButton5.setEnabled(true);
}
public void radioDisable(){
jRadioButton1.setEnabled(false);
jRadioButton2.setEnabled(false);
jRadioButton3.setEnabled(false);
jRadioButton4.setEnabled(false);
jRadioButton5.setEnabled(false);
}
public void pilih(){
if(pointer
//set pilihan ke table
Object[] o = new Object[2];
o[0] = soal[pointer];
o[1] = jawaban;
tabel.addRow(o);
pointer++;
if(pointer==jumSoal){
jTextArea1.setText("SELESAI");
jLabel1.setText("-");
jTable1.setEnabled(true);
radioDisable();
}else{
jLabel1.setText(""+(pointer+1));
jTextArea1.setText(soal[pointer]);
}
}
if(edit){
jTable1.setValueAt(soal[poin], poin, 0);
jTable1.setValueAt(jawaban, poin, 1);
jTextArea1.setText("SELESAI");
jLabel1.setText("-");
jTable1.setEnabled(true);
radioDisable();
edit = false;
}
buttonGroup1.clearSelection();
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
home utama = new home();
this.dispose();
utama.setVisible(true);
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
int i,j,k;
pengujian p = new pengujian();
//get bobot dan bias
p.getBobotBias();
//assign all variable
int jumInput = p.jumInput;
int jumOutput = p.jumOutput;
int jumData = 1;
int jumHL = p.jumHL;
double max = p.max;
double[][] y;
//assign data
double[] jumBobot = new double[jumInput];
double[][] data = new double[jumData][jumInput];
//menjumlahkan bobot
k=0;
for(i=0;i
j = 0;
jumBobot[i] = 0.0;
while(j
jumBobot[i] += bobot[k];
j++;
k++;
}
System.out.println("jumBobot["+i+"]: "+jumBobot[i]);
}
//konversi data
for(i=0;i
data[0][i] = jumBobot[i];
}
//forward pass
final double e = 2.718281828;
double[][] z;
double zin,yin;
System.out.println("max:" +max);
/** hitung dan cari nilai z **/
zin = 0;
z = new double[jumData][jumHL];
for(i=0;i
for(j=0;j
zin = 1*p.bv[0][j];
for(k=0;k
zin += ((data[i][k]/max)*p.v[k][j]);
}
z[i][j] = 1/(1 + (Math.pow(e, (-(zin)))));
}
}
/** hitung dan cari nilai y **/
yin = 0;
y = new double[jumData][jumOutput];
for(i=0;i
for(j=0;j
yin = 1*p.bw[0][j];
for(k=0;k
yin += (z[i][k]*p.w[k][j]);
}
y[i][j] = 1/(1 + (Math.pow(e, (-(yin)))));
}
}
//result
int t1,t2;
t1 = (int) Math.round(y[0][0]);
t2 = (int) Math.round(y[0][1]);
String hasil="";
try{
Statement s = cc.createStatement();
String sql = "SELECT * FROM gangguan WHERE target1="+t1+" AND target2="+t2;
ResultSet r = s.executeQuery(sql);
while (r.next()) {
hasil = r.getString("nama_gangguan");
}
r.close();
s.close();
}catch (SQLException ee){
System.out.println("Error Load Data Gangguan");
}
jTextField1.setText(hasil);
}
private void formWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
tampilSoal();
}
private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(edit){
bobot[poin] = 0.00;
}else{
bobot[pointer] = 0.00;
}
jawaban = jRadioButton2.getText();
pilih();
}
private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(edit){
bobot[poin] = 0.25;
}else{
bobot[pointer] = 0.25;
}
jawaban = jRadioButton1.getText();
pilih();
}
private void jRadioButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(edit){
bobot[poin] = 0.5;
}else{
bobot[pointer] = 0.5;
}
jawaban = jRadioButton3.getText();
pilih();
}
private void jRadioButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(edit){
bobot[poin] = 0.75;
}else{
bobot[pointer] = 0.75;
}
jawaban = jRadioButton4.getText();
pilih();
}
private void jRadioButton5ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(edit){
bobot[poin] = 1.0;
}else{
bobot[pointer] = 1.0;
}
jawaban = jRadioButton5.getText();
pilih();
}
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
poin = jTable1.getSelectedRow();
jTextArea1.setText(jTable1.getValueAt(poin, 0).toString());
jLabel1.setText(""+(poin+1));
radioEnable();
edit = true;
}