penerapan algoritma adaline untuk menentukan jenis...

140
PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS PENYAKIT DAN RAMUAN OBAT CINA (PRODUK TIANSHI) YANG DIGUNAKAN UNTUK MENGOBATINYA SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika Disusun Oleh : Andri Ridya Putra 015314014 JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS SANATA DHARMA YOGYAKARTA 2007

Upload: others

Post on 22-Nov-2020

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS

PENYAKIT DAN RAMUAN OBAT CINA (PRODUK TIANSHI) YANG

DIGUNAKAN UNTUK MENGOBATINYA

SKRIPSI

Diajukan untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik

Jurusan Teknik Informatika

Disusun Oleh :

Andri Ridya Putra

015314014

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2007

Page 2: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

APPLYING OF ALGORITHM OF ADALINE TO DETERMINE THE

TYPE OF DISEASE AND THE INGREDIENT OF CHINESSE MEDICINE

(TIANSHI PRODUCT)

A THESIS

To Fulfill One of The Condition Obtain Get College Degree

Technique Majors Technique of Information

By:

Andri Ridya Putra

015314014

INFORMATICS ENGINEERING STUDY PROGRAM

DEPARTEMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2007

Page 3: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

HALAMAN PERSETUJUAN

Judul : PENERAPAN ALGORITMA ADALINE UNTUK

MENENTUKAN JENIS PENYAKIT DAN RAMUAN OBAT

CINA (PRODUK TIANSHI) YANG DIGUNAKAN UNTUK

MENGOBATINYA

Nama : Andri Ridya Putra

NIM : 015314014

Mata Kuliah : Tugas Akhir Kode : TIF 402

Semester : Ganjil Tahun Akademik: 2006/2007

Fakultas : Teknik

Program Studi : Teknik Informatika

Telah diperiksa dan disetujui

Di Yogyakarta

Pada tanggal : 21 Mei 2007

Dosen Pembimbing

Drs. J.J. Siang, M.Sc

Page 4: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,
Page 5: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

PERNYATAAN

Dengan ini saya sebagai penulis tugas akhir menyatakan dengan

sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian

karya orang lain, kecuali pemikiran, metode atau hasil penelitian orang lain yang

diambil disebutkan dengan jelas sebagai acuan.

Yogyakarta, Mei 2007

Andri Ridya Putra

Penulis

Page 6: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

HALAMAN PERSEMBAHAN

Karya ini kupersembahkan untuk :

...

Yesus-ku yang selalu memberikan anugerah yang terindah dan berkat

yang luar biasa dalam suka dan duka,

...

Kedua orang tuaku yang telah membesarkan dan mendidik aku,

...

Semua keluarga besarku yang banyak memeberikan bimbingan dan

motovasi,

...

Dan seluruh teman-temanku yang memberikan Sukacita dalam hari-

hariku.

Page 7: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

HALAMAN MOTTO

Do it now, what you can do now

( Lakukanlah apa yang dapat kau lakukan

sekarang )

Life is Serving

( Hidup adalah Melayani )

Page 8: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

ABSTRAKSI

Salah satu cabang dari AI (Artificial Intelligence) adalah Artificial Neural

Networks (ANN) atau jaringan syaraf tiruan. Jaringan syaraf tiruan merupakan

sistem komputasi dimana arsitektur dan operasi diilhami dari pengetahuan tentang

sel syaraf biologi di dalam otak. Dalam hal ini dapat digambarkan sebagai model

matematis dan komputasi untuk fungsi aproksimasi nonlinier, klasifikasi data,

cluster dan regresi non parametrik atau sebagai sebuah simulasi dari korelasi

model syaraf biologi. Salah satu bidang terapan AI (Artificial Intelligence)

merupakan bidang kedokteran dan khusus dalam hal ini adalah dalam pengobatan

penyakit, kemampuan untuk mendeteksi jenis penyakit tertentu untuk kemudian

ditentukan jenis obat Cina (ramuan Tianshi) yang digunakan pada manusia.

Hasil terapan ini dapat dipergunakan untuk membantu mempercepat memilih

jenis obat bagi pasien yang membutuhkan ramuan Tianshi ini dengan cara

mengembangkan jaringan syaraf tiruan dengan ADALINE (Adaptive Linier

Neuron). Aturan pembelajaran akan meminimalisasi rata-rata kesalahan yang

terjadi antara aktivasi dengan nilai target. Dengan demikian algoritma ini dapat

digunakan untuk menentukan jenis-jenis ramuan Obat Cina (Produk Tianshi) dari

suatu gejala-gejala penyakit yang telah ditentukan. Input yang menuju ke jaringan

ADALINE ini adalah berupa gejala-gejala penyakit dan outputnya adalah berupa

ramuan apa yang harus digunakan untuk mengobatinya.

Page 9: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

ABSTRACT

I One of the branch of AI (Artificial Intelligence) is Artificial Neural

Networks (ANN) or artificial nerve network. Artificial Nerve network is

computing system where operation and architecture inspired from knowledge

concerning biological nerve cell in brain. In this case can be described as by

mathematical model and computing for the function of non linier aproksimasi,

data classification, and cluster of regresi the non parametrik or as a simulations of

correlation model biological nerve. One of the area of terapan AI ( Artificial

Intelligence) is doctor area and special in this case is in medication of disease,

ability to detect selected disease type to is later; then determined by type medicine

Chinese ( ingredient of Tianshi) used at human being.

Result of this terapan can be utilized to assist to to quicken to choose

type medicine for patient requiring ingredient of Tianshi this by developing

artificial nerve network with ADALINE (Linear Adaptive of Neuron).Order Study

of mistake mean minimal that happened among activation with goals value.

Thereby this algorithm can be used to determine ingredient type Medicine

Chinese (Product of Tianshi) from an disease symptom which have been

determined. Input going to network of ADALINE this is in the form of the disease

symptom and him of is in the form of what ingredient which must be used to cure

it.

Page 10: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Kuasa

yang telah melimpahkan berkat-Nya sehingga penulis dapat menyelesaikan

Laporan Tugas Akhir ini. Penulisan tugas akhir ini ditujukan untuk memenuhi

salah satu syarat memperoleh gelar Sarjana Teknik Jurusan Teknik Informatika.

Terselesaikannya penulisan tugas akhir ini tidak lepas dari peran serta

beberapa pihak, baik secara langsung maupun secara tidak langsung. Oleh karena

itu, penulis ingin menyampaikan terima kasih kepada pihak-pihak yang telah ikut

membantu dalam penulisan tugas akhir ini, baik dalam memberikan bimbingan,

petunjuk, kerjasama, kritikan, maupun saran, antara lain kepada:

1. Bapak Drs. J.J, Siang,M.Sc, selaku Dosen Pembimbing, yang telah banyak

membantu terutama dalam memberikan bimbingan, dukungan, dan

penyediaan sarana yang mendukung, sehingga penulis dapat menyelesaikan

laporan tugas akhir ini.

2. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik

Informatika Universitas Sanata Dharma.

3. Ibu Ridowati Gunawan, S.Kom., M.T., dan Bapak H.Agung Hernawan, S.T,

selaku panitia penguji pada ujian pendadaran penulis.

4. Pak Bele, Mas Danang, Mas Catur, Mbak Sri, dan seluruh Laboran, yang telah

memberikan bantuannya terutama dalam proses penelitian penulis. Untuk Pak

Page 11: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Bele, terima kasih atas seluruh bantuannya menjelang dan pada saat

pendadaran.

5. Kedua orang tua penulis, budhe penulis serta kakak dan adik penulis, yang

selalu mendoakan, memberikan semangat dan dorongan kepada penulis untuk

dapat menyelesaikan penulisan laporan tugas akhir ini.

6. Teman-teman Jurusan Teknik Informatika Angkatan 2001 (A dan B) yang

telah berjuang bersama.

7. Teman-teman di Fakultas Ilmu Budaya Universitas Gadjah Mada Yogyakarta

yang banyak memberikan motifasi (Dr.Ida Rochani Adi, S.U., Mas Erwin,

Mas Hananto, Mbak Tutik, Mbak Jatu, Agit dan Sari).

8. Mas Erwin dan Mas Hananto yang banyak memberikan ilmu nya yang sangat

berharga bagi penulis terutama dalam hal Teknologi Komputer.

9. Rosanto Adi selaku Asisten Direktur Utama Rosalia Indah Group yang

memberikan kesempatan bagi penulis dalam menyelesaikan tulisan ini.

10. Teman-teman kerja di Rosalia Indah Tour and Travel Solo yang banyak

membantu dalam memberikan dorongan dalam menyelesaikan tulisan ini.

11. Dan seluruh pihak yang telah ikut ambil bagian dalam penyelesaian laporan

tugas akhir ini yang tidak dapat penulis sebutkan satu-persatu.

Page 12: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Seperti kata pepatah, “Tak ada gading yang tak retak”, maka penulis

menyadari segala keterbatasan dalam menyelesaikan laporan tugas akhir ini. Oleh

karena itu, penulis ingin menyampaikan mohon maaf apabila terdapat kesalahan

dan kekurangan. Untuk itu, penulis mengharapkan kritik dan saran yang

membangun dari seluruh pihak yang membutuhkan laporan tugas akhir ini.

Semoga laporan tugas akhir ini dapat memberikan manfaat bagi siapa

saja yang membutuhkannya. Atas segala perhatiannya dan kerjasamanya, penulis

ucapkan terima kasih.

Yogyakarta, 31 Mei 2007

Andri Ridya Putra

( Penulis )

Page 13: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

DAFTAR ISI

Halaman Judul.........................................................................................................ii

Halaman Persetujuan……………………………………………………………..iii

Halaman Pengesahan……………………………………………………………..iv

Halaman Pernyataan……………………………………………………………....v

Halaman Persembahan……………………………………………………………vi

Halaman Motto……………………………………………………………..........vii

Abstraksi...............................................................................................................viii

Abstract...................................................................................................................ix

Kata Pengantar……………………….....................................................................x

Daftar isi...............................................................................................................xiii

Daftar Gambar......................................................................................................xvi

Daftat Tabel.........................................................................................................xvii

BAB I Pendahuluan ……………………………………………………………….1

1.1 Latar Belakang Masalah………………………………………………....1

1.2 Rumusan Masalah..……………………………………………………...2

1.3 Batasan Masalah.……………………………….………………………..3

1.4 Tujuan Penulisan...………………………………………………………4

1.5 Manfaat Penuliasan...................................................................................5

1.6 Metodologi Penelitian .………………………………………………….5

1.7 Sistematika Penulisan…………………………………………………....7

BAB II Landasan Teori……………………………………………………………9

2.1 Jaringan Syaraf Biologis.…...…………………………………………9

Page 14: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

2.2 Jaringan Syaraf Tiruan..…..………………………………………….13

2.3 ADALINE (Adaptive Linier Neuron)..................................................17

2.4 MADALINE ( Many Adaptive Linier Neuron) ...................................21

2.5 PENYAKIT PADA MANUSIA..........................................................26

2.6 DFD (Data Flow Diagram).................................................................31

2.7 Bagan Alir (Flowchart)...........……………………………………….32

BAB III Analisa dan Perancangan Sistem.............................................................35

3.1 Metoda Analisis......................................................................................35

3.2 Sistem Deteksi Penyakit.........................................................................35

3.3 Analisis Kebutuhan ................................................................................35

3.4 Metoda Perancangan sistem ...................................................................42

BAB IV Implementasi Sistem dan Analisa Hasil……….....................................59

4.1 Lingkungan Implementasi Perangkat Lunak.........................................59

4.2 Lingkungan Implementasi Perangkat Keras..........................................59

4.3 Implementasi Data Base........................................................................60

4.4 Implementasi Antarmuka ......................................................................63

BAB V Penutup....................................................................................................73

5.1 Kesimpulan.............................................................................................73

5.2 Saran.......................................................................................................73

DAFTAR PUSTAKA...........................................................................................74

LAMPIRAN..........................................................................................................75

Page 15: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

DAFTAR GAMBAR

Gambar Keterangan Halaman

2.1. Syaraf Biologi 12 2.2. Arsitektur ADALINE 19

2.3. Arsitektur MADALINE 21

3.1. Diagram Konteks Sistem Deteksi Penyakit 44

3.2 Flowchart proses Pelatihan 45

3.3. Rancangan Antar Muka Menu Utama 52

3.4. Rancangan Antar Muka Login 53

3.5. Rancangan Antar Muka Server Conection 53

3.6. Rancangan Antar Muka Daftar Gejala 54

3.7. Rancangan Antar Muka Daftar Penyakit 55

3.8. Rancangan Antar Muka Konfigurasi Jaringan Neuron 56

3.9. Rancangan Antar Muka Proses Pembelajaran 56

3.10. Rancangan Antar Muka Pengujian 57

3.11. Rancangan Antar Muka Manajemen User 58

4.1. Relasi Antar Tabel 62

4.2. Tampilan Halaman User Interface 63

4.3. Tampilan Halaman Login 64

4.4. Tampilan Halaman Server Conection 65

4.5. Tampilan Halaman Login tidak berhasil 65

4.6. Tampilan Halaman Daftar Gejala 66

4.7. Tampilan Pesan Peringatan Hapus Data 67

4.8. Tampilan Halaman Daftar Penyakit 67

4.9. Tampilan Halaman Konfigurasi Jaringan Neuron 69

4.10. Tampilan Halaman Proses Pembelajaran 70

4.11. Tampilan Halaman Management User 71

4.12. Tampilan Halaman Pengujian Diagnosa 72

Page 16: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

DAFTAR TABEL

Tabel Keterangan Halaman

2.1. Notasi DFD Dasar 31

2.2. Simbol-simbol pada bagan alir program 33

2.3 Lanjutan Simbol-simbol pada bagan alir program 34

3.1. Struktur Tabel Bobot 47

3.2. Struktur Tabel Gejala 48

3.3. Struktur Tabel Pemodelan 48

3.4. Struktur Tabel Penyakit 49

3.5. Struktur Tabel User 50

3.6. Struktur Tabel User Group 50

Page 17: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah

Di era perkembangan teknologi informasi sekarang ini komputer bukan lagi

digunakan untuk membantu pekerjaan manusia, tetapi sudah merupakan pengganti

peran manusia dalam pekerjaan rutinitasnya, sehingga diharapkan peran sumber

daya manusia dapat terbatas dalam menyelesaikan suatu pekerjaan tertentu.

Dalam perkembangannya banyak pakar melakukan uji coba untuk menciptakan

suatu sistem komputer yang dapat diakui lebih cepat, teliti, dan akurat

dibandingkan dengan manusia, hal inilah yang mendorong lahirnya teknologi AI

(Artificial Intelligence).

Salah satu cabang dari AI (Artificial Intelligence) adalah Artificial Neural

Networks (ANN) atau jaringan syaraf tiruan. Jaringan syaraf tiruan merupakan

sistem komputasi dimana arsitektur dan operasi diilhami dari pengetahuan tentang

sel syaraf biologi di dalam otak. Dalam hal ini dapat digambarkan sebagai model

matematis dan komputasi untuk fungsi aproksimasi nonlinier, klasifikasi data,

cluster dan regresi non parametrik atau sebagai sebuah simulasi dari korelasi

model syaraf biologi. Salah satu bidang terapan AI (Artificial Intelligence)

merupakan bidang kedokteran dan khusus dalam hal ini adalah dalam pengobatan

penyakit, kemampuan untuk mendeteksi jenis penyakit tertentu untuk kemudian

ditentukan jenis obat Cina (ramuan Tianshi) yang digunakan pada manusia.

Page 18: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Hasil terapan ini dapat dipergunakan untuk membantu mempercepat memilih

jenis obat bagi pasien yang membutuhkan ramuan Tianshi ini dengan cara

mengembangkan jaringan syaraf tiruan dengan ADALINE (Adaptive Linier

Neuron). Jaringan syaraf tiruan dengan ADALINE dicetuskan oleh Widrow dan

Hoff(1960), pada dasarnya menggunakan aktivasi bipolar (1 atau -1) untuk sinyal

input dan target output dimana bobot dalam koneksi yang berasal dari unit input

ke ADALINE mempunyai bias, bobot yang ada dalam suatu koneksi di suatu

jaringan dapat diatur dan fungsi aktivasinya selalu 1.1 Aturan pembelajaran akan

meminimalisasi rata-rata kesalahan yang terjadi antara aktivasi dengan nilai

target. Dengan demikian algoritma ini dapat digunakan untuk menentukan jenis-

jenis ramuan Obat Cina (Produk Tianshi) dari suatu gejala-gejala penyakit yang

telah ditentukan. Input yang menuju ke jaringan ADALINE ini adalah berupa

gejala-gejala penyakit dan outputnya adalah berupa ramuan apa yang harus

digunakan untuk mengobatinya.

1.2. Rumusan Masalah

Berdasarkan latar belakang masalah di atas maka permasalahan dalam

penelitian ini dapat dirumuskan sebagai pengembangan sistem jaringan syaraf

tiruan yang dapat mendeteksi jenis penyakit berdasarkan gejala-gejala klinis yang

ada sehingga dapat diketahui jenis ramuan Tianshi apa saja yang digunakan untuk

mengobati penyakit tersebut.

1 Kristanto, Andri (2004). Jaringan Syaraf Tiruan (konsep dasar, Algoritma dan aplikasi).

Gava Media, Yogyakarta.

Page 19: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

1.3. Batasan Masalah

Batasan masalah yang digunakan dalam tugas akhir ini adalah :

1. Penelitian ini hanya membahas proses deteksi beberapa jenis penyakit pada

manusia untuk semua usia pasien.

2. Adapun jenis penyakit yang akan dideteksi antara lain: asma, asam urat,

diabetes, hipertensi (darah tinggi), anemia, malaria, TBC, stroke, maag dan

migren.

3. Input yang diperlukan dalam proses ini adalah gejala-gejala klinis yang

dominan dalam penegakan diagnosis.

4. Variabel yang digunakan sebagai input untuk mendeteksi penyakit infeksi

pada manusia adalah :

a. Alergi

b. Batuk.

c. Pilek/bersin.

d. Berkeringat

e. Lemas.

f. Napsu makan berkurang.

g. Mual dan atau muntah.

h. Kaki/tangan Kesemutan

i. Pegal/ngilu.

j. Sakit kepala/pusing

k. Nyeri

l. Demam

Page 20: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

m. Mudah lelah .

5. Arsitektur jaringan syaraf yang digunakan adalah ADALINE (Adaptive Linier

Element). Data yang digunakan untuk pelatihan input adalah data catatan

