New Skripsi V1.0 (Autosaved) (Autosaved)

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