• Tidak ada hasil yang ditemukan

PENDEKATAN FIREFLY ALGORITHM (FA) UNTUK MENYELESAIKAN MASALAH PENGEPAKAN PERSEGI TIGA DIMENSI SKRIPSI

N/A
N/A
Protected

Academic year: 2019

Membagikan "PENDEKATAN FIREFLY ALGORITHM (FA) UNTUK MENYELESAIKAN MASALAH PENGEPAKAN PERSEGI TIGA DIMENSI SKRIPSI"

Copied!
106
0
0

Teks penuh

(1)

PENDEKATAN FIREFLY ALGORITHM (FA) UNTUK MENYELESAIKAN MASALAH PENGEPAKAN PERSEGI TIGA DIMENSI

SKRIPSI

DESSY PITON’S BUNGA PERTIWI

PROGRAM STUDI S-1 MATEMATIKA DEPARTEMEN MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI

(2)
(3)
(4)

PEDOMAN PENGGUNAAN SKRIPSI

(5)
(6)

KATA PENGANTAR

Alhamdulillahirabbil’alamin. Segala puji syukur penulis panjatkan kepada

Allah SWT karena hanya dengan rahmat dan karunia-Nya, sehingga skripsi yang berjudul “Pendekatan Firefly Algorithm (FA) untuk Menyelesaikan Masalah Pengepakan Persegi Tiga Dimensi ini dapat diselesaikan dengan baik. Shalawat serta salam bahagia semoga senantiasa tercurahkan kepada junjungan kita, Nabi Besar Muhammad SAW, pemimpin sekaligus sebaik-baiknya suri tauladan bagi kehidupan umat manusia.

Ucapan terima kasih disampaikan kepada :

1. Universitas Airlangga yang telah memberikan kesempatan kepada penulis untuk menuntut ilmu.

2. Badrus Zaman, S.Kom, M.Cs selaku Kepala Departemen Matematika Fakultas Sains dan Teknologi Universitas Airlangga.

3. Dr. M. Imam Utoyo, M.Si selaku Kepala Prodi Matematika Fakultas Sains dan Teknologi, sekaligus dosen wali yang senantiasa penuh kesabaran, ketelitian, keramahan, dalam memberikan bimbingan berupa ilmu, arahan, waktu, serta semangat.

(7)

5. Auli Damayanti S.Si, M. Si selaku dosen pembimbing II yang senantiasa penuh kesabaran, ketelitian, keramahan, dalam memberikan bimbingan berupa ilmu, arahan, waktu, serta semangat.

6. Dr. Eridani, Drs., M.Si dan Dr. Fatmawati, M.Si selaku dosen yang selalu memberikan semangat dan motivasi saat perkuliahan.

7. Yang Tercinta, kedua orang tua penulis, Eko Harto H. P. dan Sutrami, kedua adik penulis, Imelda Amitharia Jayanti dan Venando Aditya Putra, serta anggota keluarga lain yang selalu memberikan dukungan, perhatian, semangat, doa dan kasih sayangnya.

8. Teman-teman seperjuangan mahasiswa Matematika angkatan 2012, khususnya Qonitah Asia, Rien Recylia, Yulia Haqi, Rafika Agustina, Nindhyta, Rizky Azizia, Syahrul Fadilah, Herfinggi Ayu, Rokhana, Selva Putri, Kartika, Purani, dan masih banyak lainnya yang telah bersama selama kuliah, saling memberi semangat dan motivasi di celah-celah canda tawa.atas dukungan dan kebersamaannya selama ini.

Penulis berharap semoga skripsi ini dapat bermanfaat sebagai bahan pustaka dan penambah informasi khususnya bagi mahasiswa Universitas Airlangga. Penulis menyadari bahwa dalam penulisan skripsi ini, kemungkinan masih terdapat kekurangan sehingga saran dan kritik yang membangun sangat diharapkan untuk penulisan berikutnya.

Surabaya, 2 Agustus 2016

(8)

Dessy Piton’s Bunga Pertiwi, 2016, Pendekatan Firefly Algotirhm (FA) untuk Menyelesaikan Masalah Pengepakan Persegi Tiga Dimensi, Skripsi ini dibawah bimbingan Dr. Herry Suprajitno, M.Si dan Auli Damayanti, S.Si, M.Si.Departemen Matematika, Fakultas Sains dan Teknologi, Universitas Airlangga.

ABSTRAK

Makalah ini bertujuan untuk memecahkan masalah pengepakan persegi tiga dimensi menggunakan Firefly Algorithm (FA). Masalah pengepakan persegi tiga dimensi dapat didefinisikan sebagai penempatan sejumlah barang berbentuk persegi ke dalam suatu wadah berbentuk persegi tiga dimensi. Tujuan dari masalah ini adalah untuk meminimalkan penggunaan ruang pada wadah. Pendekatan menggunakan FA dipilih untuk menyelesaikan masalah pengepakan persegi tiga dimensi. FA sendiri terinspirasi oleh perilaku kunang-kunang. Pada FA terdapat dua masalah penting, pertama variasi intensitas cahaya, kedua perumusan daya tarik (attractiveness). Intensitas cahaya kunang-kunang akan ditentukan oleh fungsi tujuan, semakin terang intensitas cahaya kunang-kunang maka panjang wadah semakin minimum. Daya tarik sebanding dengan kecerahan, sehingga kunang-kunang dengan intensitas cahaya yang redup akan bergerak menuju kunang-kunang-kunang-kunang dengan intensitas cahaya yang lebih terang. Terdapat beberapa langkah dalam membuat program untuk menyelesaikan masalah pengepakan persegi tiga dimensi dengan pendekatan FA. Langkah pertama adalah membuat flowchart, dilanjutkan dengan membuat prosedur FA untuk menyelesaikan masalah pengepakan persegi tiga dimensi, dan yang terakhir adalah membuat program dengan menggunakan

software Borland C++. Program digunakan untuk membantu perhitungan saat jumlah tipe barang dan unit barang banyak. Terdapat tiga data yang diselesaikan dengan bantuan program, yaitu masalah pengepakan persegi tiga dimensi dengan 5 tipe barang dengan 81 unit barang, 10 tipe barang dengan 106 unit barang, dan 20 tipe barang dengan 110 unit barang. Berdasarkan hasil yang diperoleh menunjukkan bahwa semakin banyak iterasi yang dilakukan maka solusi yang diperoleh semakin baik. Menurut Yang (2010), menyelesaikan masalah menggunakan FA mempunyai solusi yang lebih baik dibandingkan dengan Genetic Algorithm dan Partical Swarm Optimization. Kemudian solusi yang diperoleh menggunakan FA lebih baik daripada hybrid Genetic Algorithm-Simulated Annealing (Putra, 2013) dan hybrid Partical Swarm Optimization-Simulated Annealing (Arasy, 2015).

(9)

Dessy Piton’s Bunga Pertiwi, 2016, Approach Firefly Algorithm (FA) for Solving Rectangular Three-Dimension Packing Problem, This theses was supervised by Dr. Herry Suprajitno, M.Si and Auli Damayanti, S.Si, M.Si, Faculty of Science and Technology, Airlangga University.

ABSTRACT

This paper aims to solve the problem of rectangular three-dimensional packing problem using Firefly Algorithm. Rectangular three-dimensional packing problem can be defined as the placement of a small item shaped like a square into one large rectangular object in three dimensions. The purpose of the problem is to minimize the use of the space of object large. Approach with FA have to solve the problem of rectangular three-dimension packing problem. Firefly Algorithm (FA) that inspired by the behavior of fireflies. In the FA, there are two important think, first the variation of light intensity, second formulation of the attractiveness. Firefly light intensity will be determined by the objective function, the brighter the light intensity of a firefly, the greater the minimum length of the object. The appeal is comparable to the brightness, so fireflies with low light intensity will move towards fireflies with higher light intensity. There are several steps in creating a program to solve the problem of rectangular three-dimension packing problem approach to the FA. The first step is to create a flowchart, followed by making the FA procedure to solve the problem of rectangular three-dimension packing problem, and the last is to make software programs using Borland C ++. The program is used to assist calculations when many of the type of item and unit of item . There are three data solved with the help of the program, the problem of rectangular three-dimension packing problem with 5 types of item and 81 units of item, 10 types of item and 106 units of item, and 20 types of item and 110 units of item. Based on the results obtained show that the more iterations performed, the obtained solution the better. According to Yang (2010), to solve the problem using the FA have a better solution than the Genetic Algorithm and Partical Swarm Optimization. Then the obtained solution using the FA better than hybrid Genetic Algorithm-Simulated Annealing (Putra, 2013) and hybrid Partical Swarm Optimization-Simulated Annealing (Arasy, 2015).

(10)

DAFTAR ISI

LEMBAR JUDUL ... i

LEMBAR PERNYATAAN ... ii

LEMBAR PENGESAHAN NASKAH SKRIPSI ... iii

PEDOMAN PENGGUNAAN SKRIPSI ... iv

SURAT PERNYATAAN TENTANG ORISINILITAS ... v

KATA PENGANTAR ... vi

ABSTRAK ... viii

ABSTRACT ... ix

DAFTAR ISI ... x

DAFTAR TABEL ... xiii

DAFTAR GAMBAR ... xiv

DAFTAR LAMPIRAN ... xv

BAB I PENDAHULUAN 1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 3

1.3 Tujuan ... 3

1.4 Manfaat ... 4

BAB II TINJAUAN PUSTAKA 2.1 Linear Programming ... 5

(11)

2.4 Pengkodean ... 9

2.5 Firefly Algorithm ... 10

2.6 C++... 15

BAB III METODOLOGI PENELITIAN ... 17

BAB IV PEMBAHASAN 4.1 Prosedur Firefly Algorithm (FA) untuk Menyelesaikan Masalah Pengepakan Persegi Tiga Dimensi ... 22

4.1.1 Input Data dan Inisialisasi Parameter ... 24

4.1.2 Membangkitkan Populasi Awal Firefly ... 25

4.1.3 Proses Pengelompokan Barang Berdasarkan Tipe ... 26

