• Tidak ada hasil yang ditemukan

BAB 3 PERANCANGAN PROGAM

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 PERANCANGAN PROGAM"

Copied!
25
0
0

Teks penuh

(1)

BAB 3

PERANCANGAN PROGAM

Pada bab 3 ini menjelaskan bagaimana cara perancangan dari aplikasi peramalan pasien demam berdarah ini baik perancangan sistem maupuun perancangan database yang menjadi pselesaiukung dari aplikasi ini.

3.1 Model Aplikasi

Pada dasarnya ini aplikasi ini dirancang untuk mencari model neural yang terbaik untuk meramal kesembuhan pasien demam berdarah dengue. Oleh sebab itu penulis menyediakan 6 buah kombinasi model neural dengan memberikan pilihan 2 sampai 7 node pada hidden layer dengan 8 input layer yaitu diagnosis (X1), lama demam (X2), kesadaran (X3), nadi (X4), perdarahan (X5), akral (X6), perfusi (X7), rontgen thorak (X8) dan 1 output layer yaitu kesembuhan pasien (Y). Berikut akan diberikan contoh dari 6 kemungkinan model neural yang terjadi serta proses neural yang terjadi. Untuk mempermudah penghitungan contoh penulis akan menggunakan nilai-nilai yang tidak bervariasi sekalipun pada dasarnya nilai-nilai yang digunakan pada aplikasi akan bervariasi karena bersifat acak.

(X1) = 0.5 (X1) = 0.5 Bias = 0.1

(X1) = -0.5 (X1) = -0.5 Y = 1

(X1) = 0.5 (X1) = 0.5

(X1) = -0.5 (X1) = -0.5

(2)

3.1.1 Model Neural dengan 2 node hidden layer

Gambar 3.1 Model Neural dengan 2 node hidden layer

Gambar di atas memperlihatkan model neural network pada aplikasi peramalan dengan menggunakan 2 hidden layer. Garis panah yang menghubungkan input layer (X1 sampai X8) dengan hidden layer (Z1-Z2) adalah weightV sedangkan garis panah yang menghubungkan hidden layer dengan output layer (Y1) adalah weightW.

Contoh Perhitungan Feed Forward

Z_in1 = Bias + V11 * X1 + V21 * X2 + V31 * X3 + V41 * X4 + V51 * X5 + V61 * X6 + V71 * X7 + V81 * X8 X1 X3 X4 X8 X7 X2 X5 X6 Z2 Z1 Y1 bias bias WeightV WeightW

(3)

Z_in1 = 0.1 + 0.1 * 0.5 + 0.1 * -0.5 + 0.1 * 0.5 + 0.1 * -0.5 + 0.1 * 0.5 + 0.1 * -0.5 + 0.1 * 0.5 + 0.1 * -0.5 Z_in1 = 0.1 Z1 = Z_in1 1 1 − +e Z1 = 0.1 1 1 − +e Z1 = 0.52497918748 Z_in2 = Bias + V12 * X1 + V22 * X2 + V32 * X3 + V42 * X4 + V52 * X5 + V62 * X6 + V72 * X7 + V82 * X8 Z_in2 = 0.1 + 0.1 * 0.5 + 0.1 * -0.5 + 0.1 * 0.5 + 0.1 * -0.5 + 0.1 * 0.5 + 0.1 * -0.5 + 0.1 * 0.5 + 0.1 * -0.5 Z_in2 = 0.1 Z2 = Z_in2 1 1 − +e Z2 = 0.1 1 1 − +e Z1 = 0.52497918748 Y_in2 = Bias + W11 * Z1 + W21 * Z2 Y_in2 = 0.1 + 0.1 * 0.52497918748 + 0.1 * 0.52497918748 Y_in2 = 0.204995837496 Y1 = Y_in2 1 1 − +e Y1 = 0.204995837496 1 1 − +e Y1 = 0.55107023954

Contoh Perhitungan Back Propagation of Error ∆1 = (tk – yk).f’(y_ink)

∆1 = (1 – 0.55107) ∆1 = 0.44893

Weight_wjk = Weight_wjk(old) + (α. ∆1.z1) Weight_w11 = 0.1 + (0.5 * 0.44893 * 0.524979) Weight_w11 = 0.117832228355

(4)

bias = Weight_w01 = Weight_w01(old) + (α. ∆1) Weight_w01 = 0.1 + (0.5 * 0.44893) ∆_inj =

= m k kWjk 1 δ

∆_in1 = ∆1* Weight_W11 + ∆1* Weight_W21 + ∆1* Weight_W31 + ∆1* Weight_W41 + ∆1* Weight_W51 + ∆1* Weight_W61 + ∆1* Weight_W71 + ∆1* Weight_W81

∆j = ∆_inj.f’(z_inj)

Proses yang sama akan dilakukan untuk mencari nilai node pada hidden layer berikutnya, weight_v dan weight_w yang baru dan nilai bias yang baru. Proses ini akan berulang sampai error (tk – yk) lebih kecil dari nilai target error. Karena proses yang dijalani sama (perbedaan hanya terdapat pada jumlah weight dan node hidden layer) maka pada contoh untuk 3 sampai 7 hidden layer berikutnya penulis hanya akan menyertakan bentuk jaringan neural networknya saja.

(5)

3.1.2 Model Neural dengan 3 node hidden layer

Gambar 3.2 Model Neural dengan 3 node hidden layer

Gambar di atas memperlihatkan model neural network pada aplikasi peramalan dengan menggunakan 3 hidden layer. Garis panah yang menghubungkan input layer (X1 sampai X8) dengan hidden layer (Z1-Z3) adalah weightV sedangkan garis panah yang menghubungkan hidden layer dengan output layer (Y1) adalah weightW. X1 X3 X4 X8 X7 X2 X5 X6 Z3 Z1 Y1 bias bias WeightV WeightW Z2

(6)

3.1.3 Model Neural dengan 4 node hidden layer

Gambar 3.3 Model Neural dengan 4 node hidden layer

Gambar di atas memperlihatkan model neural network pada aplikasi peramalan dengan menggunakan 4 hidden layer. Garis panah yang menghubungkan input layer (X1 sampai X8) dengan hidden layer (Z1-Z4) adalah weightV sedangkan garis panah yang menghubungkan hidden layer dengan output layer (Y1) adalah weightW. X1 X3 X4 X8 X7 X2 X5 X6 Z3 Z1 Y1 bias bias WeightV WeightW Z2 Z4

(7)

3.1.4 Model Neural dengan 5 node hidden layer

Gambar 3.4 Model Neural dengan 6 node hidden layer

Gambar di atas memperlihatkan model neural network pada aplikasi peramalan dengan menggunakan 6 hidden layer. Garis panah yang menghubungkan input layer (X1 sampai X8) dengan hidden layer (Z1-Z6) adalah weightV sedangkan garis panah yang menghubungkan hidden layer dengan output layer (Y1) adalah weightW. X1 X3 X4 X8 X7 X2 X5 X6 Z3 Z1 Y1 bias bias WeightV WeightW Z2 Z4 Z5

(8)

3.1.5 Model Neural dengan 6 node hidden layer

Gambar 3.5 Model Neural dengan 6 node hidden layer

Gambar di atas memperlihatkan model neural network pada aplikasi peramalan dengan menggunakan 6 hidden layer. Garis panah yang menghubungkan input layer (X1 sampai X8) dengan hidden layer (Z1-Z6) adalah weightV sedangkan garis panah yang menghubungkan hidden layer dengan output layer (Y1) adalah weightW. X1 X3 X4 X8 X7 X2 X5 X6 Z3 Z1 Y1 bias bias WeightV WeightW Z2 Z4 Z5 Z6

(9)

3.1.6 Model Neural dengan 7 node hidden layer

Gambar 3.6 Model Neural dengan 7 node hidden layer

Gambar di atas memperlihatkan model neural network pada aplikasi peramalan dengan menggunakan 7 hidden layer. Garis panah yang menghubungkan input layer (X1 sampai X8) dengan hidden layer (Z1-Z7) adalah weightV sedangkan garis panah yang menghubungkan hidden layer dengan output layer (Y1) adalah weightW. X1 X3 X4 X8 X7 X2 X5 X6 Z3 Z1 Y1 bias bias WeightV WeightW Z2 Z4 Z5 Z6 Z7

(10)

3.2 Perancangan Database

Pada skripsi ini penulis menggunakan Microsoft Access XP sebagai database. Data disimpan dalam tabel “training” dengan field-field sebagai berikut:

• Training Pair • Diagnosi • Lamademam • Kesadaran • Nadi • Perdarahan • Akral • Rothorak • Output

Training pair digunakan sebagai primary key. Semua tipe data yang penulis gunakan untuk database ini adalah double atau tipe data yang dapat menampung angka decimal agar sewaktu ditraining maupun ditesting data dapat diproses, kecuali untuk training pair menggunakan tipe data integer. Output yang ingin dicapai adalah tingkat kesembuhan pasien demam berdarah.

3.3 Pemrosesan Data

Karena pada dasarnya Neural Network menggunakan angka dengan kisaran antara -1 sampai 1 maka data yang akan diproses diubah terlebih dahulu dengan metode interpolasi, dengan penghitungan sebagai berikut:

Nilai_tengah =

2

nilai_min nilai_max +

(11)

Nilai_tengah_rentang = 2 nilai_min nilai_max − X = ntang tengah_re nilai ah nilai_teng -nilai_data

dimana, nilai_tengah : nilai tengah dari data nilai_tengah_rentang : nilai tengah dari rentang data

nilai_max : nilai maximum dari data nilai_min : nilai minimum dari data x : nilai yang akan diinput

Contohnya pada variabel lama demam mempunyai nilai minimum 2, sedangkan nilai maximumnya 6 dan nilai yang akan diolah 4, maka nilai yang akan diinput adalah:

Nilai_tengah = 4 2 6 2+ = Nilai_tengah_rentang = 2 2 2 -6 = X = 0 2 4 4− =

3.4 Perancangan Program Aplikasi 3.4.1 Penerapan Neural Network

Penerapan Neural Network untuk menyelesaikan permasalahan di atas dapat digambarkan sebagai berikut :

(12)

Algoritma Peramalan Kesembuhan Pasien Demam Berdarah dengan Backpropagation

1. Inisialisasikan nilai variabel yang akan diinput

Inisialisaskan Alfa, Target Error (nilai error minimum yang ingin dipenuhi) Inisialisasikan weight awal pada setiap neuron

Inisialisasikan jumlah node pada hidden layer

2. Training nilai-nilai yang sudah diinput dengan FeedForward, Backpropagation, dan Update Weight

-FeedForward-

Jumlahkan nilai bias dan nilai perkalian antara nilai-nilai weight dengan nilai input yang bersesuaian

Masing-masing penjumlahan dimasukan ke dalam fungsi aktivasi logistic dan menjadi input untuk hidden layer

Jumlahkan nilai bias dan nilai perkalian antara nilai-nilai weight dengan nilai input yang bersesuaian

Masing-masing penjumlahan dimasukan ke dalam fungsi aktivasi logistic dan menjadi nilai output

-BackPropagation of Error-

Untuk setiap output hitung error antara nilai output sebelumnya dengan nilai output yang terbaru

Hitung nilai weight antara hidden layer dan output layer yang baru dan bias yang baru

Untuk setiap hidden layer jumlahkan setiap masukan dari output layer

Tentukan nilai error dengan mengalikan hasil diatas dengan turunan dari fungsi aktivasi

Hitung nilai weight antara hidden layer dan input layer yang baru dan bias yang baru

Hitung nilai error

