Mohon tunggu...
Sayyidah Atiqah
Sayyidah Atiqah Mohon Tunggu... Mahasiswa - Mahasiswa

Mahasiswa Teknik Industri Pertanian IPB University

Selanjutnya

Tutup

Gadget

Penyelesaian Knapsack Problem dengan Dynamic Programming

30 Desember 2021   09:00 Diperbarui: 31 Desember 2021   14:44 6152
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.

Knapsack Problem

Secara bahasa, Knapsack problem berarti persoalan terkait ransel atau bisa diartikan lebih lanjut sebagai masalah pengepakan. Knapsack Problem meliputi berbagai masalah dalam pemilihan kombinasi barang (item) dari sekumpulan barang yang akan dimuat dalam suatu wadah dengan kapasitas tertentu. Setiap barang memiliki beban (weight) dan nilai/keuntungan (value/profit) masing-masing yang menjadi pertimbangan dalam proses pemilihan tersebut. Hasil yang diharapkan yaitu didapatnya kombinasi barang dengan keuntungan maksimum tanpa melebihi kapasitas wadah yang tersedia. Oleh karena itu, perlu adanya strategi dalam pemilihan barang agar didapatkan hasil yang optimal.

Terdapat dua jenis knapsack problem yaitu 0/1 Knapsack dan Integer Knapsack

  1. 0/1 Knapsack problem : jenis knapsack problem dimana hanya terdapat 1 buah dari setiap barang/item yang ada dan tidak bisa diambil fraksinya alias barang tetap utuh. Sehingga pilihannya hanya dua, yaitu dibawa (1) atau tidak dibawa (0).
  2. Integer Knapsack : jenis knapsack problem dimana setiap jenis barang yang akan dimasukkan bisa lebih dari 1 buah selama jumlah barangnya tersedia dan tidak melebihi kapasitas maksimum wadah.

Knapsack Problem menjadi suatu permasalahan yang sudah tak asing lagi baik dalam dunia industri atau bahkan kehidupan sehari-hari.  Misal dalam jasa pengiriman barang khususnya paket reguler. Keterbatasan jumlah kurir yang tidak sebanding dengan jumlah barang yang akan dikirim membuat pengiriman barang harus dilakukan secara berangsur-angsur sesuai nilai yang lebih besar. Hal ini membutuhkan cara terbaik agar sistem pengiriman paket lebih optimal. Contoh sederhana lainnya yaitu seorang penjual aksesoris anak-anak yang membawa barang jualannya dengan gerobak kecil. Tentu saja gerobak kecil tersebut memiliki batas kapasitas barang/ batas maksimum beban yang dibawa, sehingga penjual hanya bisa menaikkan beberapa dagangannya ke dalam gerobak. Penjual harus bisa memilih barang-barang apa saja yang akan ia bawa dengan pertimbangan beban dan keuntungan yang didapat dari tiap barang jualannya, sehingga profit yang akan ia dapat bisa maksimal.

Dynamic Programming

Salah satu algoritma yang dapat digunakan dalam penyelesaian knapsack problem adalah algoritma pemrograman dinamik (Dynamic Programming). Dynamic Programming merupakan metode pemecahan masalah menggunakan prinsip optimalitas dengan menguraikan solusi menjadi beberapa tahapan (stage) sedemikian sehingga solusinya dapat dipandang dari serangkaian keputusan yang saling berkaitan. Perbedaannya dengan pemrograman linear yaitu banyaknya cara atau langkah untuk mencapai suatu fungsi tujuan, dimana pemrograman linear hanya memiliki satu cara, sedangkan pemrograman dinamik memiliki beberapa cara dalam mencapai fungsi tujuan. Pemrograman dinamik tidak memiliki rumusan yang baku, karena tiap problem membutuhkan perumusan tertentu sesuai dengan situasi yang sifatnya individual. 

Penerapan Dynamic Programming pada Knapsack Problem

Berikut adalah contoh penyelesaian knapsack problem menggunakan dynamic programming :

Seorang penjual buku akan membawa buku dagangannya menggunakan sebuah tas dengan kapasitas beban maksimum 10 kg. Buku dagangan yang ia miliki ada 5 , yaitu buku A, B, C, D, dan E dengan berat dan keuntungan tiap item sebagai berikut

Tabel 1. Beban dan value dari buku A, B, C, D, dan E
Tabel 1. Beban dan value dari buku A, B, C, D, dan E

HALAMAN :
  1. 1
  2. 2
  3. 3
Mohon tunggu...

Lihat Konten Gadget Selengkapnya
Lihat Gadget Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun