Knapsack Problem dengan BFS
Narasi Cerita
Pada tugas ini saya mencoba menyelesaikan kasus Knapsack Problem dengan menggunakan algoritma BFS (Breadth First Search). Kasus yang saya pilih adalah memilih barang-barang ke dalam sebuah tas dengan kapasitas maksimum 10 kg. Terdapat 5 barang yang tersedia, masing-masing memiliki berat dan nilai yang berbeda. Tujuannya adalah menentukan kombinasi barang yang memberikan nilai total paling besar, tanpa melebihi kapasitas tas.
Data barang yang digunakan adalah:
- Barang 1: (6 kg, nilai 30)
- Barang 2: (3 kg, nilai 14)
- Barang 3: (4 kg, nilai 16)
- Barang 4: (2 kg, nilai 9)
- Barang 5: (5 kg, nilai 20)
Saya memulai dari state awal, yaitu tas dalam keadaan kosong dengan berat 0 dan nilai 0. Kemudian dengan menggunakan algoritma BFS, setiap langkah saya menjelajahi kemungkinan “skip” atau “ambil” suatu barang. Karena BFS menelusuri semua kemungkinan secara menyeluruh, maka setiap kombinasi barang bisa dievaluasi hingga ditemukan yang paling optimal.
Dari hasil eksplorasi BFS melalui program Java, saya mendapatkan bahwa kombinasi terbaik adalah dengan mengambil Barang 1 (6 kg, nilai 30) dan Barang 3 (4 kg, nilai 16). Total beratnya tepat 10 kg dan total nilainya adalah 46, yang merupakan nilai terbesar dari semua kemungkinan kombinasi barang yang lain.
Dari percobaan ini saya belajar bahwa BFS sangat membantu dalam mencari solusi optimal karena algoritma ini menelusuri semua jalur kemungkinan tanpa ada yang terlewat. Awalnya saya menduga kombinasi terbaik adalah Barang 2, Barang 3, dan Barang 4 (nilai 39), tetapi setelah diuji dengan BFS ternyata masih ada kombinasi yang lebih optimal yaitu Barang 1 dan Barang 3 dengan nilai 46.
Kode Program Java
Knapsack Problem Menggunakan BFS
Pada tugas kali ini saya mencoba menyelesaikan Knapsack Problem dengan memakai algoritma BFS (Breadth First Search). Intinya, saya harus memilih barang-barang yang bisa dimasukkan ke dalam tas dengan kapasitas maksimal 10 kg, supaya nilai totalnya bisa sebesar mungkin.
Data barang yang saya pakai ada 5, masing-masing punya berat dan nilai berbeda, yaitu:
- Barang 1: 6 kg, nilai 30
- Barang 2: 3 kg, nilai 14
- Barang 3: 4 kg, nilai 16
- Barang 4: 2 kg, nilai 9
- Barang 5: 5 kg, nilai 20
Saya mulai dari kondisi awal yaitu tas kosong (berat 0, nilai 0). Dengan algoritma BFS, setiap langkah selalu ada dua kemungkinan: apakah barangnya di-skip atau barangnya diambil (kalau masih muat). Karena BFS ini telusurannya level by level, semua kombinasi barang bisa dicek satu per satu.
Hasil akhirnya cukup menarik, karena setelah semua kombinasi diuji, ternyata kombinasi terbaik adalah dengan mengambil Barang 1 dan Barang 3. Total beratnya pas 10 kg dan nilai totalnya 46. Jadi kombinasi ini lebih bagus dibandingkan pilihan lain yang sebelumnya saya kira optimal.
Dari tugas ini saya jadi paham kalau BFS bukan cuma dipakai di pencarian jalur, tapi juga bisa dipakai buat nyari solusi optimal di kasus kayak gini. Walaupun agak boros karena semua kemungkinan dicoba, tapi untuk jumlah barang yang sedikit masih oke dan pasti ketemu hasil maksimalnya.







.jpeg)





.jpeg)







.jpeg)