Iterasikan sampai nilai error yang dicapai lebih kecil dari nilai target error 3. Inisialisasikan nilai variabel yang akan ditesting

(13)

3.4.2 State Trantition Diagram

Gambar 3.7 STD Aplikasi Peramalan Kesembuhan Pasien Demam Berdarah dengan Algoritma Backpropagation

yes no Interpolasikan Start Training < error Backpropagation Update Weight FeedForward Masukkan Input training Masukkan input testing FeedForward Selesai

(14)

3.4.3 Perancangan Layar

gambar 3.8 Layar Utama

Program ini hanya terdiri dari satu layar utama, hal ini dikarenakan penulis ingin membuat aplikasi ini sederhana dan dapat langsung digunakan oleh user. Pada bagian ini pertama-tama user dapat memasukan nilai alpha untuk parameter learning rate, nilai target error untuk nilai maximal error yang diinginkan, dan jumlah node pada hidden layer yang dibatasi hanya sampai 7 node pada hidden layer. Pada aplikasi ini sudah disediakan nilai default untuk ketiga field tersebut.

User pertama kali harus me-load input untuk training pair dalam bentuk database, dengan menekan tombol Add Training Pair. Penulis sengaja tidak menyediakan database yang otomatis di-load oleh aplikasi ini agar aplikasi ini

File A p l i k a s i P e r a ma l a n K e s e mb u h a n P a s i e n D e ma m B e r d a r a h Diagnosis Lama demam Kesadaran Nadi Perdarahan Akral Rontgen Thorak Output Error Target Error Alfa 0.5 0.14

Jumlah hidden layer 7

Simulate Add Training Pair Training

(15)

fleksibel untuk digunakan oleh user-user pada rumah sakit lain yang mempunyai data-data pasien yang berbeda, sehingga data-data yang akan ditraining akan selalu up to date. Setelah me-load informasi yang diinginkan dari database user diarahkan untuk memilih menekan tombol Training atau menu file-new, karena tombol-tombol lain telah didisabled. Jika tombol training di tekan maka otomatis program akan mentraining data-data yang ada pada database, aplikasi ini juga menyediakan field untuk mengamati proses perubahan nilai error sampai mencapai nilai error yang diinginkan. Aplikasi ini disertai dengan timer yang akan menghitung waktu tiap training. Setiap pen-training-an baru yang dilakukan maka akan dilakukan pula penghitungan waktu ulang.

Setelah training user hanya dapat melakukan dua proses, yaitu testing dengan menekan tombol Testing atau new untuk training ulang dengan menekan menu file-new. Jika user ingin melakukan testing maka terlebih dahulu user diminta mengisi nilai-nilai pada field-field yang sudah disediakan. Antara lain: Penyakit lain, Lama di ICU, Tekanan darah bawah awal, Nadi awal, Leukosit awal, Tekanan darah bawah akhir, Diagnosis. Jika sudah maka program siap melakukan testing.

3.5 Spesifikasi Modul

Untuk menjelaskan proses-proses yang terdapat pada program aplikasi kriptografi visual ini yang terjadi pada setiap modul, maka akan diperinci dengan spesifikasi modul di bawah ini:

3.5.1 Modul FormCreate

Modul FormCreate merupakan modul yang dipanggil pertama kali saat mengeksekusi program. Modul Form Create berfungsi untuk melakukan setting

(16)

awal terhadap tampilan awal form utama pada saat program pertama kali dieksekusi.

Mulai

Timer di non-aktifkan

Tombol training di non-aktifkan Set waktu awal

Index pada hidden layer = 5 Selesai

Tombol training sengaja dinon-aktifkan dengan tujuan agar user diarahkan untuk melakukan add training pair pada saat pertama kali menjalankan program. Sedangkan pada index hidden layer penulis memberikan nilai 5 karena pada aplikasi ini penghitungan hidden layer dimulai dari dua atau dengan kata lain pada modul lain array untuk hidden layer sudah ditambah 2 dari awalnya.

