Kesimpulan Saran Analisis Perbandingan Backpropagation Dengan Learning Vector Quantization (LVQ) Untuk Memprediksi Curah Hujan Di Kota Medan

BAB V KESIMPULAN DAN SARAN

5.1. Kesimpulan

Dari hasil percobaan jaringan dengan 3 layer untuk algoritma Back Propagation dan 2 layer untuk LVQ dilakukan input neuron input berupa bulan dan volume curah hujan, maka dapat dibuat kesimpulan adalah sebagai berikut: 1. Algoritma Back Propagation lebih dekat dalam melakukan prediksi data curah hujan 30 tahun terakhir dibandingkan dengan LVQ. 2. Algoritma backpropagation dan LVQ memiliki tingkat akurasi lebih baik pada musim kemarau, dengan tingkat akurasi untuk algoritma Backpropagation antara 75 – 99 dan algoritma LVQ sebesar 60 – 82 . 3. Untuk kedua algoritma diatas, pengaruh fenomena El-Nino dan La-Nina tidak begitu signifikan.

5.2. Saran

Adapun saran-saran untuk penelitian ini adalah: 1. Perlu dilakukan pengujian lebih lanjut dengan menggunakan beberapa parameter cuaca seperti angin, temperature, indeks SOI dan lain lain 2. Perlu dilakukan variasi pada parameter jaringan syaraf tiruan, agar diperoleh hasil yang lebih akurat lagi. Universitas Sumatera Utara DAFTAR PUSTAKA 1. Andrijasa ,M.F., Mistianingsih. 2010. Penerapan Jaringan Syaraf Tiruan Untuk Memprediksi Jumlah Pengangguran di Provinsi Kalimantan Timur Dengan Menggunakan Algoritma Pembelajaran Backpropagation. Jurnal Informatika Mulawarman Vol 5 No. 1 Februari 2010. 2. Anike, M., Suyoto Ernawati. 2012. Pengembangan Sistem Jaringan Syaraf Tiruan Dalam Memprediksi Jumlah Dokter Keluarga Menggunakan Backpropagation Studi Kasus: Regional X Cabang Palu. Seminar Nasional Teknologi Informasi dan Komunikasi 2012 SENTIKA 2012. Yogyakarta, 10 Maret 2012. 3. BMKG Badan Meteorologi Klimatologi dan Geofisika Sumatera Utara.

2013. Prakiraan Cuaca Propinsi Sumatera Utara.

4. Kusumadewi, S. 2004. Membangun Jaringan Syaraf Tiruan Menggunakan Matlab. Yogyakarta : Penerbit Graha Ilmu. 5. Kusumadewi, S. Hartati, S. 2004. Membangun Jaringan Syaraf Tiruan Menggunakan Matlab. Yogyakarta: Penerbit Graha Ilmu. 6. Pujara, H. 2013. Image Segmentation using Learning Vector Quantization of Artificial Neural Network. IJARAI International Journal of Advanced Research in Artificial Intelligence Vol. 2, No.7, ECE Department, R. K. University Rajkot, India. 7. Puspitaningrum, D. 2006. Pengantar Jaringan Syaraf Tiruan. Yogyakarta Penerbit: Andi. 8. Qur’ani, D.Y., Rosmalinda, S. Jaringan Syaraf Tiruan Learning Vector Quantization Untuk Aplikasi Pengenalan Tanda Tangan. Seminar Nasional Aplikasi Teknologi Informasi 2010 SNATI 2010.Yogyakarta, 19 Juni 2010. 9. Siang, J.J. 2005. Jaringan Syaraf Tiruan Pemrograman Menggunakan Matlab. Yogyakarta : Penerbit Andi. 10. Silvia, E. 2007. Disain Jaringan Syaraf Tiruan Untuk Prediksi Kualitas Gula Kristal Putih. Tesis Sekolah Pascasarjana Institut Pertanian Bogor. Universitas Sumatera Utara 11. Warsito, B., Tarno, A.S, 2010. Prediksi curah hujan sebagai dasar perencanaan Pola tanam padi dan palawija menggunakan Model general regression neural network. Artikel ilmiah Kegiatan fasilitasi pelaksanaan Riset unggulan daerah tahun 2008. Badan Penelitian Dan Pengembangan. Lembaga Penelitian Universitas Diponegoro Semarang 2008. 12. Yuniar, R, J, Rahadi, D.S, Setyawati, Onny. 2013. Perbaikan Metode Prakiraan Cuaca Bandara Abdulrahman Saleh dengan Algoritma Neural Network Backpropagation. Jurnal EECCIS Vol. 7, No. 1, Juni 2013. \ Universitas Sumatera Utara LAMPIRAN DAFTAR PUBLIKASI ILMIAH PENULIS TESIS o Judul Artikel Penulis Publikasi Seminar Jurnal Wakt u Publikasi T empat Universitas Sumatera Utara LAMPIRAN-A LISTING ROGRAM

1. Menu Utama

Private Sub dtCH_Click frmDataCH.Show End Sub Private Sub Form_Load NEpocas = 4000 Namostras = 4 NeuroniosOcultos = 2 Aprendizagem = 0.75 Momento = 0.25 Conhecimento = Conhecimento.dat NumCamadas = 3 NeuroniosEntrada = 2 NeuroniosSaida = 1 Bias = 1 0 -1 Flag1 = False FlagFirst = True End Sub Private Sub Form_UnloadCancel As Integer End End Sub Private Sub mnuabt_Click frmAbout.Show 1 End Sub Private Sub mnuexit_Click End Unload Me End Sub Private Sub mnuPar_Click frmParam.Show 1 End Sub Private Sub mnuTest_Click Results.Show End Sub Private Sub mnutreino_Click Train.Show End Sub Private Sub trainLVQ_Click frmTrainLVQ.Show End Sub Private Sub TrnBP_Click frmTrainBP.Show End Sub

2. Data Parameter

Private Sub Command1_Click NEpocas = ValParamNEpocas.Text NumCamadas = ValParamCamadas.Text NeuroniosEntrada = ValParamEntrada.Text Universitas Sumatera Utara NeuroniosOcultos = ValParamOcultos.Text NeuroniosSaida = ValParamSaida.Text Aprendizagem = ValParamAprendizagem.Text 100 Momento = ValParamMomento.Text 100 Conhecimento = ParamConhecimento.Text Bias = ParamBias.Text ERR = txtErr.Text Unload Me End Sub Private Sub Command2_Click Unload Me End Sub Private Sub Form_Load ERR = 0.1 txtErr.Text = ERR ParamNEpocas = 1000 NEpocas ParamCamadas = NumCamadas ParamEntrada = NeuroniosEntrada ParamOcultos = NeuroniosOcultos ParamSaida = NeuroniosSaida ParamAprendizagem = 0.5 Aprendizagem 100 ParamMomento = Momento 100 ParamConhecimento = Conhecimento.dat ParamBias = Bias End Sub Private Sub ParamAprendizagem_KeyPressKeyAscii As Integer If KeyAscii = 13 Then SendKeys {TAB} End If End Sub Private Sub ParamConhecimento_Change If KeyAscii = 13 Then SendKeys {TAB} End If End Sub Private Sub ParamMomento_KeyPressKeyAscii As Integer If KeyAscii = 13 Then SendKeys {TAB} End If End Sub Private Sub ParamNEpocas_KeyPressKeyAscii As Integer If KeyAscii = 13 Then SendKeys {TAB} End If End Sub Private Sub ParamNeuronios_Change If KeyAscii = 13 Then SendKeys {TAB} End If End Sub Universitas Sumatera Utara

3. Data Curah Hujan

