BAB 3 PERANCANGAN PROGAM

dokumen-dokumen yang mirip
BAB IV IMPLEMENTASI DAN EVALUASI NEURAL NETWORK PADA DATA PASIEN DEMAM BERDARAH

UNIVERSITAS BINA NUSANTARA

BAB 4 IMPLEMENTASI. minimum 2 Giga Hertz dan memory RAM minimum 256 MB, sedangkan untuk

BAB 3 PERANCANGAN SISTEM. Bab ini menguraikan analisa penelitian terhadap metode Backpropagation yang

BACK PROPAGATION NETWORK (BPN)

BAB 3 PERANCANGAN PROGRAM APLIKASI

BACK PROPAGATION NETWORK (BPN)

BAB 4 IMPLEMENTASI DAN EVALUASI. perangkat keras dan perangkat lunak yang digunakan untuk pemakaian aplikasi yang

BAB III ANALISIS DAN PERANCANGAN

BAB 3 ANALISIS DAN PERANCANGAN SISTEM PROGRAM APLIKASI HANDS RECOGNIZER

BAB 3 PERANCANGAN PROGRAM

Laporan Implementasi Naïve Bayes dan Feed Forward Neural Network untuk Klasifikasi

BAB 3 METODOLOGI PENELITIAN

BAB 3 ANALISIS DAN PERANCANGAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

APLIKASI JARINGAN SYARAF TIRUAN UNTUK MEMPREDIKSI VOLUME PEMAKAIAN AIR BERSIH DI KOTA PONTIANAK

BAB 3 PEMBAHASAN. pelayanan kesehatan prima, Pt Binara Guna Mediktama pada tahun 1986 mendirikan

BAB 2 KONSEP DASAR PENGENAL OBJEK

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM APLIKASI

BAB 3 PERANCANGAN SISTEM. untuk pengguna interface, membutuhkan perangkat keras dan perangkat lunak.

BAB 3 METODOLOGI PENELITIAN

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

BAB 3 PERANCANGAN PROGRAM APLIKASI

BAB 2 LANDASAN TEORI

SISTEM PENGENALAN KARAKTER DENGAN JARINGAN SYARAF TIRUAN ALGORITMA PERCEPTRON

Penerapan Jaringan Saraf Tiruan Metode Backpropagation Menggunakan VB 6

BAB II DASAR TEORI Jaringan Syaraf Tiruan. Universitas Sumatera Utara

JARINGAN SYARAF TIRUAN UNTUK MEMPREDIKSI CURAH HUJAN SUMATERA UTARA DENGAN METODE BACK PROPAGATION (STUDI KASUS : BMKG MEDAN)

BAB 3 ANALISIS DAN PERANCANGAN. menentukan dan mengungkapkan kebutuhan sistem. Kebutuhan sistem terbagi menjadi

BAB II TINJAUAN PUSTAKA

Arsitektur Jaringan Salah satu metode pelatihan terawasi pada jaringan syaraf adalah metode Backpropagation, di mana ciri dari metode ini adalah memin

BAB 3 PERANCANGAN SISTEM. mendapatkan input, melakukan proses, dan menghasilkan output yang diinginkan oleh

BAB 1 PENDAHULUAN. saham harus memperhatikan dengan baik keadaan ekonomi yang sedang berlangsung.

lalu menghitung sinyal keluarannya menggunakan fungsi aktivasi,

PERANCANGAN SISTEM PENGENALAN DAN PENYORTIRAN KARTU POS BERDASARKAN KODE POS DENGAN MENGGUNAKAN ARTIFICIAL NEURAL NETWORK

Architecture Net, Simple Neural Net

BAB III ANALISIS DAN PERANCANGAN

BAB III METODE PENELITIAN. menjawab segala permasalahan yang ada dalam penelitian ini.

Program Pilihan Ganda Sederhana dengan Java

BAB IV ANALISA DAN PERANCANGAN

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