4.1.4 Evaluasi ... 27

4.1.5 Menentukan Intensitas Cahaya Firefly... 29

4.1.6 Membandingkan Firefly ... 30

4.1.7 Menentukan Firefly Terbaik ... 32

4.1.8 Menentukan Global Best Sementara ... 32

4.1.9 Melakukan Movement Pada Firefly Terbaik ... 34

4.2 Data ... 34

4.3 Contoh Kasus Pengepakan Persegi Tiga Dimensi yang diselesaikan Secara Manual ... 35

4.3.1 Input Data dan Inisialisasi Parameter ... 36

4.3.2 Membangkitkan Populasi Awal Firefly ... 36

4.3.3 Proses Pengelompokan Barang Berdasarkan Tipe ... 37

(12)

4.3.5 Menentukan Intensitas Cahaya Firefly... 44

4.3.6 Membandingkan Firefly ... 45

4.3.7 Menentukan Firefly Terbaik ... 49

4.3.8 Menentukan Global Best Sementara ... 49

4.3.9 Melakukan Movement Pada Firefly Terbaik ... 50

4.3.10 Mengecek Maksimum Iterasi ... 51

4.4 Implementasi Program Pada Contoh Kasus Pengepakan Persegi Tiga Dimensi ... 51

4.4.1 Implementasi Program Pada Data 1 (5 Tipe Barang dan 81 Jumlah Barang) ... 52

4.4.2 Implementasi Program Pada Data 1 (10 Tipe Barang dan 106 Jumlah Barang) ... 53

4.4.3 Implementasi Program Pada Data 1 (20 Tipe Barang dan 110 Jumlah Barang) ... 55

4.5 Perbandingan Hasil Perhitungan Firefly Algorithm (FA) dengan Hibrid Algoritma PSO-SA dan Hibrid Algoritma GA-SA ... 56

BAB V PENUTUP 5. 1. Kesimpulan ... 58

5. 2. Saran ... 59

(13)

DAFTAR TABEL

No Judul Halaman

4.1 Membangkitkan Populasi Awal Firefly 36 4.2 Pengurutan Bilangan dan Pembagian dan Tipe Barang 37 4.3 Urutan Barang yang Akan Dimasukkan 38

4.4 Hasil Evaluasi Setiap Firefly 44

4.5 Intensitas Cahaya Firefly 45

4.7 Firefly Baru dan Pengurutan Berdasarkan Tipe 47 4.8 Proses Membandingkan Intensitas Cahaya Tiap Firefly 48 4.9 Populasi Baru Firefly Setelah Melakukan Movement 48

4.10 Populasi Baru 50

4.11 Hasil Running Program Pada Data 1 52 4.12 Hasil Running Program Pada Data 2 54 4.13 Hasil Running Program Pada Data 3 55 4.14 Hasil Perbandingan FAdengan Hibrid PSO-SA dan

Hibrid GA-SA

(14)

DAFTAR GAMBAR

No Judul Halaman

4.1 Prosedur FireflyAlgorithm 23

4.2 Prosedur Inisialisasi Parameter 24

4.3 Prosedur Input Data 24

4.4 Prosedur Membangkitkan Populasi Awal 25 4.5 Prosedur Pengelompokan Barang Berdasarkan Tipe 26 4.6 Prosedur Input Barang Pada wadah 27

4.7 Prosedur Cek Konstrain 2.4 28

4.8 Prosedur Cek Konstrain 2.4 28

4.9 Prosedur Menghitung Fungsi Tujuan 29 4.10 Prosedur Menghitung Intensitas Cahaya Firefly ke-i 30 4.11 Prosedur Membandingkan Intensitas Cahaya Firefly 30 4.12 Prosedur Menghitung Jarak dan Attractiviness 31

4.13 Prosedur Persamaan Movement 31

4.14 Prosedur Firefly Terbaik 32

4.15 Prosedur Menentukan Global Best 33

4.16 Prosedur Firefly Terbaik 34

4.17 Ilustrasi Penempatan Barang Pertama 38

4.18 Ilustrasi Saat Pindah Strip 39

4.19 Ilustrasi Saat Pindah Layer 42

(15)

DAFTAR LAMPIRAN

No Judul Lampiran

1 Flowchart Penyelesaian Pengepakan Persegi Tiga Dimensi Menggunakan Firefly Algorithm

2 Data Tipe, Jumlah, dan Dimensi Barang 3 Source Code Program

(16)

BAB I PENDAHULUAN 1. 1. Latar Belakang

Pada suatu industri diperlukan beberapa bentuk efisiensi dalam pelaksanaan kegiatannya. Salah satu kegiatan yang harus diefisiensikan adalah kegiatan distribusi dan penyimpanan barang berbentuk persegi tiga dimensi. Biaya yang dikeluarkan untuk kedua kegiatan tersebut berpengaruh terhadap peningkatan biaya operasional suatu industri. Oleh karena itu diperlukan solusi optimal untuk menekan biaya pendisitribusian dan penyimpanan barang yang berkaitan dengan masalah pengepakan. Dereli dan Sena (2011) mengatakan bahwa masalah pengepakan ini telah banyak diaplikasikan di beberapa industri seperti tekstil, kayu, dan kertas.

(17)

metodenya adalah hibrid GA (Genetic Algorithm) dengan SA (Simulated Annealing), hibrid PSO (Particle Swarm Optimization) dengan SA.

Pada kesempatan ini akan dilakukan penelitian terhadap pendekatan

Firefly Algorithm (FA) untuk menyelesaikan masalah pengepakan persegi tiga dimensi. Algoritma kunang-kunang atau Firefly Algorithm (FA) adalah algoritma yang memperoleh inspirasi dari cara berkedipnya kunang-kunang. Algoritma ini diperkenalkan oleh Dr Xin-she Yang di Universitas Cambridge pada tahun 2007. Menurut Yang (2010) terdapat tiga hal yang mendasari algoritma kunang-kunang. Pertama, kunang-kunang akan tertarik dengan kunang-kunang lain yang tingkat kecerahannya lebih tinggi. Kedua, kecerahan atau intensitas cahaya kunang-kunang ditentukan oleh nilai fungsi tujuan dari masalah yang diberikan. Dan ketiga, intensitas cahaya dari kunang-kunang akan berkurang seiring dengan bertambahnya jarak. Selain itu, FA dianggap lebih mengungguli dibandingkan dengan GA dan PSO.

(18)

1. 2. Rumusan Masalah

Berdasarkan latar belakang tersebut, muncul beberapa masalah yang dirumuskan sebagai berikut :

1. Bagaimana menyelesaikan masalah pengepakan persegi tiga dimensi menggunakan pendekatan firefly algorithm (FA) ?

2. Bagaimana membuat program yang dapat digunakan untuk menyelesaikan masalah pengepakan persegi tiga dimensi menggunakan pendekatan firefly algorithm (FA) ?

3. Bagaimana mengimplementasikan program pengepakan persegi tiga dimensi menggunakan pendekatan firefly algorithm (FA) pada contoh kasus?

1. 3. Tujuan

Berdasarkan rumusan masalah tersebut, diperoleh tujuan dari penelitihan ini, yaitu :

1. Penyelesaian pengepakan persegi tiga dimensi menggunakan pendekatan firefly algorithm (FA).

2. Membuat program untuk menyelesaikan pengepakan persegi tiga dimensi menggunakan pendekatan firefly algorithm (FA).

(19)

1. 4. Manfaat

(20)

BAB II

TINJAUAN PUSTAKA

Pada bab ini akan diuraikan beberapa definisi yang digunakan pada pembahasan penerapan Firefly Algorithm (FA) pada masalah pengepakan persegi tiga dimensi.

2. 1 Linear Programming

Materi yang dibahas pada bagian ini bersumber dari Taha (1996). Pemrograman linier (LP) telah terbukti sebagai salah satu alat riset operasi yang paling efektif. Keberhasilannya berakar dari keluwesan dalam menjabarkan berbagai situasi kehidupan nyata di bidang-bidang berikut ini: industri, pertanian, transportasi, ekonomi, dan kesehatan. Pemrograman linier adalah sebuah alat deterministik, yang berarti bahwa semua parameter model diasumsikan dengan pasti.

Pada umumnya, model pemrograman linear (LP) seperti pada model riset operasi, memiliki tiga komponen dasar yaitu :

1. Menentukan variabel keputusan yang akan dicari.

2. Fungsi tujuan yang kita butuhkan untuk mengoptimalkan (memaksimalkan atau meminimalkan)

3. Kendala dengan solusi yang memenuhi batasan yang ada.

(21)

dalam format yang sama, yang disebut bentuk standar. Sifat dari bentuk ini adalah sebagai berikut:

1. Semua batasan berbetuk persamaan. 2. Semua variabel bernilai positif.

3. Fungsi tujuan dapat berupa maksimisasi atau minimisasi.

Untuk masalah maksimalisasi, solusi optimal untuk LP adalah titik di daerah layak dengan nilai fungsi tujuan terbesar. Demikian pula, untuk masalah minimalisasi, solusi optimal adalah titik di wilayah layak dengan nilai fungsi tujuan terkecil.

Masalah LP dalam bentuk standar dapat diekspresikan dalam bentuk matriks sebagai berikut:

Maksimumkan , 𝑍 = ∑𝑛𝑖=1 𝑐𝑖𝑥𝑖 (2.1)

dengan syarat kendala

(𝐴, 𝐼)𝑋 = 𝑏 (2.2)

𝑋 ≥ 0

Dimana I adalah matriks identitas berordo 𝑚𝑥𝑚 dan

(22)

banyaknya sumber daya yang tersedia untuk kegiatan 𝑖, 𝑚 adalah banyaknya jenis sumber daya, dan 𝑛 adalah banyaknya jenis kegiatan.

Fungsi tujuan diatas dapat berubah menjadi meminimumkan, dengan kendala fungsional yang dapat berganti tanda menjadi ≥ atau = sesuai dengan permasalahan akan diselesaikan.

2. 2 Pengepakan Persegi Tiga Dimensi