3.5.2 Modul Execute

Mulai

Jika flag = 0, maka

Lakukan selama GenEror lebih kecil dari Err Inisialisasi GenEror

Lakukan berulang dari i =0 sampai JmlTp-1 Mulai

Jalankan modul Feed_Forward Jalankan modul Back_Prop

Lakukan berulang sebanyak jumlah output layer

Mulai

GenEror = GenEror + Nilai absolut dari(output layer node error); Selesai

Jalankan modul update_weight Selesai

GenEror := GenEror dibagi (Jumlah training pair * OutputLayer.jmlNode) Jalankan Synchronize(Cetak)

Atau lakukan mulai

jalankan Feed_Forward jalankan modul Cetak selesai

(17)

Pada modul execute ini dapat dikatakan inti dari program ini, tahap-tahap yang dilakukan pada Neural Network dilakukan di modul ini. Modul ini dipanggil oleh modul TrainingClick setelah sebelumnya menginisialisasi weight dengan memanggil modul Inisialisasi_Weight. Pada modul ini terdapat variable penanda yaitu flags dengan kondisi jika flags masih bernilai 0 maka berarti akan melakukan training. Training akan terus dilakukan selama nilai pada variabel GenEror lebih besar atau sama dengan nilai pada variable err. Lalu jika nilai flags sudah berubah maka akan hanya melakukan 1 kali proses FeedForward.

3.5.3 Modul FeedForward

Mulai

Lakukan berulang sebanyak jumlah node input layer Node input layer = input

Lakukan berulang sebanyak jumlah node hidden layer Mulai

acc = 0;

lakukan berulang sebanyak jumlah node input layer acc = acc + (weightV * input layer)

acc = acc + Bias pertama

Node hidden layer = 1/(1+exp(-acc)) selesai

lakukan berulang sebanyak jumlah node output layer mulai

acc = 0

lakukan berulang sebanyak jumlah node hidden layer acc = acc + (WeightW * hidden layer)

acc := acc + Bias kedua

Node output layer = 1/(1+exp(-acc)) selesai

selesai

Pada modul ini nilai-nilai yang ada pada input layer dikalikan dengan weight-weightnya. Nilai yang didapat dimasukan ke dalam fungsi aktivasi kemudian nilai pada fungsi aktivasi dijadikan input untuk layer pada level diatasnya, yaitu hidden layer. Nilai-nilai pada hidden layer dikalikan dengan weight-weightnya. Nilai yang didapat dimasukan ke dalam fungsi aktivasi.

(18)

3.5.4 Modul Back_Prop

Mulai

Lakukan berulang sebanyak jumlah node output layer Mulai

temp = nilai output

error output layer = temp – output dari output layer error2 output layer = error output layer

outputlayer.layernode[i].error2 = outputlayer.layernode[i].error OutputLayer.LayerNode[i].error := OutputLayer.LayerNode[i].error * OutputLayer.LayerNode[i].output; OutputLayer.LayerNode[i].error := OutputLayer.LayerNode[i].error * (1-OutputLayer.LayerNode[i].output); end;

for i:=0 to HiddenLayer.jmlNode-1 do begin

acc := 0;

for j:=0 to OutputLayer.jmlNode-1 do begin

acc := acc + (WeightW[i,j] * OutputLayer.LayerNode[j].error); end;

HiddenLayer.LayerNode[i].error := acc * HiddenLayer.LayerNode[i].output * (1-HiddenLayer.LayerNode[i].output);

end; end;

Pada modul ini nilai alpha yang sudah diinput digunakan untuk learning rate backpropagation. Semakin kecil nilai alpha semakin kecil perubahan bobot synapsis jaringan dari iterasi satu ke iterasi lainnya. Peningkatan ini menyebabkan pembelajaran lebih lama. Jika dibuat nilai alpha yang terlalu besar untuk mempercepat pembelajaran, hasilnya perubahan yang besar dari bobot synapsis menyebabkan jaringan menjadi tidak stabil (bolak-balik).

