Analisis dan Perancangan Sistem Pakar pada Perangkat Mobile untuk Mendiagnosa Penyakit Paru dan Saluran Pernapasan

(1)

ANALISIS DAN PERANCANGAN SISTEM PAKAR PENENTUAN

STATUS GIZI PADA ANAK UMUR NOL HINGGA LIMA

TAHUN BERDASARKAN INDEKS MASSA TUBUH

MENGGUNAKAN METODE FUZZYMAMDANI

SKRIPSI

FANZI PRAYUGO

061401082

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2014


(2)

ANALISIS DAN PERANCANGAN SISTEM PAKAR PENENTUAN

STATUS GIZI PADA ANAK UMUR NOL HINGGA LIMA

TAHUN BERDASARKAN INDEKS MASSA TUBUH

MENGGUNAKAN METODE FUZZYMAMDANI

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar

Sarjana Komputer

FANZI PRAYUGO

0 6 1 4 0 1 0 8 2

PROGRAM STUDI S1ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2014


(3)

PERSETUJUAN

Judul : ANALISIS DAN PERANCANGAN SISTEM

PAKAR

PENENTUAN STATUS GIZI PADA ANAK UMUR NOL HINGGA LIMA TAHUN BERDASARKAN INDEKS MASSA TUBUH MENGGUNAKAN METODE FUZZY MAMDANI

Kategori : SKRIPSI

Nama : FANZI PRAYUGO

Nomor Induk Mahasiswa : 061401082

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI

(Fasilkom-TI) UNIVERSITAS SUMATERA

UTARA

Diluluskan di Medan, 28 Agustus 2014 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dr. Poltak Sihombing, M.Kom Drs. Agus Salim Harahap, M.Si NIP. 199203171991021001 NIP. 195408281981031004

Diketahui/Disetujui oleh

Departemen Ilmu Komputer Fasilkom-TI USU Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 199203171991021001


(4)

PERNYATAAN

ANALISIS DAN PERANCANGAN SISTEM PAKAR PENENTUAN STATUS GIZI PADA ANAK UMUR NOL HINGGA LIMA

TAHUN BERDASARKAN INDEKS MASSA TUBUH MENGGUNAKAN METODE FUZZY MAMDANI

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 28 Agustus 2014

FANZI PRAYUGO NIM. 061401082


(5)

PENGHARGAAN

Segala puji dan syukur kepada Allah SWT yang senantiasa melimpahkan rahmat dan karunia-Nya kepada penulis sehingga skripsi ini dapat selesai dalam waktu yang telah ditetapkan.

Skripsi ini merupakan salah satu syarat wajib diselesaikan guna meraih gelar sarjana komputer padajurusan S1 Ilmu Komputer Universitas Sumatera Utara. Adapun judul yang diangkat penulis adalah “analisis dan perancangan sistem pakar pada perangkat mobile untuk mendiagnosa penyakit paru dan saluran pernapasan”. Terima kasih penulis sampaikan kepada semua pihak yang telah membantu penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung. Dalam kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada :

1. Ketua Jurusan S1 Ilmu Komputer Bapak Dr. Poltak Sihombing, M.Kom dan Drs. Agus Salim Harahap, M.Si selaku pembimbing yang telah membimbing dan memberikan panduan dan penuh kepercayaan kepada penulis untuk menyelesaikan skripsi ini.

2. Dosen penguji Bapak Ade Candra ST., M.Kom dan Drs. Marihat Situmorang, M.Kom yang telah memberikan panduan ringkas, padat dan profesional kepada penulis guna penyempurnaan skripsi ini.

3. Sekertaris Jurusan S1 Ilmu Komputer, Ibu Maya Silvi Lydia, B.Sc, M.Sc., Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi beserta para pegawai/staff S1 Ilmu Komputer.

4. Keluarga tercinta, kepada ayahanda dan ibunda, Soetrisno Soera dan Alm. Murniaty tercinta serta adik dan kakak yang tidak henti-hentinya mendukung dan mendoakan penulis serta memberikan motivasi dan dukungan baik secara moril dan materil. 5. Sahabat yang selalu membantu dan menjadi teman diskusi penulis dalam menyelesaikan skripsi ini diantaranya Eka Patma Rahmansyah S.Kom, dan Rekan-rekan mahasiswa Program Studi S1 Ilmu Komputer pada umumnya dan angkatan 2006 pada khususnya yang telah memberikan dukungan moril dalam penyusunan skripsi ini.


(6)

Penulis menyadari bahwa dalam penyelesaian skripsi ini masih jauh dari sempurna. Untuk itu, penulis sangat mengharapkan kritik dan saran guna penyempurnaan dimasa mendatang.

Akhirnya penulis berharap, semoga skripsi ini dapat bermanfaat bagi pribadi penulis, keluarga, masyarakat, organisasi dan negara.

Medan, 28 Agustus 2014 Penulis


(7)

ABSTRAK

Sistem pakar adalah sistem berbasis komputer yang mampu meniru kemampuan seorang pakar dalam menyelesaikan suatu permasalahan tertentu untuk mendapatkan solusi yang tepat. Kemampuan penalaran suatu sistem pakar ditentukan oleh suatu mesin inferensi. Banyak kasus yang bisa dijadikan penelitian dalam sistem pakar salah satunya penentuan status gizi dan kalori pada anak. Pada penelitian ini, akan dirancang sebuah sistem pakar penilaian status gizi dan kalori seorang anak menggunakan metode fuzzy mamdani. Sistem ini dapat memberitahukan status gizi dan kalori harian yang dibutuhkannya seorang anak berdasarkan data yang dimasukkan ke dalam sistem tanpa harus berkonsultasi langsung kepada seorang dokter spesialis. Sistem ini juga akan memberikan informasi mengenai artikel kesehatan yang dapat memberitahukan lebih lanjut mengenai status gizi dan kalori harian pada anak sehingga orang tua lebih mudah menentukan pola hidup yang sehat dan gizi yang seimbang dari asupan makanan dan minuman. Pengujian pada sistem dilakukan dengan mencocokkan nilai gizi referensi dengan nilai gizi hasil proses perhitungan dengan metode fuzzy mamdani.


(8)

ANALYSIS AND DESIGN OF EXPERT SYSTEMS TO DETERMINE NUTRITION STATUS IN ZERO TO FIVE YEARS OLD CHILDREN

BASED ON BODY MASS INDEX USING FUZZY MAMDANI METHOD

ABSTRACT

Expert system is a computer-based systems capable of imitating the ability of an expert in solving a problems to get the right solution. Capability of reasoning an expert system determined by a machine inference. Many of the cases which could be researched in expert system one of them is the determination of nutrition status and calories in a child. In this research, would be designed an expert system to assessment nutrition status and calories a child using fuzzy mamdani method. The system can notify the nutrition status and daily calorie required of a child based on the data entered into the system without having to consult directly to a specialist. This system will also give information on the health article who can show more about nutrition status and calories daily on child so that parents can be easier determine pattern of healthy life and balanced of nutritional intake from food and beverages. Testing on a system performed by matching nutritional value a reference with nutritional value the results of the process of calculation with the fuzzy mamdani methods.


(9)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Bab 1 Pendahuluan

1.1 Latar Belakang 1

1.2 Rumusan Masalah 3

1.3 Batasan Masalah 3

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodologi Penelitian 4

1.7 Sistematika Penulisan 5

Bab 2 Tinjauan Pustaka

2.1 Kecerdasan Buatan 6

2.2 Sistem Pakar 7

2.3 Struktur Sistem Pakar 8

2.4 Pengertian Gizi 10

2.4.1 Status Gizi 10

2.4.2 Penilaian Status Gizi 11

2.4.3 Indeks Antropometri 12

2.5 Logika Fuzzy 14

2.5.1 Konsep Himpunan Fuzzy 14

2.5.2 Fungsi Keanggotaan 17

2.5.3 Operasi Himpunan Fuzzy 21

2.5.4 Fungsi Implikasi 22

2.6 Sistem Inferensi Fuzzy Mamdani 23

2.7 Bahasa Pemograman Sistem 26

2.7.1 Pengenalan Visual Basic .Net 26


(10)

Bab 3 Analisis dan Perancangan Sistem

3.1 Analisis Sistem 28

3.1.1 Analisis Sistem Manual 28

3.2.2 Analisis Permasalahan 29

3.2 Analisis Persyaratan 30

3.2.1 Functional pada sistem 31

3.2.2 Non-Functional pada sistem 31

3.3 Metode Fuzzy Mamdani 32

3.4 Pemodelan 39

3.3.1 Diagram Konteks/DFD Level 0 39

3.3.2 DFD Level 1 40

3.3.3 DFD Level 2 42

3.5 Flowchart 43

3.6 Perancangan Antarmuka (Interface) 46

3.6.1 Perancangan Sistem 46

3.6.2 Perancangan Aplikasi 47

Bab 4 Implementasi dan Pengujian

4.1 Implementasi Sistem 50

4.1.1 Implementasi Fuzzy Mamdani 50

4.2.1 Implementasi Perhitungan Kalori 55

Bab 5 Kesimpulan dan Saran

5.1 Kesimpulan 57

5.2 Saran 57

Daftar Pustaka 58


(11)

DAFTAR TABEL

Halaman 2.1 Kategori dan Ambang Batas Status Gizi Anak Berdasarkan Indeks 11

3.1 Non-Fuctional Requirement pada Sistem 31

3.2 Semesta pembicaraan untuk setiap variabel fuzzy 32

3.3 Tabel Himpunan Fuzzy 33

3.4 Spesifikasi Diagram Konteks / DFD Level 0 40

3.5 Spesifikasi Diagram / DFD Level 1 41


(12)

DAFTAR GAMBAR

Halaman

2.1 Arsitektur Kecerdasan Buatan 7

2.2 Konsep dasar suatu sistem pakar 8

2.3 Arsitektur Sistem Pakar 10

2.4 Representasi himpunan fuzzy bilangan asli sekitar 5 15 2.5 Himpunan Fuzzy Kepandaian Mahasiswa Berdasarkan IPK 16

2.6 Representasi Linear Naik 18

2.7Representasi Linear Turun 18

2.8Representasi Kurva Segitiga 19

2.9Representasi Kurva Trapesium 20

2.10Daerah bahu pada variabel TEMPERATUR 21

2.11Tahapan sistem berbasis aturan fuzzy 22

3.1Diagram Ishikawa menentukan status gizi dan kalori harian pada anak 30

3.2Himpunan Fuzzy Berat Badan 34

3.3Himpunan Fuzzy Tinggi Badan 35

3.4Himpunan Fuzzy Nilai Gizi 36

3.5Diagram Konteks / DFD Level 0 39

3.6Diagram / DFD Level 1 41

3.7DFD Level 2 Proses Analisis Diagnosa Sistem 42

3.8DFD Level 2 Proses Update Informasi Pasien Status Gizi 43 3.9DFD Level 2 Proses Update Informasi Pasien Status Kalori 43 3.10DFD Level 2 Proses Update Informasi Artikel Gizi 43 3.11DFD Level 2 Proses Update Informasi Pasien 43

3.12Diagram alir/Flowchart sistem user 44

3.13Diagram alir/FlowchartAdministrator sistem 45

3.14Halaman Utama Sistem Pakar 47

3.15Halaman Menu Check Nutrition 48

3.16Halaman Menu Check Calories 48

3.17Halaman Information 49

3.18Tampilan Hasil Konsultasi Penyakit pada sistem 49

4.1Tampilan Menu Nutrisi pada sistem 54

4.2Tampilan Hasil Status Gizi pada Sistem 54

