PENDEKATAN ALGORITMA PEMROGRAMAN DINAMIK DALAM MENYELESAIKAN PERSOALAN KNAPSACK 0/1 SKRIPSI SRI RAHAYU 060823001 PROGRAM STUDI SARJANA MATEMATIKA DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2010
PENDEKATAN ALGORITMA PEMROGRAMAN DINAMIK DALAM MENYELESAIKAN PERSOALAN KNAPSACK 0/1 SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains SRI RAHAYU 060823001 PROGRAM STUDI SARJANA MATEMATIKA DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2010
PERSETUJUAN Judul : PENDEKATAN ALGORITMA PEMROGRAMAN DINAMIK DALAM MENYELESAIKAN PERSOALAN KNAPSACK 0/1 Kategori : SKRIPSI Nama : SRI RAHAYU Nomor Induk Mahasiswa : 060823001 Program Studi : SARJANA (S1) MATEMATIKA Departemen Fakultas : MATEMATIKA : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (MIPA) UNIVERSITAS SUMATERA UTARA Komisi Pembimbing : Diluluskan di Medan, Juli 2010 Pembimbing 2 Pembimbing 1 Drs. Marwan Harahap, M.Eng Drs. Bambang Irawan, M.Sc NIP. 19461225 197403 1 001,- NIP. 19470421 197603 1 001,- Diketahui / Disetujui Oleh: Departemen Matematika FMIPA USU Ketua, Dr. Saib Suwilo, M.Sc NIP.19640109 198803 1 004,-
PERNYATAAN PENDEKATAN ALGORITMA PEMROGRAMAN DINAMIK DALAM MENYELESAIKAN PERSOALAN KNAPSACK 0/1 SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya. Medan, Juli 2010 SRI RAHAYU 060823001
PENGHARGAAN Puji dan syukur penulis panjatkan kepada Allah SWT, dengan limpahan dan karunia-nya kertas kajian ini berhasil diselesaikan dalam waktu yang telah ditetapkan. Ucapan terima kasih penulis sampaikan kepada Drs. Bambang Irawan, M.Sc dan Drs. Marwan Harahap, M.Eng selaku pembimbing pada penyelesaian skripsi ini yang telah memberikan panduan dan penuh kepercayaan kepada penulis untuk menyempurnakan kajian ini. Panduan ringkas, padat dan professional telah diberikan kepada penulis agar dapat menyelesaikan tugas ini. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Departemen Matematika FMIPA USU Dr. Saib Suwilo, M.Sc dan Drs. Henry Rani Sitepu, M.Si, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam, semua dosen pada Departemen Matematika FMIPA USU, pegawai di FMIPA USU, dan rekan-rekan kuliah. Akhirnya, tidak terlupakan kepada kedua orang tua dan semua ahli keluarga dan rekan terdekat penulis selama ini yang telah memberikan bantuan dan dorongan yang diperlukan. Semoga Allah SWT memberikan balasan yang layak.
ABSTRAK Pemrograman Dinamik adalah metode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah atau tahapan sedemikian hingga solusi dari persoalan dapat dipandang dari serangkaian keputusan yang saling berkaitan. Dalam tulisan ini membahas tentang penggunaan algoritma Pemrograman Dinamik untuk mencari solusi optimal pada Masalah Knapsack 0/1. Masalah Knapsack 0/1 dapat didefinisikan dalam menentukan lintasan terpendek dari titik sumber ke tujuan yang memenuhi kendala biaya dan waktu pada suatu graph. Lintasan yang terpilih bernilai 1 dan yang tidak terpilih bernilai 0 kemudian diimplementasikan kedalam suatu program dengan menggunakan Visual Basic 6.0.
ABSTRACT Dynamic Programming is a method of solving problems by way of describing a solution to a set of steps or stages such that the solution of the problem can be viewed from a series of interrelated decisions. In this paper discusses the use of Dynamic Programming algorithm to find optimal solutions to the Knapsack Problem 0 / 1. Knapsack Problems 0 / 1 is defined to determine the shortest path from point source to the destination that meets the cost and time constraints on a graph. Chosen path is value 1 and not selected path is 0 then implemented into a program with using Visual Basic 6.0.
DAFTAR ISI Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar ii iii iv v vi vii viii ix Bab 1 Pendahuluan 1 1.1 Latar Belakang 1 1.2 Perumusan Masalah 4 1.3 Batasan Masalah 4 1.4 Tinjauan Pustaka 4 1.5 Tujuan Penelitian 6 1.6 Kontribusi Penelitian 6 1.7 Metode Penelitian 7 Bab 2 Landasan Teori 8 2.1 Konsep Dasar Graph 8 2.2 Graph Berlabel 11 2.3 Lintasan Minimum 14 2.4 Lintasan Terpendek 15 2.5 Pemrograman Linier (Linear Programming) 16 2.6 Pemrograman Bilangan Bulat (Integer Programming) 17 2.7 Knapsack 19 2.8 Pemrograman Dinamik (Dynamic Programming) 21 2.8.1 Konsep Dasar Dalam Pemrograman Dinamik 21 2.8.2 Analisa Algoritma Pemrograman Dinamik 25 2.8.3 Dua Pendekatan Algoritma Pemrograman Dinamik 26 2.8.4 Algoritma Pemrograman Dinamik 26 2.9 Visual Basic 6.0 27 Bab 3 Pembahasan 29 3.1 Lintasan Terpendek 29 3.2 Analisis Knapsack 29 3.3 Analisis Pemrograman Dinamik 36 3.4 Flowchart Pemrograman Dinamik 43 3.5 Rancangan Antar Muka Program 44
Bab 4 Kesimpulan dan Saran 47 4.1 Kesimpulan 47 4.2 Saran 48 Daftar Pustaka Lampiran
DAFTAR TABEL Halaman Tabel 2.1 Biaya Pemasangan Jaringan Listrik 12 Tabel 3.1 Enumerasi Lengkap 34 Tabel 3.2 Penentuan Nilai Minimum untuk Tahap-1 pada x 1 40 Tabel 3.3 Penentuan Nilai Minimum untuk Tahap-2 pada x 2 40 Tabel 3.4 Penentuan Nilai Minimum untuk Tahap-2 pada x 3 41 Tabel 3.5 Penentuan Nilai Minimum untuk Tahap-2 pada x 4 41
DAFTAR GAMBAR Halaman Gambar 2.1. Graph 5 titik dan 6 sisi 9 Gambar 2.2. Graph dengan 6 titik dan 10 sisi 9 Gambar 2.3. Digraph G 11 Gambar 3.4. Graph Berlabel Jaringan Listrik 8 Kota 13 Gambar 2.5. Lintasan Terpendek / Shortest Path (garis tebal) 15 Gambar 2.6. Tahapan fungsi transisi 22 Gambar 2.7. Tahapan baku 23 Gambar 2.8. Return dan Transition Function 24 Gambar 3.1. Representasi graph dalam penyaluran air bersih 31 Gambar 3.2. Lintasan Terpendek dengan nilai biaya dan waktu 38 Gambar 3.3 Lintasan Terpendek dengan Nilai Biaya dan Waktu 39 Gambar.3.4 Ilustrasi Lintasan Pencarian Lintasan Terpendek 42 Gambar 3.5. Flowchart Algoritma Dynamic Programming 43 Gambar 3.6. Form Menu Utama 44 Gambar 3.7. Form Entri Data Graph 45 Gambar 3.8. Form Hasil dari Hitung Cari Lintasan Terpendek 45 Gambar 3.9. Form Hasil Graph Lintasan Terpendek 46