OPTIMALISASI TATA LETAK PENYIMPANAN BARANG...

13
OPTIMALISASI TATA LETAK PENYIMPANAN BARANG MENGGUNAKAN ALGORITMA TREE SEARCH Ngarap Im Manik 1 ; Eric Karsono 2 ; Malem Sendah S. 3 ABSTRACT Arrange storage goods is important problem for some companies, including DJ Company because of its goods repository is more limited. Therefore, computer program algorithm that is able to arrange the position storage goods is optimally required. Article described solution of the problem by using algorithm of Tree Search along with its program and application in a case study. Result of run program has given compilation of position and description storage situation at one particular optimum repository. The program is expected able to assist the company to maximize goods repository so that it can buy optimum goods with minimum stock holding cost. Keywords: arrange goods situation, tree search, optimization ABSTRAK Penyimpanan barang merupakan masalah penting bagi beberapa perusahaan, termasuk PT DJ karena semakin terbatasnya tempat penyimpanan barang. Oleh sebab itu, dibutuhkan sebuah algoritma program komputer yang dapat menghasilkan tata letak penyimpanan barang menjadi optimal. Artikel membahas solusi masalah tersebut menggunakan algoritma Tree Search beserta programnya dan penerapannya dalam suatu kasus. Hasil run program telah memberikan posisi dan gambaran penyusunan/tata letak penyimpanan barang pada suatu tempat penyimpanan yang optimum. Program yang dihasilkan diharapkan dapat membantu perusahaan untuk memaksimalkan tempat penyimpanan barang sehingga dapat membeli barang dengan jumlah yang optimum dengan biaya penyimpanan yang minimum. Kata kunci: tata letak barang, tree search, optimalisasi 1,2 Jurusan Matematika, Fakultas Sains dan Teknologi, Universitas Bina Nusantara, Jl. K.H. Syahdan No. 9 Palmerah, Jakarta Barat 11480, [email protected] 3 Staf Balai Litbang DepDikNas, Jakarta Jurnal Mat Stat, Vol. 9 No. 1 Januari 2009: 22-34 22

Transcript of OPTIMALISASI TATA LETAK PENYIMPANAN BARANG...

OPTIMALISASI TATA LETAK PENYIMPANAN BARANG

MENGGUNAKAN ALGORITMA TREE SEARCH

Ngarap Im Manik1; Eric Karsono2; Malem Sendah S.3

ABSTRACT Arrange storage goods is important problem for some companies, including DJ Company because of its goods repository is more limited. Therefore, computer program algorithm that is able to arrange the position storage goods is optimally required. Article described solution of the problem by using algorithm of Tree Search along with its program and application in a case study. Result of run program has given compilation of position and description storage situation at one particular optimum repository. The program is expected able to assist the company to maximize goods repository so that it can buy optimum goods with minimum stock holding cost. Keywords: arrange goods situation, tree search, optimization

ABSTRAK

Penyimpanan barang merupakan masalah penting bagi beberapa perusahaan, termasuk PT DJ karena semakin terbatasnya tempat penyimpanan barang. Oleh sebab itu, dibutuhkan sebuah algoritma program komputer yang dapat menghasilkan tata letak penyimpanan barang menjadi optimal. Artikel membahas solusi masalah tersebut menggunakan algoritma Tree Search beserta programnya dan penerapannya dalam suatu kasus. Hasil run program telah memberikan posisi dan gambaran penyusunan/tata letak penyimpanan barang pada suatu tempat penyimpanan yang optimum. Program yang dihasilkan diharapkan dapat membantu perusahaan untuk memaksimalkan tempat penyimpanan barang sehingga dapat membeli barang dengan jumlah yang optimum dengan biaya penyimpanan yang minimum. Kata kunci: tata letak barang, tree search, optimalisasi

1,2 Jurusan Matematika, Fakultas Sains dan Teknologi, Universitas Bina Nusantara, Jl. K.H. Syahdan No. 9 Palmerah, Jakarta Barat 11480, [email protected] 3 Staf Balai Litbang DepDikNas, Jakarta

Jurnal Mat Stat, Vol. 9 No. 1 Januari 2009: 22-34 22

PENDAHULUAN

