Salah satu organisasi yang sering digunakan dalam paradigma jaringan syaraf tiruan adalah
perambatan galat mundur atau backpropagation. (Hermawan, 2006)
Jaringan syaraf tiruan terdiri dari beberapa neuron dan ada hubungan antar neuron-
neuron seperti pada otak manusia. Neuron/selsaraf adalah sebuah unit pemroses informasi yang
merupakan dasar operasi jaringan syaraf tiruan.
Jaringan syaraf tiruan terdiri atas beberapa elemen penghitung tak linier yang masing-
masing dihubungkan melalui suatu pembobot dan tersusun secara paralel. Pembobot inilah yang
nantinya akan berubah (beradaptasi) selama proses pelatihan.
Pelatihan perlu dilakukan pada suatu jaringan syaraf tiruan sebelum digunakan untuk
menyelesaikan masalah. Hasil pelatihan jaringan syaraf tiruan dapat diperoleh tanggapa yang
benar (yang diinginkan) terhadap masukan yang diberikan. Jaringan syaraf tiruan dapat
memberikan tanggapan yang benar walaupun masukan yang diberikan terkena derau atau
berubah oleh suatu keadaan. (Hermawan, 2006
Gambar Konsep dasar permodelan jaringan syaraf tiruan
- Kemudian dilakukan penjumlahan dari seluruh hasil perkalian tersebut dan keluaran yang
dihasilkan dilalukan kedalam fungsi pengaktip untuk mendapatkan tingkatan derajad
sinyal keluarannya F(x.W)
- Walaupun masih jauh dari sempurna, namun kinerja dari tiruan neuron ini identik dengan
kinerja dari sel otak yang kita kenal saat ini
- Misalkan ada n buah sinyal masukan dan n buah penimbang, fungsi keluaran dari neuron
adalah seperti persamaan berikut:
- maka kebakaran jaringan (kembali 1), yang lain tidak menyala (kembali 0)
Neuron McCulloch-Pitts
Neuron sederhana yang pertama diperkenalkan pada 1943Disebut juga sebagai Threshold Logic
Neuron (TLN)p1 w1 f p2 p3 p4 w2 w3 w4 n a. Semua pembobotan positip sama (w1 =
w2)Semua pembobotan negatip sama (w3 = w4)Fungsi aktivasinya biner sehingga sering disebut
sebagai simple binary threshold neuron.
2. Setiap neuron pada jaringan dihubungkan dengan jalur terarah yang memiliki bobot
tertentu
3. Seluruh jalur bernilai positif yang terhubung ke neuron tertentu, memiliki bobot sama
• Jika net input ke neuron lebih besar dari threshold, neuron akan meneruskan sinyal
(fire)
6. Sinyal mengalir dari satu koneksi ke koneksi lain dalam satu satuan waktu
Dimana
Algoritma
Langkah 0. Inisialisasi output Y
Jika net = ƩWi Xi ≥ = 0 maka
Y = 1 ; Jika net = ƩWi Xi < 0 , maka output = 0 atau -1
- Tetapkan bobot W1 danW2
Langkah 3. Lihat Output Y (jika hasilnya sama dengan inisialisasi langkah 0 maka ini dinyatakan
benar )
Langkah 4. Update bobot dan input jika terjadi kesalahan untuk pola ini
Langkah 5. Jika langkah 3 benar maka ulangi langkah 1 dan 2 dengan mengubah nilainya.
4. Masukan input kode program (coding) pada masing masing tombol yang tersedia pada
form. Berikut ini kode program yang telah diinputkan ke beberapa tombol :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Button1: TButton;
Button2: TButton;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x1,x2:integer;
w1,w2:real;
hasil:real;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
close
end;
end.
5. Sesudah coding di masukan, jalankan dan mucul tampilan seperti gambar di bawah ini :
Tugas 2 AND
Agar jaringan dapat menyatakan fungsi AND maka terdapat dua
input yaitu x1 dan x2 dan satu output y. Bila nilai bobot w1 dan
w2 dibuat sama dengan 0,75(w1 = 0,75 dan w2 = 0,75)
Penentuan bobot jalur dilakukan secara analitik (coba-coba),
maka kita bisa menghitung jumlah seluruh input yang masuk
untuk tiap-tiap data sebagai berikut :
0 0 (0 * 0,75)+ (0 * 0,75) = 0 0
0 1 (0 * 0,75)+ (1 * 0,75) = 0,75 0
1 0 (1 * 0,75)+ (0 * 0,75) = 0,75 0
1 1 (1 * 0,75)+ (1 * 0,75) = 1,5 1
dapat mencoba mengubah-ubah nilai bobot w dan nilai ambang θ yang lainnya.
Algorithma
Langkah 0. Inisialisasi Bobot W = 0,75 dan nilai ambang batas θ = 1
Langkah 3. Lihat Output Y (jika hasilnya sama dengan inisialisasi langkah 0 maka ini dinyatakan
benar )
Langkah 4. Update bobot dan input dan nilai ambang batas θ jika terjadi kesalahan untuk pola
ini
Langkah 5. Jika langkah 3 benar maka ulangi langkah 1 dan 2 dengan mengubah nilainya.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Button1: TButton;
Button2: TButton;
Label6: TLabel;
Label7: TLabel;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x1,x2:integer;
w1,w2:real;
hasil:real;
implementation
{$R *.dfm}
end;
end.
Agar y(net) memenuhi fungsi logika “OR”, maka nilai ambang θ pada fungsi aktivasi dibuat
sama dengan 1, sehingga :
Algorithma
Langkah 0. Inisialisasi Bobot W = 1 dan nilai ambang batas θ = 1
Langkah 3. Lihat Output Y (jika hasilnya sama dengan inisialisasi langkah 0 maka ini dinyatakan
benar )
Langkah 4. Update bobot dan input dan nilai ambang batas θ jika terjadi kesalahan untuk pola
ini
Langkah 5. Jika langkah 3 benar maka ulangi langkah 1 dan 2 dengan mengubah nilainya.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Button1: TButton;
Button2: TButton;
Label6: TLabel;
Label7: TLabel;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x1,x2:integer;
w1,w2:real;
hasil:real;
implementation
{$R *.dfm}
end;
end.
5. Setelah program dijalankan, tampilannya seperti pada gambar di bawah ini:
6. Perhitungan saat aplikasi di jalankan seperti di gambar di bawah ini:
TABEL KEBENARAN OR
Tugas 4 XOR
karena fungsi logika “XOR” mempunyai 2 buah output yang bernilai “1”. Untuk menyelesaikan
masalah ini, fungsi tersebut harus diubah dahulu menjadi
Ini berarti unit masukan (X1 dan X2) harus berhubungan dahulu dengan sebuah layar
tersembunyi (z1 dan z2) kemudian layar tersembunyi tersebut dihubungkan langsung dengan
unit keluaran Y. Bila arsitektur jaringan dibuat seperti berikut
maka kita bisa menghitung jumlah seluruh input yang masuk untuk tiap-tiap data pada layar
tersembunyi sebagai berikut :
Algorithma
Langkah 0. Inisialisasi Bobot W11 = 2 dan W12= -1 dan nilai ambang batas Z1 = 2
Langkah 3. Lihat Output Z1 dan Z2 (jika hasilnya sama dengan inisialisasi langkah 0 maka ini
dinyatakan benar )
Langkah 4. Update bobot dan input dan nilai ambang batas, jika terjadi kesalahan untuk pola ini
Langkah 5. Jika langkah 3 benar jadikan bobot Z1 dan Z2 sebagai masukan dalam menghitung
fungsi XOR dan tetapkan bobot V =1.
Langkah 8. Update bobot dan input dan nilai ambang batas, jika terjadi kesalahan untuk pola ini
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label3: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Button1: TButton;
Button2: TButton;
Label8: TLabel;
Label10: TLabel;
Label4: TLabel;
Panel2: TPanel;
Edit5: TEdit;
Edit6: TEdit;
Label9: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Button3: TButton;
Button4: TButton;
Label14: TLabel;
Label15: TLabel;
Panel3: TPanel;
Label16: TLabel;
Edit9: TEdit;
Label17: TLabel;
Edit10: TEdit;
Button5: TButton;
Button6: TButton;
Label23: TLabel;
Label24: TLabel;
Button7: TButton;
Label20: TLabel;
Label18: TLabel;
Label19: TLabel;
Label21: TLabel;
Label22: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x1,x2:integer;
w1,w2:real;
hasil:real;
Z1,Z2:integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
x1:=strtoint(edit1.text);
x2:=strtoint(edit2.text);
hasil:=(x1*2)+(x2*-1);
label8.Caption:=floattostr(hasil);
if hasil >= 2 then
label10.Caption:='1'
else
label10.Caption:='0';
end;
end;
end;
end.
4. Masukan coding AND dengan model jaringan Hebb seperti di bawah ini:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Button1: TButton;
Button2: TButton;
Label6: TLabel;
Button3: TButton;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x1,x2:integer;
w1,w2:real;
hasil:real;
implementation
{$R *.dfm}
end;
end.