Pengepakan persegi tiga dimensi dapat diartikan sebagai proses penempatan sejumlah barang berbentuk kotak kedalam suatu wadah dalam bentuk persegi tiga dimensi yang bertujuan untuk meminimalkan penggunaan ruang dalam wadah yang terpakai.

(Bortfeldt dan Gehring 2001) Pada masalah pengepakan persegi tiga dimensi terdapat 𝑛 barang yang memiliki panjang, lebar, dan tinggi, serta wadah yang memiliki tinggi (H) yang tetap dan lebar (W) yang tetap. Baranng tersebut ditempatkan pada wadah secara baik dan efektif sehingga dapat mengoptimalkan fungsi tujuan yang diberikan.

(23)

Menurut Dereli dan Sena (2011), masalah pengepakan dapat diselesaikan dengan asumsi sebagai berikut :

1. Produk berbentuk kotak persegi panjang didefinisikan dengan dimensi panjang, lebar, dan tinggi yang diketahui.

2. Kotak dapat diputar.

3. Setiap kotak dapat ditumpuk diatas kotak yang lain.

Fungsi tujuan pada masalah pengepakan adalah meminimalkan ruang kosong pada wadah saat semua barang dimasukkan ke dalam wadah.

Secara matematis permasalahan ini dideskripsikan sebagai berikut : 𝑀𝑒𝑚𝑖𝑛𝑖𝑚𝑢𝑚𝑘𝑎𝑛, 𝑍 = ∑𝐾𝑘=1𝑑𝑘 (2.3) Dengan Kendala,

∑𝑛𝑖=1𝑃𝑖𝑗𝑘 ≤ 𝑊 (2.4)

𝑟𝑖𝑗𝑘 + ∑𝑗−1𝑖=1ℎ𝑖𝑘 ≤ 𝐻, (2.5)

𝑖 = 1,2, … , 𝑛, 𝑗 = 1,2, … , 𝐽, 𝑘 = 1,2, … , 𝐾

Keterangan

𝑑𝑘 = tebal layer ke-k

𝑃𝑖𝑗𝑘 = panjang barang ke-i pada strip ke-j layer ke-k 𝑊 = lebar wadah

𝑟𝑖𝑗𝑘 = tinggi barang ke-i pada strip ke-j layer ke-k ℎ𝑖𝑘 = tinggi strip barang ke-i layer ke-k

H = tinggi wadah

(24)

J = banyaknya strip yang terbentuk pada wadah n = banyaknya barang yang akan dimasukkan

(Imahori et al, 2007) 2. 3 Algoritma

Algoritma adalah sebuah strategi yang mengandalkan kemampuan berpikir secara logis untuk memecahkan suatu masalah. Dalam algoritma, dimulai dengan berpikir apa yang dimiliki (kekuatan dan kelemahan), selanjutnya akan diatur langkah agar tujuan yang diharapkan terwujud.

(Wahyudi, 2004) Secara informal, algoritma adalah prosedur komputasi yang terdefinisi dengan baik yang mengambil beberapa nilai, atau himpunan nilai, sebagai masukan dan menghasilkan beberapa nilai, atau himpunan nilai sebagai output. Sebuah algoritma adalah urutan langkah-langkah komputasi yang mengubah input ke output.

(Cormen et al, 2001) 2. 4 Pengkodean

(25)

1. Pengkodean biner

Dalam pengkodean biner, setiap solusi adalah rangkaian dari 0 atau 1. 2. Pengkodean nilai

Dalam pengkodean nilai, setiap solusi adalah rangkaian dari beberapa nilai. Nilai tersebut adalah nilai apapun yang dapat dihubungkan ke permasalahan, dari angka, bilangan real atau huruf hingga beberapa objek yang rumit.

3. Pengkodean permutasi

Dalam pengkodean permutasi, setiap solusi adalah rangkaian dari angka, dimana menggambarkan angka dalam suatu barisan.

2. 5 Firefly Algorithm

Algoritma Firefly (FA) pertama kali dikembangkan oleh Xin-She Yang pada akhir tahun 2007 dan 2008 di Cambridge University, yang didasarkan pada pola berkedip dan perilaku kunang-kunang. Menurut Xin Yang (2010), FA menggunakan tiga aturan yang dianggap ideal, yakni :

1. Kunang bersifat unisex, sehingga satu kunang-kunang dapat tertarik dengan kunang-kunang lain tanpa melihat jenis kelamin.

(26)

akan mendekati kunang-kunang yang lebih terang. Jika dari kedua kunang-kunang tidak ada yang lebih terang maka kunang-kunang akan bergerak secara acak.

3. Kecerahan pada kunang-kunang akan ditentukan oleh fungsi tujuan dari masalah yang diberikan.

Berikut ini beberapa istilah yang digunakan dalam Firefly Algorithm (FA) dan definisinya menurut Yang (2010) :

Definisi 2.1 Populasi adalah sebuah kumpulan solusi yang direprentasikan dengan kunang-kunang (firefly)

Definisi 2.2 Firefly adalah individu dalam populasi yang terdiri dari kumpulan kode yang merepresentasikan solusi dari permasalahan.

Definisi 2.3 Intensitas cahaya adalah nilai atau ukuran untuk mengevaluasi firefly.

Definisi 2.4 Atractiveness adalah daya tarik seekor kunang-kunang yang dinilai oleh kunang-kunang lainnya berdasarkan intensitas cahayanya.

Definisi 2.5 Distance adalah jarak antar dua firefly.

(27)

2.5.1 Intensitas cahaya

Dalam algoritma FA, terdapat dua masalah penting yaitu variasi intensitas cahaya dan perumusan atractiveness. Kecerahan pada kunang-kunang akan ditentukan oleh fungsi tujuan dan atractiveness sebanding dengan kecerahan, dengan demikian untuk setiap dua kunang-kunang yang berkedip, kunang-kunang dengan cahaya yang kurang terang akan bergerak ke arah kunang-kunang yang cahanya lebih cerah.

Intensitas cahaya pada kunang-kunang dipengaruhi oleh fungsi tujuan. Tingkat intensitas cahaya untuk masalah meminimumkan sebuah kunang-kunang 𝑥 dapat dilihat sebagai 𝐼(𝑥) = 1

𝑓(𝑥). Nilai 𝐼(𝑥) merupakan tingkat intensitas cahaya pada kunang-kunang 𝑥 yang berbanding terbalik terhadap solusi fungsi tujuan permasalahan yang akan dicari 𝑓(𝑥).

Atractiveness 𝛽 bernilai relatif, karena intensitas cahaya harus dilihat dan dinilai oleh kunang-kunang lain. Dengan demikian, hasil penilaian akan berbeda tergatung dari jarak antara kunang-kunang yang satu dengan yang lainnya 𝑟𝑖𝑗. Selain itu, intensitas cahaya akan menurun dari sumbernya dikarenakan terserap oleh media, misalnya udara. Sehingga dapat ditentukan atractiveness (𝛽) dengan jarak 𝑟 sebagai berikut :

𝛽 = 𝛽0𝑒−𝛾𝑟2 (2.6)

(28)

2.5.2 Distance

Distance atau jarak antara dua kunang-kunang i dan j pada posisi 𝑥𝑖 , dan 𝑥𝑗, masing-masing adalah jarak kartesian yang dirumuskan sebagai berikut:

𝑟𝑖𝑗 = ‖𝑥𝑖− 𝑥𝑗‖ = √∑ (𝑥𝑛𝑘=1 𝑖𝑘− 𝑥𝑗𝑘)2 (2.7)

dengan 𝑥𝑖𝑘adalah komponen ke- 𝑘 dari 𝑥𝑖 pada firefly 𝑖.

(Yang, 2010) 2.5.3 Movement

Movement adalah pergerakan yang dilakukan firefly 𝑖 karena ketertarikan terhadap fireflylain 𝑗, yang intensitas cahanya lebih terang. Dengan adanya movement, maka posisi firefly atau solusi dari firefly

tersebut akan berubah sesuai rumus berikut :

𝑥𝑖_𝑛𝑒𝑤𝑘 = 𝑥𝑖_𝑙𝑎𝑚𝑎𝑘 + 𝛽0 𝑒−𝛾𝑟2(𝑥𝑗𝑘𝑙𝑎𝑚𝑎 − 𝑥𝑖𝑘𝑙𝑎𝑚𝑎) + 𝛼 (𝑟𝑎𝑛𝑑 − 1

2) (2.8) dengan suku pertama merupakan posisi lama dari 𝑓𝑖𝑟𝑒𝑓𝑙𝑦, suku kedua terjadi karena ketertarikan, suku ketiga adalah pergerakan random firefly dengan 𝛼 adalah koefisien parameter random dan 𝑟𝑎𝑛𝑑 adalah bilangan real random pada interval [0,1]. Pada sebagian besar implementasi Firefly Algorithm menggunakan 𝛽0 = 1, 𝛼 ∈ [0,1] dan 𝛾 ∈ [0, ∞)

(29)

2.5.4 Proses Firefly Algorithm

Menurut Yang (2014), Firefly Algorithm dijalankan dengan cara sebagai berikut :

1. Inisialisasi parameter Firefly Algorithm.

2. Membangkitkan secara random populasi awal sebanyak 𝑚 firefly. Hitung intensitas cahaya tiap firefly 𝐼(𝑥) berdasarkan nilai fungsi tujuan 𝑓(𝑥).

3. Membandingkan intensitas cahaya tiap firefly dengan firefly

lainnya. Apabila terdapat firefly yang intensitas cahayanya lebih besar, akan dilakukan update pergeraka firefly menggunakan persamaan movement (2.5).

4. Menentukan G-best. Untuk iterasi pertama, firefly terbaik (firefly

dengan intensitas cahaya terbesar) adalah G-best.

5. Membandingkan firefly terbaik tiap iterasi denngan G-best yang diperoleh. Apabila intensitas cahaya firefly terbaik saat itu lebih besar daripada G-best maka firefly tersebut menjadi G-best.

6. Melakukan movement dengan persamaan