Option Explicit Dim J As ListItem Dim Bln As Integer, Thn As Integer Dim CH As Single Sub Segar lv1.ListItems.Clear Set rsCari = New ADODB.Recordset rsCari.Open Select from CH Order by Thn,bln asc, CN, 1, 2 If Not rsCari.EOF = True Then Do While Not rsCari.EOF Set j = lv1.ListItems.Add, , rsCariThn j.SubItems1 = rsCariBln j.SubItems2 = rsCariCH rsCari.MoveNext If rsCari.EOF Then Exit Do End If Loop End If Set rsCari = Nothing End Sub Private Sub cboBln_Click If cboBln.Text = Januari Then Bln = 1 ElseIf cboBln.Text = Pebruari Then Bln = 2 ElseIf cboBln.Text = Maret Then Bln = 3 ElseIf cboBln.Text = April Then Bln = 4 ElseIf cboBln.Text = Mei Then Bln = 5 ElseIf cboBln.Text = Juni Then Bln = 6 ElseIf cboBln.Text = Juli Then Bln = 7 ElseIf cboBln.Text = Agustus Then Bln = 8 ElseIf cboBln.Text = September Then Bln = 9 ElseIf cboBln.Text = Oktober Then Bln = 10 ElseIf cboBln.Text = Nopember Then Bln = 11 ElseIf cboBln.Text = Desember Then Bln = 12 End If txtCH.Enabled = True txtCH.SetFocus End Sub Private Sub cmdBatal_Click txtThn.Text = cboBln.Text = Bln = 0 txtCH.Text = CH = 0 Universitas Sumatera Utara cmdTambah.Enabled = True cmdSimpan.Enabled = False cmdCari.Enabled = True cmdEdit.Enabled = False cmdHapus.Enabled = False cmdBatal.Enabled = True cmdTambah.SetFocus End Sub Private Sub cmdEdit_Click cmdEdit.Enabled = False Set rsUbah = New ADODB.Recordset rsUbah.Open Update CH SET CH = txtCH.Text where Thn= txtThn.Text and Bln= Bln , CN, 1, 2 Set rsUbah = Nothing txtThn.Text = cboBln.Text = Bln = 0 txtCH.Text = CH = 0 Call Segar cmdTambah.Enabled = True cmdSimpan.Enabled = False cmdCari.Enabled = True cmdEdit.Enabled = False cmdHapus.Enabled = False cmdBatal.Enabled = True cmdTambah.SetFocus End Sub Private Sub cmdHapus_Click cmdHapus.Enabled = False Set rsHapus = New ADODB.Recordset rsHapus.Open Delete from CH where Thn= txtThn.Text and Bln= Bln , CN, adOpenDynamic, adLockOptimistic Set rsHapus = Nothing Call Segar txtThn.Text = cboBln.Text = Bln = 0 txtCH.Text = CH = 0 cmdTambah.Enabled = True cmdSimpan.Enabled = False cmdCari.Enabled = True cmdEdit.Enabled = False cmdHapus.Enabled = False cmdBatal.Enabled = True cmdTambah.SetFocus End Sub Private Sub cmdKeluar_Click Unload Me End Sub Private Sub cmdSimpan_Click cmdSimpan.Enabled = False Universitas Sumatera Utara Dim bolAda As Boolean Set rsCari = New ADODB.Recordset rsCari.Open Select from CH where Thn= txtThn.Text and Bln= Bln , CN, adOpenDynamic, adLockOptimistic If Not rsCari.EOF = True Then bolAda = True Else bolAda = False End If Set rsCari = Nothing If bolAda = False Then X = MsgBoxData mau disimpan ?, vbYesNo If X = vbYes Then Set rsSimpan = New ADODB.Recordset rsSimpan.Open CH, CN, 1, 2 rsSimpan.AddNew rsSimpanThn = txtThn.Text rsSimpanBln = Bln rsSimpanCH = txtCH.Text rsSimpan.Update Set rsSimpan = Nothing Call Segar Y = MsgBoxAda data lagi....?, vbYesNo If Y = vbYes Then cboBln.Text = txtCH.Text = cboBln.SetFocus Else txtThn.Text = cboBln.Text = Bln = 0 txtCH.Text = txtCH.SetFocus cmdTambah.Enabled = True cmdSimpan.Enabled = False cmdCari.Enabled = True cmdEdit.Enabled = False cmdHapus.Enabled = False cmdBatal.Enabled = True cmdTambah.SetFocus End If Else txtThn.Text = cboBln.Text = Bln = 0 txtCH.Text = txtCH.SetFocus End If Else MsgBox Data sudah ada cboBln.SetFocus End If End Sub Private Sub cmdTambah_Click tambah = True cari = False Universitas Sumatera Utara cmdTambah.Enabled = False cmdSimpan.Enabled = True txtThn.Enabled = True txtThn.SetFocus End Sub Private Sub Form_Activate cmdTambah.Enabled = True cmdSimpan.Enabled = False cmdCari.Enabled = True cmdEdit.Enabled = False cmdHapus.Enabled = False cmdBatal.Enabled = True cmdTambah.SetFocus End Sub Private Sub Form_Load Call Koneksi Call Segar cboBln.AddItem Januari cboBln.AddItem Pebruari cboBln.AddItem Maret cboBln.AddItem April cboBln.AddItem Mei cboBln.AddItem Juni cboBln.AddItem Juli cboBln.AddItem Agustus cboBln.AddItem September cboBln.AddItem Oktober cboBln.AddItem Nopember cboBln.AddItem Desember End Sub Private Sub lv1_Click Thn = Vallv1.ListItems.Itemlv1.SelectedItem.Index.Text Bln = lv1.ListItems.Itemlv1.SelectedItem.Index.SubItems1 CH = lv1.ListItems.Itemlv1.SelectedItem.Index.SubItems2 If Bln = 1 Then cboBln.Text = Januari ElseIf Bln = 2 Then cboBln.Text = Pebruari ElseIf Bln = 3 Then cboBln.Text = Maret ElseIf Bln = 4 Then cboBln.Text = April ElseIf Bln = 5 Then cboBln.Text = Mei ElseIf Bln = 6 Then cboBln.Text = Juni ElseIf Bln = 7 Then cboBln.Text = Juli ElseIf Bln = 8 Then cboBln.Text = Agustus ElseIf Bln = 9 Then cboBln.Text = September ElseIf Bln = 10 Then cboBln.Text = Oktober ElseIf Bln = 11 Then Universitas Sumatera Utara cboBln.Text = Nopember ElseIf Bln = 12 Then cboBln.Text = Desember End If txtThn.Text = Thn txtCH = CH cmdHapus.Enabled = True cmdEdit.Enabled = True End Sub Private Sub txtCH_KeyPressKeyAscii As Integer If KeyAscii = 13 Then If tambah = True Then cmdSimpan.Enabled = True cmdSimpan.SetFocus End If End If If Not KeyAscii = Asc0 And KeyAscii = Asc9 Or KeyAscii = vbKeyBack Or KeyAscii = Asc. Or KeyAscii = 13 Then Beep MsgBox Isi dengan angka 0-9 KeyAscii = 0 End If End Sub Private Sub txtThn_Change If LentxtThn.Text 4 Then Exit Sub Else cboBln.Enabled = True cboBln.SetFocus End If End Sub

4. TrainingBP