4.3Tampilan Menu Kalori pada sistem 56


(13)

ABSTRAK

Sistem pakar adalah sistem berbasis komputer yang mampu meniru kemampuan seorang pakar dalam menyelesaikan suatu permasalahan tertentu untuk mendapatkan solusi yang tepat. Kemampuan penalaran suatu sistem pakar ditentukan oleh suatu mesin inferensi. Banyak kasus yang bisa dijadikan penelitian dalam sistem pakar salah satunya penentuan status gizi dan kalori pada anak. Pada penelitian ini, akan dirancang sebuah sistem pakar penilaian status gizi dan kalori seorang anak menggunakan metode fuzzy mamdani. Sistem ini dapat memberitahukan status gizi dan kalori harian yang dibutuhkannya seorang anak berdasarkan data yang dimasukkan ke dalam sistem tanpa harus berkonsultasi langsung kepada seorang dokter spesialis. Sistem ini juga akan memberikan informasi mengenai artikel kesehatan yang dapat memberitahukan lebih lanjut mengenai status gizi dan kalori harian pada anak sehingga orang tua lebih mudah menentukan pola hidup yang sehat dan gizi yang seimbang dari asupan makanan dan minuman. Pengujian pada sistem dilakukan dengan mencocokkan nilai gizi referensi dengan nilai gizi hasil proses perhitungan dengan metode fuzzy mamdani.


(14)

ANALYSIS AND DESIGN OF EXPERT SYSTEMS TO DETERMINE NUTRITION STATUS IN ZERO TO FIVE YEARS OLD CHILDREN

BASED ON BODY MASS INDEX USING FUZZY MAMDANI METHOD

ABSTRACT

Expert system is a computer-based systems capable of imitating the ability of an expert in solving a problems to get the right solution. Capability of reasoning an expert system determined by a machine inference. Many of the cases which could be researched in expert system one of them is the determination of nutrition status and calories in a child. In this research, would be designed an expert system to assessment nutrition status and calories a child using fuzzy mamdani method. The system can notify the nutrition status and daily calorie required of a child based on the data entered into the system without having to consult directly to a specialist. This system will also give information on the health article who can show more about nutrition status and calories daily on child so that parents can be easier determine pattern of healthy life and balanced of nutritional intake from food and beverages. Testing on a system performed by matching nutritional value a reference with nutritional value the results of the process of calculation with the fuzzy mamdani methods.


(15)

BAB 1

PENDAHULUAN

1.1. Latar Belakang

Berdasarkan ideologi bangsa Pancasila dan UUD 1945 maka setiap rakyat indonesia sangat mengidamkan negara yang sejahtera. Hal ini dikarenakan, negara yang sejahtera telah dapat memenuhi kebutuhan dan hak-hak rakyat termasuk kesehatan. Pembangunan Sumber Daya Manusia (SDM) merupakan salah satu aspek terpenting dalam pembangunan suatu negara sejahtera. Untuk dapat mewujudkan hal tersebut, kualitas sumber daya manusia harus tinggi, dimana kesehatan dan gizi merupakan indikator utamanya.

Status Gizi adalah keadaan tubuh sebagai akibat konsumsi makanan dan penggunaan zat-zat gizi [1]. Konsumsi makanan yang mengandung energi dan protein yang tidak sesuai dengan kebutuhan tubuh akan menyebabkan balita mengalami malnutrisi atau gizi salah. Malnutrisi yang terjadi dalam waktu yang lama akan menyebabkan balita mengalami gangguan terhadap pertumbuhan fisik dan mental.

Masalah kekurangan dan kelebihan gizi pada seorang anak merupakan masalah penting, karena dapat menyebabkan resiko penyakit-penyakit tertentu. Oleh karena itu, pemantauan keadaan tersebut perlu dilakukan secara berkesinambungan. Salah satu cara adalah dengan mempertahankan berat badan yang ideal atau normal.

Indeks Massa Tubuh (IMT) merupakan alat yang sederhana untuk memantau status gizi, khususnya yang berkaitan dengan kekurangan dan kelebihan berat badan. Prediktor yang digunakan dalam penentuan status gizi menggunakan parameter IMT adalah berat badan dan tinggi badan. Status gizi merupakan deskripsi keseimbangan antara asupan zat gizi dengan kebutuhan tubuh secara individual. Cukup konsumsi cenderung status gizi baik dan kurang konsumsi besar kemungkinan akan kurang gizi.


(16)

Dalam penentuan status gizi dengan parameter IMT menggunakan logika fuzzy, variabel input dibagi menjadi tiga yaitu variabel umur, berat dan panjang/tinggi badan. Serta satu variabel output, yaitu variabel nilai gizi dan kalori harian yang dibutuhkan oleh tubuh. Variabel nilai gizi ini dibentuk berdasarkan klasifikasi IMT. Variabel umur diklasifikasi mulai dari nol hingga lima tahun. Variabel berat badan dibagi menjadi empat kategori, yaitu sangat kurus, kurus, normal, dan berat. Begitu juga dalam variabel tinggi badan dibagi menjadi empat kategori, yaitu sangat pendek, pendek, normal, dan tinggi. Sedangkan variabel nilai gizi dibedakan menjadi empat kategori juga yaitu: gizi buruk, gizi kurang, gizi normal, dan gizi lebih.

Secara teori sudah ada cara untuk menghitung nilai gizi dan menentukan status gizi berdasarkan IMT, namun perhitungan dan penentuan status gizi tersebut menggunakan himpunan crisp (tegas). Pada himpunan tegas, suatu nilai mempunyai tingkat keanggotaan satu jika nilai tersebut merupakan anggota dalam himpunan dan nol jika nilai tersebut tidak menjadi anggota himpunan. Hal ini sangat kaku, karena dengan adanya perubahan yang kecil saja terhadap nilai mengakibatkan perbedaan kategori. Himpunan fuzzy digunakan untuk mengantisipasi hal tersebut, karena dapat memberikan toleransi terhadap nilai sehingga dengan adanya perubahan sedikit pada nilai tidak akan memberikan perbedaan yang signifikan.

Sistem inferensi fuzzy Metode Mamdani merupaka metode yang mencari nilai minimum dari setiap aturan dan nilai maksimum dari gabungan konsekuensi setiap aturan tersebut. Metode ini diperkenalkan oleh Ebrahim H.Mamdani pada tahun 1975. Metode Mamdani cocok digunakan apabila input diterima dari manusia bukan mesin. Oleh karena itu, penulis tertarik untuk mengambil judul “Analisis dan Perancangan Sistem Pakar Penentuan Status Gizi Pada Anak Umur Nol hingga Lima Tahun Dengan Indeks Massa Tubuh Dengan Menggunakan Metode Fuzzy”.

1.2. Rumusan Masalah

Berdasarkan uraian pada latar belakang masalah, maka rumusan masalah dalam tugas akhir ini adalah bagaimana merancang sistem pakar menentukan status gizi dan asupan kalori pada anak umur nol hingga lima tahun berdasarkan IMT menggunakan metode Fuzzy Mamdani.


(17)

1.3. Batasan Masalah

Batasan-batasan masalah yang digunakan dalam tugas akhir ini, adalah:

a. Pembangunan sistem pakar ini menggunakan algoritma fuzzy metode Mamdani.

b. Sistem pakar yang dibangun bersifat dinamis yang berarti aturan yang muncul dapat berubah / ditambahkan sesuai dengan perkembangan atau informasi terbaru.

c. Aplikasi yang akan dibangun dengan menggunakan bahasa pemrograman Visual Basic.Net

d. Penyimpanan data penunjang menggunakan DBMS MySQL.

1.4. Tujuan Penelitian

Tugas akhir ini bertujuan untuk membangun sebuah sistem berbasis pengetahuan kedokteran untuk mengetahui status gizi pada seorang anak yang dapat ditampilkan dalam website, sehingga alasan efisiensi waktu, biaya dan kurangnya pengetahuan masyarakat akan gizi dan kalori yang dibutuhkan oleh seorang anak dapat teratasi.

1.5. Manfaat Penelitian

Sehubungan dengan telah dirumuskannya masalah penelitian, maka diharapkan aplikasi ini dapat memberikan manfaat, diantaranya:

a. Mempermudah paramedis untuk mengetahui statuz gizi pada seorang anak sehingga diagnosa menjadi lebih cepat dan efisien serta mengurangi tingkat kesalahan.

b. Membantu masyarakat umum dalam mengetahui status gizi pada anak.

1.6. Metodologi Penelitian

Metode penelitian yang digunakan pada tugas akhir ini, adalah :

a. Studi Literatur

Studi ini dilakukan dengan cara mempelajari, meneliti dan menelaah berbagai literatur-literatur dari perpustakaan yang bersumber dari buku-buku, teks, jurnal ilmiah, situs-situs di internet, dan bacaan-bacaan yang ada kaitannya dengan masalah penelitian.


(18)

b. Analisis Sistem

Penulis melakukan analisis untuk mengetahui kebutuhan-kebutuhan yang diperlukan dalam membangun sebuah sistem dan apakah sistem yang dirancang dapat diimplementasikan.

c. Perancangan

Penulis membuat perancangan aplikasi, perancangan tersebut terdiri dari empat tahapan. Tahap perancangan tersebut adalah perancangan menggunakan diagram pohon, perancangan menggunakan data flow diagram (DFD) atau diagram aliran data (DAD), flowchart atau diagram alir program dan perancangan tampilan antarmuka (interface) system.

d. Pengkodean

Penulis mengimplementasikan hasil rancangan aplikasi ke dalam pemograman visual basic.net sebagai aplikasi dalam menampilkan sistem pakar tersebut.

e. Pengujian

Penulis melakukan pengujian dan mengevaluasi aplikasi system pakar yang dihasilkan, serta melakukan perbaikan sistem. Selain itu juga melakukan pengujian terhadap sistem, apakah kepakarannya sudah sesuai dengan yang diharapkan.

f. Kesimpulan dan Saran

Penulis mengambil kesimpulan dari tugas akhir yang telah dikerjakannya dan juga memberikan saran agar kedepannya kekurangan yang terdapat pada tugas akhir penulis tidak terjadi lagi serta tugas akhir yang telah dikerjakan oleh penulis dapat dikembangkan lagi oleh penulis atau peneliti yang lain.

g. Penyusunan Laporan

Pada tahap ini dilakukan penyusunan laporan hasil perancangan sistem ke dalam format penulisan skripsi.


(19)

1.7. Sistematika Penulisan

Agar penulisan menjadi lebih terstruktur, maka penulisan ini dibagi menjadi lima bab, antara lain sebagai berikut:

BAB 1 : Pendahuluan

Pada bab ini penulis menguraikan latar belakang, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.

BAB 2 : Tinjauan Pustaka

Pada bab ini penulis menguraikan tentang dasar - dasar teoritis kecerdasan buatan dan sistem pakar untuk melandasi pemecahan masalah serta teori - teori sehubungan dengan teknologi yang digunakan dalam pembuatan tugas akhir ini serta metode yang digunakan dalam pembuatan sistem.

BAB 3 : Analisis Dan Perancangan

Pada bab ini penulis menguraikan tentang analisis masalah yang akan dibangun pada sistem pakar ini, dan menganalisis apa saja kebutuhan sistem yang akan dibangun kemudian tahapan selanjutnya adalah melakukan perancangan sistem yakni dengan membuat Data Flow Diagram (DFD) atau

Diagram Aliran Data (DAD), Flowchart, basis data pengetahuan dan

merancang antarmuka sistem.

BAB 4 : Implementasi Dan Pengujian Aplikasi