Dengan semakin banyaknya penggunaan kendaraan bermotor oleh masyarakat di kota besar, mengakibatkan meningkatnya kebutuhan masyarakat akan suku cadang atau spare part kendaraan bermotor. Berkaitan dengan hal tersebut, kebutuhan tempat penyimpanan barang untuk pusat perdagangan suku cadang kendaraan bermotor semakin perlu untuk dioptimalkan agar kebutuhan konsumen tetap terpenuhi serta biaya operasional penyimpanan juga dapat diminimumkan.

PT DJ adalah sebuah perusahaan yang bergerak dalam bidang perdagangan suku cadang

kendaraan bermotor. Selain itu, untuk memuaskan konsumen juga memberikan jasa perbaikan/engine overhaul untuk kendaraan bermotor dan engine diesel heavy duty, heavy equipment. Dalam menghadapi persaingan yang semakin ketat, PT DJ dituntut agar memiliki daya saing yang lebih baik, yaitu diantaranya adalah performansi, efisiensi, dan kinerja yang lebih baik diantara pesaingnya.

Untuk menyelesaikan masalah tersebut, dalam artikel dibahas optimalisasi tata letak barang

yang dapat disimpan pada tempat penyimpanan barang yang sudah ada sehingga barang yang disimpan optimum dengan biaya penyimpanan minimal menggunakan algoritma Tree Search dan program komputer. Dalam proses optimalisasi tata letak penyimpanan barang menggunakan metode Tree Search akan dibatasi pada hal berikut: Peletakan bidang 3 dimensi pada bidang 3 dimensi lain yang memiliki ukuran lebih besar tanpa saling beririsan atau berpotongan satu sama lain; Bentuk bidang berupa balok atau kubus; Dalam perhitungan algoritma tidak mencakup adanya sistem partisi dalam ruangan; Tidak melakukan pencarian barang setelah mendapatkan hasil optimisasi penyusunan barang pada container.

TREE SEARCH

0-1 Knapsack Problem

Knapsack problem adalah suatu masalah dalam persoalan optimasi kombinatorial. Knapsack problem memperoleh namanya dari suatu masalah seorang pendaki gunung yang hanya dapat membawa barang pada tasnya maksimal pada berat tertentu, misalkan 15 kg dan ia harus membawa beberapa macam barang yang memiliki berat dan harga tertentu untuk dijual sehingga ia mendapatkan hasil keuntungan yang maksimal.

Knapsack problem (Martello, 1998, hlm.13) itu bila diformulasikan secara matematis dengan

banyaknya jumlah barang dari 1 sampai n dan sebuah vektor variabel biner xj (j = 1,...,n) sehingga

