Upload
firman-hasan
View
304
Download
0
Embed Size (px)
Citation preview
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
1/83
IMPLEMENTASIEVOLUTION STRATEGIES UNTUK
PENYELESAIAN VEHICLE ROUTING PROBLEM WITH TIME
WINDOWS PADA DISTRIBUSI MINUMAN SODA XYZ
SKRIPSI
Untuk Memenuhi Sebagian Persyaratan Memperoleh Gelar Sarjana Komputer
Disususn Oleh :
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
2/83
susus O e :
LEMBAR PERSETUJUAN
IMPLEMENTASIEVOLUTION STRATEGIES UNTUK
PENYELESAIAN VEHICLE ROUTING PROBLEM WITH TIME
WINDOWS PADA DISTRIBUSI MINUMAN SODA XYZ
SKRIPSI
KONSENTRASI KOMPUTER CERDAS DAN VISUALISASI
Untuk memenuhi sebagian persyaratan memperoleh gelar Sarjana Komputer
Disusun Oleh:
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
3/83
LEMBAR PENGESAHAN
IMPLEMENTASIEVOLUTION STRATEGIES UNTUK
PENYELESAIAN VEHICLE ROUTING PROBLEM WITH TIME
WINDOWS PADA DISTRIBUSI MINUMAN SODA XYZ
SKRIPSI
Untuk memenuhi sebagian persyaratan mencapai gelar Sarjana Komputer
Disusun Oleh:
Isyar Andika Harun 0910960043
Penguji I,
NIP / NIK
Penguji II,
NIP / NIK
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
4/83
DAFTAR ISI
LEMBAR PERSETUJUAN..................................................................................i
LEMBAR PENGESAHAN..................................................................................ii
DAFTAR ISI ......................................................................................................iii
DAFTAR GAMBAR..........................................................................................vi
DAFTAR TABEL .............................................................................................vii
DAFTARSOURCE CODE...............................................................................viii
BAB I ..................................................................................................................1
PENDAHULUAN............................................................................................... 1
1.1. Latar Belakang ......................................................................................1
1.2. Rumusan Masalah.................................................................................. 3
1.3. Batasan Masalah....................................................................................4
1.4. Tujuan...................................................................................................4
1.5. Manfaat .................................................................................................4
1.6. Sistematika Penulisan ............................................................................ 4
BAB II................................................................................................................. 6
KAJIAN PUSTAKA DAN DASAR TEORI........................................................6
2.1. Kajian Pustaka.......................................................................................6
2.2. Traveling Salesman Problem .................................................................7
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
5/83
3.1. Studi Pustaka ....................................................................................... 19
3.2. Pengumpulan dan Analisis Data........................................................... 20
3.3. Analisis dan Perancangan Sistem......................................................... 20
3.3.1. ProsesGenerate Populasi Awal .................................................... 22
3.3.2. Proses Reproduksi ........................................................................ 23
3.3.3. Hitung NilaiFitness...................................................................... 25
3.3.4. Proses Seleksi ...............................................................................27
3.4. Perhitungan Manual............................................................................. 28
3.4.1. Generate Populasi Awal ............................................................... 29
3.4.2. NilaiFitness ................................................................................. 30
3.4.3. Reproduksi ................................................................................... 30
3.4.4. Seleksi.......................................................................................... 32
3.5. Perancangan Antarmuka......................................................................323.6. Perancangan Uji Coba dan Evaluasi..................................................... 33
3.6.1. Skenario Uji Coba I ......................................................................34
3.6.2. Skenario Uji Coba II..................................................................... 35
3.6.3. Skenario Uji Coba III.................................................................... 35
BAB IV ............................................................................................................. 37
IMPLEMENTASI.............................................................................................. 37
4.1. Lingkungan Implementasi....................................................................37
4 1 1 Li k P k t K 37
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
6/83
5.2.1. Hasil Pengujian Skenario I............................................................ 56
5.2.2. Hasil Pengujian Skenario II .......................................................... 59
5.2.3. Hasil Pengujian Skenario III ......................................................... 61
5.3. Solusi Terbaik Yang Pernah Didapatkan..............................................65
BAB VI ............................................................................................................. 67
PENUTUP.........................................................................................................67
6.1. Kesimpulan......................................................................................... 67
6.2. Saran .................................................................................................. 68
DAFTAR PUSTAKA ........................................................................................69
LAMPIRAN...................................................................................................... 72
Lampiran 1 Data Pelanggan ...........................................................................72
Lampiran 2 Data Jarak ................................................................................... 73
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
7/83
DAFTAR GAMBAR
Gambar 2.1 Skema Umum Algoritma Evolusi [EIB-03]..................................... 12
Gambar 2.2 Teknik Mutasi Pada ES [BEY-02] .................................................. 16
Gambar 3.1 Diagram Alir Penelitian.................................................................. 18
Gambar 3.2 Diagram AlirEvolution Strategies Pada Sistem .............................. 21
Gambar 3.3 Diagram AlirGenerate Populasi Awal ...........................................22
Gambar 3.4 Diagram Alir Proses Reproduksi.....................................................24
Gambar 3.5 Diagram Alir Hitung NilaiFitness .................................................. 26
Gambar 3.6 Diagram Alir Proses Seleksi ........................................................... 27
Gambar 3.7 Rancangan Antar Muka .................................................................. 33
Gambar 4.1Form Utama Sistem........................................................................ 52
Gambar 4.2 TampilanTab Jarak ........................................................................53
Gambar 4.3 TampilanTab Parent...................................................................... 54
Gambar 4.4 TampilanTab Children................................................................... 54
Gambar 4.5 TampilanTab Detail ES.................................................................. 55
Gambar 5.1 Grafik Hasil Skenario I Terhadap Rata-RataFitness ....................... 57
Gambar 5.2 Grafik Hasil Skenario II Terhadap Koefisien Variasi ...................... 57
Gambar 5.3 Grafik Hasil Skenario II Terhadap Rata-RataFitness ...................... 60
Gambar 5.4 Grafik Hasil Skenario II Terhadap Koefisien Variasi ...................... 60
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
8/83
DAFTAR TABEL
Tabel 3.1 Permintaan danTime Windows Pelayanan Tiap Pelanggan ................. 28
Tabel 3.2 Jarak Antar Pelanggan........................................................................ 29
Tabel 3.3 Contoh Populasi Awal........................................................................ 29
Tabel 3.4 Perhitungan Parameter NilaiFitness ................................................... 30
Tabel 3.5 NilaiFitness Populasi Awal ............................................................... 30
Tabel 3.6 ContohExchange Mutation dengan SP = 2.........................................31
Tabel 3.7 Hasil Reproduksi Populasi Awal ........................................................31
Tabel 3.8 Hasil Pengurutan Berdasarkan NilaiFitness ....................................... 32
Tabel 3.9 Hasil Seleksi Generasi Pertama ..........................................................32
Tabel 3.10 Rancangan Tabel Hasil Skenario Uji Coba I ..................................... 34
Tabel 3.11 Rancangan Tabel Hasil Skenario II................................................... 35
Tabel 3.12 Rancangan Tabel Skenario III................................ ........................... 36
Tabel 5.1 Hasil Pengujian Skenario I ................................................................. 56
Tabel 5.2 Hasil Pengujian Skenario II ................................................................ 59
Tabel 5.3 Hasil Pengujian Skenario III Terhadap Rata-Rata NilaiFitness .......... 61
Tabel 5.4 Hasil Pengujian Skenario III Terhadap Koefisien Variasi ................... 62
Tabel 5.5 Konvergensi NilaiFitness ................................................................. 63
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
9/83
DAFTAR SOURCE CODE
Source Code 4.1 Implementasi Pembuatan Individu........................................... 38
Source Code 4.2 Implementasi Pembangkitan Populasi Awal ............................ 38
Source Code 4.3 Impelementasi Proses Reproduksi ...........................................39
Source Code 4.4 Implementasi Mutasi............................................................... 43
Source Code 4.5 Implementasi Teknik Mutasi ................................................... 45
Source Code 4.6 ImplementasiSelf Adaptation .................................................. 47
Source Code 4.7 Implementasi Perhitungan NilaiFitness .................................. 47
Source Code 4.8 Implementasi Isi Mobil............................................................48
Source Code 4.9 Implementasi Perhitungan Jarak .............................................. 49
Source Code 4.10 Implementasi PerhitunganTardy ...........................................50
Source Code 4.11 Implementasi Proses Seleksi.................................................. 51
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
10/83
BAB I
PENDAHULUAN
1.1. Latar Belakang
Masalah transportasi merupakan salah satu bagian yang tidak bisa
dipisahkan dalam pendistribusian barang suatu perusahaan. Pada umumnya
transportasi pada perusahaan berhubungan dengan distribusi suatu produk dari
satu atau beberapa sumber, menuju beberapa tujuan, dan dengan jumlah
permintaan yang berbeda. Masalah transportasi timbul ketika perusahaan
mencoba menentukan rute pengiriman barang ke beberapa tujuan menggunakan
beberapa kendaraan dan berusaha meminimumkan biaya yang dikeluarkan pada
saat pengiriman berlangsung. Pada umumnya biaya transportasi menyerap lebih
banyak biaya logistik daripada aktivitas logistik lainnya [SRI-90]. Dengan
perencanaan jalur transportasi yang baik maka biaya untuk transportasi bisa
dihemat sehingga perusahaan akan mendapatkan keuntungan yang lebih banyak.
Kinerja sistem transportasi memegang peranan penting dalam pelayanan
kepada pelanggan karena harus menjamin mobilitas produk di berbagai tempat
dengan ketepatan waktu serta pada saat yang sama harus dapat mengurangi biaya
transportasi, yang dalam kasus tertentu dapat mengkonsumsi 50 % dari total biaya
logistik perusahaan [SRI-90].
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
11/83
2
- Capacitated VRP (CVRP), yaitu setiap kendaraan mempunyai kapasitas
pengangkutan yang terbatas.- VRP with Time Windows (VRPTW), yaitu setiap pelanggan harus disuplai
dalam jangka waktu tertentu.
- Multiple Depot VRP (MDVRP), yaitu distributor memiliki banyak depot untuk
menyuplai pelanggan.
- VRP with Pick-up and Delivering (VRPPD), yaitu pelanggan mungkin
mengambalikan barang pada depot asal.
- Split Delivery VRP (SDVRP), yaitu pelanggan dapat dilayani dengan
kendaraan berbeda.
- Stochastic VRP (SVRP). Dapat juga dikatakan sebagaiDynamic VRP karena
pada saat pengantaran barang akan muncul random values yang akan
mempengaruhi rute pengantaran.- Periodic VRP, pengantaran dapat dilakukan di hari tertentu.
Sebuah perusahaan distribusi minuman bersoda yang besar memiliki
banyak pelanggan yang harus dilayani dalam sehari. Pelanggan yang akan
dilayani berkisar antara 30 sampai 45 pelanggan serta jumlah permintaan antara
10 sampai 40 krat setiap harinya [SEM-09]. Setiap pelanggan memiliki jumlah
permintaan yang berbeda, jarak antara tiap pelanggan yang berbeda, serta waktu
pelayanan yang berbeda. Hal tersebut menyebabkan pihak distributor memiliki
k lit t l k k i i b k b b titik t j k ih k
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
12/83
3
genetika berhasil mendapatkan solusi optimum yang dapat digunakan oleh
PT.MIF dalam mendistribusikan produknya [TAN-11].Selain algoritma genetika ada algoritma lain yang dipandang mampu
untuk menyelesaikan masalah VRPTW yaitu Evolution Strategies (ES). ES dan
algoritma genetika merupakan bagian dari algoritma evolusi. Algoritma evolusi
sendiri merupakan teknik optimasi yang meniru proses evolusi biologi. Menurut
teori evolusi terdapat sejumlah individu dalam populasi. Individu-individu ini
akan berperan sebagai induk (parent) yang akan melakukan reproduksi dan
menghasilkan keturunan (offspring). Individu-individu ini akan berevolusi dan
individu-individu yang lebih baik mempunyai peluang yang lebih besar untuk
melewati seleksi alam [MAH-13].
Secara garis besar, prosedur ES hampir sama dengan algoritma genetika.
Perbedaan yang terlihat adalah pada operator utama dalam hal reproduksi, ESlebih bertumpu pada operator mutasi. Selain itu perbedaan juga terlihat pada
representasi individu pada saat ditemukan kedua metode tersebut. Pada algoritma
genetika representasi menggunakan bilangan biner, sedangkan pada ES
menggunakan vektor bilangan desimal. Walaupun ES tidak sepopuler algoritma
genetika tapi ES dipandang mampu untuk mendapatkan solusi yang mendekati
optimal pada masalah VRPTW. Maka dari itu judul yang diangkat pada penelitian
ini adalah Implementasi Evolution Strategies Untuk Penyelesaian Vehicle
R ti P bl With Ti Wi d P d Di t ib i Mi S d XYZ
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
13/83
4
1.3. Batasan Masalah
Berdasarkan rumusan masalah yang telah diuraikan sebelumnya, makabatasan masalah dalam penelitian ini adalah :
1. Dataset yang digunakan adalah datadummy yang dibuat sendiri oleh
peneliti. Karakteristik data disesuaikan dengan kondisi permasalahan
nyata.
2. Jumlah pelanggan sebanyak 30 dengan jumlah permintaan, waktu
pelayanan, dan jarak antar pelanggan yang berbeda-beda.
3. Menggunakan Evolution Strategies dalam menyelesaikan masalah
VRPTW.
1.4. Tujuan
Tujuan yang ingin dicapai dalam penelitian ini adalah :1. Menerapkan Evolution Strategies untuk menyelesaikan masalah
VRPTW pada distribusi minuman soda XYZ.
2. Mengukur kebaikan solusi yang dihasilkanEvolution Strategies untuk
menyelesaikan masalah VRPTW pada distribusi minuman soda XYZ.
3. Mengetahui pengaruh perubahan nilai parameterEvolution Strategies
terhadap nilai fitness yang didapatkan
1 5 M f t
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
14/83
5
BAB I : PENDAHULUAN
Berisi latar belakang penulisan, permasalahan yang dihadapi, batasanmasalah, tujuan, manfaat, serta sistematika penulisan skripsi.
BAB II : KAJIAN PUSTAKA DAN DASAR TEORI
Menguraikan teori tentang VRPTW, algoritma evolusi, dan Evolution
Strategies serta teori-teori lainnya yang berhubungan dengan metode
tersebut.
BAB III : METODE PENELITIAN DAN PERANCANGAN
Berisi metode-metode yang digunakan dalam impelementasi Evolution
Strategies dalam menyelesaikan masalah VRPTW.
BAB IV : IMPLEMENTASI
Berisi tentang spesifikasi sistem dan pembahasan dari implementasi
Evolution Strategies pada sistem.BAB V : PENGUJIAN DAN ANALISIS
Berisi pengujian terhadap impelementasi serta menganalisis data hasil
pengujian.
BAB VI : KESIMPULAN DAN SARAN
Berisi kesimpulan dari seluruh rangkaian penelitian serta saran
kemungkinan dalam pengembangan lebih lanjut.
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
15/83
BAB II
KAJIAN PUSTAKA DAN DASAR TEORI
2.1. Kajian Pustaka
Evolution Strategies merupakan salah satu bagian dari algoritma evolusi.
Algoritma evolusi sendiri merupakan algortima yang meniru proses seleksi alam
dimana akan terdapat suatu populasi awal yang akan berkembang biak
menghasilkan keturunan. Keturunan-keturunan ini nantinya akan diseleksi untuk
generasi berikutnya. Algoritma evolusi biasanya digunakan untuk menyelesaikan
masalah optimasi dimana hasil yang dihasilkan tidak selalu optimal tapi
mendekati optimal [MAH-13].
Beberapa penelitian telah dilakukan untuk menyelesaikan masalah VRP
dengan menggunakan algoritma evolusi. Pada penelitian tentang VRP with Pick
Up and Delivery digunakan algoritma genetika untuk menyelesaikan masalah
VRP tersebut. Pada penelitian ini digunakan populasi awal sebanyak 50 individu,
jumlah pelanggan sebanyak 30, dan maksimum generasi sebanyak 100 generasi.
Algoritma genetika berhasil mendapatkan solusi dalam penghematan biaya yang
ada yaitu sebesar Rp 2.051.000,00. Tidak dijelaskan lebih lanjut apakah solusi
yang didapatkan tersebut merupakan solusi yang paling optimal yang didapatkan
dari kasus yang ada [SIM-13].
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
16/83
7
menyelesaikan masalah VRPTW pada distribusi minuman soda XYZ dengan
menggunakan algoritma lain yang juga merupakan bagian dari algoritma evolusiyaituEvolution Strategies.
2.2. Traveling Salesman Problem
Traveling Salesman Problem (TSP) merupakan permasalahan yang
melibatkan seorang travelling salesman yang harus melakukan kunjungan ke
sejumlah kota dalam menjajakan produknya. Kota-kota yang dikunjungi oleh
sales tersebut harus tepat dikunjungi sebanyak satu kali dan kemudian kembali ke
kota awalsales tersebut memulai perjalanannya. Penyelesaian terhadap masalah
TSP ini adalah untuk memperoleh jalur terpendek yang akan dilalui oleh sales.
Penyelesaian eksak terhadap masalah TSP mengharuskan untuk melakukan
perhitungan terhadap semua kemungkinan rute yang ada kemudian dari rute yangada tersebut memilih rute yang terpendek [PUS-08].
Berdasarkan pengertian sebelumnya, TSP hanya menangani masalah
seorang traveling salesman. Pada pengembangan lebih lanjut TSP akan
berkembang menjadi Vehicle Routing Problem (VRP) ketika masalah yang
ditangani berupa menentukan rute beberapa kendaraan yang akan
mendistribusikan suatu produk dan setiap kendaraan memiliki kapasitas
pengangkutan yang terbatas.
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
17/83
8
mengunjungi pelanggan yang berbeda-beda dan tiap pelanggan hanya dikunjungi
tepat sekali [DAN-59].VRP juga bisa dipandang sebagai perpaduan antara dua permasalahan
optimasi yaitu Bin Packing Problem (BPP) dan Traveling Salesman Problem
(TSP). Jumlah permintaan konsumen akan disesuaikan dengan jumlah kapasitas
kendaraan, hal ini merupakan masalah BPP. Sedangkan untuk mendapatkan rute
pendistribusian yang optimal ke setiap pelanggan merupakan masalah TSP [CHA-
13].
Dalam VRP selain bertujuan untuk meminimalkan total jarak tempuh juga
untuk meminimalkan jumlah kendaraan yang digunakan. Dalam kehidupan nyata
ada beberapa faktor yang menyebabkan VRP menjadi beberapa jenis yaitu [TAR-
08]
1. Capacitated VRP (CVRP) merupakan bentuk umum dari VRP dimanatiap kendaraan memiliki kapasitas pengangkutan tertentu. CVRP
bertujuan untuk meminimalkan jumlah kendaraan dan total waktu
perjalanan dengan syarat total permintaan barang untuk rute yang akan
dilalui oleh sebuah kendaraan tidak melebihi kapasitas dari kendaraan
tersebut.
2. VRP With Time Windows (VRPTW). Merupakan pengembangan dari
CVRP dimana setiap pelanggan hanya bisa dilayani pada rentang
kt t t t
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
18/83
9
6. Stochastic VRP (SVRP). Dapat juga dikatakan sebagaiDynamic VRP
karena pada saat pengantaran barang akan munculrandom values yangakan mempengaruhi rute pengantaran. Random values ini dapat
berupa jumlah pelanggan, jumlah permintaan, atau waktu pelayanan.
7. Periodic VRP (PVRP). Distribusi barang dapat dibagi dalam beberapa
hari yang semula difokuskan dalam sehari. PVRP dapat dilakukan
ketika barang yang akan diantarkan berupa barang tahan lama dan
pelanggan bersedia untuk dikirimkan pada hari yang lain.
Pada penelitian ini akan menggunakan VRP dengan jenis VRP with Time
Windows (VRPTW).
2.4. VRP With Time Windows (VRPTW)
VRPTW ditandai dengan adanya sejumlah kendaraan yang memilikikapasitas tertentu, beberapa pelanggan, dan lokasi antar barang. Jumlah rute yang
akan dilalui oleh distributor disesuaikan dengan banyaknya pelanggan yang akan
dilayani. Pada pemisalan rute, pelanggan dapat dinotasikan berupa angka 1, 2, ..., i
dan depot tempat pengiriman dimulai dinotasikan sebagai 0. Pada saat
pengantaran barang setiap pelanggan hanya bisa dilayani pada batas waktu (time
windows) yang ditentukan oleh pelanggan. Batas waktu ini dapat disimbolkan
sebagai [ ii ba , ] dimana ia merupakan waktu pelayanan dimulai sedangkan ib
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
19/83
10
2.4.1. VRPTW Pada Distribusi Minuman Soda
Pada penelitian ini akan menggunakan kasus VRPTW pada perusahaandistribusi minuman soda XYZ. Sesuai dengan definisi VRPTW yang telah
dijelaskan sebelumnya, maka VRPTW pada distribusi minuman soda XYZ
meliputi :
- Jumlah pelanggan sebanyak 30 pelanggan
- Total kendaraan yang dimiliki perusahaan adalah sebanyak 10
- Jika pengisian kendaraan melebihi 10 kendaraan maka sisa barang
tersebut tidak diangkut
- Setiap pelanggan memiliki jumlah permintaan barang yang berbeda
- Setiap kendaraan memiliki kapasitas pengangkutan sebesar 60
- Setiap pelanggan memiliki time windows yang telah diketahui oleh
pihak distributor- Depot sebanyak 1 buah
- Jarak antara depot ke tiap pelanggan dan pelanggan ke pelanggan
telah diketahui
- Perkiraan waktu bongkar muat (service time) di setiap pelanggan telah
diketahui
- Ketika terjadi tardy, pelayanan bongkar muat oleh distributor tetap
dilakukan. Pada kejadian ini akan diberikan tardy time yang didapat
d i b ik t
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
20/83
11
mencari solusi optimal pada sebuah permasalahan. Untuk menyelesaikan masalah
tersebut, EA akan membangkitkan mahluk buatan yang mempresentasikan solusidari masalah yang ada. Setiap mahluk buatan ini akan berkompetisi antara satu
dengan lainnya dan diharapkan dari kompetisi ini akan didapatkan satu individu
terbaik yang merupakan solusi dari masalah yang ada [JON-04].
Algoritma evolusi merupakan teknik optimasi yang meniru proses evolusi
biologi. Dimana akan terdapat sejumlah individu dalam sebuah populasi awal.
Individu-individu ini akan melakukan reproduksi dan menghasilkan keturunan.
Individu-individu ini akan diseleksi oleh alam dan individu yang baik akan
mempunyai peluang yang lebih besar untuk melewatinya. Setiap individu pada
algoritma evolusi merepresentasikan solusi dari masalah yang akan diselesaikan.
Untuk mengetahui berapa baik suatu individu maka digunakan sebuah fungsi
fitness [MAH-13].Dapat diartikan secara sederhana EA merupakan algoritma generate and
test. EA akan membentuk beberapa solusi dan mengkombinasikan atau merubah
solusi tersebut ke solusi yang baru. Fungsi evaluasi (fitness) merepresentasikan
kualitas solusi dari masalah yang dicari. Sebuah solusi dengan fitness yang baik
kemungkinan besar akan menghasilkan solusi lain yang lebih baik tapi tidak
menutup kemungkinan bahwa solusi dengan fitness yang buruk dapat membawa
solusi baru yang lebih baik. Beberapa sifat dari EA menurut [EIB-03] adalah :
EA k l it b b i l i
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
21/83
12
Gambar 2.1 Skema Umum Algoritma Evolusi [EIB-03]
Proses umum algorita evolusi akan diterapkan pada beberapa tipe EA yang
telah dikembangkan. Beberapa tipe EA yaitu algoritma genetika (genetic
algorithms), evoluion strategies (ES), evolutionary programming (EP), dan
genetic programming (GP). Perbedaan pada tipe-tipe GA ini dapat dilihat pada
representasi individu yang ada. Algoritma genetika menggunakan representasi
biner, ES menggunakan representasi vektor bilangan pecahan, EP menggunakan
representasifinite state machines, dan GP menggunakan representasitrees [EIB-
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
22/83
13
[MAH-13] pada literatur lain ditulis sebagai ( s ) [BEY-02] yang
merepresentasikan besar parameter mutasi pada ES. Terakhir adalah )(yF yang
merepresentasikan nilai fitness dari solusi yang dibawa oleh y . Sehingga
representasi kromosom dari satu individu ES dapat dituliskan seperti berikut
[BEY-02]
))(,,( kkk yFsykromosom (2)
atau))(,,( kkk xFxkromosom (3)
Selain bentuk representasi kromosom yang berbeda dengan algoritma genetika,
ES lebih menekanan pada proses mutasi dalam pembentukan anak (offspring)
[MAH-13].
2.6.1. Prosedur DasarEvolution Strategies
Prosedur umum dalam ES dapat dinyatakan dengan istilah ),( . Dimana
adalah jumlah solusi awal atau populasi awal, sedangkan merupakan jumlah
solusi yang dihasilkan dari generasi awal (offspring). ),( juga mengartikan
bahwa generasi awal atau populasi awal ( ) tidak diikutsertakan pada proses
seleksi untuk generasi berikutnya dan hanya melibatkan hasil offspring ( ) .
Selain bentuk ),( terdapat pula bentuk )( dimana populasi awal ( ) dan
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
23/83
14
procedure EvolutionStrategies
begint = 0
inisialisasi P(t): generate random individu
while (bukan kondisi berhenti) do
mutasi C(t) untuk menghasilkan dari P(t)
seleksi P(t+1) dari P(t) dan C(t)
t = t + 1
end while
end
Dari pseudocode tersebut terlihat bahwa proses pembentukan offspring hanya
menggunakan proses mutasi saja. Proses seleksi melibatkan populasi awal P(t)
dan juga anak C(t).
2.6.2. Reproduksi PadaEvolution Strategies
Pada penjelasan sebelumnya telah diuraikan bahwa representasi bentuk
kromosom dari sebuah individu pada ES adalah ))(,,( kkk yFsykromosom atau
))(,,( kkk xFxkromosom . Nilai kx atau ky dibangkitkan secara acak sesuai
batasan solusi yang akan dicari, sedangkank
dibangkitkan secara acak pada
rentang nilai [0, 1] dan )( kxF merupakan nilaifitness dari kx [MAH-13]. Pada
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
24/83
15
ES memiliki sebuah kelebihan yaitu nilai yang bisa beradaptasi sesuai
dengan aturan 1/5. Aturan 1/5 adalah nilai akan dinaikkan bila ada palingsedikit 1/5 hasil mutasi dari salah satuparent yang memiliki fitness yang lebih
tinggi dari induknya. Jika tidak maka nilai akan diturunkan [MAH-13]. Aturan
1/5 dapat ditulis dengan rumus [BEY-02]
,
,.
,/
:
a
a
if
if
if
5/1
5/1
5/1
s
s
s
P
P
P
(7)
Perubahan dari terjadi terus menerus selama proses ES berlangsung dan selama
aturan 1/5 terpenuhi. Pada beberapa kasus yang jumlah anak dari setiapparent
tidak bisa mencapai aturan 1/5 maka perubahan nilai dilakukan jikaoffspring
yang dihasilkan memiliki minimal 1 anak dengan nilaifitness yang lebih baik dari
parent-nya [MAH-13]. Apabila banyak generasi lebih besar dari 30 maka nilai a
yang direkomendasikan berkisar antara 185.0 a [BEY-02].
Pembentukanoffspring ( ) pada ES disesuaikan dengan hasil kali antara
populasi awal ( ) dengan suatu bilangan bulat. Secara rumus dapat dituliskan
seperti berikut [MAH-13]
*C (8)
2.6.3. Fungsi Evaluasi (Fitness)
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
25/83
16
Cxffitness
)(
1(11)
NilaiC merupakan nilai konstan yang harus ditetapkan sebelumnya [MAH-13].
2.6.4. Seleksi PadaEvolution Strategies
Seleksi padaevolution strategies menggunakan seleksi berbasis peringkat
(elitism). Dimana individu dengan nilai fitness tertinggi pasti akan terpilih untuk
generasi berikutnya [MAH-13]. Seleksi disesuaikan dengan tipe dari ES itu
sendiri, apakah melibatkan populasi awal (parent) dan offspring atau hanya
menggunakan hasiloffspring saja [BAC-95].
2.7. Evolution Strategies Untuk Masalah VRPTW
VRPTW merupakan masalah kombinatorial dimana solusi yang
ditawarkan berupa rute yang dapat dilalui oleh kendaraan. Pada perkembangannya
ES dapat diadopsi untuk permasalahan kombinatorial dengan menggunakan
representasi permutasi. Pada permasalahan ini cara paling mudah yang dapat
digunakan adalah dengan menggunakan struktur ES tanpa rekombinasi dan
meniadakan mekanismeself adaptation [MAH-13].
Seperti yang telah dijelaskan sebelumnya bahwa ES menggunakan mutasi
sebagai sumber utama dalam membuat offspring. Ada beberapa teknik mutasi
yang dapat digunakan untuk membentuk offspring dari suatu parent Teknik
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
26/83
17
Pada penerapannya teknik mutasi ini dipilih secara random saat pembentukan
offspring [BEY-02].Mekanisme self adaptation pada representasi mutasi dapat dilakukan
dengan cara sederhana jika teknik yang digunakan berupa teknik exchange
mutation atauinsertion mutation. Nilai dapat dibangkitkan secara acak dengan
range tertentu. Nilai yang dibulatkan menyatakan jumlah proses kedua mutasi
tersebut dilakukan [MAH-13].
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
27/83
BAB III
METODE PENELITIAN DAN PERANCANGAN
Dalam bab ini akan dijabarkan mengenai metode penelitian dan
perancangan perangkat lunak impelementasi evolution strategies dalam
menyelesaikan vehicle routing problem with time windows pada distribusi
minuman soda XYZ. Langkah-langkah yang dilakukan dalam penelitian ini, dapat
diilustrasikan pada Gambar 3.1 :
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
28/83
19
Berdasarkan Gambar 3.1 penjabaran langkah-langkah yang dilakukan
dalam penelitian ini adalah :1. Studi pustaka
Mencari dan mempelajari literatur yang berhubungan dengan penerapan
evolution strategies dalam menyelesaikan masalah VRPTW
2. Pengumpulan dan analisis data
Mengumpulkan data jalur pelanggan untuk distribusi minuman soda XYZ.
Data berupa data dummy yang dibuat sendiri oleh peneliti. Karakteristik
data disesuaikan dengan kondisi permasalahan nyata.
3. Analisis dan perancangan sistem
Menganalisis dan merancang sistem penerapanevolution strategies dalam
menyelesaikan masalah VRPTW dalam distribusi minuman soda XYZ.
4. Impelementasi sistemMengimpelemntasikan hasil analisa dan perancangan sistem dengan
membangun perangkat lunak
5. Pengujian sistem
Melakukan pengujian data VRPTW distribusi minuman soda XYZ
terhadap perangkat lunak yang telah dibangun.
6. Evaluasi sistem
Melakukan evaluasi dan analisis terhadap hasil pengujian perangkat lunak.
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
29/83
20
3.2. Pengumpulan dan Analisis Data
Data yang digunakan adalah datadummy yang dibuat sendiri oleh peneliti.Karakteristik data disesuaikan dengan kondisi yang terjadi di dunia nyata.
Pembuatan data berdasarkan wawancara informal dengan pakar yang memahami
permasalahan VRPTW pada distribusi suatu barang. Data terdiri dari 30
pelanggan yang tersebar secara acak. Setiap pelanggan memiliki jarak tempuhnya
masing-masing. Pada data ini juga dilengkapi dengan time windows setiap
pelanggan, jumlah permintaan, serta waktu perkiraan lama pelayanan bongkar-
muat di setiap pelanggan. Data ini kemudian akan dicari rute optimal yang harus
dilalui oleh pihak distributor dalam mendistribusikan produknya dengan
menggunakanevolution strategies.
3.3. Analisis dan Perancangan SistemSistem yang dibuat merupakan perangkat lunak yang
mengimplementasikan evolution strategies dalam menyelesaikan masalah
VRPTW distribusi minuman soda. Sistem ini akan merekomendasikan rute yang
dapat dilalui oleh pihak distributor dengan mengoptimalkan pengisian kendaraan
(BPP optimal) serta meminimalkan total jarak tempuh dan tardy time. Adapun
batasan sistem yaitu :
1. Jumlah kendaraan pihak distributor adalah 10 kendaraan
2 K it k i l k t ti k d d l h 60
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
30/83
21
strategies berupa jumlah populasi ( ), ukuran offspring ( ), nilai a , banyak
generasi, dan teknik mutasi yang akan digunakan. Data VRPTW yangdimasukkan berupa data time windows dan jumlah permintaan setiap pelanggan,
serta data jarak tempuh depot ke pelanggan dan pelanggan ke pelanggan. Diagram
alir penerapanevolution strategies yang digunakan dapat dilihat pada Gambar 3.2
berikut :
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
31/83
22
akan membuat populasi awal sesuai dengan jumlah yang dimasukkan. Setelah
populasi awal dibentuk akan dilakukan pengulangan untuk membentukoffspringdengan cara mutasi. Hasil mutasi dan populasi awal akan dihitung nilai fitness
masing-masing individu lalu diseleksi. Proses pengulangan akan dilakukan
sampai banyak generasi tercapai. Hasil keluaran berupa hasil optimasi yang
didapatkan denganevolution strategies.
3.3.1. Proses Generate Populasi Awal
Pada proses ini sistem akan membuat sebuah populasi awal secara acak
yang terdiri dari beberapa individu. Setiap individu akan dibentuk dengan
representasi permutasi disertai dengan strategy parameters tiap individu. Proses
pembuatan populasi ini dapat dilihat pada Gambar 3.3 berikut :
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
32/83
23
1. Sistem menerima masukkan berupa jumlah populasi yang akan dibuat.
2. Sistem akan melakukan proses pembuatan individu sebanyak jumlahpopulasi yang telah ditentukan
3. Hasil proses ini berupa populasi awal yang akan digunakan untuk proses
berikutnya
3.3.2. Proses Reproduksi
Pada proses reproduksi, sistem akan melakukan pembuatanoffspring (anak)
hanya dengan menggunakan mutasi. Hasil mutasi ini nantinya akan diikutkan
bersama orang tua dalam proses seleksi. Berdasarkan literatur yang telah
dijelaskan sebelumnya proses ini berupa proses )( . Pada proses reproduksi
ini juga melibatkan self adaptation dimana nilai strategy parameters dari
offspring akan berubah sesuai dengan nilai fitness yang dihasilkan. Langkah-langkah yang dilakukan dalam proses reproduksi ini dapat dilihat pada Gambar
3.4 berikut :
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
33/83
24
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
34/83
25
2. Sistem akan melakukan pengulangan dalam pembentukan offspring
sesuai dengan jumlahparent3. Proses mutasi untuk membentuk offspring dilakukan sebanyak jumlah
C
4. Setelah proses mutasi dilakukan, sistem akan melakukan proses self
adaptation untuk mengganti nilai strategy parameters dariparentasal
sesuai dengan nilaifitness hasiloffspring
5. Hasil mutasi berupa offspring yang akan diseleksi pada proses
berikutnya.
3.3.3. Hitung NilaiFitness
Sebelum diseleksi, setiap individu yang ada akan dihitung nilaifitness-nya.
Suatu rute dikatakan optimal apabila, semua pelanggan terlayani dengan syarat
penggunaan kendaraan tidak lebih dari 10 unit, dapat memperkecil keterlambatan
atautardy time dan memperkecil total jarak rute yang dipilih. VRPTW merupakan
masalah minimasi sehingga rumus nilai fitness yang akan digunakan adalah
sebagai berikut
)_*50()_*5.0()*50(
1000
terlayanitidakjaraktotaltardy
fitness
(12)
Tardy time digunakan karena semakin kecil tardy time maka semakin kecil pula
keterlambatan yang dilakukan oleh pihak distributor. Tardy time didapatkan dari
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
35/83
26
Gambar 3.5 Diagram Alir Hitung NilaiFitness7
Langkah-langkah yang digunakan dalam proses perhitungan nilai fitness
seperti yang termuat dalam Gambar 3.5 adalah sebagai berikut :
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
36/83
27
5. Setelah didapatkan total jarak dan total tardy time maka nilai fitness
dapat dihitung dengan menggunakan persamaan (12)
6. Hasil akhir adalah nilaifitness dari individu tersebut
3.3.4. Proses Seleksi
Proses seleksi merupakan proses terakhir dalamevolution strategies dimana
pada proses ini sistem akan melakukan seleksi tiap individu yang akan dibawa ke
generasi berikutnya. Proses seleksi yang akan diterapkan pada sistem ini yaitu
proses )( dimana seleksi akan melibatkan parent dan offspring. Seleksi
menggunakanelitistdengan mengurutkan semua individu berdasarkan nilaifitness
terbesar, untuk selanjutnya akan diambil individu sebanyak populasi berdasarkan
urutan tertinggi. Diagram alir proses seleksi dapat dilihat pada Gambar 3.6
berikut:
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
37/83
28
Langkah-langkah yang digunakan dalam proses seleksi seperti yang termuat
dalam Gambar 3.6 adalah sebagai berikut :
1. Masukkan dalam proses seleksi adalah jumlah populasi atau jumlah
parentyang telah ditentukan di awal
2. Teknik ES yang digunakan adalah )( sehingga proses seleksi
menggunakanparentdanoffspring.
3. Nilai fitness dari parent dan offspring digabung menjadi satu dan
diurutkan dari nilaifitness terbesar ke terkecil
4. Proses pengambilan parent yang baru disesuaikan dengan jumlah
populasi yang telah ditentukan
5. Parentpertama adalah individu yang memiliki nilaifitness yang paling
tinggi, sedangkan parent kedua adalah individu dengan nilai fitness
tertinggi kedua. Hal ini dilakukan seterusnya sesuai dengan jumlahpopulasi yang telah ditentukan
6. Hasil akhir berupa hasil seleksi dariparentdanoffspring
3.4. Perhitungan Manual
Pada subbab ini akan dijelaskan tentang contoh perhitungan manual dalam
menerapakanevolution strategies untuk menyelesaikan masalah VRPTW dalam
distribusi minuman soda XYZ. Misalkan terdapat 5 pelanggan yaitu 1, 2, 3, 4, dan
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
38/83
29
Tabel 3.2 Jarak Antar Pelanggan
D 1 2 3 4 5D 0 60 55 15 40 10
1 60 0 10 35 45 40
2 55 10 0 20 20 30
3 15 35 20 0 25 5
4 40 45 20 25 0 30
5 10 40 30 5 30 0
Dalam perhitungan manual ini akan ditetapkan parameter awal adalah
sebagai berikut :
1. Jumlah populasi = 3
2. Jumlahoffspring = 3 * populasi
3. Jumlah generasi = 1
4. Nilai 8.0a
Adapun batasan yang harus diketahui adalah setiap kendaraan memiliki daya
angkut yang sama yaitu sebesar 40 dan jumlah kendaraan adalah 3 buah.
Kecepatan rata-rata setiap kendaraan adalah 60 KM/jam. Setiap pelanggan hanya
bisa dilayani oleh satu kendaraan sehingga tidak ada pengangkutan terpisah.
3.4.1. Generate Populasi Awal
Populasi awal dibangkitkan dengan membuat individu sebanyak populasi
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
39/83
30
3.4.2. NilaiFitness
Suatu rute dikatakan optimal jika dapat meminimalkan tardy time, total
jarak tepuh tiap kendaraan, dan meminimalisir pelanggan yang tidak terlayani.
VRPTW merupakan masalah minimasi sehingga untuk proses perhitungan nilai
fitness menggunakan persamaan (12). Berdasarkan data populasiparentyang ada
maka nilaifitness dari masing-masing individu dapat dicari dengan mendapatkan
rincian parameter nilai fitness setiap rute yang ditawarkan. Contoh perhitungan
setiap parameter untuk menentukan nilai fitness dapat dilihat pada perhitungan
berikut :
Tabel 3.4 Perhitungan Parameter NilaiFitness
Rute
TotalKendaraan
Total
Angkut
Rute
KendaraanTardy Jarak
1 2 3 4 5Ke-1 40 0-1-2-0 0 125
Ke-2 30 0-3-4-5-0 140 80
Sehingga nilaifitness untuk rute 1 2 3 4 5 adalah
1408.0)0*50()205*5.0()140*50(
1000
fitness
Hal yang sama dilakukan untuk anggota populasi yang lain, sehingga hasil dari
perhitunganfitness untuk populasi awal dapat dilihat pada Tabel 3.5 berikut :
Tabel 3.5 NilaiFitness Populasi Awal
Rute SP Mobil Tardy Time Jarak Fitness
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
40/83
31
untuk menghasilkan 1 offspring. Nilai strategy parameters akan dinaikan dan
diturunkan dengan menggunakan persamaan (7) dengan nilai 8.0a .
Misalkan P1 akan dimutasi dengan exchange mutation untuk mendapatkan
C1. Dari data populasi awal terlihat bahwa P1 memiliki SP = 2.3841. SP ini akan
dibulatkan menjadi SP = 2, hal ini berarti P1 akan dimutasi dengan exchange
mutation sebanyak 2 kali untuk menghasilkan 1 offspring. Contoh proses
pembuatanoffspring dari P1 dapat dilihat pada Tabel 3.6 berikut
Tabel 3.6 ContohExchange Mutation dengan SP = 2
Induk Proses Temp Offspring
1 2 3 4 5Tukar 2 dan 3 1 3 2 4 5
1 3 4 2 5Tukar 2 dan 4 1 3 4 2 5
Langkah yang sama dilakukan untuk parent yang lain dengan memilih secara
acak teknik mutasi yang akan digunakan. Hasil reproduksi dari populasi awal
dapat dilihat pada Tabel 3.7 berikut :
Tabel 3.7 Hasil Reproduksi Populasi Awal
C(t) Induk Rute SP Mobil Tardy Jarak Fitness
C1 P1 1 3 4 2 5 1.9073 2 455 255 0.0437
C2 P1 2 4 3 1 5 1.9073 2 150 215 0.1314
C3 P1 4 1 3 2 5 1.9073 2 620 230 0.0321
C4 P2 4 3 5 2 1 6.2068 2 365 205 0.0545
C5 P2 5 3 2 4 1 6.2068 3 60 265 0.3912
C6 P2 3 5 4 2 1 6 2068 2 80 215 0 2434
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
41/83
32
3.4.4. Seleksi
Proses ES yang digunakan adalah )( sehingga proses seleksi
melibatkan parent dan offspring. Seleksi pada ES menggunakan seleksi elitist
dengan mengambil individu dengan nilai fitness yang terbaik sebanyak populasi
yang ditentukan sebelumnya. Sebelum memulai seleksi maka setiap individu dari
parentdanoffspring dikumpulkan menjadi satu lalu diurutkan berdasarkan fitness
terbesar. Hasil pengurutan individu berdasarkan fitness dapat dilihat pada Tabel
3.8 berikut :
Tabel 3.8 Hasil Pengurutan Berdasarkan NilaiFitness
Asal Induk Rute SP Mobil Tardy Jarak Fitness
C5 P2 5 3 2 4 1 6.2068 3 60 265 0.3912
C6 P2 3 5 4 2 1 6.2068 2 80 215 0.2434
C8 P3 1 2 5 4 3 4.9138 2 115 205 0.1709
P1 1 2 3 4 5 2.3841 2 140 205 0.1408C2 P1 2 4 3 1 5 1.9073 2 150 215 0.1314
C7 P3 5 4 1 2 3 4.9138 2 360 235 0.0552
P2 2 3 5 4 1 4.9564 2 360 235 0.0552
C4 P2 4 3 5 2 1 6.2068 2 365 205 0.0545
P3 1 4 2 5 3 3.7531 3 390 270 0.0509
C9 P3 1 5 4 2 3 4.9138 2 450 260 0.0442
C1 P1 1 3 4 2 5 1.9073 2 455 255 0.0437C3 P1 4 1 3 2 5 1.9073 2 620 230 0.0321
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
42/83
33
Gambar 3.7 Rancangan Antar Muka9
Keterangan Gambar 3.7 :1. Tab yang berisi data pelanggan, data jarak, populasi awal dan populasi
baru hasil seleksi, hasiloffspring dari ES, dan detail ES.
2. Panel inputparameter ES
3. Tombolrun untuk menjalankan proses ES
4. Panel hasil dari ES yang akan menampilkan individu terbaik, nilaifitness,
dan lama waktu yang digunakan oleh sistem untuk mencari individu
terbaik
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
43/83
34
fitness terbaik yang didapatkan dari setiap skenario uji tersebut. Setiap hasil
fitness terbaik juga akan diambil standar deviasi dan koefisien variasinya.
Standar deviasi ( s ) berfungsi untuk melihat keanekaragaman dari hasil
fitness terbaik yang didapatkan oleh suatu parameter [SET-11]. Sebuah standar
deviasi tidak selamanya memperlihatkan keanekaragaman dari suatu data, untuk
memperjelas maka dibutuhkan suatu koefisien variasi ( VK. ) untuk memperjelas
keanekaragaman dari data tersebut [SET-11]. Perhitungan standar deviasi akan
menggunakan bantuan MS Excel sedangkan untuk perhitungan koefisien variasi
akan menggunakan persamaan (13) berikut :
%100*.ratarata
sVK
(13)
3.6.1. Skenario Uji Coba I
Pada skenario I akan dilakukan uji coba terhadap metode mutasi yang
menghasilkan rute paling optimal. Metode mutasi akan dibagi ke dalam 8 bagian
yaitu hanya denganexchange mutation, hanya dengan insertion mutation, hanya
dengan inversion mutation, gabungan antara exchange mutation dan insertion
mutation, gabungan antaraexchange mutation dan inversion mutation, gabungan
antara insertion mutation dan inversion mutation, gabungan ketiga metode
tersebut, dan terakhir adalah pemilihan secara acak dari setiap metode mutasi
tersebut
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
44/83
35
Exchange dan Inversion
Insertion dan Inversion
Exchange, Insertion,Inversion
Random
3.6.2.Skenario Uji Coba II
Pada skenario II akan dilakukan uji coba pengaruh nilai parameter a
terhadap hasil nilaifitness terbaik yang didapatkan. Seperti yang telah diketahuisebelumnya nilai parameter a merupakan nilai yang akan merubah strategy
parameters dari suatu individu. Parameter yang akan digunakan pada skenario II
ini adalah jumlah generasi = 100, metode mutasi yang akan digunakan adalah
metode mutasi terbaik yang didapatkan dari skenario I, ukuran populasi 20 ,
ukuran offspring *1 , sedangkan strategy parameters akan dibangkitkan
dalam rentang nilai [1, 2]. Rancangan tabel hasil pengujian nilai a dapat dilihat
pada Tabel 3.11 berikut :
Tabel 3.11 Rancangan Tabel Hasil Skenario II
Nilai Parametera Rata-Rata Nilai Fitness TerbaikStandar
Deviasi
Koefisien
Variasi
0.85
0.9
0.95
0.99
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
45/83
36
Tabel 3.12 Rancangan Tabel Skenario III
Ukuran Ukuran
20 40 60 80 100
1
2
3
4
5
67
8
9
10
Pada skenario III ini setiap percobaan akan diakhiri apabila setelah 7000 generasi
berturut-turut tidak menghasilkan nilai fitness yang lebih baik. Karena
keterbatasan performa dari komputer yang ada, maka setiap percobaan akan
dilakukan sebanyak 10 kali.
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
46/83
BAB IV
IMPLEMENTASI
Pada bab implementasi ini akan dibahas penerapan sistem dari rancangan
yang telah dipaparkan pada bab sebelumnya. Bab implementasi ini terdiri dari
lingkungan impelementasi, implementasi aplikasi dan implementasi tampilan
antar muka.
4.1. Lingkungan Implementasi
Lingkungan impelementasi ini merupakan lingkungan saat sistem
penerapan Evolution Strategies dalam menyelesaikan VRPTW pada distribusi
minuman soda XYZ dibangun. Sistem yang berupa aplikasi dibangun pada dua
lingkungan yaitu lingkungan perangkat keras (hardware) dan perangkat lunak
(software).
4.1.1. Lingkungan Perangkat Keras
Perangkat keras yang digunakan dalam pembuatan implementasi aplikasi
evolution strategies adalah sebagai berikut :
1. Prosesor AMD Phenom II X4 955 3.20 GHz
2. Ram 4 GB
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
47/83
38
4.2. Impelementasi Aplikasi
Berdasarkan analisa dan perancangan pada BAB III, maka pada subbab ini
akan dijelaskan impelementasi berupa Source Code pada aplikasi yang telah
dibuat.
4.2.1. Implementasi Generate Populasi Awal
Ada 2 proses utama yang terjadi saat pembangkitan individu awal, yaitu
proses pembuatan individu dan proses pembuatan populasi. Pada proses
pembuatan individu sistem akan membuat individu dalam representasi permutasi.
Sedangkan untuk proses pembuatan populasi sistem akan melakukan pengulangan
yang sesuai dengan banyak populasi yang diinginkan oleh pengguna.
Implementasi kedua proses tersebut pada program dapat dilihat padaSource Code
4.1 danSource Code 4.2
private void individu(){
int[] node = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 };
int[] randnode = node.OrderBy(x => rnd.Next()).ToArray();foreach (var item in randnode){
kromosom.Append(item + " ");}
}Source Code 4.1 Implementasi Pembuatan Individu
Pada proses pembuatan individu dapat dilihat sistem akan membangkitkan rute
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
48/83
39
Untuk proses pembangkitan populasi awal, sistem akan melakukan proses
pembuatan individu sebanyak populasi yang telah ditentukan oleh pengguna.
Setiap individu yang telah dibuat akan disimpan ke dalam List parent
pada form utama. Setelah individu dibuat, sistem akan membangkitkanstrategy
parameters tiap individu dan menyimpannya ke dalamList parentsp.
Langkah berikutnya adalah sistem akan menghitung nilai fitness dari individu
yang dibangkitkan dan menyimpannya ke dalamList parentf. Populasi
awal yang telah terbentuk ini akan disimpan untuk diproses pada proses
selanjutnya yaitu reproduksi dan seleksi.
4.2.2. Impelementasi Reproduksi
Pada penelitian ini proses reproduksi hanya melibatkan mutasi tanpa ada
rekombinasi. Terdapat 3 teknik mutasi yang digunakan dalam penelitian ini yaitu
exchange mutation, insertion mutation, dan inversion mutation. Pada proses
reproduksi ini juga terdapat proses self adaptation dimana strategy parameters
dari offspring akan menyesuaikan dengan hasil fitness yang didapatkan.
Penerapan proses reproduksi dapat dilihat padaSource Code 4.3.
public void reproduksi(){
int popsize = int.Parse(((Form1)frm1).txtmiu.Text);
for (int j = 0; j < popsize; j++){
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
49/83
40
{
for (int k = 0; k < repetisi; k++){
aaa = teknik.exchange(aaa);}((Form1)frm1).child.Add(aaa);
double fitnes = val.getfitness(aaa, ((Form1)frm1).tbl_jarak,((Form1)frm1).tbl_pelanggan);
((Form1)frm1).childf.Add(fitnes);
tempf.Add(fitnes);}
}
else if (l == 2) //insertion mutation{
for (int i = 0; i < pengali; i++){
for (int k = 0; k < repetisi; k++){
aaa = teknik.insertion(aaa);
}((Form1)frm1).child.Add(aaa);double fitnes = val.getfitness(aaa, ((Form1)frm1).tbl_jarak,
((Form1)frm1).tbl_pelanggan);((Form1)frm1).childf.Add(fitnes);tempf.Add(fitnes);
}}
else if (l == 3) //inversion mutation{
for (int i = 0; i < pengali; i++){
for (int k = 0; k < repetisi; k++)
{aaa = teknik.inversion(aaa);
}
((Form1)frm1) child Add(aaa);
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
50/83
41
aaa = teknik.exchange(aaa);
}}
((Form1)frm1).child.Add(aaa);double fitnes = val.getfitness(aaa, ((Form1)frm1).tbl_jarak,
((Form1)frm1).tbl_pelanggan);
((Form1)frm1).childf.Add(fitnes);tempf.Add(fitnes);
}
}
else if (l == 5) //exchange dan insertion{
for (int i = 0; i < pengali; i++){
for (int k = 0; k < repetisi; k++){
int terpilih = rnd.Next(1, 2);if (terpilih == 1){
aaa = teknik.exchange(aaa);aaa = teknik.insertion(aaa);
}
else if (terpilih == 2){aaa = teknik.insertion(aaa);
aaa = teknik.exchange(aaa);}
}((Form1)frm1).child.Add(aaa);double fitnes = val.getfitness(aaa, ((Form1)frm1).tbl_jarak,
((Form1)frm1).tbl_pelanggan);((Form1)frm1).childf.Add(fitnes);tempf.Add(fitnes);
}}
else if (l == 6) //insertion dan inversion
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
51/83
42
}
}
else if (l == 7) //ketiganya{
for (int i = 0; i < pengali; i++)
{for (int k = 0; k < repetisi; k++){
int terpilih = rnd.Next(1, 6);if (terpilih == 1){
aaa = teknik.exchange(aaa);
aaa = teknik.insertion(aaa);aaa = teknik.inversion(aaa);
}else if (terpilih == 2)
{aaa = teknik.exchange(aaa);aaa = teknik.inversion(aaa);
aaa = teknik.insertion(aaa);}else if (terpilih == 3)
{ aaa = teknik.insertion(aaa);aaa = teknik.exchange(aaa);
aaa = teknik.inversion(aaa);}else if (terpilih == 4){
aaa = teknik.insertion(aaa);aaa = teknik.inversion(aaa);aaa = teknik.exchange(aaa);
}
else if (terpilih == 5){
aaa = teknik.inversion(aaa);
aaa = teknik insertion(aaa);
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
52/83
43
if (k == 1)
{for (int x = 0; x < repetisi; x++)
{aaa = teknik.exchange(aaa);
}
((Form1)frm1).child.Add(aaa);double fitnes = val.getfitness(aaa,
((Form1)frm1).tbl_jarak, ((Form1)frm1).tbl_pelanggan);
((Form1)frm1).childf.Add(fitnes);tempf.Add(fitnes);
}
else if (k == 2){
for (int x = 0; x < repetisi; x++){
aaa = teknik.insertion(aaa);}((Form1)frm1).child.Add(aaa);
double fitnes = val.getfitness(aaa,((Form1)frm1).tbl_jarak, ((Form1)frm1).tbl_pelanggan);
((Form1)frm1).childf.Add(fitnes);
tempf.Add(fitnes);}
else if (k == 3){
for (int x = 0; x < repetisi; x++){
aaa = teknik.inversion(aaa);}((Form1)frm1).child.Add(aaa);double fitnes = val.getfitness(aaa,
((Form1)frm1).tbl_jarak, ((Form1)frm1).tbl_pelanggan);((Form1)frm1).childf.Add(fitnes);tempf.Add(fitnes);
}
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
53/83
44
class TeknikMutasi
{Random rnd = new Random();
public string exchange(string a){
int xp1 = rnd.Next(0, 29);int xp2 = rnd.Next(0, 29);
do{
xp1 = rnd.Next(0, 29);} while (xp1 == xp2);
string tes = a;
string[] ssize = tes.Split(new char[0]);
string[] ssize2 = tes.Split(new char[0]);
ssize[xp1] = ssize2[xp2];
ssize[xp2] = ssize2[xp1];
string result = string.Join(" ", ssize);
return result;}
public string insertion(string a){
StringBuilder hasil = new StringBuilder();string tes = a;int random = rnd.Next(0, 29);int pos = rnd.Next(0, 29);
do{
random = rnd.Next(0, 29);
} while (random == pos);
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
54/83
45
}
public string inversion(string a)
{StringBuilder hasil = new StringBuilder();string tes = a;
int random = rnd.Next(0, 29);int pos = rnd.Next(0, 29);
do{
random = rnd.Next(0, 29);pos = rnd.Next(0, 29);
} while (random > pos);
string[] ssize = tes.Split(new char[0]);
hasil.Clear();int j = pos;for (int i = 0; i < 30; i++)
{if (i random && i pos){
hasil.Append(ssize[i] + " ");}
}
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
55/83
46
berubah apabila setidaknya 1 hasiloffspring yang menghasilkan nilaifitness yang
lebih baik dariparent-nya. Implementasiself adaptation dapat dilihat padaSource
Code 4.6 berikut :
private void selfadapt(int a)
{int pengali = int.Parse(((Form1)frm1).txtlambda.Text);int miu = int.Parse(((Form1)frm1).txtmiu.Text);
double fasal = ((Form1)frm1).parentf[a];double spasal = ((Form1)frm1).parentsp[a];double nilaia = double.Parse(((Form1)frm1).txtnilaia.Text);
tempf.Sort();double[] tempfitness = tempf.ToArray();Array.Reverse(tempfitness);int byk_child = pengali;double persen = 0.2;int seperlima = Convert.ToInt16(byk_child * persen);
if (seperlima fasal){
for (int i = 0; i < pengali; i++){
((Form1)frm1).childsp.Add(Math.Round(spasal / nilaia,
5));}
}
else if (max < fasal){
for (int i = 0; i < pengali; i++){
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
56/83
47
spbaru = 0;
Math.Round(spbaru = spasal / nilaia, 5);}
else if (tempfitness[j] - fasal < 0){
spbaru = 0;Math.Round(spbaru = spasal * nilaia, 5);
}
else if (tempfitness[j] - fasal == 0){
spbaru = 0;
Math.Round(spbaru = spasal, 5);break;
}}
for (int i = 0; i < pengali; i++){
((Form1)frm1).childsp.Add(Math.Round(spbaru,5));}tempf.Clear();
}}
Source Code 4.6 ImplementasiSelf Adaptation
4.2.3. Implementasi Hitung NilaiFitness
Pada proses perhitungan nilaifitness sistem akan mengambil data dari data
pelanggan dan data jarak yang ada pada Form utama sistem. Implementasi
perhitungan nilaifitness dapat dilihat padaSource Code 4.7 berikut :
public double getfitness(string a, DataGridView datajarak, DataGridViewdatapelanggan)
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
57/83
48
private KeyValuePair isimobil(string a, DataGridView
datajarak, DataGridView datapelanggan){
string[] ssize = a.Split(new char[0]);overload = 0;double ttl_jarak = 0;
double ttl_tardy = 0;jlhmobil = 1;int batas = 60;
int isi = 0;StringBuilder kromosom = new StringBuilder();
for (int i = 0; i < 30; i++)
{isi = isi +
Convert.ToInt16(datapelanggan.Rows[Convert.ToInt16(ssize[i]) -1].Cells["Permintaan"].Value);
if (isi batas){ttl_tardy +=
gettardy(kromosom.ToString(),datajarak,datapelanggan);
kromosom.Append("0" + " ");ttl_jarak += getjarak(kromosom.ToString(), datajarak);kromosom.Clear();kromosom.Append(ssize[i] + " ");jlhmobil = jlhmobil + 1;isi =
Convert.ToInt16(datapelanggan.Rows[Convert.ToInt16(ssize[i]) -1].Cells["Permintaan"].Value);
}
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
58/83
49
getjarak. Implementasi untuk mendapatkan nilaitardy dan jarak dari setiap rute
kendaraan dapat dilihat padaSource Code 4.9 danSource Code 4.10.
public double getjarak(string a, DataGridView datajarak)
{string[] ssize = a.Split(new char[0]);int b = ssize.Count();
double jarak = 0 +Convert.ToDouble(datajarak.Rows[0].Cells[ssize[0]].Value);
for (int i = 0; i < b - 1; i++)
{if (i == b - 2)
{ jarak +=Convert.ToDouble(datajarak.Rows[0].Cells[ssize[i]].Value);
}
else{
jarak +=Convert.ToDouble(datajarak.Rows[Convert.ToInt16(ssize[i])].Cells[ssize[i+ 1]].Value);
}}
return jarak;}
Source Code 4.9 Implementasi Perhitungan Jarak
public double gettardy(string a, DataGridView datajarak, DataGridViewdatapelanggan)
{
string[] ssize = a.Split(new char[0]);int b = ssize.Count();
TimeSpan mulai;TimeSpan selesai;
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
59/83
50
mulai = buka;
selesai = mulai +TimeSpan.FromMinutes(Convert.ToDouble(datapelanggan.Rows[Convert.ToInt16(ss
ize[i]) - 1].Cells["Pelayanan"].Value));}
else{
mulai = sampai;
selesai = mulai +TimeSpan.FromMinutes(Convert.ToDouble(datapelanggan.Rows[Convert.ToInt16(ssize[i]) - 1].Cells["Pelayanan"].Value));
}
if (selesai
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
60/83
51
int i = 0;
foreach (var item in ((Form1)frm1).parent){
tempall.Add(((Form1)frm1).parent[i]);tempsp.Add(((Form1)frm1).parentsp[i]);tempfitness.Add(((Form1)frm1).parentf[i]);
i++;}
int j = 0;foreach (var item in ((Form1)frm1).child){
tempall.Add(((Form1)frm1).child[j]);
tempsp.Add(((Form1)frm1).childsp[j]);tempfitness.Add(((Form1)frm1).childf[j]);j++;
}
double[] fitness = tempfitness.ToArray();double[] sp = tempsp.ToArray();
string[] all = tempall.ToArray();
Array.Sort(fitness.ToArray(), all);
Array.Sort(fitness.ToArray(), sp);Array.Sort(fitness);
Array.Reverse(all);Array.Reverse(sp);Array.Reverse(fitness);
((Form1)frm1).parent.Clear();((Form1)frm1).parentsp.Clear();((Form1)frm1).parentf.Clear();((Form1)frm1).child.Clear();
((Form1)frm1).childsp.Clear();((Form1)frm1).childf.Clear();tempall.Clear();
tempfitness Clear();
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
61/83
52
Gambar 4.1Form Utama Sistem10
Keterangan Gambar 4.1 :
1. Tombol untuk menampilkan data pelanggan
2. Tabel untuk menampilkan data pelanggan. Data pelanggan sendiri berupa
data time windows setiap pelanggan, data jumlah permintaaan pelanggan
tersebut, serta waktu perkiraan bongkar muat (service time).
3. Textbox untuk memasukkan parameter nilai miu
4. Textbox untuk memasukkan ukuranoffspring.
5. Textbox untuk memasukkan nilaia
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
62/83
53
Gambar 4.2 TampilanTab Jarak11
Keterangan Gambar 4.2 :
1. TombolBrowse untuk memilihfile excel yang berisikan data jarak
2. Textbox untuk menampilkan letakfile excel yang telah dipilih
3. TombolLoaduntuk menampilan data jarak yang telah dipilih
4. Tabel untuk menampilkan data jarak
Ketika pengguna menekan tombol Run maka sistem akan menjalankan
proses ES. Hasil populasi awal dan hasil seleksi sehingga membentuk populasi
baru akan ditampilkan pada tab Parent. Tampilantab Parent dapat dilihat pada
54
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
63/83
54
Gambar 4.3 TampilanTab Parent12
Sama sepertitab Parent, padatab Children sistem akan menampilkan hasil
offspring yang telah diproses oleh sistem. Tampilan tab Children dapat dilihat
pada Gambar 4.4 berikut :
55
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
64/83
55
Gambar 4.5 TampilanTab Detail ES14
Pada tab ini pengguna dapat melihat rekomendasi rute yang harus dilalui oleh
setiap kendaraan yang ada. Rincian tersebut meliputitardy time setiap kendaraan
dan total jarak yang dilalui oleh setiap kendaraan.
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
65/83
BAB V
PENGUJIAN DAN ANALISIS
Pada bab ini akan dijelaskan tentang hasil pengujian beserta analisis dari
setiap hasil pengujian tersebut.
5.1. Sistematika Pengujian
Seperti yang telah dijelaskan pada Bab 3, pada penelitian ini terdapat 3
skenario pengujian yang dilakukan. Setiap skenario akan dilihat pengaruhnya
terhadap hasil fitness yang didapatkan, sehingga akan ditemukan parameter
terbaik yang dapat digunakan untuk masalah VRPTW pada kasus distribusi
minuman soda XYZ. Skenario pertama adalah pengujian teknik mutasi yang
digunakan. Skenario pengujian kedua adalah pengujian nilai parameter a .Skenario ketiga adalah pengujian kombinasi ukuran populasi ( ) dan ukuran
offspring ( ).
5.2. Analisa Hasil dan Pembahasan
Berdasarkan skenario pengujian pada Bab 3, berikut akan ditampilkan hasil
pengujian setiap skenario yang ada. Proses pengujian dilakukan sesuai skenario
yang telah dijelaskan sebelumnya. Adapun data pelanggan dan data jarak dapat
57
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
66/83
57
Exchange dan Insertion 0.572615778 0.553356236 96.63656812
Exchange dan Inversion 0.443739324 0.461371651 103.9735777
Insertion dan Inversion 0.428966868 0.467070139 108.8825672Exchange, Insertion,
Inversion0.256927252 0.329304331 128.1702617
Random 1.243471443 0.531915771 42.77667771
Berdasarkan Tabel 5.1 juga dapat dibuat sebuah grafik yang menunjukkan
pengaruh teknik mutasi terhadap nilai fitness yang didapatkan dan terhadap
koefisien variasinya. Grafik tersebut dapat dilihat pada Gambar 5.1 dan Gambar
5.2 berikut :
0
0.5
1
1.5
Exchange Insertion Inversion Exchange
dan
Insertion
Exchange
dan
Inversion
Insertion
dan
Inversion
Exchange,
Insertion,
Inversion
Random
Hasil Skenario I Terhadap Rata-Rata Fitness
Rata-Rata Nilai Fitness Terbaik
Gambar 5.1 Grafik Hasil Skenario I Terhadap Rata-RataFitness15
58
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
67/83
58
dikatakan pula kecilnya standar deviasi dan koefisien variasi menunjukkan bahwa
data lebih konsisten [SET-11]. Kecilnya standar deviasi dan koefisien variasi pada
exchange mutation dapat diartikan bahwaexchage mutation memiliki variasi data
yang kecil, kecilnya variasi data ini menandakan bahwa exchange mutation
cenderung stabil untuk digunakan sebagai parameter pada ES dibandingkan
dengan teknik mutasi yang lain.
Pada Gambar 5.1 juga terlihat teknik mutasi mempengaruhi nilai fitness
yang didapatkan oleh ES. Exchange mutation memberikan rata-rata nilai fitness
tertinggi sedangkan gabungan ketiga teknik mutasi memberikan rata-rata nilai
fitness terendah. Pada grafik tersebut terlihat penggabungan teknik mutasi
memberikan hasil yang kurang baik jika dibandingkan dengan teknik mutasi yang
berdiri sendiri. Teknik exchange mutation yang memberikan rata-rata fitness
terbaik sejalan dengan penelitian oleh [WID-10] bahwa teknik mutasi dengan
exchange mutation memberikan hasil terbaik untuk pencarian rute.
Exchange mutation memberikan rata-rata nilaifitness tertinggi karena suatu
individu baru akan dibentuk dengan mengganti titik pada suatu rute dengan
dengan titik yang lain, hal ini menyebabkan keanekaragaman dari suatu populasi
dapat tercapai tanpa melupakan struktur dari individu asal.
Berbeda denganexchange mutation, padainsertion mutation suatu individu
baru akan dibentuk dengan tetap mempertahankan urutan dari rute yang sudah
d I ti t ti dil k k d li k titik t ilih d t
59
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
68/83
59
nilai fitness yang lebih baik tapi memberikan rata-rata nilai fitness yang paling
rendah.
Teknik mutasi secara acak dengan memilih satu diantara ketiganya
menghasilkan rata-ratafitness tertinggi kedua. Hal ini bisa terjadi karena pada saat
sistem memilih teknik mutasi yang akan digunakan teknikexchange lebih banyak
terpilih daripada teknik yang lain.
Pengaruh teknik mutasi pada penelitian lain perlu diadakan uji coba lebih
lanjut karena mengikuti sifat ES itu sendiri yang berupa probabilitas, sehingga
kemungkinan teknik mutasi insertion daninversion akan menghasilkan rata-rata
nilaifitness yang lebih baik daripadaexchange mutationjika diterapkan pada data
yang lain. Berdasarkan hasil dari skenario I ini maka exchange mutation akan
digunakan pada skenario uji coba berikutnya.
5.2.2. Hasil Pengujian Skenario II
Skenario II adalah skenario uji coba yang akan melihat pengaruh perubahan
parameter a terhadap nilai fitness yang dihasilkan. Berdasarkan hasil pengujian
skenario I maka teknik mutasi yang akan digunakan pada skenario II adalah
teknik mutasi exchange karena teknik mutasi ini menghasilkan rata-rata nilai
fitness yang paling besar jika dibandingkan dengan teknik mutasi yang lain.
Parameter lain yang digunakan sesuai dengan penjelasan pada bab 3 sebelumnya.
H il ji k i II d t dilih t d T b l 5 2 b ik t
60
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
69/83
60
0
0.5
1
1.5
2
0,85 0,9 0,95 0,99
Hasil Skenario II Terhadap Rata-Rata
Fitness
Rata-Rata Nilai Fitness Terbaik
Gambar 5.3 Grafik Hasil Skenario II Terhadap Rata-RataFitness17
0
10
20
30
40
Hasil Skenario II Terhadap Koefisien
Variasi
61
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
70/83
61
Pada Gambar 5.2 terlihat nilai 99.0a menghasilkan rata-rata nilaifitness
tertinggi. Terlihat pula bahwa grafik yang terbentuk merupakan grafik naik,
sehingga bisa disimpulkan semakin besar nilai a maka semakin besar pula rata-
rata nilai fitness yang didapatkan. Adapun batasan dalam menentukan nilai a
sesuai dengan literatur pada Bab 2 yaitu apabila jumlah generasi lebih dari 30
maka nilai parameter a yang disarankan adalah antara 185.0 a .
Nilai a merupakan nilai yang mempengaruhistrategy parameters dari suatu
individu. Nilai a yang tinggi akan membatasi perubahan strategy parameters
dalam pembentukan individu baru. Nilai strategy parameters sendiri menentukan
berapa kali teknik mutasi dilakukan pada suatu individu. Semakin banyak suatu
individu dimutasi maka hasil yang didapat akan merugikan. Hal ini bisa dilihat
dari skenario I sebelumnya, semakin banyak suatu teknik mutasi diberikan
semakin jelek rata-rata nilaifitness yang didapatkan.
5.2.3. Hasil Pengujian Skenario III
Skenario III adalah skenario uji coba yang akan melihat pengaruh ukuran
populasi ( ) dan ukuranoffspring ( ) terhadapfitness yang dihasilkan. Seperti
yang telah dijelaskan pada Bab 3 sebelumnya, proses ES akan dihentikan apabila
setelah 7000 generasi beruturut-turut tidak menghasilkan nilai fitness yang lebih
baik, karena keterbatasan performa dari komputer maka setiap percobaan akan
62
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
71/83
62
6 2.54851368 2.50466413 2.54190373 2.59178376 2.60004741
7 2.56857302 2.57926369 2.47853224 2.58421151 2.56415680
8 2.42624090 2.52701589 2.49477733 2.48899811 2.51941452
9 2.43150687 2.49065122 2.45121297 2.45037691 2.57205343
10 2.46732163 2.48028748 2.44323806 2.55548557 2.49724313
Tabel 5.4 Hasil Pengujian Skenario III Terhadap Koefisien Variasi16
Ukuran
Ukuran 20 40 60 80 100
1 3.721258848 4.07939617 4.94570136 2.23013302 4.71459745
2 4.536438747 2.5192381 3.14676176 1.39490827 1.98450239
3 2.374047524 2.55262984 2.95404057 3.46085519 4.17927036
4 2.43542333 3.87447218 5.66094102 2.62254361 2.61845349
5 2.847680091 2.47167460 5.47006947 3.00122631 1.88058826
6 1.907277375 2.79467675 1.74097875 2.31105737 3.54576335
7 2.37249472 3.06943015 4.14256385 1.05804999 3.96096119
8 6.260446991 2.92697759 4.45843588 2.68254028 4.27227503
9 2.645543224 3.93348702 5.51644352 3.51540547 2.54645631
10 2.512683926 3.12976493 6.11116431 2.40394457 1.34723609
Pada Tabel 5 3 terlihat bahwa parameter yang memberikan rata rata hasil
63
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
72/83
63
Walaupun =100 dan = 3 menghasilkan rata-rata nilaifitness tertinggi
tapi jika dilihat melalui koefisien variasi pada Tabel 5.4 koefisien variasi terkecil
dimiliki oleh =80 dan = 7 . Parameter ini memiliki kelemahan yaitu waktu
komputasi yang cukup lama. Untuk mencapai generasi ke 14000 dibutuhkan
waktu sekitar 11 - 12 menit, sedangkan parameter =100 dan =10 dengan
nilai koefisien variasi terkecil kedua dan sekaligus merupakan parameter dengan
jumlah individu terbanyak membutuhkan waktu sekitar 20 menit. Untuk distribusi
harian yang mensyaratkan solusi yang praktis waktu komputasi yang lama sangat
tidak dianjurkan maka langkah berikutnya adalah dengan menggunakan koefisien
variasi terkecil ketiga yaitu =80 dan = 2 . Untuk mencapai generasi 14000
generasi ini membutuhkan waktu kurang lebih 3 - 4 menit. Maka parameter yang
akan digunakan adalah =80 dan = 2 . Adapun waktu komputasi tercepat
untuk mencapai 14000 generasi diperoleh dengan parameter =20 dan =1
yaitu kurang lebih 30 detik.
Pada percobaan skenario III, proses ES akan dihentikan apabila 7000
generasi berturut-turut tidak dihasilkan nilai fitness yang lebih baik. Dari
percobaan III ini dapat dilihat generasi dimana sebuah ES telah mengalami
konvergensi dan akan kesulitan untuk menghasilkan individu yang lebih baik.
Tabel 5.5 berikut adalah hasil rata-rata nilai fitness terbaik 10 kali percobaan
untuk setiap generasi dengan parameter = 80, = 2 , nilai a = 0.99, dan
64
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
73/83
64
10000 2.556111399 0.002920774
11000 2.565090074 0.008978676
12000 2.568157324 0.00306724913000 2.574407568 0.006250244
14000 2.574407568 0
Berdasarkan Tabel 5.5 dapat dibuat grafik konvergensi sebuah ES yang dapat
dilihat pada Gambar 5.3 berikut :
0
0.5
1
1.5
2
2.5
3
Grafik Konvergensi
Rata-Rata Nilai Fitness Terbaik
Gambar 5.3 Grafik Konvergensi ES19
Pada Tabel 5.5 dan Gambar 5.3 dapat dilihat bahwa nilai fitness telah
mengalami konvergensi pada generasi ke-2000 karena penambahan nilai fitness
65
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
74/83
65
Dengan menggunakan parameter tersebut tujuan ES untuk meminimalkan nilai
tardy, meminimalkan pelanggan yang tidak terlayani, dan meminimalkan jarak
dapat terpenuhi dengan waktu kurang lebih 30 detik.
5.3. Solusi Terbaik Yang Pernah Didapatkan
ES merupakan algoritma yang akan mencari solusi optimal dari suatu
permasalahan. Terkadang solusi yang didapatkan bukan merupakan solusi optimal
tapi mendekati solusi optimal. Pada penelitian ini nilaifitness terbaik yang pernah
didapatkan melalui ES adalah 2.739726027. Solusi ini didapatkan dengan
parameter nilai 100 , = 3 , teknik mutasi adalahexchange mutation, nilai
99.0a , dan ES akan dihentikan ketika 7000 generasi berturut-turut tidak
ditemukan solusi yang lebih baik. Rincian dari nilai fitness ini adalah sebagai
berikut :
Rute kendaraan =
10 8 2 5 6 17 3 25 24 29 22 27 19 11 20 28 9 1 18 13 23 4 14 30 15 26 7 21 12 16
Detail Rute
0 10 8 2 0 dengan tardy 0 dan jarak 115
0 5 6 17 3 0 dengan tardy 0 dan jarak 55
0 25 24 29 0 dengan tardy 0 dan jarak 60
0 22 27 19 11 20 0 dengan tardy 0 dan jarak 105
66
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
75/83
66
Setelah melakukan serangkaian uji coba, ES dianggap mampu untuk
menyelesaikan masalah VRPTW pada distribusi minuman soda XYZ. Pihak
distributor dapat menggunakan solusi yang telah ditemukan sehingga bisa
mengurangi biaya pengeluaran dari perusahaan. Penghematan biaya ini dapat
membuat perusahaan memiliki keuntungan yang lebih besar.
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
76/83
BAB VI
PENUTUP
6.1. Kesimpulan
Berdasarkan hasil penelitian mengenai penerapan evolution strategies
untuk menyelesaikan VRPTW pada distribusi minuman bersoda XYZ, dapat
ditarik beberapa kesimpulan yaitu sebagai berikut :
1. Evolution strategies dapat menyelesaikan masalah VRPTW pada distribusi
minuman bersoda XYZ, hal ini dapat dilihat dari tidak adanya waktutardy
dan pelanggan yang tidak terlayani.
2. Dalam sistem penyelesaian masalah VRPTW pada distribusi minuman
bersoda XYZ dengan menggunakanevolution strategies, teknikexchange
mutationmemberikan hasil
fitnessyang lebih baik jika dibandingkan
dengan teknik mutasi yang lain. Hal ini dapat dilihat dari rata-rata nilai
fitness yang didapatkan yaitu 1.3371. Exchange mutation juga memiliki
kestabilan yang cukup yang ditandai dengan kecilnya standar deviasi dan
koefisien variasi jika dibandingkan dengan teknik mutasi yang lain.
3. Nilai parametera yang baik untuk digunakan pada penelitian ini adalah a
= 0.99, karena nilai tersebut memberikan rata-rata nilai fitness terbesar
yaitu 1.7969, serta standar deviasi dan koefisien variasi yang kecil yaitu
68
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
77/83
menit untuk =80 dan =7 dan 2021 menit untuk =100 dan =10.
Waktu komputasi yang lama tidak dianjurkan untuk menangani suatu
permasalahan yang dibutuhkan secara praktis. Maka digunakan koefisien
variasi terkecil ketiga yaitu =80 dan =2 dengan waktu komputasi
berkisar antara 34 menit.
6. Dengan menggunakan parameter = 80, = 2 , nilai a = 0.99, dan
teknik mutasi adalah exchange mutation. ES akan konvergen pada
generasi ke-2000, penambahan generasi akan meningkatkan nilai fitness
yang didapatkan tapi peningkatan ini tidak signifikan sehingga dengan
menggunakan generasi 2000 sudah cukup untuk menghasilkan solusi yang
mendekati optimal untuk permasalahan VRPTW pada distribusi minuman
bersoda XYZ.
7. Dengan menggunakan parameter = 80, = 2 , nilai a = 0.99, teknikmutasi adalah exchange mutation, dan jumlah generasi = 2000 maka
waktu komputasi dapat diperkecil menjadi 30 detik.
8. Indvidu terbaik yang pernah didapatkan adalah 10 8 2 5 6 17 3 25 24 29 22
27 19 11 20 28 9 1 18 13 23 4 14 30 15 26 7 21 12 16 dengan nilaifitness
2.739726027
6.2. Saran
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
78/83
DAFTAR PUSTAKA
[BAC-95] Back, T. 1995. Evolution Strategies : An Alternative Evolutionary
Algorithm. Informatik Centrum Dortmund. Dortmund
[BEL-08] Belfiore, P., Tsugunobu, H. & Yoshizaki, Y. 2008. Scatter Search
for Vehicle Routing Problem with Time Windows and Split
Deliveries.
[BEY-02] Beyer, H. G, Schwefel, H. P. 2002. Evolution Strategies: A
Comprehensive Introduction. Journal Natural Computing 1, 2002,
3-52.
[BRO-11] Brownlee, J. 2011. Clever Algorithms : Nature-Inspired
Programming Recipes. E-Book http://www.lulu.com/shop/jason-
brownlee/clever-algorithms-nature-inspired-programming-
recipes/ebook/product-20200704.html Diakses 27 Maret 2014
[CHA-13] Chand, P. & Mohanty, J. R. 2013. Multi Objective Approach for
Solving Vehicle Routing Problem. International Journal of
Computer and Engineering Vol. 5, No. 6, December 2013, 846-849
[DAN-59] Dantzig, G. B. & Ramser, J. H. 1959. The Truck Dispatching
Problem. Managament Science Journal Vol. 6, No. 1, October
1959, 80-91
70
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
79/83
Manufacturing System Using Real Coded Genetic Algorithms-Part
II : Optimization. Advanced Materials Research Vol 701, 364-369
[MAH-13] Mahmudy, W. F. 2013. Algoritma Evolusi. Universitas Brawijaya.
Malang
[MAH-14] Mahmudy, W.F, Marian R.M, & Luong, L.H.S. 2014. Hybrid
Generic Algorithms for Part Type Selection and Machine Loading
Problems With Alternative Production Plans in Flexible
Manufactruing System. ECTI Transactions on Computer andInformation Technology, 80-93
[PUS-08] Puspitorini, S. 2008. Penyelesaian Masalah Traveling Salesman
Problem Dengan Jaringan Saraf Self Organizing. Jurnal Media
Informatika Vol. 6, No.1, Juni 2008, 39-55.
[SAN-06] Sanjoyo. 2006. Aplikasi Algoritma Genetika. E-Book
http://sanjoyo55.files.wordpress.com/2008/11/non-linier-gen-
algol.pdfDiakses tanggal 28 Maret 2014
[SEM-09] Sembiring, A.C. 2009. Penentuan Rute Distribusi Produk Yang
Optimal Dengan Menggunakan Algoritma Heuristik Pada PT.
Coca-Cola Bottling Indonesia Medan. Universitas Sumatera Utara.
Medan[SET-11] Setiawan, A. 2011. Ukuran Penyebaran (Measures of Dispersion).
htt // t t t i f / t ti tik / t ti ik d k i tif/ k
71
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
80/83
[TAR-08] Tarigan, D. 2008. Pemodelan Vehicle Routing Problem Terbuka
Dengan Keterbatasan Waktu. Universitas Sumatera Utara. Medan
[THA-99] Thangiah, S. R., Osman, I.H. & Sun, T. 1999. Hybrid Genetic
Algorithms, Simulated Annealing and Tabu Search Heuristic for
Vehicle Routing Problems With Time Windows. Practical
Handbook of Genetic Algoritmhs Volume III : Complex Structures,
L. Chambers (Ed.), CRC Press, 347-381
[WID-10] Widodo, A.W. & Mahmudy, W.F. 2010. Penerapan AlgoritmaGenetika pada Wisata Kuliner. Kursor Vol 5, No.4, 205-211.
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
81/83
LAMPIRAN
Lampiran 1 Data Pelanggan
Node Permintaan Buka Tutup Pelayanan
1 10 13:00 19:00 60
2 30 18:30 21:00 40
3 10 11:00 14:00 30
4 10 14:30 19:00 30
5 10 7:00 14:00 50
6 20 7:30 11:00 30
7 20 16:30 20:00 60
8 20 9:00 14:00 20
9 10 8:00 13:00 35
10 10 7:00 9:00 20
11 10 19:00 21:00 20
12 20 17:00 19:00 20
13 30 13:00 15:00 30
14 10 14:00 16:00 3015 40 15:00 18:00 50
16 40 17:00 18:30 20
17 20 10:00 12:00 30
18 20 13:00 17:00 30
19 10 15:00 21:00 20
20 10 15:30 20:30 60
21 20 18:00 21:00 3022 20 9:00 12:00 35
23 10 10:30 15:00 40
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
82/83
73
Lampiran 2Data Jarak
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
0 60 55 15 40 10 35 30 55 65 40 45 10 10 40 35 30 35 45 45 30 35 30 25 45 10 35 50 35 25 20
60 0 10 35 45 40 25 60 25 10 15 40 45 40 40 75 45 30 15 35 30 65 50 35 65 45 55 50 20 40 65
55 10 0 20 20 30 30 60 10 10 15 30 45 35 40 65 45 30 20 25 20 55 40 30 70 45 55 45 25 40 65
15 35 20 0 25 5 15 25 30 40 20 30 15 15 30 30 20 10 25 30 15 30 25 10 30 20 25 40 15 15 25
40 45 20 25 0 30 35 55 30 45 20 10 40 20 10 50 60 30 40 15 15 55 15 10 70 45 35 15 20 40 45
10 40 30 5 30 0 15 20 35 40 25 35 10 15 35 25 15 10 30 35 20 25 25 15 25 15 20 45 20 10 20
35 25 30 15 35 15 0 30 35 30 15 35 30 30 35 45 10 5 10 30 20 35 40 25 35 25 40 45 10 10 35
30 60 60 25 55 20 30 0 60 60 40 45 15 25 45 25 15 15 40 40 40 10 35 30 10 10 25 55 35 10 20
55 25 10 30 30 35 35 60 0 15 10 15 35 30 25 55 40 30 20 10 15 60 35 25 55 35 45 30 15 30 40
65 10 10 40 45 40 30 60 15 0 20 40 45 40 40 75 50 30 20 35 30 65 50 35 70 45 55 50 20 40 65
40 15 15 20 20 25 15 40 10 20 0 15 30 25 25 45 20 15 10 10 5 45 30 15 40 30 35 30 5 20 35
45 40 30 30 10 35 35 45 15 40 15 0 35 25 10 35 40 25 30 5 10 45 20 10 45 25 25 15 15 30 40
10 45 45 15 40 10 30 15 35 45 30 35 0 10 30 10 30 15 45 40 30 10 15 20 35 5 10 40 35 20 10
10 40 35 15 20 15 30 25 30 40 25 25 10 0 15 15 25 15 30 30 20 20 10 10 40 15 10 30 30 25 15
40 40 40 30 10 35 35 45 25 40 25 10 30 15 0 45 60 30 40 15 15 55 15 10 70 45 35 10 20 40 45
35 75 65 30 50 25 45 25 55 75 45 35 10 15 45 0 35 25 35 40 35 10 20 25 30 15 10 35 40 30 5
30 45 45 20 60 15 10 15 40 50 20 40 30 25 60 35 0 10 20 35 25 25 35 25 15 15 30 45 20 10 25
35 30 30 10 30 10 5 15 30 30 15 25 15 15 30 25 10 0 25 30 15 30 25 10 30 20 25 40 15 15 25
45 15 20 25 40 30 10 40 20 20 10 30 45 30 40 35 20 25 0 15 15 45 35 20 35 30 35 35 10 20 35
45 35 25 30 15 35 30 40 10 35 10 5 40 30 15 40 35 30 15 0 10 45 20 10 45 25 25 15 15 30 40
30 30 20 15 15 20 20 40 15 30 5 10 30 20 15 35 25 15 15 10 0 30 20 10 35 20 30 15 5 25 30
35 65 55 30 55 25 35 10 60 65 45 45 10 20 55 10 25 30 45 45 30 0 20 20 15 10 15 30 25 15 10
7/21/2019 New Skripsi V1.0 (Autosaved) (Autosaved)
83/83
74
30 50 40 25 15 25 40 35 35 50 30 20 15 10 15 20 35 25 35 20 20 20 0 10 35 15 10 15 25 30 15
25 35 30 10 10 15 25 30 25 35 15 10 20 10 10 25 25 10 20 10 10 20 10 0 25 15 15 20 15 20 15
45