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

1 comments:

  1. Bagi anda yang hobby bermain judi online seperti :
    Bandar Ceme, Ceme Keliling, Capsa Susun, Domino, Bandar Poker dan Live Poker.
    Mari segera bergabung bersama kami di www,s1288poker,com
    Kami agen penyediaan jasa judi online terbaik dan terpercaya.
    Kami hadir untuk anda para pecinta judi online di tanah air.
    Kami juga akan memudahkan anda untuk pembuatan ID dengan registrasi secara gratis.
    Dan untuk proses DEPO & WITHDRAW langsung ditangani oleh
    customer service kami yang profesional dan ramah. (PIN BBM : 7AC8D76B)

    ReplyDelete