Pada bab ini penulis menyajikan tentang implementasi sistem berdasarkan tahapan perancangan dengan menggunakan bahasa pemograman Visual Basic .Net dan MySQL sebagai database sistem serta tahapan pengujian sistem untuk melihat apakah sistem sudah berjalan sesuai perancangan atau tidak.

BAB 5 : Kesimpulan Dan Saran

Bab ini berisi mengenai kesimpulan yang diperoleh selama penulisan dan saran yang diberikan untuk pengembangan lebih lanjut.


(20)

BAB 2

TINJAUAN PUSTAKA

2.1. Kecerdasan Buatan

Kecerdasan buatan merupakan salah satu inovasi yang terdapat dalam bidang ilmu pengetahuan. Kecerdasan buatan telah dimulai sejak komputer modern pertama kali ditemukan, yaitu tahun 1940 dan 1950. Menurut Andri Kristanto, kecerdasan buatan merupakan bagian dari ilmu pengetahuan komputer yang khusus ditujukan dalam perancangan otomasi tingkah laku cerdas dalam sistem kecerdasan komputer [7].

Ada juga yang berpendapat bahwa kecerdasan buatan (Artificial Intelligence) merupakan salah satu bagian ilmu komputer yang membuat agar mesin (komputer) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan oleh manusia [9]. Kecerdasan buatan memungkinkan komputer untuk berpikir dengan cara menyederhanakan program. Dengan cara ini, kecerdasan buatan dapat menirukan proses belajar manusia sehingga informasi baru dapat diserap dan digunakan sebagai acuan di masa-masa mendatang.

Kecerdasan atau kepandaian itu di dapat berdasarkan pengetahuan dan pengalaman, untuk itu agar perangkat lunak yang dikembangkan dapat mempunyai kecerdasan maka perangkat lunak tersebut harus diberi suatu pengetahuan dan kemampuan untuk menalar dari pengetahuan yang telah di dapat dalam menemukan solusi atau kesimpulan layaknya seorang pakar dalam bidang tertentu yang bersifat spesifik.


(21)

Menurut John Mc Carthy (1956), terdapat dua bagian penting sehingga sistem komputer dapat belajar seperti layaknya manusia [11], yaitu:

a. Knowledge Base (Basis Pengetahuan)

Basis pengetahuan berisi data, fakta-fakta, teori, pemikiran & hubungan antara satu dengan lainnya.

b. Inference Engine (Mesin Inferensi)

Mesin inferensi mempunyai kemampuan merangkaikan basis data untuk menarik sebuah kesimpulan.

Berikut merupakan gambar arsitektur pada kecerdasan buatan berdasarkan penjelasan diatas

Gambar 2.1. Arsitektur Kecerdasan Buatan 2.2. Sistem Pakar

Sistem pakar merupakan sistem berbasis komputer yang menggunakan pengetahuan, fakta, dan teknik penalaran dalam memecahkan masalah yang biasanya hanya dapat dipecahkan oleh seorang pakar dalam bidang tersebut [8]. Sedangkan pendapat lain menyatakan bahwa sistem pakar adalah salah satu cabang dari Artificial Intelligence

(kecerdasan buatan) yang membuat penggunaan secara luas knowledge yang khusus untuk penyelesaian masalah tingkat manusia yang pakar. Knowledge dalam sistem pakar mungkin saja seorang ahli, atau knowledge yang umumnya terdapat dalam buku, jurnal dan orang yang mempunyai pengetahuan tentang suatu bidang [2].

Sistem pakar juga dapat diartikan sebagai sistem yang berusaha mengadopsi pengetahuan manusia ke komputer yang dirancang untuk memodelkan kemampuan menyelesaikan masalah seperti layaknya seorang pakar. Dengan sistem pakar ini, orang awam pun dapat menyelesaikan masalahnya atau hanya sekedar mencari suatu informasi berkualitas yang sebenarnya hanya dapat diperoleh dengan bantuan para ahli dibidangnya. Sistem pakar ini juga akan dapat membantu aktivitas paramedis.


(22)

Sama seperti kecerdasan buatan, sistem pakar juga memiliki 2 komponen utama yaitu basis pengetahuan dan mesin inferensi. Basis pengetahuan merupakan tempat penyimpanan pengetahuan dalam memori komputer, dimana pengetahuan ini diambil dari pengetahuan pakar. Sedangkan mesin inferensi merupakan otak dari aplikasi sistem pakar. Bagian inilah yang menuntun user untuk memasukkan fakta sehingga diperoleh suatu kesimpulan. Apa yang dilakukan mesin inferensi ini didasarkan pada pengetahuan yang ada dalam basis pengetahuan [3]. Berikut Gambar 2.2 yang menggambarkan konsep dasar suatu sistem pakar :

Gambar 2.2. Konsep dasar suatu sistem pakar

2.3 Struktur Sistem Pakar

Sistem pakar terdiri dari dua bagian pokok, yaitu : lingkungan pengembangan (development environment) dan lingkungan konsultasi (consultation environment) [2]. Lingkungan pengembangan digunakan sebagai pembangun sistem pakar baik dari segi pembangun komponen maupun basis pengetahuan. Lingkungan konsultasi digunakan oleh seseorang yang bukan ahli untuk berkonsultasi.

Komponen-komponen yang ada pada sistem pakar adalah: 1. Subsistem penambahan pengetahuan (Akuisisi Pengetahuan).

Akusisi pengetahuan adalah akumulasi, transfer dan transformasi keahlian dalam menyelesaikan masalah dari sumber pengetahuan ke dalam program komputer. Dalam tahap ini, perekayasa pengetahuan (knowledge engineer) berusaha menyerap pengetahuan untuk selanjutnya ditransfer ke dalam basis pengetahuan. Pengetahuan diperoleh dari pakar, dilengkapi dengan buku, basis data, laporan penelitian dan pengalaman pemakai.


(23)

2. Basis pengetahuan (Knowledge Base)

Berisi pengetahuan-pengetahuan yang dibutuhkan untuk memahami formulasi dalam suatu menyelesaikan masalah. Basis pengetahuan merupakan bagian yang sangat penting dalam proses inferensi, yang di dalamnya menyimpan informasi dan aturan-aturan penyelesaian suatu pokok bahasan masalah beserta atributnya. Pada prinsipnya, basis pengetahuan mempunyai dua (2) komponen yaitu fakta-fakta dan aturan-aturan. 3. Mesin Inferensi (Inference Engine).

Program yang berisi metodologi yang digunakan untuk melakukan penalaran terhadap informasi-informasi dalam basis pengetahuan dan blackboard, serta digunakan untuk memformulasikan konklusi.

4. Workplace / Blackboard

Merupakan area dari sekumpulan memori kerja (working memory). Workplace digunakan untukmerekam kejadian yang sedang berlangsung termasuk keputusan sementara.

5. Antarmuka (user interface)

Digunakan untuk media komunikasi antara user dan program. Menurut McLeod (1995), pada bagian ini terjadi dialog antara program dan pemakai, yang memungkinkan sistem pakar menerima instruksi dan informasi (input) dari pemakai, juga memberikan informasi (output) kepada pemakai.

6. Subsistem penjelasan (Explanation Facility)

Explanation Facility memungkinkan pengguna untuk mendapatkan penjelasan dari hasil konsultasi. Fasilitas penjelasan diberikan untuk menjelaskan bagaimana proses penarikan kesimpulan. Biasanya dengan cara memperlihatkan rule yang digunakan. 7. Perbaikan Pengetahuan (Knowledge Refinement)

Sistem ini digunakan untuk mengevaluasi kinerja sistem pakar itu sendiri untuk melihat apakah pengetahuan-pengetahuan yang ada masih cocok untuk digunakan di masa mendatang.


(24)

Berikut gambar 2.3 arsitektur pada sistem pakar berdasarkan penjelasan diatas.

Gambar 2.3. Arsitektur Sistem Pakar

2.4 Pengertian Gizi

Menurut Supariasa, gizi adalah suatu proses organisme dalam menggunakan bahan makanan melalui proses pencernaan, penyerapan, transportasi, penyimpanan metabolisme dan pembuangan untuk pemeliharaan hidup, pertumbuhan, fungsi organ tubuh dan produksi energi [7].

2.4.1 Status Gizi

Menurut Almatsier, Status Gizi adalah keadaan tubuh sebagai akibat konsumsi makanan dan penggunaan zat-zat gizi [1]. Konsumsi makanan yang mengandung energi dan protein yang tidak sesuai dengan kebutuhan tubuh akan menyebabkan balita mengalami malnutrisi atau gizi salah. Malnutrisi yang terjadi dalam waktu yang lama akan menyebabkan balita mengalami gangguan terhadap pertumbuhan fisik dan mental. Sedangkan menurut Supariasa, status gizi adalah ekspresi dari keadaan yang diakibatkan oleh status keseimbangan antara jumlah asupan zat gizi dan jumlah yang dibutuhkan oleh tubuh untuk berbagai fungsi biologis seperti pertumbuhan fisik, perkembangan, aktivitas, pemeliharaan kesehatan, dan lainnya [7].


(25)

Status Gizi dibedakan antara status gizi buruk, gizi kurang, gizi baik dan gizi lebih, berdasarkan data baku Kementerian Kesehatan Republik Indonesia yang menyajikan pengukuran status gizi dalam z-score. Dimana data ini sangat cocok untuk negara Indonesia yang anak-anak yang populasinya relatif kurang baik, sehingga menggunakan skor simpang baku (z-score). Klasifikasi Status Gizi Anak Balita Menurut Standar Kementerian Kesehatan RI dengan skor simpangan baku (z-score) dapat dilihat pada tabel 1 berikut:

Tabel 2.1. Kategori dan Ambang Batas Status Gizi Anak Berdasarkan Indeks

Sumber : Berdasarkan Keputusan Menteri Kesehatan Tahun 2010

2.4.2 Penilaian Status Gizi

Menurut Supariasa, macam-macam penilaian status gizi dibagi menjadi dua yaitu penilaian status gizi secara langsung dan tidak langsung [7].

1) Penilaian status gizi secara langsung

Penilaian status gizi secara langsung dapat dibagi menjadi empat penilaian yaitu antropometri, klinis, biokimia dan biofisik.

a. Antropometri

Metode antropometri yaitu menentukan status gizi dengan menggunakan ukuran tubuh. Pengukuran antropometri merupakan cara yang paling mudah dan tidak membutuhkan peralatan yang mahal.


(26)

b. Klinis

Penilaian status gizi secara klinis yaitu penilaian yang didasarkan pada gejala yang muncul dari tubuh sebagai akibat dari kelebihan atau kekurangan salah satu zat gizi tertentu. Setiap zat gizi memberikan tampilan klinis yang berbeda, sehingga cara ini dianggap spesifik namun sangat subjektif.

c. Biokimia

Pemeriksaan gizi dilakukan secara laboratoris pada berbagai macam jaringan tubuh. Jaringan tubuh yang digunakan antara lain: darah, urine, tinja, hati, dan otot. d. Biofisik

Penilaian secara biofisik yaitu dengan mengukur elastisitas dan fungsi jaringan tubuh. Cara ini jarang digunakan karena membutuhkan peralatan yang canggih, mahal dan tenaga terampil.

2.4.3 Indeks Antropometri

