Lampiran 16. Listing Program untuk Sistem Prediksi Kualitas Gula Kristal Putih
1. Proses Pelatihan Backpropagation
function p = trainp, CDATA, handles p = update_datap, handles, 1;
h = waitbar13,Inisiasi BP...,name,Silakan tunggu; kolom inputoutput
ci = str2numgethandles.m_edKolomInput, string; co = str2numgethandles.m_edKolomOutput, string;
ci = CDATA.m_input; co = CDATA.m_output;
cio = [ci co]; Data
data = CDATA.m_data; input = data:,ci;
output = data:,co; normalisasi: mean = 0, std =1
[pn, pmean, pstd, tn, tmean, tstd] = prestdinput, output; [pn, pmean, pstd] = prestdinput;
reduksi kolom x yang penting saja [ptrans,transMat] = prepcapn, 0.02; TODO
ptrn = ptrans; ttrn = tn;
--Jml MF hidden = p.m_hidden;
arsitektur = [lengthci hidden lengthco]; arsitektur = [sizeptrn,1 hidden sizettrn,1];
arch = arsitektur2:end; -- fcn aktivasi
fAktivasis = gethandles.m_poBPAktivasi,string; fAktivasi = fAktivasisp.m_fAktivasi;
fAktivasi = repmatfAktivasi, 1, lengtharsitektur-1; -- fcn training
fTrainings = gethandles.m_poBPTraining,string; fTraining = fTrainingsp.m_fTraining;
fTraining = fTraining{:}; --generate net
MINMAX = minmaxptrn; in_net = newff MINMAX, arsitektur2:end, fAktivasi, fTraining ;
in_net = newff MINMAX, arsitektur2:end, fAktivasi, fTraining ; waitbar23, h, Training Backpropagation...
epoch = p.m_epoch; goal = p.m_goal;
momentum = p.m_momentum; show = p.m_show;
in_net.performFcn = mse; in_net.trainParam.epochs = epoch;
in_net.trainParam.goal = goal; in_net.trainParam.mem_reduc = 1; 1=tidak, 2= ya
in_net.trainParam.mu = momentum; in_net.trainParam.show = show;
in_net.trainParam.time = Inf; [net,tr]=trainnet,ptr,ttr,[],[],val,test;
[out_net, TR, Y, E]=trainin_net, ptrn, ttrn,[],[],[],[]; close_train_fig
[out_fismat, error, ss] = anfisdata, in_fismat, [epoch goal nan nan nan], [1 1 1 1] ;
waitbar33, h, Saving data ---gui
p.m_arsitektur = arsitektur; ---internal
p.m_innet = in_net; p.m_outnet = out_net;
p.m_record = TR; p.m_output = Y;
p.m_error = E; p.m_p = input;
p.m_t = output; p.m_pn = pn;
p.m_pmean = pmean; p.m_pstd = pstd;
p.m_tn = tn; p.m_tmean = tmean;
p.m_tstd = tstd; p.m_ptrans = ptrans;
p.m_transMat = transMat; sethandles.m_lbBPGrafik,enable,on
closeh
2. Proses Pelatihan Learning Vector Quantization
function p = trainp, cdata, handles ---update data
p = update_data p, handles, 1; ---
h = waitbar13,Create LVQ-Network...,name,Silakan tunggu; kolom inputoutput
ci = cdata.m_input; co = cdata.m_output;
cio = [ci co]; --- data
data = handles.GULA.DATA.datanormal; data = cdata.m_data;
input = data:,ci; output = data:,co;
normalisasi mean = 0, std =1 [pn, pmean, pstd] = prestdinput;
[pn, pmean, pstd] = prestdinput; reduksi kolom x yang penting saja
[ptrans,transMat] = prepcapn,0.02; TODO --- axes
axeshandles.m_axMain --arsitektur
nNeuron = str2numgethandles.m_edLvqNeuron,string; fTrainings = gethandles.m_poLvqTraining,string;
trnType = gethandles.m_poLvqTrainFcn,value; fTraining = fTrainingsp.m_fTraining;
fTraining = fTraining{:}; errGoal = str2numgethandles.m_edLvqErrorGoal, string;
maxEpoch= str2numgethandles.m_edLvqMaxEpoch, string; lrnRate = str2numgethandles.m_edLvqLrnRate, string;
show = str2numgethandles.m_edLvqShow, string;
--generate lvq ptrn = ptrans;
ttrn = output; N1 = p.m_hidden1;
U2 = uniquettrn; N2 = lengthU2;
for i=1:N2 PCi = sumttrn==U2ilengthttrn;
end in_net = newlvqminmaxptrn, N1, PC, p.m_lrnrate, fTraining;
train waitbar23, h, Training Data...
in_net.trainParam.goal = p.m_goal; in_net.trainParam.epochs = p.m_epoch;
in_net.trainParam.show = p.m_show; T = ind2vecttrn;
[out_net, TR, Y, E] = trainin_net, ptrn,T; close_train_fig
waitbar33, h, Writing data... p.m_input = ptrn;
p.m_target = ttrn; p.m_innet = in_net;
p.m_outnet = out_net; p.m_record = TR;
p.m_output = Y; p.m_error = E;
p.m_p = input; p.m_t = output;
p.m_pn = pn; p.m_pmean = pmean;
p.m_pstd = pstd; p.m_ptrans = ptrans;
p.m_transMat = transMat; sethandles.m_lbLvqGrafik,enable,on
closeh
3. Proses Prediksi