xj = { 1 jika objek j dipilih

0 jika sebaliknya

Kemudian, jika pj ukuran keuntungan yang diberikan barang j, wj adalah berat dari barang tersebut dan c adalah kapasitas maksimum yang dapat ditampung maka

,1

cxw j

n

jj ≤∑

= ........................... (1)

dan persamaan yang menghasilkan keuntungan maksimum adalah

.............................. (2) .1

j

n

jj xp∑

=

Optimalisasi Tata Letak … (Ngarap Im Manik; dkk) 23

xj = 0 atau 1. Jika dimisalkan ada suatu persoalan dengan n = 8, dan: (pj) = (15, 100, 90, 60, 40, 15, 10, 1), (wj) = ( 2, 20, 20, 30, 40, 30, 60, 10), c = 102 Maka hasil optimal yang dihasilkan adalah x = (1, 1, 1, 1, 0, 1, 0, 0), dengan nilai keuntungan maksimum z = 280. Bin Packing

Dalam problem ini diberikan objek sebanyak n (element) yang harus ditempatkan pada bin (tempat penyimpanan) dengan kapasitas L. Objek i membutuhkan unit li dari kapasitas bin. Tujuan bin packing adalah untuk menentukan jumlah bin yang dibutuhkan untuk menampung seluruh objek n. tidak boleh ada objek yang ditempatkan sebagian di dalam suatu bin dan sebagian lain di dalam bin lainnya.

Three dimensional Bin Packing Problem juga digolongkan dalam permasalahan NP-Hard.

Digolongkan dalam NP-Hard karena secara teori dan praktiknya sangat sulit dipecahkan. Apabila contoh permasalahan hanya sedikit maka dapat ditemukan solusinya secara mudah tetapi dalam dunia nyata permasalahan sangatlah banyak dan kompleks. Oleh karena itu, dilakukan pendekatan heuristic. Pendekatan heuristic yang paling umum dan mendekati pemecahan problem ialah wall building algorithm. Wall Building Heuristic

Wall building heuristic mengisi kontainer dengan sejumlah layer yang sejajar dengan kedalaman kontainer. Algoritma itu hanya mempertimbangkan layer dengan kedalaman (d) tertentu yang sesuai dengan dimensi kotak, hal itu disebut normalized layer depth (Pisinger, 2002, hlm.4). Untuk lebih jelas, dapat dilihat pada Gambar 1.

Gambar 1 Wall Building Algorithm

Akan tetapi, kedalaman sebuah layer harus diseleksi secara teliti. Hal itu dilakukan agar tercapainya solusi yang baik. Oleh karena itu, ketika membuat sebuah layer, algoritma itu menerapkan aturan pengurutan untuk memilih nilai d. Diantara kotak yang tersisa akan dipilih kotak yang memiliki dimensi terbesar. Alasan utama kenapa hal itu dilakukan karena kotak tersebut akan sulit untuk dimuat apabila dilakukan urutan terakhir dalam prosedur pengepakan. Setelah kedalaman layer ditentukan, akan dilakukan pengepakan dengan metode greedy per baris secara horizontal (horizontal strip) disetiap potongan layer. Setiap potongan akan dimasukkan kotak yang tersisa secara berurutan berdasarkan urutan panjang kotak yang terbesar terlebih dahulu, seperti dijelaskan pada Gambar 2.

Jurnal Mat Stat, Vol. 9 No. 1 Januari 2009: 22-34 24

Gambar 2 Setiap Layer Diisi Oleh Beberapa Baris Horizontal Box Tree Search

Algoritma ini adalah pengembangan dari algoritma wall building menggunakan algoritma tree search (Pisinger, 2002, hlm.5-9) untuk menentukan layer depth dan strip width yang akan menghasilkan pengisian yang paling optimal. Idealnya untuk mendapatkan hasil yang terbaik semua normalized layer depth dan strip perlu dipertimbangkan tetapi hal itu akan memerlukan kemampuan komputasi yang amat besar. Oleh karena itu, untuk mengurangi kompleksitas komputasi diterapkan pendekatan m-cut dan hanya sub-node tertentu saja yang dapat dipertimbangkan dari setiap branching node.

Pada setiap branching node, dipertimbangkan M1 layer depth berbeda yang dipilih

berdasarkan suatu ranking rule. Lalu setiap layer tersebut diisi dengan beberapa strip dan setiap strip tersebut dapat disusun secara vertikal ataupun horizontal. Hanya M2 strips width tertentu yang dipertimbangkan. Ketika layer depth dan strip width telah ditentukan, strip tersebut segera diisi secara optimal menggunakan Knapsack Problem. Dari M1 layer depth yang telah diisi itu dipilihlah sebuah layer yang memiliki hasil volume yang paling optimal. Setelah itu, dilanjutkan dengan memproses layer yang berikutnya. Nilai dari M1 adalah 4 dan M2 adalah 8 nilai yang memiliki kualitas solusi terbaik dan waktu komputasi yang paling efisien, kedua nilai itu diperoleh dari berbagai eksperimen yang telah dilakukan oleh pencipta algoritma ini.

• Pada setiap branching node terdapat tiga buah fungsi untuk menentukan ranking depth dan width

yang terbaik pada suatu layer atau strip, yaitu Fungsi frekuensi f1 mengembalikan nilai hasil perbandingan suatu dimensi k dengan dimensi lain dengan membandingkan semua dimensi wi, hi, di pada kotak yang lain.

untuk k = α,..., β • Fungsi frekuensi f2 mengembalikan nilai hasil perbandingan suatu dimensi k dengan dimensi yang

terbesar pada setiap kotak lain.

untuk k = α,..., β • Fungsi frekuensi f3 mengembalikan nilai hasil perbandingan suatu dimensi k dengan dimensi yang

terkecil pada setiap kotak lain.

Optimalisasi Tata Letak … (Ngarap Im Manik; dkk) 25

untuk k = α,..., β wi, hi, di = ukuran lebar, tinggi, dan panjang suatu kotak k = ukuran salah satu sisi kotak α = ukuran sisi paling kecil pada seluruh kotak β = ukuran sisi paling besar pada seluruh kotak

Berdasarkan ketiga fungsi frekuensi tersebut dapat ditentukan sejumlah aturan prioritas.

Tujuan seluruh aturan itu adalah untuk memilih kotak yang memiliki ukuran/dimensi yang terbesar lebih dahulu atau memilih kotak yang memiliki frekuensi paling banyak. Setelah itu, strip tersebut dapat diisi baik secara vertikal ataupun horizontal. Pengisian strip yang berukuran width w’ dan depth d’ tersebut dapat dianggap sebagai Knapsack Problem. Pertama-tama, setiap kotak j dapat diputar ke salah satu arah dari enam kemungkinan arah putaran dan wj ≤ w’, dj ≤ d’ dan h’ telah diminimalkan. Jika masih tidak memungkinkan untuk memasukkan kotak j pada w’ × d’ maka masukkan kotak tersebut pada daftar kotak yang tidak dapat dimasukkan, D. atau dengan menentukan

aj = hj= weight cj = vj = wjhjdj = profit

Untuk setiap kotak yang ada dan kotak j∈N\D. Sehingga strip packing problem tersebut

menjadi

maximize jDNj

j xc∑∈ \

subject to bxa jDNj

j ≤∑∈ \

DNjx j \},1,0{ ∈∈ dan N\D adalah kumpulan kotak yang dapat dimasukkan dan b adalah strip height.

Lalu hasil yang diperoleh dapat lebih dioptimalkan lagi dengan cara memasangkan kotak tersebut dua dua ketika memungkinkan. Karena kekompleksitasan algoritma itu O(n2), cara itu hanya dapat dilakukan sekali untuk setiap layer yang memiliki depth d’. Ketika sebuah kotak j telah diputar sedemikian rupa sehingga depth dj adalah kemungkinan yang paling memuaskan, dj ≤ d’. Suatu cara untuk mengetahui seberapa baik kotak tersebut dapat mengisi depth tersebut adalah

α(j) = vj/(wjhjd’) = dj/d’ dengan tujuan dapat mengoptimalkan pengisian dengan memasangkan kotak j dengan kotak lain, misalkan kotak i. Sehingga untuk setiap kotak i ≠ j semua kemungkinan rotasi dari i dan j juga dipertimbangkan dimana di + dj ≤ d’, setiap kali menghitung rasio

β(i,j) = (vi + vj)/(d’ max{wi,wj} max {hi,hj}) Jika β(i,j) ≤ α(j) untuk semua kotak i dan semua rotasi maka kotak j tetap dibiarkan sendiri tanpa dipasangkan dengan kotak lain. Sebaliknya, jika β(i,j) > α(j) maka sebuah kotak baru, kotak k telah terbentuk dengan dimensi

wk = max{wi,wj}; hk = max{hi,hj}; dk = d’ Sedangkan kedua kotak asalnya dikeluarkan dari daftar kotak untuk menghindari kotak tersebut digunakan kedua kalinya.

Jurnal Mat Stat, Vol. 9 No. 1 Januari 2009: 22-34 26

Pemodelan Perangkat Lunak

Pemodelan dalam rekayasa perangkat lunak merupakan suatu hal yang dilakukan ditahap awal. Pemodelan itu akan mempengaruhi pekerjaan dalam rekayasa perangkat lunak itu selanjutnya. Menurut (Pressman, 2005), perangkat lunak adalah perintah (program komputer) yang bila dieksekusi akan memberikan fungsi dan unjuk kerja seperti yang diinginkan; Struktur data yang memungkinkan program memanipulasi informasi secara proporsional; Dan dokumen yang menggambarkan operasi dan kegunaan program.

Salah satu cara perancangan perangkat lunak adalah menggunakan model air terjun (waterfall

model). Menurut (Sommerville, 1995), tahap utama dalam model air terjun dapat digambarkan dalam aktivitas dasar pengembangan seperti berikut. Pertama, analisis dan penentuan kebutuhan; Tugas, kendala, dan tujuan sistem ditentukan melalui konsultasi dengan pengguna sistem kemudian ditentukan cara yang dapat dipahami, baik oleh pengguna maupun staf pengembang. Kedua, desain sistem dan perangkat lunak; Proses desain sistem terbagi dalam kebutuhan perangkat keras dan perangkat lunak. Hal itu menentukan arsitektur perangkat lunak secara keseluruhan. Desain perangkat lunak mewakili fungsi sistem perangkat lunak dalam suatu bentuk yang dapat ditranformasikan ke dalam satu atau lebih program yang dapat dieksekusi. Ketiga, implementasi dan pengujian unit; Dalam tahap ini, desain perangkat lunak direalisasikan dalam suatu himpunan program atau unit program pengujian, mencakup kegiatan verifikasi terhadap setiap unit sehingga memenuhi syarat spesifikasinya. Keempat, integrasi dan pengujian sistem; Unit program secara individual diintegrasikan dan diuji sebagai satu sistem yang lengkap untuk memastikan bahwa kebutuhan perangkat lunak telah terpenuhi. Setelah pengujian, sistem perangkat lunak disampaikan kepada pengguna. Kelima, pengoperasian dan pemeliharaan; Secara normal, walaupun tidak perlu, tahap itu merupakan fase siklus hidup yang terpanjang. Sistem telah terpasang dan sedang dalam penggunaan. Pemeliharaan mencakup perbaikan kesalahan yang tidak ditemukan dalam tahap sebelumnya, meningkatkan implementasi unit sistem, dan mempertinggi pelayanan sistem sebagai kebutuhan baru yang ditemukan.

PERANCANGAN ALGORITMA

Permasalahan yang dihadapi oleh PT DJ adalah terbatasnya tempat penyimpanan barang yang digunakan sedangkan untuk mengatasi persaingan usaha dengan memberikan harga yang bersaing digunakan strategi pembelian persedian barang dalam jumlah besar sehingga harga satuan barang yang dibeli berkurang. Jadi, diperlukan cara penyimpanan barang yang optimal sehingga jumlah barang yang disimpan dapat banyak. Oleh karena itu, diperlukan sebuah perangkat lunak komputer yang dapat memberikan gambaran penempatan/tata letak barang yang optimal sehingga suatu tempat penyimpanan dapat memuat lebih banyak barang dari sebelumnya. Untuk dapat melakukan perhitungan, diperlukan input: Besarnya ukuran tempat penyimpanan/container; Besarnya ukuran barang yang akan disimpan; Banyaknya jumlah barang yang akan disimpan; Besarnya kapasitas pengisian tempat penyimpanan/container. Dari input tersebut diinginkan output berupa tata letak barang yang optimal sehingga dapat meminimalkan tempat yang tidak terpakai pada tempat penyimpanan tersebut.

Perancangan Aplikasi

Input yang diberikan user adalah berupa informasi container, yaitu Panjang X adalah panjang container; Panjang Y adalah tinggi container; Panjang Z adalah lebar container; Toleransi adalah kapasitas maksimum yang diinginkan dari container.

Untuk informasi barang, input yang digunakan adalah Nama barang; Panjang X adalah

panjang barang; Panjang Y adalah tinggi barang; Panjang Z adalah lebar barang; Jumlah barang adalah jumlah dari jenis barang tersebut. Setiap panjang menggunakan satuan cm sedangkan toleransi menggunakan satuan persen. Aplikasi itu dimulai dengan memasukkan input informasi container

Optimalisasi Tata Letak … (Ngarap Im Manik; dkk) 27

terlebih dahulu kemudian dilanjutkan dengan memasukkan input informasi barang sehingga didapatkan suatu daftar berupa data dari berbagai macam barang yang akan disusun pada container. Output yang dihasilkan adalah gambar tiga dimensi dari hasil penyusunan barang yang sudah optimal dan data posisi barang berdasarkan sumbu kartesian.

Rancangan Layar

Untuk memudahkan penggunaan aplikasi, dibuat rancangan layar program utama dalam 1 form utama sehingga user dapat memberi masukkan input dan melihat output pada saat yang bersamaan tanpa harus mengganti-ganti form (Gambar 3).

Informasi container

Panjang x

Panjang y

Panjang z

Toleransi

Informasi barang

Panjang x

Panjang yPanjang z

Banyak barang

Nma barang

ADD

DEL

Generate Calculation

daftar barang

edit

save

Overall information

Lebar container : cm Tinggi container : cm Panjang containr: cm Toleransi ruang : % Vol container: cm x cm Vol ruang tersedia: cm x cm Toleransi ruang: %

Calculation progress

Gambar tiga dimensi

Data posisi barang

Gambar 3 Perancangan Form Utama

Perancangan Algoritma Untuk merancang program aplikasi, digunakan bahasa pemrograman Visual C++. Algoritma program adalah sebagai berikut. Langkah pertama, user memasukkan input pada tabel yang tersedia setelah itu user dapat menjalankan program. Algoritma selama program dijalankan dapat dilihat dari pseudocode berikut (Horowitz, Rajasekaran, 1998). Algoritma choose depth choose_depth(d, V, N’) if V > V* then save solution X*, set V* = V if d < min min{ } then return; 'Nj∈ jjj dhw ,,select M1 best ranked layer depths {d’1,d’2,…,d’ }.

1M

for each depth {d’∈'d 1,d’2,…,d’ } begin 1M

pair boxes to obtain a depth close to d’, and set U* = 0; Call fill_layer(W,H,d’,0,N’); Let L be the chosen boxes, and U* their volume. Call choose_depth(d – d’, V + U*, N’\L); end;

Jurnal Mat Stat, Vol. 9 No. 1 Januari 2009: 22-34 28

Algoritma fill layer fill_layer (w,h,d’,U,N”) if U > U* then save solution in L, set U* = U; l = min min{ }; "Nj∈ jjj dhw ,,if (w < l ) or (h < l ) then return; comment: pack vertical strip: select M2 best ranked widths {w’1,w’2,…,w’ }.

2M

for each width {w’∈'w 1,w’2,…,w’ } begin 2M

Rotate the boxes and solve a KP with capacity h.Let K be the set of chosen boxes Call fill_layer(w – w’, h, U + , N”\K); ∑ ∈Kj jvend; comment: pack horizontal strip: select M2 best ranked heigths {h’1,h’2,…,h’ }.

2M

for each height {h’∈'h 1,h’2,…,w’ } begin 2M

Rotate the boxes and solve a KP with capacity w.Let K be the set of chosen boxes Call fill_layer(w , h – h’, U + , N”\K); ∑ ∈Kj jvend;

Pada algoritma choose_depth terdapat suatu daftar barang N’ , depth pada container d dan volume terakhir dari packing sebelumnya adalah V. Algoritma choose_depth bersifat rekursif berfungsi untuk memilih beberapa layer depth teratas yang telah diurutkan berdasarkan ranking rule yang telah dijelaskan sebelumnya. Untuk setiap depth d’, dicoba untuk dapat memasangkan barang yang ada sehingga memiliki ukuran yang hampir sama dengan depth tersebut. Kemudian untuk memenuhi layer dengan dimensi W × H × d’ digunakan algoritma fill_layer. Barang yang telah disusun dimasukkan pada daftar L sehingga tidak akan terpilih lagi setelah algoritma ini selesai dilanjutkan kembali dengan memanggil algoritma choose_depth. Dalam algoritma choose_depth terdapat variabel X*, yaitu solusi susunan terbaik yang ada dan V* adalah volume dari solusi yang ada dan pada awalnya V* = 0 (Horton, 2006).

Pada algoritma fill_layer yang juga bersifat rekursif, volume barang yang telah disusun pada

layer itu adalah U. Layer itu dapat disusun secara vertikal ataupun horizontal, sebelum barang-barang dari daftar N” disusun pada layer, terlebih dahulu barang-barang tersebut diputar/dirotasi sehingga memiliki width atau height yang sesuai dengan layer-nya. Pada algoritma ini, terdapat L dan U* sebagai solusi dan volume yang paling optimal.

Optimalisasi Tata Letak … (Ngarap Im Manik; dkk) 29

STAR

Baca data barang dan container

Apakah volume container

meningkat?

ya Simpan posisi barang

tidak

Apakah depth > sisi barang terkecil

ya

Pilih layer depth yang terbaik

END

Pasangkan barang sehingga memiliki

lebar hampir sebesar layer depth

Apakah volume layer

ya Simpan posisi barang

tidak

Apakah width/height dari layer > sisi

tidak

tidak

ya

Pilih layer width/height yang terbaik

Putar barang sehingga < dari layer width/height

Pack barang pada layer lalu update posisi dan

data barang

Gambar 4 Diagram Alir Algoritma

HASIL DAN PEMBAHASAN

Guna medapatkan hasil dari aplikasi ini diperlukan beberapa komponen pendukung, baik konfigurasi perangkat keras (hardware) maunun perangkat lunak (software) yang digunakan. Adapun spesifikasi hardware sebagai berikut.

• Processor : AMD Athlon 900 MHz • Memory RAM : 256 Mbyte • Video Graphic Adapter : NVIDIA RIVA TNT2 Model 64 • Monitor: : AOC LM525A

Spesifikasi software sebagai berikut. • Sistem operasi (platform) : Windows XP Service Pack 2 • Software : Visual C++ 2005 Professional Edition

Untuk menggunakan program ini, pertama masuk ke Masuk ke Microsoft Windows dan

Double click pada Loading Program.exe maka akan tampil form utama seperti Gambar 5.

Jurnal Mat Stat, Vol. 9 No. 1 Januari 2009: 22-34 30

Gambar 5 Tampilan Form Utama

Untuk memasukkan data informasi container, user dapat langsung mengisi data pada tabel yang tersedia kemudian tekan tombol save information. Setelah itu barulah user dapat mengisi data infomasi barang kemudian tekan tombol add barang jika data barang yang dimaksud sudah benar. Pengisian informasi barang yang akan dimasukkan pada container itu dapat dilakukan terus menerus hingga kapasitas maksimal container terpenuhi. Pada form itu juga terdapat tombol del barang untuk menghapus data barang yang salah dimasukkan dengan cara memilih terlebih dahulu data barang pada daftar barang yang akan disusun kemudian tekan tombol del barang. Berikut adalah tampilan setelah pengisian informasi (Gambar 6).

Gambar 6 Pengisian Data

Jika pada saat pengisian informasi barang user memasukkan data sehingga melebihi kapasitas container maka akan muncul warning bahwa kapasitas ruang container tidak cukup. Setelah pengisian data, user dapat melihat hasil penyusunan barang setelah menekan tombol generate calculation. Hasil penyusunan barang akan ditampilkan dengan tampilan tiga dimensi dan tampilan tertulis data posisi barang. Berikut adalah tampilan hasil penyusunan barang seperti yang ditunjukkan oleh Gambar 7.

Gambar 7 Tampilan hasil

Optimalisasi Tata Letak … (Ngarap Im Manik; dkk) 31

Pada tabel calculation progress terdapat hasil penyusunan barang dengan format penulisan berikut.

1 [ 15, 15, 35] 60 30 60 yes

No urut barang Ukuran panjang, lebar, dan tinggi barang

Posisi barang pada container

Keterangan apakah barang tersebut berada

Pada tampilan tiga dimensi user dapat mengatur sudut pandang dengan cara menahan tombol

left-click mouse pada hasil tampilan dan mengerakkannya ke arah yang diinginkan. Jika user ingin meperbesar hasil tampilan dapat dilakukan dengan menahan tombol right-click mouse kemudian digerakkan ke bawah. Jika digerakkan ke atas akan memperkecil hasil tampilan. Pembahasan

Untuk mengevaluasi program aplikasi, akan diberikan satu contoh kasus nyata yang datanya diambil langsung dari PT DJ sebagai berikut: PT DJ pada bulan Juli 2008 mengirimkan beberapa jenis barang kepada salah satu konsumennya. Barang-barang tersebut dikirimkan dengan suatu kotak. Berikut data kotak tempat penyimpanan dan data barang yang dikirimkan. Ukuran tempat penyimpanan digunakan 48, 32, 19 (depth, width, height).

Tabel 1 Daftar Barang

Jenis Barang Ukuran x Ukuran y Ukuran z Jumlah barang

1 23 18 4 2 2 24 19 8 1 3 15 11 3 4 4 11 9 7 2 5 18 18 8 1 6 19 13 7 1 7 11 8 6 2 8 10 8 3 5 9 19 14 4 3 10 22 14 6 2 11 9 6 6 5

Pada data perusahaan terdapat 4 buah barang yang tidak dapat dimasukkan pada kotak tempat

penyimpanan, yaitu barang 3 sebanyak 1 buah, barang 8 sebanyak 2 buah, dan barang 11 sebanyak 1 buah sedangkan pada hasil perhitungan menggunakan program didapatkan hasil 2 buah barang yang tidak dapat dimasukkan pada kotak tempat penyimpanan, yaitu barang 3 sebanyak 1 buah dan barang 8 sebanyak 1 buah, seperti pada Gambar 8 berikut.

Gambar 8 Tampilan Hasil Kasus

Jurnal Mat Stat, Vol. 9 No. 1 Januari 2009: 22-34 32

Berikut adalah data hasil posisi barang setelah dioptimalisasi.

Tabel 2 Hasil Posisi Barang

no [ dx dy dz] X y z packed1 [ 6, 6, 9] 0 8 9 yes 2 [ 6, 6, 9] 39 8 0 yes 3 [ 6, 6, 9] 42 0 9 yes 4 [ 6, 6, 9] 42 0 0 yes 5 [ 6, 6, 9] 0 8 0 yes 6 [ 22, 6, 14] 24 14 0 yes 7 [ 22, 6, 14] 17 8 0 yes 8 [ 14, 4, 19] 0 25 0 yes 9 [ 14, 4, 19] 14 25 0 yes 10 [ 14, 4, 19] 28 25 0 yes 11 [ 10, 3, 8] 30 29 11 yes 12 [ 10, 3, 8] 0 29 11 yes 13 [ 3, 10, 8] 0 0 11 no 14 [ 10, 3, 8] 15 29 11 yes 15 [ 8, 3, 10] 39 8 9 yes 16 [ 8, 6,11] 6 8 8 yes 17 [ 11, 6, 8] 6 8 0 yes 18 [ 13, 7, 19] 11 14 0 yes 19 [ 18, 8, 18] 24 0 0 yes 20 [ 11, 7, 9] 0 14 9 yes 21 [ 11, 7, 9] 0 14 0 yes 22 [ 15, 3, 11] 15 29 0 yes 23 [ 3, 15, 11] 0 0 0 no 24 [ 15, 3, 11] 0 29 0 yes 25 [ 15, 3, 11] 30 29 0 yes 26 [ 24, 8, 19] 0 0 0 yes 27 [ 23, 4, 18] 23 21 0 yes 28 [ 23, 4, 18] 0 21 0 yes

Dari implementasi yang dilakukan, didapatkan beberapa hal antara lain sebagai berikut: Solusi yang dihasilkan dapat dikatakan optimal; Program aplikasi optimalisasi penyusunan barang dibuat cukup sederhana dan mudah untuk digunakan sehingga memungkinkan program aplikasi untuk digunakan oleh orang awam; Program ini tidak memerlukan maintenance secara berkala; Program ini memungkinkan bagi pengguna untuk meng-edit data container yang akan digunakan bila terjadi perubahan dan memungkinkan bagi pengguna untuk men-delete data barang yang salah atau sudah tidak diperlukan; Program ini tidak menggunakan log in sehingga dapat digunakan oleh semua user tidak terbatas pada user tertentu saja; Untuk menjalankan program aplikasi, dibutuhkan software penunjang, yaitu Visual C++ Proffessional Edition.

Optimalisasi Tata Letak … (Ngarap Im Manik; dkk) 33

PENUTUP

Dari contoh penerapan pada kasus memperlihatkan bahwa program aplikasi ini memberikan hasil yang memuaskan karena berhasil memuat barang lebih banyak dengan pengaturan tata letak barang yang optimal. Program aplikasi yang dibuat sudah sesuai dengan kebutuhan PT DJ dan menghasilkan hasil yang lebih optimal jika dibandingkan dengan cara manual yang biasa digunakan sebelumnya, juga aplikasi ini mudah digunakan karena tidak memerlukan pembelajaran khusus.

DAFTAR PUSTAKA Horowitz, E., Sahni, S., & Rajasekaran, S. (1998). Computer algorithms/C++. Second Printing.

United States of America: Computer Science Press. Horton, I. (2006). Ivor Hortons beginning visual c++ 2005. United States of America: Wiley

Computer Publishing, Martello, S. & Toth, P. (1998). Knapsack problem: Agorithms and computer implementation.

England: John Wiley & Sons. Pisinger, D. (2002). Algorithms for knapsack problems. Denmark: Department of Computer Science,

University of Copenhagen. Pisinger, D. (1997). A minimal algorithm for the 1-0 knapsack problem. Operations Research. Vol 45,

pp 758-767. Pisinger, D. (2002). Heuristic for the container loading problem. European Juornal of Operations

Research. Vol 141, pp 382-392. Pressman, R. S. (2005). Software Engineering: A practioner’s approach. Sixth Edition. United States

of America: Mcgraw-Hill. Sommerville, I. (1995). Software Engineering. Fifth Edition. United States of America: Addison

Wesley.

Jurnal Mat Stat, Vol. 9 No. 1 Januari 2009: 22-34 34