medis pasien yang menderita penyakit asma, asam urat, diabetes, hipertensi

(darah tinggi), anemia, malaria, TBC, stroke, maag dan migren di RSU Brayat

Minulya Solo.

6. Bahasa pemrograman yang dipakai untuk mendeteksi penyakit pada manusia

dengan penerapan model jaringan syaraf tiruan adalah dengan menggunakan

Borland Delphi 7.0 dan MySQL sebagai databasenya.

1.4. Tujuan Penelitian

Tujuan penelitian dalam tugas akhir ini adalah:

1. Merancang dan membangun sistem jaringan syaraf tiruan untuk mendeteksi

beberapa jenis penyakit pada manusia serta obat apa saja yang diperlukan

untuk mengobati penyalit tersebut berdasarkan data medis yang ada.

2. Mengetahui apakah jaringan syaraf tiruan dapat menerima input selain data

pelatihan dan melihat bagaimana hasilnya.

3. Mampu membantu masyarakat umum agar dapat secara dini mengetahui

penyakit yang sedang dideritanya sehingga mampu mengambil tindakan

preventif sebelum ditangani oleh ahlinya.

4. Dapat membantu dokter yang bertugas dalam melakukan pemeriksaan dan

diagnosa khususnya terhadap jenis penyakit tersebut diatas.

Page 21: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

1.5. Manfaat Penelitian

Adapun manfaat yang diperoleh dari penelitian ini antara lain :

1. Dengan jaringan syaraf tiruan dapat dikembangkan suatu alternatif dalam

menentukan diagnosa penyakit, seperti : asma, asam urat, diabetes, hipertensi

(darah tinggi), anemia, malaria, TBC, stroke, maag dan migren, sehingga

dapat segera diketahui langkah pencegahannya.

2. Mengetahui perancangan jaringan syaraf tiruan untuk penyakit asma, asam

urat, diabetes, hipertensi (darah tinggi), anemia, malaria, TBC, stroke, maag

dan migren.

3. Memudahkan untuk menentukan diagnosa penyakit-penyakit tersebut diatas.

1.6. Metodologi Penelitian

1.6.1. Metodologi Pengumpulan Data

Dalam menunjang pencarian fakta dan pengumpulan data guna mendapatkan

pemecahan masalah yang berkaitan dengan sistem deteksi penyakit, diperlukan

pemahaman tentang bagaimana sistem berjalan. Untuk mengetahui bagaimana

sistem berjalan diperlukan beberapa metode untuk memperoleh data antara lain :

Page 22: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

1. Pengamatan (Observasi).

Yaitu suatu metode dimana penyusun mengadakan pengamatan langsung

berdasarkan sumber-sumber umum yang ada yaitu pada sub. bagian catatan

rekam medis RSU Brayat Minulya Solo

2. Wawancara (interview).

Metode ini dilakukan dengan melakukan tanya jawab langsung pada dokter

atau narasumber lain dengan berlandaskan pada tujuan penelitian

3. Literatur / Kepustakaan.

Merupakan pengumpulan data melalui studi literatur (kepustakaan) yang ada

hubungannya dengan penyusunan laporan tugas akhir ini.

1.6.2. Metodologi Pengembangan Sistem

Metode yang digunakan pada pengembangan sistem atau perangkat lunak

adalah :

1. Analisis dan Rekayasa Sistem.

Dalam menganalisis sistem secara efektif maka perlu ditetapkan tujuan

perancangan dan segala sesuatu yang dibutuhkan dalam perancangan.

2. Analisis Kebutuhan.

Analisis kebutuhan yang dilakukan untuk mengetahui segala sesuatu yang

dibutuhkan baik dalam pembuatan perangkat lunak, perangkat keras dan

bahasa pemrograman yang digunakan.

Page 23: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

3. Perancangan (design).

Perancangan yang dilakukan untuk mendesain model yang diinginkan, yaitu

perancangan arsitektur jaringan syaraf, perancangan proses aliran data,

perancangan basis data dan perancangan antarmuka.

4. Implementasi.

Implementasi yang dilakukan untuk menerjemahkan perancangan ke dalam

bahasa pemrograman, dalam hal ini Borland Delphi 7.0.

5. Testing (uji coba).

Uji coba terhadap sistem dilakukan secara keseluruhan.

1.7. Sistematika Penulisan

Adapun sistematika dalam penulisan tugas akhir ini adalah sebagai berikut:

BAB I : PENDAHULUAN

Meliputi Latar Belakang Masalah, Perumusan Masalah, Batasan

Masalah, Tujuan Penelitian, Manfaat Penelitian, Metodologi

Penelitian yang dilakukan serta Sistematika Penulisan dalam

penyusunan laporan.

BAB II : LANDASAN TEORI

Dalam bab ini menjelaskan mengenai teori - teori yang menjadi

dasar di dalam penelitian, yaitu Jaringan Syaraf Biologis,

Jaringan Syaraf Tiruan, ADALINE, Pengertian Penyakit dan

pembagiannya, Diagram Alir Data / Data Flow Diagram (DFD),

Bagan alir (flowchart) dan Borland Delphi 7.0.

Page 24: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

BAB III : ANALISIS DAN PERANCANGAN.

Dalam bab ini menjelaskan mengenai Metode Analisis, Sistem

Deteksi Penyakit, Analisis Kebutuhan, dan Metode Perancangan

Sistem.

BAB IV : IMPLEMENTASI.

Bab ini berisi pembahasan dari hasil pembuatan program sistem

deteksi jenis penyakit infeksi tropis pada manusia, kemudian

dianalisis untuk diambil kesimpulan.

BAB V : PENUTUP.

Bab ini berisi kesimpulan berdasarkan hasil analisa yang telah

dilakukan dan saran bagi pembaca serta semua pihak yang

berminat mengembangkan sistem deteksi penyakit serta

pengobatannya.

Page 25: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

BAB II

LANDASAN TEORI

2.1. Jaringan Syaraf Biologis

Sistem syaraf, bersama-sama dengan sistem endokrin, mengurus atau

memelihara sebagian besar pengaturan fungsi tubuh. Sejak pembentukannya,

sistem syaraf ini mempunyai sifat-sifat mengatur yang sangat kompleks dan

khusus. Sistem syaraf menerima berjuta-juta rangsangan informasi yang berasal

dari bermacam-macam organ sensorik dan kesemuanya ini bersatu untuk dapat

menentukan respon yang akan diberikan oleh tubuh. Disamping sebagai inspirasi

awal dari jaringan syaraf tiruan, sistem syaraf biologis memberikan ciri-ciri yang

memiliki keuntungan komputasi yang jelas. Pengalaman sensorik ini dapat

menimbulkan reaksi yang berlangsung dengan segera, atau ingatan yang terbentuk

dapat disimpan di dalam otak dan selanjutnya dapat membantu menentukan reaksi

tubuh yang bagaimana yang akan dikeluarkan di masa yang akan datang (Santoso,

2000).

Syaraf biologis memiliki tiga jenis komponen yang merupakan perhatian

khusus dalam memahami tentang jaringan syaraf tiruan, yaitu dendrit, soma dan

akson. Dendrit adalah bagian yang menerima banyak sinyal dari syaraf lainnya.

Sinyal ini adalah impuls elektris yang dikirimkan melalui sebuah sypnatic gap

dengan memakai proses kimia. Aksi pengiriman secara kimia ini memodifikasi

Page 26: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

sinyal-sinyal yang baru saja masuk dengan cara yang sama seperti aksi bobot pada

sebuah jaringan syaraf tiruan.

Soma atau badan sel, menjumlahkan sinyal-sinyal yang baru saja masuk.

Ketika input yang cukup diterima, selnya disulut (fired) inilah yang mengirimkan

sinyal atas akson ke sel lainnya. Sering diperkirakan bahwa sebuah sel, baik

disulut atau tidak, pada waktu sesaat, sinyal yang dikirimkan dapat diperlakukan

sebagai biner (berpasangan). Akan tetapi frekuensi penyulutan berbeda-beda dan

dapat dipandang sebagai sinyal dengan magnitude yang lebih besar atau lebih

kecil. Ini disesuaikan dengan melihat pada setiap tahap atau langkah waktu yang

berlainan dan menjumlahkan semua aktifitas (sinyal diterima atau sinyal

dikirimkan) pada titik khusus pada waktu tertentu.

Pengiriman sinyal dari syaraf khusus dikerjakan oleh aksi potensial yang

dihasilkan dari kosentrasi ion-ion yang berbeda pada salah satu sisi dari lapisan

akson syaraf (“white matter” dari otak). Ion-ion yang paling banyak dilibatkan

secara langsung adalah potassium, sodium dan chloride.

Syaraf biologis umum digambarkan pada gambar 2.1, bersama dengan

akson dari dua syaraf lainnya (syaraf yang dapat menerima sinyal) dan dendrit

untuk dua syaraf lainnya (syaraf yang dapat mengirimkan sinyal). Beberapa ciri-

ciri elemen pemrosesan dari jaringan syaraf tiruan diberikan dari sifat syaraf

biologis, yaitu (Fausett, 1994) :

1. Elemen pemrosesan menerima banyak sinyal.

2. Sinyal mungkin dapat dimodifikasi oleh bobot pada dendrit.

3. Elemen pemrosesan menjumlahkan input bobot.

Page 27: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

4. Dalam keadaan yang tepat (input yang cukup), syaraf mentransmisikan sebuah

output tunggal.

5. Output dari syaraf khusus mungkin menuju ke banyak syaraf lainnya (cabang-

cabang akson).

Ciri-ciri lainnya dari jaringan syaraf tiruan yang diberikan oleh syaraf biologis

adalah :

1. Pemrosesan informasi adalah lokal/setempat (meskipun pengertian lain dari

transmisi, seperti aksi dari hormon, mungkin memberikan pengertian kontrol

proses keseluruhan).

2. Memori dibagi atas :

a. Memori jangka panjang terletak pada sinapsis syaraf atau bobot.

b. Memori jangka pendek disesuaikan untuk sinyal yang dikirim oleh syaraf.

3. Kekuatan sipnasis (sypnase strength) mungkin dapat dimodifikasi oleh

pengalaman.

4. Neurotransmitters untuk sipnasis dapat menjadi pemicu/pembangkit atau

penghalang.

Karakteristik lain yang penting dari jaringan syaraf tiruan, yang sama dengan

sistem syaraf biologis adalah toleransi kesalahan (fault tolerance). Sistem syaraf

biologis memberikan toleransi kesalahan dalam dua hal. Pertama, dapat mengenali

banyak sinyal input yang agak berbeda dengan sembarang sinyal input lain yang

pernah dilihat sebelumnya. Sebuah contoh dari hal ini adalah kemampuan

manusia untuk mengenali seseorang setelah periode waktu yang lama. Kedua,

Page 28: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

dapat memberi toleransi kerusakan untuk sistem syaraf itu sendiri. manusia

dilahirkan dengan syaraf sebanyak 100 milyar. Sebagian besar berada dalam otak,

dan banyak yang tidak dapat digantikan ketika sel-sel syaraf tersebut telah mati.

Walaupun syaraf biologis terus-menerus hilang, manusia tetap berlanjut untuk

belajar. Bahkan dalan kasus kehilangan sel syaraf yang parah, syaraf-syaraf lain

dapat sewaktu-waktu dilatih untuk mengambil alih fungsi dari sel-sel yang rusak.

Dengan cara yang sama, jaringan syaraf tiruan dapat didesain untuk mengabaikan

kerusakan kecil pada jaringan, dan jaringan dapat dilatih kembali dalam kasus-

kasus kerusakan yang berarti (misalnya kehilangan data dan beberapa hubungan).

Gambar 2.1. Syaraf biologi

Walaupun bagi penggunaan jaringan syaraf tiruan tidak diharapkan untuk

dapat memodelkan sistem syaraf biologis, namun mencoba untuk mencapai

kemungkinan memodelkan jaringan syaraf biologis secara lebih logis/masuk akal

dapat membawa kepada perbaikan ciri-ciri komputasional. Satu contoh adalah

penggunaan planar array dari syaraf, sebagaimana ini ditemukan pada syaraf

visual cortex untuk peta organisasi sendiri (Self-Organizing Maps) dari Kohonen.

Page 29: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Sifat dasar secara topologi dari peta ini mempunyai keuntungan komputasional,

bahkan dalam aplikasi dimana struktur unit output sendiri tidak signifikan.

Para peneliti lain telah menemukan bahwa pengelompokkan dari syaraf tiruan

optimal secara komputasional dapat disamakan dengan kumpulan syaraf biologis.

2.2. Jaringan Syaraf Tiruan

Jaringan syaraf tiruan disebut juga “Brain Metaphor”, “Computational

Neuroscience” atau “Parallel Distributed Processing” serta “Connection”.

Sistem ini merupakan suatu model komputer yang mengambil prinsip kerja syaraf

otak manusia. Jaringan syaraf tiruan tersusun dari sejumlah besar elemen yang

melakukan kegiatan analog dengan fungsi-fungsi biologis neuron yang paling

elementer. Elemen-elemen ini terorganisasir sebagaimana layaknya anatomi otak,

walaupun tidak persis. Jaringan syaraf tiruan dapat belajar dari pengalaman,

melakukan generalisasi dari contoh-contoh yang diperoleh dan mengabstraksi

karakteristik esensial input bahkan data yang tidak relevan (Fausett, 1994).

Jaringan syaraf tiruan beroperasi secara langsung dengan angka sehingga data

yang tidak numerik harus diubah menjadi data numerik. Jaringan syaraf tiruan

dikenal sebagai model free estimator karena tidak memerlukan model matematis

dari permasalahan yang dihadapi, dikenal juga sebagai kotak hitam (Black Box

Technology) atau tidak transparan (Opaque) karena tidak dapat menerangkan

bagaimana suatu hasil didapatkan. Hal ini membuat jaringan syaraf tiruan mampu

digunakan untuk menyelesaikan persoalan yang tidak terstruktur dan sulit

didefinisikan.

Page 30: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Jaringan syaraf tiruan diimplementasikan untuk pemecahan masalah

komputasi seperti yang dilakukan oleh otak manusia seperti pengenalan pola,

pengambilan keputusan, kendali penggerak dan banyak lagi seperti prediksi

kebangkrutan pada perusahaan, sebagai suatu mekanisme untuk mengakusisi

pengetahuan untuk sistem pakar seperti pada peramalan stok market dengan hasil

yang akurat. Pada dasarnya, kebanyakan aplikasi jaringan syaraf tiruan termasuk

ke dalam 5 kategori berikut (Haykin, 1994) :

1. Prediksi, menggunakan nilai input untuk memprediksi beberapa output.

Contohnya memilih barang terbaik dalam market, peramalan cuaca,

identifikasi seorang penderita penyakit kanker, dan lain sebagainya.

2. Klasifikasi, menggunakan nilai input untuk menentukan klasifikasi.

Contohnya, adalah input dari huruf ‘A’.

3. Asosiasi data, pada dasarnya seperti klasifikasi, tetapi juga dapat mengenali

data yang berisikan kesalahan. Contohnya, tidak hanya identifikasi karakter

yang di scan tetapi identifikasi kapan scanner tidak bekerja sebagaimana

mestinya.

4. Data Conseptualization, menganalisa input-input sehingga pengelompokkan

hubungan dapat di simpulkan.

5. Data Filtering, menghaluskan sebuah sinyal input. Contohnya,

menghilangkan bunyi pada sinyal telepon.

Jaringan syaraf tiruan memiliki sejumlah besar kelebihan dibandingkan

dengan metode perhitungan lainnya (sistem pakar, statistik), yaitu (Haykin,1994) :

Page 31: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

1. Kemampuan mengakusisi pengetahuan walaupun dalam kondisi adanya

gangguan dan ketidakpastian. Hal ini dikarenakan jaringan syaraf tiruan

mampu melakukan generalisasi, abstraksi, dan ekstrasi terhadap properti

statistik dari data.

2. Kemampuan merepresentasikan pengetahuan secara fleksibel. Jaringan syaraf

tiruan dapat menciptakan sendiri representasi melalui pengaturan diri sendiri

atau kemampuan belajar (self organizing).

3. Kemampuan mentolerir suatu distorsi (error/fault). Dimana gangguan kecil

pada data dapat dianggap hanya noise (guncangan) belaka.

4. Kemampuan memproses pengetahuan secara efisien karena memakai sistem

paralel, maka waktu yang diperlukan untuk mengoperasikannya menjadi lebih

singkat.

5. Kemampuan untuk memperoleh pengetahuan melalui pembelajaran dari

pengalaman.

Walaupun dengan banyak kelebihan yang dimiliki, jaringan syaraf tiruan tetap

mempunyai sejumlah keterbatasan. Misalnya kekurangmampuannya dalam

melakukan operasi-operasi numerik dengan presisi tinggi, operasi algoritma

aritmatik, operasi logika, dan oprasi simbolis dan lamanya proses pelatihan yang

kadang-kadang membutuhkan waktu berhari-hari untuk jumlah data yang besar.

Hal itu terjadi karena sulitnya mengukur performansi sebenarnya dari jaringan

syaraf tiruan itu sendiri.

Page 32: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

2.2.1. Konsep Dasar Jaringan Syaraf Tiruan.

Ide dasar jaringan syaraf tiruan adalah konsep belajar. Jaringan-jaringan

belajar melakukan generalisasi karakteristik tingkah laku obyek. Jika dilihat dari

sudut pandang manusia, hal ini sama seperti bagaimana manusia belajar sesuatu.

Manusia mengenal obyek dengan mengatur otak untuk menggolongkan atau

melakukan generalisasi terhadap obyek-obyek tersebut. Manusia menyimpan ilmu

pengetahuannya ke dalam otak yang berisikan sinapsis, neuron, dan lainnya.

Jaringan syaraf menyimpan ilmu pengetahuannya dalam nilai bobot sambungan

(seperti sinapsis dalam otak manusia) dan elemen-elemen (neuron) yang

menghasilkan keluaran.

Untuk dapat menyelesaikan suatu permasalahan, jaringan syaraf tiruan

memerlukan algoritma belajar, yaitu bagaimana sebuah konfigurasi jaringan

syaraf tiruan dapat dilatih untuk mempelajari data historis yang ada. Dengan

pelatihan ini, pengetahuan yang terdapat pada data dapat diserap dan

direpresentasikan oleh harga-harga bobot koneksinya. Ada dua jenis algoritma

belajar :

a. Pembelajaran Terawasi (Supervised Learning)

Metode pembelajaran pada jaringan syaraf disebut terawasi jika output yang

diharapkan telah diketahui sebelumnya. Contoh : Delta Rule, Generalised

