Indonesian Journal on Computer and Information Technology Vol 1 No 2 November 2016 PERBANDINGAN PENYELESAIAN KNAPSACK PROBLEM SECARA MATEMATIKA, KRITERIA GREEDY DAN ALGORITMAGREEDY Deddy Supriadi Manajemen Informatika, AMIK BSI Tasikmalaya deddy.dys@bsi.ac.id Abstract- Knapsack problem is a problem how to select object from many object sand how weight it will be saved in order to obtain anoptimal storage with consider which consists of n objects(1,2,3, ...) where each objecthas a weight(Wi) and profit(Pi). Further more capacity from storage (M) and probability from each object must be considered. In this paper discuss how to solving knapsack problem with three ways. They are mathematic, greedy criteria and greedy algorithm. They have different way to solve knapsack problem. After the comparison, more optimized and more easily is greedy criteria. But more difficult and the result are not optimal use mathematic. Greedy algorithm will be effective if it is non decreasing. This method is faster but we must understand before hand about greedy algorithm Keywords: greedy, knapsack, mathematic, profit, weight Abstrak - Masalah Knapsack merupakan suatu permasalahan bagaimana memilih objek dari sekian banyak dan berapa besar objek tersebut akan disimpan sehingga diperoleh suatu penyimpanan yang optimal dengan memperhatikan objek yang terdiri dari n objek (1,2,3,...) dimana setiap objek memiliki bobot (Wi) dan profit (Pi) dengan memperhatikan juga kapasitas dari media penyimpanan sebesar M dan nilai probabilitas dari setiap objek (Xi).Dalam jurnal ini membahas metode kajian mengenai dengan membandingkan tiga cara, yaitu dengan cara matematika, kriteria greedy, dan dengan algoritma greedy. Masing-masing cara ini memiliki perbedaan dalam penyelesaiannya. Setelah dilakukan perbandingan maka lebih optimal dan lebih mudah dikerjakan yaitu dengan cara kriteria greedy. Sedangkan yang lebih sulit dan hasilnya tidak optimal digunakan secara matematika. Untuk cara algoritma greedy akan efektif apabila disusun secara tidak naik (non descreasing). Cara ini memang lebih cepat akan tetapi kita harus memahami terlebih dahulu tentang algoritma greedy. Kata Kunci: greedy, knapsack, matematika, profit, bobot cara menyelesaikan permasalahan Knapsack ini I. PENDAHULUAN beberapa objek kita kadang merasa kesulitan apabila media penyimpanannya terbatas. Hal itu sangat menyulitkan karena kita harus mengatur agar objek-objek tersebut dapat kedalam media tersimpan terbatas.Kita harus penyimpanan yang mengatur objek mana saja yang dipilih yang akan disimpan dan seberapa besar objek tersebut disimpan sesuai dengan kapasitas media penyimpanan yang ada. Dalam penyimpanan yang maksimum dari pemilihan barang tanpa melebihi kapasitas daya tampung tersebut. Tidak media penyimpanan semua objek dapat ditampung di dalam karung. Karung tersebut hanya dapat menyimpan beberapa objek dengan total ukurannya (weight) lebih kecil atau sama dengan ukuran kapasitas karung. Setiap objek itupun tidak harus kita masukkan seluruhnya. Tetapi bisa juga sebagian saja. dikenal dengan Knapsack Problem. Knapsack dapat diartikan sebagai karung, kantung, atau buntilan. Karung digunakan untuk memuat Tujuan Knapsack problem untuk mendapatkan keuntungan Permasalahan tersebut sesuatu. Dalam menyelesaikan Knapsack Problem tersebut bisa menggunakan cara matematika, kriteria greedy, dan dengan algoritma cara Ketiga tersebut memiliki cara penyelesaian masing-masing dalam menyelesaikan knapsack problem. Dengan demikian kita greedy. 91
Indonesian Journal on Computer and Information Technology Vol 1 No 2 November 2016 bisa membandingkan 3 metode dalam menyelesaikan 1 kasus yaitu dengan cara penyelesaian knapsack problem secara matematika, kriteria greedy dan algoritma greedy dengan menggunakan sebuah kasus. Setelah ketiga cara tersebut dilakukan maka akan diperoleh hasil cara mana yang lebih baik dan cepat yang dapat digunakan untuk menyelesaikan knapsack problem. Sebagai masing bobotnya adalah w1, w2, ..., wn. Tentukan nilai bi sedemikian sehingga: M = b1w1 + b2w2 + ... + bnwn referensi pembahasan sebelumnya di bisa 2009/01/03/knapsack-problem-dengan- algoritma-dan-metode-greedy/. dilihat II. KAJIAN LITERATUR A. Knapsack Problem Menurut Komang (2010) Knapsack problem merupakan satudari persoalan klasik yang banyak ditemukan dalam literatur-literatur lama dan hingga kini permasalahan tersebut masih sering ditemukan dalam kehidupan sehari-hari. Contoh nyata dari Knapsack Problem ini jika ada seorang pedagang misalnya, barang kebutuhan rumah tangga yang berkeliling menggunakan gerobak. Tentu saja gerobaknya memiliki kapasitas tidak bisa maksimum, sehingga memasukkan barang dagangannya dengan seenak hatinya. Pedagang tersebut harus memilih barang- barang mana saja yang harus ia angkut, dengan pertimbangan berat dari barang yang dibawanya tidak melebihi kapasitas maksimum gerobak dan memaksimalkan profit dari barang-barang yang dibawa. salah ia semua Menurut Dian(2013) Knapsack adalah tas atau karung. Karung digunakan untuk memuat sesuatu. Dan tentunya tidak semua objek dapat ditampung di dalam karung tersebut. Karung tersebut hanya dapat menyimpan beberapa objek dengan total ukurannya (weight) lebih kecil atau sama dengan ukuran kapasitas karung. Ilustrasi permasalahan dapat dilihatpada gambar 1. terdapat sebuah tas berkapasitas 15 kg. Dan terdapat 5 barang dengan berat dan keuntungannya masing - masing. Yang menjadi persoalan adalah barang mana saja yang harus dimasukan ke dalam tas. Knapsack Problem secara matematis Pada gambar 1 terlihat Gambar 1. Ilustrasi Permasalahan Knapsack Problem Sumber: Dian (2013:186) yang dalam hal ini, bi bernilai 0 atau 1. Jika bi = 1, berarti objek i dimasukkan ke dalam knapsack, sebaliknya jika bi = 0, objek i tidak dimasukkan. Berhubung nilai bi 0 dan 1 maka masalah ini sering juga disebut sebagai Knapsack 0/1. Dalam teori algoritma, persoalan knapsack termasuk ke dalam kelompok NP-complete. Persoalan yang termasuk NPcomplete tidak dapat dipecahkan dalam orde waktu polinomial B. Secara Matematika ini, harus memperhatikan nilai probabilitas dari setiap barang, karena nilai inilah sebagai penentunya dengan memperhatikan nilai probabilitas (Xi) yaitu 0≤Xi≤1.Nilai Xi bisa sangat beragam, dari 0, 0.1, 0.01, 0.001, ... , 1. Pada cara kita (2001) dalam beberapa literatur, istilah lain dari fungsi tujuan dapat disebut sebagai fungsi fungsi objektif yaitu utama atau fungsi penyelesaian dengan mendapatkan permasalahan solusi yang optimal. Solusi Menurut Yulikuspartono juga yang menjadi dimaksud= menemukan nilai/profit yang maks. untuk jumlah obyek yang dimuat dalam ransel sehingga sesuai kapasitas. n Fungsi TujuanMaksimum : Σ Pi Xi I=1 dapat ditulis sebagai berikut: Diberikan bobot knapsack adalah M. Diketahui n buah objek yang masing- Fungsi pembatas= fungsi subyektif = untuk memberikan batas maksimal dari setiap fungsi yang bertujuan 92
Indonesian Journal on Computer and Information Technology Vol 1 No 2 November 2016 obyek untuk dapat dimuat dalam ransel sehingga kapasitasnya tidak melebihi dari jumlah maksimal daya tampung ransel. n Fungsi Pembatas : Σ Wi Xi ≤M i=1 dimana : 0 ≤ Xi ≤ 1; Pi >0;Wi>0 Dengan cara ini sulit untuk menentukan yang paling optimal sebab kita harus mencari nilai probabilitas yang tersebar antara 0 dan 1, 0 ≤ Xi ≤ 1 untuk setiap objek. Pertama kali yang dilakukan adalah program mencari nilai profit per berat tiap - tiap unit (density) dari tiap- tiap objek. Kemudian objek-objek tersebut diurutkan berdasarkan density-nya. Kemudian baru diambil satu-persatu objek yang dapat ditampung oleh knapsack sampai knapsack penuh atau sudah tidak ada objek lagi yang bias dimasukkan. D. Algoritma Greedy C. Kriteria Greedy Menurut Dian dan Ade dalam paper Implementasi Algoritma Greedy untuk Knapsack "Menyelesaikan Masalah Problem" Pada penyelesaian Knapsack Problem dengan kriteria greedy terdapat 3 tahapan yang dapat digunakan yaitu : 1. Greedy by Weight Pada setiap langkah pilih objek yang mempunyai berat teringan. Mencoba memaksimumkan keuntungan dengan memasukkan sebanyak mungkin objek ke dalam knapsack. Pertama kali yang dilakukan adalah program mengurutkan secara menaik objek-objekberdasarkan weightnya. Kemudian baru diambil satu-persatu objek yang dapat ditampung oleh knapsack sampai knapsack penuh atau sudah tidak ada objek lagi yang bisa dimasukkan. (2013) Algoritma Greedy merupakan algoritma yang lazim untuk memecahkan persoalan optimasi meskipun hasilnya tidak selalu merupakan solusi yang optimum. Sesuai arti harfiah, Greedy berarti tamak. Prinsip utama dari algoritma ini adalah mengambil sebanyak mungkin apa yang dapat diperoleh sekarang. Untuk memecahkan persoalan kita dengan memerlukan sebagai berikut. 1. Himpunan Kandidat (C) Menurut Dian algoritma Greedy, elemen-elemen Himpunan pembentuk solusi. 2. Himpunan Solusi, (S) ini berisi elemen-elemen Himpunan ini berisi kandidat yang terpilih sebagai solusi persoalan. Dengan kata lain, himpunan solusi adalah dari himpunan himpunan kandidat. bagian 3. Fungsi Seleksi 2. Greedy by profit Pada setiap langkah, pilih objek yang mempunyai terbesar. memaksimumkan Mencoba keuntungan dengan memilih objek yang paling menguntungkan terlebih dahulu. Pertama kali yang dilakukan adalah program mengurutkan secara menurun objek-objek berdasarkan profitnya. Kemudian baru diambil satu-persatu objek yang dapat ditampung oleh knapsack sampai knapsack penuh atau sudah tidak ada objek lagi yang bisa dimasukkan. 3. Greedy By Density keuntungan Fungsi seleksi merupakan fungsi yang ada pada setiap langkah memilih kandidat yang paling memungkinkan guna mencapai solusi optimal. 4. Fungsi Kelayakan (Feasible) Fungsi kelayakan adalah fungsi yang memeriksa apakah suatu kandidat yang telah dipilih dapat memberikan solusi yang layak dan tidak melanggar batasan atau constraints yang ada. 5. Fungsi Objektif Fungsi objektif adalah fungsi yang memaksimumkan atau meminimumkan nilai solusi. Skema umum algoritma Greedy Pada setiap langkah knapsack di isi dengan objek yang mempunyai pi/wi terbesar, dimana p adalah keuntungan dan w adalah berat barang. Mencoba memaksimumkan keuntugan dengan yang mempunyai memilih density per unit berat terbesar. objek adalah sebagai berikut: 1. Inisialisasi S dengan kosong. 2. Pilih sebuah kandidat C dengan fungsi seleksi. 3. Kurangi C dengan kandidat yang sudah dipilih dari langkah (b) di atas. 4. Periksa apakah kandidat yang dipilih dengan bersama-sama tersebut 93
Indonesian Journal on Computer and Information Technology Vol 1 No 2 November 2016 himpunan solusi membentuk solusi yang (dengan layak atau fungsi kelayakan). feasible 5. Periksa apakah himpunan solusi sudah memberikan solusi yang lengkap serta optimal (dengan fungsi objektif). III. METODE PENELITIAN Penelitian ini dilakukan dengan dimana setiap barang memiliki profit sebesar masing-masing: Barang pertama : 27 : 26 Barang kedua Barang ketiga : 17 Sesuai dengan contoh kasus diatas maka Kemudian menentukan barang mana saja yang dapat disimpan ke dalam tempat penyimpanan sehingga diperoleh nilai profit yang maksimal. langkah-langkah sebagai berikut: 1. Menyelesaikan permasalahan knapsack dengan menggunakan cara dan kriteria matematika, algoritma dengan menggunakan suatu kasus. greedy greedy 2. Melakukan perbandingan dari ketiga cara yaitu secara matematika, kriteria greedy, algoritma greedy setelah menyelesaikan suatu kasus knapsack problem. Tabel 1. Keterangan Barang Barang ke- 1 2 3 Berat (W) Profit (P) 20 17 12 27 26 17 3. Menghasilkan cara mana yang lebih dalam baik menyelesaikan knapsack problem. digunakan yang IV. PEMBAHASAN Knapsack Problem merupakan masalah optimasi kombinatorial. Sebagai contoh dalam dunia nyata, permasalahan ini sering sekali digunakan Knapsack (jasa) bidang terutama pengangkutan (seperti pengangkutan peti kemas dalam sebuah kapal), pengisian barang di bagasi, pengisian barang di suatu perusahaan, pengoptimalisasi karyawan dalam suatu badan usaha. pada barang Terdapat beberapa algoritma yang menyelesaikan digunakan Pemilihan permasalahan algoritma dalam penyelesaian knapsack problem ini sangat penting. Penggunaan algoritma yang tepat akan membantu penyelesaikan kasus Knapsack dengan baik. Dalam paper ini dibahas tentang penyelesaian knapsack problem dengan cara matematika, kriteria greedy dan algoritma greedy. Ketiga cara tersebut diterapkan dalam sebuah contoh kasus. Contoh kasusnya adalah: untuk tersebut. A. Secara Matematika Dengan cara matematika ini nilai probabilitas harus diperhatikan. Sebagai penentunya dengan memperhatikan nilai probabilitas (Xi) yaitu 0≤Xi≤1. Nilai Xi bisa sangat beragam, dari 0, 0.1, 0.01, 0.001, ... , 1. Diketahui: n = 3, (1, 2, 3) kapasitas, M = 25 Untuk berat masing-masing barang: W1 : 20 W2 : 17 W3 : 12 Untuk Profit masing-masing barang: P1: 27 P2: 26 P3: 17 Nilai probabilitas 0 ≤ Xi ≤ 1 Solusi ke Nilai Probabilitas Fungsi Pembatas Fungsi Tujuan ∑ Wi.Xi ≤ M ∑ Pi.Xi (Maximum) (X1, X2, X3) (W1. X1) + (W2. X2) + (W3. X3) ≤ M (P1. X1) + (P2. X2) + (P3. X3) Untuk profit yang terbesar, nilai probabilitasnya diberi nilai 1 dan yang terkecil diberi nilai 0. Diketahui 3 barang yang akan disimpan yang memiliki pada kapasitas maksimal sebesar 25 Kg. Berat masing-masing barang adalah: Barang pertama :20 Kg :17 Kg Barang kedua : 12 Kg Barang ketiga suatu tempat P1 : 27 X1 : 1 karena nilainya terbesar P2 : 26 X2 : ? P3 : 17 X3 : 0 karena nilainya terkecil 3 ∑ = Wi. Xi ≤ M i=1 94
Indonesian Journal on Computer and Information Technology Vol 1 No 2 November 2016 = W1.X1 + W2.X2 + W3.X3 ≤ M (20.1) + (17X2) + (12.0) ≤ 25 20 + 17X2 ≤ 25 17X2 ≤ 25-20 17X2 ≤ 5 X2 ≤ 5 17 12X3 ≤ 25-17 12X3 ≤ 8 X3 ≤ 8 = 2 12 3 Jadi, nilai X3 nya adalah 2 3 Jadi, nilai X2 nya adalah 5 17 Untuk tahap ke-1 (X1, X2, X3) (W1. X1) + (W2. X2) + (W3. X3) ≤ M (P1. X1) + (P2. X2) + (P3. X3) (1, 5, 0) (20.1) + (17.5) + (12.0) ≤ 25 (27.1) + 17 17 (26.5) + (17.0) 17 (X1, X2, X3) (W1. X1) + (W2. X2) + (W3. X3) ≤ M (P1. X1) + (P2. X2) + (P3. X3) (0,1,2) (20.0) + (17.1)+(12.2) ≤ 25 (27.0) + 3 3 (26.1)+(17.2) 3 Kemudian nilai probabilitasnya diganti, Nilai X1 =1 Nilai X2 = 0 Nilai X3 = ? Kemudian seterusnya hitung kembali dengan nilai probabilitas yang dirubah. Dengan cara ini sulit untuk menentukan yang paling optimal sebab kita harus mencari nilai probabilitas yang tersebar antara 0 dan 1, 0 ≤ Xi ≤ 1 untuk setiap objek 3 ∑ = Wi. Xi ≤ M i=1 = W1.X1 + W2.X2 + W3.X3 ≤ M (20.1) + (17.0) + (12.X3) ≤ 25 Tabel 2. Hasil Perhitungan Secara Matematika Solu si ke (X1, X2, X3) ∑WiXi ∑PiXi 20 + 12X3 ≤ 25 12X3 ≤ 25-20 12X3 ≤ 5 X3 ≤ 5 12 Jadi, nilai X2 nya adalah 5 12 1 2 3 ... (1, 5 , 0) 17 (1, 0 , 5 ) 12 (0, 1, 2 ) 3 ... 25 25 25 ... 34,6 34,1 37,3 ... Untuk tahap ke-2 (X1, X2, X3) (W1. X1) + (W2. X2) + (W3. X3) ≤ M (P1. X1) + (P2. X2) + (P3. X3) (1,0,5) (20.1) + (17.0)+(12.5) ≤ 25 (27.1) + 12 12 (26.0)+(17.5) 12 Untuk tahap ke-3 nilai probabilitasnya menjadi: Nilai X1 =0 Nilai X2 = 1 Nilai X3 = ? Maka nilai profit terbesarnya adalah 37,3. Dengan demikian diperoleh pengaturan barang yang akan dimasukkan adalah: X1: 0 X2:1 X2: 2 3 Dengan artian bahwa: Barang kesatu dengan nilai 0 maka barang tersebut tidak usah dimasukkan. Barang kedua diambil 1 bagian yaitu 17Kg Barang ketiga dengan nilai 2 maka barang tersebut 3 3 ∑ = Wi. Xi ≤ M i=1 = W1.X1 + W2.X2 + W3.X3 ≤ M (20.0) + (17.1) + (12.X3) ≤ 25 17 + 12X3 ≤ 25 Diambil 2 bagian dengan artian: 2 X 12 = 8Kg 3 Jadi, total barang yang disimpan adalah sesuai dengan berat 0+17+8=25Kg maksimal tempat tersebut. 3 95
Indonesian Journal on Computer and Information Technology Vol 1 No 2 November 2016 B. Kriteria Greedy 12+ 17X2 ≤ 25 Berdasarkan cara kriteria greedy 17X2 ≤ 25-12 maka dilakukan dengan 3 tahap: 1. Greedy by Profit X2 ≤ 13 17 X2 ≤ 13 Dengan cara ini maka dicari terlebih dahulu Profit terbesar dari ketiga barang tersebut. P1 : 27 P2 : 26 P3 : 17 Dari ketiga barang tersebut maka barang yang profitnya terbesar adalah barang ke-1. Barang dengan profit terbesar diberi nilai 1 dan dengan profit terkecil diberi nilai 0 sesuai dengan fungsi pembatas. Sedangkan barang lainnya nilai probabilitasnya harus dihitung terlebih dahulu. Nilai probabilitasnya 0 ≤ xi ≤ 1 P1 : 27 X1 : 1 karena nilainya terbesar P2 : 26 X2 : ? P3 : 17 X3 : 0 karena nilainya terkecil Untuk nilai X2 harus dicari terlebih dahulu dengan rumus : 3 ∑ = Wi. Xi ≤ M i=1 = W1.X1 + W2.X2 + W3.X3≤ M (20.1) + (17X2) + (12.0) ≤ 25 20 + 17X2 ≤ 25 17X2 ≤ 25-20 17X2 ≤ 5 X2 ≤ 5 17 17 Jadi, nilai X2 nya adalah 13 17 3. Greedy by Density ini dicari nilai Greedy by density perbandingan yang terbesar antara Profit dengan berat. Untuk nilai perbandingan yang terbesar diberi nilai 1, untuk nilai yang terkecil diberi nilai 0. Nilai probabilitasnya 0 ≤ xi ≤ 1 P1 : 27 : 1,35 X1 : 0 Karena nilainya terkecil W1 20 P2 : 26 : 1,5 X2 :1 Karena nilainya terbesar W2 17 P3 : 17: 1,4 X3 : ? W3 12 Untuk nilai X2 harus dicari terlebih dahulu dengan rumus : 3 ∑ = Wi. Xi ≤ M i=1 = W1.X1 + W2.X2 + W3.X3 ≤ M (20.0) + (17.1) + (12.X3) ≤ 25 17 + 12X3 ≤ 25 12X3 ≤ 25-17 12X3 ≤ 8 X3≤ 8 = 2 12 3 Jadi, nilai X2 nya adalah 5 Jadi, nilai X3nya adalah 2 3 17 2. Greedy by Weight Untuk greedy by weight maka dicari berat yang paling minimal. Untuk nilai probabilitasnya maka apabila berat yang terkecil diberi nilai 1, yang berat terbesar maka diberi nilai 0. Nilai probabilitasnya 0 ≤ xi ≤ 1 W1 : 20 X1 : 0 karena beratnya terbesar W2 : 17 X2 : ? W3 : 12 X3 : 1 karena beratnya terkecil Untuk nilai X2 harus dicari terlebih dahulu dengan rumus : 3 ∑ = Wi. Xi ≤ M i=1 = W1.X1 + W2.X2 + W3.X3 ≤ M (20.0) + (17X2) + (12.1) ≤ 25 Berdasarkan dari greedy by profit, greedy by weight, greedy by density maka dihasilkan Tabel 3. Hasil Perhitungan Kriteria Greedy ke-1 Solusi ke- PiMax WiMin Pi Max Wi (X1,X2,X 3) (1, 5 , 0) 17 (0, 13 , 1) 17 (0,1,2) 3 ∑Wi.Xi ∑Pi. Xi 25 ? 25 ? 25 ? Untuk mencari nilai ∑Pi.Xi dari masing- masing solusi maka harus dimasukkan 96
Indonesian Journal on Computer and Information Technology Vol 1 No 2 November 2016 terlebih dahulu profitnya dan nilai probabilitasnya. Untuk Pi Max: ∑Pi.Xi = (P1.X1) + (P2.X2) + (P3.X3) = (27. 1) + (26. 5) + (17.0) 17 = 27 + 7,6 + 0 = 34,6 C. Algoritma Greedy Teknik ini akan efektif jika objek disusun secara tidak naik (non increasing) berdasarkan nilai Pi/Wi. Data yang diketahui: n = 3, (1, 2, 3) kapasitas tempat, M = 25 (W1, W2, W3) = (20, 17, 12) (P1, P2, P3) = (27, 26, 17) Nilai probabilitas 0 ≤ Xi ≤ 1 Untuk Wi Min ∑Pi.Xi = (P1.X1) + (P2.X2) + (P3.X3) = (27. 0) + (26.13) + (17.1) 17 = 0 + 19,8 + 17 = 36,8 Untuk Pi/Wi Max ∑Pi.Xi = (P1.X1) + (P2.X2) + (P3.X3) = (27. 0) + (26.1) + (17.2) 3 = 0 + 26 + 11,3 = 37,3 Maka hasil dari ketiga tahapan tersebut adalah: perbandingan profit dengan bobot P1 : 27 : 1,35 menjadi urutan ke 3 W1 20 P2 : 26 : 1,5 menjadi urutan ke 1 W2 17 P3 : 17 : 1,4 menjadi urutan ke 2 W3 12 Susun data sesuai kriteria (non increasing), sehingga menghasilka pola yang baru (P2, P3, P1) = (26, 17, 27) (W2, W3, W1) = (17, 12, 20) Tabel 4. Hasil Akhir Perhitungan Kriteria Greedy Masukkan nilai kriteria di atas ke dalam algoritma greedy Solusi ke- Pi Max Wi Min Pi Max Wi (X1,X2,X 3) (1, 5 , 0) 17 (0, 13 , 1) 17 (0,1, 2) 3 ∑Wi.Xi ∑Pi. Xi 25 34,6 25 36,8 25 37,3 Maka nilai profit terbesarnya adalah 37,3. Dengan demikian diperoleh pengaturan barang yang akan dimasukkan adalah: X1: 0 X2 : 1 X3: 2 3 Dengan artian bahwa: Barang kesatu dengan nilai 0 maka barang tersebut tidak usah dimasukkan. Barang kedua diambil 1 bagian yaitu 17Kg Barang ketiga dengan nilai 2/3 maka barang tersebut Diambil 2/3 bagian dengan artian: 2/3 X 12 = 8Kg Algoritma GREEDY KNAPSACK. PROCEDURE GREEDY KNAPSACK(W,x,n) float W[n], x[n], M, isi; Int i, n; x(1:1) 0;isi M ; FOR i 1 TO n { IF W[i] > M ; EXIT ENDIF x[i] 1 isi isi - W[i] } IF i ≤n ; x[i] isi / W[i] ENDIF END_GREEDY KNAPSACK Setelah itu masukkan data-data tersebut ke dalam algoritma diatas. x(1:n) 0 ; isi 25 untuk i = 1 W(1) > isi ? berat W1 adalah 17 17>25, kondisi salah karena 17 lebih kecil dari 25 Dengan demikian x(1) = 1 yang artinya barang tersebut dapat dimuat seluruhnya. Isi = 25 -17= 8 kapasitas tempat menjadi berkurang karena sudah diiisi barang pertama, sisaya menjadi 8Kg lagi. Jadi, total barang yang disimpan adalah 0+17+8=25Kg sesuai dengan berat maksimal tempat tersebut. Untuk i=2 W(2) > isi ? berat W2 adalah 12 97
Indonesian Journal on Computer and Information Technology Vol 1 No 2 November 2016 12>8, kondisi benar karena 12 lebih besar dari 8 Dengan demikian x(2) = 8 12 yang artinya barang tersebut dapat dimuat8/12 Bagian saja. 8 x 12kg(berat barang ke-2) = 8kg 12 Untuk i=3 Endif, berakhir karena kapasitas tempat sudah maximal yaitu 25 kg, dengan berat barang ke-1 = 17Kg dan berat barang ke-2 adalah 8Kg. Sedangkan profit nilai yang didapat adalah: ∑Pi.Xi = (P1.X1) + (P2.X2) + (P3.X3) = (26. 1) + (17. 8) + (27.0) 12 = 26 + 11,3 + 0 = 37,3 Maka profit nilai yang didapat adalah 37,3 D. Perbandingan cara matematika, kriteria greedy dan algoritma greedy yang contoh diberikan selesai dihitung dengan cara matematika, kriteria greedy, algoritma greedy maka diperoleh hasil akhir yang sama akan tetapi dengan cara pengerjaan cara memiliki yang berbeda. Tiap kelebihan dan kekurangan masing- masing. Setelah kasus Untuk cara yang pertama yaitu cara matematika, kita harus memperhatikan nilai probabilitas dari setiap barang, karena nilai inilah sebagai penentunya dengan memperhatikan nilai probabilitas (Xi) yaitu 0≤Xi≤1. Disini nilai Xi kisarannya sangat banyak bisa 0, 0.1, 0.01, 0.001,... 1. Dengan demikian cara matematika ini ini sulit untuk menentukan yang paling optimal sebab kita harus mencari nilai probabilitas yang tersebar antara 0 dan 1, 0 ≤ Xi ≤ 1 untuk setiap objek. Cara ini karena disarankan dianggap rumit dibanding kriteria greedy dan algoritma greedy. tidak digunakan, lebih sulit dan lebih Untuk cara yang kedua yaitu dengankriteria greedy.Dengan cara ini kita harus mencari terlebih dahulu greedy by profit berdasarkan profit yang paling besar, kemudian mencari greedy by weight yaitu berdasarkan berat yang paling kecil dan terakhir greedy by density yaitu perbandingan profit dengan berat ini yang nilainya paling besar. Cara dianggap lebih gampang dan lebih baik karena nilai yang dihasilkan lebih optimal, meskipun kita harus menyelesaikan beberapa tahapan terlebih dahulu. Untuk cara yang ketiga yaitu dengan algoritma greedy. Dengan cara ini sebenarnya untuk perhitungan lebih lebih cepat karena kita mudah dan mengaplikasikan langsung perhitungannya dengan algoritma yang ada. Namun kita harus tau algoritmanya terlebih dahulu, tidak semua orang paham dan bisa menterjemahkan algoritma tersebut. Selain itu kelemahannya dengan algoritma greedy adalah teknik ini akan efektif jika objek disusun secara tidak naik (non increasing) berdasarkan nilai Pi/Wi. V. KESIMPULAN yang telah dilakukan yaitu untuk menyelesaikan permasalahan knapsack, maka dapat disimpulkan Knapsack problem dapat diselesaikan dengan cara matematika, kriteria greedy dan algoritma greedy. Tiap teknik mempunyai cara penyelesaian masing-masing. matematika dianggap lebih rumit dan tidak cocok untuk digunakan. Cara kriteria greedy dianggap lebih mudah dan lebih optimal lain meskipun dibanding cara yang kekurangannya kita harus mengerjakan beberapa tahapan terlebih dahulu. Cara algoritma cepat penyelesaiannya namun kita harus tahu algoritma cara harus penterjemahan algoritma tersebut. Selain itu teknik ini akan efektif jika objek disusun increasing) secara berdasarkan nilai Pi/Wi. Berdasarkan perhitungan Cara lebih greedy dan paham tidak naik (non Sebagai saran penulis menyarankan untuk membuat perbandingan dengan penyelesaian dengan metode algoritma didapat sehingga genetika, penyelesaian yang paling optimal. akan DAFTAR PUSTAKA Dian dan Ade. 2013. Implementasi Algoritma untuk Menyelesaikan Masalah Knapsack Problem. Jurnal Ilmiah Saintikom. Jurusan Ilmu Komputer Universitas Sumatera Utara. Vol. 12, No. 3, September 2013. Greddy 98
Indonesian Journal on Computer and Information Technology Vol 1 No 2 November 2016 Komang. 2010. Implementasi Algoritma Genetika pada knapsack problem untuk optimasi pemilihan buah kemasan kotak. Seminar Nasional Aplikasi Teknologi Informasi 2010 (SNATI 2010). Yogyakarta, 19 Juni 2010. Knapsack problem dengan algoritma dan metode greedy by Hendry Prihandono .com/2009/01/03/knapsack- problem-dengan-algoritma-dan- metode-greedy/ diunduh (9 Oktober 2016) Yulikuspartono. 2001. Pengantar Logika dan Algoritma. Yogyakarta: Andi. 99