BAB I PENDAHULUAN 1.1
Latar Belakang Masalah Pada saat ini, komputer memiliki peranan yang sangat penting dalam segala bidang
pekerjaan. Hampir segala bidang membutuhkan komputer sebagai sarana bantuan dalam menyelesaikan suatu pekerjaan ataupun permasalahan. Dalam penggunaannya, komputer tidak dapat membantu menyelesaikan permasalahan secara efektif tanpa adanya suatu program aplikasi atau software. Program aplikasi yang tepat akan dapat menyelesaikan permasalahan yang sedang dihadapi secara optimal. Salah satu permasalahan yang sering ditemui adalah masalah Knapsack untuk suatu perusahaan yang mengantar barang kepada konsumennya. Perusahaan-perusahaan kerap kali salah dalam memprioritaskan barang-barang yang terlebih dahulu dimasukkan ke dalam media pengiriman. Akibatnya, keuntungan yang diraih oleh perusahaan pun tidak maksimal. Karena itu, suatu program aplikasi untuk membantu permasalahan ini sangat dibutuhkan, apalagi jika program ini dibuat dengan algoritma yang tepat. Dengan algoritma yang tepat, program ini bukan saja memberikan hasil yang optimal tetapi juga memberikan hasil secara cepat. Secara ideal, jika ditemukan suatu algoritma yang dapat menyelesaikan suatu permasalahan yang cepat, mudah, keefektifannya tinggi, dan pasti menemukan solusi, dapat dipastikan algoritma tersebut akan selalu dipakai. Akan tetapi, sampai saat ini belum dapat ditemukan algoritma yang memenuhi kriteria-kriteria tersebut. Pada beberapa kasus, kadang diinginkan algoritma yang mudah (seperti pada Brute Force
2 ataupun Greedy), cepat (seperti pada algoritma Greedy), dan sedekat mungkin dengan solusi optimum global (seperti pada Brute Force). Penggunaan algoritma yang tepat untuk permasalahan yang tepat akan sangat menguntungkan bagi pengguna program tersebut. Dengan penggunaan algoritma yang tepat, waktu yang dibutuhkan untuk penyelesaian suatu permasalahan akan semakin kecil. Sayangnya, sampai saat ini suatu penyelesaian yang paling sederhana, yaitu algoritma Brute Force, memiliki keefektifan yang sangat rendah. Juga, algoritma dengan keefektifan paling tinggi, yaitu algoritma Greedy, memiliki ketepatan penyelesaian yang tidak 100% benar. Penggabungan dari kedua algoritma tadi sangat mungkin menghasilkan sebuah algoritma baru yang lebih efektif dari Brute Force dan lebih optimum dari Greedy. Oleh karenanya, dalam skripsi ini akan dibahas perancangan program aplikasi yang dapat menyelesaikan masalah dengan menggunakan kombinasi dari algoritma Brute Force dan Greedy (dikenal dengan nama algoritma Brudy), yang memiliki ketepatan solusi yang cukup optimal dan kecepatan yang cukup tinggi.
1.2
Ruang Lingkup Penulisan skripsi dibatasi pada hal-hal berikut ini. a. Inputan data dilakukan pada saat program berjalan. Kode customer, berat barang yang dikirim, dan keuntungan tiap barang yang dikirimdiambil dari file yang dengan format ber-extension .txt untuk diproses ulang pada program, sedangkan input lainnya dimasukkan secara manual. Output yang ditampilkan adalah rincian dari kode customer yang diprioritaskan yang menghasilkan keuntungan maksimal, kode customer yang barangnya belum masuk dalam media pengiriman, berat total, volume total, keuntungan
3 maksimal yang diperoleh, sisa berat media pengiriman, dan sisa volume media pengiriman. b. Data yang diinput adalah berdasarkan kode customer yang mengirim barang, bukan berdasarkan nama barang dan jumlah barang. c. Data yang digunakan adalah data yang diambil pada saat penulisan skripsi ini., yang berguna sebagai data uji coba program. Selanjutnya program ini diharapkan dapat membantu memaksimalkan keuntungan pada PT. Siam Square Buanatrans. d. Program aplikasi yang dibuat hanya memberikan saran kepada PT. SSB untuk memaksimalkan keuntungan dengan memprioritaskan barang-barang tertentu untuk dimasukkan terlebih dahulu ke dalam media pengiriman, bukan memaksimalkan penggunaan kapasitas media pengiriman. e. Program aplikasi ini tidak menentukan pengaturan penempatan barang pada media pengiriman. f. Program ini hanya dapat digunakan untuk PT. Siam Square Buanatrans, yang dikarenakan PT. SSB ini hanya menerima permintaan pengiriman barang dalam skala besar (jumlah barang banyak dan barang-barang berat). Sehingga, jumlah data yang diproses program aplikasi yang akan dibuat terbatas. Ini dilakukan agar memori komputer yang digunakan ketika program aplikasi berjalan tidak terlalu besar. g. Besarnya nilai batas (b) ditentukan oleh programmer agar memori komputer yang digunakan ketika program dijalankan tidak terlalu besar. Nilai program aplikasi yang dibuat yaitu bernilai lebih besar atau sama dengan 2 dan lebih kecil atau sama dengan 5.
4 h. Skripsi ini tidak memberikan solusi mengenai barang yang tidak masuk ke dalam media pengirim. 1.3
Tujuan dan Manfaat 1.3.1
Tujuan Adapun tujuan dari skripsi ini adalah merancang program aplikasi dengan metode algoritma Brudy untuk menyelesaikan masalah Knapsack yang menggunakan jumlah memori komputer lebih sedikit dibanding dengan menggunakan algoritma Brute Force dan menghasilkan solusi yang lebih efektif dibanding algoritma Greedy .
1.3.2`
Manfaat Adapun manfaat dari penulisan makalah ini adalah sebagai berikut. a.
Terciptanya suatu alat bantu berupa program aplikasi yang dapat berguna bagi PT. Siam Square Buanatrans pada saat mengantarkan
barang
dengan
menggunakan
media
pengiriman. b.
Memudahkan bagi karyawan dalam mengatur prioritas barang yang akan dimasukkan ke dalam media pengirim.
c.
Menemukan suatu algoritma yang baru yang lebih sempurna yang kelak dapat digunakan pada bidang-bidang lain.
5 1.4
Metodologi Analisis dan Perancangan 1.4.1
Metodologi Analisis Analisis dilakukan dengan menggabungkan 2 buah algoritma sederhana
yang akan digunakan yaitu algoritma Brute Force dan Greedy. Selain itu, juga dilakukan analisis terhadap bahasa pemrograman yang akan digunakan untuk membuat program aplikasi beserta data-data dan informasi-informasi lain yang didapat selama masa perkuliahan dan maupun di luar perkuliahan yang dapat menunjang pembuatan skripsi ini. 1.4.2
Metodologi Perancangan Perancangan dilakukan dengan mencari data terapan yang dianggap perlu
sebagai landasan teori yang dapat mendukung pelaksanaan penelitian. Perancangan program dan algoritma analisis optimalisasi keuntungan pada permasalahan Knapsack menggunakan suatu algoritma baru, algoritma Brudy yang merupakan penggabungan antara dua algoritma sederhana yaitu Brute Force dan Greedy. Untuk perancangan tampilan program, proses-proses yang akan dilakukan, dan perancangan output yang ingin ditampilkan digunakan bahasa pemrograman Java 2 Standard Edition.
1.5
Sistematika Penulisan Dalam skripsi ini digunakan sistematika penulisan seperti berikut. BAB 1 – PENDAHULUAN Bab ini menguraikan mengenai latar belakang masalah, ruang lingkup, tujuan dan manfaat, metodologi penelitian serta sistematika penulisan.
6 BAB 2 – LANDASAN TEORI Dalam bab ini dijelaskan mengenai teori-teori yang mendukung perancangan program yang dilakukan, seperti Algoritma Brute Force dan algoritma Greedy. BAB 3 – ANALISIS DAN PERANCANGAN Dalam bab ini akan diuraikan mengenai langkah-langkah dalam pembentukan piranti lunak (software) dalam menyelesaikan masalah Knapsack dengan menggunakan algoritma Brudy. BAB 4 – IMPLEMENTASI DAN EVALUASI Dalam bab ini diuraikan mengenai proses beserta hasil simulasi yang diperoleh dari data yang telah diproses dan juga dijelaskan maksud hasil yang diperoleh. BAB 5 – KESIMPULAN DAN SARAN Dalam bab ini diberikan kesimpulan hasil perancangan piranti lunak yang telah dibuat beserta hasilnya dan juga saran-saran untuk pengembangan lebih lanjut terhadap piranti lunak tersebut.
1.6
Komponen Perancangan Sistem operasi yang digunakan adalah Windows XP. Bahasa pemrograman yang
digunakan adalah Java 2 Standard Edition.