Delta Rule (GDR) atau algoritma backpropagation, dan algoritma Learning

Vector Quantization (LVQ).

b. Pembelajaran Tak Terawasi (Unsupervised Learning)

Page 33: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Metode pembelajaran yang tak terawasi ini tidak memerlukan target output.

Contoh : Kohonen dan Carpenter-Grossberg Adaptive Resonance Theory

(ART), dan Competitive Learning Algorthm.

2.2.2. Konfigurasi Jaringan Syaraf Tiruan

Menurut strukturnya, jaringan syaraf dapat dibagi kedalam 2 jenis :

1. Feedforward networks.

Sinyal mengalir dari lapisan masukan, lapisan tersembunyi sampai lapisan

luaran. Setiap simpul dihubungkan dengan simpul lainnya yang berada di atas

dan di bawahnya, tetapi tidak dengan simpul yang berada pada lapisan yang

sama. Contoh : Multi Layer Perceptron (MLP), Learning Vector Quantization

(LVQ) Network, Carebellar Model Artculation Control (CMAC) Network,

Group Method of Data Handling (GMDH) Network.

2. Recurrent networks.

Sinyal mengalir dua arah: maju dan mundur. Recurrent network memiliki

memori dinamik: luaran-luaran yang berasal dari masukan, sama baiknya

seperti masukan dan luaran sebelumnya. Contoh : Hopfield network, Elman

network, dan Jordan network.

2.3. ADALINE

ADALINE (Adaptive Linear Neuron) merupakan algoritma pembelajaran yang

terawasi dan pada dasarnya menggunakan aktivasi bipolar (1 atau -1) untuk sinyal

input dan target output. Bobot dalam koneksi yang berasal dari unit input ke

Page 34: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

ADALINE dapat diatur. ADALINE mempunyai bias, dimana bobot yang ada

dalam suatu koneksi di suatu jaringan dapat diatur dan fungsi aktivasinya selalu 1.

Secara umum, ADALINE dapat dilatih dengan menggunakan delta rule

seperti LMS (Least Mean Square) atau aturan Widrow dan Hoff. Aturan atau

algoritma ADALINE juga digunakan untuk jaringan satu lapisan dengan beberapa

unit input. ADALINE hanya mempunyai satu unit output.

Aturan pembelajaran akan meminimalisasi rata-rata kesalahan yang terjadi

dengan nilai target. Hal ini akan mengijinkan jaringan untuk melanjutkan

pembelajaran pada semua pelatihan, bahkan sesudah nilai output yang benar

dihasilkan (jika sebuah fungsi threshold diterapkan) untuk beberapa pola.

Sesudah pelatihan, jika jaringan itu sedang digunakan untuk klasifikasi pola,

dimana output yang dikehendaki, baik +1 atau -1, sebuah fungsi threshold dapat

diterapkan kedalam jaringan input untuk memperoleh aktivasi. Jika input jaringan

ke ADALINE lebih besar daripada atau sama dengan 0, nilai aktivasinya akan

diset menjadi 1, dan jika tidak, nilai aktivasinya sama dengan -1.

ADALINE adalah unit tunggal neuron yang menerima input dari beberapa

unit. ADALINE juga menerima input dari sebuah unit yang sinyalnya selalu +1,

untuk bobot bias dilatih oleh proses yang sama, sedangkan delta rule digunakan

untuk melatih bobot yang lain. ADALINE tunggal ditunjukkan pada gambar 2.2.

diberikut ini :

Page 35: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Gambar 2.2. Arsitektur ADALINE

Beberapa ADALINE yang menerima input yang sama dapat dikombinasikan

dalam jaringan satu lapisan, dideskripsikan untuk perceptron. Jika ADALINE

dalam jaringan satu lapisan ini dikombinasikan, maka output dari ADALINE akan

berubah menjadi input untuk ADALINE yang lain, sehingga jaringan akan

berubah menjadi jaringan banyak lapisan. Kondisi semacam ini akan

mempengaruhi dalam penentuan sebuah bobot, karena didalam menentukan bobot

akan sangat sulit.

2.3.1. Algoritma Pelatihan

Sebuah algoritma untuk pelatihan ADALINE adalah sebagai berikut :

Langkah 1 : inisialisasi bobot (biasanya menggunakan nilai acak). Set learning

rate α

Langkah 2 : selama kondisi berhenti bernnilai salah, maka lakukan langkah-

langkah berikut :

Page 36: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

a. Untuk pelatihan masing-masing pasangan s dan t, kerjakan :

(1) Set aktivasi untuk unit input, i = 1….n

ii sx =

(2) Hitung input jaringan ke unit output

∑−=i

iiwxbiny _

(3) Perbaharui bias (b) dan bobot (w), i = 1,….,n

iii xinylamawbaruw