Menurut Supariasa, indeks antropometri adalah kombinasi antara beberapa parameter antropometri untuk menilai status gizi [7]. Beberapa indeks antropometri yang sering digunakan yaitu berat badan menurut umur (BB/U), tinggi badan menurut umur (TB/U), berat badan menurut tinggi badan (BB/TB), dan Indeks Massa Tubuh (IMT). Indeks BB/U, TB/U, BB/TB cenderung digunakan untuk menilai status gizi pada anak (kurang dari delapan belas tahun). Sedangkan IMT dapat digunakan untuk menilai status gizi pada anak maupun orang dewasa (lebih dari delapan belas tahun). Berikut penjelasan mengenai variabel indeks antropometri.

1. Berat Badan menurut Umur (BB/U)

Berat badan adalah salah satu parameter yang memberikan gambaran massa tubuh. Massa tubuh sangat sensitif terhadap perubahan – perubahan yang mendadak,misalnya karena terserang penyakit infeksi, menurunnya nafsu makan atau menurunnya jumlah makanan yang dikonsumsi.

2. Tinggi Badan menurut Umur (TB/U)

Tinggi badan adalah salah satu ukuran pertumbuhan linier. Pada keadaan normal, tinggi badan tumbuh seiring dengan pertambahan umur. Pertumbuhan tinggi badantidak seperti berat badan, relatif kurang sensitif terhadap masalah kekurangan gizi dalam waktu yang singkat.


(27)

3. Berat Badan menurut Tinggi Badan (BB/TB)

Berat badan memiliki hubungan yang linear dengan tinggi badan. Dalam keadaan normal, perkembangan berat badan akan searah dengan pertumbuhan tinggi badan dengan kecepatan tertentu. Indeks BB/TB tidak dipengaruhi oleh umur.

4. Indeks Massa Tubuh

Indeks Massa Tubuh (IMT) merupakan alat yang sederhana untuk memantau status gizi orang dewasa, khususnya yang berkaitan dengan kekurangan dan kelebihan berat badan.

Didalam menentukan status gizi berdasarkan indeks antropometri pada anak, maka diperlukan nilai z-score. Berikut ini merupakan rumus untuk mencari nilai z-score.

Nilai Simpang Baku Rujukan

Nilai Individu Subjek – Nilai Median Baku Rujukan Z-Score =

Dari rumus diatas, dapat diturunkan menjadi 2 rumus, yaitu:

1. Bila nilai real hasil pengukuran berat badan per umur (BB/U), tinggi badan per usia (TB/U) atau berat badan menurut tinggi badan (BB/TB) lebih besar atau sama dengan nilai median maka dapat dilihat pada persamaan

Z-Score = Nilai Individu Subjek – Nilai Median Baku Rujukan Nilai Median Baku Rujukan – Nilai SD Upper

Keterangan :

Nilai Individu Subjek : nilai riil dari subjek

Nilai Median Baku Rujukan : nilai median baku dari standart yang digunakan Nilai SD Upper : nilai simpang baku yang positif, yang nilainya lebih besar dari nilai median baku rujukan.

2. Bila nilai real hasil pengukuran berat badan per usia (BB/U), tinggi badan per usia (TB/U) atau berat badan menurut tinggi badan (BB/TB) lebih kecil dari nilai median maka maka dapat dilihat pada persamaan.

Z-Score = Nilai Individu Subjek – Nilai Median Baku Rujukan Nilai Median Baku Rujukan – Nilai SD Lower

(2.1)

(2.2)


(28)

Keterangan :

Nilai Individu Subjek : nilai riil dari subjek

Nilai Median Baku Rujukan : nilai median baku dari standart yang digunakan Nilai SD Lower : nilai simpang baku yang positif, yang nilainya lebih kecil dari nilai median baku rujukan.

2.5 Logika Fuzzy

Konsep logika fuzzy pertama kali diperkenalkan oleh Professor Lotfi A.Zadehdari Universitas California, pada bulan Juni 1965. Fuzzy secara bahasa diartikan sebagai kabur atau samar – samar. Menurut Setiadji [6], fuzzy merupakan suatu nilai yang dapat bernilai benar atau salah secara bersamaan. Namun seberapa besar nilai kebenaran dan kesalahannya tergantung pada derajat keanggotaan yang dimilikinya. Derajat keanggotaan dalam fuzzy memiliki rentang nilai 0 (nol) hingga1(satu). Hal ini berbeda dengan himpunan tegas yang memiliki nilai 1 atau 0 (ya atau tidak).

Logika fuzzy digunakan untuk menterjemahkan suatu besaran yang diekspresikan menggunakan bahasa (linguistik), misalkan besaran kecepatan laju kendaraan yang diekspresikan dengan pelan, agak cepat, cepat, dan sangat cepat. Dan logika fuzzy menunjukkan sejauh mana suatu nilai itu benar dan sejauh mana suatu nilai itu salah. Tidak seperti logika tegas, suatu nilai hanya mempunyai 2 kemungkinan yaitu merupakan suatu anggota himpunan atau tidak. Derajat keanggotaan 0 (nol) artinya nilai bukan merupakan anggota himpunan dan 1 (satu) berarti nilai tersebut adalah anggota himpunan.

Menurut Kusumadewi, logika fuzzy adalah suatu cara yang tepat untuk memetakan suatu ruang input kedalam suatu ruang output. Fuzzy dinyatakan dalam derajat dari suatu keanggotaan dan derajat dari kebenaran [5].

2.5.1 Konsep Himpunan Fuzzy

Pada himpunan tegas setiap elemen dalam semestanya selalu ditentukan secara tegas apakah elemen itu merupakan anggota himpunan tersebut atau tidak.Tetapi dalam kenyataanya tidak semua himpunan terdefinisi secara tegas. Misalnya himpunan siswa pandai, dalam hal ini tidak bisa dinyatakan dengan tegas karena tidak ada yang


(29)

dijadikan ukuran untuk tingkat kepandaian seseorang. Oleh karena itu perlu didefinisikan suatu himpunan fuzzy yang bisa menyatakan kejadian tersebut. Himpunan fuzzy didefinisikan sebagai berikut :

Menurut Wang (1997 : 21), Himpunan fuzzy A di dalam semesta pembicaraan U didefinisikan sebagai himpunan yang mencirikan suatu fungsi keanggotaan

(�) yang mengawankan setiap �∈ � dengan bilangan real di dalam interval [0,1] dengan nilai

�(�) menyatakan derajat keanggotaan x di dalam A . Suatu himpunan fuzzy A dapat dinyatakan dengan dua cara, yaitu :

a. �= ∫u

�(�) /�

Dimana notasi integral melambangkan himpunan semua �� ∈ �� bersama dengan derajat keanggotaannya pada himpunan fuzzy A. Cara ini digunakan pada himpunan fuzzy yang anggotanya bernilai kontinu.

b. �= Σ�

�(�) /�

Dimana notasi sigma melambangkan himpunan semua �∈� bersama dengan derajat keanggotaannya pada himpunan fuzzy A. Cara ini digunakan pada himpunan fuzzy yang anggotanya bernilai diskrit.

Contoh 2.1. Himpunan fuzzy diskrit:

Semesta U adalah himpunan bilangan asli kurang dari 10, dinyatakan dengan U = {1, 2, 3, 4, 5, 6, 7, 8, 9}. Himpunan fuzzy bilangan asli sekitar 5 direpresentasikan seperti Gambar 2.2.

Gambar 2.4. Representasi himpunan fuzzy bilangan asli sekitar 5


(30)

Himpunan fuzzy bilangan asli sekitar 5 adalah {(0/1), (0.25/2), (0.5/3), (0.75/4, 1/5, 0.75/6, 0.5/7, 0.25/8, 0/9}

Contoh 2.2. Himpunan fuzzy kontinu:

Semesta U merupakan himpunan semua mahasiswa yang mempunyai IPK [0,4.0].

�PK menunjukkan derajat kepandaian mahasiswa berdasarkan IPK. Himpunan fuzzy

kepandaian mahasiswa berdasarkan IPK direpresentasikan seperti Gambar 2.3.

Gambar 2.5. Himpunan Fuzzy Kepandaian Mahasiswa Berdasarkan IPK Himpunan fuzzy mahasiswa yang mempunyai derajat kepandaian tinggi adalah :

Menurut Kusumadewi, himpunan fuzzy memiliki 2 atribut [5], yaitu:

a) Linguistik, yaitu penamaan suatu kelompok yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami, seperti: LAMBAT, SEDANG, CEPAT.

b) Numeris, yaitu suatu nilai (angka) yang menunjukkan ukuran dari suatu variabel, seperti: 40, 50, 60, dan sebagainya.

Hal – hal yang perlu diketahui dalam memahami sistem fuzzy, yaitu: a) Variabel Fuzzy

Variabel fuzzy merupakan variabel yang akan dibahas dalam suatu sistem fuzzy, seperti: umur, berat badan, tinggi badan, dan sebagainya.

b) Himpunan Fuzzy

Himpunan fuzzy merupakan suatu kelompok yang mewakili suatu keadaan tertentu dalam suatu variabel fuzzy.

0/

dx

x

– 3 /

dx

1/

dx


(31)

c) Semesta pembicaraan

Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu variabel fuzzy. Nilai semesta pembicaraan dapat berupa bilangan positif maupun negatif. Sebagai contoh, semesta pembicaraan untuk kepandaian mahasiswa adalah [0,4.0].

d) Domain

Domain himpunan fuzzy adalah keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu himpunan fuzzy. Nilai domain dapat berupa bilangan positif maupun negatif. Sebagai contoh, domain dari himpunan fuzzy kecepatan adalah sebagai berikut:

Rendah : [0, 3.0] Sedang : [2.2, 3.8] Tinggi : [3.0, 4.0]

2.5.2 Fungsi Keanggotaan

Definisi 2.4 (Klir, 1997 : 75) Setiap himpunan fuzzy � di dalam himpunan universal X, � ∈ X dipetakan ke dalam interval [0,1]. Pemetaan dari �∈ X pada interval [0,1] disebut fungsi keanggotaan. Fungsi keanggotaan dari himpunan fuzzy � di dalam semesta X dapat ditulis:

A: X → [0,1].

Menurut Kusumadewi, fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan titik – titik input data ke dalam nilai keanggotaannya yang memiliki interval antara 0 sampai 1 [5].

Ada beberapa fungsi yang bisa digunakan. diantaranya, yaitu: a. Representasi Linear

Pada representasi linear, pemetaan input ke derajat keanggotannya digambarkan sebagai suatu garis lurus. Ada dua keadaan himpunan fuzzy linear, yaitu linear naik dan linear turun. Representasi himpunan fuzzy linear naik seperti yang ditunjukkan pada Gambar 2.6.


(32)

Fungsi Keanggotaan:

Keterangan:

a = nilai domain yang mempunyai derajat keanggotaan nol b = nilai domain yang mempunyai derajat keanggotaan satu x = nilai input yang akan di ubah ke dalam bilangan fuzzy

Representasi himpunan fuzzy linear turun seperti yang ditunjukkan pada Gambar 2.7.

Fungsi Keanggotaan:

(2.5) Derajat

Keanggotaan

[]

Gambar 2.6 Representasi Linear Naik

(2.4)

Derajat Keanggotaan

[]

Gambar 2.7 Representasi Linear Turun

Derajat Keanggotaan

[�]

Gambar 2.7 Representasi Linear Turun


(33)

Keterangan:

a = nilai domain yang mempunyai derajat keanggotaan satu b = nilai domain yang mempunyai derajat keanggotaan nol x = nilai input yang akan di ubah ke dalam bilangan fuzzy b. Representasi Kurva Segitiga

Kurva Segitiga pada dasarnya merupakan gabungan antara dua garis (linear) seperti terlihat pada Gambar 2.8.

Fungsi Keanggotaan:

Keterangan:

a = nilai domain terkecil yang mempunyai derajat keanggotaan nol b = nilai domain yang mempunyai derajat keanggotaan satu