𝑥𝑖_𝑛𝑒𝑤𝑘 = 𝑥𝑖_𝑙𝑎𝑚𝑎𝑘 + 𝛼 (𝑟𝑎𝑛𝑑 −12) (2.9) kepada firefly terbaik dan menggabungkannya dengan firefly yang lain untuk menjadi populasi awal pada iterasi selanjutnya.

(30)

2. 6 Program C++

Materi yang dibahas pada bagian ini bersumber dari Abdul Kadir (2013). Pemograman C++ merupakan bahasa pemograman yang berlandaskan bahasa C. Bahasa C adalah pemrograman terstuktur yang membagi program dalam bentuk sejumlah blok, sehingga dapat mempermudah dalam pembuatan dan pengembangan program. Bahasa C diciptakan pada tahun 1972 oleh Brian W. Kernighan dan Dennis M. Ritche. Satu dekade kemudian, Bjarne Stroustrup, menciptakan C++ sehingga bahasa C++ lebih bersifat kompatible. Nama C++ sendiri diberikan oleh Rick Mascitti pada musim panas 1983.

C++ mendukung Pemograman Berorientasi Objek (PBO). Kebanyakan pakar setuju bahwa PBO dan C++ dapat mengurangi kekompleksitasan, terutama pada program yang terdiri dari 10.000 baris atau lebih. Greg Perry (1993) mengutip ungkapan para pelopor industri C++ yang pada intinya menyatakan C++ dapat meningkatkan produktivitas pemogram lebih dari dua kali dibanding bahasa prosedural seperti C, Pascal, Basic. Hal ini didasarkan pada kenyataan bahwa kode yang ditulis pada C++ lebih mudah untuk digunakan kembali pada program-program lain.

(31)

Program C++ dapat ditulis menggunakan sebarang editor teks, seperti EDIT (milik DOS), Workstar, slidekick ataupun menggunakan editor bawaan dari compiler. Program C++ biasa ditulis dengan nama ekstensi .CPP (dari kata c plus-plus). Agar program ini bisa dijalankan atau dieksekusi, program harus dikompilasi lebih dahulu dengan menggunakan compiler C++. Pada saat pengkompilasian, program sumber (.C++) bersama fiele-file header (berekstensi .H atau .HPP) akan diterjemahkan compiler C++dalam bentuk onyek (.OBT). file obyek ini berupa file dalam format biner (berkode 0 dan 1). Selanjutnya file obyek ini bersama-sama dengan file obyek lain serta file pustaka (.LIB) dikaitkan menjadi satu oleh linker. Hasilnya berupa file yang bisa dijalankan dari sistem operan secara langsung.

(32)

BAB III

METODE PENELITIAN

Untuk menyelesaikan masalah pengepakan persegi tiga dimensi dengan menggunakan pendekatan firefly algorithm (FA) diperlukan langkah-langkah sebagai berikut :

1. Melakukan Studi pustaka tentang pengepakan persegi tiga dimensi berbentuk kotak, dan firefly algorithm (FA).

2. Menginputkan banyaknya tipe barang (l) berdasarkan tinggi (t), lebar (q) dan panjang (p) barang, kemudian banyaknya barang (n), lebar wadah (W) dan tinggi wadah (H).

3. Menerapkan Firefly Algorithm (FA) dalam masalah pengepakan persegi tiga dimensi dengan prosedur seperti berikut :

A. Menginisialisasi parameter yang akan digunakan, seperti banyaknya firefly (m), koefisien parameter random 𝛼, keatraktifan

pada saat awal 𝛽0, koefisien penyerapan cahaya pada medium 𝛾, dan maksimum iterasi yang diinginkan (MaxIterasi).

(33)

masing-C. Mengevaluasi masing-masing firefly dengan cara sebagai berikut : i. Mengurutkan elemen firefly (tanpa mengubah urutan

kolom) sesuai dengan tipe barang yang digunakan.

ii. Membentuk alur barang yang akan dimasukkan terlebih dahulu kedalam wadah. Barang pertama yang dimasukkan akan diletakkan di ujung kiri bawah wadah, dengan tinggi barang sejajar dengan tinggi wadah, panjang barang sejajar dengan lebar wadah, dan lebar barang sejajar dengan panjang wadah. Saat barang pertama dimasukkan, terdapat ruang kosong yang terletak diatas, disamping, dan didepan barang pertama. Kemudian barang selanjutnya akan diletakkan di depan barang sebelumnya. Hal tersebut dilakukan terus hingga terbentuk strip pertama, dengan tinggi strip ℎ𝑘 = max {𝑟𝑖𝑘}. Jika panjang semua barang

(34)

iii. Menghitung fungsi tujuan yaitu jumlah total dari lebar layer yang terbentuk.

iv. Menghitung intensitas cahaya untuk masing-masing firefly

dengan rumusan 𝐼(𝑥) =𝑓(𝑥)1 .

D. Membandingkan intensitas cahaya firefly i dengan firefly j,

seperti berikut :

i. Jika intensitas cahaya firefly i lebih besar dari firefly j,

maka ulangi langkah ini dengan 𝑗 = 𝑗 + 1.

ii. Jika intensitas cahaya fireflyi lebih kecil dari firefly j, maka akan dihitung jarak firefly i ke firefly j sesuai dengan

persamaan (2.4). Kemudian menghitung attractiveness (𝛽)

dan melakukan movement dari firefly i ke firefly j.

E. Ulangi langkah D dengan 𝑗 = 𝑗 + 1 hingga semua firefly

dibandingkan.

F. Menetukan firefly terbaik yakni firefly dengan intensitas cahaya yang paling besar.

(35)

pada dengan g-best. Jika intensitas cahaya firefly terbaik lebih besar daripada intensitas cahaya g-best maka firefly tersebut akan menjadi g-best.

H. Menyimpan g-best sebagai calon solusi terbaik.

I. Melakukan movement pada firefly terbaik dengan persamaan

𝑥𝑖𝑘𝑛𝑒𝑤 = 𝑥𝑖𝑘𝑙𝑎𝑚𝑎 + 𝛼 (𝑟𝑎𝑛𝑑 − 1 2)

Hasil dari movement akan menjadi populasi awal pada iterasi selanjutnya.

J. Ulangi langkah D sampai G hingga maksimum iterasi tercapai. K. Membandingkan intensitas cahaya g-best dengan hasil movement

firefly terbaik di akhir iterasi (𝑥𝑖_𝑏𝑎𝑟𝑢). Jika I(g-best) < I(𝑥𝑖_𝑏𝑎𝑟𝑢),

maka g-best= 𝑥𝑖_𝑏𝑎𝑟𝑢. Sehingga diperoleh solusi dari g-best.

4. Membuat program dari prosedur yang telah dijelaskan sebelumnya. 5. Mengimplementasikan program pada contoh kasus.

(36)

BAB IV PEMBAHASAN

Pada bab ini akan dijelaskan penggunaan Firefly Algorithm (FA) untuk menyelesaikan masalah pengepakan persegi tiga dimensi.

4. 1. Prosedur Firefly Algorithm (FA) untuk Menyelesaikan Masalah Pengepakan Persegi Tiga Dimensi

(37)

sebaliknya. Prosedur Firefly Algorithm untuk menyelesaikan masalah pengepakan persegi tiga dimensi disajikan pada Gambar 4.1.

Prosedur Firefly Algorithm

Begin

inisialisasi parameter();

input data();

bangkitkan populasi awal firefly();

pengurutan data();

hitung fungsi tujuan();

hitung intensitas cahaya setiap firefly();

While (𝑡 < 𝑚𝑎𝑘𝑠_𝑖𝑡𝑒𝑟𝑎𝑠𝑖)

For 𝑖 ← 1 to banyak firefly For 𝑗 ← 1 to banyak firefly If (𝐼(𝑥𝑖) < 𝐼(𝑥𝑗))

lakukan movement pada 𝑥𝑖();

hitung fungsi tujuan();

update intensitas cahaya;

End if

End for 𝑗 End for 𝑖

tentukan firefly terbaik();

tentukan global best sementara();

lakukan movement random pada firefly terbaik();

End while

tentukan 𝑔 − 𝑏𝑒𝑠𝑡;

End

Gambar 4.1. Prosedur Firefly Algorithm

(38)

Prosedur Firefly Algorithm selengkapnya akan dijelaskan pada sub bab berikut ini.

4.1.1 Input Data dan Inisialisasi Parameter

Langkah pertama dari FA adalah inisialisasi parameter. Prosedur utuk inisialisasi parameter disajikan pada Gambar 4.2.

Prosedur inisialisasi parameter

Begin

m jumlah populasi awal fireflies ;

maks_iterasi jumlah iterasi ;

𝛼 ← koefisien parameter random;

𝛽0koefisien ketraktifan awal ;

𝛾 ← koefisien penyerapan cahaya oleh udara ;

End

Gambar 4.2. Prosedur Inisialisasi Parameter

Langkah selanjutnya adalah memasukkan data berupa ukuran barang untuk setiap tipe dan ukuran wadah. Prosedur utuk input data disajikan pada Gambar 4.3.

Prosedur input data

Begin

For i ← 1 𝑡𝑜 𝑗𝑢𝑚𝑙𝑎ℎ 𝑡𝑖𝑝𝑒 For 𝑦 ← 1 𝑡𝑜 𝑑𝑖𝑚𝑒𝑛𝑠𝑖

𝐷𝑖𝑦← membaca ukuran barang ;

𝑃 ← ambil panjang barang ;

𝑑 ← ambil lebar barang ;

𝑟 ← ambil tinggi barang ;

End for 𝑦 End for 𝑖 End

Gambar 4.3. Prosedur Input Data

(39)

4.1.2 Membangkitkan Populasi Awal Firefly

Pembangkitan populasi awal firefly akan dilakukan sebanyak m

firefly. Setiap firefly mempunyai banyak elemen sesuai dengan banyaknya barang yang akan dimasukkan. Pembangkitkan elemen firefly dilakukan dengan cara membangkitkan secara acak bilangan real pada interval [0,1]. Prosedur untuk membangkitkan populasai awal firefly disajukan pada Gambar 4.4.