(19)

3.5.5 Modul Inisialisasi_Weight

Mulai

Set panjang (WeightV,7,Jumlah Hidden); Set panjang (WeightW,Jumlah hidden,1); Lakukan berulang sebanyak 7 kali

Lakukan berulang sebanyak jumlah node hidden layer WeightV = random - 0.5;

Lakukan berulang sebanyak jumlah node hidden layer Lakukan berulang sekali

WeightW = random - 0.5; Set panjang (Bias,2);

Set panjang (Bias,JmlHidden); Set panjang (Bias,1);

Lakukan berulang sebanyak jumlah node hidden layer Bias = random - 0.5;

Lakukan berulang sekali Bias = random - 0.5; selesai

Pada modul dilakukan penentuan jumlah maximum node pada hidden layer, jumlah node bias. Pada modul ini dilakukan inisialisasi nilai-nilai weight secara acak dengan kisaran antara 0.5 sampai -0.5. Nilai-nilai weight yang diinisialisasi akan digunakan untuk melakukan training.

3.5.6 Modul Update_Weight

Mulai

Lakukan berulang sebanyak jumlah node hidden layer mulai

Lakukan berulang sebanyak jumlah node input layer Mulai

delta = alpha * node input layer * error hidden layer WeightV = WeightV + delta

selesai selesai

lakukan berulang sebanyak jumlah node output layer mulai

lakukan berulang sebanyak jumlah node hidden layer mulai

(20)

WeightW = WeightW + delta; selesai

selesai

lakukan berulang sebanyak jumlah node hidden layer Bias = Bias + (alpha * error node hidden layer) Lakukan berulang sebanyak jumlah node output layer Bias = Bias + (alpha * error node output layer) Selesai

Pada modul ini dilakukan perubahan nilai weight menggunakan nilai pada delta. Nilai delta didapat dari perkalian antara nilai alpha dengan nilai output yang dihasilkan pada oleh layer input dan layer hidden. Pada modul ini juga dilakukan perubahan pada nilai bias.

3.5.7 Modul Create Constructor_TBPThread.Create(Edit:TEdit;output:tedit;tparray:TDynamicTParray;JTP: integer;b:TDynamicRealArray;al:real;e:real;fl:integer;v:TDynamicRealArray;w:TDyna micRealArray;JmlHid:integer); mulai Randomize WeightV = v WeightW = w FEdit = Edit Foutput = Output TPA = tparray JmlTP = JTP bias = b alpha = al err = e flags = fl JmlHidden = jmlHid InputLayer.JmlNode = 7 setlength(InputLayer.LayerNode,InputLayer.JmlNode); HiddenLayer.JmlNode = JmlHidden setlength(HiddenLayer.LayerNode,HiddenLayer.JmlNode) OutputLayer.JmlNode = 1 setlength(OutputLayer.LayerNode,OutputLayer.JmlNode) if fl = 0 then Inisialisasi_Weight inherited Create(False) selesai

Pada modul ini dilakukan pengiriman nilai antar thread. Karena pada aplikasi ini digunakan multi-thread maka nilai-nilai pada variabel-variabel di kedua thread

(21)

dikirim melalui sebuah constructor. Constructor adalah modul yang digunakan untuk mengambil nilai pada thread lain melalui passing parameter.

3.5.8 Modul Cetak

mulai

jika Flags = 0 maka

FEdit.Text := FloatToStr(GenEror) Atau lakukan

mulai

FEdit.Text = FloatToStr(GenEror); foutput.Clear

lakukan berulang sebanyak jumlah node output layer Foutput.Text = floattostr(OutputLayer.layernode.output) selesai

selesai

Pada modul ini nilai-nilai yang dihasilkan selama proses training dicetak. Pada modul ini juga dilakukan proses pencetakan hasil testing. Karena untuk mencetak pada layer harus menggunakan tipe data string maka nilai yang ingin dicetak diubah terlebih dahulu menggunakan fungsi floattostr.

