Makalah Analisis Algoritma Knapsack Indonesia

Gratis

3
13
13
9 months ago
Preview
Full text

BAB I PENDAHULUAN

  1.1 LATAR BELAKANG

  Dari berbagai masalah yang sering muncul dalam kehidupan kita, optimasi selalu menarik untuk diperbincangkan. Dalam pemrograman, optimasi pun memiliki tempatnya tersendiri. Baik itu menjadi masalah yang harus dipecahkan, maupun keharusan dalam membuat program yang optimal. Permasalahan Knapsack adalah suatu permasalahan dalam menentukan pemilihan objek yang masing-masing mempunyai bobot atau berat (weight) untuk dimuat dalam sebuah media penyimpanan tanpa memenuhi kapasitas media penyimpanan tersebut sehingga di peroleh hasil yang optimal dan keuntungan maksimum (profit).

  Dalam makalah ini akan dibahas persoalan 0-1 Knapsack yang mempunyai ciri setiap barang tersedia satu unit, akibatnya barang harus diambil atau tidak sama sekali. Persoalan 0-1 Knapsack dapat diselesaikan menggunakan beberapa Algoritma, dalam makalah ini akan digunakan Algoritma Brute Force dengan menggunakan Bahasa Pemrograman C#.

  1.2 PERUMUSAN MASALAH

  Berdasarkan latar belakang masalah, maka yang menjadi permasalahan adalah bagaimana mengaplikasikan Algoritma Brute Force untuk mengatasi masalah 0-1 Knapsack. Permasalahan 0-1 Knapsack adalah permasalahan optimasi kombinatorial, ilustrasinya adalah : “diberikan sekumpulan barang untuk dimasukkan dalam sebuah wadah sehingga total beratnya kurang dari atau sama dengan berat yang telah ditentukan, dan total nilainya harus sebesar mungkin.”

  1.3 BATASAN MASALAH

  Adapun batasan masalah dalam penulisan makalah ini adalah sebagai berikut:

  1. Hanya membahas Knapsack 0-1 atau Integer Knapsack 2. Membahas masalah 0-1 Knapsack dengan Algoritma Brute Force.

  3.

  1.4 TUJUAN

  Adapun tujuan dari makalah 0-1 Knapsack ini adalah:

  1. Menyelesaikan tugas akhir mata kuliah Analisis Algoritma

  2. Mempelajari Knapsack Algoritma

  3. Bagaimana menyelesaikan atau memecahkan Knapsack Problem dengan menggunakan Algoritma Brute Force agar memperoleh solusi yang optimal dengan menggunakan Bahasa Pemrograman C#.

  1.5 MANFAAT

BAB II LANDASAN TEORI

2.1 BAHASA PEMROGRAMAN C#

  C# (See-Sharp) adalah bahasa pemrograman baru yang diciptakan Microsoft yang digunakan oleh banyak developer .NET untuk mengembangkan applikas dengan platform .NET

  Berikut beberapa kelebihan C#

  a. Sederhana (Simple) C# bersifat sederhana, karena bahasa ini didasarkan kepada bahasa C dan C++. Dalam C#, beberapa aspek seperti statements, expression, operators, dan beberapa fungsi diadopsi langsung dari C dan C++ namun dengan berbagai perbaikan yang membuat bahasanya menjadi lebih sederhana.

b. Object Oriented Language

  C# memenuhi syarat-syarat sebagai sebuah bahasa pemrograman yang bersifat Object Oriented, yaitu encapsulation, inheritance dan polymorphism.

  c. Powerfull dan Fleksibel C# bisa digunakan untuk membuat berbagai macam aplikasi, seperti aplikasi pengolah kata, grafik, spreadsheets, atau bahkan membuat kompiler untuk sebuah bahasa permrograman. d. Efisien C# tidak memiliki terlalu banyak keyword, sehingga dapat mengurangi kerumitan.

  e. Modular Kode C# ditulis dengan pembagian masing Class-Class (classes) yang terdiri dari beberapa routines yang disebut sebagai member methods. Class-Class dan metode-metode ini dapat digunakan kembali oleh program atau aplikasi lain. Hanya dengan memberikan informasi yang dibutuhkan oleh Class dan metode yang dimaksud, maka kita akan dapat membuat suata kode yang dapat digunakan oleh satu atau beberapa aplikasi dan program (reusable code).