Prosedur membangkitkan populasi awal firefly

Begin

For p ← 1 𝑡𝑜 𝑚 For u ← 1 𝑡𝑜 𝑛

𝑟 ← 𝑟𝑎𝑛𝑑%1000 ; 𝑅 ← 0.001 ∗ 𝑟 ;

𝐷𝑅𝑘𝑢 ← 𝑅 ; End for u End for p End

Gambar 4.4. Prosedur Membangkitkan Populasi Awal

(40)

4.1.3Proses Pengelompokan Barang Berdasarkan Tipe

Prosedur pengelompokan barang berdasarkan tipe

Begin

(41)

berdasarkan tipe barang. Prosedur pengelompokan barang berdasarkan tipe disajikan pada Gambar 4.5.

Pertama yang dilakukan adalah melakukan pengurutan elemen firefly

ke-𝑝 dan komponen barang ke-𝑢 yang disimbolkan dengan 𝑅𝑝𝑢. Selanjutnya, jika 𝐷𝑅𝑝𝑢 = 𝑅𝑝𝑢 maka kita memperoleh 𝐷𝑈𝑝𝑢 = 𝑢, dengan 𝐷𝑈 adalah symbol dari data yang digunakan pada tahap selanjutnya. Setelah itu 𝐷𝑈 dimodifikasi sedemikian hingga sesuai dengan tipe barang. 4.1.4Evaluasi

Pada tahap ini akan dihitung fungsi tujuan setiap firefly dengan menggunakan aturan fungsi tujuan (2.3). Langkah pertama adalah memasukkan barang sesuai dengan urutan pada setiap firefly. Prosedur input barang disajikan pada Gambar 4.6.

G a m

bar 4.6. Prosedur Input Barang Pada Wadah

Barang yang dimasukkan ke dalam wadah tidak melalui proses perputaran balik secara vertikal maupun horizontal. Makna dari 𝐵𝑠𝑡 adalah barang yang berada di strip ke-𝑠 layer ke- 𝑡. 𝐽 adalah banyaknya strip yang terbentuk dalam suatu layer dan 𝐾 adalah banyaknya layer yang terbentuk pada wadah. Strip akan membagi tinggi wadah menjadi beberapa bagian

Prosedur input barang pada wadah Begin

For 𝑠 ← 1 𝑡𝑜 𝐽 For t ← 1 𝑡𝑜 𝐾

𝐵

𝑠𝑡 ← input barang ;

(42)

dan layer akan membagi panjang wadah menjadi beberapa bagian. Setiap barang yang dimasukkan ke dalam wadah akan melalui tahap pengecekan konstrain (2.4) dan (2.5). Prosedur cek konstrain (2.4) disajikan pada Gambar 4.7.

Prosedur Cek Konstrain 2.4 (pindah strip)

Begin

If (Panjang total > lebar wadah)

𝐵𝑠𝑡 ← pindah strip ; s++ ;

Panjang total ← P ;

End if End

Gambar 4.7. Prosedur Cek Konstrain 2.4

Jika panjang total dari barang yang telah dimasukkan lebih besar dari lebar wadah, maka dilakukan pindah strip. Panjang total sementara untuk suatu strip adalah panjang barang yang menyebabkan terbentuknya strip baru. Setelah melakukan pengecekan pada konstrain (2.4) langkah selanjutnya adalah melakukan pengecekan pada konstrain (2.5). prosedur cek konstrain (2.5) disajikan pada Gambar 4.8.

Prosedur Cek Konstrain 2.5 (pindah layer)

Begin

For 𝑠 ← 1 𝑡𝑜 𝐽

For 𝑡 ← 1 𝑡𝑜 𝐾

If (Tinggi srip > tinggi wadah)

𝐵𝑠𝑡pindah layer ;

𝑡++ ;

End if 𝐵𝑠𝑡 ← 𝑟 ;

End for 𝑡

End for 𝑠

(43)

Jika tinggi strip yang telah terbentuk lebih besar dari wadah, maka akan dilakukan pindah layer yang disimbolkan dengan t++. Tinggi strip pertama pada layer selanjutnya merupakan tinggi barang (r) pada layer sebelumnya yang menyebabkan terjadinya pindah layer. Saat pindah layer maka dapat diketahui tebal pada layer sebelumnya. Prosedur menghitung fungsi tujuan disajikan pada Gambar 4.9.

Prosedur Menghitung Fungsi Tujuan

Begin

For 𝑝 ← 1 𝑡𝑜 𝑚

f(𝑥𝑝) ← 𝑆𝑈𝑀 𝑑(1, 𝐾) ;

End for 𝑝 End

Gambar 4.9. Prosedur Menghitung Fungsi Tujuan

Setelah semua barang sudah dimasukkan ke dalam wadah, maka telah terbentuk beberapa layer yang masing-masing memiliki lebar. Dengan demikian diperoleh fungsi tujuan dengan menjumlahkan lebar layer yang telah terbentuk.

4.1.5Menentukan Intensitas Cahaya Firefly

(44)

Prosedur Menghitung Intensitas Cahaya firefly Ke-i

Begin

𝐼𝐶𝑝 ← 𝑝𝑜𝑤(𝑓(𝐶𝑝), −1) ; End

Gambar 4.10. Prosedur Menghitung Intensitas Cahaya firefly ke-i

Intensitas cahaya (𝐼𝐶𝑝) yang diperoleh dengan rumus 𝑓𝑢𝑛𝑔𝑠𝑖 𝑡𝑢𝑗𝑢𝑎𝑛1 merupakan indikator baik buruknya suatu firefly p. Jika suatu firefly

memiliki intensitas cahaya paling tinggi dibandingkan firefly lainnya, maka dapat dikatakan bahwa firefly tersebut adalah solusi terbaik.

4.1.6Membandingkan Firefly

Pada tahap ini nilai intensitas cahaya pada firefly yang akan dibandingkan untuk memperoleh firefly terbaik. Prosedur untuk membandingkan intensitas cahaya disajikan pada Gambar 4.11.

Prosedur Membandingkan Intensitas Cahaya firefly

Begin

For p ← 1 𝑡𝑜 𝑚 For q ← 1 𝑡𝑜 𝑚 If (𝐼𝐶𝑝 < 𝐼𝐶𝑞 )

firefly p bergerak menuju firefly q ;

End if

End for q End for p End

Gambar 4.11. Prosedur Membandingkan Intensitas Cahaya Firefly

(45)

attractiveness. Prosedur untuk menghitung jarak dan attractiveness

disajikan pada Gambar 4.12.

Prosedur Menghitung Jarak dan Attractiveness

Gambar 4.12. Prosedur Menghitung Jarak dan Attractiveness

Setelah menghitung jarak dan attractiveness, selanjutnya adalah melakukan movement ke firefly 𝑞. Sehingga diperoleh solusi baru untuk setiap firefly. Prosedur untuk movement disajikan pada Gambar 4.13.

Prosedur Persamaan Movement

Gambar 4.13. Prosedur Persamaan Movement

(46)

4.1.7Menentukan Firefly terbaik

Prosedur Firefly Terbaik

Begin

𝑏𝑒𝑠𝑡 ← 𝐼𝐶1 ;

For 𝑝 ← 2 𝑡𝑜 𝑚 If (𝑏𝑒𝑠𝑡 < 𝐼𝐶𝑝 ) 𝑏𝑒𝑠𝑡 ← 𝐼𝐶𝑝;

End if End for 𝑝 End

Gambar 4.14. Prosedur Firefly Terbaik

Setelah membandingkan intensitas cahaya tiap firefly, langkah selanjutnya adalah menentukan firefly dengan intensitas cahaya tertinggi. Intensitas tertinggi pada setiap iterasi ini dianggap sebagai firefly terbaik. Prosedur untuk movement disajikan pada Gambar 4.14.

4.1.8Menentukan Global best Sementara

Global best (𝑔 − best) adalah firefly yang mempunyai intensitas terbesar dari semua iterasi yang telah dilakukan. Apabila firefly terbaik pada saat itu lebih besar intensitas cahayanya daripada 𝑔 − best, maka

firefly tersebut menjadi 𝑔 − best.

Pada iterasi pertama, 𝑔 − best merupakan firefly terbaik. Sedangkan untuk iterasi selanjutnya, firefly terbaik pada iterasi tersebut akan dibandingkan dengan 𝑔 − best pada iterasi sebelumnya. Apabila firefly

(47)

best pada iterasi tersebut sama dengan 𝑔 − best pada iterasi sebelunya. Prosedur untuk menentukan 𝑔 − bestdisajikan pada Gambar 4.15.

Prosedur Menentukan Global Best

Begin

If (𝑖𝑡𝑒𝑟𝑎𝑠𝑖 = 1) 𝑖𝑑𝑔𝑏𝑒𝑠𝑡 = 𝑖𝑑𝑓𝑏𝑎𝑖𝑘; 𝑓𝑔𝑏𝑒𝑠𝑡𝒊𝒕𝒆𝒓𝒂𝒔𝒊 =f(𝑥𝑖𝑑𝑔𝑏𝑒𝑠𝑡) 𝑖𝑔𝑏𝑒𝑠𝑡𝒊𝒕𝒆𝒓𝒂𝒔𝒊= 𝐼𝐶𝑖𝑑𝑔𝑏𝑒𝑠𝑡 For 𝑢 ← 1 𝑡𝑜 𝑛

𝑔𝑏𝑒𝑠𝑡𝑓(𝑖𝑡𝑒𝑟𝑎𝑠𝑖)(𝑢)= 𝐷𝑅(𝑖𝑑𝑔𝑏𝑒𝑠𝑡)(𝑢) End for 𝑢

Else if (𝑖𝑡𝑒𝑟𝑎𝑠𝑖 > 1)

If(𝐼𝐶𝑖𝑑𝑓𝑏𝑎𝑖𝑘≥ 𝑖𝑔𝑏𝑒𝑠𝑡𝒊𝒕𝒆𝒓𝒂𝒔𝒊−𝟏)