3.5.9 Modul ThreadDone mulai timer.Enabled = false WeightV = thr.WeightV WeightW = thr.WeightW bias = thr.Bias Application.MessageBox('finish','finish',0) button4.Enabled = true button3.Enabled = false edit1.Enabled := true edit2.Enabled := true edit3.Enabled := true edit4.Enabled := true edit5.Enabled := true edit6.Enabled := true edit7.Enabled := true selesai

(22)

Pada modul ini diberikan pernyataan untuk selesai melakukan training atau learning. Tombol-tombol yang awalnya dinon-aktifkan sebelum training melalui modul ini sekarang diaktifkan kembali. Lalu kolom-kolom yang sebelumnya tidak aktif juga sudah diaktifkan kembali sehingga user sudah dapat melakukan learning. Fungsi dari statement weightV = thr.weightV dan seterusnya adalah untuk mengambil nilai dari thread unit2 untuk bisa digunakan kembali.

3.5.10 Modul AddTPClick

mulai

jika OpenDialog1.Execute maka filename = OpenDialog1.FileName

tbl.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + filename + ';Persist Security Info=False'

Buka tabel

Lakukan berulang selama belum End of File mulai jmlTP:=jmlTP+1 setlength(TPA,jmlTP) tpa[jmlTP-1].Input[0]:=(tbl.FieldByName('diagnosi').AsFloat-3)/2 tpa[jmlTP-1].Input[1]:=(tbl.FieldByName('lamademam').AsFloat-4)/2 tpa[jmlTP-1].Input[2]:=(tbl.FieldByName('kesadaran').AsFloat-3)/2 tpa[jmlTP-1].Input[3]:=(tbl.FieldByName('nadi').AsFloat) tpa[jmlTP-1].Input[4]:=(tbl.FieldByName('perdarahan').AsFloat-2.5)/1.5 tpa[jmlTP-1].Input[5]:=(tbl.FieldByName('akral').AsFloat) tpa[jmlTP-1].Input[6]:=(tbl.FieldByName('rothorak').AsFloat) tpa[jmlTP-1].Output[0]:=tbl.fieldbyname('output').AsFloat tbl.selanjutnya selesai

Modul ini adalah modul yang dijalankan sewaktu user menekan tombol “Add Training Pair”. Yang pertama kali dilakukan oleh modul ini adalah mengeksekusi fungsi “Open Dialog”. Fungsi “Open Dialog” membuka sebuah window untuk user menentukan file database mana yang ingin ditraining lalu menyimpannya dalam variabel filename. Setelah itu dilakukan koneksi antara aplikasi dengan database menggunakan suatu provider : Microsoft.Jet.OLEDB.4.0.

(23)

Seperti yang sudah dijelaskan pada awal bab ini yaitu karena nilai datanya ada yang beragam maka untuk beberapa variabel dilakukan perubahan nilai agar mendapat range nilai yang diinginkan, yaitu -1 sampai 1.

3.5.11 Modul TrainingClick Mulai alfa = strtofloat(talfa.Text) TargetEror = strtofloat(tTargetEror.Text) thr:=TBPThread.Create(tEror,tOut,TPA,JmlTP,bias,alfa,TargetEror,0,WeightV,weightW,com bobox1.ItemIndex+2) dengan thr lakukan OnTerminate = ThreadDone timer1.Enabled = true selesai

Pada modul ini dilakukan insialisasi untuk variabel alfa dan targeteror. Nilai alfa dan targeteror didapat dari nilai yang ada di layar utama yang oleh penulis sudah diberikan nilai defaultnya yaitu alfa = 0.5 dan targeteror = 0.15. Pemberian nilai error 0.15 akan dijelaskan pada bab selanjutnya.

3.5.12 Modul LearningClick

Mulai