inylamabbarub

)_1()()(

)_1()()(

−+=

−+=

αα

b. Tes untuk kondisi berhenti. Jika bobot yang paling besar

berubah pada langkah a, lebih kecil dibandingkan pada

toleransi yang ditetapkan, maka perhitungan bobot bias bisa

dihentikan, kalau tidak, dilanjutkan.

2.3.2. Aplikasi

Sesudah pelatihan, sebuah unit ADALINE dapat digunakan untuk

mengklasifikasikan pola input. Jika nilai target bersifat bivalen (polar atau biner),

fungsi step dapat diterapkan pada fungsi aktivasi untuk unit bipolar. Prosedur

dariu fungsi step yang diterapkan pada target bipolar adalah sebagai berikut:

Langkah 1 : inisialisasi bobot

Langkah 2 : untuk masing-masing vector input bipolar x, lakukan langkah-

langkah berikut ini :

Page 37: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

a. Set aktivasi unit input untuk x

∑+=i

iiwxbiny _

b. Fungsi aktivasi yang berlaku adalah

−=

1

1y jika

0_

0_

<

iny

iny

2.4. MADALINE

MADALINE (Many Adaptive Linear Neurons) diatur dalam jaringan banyak

lapisan. Contoh yang diberikan oleh PERCEPTION dan DELTA RULE untuk

beberapa unit output, keduanya mengindikasikan tidak ada perubahan dalam

proses pelatihan jika beberapa unit ADALINE dikombinasikan dalam jaringan

satu lapisan. Arsitektur MADALINE dapat pada gambar 2.3. berikut :

Gambar 2.3. Arsitektur MADALINE dengan 2 ADALINE yang tersembunyi

dan satu output ADALINE

Dari gambar diatas dapat dijelaskan bahwa 2 unit output yang tersembunyi

dari ADALINE, yaitu z1 dan z2 yang ditentukan dengan sinyal yang berasal dari

unit input yang sama, yaitu x1 dan x2. Masing-masing sinyal output adalah hasil

Page 38: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

penerapan sebuah fungsi threshold ke unit input jaringan. Kemudian y adalah

fungsi nonlinear dari input vector (x1 , x2). Penggunaan unit yang tersembunyi

yaitu z1 dan z2 adalah untuk memberikan kemampuan komputansi yang tidak

ditemukan pada jaringan satu lapisan, tetapi juga mempersulit proses pelatihan.

2.4.1. Algoritma Pelatihan

Algoritma yang digunakan untuk pelatihan MADALINE ada 2, yaitu MRI dan

MRII. Dalam algoritma MRI, ditentukan bobot adalah v1 dan v2. Unit output y

akan bernilai 1 bila sinyal yang diterima dari z1 dan z2 adalah 1dan unit output y

akan bernilai -1 bila sinyal yang diterima dari z1 dan z2 adalah -1. dengan kata

lain, unit y melakukan fungsi logika OR pada suatu sinyal yang diterima dari z1

dan z2. Bobot pada y adalah 2

11 =V dan

2

12 =V , dengan bias adalah

2

13 =b .

Bobot pada ADALINE pertama yang tersembunyi yaitu w11 dam w21, dan bobot

pada ADALINE kedua yang tersembunyi yaitu w12 dam w22 disesuaikan dengan

algoritmanya. Algoritma pelatihan pada MADALINE MRI adalah sebagai

berikut:

Langkah 0 : Tentukan fungsi aktivasi untuk masing-masing unit z1,z2 dan y

yaitu :

−=

1

1y jika

0

0

<

x

x

Langkah 1 : inisialisasi bobot (biasanya menggunakan nilai atau angka yang

kecil dan acak). Set learning rate α dengan nilai kecil

Page 39: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Langkah 2 : selama kondisi berhenti bernnilai salah, maka lakukan langkah-

langkah berikut :

a. Untuk masing-masing pasangan bipolar s dan t,

b. Set aktivasi unit input : ii sx =

c. Hitung input jaringan untuk masing-masing unit ADALINE

yang tersembunyi

22212222

21211111

_

_

wxwxbinz

wxwxbinz

++=

++=

d. Tentukan output dari masing-masing unit ADALINE yang

)_(

)_(

1

1

inzfz

inzfz

=

=

e. Tentukan output jaringan

)_(

_ 22113

inyfy

vzvzbiny

=

++=

f. Tentukan kesalahan dan perbaiki bobot:

Jika t = y, tidak ada perubahan perbaikan bobot

Jika tidak, kerjakan :

Jika t – 1, maka perbaiki bobot pada zi

Unit input terdekat 0

)_(

)_1()()(

inyfy

inzlamabbarub jjj

=

−+= α

Jika t = -1, maka perbaiki bobot semua unit zkbernilai positif

ikikik

kkk

xinzlamawbaruw

inzlamabbarub

)_1()()(

)_1()()(

−+=

−+=

α

α

Page 40: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

g. Tes kondisi berhenti. Jika perubahan bobot telah berhenti atau

jika angka maksimum pada literasi perbaikan bobot telah

dilakukan, kondisi berhenti bernilai benar, kalau tidak,

lanjutkan.

Dalam algoritma MR II, ditentukan bobot adalah v1 dan v2, sedangkan bias

adalah b3 dan unit output yaitu y. Unit output y akan bernilai 1 bila sinyal yang

diterima dari z1 dan z2 adalah 1dan unit output y akan bernilai -1 bila sinyal yang

diterima dari z1 dan z2 adalah -1. dengan kata lain, unit y melakukan fungsi logika

OR pada suatu sinyal yang diterima dari z1 dan z2.

Bobot pada y adalah 2

11 =V dan

2

12 =V , dengan bias adalah

2

13 =b .

Bobot pada ADALINE pertama yang tersembunyi yaitu w11 dam w21, dan

bobot pada ADALINE kedua yang tersembunyi yaitu w12 dam w22 disesuaikan

dengan algoritmanya. Algoritma pelatihan pada MADALINE MRI adalah sebagai

berikut:

Langkah 0 : Tentukan fungsi aktivasi untuk masing-masing unit z1,z2 dan y

yaitu :

−=

1

1y jika

0

0

<

x

x

Langkah 1 : inisialisasi bobot (biasanya menggunakan nilai atau angka yang

kecil dan acak). Set learning rate α dengan nilai kecil

Langkah 2 : selama kondisi berhenti bernnilai salah, maka lakukan langkah-

langkah berikut :

Page 41: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

a. Untuk masing-masing pasangan bipolar s dan t,

b. Set aktivasi unit input : ii sx =

c. Hitung input jaringan untuk masing-masing unit ADALINE

yang tersembunyi

22212222

21211111

_

_

wxwxbinz

wxwxbinz

++=

++=

d. Tentukan output dari masing-masing unti ADALINE yang

tersembunyi :

)_(

)_(

12

11

inzfz

inzfz

=

=

e. Tentukan output jaringan

)_(

_ 22113

inyfy

vzvzbiny

=

++=

f. Tentukan kesalahan dan perbaiki bobot:

Jika t ≠ y, lakukan langkah 1 dan langkah 2 untuk masing-

masing unit tersembunyi, dimana input jaringan terdekat sama

dengan 0 (misalnya antara -0,25 sampai 0,25)

(1) Ubahlah unit output (dari _1 menjadi -1)

(2) Hitung ulang respon jaringan (gunakan delta rule untuk

menghitung ulang)

Tes kondisi berhenti. Jika perubahan bobot telah berhenti atau jika angka

maksimum pada literasi perbaikan bobot telah dilakukan, kondisi berhenti bernilai

benar, kalau tidak, lanjutkan.

Page 42: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

2.5. Penyakit Pada Manusia

2.5.1. Asma

Asma adalah suatu gejala yang ditimbulkan oleh kelainan saluran pernapasan

yang menyebabkan peningkatan kepekaan terhadap rangsangan dari lingkungan.

Pemicu kejadian ini dapat berupa kelelahan pikiran (gangguan emosi), kelelahan

jasmani, perubahan lingkungan hidup yang tidak diharapkan (cuaca, temperature,

dan lain sebagainya), infeksi saluran pernapasan dan reaksi alergi dari bahan yang

terhirup atau dimakan. Tingkat kepekaan saluran pernapasanini diawali dari gejala

ringan (pilek/bersin atau batuk yang sering berulang/kambuh) sampai dengan

gejala yang berat, berupa serangan asma.

Sekitar 50% gejala ini akan sembuh dengan sendirinya, walaupun pada suatu

saat gejala ini akan muncul lagi pada tingkat yang lebih berat. Keadaan ini dikenal

sebagai asma.

2.5.2. Diabetes

Nama lengkap penyakit ini adalah diabetes mellitus, yaitu suatu gangguan dari

kelenjar pankreas. Menurut perkiraan medis, diabetes tidak bisa disembuhkan,

tetapi bias dikontrol dengan pengobatan seumur hidup (Medi Media, 1999).

Penyakit diabetes dibagi menjadi 2. Tipe I adalah diabetes yang tergantung

kepada insulin (insulin dependen) yang biasa terjadi pada anak-anak, dan

pengobatannya memerlukan suntikan insulin. Tipe II (non insulin dependen)

adalah diabetes yang tidak tergantung insulin. Ini biasa terjadi pada orang dewasa

dan biasanya bisa dikontrol dengan olah raga, diet, dan obat anti diabetes.

Page 43: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Penyebab penyakit ini belum bias dipastikan, namun biasanya disebabkan oleh

faktor keturunan serta rusaknya kelenjar pankreas.

2.5.3. Hipertensi

Hipertensi atau tekanan darah tinggi adalah tekanan darah yang terbaca

dimana sistolik/distolik diatas 140/90 mmHg. Menurut kalangan kedokteran,

keadaan ini tidak bias disembuhkan, tetapi dapat dikontrol dengan pola hidup

sehat dan obat-obatan. Namun menurut Clifford C. Andersin MD, obat-obatan

untuk hipertensi pada hakikatnya hanya sekedar meringankan, bukan

menyembuhkan.

2.5.4. Anemia

Anemia adalah keadaan yang disebabkan oleh rendahnya kadar hemoglobin

(Hb) darah. Semua Hb yang terdapat didalam eritrosit mengalami penurunan

konsentrasi dibawah nilai normal, sehingga penderita mengalami sakit kepala,

pusing, mudah lelah, dan mata berkunang-kunang. Selain karena penurunan

konsentrasi Hb, penyakit ini bisa juga disebabkan oleh faktor keturunan, ataupun

sel asal rusak karena pengaruh obat-obatan tipe tertentu.

2.5.5. Malaria

Malaria adalah suatu infeksi sel darah merah oleh plasmodium. Malaria

disebabkan melalui gigitan nyamuk betina anopheles, transfusi darah yang

terkontaminasi, dan suntikan dengan jarum yang sebelumnya telah digunakan oleh

Page 44: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

penderita. Setelah digunakan obat-obatan dan insektisida, malaria jarang

ditemukan di Amerika dan negara berkembang lainnya, tetapi infeksi ini masih

sering terjadi di negara-negara tropis. Terdapat 4 spesies parasit malaria, yaitu :

(1) Plasmodium vivax, (2) Plasmodium Ovale, (3) Plasmodium Falciparum, dan

(4) Palsmodium Malariae. Semuanya dapat menginfeksi manusia dan

menyebabkan malaria. Plasmodium Falciparum merupakan penyebab infeksi

terbanyak dan paling berbahaya. Gejala biasanya mulai timbul dalam waktu 10-35

hari setelah parasit masuk ke dalam tubuh manusia melalui gigitan nyamuk.

Gejala awal seringkali berupa demam ringan yang hilang timbul, sakit kepala,

sakit otot dan mengigil, bersamaan dengan perasaan tidak enak badan (malaise).

Gejala ini berlangsung selama 2-3 hari dan sering diduga sebagai gejala flu.

Gejala berikutnya dan pola penyakitnya pada keempat jenis malaria ini berbeda.

Pada malaria falciparum bisa terjadi kelainan fungsi otak, yaitu suatu komplikasi

yang disebut malaria serebral. Malaria serebral bisa berakibat fatal. Pada malaria

vivax, mengigau bisa terjadi jika demam tinggi, sedangkan gejala otak lainnya

tidak ada. Pada semua jenis malaria, jumlah sel darah putih total biasanya normal

tetapi jumlah limfosit dan monosit meningkat. Jika tidak diobati, biasanya akan

timbul jaundice ringan (sakit kuning) serta pembesaran hati dan limpa. Kadar gula

darah rendah dan hal ini lebih berat pada penderita yang di dalam darahnya

mengandung lebih banyak parasit. Jika sejumlah kecil parasit menetap di dalam

darah, kadang malaria bersifat menetap.

Page 45: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

2.5.6. TBC

TBC adalah penyakit menular yang disebabkan oleh mycobacterium

tumbercolosis. Selain terdapat di paru-paru, bakteri ini juga dijumpai di beberapa

organ diseluruh tubuh, antara lain : usus dan kelenjar limfa (kelenjar getah bening,

tulang kulit, otak, ginjal, dan lain-lain) kemungkinan seseorang tertular sangat

tinggi, terutama pada daerah yang berpenduduk padat. Gejala umum pada

penderita TBC adalah suhu badan naik hingga 390 – 410C, kehilangan nafsu

makan, batuk yang berkepanjangan, berat badan menurun, dan lain sebagainya.

Bagi penderita dianjurkan minumm susu dan makanan bergizi setiap hari, istirahat

yang cukup, melakukan pernapasan di tempat yang bersih dan segar serta

menghindari hal-hal yang dapat menimbulkan stress.

2.5.7. Stroke (Pendarahan Otak)

Merupakan penyakit yang disebabkan karena aliran darah yang mengaliri otak

terputus sehingga menyebabkan hilangnya fungsi bagian tubuh yang diatur oleh

daerah yang terkena stroke. Stroke biasanya terjadi pada orang lanjut usia. Derajat

berat ringannya stroke sangat bervariasi. Bila aliran darah terputus untuk

sementara atau hanya sebagian kecil otak yang terkena, maka efeknya juga ringan

dan sementara. Sebaliknya, bila aliran darah terputus cukup luas atau bagian otak

yang terkena cukup besar, maka akibatnya berat dan cukup luas.

Page 46: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

2.5.8. Maag

Dalam keadaan normal, dinding lambung biasanya dilindungi oleh lapisan

mukosa terhadap pengaruh asam dan enzim yang biasanya terdapat didalam cairan

lambung. Bila karena suatu sebab lapisan selaput lender (mukosa) robek, maka

asam lambung akan merusak lapisan dinding lambung dan menyebabkan tukak

(luka) dengan garis tengan beberapa sentimeter. Keadaan inilah yang disebut

dengan maag/sakit lambung.

Penyebab penyakit ini belum diketahui secara pasti, namun kebiasaan

merokok, minum minuman keras, tekanan batin, makan tidak teratur serta stress

diduga dapat menyebabkan pembentukan luka pada lambung.

2.5.9. Migren

Migren diduga akibat fenomena dari pembuluh darah yang tidak normal.

Mekanisme yang sebenarnya belum diketahui dengan jelas. Biasanya, wanita

lebih banyak mengalami migren bila dibandingkan dengan pria. Gejala umum

yang umum adalah kepala berdenyut dan biasanya hanya pada satu sisi, mual,

ingin muntah, serta sensitif terhadap cahaya dan bunyi.

Untuk mencegah, biasanya penderita dianjurkan untuk mengkonsumsi buah

dan sayuran segar, menghindari makanan dan minuman yang mengandung

alkohol, coklat, keju, kacang-kacangan, kafein dan kopi, serta menghindari

minum es atau cairan dingin.

Page 47: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

2.6. Diagram Alir Data / Data Flow Diagram (DFD)

Diagram Alir Data / Data Flow Diagram (DFD) adalah sebuah teknik grafis

yang menggambarkan aliran informasi dan trnsformasi yang diaplikasikan pada

saat data bergerak dari input menjadi output. DFD juga dikenal sebagai grafik

aliran data atau bubble chart (Pressman, 2002). DFD tingkat 0 yang disebut juga

dengan model sistem fundamentasi atau diagram konteks, merepresentasikan

seluruh elemen sistem sebagai sebuah bubble tunggal dengan data input dan

output yang ditunjukkan oleh anak panah yang masuk dan keluar secara

berurutan. Proses tambahan (bubble) dan jalur aliran informasi direpresentasikan

pada saat DFD tingkat 0 dipartisi untuk mengungkapkan detail yang lebih. Setiap

proses yang direpresentasikan pada tingkat 1 merupakan subfungsi dari seluruh

sistem yang digambarkan di dalam model konteks. Notasi dasar yang digunakan

untuk menciptakan suatu DFD adalah sebagai berikut :

Tabel 2.1 Notasi DFD Dasar

No Notasi / Simbol Keterangan

1

Untuk merepresentasikan sebuah entitas eksternal,

yaitu sebuah elemen sistem (misalnya perangkat

keras, seseorang, program yang lainnya) atau

sistem yang lain yang menghasilkan informasi bagi

transformasi oleh perangkat lunak atau menerima

Page 48: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

informasi yang dihasilkan perangkat lunak

2

Sebuah proses atau transformasi yang

diaplikasikan ke data (atau kontrol) dan

mengubahnya dengan berbagai macam cara.

3

Melambangkan satu atau lebih data

4 Penyimpanan data atau informasi tersimpan yang

digunakan oleh perangkat lunak

2.7. Bagan Alir (Flowchart)

Bagan alir (flowchart) adalah bagan (chart) yang menunjukkan alir (flow) di

dalam program atau prosedur sistem secara logika (Jogiyanto, 1990). Pada waktu

akan menggambarkan suatu bagan alir, analis sistem atau pemrogram dapat

mengikuti pedoman-pedoman sebagai berikut :

1. Bagan alir sebaiknya digambarkan dari atas ke bawah dan mulai dari bagian

kiri dari suatu halaman.

2. Kegiatan di dalam bagan alir harus ditunjukkan dengan jelas.

3. Harus ditunjukkan dari mana kegiatan akan dimulai dan dimana akan berakhir.

Page 49: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

4. Masing-masing kegiatan di dalam bagan alir sebaiknya digunakan suatu kata

yang mewakili suatu pekerjaan, misalnya : “persiapkan” dokumen, “hitung”

gaji.

5. Masing-masing kegiatan di dalam bagan alir harus di dalam urutan yang

semestinya.

6. Kegiatan yang terpotong dan akan disambung di tempat lain harus ditunjukkan

dengan jelas menggunakan simbol penghubung.

7. Gunakanlah simbol-simbol bagan alir yang standar.

8.

Tabel 2.2. Simbol-simbol pada bagan alir program

No Notasi / Simbol Keterangan

1

Simbol input / output

Digunakan untuk mewakili data

input/output.

2

Simbol Proses

Digunakan untuk mewakili suatu proses.

3

Simbol Penghubung

Digunakan untuk menunjukkan sambungan

dari bagan alir yang terputus dihalaman

yang masih sama atau halaman lainnya.

Page 50: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

4

Simbol garis alir.

Digunakan untuk menunjukkan arus dari

proses.

5

Simbol keputusan

Digunakan untuk suatu penyelesaian

kondisi di dalam program.

Tabel 2.3. Lanjutan Simbol-simbol pada bagan alir program

No Notasi / Simbol Keterangan

6

Simbol keputusan

Digunakan untuk menunjukkan suatu

operasi yang rinciannya ditunjukkan

ditempat lain

7

Simbol persiapan

Digunakan untuk memberikan nilai awal

suatu besaran

8

Simbol titik terminal

Digunakan untuk menunjukkan awal dan

Page 51: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

akhir dari suatu proses

9

Simbol Display

Digunakan untuk menampilkan output pada

layar tampilan /monitor

2.8.Borland Delphi 7.0

Borland Delphi 7.0 merupakan program aplikasi desktop yang berbasis

Object Basic dan merupakan cara yang paling sederhana untuk membangun

aplikasi desktop. Lingkungan Delphi ditata dalam bentuk yang sangat menarik.

Integrated Development Environment (IDE) adalah sebuah lingkungan di mana

tools yang diperlukan untuk desain, menjalankan dan mengetes sebuah aplikasi

disajikan dan terhubung dengan baik sehingga memudahkan pengembangan

program. IDE terdiri dari Main Window, Component Palette, Toolbar, Form

Designer, Code Editor dan Code Explorer. Integrasi ini memberikan kemudahan

dalam mengembangkan aplikasi yang kompleks.

1. Main Window

Main window adalah bagian utama dari IDE. Main window mempunyai

semua fungsi utama dari program-program Windows lainnya. Main window

dibagi menjadi tiga bagian yaitu menu utama, toolbar, component palette.

Menu utama dipakai untuk membuka dan menyimpan file, memanggil wizard,

menampilkan jendela lain, mengubah option dan lain sebagainya. Toolbar

Page 52: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

dipakai untuk melakukan beberapa operasi pada menu utama dengan sebuah

klik tunggal. Component palette adalah toolbar dengan ketinggian ganda,

yang berisi page control dengan semua komponennya.

2. Form Designer

Form designer memungkinkan untuk merancang aplikasi windows dengan

cara memilih komponen dari component palette dan meletakkannya dalam

form.

3. Object Inspector

Object inspector untuk mengubah property dari setiap item, disamping itu

untuk mengontrol tindakan yang diambil jika terjadi event.

4. Code Editor

Jendela ini dipakai untuk menuliskan program. VB mempunyai fasilitas

highlight untuk memudahkan menemukan kesalahan, kerangka program

sehingga tidak perlu menuliskan seluruh program.

5. Code Explorer

Code explorer dipakai untuk memudahkan navigasi di dalam file unit.

BAB III

Page 53: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

ANALISIS DAN PERANCANGAN

3.1. Metode Analisis

Metode analisis yang akan digunakan pada sistem deteksi penyakit adalah

metode analisis dengan pendekatan terstruktur (structured approach) lengkap

dengan alat (tools) yang berupa jenis komponen yang dibutuhkan dan teknik yaitu

metode dan fungsi-fungsi yang dibutuhkan dalam pengembangan sistem sehingga

hasil analisis akan menghasilkan sistem yang terstrukturnya dapat didefinisikan

dengan baik dan jelas.

Sistem ini menggunakan diagram alir data (Data Flow Diagram / DFD) untuk

menggambarkan aliran datanya dan bagan alir data (flowchart) untuk representasi

grafis yang menggambarkan setiap langkah yang akan dilakukan dalam suatu

proses yaitu proses pelatihan dan proses pengujian pada sistem deteksi penyakit

pada manusia.

3.2. Sistem Deteksi Penyakit

Sistem deteksi penyakit pada manusia merupakan sistem yang digunakan

untuk mendeteksi berbagai jenis penyakit. Perhitungan deteksi penyakit pada

sistem deteksi ini dilakukan setelah pengguna memasukkan input. Sistem ini

dapat digunakan untuk masyarakat umum, sebagai pengganti seorang dokter

untuk membantu kecepatan diagnosa jenis penyakit, maupun seorang dokter untuk

Page 54: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

membantu dalam proses diagnosa jenis penyakit. Proses pendeteksian jenis

penyakit ini didasarkan pada gejala-gejala klinis yang ada.

3.3. Analisis Kebutuhan

Analisis kebutuhan merupakan analisis yang dibutuhkan dalam membuat

sistem deteksi jenis penyakit pada manusia yang berupa input, output, fungsi-

fungsi yang dibutuhkan dan antarmuka yang diinginkan.

3.3.1. Input

Input atau masukan dari sistem deteksi jenis penyakit pada manusia harus

memperhatikan inisialisasi data input dan penetapan input.

1. Inisialisasi Data Input

Pada tahap ini, data yang dibutuhkan adalah catatan gejala penyakit yang

dirasakan pasien. Data dari catatan pasien tersebut sebelum diimplementasikan

menjadi sebuah masukan/input yang dapat dimengerti oleh program maka harus

diinisialisasi terlebih dahulu. Dari hasil pengambilan data pada catatan medis

pasien RSU Brayat Minulya Solo, diambil 13 variabel yang mampu menegakkan

diagnosa asma, diabetes, hipertensi (darah tinggi), anemia, malaria, TBC, stroke,

maag dan migren adalah :

1. Alergi.

2. Batuk.

3. Pilek/bersin.

Page 55: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

4. Berkeringat.

5. Lemas/badan lemah.

6. Napsu makan berkurang.

7. Mual dan atau muntah

8. Kesemutan.

9. Pegal/ngilu.

10. Sakit kepala/pusing.

11. Nyeri.

12. Demam.

13. Mudah lelah

Setelah ditentukan variabel-variabel yang dominan dalam penegakan diagnosa

asma, diabetes, hipertensi (darah tinggi), anemia, malaria, TBC, stroke, maag dan

migren, maka harus ditentukan nilai dari variabel-variabel tersebut. Untuk

pemberian nilai dari masing-masing variabel digunakan derajat dari tiap variabel

jika dimungkinkan. Nilai yang diberikan berkisar antara -1 sampai 1, tergantung

dari kasusnya per variabel. Hasil selengkapnya :

1. Alergi, nilai -1 jika tidak alergi, jika alergi diberi nilai

a. Nilai -0,5 jika mengalami alergi pada debu.

b. Nilai 0 jika mengalami alergi pada udara.

c. Nilai 0,5 jika alergi pada makanan tertentu.

Page 56: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

2. Batuk. Angka -1 jika tidak batuk, jika batuk diberi nilai :

a. Nilai -0,5 jika batuk dalam waktu 1 – 2 hari.

b. Nilai 0 jika batuk selama 3 – 5 hari.

c. Nilai 0,5 jika batuk selama 6 – 7 hari.

d. Nilai 1 jika batuk lebih dari seminggu.

3. Pilek/bersin., angka -1 jika tidak pilek/bersin, jika pilek/bersin diberi nilai :

a. Nilai -0,5 jika kadang-kadang bersin.

b. Nilai 0 jika bersin-bersin selama 1 – 2 hari (kadang-kadang).

c. Nilai 0,5 jika pilek/bersin selama lebih dari 3 hari.

4. Berkeringat. Angka -1 jika tidak berkeringat, jika berkeringat diberi nilai :

a. Nilai -0,5 jika kadang-kadang berkeringat.

b. Nilai 0 jika sering berkeringat.

5. Lemas/badan lemah, angka -1 jika tidak lemas, jika lemas, diberi nilai :

a. Nilai -0,5 jika kadang-kadang lemas.

b. Nilai 0 jika mendadak badan terasa lemas.

c. Nilai 0,5 jika badan sering lemas.

6. Nafsu makan berkurang angka -1 jika napsu makan tetap (tidak berkurang,

jika berkurang, diberi nilai:

a. Nilai -0,5 jika napsu makan berkurang.

b. Nilai 0,5 jika napsu makan sering berkurang.

c. Nilai 1 jika napsu makan hilang.

Page 57: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

7. Mual dan atau muntah, angka -1 jika tidak mual/muntah. Jika mual/muntah,

diberi nilai :

a. Nilai -0,25 jika kadang-kadang mual.

b. Nilai 0 jika sering merasa mual.

c. Nilai 0,5 jika kadang muntah.

d. Nilai 1 jika sering muntah.

8. Kesemutan, angka -1 jika tidak kesemutan. Jika kesemutan, diberi nilai :

a. Nilai -0,5 jika kesemutan pada bagian kaki.

b. Nilai 0 jika kesemutan pada bagian tangan.

c. Nilai 0,5 jika kesemutan pada bagian tubuh.

9. Pegal/ngilu, angka -1 jika tidak pegal/ngilu. Jika pegal/ngilu, diberi angka :

a. Nilai -0,5 jika kadang terasa pegal/ngilu.

b. Nilai 0,5 jika sering teraa pegal/ngilu.

10. Sakit kepala/pusing. Angka -1 jika tidak sakit kepala/pusing. Jika pusing,

diberi angka :

a. Nilai -0,5 jika kadang-kadang pusing.

b. Nilai 0,5 jika sering pusing.

c. Nilai 1 jika sakit kepala tak tertahankan.

11. Nyeri. Angka -1 jika tidak nyeri, jika nyeri, diberi angka :

a. Nilai -0,25 jika nyeri pada tubuh bagian bawah.

b. Nilai 0 jika nyeri pada perut.

c. Nilai 0,75 jika nyeri pada kepala.

d. Nilai 1 jika nyeri pada seluruh bagian rubuh.

Page 58: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

12. Demam. Diberi nilai -1 jika tidak demam, jika demam diberi nilai :

a. Nilai -0,5 jika kadang-kadang demam (hilang-timbul).

b. Nilai 0 jika agak demam (demam tetapi temperatur tidak terlalu tinggi).

c. Nilai 0,75 jika demam (disertai panas badan sampai keluar keringat tanpa

adanya aktivitas).

d. Nilai 1 jika demam tinggi (kadang sampai mengalami kejang-kejang).

13. Mudah lelah. Jika tidak mudah lelah diberi nilai -1, jika mudah lelah diberi

nilai :

a. Nilai -0,5 jika kadang merasa lelah.

b. Nilai 0 jika dengan kegiatan berat, badan terasa lelah.

c. Nilai 0,75 jika dengan kegiatan ringan, badan terasa lelah.

d. Nilai 1 jika sering merasa lelah tanpa sebab.

Setelah ditentukan nilai untuk tiap variabel, selanjutnya gejala-gejala klinis

yang terdapat pada semua variabel diganti dengan nilai-nilai yang telah

ditentukan.

2. Penetapan Input

Dalam masalah ini, untuk mendeteksi jenis penyakit diperlukan data yang

diambil dari catatan rekam medis pasien yang didalamnya terdapat gejala-gejala

klinis yang dapat menegakkan diagnosa asma, diabetes, hipertensi (darah tinggi),

anemia, malaria, TBC, stroke, maag dan migren

Data-data dari catatan rekam medis pasien ini kemudian dinormalisasikan agar

dapat diolah oleh program. Setelah itu terdapat 13 variabel input (masing-masing

Page 59: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

mewakili gejala klinis tiap gangguan) setelah melalui normalisasi data. Dari 13

variabel inilah yang menjadi input. Variabel input selengkapnya :

X1 = Alergi.

X2 = Batuk.

X3 = Pilek/bersin.

X4 = Berkeringat

X5 = Badan lemah/mudah lemah

X6 = Napsu makan berkurang

X7 = Mual/muntah

X8 = Pegal/ngilu

X9 = Kesemutan

X10 = Sakit kepala/pusing

X11 = Nyeri

X12 = Demam

X13 = Mudah Lelah

3.3.2. Output

Output yang dihasilkan pada tahap ini adalah jenis penyakit pada manusia

yaitu seperti Asma, diabetes, hipertensi (darah tinggi), anemia, malaria, TBC,

stroke, maag dan migren.

Page 60: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

3.3.3. Fungsi-fungsi yang Dibutuhkan

Fungsi-fungsi yang harus ditangani oleh sistem deteksi jenis penyakit ini

adalah menerima masukan data gejala, masukan data pelatihan, melakukan

pelatihan dan pengujian.

3.3.4. Antarmuka yang Diinginkan

Sistem deteksi jenis penyakit pada manusia ini akan diakses oleh user dengan

tingkat kemampuan menggunakan komputer yang berbeda. Untuk itu diperlukan

antarmuka yang dapat dimengerti dan mudah digunakan oleh pengguna dengan

berbagai tingkat kemampuan dalam menggunakan komputer. Kriteria tersebut

dapat dipenuhi dengan menggunakan antarmuka berbasis windows yaitu sistem

menu yang diharapkan dapat menjadi lebih mudah dimengerti oleh semua

pengguna baik pemula maupun mahir dalam menggunakan sistem ini.

3.4. Metode Perancangan Sistem

Perancangan perangkat lunak merupakan tahap selanjutnya dalam pembuatan

perangkat lunak setelah tahap analisa. Tujuan perancangan sistem deteksi jenis

penyakit ini adalah untuk membangun suatu sistem sederhana yang memiliki

kemampuan untuk memproses data diagnosa penyakit dengan menggunakan

sistem jaringan syaraf tiruan.

Metode perancangan sistem deteksi jenis penyakit menerapkan metode top

down dengan mengunakan alat-alat pengembangan sistem yaitu diagram alir data

Page 61: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

(data flow diagram/DFD). Untuk proses perhitungan pelatihan dan pengujian

menggunakan bagan alir (flowchart) dalam perancangannya.

3.4.1. Diagram Alir Data (Data Flow Diagram)

Pada tahap perancangan sistem, penggunaan sistem notasi sangat membantu

dalam komunikasi dengan pemakai sistem untuk memahami secara logika.

Diagram yang menggunakan notasi untuk menggambarkan arus data sistem

adalah diagram arus data (data flow diagram). Dengan menggunakan alat desain

data flow diagram ini akan dimungkinkan untuk menggambarkan sistem dari

level yang paling tinggi menjadi level yang lebih rendah (dekomposisi).

Perancangan ini dimulai dari bentuk yang paling global yaitu dengan diagram

konteks (context diagram) atau bisa disebut juga dengan DFD Pada gambar 3.1

dapat dilihat DFD diagram konteks dengan satu proses saja yaitu proses yang

terjadi dalam sistem secara keseluruhan.

Page 62: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Gambar 3.1. Diagram Konteks Sistem Deteksi Penyakit

3.4.2. Bagan alir (flowchart)

Bagan alir (flowchart) merupakan representasi grafik yang menggambarkan

setiap langkah yang akan dilakukan dalam suatu proses seperti proses

perhitungan. Dalam penelitian ini bagan alir (flowchart) akan menjelaskan

langkah-langkah kerja dari perhitungan pelatihan. Flowchart proses perhitungan

pelatihan seperti pada gambar 3.2.

Page 63: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Gambar 3.2. Flowchart proses pelatihan

3.4.3. Algoritma Pelatihan

Dalam pelatihan, digunakan algoritma MADALINE karena system yang

dirancang merupakan kumpulan dari banyak ADALINE. Dalam algoritma

MADALINE, mula-mula bobot dan bias yang diteruskan ke Y diatur sedemikian

rupa sehingga keluaran Y akan 1 jika salah satu atau kedua keluaran dari unit

Page 64: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

tersembunyi (z) bernilai 1. Sebaliknya, jika salah satu atau keduanya bernilai -1

maka keluarannya (Y) akan bernilai -1. Dengan kata lain, unit Y membentuk

fungsi logika “atau” dengan masukan dari unit tersembunyi (z). Algoritma

pelatihan ADALINE mula-mula untuk pola masukan dan target bipolar adalah

sebagai berikut :

1. Inisialisasi semua bobot dan bias dengan bilangan acak kecil

2. Inisialisasi laju pemahaman (α) dengan bilangan kecil

3. Jika perubahan bobot < toleransi, tampilkan hasil. Namun jika perubahan

bobot > toleransi, lakukan :

a) Set aktivasi unit masukan ii sx = untuk semua i

b) Hitung net input untuk setiap unit tersembunyi ADALINE ( nzzz ,......,, 21 )

