SKRIPSI
HEDI HERMAWAN HARAHAP
111421069
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
HEDI HERMAWAN HARAHAP
111421069
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA BRANCH AND
BOUND PADA PENENTUAN MENU MAKANAN PENDERITA ASAM URAT
Kategori : SKRIPSI
Nama : HEDI HERMAWAN HARAHAP
Nomor Induk Mahasiswa : 111421069
Program Studi : EKSTENSI S1 ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA Diluluskan di
Medan, 11 Februari 2014 Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Dian Rachmawati, S.Si, M.Kom Dr. Poltak Sihombing, M.Kom NIP. 19830723 200912 2 004 NIP. 19620317 199103 1 001 Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 19620317 199103 1 001
PERNYATAAN
IMPLEMENTASI ALGORITMA BRANCH AND BOUND PADA PENENTUAN MENU MAKANAN PENDERITA ASAM URAT
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 11 Februari 2014
Hedi Hermawan Harahap 111421069
PENGHARGAAN
Alhamdulillah, puji dan syukur ke hadirat Allah SWT, yang hanya dengan rahmat dan izin-Nya penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada:
1. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer dan selaku Dosen Pembimbing I yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.
2. Ibu Dian Rachmawati, S.Si, M.Kom selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.
3. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini. 4. Bapak Handrizal, S.Si, M.Comp.Sc selaku Dosen Pembanding II yang telah
memberikan kritik dan saran dalam penyempurnaan skripsi ini.
5. Seluruh tenaga pengajar dan pegawai di Program Studi S1 Ilmu Komputer Fasilkom-TI USU.
6. Ayahanda Drs. Hamron Harahap, Ibunda Fadillah Hasibuan S.Pd serta kakanda Fadli Hardiansyah Harahap S.Kep, Ns yang selalu memberikan kasih sayang dan dukungannya kepada penulis.
7. Keluarga besar Ekstensi Ilmu Komputer, khususnya semua teman dan sahabat angkatan 2011 yang tidak dapat disebutkan satu persatu, terima kasih atas ide, saran, dan kerja samanya selama ini.
Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini. Akhirnya, semoga skripsi ini bermanfaat bagi pribadi, keluarga, masyarakat, organisasi dan negara.
Medan, Februari 2014 Penulis
ABSTRAK
Penyakit asam urat erat kaitannya dengan pola makan. Jika pola makan tidak dirubah, kadar asam urat dalam darah yang berlebihan akan menimbulkan penumpukan kristal asam urat. Apabila kristal terbentuk dalam cairan sendi, maka akan terjadi penyakit gout (asam urat). Kendala yang dialami oleh penderita asam urat dalam menentukan pola makan adalah ketidakmampuan dalam menentukan jumlah kalori yang dibutuhkannya dan pengetahuan yang kurang tentang pola makan sehat dan konsumsi gizi yang tepat pada penderita asam urat. Penentuan menu makanan dapat diselesaikan dengan menggunakan algoritma Branch and Bound dengan memperhatikan Tabel Angka Kecukupan Gizi dan Daftar Komposisi Bahan Makanan (DKBM). Proses optimasi dilakukan terhadap menu makanan pilihanuseryang telah dihitung jumlah karbohidrat, lemak, protein, dan kadar purin yang cocok sesuai dengan kalori perhari. Implementasi sistem menggunakan bahasa pemrograman PHP dan MySQL. Hasil penelitian adalah algoritma Branch and Bound telah berhasil diterapkan untuk mengoptimasi masalah sehingga mampu menghasilkan daftar makanan yang dapat dikonsumsi olehuser. Kata Kunci: Asam Urat,Branch and Bound, pola makan, kalori, optimasi.
THE IMPLEMENTATION OF ALGORITHMS BRANCH AND BOUND IN THE DETERMINATION OF CUISINES PATIENTS OF URIC ACID
ABSTRACT
Uric acid disease closely related to diet. If the diet is not changed, the levels of uric acid in the blood will cause excessive buildup of uric acid crystals. When the crystals form in joints of liquid, then there will be disease gout (uric acid). The constraints experienced by sufferers of gout in determining the pattern of eating is the inability to determine the number of calories that it needs and knowledge that is less about the pattern of healthy eating and proper nutrition consumption in people with gout. Determination of food menu can be solved using Branch and Bound algorithm with attention to the Tabel Angka Kecukupan Gizi and Daftar Komposisi Bahan Makanan (DKBM). The optimization process done to the food menu selection the user who has calculated the amount of carbohydrates, fats, proteins, and the levels of matching according to purin calories per day. System implementation using the programming language PHP and MySQL. Research results are Bound and Branch algorithms have been successfully applied to optimizing problems so it is able to generate a list of foods that can be consumed by the user.
DAFTAR ISI Hal. Persetujuan ii Pernyataan iii Penghargaan iv Abstrak v Abstract vi
Daftar Isi vii
Daftar Tabel ix Daftar Gambar x Daftar Lampiran xi Bab 1 Pendahuluan 1.1 Latar Belakang 1 1.2 Rumusan Masalah 2 1.3 Batasan Masalah 2 1.4 Tujuan Penelitian 3 1.5 Manfaat Penelitian 3 1.6 Metodologi Penelitian 3 1.7 Sistematika Penulisan 4
Bab 2 Landasan Teori
2.1 Algoritma 5
2.2 Algoritma Pencarian 6
2.3 Pohon 6
2.4 Pencarian Buta 7
2.4.1 AlgoritmaDepth First Search(DFS) 7
2.4.2 AlgoritmaBreadth-First Search(BFS) 9
2.4.3 AlgoritmaBest First Search 10
2.5 Algoritma Optimasi 11
2.5.1 AlgoritmaBranch and Bound 12
2.6 Knapsack Problem 13
2.6.1 Knapsackdengan AlgoritmaGreedy 14
2.6.2 Knapsackdengan AlgoritmaBranch and Bound 15
2.7 Asam Urat 17
2.7.1 Defenisi Asam Urat 17
2.7.2 Gejala Penyebab Asam Urat 18
2.7.3 Tahapan Asam Urat 19
2.7.4 Penggolongan Asam Urat 19
Bab 3 Analisis dan Perancangan Sistem 3.1 Analisis Sistem 21 3.1.1 Analisis Masalah 21 3.1.2 Analisis Kebutuhan 22 3.1.2.1 Kebutuhan Fungsional 22 3.1.2.2 Kebutuhan Nonfungsional 22
3.2 Perancangan AlgoritmaBranch and Bound 23
3.2.1 Pengkategorian Kalori Berdasarkan Umur 23 3.2.2 Penggolongan Asam Urat Berdasarkan Kadar Purin 24 3.2.3 Perhitungan Nilai Kalori Setiap Bahan Makanan 25 3.2.4 Proses Perhitungan AlgoritmaBranch And Bound 27
3.2.5 Pseudocode 30
3.3 FlowchartSistem Secara Umum 32
3.4 Data Flow Diagram(DFD) 33
3.4.1 Diagram Konteks 34
3.4.2 Data Flow DiagramLevel 1 35
3.4.3 Data Flow DiagramLevel 2 Proses 4 37
3.5 Kamus Data 38
3.6 Perancangan Antarmuka (Interface) 43
3.6.1 Daftar 43
3.6.2 Data Lengkap 43
3.6.3 Edit Data 44
3.6.4 Pemilihan Menu Makanan 45
3.6.5 Hasil Pemilihan 46
3.6.6 Daftar Menu Makanan 47
Bab 4 Implementasi Program
4.1 Spesifikasi Perangkat 48 4.1.1 Perangkat Keras 48 4.1.2 Perangkat Lunak 49 4.2 Penggunaan Program 49 4.2.1 Halaman Utama 49 4.2.1.1 Halaman Login 50 4.2.1.2 Halaman Daftar 51
4.2.1.3 Halaman Edit Data 52
4.2.2 Halaman Pemilihan Makanan 52
4.2.3 Halaman Administrator 53
4.3 Pengujian Sistem 53
Bab 5 Kesimpulan dan Saran
5.1 Kesimpulan 56
5.2 Saran 56
DAFTAR TABEL
Hal.
Tabel 2.1 Algoritmagreedypadaknapsack 15
Tabel 2.2 Contoh persoalanknapsack 15
Tabel 3.1 Kalori Berdasarkan Umur 24
Tabel 3.2 Keterangan Kalori, Protein dan pi/bi 28
Tabel 3.3 Kode Program Untuk Membuat Algoritma Branch and Bound 30
Tabel 3.4 Tabel Admin 38
Tabel 3.5 Tabel akg_men 39
Tabel 3.6 Tabel bb_temp 39
Tabel 3.7 Tabel dkbm 39
Tabel 3.8 Tabel jenisk 40
Tabel 3.9 Tabel modul 40
Tabel 3.10 Tabel pasien 41
Tabel 3.11 Tabel kelompok 41
Tabel 3.12 Tabel umur 41
Tabel 3.13 Tabel food_temp 42
Tabel 3.14 Tabel golongan 42
Tabel 3.15 Tabel kalori_temp 42
DAFTAR GAMBAR
Hal.
Gambar 2.1 Struktur Data dari Pohon 7
Gambar 2.2 Tahapan pembentukan pohon DFS 7
Gambar 2.3 Matriks bidak 8
Gambar 2.4 Pohon ruang status yang terbentuk pencarian DFS 8 Gambar 2.5 Persoalan menyusun mainan yang terdiri atas 3 buah blok 9 Gambar 2.6 Pohon ruang status yang dibentuk selama pencarian solusi
dengan metode BFS 10
Gambar 2.7 Langkah-langkah yang dilakukan oleh algoritma
Best First Search 11
Gambar 2.8 Ilustrasi permasalahanknapsackpada penyakit asam urat 14 Gambar 2.9 Pohon ruang status yang terbentuk penyelesaianknapsack 16
Gambar 3.1 Diagram Ishikawa Masalah Penelitian 21
Gambar 3.2 Pohon ruang status penyelesaianknapsack
dengan algoritmabranch and bound 29
Gambar 3.3 Flowchart Sistem Secara Umum 33
Gambar 3.4 Diagram Konteks 34
Gambar 3.5 DFD Level 1 35
Gambar 3.6 DFD Level 2 Proses 4 Branch and Bound 37
Gambar 3.7 Halaman Daftar 43
Gambar 3.8 Halaman Data Lengkap 44
Gambar 3.9 Halaman Edit Data 45
Gambar 3.10 Halaman Pemilihan Menu Makanan 46
Gambar 3.11 Halaman Hasil Pemilihan Menu Makanan 46
Gambar 3.12 Halaman Daftar Menu Makanan 47
Gambar 4.1 Halaman Utama 49
Gambar 4.2 Halaman Login 50
Gambar 4.3 Halaman Informasi Login Kembali 50
Gambar 4.4 Halaman Daftar 51
Gambar 4.5 Halaman Data User 51
Gambar 4.6 Halaman Edit Data 52
Gambar 4.7 Halaman Pemilihan Menu Makanan 52
Gambar 4.8 Halaman Data Makanan Administrator 53
Gambar 4.9 Halaman Daftar User Baru 53
Gambar 4.10 Halaman Profil User 54
Gambar 4.11 Halaman Halaman Pemilihan Menu Makanan 54
Gambar 4.12 Halaman Keterangan Makanan 55
DAFTAR LAMPIRAN
Hal.
A. ListingProgram A-1
B. Daftar Kandugan Bahan Makanan (DKBM) Tahun 2005 B-1 C. Tabel Angka Kecukupan Gizi 2004 bagi Orang Indonesia C-1 D. Daftar Makanan Yang Harus Dipantang Dan Diperbolehkan
Bagi Penderita Asam Urat D-1
E. Ukuran Rumah Tangga (URT) E-1
F. Curriculum Vitae F-1