Mendeteksi Penyakit Gigi Menggunakan Jaringan Saraf Tiruan Dengan Menggunakan Metode Backpropagation Dan Metode Hopfield

(1)

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 +

�=0

x

i

v

ji

zj = f(z_netj) =

1+exp 1

(−znetj)

6.

Langkah 5

Hitung semua keluaran jaringan di unit yk (k= 1,2, ..., m) y_net k = w ko +

�=1

z

j

w

kj

yk = 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

1

x

2

x

4

x

3

x

5

x

6

W31 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 +

�=1

z

j

w

kj

y_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

Email

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