𝑖𝑑𝑔𝑏𝑒𝑠𝑡 = 𝑖𝑑𝑓𝑏𝑎𝑖𝑘; 𝑓𝑔𝑏𝑒𝑠𝑡𝒊𝒕𝒆𝒓𝒂𝒔𝒊 =f(𝑥𝑖𝑑𝑔𝑏𝑒𝑠𝑡) 𝑖𝑔𝑏𝑒𝑠𝑡𝒊𝒕𝒆𝒓𝒂𝒔𝒊= 𝐼𝐶𝑖𝑑𝑔𝑏𝑒𝑠𝑡 For 𝑢 ← 1 𝑡𝑜 𝑛

𝑔𝑏𝑒𝑠𝑡𝑓(𝑖𝑡𝑒𝑟𝑎𝑠𝑖)(𝑢)= 𝐷𝑅(𝑖𝑑𝑔𝑏𝑒𝑠𝑡)(𝑢) End for 𝑢

Else if(𝐼𝐶𝑖𝑑𝑓𝑏𝑎𝑖𝑘≥ 𝑖𝑔𝑏𝑒𝑠𝑡𝒊𝒕𝒆𝒓𝒂𝒔𝒊−𝟏) 𝑓𝑔𝑏𝑒𝑠𝑡𝒊𝒕𝒆𝒓𝒂𝒔𝒊 =f(𝑥𝑖𝑡𝑒𝑟𝑎𝑠𝑖−1) 𝑖𝑔𝑏𝑒𝑠𝑡𝒊𝒕𝒆𝒓𝒂𝒔𝒊= 𝐼𝐶𝑖𝑡𝑒𝑟𝑎𝑠𝑖−1 For 𝑢 ← 1 𝑡𝑜 𝑛

𝑔𝑏𝑒𝑠𝑡𝑓(𝑖𝑡𝑒𝑟𝑎𝑠𝑖)(𝑢)= 𝐷𝑅(𝑖𝑡𝑒𝑟𝑎𝑠𝑖−1)(𝑢) End for 𝑢

End if End if End

Gambar 4.15. Prosedur Menentukan Global Best

Setelah mendapatkan 𝑔 − best, langkah selanjutnya adalah melakukan

movement pada firefly terbaik.

(48)

Firefly terbaik pada setiap iterasi akan melakukan pergerakan secara random. Hal ini dilakukan untuk mencari solusi lain disekitar firefly

terbaik. Prosedur untuk movement pada firefly terbaik disajikan pada Gambar 4.16.

Prosedur Firefly Terbaik

Begin

randrandom(0,1) ;

For 𝑖𝑡𝑒𝑟𝑎𝑠𝑖 ← 1 𝑡𝑜 𝑚𝑎𝑘𝑠 𝑖𝑡𝑒𝑟𝑎𝑠𝑖 For 𝑢 ← 1 𝑡𝑜 𝑛

𝐷𝑅(𝑖𝑡𝑒𝑟𝑎𝑠𝑖)(𝑢)= 𝐷𝑅(𝑖𝑡𝑒𝑟𝑎𝑠𝑖)(𝑢) + 𝛼 ∗ (𝑟𝑎𝑛𝑑 − 0.5) ;

End for 𝑢 End for 𝑖𝑡𝑒𝑟𝑎𝑠𝑖 End

Gambar 4.16. Prosedur Firefly Terbaik

Prosedur ini akan terus dilakukan hingga mencapai maksimum iterasi.

4. 2. Data

Data yang digunakan pada skripsi ini adalah data sekunder berasal dari

OR-library oleh J. E Beasley. Pada perhitungan secara manual, data yang

diperoleh dari website

http://people.brune1.ac.uk/~mastjjb/jeb/orlib/files/wtpack2.txt dimodifikasi

(49)

Data kecil yang digunakan berisi 3 tipe barang dan 12 unit barang. Data tersebut diperoleh dari alamat website

http://people.brune1.ac.uk/~mastjjb/jeb/orlib/files/wtpack2.txt.

b. Data Sedang

Terdapat 10 tipe barang dan 106 unit barang yang digunakan pada data sedang. Data tersebut diperoleh dari alamat website

http://people.brune1.ac.uk/~mastjjb/jeb/orlib/files/wtpack4.txt

c. Data Besar

Pada data besar akan digunakan 20 tipe barang dan 110 unit barang. Data

tersebut diperoleh dari alamat website

http://people.brune1.ac.uk/~mastjjb/jeb/olib/files/wtpack7.txt.

Keseluruhan data dapat dilihat pada Lampiran 2.

4. 3. Contoh Kasus Pengepakan Persegi Tiga Dimensi yang Diselesaikan Secara Manual

(50)

Langkah-langkah yang digunakan untuk menyelesaikan masalah pengepakan persegi tiga dimensi dengan menggunakan Firefly Algorithm adalah sebagai berikut :

4.3.1 Input Data dan Inisialisasi parameter

Pertama adalah dengan menentukan pengkodean yang akan digunakan, dalam hal ini adalah pengkodean real. Kemudian akan ditentukan parameter-parameter yang akan digunakan pada proses selanjutnya. Parameter-parameter Firefly Algorthm (FA) yang akan digunakan dalam menyelesaikan contoh kasus masalah pengepakan persegi tiga dimensi secara manual, yaitu sebagai berikut : banyaknya firefly (popsize)=7, tinggi dan lebar wadah berturut-turut adalah 233 cm dan 220 cm, MaxIterasi=1, 𝛽0 = 1,𝛾 = 1, 𝛼 = 0.1.

4.3.2 Membangkitkan Populasi Awal Firefly

Tabel 4.1. Membangkitkan populasi awal firefly

Proses membangkitkan populasi awal firefly sebanyak popsize

dengan elemen setiap firefly yang terdiri atas hasil random bilangan real pada interval [0,1]. Hasil membangkitkan populasi awal firefly dengan

Firefly Random sejumlah barang

1 2 3 4 5 6 7 8 9 10 11 12

(51)

4.3.3 Pengelompokan Barang Berdasarkan Tipe

Setelah membangkitkan populasi dengan merandom bilangan real sebanyak jumlah barang, langkah selanjutnya adalah mengurutkan bilangan yang diperoleh secara acak tersebut. Setelah bilangan tersebut diurutkan, selanjutnya adalah membagi jumlah barang berdasarkan tipe. Diketahui barang tipe satu berjumlah empat, barang tipe dua berjumlah lima, dan barang tipe tiga berjumlah tiga. Oleh karena itu bilangan dengan urutan 1-4 akan menjadi barang tipe satu, bilangan dengan urutan 5-9 akan menjadi barang tipe dua, dan bilangan dengan urutan 10-12 akan menjadi barang dengan tipe tiga. Pengurutan bilangan yang diperoleh secara acak dan pembagian tipe barang akan disajikan dalam Tabel 4.2.

Tabel 4.2. Pengurutan Bilangan dan Pembagian Tipe Barang

Proses tersebut dilakukan kepada semua firefly dengan cara yang sama. Sehingga diperoleh urutan barang yang akan dimasukkan ke dalam wadah yang disajikan pada Tabel 4.3.

Firefly Random sejumlah barang

1 2 3 4 5 6 7 8 9 0 11 12

𝑥1

Populasi

awal 0.3 0.31 0.1 0.5 0.12 0.2 0.22 0.71 0.35 0.41 0.43 0.88 Pengurutan

Bilangan 5 6 1 10 2 3 4 11 7 8 9 12

Urutan Barang Berdasarkan

Tipe

2 2 1 3 1 1 1 3 2 2 2 3

Firefly Random sejumlah barang

(52)

T a b e l 4

.3. Urutan Barang yang Akan Dimasukkan

Dari data tersebut akan diperoleh nilai fungsi tujuan pada setiap firefly.

4.3.4 Evaluasi Firefly

Pada tahap ini akan dihitung fungsi tujuan dari masing-masing individu. Nilai fungsi tujuan diperoleh setelah malalui proses penempatan barang sesuai dengan urutan barang yang akan dimasukkan. proses evaluasi akan diuraikan sebagai berikut :

Misalnya pada firefly-1 (𝑥1) : 2 2 1 3 1 1 1 3 2 2 2 3

(53)

1. Barang pertama adalah barang type 2 yang akan diletakkan di sudut kiri bawah wadah yaitu pada strip ke-1 layer ke-1,

ℎ1 = 𝑟1 = 20

𝑑1 = 𝑞1 = 52

2. Barang kedua adalah barang type 2. a. [cek konstrain 2.5]

𝑝111+ 𝑝211 = 120 + 120 = 240 > 233 (W) → pindah strip

b. [cek konstrain 2.6]

𝑟121+ ℎ1 = 20 + 20 = 40 < 220 (H) ℎ2= 𝑟221= 20

𝑑1= maks (𝑞111, 𝑞221) = maks (52,52) = 52

Barang kedua diletakkan pada strip ke-2 dan layer ke-1

3. Barang ketiga adalah barang type 1. a. [cek konstrain 2.5]

(54)

b. [cek konstrain 2.6]

𝑟321+ ℎ1 = 54 + 20 = 74 < 220 (H) ℎ2= maks (𝑟221, 𝑟321) = maks (20,54) = 54 𝑑1 = maks (52,52,59) = 59

Barang ketiga diletakkan pada strip ke-2 dan layer ke-1 4. Barang keempat adalah barang type 3.

a. [cek konstrain 2.5]

𝑝221+ 𝑝321+𝑝421 = 120 + 78 + 100 = 298 > 233 (𝑊) → pindah strip

b. [cek konstrain 2.6]

𝑟431+ ℎ1+ ℎ2 = 54 + 20 + 54 = 128 < 220 (H) ℎ3 = 𝑟431=54

𝑑1= maks (52,52,59,67) = 67

Barang keempat diletakkan pada strip ke-3 dan layer ke-1 5. Barang kelima adalah barang type 1.

a. [cek konstrain 2.5]

𝑝431 + 𝑝531 = 100 + 78 = 178 < 233 (W) b. [cek konstrain 2.6]