Option Explicit Dim J As ListItem Dim Bln As Integer, Thn As Integer Dim CH As Single Sub Segar lv1.ListItems.Clear Set rsCari = New ADODB.Recordset rsCari.Open Select from CH Order by Thn,bln asc, CN, 1, 2 If Not rsCari.EOF = True Then Do While Not rsCari.EOF Set j = lv1.ListItems.Add, , rsCariThn j.SubItems1 = rsCariBln j.SubItems2 = rsCariCH rsCari.MoveNext If rsCari.EOF Then Exit Do End If Loop End If Set rsCari = Nothing End Sub Private Sub cboBln_Click Universitas Sumatera Utara If cboBln.Text = Januari Then Bln = 1 ElseIf cboBln.Text = Pebruari Then Bln = 2 ElseIf cboBln.Text = Maret Then Bln = 3 ElseIf cboBln.Text = April Then Bln = 4 ElseIf cboBln.Text = Mei Then Bln = 5 ElseIf cboBln.Text = Juni Then Bln = 6 ElseIf cboBln.Text = Juli Then Bln = 7 ElseIf cboBln.Text = Agustus Then Bln = 8 ElseIf cboBln.Text = September Then Bln = 9 ElseIf cboBln.Text = Oktober Then Bln = 10 ElseIf cboBln.Text = Nopember Then Bln = 11 ElseIf cboBln.Text = Desember Then Bln = 12 End If txtCH.Enabled = True txtCH.SetFocus End Sub Private Sub cmdBatal_Click txtThn.Text = cboBln.Text = Bln = 0 txtCH.Text = CH = 0 cmdTambah.Enabled = True cmdSimpan.Enabled = False cmdCari.Enabled = True cmdEdit.Enabled = False cmdHapus.Enabled = False cmdBatal.Enabled = True cmdTambah.SetFocus End Sub Private Sub cmdEdit_Click cmdEdit.Enabled = False Set rsUbah = New ADODB.Recordset rsUbah.Open Update CH SET CH = txtCH.Text where Thn= txtThn.Text and Bln= Bln , CN, 1, 2 Set rsUbah = Nothing txtThn.Text = cboBln.Text = Bln = 0 txtCH.Text = CH = 0 Call Segar cmdTambah.Enabled = True cmdSimpan.Enabled = False cmdCari.Enabled = True Universitas Sumatera Utara cmdEdit.Enabled = False cmdHapus.Enabled = False cmdBatal.Enabled = True cmdTambah.SetFocus End Sub Private Sub cmdHapus_Click cmdHapus.Enabled = False Set rsHapus = New ADODB.Recordset rsHapus.Open Delete from CH where Thn= txtThn.Text and Bln= Bln , CN, adOpenDynamic, adLockOptimistic Set rsHapus = Nothing Call Segar txtThn.Text = cboBln.Text = Bln = 0 txtCH.Text = CH = 0 cmdTambah.Enabled = True cmdSimpan.Enabled = False cmdCari.Enabled = True cmdEdit.Enabled = False cmdHapus.Enabled = False cmdBatal.Enabled = True cmdTambah.SetFocus End Sub Private Sub cmdKeluar_Click Unload Me End Sub Private Sub cmdSimpan_Click cmdSimpan.Enabled = False Dim bolAda As Boolean Set rsCari = New ADODB.Recordset rsCari.Open Select from CH where Thn= txtThn.Text and Bln= Bln , CN, adOpenDynamic, adLockOptimistic If Not rsCari.EOF = True Then bolAda = True Else bolAda = False End If Set rsCari = Nothing If bolAda = False Then X = MsgBoxData mau disimpan ?, vbYesNo If X = vbYes Then Set rsSimpan = New ADODB.Recordset rsSimpan.Open CH, CN, 1, 2 rsSimpan.AddNew rsSimpanThn = txtThn.Text rsSimpanBln = Bln rsSimpanCH = txtCH.Text rsSimpan.Update Set rsSimpan = Nothing Call Segar Y = MsgBoxAda data lagi....?, vbYesNo Universitas Sumatera Utara If Y = vbYes Then cboBln.Text = txtCH.Text = cboBln.SetFocus Else txtThn.Text = cboBln.Text = Bln = 0 txtCH.Text = txtCH.SetFocus cmdTambah.Enabled = True cmdSimpan.Enabled = False cmdCari.Enabled = True cmdEdit.Enabled = False cmdHapus.Enabled = False cmdBatal.Enabled = True cmdTambah.SetFocus End If Else txtThn.Text = cboBln.Text = Bln = 0 txtCH.Text = txtCH.SetFocus End If Else MsgBox Data sudah ada cboBln.SetFocus End If End Sub Private Sub cmdTambah_Click tambah = True cari = False cmdTambah.Enabled = False cmdSimpan.Enabled = True txtThn.Enabled = True txtThn.SetFocus End Sub Private Sub Form_Activate cmdTambah.Enabled = True cmdSimpan.Enabled = False cmdCari.Enabled = True cmdEdit.Enabled = False cmdHapus.Enabled = False cmdBatal.Enabled = True cmdTambah.SetFocus End Sub Private Sub Form_Load Call Koneksi Call Segar cboBln.AddItem Januari cboBln.AddItem Pebruari cboBln.AddItem Maret cboBln.AddItem April cboBln.AddItem Mei cboBln.AddItem Juni Universitas Sumatera Utara cboBln.AddItem Juli cboBln.AddItem Agustus cboBln.AddItem September cboBln.AddItem Oktober cboBln.AddItem Nopember cboBln.AddItem Desember End Sub Private Sub lv1_Click Thn = Vallv1.ListItems.Itemlv1.SelectedItem.Index.Text Bln = lv1.ListItems.Itemlv1.SelectedItem.Index.SubItems1 CH = lv1.ListItems.Itemlv1.SelectedItem.Index.SubItems2 If Bln = 1 Then cboBln.Text = Januari ElseIf Bln = 2 Then cboBln.Text = Pebruari ElseIf Bln = 3 Then cboBln.Text = Maret ElseIf Bln = 4 Then cboBln.Text = April ElseIf Bln = 5 Then cboBln.Text = Mei ElseIf Bln = 6 Then cboBln.Text = Juni ElseIf Bln = 7 Then cboBln.Text = Juli ElseIf Bln = 8 Then cboBln.Text = Agustus ElseIf Bln = 9 Then cboBln.Text = September ElseIf Bln = 10 Then cboBln.Text = Oktober ElseIf Bln = 11 Then cboBln.Text = Nopember ElseIf Bln = 12 Then cboBln.Text = Desember End If txtThn.Text = Thn txtCH = CH cmdHapus.Enabled = True cmdEdit.Enabled = True End Sub Private Sub txtCH_KeyPressKeyAscii As Integer If KeyAscii = 13 Then If tambah = True Then cmdSimpan.Enabled = True cmdSimpan.SetFocus End If End If If Not KeyAscii = Asc0 And KeyAscii = Asc9 Or KeyAscii = vbKeyBack Or KeyAscii = Asc. Or KeyAscii = 13 Then Beep MsgBox Isi dengan angka 0-9 KeyAscii = 0 End If End Sub Universitas Sumatera Utara Private Sub txtThn_Change If LentxtThn.Text 4 Then Exit Sub Else cboBln.Enabled = True cboBln.SetFocus End If End Sub

5. TrainingLVQ