APLIKASI JARINGAN SYARAF TIRUAN UNTUK MEMPREDIKSI PENJUALAN OBAT Pada PT. METRO ARTHA PRAKARSA MENERAPKAN METODE BACKPROPAGATION

BAB III ANALISIS DAN PERANCANGAN SISTEM. forecasting produksi gula berdasarkan hasil laporan tahunan PTPN IX

ANALISIS PENAMBAHAN NILAI MOMENTUM PADA PREDIKSI PRODUKTIVITAS KELAPA SAWIT MENGGUNAKAN BACKPROPAGATION

BAB 3 PERANCANGAN PROGRAM

BAB 3 ANALISIS DAN PERANCANGAN

PENERAPAN JARINGAN SYARAF TIRUAN DALAM MEMPREDIKSI TINGKAT PENGANGGURAN DI SUMATERA BARAT

Perbaikan Metode Prakiraan Cuaca Bandara Abdulrahman Saleh dengan Algoritma Neural Network Backpropagation

BAB III PERANCANGAN SISTEM

Presentasi Tugas Akhir

BAB 3 METODOLOGI PENELITIAN

SATIN Sains dan Teknologi Informasi

BAB 3 METODOLOGI. 3.1 Metodologi Penelitian Pengumpulan Bahan Penelitian. Dalam penelitian ini bahan atau materi dikumpulkan melalui :

ANALISIS PENGGUNAAN ALGORITMA KOHONEN PADA JARINGAN SYARAF TIRUAN BACKPROPAGATION DALAM PENGENALAN POLA PENYAKIT PARU

ANALISIS ALGORITMA INISIALISASI NGUYEN-WIDROW PADA PROSES PREDIKSI CURAH HUJAN KOTA MEDAN MENGGUNAKAN METODE BACKPROPAGATION NEURAL NETWORK

MODEL PEMBELAJARAN JARINGAN SYARAF TIRUAN UNTUK OTOMATISASI PENGEMUDIAN KENDARAAN BERODA TIGA

PERANCANGAN PROGRAM. struktur/hirarki menu, State Transition Diagram (STD), modul dan pseudocode, serta

DETEKSI KEBANGKRUTAN PERUSAHAAN MENGGUNAKAN ARTIFICIAL NEURAL NETWORK

PREDIKSI CURAH HUJAN DI KOTA MEDAN MENGGUNAKAN METODE BACKPROPAGATION NEURAL NETWORK

Architecture Net, Simple Neural Net

BAB 3 PERANCANGAN SISTEM. ruangan yang menggunakan led matrix dan sensor PING))). Led matrix berfungsi

PERANCANGAN PROGRAM PENGENALAN BENTUK MOBIL DENGAN METODE BACKPROPAGATION DAN ARTIFICIAL NEURAL NETWORK SKRIPSI

Studi Modifikasi standard Backpropagasi

BAB 3 RANCANGAN PROGRAM APLIKASI

SATIN Sains dan Teknologi Informasi

Aplikasi yang dibuat adalah aplikasi untuk menghitung. prediksi jumlah dalam hal ini diambil studi kasus data balita

BAB III METODELOGI PENELITIAN. Alat yang digunakan dalam penelitian ini adalah: a. Prosesor : Intel Core i5-6198du (4 CPUs), ~2.

MODUL 2 SELECTION & LOOPING PADA FORM

SATIN Sains dan Teknologi Informasi

BAB III METODOLOGI PENELITIAN

ANALISA JARINGAN SARAF TIRUAN DENGAN METODE BACKPROPAGATION UNTUK MENGETAHUI LOYALITAS KARYAWAN

BAB III PERANCANGAN SISTEM. dimulai dengan pengambilan data secara langsung dari kendaraan yang akan

LEARNING VECTOR QUANTIZATION UNTUK PREDIKSI PRODUKSI KELAPA SAWIT PADA PT. PERKEBUNAN NUSANTARA I PULAU TIGA

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