c = nilai domain terbesar yang mempunyai derajat keanggotaan nol

�� = nilai input yang akan di ubah ke dalam bilangan fuzzy c. Representasi Kurva Trapesium

Kurva Trapesium pada dasarnya seperti bentuk segitiga karena merupakan gabungan antara dua garis (linear), hanya saja ada beberapa titik yang memiliki nilai keanggotaan 1. Representasi kurva trapesium ditunjukkan pada Gambar 2.9.

Derajat Keanggotaan

[]

Gambar 2.8 Representasi Kurva Segitiga

(2.6) 0 ;


(34)

Fungsi Keanggotaan:

Keterangan:

a = nilai domain terkecil yang mempunyai derajat keanggotaan nol b = nilai domain terkecil yang mempunyai derajat keanggotaan satu c = nilai domain terbesar yang mempunyai derajat keanggotaan satu d = nilai domain terbesar yang mempunyai derajat keanggotaan nol x = nilai input yang akan di ubah ke dalam bilangan fuzzy

d. Representasi Kurva Bahu

Himpunan fuzzy bahu digunakan untuk mengakhiri variabel suatu daerah fuzzy. Bentuk kurva bahu berbeda dengan kurva segitiga, yaitu salah satu sisi pada variabel tersebut mengalami perubahan turun atau naik, sedangkan sisi yang lain tidak mengalami perubahan atau tetap. Bahu kiri bergerak dari benar ke salah, demikian juga bahu kanan bergerak dari salah ke benar. Gambar 2.10 menunjukkan variabel TEMPERATUR dengan daerah bahunya.

(2.7) Gambar 2.9 Representasi Kurva Trapesium


(35)

2.5.3 Operasi Himpunan Fuzzy

Seperti halnya himpunan bilangan tegas, ada beberapa operasi yang didefinisikan secara khusus untuk mengkombinasikan dan memodifikasi himpunan fuzzy. Nilai keanggotaan sebagai hasil dari operasi dua himpunan yang dikenal dengan nama α -predikat.

Menurut Wang (1997 : 29), ada tiga operasi dasar dalam himpunan fuzzy,yaitu komplemen, irisan (intersection) dan gabungan (union).

a) Komplemen

Operasi komplemen pada himpunan fuzzy adalah sebagai hasil operasi dengan operator NOT diperoleh dengan mengurangkan nilai keanggotaan elemen pada himpunan yang bersangkutan dari 1.

A(x) = 1 – A(x) b) Irisan (Intersection)

Operasi irisan (intersection) pada himpunan fuzzy adalah sebagai hasil operasi dengan operator AND diperoleh dengan mengambil nilai keanggotaan terkecil antar elemen pada himpunan - himpunan yang bersangkutan.

(A ∩ B)(x) = min [A(x) , B(x)]


(36)

c) Gabungan (Union)

Operasi gabungan (union) pada himpunan fuzzy adalah sebagai hasil operasi dengan operator OR diperoleh dengan mengambil nilai keanggotaan terbesar antar elemen pada himpunan - himpunan yang bersangkutan.

(A ∪ B)(x) = max [A(x) , B(x)]

2.5.4 Fungsi Implikasi

Tiap – tiap aturan (proposisi) pada basis pengetahuan fuzzy akan berhubungan dengan suatu relasi fuzzy. Bentuk umum dari aturan yang digunakan dalam fungsi implikasi adalah:

IF x is A THEN y is B

dengan x dan y adalah skalar, dan A dan B adalah himpunan fuzzy. Proposisi yang mengikuti IF disebut sebagai anteseden, sedangkan proporsi yang mengikuti THEN disebut sebagai konsekuen.

2.5.5 Sistem Berbasis Aturan Fuzzy

Pendekatan logika fuzzy diimplementasikan dalam tiga tahapan, yakni: fuzzyfikasi, evaluasi rule (inferensi), dan defuzzifikasi.

Gambar 2.11. Tahapan sistem berbasis aturan fuzzy

1. Fuzzyfikasi

Fuzzyfikasi merupakan fase pertama dari perhitungan fuzzy, yaitu mengubah masukan - masukan yang nilai kebenarannya bersifat pasti ke dalam bentuk fuzzy input yang berupa tingkat keanggotaan / tingkat kebenaran. Dengan demikian, tahap ini mengambil nilai-nilai crisp dan menentukan derajat di mana nilai-nilai tersebut menjadi anggota dari setiap himpunan fuzzy yang sesuai.

2. Inferensi

Inferensi adalah melakukan penalaran menggunakan fuzzy input dan fuzzy rules yang telah ditentukan sehingga menghasilkan fuzzy output. Secara sintaks, suatu fuzzy rule (aturan fuzzy) dituliskan sebagai berikut:


(37)

3. Defuzzifikasi

Defuzzifikasi adalah mengubah fuzzy output menjadi nilai tegas berdasarkan fungsi keanggotaan yang telah ditentukan. Defuzzifikasi merupakan metode yang penting dalam pemodelan sistem fuzzy.

2.6 Metode Fuzzy Mamdani

Salah satu aplikasi logika fuzzy yang telah berkembang amat luas dewasa ini adalah sistem inferensi fuzzy (Fuzzy Inference System / FIS), yaitu kerangka komputasi yang didasarkan pada teori himpunan fuzzy, aturan fuzzy berbentuk IF THEN, dan penalaran fuzzy. Misalnya dalam penentuan status gizi, produksi barang, sistem pendukung keputusan, penentuan kebutuhan kalori harian, dan sebagainya. Ada tiga metode dalam sistem inferensi fuzzy yang sering digunakan, yaitu metode Tsukamoto, metode Mamdani, dan metode Takagi Sugeno.

Dalam penelitian ini akan dibahas penentuan status gizi menggunakan metode Mamdani. Sistem ini berfungsi untuk mengambil keputusan melalui proses tertentu dengan mempergunakan aturan inferensi berdasarkan logika fuzzy. Metode Mamdani sering dikenal dengan nama Metode Min – Max. Metode ini diperkenalkan oleh Ebrahim Mamdani pada tahun 1975. Untuk mendapatkan output, diperlukan 4 tahapan:

1) Pembentukan himpunan fuzzy

Pada Metode Mamdani, baik variabel input maupun variabel output dibagi menjadi satu atau lebih himpunan fuzzy.

2) Aplikasi fungsi implikasi

Pada metode Mamdani, fungsi implikasi yang digunakan adalah Min. 3) Komposisi Aturan

Apabila sistem terdiri dari beberapa aturan, maka inferensi diperoleh dari gabungan antar aturan. Ada tiga metode yang digunakan dalam melakukan inferensi sistem fuzzy, yaitu: max, additive dan probabilistik OR (probor).

a. Metode Max (Maximum)

Pada metode ini, solusi himpunan fuzzy diperoleh dengan cara mengambil nilai maksimum aturan, kemudian menggunakannya untuk memodifikasi daerah fuzzy, dan mengaplikasikannya ke output dengan menggunakan operator OR (union). Jika semua


(38)

proposisi telah dievaluasi, maka output akan berisi suatu himpunan fuzzy yang merefleksikan konstribusi dari tiap-tiap proposisi. Secara umum dapat dituliskan: Usf[xi] = max (Usf[xi], Ukf[xi])

Keterangan:

Usf[xi] = nilai keanggotaan solusi fuzzy sampai aturan ke-i; Ukf[xi] = nilai keanggotaan konsekuen fuzzy aturan ke-i.

b. Metode Additive (Sum)

Pada metode ini, solusi himpunan fuzzy diperoleh dengan cara melakukan bounded-sum terhadap semua output daerah fuzzy. Secara umum dituliskan:

Usf[xi]=min (1, Usf[xi]+Ukf[xi])

Keterangan:

μsf[xi] = nilai keanggotaan solusi fuzzy sampai aturan ke-i; μkf[xi] = nilai keanggotaan konsekuen fuzzy aturan ke-i. c. Metode Probabilistik OR (probor)

Pada metode ini, solusi himpunan fuzzy diperoleh dengan cara melakukan product terhadap semua output daerah fuzzy. Secara umum dituliskan:

Usf[xi]=(Usf[xi]+Ukf[xi] - (Usf[xi] . Ukf[xi])) Keterangan:

Usf[xi] = nilai keanggotaan solusi fuzzy sampai aturan ke-i; Ukf[xi] = nilai keanggotaan konsekuen fuzzy aturan ke-i.

4) Penegasan (defuzzifikasi)

Input dari proses defuzzifikasi adalah suatu himpunan fuzzy yang diperoleh dari suatu komposisi aturan – aturan fuzzy, sedangkan output yang dihasilkan merupakan suatu bilangan pada himpunan fuzzy tersebut. Sehingga jika diberikan suatu himpunan fuzzy dalam range tertentu, maka harus dapat diambil suatu nilai crisp tertentu sebagai output.

(2.8)

(2.9)


(39)

Menurut Kusumadewi (2004 : 44), ada beberapa metode defuzzifikasi pada komposisi aturan Mamdani, antara lain:

a) Metode Centroid (Composite Moment)

Pada metode ini, solusi crisp diperoleh dengan cara mengambil titik pusat daerah fuzzy. Secara umum dirumuskan:

Keterangan:

Z = nilai domain ke – i,

�(Z) = derajat keanggotaan titik tersebut,

Z0 = nilai hasil penegasan (defuzzyfikasi).

Keterangan:

Z = nilai hasil penegasan (defuzzyfikasi) di = nilai keluaran pada aturan ke i

��� (di) = derajat keanggotaan nilai keluaran pada aturan ke –i n = banyaknya aturan yang digunakan.

b) Metode Bisektor

Pada metode ini, solusi crisp diperoleh dengan cara mengambil nilai pada domain fuzzy yang memiliki nilai keanggotaan setengah dari jumlah total nilai keanggotaan pada daerah fuzzy. Secara umum dituliskan:

Keterangan:

d = nilai hasil penegasan (defuzzyfikasi), di = nilai keluaran pada aturan ke-i,

��� (di) = derajat keanggotaan nilai keluaran pada aturan ke – i, n = banyak aturan yang digunakan

(2.11)

(2.12)


(40)

c) Metode Mean of Maksimum (MOM)

Pada metode ini, solusi crisp diperoleh dengan cara mengambil nilai rata – rata domain yang memiliki nilai keanggotaan maksimum.

d) Metode Largest of Maximum (LOM)

Pada metode ini, solusi crisp diperoleh dengan cara mengambil nilai terbesar dari domain yang memiliki nilai keanggotaan maksimum.

e) Metode Smallest of Maximum (SOM)

Pada metode ini, solusi crisp diperoleh dengan cara mengambil nilai terkecil dari domain yang memiliki nilai keanggotaan maksimum.

2.7 Bahasa Pemograman Sistem 2.7.1 Pengeanalan Visual Basic.Net