ji

i

ijin wxbjz ∑+=_

c) Hitung keluaran setiap unit tersembunyi dengan menggunakan fungsi

aktivasi bipolar

( )0

0

1

1

_

_

_ <

−==

jz

jzjikajzfz

in

in

inj

d) Tentukan keluaran jaringan

∑+=j

jjkin vzby _

( )0

0

1

1

_

_

_ <

−==

jz

jzjikajzfz

in

in

inj

Page 65: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

e) Hitung error dan perubahan bobot

Jika y = target, maka tidak dilakukan perubahan bobot

Jika y ≠ target lakukan perubahan bobot

3.4.4. Perancangan Basis Data

Basis Data merupakan himpunan kelompok data yang saling berhubungan

yang diorganisasi sedemikian rupa tanpa pengulangan (redudancy) yang tidak

perlu agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah untuk

memenuhi berbagai kebutuhan. Perancangan basis data disebut juga sebagai

pemetaan model data. Pada tahap pengembangan (development) setiap tabel

diletakkan satu field cadangan (reserved) yang sewaktu-waktu dapat digunakan

apabila diperlukan. Perancangan basis data pada Sistem Deteksi Jenis Penyakit

Pada Manusia adalah sebagai berikut :

1. Tabel Bobot

Tabel bobot berfungsi untuk menyimpan bobot hasil training untuk setiap

gejala penyakit.

Tabel 3.1. Struktur Tabel Bobot

No Nama Field Tipe Data Ukuran Keterangan

1 bbtId bigint 20 ID Bobot

2 bbtIdPenyakit bigint 20 ID Bobot

Page 66: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Penyakit

3 bbtNilai text Nilai Bobot

4 reserved bigint 20

2. Tabel Gejala

Tabel gejala berfungsi untuk menyimpan gejala penyakit serta keterangan

penyakitnya.

Tabel 3.2. Struktur Tabel Gejala

No Nama Field Tipe Data Ukuran Keterangan

1 gjId bigint 20 ID Gejala

2 gjNama varchar 100 Nama Gejala

3 gjKeterangan text Keterangan

Gejala

4 reserved bigint 20

3. Tabel Pemodelan

Pada tabel pemodelan ini disimpan id penyakit, nilai penyakit (bernilai -1

atau 1) dan config bipolar yang berisi nilai gejala-gejala (bernilai -1 atau

1).

Tabel 3.3. Struktur Tabel Pemodelan

No Nama Field Tipe Data Ukuran Keterangan

1 pmId bigint 20 ID Gejala

Page 67: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Detail

2 pmIdPenyakit bigint 20 Nama Gejala

Detail

3 pmNilaiPenyakit bigint 20 Nilai Gejala

4 pmConfigBipolar text ID Gejala

5 reserved bigint 20

4. Tabel Penyakit

Tabel penyakit ini berfungsi untuk menyimpan nama-nama penyakit yang

disertai dangan data obat, pencegahan dan ramuan Tianshi.

Tabel 3.4. Struktur Tabel Penyakit

No Nama Field Tipe Data Ukuran Keterangan

1 penyId bigint 20 ID Penyakit

2 penyNama varchar 100 Nama

Penyakit

3 penyObat text Nama Obat

4 penyPencegahan text Cara

Pencegahan

5 penyRamuanTianshi text Nama

Ramuan

Tianshi

6 reserved bigint 20

Page 68: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

5. Tabel User

Tabel user berfungsi untuk menyimpan nama lengkap, user login, user

password, status aktif serta group dari seorang user.

Tabel 3.5. Struktur Tabel User

No Nama Field Tipe Data Ukuran Keterangan

1 usrId bigint 20 ID User

2 usrNamaDetil varchar 100 Nama Detail

User

3 usrNamaLogin varchar 50 Login User

4 usrPassword varchar 100 Password User

5 usrStatusAktif tinyint 1 Status Aktif

6 usrIdGroupUser bigint 20 Id Group User

7 reserved1 bigint 20

8 reserved2 bigint 20

6. Tabel User_Group

Tabel user_group berfungsi untuk menyimpan nama group dan keterangan

dari user untuk kemudahan hak akses.

Tabel 3.6. Struktur Tabel User_Group

No Nama Field Tipe Data Ukuran Keterangan

1 usrgId bigint 20 ID User Group

2 usrgNama varchar 100 Nama User

Page 69: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Group

3 usrgKeterangan text Keterangan

User Group

4 reserved1 bigint 20

5 reserved2 bigint 20

3.4.5. Perancangan Antarmuka Sistem

Antarmuka sistem merupakan perantara komunikasi antara sistem dengan

user, antarmuka harus sesuai dengan sistem yang akan dijalankan oleh user.

Rancangan antarmuka masukan pada sistem deteksi jenis penyakit pada manusia

adalah terdiri dari login user, menu utama, deteksi penyakit yang meliputi

pelatihan dan pengujian, perubahan data pelatihan, ganti password pakar.

1. Rancangan Antarmuka Menu Utama

Rancangan antarmuka menu utama merupakan antarmuka untuk memilih

menu mana yang akan dijalankan. Kategori pengguna sangat berpengaruh dalam

menggunakan fasilitas menu dalam sistem ini. Jika login sebagai pengguna umum

maka hanya dapat melakukan deteksi penyakit, jika login sebagai pakar selain

dapat melakukan deteksi penyakit juga dapat melihat jenis obat yang digunakan

untuk mengobati penyakit, serta melakukan perubahan data pelatihan. Sedangkan

administrator merupakan pengguna dengan level tertinggi, yaitu mempunyai

wewenang melakukan deteksi penyakit, perubahan data pelatihan dan menambah

Page 70: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

pengguna pakar. Rancangan antarmuka menu utama seperti terlihat pada gambar

3.3.

Gambar 3.3. Rancangan Antarmuka Menu Utama

2. Rancangan Antarmuka Login

Rancangan antarmuka login merupakan kotak isian sebagai autentifikasi

pengguna ke dalam sistem. Hal ini dilakukan agar terjadi pemilahan yang jelas

antar para pengguna yang masuk ke sistem. Pemilihan ini biasanya dilakukan

dengan menggunakan kategori pengguna, user name dan password. Rancangan

antarmuka login terdiri dari 2 edit text dan 2 button masing-masing untuk user

login dan cancel. Rancangan antarmuka login seperti terlihat pada gambar 3.4.

Page 71: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Gambar 3.4. Rancangan Antarmuka Login

Rancangan antarmuka server connection merupakan kotak isian sebagai fungsi

untuk mengeset database dan protocol yang dipilih. Dan juga untuk melakukan

pengesetan username dan password untuk koneksinya. Hal ini perlu dilakukan

untuk pengaksesan ke database. Rancangan antarmuka server connection seperti

terlihat pada gambar 3.5.

Gambar 3.5. Rancangan Antarmuka Server Connection

Page 72: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

3. Rancangan Antarmuka Daftar Gejala

Rancangan antarmuka daftar gejala merupakan antarmuka untuk melakukan

penambahan gejala penyakit dan keterangannya. Rancangan antarmuka daftar

gejala seperti terlihat pada gambar 3.6.

Gambar 3.6. Rancangan Antarmuka Daftar Gejala

4. Rancangan Antarmuka Daftar Penyakit

Rancangan antarmuka daftar penyakit merupakan antarmuka untuk melakukan

manipulasi data (tambah, edit, hapus) penyakit, cara pencegahan serta obat yang

digunakan. Rancangan antarmuka daftar penyakit seperti terlihat pada gambar 3.7.

Page 73: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Gambar 3.7. Rancangan Antarmuka Daftar Penyakit

5. Rancangan Antarmuka Konfigurasi Jaringan Neuron

Rancangan antarmuka konfigurasi jaringan neuron merupakan antarmuka

untuk melakukan manipulasi data terhadap penyakit yang kemudian penyakit

tersebut diberi nilai gejala-gejalanya. Rancangan antarmuka konfigurasi jaringan

neuron seperti terlihat pada gambar 3.8.

Page 74: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Gambar 3.8. Rancangan Antarmuka Konfigurasi Jaringan Neuron

6. Rancangan Antarmuka Proses Pembelajaran

Rancangan antarmuka training atau pelatihan merupakan antarmuka untuk

melakukan pelatihan jaringan syaraf tiruan. Rancangan antarmuka training atau

pelatihan seperti terlihat pada gambar 3.9.

Gambar 3.9. Rancangan Antarmuka Proses Pembelajaran

Page 75: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

7. Rancangan Antarmuka Pengujian Diagnosa

Rancangan antarmuka pengujian digunakan untuk memasukkan gejala yang

dirasakan pengguna kemudian melakukan pengujian untuk mengetahui jenis

penyakit yang diderita. Rancangan antarmuka pengujian terdiri dari 13 combobox

untuk gejala penyakit, 13 label untuk gejala penyakit, 1 label hasil nama penyakit

& kemungkinan menderita (Y/T), dan 3 label nama penyakit, obat dan

pencegahan. Rancangan antarmuka pengujian seperti terlihat pada gambar 3.10.

Gambar 3.10. Rancangan Antarmuka Pengujian

Page 76: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

8. Rancangan Antarmuka Manajemen User

Rancangan antarmuka manajemen user digunakan untuk menambah, mengedit

dan menghapus user. Dalam hal ini diatur dalam tiga level, yaitu user, pakar, dan

administrator. Rancangan antarmuka manajemen user seperti terlihat pada gambar

3.11.

Gambar 3.11. Rancangan Antarmuka Manajemen User.

Page 77: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

BAB IV

IMPLEMENTASI

Implementasi merupakan tahap pengkodean dari hasil perancangan. Pada

bab ini akan dilakukan pengimplementasian sistem berdasarkan analisa dan

rancangan yang telah dibuat pada bab-bab sebelumnya.

4.1. Lingkungan Implementasi Perangkat Lunak

Perangkat lunak yang digunakan dalam implementasi sistem adalah

sebagai berikut:

a. Sistem Operasi : Windows XP

b. Database : MySQL

c. Tools Pengembangan Perangkat Lunak :

Main Sofware : Borland Delphi 7.0

Delphi Components : GridPack 7, SuiPack 5.2, TMS Sofware 2,

Zeos DBO 6.1.5.

4.2. Lingkungan Implementasi Perangkat Keras

Perangkat keras yang digunakan dalam implementasi sistem adalah

sebagai berikut:

a. PC dengan prosessor Intel Pentium 4 1,7 GHz.

b. Memory 256 MB.

Page 78: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

c. Hardisk 40 GB.

d. Monitor SVGA dengan resolusi 800 x 600.

4.3. Implementasi Database

Database yang digunakan dalam pengimplementasian sistem ini adalah

dengan menggunakan MySQL.

Pembuatan database pada MySQL dapat dilakukan dengan dua cara. Cara

pertama dengan menggunakan console DOS dan cara kedua dengan menggunakan

SQLYog. Dalam sistem ini database dibuat dengan menggunakan SQLYog.

Adapun sintaks dalam pembuatan tabel-tabel tersebut adalah :