𝑟531+ ℎ1+ ℎ2 = 54 + 20 + 54 = 128 < 220 (H) ℎ3 = maks (54,54) = 54

𝑑1= maks (52,52,59,67,59) = 67

(55)

a. [cek konstrain 2.5]

𝑝431 + 𝑝531+ 𝑝631 = 100 + 78 + 78 = 256 > 233 (W) → pindah strip

b. [cek konstrain 2.6]

𝑟641+ ℎ1+ ℎ2+ ℎ3 = 54 + 20 + 54 + 54 = 182 < 220 (H) ℎ4= 𝑟641 = 54

𝑑1 = maks (52,52,59,67,59,59) = 67

Barang keenam diletakkan pada strip ke-4 dan layer ke-1 7. Barang ketujuh adalah barang type 1.

a. [cek konstrain 2.5]

𝑝641 + 𝑝741 = 78 + 78 = 156 < 233 (W) b. [cek konstrain 2.6]

𝑟741+ ℎ1+ ℎ2+ ℎ3 = 54 + 20 + 54 + 54 = 183 < 220 (H) ℎ4 = maks (54,54) = 54

𝑑1 = maks (52,52,59,67,59,59,59) = 67

Barang ketujuh diletakkan pada strip ke-4 dan layer ke-1 8. Barang kedelapan adalah barang type 3.

a. [cek konstrain 2.5]

𝑝641 + 𝑝741+ 𝑝841 = 78 + 78 + 100 = 256 > 233 (W) → pindah strip

b. [cek konstrain 2.6]

𝑟851+ ℎ1+ ℎ2+ ℎ3+ ℎ4 = 54 + 20 + 54 + 54 + 54 = 236 >

(56)

ℎ1 = 𝑟812 = 54 𝑑2= 𝑞812 = 67

Barang kedelapan diletakkan pada strip ke-1 dan layer ke-2

9. Barang kesembilan adalah barang type 2. a. [cek konstrain 2.5]

𝑝812 + 𝑝912 = 100 + 120 = 220 < 233 (W) b. [cek konstrain 2.6]

𝑟912= 20 < 220 (H) ℎ1 = maks (54,20) = 54 𝑑2= maks (67,52) = 67

Barang kesembilan diletakkan pada strip ke-1 dan layer ke-2 10.Barang kesepuluh adalah barang type 2.

a. [cek konstrain 2.5]

(57)

b. [cek konstrain 2.6]

𝑟1012+ ℎ1 = 20 + 54 = 74 < 220 (H) ℎ2 = 𝑟1012= 20

𝑑2= maks (67,52,52) = 67

Barang kesepuluh diletakkan pada strip ke-2 dan layer ke-2 11.Barang kesebelas adalah barang type 2.

a. [cek konstrain 2.5]

𝑝1022 + 𝑝1122 = 120 + 120 = 240 > 233(W) → pindah strip b. [cek konstrain 2.6]

𝑟1132+ ℎ1+ ℎ2 = 20 + 54 + 20 = 94 < 220 (H) ℎ3= 𝑟1132 = 20

𝑑2= maks (67,52,52,52) = 67

Barang kesebelas diletakkan pada strip ke-3 dan layer ke-2 12.Barang kedua adalah barang type 3.

a. [cek konstrain 2.5]

𝑝1132+ 𝑝1232 = 120 + 100 = 220 < 233 (W) b. [cek konstrain 2.6]

𝑟1232+ ℎ1+ ℎ2 = 54 + 54 + 20 = 128 < 220 (H) ℎ3= maks (20,54) = 54

𝑑2= maks (67,52,52,5267) = 67

(58)

Setelah semua barang disusun, maka diperoleh total lebar layer yang merupakan penggunaan ruang wadah sebagai hasil penjumlahan dari lebar layer pertama (𝑑1 = 67 𝑐𝑚) dan lebar layer kedua (𝑑2 = 67 𝑐𝑚) yaitu 134 cm. Evaluasi untuk memperoleh total lebar layer akan dilakukan pada semua firefly. Hasil evaluasi selengkapnya disajikan pada Tabel 4.4.

Tabel 4.4. Hasil Evaluasi Setiap Firefly

Firefly 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 𝑥7

𝑓(𝑥𝑖) 134 134 126 134 126 134 126

Hasil evaluasi ini akan menentukan intensitas cahaya firefly yang akan dilakukan pada tahap selanjutnya.

4.3.5 Menentukan Intensitas Cahaya Firefly

Intensitas cahaya pada permasalahan Pengepakan Persegi tiga dimensi berbanding terbalik dengan fungsi tujuannya karena fungsi tujuan masalah Pengepakan Persegi tiga dimensi akan diminimalkan sedangkan

(59)

intenseitas cahaya dari firefly akan dicari yang paling maksimal. Intensitas cahaya untuk masing-masing firefly dicari dengan rumus sebagai berikut :

𝐼(𝑥𝑖) =𝑓(𝑥1 𝑖)

Hasil perhitungan intensitas cahaya firefly selengkapnya akan disajikan dalam Tabel 4.5.

Tabel 4.5. Intensitas Cahaya Firefly

Firefly 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 𝑥7

𝐼(𝑥𝑖) 0.0075 0.0075 0.0079 0.0075 0.0079 0.0075 0.0079

Firefly terbaik adalah firefly dengan intensitas cahaya terbesar. Dengan demikian, firefly ke-2,6,7 merupakan firefly terbaik dengan intensitas cahaya 0.0079.

4.3.6 Membandingkan Firefly

Pada langkah ini, masing-masing firefly akan dibandingkan dengan

firefly lainnya melalui intensitas cahayanya. Jika intensitas cahaya suatu

firefly lebih kecil dari pada intensitas cahaya firefly lainnya, maka firefly

tersebut akan melakukan perpindahan menuju firefly yang mempunyai intensitas lebih baik. Taedapat beberapa perhitungan saat melakukan perpindahan, yaitu attractiveness (𝛽)dan jarak antara firefly.

(60)

firefly 2. Selanjutnya firefly 1 akan dibandingkan dengan firefly 3. Karena 𝐼(𝑥1) < 𝐼(𝑥3) maka firefly 1 akan bergerak menuju firefly 3 dengan langkah sebagai berikut :

1. Menghitung distance (jarak) antara firefly 1 dan 2 untuk masing-masing elemen real pada firefly. Penghitungan jarak dirumuskan sebagai berikut:

𝑟𝑖,𝑗 = √ ∑ (𝑥𝑖𝑘− 𝑥𝑗𝑘)2 𝑗𝑢𝑚𝑙𝑎ℎ 𝑏𝑎𝑟𝑎𝑛𝑔

𝑘=1

𝑟1,2 = √∑(𝑥1𝑘− 𝑥1𝑘)2 12

𝑘=1

𝑟1,2 = √(0.3 − 0.8)2+ (0.31 − 0.23)2 + ⋯ + (0.88 − 0.6)2

𝑟1,2 = 1.307211

2. Menghitung attractiveness dengan rumusan sebagai berikut: 𝛽 = 𝛽0𝑒−𝛾𝑟2

𝛽 = 1 × 𝑒−1×1.3072112

= 0.181

3. Menghitung perpindahan firefly per elemen dengan rumusan sebagai berikut:

𝑥𝑖_𝑏𝑎𝑟𝑢𝑘 = 𝑥

𝑖_𝑙𝑎𝑚𝑎𝑘 + 𝛽0 𝑒−𝛾𝑟2(𝑥𝑗𝑘𝑙𝑎𝑚𝑎− 𝑥𝑖𝑘𝑙𝑎𝑚𝑎) + 𝛼 (𝑟𝑎𝑛𝑑 − 1 2)

𝑥1𝑘𝑏𝑎𝑟𝑢 = 𝑥𝑖_𝑙𝑎𝑚𝑎𝑘 + 0.181(𝑥2𝑘𝑙𝑎𝑚𝑎 − 𝑥1𝑘𝑙𝑎𝑚𝑎) + 0.1 (𝑟𝑎𝑛𝑑 − 1 2)

(61)

𝑥11𝑏𝑎𝑟𝑢 = 𝑥11𝑙𝑎𝑚𝑎 + 0.181(𝑥21𝑙𝑎𝑚𝑎 − 𝑥11𝑙𝑎𝑚𝑎) + 0.1 (0.42753 − 1 2)

𝑥11𝑏𝑎𝑟𝑢 = 0.3 + 0.181(0.8 − 0.3) + 0.1 (0.42753 − 1 2)

𝑥11𝑏𝑎𝑟𝑢 = 0.383294

Demikian pula untuk k=2,3,…,12, sehingga diperoleh firefly 1 yang baru dan pengurutannya disajikan pada Tabel 4.7.

Tabel 4.7. Firefly Baru dan Pengurutan Berdasarkan Tipe

Firefly Barang ke-

1 2 3 4 5 6 7 8 9 10 11 12

𝑥1

Bilangan

Real 0.23 0.48 0.46 0.29 0.22 0.07 0.32 0.51 0.18 0.15 0.28 0.47

Berdasarkan

Tipe 1 3 2 2 1 1 2 3 1 1 2 3

Kemudian menghitung fungsi tujuan baru pada firefly 1 dan menghitung intensitas cahayanya. Fungsi tujuan dapat dihitung dengan cara yang sama pada langkah 2 sehingga memperoleh total lebar layer pada wadah adalah 134 cm. Sehingga diperoleh intensitas cahaya sebagai berikut :

𝐼(𝑥1) =134 = 0.00751

(62)

Tabel 4.8. Proses Membandingkan Intensitas Cahaya Tiap Firefly

Dari proses movement akan diperoleh populasi firefly yang baru. Populasi

firefly yang baru disajikan pada Tabel 4.9.

Tabel 4.9. Populasi Baru Firefly Setelah Melakukan Movement 𝑖 = 1 𝑗 = 2 𝐼(𝑥1) = 𝐼(𝑥2) Tidak Bergerak

𝑖 = 1 𝑗 = 3 𝐼(𝑥1) < 𝐼(𝑥3)

