Program studi informatika fakultas teknologi informasi dan elektro universitas teknologi yogyakarta



Yüklə 2,32 Mb.
səhifə12/13
tarix31.10.2018
ölçüsü2,32 Mb.
#77461
1   ...   5   6   7   8   9   10   11   12   13

Form Input Gangguan

String kolom0,kolom1;
public inputdatagangguan() {

initComponents();

tampiluser();

}

private void TampilCombobox() {



jComboBox1.removeAllItems();

jComboBox1.addItem("-Pilih-");

try {

String query = "select * from gangguan";



Statement st = TugasAkhir.getConnection().createStatement();

ResultSet rs = st.executeQuery(query);

while (rs.next()) {

jComboBox1.addItem(rs.getString("nama_gangguan"));

}

st.close();



rs.close();

TugasAkhir.getConnection().close();

} catch(Exception e) {

System.out.println(e);

}

}

private void tampiluser() {



try {

DefaultTableModel dtm = new DefaultTableModel(){

@Override

public boolean isCellEditable(int row, int col) {

return false;

}

};



dtm.addColumn("Id");

dtm.addColumn("Nama");

dtm.addColumn("Gangguan");

String sql = "SELECT DISTINCT kode_perolehan, nama , nama_gangguan FROM perolehan_copy p, gangguan g where p.kode_gangguan=g.kode_gangguan ";

Statement stmt = TugasAkhir.getConnection().createStatement();

ResultSet rs = stmt.executeQuery(sql);

while(rs.next()) {

dtm.addRow(new Object[] {

rs.getString("kode_perolehan"),

rs.getString("nama"),

rs.getString("nama_gangguan")

});


jTable1.setModel(dtm);

}

stmt.close();



} catch (SQLException ex) {

Logger.getLogger(datauser.class.getName()).log(Level.SEVERE,null,ex);

}

}

private void formWindowOpened(java.awt.event.WindowEvent evt) {



// TODO add your handling code here:

TampilCombobox();

tampiluser();

}
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

jComboBox1.setEnabled(true);

jButton1.setEnabled(true);

int baris=jTable1.getSelectedRow();

int kolom=jTable1.getSelectedColumn();

String dataterpilih=jTable1.getValueAt(baris, kolom).toString();

kolom0=jTable1.getValueAt(baris, 0).toString();

kolom1=jTable1.getValueAt(baris, 1).toString();

try {

DefaultTableModel dtm = new DefaultTableModel();



dtm.addColumn("Soal");

dtm.addColumn("Jawaban");

dtm.addColumn("Bobot");

String sql = "SELECT pertanyaan.soal, perolehan_copy.jawaban,bobot FROM perolehan_copy, pertanyaan WHERE pertanyaan.kode_pertanyaan=perolehan_copy.kode_pertanyaan and nama='"+kolom1+"'";

Statement stmt = TugasAkhir.getConnection().createStatement();

ResultSet rs = stmt.executeQuery(sql);

while(rs.next()) {

dtm.addRow(new Object[] {

rs.getString("soal"),

rs.getString("jawaban"),

rs.getString("bobot")

});


jTable2.setModel(dtm);

}

stmt.close();



} catch (SQLException ex) {

Logger.getLogger(datauser.class.getName()).log(Level.SEVERE,null,ex);

}

}
private void jTable2MouseClicked(java.awt.event.MouseEvent evt) {



// TODO add your handling code here:

}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

String kode="";

String trg="";

try {


String ggn=(String) jComboBox1.getSelectedItem();

Statement Stm = (Statement)TugasAkhir.getConnection().createStatement();

String sql = "SELECT kode_gangguan from gangguan where nama_gangguan='"+ggn+"'";

ResultSet rs = Stm.executeQuery(sql);

if (rs.next()) {

kode = rs.getString("kode_gangguan");

//trg = rs.getString("target");

}

//Stm.close();



int konfirm=JOptionPane.showConfirmDialog(this,

"Yakin data disimpan?","Konfirmasi",JOptionPane.YES_NO_OPTION);

if(konfirm==0)

{

Stm.executeUpdate("update perolehan_copy set kode_gangguan='"+kode+"'"+" where kode_perolehan='"+kolom0+"'");



JOptionPane.showMessageDialog(this, "Berhasil di ubah");

Stm.close();

tampiluser();

}

else



{

//batalkrActionPerformed(evt);

}

} catch(Exception e) {



JOptionPane.showMessageDialog(this, "Gagal ubah"+e);

}

}