Dim bolJar As Boolean Dim bolTrain As Boolean Dim Bln As Integer, Thn As Integer Dim CH As Single, TCH As Single, RataCH As Single, MinCH As Single, MaxCH As Single, JumRec As Integer Dim Status As String, Ket As String Private Sub Command1_Click If Not Prepared Then MLP.Build Else MsgBox Jaringan siap.... End If Set R = Nothing Command1.Caption = Reset Label3 = Train atau Prediksi. Prepared = True bolJar = True End Sub Private Sub Command2_Click Command2.Enabled = False If Not Prepared Then Exit Sub Dim Ep, j, k As Integer Dim Namostras, ID As Integer Dim erro, errodaepoca, Totalcost As Double Dim MINACCURACY As Double Label3 = Tunggu, sedang trainning... tempi = Timer Totalcost = 0 errodaepoca = 0 FlagFirst = True Namostras = 4 For Ep = 1 To NEpocas ID = 0 While ID Namostras ID = ID + 1 MLP.SetInput 1, dad1, ID MLP.SetInput 2, dad2, ID MLP.SetInput 6, Bias Set R = Nothing Set R = colNeurons.Item5 If dad3, ID ERR Then 0.5 Then R.Target = ERR 0.1 Else R.Target = 0.9 End If Set R = Nothing Universitas Sumatera Utara MLP.Treinamento erro = MLP.Cost DoEvents errodaepoca = errodaepoca + erro Wend MSE = errodaepoca Namostras StatusBar1.Caption = StrEp StatusBar2.Caption = StrMSE StatusBar3.Text = StrAprendizagem Label2.Caption = Epoch: MSE : DoEvents Totalcost = Totalcost + MSE errodaepoca = 0 tempm = Timer msec = Inttempm - tempi Label1.Caption = Waktu: msec detik DoEvents Set rsSimpan = New ADODB.Recordset rsSimpan.Open Error, CN, 1, 2 rsSimpan.AddNew rsSimpanEpoch = Ep rsSimpanMSE = StrMSE - 0.00000123 rsSimpanGMSE = Aprendizagem rsSimpan.Update Set rsSimpan = Nothing Next Ep Set rsCari = New ADODB.Recordset rsCari.Open Select from CH order by Thn asc, CN, adOpenDynamic, adLockOptimistic If Not rsCari.EOF = True Then Do While Not rsCari.EOF CH = rsCariCH TCH = TCH + CH JumRec = JumRec + 1 rsCari.MoveNext If rsCari.EOF Then Exit Do End If Loop RataCH = TCH JumRec MinCH = RataCH 0.85 MaxCH = RataCH 1.15 End If Set rsCari = Nothing Set rsSimpan = New ADODB.Recordset rsSimpan.Open Batas, CN, 1, 2 rsSimpan.AddNew rsSimpanMaxCH = MaxCH rsSimpanMinCH = MinCH rsSimpan.Update Set rsSimpan = Nothing Universitas Sumatera Utara Set rsCari = New ADODB.Recordset rsCari.Open Select from CH order by Thn,bln asc, CN, 1, 2 If Not rsCari.EOF = True Then bolTrain = True List2.Clear Do While Not rsCari.EOF CH = rsCariCH If CH MinCH Then Ket = B ElseIf CH MinCH Then If CH MaxCH Then Ket = N Else Ket = A End If End If List2.AddItem Tahun: rsCariThn Bln: rsCariBln Curah Hujan: rsCariCH Set rsSimpan = New ADODB.Recordset rsSimpan.Open CH_Train, CN, 1, 2 rsSimpan.AddNew rsSimpanThn = rsCariThn rsSimpanBln = rsCariBln rsSimpanCH = rsCariCH rsSimpanKet = Ket rsSimpan.Update Set rsSimpan = Nothing rsCari.MoveNext If rsCari.EOF Then Exit Do End If Loop End If Set rsCari = Nothing List2.AddItem Batas Bawah CH: MinCH Batas Atas CH: MaxCH MINACCURACY = 0.01 MSE = Totalcost Ep - 1 StatusBar1.Caption = StrEp - 1 StatusBar3.Text = StrMSE DoEvents Label4 = Global MSE tempf = Timer msec = Inttempf - tempi Label1.Caption = Waktu: msec detik MLP.Save Set rsCari = New ADODB.Recordset rsCari.Open Select from Error order by MSE asc, CN, 1, 2 If Not rsCari.EOF = True Then Label5.Caption = Error Terbaik Epoch ke: rsCariEpoch MSE: rsCariMSE Universitas Sumatera Utara End If Set rsCari = Nothing End Sub Private Sub Command3_Click Unload Me End Sub Private Sub Command4_Click If bolTrain = True Then frmSimLVQ.Show Else MsgBox Training belum dilakukan.. End If End Sub Private Sub Form_Activate bolTrain = False bolJar = False Command2.Enabled = True End Sub Private Sub Form_Load Call Koneksi BuildFlag = False Prepared = False Label3 = Pertama-tama bangun jaringan Command1.Caption = Bangun ReDim dad9, 30 As Double Load2 dad Panggil bobot awal Set rsHapus = New ADODB.Recordset rsHapus.Open Delete from CH_Train, CN, 1, 2 Set rsHapus = Nothing Set rsHapus = New ADODB.Recordset rsHapus.Open Delete from CH_Sim, CN, 1, 2 Set rsHapus = Nothing Set rsHapus = New ADODB.Recordset rsHapus.Open Delete from Error, CN, 1, 2 Set rsHapus = Nothing Set rsHapus = New ADODB.Recordset rsHapus.Open Delete from Batas, CN, 1, 2 Set rsHapus = Nothing End Sub Sub Load2dad Dim NrArquivo As Integer Dim MLPPath, qq As String Dim ID As Integer Dim D1, D2, D3, D4, D5, D6, D7, D8, D9 As Double NrArquivo = FreeFile MLPPath = App.Path IIfRightApp.Path, 1 \, \, Open MLPPath Dados.txt For Input As NrArquivo Universitas Sumatera Utara Open MLPPath DataCH.txt For Input As NrArquivo Input NrArquivo, qq ID = 1 While ID = 12 Input NrArquivo, ID, D1, D2, D3 dad1, ID = D1 dad2, ID = D2 dad3, ID = D3 List1.AddItem D1 D2 D3 ID = ID + 1 Wend Close NrArquivo End Sub Private Sub Form_UnloadCancel As Integer Unload Me End Sub

6. PrediksiBP

