You are on page 1of 5

[35 33 28

33 28 38
28 38 39
38 39 45
39 45 28
45 28 30
28 30 35];
clear;
% Data Input & Target
%Data = [...
%35 33 28
%33 28 38
%28 38 39
%38 39 45
%39 45 28
%45 28 30
%28 30 35]
disp('=================================================');
disp('================================================');
disp('== Aplikasi Jaringan Saraf Tiruan ==');
disp('== Untuk Prediksi Jumlah Mahasiswa ==');
disp('== Fakultas Teknik Universitas PGRI Yogyakarta ==');
disp('== ==');
disp('== Data pelatihan berbentuk matriks 3 kolom ==');
disp('== sebanyak 7 data ==');
disp('== t-1(kolom I) dan t (kolom II)adalah Data ==');
disp('== t+1 (kolom III) adalah target ==');
disp('=================================================');
disp('=================================================');
Data = input('Masukkan data pelatihan (3 kolom) = ');
p = Data(:,1:2)';
t = Data(:,3)';
%preprocessing
[pn,meanp,stdp,tn,meant,stdt] = prestd(p,t)
%membangun jaringan saraf feedforward
net = newff(minmax(pn),[10 5 1],{'tansig' 'logsig' 'purelin'},'traingdm');
%Bobot awal ditentukan sebagai berikut:
net.IW{1,1} =[...
-2.0848 2.5507
-1.6969 -2.8497
-1.1449 -3.1381
1.9847 -2.6372
-0.1614 3.3559
2.8928 1.4420
-0.2593 3.3491
-2.0153 2.6115
-1.4173 -3.0132
-0.8961 -3.2259];

net.b{1,1} =[...
4.0683
4.7329
3.7198

-1.0670
-0.5500
-0.6096
-2.4939
-2.8533
-2.1631
-3.1936];
net.LW{2,1} =[...
0.7237 1.4664 0.6983 0.7618 0.8991 -0.4993 0.5472 -0.0616 1.1767 -2.0808
1.2012 1.5126 1.1904 -1.3670 -0.5564 0.7989 0.3384 -1.6167 -0.0774 0.3437
-0.4689 1.5864 -1.1563 0.1843 0.4809 1.2753 0.8180 0.7579 -1.4558 1.2202
-1.5687 1.1034 1.2957 1.3814 0.6372 -0.4109 0.0362 1.5450 0.5277 0.5568
-0.3691 -0.6090 0.3187 -0.7590 -0.4735 -0.3442 1.2729 1.4122 -0.6200 2.3001];
net.b{2,1} =[...
-3.2889
-1.6445
0
-1.6445
-3.2889];
net.LW{3,2} =[...
0.9233 -0.8823 -0.2794 0.0970 -0.4765];
net.b{3,1} =[...
0.1947];
%melihat bobot-bobot awal input, lapisan, dan bias
BobotAwal_Input = net.IW{1,1}
BobotAwal_Bias_Input = net.b{1,1}
BobotAwal_Lapisan1 = net.LW{2,1}
BobotAwal_Bias_Lapisan1 = net.b{2,1}
BobotAwal_Lapisan2 = net.LW{3,2}
BobotAwal_Bias_Lapisan2 = net.b{3,1}
%set max epoh, goal, learning rate,show step
net.trainParam.epochs =5000;