Form Pelatihan

public class pelatihan extends javax.swing.JFrame{


private double[][] data;

private int[][] target;

private String[] nama;

private int jumData;

private int jumHL;

private double max;

private static int jumInput = 3;

private static int jumOutput = 2;

private double[][] v,bv,w,bw;

//variables for counting total diseas

int jumlah =0;

int jumAno =0;

int jumBed =0;

int jumNor =0;

int jumBul =0;

private ArrayList> aList;

private XYSeries series;

Connection c = TugasAkhir.getConnection();

public pelatihan() {

initComponents();

txtJumlahHidden.setDocument(new validasiinput(validasiinput.numeric));

txtKelipatanIterasi.setDocument(new validasiinput(validasiinput.numeric));

txtKonstantaBelajar.setDocument(new validasiinput(validasiinput.numeric));

txtMaksimalIterasi.setDocument(new validasiinput(validasiinput.numeric));

txtSse.setDocument(new validasiinput(validasiinput.numeric));

series = new XYSeries("Nilai MSE");

}

private void TampilData() {

DefaultTableModel tabel = new DefaultTableModel(){

@Override

public boolean isCellEditable(int row, int col) {

return col == 0;

}

@Override



public Class getColumnClass(int columnIndex) {

Class clazz = String.class;

switch (columnIndex) {

case 0:


clazz = Boolean.class;

break;


}

return clazz;

}

@Override



public void setValueAt(Object aValue, int row, int column) {

if (aValue instanceof Boolean && column == 0) {


@SuppressWarnings("unchecked")

Vector rowData = (Vector)getDataVector().get(row);

rowData.set(0, (boolean)aValue);

fireTableCellUpdated(row, column);

}

}

};



jTable1.setModel(tabel);

tabel.addColumn("Pilih");

tabel.addColumn("Nama");

tabel.addColumn("Bobot 1");

tabel.addColumn("Bobot 2");

tabel.addColumn("Bobot 3");

tabel.addColumn("Gangguan");

tabel.addColumn("Target 1");

tabel.addColumn("Target 1");

tabel.getDataVector().removeAllElements();

tabel.fireTableDataChanged();

try{


Statement s = c.createStatement();

String sql = "SELECT aa.nama AS nama,SUM(aa.bobot1) AS bobot1,SUM(aa.bobot2) AS bobot2,SUM(aa.bobot3) AS bobot3, bb.nama_gangguan, bb.target1 AS t1, bb.target2 AS t2 " +

" FROM (SELECT a.nama,SUM(a.bobot) AS bobot1,0 AS bobot2,0 AS bobot3,a.kode_gangguan,a.kode_kategori,a.ket " +

" FROM perolehan_copy AS a" +

" WHERE a.kode_kategori=1 GROUP BY a.nama " +

" 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 " +

" 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","Error Message",0);

}

jumlahdata1.setText(""+jumlah);



ano1.setText(""+jumAno);

bed1.setText(""+jumBed);

bno1.setText(""+jumBul);

nor1.setText(""+jumNor);

}

private void hapusBobotBias(){



PreparedStatement p;

try{


String sql1 = "DELETE from bobotbias_hidden";

String sql2 = "DELETE from bobotbias_output";

p = c.prepareStatement(sql1);

p.executeUpdate();

p = c.prepareStatement(sql2);

p.executeUpdate();

p.close();

}catch (SQLException e){

JOptionPane.showMessageDialog(null, "Bobot Bias Gagal Dihapus!", "Error Message", 0);

}finally{

}

}

private void simpanBobotBiasHidden(){



PreparedStatement p;

String sql1,sql2;

try{

//bobot hidden



for(int i=0;i

for(int j=0;j

sql1 = "INSERT INTO bobotbias_hidden VALUES(?,?)";

p = c.prepareStatement(sql1);

p.setString(1, "v["+i+"]["+j+"]");

p.setDouble(2, v[i][j]);

p.executeUpdate();

p.close();

}

}

//bias hidden



for(int i=0;i

sql1 = "INSERT INTO bobotbias_hidden VALUES(?,?)";

p = c.prepareStatement(sql1);

p.setString(1, "bv["+i+"]");

p.setDouble(2, bv[0][i]);

p.executeUpdate();

p.close();

}

//jumlah hidden dan nilai inputan max



sql1 = "INSERT INTO bobotbias_hidden VALUES(?,?)";

p = c.prepareStatement(sql1);

p.setString(1, "jumlah hidden");

p.setDouble(2, jumHL);

p.executeUpdate();

p.close();

sql2 = "INSERT INTO bobotbias_hidden VALUES(?,?)";

p = c.prepareStatement(sql2);

p.setString(1, "nilai max");

p.setDouble(2, max);

p.executeUpdate();

p.close();

}catch (SQLException e){

JOptionPane.showMessageDialog(null, "Bobot Bias Hidden Gagal Disimpan!", "Error Message", 0);

}finally{

//clear();

}

}