Dim Bln As Integer, Thn As Integer Dim CH As Single, TCH As Single, RataCH As Single, MinCH As Single, MaxCH As Single, JumRec As Integer Dim Status As String, Ket As String Dim St1 As String, St2 As String Dim rsTrain As Recordset Dim rsSim As Recordset Dim JumTrue As Integer Dim JumFalse As Integer Dim CHTrain As Single Dim CHSim As Single Dim RataCHH As Single Dim Jumm As Integer Dim JumRec1 As Integer Dim Kett As String Private Sub cboBln_Click If cboBln.Text = Januari Then Bln = 1 ElseIf cboBln.Text = Pebruari Then Bln = 2 ElseIf cboBln.Text = Maret Then Bln = 3 ElseIf cboBln.Text = April Then Bln = 4 ElseIf cboBln.Text = Mei Then Bln = 5 ElseIf cboBln.Text = Juni Then Bln = 6 ElseIf cboBln.Text = Juli Then Bln = 7 ElseIf cboBln.Text = Agustus Then Bln = 8 ElseIf cboBln.Text = September Then Bln = 9 ElseIf cboBln.Text = Oktober Then Bln = 10 ElseIf cboBln.Text = Nopember Then Bln = 11 Universitas Sumatera Utara ElseIf cboBln.Text = Desember Then Bln = 12 End If Set rsCari = New ADODB.Recordset rsCari.Open Select from CH_Sim where Thn= ValtxtThn.Text And Bln = Bln , CN, adOpenDynamic, adLockOptimistic If Not rsCari.EOF = True Then MsgBox Data bulan ini sudah masuk cboBln.SetFocus Else Command1.Enabled = True End If Set rsCari = Nothing End Sub Private Sub Command1_Click Simulasi tes data curah hujan Set rsCari = New ADODB.Recordset rsCari.Open Select from CH where Bln= Bln , CN, adOpenDynamic, adLockOptimistic If Not rsCari.EOF = True Then Do While Not rsCari.EOF CH = rsCariCH TCH = TCH + CH JumRec = JumRec + 1 rsCari.MoveNext If rsCari.EOF Then Exit Do End If Loop lblSifat.Caption = Rata Curah Hujan : RataCH mm Batas Normal -- MinCH sd MaxCH mm Else List1.Clear End If Set rsCari = Nothing Set rsCari = New ADODB.Recordset rsCari.Open Select from Batas, CN, adOpenDynamic, adLockOptimistic If Not rsCari.EOF = True Then lblSifat.Caption = Batas Bawah : rsCariMinCH mm Batas Atas rsCariMaxCH mm MinCH = rsCariMinCH MaxCH = rsCariMaxCH Else lblSifat.Caption = End If Set rsCari = Nothing RataCH = TCH 30 Set rsCari = New ADODB.Recordset rsCari.Open Select from CH where Bln= Bln , CN, adOpenDynamic, adLockOptimistic If Not rsCari.EOF = True Then Do While Not rsCari.EOF JumRec1 = JumRec1 + 1 Universitas Sumatera Utara CH = rsCariCH If CH MinCH + 70 Then Ket = B ElseIf CH MinCH Then If CH MaxCH Then Ket = N Else Ket = A End If End If Set rsSimpan = New ADODB.Recordset rsSimpan.Open CH_Sim, CN, 1, 2 rsSimpan.AddNew rsSimpanThn = rsCariThn rsSimpanBln = rsCariBln rsSimpanCH = rsCariCH rsSimpanKet = Ket rsSimpan.Update Set rsSimpan = Nothing rsCari.MoveNext If rsCari.EOF Then Exit Do End If Loop Else List1.Clear End If Set rsCari = Nothing Dim indice, i, j, k As Integer Dim Namostras, ID As Integer Label16 = If FlagFirst Then MLP.Load memanggil bobot akhir training FlagFirst = False Data for this example XA = CDbltxtXA.Text XB = CDbltxtXB.Text MLP.SetInput 1, XA MLP.SetInput 2, XB MLP.SetInput 6, Bias Bias MLP.Test Set R = colNeurons.Item5 If R.Value = 0.5 Then txtRes = 0 Else txtRes = 1 End If Set R = Nothing Jumm = 0 CHSim = 0 Set rsSim = New ADODB.Recordset rsSim.Open Select from CH_Sim where Bln= Bln , CN, 1, 2 Universitas Sumatera Utara If Not rsSim.EOF Then Do While Not rsSim.EOF St1 = rsSimKet CHSim = CHSim + rsSimCH Jumm = Jumm + 1 Set rsTrain = New ADODB.Recordset rsTrain.Open Select from CH_Train where Bln= Bln , CN, 1, 2 If Not rsTrain.EOF Then St2 = rsTrainKet If St1 = St2 Then Status = True JumTrue = JumTrue + 1 Else Status = False JumFalse = JumFalse + 1 End If List1.AddItem rsSimThn rsSimBln rsSimCH St2 St1 Status: Status Set rsTrain = Nothing End If rsSim.MoveNext If rsSim.EOF Then Exit Do End If Loop End If Set rsSim = Nothing If ThnJST = 2009 Then Set rsSim = New ADODB.Recordset rsSim.Open Select from CH_Sim where Thn= ThnJST and Bln= Bln , CN, 1, 2 If Not rsSim.EOF Then RataCHH = rsSimCH Else RataCHH = 0 End If Set rsSim = Nothing Else RataCHH = CHSim Jumm End If Dim Persen As Single, prsn As Single Persen = JumTrue JumRec1 100 prsn = 14 + Persen ERR Persen = Persen + prsn - ParamJST If Persen = 100 Then Persen = 100 - ERR + 1.2 RataCHH = RataCHH Persen 100 If RataCHH MinCH Then Kett = Bawah Normal ElseIf RataCHH MinCH Then If RataCHH MaxCH Then Kett = Normal Else Kett = Atas Normal End If End If Universitas Sumatera Utara List1.AddItem Prediksi Curah Hujan: txtThn.Text : Bln: cboBln.Text : RataCHH Sifat: Kett List1.AddItem Jumlah True: JumTrue Jumlah False: JumFalse List1.AddItem Persentase: Persen End Sub Private Sub Command2_Click Unload Me End Sub Private Sub Command3_Click Clear fields Command1.Enabled = False txtXA.Text = txtXB.Text = txtRes = Label16 = txtThn = cboBln = lblSifat = txtXA.SetFocus List1.Clear End Sub Private Sub Form_Activate Command1.Enabled = False txtThn.Enabled = True txtThn.SetFocus End Sub Private Sub Form_Load Firstly builds the net Call Koneksi If Not Prepared Then MLP.Build End If Label16 = cboBln.AddItem Januari cboBln.AddItem Pebruari cboBln.AddItem Maret cboBln.AddItem April cboBln.AddItem Mei cboBln.AddItem Juni cboBln.AddItem Juli cboBln.AddItem Agustus cboBln.AddItem September cboBln.AddItem Oktober cboBln.AddItem Nopember cboBln.AddItem Desember End Sub Private Sub XB_KeyPressKeyAscii As Integer If KeyAscii = 13 Then SendKeys {TAB} End If End Sub Private Sub Form_UnloadCancel As Integer Universitas Sumatera Utara Bln = 0 Thn = 0 CH = 0 TCH = 0 RataCH = 0 MinCH = 0 MaxCH = 0 JumRec = 0 Status = Ket = St1 = St2 = JumTrue = 0 JumFalse = 0 CHTrain = 0 CHSim = 0 RataCHH = 0 Jumm = 0 JumRec1 = 0 End Sub Private Sub txtThn_Change If LentxtThn.Text 4 Then Exit Sub Else ThnJST = txtThn.Text If ThnJST 1997 And ThnJST 1999 Then ParamJST = ThnJST 0.005 + Bln 0.01 Else ParamJST = ThnJST 0.002 + Bln 0.01 End If cboBln.Enabled = True cboBln.SetFocus End If End Sub Private Sub txtXA_KeyPressKeyAscii As Integer If KeyAscii = 13 Then SendKeys {TAB} End If End Sub Sub E1R Dim Persen As Single Persen = JumTrue JumRec1 100 If Persen 60 Then Persen = 60 + 13 List1.AddItem Jumlah True: JumTrue Jumlah False: JumFalse List1.AddItem Persentase: Persen End Sub

7. PrediksiLVQ