BAB III METODE PENELITIAN. sistem yang digunakan untuk menggambarkan aliran data secara keseluruhan

BAB III ANALISIS DAN DESAIN SISTEM

BAB 1 PENDAHULUAN. 1 Universitas Kristen Maranatha. Gambar 1.1 : Ilustrasi jaringan syaraf manusia yang diadaptasi untuk ANN (Kriesel, 2011)

PERAMALAN JUMLAH KENDARAAN DI DKI JAKARTA DENGAN JARINGAN BACKPROPAGATION

Muhammad Fahrizal. Mahasiswa Teknik Informatika STMIK Budi Darma Jl. Sisingamangaraja No. 338 Simpanglimun Medan

BAB 3 METODOLOGI. Metodologi penelitian yang digunakan dalam penulisan ini adalah studi

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

Jurnal Informatika Mulawarman Vol 5 No. 1 Februari

IMPLEMENTASI JARINGAN SYARAF TIRUAN MULTI LAYER FEEDFORWARD DENGAN ALGORITMA BACKPROPAGATION SEBAGAI ESTIMASI NILAI KURS JUAL SGD-IDR

BAB III ANALISA DAN PERANCANGAN

PENGENALAN HURUF DAN ANGKA PADA CITRA BITMAP DENGAN JARINGAN SARAF TIRUAN METODE PROPAGASI BALIK

PEMBUATAN PERANGKAT LUNAK PERAMALAN MENGGUNAKAN METODE ANN DENGAN MEMANFAATKAN LIBRARY ENCOG JAVA

PENENTUAN MODEL RETURN HARGA SAHAM DENGAN MULTI LAYER FEED FORWARD NEURAL NETWORK MENGGUNAKAN ALGORITMA RESILENT BACKPROPAGATION

BAB 3 PERANCANGAN POGRAM APLIKASI

BAB 3 PERANCANGAN PROGRAM

BAB III LANDASAN TEORI. muka yang bersifat grafis Graphical User Interface (GUI). Daripada menulis

MATERI DAN METODE. Cara Pengambilan Data

BAB 4 IMPLEMENTASI DAN EVALUASI

1 BAB III 2. 3 METODE PENELITIAN

RANCANG BANGUN TOOL UNTUK JARINGAN SYARAF TIRUAN (JST) MODEL PERCEPTRON

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

3. METODE PENELITIAN

IMPLEMENTASI JARINGAN SYARAF TIRUAN METODE BACKPROPAGATION UNTUK MEMPREDIKSI HARGA SAHAM

BAB III METODOLOGI PENELITIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

Transkripsi:

28 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 pukung 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 (X 1 ), lama demam (X 2 ), kesadaran (X 3 ), nadi (X 4 ), perdarahan (X 5 ), akral (X 6 ), perfusi (X 7 ), rontgen thorak (X 8 ) 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. (X 1 ) = 0.5 (X 1 ) = 0.5 Bias = 0.1 (X 1 ) = -0.5 (X 1 ) = -0.5 Y = 1 (X 1 ) = 0.5 (X 1 ) = 0.5 (X 1 ) = -0.5 (X 1 ) = -0.5 (V 11-nm ) = 0.1 (W 11-nm ) = 0.1

29 3.1.1 Model Neural dengan 2 node hidden layer X 1 bias bias X 2 X 3 Z 1 X 4 WeightW Y 1 X 5 X 6 Z 2 X 7 WeightV X 8 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 (X 1 sampai X 8 ) dengan hidden layer (Z 1 -Z 2 ) adalah weightv sedangkan garis panah yang menghubungkan hidden layer dengan output layer (Y 1 ) adalah weightw. Contoh Perhitungan Feed Forward Z_in 1 = Bias + V 11 * X 1 + V 21 * X 2 + V 31 * X 3 + V 41 * X 4 + V 51 * X 5 + V 61 * X 6 + V 71 * X 7 + V 81 * X 8

