SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
AGI AYUBI
10110515
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
vi
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... vi
DAFTAR GAMBAR ... ix
DAFTAR TABEL ... xi
DAFTAR SIMBOL ... xiii
DAFTAR LAMPIRAN ... xvii
BAB 1 PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Rumusan Masalah ... 2
1.3 Maksud dan Tujuan... 3
1.4 Batasan Masalah ... 3
1.5 Metodologi Penelitian ... 4
1.6 Sitematika Penulisan ... 5
BAB 2 LANDASAN TEORI ... 7
2.1 Kecerdasan Buatan... 7
2.1.1 Sejarah Kecerdasan Buatan ... 9
2.1.2 Jaringan Syaraf Tiruan ... 10
2.1.3 Komponen Jaringan Syaraf Tiruan ... 12
2.1.4 Fungsi Aktivasi Jaringan Syaraf Tiruan ... 13
2.2 JST Backpropagation... 15
2.2.2 Prosedur Pelatihan Algoritma Backpropagation ... 17
2.2.3 Prosedur Pengujian Algoritma Backpropagation ... 21
2.3 Penyakit Mata Menular ... 21
2.4 Algoritma ... 23
2.4.1 Kompleksitas Algoritma ... 24
2.5 Cross Validation... 28
BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 31
3.1 Analisis Masalah ... 31
3.2 Analisis Data Masukan ... 32
3.3 Analisis Metode ... 33
3.4 Analisis Target Keluaran ... 56
3.5 Analisis Kompleksitas ... 56
3.6 Analisis Kebutuhan Sistem ... 61
3.6.1 Analisis Kebutuhan Non Fungsional ... 62
3.6.1.1 Analisis Kebutuhan Perangkat Keras ... 62
3.6.1.2 Analisis Kebutuhan Perangkat Lunak ... 62
3.6.1.3 Analisis Kebutuhan Perangkat Pikir ... 63
3.6.2 Analisis Kebutuhan Fungsional ... 63
3.6.2.1 Use Case Diagram ... 63
3.6.2.2 Activity Diagram ... 64
3.6.2.3 Class Diagram ... 64
3.6.2.4 Sequence Diagram ... 64
3.6.3 Perancangan Sistem ... 64
3.6.3.1 Perancangan Basis Data ... 65
3.6.3.3 Perancangan Antarmuka ... 65
BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 67
4.1 Implementasi ... 67
4.1.1 Implementasi Perangkat Keras ... 67
4.1.2 Implementasi Perangkat Lunak ... 65
4.1.3 Implementasi Database ... 68
4.1.4 Implementasi Class ... 69
4.1.5 Implementasi Antarmuka ... 69
4.2 Pengujian Metode ... 70
4.2.1 Skenario Pengujian 1 ... 71
4.2.2 Skenario Pengujian 2 ... 82
4.3 Kesimpulan Pengujian ... 89
BAB 5 KESIMPULAN DAN SARAN... 91
5.1 Kesimpulan ... 91
5.2 Saran ... 91
93 Informatika UII, 2004.
[2] Novi Indah Pradasari, F.Trias Pontia W, Dedi Triyanto. Aplikasi Jaringan
Syaraf Tiruan untuk Memprediksi Penyakit Saluran Pernafasan dengan Metode
Backpropagation, Jurnal, Jurnal Coding Sistem Komputer Universitas
Tanjungpura Vol 1, No 1 (2013).
[3] Ph.D Moh. Nazir, Metode Penelitian, Risman Sikumbang, Bogor, Indonesia:
Ghalia Indonesia, 2011.
[4] Roger S. Pressman. Rekayasa Perangkat Lunak : pendekatan praktisi (Buku I) ; diterjemahkan oleh LN Harnaningrum. Edisi II. Yogyakarta : Andi. 2007.
[5] Sri Kusumadewi. Artificial Intelligence (Teknik dan Aplikasinya). Yogyakarta :
Penerbit Graha Ilmu. 2003.
[6] Suyanto. Artificial Intelligence : Searching, Reasoning, Planning dan Learning
(Edisi Revisi). Penerbit Informatika. 2011.
[7] Siang, Jong Jek, Jaringan Syaraf Tiruan dan Pemrogramannya Menggunakan
Matlab. Yogyakarta : Andi Offset, 2004.
[8] American Academy of Ophthalmology. External disease and cornea. SanFransisco. 2006-2007
[9] Munawar. Pemodelan Visual dengan UML. Graha ILMU, 2005.
[10] Belajar Pemrograman C#. Yogyakarta : C.V. Andi Offset, Wahana Komputer,
2008.
[11] Fowler, Martin.UML Distilled edisi 3 Panduan Singkat Bahasa Pemodelan
Object Standar. Yogyakarta: Andi, 2005
[12] Munir, Rinaldi.Algoritma & Pemrograman Dalam Bahasa Pascal dan C.
[13] Susabda Ngoen, Thompson. Pengantar Algoritma dengan Bahasa C. Penerbit
Salemba Teknika.2004
[14] Munir, Rinaldi.Matematika Diskrit. Penerbit Informatika.2010
[15] Witten, Ian. H. Data Mining Practical Machine Learning Tools and Technique.
(3rd edition). New York: Morgan Kauffman. 2011
[16] Haryanto. Teknik Data Mining untuk Mendapatkan Informasi dari Keluaran
Perangkat Jaringan. Jurnal. Binus University, Jakarta, 2012.
iii
Alhamdulillah, Puji dan Syukur kepada Allah SWT yang telah melimpahkan
rahmat dan karunia-Nya, serta atas ijin dan cinta-Nyalah sehingga penelitian ini
dapat diselesaikan dengan baik sesuai dengan waktu yang direncanakan.
Skripsi yang berjudul “Analisis Performansi Metode Backpropagation
untuk Mengidentifikasi Penyakit Mata Menular” disusun untuk memperoleh gelar Sarjana Teknik Informatika, Fakultas Teknik dan Ilmu Komputer
Universitas Komputer Indonesia.
Penulis sepenuhnya menyadari bahwa tanpa adanya dukungan dan perhatian
yang baik dari berbagai pihak, penulis tidak akan mampu menyelesaikan skripsi
ini dengan baik dan tepat pada waktunya. Maka dari itu, ijinkanlah penulis
mengucapkan rasa terima kasih yang paling tulus dan sedalam-dalamnya kepada :
1. Allah SWT, atas ijin dan semua kemudahan, kelancaran, dan jalan yang telah
dibukakan oleh-Nya dalam menyelesaikan skripsi ini.
2. Kepada kedua orang tua, Abah (Alm)Wawan Hedi Irawan, selaku Ayah dari
penulis yang telah menjadi inspirasi penulis dalam menyelesaikan penelitian
ini, juga Ibu Djuanawati, selaku Ibu penulis yang telah banyak memberikan
dukungan yang sangat besar bagi penulis, karena penulis sadar tanpa peranan,
nasihat, dan dukungan beliau maka akan sangat sulit untuk menyelesaikan
penelitian ini. Penulis sangat berharap agar mamah dan abah turut bahagia
dengan terselesaikannya jenjang pendidikan S1 penulis.
3. Keluarga besar penulis, Ega Irana, Nurdiansyah, Noor Rahmasari, nenek,
kakek, dan saudara-saudara yang telah mendoakan untuk kelancaran skripsi
ini dan terus memberikan motivasi agar tidak menyerah dalam
memperjuangkan skripsi ini.
4. Ibu Nelly Indriani W, S.Si.,M.T. selaku dosen pembimbing yang telah banyak
memberikan bimbingan, saran, dan juga nasihat dari sejak awal penelitian
kesabaran dalam membimbing penulis dan ilmu-ilmu yang sangat berharga
ini.
5. Bapak Adam Mukharil Bachtiar, S.Kom., M.T selaku dosen penguji yang
telah memberikan masukan dan saran-saran dalam penyusunan penelitian
skripsi ini.
6. Bapak Galih Hermawan S.Kom., M.T selaku dosen penguji. Terima kasih
karena telah meluangkan waktu untuk menguji serta memberikan saran dan
nasehatnya dalam penyusunan skripsi ini.
7. Bapak Irawan Afrianto, M.T selaku Ketua Program Studi Teknik Informatika
Universitas Komputer Indonesia.
8. Bapak Alif Finandhita, S.Kom selaku dosen wali kelas IF-12 2010.
9. Seluruh Staff Dosen Jurusan Teknik Informatika.
10.Teman-teman IF-12 khususnya Intan Purwati, Geby Aranta Sonia, Aditya
Komaruzzaman, Amal Julio, Septiyan Hendiyana, dan Muhamad Eko
Harianto, dan teman-teman IF-12 2010 yang sudah melewati hari-hari ini
bersama-sama atau sekedar mengacak-acak kosan, terima kasih atas
pertemanan yang tidak bisa dinilai dengan apapun.
11.Teteh Dwi Putri Pangrestu yang sudah memberikan banyak pencerahan
tentang backpropagation, untuk penjelasan singkat di depan alfamart juga
bekal 2 buah buku sakti “jaringan syaraf tiruan” yang sangat bermanfaat dalam penelitian ini.
12.Teman seperjuangan skripsi Rahayu Dwi Permatasari, Nuri Insania Andyani,
Geanissa Handarini, Rifat Firdaus, Dewi Kartini Sinaga, Nida Aprida dan
teman-teman lainnya, terima kasih atas dukungan dan saran yang sangat
membantu penelitian ini.
13.Teman-teman anak bimbingan Ibu Nelly, yang telah menunggu giliran
bimbingan juga melewati masa-masa skripsi ini bersama-sama, terima kasih
atas
14.Teman-teman GVT Khususnya Ardiansah Rohman, Sofia Nurjanah, Annis
dukungan yang tidak ternilai harganya, dan juga gangguan berupa ajakan main
malam dan nongkrong yang sangat susah untuk penulis tolak, penulis ucapkan
banyak terima kasih.
15.Seluruh pihak yang telah memberikan kontribusi dan bantuannya bagi penulis,
namun tidak sempat dicantumkan namanya satu per satu.
Penulis telah berusaha semaksimal mungkin dalam penyelesaian skripsi
ini, namun penulis sadar akan banyaknya kelemahan baik dalam segi pemahaman
penulis, isi dari skripsi, tata bahasa, juga apabila dalam penulisan laporan tugas
akhir ini penulis telah menyinggung perasaan atau telah menyakiti hati semua
orang, baik yang disengaja maupun yang tidak disengaja, untuk itu penulis
memohon maaf yang sebesar-besarnya. Akhir kata, semoga skripsi ini dapat
bermanfaat bagi para pembaca.
Bandung, Agustus 2014
1. Data Pribadi
Nama Agi Ayubi
Tempat/Tanggal Lahir Bandung, 28 Januari 1993
Jenis Kelamin Laki - laki
Warga Negara Indonesia
Agama Islam
Status Belum Menikah
Alamat Parken Blok D-4 No.10
Email agiayubi@gmail.com
No. Handphone 085720216666
2. Pendidikan Formal
1996-1998 RRI Bandung
1998-2004 Al-Basyariyah
2004-2007 MTs Mathla’ul Huda
2007-2010 MA Mathla’ul Huda
2010-2014 Program Studi S1 Teknik Informatika
Universitas Komputer Indonesia (UNIKOM)
1
Jaringan syaraf tiruan merupakan salah satu cabang dari AI (Artificial
Intellegence), adalah salah satu representasi buatan dari otak manusia yang selalu
mencoba untuk mensimulasikan proses pembelajaran pada otak manusia. Istilah
buatan ini diimplementasikan dengan menggunakan program komputer yang mampu
menyelesaikan sejumlah proses perhitungan selama proses pembelajaran [1]. Metode
backpropagation merupakan salah satu metode pembelajaran dari algoritma jaringan
syaraf tiruan. Metode backpropagation memiliki tingkat keakuratan yang tinggi
karena proses pelatihan yang dilakukan secara berulang-ulang hingga menghasilkan
nilai yang memiliki kesalahan yang sangat kecil. Metode pembelajaran
backpropagation banyak digunakan untuk penyelesaian suatu masalah berkaitan
dengan identifikasi, prediksi, dan pengenalan pola.
Salah satu penggunaan metode backpropagation adalah dalam analisis
medikal, seperti pengidentifikasian suatu penyakit yang memiliki gejala yang bias
antara jenis yang satu dengan yang lainya. Hal ini telah dibuktikan pada jurnal “Aplikasi jaringan syaraf tiruan untuk memprediksi penyakit saluran pernafasan dengan metode backpropagation” karya Novi Indah Pradasari, F.Trias Pontia W, dan
Dedi Triyanto [2]. Pada jurnal ini, metode backpropagation digunakan untuk
memprediksi penyakit saluran pernafasan berdasarkan gejala penyakit yang disusun
menjadi 12 buah variabel masukan. Target keluaran sistem berupa jenis penyakit
saluran pernafasan yang teridentifikasi oleh sistem, sistem memiliki batasan penyakit
yang dapat diidentifikasi sebanyak lima buah penyakit yaitu penyakit Asma, ISPA,
Pneumonia, Bronkhitis, Sinusitis, dan Tuberkulosis. Penelitian ini mendapatkan
kesimpulan bahwa metode backpropagation dapat digunakan untuk memprediksi
96 data dan pengujian 24 data menggunakan dua buah hidden layer, target error
sebesar 0,0001, dan learning rate sebesar 0,1 [2].
Penyakit mata menular memiliki gejala yang hampir mirip antara jenis yang
satu dan yang lainya. Gejala-gejala yang ditimbulkan penyakit mata menular dapat
berjumlah tiga sampai lima gejala setiap jenis penyakitnya, jumlah ini merupakan
jumlah yang sangat sedikit. Suatu penyakit akan sangat mudah diidentifikasi apabila
memiliki gejala yang berbeda, akan tetapi gejala yang ditimbulkan penyakit mata
menular sangat bias antara jenis penyakit satu dan lainnya. Penyakit mata menular
menjadi sulit untuk diidentifikasi karena minimnya gejala yang ditimbulkan dan
banyaknya gejala yang mirip.
Metode backpropagation diimplementasikan pada kasus penyakit mata menular
untuk mengidentifikasi jenis penyakit mata menular berdasarkan gejala-gejala yang
ditimbulkan oleh penyakit. Pada metode backpropagation gejala-gejala yang
ditimbulkan digunakan sebagai sinyal input yang akan dihitung sedemikian hingga
didapatkan hasil berupa penyakit yang teridentifikasi. Adapun jenis penyakit mata
menular yang diidentifikasi adalah penyakit Konjungtivitis, Keratokonjutivitis
Vernalis, Endoftalmitis, Selulitis Orbitalis, Trakoma, Blefaritis, dan Ulkus Kornea.
Penyakit ini memiliki ciri-ciri dan gejala yang hampir sama seperti mata merah, gatal,
nyeri, berair, dan lain-lain. Dari masalah yang telah dijelaskan, maka perlunya
dilakukan analisis performansi metode backpropagation untuk mengetahui akurasi
dan mendapatkan parameter yang optimal dari metode backpropagation dalam
mengidentifikasi penyakit mata menular.
1.2 Rumusan Masalah
Berdasarkan latar belakang masalah yang telah diuraikan, maka rumusan
masalah pada penelitian ini adalah bagaimana menganalisis performansi berupa
akurasi dan mendapatkan parameter yang optimal dari algoritma jaringan syaraf
penyakit mata menular berdasarkan gejala-gejala yang dialami oleh penderita
penyakit mata menular.
1.3 Maksud dan Tujuan
Maksud dari penelitian ini adalah untuk menganalisis performansi algoritma
jaringan syaraf tiruan dengan metode pembelajaran backpropagation yang
diimplementasikan pada sistem pengidentifikasi penyakit mata menular.
Sedangkan tujuan yang akan dicapai dalam penelitian adalah untuk
mengetahui performansi berupa akurasi dan parameter yang optimal dari algoritma
jaringan syaraf tiruan dengan metode pembelajaran backpropagation yang
diimplementasikan pada sistem pengidentifikasi penyakit mata menular.
1.4 Batasan Masalah
Batasan masalah bertujuan untuk memudahkan perancangan dan menghindari
meluasnya permasalahan, adapun batasan masalah pada penulisan tugas akhir ini
yaitu :
1. Data yang menjadi masukan adalah gejala yang dialami oleh penderita penyakit
mata menular seperti mata merah, gatal , berair dan lain-lain. Data ini kemudian
diolah menjadi 19 gejala atau variable masukan sistem.
2. Masing-masing variable diberi nilai 0 bila tidak terjadi gejala dan 1 bila terjadi
gejala pada penderita.
3. Minimal batasan gejala yang harus dipilih oleh user untuk mendeteksi penyakit
mata menular adalah empat buah gejala yang diderita oleh penderita. Jika kurang
dari empat buah gejala, maka sistem tidak bisa mengidentifikasi penyakit mata
menular tersebut.
4. Keluaran sistem yang diharapkan berupa hasil identifikasi terserang penyakit
5. Penentuan jumlah neuron pada lapisan tersembunyi, nilai learning rate, jumlah
iterasi (epoch) dan batasan error (MSE atau Mean Square Error) disesuaikan
selama proses pelatihan berlangsung untuk mendapatkan jaringan MLP (Multi
Layer Perceptron) yang paling sesuai untuk mengidentifikasi penyakit mata
menular.
6. Proses pengujian menggunakan data sample dilakukan dengan metode cross
validation dan confusion matrix.
1.5 Metodologi Penelitian
Metodologi penelitian merupakan suatu proses yang digunakan untuk
memecahkan suatu masalah yang logis dimana memerlukan data untuk mendukung
terlaksananya suatu penelitian. Metode penelitian yang digunakan dalam penulisan
tugas akhir ini adalah metode analisis deskriptif, yang menggambarkan fakta-fakta
dan informasi dalam situasi atau kejadian secara sistematis, faktual dan akurat [3].
1. Tahap pengumpulan data
Pengumpulan data adalah cara atau prosedur yang sistematis dan standar untuk
memperoleh data yang diperlukan. Adapun metode pengumpulan data pada penelitian
ini adalah sebagai berikut:
a. Observasi
Observasi yaitu mengamati secara langsung permasalahan yang terjadi
pada lapangan penelitian untuk memperoleh data-data dan gambaran yang
jelas mengenai objek yang diteliti.
b. Studi Pustaka
Pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan
bacaan-bacaan yang ada kaitannya dengan algoritma JST
2. Tahap pembuatan perangkat lunak.
Teknik pembuatan perangkat lunak menggunakan paradigma perangkat lunak
secara Linear Sequential, yang meliputi beberapa proses diantaranya:
a. Analysis
Merupakan tahap menganalisis hal-hal yang diperlukan dalam pelaksanaan
proyek pembuatan perangkat lunak.
b. Design
Tahap penerjemahan dari data yang dianalisis kedalam bentuk yang mudah
dimengerti oleh user. c. Coding
Tahap penerjemahan data atau pemecahan masalah yang telah dirancang kedalam
bahasa pemrograman tertentu.
d. Test
Merupakan tahap pengujian terhadap perangkat lunak yang dibangun. [4]
Gambar 1.1 Model Linear Sequential [4]
1.6 Sistematika Penulisan
Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran
umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini
BAB I PENDAHULUAN
Pada bab ini memuat latar belakang masalah, identifikasi masalah, maksud dan tujuan
penelitian, batasan masalah, metodologi penelitian yang digunakan, dan sistematika
penulisan.
BAB II. LANDASAN TEORI
Bab ini membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan
algoritma Jaringan Syaraf Tiruan, metode pembelajaran backpropagation
kompleksitas algoritma, metode pengujian algoritma dan penjelasan tentang penyakit
mata menular.
BAB III. ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi analisis dalam pembangunan sistem yaitu analisis masalah, analisis data
masukan, analisis data keluaran, analisis metode, analisis kompleksitas, dan analisis
kebutuhan perangkat lunak.
BAB IV. IMPLEMENTASI DAN PENGUJIAN
Bab ini berisi implementasi dan pengujian sistem berdasarkan analisis pada bab 3.
Pengujian yang dilakukan untuk mengetahui akurasi dari metode backpropagation
menggunakan metode cross validation dan confusion matrix.
BAB V. KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dan saran yang sudah diperoleh dari hasil penulisan tugas
akhir analisis performansi algoritma jaringan syaraf tiruan dengan metode
7
Kecerdasan Buatan atau artificial intelligence merupakan salah satu bagian ilmu
komputer yang membuat agar mesin (komputer) dapat melakukan pekerjaan seperti
dan sebaik yang dilakukan manusia. Pada awal diciptakannya, komputer hanya
difungsikan sebagai alat hitung saja. Namun seiring dengan perkembangan jaman,
maka peran komputer semakin mendominasi kehidupan umat manusia. Komputer
tidak lagi hanya digunakan sebagai alat hitung, lebih dari itu, komputer diharapkan
untuk dapat diberdayakan untuk mengerjakan segala sesuatu yang bisa dikerjakan
oleh manusia [5].
Manusia bisa menjadi pandai dalam menyelesaikan segala permasalahan di
dunia ini karena manusia mempunyai pengetahuan dan pengalaman. Pengetahuan
diperoleh dari cara mempelajarinya. Semakin banyak bekal pengetahuan yang
dimiliki oleh seseorang tentu saja diharapkan akan lebih mampu dalam
menyelesaikan permasalahan. Namun bekal pengetahuan saja tidak cukup, manusia
juga diberi akal untuk melakukan penalaran, mengambil kesimpulan berdasarkan
pengetahuan dan pengalaman yang mereka miliki. Tanpa memiliki kemampuan untuk
menalar dengan baik, manusia dengan segudang pengalaman dan pengetahuan tidak
akan dapat menyelesaikan masalah dengan baik. Demikian juga dengan kemampuan
menalar yang sangat baik, namun tanpa dibekali pengetahuan dan pengalaman yang
memadai, manusia juga tidak akan bisa menyelesaikan masalah dengan baik [5].
Berikut ini beberapa pengertian kecerdasan buatan dari berbagai sudut pandang
antara lain [5]:
1. Sudut pandang kecerdasan
Kecerdasan buatan akan membuat mesin menjadi ‘cerdas’ (mampu berbuat
2. Sudut pandang penelitian
Kecerdasan buatan adalah suatu studi bagaimana membuat komputer dapat
melakukan sesuatu sebaik yang dikerjakan oleh manusia.
Domain yang sering dibahas para peneliti meliputi:
a. Mundane task
1. persepsi (vision & speech).
2. bahasa alami (understanding, generation & translation).
3. pemikiran yang bersifat common sense dan robot kontrol.
b. Formal task
1. permainan/games.
2. matematika (geometri, logika, kalkulus integral, pembuktian).
c. Expert task
1. analisis financial.
2. analisis medical.
3. analisis ilmu pengetahuan.
4. rekayasa (desain, pencarian kegagalan, perencanaan manufaktur).
3. Sudut pandang bisnis
Kecerdasan buatan adalah kumpulan peralatan yang sangat powerfull dan
metodologis dalam menyelesaikan masalah-masalah bisnis.
4. Sudut pandang pemrograman
Kecerdasan buatan meliputi studi tentang pemrograman simbolik, penyelesaian
masalah (problem solving) dan pencarian (searching).
Untuk melakukan aplikasi kecerdasan buatan ada 2 bagian utama yang sangat
dibutuhkan (Gambar 2.1), yaitu:
a. Basis pengetahuan (Knowledge Base), berisi fakta-fakta, teori, pemikiran dan
b. Motor Inferensi (Inference Engine), yaitu kemampuan menarik kesimpulan
berdasarkan pengalaman.
Gambar 2.1 Penerapan Konsep Kecerdasan Buatan di Komputer [5]
2.1.1 Sejarah Kecerdasan Buatan
Istilah AI (Artificial Intelligence) yang dapat diartikan sebagai kecerdasan
buatan, pertama kali dikemukakan pada tahun1956 di konferensi Darthmouth. Sejak
saat itu, AI terus dikembangkan sebab berbagain penelitian mengenai teori-teori dan
prinsip-prinsipnya juga terus berkembang. Meskipun istilah AI baru muncul tahun
1956, tetapi teori-teori yang mengarah ke AI sudah muncul sejak tahun 1941.[6]
Kecerdasan buatan atau Artificial Intelligencedimunculkan oleh seorang
profesor dari Massachusetth Institute of Technology yang bernama John McCharty
pada tahun 1956 pada Dartmouth Conference yang dihadiri oleh para peneliti AI.
Pada konferensi tersebut juga didefinisikan tujuan utama dari kecerdasan buatan,
yaitu mengetahui dan memodelkan proses-proses berfikir manusia dan mendesain
mesin agar dapat menirukan kelakuan manusia tersebut [5].
Beberapa program AI yang mulai dibuat pada periode 1956-1966 antara lain
[5]:
1. Logic Theorist diperkenalkan pada Dartmouth Conference, program ini untuk
2. Sad Sam diprogram oleh Robert K. Lindsay (1960) merupakan program yang
dapat mengetahui kalimat sederhana dalam bahasa Inggris dan memberikan
jawaban dari fakta yang didengar dalam sebuah percakapan
3. ELIZA diprogram oleh Joseph Weisenaum(1967) adalah program untuk terapi
pasien dengan memberikan beberapa pertanyaan
2.1.2 Jaringan Syaraf Tiruan
Jaringan syaraf tiruan merupakan salah satu cabang dari AI (Artificial
Intellegence), adalah salah satu representasi buatan dari otak manusia yang selalu
mencoba untuk mensimulasikan proses pembelajaran pada otak manusia. Istilah
buatan ini diimplementasikan dengan menggunakan program komputer yang mampu
menyelesaikan sejumlah proses perhitungan selama proses pembelajaran [1].
Jaringan syaraf tiruan merupakan suatu metode komputasi yang meniru sistem
jaringan syaraf biologis. Metode ini menggunakan elemen perhitungan non linier
dasar yang disebut neuron yang diorganisasikan sebagai jaringan yang saling
berhubungan, sehingga mirip dengan jaringan syaraf manusia. Neuron merupakan
unit pemroses informasi yang menjadi dasar dalam pengoperasian jaringan syaraf
tiruan [7].
Neuron terdiri dari tiga elemen pembentuk [7] , yaitu :
1. Himpunan unit-unit yang dihubungkan dengan jalur koneksi.
2. Suatu unit penjumlah yang akan menjumlahkan sinyal-sinyal input yang
sudah dikalikan dengan bobotnya.
3. Fungsi aktifasi yang menentukan apakah sinyal dari input neuron akan
Jaringan syaraf tiruan memiliki beberapa arsitektur jaringan, antara lain [7]:
1. Jaringan Layar Tunggal
Jaringan dengan lapisan tunggal terdiri dari satu layar input dan satu layar
output. Setiap neuron yang terdapat pada layar input selalu terhubung dengan
neuron yang terdapat pada layar output.
2. Jaringan Layar Jamak
Jaringan layar jamak merupakan perluasan dari jaringan layak tunggal.
Jaringan dengan lapisan jamak memiliki ciri khas tertentu, yaitu memiliki
tiga jenis layar yakni layar input, layar output, dan layar tersembunyi.
Cara berlangsungnya pembelajaran atau pelatihan jaringan syaraf tiruan dapat
dibedakan menjadi dua, yaitu [6]:
1. Supervised Learning (pembelajaran terawasi)
Pada metode supervised learning, setiap pola yang diberikan ke dalam suatu
jaringan syaraf tiruan telah diketahui output-nya. Sejumlah pasangan data
(masukan – target keluaran) dipakai untuk melatih jaringan hingga diperoleh bobot yang diinginkan. Pada setiap kali pelatihan, suatu input diberikan ke
dalam jaringan. Jaringan akan memproses dan mengeluarkan keluaran.
Selisih antara keluaran jaringan dengan target (keluaran yang diinginkan)
merupakan kesalahan yang terjadi. Kemudian selisih tersebut akan digunakan
untuk memodifikasi bobot jaringan syaraf tiruan sehingga mampu
menghasilkan output sedekat mungkin dengan pola target yang diketahui
oleh jaringan.
2. Unsupervised Learning (pembelajaran tak terawasi)
Pada metode ini, tidak diperlukan target output. Pada metode ini tidak dapat
pelatihan, perubahan bobot jaringan dilakukan berdasarkan parameter
tertentu dan jaringan dimodifikasi menurut parameter tersebut
2.1.3 Komponen Jaringan Syaraf Tiruan
Jaringan syaraf tiruan (JST) terdiri dari beberapa neuron yang terhubung satu
sama lainnya. Neuron-neuron tersebut akan mentransformasikan informasi yang
diterima melalui sambungan keluarnya menuju ke neuron-neuron yang lain. Pada
jaringan syaraf tiruan , hubungan ini dikenal dengan nama bobot. Informasi tersebut
disimpan pada suatu nilai tertentu pada bobot tersebut. Gambar 2.2 menunjukan struktur neuron pada jaringan syaraf tiruan [5].
Gambar 2.2 Struktur neuron jaringan syaraf tiruan [5]
Pada gambar tersebut dapat dilihat, informasi (disebut dengan : input) akan
dikirim ke neuron dengan bobot kedatangan tertentu. Input ini akan diproses oleh
suatu fungsi perambatan yang akan menjumlahkan nilai-nilai semua bobot yang
datang. Hasil penjumlahan ini kemudian akan dibandingkan dengan suatu nilai
ambang (treshold) tertentu melalui fungsi aktivasi setiap neuron. Apabila input
tersebut melewati suatu nilai ambang tertentu, maka neuron tersebut akan diaktifkan,
tapi jika tidak, maka neuron tersebut tidak akan diaktifkan. Apabila neuron tersebut
diaktifkan, maka neuron tersebut akan mengirimkan output melalui bobot-bobot
2.1.4 Fungsi Aktivasi pada Jaringan Syaraf Tiruan
Ada beberapa fungsi aktivasi yang sering digunakan dalam jaringan syaraf
tiruan, antara lain [5] :
1. Fungsi Undak Biner (Hard Limit)
Jaringan dengan lapisan tunggal sering menggunakan fungsi undak (step
function) untuk mengkonversi input dari suatu variable yang bernilai
kontinu ke suatu output biner.
Fungsi undak biner (hard limit) dirumuskan sebagai:
{ (2.1)
2. Fungsi Undak Biner (Threshold)
Fungsi undak biner dengan menggunakan nilai ambang sering juga disebut
dengan nama fungsi nilai ambang atau fungsi Heaviside.
Fungsi undak biner (dengan nilai ambang 0) dirumuskan sebagai:
{ (2.2)
3. Fungsi Bipolar (Symetric Hard Limit)
Fungsi bipolar sebenarnya hampir sama dengan fungsi undak biner, hanya
output yang dihasilkan berupa 1, 0 atau -1.
Fungsi Symetric Hard Limit dirumuskan sebagai:
{
(2.3)
4. Fungsi Bipolar (dengan Threshold)
Fungsi bipolar sebenarnya hampir sama dengan fungsi undak biner dengan
Fungsi bipolar (dengan nilai ambang 0) dirumuskan sebagai:
{ (2.4)
5. Fungsi Linear (identitas)
Fungsi linear memiliki nilai output yang sama dengan nilai input-nya.
Fungsi linear dirumuskan sebagai : y = x
6. Fungsi Saturating Linear
Fungsi ini akan bernilai 0 jika input-nya kurang dari -1/2 dan akan bernilai 1
jika input-nya lebih dari 1/2. Sedangkan jika nilai input terletak antara -1/2
dan 1/2 , maka output-nya akan bernilai sama dengan nilai input ditambah 1
/2.
Fungsi Saturating Linear dirumuskan sebagai:
{
(2.5)
7. Fungsi Symetric Saturating Linear
Fungsi ini akan bernilai -1 jika input-nya kurang dari -1 dan akan bernilai 1
jika input-nya lebih dari 1. Sedangkan jika nilai input terletak antara -1 dan
1, maka output-nya akan bernilai sama dengan nilai input-nya.
Fungsi Symetric Saturating Linear dirumuskan sebagai:
{
(2.6)
8. Fungsi Sigmoid Biner
Fungsi ini digunakan untuk jaringan syaraf yang dilatih dengan
nilai pada range 0 sampai 1. Fungsi ini sering digunakan untuk jaringan
syaraf yang membutuhkan nilai output yang terletak pada interval 0 sampai
1. Namun, fungsi ini bisa juga digunakan oleh jaringan syaraf yang nilai
output-nya 0 atau 1.
Fungsi sigmoid biner dirumuskan sebagai berikut:
(2.7)
Dengan turunan : f’(x) = f(x) (1- f(x))
9. Fungsi Sigmoid Bipolar
Fungsi sigmoid bipolar hampir sama dengan fungsi sigmoid biner, hanya
saja output dari fungsi ini memiliki range antara 1 sampai -1.
Fungsi Sigmoid Bipolar dirumuskan sebagai:
(2.8)
Dengan turunan : f’(x) = ½ (1+ f(x)) (1- f(x))
2.2 JST Backpropagation
Perambatan galat mundur (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 bacpropagation 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 sigmoid, yaitu [5]:
Arsitektur jaringan backpropagation dapat dilihat pada gambar berikut
Gambar 2.3 Arsitektur Jaringan Backpropagation [5]
2.2.1 Algoritma Pelatihan Backpropagation
Pelatihan suatu jaringan dengan algoritma backpropagation meliputi dua tahap
yaitu perambatan maju dan perambatan mundur.
Selama perambatan maju, tiap unit masukan (x
i) menerima sebuah masukan sinyal ini ke tiap-tiap lapisan tersembunyi z
1,…..,zp. Tiap unit tersembunyi ini
kemudian menghitung aktivasinya dan mengirimkan sinyalnya (z
j) ke tiap unit keluaran. Tiap unit keluaran (y
k) menghitung aktivasinya (yk) untuk membentuk respon pada jaringan untuk memberikan pola masukan [1].
Selama pelatihan, tiap unit keluaran membandingkan perhitungan aktivasinya y k
dengan nilai targetnya t
k untuk menentukan kesalahan pola tersebut dengan unit itu.
Berdasarkan kesalahan ini, faktor δk (k = 1,..,m) dihitung. δ
menyebarkan kesalahan pada unit keluaran y
k kembali ke semua unit pada lapisan sebelumnya (unit-unit tersembunyi yang dihubungkan ke y
k). Juga digunakan (nantinya) untuk meng-update bobot-bobot antara keluaran dan lapisan tersembunyi.
Dengan cara yang sama, faktor (j = 1,…,p) dihitung untuk tiap unit tersembunyi z j. Tidak perlu untuk menyebarkan kesalahan kembali ke lapisan masukan, tetapi δ
j
digunakan untuk meng-update bobot-bobot antara lapisan tersembunyi dan lapisan
masukan [1].
Setelah seluruh faktor δ ditentukan, bobot untuk semua lapisan diatur secara
serentak. Pengaturan bobot w
jk (dari unit tersembunyi zj ke unit keluaran yk) didasarkan pada faktor δ
k dan aktivasi zj dari unit tersembunyi zj. didasarkan pada faktor δ
j dan dan aktivasi xi unit masukan [1].
2.2.2 Prosedur Pelatihan Algoritma Backpropagation
Berikut ini adalah langkah-langkah pelatihan algoritma backpropagation [1].
Langkah 0 :
Inisialisasi semua bobot dengan bilangan acak kecil
Langkah 1 :
Ulangi langkah 2 hingga 9 sampai kondisi akhir iterasi dipenuhi
Langkah 2 :
Untuk masing-masing pasangan data pelatihan (training data) lakukan
langkah 3 hingga 8
Perambatan maju Langkah 3 :
Masing-masing unit masukan (Xi, I = 1,…,n) menerima sinyal
masukan Xi dan sinyal tersebut disebarkan ke unit-unit bagian
Langkah 4 :
Masing-masing unit dilapisan tersembunyi dikalikan dengan faktor
penimbang dan dijumlahkan serta ditambahkan dengan biasnya :
∑ (2.10)
Kemudian menghitung sesuai dengan fungsi aktifasi yang digunakan :
(2.11)
Bila yang digunakan adalah fungsi sigmoid biner maka bentuk fungsi
tersebut adalah :
(2.12)
Langkah 5 :
Masing-masing unit keluaran (Yk, k=1,2,3,…m) dikalikan dengan
faktor penimbang dan dijumlahkan :
∑ (2.13)
Menghitung kembali sesuai dengan fungsi aktifasi
(2.14)
Bila yang digunakan adalah fungsi sigmoid biner maka bentuk fungsi
tersebut adalah :
(2.15)
Perambatan mundur Langkah 6 :
Masing-masing unit keluaran (Yk, k=1,…,m) menerima pola target
sesuai dengan pola masukan saat pelatihan dan dihitung galatnya :
Karena menggunakan fungsi sigmoid, maka : (2.17)
(2.18)
Menghitung perbaikan faktor penimbang (kemudian untuk
memperbaiki
(2.19)
Menghitung perbaikan koreksi :
(2.20)
Dan menggunakan nilai pada semua unit lapisan sebelumnya.
Langkah 7 :
Masing-masing penimbang yang menghubungkan unit-unit l;apisan
keluaran dengan unit-unit pada lapisan tersembunyi (
dikalikan delta dan dijumlahkan sebagai masukan ke unit-unit lapisan
berikutnya.
∑ (2.21)
Selanjutnya dikalikan dengan turunan dari fungsi aktifasinya untuk
menghitung galat.
) (2.22)
Kemudian menghitung perbaikan penimbang (digunakan untuk
memperbaiki )
(2.23)
Kemudian menghitung perbaikan bias (untuk memperbaiki )
(2.24)
Memperbaiki penimbang dan bias
Langkah 8 :
Masing-masing keluaran unit (yk, k=1,…,m) diperbaiki bias dan
(2.25)
(2.26) Masing-masing unit tersembunyi (Zj, j:1,…,p) diperbaiki bias dan
penimbangnya (j=0,…,n)
(2.27)
(2.28) Langkah 9 :
Uji kondisi pemberhentian (akhir iterasi)
Daftar Notasi
Xp = Pola masukan pelatihan ke-p, p=1,2,…,p<=1. (X1,X2,X3, …,Xn)
tp = Pola keluaran target dari pelatihan. (t1, t2, t3, …, tn)
xi = Unit ke-I pada lapisan masukan
Xi = Nilai aktifasi dari unit Xi
Zj = Unit ke-j pada lapisan tersembunyi
Z_inj = Keluaran untuk unit Zj
zj = Nilai aktifasi dari unit Zj
Yk = Unit ke-k pada lapisan keluaran
Y_ink = Net masukan untuk unit Yk
Wk0 = Nilai penimbang sambungan pada bias untuk unit Yk
Wkj = Nilai penimbang sambungan dari Zij ke unit Yk
kj = Selisih Wkj(t) dengan Wkj(t+1)
Vio = Nilai penimbang sambungan pada bias untuk unit Zi
ij = Selisih antara Vij(t) dengan Vij(t+1)
k = Faktor pengaturan nilai penimbang sambungan pada lapisan keluaran
j = Faktor pengaturan niloai penimbang sambungan pada lapisan tersembunyi
2.2.3 Prosedur Pengujian Algoritma Backpropagation
Setelah pelatihan, jaringan saraf backpropagation diaplikasikan dengan hanya
menggunakan tahap perambatan maju dari algoritma pelatihan. Prosedur aplikasinya
adalah sebagai berikut [1]:
Langkah 0: Inisialisasi bobot (dari algoritma pelatihan).
Langkah 1: Untuk tiap vektor masukan, lakukan langkah 2-4.
Langkah 2: for i = 1,…, n : atur aktivasi unit masukan x i . Langkah 3: for j = 1,…, p :
∑ (2.10)
(2.11)
Langkah 4: for k = 1,…, m :
∑ (2.13)
(2.14)
Langkah 5: Jika y
k ≥ 0,5 maka yk = 1, else yk = 0.
2.3 Penyakit Mata Menular
Penyakit mata menular adalah penyakit mata yang biasanya timbul akibat
infeksi virus dan bakteri sehingga penyakit tersebut bisa menular kepada orang lain
yang berhubungan dengan orang yang sedang menderita penyakit mata menular ini.
Terdapat banyak jenis dari penyakit mata menular yang di derita oleh sebagian
masyarakat Indonesia. Beberapa diantaranya adalah jenis penyakit Konjungtivitis,
Keratokonjutivitis Vernalis, Endoftalmitis, Selulitis Orbitalis, Trakoma, Blefaritis,
dan Ulkus Kornea. Penyakit tersebut memiliki gejala dan ciri-ciri yang hampir mirip.
Pembagian jenis penyakit mata menular beserta gejala yang dialami oleh
penderita dapat dilihat pada tabel 2.1 berikut.
Tabel 2.1 Penyakit Mata Menular dan Gejalanya
Jenis Penyakit mata menular Gejala
Konjungtivitis
Mata merah, mata terasa perih, mata terasa gatal,
mata berair, mata mengeluarkan kotoran(belekan),
penglihatan kabur
Keratokonjungtivitis vernalis
Sering mengalami mata merah, mata berair, mata
terasa gatal, kelopak mata membengkak, mata
mengeluarkan kotoran(belekan)
Endoftalmitis
Mata merah, mata terasa perih, mengalami
gangguan pada penglihatan(penglihatan berkurang
atau penglihatan kabur), demam, sakit kepala, mata menjadi sensitif terhadap cahaya
Selulitis Orbitalis
Mata merah, mata terasa perih, kelopak mata
membengkak, bola mata menonjol dan
membengkak, demam
Trakoma
Mata merah, mata mengeluarkan kotoran(belekan),
kelopak mata membengkak, kelenjar getah bening
membengkak, kornea terlihat keruh
Blefaritis
Mata merah, mata terasa panas, mata terasa perih,
mata terasa gatal, mata berair, terdapat luka pada
kelopak mata, kelopak mata membengkak,bulu
mata rontok
Ulkus Kornea
Mata merah, mata terasa perih, mata terasa gatal,
mata berair, mata mengeluarkan kotoran(belekan),
terdapat bintik nanah berwarna kuning keputihan
pada kornea, mengalami gangguan pada
penglihatan(penglihatan kabur), sensitif terhadap
2.4Algoritma
Algoritma adalah urutan langkah-langkah untuk menyelesaikan suatu
masalah. Terdapat beberapa definisi lain dari algoritma, tetapi pada prinsipnya senada
dengan definisi yang diungkapkan. Definisi lainnya antara lain [12] :
1. Algoritma adalah deretan langkah-langkah komputasi yang
mentransformasikan data masukan menjadi keluaran.
2. Algoritma adalah deretan instruksi yang jelas untuk memecahkan
masalah, yaitu memperoleh keluaran yang diinginkan dari suatu
masukan dalam jumlah waktu yang terbatas.
3. Algoritma adalah prosedur komputasi yang terdefinisi dengan baik yang
menggunakan beberapa nilai sebagai masukan dan menghasilkan
beberapa nilai yang disebut keluaran
Terdapat 3 macam cara penulisan algoritma atau disebut notasi algoritmik.
Berikut ini adalah ketiga notasi algoritmik [12]:
1. Notasi I : menyatakan langkah-langkah algoritma dengan untaian
kalimat deskriptif.
2. Notasi II : menggunakan bagan-alir (flowchart).
3. Notasi III : menggunakan pseudo-code.
Sebuah algoritma tidak hanya harus benar, tetapi juga harus efisien. Ukuran
sebuah algoritma dikatakan efisien yaitu melalui waktu dan ruang memori (space).
Algoritma yang efisien adalah algoritma yang dapat meminimumkan kebutuhan
waktu dan ruang. Untuk itu, diperlukan analisis algoritma untuk dapat mengetahui
performansi, keakuratan, optimasi serta efisiensi sebuah algoritma. Setiap algoritma
memiliki nilai performansi yang berbeda-beda. Performansi suatu algoritma dapat
diukur dengan menghitung nilai kompleksitas waktunya dimana setiap langkahnya
2.4.1 Kompleksitas Algoritma
Umumnya Algoritma mempunyai parameter utama yang paling menentukan
waktu proses. Parameter ini berkaitan dengan jumlah data yang diproses algoritma
tersebut. Parameter ini dapat berupa pangkat suatu persamaan polinom atau jumlah
record yang akan diurutkan atau dicari. Kompleksitas algoritma menyatakan kelajuan
perkembangan waktu proses dibandingkan dengan kelajuan perkembangan data yang
diproses [13]. Salah satu notasi kompleksitas algoritma adalah Big-Oh. Definisi dari
Big-O Adalah fungsi yang lebih berkaitan dengan kelajuan proses daripada kelajuan
pertambahan data yang dirumuskan dengan T(n) = O( f(n) ). Jika ada konstan c dan no
sedemikian rupa sehingga T(n) ≤ c. f(n) untuk n ≥ no. Secara sederhana dikatakan
bahwa O( f(n) ) dapat dianggap sebagai nilai maksimum dari c.f(n).
Contoh :
Jika f(n) = 2n2 maka T(n) = O(n2)
Jika f(n) = 4n2 + 7n + 3 maka T(n) = O(n2)
Contoh perhitungan 1
Sum = 0;
For (i=0; i<n; i++)
Sum = sum + a[i];
Perhitungan eksekusi :
sum = 0 dieksekusi 1 kali
i = 0 dieksekusi 1 kali
i < n dieksekusi n kali
i++ dieksekusi n kali
sum = sum +a[i] dieksekusi n kali
2 + 3n kali
Contoh perhitungan 2
Sum = 0;
For (i=0; i<n; i++)
For (j=0; j<n; j++)
Sum = sum + a[i];
Perhitungan eksekusi :
sum = 0 dieksekusi 1 kali
i = 0 dieksekusi 1 kali
j = 0 dieksekusi n kali
i < n dieksekusi n kali
i++ dieksekusi n kali
j < n dieksekusi n x n kali
j++ dieksekusi n x n kali
sum = sum +a[i] dieksekusi n x n kali
2 + 3n + 3n2 kali
Jadi T(n) = O(n2)
Tiap-tiap algoritma mempunyai kompleksitas waktu asimptotik masing-masing.
Kompleksitas waktu asimptotik ini dapat digunakan untuk mengelompokan algoritma
[14].
Urutan spektrum kompleksitas waktu algoritma adalah [14]:
O(1)<O(log n) < O(n)< O(n log n) < O( ) O( )<...<O( )<O(n!)
algoritma polinomial algortima eksponensial
Pembagian kelompok algoritma berdasarkan kompleksitas waktu asimptotik
Tabel 2.2 Kelompok Algoritma Berdasarkan Kompleksitas Waktu Asimptotik [14]
Kelompok Algoritma Nama
O(1) Konstan
O(log n) Logaritmik
O(n) Lanjar
O(n log n) n log n
O( ) Kuadratik
O( ) Kubik
O( ) Eksponensial
O(n!) Faktorial
Penjelasan masing-masing kelompok algoritma adalah sebagai berikut [14]:
O(1) Kompleksitas O(1) berarti waktu pelaksanaan algoritma adalah tetap,
tidak bergantung pada ukuran masukan. Contohnya prosedur tukar di
bawah ini:
procedureTukar(input/output a, b : integer)
{ Mempertukarkan nilai a dan b. Setelah pertukaran, a berisi
nilai b dan b
berisi nilai a semula.
Masukan : a dan b
Keluaran : a dan b
}
Deklarasi temp: integer
Algoritma temp a
b temp
Di sini jumlah operasi penugasan (assignment) ada tiga buah dan tiap
operasi dilakukan satu kali. Jadi, T(n) = 3 = O(1).
O(log n) Kompleksitas waktu logaritmik berarti laju pertumbuhan waktunya
berjalan lebih lambat daripada pertumbuhan n. Algoritma yang termasuk
kelompok ini adalah algoritma yang memecahkan persoalan besar
dengan mentransformasikannya menjadi beberapa persoalan yang lebih
kecil yang berukuran sama (misalnya algoritma pencarian_biner). Di sini basis algoritma tidak terlalu penting sebab bila n dinaikkan dua kali
semula, misalnya, log n meningkat sebesar sejumlah konstanta. Fungsi
log n hanya meningkat menjadi dua kali semula jika n dinaikan sebesar
n2 kali semula(basis dua).
O(n) Algoritma yang waktu pelaksanaannya lanjar umumnya terdapat pada
kasus yang setiap elemen masukannya dikenai proses yang sama,
misalnya algoritma pencarian_beruntun. Bila n dijadikan dua kali
semula, maka waktu pelaksanaan algoritma juga dua kali semula.
O(n log n) Waktu pelaksanaan yang n log n terdapat pada algoritma yang
memecahkan persoalan menjadi beberapa persoalan yang lebih kecil,
menyelesaikan tiap persoalan secara independen, dan menggabung
solusi masing-masing persoalan. Algoritma yang diselesaikan dengan
teknik bagi dan gabung mempunyai kompleksitas asimptotik jenis ini.
Bila n = 1000, maka n log n mungkin 20.000. Bila n dijadikan dua kali
semual, maka n log n menjadi dua kali semula (tetapi tidak terlalu
O( ) Algoritma yang waktu pelaksanaannya kuadratik hanya praktis
digunakan untuk persoalan yang berukuran kecil. Umumnya algoritma
yang termasuk kelompok ini memproses setiap masukan dalam dua
buah kalang bersarang, misalnya pada algoritma urut_maks. Bila n =
1000, maka waktu pelaksanaan algoritma adalah 1.000.000. Bila n
dinaikkan menjadi dua kali semula, maka waktu pelaksanaan algoritma
meningkat menjadi empat kali semula.
O( ) Seperti halnya algoritma kuadratik, algoritma kubik memproses setiap
masukan dalam tiga buah kalang bersarang, misalnya algoritma
perkalian matriks. Bila n = 100, maka waktu pelaksanaan algoritma
adalah 1.000.000. Bila n dinaikkan menjadi dua kali semula, waktu
pelaksanan algoritma meningkat menjadi delapan kali semula
O( ) Algoritma yang tergolong kelompok ini mencari solusi persoalan secara
"brute force", misalnya pada algoritma mencari sirkuit Hamilton. Bila n
= 20, waktu pelaksanaan algoritma adalah 1.000.000. Bila n dijadikan
dua kali semula, waktu pelaksanaan menjadi kuadrat kali semula!
O(n!) Seperti halnya pada algoritma eksponensial, algoritma jenis ini
memproses setiap masukan dan menghubungkannya dengan n - 1
masukan lainnya, misalnya algoritma Persoalan Pedagang Keliling
(Travelling Salesperson Problem). Bila n = 5, maka waktu pelaksanaan
algoritma adalah 120. Bila n dijadikan dua kali semula, maka waktu
pelaksanaan algoritma menjadi faktorial dari 2n.
2.5 Cross Validation
Untuk tujuan replikasi, yang dibutuhkan adalah mendapatkan jumlah dari data
data sebagai data uji). Untuk mendapatkannya, jika sampel X cukup besar, kita dapat
membaginya secara acak kedalam K bagian, lalu secara acak memisahkan
masing-masing bagian ke dalam 2 kelompok dan menggunakan setengah data pertama untuk
data latih dan setengah data lainnya untuk data uji. Pengujian ini dilakukan berulang
dengan menggunakan data split yang berbeda, dinamakan cross validation.
K-fold cross-validation adalah sebuah pengujian dimana dataset X dibagi
secara acak kedalam K bagian dengan ukuran yang sama, Xi, i=1,...,K. Untuk
memproses tiap pasangnya, diambil terlebih dahulu salah satu bagian dari K bagian
sebagai data tes, dan mengkombinasikan sisanya sebanyak K-1 bagian sebagai data
latih. Proses pengujian dilakukan sebanyak K kali [17].
Dalam contoh kasus yang memiliki banyak prediksi, hasil pada data uji sering
ditampilkan sebagai confusion matrix dua dimensi dengan baris dan kolom untuk
setiap kelas. setiap elemen matrix menunjukkan jumlah data uji. Pada bagian baris
adalah kelas data uji yang sebenarnya dan pada bagian kolom adalah kelas hasil
prediksi [15]. Contoh confusion matrix pada dapat dilihat pada tabel 2.3.
Tabel 2.3 Contoh Confusion Matrix
Hasil Identifikasi
Target Identifikasi a b c d
a 4 0 0 0
b 1 3 0 0
c 1 0 2 1
d 0 0 0 4
Berikut ini adalah penjelasan pada tabel 2.3
Target a teridentifikasi menjadi a sebanyak 4
teridentifikasi menjadi b sebanyak 0
teridentifikasi menjadi d sebanyak 0
Target b teridentifikasi menjadi a sebanyak 1
teridentifikasi menjadi b sebanyak 3
teridentifikasi menjadi c sebanyak 0
teridentifikasi menjadi d sebanyak 0
Target c teridentifikasi menjadi a sebanyak 1
teridentifikasi menjadi b sebanyak 0
teridentifikasi menjadi c sebanyak 2
teridentifikasi menjadi d sebanyak 1
Target d teridentifikasi menjadi a sebanyak 0
teridentifikasi menjadi b sebanyak 0
teridentifikasi menjadi c sebanyak 0
31
Salah satu penggunaan metode backpropagation adalah dalam analisis
medikal, seperti pengidentifikasian suatu penyakit yang memiliki gejala yang bias
antara jenis yang satu dengan yang lainya. Hal ini telah dibuktikan pada jurnal
“Aplikasi jaringan syaraf tiruan untuk memprediksi penyakit saluran pernafasan dengan metode backpropagation” karya Novi Indah Pradasari, F.Trias Pontia W, dan Dedi Triyanto[2]. Pada jurnal ini, metode backpropagation digunakan untuk
memprediksi penyakit saluran pernafasan berdasarkan gejala penyakit yang disusun
menjadi 12 buah variabel masukan. Target keluaran sistem berupa jenis penyakit
saluran pernafasan yang teridentifikasi oleh sistem, sistem memiliki batasan penyakit
yang dapat diidentifikasi sebanyak lima buah penyakit yaitu penyakit Asma, ISPA,
Pneumonia, Bronkhitis, Sinusitis, dan Tuberkulosis. Penelitian ini mendapatkan
kesimpulan bahwa metode backpropagation dapat digunakan untuk memprediksi
penyakit saluran pernafasan dengan keakuratan 91,66% yang diperoleh dari pelatihan
96 data dan pengujian 24 data menggunakan dua buah hidden layer, target error
sebesar 0,0001, dan learning rate sebesar 0,1 [2].
Penyakit mata menular memiliki gejala yang hampir mirip antara jenis yang
satu dan yang lainya. Gejala-gejala yang ditimbulkan penyakit mata menular dapat
berjumlah tiga sampai lima gejala setiap jenis penyakitnya, jumlah ini merupakan
jumlah yang sangat sedikit. Suatu penyakit akan sangat mudah diidentifikasi apabila
memiliki gejala yang sangat berbeda, akan tetapi gejala yang ditimbulkan penyakit
mata menular sangat bias antara jenis penyakit satu dan lainnya. Penyakit mata
menular menjadi sulit untuk diidentifikasi karena minimnya gejala yang ditimbulkan
dan banyaknya gejala yang mirip. Dari masalah yang telah dijelaskan, maka perlunya
dan parameter yang optimal dari metode backpropagation dalam mengidentifikasi
penyakit mata menular.
3.2 Analisis Data Masukan
Data yang digunakan dalam mengidentifikasi penyakit mata menular pada
sistem adalah data gejala dari beberapa penyakit mata menular seperti terlihat dalam
tabel 2.1 penyakit mata menular dan gejalanya pada bab 2. Dari tabel 2.1 penyakit
mata menular dan gejalanya, gejala-gejala dari penyakit mata tersebut disusun
menjadi variabel X1 hingga X19 yang menjadi data masukan pada sistem.
Masing-masing variabel memiliki rentang nilai dari 0 sampai 1 diurutkan dari tidak terjadi
gejala hingga terjadi gejala yang parah. Untuk nilai dari seluruh variabel dapat dilihat
pada tabel 3.1 berikut ini.
Tabel 3.1 Variabel input gejala penyakit mata menular
Gejala-gejala Variabel Nilai
Mata Merah (X1)
Tidak 0
Ya 1
Frekuensi Waktu Mata Merah (X2)
Tidak 0
Mata Mengeluarkan Kotoran (X6)
Tidak 0
Ya 1
Mengalami Gangguan Penglihatan (X7)
Tidak 0
Ya 1
Kelopak Mata Membengkak (X8)
Tidak 0
Ya 1
Ya 1
Bola Mata Membengkak (X10)
Tidak 0
Ya 1
Kelenjar Getah Bening Membengkak (X11)
Tidak 0
Ya 1
Terdapat Bintik Putih Pada Kornea (X12)
Tidak 0
Ya 1
Kornea Tampak Keruh(X13)
Tidak 0
Ya 1
Terdapat Luka Pada Kelopak Mata (X14)
Tidak 0
Sensitif Terhadap Cahaya (X19)
Tidak 0
Ya 1
Data masukan yang digunakan untuk mengidentifikasi penyakit mata
menular, memiliki batasan minimum gejala yang harus dipilih pada pilihan yang telah
disediakan sistem. Minimum gejala yang bisa digunakan untuk pengidentifikasian
penyakit mata menular adalah sebanyak empat buah gejala. Jika data masukan yang
dipilih kurang dari empat buah gejala, maka sistem tidak dapat melakukan
identifikasi.
3.3 Analisis Metode
Metode backpropagation adalah salah satu metode pembelajaran dari jaringan
syaraf tiruan. Metode ini memiliki tingkat error yang sangat kecil, karena metode ini
target yang diinginkan. Metode ini memiliki arsitektur jaringan multilayer network
yang merupakan arsitektur jaringan dengan lapisan lebih dari dua lapisan. Metode
backpropagation merupakan metode yang membutuhkan pembelajaran sebelum
dapat mengidentifikasi suatu kasus, maka metode ini memiliki tahap pelatihan dan
tahap pengujian.
a. Arsitektur Jaringan Metode Backpropagation
Arsitektur metode backpropagation terdiri dari tiga layer dalam proses
pembelajarannya, yaitu input layer, hidden layer, dan output layer.
1) Input layer
Input layer memiliki jumlah neuron yang dipengaruhi oleh jumlah masukan
pada suatu kasus, input layer (Xi) pada kasus ini memiliki 19 neuron, karena
gejala penyakit mata secara keseluruhan berjumlah 19 gejala. Input layer
berfungsi menerima nilai pola berupa sinyal input yang didapatkan dari terjadi
atau tidak terjadinya gejala pada sebuah pola, sinyal input akan bernilai 1 bila
gejala terjadi dan bernilai 0 bila gejala tidak terjadi. Pada input layer tidak
terjadi proses komputasi, namun terjadi pengiriman sinyal input x ke hidden
layer.
2) Hidden layer
Tidak ada ketentuan yang pasti dalam menentukan jumlah neuron pada
hidden layer, namun jumlah hidden layer berpengaruh terhadap akurasi dan
laju pemebelajaran dari metode backpropagation. Hidden layer merupakan
variabel yang dapat diubah-ubah untuk mengetahui akurasi dari metode ini,
pada analisis metode ini digunakan 10 neuron pada hidden layer berdasarkan
prosiding “Jaringan Syaraf Tiruan dengan Metode Backpropagation untuk
layer pada backpropagation berfungsi sebagai tempat untuk mengoreksi dan
menyesuaikan bobot, sehingga didapatkan nilai bobot yang baru yang bisa
diarahkan mendekati dengan target output yang diinginkan.
3) Output layer
Output layer (Yi) pada contoh kasus ini memiliki 3 neuron, karena jumlah
keluaran pada kasus ini berupa kode penyakit yang berjumlah 3 digit.
Kombinasi dari semua neuron tersebut digunakan untuk mengidentifikasi dan
juga learning sebagai output yang seharusnya.
Arsitektur jaringan pada contoh kasus ini dapat dilihat pada gambar 3.1.
Gambar 3.1 Arsitektur jaringan metode backpropagation pada pengidentifikasi penyakit mata
Keterangan :
Xi : Lapisan Input terdiri dari 19 neuron
Vij : Bobot pada lapisan tersembunyi.
Zj : Lapisan Tersembunyi terdiri dari 10 neuron
Wjk : Bobot pada lapisan keluaran.
V0j : Bias pada lapisan tersembunyi
W0k : Bias pada lapisan keluaran.
i : Variabel yang mewakili input layer
j : Variabel yang mewakili hidden layer
k : Variabel yang mewakili output layer
n : Jumlah neuron dalam suatu lapisan.
Yk : Lapisan Output terdiri dari 3 neuron
1 : Konstanta bias.
b. Pelatihan Metode Backpropagation
Pelatihan dilakukan agar metode ini dapat mempelajari berbagai pola yang
terjadi pada sebuah kasus sebelum dapat mengidentifikasi sebuah pola pada kasus
tersebut. Block diagram menggambarkan setiap blok atau bagian dari alur kerja. Block
diagram metode pelatihan backpropagation yang diimplementasikan pada sistem
Gambar 3.2 Block diagram metode pembelajaran backpropagation
Penjelasan dari block diagram tersebut akan diimplementasikan pada contoh
kasus menggunakan data pasien yang menderita penyakit konjungtivitis dengan gejala
mata merah (X1), mata terasa perih (X3), mata terasa gatal (X4), mata berair (X5),
1) Penentuan Variabel Pelatihan
Tahap pertama pada metode backpropagation yang diimplementasikan pada
pengidentifikasi penyakit mata menular adalah penentuan variabel pelatihan.
Terdapat empat variabel pelatihan yang ditentukan, yaitu jumlah neuron pada hidden
layer, learning rate , batas epoch, dan batas iterasi.
Penentuan nilai variabel pelatihan dipengaruhi pemilihan jumlah lapisan
tersembunyi (hidden layer) dan nilai learning rate (laju pembelajaran) yang sesuai.
Nilai learning rate yang tidak sesuai berdampak pada hasil klasifikasi yang kurang
optimal. Apabila nilai learning rate terlalu besar, jaringan akan mencapai konvergen
dalam waktu yang singkat tetapi error klasifikasi menjadi besar. Sebaliknya bila
learning rate terlalu rendah, hasil klasifikasi memiliki akurasi yang baik tetapi
proses training membutuhkan waktu yang lama. Batas epoch dan target error
berfungsi untuk membatasi pelatihan, dimana kedua variabel ini akan dibandingkan
dengan kondisi pelatihan. Pada analisis metode ini digunakan variabel pelatihan
berdasarkan prosiding “Jaringan Syaraf Tiruan dengan Metode Backpropagation untuk Mendeteksi Gangguan Psikologi” karya Kiki dan Sri Kusumadewi [1]. Berikut
ini adalah variabel pelatihan yang akan digunakan pada analisis metode pada contoh
kasus ini.
Jumlah neuron pada hidden layer = 10
Learning Rate ( ) = 0.1
Batas Epoch = 50000
Target Error = 0.01
2) Pengambilan Data Pelatihan
Data pelatihan yang digunakan pada metode ini berupa pasangan sinyal input
nilai 0 atau 1, nilai ini didapatkan dari terjadinya gejala atau tidak terjadinya gejala.
Sinyal input akan digunakan pada proses perambatan maju dan perbaikan bobot.
Target output (T) merupakan pengkodean dari nama penyakit yang memiliki gejala
yang sesuai dengan sinyal input yang menjadi pasangan dari target output ini, untuk
pengkodean jenis penyakit mata menular dapat dilihat pada tabel 3.6. Target output
akan digunakan untuk menghitung error dan juga digunakan pada tahap perambatan
mundur. Contoh dari salah satu pola data pelatihan yang terdiri dari pasangan sinyal
input dan target output berdasarkan contoh kasus dapat dilihat pada tabel 3.2 dan 3.3
berikut.
Contoh:
Sinyal input
Tabel 3.2 Sinyal input untuk gejala penyakit konjungtivitis
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1 0 1 1 1 1 1 0 0 0
X11 X12 X13 X14 X15 X16 X17 X18 X19
0 0 0 0 0 0 0 0 0
Target output
Tabel 3.3 Target output untuk penyakit konjungtivitis
T1 T2 T3
0 0 1
3) Inisialisasi Bobot
Inisialisasi bobot dan bias dilakukan untuk seluruh bobot dan bias yang
Bobot yang menghubungkan antara input layer ke hidden layer dilambangkan
dengan Vij sedangkan untuk biasnya dilambangkan dengan V0j. Bobot yang
menghubungkan antara hidden layer ke output layer dilambangkan dengan Wjk
sedangkan untuk biasnya dilambangkan dengan W0k. Inisialisasi ini dilakukan dengan
memberi nilai acak terkecil antara 0,0 hingga 0,9 ke seluruh bobot dan bias.
Contoh :
V11 = 0.2643
V01 = 0.4356
W11 = 0.4543
W01 = 0.3242
4) Perambatan Maju (Foward Propagation)
Setelah dilakukan tahap inisialisasi, maka seluruh bobot dan bias yang
menghubungkan layer-layer telah terisi oleh nilai acak kecil. Pada tahap perambatan
maju ini dilakukan penjumlahan seluruh bobot dan bias tersebut dan dilakukan
aktivasi pada hasil penjumlahannya. Pada tahap perambatan maju terdapat tiga
langkah yaitu penerimaan sinyal pada input layer, perhitungan bobot dan bias input
layer ke hidden layer, dan perhitungan bobot da bias hidden layer ke output layer.
a) Penerimaan sinyal pada input layer
Langkah awal pada tahap perambatan maju adalah penyebaran sinyal input
yang telah didapatkan dari data pelatihan ke setiap neuron pada input layer.
Penyebaran sinyal input ke input layer pada contoh kasus ini dapat dilihat pada tabel
3.4.
Tabel 3.4 Penerimaan sinyal pada input layer
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1 0 1 1 1 1 1 0 0 0
X11 X12 X13 X14 X15 X16 X17 X18 X19
0 0 0 0 0 0 0 0 0
b) Perhitungan bobot dan bias input layer ke hidden layer, serta aktivasi
Pada langkah ini digunakan nilai sinyal input(Xi), nilai bobot(Vij), dan nilai
bias(V0j) yang menghubungkan input layer pada hidden layer, untuk menghitung
jumlah seluruh bobot input layer yang menuju ke hidden layer tertentu menggunakan
persamaan (2.10). Proses perhitungan bobot dan bias input layer ke hidden layer
dapat dilihat pada gambar 3.3 berikut.
Gambar 3.3 Proses perhitungan seluruh bobot dan bias input layer ke hidden layer
Berikut adalah salah satu contoh perhitungan bobot dan bias input layer ke
hidden layer dari analisis metode ini.
= 0.4356 + (1 x 0.2643) + (0 x 0.3623) + (1 x 0.1385) + (1 x 0.4643) +
(1 x 0.6537) + (1 x 0.8933) + (1 x 0.6512) + (0 x 0.8246) + (0 x 0.2319) +
(0 x 0.5634) + (0 x 0.1745) + (0 x 0.9127) + (0 x 0.5246) + (0 x 0.5524) +
(0 x 0.7623) + (0 x 0.6723) + (0 x 0.2342) + (0 x 0.9248) + (0 x 0.3494)
=3.5009 Nilai Masukan - Sinyal Input Xi
- Bobot Vij - Bias V0j
Nilai Keluaran
Dari perhitungan tersebut dihasilkan jumlah seluruh bobot input layer yang
menuju ke hidden layer ke j yang dilambangkan dengan . Nilai ini kemudian
diaktivasi menggunakan rumus aktivasi sigmoid biner dengan persamaan (2.12).
Proses perhitungan aktivasi dapat dilihat pada gambar 3.4 berikut.
Gambar 3.4 Proses aktivasi hasil perhitungan bobot dan bias input layer ke hidden layer
Berikut adalah salah satu contoh perhitungan aktivasi bobot dan bias input
layer ke hidden layer dari analisis metode ini.
=
=
=
= 0.970713367Dari perhitungan aktivasi nilai ini dihasilkan nilai aktivasi yang
dilambangkan dengan . Nilai ini akan digunakan pengganti sinyal input pada
langkah perhitungan bobot dan bias hidden layer ke output layer.
c) Perhitungan bobot dan bias hidden layer ke output layer, serta aktivasi
Pada langkah ini digunakan nilai aktivasi bobot input layer ke hidden
layer(Zj) sebagai sinyal pada hidden layer, bobot(Wij), dan bias(W0j) yang
menghubungkan hidden layer pada output layer, untuk menghitung jumlah seluruh
bobot hidden layer yang menuju ke output layer ke k menggunakan persamaan
(2.13). Proses perhitungan bobot dan bias hidden layer ke output layer dapat dilihat
pada gambar 3.5 berikut. Nilai Masukan
- Bobot Z_inj
Nilai Keluaran