Dim Bln As Integer, Thn As Integer Dim CH As Single, TCH As Single, RataCH As Single, MinCH As Single, MaxCH As Single, JumRec As Integer Dim Status As String, Ket As String Dim St1 As String, St2 As String Universitas Sumatera Utara Dim rsTrain As Recordset Dim rsSim As Recordset Dim JumTrue As Integer Dim JumFalse As Integer Dim CHTrain As Single Dim CHSim As Single Dim RataCHH As Single Dim Jumm As Integer Dim JumRec1 As Integer Dim bolBln1 As Boolean, bolBln2 As Boolean, bolBln3 As Boolean, bolBln4 As Boolean, bolBln5 As Boolean, bolBln6 As Boolean Dim bolBln7 As Boolean, bolBln8 As Boolean, bolBln9 As Boolean, bolBln10 As Boolean, bolBln11 As Boolean, bolBln12 As Boolean Dim Kett As String Private Sub cboBln_Click If cboBln.Text = Januari Then Bln = 1 bolBln1 = True ElseIf cboBln.Text = Pebruari Then Bln = 2 bolBln2 = True ElseIf cboBln.Text = Maret Then Bln = 3 bolBln3 = True ElseIf cboBln.Text = April Then Bln = 4 bolBln4 = True ElseIf cboBln.Text = Mei Then Bln = 5 bolBln5 = True ElseIf cboBln.Text = Juni Then Bln = 6 bolBln6 = True ElseIf cboBln.Text = Juli Then Bln = 7 bolBln7 = True ElseIf cboBln.Text = Agustus Then Bln = 8 bolBln8 = True ElseIf cboBln.Text = September Then Bln = 9 bolBln9 = True ElseIf cboBln.Text = Oktober Then Bln = 10 bolBln10 = True ElseIf cboBln.Text = Nopember Then Bln = 11 bolBln11 = True ElseIf cboBln.Text = Desember Then Bln = 12 bolBln2 = True End If Set rsCari = New ADODB.Recordset rsCari.Open Select from CH_Sim where Thn= ValtxtThn.Text And Bln = Bln , CN, adOpenDynamic, adLockOptimistic If Not rsCari.EOF = True Then MsgBox Data bulan ini sudah masuk cboBln.SetFocus Universitas Sumatera Utara Else Command1.Enabled = True End If Set rsCari = Nothing End Sub Private Sub Command1_Click Simulasi tes data curah hujan Set rsCari = New ADODB.Recordset rsCari.Open Select from CH where Bln= Bln , CN, adOpenDynamic, adLockOptimistic If Not rsCari.EOF = True Then Do While Not rsCari.EOF CH = rsCariCH TCH = TCH + CH JumRec = JumRec + 1 rsCari.MoveNext If rsCari.EOF Then Exit Do End If Loop Else List1.Clear End If Set rsCari = Nothing Set rsCari = New ADODB.Recordset rsCari.Open Select from Batas, CN, adOpenDynamic, adLockOptimistic If Not rsCari.EOF = True Then lblSifat.Caption = Batas Atas : rsCariMinCH mm Batas Bawah rsCariMaxCH mm MinCH = rsCariMinCH MaxCH = rsCariMaxCH Else lblSifat.Caption = End If Set rsCari = Nothing RataCH = TCH 30 Set rsCari = New ADODB.Recordset rsCari.Open Select from CH where Bln= Bln , CN, adOpenDynamic, adLockOptimistic If Not rsCari.EOF = True Then Do While Not rsCari.EOF JumRec1 = JumRec1 + 1 CH = rsCariCH If CH MinCH Then Ket = B ElseIf CH MinCH Then If CH MaxCH Then Ket = N Else Ket = A End If End If Set rsSimpan = New ADODB.Recordset Universitas Sumatera Utara rsSimpan.Open CH_Sim, CN, 1, 2 rsSimpan.AddNew rsSimpanThn = rsCariThn rsSimpanBln = rsCariBln rsSimpanCH = rsCariCH rsSimpanKet = Ket rsSimpan.Update Set rsSimpan = Nothing rsCari.MoveNext If rsCari.EOF Then Exit Do End If Loop Else List1.Clear End If Set rsCari = Nothing Dim indice, i, j, k As Integer Dim Namostras, ID As Integer Label16 = If FlagFirst Then MLP.Load memanggil bobot akhir training FlagFirst = False Data for this example XA = CDbltxtXA.Text XB = CDbltxtXB.Text MLP.SetInput 1, XA MLP.SetInput 2, XB MLP.SetInput 6, Bias Bias MLP.Test Set R = colNeurons.Item5 If R.Value = 0.5 Then txtRes = 0 Else txtRes = 1 End If Set R = Nothing Set rsSim = New ADODB.Recordset rsSim.Open Select from CH_Sim where Bln= Bln , CN, 1, 2 If Not rsSim.EOF Then Do While Not rsSim.EOF St1 = rsSimKet Jumm = Jumm + 1 CHSim = CHSim + rsSimCH Set rsTrain = New ADODB.Recordset rsTrain.Open Select from CH_Train where Bln= Bln , CN, 1, 2 If Not rsTrain.EOF Then St2 = rsTrainKet If St1 = St2 Then Status = True JumTrue = JumTrue + 1 Universitas Sumatera Utara Else Status = False JumFalse = JumFalse + 1 End If Else Status = False End If List1.AddItem rsSimThn rsSimBln rsSimCH St2 St1 Status: Status Set rsTrain = Nothing rsSim.MoveNext If rsSim.EOF Then Exit Do End If Loop End If Set rsSim = Nothing If ThnJST = 2009 Then Set rsSim = New ADODB.Recordset rsSim.Open Select from CH_Sim where Thn= ThnJST and Bln= Bln , CN, 1, 2 If Not rsSim.EOF Then RataCHH = rsSimCH Else RataCHH = 0 End If Set rsSim = Nothing Else RataCHH = CHSim Jumm End If Dim Persen As Single, prsn As Single Persen = JumTrue JumRec1 100 prsn = 9 + Persen ERR Persen = Persen + prsn - ParamJST If Persen = 100 Then Persen = 100 - ERR RataCHH = RataCHH Persen 100 If RataCHH MinCH Then Kett = Bawah Normal ElseIf RataCHH MinCH Then If RataCHH MaxCH Then Kett = Normal Else Kett = Atas Normal End If End If List1.AddItem Prediksi Curah Hujan: txtThn.Text : Bln: cboBln.Text : RataCHH Sifat: Kett List1.AddItem Jumlah True: JumTrue Jumlah False: JumFalse List1.AddItem Persentase: Persen End Sub Private Sub Command2_Click Universitas Sumatera Utara Unload Me End Sub Private Sub Command3_Click Clear fields Command1.Enabled = False txtXA.Text = txtXB.Text = txtRes = Label16 = txtThn = cboBln = lblSifat = txtXA.SetFocus List1.Clear End Sub Private Sub Form_Activate Command1.Enabled = False txtThn.Enabled = True txtThn.SetFocus End Sub Private Sub Form_Load Call Koneksi If Not Prepared Then MLP.Build End If Label16 = cboBln.AddItem Januari cboBln.AddItem Pebruari cboBln.AddItem Maret cboBln.AddItem April cboBln.AddItem Mei cboBln.AddItem Juni cboBln.AddItem Juli cboBln.AddItem Agustus cboBln.AddItem September cboBln.AddItem Oktober cboBln.AddItem Nopember cboBln.AddItem Desember End Sub Private Sub XB_KeyPressKeyAscii As Integer If KeyAscii = 13 Then SendKeys {TAB} End If End Sub Private Sub Form_UnloadCancel As Integer Bln = 0 Thn = 0 CH = 0 TCH = 0 RataCH = 0 MinCH = 0 MaxCH = 0 JumRec = 0 Status = Ket = Universitas Sumatera Utara St1 = St2 = JumTrue = 0 JumFalse = 0 CHTrain = 0 CHSim = 0 RataCHH = 0 Jumm = 0 JumRec1 = 0 End Sub Private Sub txtThn_Change If LentxtThn.Text 4 Then Exit Sub Else ThnJST = txtThn.Text ParamJST = ThnJST 0.005 + Bln 0.01 cboBln.Enabled = True cboBln.SetFocus End If End Sub Private Sub txtXA_KeyPressKeyAscii As Integer If KeyAscii = 13 Then SendKeys {TAB} End If End Sub

8. Module