𝑥1 lama 0.3 0.31 0.1 0.5 0.12 0.2 0.22 0.71 0.35 0.41 0.43 0.88 𝑥3 lama 0.8 0.23 0.25 0.09 0.9 0.01 0.7 0.21 0.15 0.3 0.51 0.6

𝑟 1.307

𝛽 0.181

𝑥1 baru 0.38 0.35 0.12 0.41 0.23 0.13 0.34 0.59 0.36 0.37 0.43 0.79

𝑓(𝑥1) 134

𝐼(𝑥1) 0.0075

𝑖 = 1 𝑗 = 4 𝐼(𝑥1) = 𝐼(𝑥4) Tidak Bergerak

𝑖 = 1 𝑗 = 5 𝐼(𝑥1) < 𝐼(𝑥5)

𝑥1 baru 0.38 0.35 0.12 0.41 0.23 0.13 0.34 0.59 0.36 0.37 0.43 0.79 𝑥5 lama 0.18 0.27 0.74 0.22 0.35 0.04 0.53 0.78 0.12 0.21 0.09 0.17

𝑟 1.070

𝛽 0.318

𝑥1 baru 0.31 0.31 0.31 0.34 0.26 0.09 0.4 0.65 0.23 0.24 0.38 0.66

𝑓(𝑥1) 134

𝐼(𝑥1) 0.0075

𝑖 = 7 𝑗 = 6 𝐼(𝑥7) = 𝐼(𝑥6) Tidak Bergerak

Firefly Random sejumlah barang

1 2 3 4 5 6 7 8 9 10 11 12

𝑥1 0.3 0.31 0.1 0.5 0.12 0.2 0.22 0.71 0.35 0.41 0.43 0.88

(63)

4.3.7 Menentukan Firefly Terbaik

Firefly terbaik adalah firefly dengan intensitas cahaya tertinggi pada setiap iterasi. Firefly terbaik merupakan calon solusi yang paling baik yang berarti wadah dengan panjang terkecil dibandingkan dengan firefly

lain. Dari hasil movement tersebut diperoleh bahwa intensitas cahaya tertinggi berada pada firefly 2 sampai firefly 7, dengan nilai intensitas cahayanya adalah 0.0079.

4.3.8 Mentukan Global Best Sementara

Pada iterasi pertama, Global Best (𝑔 − 𝑏𝑒𝑠𝑡) adalah firefly terbaik pada iterasi tersebut. Sedangkan untuk iterasi selanjutnya, g-best dapat dipilih berdasarkan intensitas cahaya yang paling besar antara 𝑔 − 𝑏𝑒𝑠𝑡 dengan firefly yang terbaik pada iterasi tersebut. Dari hasil movement pada iterasi pertama diperoleh 6 firefly dengan intensitas cahaya tertinggi. Oleh sebab itu dipilih firefly 2 sebagai g-best= 𝑥2 dengan urutan barang sebagai berikut :

Firefly Urutan barang

𝑥2 2 3 3 1 3 2 2 2 1 1 1 2

(64)

4.3.9 Melakukan Movement Pada Firefly Terbaik

Movement pada firefly terbaik dilakukan agar tidak terjebak pada optimum lokal dan untuk membentuk populasi firefly baru yang akan digunakan pada iterasi selanjutnya. Movement ini dilakukan dengan rumus matematika sebagai berikut.

𝑥𝑖_𝑏𝑎𝑟𝑢𝑘 = 𝑥

𝑖_𝑙𝑎𝑚𝑎𝑘 + 𝛼 (𝑟𝑎𝑛𝑑 −12)

Untuk 𝑖 = 3 dan 𝑘 = 1 diperoleh 𝑥21𝑏𝑎𝑟𝑢 = 𝑥21𝑙𝑎𝑚𝑎 + 0.1 (𝑟𝑎𝑛𝑑 −

1 2)

𝑥21𝑏𝑎𝑟𝑢 = 0.306 + 0.1 × (0.876 − 0.5) = 0.3436

Demikian juga untuk k=2,3,…,12 sehingga diperoleh 𝑥2 yang baru sebagai berikut :

𝑥2 0.34 0.45 0.54 0.09 0.47 0.29 0.40 0.25 0.08 0.13 0.2 0.41

Popuasi firefly selengkapnya disajikan pada Tabel 4.10.

Tabel 4.10. Populasi Baru

Firefly Populasi baru

𝑥1 0.3 0.31 0.1 0.5 0.12 0.2 0.22 0.71 0.35 0.41 0.43 0.88

𝑥2 0.34 0.45 0.54 0.09 0.47 0.29 0.40 0.25 0.08 0.13 0.2 0.41

𝑥3 0.8 0.23 0.25 0.09 0.9 0.01 0.7 0.21 0.15 0.3 0.51 0.6

𝑥4 0.5 0.61 0.09 0.32 0.39 0.4 0.11 0.29 0.18 0.72 0.2 0.25

𝑥5 0.18 0.27 0.74 0.22 0.35 0.04 0.53 0.78 0.12 0.21 0.09 0.17

𝑥6 0.12 0.43 0.13 0.43 0.73 0.05 0.56 0.23 0.65 0.17 0.83 0.2

(65)

4.3.10 Mengecek Maksimum Iterasi

Pada langkah ini, kriteria yang harus dipenuhi adalah pengulangan sebanyak maksimum iterasi. Karena pada proses inisialisasi dimasukkan

MaxIterasi = 1, maka iterasi pada pengerjaan manual ini telah selesai. Pada iterasi terakhir ini, akan dibandingkan antara firefly baru hasil

movement dari firefly terbaik dengan g-best. Jika I(g-best) < I(𝑥𝑖) maka

g-best yang baru adalah 𝑥𝑖. Hal ini dilakukan karena mungkin saja hasil

movement firefly terbaik memiliki intensitas cahaya yang lebih baik dari sebelumnya sehingga solusi yang didapatkan juga semakin baik.

Pada iterasi pertama, 𝐼(𝑔 − 𝑏𝑒𝑠𝑡) =0.0079 dan intensitas cahaya hasil movement 𝑥3 = 0.0079. Karena 𝐼(𝑔 − 𝑏𝑒𝑠𝑡) = 𝐼(𝑥2) maka g-best akan tetap. Sehingga 𝑔 − 𝑏𝑒𝑠𝑡 menjadi solusi dari masalah pengepakan persegi tiga dimensi.

Dengan demikian diperoleh hasil dengan Firefly Algorithm yang dilakukan sebanyak 1 iterasi, yaitu firefly yang ke-2. Oleh karena itu, pada masalah pengepakan persegi tiga dimensi diperoleh urutan barang 2 – 3 – 3 – 1 – 3 – 2 – 2 – 2 – 1 – 1 – 1 – 2 dengan total panjang layer yang digunakan adalah 126 cm.

4. 4. Implementasi Program Pada Contoh Kasus Pengepakan Persegi Tiga Dimensi

Menyelesaikan masalah pengepakan persegi tiga dimensi dengan

(66)

pada subbab sebelumnya. Namun semakin besarnya data yang digunakan mengakibatkan semakin lamanya proses perhitungan. Oleh sebab itu diperlukan bantuan program untuk memudahkan dalam mencari solusi. Program yang dimaksud menggunakan bahasa pemrograman C++ dengan menggunakan softwere Borland C++ 5.02. source code program dapat dilihat pada Lampiran 3.

Berikut ini adalah implementasi program pada beberapa jenis data, diantaranya data kecil, sedang, dan data besar.

4.4.1 Implementasi Program Pada Data 1 (5 Tipe Barang dan 81 Unit Barang)

Berikut ini solusi terbaik yang diperoleh dari data kecil (Lampiran 2) dengan menggunakan program. Parameter yang digunakan adalah 𝛽0 = 1, koefisien penyerapan cahaya (𝛾) = 1, dan jumlah firefly (m), maksimum iterasi (max_Iterasi), serta koefisien parameter random (𝛼) bervariasi. Hasil selengkapnya disajikan pada Tabel 4.11.

Tabel 4.11. Hasil Running Program Pada Data 1

Banyaknya

firefly (𝑚)

Alpha

(𝛼)

Maksimum Iterasi

10 50 100

10

0.1 837 837 819

0.5 837 837 837

0.9 837 837 837

50

0.1 837 837 837

0.5 837 837 837

Gambar

Gambar 4.1. Prosedur Firefly Algorithm
Gambar 4.2. Prosedur Inisialisasi Parameter
Gambar 4.4. Prosedur Membangkitkan Populasi Awal
Gambar 4.5. Prosedur Pengelompokan Barang Berdasarkan Tipe
+7

Referensi

Dokumen terkait

Pencapaian efektivitas modul pembelajaran program komputer AutoCAD yang dikembangkan, ditentukan oleh hasil respon siswa terhadap modul, serta hasil

Berkat Taufik, hidayah, dan inayah Allah Swt., akhirnya Penulis dapat menyelesaikan skripsi ini dengan judul: Hubungan antara Kegemaran Berhitung dengan Hasil

Dalam penelitian lainnya menggunakan obat standar, dalam penelitian ini ektrak biji pinang sama dengan pengobatan standar, menunjukkan bahwa satu jenis obat dengan

Chameleons sesuai dengan namanya merupakan program yang diselundupkan atau disisipkan ke dalam suatu sistem komputer dan berfungsi untuk mencuri data dari sistem

Review tentang pemahaman materi sikap yang dibutuhkan dalam mengatasi perubahan display

Penelitian ini bertujuan untuk mengetahui tingkat efektivitas video informasi yang digunakan sebagai sumber informasi dalam menyampaikan pesan kepada masyarakat tentang wilayah

Membimbing preceptee untuk mencari berbagai kegiatan belajar untuk mengatasi setiap hasil pembelajaran dan membuat penggunaan optimal dari waktu preceptee (misalnya, tugas

Profesionalisme merupakan cermin dari kemampuan (competensi) yaitu memiliki pengetahuan (knowledge) dan keahlian (skill) dalam mengerjakan pekerjaan yang ditanggung