Jika (edit1.Text <> '') and (edit2.Text <> '') and (edit3.Text <> '') and (edit4.Text <> ‘’ and (edit5.Text <> '') and (edit6.Text <> '') and (edit7.Text <> '') maka

mulai JmlTP = 1

Set panjang (TPA,JmlTP)

tpa[jmlTP-1].Input[0] = (strtofloat(edit1.Text)-3)/2 tpa[jmlTP-1].Input[1] = (strtofloat(edit2.Text)-4)/2 tpa[jmlTP-1].Input[2] = (strtofloat(edit3.Text)-3)/2 tpa[jmlTP-1].Input[3] = strtofloat(edit4.Text) tpa[jmlTP-1].Input[4] = (strtofloat(edit5.Text)-2.5)/1.5 tpa[jmlTP-1].Input[5] = strtofloat(edit6.Text) tpa[jmlTP-1].Input[6] = strtofloat(edit7.Text)

(24)

dengan(TBPThread.Create(tEror,tOut,TPA,JmlTP,bias,alfa,TargetEror,1,WeightV,Wei ghtW,combobox1.ItemIndex+2)) lakukan OnTerminate = ThreadDone selesai atau lakukan

application.MessageBox('Field input diisi terlebih dahulu','Error',0) selesai

Modul ini adalah modul yang akan dijalankan jika user menekan tombol learning. Pada awal modul diberikan validasi untuk user mengisi semua kolom terlebih dahulu agar learning dapat dijalankan. Setelah dijalankan nilai variabel yang diinput diubah terlebih dahulu seperti yang sudah dijelaskan diatas. Lalu melalui fungsi thread modul ini terhubung dengan modul execute yang ada pada unit2 dan menjalankan fungsi feedforward sebanyak 1 kali.

3.5.13 Modul New1Click Mulai JmlTp = 0 setlength(tpa,jmltp) addTP.Enabled = true training.Enabled = false edit1.Text := '' edit2.Text := '' edit3.Text := '' edit4.Text := '' edit5.Text := '' edit6.Text := '' edit7.Text := '' tEror.Text := ' selesai

Modul ini men-set ulang aplikasi agar dapat melakukan training ulang dengan menginisialisasikan variabel JmlTp dengan nilai 0.

(25)

3.5.14 Modul Exit1Click

Mulai

application.Terminate selesai

Gambar

Gambar 3.1 Model Neural dengan 2 node hidden layer
Gambar 3.2 Model Neural dengan 3 node hidden layer
Gambar 3.3 Model Neural dengan 4 node hidden layer
Gambar 3.4 Model Neural dengan 6 node hidden layer
+5

Referensi

Dokumen terkait

Dalam perspektif tanggungjawab sosial perusahaan, yang harus diuntungkan dengan adanya perusahaan, tidak hanya pemegang atau pemilik saham (share-holders) perusahaan

Kesan-kesan buruk lain : Tiada kesan yang penting atau bahaya kritikal yang diketahui.

penelitian primer, jumlah pustaka yang diacu minimal 10 pustaka, sedangkan untuk naskah yang merupakan ulasan ( review ) minimal 25 pustaka, dengan 80% dari

Analisis sekuen gen aiiA dengan program BLAST-X menunjukkan bahwa protein yang disandikan oleh gen aiiA pada kedua isolat memiliki homologi dengan struktur kristal

Dan kami juga memohon perlindungan kepada Alloh subhanahu wa ta’ala dari keburukan diri kami dan kesalahan amal perbuatan kami, sehingga penyusunan skripsi yang

Minyak yang tidak memenuhi syarat Terdeteksinya kadar peroksida dan asam yang cukup tinggi pada minyak yang digunakan pedagang penyetan di Sutorejo dipengaruhi oleh

Berdasarkan uraian diatas, dengan demikian diperlukan adanya penelitian yang dapat menjadi acuan untuk menempatkan dan memadukan antara lingkungan bisnis internal, eksternal,

PRij : Persentase perubahan pendapatan sektor pertanian yang disebabkan komponen pertumbuhan regional PPij : Persentase perubahan pendapatan sektor pertanian yang disebabkan