create database if not exists `jst_adaline`; USE `jst_adaline`; SET FOREIGN_KEY_CHECKS=0; /*Table structure for table `bobot` */ DROP TABLE IF EXISTS `bobot`; CREATE TABLE `bobot` ( `bbtId` bigint(20) NOT NULL auto_increment, `bbtIdPenyakit` bigint(20) default NULL, `bbtNilai` text, `reserved` bigint(20) default '0', PRIMARY KEY (`bbtId`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*Table structure for table `gejala` */ DROP TABLE IF EXISTS `gejala`; CREATE TABLE `gejala` ( `gjId` bigint(20) NOT NULL auto_increment, `gjNama` varchar(100) NOT NULL default '', `gjKeterangan` text, `reserved` bigint(20) default '0', PRIMARY KEY (`gjId`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Page 79: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

/*Table structure for table `pemodelan` */ DROP TABLE IF EXISTS `pemodelan`; CREATE TABLE `pemodelan` ( `pmId` bigint(20) NOT NULL auto_increment, `pmIdPenyakit` bigint(20) NOT NULL default '0', `pmNilaiPenyakit` bigint(20) default NULL, `pmConfigBipolar` text, `reserved` bigint(20) default '0', PRIMARY KEY (`pmId`), KEY `FK_pemodelan_penyakit` (`pmIdPenyakit`), CONSTRAINT `pemodelan_ibfk_1` FOREIGN KEY (`pmIdPenyakit`) REFERENCES `penyakit` (`penyId`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*Table structure for table `penyakit` */ DROP TABLE IF EXISTS `penyakit`; CREATE TABLE `penyakit` ( `penyId` bigint(20) NOT NULL auto_increment, `penyNama` varchar(100) NOT NULL default '', `penyObat` text, `penyPencegahan` text, `penyRamuanTianshi` text, `reserved` bigint(20) default '0', PRIMARY KEY (`penyId`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*Table structure for table `user` */ DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `usrId` bigint(20) NOT NULL auto_increment, `usrNamaDetil` varchar(100) default NULL, `usrNamaLogin` varchar(50) NOT NULL default '', `usrPassword` varchar(100) default NULL, `usrStatusAktif` tinyint(1) default '0', `usrIdGroupUser` bigint(20) default NULL, `reserved1` bigint(20) default '0', `reserved2` bigint(20) default '0', PRIMARY KEY (`usrId`), KEY `FK_user_id_group` (`usrIdGroupUser`), CONSTRAINT `user_ibfk_1` FOREIGN KEY (`usrIdGroupUser`) REFERENCES `user_group` (`usrgId`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Page 80: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Relasi antar tabel dalam database tersebut seperti tampilan berikut :

Gambar 4.1. Relasi Antar Tabel

/*Table structure for table `user_group` */ DROP TABLE IF EXISTS `user_group`; CREATE TABLE `user_group` ( `usrgId` bigint(20) NOT NULL auto_increment, `usrgNama` varchar(100) NOT NULL default '', `usrgKeterangan` text, `reserved1` bigint(20) default '0', `reserved2` bigint(20) default '0', PRIMARY KEY (`usrgId`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; SET FOREIGN_KEY_CHECKS=1;

Page 81: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

4.4. Implementasi Antarmuka

Antarmuka merupakan tampilan yang nantinya akan berinteraksi langsung

dengan pengguna. Antar-muka Sistem Deteksi Jenis Penyakit Pada Manusia

sebagai berikut:

Halaman Menu Utama

Antarmuka menu utama merupakan antarmuka untuk memilih menu mana

yang akan dijalankan. Kategori pengguna sangat berpengaruh dalam

menggunakan fasilitas menu dalam sistem ini. Halaman antarmuka menu utama

seperti terlihat pada gambar 4.2.

Gambar 4.2. Tampilan Halaman User Interface

Page 82: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Halaman Administrasi

Pada halaman administrasi ini hanya dapat diakses oleh admin dan pakar,

yang memiliki hak untuk manipulasi data gejala penyakit, manipulasi data

penyakit, mengkonfigurasi jaringan neuron, melakukan training terhadap data

gejala dan penyakit, melakukan pengujian diagnosa serta melakukan manajemen

user. Untuk halaman pengujian diagnosa bisa diakses oleh semua pengguna

(admin, pakar dan user).

1. Tampilan Halaman Login & Server Connection

Halaman login merupakan halaman pertama untuk dapat mengakses ke

halaman sesuai dengan hak penggunanya. Ada tiga tingkatan untuk hak

akses pengguna, yaitu : user, pakar, dan admin. Tampilan dari halaman login

adalah sebagai berikut :

Gambar 4.3. Tampilan Halaman Login

Halaman server connection adalah halaman untuk melakukan pengesetan

database, protokol yang digunakan, username dan password database. Hal

ini perlu dilakukan apabila terjadi perubahan pada database.

Page 83: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Gambar 4.4. Tampilan Halaman Server Connection (Data Base)

Apabila dalam proses login tidak berhasil dilakukan, karena ada kesalahan

username atau password atau setting data base connection yang salah, maka

akan keluar pesan peringatan untuk kembali mengulang login. Tampilan

pesan peringatan seperti gambar berikut ini :

Gambar 4.5. Tampilan Halaman Login Tidak Berhasil

2. Tampilan Halaman Daftar Gejala

Pada halaman daftar gejala ini, data gejala penyakit dapat diberi keterangan

gejala lebih lengkap. Dapat juga melakukan penambahan dan penghapusan

Page 84: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

data gejala. Halaman ini hanya untuk hak akses pakar dan admin. Tampilan

halaman daftar gejala sebagai berikut :

Gambar 4.6. Tampilan Halaman Daftar Gejala

Seorang pakar atau admin dapat melakukan manipulasi data gejala. Untuk

melakukan pengeditan dan penghapusan data, dapat melakukan klik kanan

untuk mengubah atau menghapus data gejala tersebut. Akan muncul pesan

peringatan apabila terjadi penghapusan data gejala. Tampilan pesan

peringatan seperti tampilan berikut :

Page 85: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Gambar 4.7. Tampilan Pesan Peringatan Hapus Data

3. Tampilan Halaman Daftar Penyakit

Halaman daftar penyakit berfungsi untuk melakukan manipulasi

(menambah, mengubah dan menghapus) data penyakit dan juga mendata

pencegahan penyakit serta obat untuk penyakit tersebut. Tampilan halaman

daftar penyakit sebagai berikut :

Gambar 4.8. Tampilan Halaman Daftar Penyakit

Page 86: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Seorang pakar atau admin dapat melakukan manipulasi data penyakit. Untuk

melakukan pengeditan dan penghapusan data, dapat melakukan klik kanan

untuk mengubah atau menghapus data penyakit tersebut. Akan muncul

pesan peringatan apabila terjadi penghapusan data penyakit. Tampilan pesan

peringatan dapat dilihat pada gambar 4.7.

4. Tampilan Halaman Konfigurasi Jaringan Neuron

Halaman konfigurasi jaringan neuron ini berfungsi untuk melakukan

konfigurasi pada jenis-jenis gejala pada penyakit yang diberi nilai bipolar

(1 dan -1).

Pada halaman ini, seorang pakar atau admin dapat melakukan manipulasi

data. Setelah data daftar penyakit dan data daftar gejala tersedia, maka pakar

atau admin dapat menentukan konfigurasi bipolar. Yaitu menentukan

konfigurasi penyakit dengan kemungkinan gejala-gejala yang ada, yang

diberi nilai 1 untuk nilai true, dan nilai -1 untuk nilai false. Tampilan

halaman konfigurasi dapat dilihat pada tampilan berikut :

Page 87: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Gambar 4.9. Tampilan Halaman Konfigurasi Jaringan Neuron

5. Tampilan Halaman Proses Pembelajaran

Pada halaman proses training atau pembelajaran ini, terjadi iterasi dari

proses training untuk mendapatkan bobot masukan suatu penyakit. Variabel

input pada proses pembelajaran ini yaitu : nama penyakit, learning rate,

batas iterasi, dan toleransi. Hasil output dari proses training ini untuk

menentukan nilai inputan suatu bobot penyakit. Tampilan halaman proses

pembelajaran adalah sebagai berikut :

Page 88: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Gambar 4.10. Tampilan Halaman Proses Pembelajaran

6. Tampilan Halaman Manajemen User

Halaman manajemen berfungsi untuk menambah, mengedit, menghapus

serta memberikan hak akses untuk user. Role pengguna dalam aplikasi ini

ada tiga, yaitu user, pakar dan admin.

Untuk user hanya dapat melakukan aktivitas diagnosa penyakit.

Untuk pakar dan admin dapat melakukan semua aktivitas, seperti mendata

gejala, mendata penyakit, melakukan konfigurasi neuron, melakukan

training serta melakukan diagnosa.

Tampilan halaman manajemen user dapat dilihat sebagai berikut :

Page 89: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Gambar 4.11. Tampilan Halaman Manajemen User

Halaman User

Halaman untuk user hanya meliputi halaman login, halaman daftar

pengguna, serta halaman pengujian diagnosa. Administrator masih meliputi

halaman user.

7. Tampilan Halaman Pengujian Diagnosa

Halaman pengujian diagnosa berfungsi untuk melakukan diagnosa dari

gejala-gejala penyakit sebagai inputan. Sehingga didapatkan hasil diagnosa

kemungkinan seseorang tersebut apakah menderita suatu penyakit tertentu.

Halaman ini dapat diakses oleh semua pengguna. Tampilan halaman

pengujian diagnosa adalah sebagai berikut :

Page 90: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Gambar 4.12. Tampilan Halaman Pengujian Diagnosa

Page 91: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

BAB V

PENUTUP

7.1. Kesimpulan

Berdasarkan pembahasan perancangan Sistem Deteksi Jenis Penyakit Pada

Manusia ini, maka secara garis besar dapat ditarik kesimpulan sebagai berikut:

1. Dengan menggunakan sistem ini maka seseorang dapat mengetahui

jenis-jenis penyakit dengan memasukkan data-data gejala penyakitnya.

2. Sistem ini dapat membantu seseorang dalam mendiagnosa banyak

penyakit, karena dalam sistem ini memiliki kemampuan menyimpan

jenis dan gejala penyakit dalam jumlah yang banyak.

3. Aplikasi ini diharapkan dapat membantu dalam memberikan keputusan

kepada seseorang berupa obat alternatif yang harus dilakukannya.

7.2. Saran

Masukan maupun saran untuk pengembangan lebih lanjut untuk sistem ini

sangat dibutuhkan, berikut beberapa masukan dan saran yang dapat

dipertimbangkan :

1. Untuk arahan kedepannya, sistem aplikasi ini memiliki data-data jenis

dan gejala penyakit yang lebih lengkap, sehingga kemanfaatan sistem

ini dapat berlangsung secara berkelanjutan.

2. Sistem aplikasi ini untuk kedepannya dapat bermanfaat, untuk itu dari

segi tampilan, untuk dikembangkan selanjutnya, dapat lebih

Page 92: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

mempermudah para pengguna yang masih awam terhadap aplikasi

komputer.

3. Pada sistem aplikasi ini untuk tujuan ke depannya diharapkan dapat

berintegrasi dengan sistem aplikasi lain, seperti aplikasi berbasiskan

web, sehingga interaksi para pengguna tidak dibatasi oleh ruang.

4. Metode yang dikembangkan pada sistem ini masih bersifat dasar,

sehingga masih diperlukan fitur-fitur lain yang dapat ditambahkan agar

lebih lengkap dan tidak monoton.

Page 93: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

DAFTAR PUSTAKA

[KRI04] Kristanto, A. Jaringan Syarat Tiruan (Konsep Dasar, Algoritma

dan Aplikasi). Yogyakarta: Gava Media, 2004.

[JEN05] Jenny, Sr. Belajar Pada Penyakit. Yogyakarta: Sahabat Setia,

2005.

[UTO05] Utomo, P. Apresiasi Penyakit – Pengobatan Secara Tradisional

dan Modern. Jakarta: Rineka Cipta, 2005.

[KUS04] Kusumadewi, Sri. Membangun Jarngan Syarat Tiruan

Menggunakan MATLAB dan EXCEL LINK. Yogyakarta: Graha

Ilmu, 2004.

[SIA04] Siang, J. J. Jaringan Syaraf Tiruan & Pemrogramannya

Menggunakan MATLAB. Yogyakarta: Penerbit Andi, 2004.

[KUS03] Kusumadewi, Sri. Artificial Intelligence (Teknik dan Aplikasinya).

Yogyakarta: Graha Ilmu, 2003.

Page 94: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

LAMPIRAN

unit ufrmConfNeuron; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, SUIForm, ufraFooter, StdCtrls, SUIButton, DBCtrls, SUIDBCtrls, SUISideChannel, Grids, BaseGrid, AdvGrid, JvLabel, uGejala, uPenyakit, SUIComboBox, uPemodelan, Menus, SUIPopupMenu, SUIEdit; type TfrmConfNeuron = class(TForm) suiForm1: TsuiForm; Panel1: TPanel; Label1: TLabel; fraFooter1: TfraFooter; suiSideChannel1: TsuiSideChannel; Label2: TLabel; Label3: TLabel; btnTambah: TsuiButton; btnCancel: TsuiButton; lblRefresh: TJvLabel; cbPenyakit: TsuiComboBox; grid: TAdvStringGrid; gridGejala: TAdvStringGrid; suiPopupMenu1: TsuiPopupMenu; ubah1: TMenuItem; Delete1: TMenuItem; Label4: TLabel; edtNilai: TsuiEdit; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure fraFooter1btnCloseClick(Sender: TObject); procedure lblRefreshClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure gridGejalaCheckBoxClick(Sender: TObject; ACol, ARow: Integer; State: Boolean); procedure btnTambahClick(Sender: TObject); procedure btnCancelClick(Sender: TObject); procedure Delete1Click(Sender: TObject); private { Private declarations }

Page 95: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

procedure TampilListGejala(); procedure SetComboPenyakit(); procedure TampilListPemodelan(); public { Public declarations } end; var frmConfNeuron: TfrmConfNeuron; gejala: TGejala; penyakit: TPenyakit; pemodelan: TPemodelan; implementation uses udmMain, uGTSUICommonDlg; {$R *.dfm} procedure TfrmConfNeuron.FormClose(Sender: TObject; var Action: TCloseAction); begin action := caFree; end; procedure TfrmConfNeuron.FormDestroy(Sender: TObject); begin frmConfNeuron := nil; end; procedure TfrmConfNeuron.fraFooter1btnCloseClick(Sender: TObject); begin Close; end; procedure TfrmConfNeuron.TampilListGejala; var i: integer; begin i := 0; gridGejala.Clear; if not assigned(gejala) then gejala := TGejala.Create; gejala.GetListGejala; with dmMain.qrSelect do begin

Page 96: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

First; gridGejala.ColCount := 3; gridGejala.Cells[0,i] := 'No.'; gridGejala.Cells[2,i] := 'Nama Gejala'; i := 1; while not Eof do begin gridGejala.RowCount := i + 1; gridGejala.Cells[0,i] := inttostr(i); gridGejala.AddCheckBox(1,i,false,false); gridGejala.Cells[2,i] := FieldByName('namagejala').AsString; gridGejala.Cells[5,i] := FieldByName('idgejala').AsString; gridGejala.Cells[6,i] := ''; i := i + 1; Next; end; gridGejala.AutoSize := true; end; end; procedure TfrmConfNeuron.lblRefreshClick(Sender: TObject); begin SetComboPenyakit; TampilListGejala; end; procedure TfrmConfNeuron.SetComboPenyakit; begin cbPenyakit.Clear; if not assigned(penyakit) then penyakit := TPenyakit.Create; penyakit.GetListPenyakit; with dmMain.qrSelect do begin while not Eof do begin cbPenyakit.AddItem(FieldByName('namapenyakit').AsString, self); Next; end; end;

Page 97: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

edtNilai.Text := ''; end; procedure TfrmConfNeuron.FormCreate(Sender: TObject); begin TampilListPemodelan; lblRefreshClick(self); end; procedure TfrmConfNeuron.gridGejalaCheckBoxClick(Sender: TObject; ACol, ARow: Integer; State: Boolean); begin if (ACol = 1) then begin if (gridGejala.Cells[6,ARow] = 'Y') then begin gridGejala.SetCheckBoxState(1,ARow,FALSE); gridGejala.Cells[6,ARow] := ''; end else begin gridGejala.SetCheckBoxState(1,ARow,TRUE); gridGejala.Cells[6,ARow] := 'Y'; end; end; end; procedure TfrmConfNeuron.TampilListPemodelan; var i: integer; begin i := 0; grid.Clear; if not assigned(pemodelan) then pemodelan := TPemodelan.Create; pemodelan.GetListPemodelan; with dmMain.qrSelect do begin First; grid.ColCount := 4; grid.Cells[0,i] := 'No.'; grid.Cells[1,i] := 'Nama Penyakit'; grid.Cells[2,i] := 'Nilai Penyakit'; grid.Cells[3,i] := 'Config Bipolar'; i := 1;

Page 98: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

while not Eof do begin grid.RowCount := i + 1; grid.Cells[0,i] := inttostr(i); grid.Cells[1,i] := FieldByName('namapenyakit').AsString; grid.Cells[2,i] := FieldByName('nilaipenyakit').AsString; grid.Cells[3,i] := FieldByName('configbipolar').AsString; grid.Cells[4,i] := FieldByName('idpemodelan').AsString; grid.Cells[5,i] := FieldByName('idpenyakit').AsString; i := i + 1; Next; end; grid.AutoSize := true; end; end; procedure TfrmConfNeuron.btnTambahClick(Sender: TObject); var i, idPenyakit: integer; bipolar: string; success: boolean; begin if (Trim(cbPenyakit.Text) <> '') and (edtNilai.Text <> '') then begin // get idpenyakit if not assigned(penyakit) then penyakit := TPenyakit.Create; idPenyakit := penyakit.GetIdPenyakit(cbPenyakit.Text); // create configurasi bipolar bipolar := ''; for i := 1 to gridGejala.RowCount-1 do begin if (gridGejala.Cells[6,i] = 'Y') then begin if (i=1) then bipolar := bipolar + '1' else bipolar := bipolar + ' 1'; end else begin if (i=1) then bipolar := bipolar + '-1'

Page 99: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

else bipolar := bipolar + ' -1'; end; end; // insert pemodelan if not assigned(pemodelan) then pemodelan := TPemodelan.Create; success := pemodelan.AddPemodelan(inttostr(idPenyakit), edtNilai.Text, bipolar); if (success) then begin lblRefreshClick(self); TampilListPemodelan; end; end else CommonDlg.ShowError('Nama penyakit harus diisi.'); end; procedure TfrmConfNeuron.btnCancelClick(Sender: TObject); begin lblRefreshClick(Self); TampilListPemodelan; end; procedure TfrmConfNeuron.Delete1Click(Sender: TObject); var isHapus: TModalResult; iRowSelect: integer; begin isHapus := CommonDlg.Confirm('Apakah anda yakin ingin menghapus data?'); if (isHapus = mrOk) then begin iRowSelect := grid.GetRowEx; if not assigned(pemodelan) then pemodelan := TPemodelan.Create; pemodelan.DeletePemodelan(grid.Cells[4,iRowSelect]); end; TampilListPemodelan; end; end.

Page 100: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

unit ufrmDaftarGejalaDetail; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, SUIForm, ufraFooter, StdCtrls, SUIMemo, SUIButton, SUIEdit, Grids, BaseGrid, AdvGrid, SUIComboBox, uGejala, Menus, SUIPopupMenu; type TfrmDaftarGejalaDetail = class(TForm) suiForm1: TsuiForm; Panel1: TPanel; Label1: TLabel; Panel2: TPanel; Label2: TLabel; Label4: TLabel; edtNamaGejalaDetail: TsuiEdit; btnTambah: TsuiButton; btnRefresh: TsuiButton; btnUbah: TsuiButton; fraFooter1: TfraFooter; grid: TAdvStringGrid; Label3: TLabel; edtNilai: TsuiEdit; cbGejala: TsuiComboBox; suiPopupMenu1: TsuiPopupMenu; Ubah1: TMenuItem; Delet1: TMenuItem; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure fraFooter1btnCloseClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure btnUbahClick(Sender: TObject); procedure btnTambahClick(Sender: TObject); procedure btnRefreshClick(Sender: TObject); procedure Ubah1Click(Sender: TObject); procedure Delet1Click(Sender: TObject); private { Private declarations } FCurrentIdGejalaDetail: string; procedure RefreshGejalaDetail; public { Public declarations } end;

Page 101: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

var frmDaftarGejalaDetail: TfrmDaftarGejalaDetail; gejala: Tgejala; implementation uses udmMain, DB, uGTSUICommonDlg; {$R *.dfm} procedure TfrmDaftarGejalaDetail.FormClose(Sender: TObject; var Action: TCloseAction); begin action := caFree; end; procedure TfrmDaftarGejalaDetail.FormDestroy(Sender: TObject); begin frmDaftarGejalaDetail := nil; end; procedure TfrmDaftarGejalaDetail.fraFooter1btnCloseClick(Sender: TObject); begin Close; end; procedure TfrmDaftarGejalaDetail.FormActivate(Sender: TObject); begin RefreshGejalaDetail; end; procedure TfrmDaftarGejalaDetail.RefreshGejalaDetail; var i: integer; begin if not assigned(gejala) then gejala := TGejala.Create; gejala.GetListGejala; with dmMain.qrSelect do begin cbGejala.Clear; while not eof do begin cbGejala.AddItem(Fieldbyname('namagejala').AsString, self); Next;

Page 102: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

end; end; i := 0; grid.Clear; gejala.GetListGejalaDetail; with dmMain.qrSelect do begin First; grid.ColCount := 4; grid.Cells[0,i] := 'No.'; grid.Cells[1,i] := 'Nama Gejala'; grid.Cells[2,i] := 'Nama Gejala Detail'; grid.Cells[3,i] := 'Nilai'; i := 1; while not Eof do begin grid.RowCount := i + 1; grid.Cells[0,i] := inttostr(i); grid.Cells[1,i] := FieldByName('namagejala').AsString; grid.Cells[2,i] := FieldByName('namagejaladetail').AsString; grid.Cells[3,i] := FieldByName('nilaigejaladetail').AsString; grid.Cells[4,i] := FieldByName('idgejaladetail').AsString; grid.Cells[5,i] := FieldByName('idgejala').AsString; i := i + 1; Next; end; grid.AutoSize := true; end; end; procedure TfrmDaftarGejalaDetail.btnUbahClick(Sender: TObject); var success: boolean; begin if not assigned(gejala) then gejala := TGejala.Create; if (Trim(cbGejala.Text) <> '') then success := gejala.UpdateGejalaDetail(FCurrentIdGejalaDetail, cbGejala.Text, edtNamaGejalaDetail.Text, edtNilai.Text); if (success) then begin

Page 103: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

cbGejala.ItemIndex := -1; edtNamaGejalaDetail.Text := ''; edtNilai.Text := ''; end; RefreshGejalaDetail; btnTambah.Visible := true; btnUbah.Visible := false; end; procedure TfrmDaftarGejalaDetail.btnTambahClick(Sender: TObject); var success: boolean; begin if not assigned(gejala) then gejala := TGejala.Create; if (Trim(cbGejala.Text) <> '') then success := gejala.AddGejalaDetail(cbGejala.Text ,edtNamaGejalaDetail.Text, edtNilai.Text); if (success) then begin RefreshGejalaDetail; cbGejala.ItemIndex := -1; edtNamaGejalaDetail.Text := ''; edtNilai.Text := ''; end; end; procedure TfrmDaftarGejalaDetail.btnRefreshClick(Sender: TObject); begin cbGejala.ItemIndex := -1; edtNamaGejalaDetail.Text := ''; edtNilai.Text := ''; btnTambah.Visible := true; btnUbah.Visible := false; RefreshGejalaDetail; end; procedure TfrmDaftarGejalaDetail.Ubah1Click(Sender: TObject); var iRowSelect: integer; begin if not assigned(gejala) then gejala := TGejala.create;

Page 104: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

iRowSelect := grid.GetRowEx; gejala.GetGejalaDetailById(grid.Cells[4,iRowSelect]); with dmMain.qrSelect do begin cbGejala.Text := FieldByName('namagejala').AsString; edtNamaGejalaDetail.Text := FieldByName('namagejaladetail').AsString; edtNilai.Text := FieldByName('nilaigejaladetail').AsString; FCurrentIdGejalaDetail := FieldByName('idgejaladetail').AsString; end; btnUbah.Visible := true; btnTambah.Visible := false; end; procedure TfrmDaftarGejalaDetail.Delet1Click(Sender: TObject); var isHapus: TModalResult; iRowSelect: integer; begin isHapus := CommonDlg.Confirm('Apakah anda yakin ingin menghapus data?'); if (isHapus = mrOk) then begin iRowSelect := grid.GetRowEx; if not assigned(gejala) then gejala := TGejala.Create; gejala.DeleteGejalaDetail(grid.Cells[4,iRowSelect]); end; RefreshGejalaDetail; end; end.

Page 105: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

unit ufrmDaftarPenyakit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, SUIForm, StdCtrls, Grids, BaseGrid, AdvGrid, SUIButton, SUIEdit, ufraFooter, uPenyakit, Menus, SUIPopupMenu, SUIMemo; type TfrmDaftarPenyakit = class(TForm) suiForm1: TsuiForm; Panel1: TPanel; Label1: TLabel; Panel2: TPanel; Panel3: TPanel; grid: TAdvStringGrid; Label2: TLabel; edtNamaPenyakit: TsuiEdit; btnTambah: TsuiButton; Frame11: TfraFooter; suiPopupMenu1: TsuiPopupMenu; Ubah1: TMenuItem; Delete1: TMenuItem; edtObat: TsuiMemo; Label3: TLabel; Label4: TLabel; edtPencegahan: TsuiMemo; btnRefresh: TsuiButton; btnUbah: TsuiButton; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure Frame11btnCloseClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure btnTambahClick(Sender: TObject); procedure btnRefreshClick(Sender: TObject); procedure Ubah1Click(Sender: TObject); procedure Delete1Click(Sender: TObject); procedure btnUbahClick(Sender: TObject); private { Private declarations } FCurrentIdPenyakit: string; procedure TampilDaftarPenyakit(); public { Public declarations } end;

Page 106: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

var frmDaftarPenyakit: TfrmDaftarPenyakit; penyakit: TPenyakit; implementation uses udmMain, DB, ZAbstractRODataset, uGTSUICommonDlg; {$R *.dfm} procedure TfrmDaftarPenyakit.FormClose(Sender: TObject; var Action: TCloseAction); begin action := caFree; end; procedure TfrmDaftarPenyakit.FormDestroy(Sender: TObject); begin frmDaftarPenyakit := nil; penyakit := nil; end; procedure TfrmDaftarPenyakit.Frame11btnCloseClick(Sender: TObject); begin Close; end; procedure TfrmDaftarPenyakit.TampilDaftarPenyakit; var i: integer; begin i := 0; grid.Clear; if not assigned(penyakit) then penyakit := TPenyakit.Create; penyakit.GetListPenyakit; with dmMain.qrSelect do begin First; grid.ColCount := 4; grid.Cells[0,i] := 'No.'; grid.Cells[1,i] := 'Nama Penyakit'; grid.Cells[2,i] := 'Pencegahan'; grid.Cells[3,i] := 'Obat';

Page 107: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

i := 1; while not Eof do begin grid.RowCount := i + 1; grid.Cells[0,i] := inttostr(i); grid.Cells[1,i] := FieldByName('namapenyakit').AsString; grid.Cells[2,i] := FieldByName('pencegahan').AsString; grid.Cells[3,i] := FieldByName('obat').AsString; grid.Cells[5,i] := FieldByName('idpenyakit').AsString; i := i + 1; Next; end; grid.AutoSize := true; end; end; procedure TfrmDaftarPenyakit.FormCreate(Sender: TObject); begin TampilDaftarPenyakit; end; procedure TfrmDaftarPenyakit.btnTambahClick(Sender: TObject); var success: boolean; begin if not assigned(penyakit) then penyakit := TPenyakit.Create; if (Trim(edtNamaPenyakit.Text) <> '') then success := penyakit.AddPenyakit(edtNamaPenyakit.Text, edtPencegahan.Text, edtObat.Text); if (success) then begin TampilDaftarPenyakit; edtNamaPenyakit.Text := ''; edtPencegahan.Text := ''; edtObat.Text := ''; edtNamaPenyakit.SetFocus; end; end; procedure TfrmDaftarPenyakit.btnRefreshClick(Sender: TObject); begin TampilDaftarPenyakit;

Page 108: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

edtNamaPenyakit.Text := ''; edtPencegahan.Text := ''; edtObat.Text := ''; edtNamaPenyakit.SetFocus; btnTambah.Visible := true; btnUbah.Visible := false; end; procedure TfrmDaftarPenyakit.Ubah1Click(Sender: TObject); var iRowSelect: integer; begin if not assigned(penyakit) then penyakit := TPenyakit.create; iRowSelect := grid.GetRowEx; penyakit.GetPenyakitById(grid.Cells[5,iRowSelect]); with dmMain.qrSelect do begin edtNamaPenyakit.Text := FieldByName('namapenyakit').AsString; edtPencegahan.Text := FieldByName('pencegahan').AsString; edtObat.Text := FieldByName('obat').AsString; FCurrentIdPenyakit := FieldByName('idpenyakit').AsString; end; btnUbah.Visible := true; btnTambah.Visible := false; end; procedure TfrmDaftarPenyakit.Delete1Click(Sender: TObject); var isHapus: TModalResult; iRowSelect: integer; begin isHapus := CommonDlg.Confirm('Apakah anda yakin ingin menghapus data?'); if (isHapus = mrOk) then begin iRowSelect := grid.GetRowEx; if not assigned(penyakit) then penyakit := TPenyakit.Create; penyakit.DeletePenyakit(grid.Cells[5,iRowSelect]); end; TampilDaftarPenyakit;

Page 109: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

end; procedure TfrmDaftarPenyakit.btnUbahClick(Sender: TObject); var success: boolean; begin if not assigned(penyakit) then penyakit := TPenyakit.Create; if (Trim(edtNamaPenyakit.Text) <> '') then success := penyakit.UpdatePenyakit(FCurrentIdPenyakit,edtNamaPenyakit.Text, edtPencegahan.Text, edtObat.Text); if (success) then begin TampilDaftarPenyakit; edtNamaPenyakit.Text := ''; edtPencegahan.Text := ''; edtObat.Text := ''; edtNamaPenyakit.SetFocus; end; TampilDaftarPenyakit; btnTambah.Visible := true; btnUbah.Visible := false; end; end. unit ufrmDiagnosa; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, SUIForm, ufraFooter, StdCtrls, SUIComboBox, DBCtrls, SUIDBCtrls, SUIButton, Grids, BaseGrid, AdvGrid, SUIMemo, SUIEdit, uGejala, uTraining, JclStrings, uPenyakit; type TInput = array of integer; TWeight = array of double; TfrmDiagnosa = class(TForm) suiForm1: TsuiForm;

Page 110: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

fraFooter1: TfraFooter; Panel1: TPanel; Label1: TLabel; pnlBody: TPanel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label17: TLabel; Label18: TLabel; Label19: TLabel; Label20: TLabel; Label21: TLabel; Label22: TLabel; Label23: TLabel; Label24: TLabel; Label25: TLabel; Label26: TLabel; Label27: TLabel; Label28: TLabel; cbAlergi: TsuiComboBox; cbBatuk: TsuiComboBox; cbPilek: TsuiComboBox; cbBerkeringat: TsuiComboBox; cbLemas: TsuiComboBox; cbNapsu: TsuiComboBox; cbMual: TsuiComboBox; cbKesemutan: TsuiComboBox; cbPegal: TsuiComboBox; cbPusing: TsuiComboBox; cbNyeri: TsuiComboBox; cmdDemam: TsuiComboBox; cbLelah: TsuiComboBox; btnPengujian: TsuiButton; Panel2: TPanel;

Page 111: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

grid: TAdvStringGrid; Label29: TLabel; Label30: TLabel; Label31: TLabel; edtNamaPenyakit: TsuiEdit; memoObat: TsuiMemo; memoPencegahan: TsuiMemo; Panel3: TPanel; Label32: TLabel; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure fraFooter1btnCloseClick(Sender: TObject); procedure btnPengujianClick(Sender: TObject); procedure gridClickCell(Sender: TObject; ARow, ACol: Integer); private { Private declarations } procedure StartPengujian; function GetInputValue: TInput; function ExtractWeightValue(AWeight: string): TWeight; function HitungNilaiY_in(AInput: TInput; AWeight: TWeight): double; public { Public declarations } end; var frmDiagnosa: TfrmDiagnosa; gejala: TGejala; training: TTraining; penyakit: TPenyakit; implementation uses udmMain, DB; {$R *.dfm} procedure TfrmDiagnosa.FormClose(Sender: TObject; var Action: TCloseAction); begin action := caFree; end; procedure TfrmDiagnosa.FormDestroy(Sender: TObject); begin frmDiagnosa := nil; end;

Page 112: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

procedure TfrmDiagnosa.fraFooter1btnCloseClick(Sender: TObject); begin Close; end; procedure TfrmDiagnosa.btnPengujianClick(Sender: TObject); begin StartPengujian; end; procedure TfrmDiagnosa.StartPengujian; var i, t: integer; x: TInput; w: TWeight; wString: string; y_in: double; begin // nilai input. x := GetInputValue; if not assigned(training) then training := TTraining.Create; training.GetListBobot; i := 0; with dmMain.qrSelect do begin First; grid.ColCount := 5; grid.Cells[0,i] := 'No.'; grid.Cells[1,i] := 'Nama Penyakit'; grid.Cells[2,i] := 'Y_in'; grid.Cells[3,i] := 'Aktivasi'; grid.Cells[4,i] := 'Kemungkinan menderita(Y/T)'; i := 1; while not Eof do begin grid.RowCount := i + 1; grid.Cells[0,i] := inttostr(i); grid.Cells[1,i] := FieldByName('namapenyakit').AsString; grid.Cells[6,i] := FieldByName('idpenyakit').AsString; wString := FieldByName('nilaibobot').AsString;

Page 113: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

// nilai bobot. w := ExtractWeightValue(wString); // nilai y_in. y_in := HitungNilaiY_in(x, w); grid.Cells[2,i] := FloatToStr(y_in); // set aktivasi. if (y_in >= 0) then begin t := 1; grid.Cells[4,i] := 'Ya'; end else begin t := -1; grid.Cells[4,i] := 'Tidak'; end; grid.Cells[3,i] := inttostr(t); i := i + 1; Next; end; grid.AutoSize := true; end; end; function TfrmDiagnosa.GetInputValue: TInput; var i: integer; x: TInput; begin i := 0; if not assigned(gejala) then gejala := TGejala.Create; // get input value. SetLength(x, i+1); x[i] := gejala.GetNilaiGejalaDetail(cbAlergi.Text); i := i + 1; SetLength(x, i+1); x[i] := gejala.GetNilaiGejalaDetail(cbBatuk.Text); i := i + 1; SetLength(x, i+1); x[i] := gejala.GetNilaiGejalaDetail(cbPilek.Text);

Page 114: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

i := i + 1; SetLength(x, i+1); x[i] := gejala.GetNilaiGejalaDetail(cbBerkeringat.Text); i := i + 1; SetLength(x, i+1); x[i] := gejala.GetNilaiGejalaDetail(cbLemas.Text); i := i + 1; SetLength(x, i+1); x[i] := gejala.GetNilaiGejalaDetail(cbNapsu.Text); i := i + 1; SetLength(x, i+1); x[i] := gejala.GetNilaiGejalaDetail(cbMual.Text); i := i + 1; SetLength(x, i+1); x[i] := gejala.GetNilaiGejalaDetail(cbKesemutan.Text); i := i + 1; SetLength(x, i+1); x[i] := gejala.GetNilaiGejalaDetail(cbPegal.Text); i := i + 1; SetLength(x, i+1); x[i] := gejala.GetNilaiGejalaDetail(cbPusing.Text); i := i + 1; SetLength(x, i+1); x[i] := gejala.GetNilaiGejalaDetail(cbNyeri.Text); i := i + 1; SetLength(x, i+1); x[i] := gejala.GetNilaiGejalaDetail(cmdDemam.Text); i := i + 1; SetLength(x, i+1); x[i] := gejala.GetNilaiGejalaDetail(cbLelah.Text); Result := x; end; function TfrmDiagnosa.ExtractWeightValue(AWeight: string): TWeight; var strNode: string; first: boolean; w: TWeight; i: integer; begin first := true; i := 0; while (AWeight <> '') do begin

Page 115: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

strNode := StrBefore('|', AWeight); SetLength(w, i+1); w[i] := StrToFloat(strNode); AWeight := StrAfter('|', AWeight); i := i + 1; end; Result := w; end; function TfrmDiagnosa.HitungNilaiY_in(AInput: TInput; AWeight: TWeight): double; var i: integer; y_in: double; begin y_in := 0; for i:=0 to length(AWeight)-1 do begin if (i = 0) then y_in := y_in + AWeight[i] else y_in := y_in + (AInput[i-1]*AWeight[i]); end; Result := y_in; end; procedure TfrmDiagnosa.gridClickCell(Sender: TObject; ARow, ACol: Integer); begin if not assigned(penyakit) then penyakit := TPenyakit.Create; penyakit.GetPenyakitById(grid.Cells[6,ARow]); with dmMain.qrSelect do begin edtNamaPenyakit.Text := Fieldbyname('namapenyakit').AsString; memoObat.Text := Fieldbyname('obat').AsString; memoPencegahan.Text := Fieldbyname('pencegahan').AsString; end; end; end. unit ufrmMain;

Page 116: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, SUIForm, ComCtrls, SUIStatusBar, SUIPageControl, ExtCtrls, SUITabControl, JvPageScroller, Menus, SUIMainMenu, ActnList, pngimage; type TGroupUser = (guNone, guAdmin, guPakar, guUser); TfrmMain = class(TForm) suiMDIForm1: TsuiMDIForm; stbMain: TsuiStatusBar; mmMainMenu: TsuiMainMenu; mmAkses: TMenuItem; Login1: TMenuItem; LogOut1: TMenuItem; N1: TMenuItem; Exit1: TMenuItem; SwitchUser1: TMenuItem; mmProses: TMenuItem; mmHelp: TMenuItem; mmSetting: TMenuItem; About1: TMenuItem; pnlHeader: TPanel; imgHeader: TImage; actlMain: TActionList; actFormClose: TAction; actFormDestroy: TAction; actFormCreate: TAction; actFormShow: TAction; actFormActive: TAction; actLogin: TAction; actLogout: TAction; actExit: TAction; actGantiAkses: TAction; raining1: TMenuItem; DiagnosaPenyakit1: TMenuItem; DaftarPenyakit1: TMenuItem; DaftarGejala1: TMenuItem; ConfigurasiNeuron1: TMenuItem; actTraining: TAction; actDiagnosa: TAction; actDaftarPenyakit: TAction; actDaftarGejala: TAction;

Page 117: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

actConfNeuron: TAction; DaftarGejalaDetail1: TMenuItem; actDaftarGejalaDetail: TAction; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure actExitExecute(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure actLoginExecute(Sender: TObject); procedure FormCreate(Sender: TObject); procedure actConfNeuronExecute(Sender: TObject); procedure actDaftarGejalaExecute(Sender: TObject); procedure actDaftarPenyakitExecute(Sender: TObject); procedure actDiagnosaExecute(Sender: TObject); procedure actTrainingExecute(Sender: TObject); procedure actLogoutExecute(Sender: TObject); procedure actGantiAksesExecute(Sender: TObject); procedure actDaftarGejalaDetailExecute(Sender: TObject); private { Private declarations } procedure SetEnabledMenu(AGroupUser: TGroupUser; AEnabled: Boolean); public { Public declarations } end; var frmMain: TfrmMain; implementation uses uGTSUICommonDlg, ufrmLogin, ufrmDaftarPenyakit, ufrmDaftarGejala, ufrmConfNeuron, ufrmTraining, ufrmDiagnosa, ufrmDaftarGejalaDetail; {$R *.dfm} procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction); begin action := caFree; end; procedure TfrmMain.FormDestroy(Sender: TObject); begin frmMain := nil; end; procedure TfrmMain.actExitExecute(Sender: TObject); begin

Page 118: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Close; end; procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean); var isExit: TModalResult; begin isExit := CommonDlg.Confirm('Apakah anda yakin ingin keluar aplikasi?'); if (isExit = mrOk) then CanClose := true else CanClose := false; end; procedure TfrmMain.actLoginExecute(Sender: TObject); var user, password: string; groupId: integer; successLogin: boolean; begin successLogin := false; if not assigned(frmLogin) then frmLogin := TfrmLogin.Create(Application); frmLogin.ShowUserLogin(user, password, groupId, successLogin); if (successLogin) then begin SetEnabledMenu(guAdmin, true); with stbMain do begin Panels[0].Text := 'Username: ' + user; Panels[1].Text := 'Role User: ' + frmLogin.GroupUser; Panels[2].Text := 'Database: ' + frmLogin.Database; end; end; end; procedure TfrmMain.FormCreate(Sender: TObject); begin {if not maximize} //frmMain.Height := 619; //frmMain.Width := 877; {maximize} WindowState := wsMaximized;

Page 119: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

{set default menu} SetEnabledMenu(guNone, false); end; procedure TfrmMain.actConfNeuronExecute(Sender: TObject); begin if not assigned(frmConfNeuron) then frmConfNeuron := TfrmConfNeuron.Create(Application); frmConfNeuron.Show; end; procedure TfrmMain.actDaftarGejalaExecute(Sender: TObject); begin if not assigned(frmDaftarGejala) then frmDaftarGejala := TfrmDaftarGejala.Create(Application); frmDaftarGejala.Show; end; procedure TfrmMain.actDaftarPenyakitExecute(Sender: TObject); begin if not assigned(frmDaftarPenyakit) then frmDaftarPenyakit := TfrmDaftarPenyakit.Create(Application); frmDaftarPenyakit.Show; end; procedure TfrmMain.actDiagnosaExecute(Sender: TObject); begin if not assigned(frmDiagnosa) then frmDiagnosa := TfrmDiagnosa.Create(Application); frmDiagnosa.Show; end; procedure TfrmMain.actTrainingExecute(Sender: TObject); begin if not assigned(frmTraining) then frmTraining := TfrmTraining.Create(Application); frmTraining.Show; end; procedure TfrmMain.SetEnabledMenu(AGroupUser: TGroupUser; AEnabled: Boolean); begin case AGroupUser of guNone: begin actLogin.Enabled := true;

Page 120: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

actLogout.Enabled := false; actGantiAkses.Enabled := false; actTraining.Enabled := AEnabled; actDiagnosa.Enabled := AEnabled; actDaftarPenyakit.Enabled := AEnabled; actDaftarGejala.Enabled := AEnabled; actDaftarGejalaDetail.Enabled := AEnabled; actConfNeuron.Enabled := AEnabled; mmAkses.Enabled := true; //mmProses.Enabled := false; //mmSetting.Enabled := false; mmHelp.Enabled := true; end; guAdmin: begin actLogin.Enabled := false; actLogout.Enabled := true; actGantiAkses.Enabled := true; actTraining.Enabled := AEnabled; actDiagnosa.Enabled := AEnabled; actDaftarPenyakit.Enabled := AEnabled; actDaftarGejala.Enabled := AEnabled; actDaftarGejalaDetail.Enabled := AEnabled; actConfNeuron.Enabled := AEnabled; mmAkses.Enabled := true; mmProses.Enabled := true; mmSetting.Enabled := true; mmHelp.Enabled := true; end; guPakar: begin actLogin.Enabled := false; actLogout.Enabled := true; actGantiAkses.Enabled := true; actTraining.Enabled := AEnabled; actDiagnosa.Enabled := AEnabled; actDaftarPenyakit.Enabled := AEnabled; actDaftarGejala.Enabled := AEnabled; actDaftarGejalaDetail.Enabled := AEnabled; actConfNeuron.Enabled := AEnabled;

Page 121: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

mmAkses.Enabled := true; mmProses.Enabled := true; mmSetting.Enabled := true; mmHelp.Enabled := true; end; guUser: begin actLogin.Enabled := false; actLogout.Enabled := true; actGantiAkses.Enabled := true; actTraining.Enabled := false; actDiagnosa.Enabled := AEnabled; actDaftarPenyakit.Enabled := AEnabled; actDaftarGejala.Enabled := AEnabled; actDaftarGejalaDetail.Enabled := AEnabled; actConfNeuron.Enabled := false; mmAkses.Enabled := true; mmProses.Enabled := true; mmSetting.Enabled := true; mmHelp.Enabled := true; end; end; end; procedure TfrmMain.actLogoutExecute(Sender: TObject); var isLogout: TModalResult; i: integer; begin isLogout := CommonDlg.Confirm('Apakah anda yakin ingin logout user?'); if (isLogout = mrOk) then begin for i:=0 to MDIChildCount-1 do MDIChildren[i].Close; SetEnabledMenu(guNone, false); with stbMain do begin Panels[0].Text := 'Username: '; Panels[1].Text := 'Role User: '; Panels[2].Text := 'Database: '; end; end;

Page 122: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

end; procedure TfrmMain.actGantiAksesExecute(Sender: TObject); begin // end; procedure TfrmMain.actDaftarGejalaDetailExecute(Sender: TObject); begin if not assigned(frmDaftarGejalaDetail) then frmDaftarGejalaDetail := TfrmDaftarGejalaDetail.Create(Application); frmDaftarGejalaDetail.Show; end; end. unit uGejala; interface uses Windows, SysUtils, Variants, Classes; type TGejala = class private { Private Declaration } public function GetListGejala(): boolean; function GetGejalaById(AIdGejala: string): boolean; function AddGejala(ANama, AKeterangan: string): boolean; function UpdateGejala(AIdGejala, ANama, AKeterangan: string): boolean; function DeleteGejala(AIdGejala: string): boolean; function GetIdGejala(ANamaGejala: string): integer; function GetNilaiGejalaDetail(ANama: string): integer; function GetListGejalaDetail(): boolean; function GetGejalaDetailById(AIdGejalaDetail: string): boolean; function AddGejalaDetail(ANamaGejala, ANamaGejalaDetail, ANilai: string): boolean; function UpdateGejalaDetail(AIdGejalaDetail, ANamaGejala, ANamaGejalaDetail, ANilai: string): boolean; function DeleteGejalaDetail(AIdGejalaDetail: string): boolean; end; implementation

Page 123: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

uses udmMain, ZDataset, DB, ZAbstractRODataset; { TGejala } function TGejala.AddGejala(ANama, AKeterangan: string): boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrInsert do begin Close; SQL.Clear; SQL.Text := 'insert into gejala(gjNama, gjKeterangan) values(' + QuotedStr(ANama) + ', ' + QuotedStr(AKeterangan) + ')'; ExecSQL; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TGejala.AddGejalaDetail(ANamaGejala, ANamaGejalaDetail, ANilai: string): boolean; var idGejala: integer; begin result := false; try dmMain.dbCon.StartTransaction; idGejala := GetIdGejala(ANamaGejala); with dmMain.qrInsert do begin Close; SQL.Clear; SQL.Text := 'insert into gejala_detail(gjdNama, gjdNilai, gjdIdGejala) values(' +

Page 124: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

QuotedStr(ANamaGejalaDetail) + ', ' + QuotedStr(ANilai) + ', ' + QuotedStr(IntToStr(idGejala)) + ')'; ExecSQL; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TGejala.DeleteGejala(AIdGejala: string): boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrDelete do begin Close; SQL.Clear; SQL.Text := 'delete from gejala ' + 'where (gjId = ' + AIdGejala + ')'; ExecSQL; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TGejala.DeleteGejalaDetail(AIdGejalaDetail: string): boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrDelete do begin Close;

Page 125: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

SQL.Clear; SQL.Text := 'delete from gejala_detail ' + 'where (gjdId = ' + AIdGejalaDetail + ')'; ExecSQL; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TGejala.GetGejalaById(AIdGejala: string): boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrSelect do begin Close; SQL.Clear; SQL.Text := 'select gjId as idgejala, gjNama as namagejala, gjKeterangan as keterangan '+ 'from gejala ' + 'where (gjId = ' + AIdGejala + ')'; Open; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TGejala.GetGejalaDetailById(AIdGejalaDetail: string): boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrSelect do

Page 126: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

begin Close; SQL.Clear; SQL.Text := 'select gjdId as idgejaladetail, gjdNama as namagejaladetail, gjdNilai as nilaigejaladetail, ' + 'g.gjId as idgejala, g.gjNama as namagejala ' + 'from gejala_detail gd ' + 'left join gejala g on g.gjId = gd.gjdIdGejala ' + 'where (gd.gjdId = ' + AIdGejalaDetail + ')'; Open; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TGejala.GetIdGejala(ANamaGejala: string): integer; begin result := 0; try dmMain.dbCon.StartTransaction; with dmMain.qrSelect do begin Close; SQL.Clear; SQL.Text := 'select gjId as idgejala '+ 'from gejala ' + 'where (gjNama = ' + QuotedStr(ANamaGejala) + ')'; Open; if IsEmpty then result := -1 else result := dmMain.qrSelect.FieldByName('idgejala').AsInteger; end; dmMain.dbCon.Commit; except dmMain.dbCon.Rollback; end; end;

Page 127: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

function TGejala.GetListGejala: boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrSelect do begin Close; SQL.Clear; SQL.Text := 'select gjId as idgejala, gjNama as namagejala, gjKeterangan as keterangan '+ 'from gejala'; Open; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TGejala.GetListGejalaDetail: boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrSelect do begin Close; SQL.Clear; SQL.Text := 'select gjdId as idgejaladetail, gjdNama as namagejaladetail, gjdNilai as nilaigejaladetail, ' + 'g.gjId as idgejala, g.gjNama as namagejala ' + 'from gejala_detail gd ' + 'left join gejala g on g.gjId = gd.gjdIdGejala'; Open; end; dmMain.dbCon.Commit; result := true;

Page 128: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

except dmMain.dbCon.Rollback; end; end; function TGejala.GetNilaiGejalaDetail(ANama: string): integer; begin result := 0; try dmMain.dbCon.StartTransaction; with dmMain.qrSelect do begin Close; SQL.Clear; SQL.Text := 'select gjdNilai as nilaigejala '+ 'from gejala_detail ' + 'where (gjdNama = ' + QuotedStr(ANama) + ')'; Open; if IsEmpty then result := -1 else result := dmMain.qrSelect.FieldByName('nilaigejala').AsInteger; end; dmMain.dbCon.Commit; except dmMain.dbCon.Rollback; end; end; function TGejala.UpdateGejala(AIdGejala, ANama, AKeterangan: string): boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrUpdate do begin Close; SQL.Clear; SQL.Text := 'update gejala set gjNama = ' +

Page 129: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

QuotedStr(ANama) + ', ' + 'gjKeterangan = ' + QuotedStr(AKeterangan) + ' ' + 'where (gjId = ' + AIdGejala + ')'; ExecSQL; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TGejala.UpdateGejalaDetail(AIdGejalaDetail, ANamaGejala, ANamaGejalaDetail, ANilai: string): boolean; var idGejala: integer; begin result := false; try dmMain.dbCon.StartTransaction; idGejala := GetIdGejala(ANamaGejala); with dmMain.qrUpdate do begin Close; SQL.Clear; SQL.Text := 'update gejala_detail set gjdNama = ' + QuotedStr(ANamaGejalaDetail) + ', ' + 'gjdNilai = ' + QuotedStr(ANilai) + ', ' + 'gjdIdGejala = ' + QuotedStr(IntToStr(idGejala)) + ' ' + 'where (gjdId = ' + AIdGejalaDetail + ')'; ExecSQL; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; end.

Page 130: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

unit uPemodelan; interface uses Windows, SysUtils, Variants, Classes; type TPemodelan = class private { Private Declaration } public function GetListPemodelan(): boolean; function GetPemodelanById(AIdPenyakit: string): boolean; function AddPemodelan(AIdPenyakit, ANilai, AConfiBipolar: string): boolean; function UpdatePemodelan(AIdPemodelan, AIdPenyakit, AConfiBipolar: string): boolean; function DeletePemodelan(AIdPemodelan: string): boolean; end; implementation uses udmMain, ZDataset, DB, ZAbstractRODataset; { TPemodelan } function TPemodelan.AddPemodelan(AIdPenyakit, ANilai, AConfiBipolar: string): boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrInsert do begin Close; SQL.Clear; SQL.Text := 'insert into pemodelan(pmIdPenyakit, pmNilaiPenyakit, pmConfigBipolar) values(' + QuotedStr(AIdPenyakit) + ', ' + ANilai + ', ' + QuotedStr(AConfiBipolar) + ')'; ExecSQL; end;

Page 131: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TPemodelan.DeletePemodelan(AIdPemodelan: string): boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrDelete do begin Close; SQL.Clear; SQL.Text := 'delete from pemodelan ' + 'where (pmId = ' + AIdPemodelan + ')'; ExecSQL; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TPemodelan.GetListPemodelan: boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrSelect do begin Close; SQL.Clear; SQL.Text := 'select pm.pmId as idpemodelan, p.penyId as idpenyakit, p.penyNama as namapenyakit, ' + 'pm.pmNilaiPenyakit as nilaipenyakit, pm.pmConfigBipolar as configbipolar '+ 'from pemodelan pm ' +

Page 132: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

'left join penyakit p on p.penyId = pm.pmIdPenyakit'; Open; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TPemodelan.GetPemodelanById(AIdPenyakit: string): boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrSelect do begin Close; SQL.Clear; SQL.Text := 'select pm.pmId as idpemodelan, p.penyId as idpenyakit, p.penyNama as namapenyakit, ' + 'pm.pmNilaiPenyakit as nilaipenyakit, pm.pmConfigBipolar as configbipolar '+ 'from pemodelan pm ' + 'left join penyakit p on p.penyId = pm.pmIdPenyakit ' + 'where (p.penyId = ' + AIdPenyakit + ')';; Open; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TPemodelan.UpdatePemodelan(AIdPemodelan, AIdPenyakit, AConfiBipolar: string): boolean; begin end; end.

Page 133: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

unit uPenyakit; interface uses Windows, SysUtils, Variants, Classes; type TPenyakit = class private { Private Declaration } public function GetListPenyakit(): boolean; function GetPenyakitById(AIdPenyakit: string): boolean; function GetIdPenyakit(ANamaPenyakit: string): integer; function AddPenyakit(ANama, APencegahan, AObat: string): boolean; function UpdatePenyakit(AIdPenyakit, ANamaPenyakit, APencegahan, AObat: string): boolean; function DeletePenyakit(AidPenyakit: string): boolean; end; implementation uses udmMain, ZDataset, DB, ZAbstractRODataset; { TPenyakit } function TPenyakit.AddPenyakit(ANama, APencegahan, AObat: string): boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrInsert do begin Close; SQL.Clear; SQL.Text := 'insert into penyakit(penyNama, penyPencegahan, penyObat) values(' + QuotedStr(ANama) + ', ' + QuotedStr(APencegahan) + ', ' + QuotedStr(AObat) + ')'; ExecSQL; end;

Page 134: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TPenyakit.DeletePenyakit(AidPenyakit: string): boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrDelete do begin Close; SQL.Clear; SQL.Text := 'delete from penyakit ' + 'where (penyId = ' + AIdPenyakit + ')'; ExecSQL; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TPenyakit.GetIdPenyakit(ANamaPenyakit: string): integer; begin try dmMain.dbCon.StartTransaction; with dmMain.qrSelect do begin Close; SQL.Clear; SQL.Text := 'select penyId as idpenyakit from penyakit '+ 'where (penyNama = ' + QuotedStr(ANamaPenyakit) + ')'; Open; if not (IsEmpty) then result := FieldByName('idpenyakit').AsInteger; end;

Page 135: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

dmMain.dbCon.Commit; except dmMain.dbCon.Rollback; end; end; function TPenyakit.GetListPenyakit: boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrSelect do begin Close; SQL.Clear; SQL.Text := 'select penyId as idpenyakit, penyNama as namapenyakit, penyPencegahan as pencegahan, penyObat as obat '+ 'from penyakit'; Open; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TPenyakit.GetPenyakitById(AIdPenyakit: string): boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrSelect do begin Close; SQL.Clear; SQL.Text := 'select penyId as idpenyakit, penyNama as namapenyakit, penyPencegahan as pencegahan, penyObat as obat '+ 'from penyakit ' + 'where (penyId = ' + AIdPenyakit + ')';

Page 136: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

Open; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TPenyakit.UpdatePenyakit(AIdPenyakit, ANamaPenyakit, APencegahan, AObat: string): boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrUpdate do begin Close; SQL.Clear; SQL.Text := 'update penyakit set penyNama = ' + QuotedStr(ANamaPenyakit) + ', ' + 'penyPencegahan = ' + QuotedStr(APencegahan) + ', ' + 'penyObat = ' + QuotedStr(AObat) + ' ' + 'where (penyId = ' + AIdPenyakit + ')'; ExecSQL; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; end. unit uTraining; interface uses Windows, SysUtils, Variants, Classes;

Page 137: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

type TTraining = class private { Private Declaration } public { Public Declaration } function GetListPenyakitModel(): boolean; function AddBobot(AIdPenyakit, ANilai: string): boolean; function DeleteBobot(AIdPenyakit: string): boolean; function GetBobot(AIdPenyakit: string): string; function GetListBobot(): boolean; end; implementation uses udmMain, ZDataset, DB, ZAbstractRODataset; { TTraining } function TTraining.AddBobot(AIdPenyakit, ANilai: string): boolean; begin result := false; try DeleteBobot(AIdPenyakit); dmMain.dbCon.StartTransaction; with dmMain.qrInsert do begin Close; SQL.Clear; SQL.Text := 'insert into bobot(bbtIdPenyakit, bbtNilai) values(' + AIdPenyakit + ', ' + QuotedStr(ANilai) + ')'; ExecSQL; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end;

Page 138: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

function TTraining.DeleteBobot(AIdPenyakit: string): boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrDelete do begin Close; SQL.Clear; SQL.Text := 'delete from bobot ' + 'where (bbtIdPenyakit = ' + AIdPenyakit + ')'; ExecSQL; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TTraining.GetBobot(AIdPenyakit: string): string; begin result := ''; try dmMain.dbCon.StartTransaction; with dmMain.qrSelect do begin Close; SQL.Clear; SQL.Text := 'select bbtNilai as nilaibobot '+ 'from bobot ' + 'where (bbtIdPenyakit = ' + AIdPenyakit + ')'; Open; end; dmMain.dbCon.Commit; result := dmMain.qrSelect.FieldByName('nilaibobot').AsString; except dmMain.dbCon.Rollback; end; end; function TTraining.GetListBobot: boolean; begin result := false; try

Page 139: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,

dmMain.dbCon.StartTransaction; with dmMain.qrSelect do begin Close; SQL.Clear; SQL.Text := 'select b.bbtIdPenyakit as idpenyakit, p.penyNama as namapenyakit, b.bbtNilai as nilaibobot ' + 'from bobot b ' + 'left join penyakit p on p.penyId = b.bbtIdPenyakit'; Open; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; function TTraining.GetListPenyakitModel: boolean; begin result := false; try dmMain.dbCon.StartTransaction; with dmMain.qrSelect do begin Close; SQL.Clear; SQL.Text := 'select distinct(p.penyId) as idpenyakit, p.penyNama as namapenyakit ' + 'from pemodelan pm ' + 'left join penyakit p on p.penyId = pm.pmIdPenyakit'; Open; end; dmMain.dbCon.Commit; result := true; except dmMain.dbCon.Rollback; end; end; end.

Page 140: PENERAPAN ALGORITMA ADALINE UNTUK MENENTUKAN JENIS …repository.usd.ac.id/32058/2/015314014_Full.pdf · selaku panitia penguji pada ujian pendadaran penulis. 4. Pak Bele, Mas Danang,