2.2. PENGERTIAN KNAPSACK

  Knapsack merupakan salah satu masalah yang sering muncul dalam kasus optimasi dan kombinatorial yang banyak ditemukan pada literatur- literatur lama dan hingga kini permasalahan ini masih banyak ditemukan dalam kehidupan sehari-hari. Dalam dunia nyata permasalahan Knapsack ini sering sekali digunakan terutama pada bidang (jasa) pengangkutan barang (seperti pengangkutan peti kemas dalam sebuah kapal). Dalam usaha tersebut, diinginkan suatu keuntungan yang maksimal untuk mengangkut barang yang ada dengan tidak melebihi batas kapasitas yang ada. Berdasarkan persoalan tersebut, diharapkan ada suatu solusi yang secara otomatis dalam mengatasi persoalan itu. Problem Knapsack adalah permasalahan optimasi kombinatorial, dimana kita harus mencari solusi terbaik dari banyak kemungkinan yang dihasilkan.

  Macam-macam knapsack

   Integer Knapsack Integer Knapsack. Dalam persoalan ini, kita diberikan n buah objek yang masing-masing memiliki nilai bobot dan keuntungan. Kita diminta untuk memilih objek-objek yang akan dimasukkan ke dalam Knapsack (karung) yang memiliki bobot maksimum W sehingga didapat keuntungan yang maksimum. Persoalan ini disebut Integer Knapsack karena tiap objek hanya memiliki dua status yaitu terpilih atau tidak.

  Permasalahan tersebut dapat dinyatakan dalam bentuk formal sebagai berikut : Diberikan n buah objek dengan bobot masing-masing w1, w2, ..., wn dan keuntungan p1, p2, ..., pn. Lalu terdapat sebuah knapsack dengan bobot maksimum K. Solusi dari persoalan diatas dinyatakan dalam vektor n-tupel: X = {x1, x2, ..., xn} dimana xi bernilai 1 jika objek ke-i dipilh dan bernilai 0 jika objek ke-i tidak dipilih. Misalnya X = {1, 0, 0} merupakan solusi dimana objek yang dipilih ialah objek ke-1, sedangkan objek ke-2 dan ke-3 tidak dipilih.

  Solusi dihasilkan dengan batasan  Fractional Knapsack Barang boleh dibawa sebagian saja (unit dalam pecahan). Versi problem ini menjadi masuk akal apabila barang yang tersedia dapat dibagi-bagi misalnya gula, tepung, dan sebagainya.

   Bounded Knapsack problem Setiap barang tersedia sebanyak N unit (jumlahnya terbatas).  Unbounded Knapsack problem Setiap barang tersedia lebih dari 1 unit, jumlahnyatidak terbatas.

2.3. ALGORITMA BRUTE FORCE

  Brute Force adalah sebuah pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah, biasanya didasarkan pada pernyataan masalah (problem statement) dan definisi konsep yang dilibatkan. Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas (obvious way).

  Karakteristik Algoritma Brute Force

  1. Algoritma brute force umumnya tidak "cerdas" dan tidak mangkus, karena ia membutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang-kadang algoritma brute force disebut juga algoritma naif (naïve algorithm).

  2. Algoritma brute force seringkali merupakan pilihan yang kurang disukai karena ketidakmangkusannya itu, tetapi dengan mencari pola- pola yang mendasar, keteraturan, atau trik-trik khusus, biasanya akan membantu kita menemukan algoritma yang lebih cerdas dan lebih mangkus.

  3. Untuk masalah yang ukurannya kecil, kesederhanaan brute force biasanya lebih diperhitungkan daripada ketidakmangkusannya.

  Algoritma brute force sering digunakan sebagai basis bila membandingkan beberapa alternatif algoritma yang mangkus.

  4. Algoritma brute force seringkali lebih mudah diimplementasikan daripada algoritma yang lebih canggih, dan karena kesederhanaannya, kadang-kadang algoritma brute force dapat lebih mangkus (ditinjau dari segi implementasi).

  Prinsip pencarian solusi permasalahan 0-1 Knapsack menggunakan algoritma brute force adalah:

  1. Menumerasikan list semua himpunan bagian dari himpunan dengan n objek.

  2. Menghitung total keuntungan dari setiap himpunan bagian dari langkah 1.

  3. Memilih himpunan bagian yang memberikan total keuntungan terbesar.

BAB III PEMBAHASAN

  3.1. PERANCANGAN SISTEM

  Cara kerja program secara garis besar adalah mencari nilai barang yang paling maksimum dengan berat barang tidak melebihi kapasitas yang tersedia. Pencariannya menggunakan Algoritma Brute Force.

  Berikut adalah gambar blok diagram sistem: Proses penyelesaiian

  Input Output

  Knapsack problem dengan Algoritma Brute Force

  3.2. PERMASALAHAN DAN PENYELESAIAN 0-1 KNAPSACK Berikut adalah permasalah 0-1 Knapsack yang akan dibahas.

  Diketahui: n = 4 1 1

  w = 2; p = 20 w = 5; p = 30

  2

  2 w = 10; p = 50

  3

  3 w 4 = 5; p 4 = 10

  Kapasitas knapsack K = 16 Langkah-langkah penyelesaian permasalahan diatas adalah sebagai berikut.

  n

  a. Membuat himpunan bagian dengan rumus 2 Jika jumlah n pada persoalan diatas adalah 4, maka jumlah himpunan

  4

  bagian adalah 2 = 16 Berikut Tabel Himpunan Bagian.

  Dari tabel diatas diperoleh kesimpulan sebagai berikut:

  30

  20 Tidak Layak {1,2,3,4}

  17 Tidak Layak {2,3,4}

  60 {1,3,4}

  12

  17 Tidak Layak {1,2,4}

  60 {1,2,3}

  15

  40 {3,4}

  10

  {2,4}

  80

  15

  {2,3}

  7

  a. Barang yang memberikan keuntungan maksimum adalah {2, 3} dengan nilai 80. Himpunan Bagian Total Bobot Total Keuntungan

  70 {1,4}

  12

  50 {1,3}

  7

  10 {1,2}

  5

  50 {4}

  10

  30 {3}

  5

  20 {2}

  2

  {} {1}

  22 Tidak Layak b. Dengan demikian, maka penyelesaiannya adalah X= {0, 1, 1, 0}