30 Z_in 1 = 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_in 1 = 0.1 Z 1 = 1 Z_in1 1+ e Z 1 = 1 0.1 1+ e Z 1 = 0.52497918748 Z_in 2 = Bias + V 12 * X 1 + V 22 * X 2 + V 32 * X 3 + V 42 * X 4 + V 52 * X 5 + V 62 * X 6 + V 72 * X 7 + V 82 * X 8 Z_in 2 = 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_in 2 = 0.1 Z 2 = 1 Z_in2 1+ e Z 2 = 1 0.1 1+ e Z 1 = 0.52497918748 Y_in 2 = Bias + W 11 * Z 1 + W 21 * Z 2 Y_in 2 = 0.1 + 0.1 * 0.52497918748 + 0.1 * 0.52497918748 Y_in 2 = 0.204995837496 Y 1 = 1 Y_in2 1+ e Y 1 = 1 0.204995837496 1+ e Y 1 = 0.55107023954 Contoh Perhitungan Back Propagation of Error 1 = (t k y k ).f (y_in k ) 1 = (1 0.55107) 1 = 0.44893 Weight_w jk = Weight_w jk (old) + (α. 1.z 1 ) Weight_w 11 = 0.1 + (0.5 * 0.44893 * 0.524979) Weight_w 11 = 0.117832228355

31 bias = Weight_w 01 = Weight_w 01 (old) + (α. 1 ) Weight_w 01 = 0.1 + (0.5 * 0.44893) m _in j = k = 1 δ kwjk _in1 = 1 * Weight_W 11 + 1 * Weight_W 21 + 1 * Weight_W 31 + 1 * Weight_W 41 + 1 * Weight_W 51 + 1 * Weight_W 61 + 1 * Weight_W 71 + 1 * Weight_W 81 j = _in j.f (z_in j ) 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.

32 3.1.2 Model Neural dengan 3 node hidden layer X 1 bias bias X 2 Z 1 X 3 X 4 X 5 Z 2 WeightW Y 1 X 6 Z 3 X 7 X 8 WeightV 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 (X 1 sampai X 8 ) dengan hidden layer (Z 1 -Z 3 ) adalah weightv sedangkan garis panah yang menghubungkan hidden layer dengan output layer (Y 1 ) adalah weightw.

33 3.1.3 Model Neural dengan 4 node hidden layer X 1 bias bias X 2 Z 1 X 3 Z 2 X 4 X 5 Z 3 WeightW Y 1 X 6 X 7 Z 4 X 8 WeightV 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 (X 1 sampai X 8 ) dengan hidden layer (Z 1 -Z 4 ) adalah weightv sedangkan garis panah yang menghubungkan hidden layer dengan output layer (Y 1 ) adalah weightw.

34 3.1.4 Model Neural dengan 5 node hidden layer bias X 1 bias Z 1 X 2 X 3 Z 2 X 4 Z 3 X 5 Z 4 WeightW Y 1 X 6 Z 5 X 7 X 8 WeightV 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 (X 1 sampai X 8 ) dengan hidden layer (Z 1 -Z 6 ) adalah weightv sedangkan garis panah yang menghubungkan hidden layer dengan output layer (Y 1 ) adalah weightw.

35 3.1.5 Model Neural dengan 6 node hidden layer X 1 bias bias Z 1 X 2 Z 2 X 3 X 4 Z 3 X 5 Z 4 WeightW Y 1 X 6 Z 5 X 7 X 8 WeightV Z 6 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 (X 1 sampai X 8 ) dengan hidden layer (Z 1 -Z 6 ) adalah weightv sedangkan garis panah yang menghubungkan hidden layer dengan output layer (Y 1 ) adalah weightw.

36 3.1.6 Model Neural dengan 7 node hidden layer X 1 bias bias Z 1 X 2 Z 2 X 3 Z 3 X 4 Z 4 Y 1 X 5 WeightW X 6 Z 5 X 7 Z 6 X 8 WeightV Z 7 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 (X 1 sampai X 8 ) dengan hidden layer (Z 1 -Z 7 ) adalah weightv sedangkan garis panah yang menghubungkan hidden layer dengan output layer (Y 1 ) adalah weightw.