net.trainParam.goal =1e-2;
net.trainParam.lr =0.5;
net.trainParam.show =200;
net.trainParam.mc =0.8;
%melakukan pembelajaran
net = train(net,pn,tn);pause
%melihat bobot-bobot akhir input, lapisan, dan bias
BobotAkhir_Input = net.IW{1,1}
BobotAkhir_Bias_Input = net.b{1,1}
BobotAkhir_Lapisan1 = net.LW{2,1}
BobotAkhir_Bias_Lapisan1 = net.b{2,1}
BobotAkhir_Lapisan2 = net.LW{3,2}
BobotAkhir_Bias_Lapisan2 = net.b{3,1}
%melakukan simulasi
an = sim(net,pn);
a = poststd(an,meant,stdt);
H = [(1:size(P,2))' T' a' (T'-a')];
sprintf(%2d %9.2f %7.2f %5.2f\n,H)
%evaluasi output jaringan (data pelatihan dengan target)
[m1,al,r1] = postreg(a,T)
pause
plot([1:size(P,2)],T,bo,[1:size(P,2)],a,'r*);
title(Hasil Pengujian dengan Data Pelatihan: Target(o), Output(*));
pause
xlabel(Data ke-); ylabel(Target/Output);
pause
%Input Baru Q akan d test, dengan target TQ
%Cek = [...
%30 35 36
%35 36 66
%36 66 35
%66 35 33];
disp(=================================================);
disp(=================================================);
disp(== Aplikasi Jaringan Saraf Tiruan ==);
disp(== Untuk Prediksi Jumlah Mahasiswa ==);
disp(== Fakultas Teknik Universitas PGRI Yogyakarta ==);

disp(== ==);
disp(== Data pengujian berbentuk matriks 3 kolom ==);
disp(== sebanyak 4 data ==);
disp(== t-1(kolom I) dan t (kolom II)adalah Data ==);
disp(== t+1 (kolom III) adalah target ==);
disp(=================================================);
disp(=================================================);
Cek = input(Masukkan data pengujian (3 kolom) : );
Q = Cek(:,1:2);
TQ = Cek(:,3)
%Normalisasi Input Baru
Qn = trastd(Q,meanp,stdp);
bn = sim(net,Qn)
b = poststd(bn,meant,stdt)
L = [(1:size(Q,2))' TQ' b' (TQ'-b')];
sprintf(%2d %11.2f %9.2f %7.2f\n,L)
%Evaluasi Output Jaringan (data testing dengan target)
[m2,b1,r2] = postreg(b,TQ)
pause
k = [1:size(Q,2)];
plot(k,TQ,bo,k,b,'r*);
title(Hasil Pengujian dengan Data Pelatihan Target (o), Output(*));
xlabel(Data ke-); ylabel(Target/Output);
text(k+0.2*ones(length(k),1),TQ,int2str(k));
%perintah implementasi peramalan
disp (*************************************************);
disp (*************************************************);
disp (** Aplikasi Jaringan Saraf Tiruan **);
disp (** Untuk Prediksi Jumlah Mahasiswa **);
disp (** Fakultas Teknik Universitas Negeri Surabaya **);
disp (** **);
disp (** Inputkan data **);
disp (** **);
disp (** Jumlah Mahasiswa 2 tahun sebelumnya **);
disp (** **);
disp (*************************************************);
disp (*************************************************);

ramal = input( Masukkan Data Jumlah Mahasiswa : );


ramal = (ramal);
QQn = trastd(ramal,meanp,stdp);
bbn = sim (net,QQn);
bb = poststd(bbn,meant,stdt);
disp(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^);
disp(^^ ^^);
disp(^^ Hasil ramalan untuk tahun berikutnya : ^^);
disp(bb);
disp(^^ ^^);
disp(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^);
Saya sarankan menggunakan buku JJ. Siang, Jaringan Syaraf Tiruan, dalam matlab sangat
mudah dalam menyimpan bobot awal. Pertama desain jaringan anda. Misalnya berapa jumlah
input, berapa lapisan, dan berapa node setiap lapisan, dan berapa jumlah keluaran. Berdasarkan
desaiin itu, bangunlah jaringan dengan menetukan bobot awalnya. Gunakan net.IW untuk
menetukan bobot awal input, net.b untuk menetukan bobot awal bias input, net.LW untuk
menentukan setiap bobot lapisan-lapisan. Pelajari script contoh sebelumnya, mudah2an bisa
dimengerti.
BobotAwal_Input = net.IW{1,1}
BobotAwal_Bias_Input = net.b{1,1}
BobotAwal_Lapisan1 = net.LW{2,1}
BobotAwal_Bias_Lapisan1 = net.b{2,1}
BobotAwal_Lapisan2 = net.LW{3,2}
BobotAwal_Bias_Lapisan2 = net.b{3,1}

You might also like