Microsoft Visual Basic .NET adalah sebuah alat untuk mengembangkan dan membangun aplikasi yang bergerak di atas sistem .NET Framework, dengan menggunakan bahasa BASIC. Dengan menggunakan alat ini, para programmer dapat membangun aplikasi Windows Forms, Aplikasi web berbasis ASP.NET, dan juga aplikasi command-line. Alat ini dapat diperoleh secara terpisah dari beberapa produk lainnya (seperti Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat diperoleh secara terpadu dalam Microsoft Visual Studio .NET. Bahasa Visual Basic .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat sebagai evolusi dari Microsoft Visual Basic versi sebelumnya yang diimplementasikan di atas .NET Framework. Peluncurannya mengundang kontroversi, mengingat banyak sekali perubahan yang dilakukan oleh Microsoft, dan versi baru ini tidak kompatibel dengan versi terdahulu.

Versi pertama dari Visual Basic .NET adalah Visual Basic .NET 2002 yang dirilis pertama kali pada bulan Februari 2002. Visual Basic .NET 2002 merupakan sebuah bahasa pemrograman visual yang berbasis bahasa BASIC (sama seperti halnya Visual Basic 6.0, tetapi lebih disempurnakan dan lebih berorientasi objek), dan didesain untuk berjalan di atas Microsoft .NET Framework versi 1.0.


(41)

2.7.2 Pengenalan Database MySQL

MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, populer dan bersifat gratis. MySQL AB merupakan perusahaan yang membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.

Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael “Monty” Widenius.

MySQL adalah Relational Database Management System (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk turunan yang bersifat closed source atau komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam database sejak lama, yaitu SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian database, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Keandalan suatu sistem database (DBMS) dapat diketahui dari cara kerja optimizer-nya dalam melakukan proses perintah-perintah SQL, yang dibuat oleh user maupun program-program aplikasinya. Sebagai database server, MySQL dapat dikatakan lebih unggul dibandingkan database server lainnya dalam query data. Hal ini terbukti untuk query yang dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan lima kali lebih cepat dibandingkan Interbase.


(42)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Analisis sistem dalam penelitian ini akan dilakukan dalam beberapa tahap yakni analisis sistem manual, dan analisis permasalahan sistem pakar. Berikut akan dijelaskan masing-masing analisis tersebut.

3.1.1 Analisis Sistem Manual

Cara yang paling umum digunakan seorang dokter untuk menentukan penyakit seorang pasien adalah dengan cara diagnosa. Diagnosa merupakan suatu pernyataan singkat tentang keadaan atau kondisi suatu penyakit. Fakta-fakta yang dijadikan dasar seorang dokter untuk membuat diagnosa harus diperoleh terlebih dahulu dan terutama didapatkan dari keterangan pasien. Adapun proses yang dilakukan untuk mengidentifikasi status gizi seorang anak terdiri pemeriksaan fisik pasien dan pemeriksaan lanjutan.

Proses pemeriksaan fisik yang dilakukan seorang dokter meliputi pemeriksaan fisik luar terhadap kondisi pada pasien seperti berat badan dan tinggi badan dan kondisi fisik pendukung lainnya yang mengarahkannya pada suatu kesimpulan penyakit. Sementara proses pemeriksaan fisik lanjutan (laboratorium) merupakan tahap selanjutnya setelah dilakukan pemeriksaan fisik luar. Pada proses ini pasien akan diperiksa kondisi tubuhnya mulai dari kepala hingga kaki. Cara umum yang biasa dilakukan dokter untuk melakukan diagnosa status gizi pada anak adalah pemeriksaan fisik luar yang akan ditegakkan menjadi untuk menentukan diagnosa penyakit.

Pada umumnya, proses pemeriksaan fisik luar pada anak saja sudah bisa menyimpulkan diagnosa status gizi yang dialami. Namun, untuk keadaan-keadaan tertentu pemeriksaan lanjutan sangat diperlukan.


(43)

3.1.2 Analisis Permasalahan

Diagnosa dengan pemeriksaan fisik luar yang dilakukan kepada pasien anak merupakan cara yang paling efektif dan banyak digunakan oleh para dokter di lapangan. Hal ini dikarenakan pemeriksaan fisik luar pasien anak penting untuk mengetahui karakteristik suatu penyakit, namun tak jarang cara ini menyulitkan dokter dalam mendiagnosa jika gambaran fisik luar mengalami kelainan karena suatu penyakit sehingga yang data yang terlihat kurang mendukung. Cara pemeriksaan lanjutan sebenarnya menghasilkan diagnosa yang sangat akurat, karena melalui serangkaian pengujian laboratorium. Namun, cara ini jarang dilakukan masyarakat karena memerlukan biaya yang sangat mahal.

Untuk lebih jelasnya maka analisis permasalahan ini akan dilakukan dengan cause effect diagram (ishikawa diagram). Diagram Ishikawa (diagram sebab-akibat) adalah diagram yang menunjukkan penyebab peristiwa tertentu. Umumnya diagram Ishikawa digunakan untuk desain produk, kontrol kualitas dan untuk mengidentifikasi faktor-faktor potensial yang menyebabkan efek keseluruhan. Setiap penyebab atau alasan ketidaksempurnaan merupakan sumber dari permasalahan. Diagram Ishikawa berbentuk fishbone yang menunjukkan faktor peralatan, proses, manusia, bahan, lingkungan dan manajemen. Itu semua merupakan masalah yang mempengaruhi keseluruhan. Panah kecil menghubungkan sub-penyebab penyebab utama. Berikut ini merupakan hasil pemaparan analisis permasalahan diatas menggunakan diagram ishikawa berdasarkan sistem yang akan dikerjakan

Menentukan Status Gizi dan Kalori Harian pada Anak

Material Methode

Manusia Mesin

Pemeriksaan fisik anak

Keterangan data diri anak

Belum adanya ketetapan yang pasti

Kurangnya pengetahuan mengenai nutrisi

dan kalori

Kurangnya Dokter Spesialis

Kurangnya pemanfaatan teknologi informasi

Gambar 3.1 Diagram Ishikawa menentukan status gizi dan kalori harian pada anak Metode


(44)

Berdasarkan hasil analisis diatas, maka dapat disimpulkan cara yang paling efektif dan cepat dalam menyimpulkan status gizi anak adalah pemeriksaan fisik luar. Cara ini juga terjangkau bagi ekonomi masyarakat. Selain itu, masyarakat juga perlu diberikan pengetahuan bagaimana cara menangani agar status gizi pada anak dapat normal secara mandiri setelah mendapat hasil pemeriksaan fisik luar. Penanganan ini sangat berguna untuk memberi pengetahuan kepada orang tua pasien kapan mereka harus mendapatkan perawatan medis dan kapan penyakit tersebut dapat ditangani sendiri secara mandiri serta untuk mengurangi kemungkinan resiko penyakit yang lebih serius.

Untuk itu dalam penelitian ini, penulis akan membuat suatu sistem pakar yang dapat mempresentasikan pengetahuan pakar dalam mendiagnosa penyakit paru dan saluran pernapasan dengan menginputkan hasil pemeriksaan fisik luar yang dialami pasien anak secara langsung. Metode yang digunakan pada sistem untuk mengetahui status gizi pasien anak adalah metode fuzzy mamdani.

3.2 Analisis Persyaratan

Tujuan analisis ini adalah untuk menentukan fungsi-fungsi apa saja yang terdapat dalam sebuah sistem pakar. Analisis fungsional sistem ada 2, yaitu:

1. Functional pada sistem

Yaitu fungsi-fungsi atau layanan untuk menunjang fungsionalitas dan utilitas sistem. Berikut ini merupakan tabel functional sistem pada sistem pakar ini.

1. Meminta masukan user berupa data pemeriksaan fisik seperti umur, berat badan, tinggi badan, dan jenis kelamin.

2. Memberikan hasil diagnosis status gizi berdasarkan masukan user.

3. Menampilkan keterangan Berat Badan Ideal (BBI) dan Berat Massa Ideal (BMI) sesuai yang data masukan oleh user sehingga user dapat mengetahui kondisi paling baik untuk tubuh mereka.

4. Meminta masukan berupa “username” dan “password” oleh user untuk melakukan proses login ke backend system.

5. Melakukan management sistem berupa proses tambah, hapus dan edit untuk gejala dan penyakit.


(45)

2. Non-Functional pada sistem

Yaitu hal-hal atau fitur-fitur lain (bukan fungsi atau layanan) untuk menunjang fungsionalitas dan utilitas sistem. Berikut ini merupakan tabel non-functional sistem pada sistem pakar ini.

Tabel 3.1 Tabel Non-Fuctional Requirement pada Sistem

Parameter Keterangan

Reliability Sistem dapat menentukan status gizi berdasarkan metode fuzzy mamdani.

Simplicity Sistem ini dapat diakses secara offline menggunakan perangkat komputer desktop.

Respone Time

Waktu yang dibutuhkan oleh user untuk memperoleh hasil dari sistem tidak terlalu lama dikarenakan setelah data dimasukkan maka secara otomatis hasil akan langsung ditampilkan.

Security Keamanan pada sistem ini cukup baik dikarenakan user harus melakukan login terlebih dahulu untuk masuk ke backend systems. Efficiency Kemudahan pada sistem ini menyebabkan user tidak perlu repot lagi

harus berkonsultasi secara langsung pada dokter spesialis untuk sekedar ingin tahu status gizi yang dialami oleh anak.

Performance Kinerja pada sistem ini sudah berjalan dengan baik, hal ini ditandai dengan uji coba yang dilakukan pada sistem berjalan sesuai dengan hasil yang diinginkan.

3.3 Metode Fuzzy Mamdani

Dalam penentuan status gizi, aplikasi logika fuzzy digunakan untuk mengubah input yang berupa berat dan tinggi badan sehingga mendapatkan output berupa nilai gizi. Kemudian disesuaikan dengan range keanggotaan pada variabel nilai gizi sehingga diperoleh status gizi. Dalam penentuan status gizi digunakan metode Mamdani atau sering juga dikenal dengan nama Metode Min - Max. Dalam metode ini, pada setiap aturan yang berbentuk implikasi (“sebab-akibat”) anteseden yang berbentuk konjungsi (AND) mempunyai nilai keanggotaan berbentuk minimum (min), sedangkan konsekuen gabungannya berbentuk maksimum (max). Untuk mendapatkan output, diperlukan empat tahapan yaitu:

1. Pembentukan Himpunan Fuzzy

Pada Metode Mamdani, baik variabel input maupun variabel output dibagi menjadi satu atau lebih himpunan fuzzy. Dalam penentuan status gizi dengan parameter Indeks Massa Tubuh (IMT), variabel input dibagi menjadi dua yaitu variabel berat dan tinggi badan. Serta satu variabel output, yaitu variabel nilai gizi. Variabel nilai gizi ini dibentuk berdasarkan klasifikasi IMT. Hasil dari pengukuran indeks massa tubuh


(46)

tidak tergantung pada umur dan jenis kelamin. Penentuan variabel yang digunakan dalam penelitian ini, terlihat pada Tabel 3.2. berikut ini.

Tabel 3.2. Semesta pembicaraan untuk setiap variabel fuzzy. Fungsi Nama Variabel Semesta Pembicaraan

Input Berat Badan [3.3 , 18.3]

Tinggi Badan [55 , 105]

Output Nilai Gizi [-4 , 3]

Dari variabel yang telah dimunculkan, kemudian disusun domain himpunan fuzzy. Berdasarkan domain tersebut, selanjutnya ditentukan fungsi keanggotaan dari masing – masing variabel seperti terlihat pada Tabel 3.2. Berikut adalah perancangan himpunan fuzzy pada penentuan status gizi menggunakan indeks massa tubuh :

Tabel 3.3. Tabel Himpunan Fuzzy.

Ringan Normal Berat

[3.3 , 10.8] [7.8 , 13.8] [10.8 , 18.3]

Variabel Nama Variabel Semesta Pembicaraan

Berat Badan

(kg)

[3.3 , 6.3 , 10.8] [7.8 , 10.8 , 13.8] [10.8 , 15.3 , 18.3]

Parameter

Ringan Normal Berat

[55 , 80] [70 , 90] [80 , 100]

Variabel Nama Variabel Semesta Pembicaraan

Tinggi Badan (cm)

[55 , 65 , 80] [70 , 80 , 90] [80 , 95 , 105]

Parameter

Gizi Buruk Gizi Kurang

Gizi Baik

[-4 , -3] [-3 , -2] [-2 , 2 ]

Variabel Nama Variabel Semesta Pembicaraan

Nilai Gizi

[-4 , -3.5 , -3] [-3 , -2.5 , -2] [-2 , 1 , 2] Parameter

Gizi Lebih [2 , 3] [2 , 2.5 , 3]

Himpunan fuzzy beserta fungsi keanggotaan dari variabel berat badan, tinggi badan, dan nilai gizi direpresentasikan sebagai berikut:


(47)

a. Himpunan Fuzzy Variabel Berat Badan

Pada variabel berat badan didefinisikan tiga himpunan fuzzy, yaitu RINGAN, NORMAL, dan BERAT. Untuk merepresentasikan variabel berat badan digunakan bentuk kurva bahu kiri untuk himpunan fuzzy RINGAN, bentuk kurva segitiga untuk himpunan fuzzy NORMAL, dan bentuk kurva bahu kanan untuk himpunan fuzzy BERAT. Gambar himpunan fuzzy untuk variabel berat badan ditunjukkan pada Gambar 3.1.

0 1

3.3 18.3

Ringan Normal Berat

4.8 7.8 10.8 13.8 16.8

Gambar 3.2 Himpunan Fuzzy Berat Badan

Dimana sumbu horizontal merupakan nilai input dari variabel berat badan, sedangkan sumbu vertikal merupakan tingkat keanggotaan dari nilai input. Dengan fungsi keanggotaan adalah sebagai berikut:

; x < 3.3 ; 3.3 < x < 10.8 ; x > 10.8

�Ringan = 10.8 – X 3

1

0

�Berat = X – 10.8 3

; x > 16.8

0

1

; x < 7.8

�Normal =

X – 7.8 3

0

0

13.8 – X 3

; 7.8 < x < 10.8 ; 10.8 < x < 13.8 ; x > 13.8 ; x < 10.8 ; 10.8 < x < 16.8

Seseorang anak dianggap ringan bila berat badannya antara 3.3 kg sampai 10.8 kg, dianggap normal bila berat badannya antara 7.8 kg sampai 13.8 kg, dianggap berat bila berat badannya antara 10.8 kg sampai 16.8 kg, dianggap ringan sekaligus normal bila berat badannya antara 7.8 kg sampai 10.8 kg, dan


(48)

dianggap normal sekaligus tinggi bila berat badannya antara 10.8 kg sampai 13.8 kg

b. Himpunan Fuzzy Variabel Tinggi Badan

Pada variabel tinggi badan didefinisikan tiga himpunan fuzzy, yaitu RENDAH, NORMAL, dan TINGGI. Untuk merepresentasikan variabel tinggi badan digunakan bentuk kurva bahu kiri untuk himpunan fuzzy RENDAH, bentuk kurva segitiga untuk himpunan fuzzy NORMAL, dan bentuk kurva bahu kanan untuk himpunan fuzzy TINGGI. Representasi himpunan fuzzy untuk variabel tinggi badan ditunjukkan pada Gambar 3.2.

0 1

50 60 70 80 90 100

Rendah Normal Tinggi

110

Gambar 3.3 Himpunan Fuzzy Tinggi Badan

Dimana sumbu horizontal merupakan nilai input dari variabel tinggi badan, sedangkan sumbu vertikal merupakan tingkat keanggotaan dari nilai input. Dengan fungsi keanggotaan adalah sebagai berikut:

Rendah = 60 – X 20

1

0

Tinggi = X – 80 20

0

1

; x < 70

Normal =

X – 70 10

0

0

90 – X 10

; 70 < x < 80 ; 80 < x < 90 ; x > 90 ; x < 60 ; 60 < x < 80 ; x > 80

; x < 80 ; 80 < x < 100 ; x > 100

Seseorang anak dianggap rendah bila tinggi badannya antara 50 cm sampai 80 cm, dianggap normal bila tinggi badannya antara 70 cm sampai 90 cm,


(49)

dianggap tinggi bila tinggi badannya antara 80 cm sampai 110 cm, dianggap rendah sekaligus normal bila tingginya antara 70 cm sampai 80 cm, dan dianggap normal sekaligus tinggi bila tingginya antara 80 cm sampai 90 cm.

c. Himpunan Fuzzy Variabel Nilai Gizi

Himpunan fuzzy nilai gizi diperoleh berdasarkan klasifikasi pada Indeks Massa Tubuh (IMT), yang direpresentasikan menggunakan himpunan fuzzy. Pada variabel nilai gizi didefinisikan empat himpunan fuzzy, yaitu Gizi Buruk, Gizi Kurang, Gizi Baik, dan Gizi lebih. Untuk merepresentasikan variabel nilai gizi digunakan bentuk kurva bahu kiri untuk himpunan fuzzy Gizi Buruk, bentuk kurva trapesium untuk himpunan fuzzy Gizi Kurang dan Gizi Baik, bentuk kurva bahu kanan untuk himpunan fuzzy Gizi Lebih. Gambar himpunan fuzzy untuk variabel nilai gizi ditunjukkan pada Gambar 3.3.

1 1.5

Gizi

Kurang Gizi Baik

2

0.5

2.5 3 -3 -2.5 -2 -1.5 -1 -0.5

Gizi Lebih Gizi

Buruk

-4 -3.5 0

1

0.5

Gambar 3.4 Himpunan Fuzzy Nilai Gizi

Berdasarkan Gambar 3.3 sumbu horizontal merupakan nilai input dari variabel nilai gizi, sedangkan sumbu vertikal merupakan tingkat keanggotaan dari nilai input. Dengan fungsi keanggotaan adalah sebagai berikut:


(50)

Buruk = (-3) – X

1

0

Kurang =

X – (-3)

0

1

(-2) – X

; x > -3 ; -3.5 < x < -3 ; x < -3.5

; x < -3 ; -3 < x < -2.5 ; -2.5 < x > -2 ; x > -2

Baik =

0

1

Lebih =

X – (-2)

X – 2

0

1

2 – X

; x < -2 ; -2 < x < 1 ; 1 < x < 2 ; x > 2 ; x < 2 ; 2 < x < 3 ; x > 3

Seseorang anak dianggap gizi buruk bila nilai gizinya antara -4 sampai -3, dianggap gizi kurang bila nilai gizinya antara -3 sampai -2, dianggap gizi baik bila nilai gizinya antara -2 sampai 2, dianggap gizi lebih bila nilai gizinya antara 2 sampai 3, dianggap gizi buruk sekaligus gizi kurang bila nilai gizinya antara -3.5 sampai -2.5, dianggap gizi kurang sekaligus gizi baik bila nilai gizinya antara -2.5 sampai 0, dan dianggap gizi baik sekaligus gizi lebih bila nilai gizinya antara 0 sampai 2.5.

2. Fungsi Implikasi

Setelah pembentukan himpunan fuzzy, maka dilakukan pembentukan aturan fuzzy. Aturan - aturan dibentuk untuk menyatakan relasi antara input dan output. Tiap aturan merupakan suatu implikasi. Operator yang digunakan untuk menghubungkan antara dua input adalah operator AND, dan yang memetakan antara input-output adalah IF-THEN. Proposisi yang mengikuti IF disebut anteseden, sedangkan proposisi yang mengikuti THEN disebut konsekuen. Berdasarkan kategori dalam IMT, maka dapat dibentuk aturan – aturan sebagai berikut :

[R1]: Jika berat badan adalah ringan dan tinggi badan adalah rendah maka status gizinya adalah gizi baik.


(51)

[R2]: Jika berat badan adalah ringan dan tinggi badan adalah normal maka status gizinya adalah gizi kurang.

[R3]: Jika berat badan adalah ringan dan tinggi badan adalah tinggi maka status gizinya adalah gizi buruk.

[R4]: Jika berat badan adalah normal dan tinggi badan adalah rendah maka status gizinya adalah gizi lebih.

[R5]: Jika berat badan adalah normal dan tinggi badan adalah normal maka status gizinya adalah gizi baik.

[R6]: Jika berat badan adalah normal dan tinggi badan adalah tinggi maka status gizinya adalah gizi kurang.

[R7]: Jika berat badan adalah berat dan tinggi badan adalah rendah maka status gizinya adalah gizi lebih.

[R8]: Jika berat badan adalah berat dan tinggi badan adalah normal maka status gizinya adalah gizi lebih.

[R9]: Jika berat badan adalah berat dan tinggi badan adalah tinggi maka status gizinya adalah gizi baik.

3. Komposisi Aturan

Pada metode Mamdani, komposisi antar fungsi implikasi menggunakan fungsi MAX yaitu dengan cara mengambil nilai maksimum dari output aturan kemudian menggabungkan daerah fuzzy dari masing – masing aturan dengan operator OR.

μsf[x]= max (μkf 1 [x],μkf 2 [x],μkf 3 [x],μkf 4 [x],μkf 5 [x],μkf 6 [x]) Keterangan:

μ

sf[x] : nilai keanggotaan solusi fuzzy sampai aturan ke-i;

μ

kfi[x] : nilai keanggotaan konsekuen fuzzy setiap aturan ke-i,


(52)

4. Defuzzifikasi

Input dari proses defuzzifikasi adalah suatu himpunan fuzzy yang diperoleh dari komposisi aturan fuzzy, sedangkan output yang dihasilkan merupakan suatu bilangan tegas pada domain himpunan fuzzy tersebut. Sehingga jika diberikan suatu himpunan fuzzy dalam range tertentu, maka harus dapat diambil suatu nilai crisp tertentu sebagai output. Defuzzyfikasi yang digunakan dalam menentukan nilai gizi adalah dengan metode centroid. Pada metode ini, solusi crisp diperoleh dengan cara mengambil titik pusat (Z0) daerah fuzzy. Secara umum dirumuskan:

untuk domain kontinyu, dengan Z0 adalah nilai hasil defuzzyfikasi dan μ(Z)

derajat keanggotaan titik tersebut, sedangkan Z adalah nilai domain ke-i.

3.4 Pemodelan

Pemodelan dalam sistem pakar ini menggunakan Data Flow Diagram atau yang sering disebut DFD yang digunakan untuk menggambarkan aliran informasi dan proses data yang bergerak dari pemasukan data hingga keluaran. DFD memudahkan pemakai yang kurang menguasai bidang komputer untuk mengerti sistem yang akan dikerjakan atau dikembangkan.

3.4.1 Diagram Konteks / DFD Level 0

Diagram konteks atau biasa disebut DFD Level 0 adalah diagram yang terdiri dari suatu proses yang menggambarkan ruang lingkup sistem secara keseluruhan. (Ladjamudin, 2005). Berikut diagram konteks untuk pasien pada aplikasi ini.

USER P0 USER

Sistem Pakar

dt_user

dt_hasil diagnosis

dt_lapor

dt_admin

Gambar 3.5 Diagram Konteks / DFD Level 0


(53)

Pada DFD Level 0 ini, user memberikan input kepada sistem pakar berupa gejala-gejala paru yang dialaminya. Kemudian setelah mendapat update basis pengetahuan, sebuah sistem pakar dapat menghasilkan diagnosa yang membantu user untuk mengetahui informasi mengenai penyakit apa yang sedang dialaminya dan cara penanganannya. Berikut tabel Diagram Konteks / DFD Level 0.

Tabel 3.4 Spesifikasi Diagram Konteks / DFD Level 0

Nama Input Ket. Proses Output

P0 Gejala Sistem pakar mendapat input berupa gejala yang kemudian menghasilkan sebuah diagnosa yang berupa informasi status gizi dan informasi BBI dan BMI.

Hasil Diagnosa

3.4.2 DFD Level 1

Diagram level 1 atau biasa disebut DFD Level 1 adalah diagram yang terdiri dari suatu proses yang menggambarkan ruang lingkup sistem secara lebih luas dan terperinci pengembangan dari DFD level 0. Berikut DFD level 1 pada aplikasi ini.


(1)

statusTinggi = New String(tinggi - 1) {} For i = 0 To xTinggi.Length - 1

If (ScoreTBTinggi <> 0) Then xTinggi(i) = ScoreTBTinggi statusTinggi(i) = "Tinggi" Continue For

End If

If (ScoreTBNormal <> 0) Then xTinggi(i) = ScoreTBNormal statusTinggi(i) = "Normal" Continue For

End If

If (ScoreTBRendah <> 0) Then xTinggi(i) = ScoreTBRendah statusTinggi(i) = "Rendah" Continue For

End If Next End Sub

Private Function AturanImplikasi(ByVal berat As String, ByVal tinggi As String) As String

Dim retValue As String = ""

If (berat = "Ringan" And tinggi = "Rendah") Then retValue = "Gizi Baik"

ElseIf (berat = "Ringan" And tinggi = "Normal") Then retValue = "Gizi Kurang"

ElseIf (berat = "Ringan" And tinggi = "Tinggi") Then retValue = "Gizi Buruk"

ElseIf (berat = "Normal" And tinggi = "Rendah") Then retValue = "Gizi Lebih"

ElseIf (berat = "Normal" And tinggi = "Normal") Then retValue = "Gizi Baik"

ElseIf (berat = "Normal" And tinggi = "Tinggi") Then retValue = "Gizi Kurang"

ElseIf (berat = "Berat" And tinggi = "Rendah") Then retValue = "Gizi Lebih"

ElseIf (berat = "Berat" And tinggi = "Normal") Then retValue = "Gizi Lebih"

ElseIf (berat = "Berat" And tinggi = "Tinggi") Then retValue = "Gizi Baik"

End If

Return retValue End Function

Private Sub Implikasi()

Dim retValue As Double = 0

predikat = New Double((xBerat.Length * xTinggi.Length) - 1) {} Rules = New String((xBerat.Length * xTinggi.Length) - 1) {} looping = Rules.Length

Dim idx = 0

For i = 0 To xBerat.Length - 1 For j = 0 To xTinggi.Length - 1

predikat(idx) = Math.Round(Math.Min(xBerat(i), xTinggi(j)), 2) Rules(idx) = AturanImplikasi(statusBerat(i), statusTinggi(j)) idx += 1

Next Next


(2)

End Sub

Private Sub KomposisiAturan(ByVal nilai As Double, ByVal aturan As String) If (aturan = "Gizi Buruk") Then

score = fuzzy.FuzzyGiziBuruk(nilai) If (score <= -3.5) Then

rentang1 = score rentang2 = -3.5 rentang3 = 0

ElseIf (score >= -3) Then rentang1 = -3

rentang2 = score rentang3 = 0 Else

rentang1 = -3.5 rentang2 = score rentang3 = -3 a = 3

End If

ElseIf (aturan = "Gizi Kurang") Then score = fuzzy.FuzzyGiziKurang(nilai) If (score <= -3) Then

rentang1 = score rentang2 = -3 rentang3 = 0

ElseIf (score >= -2.5) Then rentang1 = -2

rentang2 = score rentang3 = 0 Else

rentang1 = -3 rentang2 = score rentang3 = -2 a = 2

End If

ElseIf (aturan = "Gizi Baik") Then score = fuzzy.FuzzyGiziBaik(nilai) If (score <= -2) Then

rentang1 = score rentang2 = -2 rentang3 = 0

ElseIf (score >= 2) Then rentang1 = 2

rentang2 = score rentang3 = 0 Else

rentang1 = -2 rentang2 = score rentang3 = 2 a = 2

End If

ElseIf (aturan = "Gizi Lebih") Then score = fuzzy.FuzzyGiziLebih(nilai) If (score <= 2) Then

rentang1 = score rentang2 = 2 rentang3 = 0

ElseIf (score >= 3) Then rentang1 = 3

rentang2 = score rentang3 = 0


(3)

Else

rentang1 = 2 rentang2 = score rentang3 = 3 a = 3

End If End If End Sub

Private Function Defuzzifikasi(ByVal nilai As Double, ByVal aturan As String) As Double

Dim retValue As Double = 0 If rentang3 = 0 Then

retValue = hitungIntegral(rentang1, rentang2, nilai) Else

retValue = hitungIntegral(rentang1, rentang2, rentang3, nilai, a, aturan)

End If

Return retValue End Function

Private Function hitungIntegral(ByVal x As Double, ByVal y As Double, ByVal nilai As Double) As Double

Dim retValue As Double = 0 Dim hasil1, hasil2 As Double

hasil1 = (nilai * (x ^ 2) / 2) - (nilai * (y ^ 2) / 2) hasil2 = (nilai * x) - (nilai * y)

retValue = hasil1 / hasil2 Return Math.Round(retValue, 3) End Function

Private Function hitungIntegral(ByVal x As Double, ByVal y As Double, ByVal z As Double, ByVal nilai As Double, ByVal a As Double, ByVal aturan As String) As Double

Dim retValue As Double = 0

Dim hasil1, hasil2, hasil3, hasil4 As Double

hasil1 = (nilai * (x ^ 2) / 2) - (nilai * (y ^ 2) / 2) hasil2 = (nilai * x) - (nilai * y)

If (aturan = "Gizi Buruk" Or aturan = "Gizi Kurang") Then

hasil3 = (((y ^ 3) / 3) + ((a * (y ^ 2)) / 2)) - (((z ^ 3) / 3) + ((a * (z ^ 2)) / 2))

hasil4 = (((y ^ 2) / 2) + (a * y)) - (((z ^ 2) / 2) + (a * z)) Else

hasil3 = (((a * (y ^ 2)) / 2) - ((y ^ 3) / 3)) - (((a * (z ^ 2)) / 2) - ((z ^ 3) / 3))

hasil4 = ((a * y) - ((y ^ 2) / 2)) - ((a * z) - ((z ^ 2) / 2)) End If

retValue = (hasil1 + hasil3) / hasil2 + hasil4 Return Math.Round(retValue, 3)

End Function


(4)

System.EventArgs) Handles btnProses.Click Dim NilaiAturan As Double = 0 Dim statusGizi As String = "" X = 0

HimpunanFuzzy() Implikasi()

For i = 0 To looping - 1

KomposisiAturan(predikat(i), Rules(i)) X += Defuzzifikasi(predikat(i), Rules(i)) Next

statusGizi = fuzzy.cekGizi(X)

lblBBI.Text = ": " & Math.Round(hitungBBI(txtUmur.Text), 2) & " Kg" lblBMI.Text = ": " & Math.Round(hitungBMI(txtBerat.Text,

txtTinggi.Text), 2) & " Kg/m2"

lblNama.Text = ": " & txtNama.Text

lblBerat.Text = ": " & txtBerat.Text & " Kg" lblJenis.Text = ": " & cmbJenis.Text

lblTinggi.Text = ": " & txtTinggi.Text & " cm" lblUmur.Text = ": " & txtUmur.Text & " bulan" lblStatus.Text = ": " & statusGizi & " (" & X & ")" conn.Open()

Dim sqlString As String = "Insert into tbl_Nutrisi values(@Nama, @Umur, @Jenis, @Berat, @Tinggi, @Status, @BBI, @BMI)"

Dim cmd As MySqlCommand = New MySqlCommand(sqlString, conn) cmd.Parameters.AddWithValue("@Nama", txtNama.Text)

cmd.Parameters.AddWithValue("@Umur", txtUmur.Text) cmd.Parameters.AddWithValue("@Jenis", cmbJenis.Text) cmd.Parameters.AddWithValue("@Berat", txtBerat.Text) cmd.Parameters.AddWithValue("@Tinggi", txtTinggi.Text) cmd.Parameters.AddWithValue("@Status", statusGizi)

cmd.Parameters.AddWithValue("@BBI", lblBBI.Text.Substring(2, lblBBI.Text.Length - 3))

cmd.Parameters.AddWithValue("@BMI", lblBMI.Text.Substring(2, lblBMI.Text.Length - 5))

cmd.ExecuteNonQuery() conn.Close()

MessageBox.Show("Data berhasil di proses") End Sub

Private Function hitungBBI(ByVal umur As Integer) As Double Dim BBI As Double = 0

If umur <= 12 Then BBI = (umur / 2) + 4 Else

BBI = ((umur / 12) * 2) + 8 End If

Return BBI End Function

Private Function hitungBMI(ByVal berat As Double, ByVal tinggi As Double) As Double

Dim BMI As Double = 0 tinggi /= 100

BMI = berat / (tinggi * tinggi) Return BMI


(5)

Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click

NutritionControl_Load(Nothing, Nothing) End Sub

Private Sub txtUmur_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtUmur.Validating

Try

If (Integer.Parse(txtUmur.Text) > 60) Then

MessageBox.Show("Umur hanya dibawah 5 Tahun (60 Bulan)") e.Cancel = True

End If

Catch ex As Exception

MessageBox.Show("Umur Invalid") e.Cancel = True

End Try End Sub

Private Sub txtBerat_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtBerat.Validating

Try

If (Integer.Parse(txtBerat.Text) > 25) Then

MessageBox.Show("Berat Badan hanya dibawah 25 Kg") e.Cancel = True

End If

Catch ex As Exception

MessageBox.Show("Berat Badan Invalid") e.Cancel = True

End Try End Sub

Private Sub txtTinggi_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtTinggi.Validating

Try

If (Integer.Parse(txtTinggi.Text) > 130) Then

MessageBox.Show("Tinggi Badan hanya dibawah 130 cm") e.Cancel = True

End If

Catch ex As Exception

MessageBox.Show("Tinggi Badan Invalid") e.Cancel = True

End Try End Sub End Class


(6)

SettingControl.vb

Imports MySql.Data.MySqlClient Public Class SettingControl

Dim conn As MySqlConnection = New

MySqlConnection(My.MySettings.Default.ConnStr) Private Function Login() As Boolean

Dim ret As Boolean = False conn.Open()

Dim sqlString As String = "SELECT * FROM tbl_User WHERE Username = @Username AND Password = @Password"

Dim cmd As MySqlCommand = New MySqlCommand(sqlString, conn) cmd.Parameters.AddWithValue("@Username", txtUsername.Text) cmd.Parameters.AddWithValue("@Password", txtPassword.Text) Dim dr As MySqlDataReader = cmd.ExecuteReader()

If (dr IsNot Nothing) Then If (dr.Read) Then

If (dr.HasRows) Then ret = True End If

End If dr.Close() dr = Nothing End If

conn.Close() Return ret End Function

Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click

If (Login()) Then

txtPassword.Text = "" txtUsername.Text = "" Dim frm1 As New FormAdmin frm1.ShowDialog()

Else

MessageBox.Show("Username atau Password salah", "Login gagal", MessageBoxButtons.OK, MessageBoxIcon.Error)

txtPassword.Text = "" txtPassword.Focus() End If

End Sub

Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click

txtPassword.Text = "" txtUsername.Text = "" txtUsername.Focus() End Sub

Private Sub txtPassword_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtPassword.KeyDown

If (e.KeyData = Keys.Enter) Then btnLogin_Click(Nothing, Nothing) End If

End Sub End Class