PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI APLIKASI MASALAH 0/1 KNAPSACK MENGGUNAKAN ALGORITMA GREEDY Skripsi Diajukan untuk Menempuh Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika Oleh : Yohanes Tommy Gratsianto NIM : 065314035 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2013
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI APPLICATION 0/1 KNAPSACK PROBLEM USING GREEDY ALGORITHM Final Project Presented as Partial Fulfillment of the Requirements To Obtain Sarjana Komputer Informatics Engineering Study Program By : Yohanes Tommy Gratsianto 065314035 INFORMATICS ENGINEERING STUDY PROGRAM FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2013 ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI SKRIPSI APLIKASI MASALAH 0/1 KNAPSACK MENGGUNAKAN ALGORITMA GREEDY Oleh : Yohanes Tommy Gratsianto NIM : 065314035 Telah disetujui oleh : Dosen pembimbing Alb. Agung Hadhiatma, S.T., M.T. iii Tanggal :... Mei 2013
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI SKRIPSI APLIKASI MASALAH 0/1 KNAPSACK MENGGUNAKAN ALGORITMA GREEDY Dipersiapkan dan ditulis oleh Yohanes Tommy Gratsianto NIM : 065314035 Telah dipertahankan di depan Paniti Penguji Pada Tanggal : 6 Mei 2013 Dan dinyatakan memenuhi syarat Susunan Panitia Penguji : Nama Lengkap Ketua Tanda Tangan : Eko Hari Parmadi, S.Si., M.Kom.. Sekretaris : Drs. J. Eka Priyatma, M.Sc., Ph.D.. Anggota. : Alb. Agung Hadhiatma, S.T., M.T. Yogyakarta,... Mei 2013 Fakultas Sains dan Teknologi Universitas Sanata Dharma Dekan Paulina Heruningsih Prima Rosa, S.Si., M.Sc. iv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI HALAMAN PERSEMBAHAN Penulis mempersembahkan Tugas Akhir ini kepada : Yesus Kristus Atas segalanya yang telah kau berikan kepada kami. Bapak Aloysius Hendarto dan Ibu M.M. Sri Utami Terima kasih atas kasih sayang, cinta, pengorbanan, doa dan dukungannya selama ini. Christophorus Tommy Astanto Aku bangga punya kakak sepertimu. v
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI PERNYATAAN KEASLIAN KARYA Saya menyatakan bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah. Yogyakarta, 16 Mei 2013 Yohanes Tommy Gratsianto vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Yohanes Tommy Gratsianto NIM : 065314035 Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul : APLIKASI MASALAH 0/1 KNAPSACK MENGGUNAKAN ALGORITMA GREEDY Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelola dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberi royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis. Demikian pernyataan ini yang saya buat dengan sebenarnya. Dibuat diyogyakarta Pada tanggal :... Mei 2013 Yang menyatakan Yohanes Tommy Gratsianto vii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI ABSTRAK Masalah Knapsack adalah masalah di mana kita dihadapkan dengan persoalan optimasi pemilihan benda untuk dimasukkan ke dalam sebuah wadah yang memiliki keterbatasan ruang dan daya tampung tetapi benda yang akan dimasukkan ke dalam wadah tersebut haruslah tetap dalam keadaan utuh bukan merupakan fraksi dari benda tersebut. Masing-masing benda yang ada memiliki sebuah nilai berupa berat, volume, harga, atau nilai lainnya yang dapat dipakai sebagai penentu dalam proses pemilihannya. Sedangkan wadah memiliki sebuah nilai konstanta yang dimilikinya dan merupakan sebuah pembatas dalam proses pemilihan benda untuk dapat dimasukkan ke dalam wadah tersebut. Penelitian ini bertujuan untuk mengetahui apakah algoritma Greedy dapat menyelesaikan semua permasalahan Knapsack. Hasil pengujian program menunjukkan bahwa algoritma Greedy bisa menyelesaikan permasalahan Knapsack, tetapi tidak selalu menghasilkan solusi yang optimal. viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI ABSTACT Knapsack problems are problems in which we are faced with the selection of the optimization problem to put objects in a container that has limited space and capacity but objects to be inserted into the container must remain intact is not a fraction of these objects. Each object has a value that is in the form of weight, volume, prices, or other value that can be used as a determinant in the selection process. Meanwhile, the container has a value of its constants and is a barrier in the process of selecting objects to be inserted into the container. This study aims to determine whether the Greedy algorithm can solve all the problems Knapsack. Program testing results show that the Greedy algorithm can solve the problems Knapsack, but does not always produce an optimal solution. ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI KATA PENGANTAR Puji syukur saya panjatkan ke hadirat Tuhan Yang Maha Esa karena atas berkat dan rahmatnya sehingga penulis dapat menyelesaikan Skripsi ini. Skripsi ini disusun sebagai salah satu syarat untuk memperoleh gelar sarjana di program studi Teknik Informatika Universitas Sanata Dharma, Yogyakarta. Dalam penulisan Skripsi ini, penulis telah mendapatkan bantuan dari berbagai pihak. Untuk itu penulis dengan segala rendah hati ingin menyampaikan ucapan terimakasih kepada: 1. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc., selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma. 2. Ibu Ridowati Gunawan S.Kom., M.T., selaku Ketua Program Studi Teknik Informatika Univesitas Sanata Dharma. 3. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T., selaku Dosen Pembimbing Akademik Teknik Informatika angkatan 2006 kelas A. 4. Bapak Alb. Agung Hadhiatma, S.T., M.T., selaku Dosen Pembimbing Skripsi yang telah membimbing selama proses pembuatan Skripsi ini. 5. Seluruh Dosen Teknik Informatika Sanata Dharma yang telah membimbing penulis selama studi. 6. Seluruh Laboran dan karyawan Fakultas Sains dan Telnologi Universitas Sanata Dharma. 7. Anastasia Galih Sri Darmaningsih yang telah memberi semangat dan dukungan untuk menyelesaikan studi dan skripsi ini. x
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 8. Teman-teman Teknik Informatika Universitas Sanata Dharma angkatan 2006. Terimakasih atas kebersamaanya selama ini. 9. Teman-teman UKF Basketball Fakultas Sains dan Teknologi Universitas Sanata Dharma. Penulis menyadari bahwa dalam penulisan skripsi ini masih banyak kekurangan. Oleh karena itu kritik dan saran yang bersifat membangun akan sangat diharapkan dalam sempurnanya skripsi ini. Akhir kata, penulis berharap semoga penelitian dan tulisan ini dapat bermanfaat bagi pembaca. Yogyakarta, 16 Mei 2013 Penulis xi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR ISI HALAMAN JUDUL... i TITLE PAGE... ii HALAMAN PERSETUJUAN... iii HALAMAN PENGESAHAN... iv HALAMAN PERSEMBAHAN... v HALAMAN KEASLIAN KARYA... vi HALAMAN PUBLIKASI KARYA... vii ABSTRAK... viii ABSTACT... ix KATA PENGANTAR... x DAFTAR ISI... xii DAFTAR TABEL... xiv DAFTAR GAMBAR. xv BAB I. PENDAHULUAN 1.1 Latar Belakang... 1 1.2 Rumusan Masalah... 2 1.3 Batasan Masalah... 2 1.4 Tujuan 2 1.5 Metodologi 2 1.6 Sistematika Penulisan 4 BAB II. LANDASAN TEORI 2.1 Pengertian Permasalahan Knapsack... 5 2.2 Knapsack 0/1 (Integer Knapsack)... 5 2.3 Algoritma Greedy... 6 2.4 Bubble Sort (Exchange Sort)... 8 2.5 Bahasa Pemrograman JAVA... 9 BAB III. ANALISA DAN PERANCANGAN SISTEM 3.1 Analisa Sistem... 11 3.2 Kebutuhan Sistem... 11 3.3 Perancangan... 12 xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3.3.1 Perancangan Proses...12 3.4 Algoritma Program... 13 3.4.1 Algoritma Greedy By Profit... 14 3.4.2 Flowchart Algoritma Greedy By Profit. 14 3.4.3 Algoritma Greedy By Weight 15 3.4.4 Flowchart Algoritma Greedy By Weight.. 16 3.4.5 Algoritma Greedy By Density... 17 3.4.6 Flowchart Algoritma Greedy By Density.. 17 3.5 Perancangan Interface Program. 18 3.5.1 Form Menu Awal.. 19 3.5.2 Form Menu Utama. 19 3.5.3 Form Menu Informasi Program. 20 BAB IV. IMPLEMENTASI PROGRAM 4.1 Implementasi Program.. 21 4.1.1 Tampilan Menu Awal... 21 4.1.2 Tampilan Menu Informasi Program. 22 4.1.3 Tampilan Menu Utama. 23 4.1.4 Tampilan Menu Peringatan 24 BAB V. ANALISA DAN HASIL PENGUJIAN PROGRAM 5.1 Analisa Program. 26 5.2 Hasil Pengujian Program 26 BAB VI. KESIMPULAN DAN SARAN 6.1 Kesimpulan 31 6.2 Saran.. 31 DAFTAR PUSTAKA.. 32 LAMPIRAN 33 xiii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR TABEL Table 2.1 Contoh Solusi Menggunakan Algoritma Greedy 8 Tabel 2.2 Iterasi Pertama Bubble Sort 8 Tabel 2.3 Iterasi Lengkap Bubble Sort... 9 Tabel 5.1 Hasil Pengujian Pertama. 27 Tabel 5.2 Hasil Pengujian Kedua 28 Tabel 5.3 Hasil Pengujian Ketiga 29 Tabel 5.4 Hasil Pengujian Keempat... 30 xiv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR GAMBAR Gambar 1.1 Diagram Metode Waterfall. 3 Gambar 3.1 Diagram Konteks. 12 Gambar 3.2 Diagram Alur Data Level 1. 12 Gambar 3.3 Diagram Alur Data Level 2. 13 Gambar 3.4 Flowchart Algoritma Greedy By Profit... 15 Gambar 3.5 Flowchart Algoritma Greedy By Weight. 16 Gambar 3.6 Flowchart Algoritma Greedy By Density.... 18 Gambar 3.7 Form Menu Awal. 19 Gambar 3.8 Form Menu Utama... 19 Gambar 3.9 Form Menu Informasi Program... 20 Gambar 4.1 Tampilan NetBeans 5.5... 21 Gambar 4.2 Menu Awal Program... 22 Gambar 4.3 Menu Informasi Program. 23 Gambar 4.4 Menu Utama Program. 24 Gambar 4.5 Menu Peringatan. 25 xv