3.3. CODING dan OUTPUT

  class KnapsackBruteForce { public double Capacity { get ; set ; } public Item [] Items { get ; set ; } public Data Run()

  { var bestValue = 0d; var bestPosition = 0; var size = Items.Length; var permutations = ( long ) Math .Pow(2, size); for ( var i = 0; i < permutations; i++)

  { var total = 0d; var weight = 0d; for ( var j = 0; j < size; j++)

  { // if bit not included then skip if (((i >> j) & 1) != 1) continue ; total += Items[j].v; weight += Items[j].w; } if (weight <= Capacity && total > bestValue)

  { bestPosition = i; bestValue = total; } } var include = new List < Item >(); for ( var j = 0; j < size; j++)

  { // if bit match then add if (((bestPosition >> j) & 1) == 1)

  { include.Add(Items[j]); } } return new Data { BestValue = bestValue, Include = include };

  } }

3.4. DAFTAR PUSTAKA

  

http://www.ittelkom.ac.id/staf/zka/Materi%20Desain%20Analisis%20Algoritma/ M09Algoritma%20Greedy.pdf

Dokumen baru

Aktifitas terbaru

Download (13 Halaman)
Gratis

Dokumen yang terkait

Analisis Komparasi Internet Financial Local Government Reporting Pada Website Resmi Kabupaten dan Kota di Jawa Timur The Comparison Analysis of Internet Financial Local Government Reporting on Official Website of Regency and City in East Java
19
781
7
Analisis komparatif rasio finansial ditinjau dari aturan depkop dengan standar akuntansi Indonesia pada laporan keuanagn tahun 1999 pusat koperasi pegawai
14
332
84
Analisis Komposisi Struktur Modal Pada PT Bank Syariah Mandiri (The Analysis of Capital Structure Composition at PT Bank Syariah Mandiri)
22
283
6
Analisis Konsep Peningkatan Standar Mutu Technovation Terhadap Kemampuan Bersaing UD. Kayfa Interior Funiture Jember.
2
199
9
Analisis korelasi antara lama penggunaan pil KB kombinasi dan tingkat keparahan gingivitas pada wanita pengguna PIL KB kombinasi di wilayah kerja Puskesmas Sumbersari Jember
11
232
64
FREKWENSI PESAN PEMELIHARAAN KESEHATAN DALAM IKLAN LAYANAN MASYARAKAT Analisis Isi pada Empat Versi ILM Televisi Tanggap Flu Burung Milik Komnas FBPI
10
140
3
ANALISIS SISTEM PENGENDALIAN INTERN DALAM PROSES PEMBERIAN KREDIT USAHA RAKYAT (KUR) (StudiKasusPada PT. Bank Rakyat Indonesia Unit Oro-Oro Dowo Malang)
156
658
25
Analisis Sistem Pengendalian Mutu dan Perencanaan Penugasan Audit pada Kantor Akuntan Publik. (Suatu Studi Kasus pada Kantor Akuntan Publik Jamaludin, Aria, Sukimto dan Rekan)
136
591
18
Representasi Nasionalisme Melalui Karya Fotografi (Analisis Semiotik pada Buku "Ketika Indonesia Dipertanyakan")
53
296
50
Analisis Penyerapan Tenaga Kerja Pada Industri Kerajinan Tangan Di Desa Tutul Kecamatan Balung Kabupaten Jember.
7
66
65
Analisis Pertumbuhan Antar Sektor di Wilayah Kabupaten Magetan dan Sekitarnya Tahun 1996-2005
3
55
17
Analisis tentang saksi sebagai pertimbangan hakim dalam penjatuhan putusan dan tindak pidana pembunuhan berencana (Studi kasus Perkara No. 40/Pid/B/1988/PN.SAMPANG)
8
81
57
Analisis terhadap hapusnya hak usaha akibat terlantarnya lahan untuk ditetapkan menjadi obyek landreform (studi kasus di desa Mojomulyo kecamatan Puger Kabupaten Jember
1
82
63
DAMPAK INVESTASI ASET TEKNOLOGI INFORMASI TERHADAP INOVASI DENGAN LINGKUNGAN INDUSTRI SEBAGAI VARIABEL PEMODERASI (Studi Empiris pada perusahaan Manufaktur yang Terdaftar di Bursa Efek Indonesia (BEI) Tahun 2006-2012)
8
117
22
Hubungan antara Kondisi Psikologis dengan Hasil Belajar Bahasa Indonesia Kelas IX Kelompok Belajar Paket B Rukun Sentosa Kabupaten Lamongan Tahun Pelajaran 2012-2013
12
137
5
Show more