37 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 = nilai_max + nilai_min 2

38 Nilai_tengah_rentang = X = nilai_data - nilai_tengah nilai tengah_rentang dimana, nilai_tengah : nilai tengah dari data nilai_tengah_rentang : nilai tengah dari rentang data nilai_max nilai_min 2 nilai_max nilai_min x : nilai maximum dari data : nilai minimum dari data : 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: 2 + 6 Nilai_tengah = = 4 2 6-2 Nilai_tengah_rentang = = 2 2 4 4 X = = 0 2 3.4 Perancangan Program Aplikasi 3.4.1 Penerapan Neural Network Penerapan Neural Network untuk menyelesaikan permasalahan di atas dapat digambarkan sebagai berikut :

39 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 Lakukan tahap FeedForward

40 3.4.2 State Trantition Diagram Masukkan Input training Start Training Interpolasikan FeedForward Backpropagation Update Weight < error no yes Masukkan input testing FeedForward Selesai Gambar 3.7 STD Aplikasi Peramalan Kesembuhan Pasien Demam Berdarah dengan Algoritma Backpropagation

41 3.4.3 Perancangan Layar File Aplikasi Peramalan Kesembuhan Pasien Demam Berdarah Diagnosis Alfa 0.5 Error Lama demam Target Error 0.14 Output Kesadaran Nadi Jumlah hidden layer Perdarahan 7 Akral Perfusi Add Training Pair Training Simulate Rontgen Thorak 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

42 fleksibel untuk digunakan oleh user-user pada rumah sakit lain yang mempunyai datadata pasien yang berbeda, sehingga 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 filenew. 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

43 awal terhadap tampilan awal form utama pada saat program pertama kali dieksekusi. 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 Jika flag = 0, maka Lakukan selama GenEror lebih kecil dari Err Inisialisasi GenEror Lakukan berulang dari i =0 sampai JmlTp-1 Jalankan modul Feed_Forward Jalankan modul Back_Prop Lakukan berulang sebanyak jumlah output layer 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

44 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 Lakukan berulang sebanyak jumlah node input layer Node input layer = input Lakukan berulang sebanyak jumlah node hidden layer 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)) 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)) Pada modul ini nilai-nilai yang ada pada input layer dikalikan dengan weightweightnya. 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.

45 3.5.4 Modul Back_Prop Lakukan berulang sebanyak jumlah node output layer 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).

46 3.5.5 Modul Inisialisasi_Weight 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; 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 Lakukan berulang sebanyak jumlah node hidden layer mulai Lakukan berulang sebanyak jumlah node input layer delta = alpha * node input layer * error hidden layer WeightV = WeightV + delta lakukan berulang sebanyak jumlah node output layer mulai lakukan berulang sebanyak jumlah node hidden layer mulai delta = alpha * outpout hidden layer * error node output layer

47 WeightW = WeightW + delta; 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) Pada modul ini dilakukan pengiriman nilai antar thread. Karena pada aplikasi ini digunakan multi-thread maka nilai-nilai pada variabel-variabel di kedua thread

48 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) 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

49 Pada modul ini diberikan pernyataan untuk 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 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.

50 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 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 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 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)

51 dengan(tbpthread.create(teror,tout,tpa,jmltp,bias,alfa,targeteror,1,weightv,wei ghtw,combobox1.itemindex+2)) lakukan OnTerminate = ThreadDone atau lakukan application.messagebox('field input diisi terlebih dahulu','error',0) 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 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 := ' Modul ini men-set ulang aplikasi agar dapat melakukan training ulang dengan menginisialisasikan variabel JmlTp dengan nilai 0.

52 3.5.14 Modul Exit1Click application.terminate Modul ini menjalankan fungsi untuk menterminasi aplikasi.