Program Visual Basic 2012 Jaringan Syaraf Tiruan ( JST )
1. Tampilan Layout JST
2. Program VB 2012
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
double x1, x2, a, b, c, d ;
double z1, z2, t, w=1, w1=2, w2=-1,
Output01 , b_or=1, b_and=2 ;
public double E = 0.2;
//Deklarasi HEbb
public double nett, y;
public double[] bias = new double[5] { 0, 0, 0, 0, 0 };
public double[] wsatu = new double[5] {
0, 0, 0, 0, 0 };
public double[] wdua = new double[5] { 0, 0, 0, 0, 0 };
public double[] target = new
double[4];
public double[] sigW1 = new double [5];
public double[] sigW2 = new double [5];
public double[] sigb = new double [5];
double pilihan,logika, A1, B1, C1, D1,
A11, B11, C11, D11;
public int i=0, keluar =
0,hitung=0;
//Delta roll da perseptron
double xx, qq, aa, xx1, xx2, yy, ww1,
ww2, bb, tt;
double[] xx11 = { -1, 1, -1, 1 };
double[] xx22 = { -1, -1, 1, 1 };
double[] bias11 = { 1, 1, 1, 1 };
double[] te = { 0, 0, 0, 0 };
double[] fe = { 0, 0, 0, 0 };
double[] del = { 0, 0, 0, 0 };
double[] dw1 = { 0, 0, 0, 0 };
double[] dw2 = { 0, 0, 0, 0 };
double[] dbias = { 0, 0, 0, 0 };
double[] zz1 = { 0, 0, 0, 0 };
double[] zz2 = { 0, 0, 0, 0 };
public Form1()
{
InitializeComponent();
}
private void
radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton5.Checked ==
true||radioButton10.Checked==true) { x1 = -1; }
else x1 = 0;
if (xx == 1) { xx1 = -1; } else xx1
= 0;
}
private void
radioButton2_CheckedChanged(object sender, EventArgs e)
{
x1 = 1;
xx1 = 1;
}
private void
radioButton4_CheckedChanged_1(object sender, EventArgs e)
{
if (radioButton5.Checked ==
true||radioButton10.Checked == true) { x2 = -1; }
else x2 = 0;
if (xx2 == 1) { xx2 = -1;
} else xx2 = 0;
}
private void
radioButton3_CheckedChanged_1(object sender, EventArgs e)
{
x2 = 1;
xx2 = 1;
}
private void OR_CheckedChanged(object
sender, EventArgs e)
{
logika = 1;
target[0] = 1;
target[1] = 1;
target[2] = 1;
target[3] = -1;
if (xx == 1) { te = new double[] {
-1, 1, 1, 1 }; }
else { te = new double[] { 0, 1, 1,
1 }; }
}
private void AND_CheckedChanged(object
sender, EventArgs e)
{
logika = 2;
target[0] = 1;
target[1] = -1;
target[2] = -1;
target[3] = -1;
if (xx == 1)
{
te = new double[] { -1, -1, -1,
1 };
}
else
{
te = new double[] { 0, 0, 0, 1
};
}
}
private void XOR_CheckedChanged(object
sender, EventArgs e)
{
//####################################### awal XOR
logika = 3;
target[0] = -1;
target[1] = 1;
target[2] = 1;
target[3] = -1;
if (xx == 1)
{
te = new double[] { -1, 1, -1,
-1 };
for (int d = 0; d < 1000;
d++)
{
for (int i = 0; i < 4;
i++)
{
dw1[i] = aa / 10 *
xx11[i] * te[i];
dw2[i] = aa / 10 *
xx11[i] * te[i];
dbias[i] = aa / 10 *
bias[i] * te[i];
if (fe[i] == te[i])
{
dw1[i] =
dw2[i] = dbias[i] = 0;
}
else
{
ww1 = dw1[i] + ww1;
ww2 = dw2[i] + ww2;
bb = dbias[i] + bb;
}
del[i] = ww1 * xx11[i]
+ ww2 * xx22[i] + bb;
if (del[i] > tt)
{
fe[i] = 1;
}
else if (del[i] <
-tt)
{
fe[i] = -1;
}
else fe[i] = del[i];
zz1[i] = fe[i];
}
}
te = new double[] { -1, -1, 1,
-1 };
for (int d = 0; d < 1000;
d++)
{
for (int i = 0; i < 4;
i++)
{
dw1[i] = aa / 10 *
xx11[i] * te[i];
dw2[i] = aa / 10 *
xx22[i] *te[i];
dbias[i] = aa / 10 *
bias11[i] * te[i];
if (fe[i] == te[i])
{
dw1[i] = dw2[i] =
dbias[i] = 0;
}
else
{
ww1 = dw1[i] + ww1;
ww2 = dw2[i] + ww2;
bb = dbias[i] + bb;
}
del[i] = ww1 * xx11[i]
+ ww2 * xx22[i] + bb;
if (del[i] > tt)
{
fe[i] = 1;
}
else if (del[i] <
-tt)
{
fe[i] = -1;
}
else fe[i] = del[i];
zz2[i] = fe[i];
}
}
}
else
{
te = new double[] { 0, 1, 0, 0
};
for (int d = 0; d < 1000;
d++)
{
for (int i = 0; i < 4;
i++)
{
del[i] = te[i] - fe[i];
dw1[i] = aa / 10 *
del[i] * xx11[i];
dw2[i] = aa / 10 *
del[i] * xx22[i];
ww1 = ww1 + dw1[i];
ww2 = ww2 + dw2[i];
dbias[i] = xx11[i] * ww1
+ xx22[i] * ww2;
if (dbias[i] < tt)
{
fe[i] = 0;
}
else fe[i] = 1;
zz1[i] = fe[i];
}
}
te = new double[] { 0, 0, 1, 0
};
for (int d = 0; d < 1000;
d++)
{
for (int i = 0; i < 4;
i++)
{
del[i] = te[i] - fe[i];
dw1[i] = aa /
10 * del[i] * xx11[i];
dw2[i] = aa / 10 *
del[i] * xx22[i];
ww1 = ww1 + dw1[i];
ww2 = ww2 + dw2[i];
dbias[i] = xx11[i] *
ww1 + xx22[i] * ww2;
if (dbias[i] < tt)
{
fe[i] = 0;
}
else fe[i] = 1;
zz2[i] = fe[i];
}
} }
//#######################################Akhir XOR
}
private void button1_Click(object
sender, EventArgs e)
{
keluar = 0;
if (radioButton6.Checked == true)
//McCulloch
{
if (logika == 1) //OR
{
a = (x1 * w) + (x2 * w);
if (a >= b_or) b = 1;
else b = 0;
textBox1.Text = Convert.ToString(a);
textBox2.Text =
Convert.ToString(b);
}
if (logika == 2) //AND
{
a = (x1 * w) + (x2 * w);
if (a >= b_and) b = 1;
else b = 0;
textBox1.Text =
Convert.ToString(a);
textBox2.Text =
Convert.ToString(b);
}
if (logika == 3) //xor
{
z1 = (x1 * w1) + (x2 * w2);
if (z1 >= b_and) c = 1; else c = 0;
z2 = (x1 * (-1)) + (x2 *
2);
if (z2 >= b_and) d = 1;
else d = 0;
a = (c * 1) + (d * 1);
if (a >= b_or) b = 1;
else b = 0;
textBox1.Text = Convert.ToString(a);
textBox2.Text =
Convert.ToString(b);
}
}
if (radioButton5.Checked==true) //
HEBB
{
if (logika == 1)
{
sigW1 [i] = x1 * target[i];
sigW2 [i] = x2 * target[i];
sigb [i] =
target[i];
wsatu [i + 1] = wsatu[i] + sigW1[i];
wdua [i +
1] = wdua[i] + sigW2[i];
bias [i +
1] = sigb[i] + bias [i];
i++;
textBox4.Text =
Convert.ToString(wsatu[i]);
textBox3.Text =
Convert.ToString(wdua[i]);
if (i > 4) { i = 0;
}
nett = x1 * wsatu[i] +
x2 * wdua[i] + bias[i];
//textBox15.Text =
Convert.ToString(nett);
if (nett >= 0) y =
1; else y = -1;
textBox10.Text =
Convert.ToString(y);
}
if (logika == 2)
{
sigW1 [i] = x1 *
target[i];
sigW2 [i] = x2 *
target[i];
sigb
[i] = target[i];
wsatu [i + 1] =
wsatu[i]+sigW1[i];
wdua [i + 1] = wdua[i] + sigW2[i];
bias [i + 1] = sigb[i] + bias[i];
i++;
textBox4.Text = Convert.ToString (wsatu[i]);
textBox3.Text =
Convert.ToString (wdua [i]);
if (i > 4) { i = 0;
}
nett = x1 * wsatu[i] +
x2 * wdua[i] + bias[i];
if (nett >= 0) y = 1; else y = -1;
textBox10.Text=Convert.ToString(y);
}
if (logika == 3)
{
sigW1 [i] = x1 *
target[i];
sigW2 [i] = x2 *
target[i];
sigb [i] = target[i];
wsatu [i + 1] = wsatu
[i] + sigW1[i];
wdua [i + 1] = wdua [i] + sigW2[i];
bias [i + 1] = sigb [i] + bias [i];
i++;
textBox4.Text =
Convert.ToString(wsatu[i]);
textBox3.Text =
Convert.ToString(wdua[i]);
if (i > 4) { i = 0;
}
nett = x1 * wsatu[i] + x2 * wdua[i] +
bias[i];
if (nett >= 0) y =
1; else y = -1;
textBox10.Text =
Convert.ToString(y);
}
}
if (radioButton7.Checked ==
true)
{
keluar = 0;
A1 =
Convert.ToDouble(textBox6.Text);
B1 =
Convert.ToDouble(textBox5.Text);
C1 =
Convert.ToDouble(textBox7.Text);
D1 =
Convert.ToDouble(textBox8.Text);
while (keluar == 0)
{
if (A1 > 0)
{
A11 = A1 - E * (B1 + C1
+ D1);
}
else
{
A11 = 0;
}
if (B1 > 0)
{
B11 = B1 - E * (A1 + C1
+ D1);
}
else
{
B11 = 0;
}
if (C1 > 0)
{
C11 = C1 - E * (A1 + B1
+ D1);
}
else
{
C11 = 0;
}
if (D1 > 0)
{
D11 = D1 - E * (A1 + B1
+ C1);
}
else
{
D11 = 0;
}
A1 = A11;
B1 = B11;
C1 = C11;
D1 = D11;
Output01 = A1 + B1 + C1 +
D1;
if ( Output01 == A1)
{
textBox9.Text =
textBox6.Text;
keluar = 1;
}
if (Output01 == B1)
{
textBox9.Text =
textBox5.Text;
keluar = 1;
}
if (Output01 == C1)
{
textBox9.Text =
textBox7.Text;
keluar = 1;
}
if (Output01 == D1)
{
textBox9.Text =
textBox8.Text;
keluar = 1;
}
}
}
if (xx == 1)
{
if (XOR.Checked == true)
{
te = new double[] { -1, 1,
1, -1 };
for (int i = 0; i < 4;
i++)
{
xx11[i] = zz1[i];
xx22[i] = zz2[i];
}
}
else
{
xx11 = new double[] { -1,
1, -1, 1 };
xx22 = new double[] { -1,
-1, 1, 1 };
}
qq++;
for (int i = 0; i < 4; i++)
{
dw1[i] = aa/10 * xx11[i] *
te[i];
dw2[i] = aa/10 * xx22[i] *
te[i];
dbias[i] = aa/10 *
bias11[i] * te[i];
if (fe[i] == te[i])
{
dw1[i] = dw2[i] =
dbias[i] = 0;
}
else
{
ww1 = dw1[i] + ww1;
ww2 = dw2[i] + ww2;
bb = dbias[i] + bb;
}
del[i] = ww1 * xx11[i] +
ww2 * xx22[i] + bb;
if (del[i] > tt)
{
fe[i] = 1;
}
else if (del[i] < -tt)
{
fe[i] = -1;
}
else fe[i] = del[i];
if (i == 0)
{
wbaru1_1.Text =
Convert.ToString(ww1);
wbaru2_1.Text =
Convert.ToString(ww2);
bbaru1.Text =
Convert.ToString(bb);
}
else if (i == 1)
{
wbaru1_2.Text =
Convert.ToString(ww1);
wbaru2_2.Text =
Convert.ToString(ww2);
bbaru2.Text =
Convert.ToString(bb);
}
else if (i == 2)
{
wbaru1_3.Text =
Convert.ToString(ww1);
wbaru2_3.Text = Convert.ToString(ww2);
bbaru3.Text =
Convert.ToString(bb);
}
else
{
wbaru1_4.Text =
Convert.ToString(ww1);
wbaru2_4.Text = Convert.ToString(ww2);
bbaru4.Text =
Convert.ToString(bb);
} }
tx1_1.Text =
Convert.ToString(xx11[0]);
tx1_2.Text =
Convert.ToString(xx11[1]);
tx1_3.Text = Convert.ToString(xx11[2]);
tx1_4.Text =
Convert.ToString(xx11[3]);
tx2_1.Text =
Convert.ToString(xx22[0]);
tx2_2.Text =
Convert.ToString(xx22[1]);
tx2_3.Text =
Convert.ToString(xx22[2]);
tx2_4.Text =
Convert.ToString(xx22[3]);
bs1.Text =
Convert.ToString(bias11[0]);
bs2.Text =
Convert.ToString(bias11[1]);
bs3.Text = Convert.ToString(bias11[2]);
bs4.Text =
Convert.ToString(bias11[3]);
tar1.Text =
Convert.ToString(te[0]);
tar2.Text =
Convert.ToString(te[1]);
tar3.Text =
Convert.ToString(te[2]);
tar4.Text = Convert.ToString(te[3]);
target1.Text =
Convert.ToString(fe[0]);
target2.Text =
Convert.ToString(fe[1]);
target3.Text =
Convert.ToString(fe[2]);
target4.Text =
Convert.ToString(fe[3]);
y1.Text =
Convert.ToString(del[0]);
y2.Text =
Convert.ToString(del[1]);
y3.Text =
Convert.ToString(del[2]);
y4.Text =
Convert.ToString(del[3]);
w1_1.Text = Convert.ToString(dw1[0]);
w1_2.Text =
Convert.ToString(dw1[1]);
w1_3.Text =
Convert.ToString(dw1[2]);
w1_4.Text =
Convert.ToString(dw1[3]);
w2_1.Text =
Convert.ToString(dw2[0]);
w2_2.Text =
Convert.ToString(dw2[1]);
w2_3.Text =
Convert.ToString(dw2[2]);
w2_4.Text =
Convert.ToString(dw2[3]);
bias1.Text =
Convert.ToString(dbias[0]);
bias2.Text = Convert.ToString(dbias[1]);
bias3.Text =
Convert.ToString(dbias[2]);
bias4.Text =
Convert.ToString(dbias[3]);
t_epoch.Text =
Convert.ToString(qq);
}
if (xx == 2)
{
if (XOR.Checked == true)
{
te = new double[] { 0, 1,
1, 0 };
for (int i = 0; i < 4;
i++)
{
xx11[i] = zz1[i];
xx22[i] = zz2[i];
}
}
else
{
xx11 = new double[] { 0, 1,
0, 1 };
xx22 = new double[] { 0, 0,
1, 1 };
}
qq++;
for (int i = 0; i < 4; i++)
{
del[i] = te[i] - fe[i];
dw1[i] = aa / 10 * del[i] *
xx11[i];
dw2[i] = aa / 10 * del[i] *
xx22[i];
ww1 = ww1 + dw1[i];
ww2 = ww2 + dw2[i];
dbias[i] = xx11[i] * ww1 +
xx22[i] * ww2;
if (dbias[i] < tt)
{
fe[i] = 0;
}
else fe[i] = 1;
if (i == 0)
{
wbaru1_1.Text =
Convert.ToString(ww1);
wbaru2_1.Text =
Convert.ToString(ww2);
}
else if (i == 1)
{
wbaru1_2.Text =
Convert.ToString(ww1);
wbaru2_2.Text =
Convert.ToString(ww2);
}
else if (i == 2)
{
wbaru1_3.Text =
Convert.ToString(ww1);
wbaru2_3.Text =
Convert.ToString(ww2);
}
else
{
wbaru1_4.Text =
Convert.ToString(ww1);
wbaru2_4.Text =
Convert.ToString(ww2);
}
}
tx1_1.Text =
Convert.ToString(xx11[0]);
tx1_2.Text =
Convert.ToString(xx11[1]);
tx1_3.Text = Convert.ToString(xx11[2]);
tx1_4.Text =
Convert.ToString(xx11[3]);
tx2_1.Text =
Convert.ToString(xx22[0]);
tx2_2.Text =
Convert.ToString(xx22[1]);
tx2_3.Text =
Convert.ToString(xx22[2]);
tx2_4.Text = Convert.ToString(xx22[3]);
bs1.Text =
Convert.ToString(bias11[0]);
bs2.Text =
Convert.ToString(bias11[1]);
bs3.Text =
Convert.ToString(bias11[2]);
bs4.Text = Convert.ToString(bias11[3]);
tar1.Text =
Convert.ToString(te[0]);
tar2.Text =
Convert.ToString(te[1]);
tar3.Text =
Convert.ToString(te[2]);
tar4.Text =
Convert.ToString(te[3]);
target1.Text =
Convert.ToString(fe[0]);
target2.Text =
Convert.ToString(fe[1]);
target3.Text =
Convert.ToString(fe[2]);
target4.Text =
Convert.ToString(fe[3]);
y1.Text = Convert.ToString(del[0]);
y2.Text =
Convert.ToString(del[1]);
y3.Text =
Convert.ToString(del[2]);
y4.Text =
Convert.ToString(del[3]);
w1_1.Text =
Convert.ToString(dw1[0]);
w1_2.Text =
Convert.ToString(dw1[1]);
w1_3.Text =
Convert.ToString(dw1[2]);
w1_4.Text =
Convert.ToString(dw1[3]);
w2_1.Text =
Convert.ToString(dw2[0]);
w2_2.Text =
Convert.ToString(dw2[1]);
w2_3.Text = Convert.ToString(dw2[2]);
w2_4.Text =
Convert.ToString(dw2[3]);
bias1.Text =
Convert.ToString(dbias[0]);
bias2.Text =
Convert.ToString(dbias[1]);
bias3.Text =
Convert.ToString(dbias[2]);
bias4.Text =
Convert.ToString(dbias[3]);
t_epoch.Text =
Convert.ToString(qq);
}
}
private void button2_Click(object
sender, EventArgs e)
{
this.Close();
}
private void
radioButton7_CheckedChanged(object sender, EventArgs e)
{
pilihan = 3;
}
private void Form1_Load(object sender,
EventArgs e)
{
}
private void
button3_Click(object sender, EventArgs e)
{
a=0;b=0;c=0;d=0;z1=0;z2=0;
t=0;w=0;w1=0;w2=0; Output01=0;b_or=0;b_and=0;E = 0.2;
nett = 0; y = 0;
//epoch = 0;
A1=0;B1=0;C1=0;D1=0;A11=0;B11=0;C11=0;D11=0;i=0;keluar=0;
for (i = 0; i < 4; i++)
{
bias [i] = 0;
wsatu[i] = 0;
wdua [i] = 0;
sigW1[i] = 0;
sigW2[i] = 0;
sigb [i] = 0;
}
for (i = 0; i < 5; i++)
{
bias [i] = 0 ;
wsatu [i] = 0 ;
wdua [i] = 0 ;
}
i = 0;
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
textBox7.Clear();
textBox8.Clear();
textBox9.Clear();
textBox10.Clear();
w1_0.Clear ();
w2_0.Clear ();
bias_0.Clear();
/*
tx1_1.Clear ();
foreach (Control tx in
this.Controls)
{
if (tx is TextBox)
{
((TextBox)tx).Clear();
}
}
foreach (Control ch in
this.Controls)
{
if (ch is CheckBox)
{
((CheckBox)ch).Checked=false;
}
}
foreach (Control tb in
this.Controls)
{
if (tb is TrackBar)
{
((TrackBar)tb).Value = 1;
}
}
}
private void
radioButton10_CheckedChanged(object sender, EventArgs e)
{
xx = 1;
label24.Text = "F(net)";
label26.Text = "BB";
}
private void vScrollBar1_Scroll(object
sender, ScrollEventArgs e)
{
aa = scrol_alfa.Value;
boxalfa.Text = Convert.ToString( aa
/ 100);
}
private void scrol_tetha_Scroll(object
sender, ScrollEventArgs e)
{
tt = scrol_tetha.Value;
boxtetha.Text =
Convert.ToString(tt);
}
private void
radioButton11_CheckedChanged(object sender, EventArgs e)
{
xx = 2;
xx11 = new double[] { 0, 1, 0, 1 };
xx22 = new double[] { 0, 0, 1, 1 };
label24.Text = "Delta";
label26.Text = "F(net)";
Random kk = new Random();
for (int uu = 0; uu < 100; uu++)
{
ww1 = kk.NextDouble();
boxw1.Text =
Convert.ToString(ww1);
}
Random ll = new Random();
for (int uu = 0; uu < 10; uu++)
{
ww2 = ll.NextDouble();
boxw2.Text =
Convert.ToString(ww2);
}
}
}
}NB : Menginginkan Program Mentahnya Hubungi Admin
Terimakasih












