December 8, 2010

Program Menghitung Forward Artificial Neural Network menggunakan Java

Soal 1 Single Layer Neuron

 Jawab:

Inputs x Weights = (0.5 x 0.3)+(0.1 x 0.6)+(0.6 x 0.7) = 0.63
Output                = 1/1+(e^−0.63)
                           = 1.533
Soal 2 Tiga Layer Neuron
 Jawab:
Input to Neuron 1 = (0.6 x 0.6)+(0.1 x 0.1) = 0.37
                            = 1/1+(e^−0.37) = 0.5914
Input to Neuron 2 = (0.1 x 0.3)+(0.1 x 0.5) =0.33
                            = 1/1+(e^−0.33) = 0.5817
Final Output         = (0.5914)+(0.5817) = 0.823
                            = 1/1+(e^−0.823) = 0.587
Tuh soal dari dosen-q disuruh bikin program menggunakan bahasa pemrograman tingkat tinggi untuk menghitung Nilai Neuron pada soal no 1 dan 2, nah saya membuat program tersebut menggunakan Java
Ini dia Caranya...

Pertama membuat singleLayerNeuron.class
untuk membuat program Soal 1 ne source code nya


package neuron;
import javax.swing.JOptionPane;
/**
 *
 * @author Udin
 */
public class singleLayerNeuron {
   
double input1=0.5,input2=0.1,input3=0.6;
double weight1=0.3,weight2=0.6,weight3=0.7;

public void OutputSingleLayerNeouron(){
    double pow;
    double e=Math.exp(1);
    double hasilJumlah;
    double output;
//logika menjumlahkan inputs dan weights
hasilJumlah=(input1*weight1)+(input2*weight2)+(input3*weight3);
//logika memangkatkan e- jumlah input dan weight
pow=Math.pow(e,-hasilJumlah);
//logika output 1/1+ e yg sudah dipangkat - jumlah inputs dan weights
output=1/1+pow;
}
}
___________________________________________________________________________

Kedua membuat tigaLayerNeuron.class
untuk membuat program Soal 2
 
package neuron;
import javax.swing.JOptionPane;
/**
 *
 * @author Udin
 */
public class tigaLayerNeuron {
//input1
 double input1=0.6;  
//input2
 double input2=0.1;      
//to neuron1
 double input1toNeuron1=0.6;
 double input2toNeuron1=0.1;
//to neuron2
 double input1toNeuron2=0.5;
 double input2toNeuron2=0.3;
//from Neuron1
 double fromNeuron1=0.4;
//from neuron2
 double fromNeuron2=0.2;
//output
 double output;

 public void outputTigaLayerNeuron(){
      double powN1;
      double powN2;
      double powFneuron;
      double e=Math.exp(1);
   //logika menghitung  Neuron 1
     double toNeuron1=(input1*input1toNeuron1)+(input2*input2toNeuron1);
   //logika menghitung Neuron 2
     double toNeuron2=(input2*input2toNeuron2)+(input1*input1toNeuron2);
   //logika memangkatkan Exp dg hasil toNeuron1
     powN1=Math.pow(e,-toNeuron1);
   //logika memangkatkan Exp dg hasil toNeuron2
     powN2=Math.pow(e, -toNeuron2); 
  //logika menghitung Final neuron
    double finalNeuron=(1/(1+powN1)*fromNeuron1)+(1/(1+powN2)*fromNeuron2);
  //logika memangkatkan e dg - nilai finalNeuron
    powFneuron=Math.pow(e, -finalNeuron);
 //logika menghitung final output 1/1+e pangkat -nilai finalNeuron
    double finalOutput=1/(1+powFneuron);
 }
}

______________________________________________________________________
Ketiga membuat  Main.class
untuk memanggil program Soal1 dan Soal 2, agar saat dicompile bisa tampil.



package neuron;

import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/**
 *
 * @author Udin
 */
public class Main {

    public static void main(String[] args) {
        int jenisNeuron=0;
        String input="";
        int n;
    singleLayerNeuron sln=new singleLayerNeuron();
        tigaLayerNeuron tln=new tigaLayerNeuron();
        input= JOptionPane.showInputDialog("        ---LAYER NEURON---\n\n" +
                "1 = Single Layer Neuron \n2 = Tiga Layer Neuron\n");
        jenisNeuron=Integer.parseInt(input);
       
    try{
    if(jenisNeuron==1){    
    sln.OutputSingleLayerNeouron();
    }else if(jenisNeuron==2){
    tln.outputTigaLayerNeuron();
    } else if(jenisNeuron<1 || jenisNeuron>2)
    JOptionPane.showMessageDialog(null,"Tidak ada Pilihan ");
   
    JFrame frame=new JFrame();
    n=JOptionPane.showConfirmDialog(frame,"Kembali ke Menu Utama?","Komfirmasi",JOptionPane.YES_NO_OPTION);
    if(n==0)
       Main.main(args);
    else
        JOptionPane.showMessageDialog(null,"Anda sudah Keluar");
    } catch(NumberFormatException e){
      JOptionPane.showMessageDialog(null,"Selesai");
    }
    }
}


pastikan semua class tersebut berada dalam satu package Neuron
nah... setelah membuat program tersebut.. coba dech compile,   seperti ini neh.. hasilnya
coba inputkan angka 1 lalu OK, maka yang muncul adalah single Layer neuron sesuai dengan pilihan

dan jika menginputkan dua, berarti mau liat hasil Tiga Layer neuron

jika di klik OK, maka ada penawaran mau balik ke Menu Utama ga? hehe...seperti ini ne..
 jika dikli Milih Yes maka akan balik ke Menu Utrama dech (Gambar pertama), jika No maka Akan keluar
untuk download project-nya klik disini
Kawan Thanks ya.. n selamat mencoba Okey.. :)

No comments:

Post a Comment