This is default featured slide 1 title

Selamat datang di blog saya, jika kalian suka ngeblogger berbagilah ilmu www.cahilangall012.blogspot.com.

This is default featured slide 2 title

Selamat datang di blog saya, jika kalian suka ngeblogger berbagilah ilmu www.cahilangall012.blogspot.com.

This is default featured slide 3 title

Selamat datang di blog saya, jika kalian suka ngeblogger berbagilah ilmu www.cahilangall012.blogspot.com.

This is default featured slide 4 title

Selamat datang di blog saya, jika kalian suka ngeblogger berbagilah ilmu www.cahilangall012.blogspot.com.

This is default featured slide 5 title

Selamat datang di blog saya, jika kalian suka ngeblogger berbagilah ilmu www.cahilangall012.blogspot.com.

Friday, September 28, 2018

Implenentasi Program Kecerdasan buatan Back Propagasi X Y dengan Visual Basic

Implenentasi Program Kecerdasan buatan Back Propagasi X Y 

1. Tampilan Layout
2. Program Visual Basic


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

{
    public partial class Form1 : Form
    {
double W1, W2, W3, W4, B, X1V1;
double X1V2, X1V3, X1V4, X2V1, X2V2, X2V3, X2V4;
double bV1, bV2, bV3, bV4, a, Yin, q;
double Zin1, Zin2, Zin3, Zin4, Z1, Z2, Z3, Z4;
double YN, Delta, DW1, DW2, DW3, DW4, DB, Din1, Din2, Din3, Din4;
double D1, D2, D3, D4, Error1, error;
double  dX1V1, dX1V2, dX1V3, dX1V4;
double  dX2V1, dX2V2, dX2V3, dX2V4, dB1, dB2, dB3, dB4;       
       
double[] X1 = { 0, 0, 0, 0 };
double[] X2 = { 0, 0, 0, 0 };
double[] T = { 0, 0, 0, 0 };
double[] Y = { 0, 0, 0, 0 };
double[] Yout = { 0, 0, 0, 0 };
public Form1()
        {
            InitializeComponent();
        }

        private void Random_Click(object sender, EventArgs e)
        {
            Random n = new Random();
            for (int i=0;i<1000;i++)
            {
                W1 = n.Next(-10000, 10000);
                W1 = W1 / 10000;
                w1awal.Text = Convert.ToString(W1);
                W2 = n.Next(-10000, 10000);
                W2 = W2 / 10000;
                w2awal.Text = Convert.ToString(W2);
                W3 = n.Next(-10000, 10000);
                W3 = W3 / 10000;
                w3awal.Text = Convert.ToString(W3);
                W4 = n.Next(-10000, 10000);
                W4 = W4 / 10000;
                w4awal.Text = Convert.ToString(W4);
                B = n.Next(-10000, 10000);
                B = B / 10000;
                BB.Text = Convert.ToString(B);

                X1V1 = n.Next(-10000, 10000);
                X1V1 = X1V1 / 10000;
                x1v1awal.Text = Convert.ToString(X1V1);
                X1V2 = n.Next(-10000, 10000);
                X1V2 = X1V2 / 10000;
                x1v2awal.Text = Convert.ToString(X1V2);
                X1V3 = n.Next(-10000, 10000);
                X1V3 = X1V3 / 10000;
                x1v3awal.Text = Convert.ToString(X1V3);
                X1V4 = n.Next(-10000, 10000);
                X1V2 = X1V2 / 10000;
                x1v4awal.Text = Convert.ToString(X1V4);

                X2V1 = n.Next(-10000, 10000);
                X2V1 = X2V1 / 10000;
                x2v1awal.Text = Convert.ToString(X2V1);
                X2V2 = n.Next(-10000, 10000);
                X2V2 = X2V2 / 10000;
                x2v2awal.Text = Convert.ToString(X2V2);
                X2V3 = n.Next(-10000, 10000);
                X2V3 = X2V3 / 10000;
                x2v3awal.Text = Convert.ToString(X2V3);
                X2V4 = n.Next(-10000, 10000);
                X2V4 = X2V4 / 10000;
                x2v4awal.Text = Convert.ToString(X2V4);

                bV1 = n.Next(-10000, 10000);
                bV1 = bV1 / 10000;
                bv1awal.Text = Convert.ToString(bV1);
                bV2 = n.Next(-10000, 10000);
                bV2 = bV2 / 10000;
                bv2awal.Text = Convert.ToString(bV2);
                bV3 = n.Next(-10000, 10000);
                bV3 = bV3 / 10000;
                bv3awal.Text = Convert.ToString(bV3);
                bV4 = n.Next(-10000, 10000);
                bV4 = bV4 / 10000;
                bv4awal.Text = Convert.ToString(bV4);
            }
        }

        private void Calculate_Click(object sender, EventArgs e)
        {
            q = 0;
            X1[0] = double.Parse(in_x11.Text);
            X1[1] = double.Parse(in_x12.Text);
            X1[2] = double.Parse(in_x13.Text);
            X1[3] = double.Parse(in_x14.Text);

            X2[0] = double.Parse(in_x21.Text);
            X2[1] = double.Parse(in_x22.Text);
            X2[2] = double.Parse(in_x23.Text);
            X2[3] = double.Parse(in_x24.Text);

            T[0] = double.Parse(in_t1.Text);
            T[1] = double.Parse(in_t2.Text);
            T[2] = double.Parse(in_t3.Text);
            T[3] = double.Parse(in_t4.Text);
            do
            {
                q++;
                for (int i = 0; i < 4; i++)
                {
                   
                    Zin1 = bV1 + X1[i] * X1V1 + X2[i] * X2V1;
                    Zin2 = bV2 + X1[i] * X1V2 + X2[i] * X2V2;
                    Zin3 = bV3 + X1[i] * X1V3 + X2[i] * X2V3;
                    Zin4 = bV4 + X1[i] * X1V4 + X2[i] * X2V4;

                    Z1 = 1 / (1 + (Math.Pow(2.7, -Zin1)));
                    Z2 = 1 / (1 + (Math.Pow(2.7, -Zin2)));
                    Z3 = 1 / (1 + (Math.Pow(2.7, -Zin3)));
                    Z4 = 1 / (1 + (Math.Pow(2.7, -Zin4)));

                    YN = B + Z1 * W1 + Z2 * W2 + Z3 * W3 + Z4 * W4;
                    Y[i] = 1 / (1 + (Math.Pow(2.7, -YN)));
                    Error1 = T[i] - Y[i];
                    error = Math.Pow(Er, 2);
                    Delta = Er * (1 / (1 + (Math.Pow(2.7, -YN)))) * (1 - (1 / (1 + (Math.Pow(2.7, -YN)))));

                    DW1 = a / 10 * Delta * Z1;
                    DW2 = a / 10 * Delta * Z2;
                    DW3 = a / 10 * Delta * Z3;
                    DW4 = a / 10 * Delta * Z4;
                    DB = a / 10 * Delta;

                    Din1 = Delta * W1;
                    Din2 = Delta * W2;
                    Din3 = Delta * W3;
                    Din4 = Delta * W4;

                    D1 = Din1 * Z1 * (1 - Z1);
                    D2 = Din2 * Z2 * (1 - Z2);
                    D3 = Din3 * Z3 * (1 - Z3);
                    D4 = Din4 * Z4 * (1 - Z4);

                    dX1V1 = a / 10 * D1 * X1[i];
                    dX1V2 = a / 10 * D2 * X1[i];
                    dX1V3 = a / 10 * D3 * X1[i];
                    dX1V4 = a / 10 * D4 * X1[i];

                    dX2V1 = a / 10 * D1 * X1[i];
                    dX2V2 = a / 10 * D2 * X1[i];
                    dX2V3 = a / 10 * D3 * X1[i];
                    dX2V4 = a / 10 * D4 * X1[i];

                    dB1 = a / 10 * D1;
                    dB2 = a / 10 * D2;
                    dB3 = a / 10 * D3;
                    dB4 = a / 10 * D4;

                    X1V1 = X1V1 + dX1V1;
                    X1V2 = X1V2 + dX1V2;
                    X1V3 = X1V3 + dX1V3;
                    X1V4 = X1V4 + dX1V4;

                    X2V1 = X2V1 + dX2V1;
                    X2V2 = X2V2 + dX2V2;
                    X2V3 = X2V3 + dX2V3;
                    X2V4 = X2V4 + dX2V4;

                    bV1 = bV1 + dB1;
                    bV2 = bV2 + dB2;
                    bV3 = bV3 + dB3;
                    bV4 = bV4 + dB4;

                    W1 = W1 + DW1;
                    W2 = W2 + DW2;
                    W3 = W3 + DW3;
                    W4 = W4 + DW4;
                    B = B + DB;

                    Yin = B + Z1 * W1 + Z2 * W2 + Z3 * W3 + Z4 * W4;
                    Y[i] = 1 / (1 + (Math.Pow(2.7, -Yin)));
                }
                x1v1akhir.Text = Convert.ToString(X1V1);
                x1v2akhir.Text = Convert.ToString(X1V2);
                x1v3akhir.Text = Convert.ToString(X1V3);
                x1v4akhir.Text = Convert.ToString(X1V4);

                x2v1akhir.Text = Convert.ToString(X2V1);
                x2v2akhir.Text = Convert.ToString(X2V2);
                x2v3akhir.Text = Convert.ToString(X2V3);
                x2v4akhir.Text = Convert.ToString(X2V4);

                b1akhir.Text = Convert.ToString(bV1);
                b2akhir.Text = Convert.ToString(bV2);
                b3akhir.Text = Convert.ToString(bV3);
                b4akhir.Text = Convert.ToString(bV4);

                w1akhir.Text = Convert.ToString(W1);
                w2akhir.Text = Convert.ToString(W2);
                w3akhir.Text = Convert.ToString(W3);
                w4akhir.Text = Convert.ToString(W4);
                BA.Text = Convert.ToString(B);

                //Err.Text = Convert.ToString(Er);
                Error.Text = Convert.ToString(sqEr);
            } while ( sqEr > 0.01);
            Epoch.Text = Convert.ToString(q);
        }
        private void Check_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 4; i++)
            {
                if (Y[i] >= 0.5)
                {
                    Yout[i] = 1;
                }
                else Yout[i] = 0;
            }
            hasil_y1.Text = Convert.ToString(Y[0]);
            hasil_y2.Text = Convert.ToString(Y[1]);
            hasil_y3.Text = Convert.ToString(Y[2]);
            hasil_y4.Text = Convert.ToString(Y[3]);
            hasil_yo1.Text = Convert.ToString(Yout[0]);
            hasil_yo2.Text = Convert.ToString(Yout[1]);
            hasil_yo3.Text = Convert.ToString(Yout[2]);
            hasil_yo4.Text = Convert.ToString(Yout[3]);
        }
        private void Reset_Click(object sender, EventArgs e)
        {
            foreach (Control tx in this.Controls)
            {
                if (tx is TextBox) { ((TextBox)tx).Clear(); }
            }
            foreach (Control tx in groupBox1.Controls)
            {
                if (tx is TextBox) { ((TextBox)tx).Clear(); }
            }
            foreach (Control tx in groupBox2.Controls)
            {
                if (tx is TextBox) { ((TextBox)tx).Clear(); }
            }
            foreach (Control tx in groupBox3.Controls)
            {
                if (tx is TextBox) { ((TextBox)tx).Clear(); }
            }
            foreach (Control tx in groupBox4.Controls)
            {
                if (tx is TextBox) { ((TextBox)tx).Clear(); }
            }
   foreach (Control tb in this.Controls)
            {
                if (tb is TrackBar)
                {
                    ((TrackBar)tb).Value = 1;
                }
            } }
        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            a = Alpha1.Value;
            Alp.Text = Convert.ToString(a / 10);
        }
        private void tombol5_exit_Click(object sender, EventArgs e)
        {
            this.Close();
        }  
            
    }}



NB : Jika ingin program mentah silahkan kirim pesan

Teori Kecerdasan Buatan