Analisis Sistem ANALISIS DAN PERANCANGAN SISTEM

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Sistem

Analisis sistem adalah suatu tahapan sistem yang dilakukan untuk membantu memahami suatu masalah dan apa yang akan menjadi kebutuhan sistem. Tujuannya adalah untuk membantu mengetahui masalah yang ada dan merancang model suatu sistem yang nantinya akan dibangun sehingga menjadi tepat guna. 3.1.1. Analisis masalah Masalah yang ada pada perancangan sistem ini adalah membandingkan kecepatan dan ketepatan antara algoritma Bidirectional Associative Memory dan Learning Vector Quantization dalam menentukan obat penyakit saluran cerna lambung-usus yang bertujuan untuk mengetahui algoritma mana yang lebih tepat digunakan dalam menentukan obat yang tepat berdasarkan diagnosa penyakit saluran cerna lambung- usus. Dengan alasan sebagai berikut : 1. Penyakit saluran cerna lambung-usus merupakan penyakit dalam yang harus segera ditangani pengobatannya agar tidak menjadi lebih kronis. 2. Jenis obat yang digunakan untuk meringankan penyakit saluran cerna lambung usus adalah Antasida, Ranitidin, Omeprazole, Domperidone, Sukralfat, Bismuth, Amoxixilin, Claritromixin, Kemoterapi, Radiasi, dan Operasi. Oleh karena itu, dibutuhkan waktu seefisien mungkin untuk menentukan jenis obat dari penyakit saluran cerna lambung-usus dan dibutuhkan pencatat waktu untuk mencatat dan mengetahui algoritma mana yang lebih cepat dalam menentukan obat penyakit saluran cerna lambung-usus. 3. Penyakit saluran cerna lambung-usus seperti radang kerongkongan, radang lambung, tukak lambung, dan kanker lambung memiliki gejala yang hampir mirip yaitu Universitas Sumatera Utara a. Gejala penyakit Radang Kerongkongan Reflux Oesophagitis 1. Sulit menelan 2. Perasaan asam atau pahit dimulut 3. Batuk 4. Mual 5. Suara serak 6. Nyeri di ulu hati 7. Muntah b. Gejala penyakit Radang Lambung Gastritis 1. Nyeri di ulu hati 2. Muntah 3. Adanya gangguan pada pencernaan 4. Nyeri lambung 5. Adakalanya terjadi pendarahan 6. Kembung dan mual 7. Rasa penuh di ulu hati cepat kenyang c. Gejala penyakit Tukak Lambung-Usus Ulcus Pepticum 1. Nyeri di ulu hati 2. Muntah 3. Sendawa 4. Kembung dan mual 5. Anemia 6. Rasa penuh di ulu hati cepat kenyang 7. Pendarahan lambung d. Gejala penyakit Kanker Lambung 1. Sulit menelan 2. Nyeri di ulu hati 3. Tidak mau makan 4. Muntah darah 5. Keluar BAB dengan warna hitam pekat 6. Kehilangan berat badan mendadak 7. Sakit kronis pada bagian perut Universitas Sumatera Utara Oleh karena itu, dibutuhkan ketepatan hasil agar jenis obat yang dibutuhkan sesuai dengan diagnosa penyakit yang dialami. Dan dalam menentukan ketepatan hasil dari diagnosa penyakit, maka diperlukan aturan yang harus diperhatikan yaitu ; 1. Untuk menentukan diagnosa penyakit maka lihat terebih dahulu seberapa besar gejala yang dialami pasien terhadap suatu penyakit. Sebagai contoh pasien lebih banyak mengalami gejala penyakit radang kerongkongan dibandingkan dengan penyakit lain maka pasien termasuk ke dalam penyakit radang kerongkongan. Begitu juga untuk gejala penyakit yang lainnya. 2. Jenis obat yang akan digunakan berdasarkan diagnosa penyakit bukan berdasarkan gejala penyakit. Jadi jenis obat sudah dikelompokkan ke dalam tiap masing-masing penyakit. Penyebab dan dampak dari permasalahan tersebut diperlihatkan pada diagram Ishikawa pada Gambar 3.1. Manusia Metode Material Teknologi Menentukan metode tercepat dan paling tepat dalam menentukan obat dari penyakit saluran cerna lambung-usus Bahasa Pemrograman Matlab BAM dan LVQ Diperlukan diagnosa penyakit untuk menentukan jenis obat yang tepat Metode BAM dan LVQ untuk menetukan jenis obat penyakit saluran cerna lambung-usus Gambar 3.1. Diagram Ishikawa Analisis Permasalahan 3.1.2. Analisis kebutuhan sistem Analisis kebutuhan sistem meliputi analisis kebutuhan fungsional sistem dan analisis kebutuhan non-fungsional sistem. 3.1.2.1. Kebutuhan fungsional sistem Kebutuhan fungsional yang harus dimiliki oleh sistem penentuan obat penyakit saluran cerna lambung-usus adalah : Universitas Sumatera Utara 1. Sistem dapat mendiagnosa penyakit berdasarkan masukan user pengguna. 2. Sistem dapat menentukan jenis obat berdasarkan hasil diagnosa penyakit. 3. Sistem dapat menampilkan nama penyakit dan jenis obat. 4. Sistem dapat menampilkan waktu pelatihan. 5. Sistem dapat menampilkan waktu uji. 3.1.2.2. Kebutuhan non-fungsional sistem Kebutuhan non-fungsional yang dimiliki oleh sistem adalah : 1. Interface sistem mudah dipahami oleh user pengguna. 2. Sistem dapat dioperasikan dengan mudah oleh user. 3. Data yang terdapat pada sistem merupakan data yang relevan, sehingga dapat menghasilkan pengenalan yang tepat. 4. Cara kerja sistem dilakukan dengan menguji coba sistem tersebut dengan data yang telah diketahui hasilnya terlebih dahulu. 3.1.3. Analisis proses sistem Sistem ini menggunakan dua algoritma yaitu Bidirectional Associative Memory dan Learning Vector Quantization. Algoritma tersebut bertujuan untuk menentukan obat penyakit saluran cerna lambung-usus. Berikut ini adalah contoh bagaimana penerapan algoritma Bidirectional Associative Memory dan Learning Vector Quantization. 3.1.3.1. Analisis proses Bidirectional Associative Memory Pada proses BAM, input masukan dari data pelatihan ada 20 data berupa gejala umum penyakit, dan target yang diinginkan ada 4 klasifikasi penyakit yaitu radang kerongkongan, radang lambung, tukak lambung, dan kanker lambung beserta jenis obat dari penyakit tersebut seperti antasida, ranitidine, omeprazole, domperidone, sukralfat, bismuth, amoxixilin, claritromixin. lansoprazole. Kenapa 20 data gejala penyakit ? Karena semakin banyak data yang dilatih maka akan semakin banyak pula mengenali pola yang lain. Inputan gejala yang dipilih akan di ubah ke dalam bentuk vektor. Dengan kondisi jika checkbox diberi tanda maka akan bernilai 1 dan yang tidak diberi tanda akan bernilai -1 karena algoritma BAM menggunakan fungsi aktivasi bipolar. Universitas Sumatera Utara Untuk proses selanjutnya , di dalam sistem ini akan melatih sebanyak 20 neuron sebagai masukan dan 4 neuron sebagai hasil keluaran. Kemudian matriks bobot dihitung berdasarkan hasil transpose setiap masukan dikali dengan setiap hasil keluaran. Setelah itu dilakukan pemanggilan pola input untuk mengecek apakah hasilnya sesuai dengan target output yang telah ditentukan. Sedangkan untuk tahap pengujian, dilakukan perhitungan untuk mencari nilai masukan yang akan diuji dengna cara mengalikan output yang telah ditentukan dengan hasil transpose bobot yang sudah didapat sebelumnya. Setelah dilakukan perhitungan maka dapat dilihat apakah hasilnya akan sesuai dengan target output atau tidak, jika ya maka akan dikenali penyakit dan jenis obatnya dan jika tidak maka sebaliknya. Untuk lebih jelas lagi berikut adalah contoh sederhana dari algoritma BAM dalam melakukan pelatihan dan pengujian terhadap suatu pola. Misalnya dalam menentukan obat penyakit saluran cerna lambung-usus dibutuhkan gejala-gejala yang dialami penderita , dimana gejala tersebut dapat diartikan sebagai pola input, sedangkan penyakit beserta obatnya merupakan pola output. 1. Atur pola input dan pola output Misalkan ada 2 pola input berupa gejala penyakit dan 2 pola output sebagai berikut : Pola 1 : Gejala 1 x 1 : 1 1 1 1 –1 1 1 1 1 y 1  -1 1 Pola 2 : Gejala 2 x 2 : 1 –1 1 –1 1 –1 1 -1 1 y 2  1 1 2. Hitung matriks bobot dari pola X ke pola Y Matriks bobot untuk pola 1: w 1 = x 1 t y 1 Universitas Sumatera Utara                                                                        1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 w Matriks bobot untuk pola 2 : w 1 = x 2 t y 2 w total = w 1 + w 2                                                                                                             2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 total w Matriks bobot tersebut merupakan penghubung antara neuron-neuron di lapisan input dengan neuron-neuron di lapisan output. Sedangkan matriks bobot yang menghubungkan antara neuron-neuron di lapisan output ke neuron-neuron yang ada di lapisan input adalah W T .                                                                         1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 w Universitas Sumatera Utara 3. Recall pola input ij i i W x in y _  Tentukan nilai y i dengan membandingkan nilai y_in i dengan threshold Jika y_in i =  maka y i = 1 Jika y_in i  maka y i = -1            2 2 2 2 2 2 2 2 2 T total w Misalkan kita ingin menguji bobot tersebut dengan pola input ke-1 yaitu gejala 1, maka output yang dihasilkan adalah :     8 10 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 _ 1 1                                      T total w x in y Karena y_in 1 1 = –10 0, maka y 1 1 = -1 dan y_in 1 2 = 8 0, maka y 1 2 = 1, maka dari hasil pengujian didapat nilai y 1 = [-1 1], yaitu sesuai dengan target yang diharapkan. Sedangkan untuk pola input ke-2 yaitu gejala 2, maka output yang dihasilkan adalah:     8 10 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 _ 2 2                                        T total w x in y Universitas Sumatera Utara Karena y_in 2 1 = 10 0, maka y 2 1 = 1 dan y_in 2 2 = 8 0, maka y 2 2 = 1, maka dari hasil pengujian didapat nilai y 2 = [1 1], yaitu sesuai dengan target yang diharapkan. 4. Balik arah, cari nilai x_in i Sekarang kita balik, dimana y digunakan sebagai input untuk mendapatkan x output . Misalkan kita cobakan vektor input ke-1 yaitu y 1 = [-1 1], maka output yang dihasilkan:              2 2 2 2 2 2 2 2 2 ] 1 1 [ _ 1 1 T total w y in x ] 1 1 1 1 1 1 1 1 1 [ ] 2 2 2 2 2 2 2 2 2 [     Setelah dilakukan perhitungan ternyata hasilnya sesuai dengan target, yaitu gejala 1. Dan untuk vektor input ke-2 yaitu y 2 = [1 1], maka output yang dihasilkan:             2 2 2 2 2 2 2 2 2 ] 1 1 [ _ 2 2 T total w y in x ] 1 1 1 1 1 1 1 1 1 [ ] 2 2 2 2 2 2 2 2 2 [           Setelah dilakukan perhitungan ternyata hasilnya sesuai dengan target, yaitu gejala 2. 3.1.3.2. Analisis Proses Learning Vector Quantization Sama halnya dengan algoritma BAM, di dalam proses algoritma LVQ juga akan dimasukkan 20 data dan juga 4 target kelas yang akan digunakan nantinya. Berikut adalah contoh proses pelatihan algoritma LVQ. Misalnya dalam menentukan obat penyakit saluran cerna lambung-usus dibutuhkan gejala-gejala yang dialami penderita , dimana gejala tersebut dapat diartikan sebagai input vektor, sedangkan penyakit beserta obatnya merupakan kelas yang akan ditentukan. Contoh penerapan algoritma LVQ : 1. Misalkan inisialisasi bobot bobot awal : w 1 : 1 1 1 1 0  kelas 1 w 2 : 1 0 1 0 1  kelas 2 Universitas Sumatera Utara α : 0,05 MaxEpoch : 10 Penurunan α : 0,1α lama 2. Misalnya diketahui 3 input vektor sebagai berikut : x 1 : 1 1 1 01 x 2 : 1 0 0 0 0 x 3 : 1 0 1 1 1 Penetapan kondisi awal : Epoch : 0 Error : 1 3. Untuk epoch ke-1 - Data ke-1 adalah x 1 : 1 1 1 0 1 Bobot ke-1 = = 1,4 Bobot ke-2 = = 1 Dari data ke-1 jarak terkecil terdapat pada bobot ke-2, maka target data ke-1 = kelas ke-2 dan bobot ke-2 baru adalah : w 11baru = w 11lama + α[x 11 – w 11 lama ] = 1+0,51-1 = 1 w 12baru = w 12lama + α[x 12 – w 12 lama ] = 0+0,51-0 = 0,5 w 13baru = w 13lama + α[x 13 – w 13 lama ] = 1+0,51-1 = 1 w 14baru = w 14lama + α[x 14 – w 14 lama ] = 0+0,50-0 = 0 w 15baru = w 15lama + α[x 15 – w 15 lama ] = 1+0,51-1 = 1 Sehingga,w 2 = 1 0,5 1 0 1 dan w 1 = 1 1 1 1 0 - Data ke-2 adalah x 2 : 1 0 0 0 0 Bobot ke-1 = = 1,7 Bobot ke-2 = = 1,5 Dari data ke-2 jarak terkecil terdapat pada bobot ke-2, maka target data ke-2 = kelas ke-2 dan bobot ke-2 baru adalah : w 11baru = w 11lama + α[x 11 – w 11 lama ] = 1+0,51-1 = 1 w 12baru = w 12lama + α[x 12 – w 12 lama ] = 0,5+0,50-0,5 = 0,25 w 13baru = w 13lama + α[x 13 – w 13 lama ] = 1+0,50-1 = 0,5 w 14baru = w 14lama + α[x 14 – w 14 lama ] = 0+0,50-0 = 0 Universitas Sumatera Utara w 15baru = w 15lama + α[x 15 – w 15 lama ] = 1+0,50-1 = 0,5 Sehingga, w 2 = 1 0,25 0,5 0 0,5 dan w 1 = 1 1 1 1 0 - Data ke-3 adalah x 3 :1 0 1 1 1 Bobot ke-1 = = 1,4 Bobot ke-2 = =1,25 Dari data ke-3 jarak terkecil terdapat pada bobot ke-2, maka target data ke-2 = kelas ke-2 dan bobot ke-2 baru adalah : w 11baru = w 11lama + α[x 11 – w 11 lama ] = 1+0,51-1 = 1 w 12baru = w 12lama + α[x 12 – w 12 lama ] = 0,25+0,50-0,25 = 0,125 w 13baru = w 13lama + α[x 13 – w 13 lama ] = 1+0,51-0,5 = 1,25 w 14baru = w 14lama + α[x 14 – w 14 lama ] = 1+01-0 = 1 w 15baru = w 15lama + α[x 15 – w 15 lama ] = 1+0,51-0,5 = 1,25 Sehingga w 2 = 1 0,1251,25 11,25 dan w 1 = 1 1 1 1 0 Sebelum masuk keepoch ke-2 maka α diupdate yaitu : α = 0,1α lama = 0,10,05 = 0,005 … dst sampai dengan epoch ke-10 Misalnya setelah epoch ke-10 di dapat bobot : w 2 = 1 0,125 1,25 1 1,25 dan w 1 = 1 1 1 1 0 Maka jika ingin menguji vektor inputan baru misalnya 1 1 1 1 1, dilakukanlah perhitungan untuk mencari jarak terdekatnya : Bobot ke-1 = = 1 Bobot ke-2 = = 0,9437 Dari inputan tersebut jarak terkecil terdapat pada bobot ke-2, maka target inputan tersebut adalah kelas ke-2. Universitas Sumatera Utara

3.2. Pemodelan Sistem