Mendeteksi Penyakit Gigi Menggunakan Jaringan Saraf Tiruan Dengan Menggunakan Metode Backpropagation Dan Metode Hopfield
MENDETEKSI PENYAKIT GIGI MENGGUNAKAN JARINGAN
SARAF TIRUAN DENGAN
METODE BACKPROPAGATION
DAN
METODE HOPFIELD
DRAFT SKRIPSI
RAJA RIZKY RAMADHAN HSB
091401082
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
(2)
MENDETEKSI PENYAKIT GIGI MENGGUNAKAN JARINGAN
SARAF TIRUAN DENGAN
METODE BACKPROPAGATION
DAN
METODE HOPFIELD
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
RAJA RIZKY RAMADHAN HSB
091401082
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
(3)
PERSETUJUAN
Judul : MENDETEKSI PENYAKIT GIGI MENGGUNAKAN JARINGAN SARAF TIRUAN DENGAN
MENGGUNAKAN METODE BACKPROPAGATION DAN METODE HOPFIELD
Kategori : SKRIPSI
Nama : RAJA RIZKY RAMADHAN HSB
Nomor Induk Mahasiswa : 091401082
Program Studi : S1 ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, April 2014
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Amer Sharif S.Si, M.Kom Dr. Poltak Sihombing, M.Kom
NIP. - NIP. 19620317 199103 1 001
Diketahui/disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 19620317 199103 1 001
(4)
PERNYATAAN
MENDETEKSI PENYAKIT GIGI MENGGUNAKAN JARINGAN
SARAF TIRUAN DENGAN
METODE BACKPROPAGATION
DAN
METODE HOPFIELD
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, April 2014
Raja Rizky Ramadhan Hsb 091401082
(5)
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Allah SWT, yang telah memberikan rahmat dan hidayah-Nya, sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada semua pihak yang telah membantu penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada:
1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, Msc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom. selaku Ketua Program Studi S1 Ilmu Komputer dan Dosen Pembimbing I yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis.
4. Ibu Maya Silvi Lydia, B.Sc. M.Sc. selaku Sekretaris Program Studi S1 Ilmu Komputer.
5. Bapak Amer Sharif, S.Si, M.Kom selaku Dosen Pembimbing II yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis.
6. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku Dosen Pembanding I yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis.
7. Bapak Drs. Dahlan Sitompul, M.Eng selaku Dosen Pembanding II yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis.
8. Semua dosen serta pegawai di Program Studi S1 Ilmu Komputer Fasilkom-TI USU.
9. Ayahanda Drs. H. Fahri Hasibuan dan Ibunda Hj. Siti Anisma Siregar serta Abangda Ahmad Ibrahim Rony S. Hasibuan ,Abangda Rudy Ardiyansyah Hasibuan, Abangda Yan Veri Alvin Hasibuan, Kakanda Ernita Sari Hasibuan, kakanda Nizmi, kakanda Adhe, kakanda Emma yang telah senantiasa mendukung dan berdoa untuk kesuksesan penulis.
10.Widya Alriva SH, yang senantiasa mendukung, perhatian, kasih sayang, pengertian, memberi semangat dan berdoa untuk kesuksesan penulis
(6)
11.Teman-teman terbaik yang selalu memberikan semangat dan dukungan yaitu Ardi Hasiholan ,Wella Reynanda, Muhammad Huzaifa,Mahadi, Azhar, Fauzi, Tedja, Rio, Gamal, Iqsan, mail ,Santo dan Fiktaruddin.
12.Teman-teman kom A dan Kom B stambuk 2009 sekaligus keluarga besar Program Studi S1 Ilmu Komputer Fasilkom-TI USU.
13.Semua pihak yang terlibat langsung maupun tidak langsung yang tidak dapat penulis ucapkan satu demi satu yang telah membantu penyelesaian skripsi ini.
Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, penulis mengharapkan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini.
Medan, April 2014 Penulis,
(7)
ABSTRAK
Gigi merupakan suatu organ terpenting makhluk hidup terutama manusia. Fungsi utama gigi adalah untuk merobek makanan dan mengunyah makanan. Kesehatan gigi merupakan suatu hal yang penting bagi kesehatan tubuh manusia karena gigi membantu proses pengunyahan makanan yang apabila gigi tidak sehat akan membuat nafsu makan tidak baik. Permasalahan yang dihadapin dalam perancangan sistem ini yaitu masalah pengenalan pola gigi yang terkena penyakit. Adapun metode jaringan syaraf yang digunakan yaitu backpropagation dan hopfield untuk dapat ditarik suatu kesimpulan metode mana yang memiliki ketepatan yang lebih baik dalam melakukan identifikasi terhadap objek yang dibahas. Pada metode backpropagation pola dilatih melalui tiga fase yang pertama yaitu fase propagasi maju, fase propagasi mundur, dan fase perubahan bobot hingga kondisi penghentian dipenuhi. Sedangkan pada metode hopfield pelatihan dilakukan dengan melakukan dot product antara vektor pola masukan dengan vektor bobot. Jaringan hopfield dikatakan sampai pada nilai maksimum jika sebuah pola stabil dipanggil ulang. Berdasarkan hasil ujicoba terhadap pola gigi diketahui bahwa metode hopfield dapat mengenali pola lebih cepat daripada metode backpropagation dengan rata-rata waktu pengenalan 2,46 dan 5,67 detik. Baik metode backpropagation maupun hopfield menghasilkan 100% pengenalan ketika data yang diuji merupakan data pelatihan. Sedangkan untuk pengujian menggunakan data yang tidak terlatih untuk Metode backpropagation menghasilkan ketepatan pendeteksian sebesar 93,3% dan metode Hopfield sebesar 82,3% dengan menggunakan data berbeda dengan pelatihan.
Katakunci: Identifikasi Pola, Pengolahan Citra, Jaringan Syaraf Tiruan,
(8)
DETECTING DENTAL DISEASES USING ARTIFICIAL NEURAL NETWORK
WITH BACKPROPAGATION AND HOPFIELD METHODS
ABSTRACT
Teeth are one of the important things for living things, especially humans. The main functions of teeth are to tear and chew food. That function causes the health of teeth become something important for humans' health since the condition of teeth will surely influence humans' appetite. The unhealthy teeth can decrease humans' appetite, and so for the other way. Therefore, humans need to know the conditions or patterns of their teeth. The problem that is faced in this system design is the patterns recognitions of the diseased teeth. The neural network systems that are used are backpropagation and hopfield to make a conclution, which methode has the better accuracy at identifying the discussed object. In backpropagation methode, the patterns are trained through three phases which are forward propagation phase, backward propagation phase, and changes quality phase until ceasing condition being fulfilled. In hopfield methode, the training is done by performing dot product between input vector pattern and quality vector. Hopfield network is indicated reaching the maximum value if a stable pattern is being resummoned. Based on a tryout of the patterns of teeth was known that hopfield methode can recognize the pattern faster than backpropagation one with the average of recognition time 2.46 and 5.67 secs. Both backpropagation and hopfield methode make 100% recognition when the examined sample is the training sample. As for using the test data are not trained to produce the backpropagation method detection accuracy of 93.3% and 82.3% of the Hopfield method using data different from the training
Keyword: Pattern Identification, Artificial Neural Network, Backpropagation, Hopfield
(9)
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Gambar xi
Daftar Tabel x
Bab 1 Pendahuluan
1.1Latar Belakang 1
1.2Perumusan Masalah 2
1.3Batasan Masalah 2
1.4Tujuan Penelitian 2
1.5Manfaat Penelitian 2
1.6Sistemmatika Penulisan 3
Bab 2 Landasan Teori
2.1 Pengelolahan Citra 4
2.1.1 Citra Digital Gray Scale 4
2.1.2 Proses Threshold 4
2.2 Jaringan Saraf Tiruan 5
2.2,1 Arsitektur Jaringan Saraf Tiruan 6 2.2.1.1 Jaringan Lapisan Tunggal (Single layer Network) 7 2.2.1.2 Jaringan Banyak Lapisan (multilayer net) 7
2.2.1.3 Jaringan Lapisan Kompetitif competitive layer net 8 2.3. Jaringan Saraf Tiruan Backpropagation 9 2.3.1 Arsitektur Jaringan Backpropagation 9
2.3.2 Fungsi Aktivasi 12
2.3.3 Pelatihan Standart Backpropagation 13
2.3.4 Algoritma Pelatihan 14
2.4 Jaringan Saraf Tiruan Hopfield 17 2.4.1 Jaringan Saraf Tiruan Hopfield Diskrit 18 2.4.1.1 Algoritma Jaringan Hopfield Diskrit 19 2.4.2 Arsitektur Metode Hopfield 20 2.5. Gigi 21
(10)
Bab 3 Analisis Dan Perancangan Sistem
3.1 Analisis Sistem 25
3.1.1 Analisis Masalah 25
3.1.2 Analisis Kebutuhan Sistem 26
3.1.2.1 Kebutuhan Fungsional Sistem 26
3.1.2.2 Kebutuhan Non-Fungsional Sistem 27
3.1.3 Analisis Proses 27
3.1.3.1 Perancangan Arsitektur jaringan 31
3.2 Pemodelan 34
3.2.1 Use Case Diagram 34
3.2.2 Sequence Diagram 39
3.2.3 Activity Diagram 41
3.3 Pseudocode Program 45
3.3.1 Pseudocode Proses Pelatihan JST 45
3.3.2 Pseudocode Proses Pengujian JST 46
3.4 Perancangan Sistem 48
3.4.1 Perancangan Flowchart Sistem 48 3.4.2 Perancangan Antarmuka (Interface) 49
3.4.2.1 Form Utama 49 3.4.2.2 Form Pelatihan 50
3.4.2.3 Form Pengujian 51
3.4.2.4 Form Bantuan 53 Bab 4 Implementasi dan Pengujian 4.1 Implementasi 55 4.1.1 Form Utama 55
4.1.2 Form Pelatihan 56 4.1.3 Form Pengujian 59 4.1.4 Form Bantuan Utama 60
4.1.5 Form Bantuan Pelatihan 61 4.1.6 Form Bantuan Pengujian 61 4.2. Pengujian 62
4.2.1 Kecepatan Pelatihan Jaringan Saraf Tiruan 62
4.2.2 Kecepatan Dan Ketepatan Pengujian Jaringan Saraf Tiruan 65
4.2.3 Kesimpulan Kecepatan Pengujian Jaringan Syaraf Tiruan 73
Bab 5 Kesimpulan dan Saran
5.1 Kesimpulan 74
5.2 Saran 75
Daftar Pustaka 76
Lampiran Listing Program A-1
Lampiran Curriculum Vitae B-2
(11)
DAFTAR GAMBAR Nomor
Gambar Nama Gambar Halaman
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 Proses Threshold
Jaringan Saraf Tiruan Sederhana Model Neuron
Jaringan Saraf dengan Lapisan Tunggal Jaringa Saraf dengan Banyak Lapisan Jaringan saraf dengan kompetitif Jaringan Backpropagation
Arsitektur Jaringan Backpropagation Keadaan/ kondisi jaringan Hopfield Biner Arsitektur Metode Hopfield
Gigi
Diagram Ishikawa
Arsitektur Jaringan Backpropagation sistem Arsitektur Jaringan Hopfield sistem
Use Case Diagram Sistem Identifikasi Penyakit Gigi Sequence Diagram Pelatihan JST Backpropagation Sequence Diagram Pelatihan JST Hopfield
Sequence Diagram Pengujian JST Backpropagation Sequence Diagram Pengujian JST Hopfield
Activity Diagram Pelatihan Backpropagation Activity Diagram Pelatihan Hopfield
Activity Diagram Pengujian Backpropagation Activity Diagram Pengujian Hopfield
Flowchart Sistem
Tampilan Rancangan Form Utama Tampilan Rancangan Form Pelatihan Tampilan Rancangan Form Pengujian Tampilan Rancangan Form Bantuan Form Utama
Form Pelatihan
Form Pelatihan Setelah Membuka File Citra
Frorm Gambar Gigi Setelah Melakukan Proses Threshold Form Setelah Proses Threshold pada Citra Gigi
Form Pengujian
From Hasil Pengujian dengan Backpropagation Form Hasil Pengujian dengan Hopfield
Form Menu Bantuan Form Bantuan Pelatihan Form Bantuan pengujian
Catatan Waktu Pelatihan JST Backpropagation Catatan Waktu Pelatihan JST Hopfield
Pengujian JST Backpropagation Terhadap Objek Pengujian JST Hopfield Terhadap Objek
Grafik Kecepatan metode Backpropagation dan Metode Hopfield 5 5 6 7 8 8 9 11 18 20 21 26 32 33 34 39 40 40 41 42 43 44 44 48 49 50 52 53 56 57 57 58 58 59 60 60 61 61 62 64 64 65 66 73
(12)
DAFTAR TABEL
Nomor
Tabel Nama Tabel Halaman
3.1 3.2 3.3 3.4 3.5 3.6 3.7
3.8
4.1 4.2 4.3 4.4
4.1
Nilai Bobot Lapisan masukan ke Lapisan Tersembunyi (vji) Bobot Lapisan Masukan ke Lapisan Tersembunyi (wkj) Nilai Suku Perubahan Bobot
Perubahan Bobot Unit Tersembunyi
Dokumentasi Naratif Use Case latih Backpropagation Dokumentasi Naratif Use Case Latih Hopfield
Dokumentasi Naratif Use Case Identifikasi Penyakit Gigi (Pengujian) Backpropagation
Dokumentasi Naratif Use Case Identifikasi Penyakit Gigi (Pengujian) Hopfield
Vektor Input Pelatihan
Hasil Pengujian Metode Backpropagation Hasil Pengujian Metode Hopfield
Hasil Pengujian Metode Backpropagation Menggunakan Data Masukan Tidak Terlatih
Hasil Pengujian Metode Hopfield menggunakan data masukan tidak terlatih
28 28 29 30 35 36
37
38 62 66 68
70
(13)
ABSTRAK
Gigi merupakan suatu organ terpenting makhluk hidup terutama manusia. Fungsi utama gigi adalah untuk merobek makanan dan mengunyah makanan. Kesehatan gigi merupakan suatu hal yang penting bagi kesehatan tubuh manusia karena gigi membantu proses pengunyahan makanan yang apabila gigi tidak sehat akan membuat nafsu makan tidak baik. Permasalahan yang dihadapin dalam perancangan sistem ini yaitu masalah pengenalan pola gigi yang terkena penyakit. Adapun metode jaringan syaraf yang digunakan yaitu backpropagation dan hopfield untuk dapat ditarik suatu kesimpulan metode mana yang memiliki ketepatan yang lebih baik dalam melakukan identifikasi terhadap objek yang dibahas. Pada metode backpropagation pola dilatih melalui tiga fase yang pertama yaitu fase propagasi maju, fase propagasi mundur, dan fase perubahan bobot hingga kondisi penghentian dipenuhi. Sedangkan pada metode hopfield pelatihan dilakukan dengan melakukan dot product antara vektor pola masukan dengan vektor bobot. Jaringan hopfield dikatakan sampai pada nilai maksimum jika sebuah pola stabil dipanggil ulang. Berdasarkan hasil ujicoba terhadap pola gigi diketahui bahwa metode hopfield dapat mengenali pola lebih cepat daripada metode backpropagation dengan rata-rata waktu pengenalan 2,46 dan 5,67 detik. Baik metode backpropagation maupun hopfield menghasilkan 100% pengenalan ketika data yang diuji merupakan data pelatihan. Sedangkan untuk pengujian menggunakan data yang tidak terlatih untuk Metode backpropagation menghasilkan ketepatan pendeteksian sebesar 93,3% dan metode Hopfield sebesar 82,3% dengan menggunakan data berbeda dengan pelatihan.
Katakunci: Identifikasi Pola, Pengolahan Citra, Jaringan Syaraf Tiruan,
(14)
DETECTING DENTAL DISEASES USING ARTIFICIAL NEURAL NETWORK
WITH BACKPROPAGATION AND HOPFIELD METHODS
ABSTRACT
Teeth are one of the important things for living things, especially humans. The main functions of teeth are to tear and chew food. That function causes the health of teeth become something important for humans' health since the condition of teeth will surely influence humans' appetite. The unhealthy teeth can decrease humans' appetite, and so for the other way. Therefore, humans need to know the conditions or patterns of their teeth. The problem that is faced in this system design is the patterns recognitions of the diseased teeth. The neural network systems that are used are backpropagation and hopfield to make a conclution, which methode has the better accuracy at identifying the discussed object. In backpropagation methode, the patterns are trained through three phases which are forward propagation phase, backward propagation phase, and changes quality phase until ceasing condition being fulfilled. In hopfield methode, the training is done by performing dot product between input vector pattern and quality vector. Hopfield network is indicated reaching the maximum value if a stable pattern is being resummoned. Based on a tryout of the patterns of teeth was known that hopfield methode can recognize the pattern faster than backpropagation one with the average of recognition time 2.46 and 5.67 secs. Both backpropagation and hopfield methode make 100% recognition when the examined sample is the training sample. As for using the test data are not trained to produce the backpropagation method detection accuracy of 93.3% and 82.3% of the Hopfield method using data different from the training
Keyword: Pattern Identification, Artificial Neural Network, Backpropagation, Hopfield
(15)
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Jaringan saraf adalah merupakan salah satu representasi buatan dari otak manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia tersebut. Istilah buatan disini digunakan karena jaringan syaraf tiruan ini di implementasikan dengan menggunakan program komputer yang mampu menyelesaikan sejumlah proses perhitungan selama proses pembelajaran [3].
Gigi merupakan organ terpenting makhluk hidup terutama manusia. Fungsi utama gigi adalah untuk merobek dan mengunyah makanan. Gigi memiliki struktur pelindung yang disebut email gigi, yang membantu mencegah lubang di gigi. Kesehatan gigi merupakan suatu hal yang penting bagi kesahatan tubuh manusia karena gigi membantu proses pengunyahan makanan yang apabila gigi tidak sehat akan membuat nafsu makan tidak baik
Di dalam jaringan syaraf tiruan terdapat banyak metode pembelajaran yang digunakan untuk menyelesaikan permasalahan dalam jaringan syaraf tiruan tersebut. Metode jaringan syaraf tiruan antara lain Backpropagation, Learning Vector Quantization, Kohonen, Perceptron, dsb.
Backpropagation adalah algoritma pembelajaran untuk memperkecil tingkat error dengan cara menyesuaikan bobotnya berdasarkan perbedaan output dan target yang diinginkan. Backpropagation juga merupakan sebuah metode sistematik untuk pelatihan multilayer JST. Metode backpropagation menggunakan nilai kemelesetan atau error output untuk menggubah nilai bobot arah mundur. Untuk dapatkan nilai output error, tahapan perambatan maju harus dikerjakan terlebih dahulu dengan mengaktifkan neuron dan fungsi aktivitas sigmoid. metode Hopfield adalah metode jaringan saraf tiruan yang menggunakan teknik klasifikasi, fungsi energi lyapunov
(16)
(bobot simetris berdiagonal utama nol (0)) untuk mendapatkan output agar mendekati atau sama dengan inputannya.
1.2 Rumusan Masalah
Adapun masalah yang akan dibahas dalam penelitian ini adalah : 1. Bagaimana dapat mendeteksi penyakit pada gigi.
2. Bagaimana merancang aplikasi untuk pengenalan pola dengan menggunakan metode Backpropagation dan metode Hopfield
1.3 Batasan Masalah
Adapun batasan masalah dalam penelitian ini adalah : 1. Obyek yang ingin di teliti adalah citra gigi.
2. Metode yang digunakan yaitu metode Backpropagation dan metode Hopfield untuk membandingkan ketepatan pendeteksian penyakit pada gigi.
3. Pengenalan pola yang ingin diketahui yaitu mendeteksi penyakit yang terjadi pada gigi antara lain karies gigi, pulpitis, gingivitis, dan abses gigi.
4. Foto gigi di ambil secara manual dengan kamera.
5. Perancangan aplikasi menggunakan bahasa pemrograman MATLAB. 6. Kamera yang digunakan adalah kamera digital.
1.4 Tujuan Penelitian
Adapun tujuan dari penelitian ini adalah :
1. Membuat aplikasi pengenalan pola untuk mendeteksi penyakit gigi menggunakan metode backpropagation dan metode Hopfield.
2. Dengan adanya aplikasi yang telah dibangun nantinya dapat diketahui kecepatan dan ketepatan setiap metode dalam mendeteksi penyakit gigi.
1.5 Manfaat Penelitian
Penelitian ini diharapkan dapat membantu masyarakat baik individu maupun kelompok yang nantinya dapat memanfaatkan aplikasi ini untuk mendeteksi penyakit gigi sementara waktu sebelum dilakukan pendeteksian gigi oleh dokter gigi.
(17)
1.6 Sistematika Penulisan
Sistematika penulisan dari skripsi ini terdiri dari beberapa bagian utama sebagai berikut:
BAB I: PENDAHULUAN
Berisi latar belakang, perumusan masalah, batasan masalah, tujuan dan manfaat penelitian dan sistematika penulisan.
BAB II: TINJAUAN PUSTAKA
Berisi penjelasan singkat mengenai objek yang dibahas yaitu penyakit gigi, pengolahan citra, jaringan syaraf yang digunakan yaitu metode backpropagation dan hopfield.
BAB III: ANALISIS DAN PERANCANGAN
Berisi analisis terhadap proses kerja sistem serta perancangan tampilan form dari aplikasi yang akan dibangun.
BAB IV: IMPLEMENTASI DAN PENGUJIAN
Berisi implementasi aplikasi yang sesuai dengan analisis dan perancangan serta pengujian yang dilakukan untuk membuktikan bahwa aplikasi apakah berjalan sesuai dengan apa yang ditentukan sebelumnya.
BAB V: KESIMPULAN DAN SARAN
Berisi kesimpulan dari hasil yang telah didapat serta saran-saran yang diharapkan dapat bermanfaat untuk pengembangan sekanjutnya.
(18)
BAB 2
TINJAUAN PUSTAKA
2.1Pengolahan Citra
Ada dua macam citra yang dapat kita jumpai dalam kehidupan kita, yaitu citra analog dan citra digital. Citra analog adalah citra yang bersifat kontinu, sepert foto yang tercetak pada kertas, lukisan , foto sinar-X, dan sebagainya. Sedangkan citra digital adalah citra yang dapat diolah oleh komputer dimana citra tersebut dapat dilihat ketika citra berada didalam layar monitor komputer.
Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dan suatu obyek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan[11].
2.1.1 Cita Digital Gray Scale
Cita digital gray scale merupakan suatu larik dua dimensi atau suatu matrik yang elemen-elemennya menyatukan tingkat keabuan dari elemen gambar (Piksel). Gray scale memiliki banyak variasi nuansa abu-abu sehingga berbeda dengan image hitam-putih. Sebuah image yang di ubah ke gray scale akan terkesan berbeda bila di bandingkan dengan image berwarna.
2.1.2. Proses Threshold
Proses threshold atau pengambangan merupakan proses dimana citra akan dirubah menjadi citra biner. Citra biner merupakan citra yang hanya memiliki dua nilai yaitu hitam dan putih atau dalam bentuk nilai yaitu 0 dan 1. Pada gambar 2.2 dapat dilihat proses threshold pada suatu citra.
(19)
Gambar 2.1 : Proses Threshold
2.2Jaringan Saraf Tiruan
Jaringan saraf tiruan (artificial neural network), atau disingkat JST, adalah system komputasi dimana arsitektur dan operasi diilhami dari pengetahuan tentang sel saraf biologis di dalam otak, yang merupakan salah satu representasi buatan dari otak manusia yang selalu mencoba menstimulasi proses peroses pembelajaran pada otak manusia tersebut. JST dapat digambarkan sebagai model matematis dan komptasi untuk fungsi aproksimasi non-linear, klasifikasi data cluster dan regresi non-para-metrik atau sebuah simulasi dari koleksi model saraf biologi[1].
Gambar 2.2 Jaringan Saraf Tiruan Sederhana
Jaringan saraf tiruan atau yang sering dikenal dengan Artificial Neural Networks (ANNs) mulai di kembangkan pada tahun 1940. Jaringan Saraf tiruan biasanya diklarifikasikan sebagai jaringan satu lapisan (single layer) atau jaringan banyak lapisan (multiple layer). Dalam penentuan jumlah lapisan, laisan masukan tidak termasuk dalam hitungan karena pada lapisan itu tidak terjadi proses komputasi.
Neuron/ sel saraf adalah sebuah unit pemrosesan informasi yang merupakan dasar operasi jaringan saraf tiruan. Beberapa neuron akan mentransformasikan informasi yang diterimanya melalui sambungan keluaran menuju neuron-neuron yang lain.
X1
X2
Z1
Z2
(20)
Model dari sebuah neuron ditunjukkan pada gambar 2.
Gambar 2.3 Model Neuron
Dari model sebuah neuron pada Gambar 2 dapat dituliskan persamaan: y = f (∑��=1 w * xi – ѳ)
keterangan:
xi = sinyal masukan ke-i.
wi = bobot hubungan ke-i.
ѳ = bias
f(.) = fungsi aktivasi atau elemen pemroses y = sinyal keluaran
2.2.1 Arsitektur Jaringan Saraf Tiruan
Jaringan saraf tiruan dirancang dengan menggunakan suatu aturan yang bersifat menyeluruh (general rule) dimana seluruh model jaringan memiliki konsep dasar yang sama. Arsitektur sebuah jaringan akan menentukan suatu
keberhasilan target yang akan di capai karena tidak semua permasalahan dapat diselesaikan dengan arsitektur yang sama. Jaringan saraf tiruan dibagi oleh tiga arsitektur yaitu Jaringan dengan lapisan tunggal, Jaringan dengan banyak lapisan, dan Jaringan dengan lapisan kompetitif [1].
x1
w1
x2
w2
� f (.)
Input
. . .
netk output
Fungsi Penjumlahan
Fungsi Aktivasi xi
(21)
2.2.1.1. Jaringan dengan Lapisan Tunggal (Single Layer Network)
Jaringan saraf satu lapisan tunggal ( single layer network) pertama kali dirancang oleh widrow dan holf pada tahun 1960. Jaringan dengan lapisan tunggal hanya memiliki satu lapisan bobot terhubung. Jaringan ini hanya menerima input kemudian secara langsung akan mengelolahnya menjadi output tanpa harus melalui lapisan tersembunyi [1].
Single layer network yang dalam bahasa Indonesia berarti jaringan lapis tunggal merupakan jaringan yang mana neuron-neuron tersusun dalam suatu lapisan. Disebut lapisan tunggal oleh karena neuron output dari jaringan ini hanya satu.
Pada gambar dibawah ini, lapisan input memiliki 3 neuron, yaitu X1, X2, X3. Sedangkan lapisan output memiliki 2 neuron, yaitu Y1 dan Y2. neuron-neuron pada kedua lapisan saling berhubungan. Seberapa besar hubungan antara 2 neuron ditentukan oleh bobot yang bersesuaian. Semua unit input akan di hubungkan dengan setiap unit output [1].
X1 X2 X3
Y2
Y1
Nilai input
Lapisan input
Lapisan output Matriks bobot
Nilai output w12
w13
w14
w15
w1
w11
Gambar 2.4 Jaringan Saraf dengan Lapisan Tunggal
2.2.1.2. Jaringan dengan Banyak Lapisan (multilayer net)
Jaringan dengan banyak lapisan (multilayer net) memiliki satu atau lebih lapisan yang terletak di antara lapisan input dan lapisan output seperti terlihat pada gambar 4. Umumnya terdapat lapisan bobot-bobot yang terletak antara 2 lapisan yang bersebelahan. Jaringan dengan banyak lapisan ini dapat menyelesaikan permasalahan
(22)
yang lebih sulit daripada lapisan dengan lapisan tunggal, dengan pembelajaran yang lebbih rumit [1].
X1 X2 X3
Z2
Z1
Nilai input
Lapisan input
Lapisan output Matriks bobot
Nilai output w12
w13
w14
w15
w1
w11
Y
w1 w2
Lapisan
Matriks bobot
ke-Gambar 2.5 Jaringa Saraf dengan Banyak Lapisan
2.2.1.3. Jaringan dengan lapisan kompetitif (competitif layer net)
Hubungan antar neuron pada lapisan kompetitif ( competitif layer net) ini tidak diperlihatkan pada diagram arsitektur. Gambar 2.6 berikut menunjukan salah satu contoh arsitektur jaringan lapisan komperirif yang memiliki bobot –n [1].
1 A1
-n
Aj
Am
Ai
1
-n -n -n
(23)
2.3 Jaringan Saraf Tiruan Backpropagation
Jaringan saraf tiruan memiliki banyak jenis metode dan salah satunya adalah metode backpropagation. Metode backpropagation melatih jaringan untuk mendapatkan keseimbangan antara kemampuan jaringan untuk mengenali pola yang digunakan selama pelatihan serta kemampuan jaringan untuk memberikan respon yang benar terhadap pola masukan yang serupa dengana pola yang dipakai dengan pola yang dipakai selama pelatihan. Backpropagation merupakan algorima pembelajaran yang terawasi dan bisanya digunakan oleh perceptron dengan banyak lapisan untuk mengubah bobot-bobot yang terhubung dengan neuron-neuron yang ada pada lapisan tersembunyinya. Algoritma backpropagation menggunakan error output untuk mengubah nilai bobot-bobotnya dalam arah mundur (backward). Untuk mendapatkan error ini, tahap perambatan maju (forward propagation) harus dikerjakan terlebih dahulu. Pada saat perambatan maju, neuron-neuron diaktifkan dengan menggunakan fungsi aktivasi yang dapat dideferensiasikan.[4]
Jaringan saraf Tiruan Backpropagation pertama kali diperkenalkan oleh Rumelhart, Hinton, dan William pada tahun 1986, kemudian dikembangkan oleh Rumelhart dan Mc Clelland pada tahun 1988. Inti dari metode backpropagation terletak pada kemampuan untuk mengubah nilai-nilai bobotnya untuk menanggapi adanya kesalahan. Agar dapat menghitung kesalahan , pada proses pemblajaran perlu adanya pola pola keluaran yang dibandingkan dengan targetnya. Hasil dari perbandingan ini berupa error atau kesalahan[8].
.
X1
X2
X3
Z1
Z2
Z3
Y1
Y2
W11
W12
W13
W21
W22
W23
V11
V12
V21
V22
V31
V32
Input Output Hidden
(24)
Keteranagan :
X = Masukan (input)
V = Bobot lapisan tersembunyi W = Bobot lapisan keluaran
Z = Lapisan tersembunyi (hidden layer) Y = Keluaran (output).
2.3.1 Arsitektur Jaringan Backpropagation
Backpropagation merupakan algoritma pembelajaran yang terawasi dan biasanya digunakan oleh perceptron dengan banyak lapisan untuk mengubah bobot-bobot yang terhubung dengan neuron-neuron yang ada pada lapisan tersembunyinya. Algoritma backpropagation menggunakan error output untuk mengubah nilai-nilai bobotnya dalam arah mundur (backward). Untuk mendapatkan error ini, tahap perambatan maju (forward propagation) harus dikerjakan terlebih dahulu. Pada saat perambatan maju, neuron-neuron diaktifkan dengan menggunakan fungsi aktivasi sigmoid, yaitu [7] :
�(�) = 1
1+e−x ... (11)
�(�) : fungsi aktivasi sigmoid
Di dalam jaringa ini setiap unit yang berada di lapisan input terhubung dengan setiap unit yang ada di lapisan tersembunyi. Hal serupa berlaku pula pada lapisan tersembunyi. Setiap unit yang ada di lapisan tersembunyi terhubung dengan setiap unit yang ada di lapisan output[9].
(25)
x1
b=1 x3
x2
z2
z1
b=1
Y v11
v12
v21
v22
v31
v32
v01
v02
w0
w1
w2
Gambar 2.12 Arsitektur Jaringan Backpropagation[8]
Perbedaan antara output aktual dengan output target dikembalikan lagi kelapisan tersembunyi sebagai input untuk meng-update bobot, membawa keluaran jaringan ke arah semakin mendekati output target[9].
Keterangan :
�1,�2,�3 : unit input
�1,�2 : lapisan tersembunyi � : lapisan output b : bias
�1,�2 : bobot yang menghubungkan neuron pada lapisan tersembunyi dengan neuron pada lapisan output
��� : bobot yang menghubungkan neuron ke-j pada suatu lapisan ke neuron ke-i pada lapisan sesudahnya (v11,v21,v31).
�01,�02 : bobot bias yang menuju ke neuron pertama dan kedua pada lapisan tersembunyi
�0 : bobot bias yang menghubungkan lapisan tersembunyi dengan lapisan output
(26)
2.3.2 Fungsi Aktivasi
Fungsi aktivasi merupakan fungsi matematis yang berguna untuk membatasi dan menentukan jangkauan output suatu neuron. Fungsi aktivasi untuk Jaringan Saraf Tiruan Backpropagation harus memiliki beberapa karakteristik penting, yaitu kontinyu, dapat dideferensialkan, dan monoton tanpa penurun. Fungsi aktivasi biasanya digunakan untuk mencari nilai asimtot maksimum dan minimum. Fungsi aktivasi yang biasa digunakan untuk jaringan Backpropagation adalah :
1. fungsi sigmoid bipolar, dimana fungsi sigmoid bipolar hampir sama dengan fungsi sigmoid biner, hanya saja output dari fungsi ini memiliki range antara 1 sampai -1[3].
fungsi sigmoid bipolar dirumusskan sebagai :
y = f(x) = 1−�−� 1+�−�
dengan : f’(x) = �
2 [1 +�(�)][1− �(�)]
2. fungsi sigmoid biner, fungsi ini digunakan untuk jaringan saraf yang dilatih dengan menggunakan metode backpropagation. Fungsi sigmoid biner memiliki nilai pada range 0 sampai 1. Oleh karena itu, fungsi ini sering digunakan untuk jaringan saraf yang membutuhkan nilai output yang terletak pada interval 0 sampai 1. Namun fungsi ini biasa juga digunakan oleh jaringan saraf yang nilai outputnya 0 atau 1 [3].
fungsi sigmoid biner dirumuskan sebagai :
y = f (x) = 1 1+�−��
dengan : f’ (x) = ��(x) [1- f(x)]
Untuk sistem yang akan dibangun menggunakan fungsi aktiviasi sigmoid bipolar. Karena nilai yang digunakan sebagai input lebih luas dan batasan masalah nilai input -1 sampai 1.
(27)
2.3.3 Pelatihan Standar Backpropagation
Pelatihan backpropagation memiliki 3 fase. Fase pertama adalah fase maju. Pola masukan dihitung maju mulai dari layar masukan hingga layar keluaran menggunakan fungsi aktivasi yang ditentukan. Fase kedua adalah fase mundur. Selisih antara keluaran jaringan dengan target yang diinginkan merupakan yang terjadi. Kesalahan tersebut dipropagasikan mundur, dimulai dari garis yang berhubungan langsung dengan unit-unit di layar keluaran. Fase ketiga adalah modifikasi bobot untuk menurunkan kesalahan yang terjadi [8].
1. Fase I : Propagasi maju
Propagasi maju, sinyal masukan (= xi) dipropagasikan ke layar tersembunyi menggunakan fungsi aktivasi yang ditentukan. Keluaran dari setiap unit layar tersembunyi (= Zj) tersebut selanjutnya dipropagasikan maju lagi ke layar tersembunyi di atasnya menggunakan fungsi aktivasi yang ditentukan. Demikian seterusnya hingga menghasilkan keluaran jaringan (= yk).
Berikutnya, keluaran jaringan (= yk) dibandingkan dengan target yang harus dicapai (= tk). Selisih tk - yk adalah kesalahan yang terjadi. Jika kesalahan ini lebih kecil dari batas toleransi yang ditentukan, maka iterasi dihentikan. Akan tetapi apabila kesalahan masih lebih besar dari batas toleransinya, maka bobot setiap garis dalam jaringan akan dimodifikasi untuk mengurangi kesalahan yang terjadi [8].
2. Fase II : Propagasi mundur
Berdasarkan kesalahan tk- yk dihitung faktor δk (k = 1,2, ..., m) yang dipakai untuk mendistribusikan kesalahn di unit yk ke semua unit tersembunyi yang terhubung langsung dengan yk. δk juga dipakai untuk mengubah bobot garis yang berhubungan langsung dengan unit keluaran.
Dengan cara yang sama, dihitung faktor δj di setiap unit di layar tersembunyi sebagai dasar perubahan bobot semua garis yang berasal dari unit tersembunyi di layar di bawahnya. Demikian seterusnya hingga semua faktor δ di unit tersembunyi yang berhubungan langsung dengan unit masukan dihitung [8].
(28)
Setelah semua faktor δ dihitung, bobot semua garis dimodifikasi bersamaan. Perubahan bobot suatu garis didasarkan atas faktor δ neuron di layar atasnya. Sebagai contoh, perubahan bobot garis yang menuju ke layar keluaran didasarkan atas δk yang ada di unit keluaran [8].
2.3.4. Algoritma Pelatihan
Algoritma pelatihan untuk jaringan backpropagation adalah sebagai berikut : 1. Langkah 0
Inisialisasi semua bobot dengan bilangan acak kecil 2. Langkah 1
Jika kondisi penghentian belum terpenuhi, lakukan langkah 2-9 3. Langkah 2
Untuk setiap data pelatihan , lakukan langkah 3-8
Fase I : Propagasi maju
4. Langkah 3
Tiap unit masukan menerima sinyal dan meneruskan ke unit tersembunyi di atasnya.
5. Langkah 4
Hitung semua keluaran di unit tersembunyi zj (j= 1,2, ..., p) z_net j = v jo +
∑
��=0x
iv
jizj = f(z_netj) =
1+exp 1(−znetj)
6.
Langkah 5Hitung semua keluaran jaringan di unit yk (k= 1,2, ..., m) y_net k = w ko +
∑
��=1z
jw
kjyk = f(y_netk) = 1 1+exp (−ynetk)
Fase II : Propagasi mundur
(29)
Hitung faktor � unit keluaran berdasarkan kesalahan di setiap unit keluaran yk (k=1,2, ..., m)
�k = (tk – yk) f’(y_netk) = (tk – yk) yk (1-yk)
Hitung suku perubahan bobot wkj (yang akan dipakai nanti untuk merubah bobot wkj) dengan laju percepatan α
Δwkj = α �k zj ; k = 1,2, ..., m ; j = 0,1, ..., p 8. Langkah 7
Hitung faktor � unit tersembunyi berdasarkan kesalahan di setiap unit tersembunyi zj (j=1,2, ... , p)
�_netj = +
∑
��=1 �k wkj Faktor � unit tersembunyi :�j = �_netj f’(z_netj) = �_netj zj(1-zj) Hitung suku perubahan bobot vji :
Δvji = α �j xi ; j = 1,2, ..., p ; i = 0,1, ..., n
Fase III : Perubahan bobot
9. Langkah 8
Hitung semua perubahan bobot.
a. Perubahan bobot garis yang menuju ke unit keluaran :
wkj(baru) = wkj(lama) + Δwkj (k = 1,2, ...,m ; j = 0,1, ..., p) b. Perubahan bobot garis yang menuju ke unit tersembunyi :
vji(baru) = vji(lama) + Δvji (j = 1,2, ..., m ; i = 0,1, ..., n)
10.Langkah 9
Pelatihan selesai dilakukan, jaringan dapat dipakai untuk mendeteksi penyakit gigi. [5]
Keterangan :
α : laju pembelajaran
(30)
δ_net j : jumlah input pada lapisan tersembunyi dari unit pada lapisan keluaran Yk
y_netk : sinyal masukan untuk unit keluaran Yk
Yk : unit keluaran k
Xi : unit masukan i
Vjo : bias pada unit tersembunyi
Wko : bias pada unit keluaran
δ k : informasi error pada unit keluaran Yk yang dilakukan propagasi balik ke unit tersembunyi
δ j : informasi error pada unit tersembunyi Zj
ΔVji : koreksi bobot antara lapisan tersembunyi Zj dengan lapisan masukan Xi
Δwkj : korekai bobot antara lapisan keluaran Yk dengan lapisan tersembunyi Zj
Vij : bobot antara lapisan tersembunyi Zj dengan lapisan masukan Xi yang sudah disesuaikan
Zj : unit tersembunyi j
Wkj : bobot antara lapisan keluaran Yk dengan lapisan masukan Zj yang sudah disesuaikan
Z_netj : sinyal masukan untuk unit tersembunyi Zj
2.4. Jaringan Saraf Tiruan Hopfield
Hopfield pertama kali diperkenalkan oleh John Hopfield pada tahun 1982. Hopfield merupakan jaringan saraf dengan pelatihan tak terbimbing (unsupervised traning) [1].
(31)
Dalam paper yang dipublikasikan pada tahun 1982, John Hopfield memperkenalkan arsitektur jaringan yang kemudian dikenal dengan jaringan Hopfield. Dengan istilah jelas dan sederhana, Jhon Hopfield menjabarkan bagaimana kemampuan komputasi dapat dibangun dari jaringan yang terdiri dari komponen-komponen yang menyerupain neuron. Jhon Hopfield menjabarkan bagaimana kemampuan komputasi dapat dibangun dari jaringan yang terdiri dari komponen-komponen yang mempunyai neuron. John Hopfield menggambarkan suatu associative memory yang dapat diterapkan dan kemudian mendemonstrasikan masalah optimasi yang dapat diselesaikan dengan jaringannya .[1]
Unit-unit pengolahan dalam jaringan Hopfield terhubung penuh, hubungan-hubungan tersebut adalah langsung dari setiap unit pengelolahan hubungan-hubungan dalam dua arah. Setiap hubungan mempunyai bobot, bobot tersebut adalah nilai scalar yang berdasarkan pada kekuatan hubungan (connection strength).
Jaringan Hopfield biner mempunyai suatu lapisan unit pengolah. Setiap unit pengolah mempunyai sebuah nilai aktivitas atau kondisi (state) yang bersifat biner. Disini digunakan kondisi 0 dan 1. Jaringan juga dapat bekerja jika digunakan nilai +1 dan -1, hanya saja diperlukan sedikit perubahan dalam persamaanya[1].
Keseluruhan jaringan mempunyai kondisi pada setiap saat.kondisi tersebut dapat berubah vector dari bilangan 0 dan 1. Setiap anggota vector tersebut dapat berupa vector dari bilangan 0 dan 1. Setiap anggota vecktor sesuai dengan unit pengolah dalam jaringan. Jadi pada setiap saat kondisi jaringan dapat digambarkan dengan vecktor sebagai berikut :
U = (u1,u2,u3,…..,un) = (+ +…..+…+)
Vector ini mencerminkan sebuah jaringan yang terdiri dari n unit pengolah, dimana elemen ke i mempunyai kondisi ui. dalam notasi ini, + menggambar sebuah unit pengolah dengan nilai 1 dan – menggambarkan sebuah unit pengolah dengan nilai 0. Gambar 7 berikut menunjukan diagram unit pengolah dalam jaringan Hopfield, bersama dengan contoh kondisinya. Kondisi jaringan dapat berubah setiap waktu sesuai dengan perubahan keadaan pada setiap unit pengolah[1].
(32)
Unit pengolah 2 Unit pengolah 1
Unit pengolah 4
Unit pengolah 3
Gambar 2.8 Keadaan/ kondisi jaringan HopfieldBiner.
2.4.1. Jaringan Saraf Tiruan Hopfield Diskrit
Jaringan saraf tiruan Hopfield diskrit adalah jaringan yang saraf tiruannya terhubung penuh atau fully connected. Atau setiap unit terhubung dengan setiap unit lainnya, pada jaringan Hopfield diskrit ini tidak memiliki hubungan dengan dirinya sendiri.
Jaringan saraf tiruan merupakan kumpulan dari neuron-neuron (sel-sel saraf) dimana sebuah neuron berhubungan dengan sebuah neuron lainnya dengan cara mengirimkan informasi dalam bentuk fungsi aktivasi. Fungsi aktifasi yang digunakan yaitu fungsi symetric stautrating linear dimana fungsi ini akan bernilai -1 jika inputnya kurang dari -1, dan akan terletak antara -1 dan 1, maka outputnya akan bernilai sama dengan nilai inputannya. Fungsi symetric stautrating linear dirumuskan sebagai :
Fungsi aktivasi energy yang digunakan dalam jaringan Hopfield adalah fungsi energy Lyapunov, yaitu sebuah fungsi yang terbatas dan menurun untuk mendappatkan kesetabilan pada aktivasinya [4]
(33)
2.4.1.1. Algoritma Jaringan Hopfield Diskrit
Algoritma pelatihan jaringan Hopfield Diskrit adalah sebagai berikut : 0. Inisialisasi matriks bobot W
1. Masukkan vector input (invec), lalu inisialisasi vector output (outvec) sebagai berikut:
Outvec = Invec
2. Mulai dengan counter i = 1
3. Ketika Invector ≠ Outvec lakukan langkah 4-7.
(jika i sudah mencapai nilai maksimum, i akan mereset ke 1 untuk malanjutkan siklus).
4. Hitung Nilaii = DotProduct(Inveci, Kolomi dari W)
5. Hitung Outveci = f(Nilaii) dimana f adalah fungsi ambang (threshold function).
Untuk pola input biner:
�(�) =� 1 ����� ≥ � 0 ����� < �
Dimana θ biasanya sama dengan 0. Untuk pola input bipolar:
�(�) =� 1 �����> �
−1 ����� ≤ �
Dimana threshold θ biasanya sama dengan 0. 6. Update input jaringan dengan komponen Outvec. 7. i=i+1
(34)
2.4.2 Arsitektur Metode hopfield
x
1x
2x
4x
3x
5x
6W31 W13 W12 W21 W56 W65 W35 W53
W15W51
W62 W26 W46 W64 W24 W42 W16 W61 W25 W52 W14 W41 W23 W32 W36 W63 W34 W43 W45 W54
Gambar Arsitektur Jaringan Hopfield
Dari gambar diatas menunjukan sebuah jaringan Hopfield dengan 6 buah Neuron Yang terhubung satu sama lain. Setiap unit tidak memilki hubungan dengan dirinya sendiri. Hubungan antara-neuron tersebut mimiliki bobot positif atau negative. Berikut bobot-bobot digambarkan sebagai vector W :
W = ⎣ ⎢ ⎢ ⎢ ⎢
⎡ W 0 W12 W13 W14 W15 W1 21 0 W23 W24 W25 W26
W31 W32 0 W34 W35 W36 W41 W42 W43 0 W45 W46 W51 W52 W53 W54 0 W56 W61 W62 W63 W64 W65 0 ⎦
⎥ ⎥ ⎥ ⎥ ⎤
Perhatikan bahwa bobot-bobot yang terletak pada diagonal utamanya adalah nol yang menunjukan bahwa neuron-neuron pada jaringan Hopfield tidak memiliki hubungan dengan dirinya sendiri ( Wij = 0; i=j). Sementara itu kesimetrisan vector bobot berarti berlakunya Wij = Wij dimana i≠j, sehinga W12=W21, W13=W31, W23=W32,…, dan seterusnya.
(35)
2.5. GIGI
Gigi merupakan organ tubuh yang berperan dalam proses pencernaan, pengunyahan, dan tak kalah pentingnya sebagai estetis dalam pembentukan profil wajah. Gigi terbentuk melalui interaksi yang sangat kompleks antara ectoderm, epitel oral dan sel mesenkim adalah dasar/awal pembentukan gigi [7].
Pada manusia terdapat 20 gigi desidui dan 32 gigi permanen yang berkembang dari interaksi sel epitel rongga mulut dan sel bawah mesenkim. Setiap gigi berbeda-beda secara anatomi, dasar proses pertumbuhannya sama pada semua gigi [7].
Gambar 2.9 Gigi
Setiap gigi tumbuh berturut-turut mulai dari tahap bud, cup, dan tahap bell. Gigi tumbuh dari 2 tipe sel yaitu epitel oral dari organ enamel dan sel mesenkim dari papoladental. Perkembangan enamel dari enamel organ dan perkembangan dentin dar dental papilla. Tahap awal dari perkembangan gigi adalah berkembangnya lamina dental yang tumbuh dari epithelium oral. Lamina dental berkembang menjadi selapis epitel oral didorong ke bawah mesenkim di sekeliling batas dari maksila dan mandibular joint. Pada pinggiran utama dari lamina dental terdapat 20 area perluasan untuk pertumbuhan 20 gigi desidui. Pada tahap awal setiap tunas/pertumbuhan gigi sudah ditentukan morfologi apakah itu insisivus, kaninus, dan molar [7].
Pada gigi manusia dapat ditemui 4 (empat) macam gigi yang terdapat pada mulut disertai dengan arti definisi dan pengertian yaitu :
1. Gigi seri
Gigi seri adalah gigi yang memiliki satu akar yang berfungsi untuk memotong dan mengerat makanan atau benda lainnya
(36)
2. Gigi taring
Gigi taring adalah gigi yang memilki satu akar dan memiliki fungsi untuk mengoyak makanan atau benda lainnya
3. Gigi geraham kecil
Gigi graham kecil adalah gigi yang punya dua akar yang berguna / berfungsi untuk menggilas dan mengunyah makanan atau benda lainnya
4. Gigi graham
Gigi geraham adalah gigi yang memiliki tiga akar yang memiliki fungsi untuk melumat dan mengunyah makanan atau benda-benda lainnya
Kesehatan gigi merupakan merupakan suatu hal yang sangat penting bagi manusia karena gigi membantu proses pengunyahan makana yang kita makan, macam-macam penyakit pada gigi yaitu :
1. Karies
Karies gigi adalah suatu penyakit yang tidak kalah pentingnya dengan penyakit lain, karena karies gigi dapat mengganggu aktifitas seseorang dalam melaksanakan tugasnya sehari-hari. Akibat yang ditimbulkan oleh karies gigi ini bermacam-macam mulai dari yang ringan sampai yang berat, oleh karena salah satu penyebab dari karies gigi adalah adanya aktifitas bakteri. Bakteri yang bersarang pada karies gigi itu bisa menembus ke pembuluh darah dan akhirnya mengumpul di jantung. Semboyan mencegah lebih baik daripada mengobati harus selalu kita ingat karena mulut adalah pintu gerbang utama masuknya segala macam benda asing ke dalam tubuh, menjaga kesehatan gigi dan mulut berarti langkah awal menjaga kesehatan tubuh. Bakteri sangat berperan pada proses terjadinya karies gigi dan penyakit periodontal. Banyaknya mikroorganisme tergantung pada kesehatan dan kebersihan mulut seseorang.
2. Pulpitis
Pulpitis adalah suatu radang yang terjadi pada jaringan pulpa gigi dengan gambaran yang akut. Merupakan penyakit lanjut karena didahului oleh terjadinya karies, hyperemia pulpa baru setelah itu menjadi Pulpitis, yaitu ketika radang sudah mengenai kavum pulpa. Penyebab Pulpitis yang paling sering ditemukan adalah kerusakan email dan dentin, penyebab kedua
(37)
adalah cedera. Pulpitis menyebabkan sakit gigi yang tajam luar biasa, terutama bila terkena oleh air dingin, asam, manis, kadang hanya dengan menghisap angina pun sakit. Rasa sakit dapat menyebar ke kepala, telinga dan kadang sampai ke punggung
3. Gingivitis(radang pada gusi),
Gingivitis adalah peradangan pada gusi (gingiva) yang sering terjadi dan bisa timbul kapan saja setelah timbulnya gigi. Gingivitis merupakan tahap awal dari timbulnya penyakit gusi, peradangan disebabkan oleh ‘plak’ yang terbentuk disekitar gusi. Jika pembersihan gigi yang dilakukan setiap hari tak mampu membersihkan dan mengangkat ‘plak’ yang terbentuk, hal itu bias memproduksi racun yang bias menyebabkan iritasi pada lapisan luar gusi, dan timbulah gingivitis. Jika gusi berdarah saat kita menyikat gigi atau membersihkan gigi dengan benang gigi sebagai tahap awal penyakit gusi, kerusakan lebih lanjut bias diatasi asalkan tulang dan jaringan luar gusi yang menyangga gigi yang terinfeksi tersebut masih belum terinfeksi juga. Gingivitis hamper selalu terjadi akibat penggosokan dan flossing (membersihkan gigi dengan menggunakan benang gigi) yang tidak benart, sehingga plak tetap ada disepanjang garis gusi. Plak merupakan suatu lapisan yang terutama terdiri dari bakteri. Bakteri yang sering menyebabkan terjadinya plak pada Gingivitis Borelia Vincent dan Baccilus fusiformis. Untuk mencegah terjadinya Gingivitis, yaitu dengan menjaga kebersihan gigi dan mulut serta control rutin ke dokter minimal 6 bulan sekali. Karang gigi (Calculus) merupakan kumpulan plak termineralisasi (pembentukan mineral seperti ‘batukarang’) yang menempel pada permukaan gigi berdasarkan lokasinya, karang gigi ada di supragingiva (permukaan gigi diatas gusi) dan di subgingiva (permukaan gigi dibawah gusi) terutama pada daerah-daerah gigi yang sulit dibersihkan.
4. Abses gigi (pembengkakan gigi).
Abses gigi adalah suatu keadan dimana terjadinya pengumpulan nanah dari sebuah gigi ke jaringan sekitarnya, biasanya berasar dari suatu infeksi. Abses gigi ini biasanya terjadi dari gigi yang berisi cairan ( nanah ) dialirkan ke gusi yang berada di dekat gigi yang membengkak. Sebuah
(38)
abses gigi dapat diidentifikasi dengan sejumlah gejala nyeri seperti sakit gigi parah yang menolak untuk pergi, nyeri pada gusi, nyeri menggigit dan mengunyah, dll Anda mengalami begitu banyak rasa sakit karena terjadi penumpukan nanah di gigi. Nanah terkumpul di bawah gigi diberikannya banyak tekanan pada sekitarnya setiap kali gigi disentuh dan memberikan rasa. sakit berdenyut. Penyebab utama abses gigi adalah serangan bakteri pada pulpa gigi atau bagian terdalam dari gigi. Bakteri masuk jauh ke dalam pulpa gigi baik melalui rongga gigi atau gigi patah disebabkan oleh cedera traumatis. Ketika infeksi bakteri ternyata parah, hal itu dapat mempengaruhi jaringan dari daerah yang berdekatan dan gejala yang lebih parah dapat diamati. Mereka adalah peradangan gusi yang berlebihan yang dapat menyebabkan pembengkakan pada satu sisi kelenjar getah bening wajah, demam dan bengkak. Jika gigi pecah abses, rasa busuk dapat dirasakan di mulut.
apa bila gigi tidak sehat maka akan membuat nafsu makan menjadi tidak baik. Rasa sakit (nyeri) adalah keluhan umum yang paling sering di rasakan oleh manusia. Nyeri gigi dapat berasal dari neuralgia trigeminal, neuralgia fasil atipis, migraine, nyeri jantung atau artrosis temporomandibullar. Sinusitis atau sakit pilek dapat menyebabkan rasa sakit yang diteruskan pada gigi-gigi posterior rahang atas. Contoh gejala pada gigi yang di alami oleh gigi tidak sehat :
1. Terjadinya pembengkakan pada gusi.
2. Gigi terasa nigilu saat makan makanan yang panas atau dingin. 3. Terhambatnya pertumbuhan gigi.
4. Menipisnya email pada gigi. 5. Gigi berlubang.
6. Terjadinya perubahan warna pada gusi yang disebabkan karena merokok, minum minuman keras dll.
7. Gigi mudah rapuh dan patah.
8. Terjadinya pergeseran gigi yang disebabkan karena terlalu kuat menggigit atau menggemeretakkan gigi.
9. Memeiliki banyak plak yang berakibat menjadi karang gigi. 10.Memiliki bau.
(39)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
Analisis sistem merupakan suatu tahapan untuk membantu memahami sesuatu yang di butuhkan system dan mempelajari permasalahan-permasalah yang ada untuk kemudian dilakukannya solusi penyelesaian yang didasarkan pada kebutuhan pengguna sistem agar tercipta sebuah sistem yang berguna bagi pengguna. Sehingga nantinya dapat membantu didalam proses perancangan model suatu system yang akan diimplementasikan.
3.1.1. Analisis Permasalahan
Gigi merupakan organ terpenting makhluk hidup terutama manusia. Fungsi utama gigi adalah untuk merobek dan mengunyah makanan. Gigi memiliki struktur pelindung yang disebut email gigi, yang membantu mencegah lubang di gigi. Kesehatan gigi merupakan suatu hal yang penting bagi kesahatan tubuh manusia karena gigi membantu proses pengunyahan makanan yang apabila gigi tidak sehat akan membuat nafsu makan tidak baik
Permasalahan yang dihadapin dalam perancangan system ini yaitu masalah pengenalan pola gigi yang terkena penyakit. Sehingga dengan adanya sistem ini diharapkan dapat membantu masyarakat untuk mendeteksi penyakit gigi sementara waktu sebelum dilakukan pendeteksian gigi oleh dokter gigi.
Penyebab dan dampak dari permasalahan tersebut digambarkan dengan diagram ishikawa dan dapat dilihat pada Gambar 3.1
(40)
.
Pemanfaatan Jaringa Syaraf Tiruan Untuk Memberikan Solusi Pengobatan dari Beragam
Jenis Penyakit Gigi
Material
Lingkungan
Metode
Teknologi
Mengetahui Solusi dari Berbagai Jenis Penyakit Gigi Sebelum
Melakukan Tindakan Pengobatan Ke Dokter
Gigi
Pemanfaatan teknologi untuk mendeteksi Penyakit Gigi Sementara
Untuk Selanjutnya dilakukan Observasi Oleh
Dokter Gigi Pemanfaatan JST
backpropagation dan hopfield untuk Mendeteksi
Penyakit Gigi Berbagai jenis
Penyakit Gigi yang Sering dialami Oleh
Manusia
Gambar 3.1 Diagram Ishikawa
3.1.2. Analisis Kebutuhan Sistem
Analisis kebutuhan sistem ini meliputi analisis kebutuhan fungsional sistem dan analisis non-fungsional sistem.
3.1.2.1. Kebutuhan Fungsional Sistem
Kemampuan fungsional dari sistem ini yaitu:
1. Masukan gambar gigi yang memiliki ekstensi file.jpg atau .jpeg.
2. Sistem melakukan pelatihan terhadap pola gambar agar kemudian dapat menghasilkan Output.
3. Sistem melakukan pengujian terhadap pola gambar dimana hasil dari pengujian tersebut berupa nama penyakit gigi, salusi pengobatan terhadap penyakit tersebut dan waktu pungujian.
(41)
3.1.2.2. Kebutuhan Non-Fungsional Sistem
Kebutuhan non-fungsional dari sistem ini yaitu :
1. Tampilan antarmuka sistem dapat dimengerti oleh user atau pengguna sistem. 2. Data yang digunakan oleh sistem haruslah data real atau nyata dan sesuai
sehingga dapat menghasilkan pengenalan pola yang tepat dan memberikan informasi yang tepat dan sesuai dengan tidak mengurangi kualitas informasi. 3. Efektifitas dan efisiensi dapat terlihat dari waktu respon antara pengguna
dengan sistem.
4. Sistem yang nantinya telah dibuat dapat dikembangkan dengan mudah sehingga sistem dapat tetap digunakan di masa yang akan datang.
5. Sistem yang dibuat dapat dikembangkan untuk kepentingan lebih lanjut.
3.1.3. Analisis Proses
Dalam sistem ini ada dua metode yaitu metode backpropagation dan metode hopfield yang digunakan untuk melakukan pendeteksian terhadap penyakit gigi. Di dalam proses pelatihan ini dilakukan pelatihan terhadap suatu pola masukan dari image gigi dengan menggunakan kedua metode tersebut. Kemudian dilakukan proses threshold untuk mendapatkan citra gigi, dan dilakukan proses reduksi data citra tersebut dan pada akhirnya dilakukan pelatihan jaringan saraf tiruan untuk mendeteksi penyakit gigi.
Berikut ini akan diberikan contoh sederhana bagaimana masing-masing metode melakukan proses pelatihan. Dengan yang pertama sebagai contoh yaitu penerapan metode (algoritma) backpropagation untuk mengenali fungsi XOR yang memilki 2 masukan x1 dan x2, dimana akan dilakukan iterasi terhadap pola pertama yaitu x1 = 1, x2 = 1 dan t = 0 dengan laju pembelajaran(learning rate) α = 0.2. berikut ini penyelesaian yang akan dilakukan dengan backpropagation menggunakan 1 lapisan tersembunyi yang terdiri dari 3 unit.
1. Inisialisasi semua bobot (langkah 0 – langkah 3)
Inisialisasi bobot ini akan dilakukan pemberian bobot secara acak seperti contoh pada tabel 3.1 dan tabel 3.2.
(42)
Tabel 3.1 Nilai Bobot Lapisan Masukan ke Lapisan Tersembunyi (vji)
Tabel 3.2 Bobot Lapisan Masukan ke Lapisan Tersembunyi (wkj)
Y z1 0.5 z2 -0.3 z3 -0.4 1 -0.1
2. Hitung keluaran unit tersembunyi (zj) (langkah 4) z_net j = v jo +
∑
��=1��
���
z_net1 = -0.3+1(0.2)+1(0.3) = 0.2 z_net2 = 0.3+1(0.3)+1(0.1) = 0.7 z_net3 = 0.3+1(-0.1)+1(-0.1) = 0.1 zj = f(z_netj) = 1
1+�−�_����
z1 = 1
1+�−0.2 = 0.55 ; z2 =
1
1+�−0.7 = 0.67 ; z3 =
1
1+�−0.1= 0.52.
3. Hitung keluaran unit yk (langkah 5) y_net k = w ko +
∑
��=1z
jw
kjy_netk = y_net = -0.1+0.55(0.5)+0.67(-0.3)+0.52(-0.4) = -0.24 y = f(y_net) = 1
1+�−�_��� =
1
1+�0.24 = 0.44
4. Hitung faktor δ di unit keluaran yk (langkah 6) �k = (tk – yk) f’(y_netk) = (tk – yk) yk (1-yk)
�k = δ = (t – y) y(1 – y) = (0 – 0.44) (0.44) (1 – 0.44) = -0.11 Suku perubahan bobot wkj (dengan α = 0.2):
Δwkj = α �k zj = α � z ; j = 0,1, ..., 3 Δw10 = 0.2 (-0.11)(1) = -0.02
Δw11 = 0.2 (-0.11)(0.55) = -0.01 Δw10 = 0.2 (-0.11)(0.67) = -0.01 Δw10 = 0.2 (-0.11)(0.52) = -0.01
z1 z2 z3 x1 0.2 0.3 -0.1 x2 0.3 0.1 -0.1 1 -0.3 0.3 0.3
(43)
5. Hitung penjumlahan kesalahan dari unit tersembunyi (=δ) (langkah 7) �_netj = �k w1j
�_net1 = (0.11)(0.5) = -0.05 �_net2 = (0.11)(-0.3) = 0.03 �_net3 = (0.11)(-0.4) = 0.04
faktor kesalahan δ di unit tersembunyi: �j = �_netj f’(z_netj) = �_netj zj(1-zj) �1 = -0.05(0.05) (1 – 0.05) = - 0.01 �2 = 0.03(0.67) (1 – 0.67) = 0.01 �3 = 0.04(0.52) (1 – 0.52) = 0.01
Suku perubahaan bobot ke unit tersembunyi Δvji = α �j xi dapat dilihat pada tabel 3.3. (j = 1,2,3; i = 0,1,2)
Tabel 3.3 Nilai Suku Perubahan Bobot
z1 z2 z3
x1 Δv11 = (0.2) (-0.01)(1) = 0
Δv21 = (0.2) (0.01)(1) = 0
Δv31 = (0.2) (0.01)(1) = 0 x2 Δv12 = (0.2)
(-0.01)(1) = 0
Δv22 = (0.2) (0.01)(1) = 0
Δv32 = (0.2) (0.01)(1) = 0 1 Δv13 = (0.2)
(-0.01)(1) = 0
Δv23 = (0.2) (0.01)(1) = 0
Δv32 = (0.2) (0.01)(1) = 0
6. Hitung semua perubahan bobot (langkah 8)
wkj(baru) = wkj(lama) + Δwkj (k = 1 ; j = 0,1, ..., 3) w11(baru) = 0.5 – 0.01 = 0.49
w12(baru) = -0.3 – 0.01 = -0.31 w13(baru) = -0.4 – 0.01 = -0.41 w10(baru) = -0.1 – 0.02 = -0.12
perubahan bobot unit tersembunyi:
(44)
Tabel 3.4 Perubahan Bobot Unit Tersembunyi
z1 z2 z3
x1 v11 (baru) = 0.2+0 = 0.2
v21 (baru) = 0.3+0 = 0.3
v31 (baru) = -0.1+0 = -0.1 x2 v12 (baru) = 0.3+0
= 0.3
v22 (baru) = 0.1+0 = 0.1
v32 (baru) = -0.1+0 = -0.1 1 v13 (baru) =
-0.3+0 = -0.3
v23 (baru) = 0.3+0 = 0.3
v33 (baru) = 0.3+0 = 0.3
Hasil pada tabel 3.4 merupakan iterasi untuk pola pertama, untuk mengetahui nilai dari 1 iterasi penuh semua pola maka dapat dilakukan iterasi pada pola kedua yaitu x1 = 1, x2 = 0, dan t = 1, pola ketiga yaitu x1 = 0, x2 = 1, dan t = 1, dan pola keempat yaitu x1 = 0, x2 = 0, dan t = 0.
Selanjutnya merupakan contoh penerapan metode (algoritma) Hopfield. Misalkan terdapat 2 buah pola yang ingin dikenali yaitu pola A(0,1,0,1,0,1) dan B(1,0,1,0,1,0). Bobot-bobot jaringan saraf tiruan ditentukan sebagai berikut:
� = ⎣ ⎢ ⎢ ⎢ ⎢
⎡− 01 − 01 − 11 − 11 − 11 − 11
1 −1 0 −1 1 −1
−1 1 −1 0 −1 1 1 −1 1 −1 0 −1
−1 1 −1 1 −1 0⎦
⎥ ⎥ ⎥ ⎥ ⎤
Bobot-bobot tersebut simetris (wij = wji ; dimana i=baris dan j=kolom) dan diagonal utamanya adalah 0. Pola A dan pola B dilakukan sebagai vector. Dot product antara A dengan B diperoleh dengan cara mengalikan komponen kedua vector tersebut dengan vector bobot.
Aktivasi node pertama untuk pola A:
(0 1 0 1 0 1) ⦁
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 0 −1
1 −1 1 −1 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
(45)
Aktivasi node kedua:
(0 1 0 1 0 1) ⦁
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 0 −1
−1 1
−1 1
⎦ ⎥ ⎥ ⎥ ⎥ ⎤
= 0 + 0 + 0 + 1 + 0 + 1 = 2
Dan seterusnya untuk node ketiga, keempat, kelima, dan keenam diperoleh masing-masing -3, 2, -3, 2. Masih dengan cara yang sama untuk pola B diperoleh masing-masing 2, -3, 2, -3, 2, -3. Kemudian fungsi ambang ditentukan agar jaringan saraf bisa menghasilkan pola A dan pola B.
�(�) =�1 ����� ≥ � 0 �����< �
Untuk contoh ini diambil � = 0
Maka akan diperoleh f(2)=1 dan f(-3)=0 kemudian pola output untuk pola A dan pola B dapat ditentukan. Untuk pola A output yang dihasilkan (0,1,0,1,0,1), ini sama dengan pola inputnya dapat dikatakan bahwa jaringan syaraf sukses dalam mengenali pola A. sedangkan pola B output yang dihasilkan (1,0,1,0,1,0) yang berarti pola B juga berhasil dikenali karena sama dengan pola inputannya.
3.1.3.1 Perancangan Arsitektur Jaringan
Arsitektur jaringan syaraf tiruan yang digunakan pada penelitian ini ditunjukkan pada Gambar 3.2. dan Gambar 3.3
(46)
X1 X2 X3 X4 X12 Z1 Z2 Z3 Z4 Z12 b=1 b=1 Y1 Y2 Y3 Y4 V11 V12 V13 V14 V15 V21 V22 V23 V24 V25 V31 V32 V34 V33 V35 V41 V42 V43 V44 V121 V122 V123 V124 V125 V45 W11 W12 W13 W14 W21 W22 W23 W24 W31 W32 W33 W34 W41 W42 W43 W44 W121 W122 W123 W124 V01 V02 V03 V04 V012 W01 W02 W03 W04
Gambar 3.2 Arsitektur Jaringan Backpropagation sistem
Gambar 3.2 memperlihatkan sistem terdiri dari 12 inputan (�1 - �12) sesuai dengan jumlah image gigi yang digunakan sebagai data masukan. Pada lapisan tersembunyi terdiri dari (Z1 – Z12). Dan data keluaran (�1 - �4) akan menghasilkan nilai 1 dan 0 yang merupakan subkelas untuk target, target dalam sistem ini adalah 4, dimana :
vektor keluaran target 1 adalah 1 0 0 0 vektor keluaran target 2 adalah 0 1 0 0 vektor keluaran target 3 adalah 0 0 1 0 vektor keluaran target 4 adalah 0 0 0 1
(47)
X1
X2
X3
X12 V12
V3 V2
V1 Y1
Y2
Y3
Y4
Input Vektor Output Vektor
Umpan Balik Fungsi Ktivasi
Gambar 3.3 Arsitektur Jaringan Hopfield sistem
Gambar 3.3 terlihat bahwa semua unit input dihubungkan dengan semua unit output, meskipun dengan bobot yang berbeda-beda. Tidak ada unit yang dihubungkan
dengan unit input lainnya. Model diskrit jaringan Hopfield dalam bobot sinaptik menggunakan vektor biner dimensi n atau dapat dituliskan a{0,1}n. Model ini barisi n neural dan jaringan terdiri dari n(n-1) interkoneksi dua jalur.
Model jaringan Hopfield secara metematis dapat disajikan dalam bentuk matriks simetris NxN dengan diagonal utamanya bernilai 0. Pemberian nilai 0 pada diagonal utama dimaksudkan agar setiap neuron tidak memberi input pada dirinya sendiri. Dengan demikian jaringan Hopfield merupakan suatu jaringan dengan bobot simetrik , bahwa:
Wij = Wji Dan
Wii=0
Keterangan :
Wij : matrik bobot koneksi dari unit i ke unit j Wii = 0 : nilainya sama dengan 0
(48)
3.2. Pemodelan
Pada penelitian ini menggunakan UML sebagai bahasa pemodelan untuk membantu mendesain dan merancang sistem identifikasi penyakit gigi. Model UML yang digunakan dalam penelitian ini yaitu use case diagram, sequence diagram, dan activity digaram.
3.2.1. Use Case Diagram
Use case diagram merupakan diagram yang menggambarkan interaksi antara sistem dan eksternal sistem dan aktor, dalam kasus ini admin dan pengguna sebagai aktornya. Use case digunakan untuk menggambarkan siapa yang akan menggunakan sistem dan bagaimana cara aktor berinteraksi dengan sistem. Berikut ini merupakan use case diagram dari sistem yang akan dirancang.
Sistem Identifikasi Penyakit Gigi
Latih Backpropagation
aktor
Latih Hopfield
<extend>
<extend>
Pengujian Penyakit Gigi Backpropagation
Pengujian Penyakit Gigi Hopfield
(49)
Berikut adalah tabel yang menunjukkan dokumentasi naratif dari use case latih backpropagation.
Tabel 3.5 Dokumentasi Naratif Use Case Latih Backpropagation
Nama Use case Latih Backpropagation Aktor User dan Admin
Deskripsi Use case ini mendeskripsikan proses pelatihan jaringan sayaraf tiruan Backpropagation
Pre-kondisi Masuk pada antarmuka Pelatihan
Bidang khas Kegiatan pengguna Respon sistem 1. Isi id image gigi
2. Klik tombol Open
3. Pilih image gigi yang akan digunakan sebagai masukan
4. Geser slider Threshold
5. Klik tombol Reduksi dan Simpan
1. Tidak ada
2. Menampilkan antarmuka cari image gigi
3. Menampilkan image gigi beserta nama file image gigi
4. Menampilkan image gigi yang telah di-threshold
5. Menyimpan hasil reduksi
6. Klik tombol Latih Backpropagation
6. Proses pelatihan Backpropagation, Menampilkan grafik pelatihan, dan menyimpan bobot pelatihan
Bidang Alternatif
1. Tekan tombol Reset 1. Sistem mengosongkan text field nama file, dan gambar.
Post-kondisi Sistem menyimpan bobot pelatihan, menampilkan lama waktu pelatihan, dan menampilkan grafik pelatihan.
(50)
Tabel 3.6 Dokumentasi Naratif Use Case Latih Hopfield Nama Use case Latih Hopfield
Aktor User dan Admin
Deskripsi Use case ini mendeskripsikan proses pelatihan jaringan sayaraf tiruan Hopfield
Pre-kondisi Masuk pada antarmuka Pelatihan
Bidang khas Kegiatan pengguna Respon sistem 1. Isi id image gigi
2. Klik tombol Open
3. Pilih image gigi yang akan digunakan sebagai masukan
4. Geser slider Threshold
5. Klik tombol Reduksi dan Simpan
1. Tidak ada
2. Menampilkan antarmuka cari image gigi
3. Menampilkan image gigi beserta nama file image gigi
4. Menampilkan image gigi yang telah di-threshold
5. Menyimpan hasil reduksi
6. Klik tombol Latih Backpropagation
6. Proses pelatihan Hopfield, dan menyimpan bobot pelatihan
Bidang Alternatif
1. Tekan tombol Reset 1. Sistem mengosongkan text field id, nama file dan axes gambar.
Post-kondisi Sistem menyimpan bobot pelatihan, dan menampilkan lama waktu pelatihan.
(51)
Tabel 3.7 Dokumentasi Naratif Use Case Identifikasi Penyakit Gigi (Pengujian)
Backpropagation
Nama Use case Identifikasi Penyakit Gigi (pengujian) Backpropagation Aktor Pengguna
Deskripsi Use case ini mendeskripsikan proses identifikasi penyakit gigi dengan menggunakan jaringan syaraf tiruan
Backpropagation
Prakondisi Masuk pada antarmuka Pengujian
Bidang khas Kegiatan pengguna Respon sistem
1. Klik tombol Open 1. Menampilkan antarmuka cari image gigi
2. Pilih image gigi yang ingin dikenali
2. Menampilkan image gigi
3. Geser slider Threshold 3. Menampilkan image gigi yang telah di-threshold
4. Klik tombol kenali Backpropagation
4. Pengujian dengan jaringan syaraf tiruan Backpropagation dan menampilkan hasil pengenalan
Bidang Alternatif
1. Tekan tombol Reset 1. Sistem mengosongkan text field dan axes pada anatarmuka pengujian
Post-kondisi Sistem menampilkan hasil pengenalan berupa nama gigi, solusi serta waktu pengujian
(52)
Tabel 3.8 Dokumentasi Naratif Use Case Identifikasi Penyakit Gigi (Pengujian)
Hopfield
Nama Use case Identifikasi bentuk gigi (pengujian) Hopfield Aktor Pengguna
Deskripsi Use case ini mendeskripsikan proses identifikasi penyakit gigi dengan menggunakan jaringan syaraf tiruan Hopfield Prakondisi Masuk pada antarmuka Pengujian
Bidang khas Kegiatan pengguna Respon sistem
1. Klik tombol Open 1. Menampilkan antarmuka cari image gigi
2. Pilih image gig yang ingin dikenali
2. Menampilkan image gigi
3. Geser slider Threshold 3. Menampilkan image gigi yang telah di-threshold
4. Klik tombol kenali Hopfield
4. Pengujian dengan jaringan syaraf tiruan Hopfield dan
menampilkan hasil pengenalan
Bidang Alternatif
1. Tekan tombol Reset 1. Sistem mengosongkan text field dan axes pada anatarmuka pengujian
Post-kondisi Sistem menampilkan hasil pengenalan berupa nama gigi, solusi serta waktu pengujian
(53)
3.2.2. Sequence Daigram
Sequence Daigram merupakan diagram yang menggambarkan interaksi antara aktor dan sistem. Sequence diagram menunjukan sejumlah contoh maupun pesan yang berada atau melewati objek-objek tersebut didalam use case. Berikut Berikut ini merupakan gambaran dari sequence diagram dari sistem yang telah dirancang.
: Aktor : Form Pelatihan : Threshold : Reduksi : Latih Backpropagation
Threshold matriks image
Reduksi matriks image
Proses latih
Simpan bobot matriks tereduksi
open image gigi
(54)
: Aktor : Form Pelatihan : Threshold : Reduksi : Latih Hopfield
Threshold matriks image
Reduksi matriks image
Proses latih
Simpan bobot matriks tereduksi
open image gigi
Gambar 3.6 Sequence Diagram Pelatihan JST Hopfield
: Aktor : Form Pengujian : Threshold : Reduksi : Uji Backpropagation
Threshold matriks image
Reduksi matriks image
Proses simulasi matriks tereduksi
tampilkan nama Open image gigi
tampilkan solusi
(55)
: Aktor : Form Pengujian : Threshold : Reduksi : Uji Hopfield
Threshold matriks image
Reduksi matriks image
Proses simulasi matriks tereduksi
tampilkan nama Open image gigi
tampilkan solusi
Gambar 3.8 Sequence Diagram Pengujian JST Hopfield
3.2.3. Activity Diagram
Activity diagram merupakan diagram yang berfungsi untuk menggambarkan logika procedural, jalan kerja suatu sistem. Diagram ini memiliki peran yang sama dengan diagram alir yang mana memungkinkan siapapun yang melakukan proses untuk dapat memilih urutan dalam melakukannya sesuai keinginannya. Berikut ini merupakan activity diagram dari sistem yang akan dirancang.
(56)
Klik tombol reduksi dan simpan
Klik tombol pelatihan backpropagation
Latih backpropagation Tampil grafik pelatihan
Simpan bobot pelatihan reduksi dan simpan data
Sistem
Aktor
Open image gigi Tampilan image gigi
Threshold image gigi Tampil image gigi hasil threshold
Input id gigi
(57)
Klik tombol reduksi dan simpan
Klik tombol pelatihan hopfield
Latih hopfield
Simpan bobot pelatihan Reduksi dan simpan data
Sistem
Aktor
Open image gigi
Threshold gigi
Tampilkan image gigi
Tampilkan hasil Threshold gigi
Input id gigi
(58)
Klik tombol pengujian backpropagation
Tampilkan hasil pengujian
Sistem
Aktor
Open image gigi Tampil image gigi
Threshold gigi
Hasil threshold gigi
Pengujian Backpropagation
Gambar 3.11 Activity Diagram Pengujian Backpropagation
Klik tombol pengujian backpropagation
Tampilkan hasil pengujian
Sistem
Aktor
Open image gigi Tampil image gigi
Threshold gigi
Hasil threshold gigi
Pengujian Hopfield
(59)
3.3. Pseudocode program
Pseudocode adalah suatu deskripsi dari algoritama yang disusun dengan mengikuti struktur bahasa pemrograman yang dapat digambarkan dengan mudah sehingga dapat dipahami oleh manusia itu sendiri.
3.3.1. Pseudocode Proses pelatihan JST
GRAYSCALE
citra_gigi ← imread(fullfile(nama_path, nama_file)) citra_grayscale ← rgb2gray(citra_gigi)
THRESHOLD
[b k] ← size(citra_grayscale) nilai_threshold ← 130
for x ← 1 to b for y ← 1 to k
if citra_grayscale(x,y)< nilai_threshold citra_threshold(x,y) ← 0
elseif citra_grayscale (x,y)>= nilai_threshold citra_threshold (x,y) ← 1
end end end
REDUKSI DATA
citra_threshold[A B] ← citra_threshold pos ← 0
for i ← 1 to 50 for j ← 1 to 5 z(i,j) ← 0 for k ← 1 to 10 pos ← pos+1
z(i,j) ← z(i,j)+aa(i,pos) end
end pos ← 0 end
pos ← 0
for i ← 1 to 5 for j ← 1 to 5 zz(j,i) ← 0 for k ← 1 to 10 pos ← pos+1
zz(j,i) ← zz(j,i)+z(pos,i) end
end pos ← 0 end
for i ← 1 to 5 for j ← 1 to 5
(1)
terapi dengan Antibiotika Amoksisilin selama 5 hari'; elseif isequal (a,gigi12)
name= 'abses gusi';
solusi='Pasien dianjurkan berkumur-kumur dengan air hangat, minum obat Paracetamol untuk mengurangi nyeri dan rasa sakit pada gigi yang mengalami Abses Jika jelas terdapat infeksi, dapat diberikan terapi dengan Antibiotika Amoksisilin selama 5 hari';
else
name='Tidak Dikenali'; solusi='Tidak Dikenali'; end
set(handles.nama,'String',name); set(handles.solusi,'String',solusi); waktuuji = toc(tStart);
set(handles.timer,'string',waktuuji);
function nama_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties. function nama_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function solusi_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties. function solusi_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function timer_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties. function timer_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in Reset.
function name_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties. function name_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
% ---function Untitled_1_Callback(hObject, eventdata, handles)
% ---function TampilanAwal_Callback(hObject, eventdata, handles)
TampilanAwal
delete(handles.formpengujian)
% ---function PelatihanJST_Callback(hObject, eventdata, handles)
PelatihanJST
(2)
% ---function BantuanPengujianJST_Callback(hObject, eventdata, handles) BantuanPengujianJST
delete(handles.formpengujian)
% ---function MenuKeluar_Callback(hObject, eventdata, handles)
close PengujianJST
% ---function Untitled_2_Callback(hObject, eventdata, handles)
% ---function gambar_Callback(hObject, eventdata, handles)
KetGbr
delete(handles.formpengujian)
% --- Executes on button press in reset.
function reset_Callback(hObject, eventdata, handles) set(handles.slider_thres,'Enable','on');
set(handles.nilai,'String','','Enable','on'); set(handles.name,'String','','Enable','on'); set(handles.nama,'String','','Enable','on'); set(handles.solusi,'String','','Enable','on'); set(handles.timer,'String','','Enable','on'); axes(handles.image_uji);
imshow(1);
% --- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata, handles) citra_gray=rgb2gray(handles.citra);
citra_gray=double(citra_gray); [b k]=size(citra_gray);
for x=1:b for y=1:k
if citra_gray(x,y)<130 citra_threshold(x,y)=0; elseif citra_gray(x,y)>=130 citra_threshold(x,y)=1; end
end end
citra_threshold
handles.citra_tres=citra_threshold; guidata(hObject,handles);
axes(handles.image_uji); imshow(citra_threshold);
% hObject handle to pushbutton7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes during object creation, after setting all properties. function solusi_CreateFcn(hObject, eventdata, handles)
% hObject handle to solusi (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
(3)
bantuanUtama.m
function varargout = BantuanAwal(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @BantuanAwal_OpeningFcn, ... 'gui_OutputFcn', @BantuanAwal_OutputFcn, ... 'gui_LayoutFcn', [] , ...
'gui_Callback', []); if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1}); end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else
gui_mainfcn(gui_State, varargin{:}); end
% End initialization code - DO NOT EDIT
% --- Executes just before BantuanAwal is made visible.
function BantuanAwal_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject; % Update handles structure guidata(hObject, handles);
% --- Outputs from this function are returned to the command line. function varargout = BantuanAwal_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
% --- Executes on selection change in listbox1.
function listbox1_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties. function listbox1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties. function popupmenu1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
% --- Executes during object creation, after setting all properties. function figure1_CreateFcn(hObject, eventdata, handles)
% ---function Untitled_1_Callback(hObject, eventdata, handles)
% ---function MUtama_Callback(hObject, eventdata, handles)
Utama
delete(handles.figure1)
% ---function MPelatihan_Callback(hObject, eventdata, handles)
Pelatihan
(4)
% ---function MPengujian_Callback(hObject, eventdata, handles)
Pengujian
delete(handles.figure1)
% ---function MGambar_Callback(hObject, eventdata, handles)
KetGbr
delete(handles.figure1)
% ---function MKeluar_Callback(hObject, eventdata, handles)
TampilanAwal
delete(handles.figure1)
bantuanPelatihan.m
function varargout = BantuanPelatihanJST(varargin) % Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @BantuanPelatihanJST_OpeningFcn, ...
'gui_OutputFcn', @BantuanPelatihanJST_OutputFcn, ...
'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1}); end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else
gui_mainfcn(gui_State, varargin{:}); end
% End initialization code - DO NOT EDIT
% --- Executes just before BantuanPelatihanJST is made visible.
function BantuanPelatihanJST_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject; % Update handles structure guidata(hObject, handles);
% --- Outputs from this function are returned to the command line. function varargout = BantuanPelatihanJST_OutputFcn(hObject,
eventdata, handles)
varargout{1} = handles.output;
% --- Executes on selection change in listbox2.
function listbox2_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties. function listbox2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
% --- Executes during object creation, after setting all properties. function bantuanlatih_CreateFcn(hObject, eventdata, handles)
% ---function MenuKeluar_Callback(hObject, eventdata, handles)
(5)
bantuanPengujian.m
function varargout = BantuanPengujianJST(varargin) % Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @BantuanPengujianJST_OpeningFcn, ...
'gui_OutputFcn', @BantuanPengujianJST_OutputFcn, ...
'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1}); end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else
gui_mainfcn(gui_State, varargin{:}); end
% End initialization code - DO NOT EDIT
% --- Executes just before BantuanPengujianJST is made visible.
function BantuanPengujianJST_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject; % Update handles structure guidata(hObject, handles);
% --- Outputs from this function are returned to the command line. function varargout = BantuanPengujianJST_OutputFcn(hObject,
eventdata, handles)
% Get default command line output from handles structure varargout{1} = handles.output;
% --- Executes during object creation, after setting all properties. function bantuanuji_CreateFcn(hObject, eventdata, handles)
% --- Executes on selection change in listbox1.
function listbox1_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties. function listbox1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function Untitled_1_Callback(hObject, eventdata, handles) function MenuUtama_Callback(hObject, eventdata, handles) Utama
delete(handles.bantuanuji)
function MenuPelatihan_Callback(hObject, eventdata, handles) Pelatihan
delete(handles.bantuanuji)
function MenuGambar_Callback(hObject, eventdata, handles) KetGbr
delete(handles.bantuanuji)
function MenuKeluar_Callback(hObject, eventdata, handles) PengujianJST
(6)
CURRICULUM VITAE
Nama : Raja Rizky Ramadhan Hsb Alamat Sekarang : Jl. Bajak II H No. 5 Medan Alamat Orang tua : Jl. Bajak II H No. 5 Medan Telp/Hp : 085270100500
Riwayat Pendidikan
2009-2014 : S1 Ilmu Komputer Universitas Sumatera Utara, Medan 2006-2009 : SMA Negri 21 Medan
2003-2006 : SMP Negeri 6 Medan 1997-2003 : SD Negeri 060924 Medan
Keahlian/Kursus yang diikuti
Jaringan Komputer