private void simpanBobotBiasOutput(){



PreparedStatement p;

String sql;

try{

//bobot output



for(int i=0;i

for(int j=0;j

sql = "INSERT INTO bobotbias_output VALUES(?,?)";

p = c.prepareStatement(sql);

p.setString(1, "w["+i+"]["+j+"]");

p.setDouble(2, w[i][j]);

p.executeUpdate();

p.close();

}

}

//bias output



for(int i=0;i

sql = "INSERT INTO bobotbias_output VALUES(?,?)";

p = c.prepareStatement(sql);

p.setString(1, "bw["+i+"]");

p.setDouble(2, bw[0][i]);

p.executeUpdate();

p.close();

}

}catch (SQLException e){



JOptionPane.showMessageDialog(null, "Bobot Bias Output Gagal Disimpan!", "Error Message", 0);

}finally{

//clear();

}

}


private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

home utama = new home();

this.dispose();

utama.setVisible(true);

}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {


double konsBelajar = Double.parseDouble(txtKonstantaBelajar.getText());

if (konsBelajar > 1.0){

JOptionPane.showMessageDialog(this, "Nilai konstanta belajar harus kurang dari 1");

}else{


jTextArea3.removeAll();
//assign parameter input dan target

int jumAll = jTable1.getRowCount();

int index = 0;

jumData = jumlah;

data = new double[jumData][jumInput];

target = new int[jumData][jumOutput];

nama = new String[jumData];
for(int i=0;i

if((Boolean)jTable1.getValueAt(i, 0)==true){

nama[index] = jTable1.getValueAt(i,1).toString();

for(int j=0;j

data[index][j] = Double.parseDouble(jTable1.getValueAt(i,j+2).toString());

}

target[index][0] = Integer.parseInt(jTable1.getValueAt(i,6).toString());



target[index][1] = Integer.parseInt(jTable1.getValueAt(i,7).toString());

index++;


}

}

//cari nilai maksimal dari inputan



max = 0;

for(int i=0;i

for(int j=0;j

if(data[i][j] > max){

max = data[i][j];

}

}



}

//normalisasi data inputan

for(int i=0;i

for(int j=0;j

data[i][j] = data[i][j]/max;

}

}


//procedure penghitungan BP

hitungBP(data, target, jumData);

}

}
//procedure hitungBP



private void hitungBP(double[][] x,int[][] t,int jmlData){

final double e = 2.718281828;

double[][] z,y;

double[] hiddenL,sy,q,sz;

int c,i,j,k;

int jmlinpt,jmlHL,jmlOutput,iterasi,maxIter,selang;

double zin,yin,jumlah,sse,galat;

double konsBelajar;

jmlHL = Integer.parseInt(txtJumlahHidden.getText());

maxIter = Integer.parseInt(txtMaksimalIterasi.getText());

galat = Double.parseDouble(txtSse.getText());

konsBelajar = Double.parseDouble(txtKonstantaBelajar.getText());

selang = Integer.parseInt(txtKelipatanIterasi.getText());
if (konsBelajar>=1){

JOptionPane.showMessageDialog(this, "melebihi batas");

}

// //set nilai konfigurasi jaringan



jmlinpt = jumInput;

jmlOutput = jumOutput;

jumHL = jmlHL;

//bobot x-z

v = new double[jmlinpt][jmlHL];

for(i=0;i

for(j=0;j

v[i][j] = Math.random();

}

}

//bias x-z



bv = new double[1][jmlHL];

for(i=0;i

bv[0][i] = Math.random();

}

//bobot z-y



w = new double[jmlHL][jmlOutput];

for(i=0;i

for(j=0;j

w[i][j] = Math.random();

}

}

//bias z-y



bw = new double[1][jmlHL];

for(i=0;i

bw[0][i] = Math.random();

}

/** hitung dan cari nilai z **/



zin = 0;

z = new double[jmlData][jmlHL];

for(i=0;i

for(j=0;j

zin = 1*bv[0][j];

for(c=0;c

zin += (x[i][c]*v[c][j]);

}

z[i][j] = 1/(1 + (Math.pow(e, (-(zin)))));



}

}

/** hitung dan cari nilai y **/



yin = 0;

y = new double[jmlData][jmlOutput];

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)))));



}

}