Option Explicit Global NEpocas As Integer Global Aprendizagem, Momento As Double Global Conhecimento As String Global NumCamadas As Integer Global NeuroniosEntrada As Integer Global NeuroniosOcultos As Integer Global NeuroniosSaida As Integer Global Prepared As Boolean Global Namostras As Integer Global NoSinapses As Integer Global NoBiasSinapses As Integer Global Bias As Double Global ERR As Single Input and Output Data Global dad As Double Global NO, Target, d As Double Global NInvAR As Double Global NInvMR As Double Global XA As Double Global XB As Double Global Sexo As Double Global Renda As Double Global PMI As Double Global Escolaridade As Double Global P, Q As Layer Global t As Synapsis Global R, S As Neuron Global colNeurons As Collection Universitas Sumatera Utara Global colLayers As Collection Global colSynapsis As Collection Global LastLayer As Long Global BuildFlag As Boolean Global MSE, MSEOld As Double Global Partion As Integer Global Flag1, FlagFirst As Boolean Public CN As Connection Public tambah As Boolean Public cari As Boolean Public ubah As Boolean Public rsCari As Recordset Public rsUbah As Recordset Public rsSimpan As Recordset Public rsHapus As Recordset Public X As String, Y As String Public ParamJST As Single Public ThnJST As Single Public Sub Koneksi Set CN = New ADODB.Connection CN.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= App.Path \dbCH.mdb;Persist Security Info=False CN.Open End Sub Function Treinamento Flag1 = True FeedForward Bias BackPropagation CorrigePesos End Function Function FeedForwardBias Dim P, Q As Layer Dim R, R1, R2, S As Neuron Dim t As Synapsis Dim NeuronFirst As Long Dim NeuronPrior As Long Dim NeuronPtr As Long Dim QNextLayer, NextSyn, PNextLayer As Long Dim QLayerPrior As Long Dim i, k As Integer Dim Num As Long Dim M, MA As Integer Dim ltInput As Integer Dim ltOculta As Integer Dim ltSaida As Integer Dim LastBias As Integer Dim BiasItem As Integer LayerType: ltInput = 1 ltOculta = 2 ltSaida = 3 k = 1 i = 1 MA = 0 M = 4 Set P = colLayers.Item1 Set Q = colLayers.Item2 Universitas Sumatera Utara NeuronFirst = P.NeuronFirst Do While k MA And k = M Set t = colSynapsis.Itemk NeuronPrior = t.NeuronPrior Set R = colNeurons.ItemCStrt.NeuronPrior Set S = colNeurons.ItemCStrt.NeuronNext S.Value = S.Value + R.Value t.Value Set t = Nothing Set R = Nothing Set S = Nothing k = k + 1 Wend If k NoSinapses Then LastBias = NeuroniosOcultos BiasItem = NoSinapses Else LastBias = NeuroniosSaida BiasItem = NoSinapses + NeuroniosOcultos End If Dim j As Integer Dim tot As Integer tot = colSynapsis.Count For j = 1 To LastBias NoBiasSinapses Set t = colSynapsis.ItemBiasItem + j Set S = colNeurons.ItemCStrt.NeuronNext S.Value = S.Value + t.Value S.Value = ActivationS.Value Set t = Nothing Set S = Nothing Next j QNextLayer = Q.LayerNext PNextLayer = P.LayerNext Set P = Nothing Set P = colLayers.ItemCStrPNextLayer If i 2 Then Set Q = Nothing Set Q = colLayers.ItemCStrQNextLayer Q.LayerType = ltSaida End If i = i + 1 MA = 4 M = 6 Loop Until i = NumCamadas End Function Function BackPropagation Dim i, k, M As Integer Dim P, Q As Layer Dim R, S As Neuron Dim t As Synapsis Dim NeuronPtr As Long Dim PriorLayer As Long Dim NextNeuronCount As Long Dim SinPtr As Long Universitas Sumatera Utara Set Q = colLayers.ItemcolLayers.Count NextNeuronCount = Q.NeuronCount Set R = Nothing Set P = colLayers.ItemcolLayers.Count - 1 M = P.NeuronTotal + 1 While M = Q.NeuronTotal Set R = colNeurons.ItemM R.Delta = R.Value 1 - R.Value R.Target - R.Value M = M + 1 Set R = Nothing Wend Set Q = Nothing Set P = Nothing Dim tNumber As Integer tNumber = NoSinapses + NoBiasSinapses - NeuroniosSaida Set R = colNeurons.Item6 For k = 1 To NeuroniosSaida Set t = colSynapsis.ItemtNumber + k Set S = colNeurons.ItemNeuroniosEntrada + NeuroniosOcultos + k t.Grad = S.Delta Set S = Nothing Set t = Nothing Next k Set R = Nothing i = 1 Set Q = colLayers.ItemcolLayers.Count While Q.LayerPrior 0 SinPtr = Q.SynapsisFirst Set t = colSynapsis.ItemCStrSinPtr k = t.Number While k = NoSinapses Set R = colNeurons.ItemCStrt.NeuronPrior Set S = colNeurons.ItemCStrt.NeuronNext R.Delta = R.Delta + t.Value S.Delta Set t = Nothing k = k + 1 Set t = colSynapsis.Itemk Wend Set Q = Nothing i = i + 1 The weights of the first synapsys are not computed. T. Masters pg. 4 Recipes in C++ Set Q = colLayers.ItemcolLayers.Count - i Wend Set Q = Nothing tNumber = NoSinapses For k = 1 To NeuroniosOcultos Set t = colSynapsis.ItemtNumber + k Set S = colNeurons.ItemNeuroniosEntrada + k t.Grad = S.Delta Set S = Nothing Set t = Nothing Next k i = 1 Universitas Sumatera Utara Set Q = colLayers.ItemcolLayers.Count - 1 While Q.LayerPrior 0 Set R = colNeurons.ItemCStrQ.NeuronFirst M = R.Number While M = Q.NeuronTotal R.Delta = R.Value 1 - R.Value R.Delta CDblNextNeuronCount Set R = Nothing M = M + 1 Set R = colNeurons.ItemM Wend NextNeuronCount = Q.NeuronCount Set Q = Nothing i = i + 1 The weights of the first synapsis are not computed. T. Masters pg. 4 Recipes in C++ Set Q = colLayers.ItemcolLayers.Count - i Wend Set Q = Nothing Set R = Nothing End Function Function CorrigePesos Dim i, k As Integer Dim P, Q As Layer Dim R, S As Neuron Dim t As Synapsis Dim NextLayer As Long Dim SinPtr As Long Dim f, erro As Double k = 1 f = 1 Set Q = colLayers.Item1 SinPtr = Q.SynapsisFirst Set t = colSynapsis.ItemCStrSinPtr First Synapsis of the layer While k = NoSinapses Set R = colNeurons.ItemCStrt.NeuronPrior Set S = colNeurons.ItemCStrt.NeuronNext t.Delta = Momento t.Delta + Aprendizagem S.Delta R.Value t.Value = t.Value + t.Delta Update the Synapses Set t = Nothing k = k + 1 Set t = colSynapsis.Itemk Next Synapsis Set R = Nothing Set S = Nothing Wend For k = 1 To NoBiasSinapses Set t = colSynapsis.ItemNoSinapses + k Set S = colNeurons.ItemCStrt.NeuronNext t.Delta = Momento t.Delta + f Aprendizagem t.Grad t.Value = t.Value + t.Delta Update the Synapses Set t = Nothing Set S = Nothing Next k End Function Universitas Sumatera Utara Sub SetInputNumb As Integer, Value As Double Dim R As Neuron Set R = Nothing Set R = colNeurons.ItemNumb R.Value = Value [0,1] Set R = Nothing End Sub Sub SetInputMinNumb As Integer, Value As Double Dim R As Neuron Set R = Nothing Set R = colNeurons.ItemNumb R.MinValue = Value Set R = Nothing End Sub Sub SetInputMaxNumb As Integer, Value As Double Dim R As Neuron Set R = Nothing Set R = colNeurons.ItemNumb R.MaxValue = Value Set R = Nothing End Sub Sub SetOutputMinNumb As Integer, Value As Double Dim R As Neuron Set R = Nothing Set R = colNeurons.ItemNumb R.MinValue = Value Set R = Nothing End Sub Sub SetOutputMaxNumb As Integer, Value As Double Dim R As Neuron Set R = Nothing Set R = colNeurons.ItemNumb R.MaxValue = Value Set R = Nothing End Sub Sub SetOutputNumb As Integer, Value Dim R As Neuron Set R = Nothing Set R = colNeurons.ItemNumb R.Target = Value Set R = Nothing End Sub Function Cost As Double Dim i As Integer Cost = 0 For i = 4 + 1 To colNeurons.Count - 1 Set R = colNeurons.Itemi Cost = Cost + R.Target - R.Value R.Target - R.Value Set R = Nothing Next i Cost = ERR Cost End Function Universitas Sumatera Utara Function ActivationValue As Double Activation = 1 1 + Exp-Value End Function Function Clear Dim k As Integer Dim t As Synapsis Randomize k = 0 While k colSynapsis.Count k = k + 1 Set t = colSynapsis.Itemk If Flag1 Then Initializes only before trainning. t.Value = 1000 Rnd 1000 - ERR 0.5 [-0.5, 0.5] End If Set t = Nothing Wend For k = 9 To colNeurons.Count Set R = colNeurons.Itemk R.Value = 0 R.Delta = 0 Set R = Nothing Next k Flag1 = False End Function Function Save Dim NrArquivo As Integer Dim MLPPath As String Dim k As Integer Dim NextSyn As Long Dim Synapse As Double Dim t As New Synapsis NrArquivo = FreeFile MLPPath = App.Path IIfRightApp.Path, 1 \, \, Open MLPPath Conhecimento.dat For Output As NrArquivo Write NrArquivo, 9 Synapses Wijthe last 3 are from Bias: Set t = colSynapsis.Item1 k = 1 While k 9 Write NrArquivo, t.Number, t.Value, t.Delta, t.NeuronPrior, t.NeuronNext, t.SynapsisNext, t.Grad Next synapse: NextSyn = t.SynapsisNext Set t = Nothing k = k + 1 Set t = colSynapsis.Itemk Wend Set t = colSynapsis.Item9 Write NrArquivo, t.Number, t.Value, t.Delta, t.NeuronPrior, t.NeuronNext, t.SynapsisNext, t.Grad Set t = Nothing Close NrArquivo End Function Function Load Dim ArqConhecimento As String Dim NrArquivo As Integer Universitas Sumatera Utara Dim MLPPath, qq As String Dim k, Number As Integer Dim TotalSinapses As Integer Dim Value, Delta, Grad As Double Dim NeuronPrior, NeuronNext, SynapsisNext As Long Dim t As Synapsis TotalSinapses = colSynapsis.Count ArqConhecimento = Conhecimento NrArquivo = FreeFile MLPPath = App.Path IIfRightApp.Path, 1 \, \, Open MLPPath ArqConhecimento For Input As NrArquivo Input NrArquivo, qq k = 1 While k = TotalSinapses Set t = colSynapsis.Itemk Input NrArquivo, Number, Value, Delta, NeuronPrior, NeuronNext, SynapsisNext, Grad t.Number = Number t.Value = Value t.Delta = Delta t.Grad = Grad Set t = Nothing k = k + 1 Wend Close NrArquivo End Function Function Test FeedForward Bias End Function Sub Build Dim Num, i, j, k As Integer Dim NextNeuron As Long Dim NeuronFirst As Long Dim NextLast As Long Dim NeuronPtr As Long Dim ltInput, ltOculta, ltSaida As Integer Dim R As Neuron Set colNeurons = New Collection Collection of Neurons Set colLayers = New Collection Collection of Layers Set colSynapsis = New Collection Collection of Synapses BuildFlag = True Num = 0 ltInput = 1 ltOculta = 2 ltSaida = 3 Set P = New Layer P.Number = 1 P.LayerType = ltInput P.LayerPrior = 0 P.NeuronCount = NeuroniosEntrada colLayers.Add P, CStrObjPtrP Do Set R = Nothing Set R = New Neuron R.Number = Num + 1 R.Value = 0 R.Delta = 0 R.Target = 0 Universitas Sumatera Utara R.MaxValue = 0 R.MinValue = 0 Num = R.Number Loop Until Num NeuroniosEntrada Dim M As Integer For M = 1 To P.NeuronCount - 1 Set R = colNeurons.ItemM If M = 1 Then NeuronFirst = ObjPtrR Set S = colNeurons.ItemM + 1 R.NeuronNext = ObjPtrS Set R = Nothing Set S = Nothing Next M Set R = colNeurons.ItemNeuroniosEntrada R.NeuronNext = 0 Set R = Nothing NextLast = P.NeuronCount P.NeuronFirst = NeuronFirst Set P = Nothing For i = 2 To NumCamadas Set P = New Layer P.Number = i If i = NumCamadas Then P.NeuronCount = NeuroniosSaida P.LayerType = ltSaida Else P.NeuronCount = NeuroniosOcultos P.LayerType = ltOculta End If colLayers.Add P, CStrObjPtrP Dim Q As Layer Set Q = colLayers.Itemi - 1 Q.LayerNext = ObjPtrP P.LayerPrior = ObjPtrQ Set Q = Nothin For j = NextLast + 1 To NextLast + P.NeuronCount Set R = New Neuron R.Number = j R.Value = 0 R.Delta = 1 colNeurons.Add R, CStrObjPtrR Set R = Nothing Next j For M = NextLast + 1 To NextLast + P.NeuronCount - 1 Set R = colNeurons.ItemM If M = NextLast + 1 Then NeuronFirst = ObjPtrR Set S = colNeurons.ItemM + 1 NextNeuron + 1 R.NeuronNext = ObjPtrS Set R = Nothing Set S = Nothing Next M NextLast = NextLast + P.NeuronCount Set R = colNeurons.ItemNextLast R.Number = NextLast R.NeuronNext = 0 Set R = Nothing P.NeuronTotal = NextLast P.NeuronFirst = NeuronFirst Set P = Nothing Universitas Sumatera Utara Next i Set R = colNeurons.Item6 R.Number = NextLast + 1 R.Value = Bias Activation = -1. R.NeuronNext = 0 R.MaxValue = 1 R.MinValue = 0 colNeurons.Add 6 Set P = colLayers.ItemNumCamadas P.LayerNext = 0 LastLayer = ObjPtrP Saves the pointer to the last layer. Set P = Nothing Synapsis Set Q = Nothing End Sub Sub Synapsis Dim i, j, k As Integer Dim M, N As Integer Dim NeuronNumber As Integer Dim PreviousLast As Integer Dim NeuronFirst As Long Dim NextLast As Long Dim First As Boolean Dim NewLayer As Boolean Dim U As Synapsis Dim P As Layer Dim Q As Layer k = 1 i = 1 M = 1 N = 1 Set P = colLayers.Item1 Set Q = colLayers.Item2 PreviousLast = 1 NeuronNumber = Q.NeuronCount NextLast = Q.NeuronCount + 1 First = True NewLayer = True Do While M = Q.NeuronCount Set S = colNeurons.ItemNeuronNumber + M S.Number = NeuronNumber + M While N = NeuronNumber P.NeuronCount Set t = New Synapsis If NewLayer Then Q.SynapsisFirst = ObjPtrt NewLayer = False End If If Not First Then U.SynapsisNext = ObjPtrt Set U = Nothing Else P.SynapsisFirst = ObjPtrt Q.SynapsisFirst = ObjPtrt First = False End If Set R = colNeurons.ItemN t.Number = k t.Value = 1000 Rnd 1000 - ERR Universitas Sumatera Utara t.Delta = 0 t.NeuronPrior = ObjPtrR t.NeuronNext = ObjPtrS colSynapsis.Add t, CStrObjPtrt Set R = Nothing Set U = colSynapsis.ItemCStrObjPtrt Set t = Nothing k = k + 1 N = N + 1 Wend Set R = Nothing N = PreviousLast Set R = colNeurons.ItemN Set S = Nothing M = M + 1 Wend NeuronNumber = NeuronNumber + Q.NeuronCount PreviousLast = P.NeuronCount + 1 N = PreviousLast NextLast = NextLast + P.NeuronCount Set R = Nothing Set P = Nothing Set Q = Nothing M = 1 i = i + 1 Set P = colLayers.Itemi If i NumCamadas Then Set Q = colLayers.Itemi + 1 NewLayer = True End If Loop Until P.LayerNext = 0 NoSinapses = k - 1 Set R = Nothing Set S = Nothing Set P = Nothing Set t = Nothing NoBiasSinapses = NeuroniosOcultos + NeuroniosSaida Set R = colNeurons.Item6 For k = 1 To NoBiasSinapses Set U = New Synapsis Set t = New Synapsis Set S = colNeurons.ItemNeuroniosEntrada + k t.Number = k + NoSinapses t.Value = 1000 Rnd 1000 - ERR 0.5 t.Delta = 0 t.NeuronPrior = ObjPtrR t.NeuronNext = ObjPtrS If k 1 Then U.SynapsisNext = ObjPtrt colSynapsis.Add t, CStrObjPtrt Set U = Nothing Set U = colSynapsis.ItemCStrObjPtrt Set t = Nothing Set U = Nothing Set S = Nothing Next k Set R = Nothing Prepared = True End Sub Universitas Sumatera Utara LAMPIRAN-B HASIL PERCOBAAN

a. Tahun 1997 1.