/** hitung sse **/



sse = 0;

for(i=0;i

for(j=0;j

sse += Math.pow((t[i][j]-y[i][j]), 2);

}

}

jTextArea3.append("iterasi: "+0+"; SSE: "+sse+"\n");



//** Masuk iterasi **//

iterasi = 0;

hiddenL = new double[jmlHL];

// System.out.println("iterasi: "+iterasi+"; SSE: "+sse);

do {

iterasi += 1;



for(i=0;i

//hitung nilai zin dan z

for(j=0;j

jumlah = 1*bv[0][j];

for(k=0;k

jumlah += (x[i][k]*v[k][j]);

}

hiddenL[j] = 1 / (1 + (Math.pow(e,-(jumlah))));



}

//hitung nilai yin dan y

for(j=0;j

jumlah = 1*bw[0][j];

for(k=0;k

jumlah += (hiddenL[k]*w[k][j]);

}

y[i][j] = 1 / (1 + (Math.pow(e,-(jumlah))));



}

//hitung galat informasi sy

sy = new double[jmlOutput];

for(j=0;j

sy[j] = (t[i][j]-y[i][j])*y[i][j]*(1-y[i][j]);

}

//hitung nilai dinz



q = new double[jmlHL];

for(j=0;j

q[j]=0;

for(k=0;k

q[j] += (sy[k]*w[j][k]);

}

}



//hitung nilai dz

sz = new double[jmlHL];

for(j=0;j

sz[j] = q[j]*hiddenL[j]*(1-hiddenL[j]);

}

//hitung bobot dan bias baru y



for(j=0;j

bw[0][j] += (konsBelajar*sy[j]*1);

for(k=0;k

w[k][j] += (konsBelajar*sy[j]*hiddenL[k]);

}

}

//hitung bobot dan bias baru z



for(j=0;j

bv[0][j] += (konsBelajar*sz[j]*1);

for(k=0;k

v[k][j] += (konsBelajar*sz[j]*x[i][k]);

}

}

}



//hitung dan cari nilai z

for(i=0;i

for(j=0;j

zin = 1*bv[0][j];

for(k=0;k

zin += (x[i][k]*v[k][j]);

}

z[i][j] = 1 / (1 + (Math.pow(e,(-(zin)))));



}

}

//hitung dan cari nilai y



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)))));



}

}

//hitung sse



sse = 0;

for(i=0;i

for(j=0;j

sse += Math.pow((t[i][j]-y[i][j]), 2);

}

}

//selang tampilan



if(((iterasi%selang) == 0) || (sse

jTextArea3.append("iterasi: "+iterasi+"; SSE: "+sse+"\n");

}

series.add(sse,iterasi);



} while ((iterasigalat));

//chart


XYSeriesCollection dataset = new XYSeriesCollection(series);

JFreeChart chart = ChartFactory.createXYLineChart("Grafik Mean Squared Error (MSE)",

"SSE", "Iterasi", dataset,PlotOrientation.HORIZONTAL,true,true,true);

ChartPanel chartpanel = new ChartPanel(chart);

JPanel panelChart = new JPanel();

panelChart.setLayout(new BorderLayout());

panelChart.add(chartpanel,BorderLayout.NORTH);

JFrame frame = new JFrame();

frame.add(panelChart);

frame.pack();

setLocationRelativeTo(null);

frame.setVisible(true);

double mseNil = sse/jumData;

mse.setText(""+mseNil);

iterasicapai.setText(""+iterasi);

}

private void formWindowOpened(java.awt.event.WindowEvent evt) {


TampilData();

}


private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {

//count total diseas

int i = jTable1.getSelectedRow();

int getT1 = Integer.parseInt((String)jTable1.getModel().getValueAt(i,6));

int getT2 = Integer.parseInt((String)jTable1.getModel().getValueAt(i,7));

if((Boolean)jTable1.getValueAt(jTable1.getSelectedRow(), 0)==false){

jTable1.setValueAt(true, i, 0);

jumlah++;

if((getT1==0) && (getT2==0)){

jumAno += 1;

}else if((getT1==0) && (getT2==1)){

jumBul += 1;

}else if((getT1==1) && (getT2==0)){

jumBed += 1;

}else {

jumNor += 1;



}

}else{


jTable1.setValueAt(false, i, 0);

jumlah--;

if((getT1==0) && (getT2==0)){

jumAno -= 1;

}else if((getT1==0) && (getT2==1)){

jumBul -= 1;

}else if((getT1==1) && (getT2==0)){

jumBed -= 1;

}else {

jumNor -= 1;



}

}

jumlahdata1.setText(""+jumlah);



ano1.setText(""+jumAno);

bed1.setText(""+jumBed);

bno1.setText(""+jumBul);

nor1.setText(""+jumNor);

}
private void simpanActionPerformed(java.awt.event.ActionEvent evt) {

try{


//reset all data

for(int i=0;i

String ket = "Data Awal";

// String sql = "UPDATE perolehan_copy SET ket=? WHERE nama=?";

String sql = "UPDATE perolehan_copy SET ket=?";

PreparedStatement p = c.prepareStatement(sql);

p.setString(1, ket);

p.executeUpdate();

p.close();

}

//set data awal to data latih



for(int i=0;i

String ket = "Data Latih";

String sql = "UPDATE perolehan_copy SET ket=? WHERE nama=?";

PreparedStatement p = c.prepareStatement(sql);

p.setString(1, ket);

p.setString(2, nama[i]);

p.executeUpdate();

p.close();

}

//hapus bobot bias yang ada



hapusBobotBias();

//simpan bobot dan bias

simpanBobotBiasHidden();

simpanBobotBiasOutput();

JOptionPane.showMessageDialog(null, "Data Berhasil Disimpan!","Succes Message",1);

}catch (SQLException e){

JOptionPane.showMessageDialog(null, "Data Gagal Disimpan!", "Error Message", 0);

}finally{

//clear();

}

}


Form Pengujian

public class pengujian extends javax.swing.JFrame {

private DefaultTableModel tabel;

private final java.sql.Connection c = TugasAkhir.getConnection();

private double[][] data;

private int[][] target;

private String[] nama;

private String[] gangguan;

private int jumData;

public int jumHL;

public double max;

public static final int jumInput = 3;

public static final int jumOutput = 2;

public double[][] v,bv,w,bw;

private double[][] y;

public pengujian() {

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();

int x = (dim.width-getWidth())/2;

int y = (dim.height-getHeight())/2;

setLocation(y, y);

initComponents();

}
private void tampilData(){

tabel = new DefaultTableModel(){

@Override

public boolean isCellEditable(int row, int col) {

return col == 0;

}

@Override



public Class getColumnClass(int columnIndex) {

Class clazz = String.class;

switch (columnIndex) {

case 0:


clazz = Boolean.class;

break;


}

return clazz;

}

@Override



public void setValueAt(Object aValue, int row, int column) {

if (aValue instanceof Boolean && column == 0) {


@SuppressWarnings("unchecked")

Vector rowData = (Vector)getDataVector().get(row);

rowData.set(0, (boolean)aValue);

fireTableCellUpdated(row, column);

}

}

};



jTable1.setModel(tabel);

tabel.addColumn("Pilih");

tabel.addColumn("Nama");

tabel.addColumn("Bobot 1");

tabel.addColumn("Bobot 2");

tabel.addColumn("Bobot 3");

tabel.addColumn("Gangguan");

tabel.addColumn("Target 1");

tabel.addColumn("Target 1");

tabel.getDataVector().removeAllElements();

tabel.fireTableDataChanged();

}

private void dataPilih(String jenisData){



try{

Statement s = c.createStatement();

String sql = "SELECT aa.nama AS nama,SUM(aa.bobot1) AS bobot1,SUM(aa.bobot2) AS bobot2,SUM(aa.bobot3) AS bobot3, bb.nama_gangguan, bb.target1 AS t1, bb.target2 AS t2 " +

" FROM (SELECT a.nama,SUM(a.bobot) AS bobot1,0 AS bobot2,0 AS bobot3,a.kode_gangguan,a.kode_kategori,a.ket " +

" FROM perolehan_copy AS a" +

" WHERE a.kode_kategori=1 GROUP BY a.nama " +


Yüklə 2,32 Mb.

Dostları ilə paylaş:
1   ...   5   6   7   8   9   10   11   12   13




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə