• Tidak ada hasil yang ditemukan

Sistem Pendukung Keputusan Untuk Pengiriman Barang Dengan Menggunakan Metode Simulated Annealing Pada PT. Rimo Catur Lestari Tbk.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Sistem Pendukung Keputusan Untuk Pengiriman Barang Dengan Menggunakan Metode Simulated Annealing Pada PT. Rimo Catur Lestari Tbk."

Copied!
102
0
0

Teks penuh

(1)

Pada PT. Rimo Catur Lestar i Tbk

SKRIPSI

Oleh :

ARY NANDO HARYONO PUTRA

NPM : 0634010042

J URUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI - FTI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

J AWA TIMUR

(2)

Assalammualaikum Wr.Wb.

Rasa Puji syukur yang sedalam – dalamnya penulis panjatkan

kehadirat Allah SWT yang berkenan melimpahkan rakhmatnya, sehingga tugas

tugas akhir ini dapat terselesaikan dengan baik.

Laporan ini disusun sebagai perwujudan tertulis dan bukti

penyelesaian yang merupakan tanggung jawab penulis dalam melaksanakan

program studi S1 Sistem Informasi berupa studi tugas akhir selama kurang lebih

satu semester. Tugas akhir yang telah penulis tempuh ini memiliki banyak tujuan

utama yaitu mengaplikasikan ilmu pengetahuan yang sudah didapat selama di

bangku kuliah. Dengan melihat kerja tim dalam pembuatan laporan ini,

diharapkan mahasiswa mampu menerapkan ilmu pengetahuan yang dimiliki dan

disesuaikan dengan kondisi permasalahan yang ada di masyarakat.

Selesainya penyusunan laporan tugas akhir ini tidak lepas pula dari

bantuan dari berbagai pihak dan dalam kesempatan ini penulis banyak

mengucapkan banyak terima kasih kepada:

1. Ibu Hj. Asti Dwi. I, S.Kom, M.Kom dan ibu Ir. Kartini, MT, selaku dosen

pembimbing yang telah memberi kontribusi ilmu dan bimbingan dalam

penyelesian tugas akhir ini.

2. Seluruh karyawan yang ada di PT. Rimo Catur Lestar Surabaya, yang turut

membantu dalam memberikan informasi yang kami butuhkan dalam

(3)

sampai dengan terselesainya penyusunan laporan tugas akhir ini.

Penulisan tugas ini masih memiliki banyak kekurangan, sehingga

diharapkan saran maupun kritik yang dapat memperbaiki dan memperkaya isi

yang ada dalam rangkaian analisis serta implementasi sistem ini semakin

bermanfaat bagi penulis khususnya dan khasanah keilmuan komputer pada

umumnya.

Surabaya, 30 Oktober 2011

(4)

HALAMAN JUDUL

LEMBAR PENGESAHAN TUGAS AKHIR

LEMBAR PENGESAHAN DAN PERSETUJUAN

KATA PENGANTAR ...

i

ABSTRAK ...

iii

DAFTAR ISI ...

iv

DAFTAR GAMBAR ...

vii

BAB I

PENDAHULUAN

1.1

Latar Belakang ...

1

1.2

Permasalahan ...

2

1.3

Tujuan...

2

1.4

Batasan Permasalahan ...

3

1.5

Metodologi ...

4

1.6

Sistematika Pembahasan...

5

BAB II TEORI PENUNJ ANG

2.1

Decision Support System ...

7

2.2 Penjadwalan ...

8

2.2.1 Constrain-Based Scheduling ...

9

2.2.2 Generative Techniques ...

10

(5)

2.4.1 Inisialisasi Rute ...

17

2.4.2 Metode Perbaikan Rute...

17

2.5 Perhitungan Jarak ...

17

2.6 Kalibrasi Newton Raphson ...

19

2.7 Penelitian-Penelitian Sebelumnya...

21

BAB III PERANCANGAN SISTEM

3.1

Deskripsi Sistem ...

22

3.2

Diagram Berjenjang ...

23

3.3

Data Flow Diagram Sistem ...

24

3.3.1 DFD Level 0 ...

24

3.3.2 DFD Level 1 ...

28

3.3.3 DFD Level 2 ...

29

3.4

Flowchard Load Data Global ...

31

3.5

Penjadwalan Dengan Cara Eksak ...

33

3.6

Penjadwalan Dengan Heuristik ...

34

3.6.1 Pembentukan Solusi Awal ...

36

3.6.2 Simulated Annealing ...

37

3.6.3 Pencarian Neighborhood ...

41

3.7 Sistem Database ...

43

3.7.1 Conceptual Data Model ...

43

(6)

4.2

Implementasi Tatap Muka ...

49

4.2.1

Form Login ...

49

4.2.2

Form Menu Management User ...

51

4.2.3

Management Modul ...

53

4.2.4

Form Gudang ...

56

4.2.5

Form Toko ...

57

4.2.6

Form Barang ...

59

4.2.7

Form Kendaraan ...

61

4.2.8

Form Peamalan ...

63

BAB V UJ ICOBA DAN EVALUASI PROGRAM

5.1

Ujicoba ...

68

5.2

Lingkungan Ujicoba ...

68

5.2.1

Ujicoba Login User ...

69

5.2.2

Management User ...

70

5.2.2.1 Halaman User Admin ... 70

5.2.2.2 Halaman User ...

85

BAB VI KESIMPULAN DAN SARAN

6.1

Kesimpulan ...

89

(7)

Gambar 2.1 Gambar VRP ...

12

Gambar 2.2

Gambar VRP dengan rute K ...

12

Gambar 2.3

Gambar Perhitungan Jarak ...

18

Gambar 3.1

Diagram Berjenjang ...

23

Gambar 3.2

DFD Level 0 Sistem Penjadwalan ...

25

Gambar 3.3

DFD Level 1 Sistem Penjadwalan ...

28

Gambar 3.4 DFD Level 2 Metode Eksak ...

29

Gambar 3.5 DFD Level 2 Metode Heuristik ...

31

Gambar 3.6

Flowchard Load Data Global ke Memory ...

32

Gambar 3.7

Flowchard Penjadwalan Dengan Metode Eksak ...

33

Gambar 3.8

Flowchard Penjadwalan Dangan Metode Heuristik ...

33

Gambar 3.9

Flowchard Pembentukan Rute Awal ...

37

Gambar 3.10 Flowchard Simulated Annealing ...

38

Gambar 3.11 Flowchard Simulated Annealing ...

39

Gambar 3.12 Flowchard Neighborhood Search ...

42

Gambar 3.13 Conseptual Data Model (CDM) ...

44

Gambar 3.14 Physical Data Model ...

45

Gambar 3.15 Peta Surabaya ...

46

Gambar 4.1

Form Login...

50

Gambar 4.2

Halaman Utama Level User ...

51

Gambar 4.3

Form User ...

52

(8)

Gambar 4.7

Form Barang ...

60

Gambar 4.8

Form Kendaraan ...

62

Gambar 4.9

Form Peramalan ...

64

Gambar 4.10 Form Peramalan Lanjutan ...

64

Gambar 4.11 Form Hasil Peramalan ...

65

Gambar 5.1

Form Login ...

69

Gambar 5.2

Pesan Login Global ...

69

Gambar 5.3

Tampilan Home User Admin ...

71

Gambar 5.4

Form Data User ...

72

Gambar 5.5

Form Tambah User ...

72

Gambar 5.6

View Data User ...

73

Gambar 5.7

View Data User ...

74

Gambar 5.8

View Form Gudang ...

75

Gambar 5.9

View Form Tambah Gudang ...

75

Gambar 5.10 View Form Hasil Data Gudang ...

76

Gambar 5.11 View Form Toko ...

77

Gambar 5.12 View Form Tambah Toko ...

77

Gambar 5.13 View Form Hasil data Toko ...

78

Gambar 5.14 View Form Data barang ...

79

Gambar 5.15 View Form Data Tambah Barang ...

79

Gambar 5.16 View Form Hasil Data Barang ...

80

(9)

Gambar 5.21 View Form Hasil data kendaraan ...

83

Gambar 5.22 View Form Hasil Permalan ...

84

Gambar 5.23 Halaman User ...

85

Gambar 5.24 View Form Inputan User Peramalan ...

86

Gambar 5.25 View Form Peramalan ...

87

Gambar 5.26 View Form Cetak Data Peramalan ...

88

(10)

Pembimbing II : Ir. Kartini, MT.

Penyusun : Ary Nando Haryono Putra.

ABSTRAK

Sistem dan prosedur kerja sangat berpengaruh pada keefektifan suatu pekerjaan. Dengan sistem yang tepat, bisa didapatkan hasil yang optima. Penjadwalan adalah salah satu bagian yang memiliki peranan yang penting dalam sitem kerja. Penjadwalan yang baik dapat menghasilkan sistem kerja yang baik juga. Seringkali seorang manajer mengalami kesulitan membuat jadwal yang tepa. Tugas akhir ini membahas implementasi sistem pendukung keputusan untuk pengiriman barang dengan metode Simulated Annealing. Simulated Annealing adalah algoritma yang menggunakan pendekatan heuristic yang didesain untuk mencari pendekatan untuk menuju solusi yang optimal dengan kualitas tinggi dan kemudahan implementasi. Kemampuannya adalah menghindari bad local optima, dimana probabilitas tertentu, suatu solusi yang tidak lebih baik dengan solusi sebelumnya akan diterima, sehingga memungkinkan muncul solusi baru lainnya yang lebih optimal. Solusi dari sistem ini diharapkan dapat menjadi bahan pertimbangan dari seorang manajer untuk menentukan sebuah jadwal pengiriman barang pada perusahaan PT. Rimo Catur Lestar.

Dari pembentukan rute menggunakan algoritma Simulated Annealing

didapatkan penjadwalan kendaraan tidak melanggar batasan yang telah ditentukan. Algoritma Simulated Annealing dengan kasus dan percobaan tertentu running 35 detik sementara metode eksak running dalam 2675 detik. Cost yang dihasilkan dengan algoritma Simulated Annealing sebesar 16880,25 dan cost yang didapatkan dari metode eksak sebesar 16581,75.

(11)

PENDAHULUAN

1.1.

Latar Belakang

Sistem dan prosedur kerja sangat berpengaruh pada keefektifan suatu

pekerjaan. Dengan sistem yang tepat, bisa didapatkan hasil yang optimal.

Penjadwalan adalah salah suatu bagian yang memiliki pearanan yang penting

dalam sitem kerja. Penjadwalan yang baik dapat menghasilkan sistem kerja yang

baik juga. Pada sistem kerja yang terbatas pada sumber daya dan terbatas pada

waktu, seringkali mengalami kesulitan membuat jadwal yang efektif.

PT. Rimo Catur Lestari selain bergerak di bidang retail juga memberikan

jasa pengiriman barang, adalah perusahaan yang cukup besar dengan memiki

banyak cabang terbesar di bebagai kota. Tugas utama perusahaan adalah

mengantar barang yang dikirim ke penerima barang pada lokasi yang berbeda.

Dalam kasus ini, transportasi adalah pekerjaan yang memiliki peneluaran terbesar.

Pergerakan barang menyerap biaya antara 1/3 sampai 2/3 dari total biaya logistik.

Untuk itu diperlukan adanya sistem penjadwalan yang mengatur rute dari tiap

kendaraan dan barang yang harus diantarkan ke penerima barang.

Untuk saat ini, perusahaan menggunakan sistem penjadwalan manual,

dimana dari pihak manajemen menentukan kendaraan A mengantarkan sejumlah

barang ke sejumlah lokasi yang berbeda. Rute pengiriman barang di tentukan

sendiri oleh pengendara, yang berkaitan dengan wawasan pengendara atas suatu

(12)

mengontrol dan menentukan jadwal secara lebih detail untuk tiap barang yang

akan dikirim.

1.2

Per masalahan

Pada kasus penjadwalan ini ada banyak batasan yang harus terpenuhi.

Penjadwalan ini bisa dibuat dengan perhitungan eksak, tetapi tentu saja akan

membutuhkan waktu yang lama untuk permasalahan yang kecil. Karena itu,

dicoba untuk membandingkan dengan perhitungan heuristik, dimana

menggunakan algoritma Simulated Annealing. Diharapkan, dengan menggunakan

heuristik, bisa didapatkan hasil yang optimal dengan waktu perhitunganyang

sesuai.

Permasalahan yang muncul adalah sebagai berikut :

1) Bagaimana memodelkan lokasi dari pelanggan-pelanggan yang akan

dituju oleh kendaraan pengirim barang.

2) Bagaimana membuat jadwal pengiriman barang pada perusahaan PT.

Rimo Catur Lestari dengan algoritma Simulated Annealing.

3) Bagaimana perbandingan penggunaan algoritma heuristik dan algoritma

eksak dalam memecahkan solusi kasus penjadwalan ini.

1.3

Batasan Per masalahan

Pembahasan tugas akhir ini dititik beratkan pada implementasi algoritma

Simulated Annealing pada penjadwalan pengiriman barang pada perusahaan PT.

Rimo Catur Lestari. Kasus diambil pada kasus umum perusahaan PT. Rimo Catur

(13)

Sebagai batasan dan asumsi dalam Tugas Akhir ini, meliputi :

1) Studi kasus diambil dari perusahaan PT. Rimo Catur Lestari, perangkat

lunak yang dibuat adalah untuk memenuhi kebutuhan dalam

penjadwalan pengiriman barang.

2) Penghitungan jarak algoritma simulated annealing masih menggunakan

penghitungan manual.

3) Barang yang dikirim memiliki dimensi yang sesuai/signifikan (tidak

termasuk surat/dokumen).

4) Tidak ada batasan waktu kunjungan ke penerimaan barang, barang yang

dikirimkan dibatasi dengan kapasitas kendaraan pengirim, pada kasus ini

menggunakan kendaraan darat.

5) Lokasi pengiriman barang dalam kota dan jarak maksimum adalah

sejauh jarak yang bisa ditempuh pulang pergi selama jam kerja

perusahaan.

1.4

Tujuan

Pada akhirnya tujuan dari pembuatan dari tugas akhir ini adalah dapat

dihasilkan desain dan implementasi perangkat lunak sistem pendukung keputusan

penjadwalan pengiriman barang pada perusahaan PT. Rimo Catur Lestari dengan

biaya pengiriman rendah. Dengan perancangan perangkat lunak ini diharapkan

sebagai sistem pendukung keputusan penentuan jadwal pengiriman barang pada

perusahaan PT. Rimo Catur Lestari dengan biaya pengiriman rendah sehingga

(14)

1.5

Metodologi

Metodologi pembuatan Tugas Akhir ini adalah sebagai berikut, yaitu :

1) Studi Literatur

Pada tahap ini dipelajari konsep penjadwalan, rute, Algoritma Simulated

Annealing, dan penelitian-penelitian sebelumnya sebagai dasar teori,

PHP dan database MySQL sebagai pemproses, dan kasus penjadwalan

pada perusahaan PT. Rimo Catur Lestari.

2) Analisa dan Perancangan Aplikasi

Pada tahap ini, studi kasus dianalisa, kemudian sistem dimodelkan dan

dibuat suatu desain yang siap diimplementasikan. Dalam tahap

perancangan aplikasi sistem ini akan dibagi menjadi tiga kategori

perancangan, yaitu :

a) Perancangan Data :

Dalam perancangan data ini, akan dibuat rancangan kebutuhan

data dan atributnya yang merupakan imputan aplikasi.

b) Perancangan Proses :

Dalam perancangan proses, akan dibuat rancangan berbagai

proses yang diperlukan secara terstruktur dan terorientasi

berdasarkan aliran proses yang terjadi.

c) Perancangan Antarmuka :

Dalam perancangan antarmuka ini, akan dibuatkan bentuk

rancangan antarmuka berdasarkan kebutuhan fitur dari sitem

(15)

3) Pembuatan Aplikasi

Dalam tahap pembuatan aplikasi ini, akan dibuat aplikasi berdasarkan

hasil proses berbagai metode perancangan sistem aplikasi diatas.

Pembuatan aplikasi dilakukan dengan menggunakan PHP dan MySQL

sebagai databasenya.

4) Uji Coba, Evaluasi dan Modifikasi

Tahap dalam melakukan proses uji coba hasil pembuatan aplikasi untuk

dilakukan evaluasi secara keseluruhan dari sistem dalam mencari

kekurangan maupun kesalahan yang mungkin terjadi, untuk segera

dilakukan perbaikan dan modifikasi ke arah yang lebih baik.

5) Penyusunan Laporan Tugas Akhir

Tahap akhir dari semua kegiatan pelaksanaan tugas akhir ini, dengan

melakukan penyusunan laporan dari semua aktivitas kegiatan tugas

akhir.

1.6

Sistematika Pembahasan

Buku Tugas Akhir ini terdiri dari beberapa bab sebagai berikut :

1) Bab I, Pendahuluan

Berisi latar belakang, permasalahan, tujuan, batasan permasalahan, dan

metodologi berkaitan dengan pengerjaan tugas akhir.

2) Bab II, Teori Penunjang

Dibahas secara singkat teori-teori yang digunakan pengerjaan tugas

(16)

algoritma Simulated Annealing, dan penelitian-penelitian sebelumnya

yang berkaitan dengan penjadwalan dan rute.

3) Bab III, Perancangan Sistem

Berisi rancangan sistem penjadwalan yang digunakan sebagai contoh

kasus dalam bentuk Data Flow Diagram sebagai metode permodelan.

4) Bab IV, Implementasi Sistem

Dibahas implementasi dari desain sistem menggunakan teknologi dan

tools yang ada. Dibahas juga arsitektur sistem baik hardware, software,

dan jaringan yang terlibat.

5) Bab V, Uji Coba dan Evaluasi

Membahas uji coba yang dilakukan terhadap sistem. Hasil uji coba di

analisa dan di evaluasi.

6) Bab VI, Penutup

(17)

TEORI PENUNJ ANG

Pada bab ini akan dibahas beberapa teori penunjang penulisan tugas

akhir ini. Teori-teori tersebut meliputi konsep penjadwalan, konsep pembentukan

rute kendaraan (VRP), algoritma Simulaed Annealing, metode yang digunakan

untuk menghitung jarak antar lokasi pelanggan dan penelitian-penelitian

sebelumnya yang berkaitan dengan penjadwalan dan rute.

2.1

Decision Suppor t System

Disebutkan bahwa proses penentuan keputusan terbagi dalam 3 bagian

yaitu structured / programmed, unstructured dan semistructured. Proses

structured berkaitan pada masalah yang utin dan berulang-ulang untuk solusi yang

sudah pasti. Sementara proses unstructured adalah titik tidak jelas (fuzzy),

masalahnya komplek, dimana tidak ada solusi yang pasti. Semistructuredadalah

penentuan keputusan dimana ada masalah yang terstruktur dan ada yang tidak

terstruktur.

Pada masalah yang terstruktur, telah diketahui prosedur untuk

mendapatkan solusi yang baik, jadi tujuannya telah didefinisikan. Pada masalah

yang tidak terstruktur, intuisi manusia sering digunakan sebagai dasar

(18)

2.2

Penjadwalan

Secara umum penjadwalan merupakan pengaturan dari serangkaian

pekerjaan yang dilakukan oleh unit-unit yang berbeda. Penjadwalan disini

mengatur kerja dari unit-unit ini. Pengaturan ini menggunakan beberapa metode

yang berbeda. Secara umum dapat dibedakan menjadi dua bagan yaitu :

a) Penjadwalan secara eksak

Untuk secara eksak, maka semua masalah akan dicari solusinya dengan

dibuatkan model matematikanya. Kemudian dari model matematika

yang terbentuk dicari semua solusi yang muncul, kemudian dicari yang

optimum. Tetapi untuk mancapai solusi yang optimum tersebut

diperlukan waktu yang relatif lama untuk kasus yang tidak begitu basar.

Sebagai contoh dalam kasus penjadwalan pengiriman barang yang

diteliti oleh penulis, untuk menjadwalkan pengiriman barang pada 8

lokasi memerlukan waktu 66 detik sementara dengan cara yang non

eksak tidak kurang dari 2 detik, dan ditemukan solusi dengan cost yang

tidak jauh berbeda dengan cost optimum.

b) Penjadwalan secaara non eksak / Heuristik

Untuk penjadwalan secara non eksak, maka tidak semua solusi dicari,

tetapi hanya kumpulan dari solusi yang mendekati solusi optimum.

Kemudian dari kumpulan solusi yang ditemukan ini, dicari yang paling

optimum. Metode untuk solusi ini bermacam-macam. Yang digunakan

penulis adalah menggunakan Simulated Annealing.

Dengan menggunakan metode non eksak / heuristik memungkinkan kita

(19)

secara langsung, secara analitikal, atau secara algoritmik. Algorima Heuristik

bertujuan untuk mencari solusi yang optimal pada masalah-masalah dimana

algoritma eksak tidak mudah diterapkan. Kemungkinan masalah yang berkaitan

dengan hal tersebut adalah Traveling Salesman Problem (TSP) dimana kita

memiliki n kota, kita mempunyai jarak antar kota dan kita bermaksud untuk

mencari jarak rute terpendek yang melalui semua kota. Jumlah rute yang

memungkinkan untuk masalah n kota adalah n!. Untuk menguji semua rute untuk

masalah yang kecil akan membutuhkan waktu perhitungan yang tidak sesuai

(lama).

Tujuan dari Algoritma Heuristik adalah untuk mencari hanya sebagian

dari solusi yang memungkinkan untuk mencari solusi yang optimal yang terdekat.

Strategi optimisasi ini bermacam-macam caranya, mulai dari pendekatan

yang simpel seperti Hill Climbing, sampai algoritma yang komplek seperti

Simulated Annealing, Tabu Search dan Genetic Algorithms.

Inti dari semua algoritma ini adalah untuk melakukan Interactive

Improvement, sehingga kita mengambil solusi yang muncul saat ini dangan

mempergunakan nilai random untuk berpindah ke solusi lainnya yang bertujuan

untuk mencari solusi yang optimal.

2.2.1 Constrain-Based Scheduling

Penjadwalan secara umum sulit atau rumit untuk dipecahkan dengan

berbagai macam tipe variasi masalah. Untuk itu banyak riset yang membatasi

pada pendekatan yang ingin dicapai (Constraint-directed Approach) dari

(20)

Constraint Approach adalah memformulasikan masalah. Topologi masalah

dirampilkan dalam Constraint Approach atau Network dimana setiap nodes

adalah aktivitas-aktivitas yang dijadwalkan dan arah panah menggambarkan

Constraint antara nodes-nodes tersebut.

Penjadwalan sendiri sering dipandang sebagai masalah optimisasi, tetapi

untuk masalah yang daerahnya sangat besar atau dimana mendefinisikan solusi

optimal lebih sulit dari masalah itu sendiri, maka penjadwalan dalam hal ini

seringkali dikelompokkan sebagai Constraint satisfaction problem (CSP).

2.2.2 Generative Techniques

Generative Techniques dimulai dengan schedule yang kosong dan

membangun shedule dengan menggunakan teknik pencarian (Search Technique).

Cara ini melibatkan beberapa langkah mulai dari menginisialisasikan beberapa

nilai ke variabel untuk memendekkan pencarian jarak dan melakukan langkah

mundur jika menemui solusi yang tidak konsisten (melanggar constraint). Teknik

ini mempunyai banyak keutungan jika strategi pencarian telah selesai dan

melakukan Straight Forward (mencari solusi berikutnya) maka kualitas dari

solusi dapat dikontrol secara dinamis melalui variabel dan Forward Cheking.

Forward Cheking adalah algoritma yang dikenal baik dan sering digunakan untuk

melakukan Search algorithm untuk CSP. Forward Cheking ini menggunakan

depth first search, dan melakukan back tracking jika menemukan solusi yang

tidak fleksibel (solusi yang tidak memenuhi batasan), dan dalam setiap tahap

forward checking menggunakan constraint untuk melihat efek dari solusi yang

(21)

2.2.3 Interative Repair Technique

Ide dibalik teknik ini adalah dimulai dengan solusi awal atau kumpulan

dari solusi yang bisa jadi Feasible atau Not Feasible. Solusi dimodifikasi dengan

beberapa cara tertentu dan dibandingkan dengan solusi sebelumnya yang terbaik

saat itu. Proses ini disebut Intensification dan menyebabkan peningkatan solusi

yang bertahap untuk menghindari local optima. Teknik ini menggunakan strategi

Difersification yang akan menimbulkan solusi yang lebih buruk dari soludi yang

terbaik saat ini.

2.3

Vechile Routing Problem

Dalam perkembangan metodologi pencarian rute terpendek ada

bermacam-macam metodologi yaitu :

a) Secara eksak

Dengan mencari semua rute yang mungkin muncul dan kemudian dicari

jarak terpendeknya (Optimal Solution).

b) Secara Heuristik atau secara non eksak

Dengan mencari kumpulan solusi yang mendekati solusi optimum,

kemudian dari kumpulan solusi tersebut dicari solusi yang paling

optimum.

Vechile Routing Problem (VRP) ini bertujuan untuk meminimalkan total

jarak yang dilalui oleh armada kendaraan yang melayani sekumpulan

pelanggan seperti gambar 2.1.

Komponen standar dari VRP adalah

(22)

2) Kumpulan dari n customer dengan setiap customer memerlukan

penghitungan I = 1,2,3,…,n

3) Satu depot dari depot ini semua rute diawali dan diakhiri.

4) Matrik jarak yang memberikan informasi jarak antar customer

Gambar 2.1 Gambar VRP

Gambar 2.2 gambar VRP dengan rute K

Tujuan dari VRP sendiri adalah mencari kumpulan rute urtuk kendaraan

dimana jumlah dari jarak keseluruhan rute adalah minimal. Jika dalam VRP ini

batasan kapasitas dihapuskan maka VRP menjadi TSP (Travelling Salesman

Problem). Dimana dalam TSP tujuan pembentukan rute adalah semua customer

dilewati dengan jarak tempuh rute yang minimal yang minimal yang tidak dibatasi

dengan kapasitas kendaraan. Untuk mencari solusi optimum dari VRP rute dapat

digambarka seperti gambar 2.2 Rute K

(23)

Dari gambar 2.2 kemudian dibuat persamaan sebagai beikut :    = sebaliknya i customer gi menda k kendaraan jika Xijk , 0 tan , 1    = sebaliknya k kendaraan oleh dikunjungi i customer jika Yik , 0 , 1

Maka yang akan dicari :

∑∑∑

= = ∞ = = N i N j k jk ij xi d Min Z

0 0 1

.

Dengan pembatas :

= ≤ N i ik iy Q q 1 T S N V x d i N j ijk ij N K

K

+

= − = = . . 0 1 0 1 1 V d

tij = ij ; untuk setiap i-j

Tj = ti + Si + tij ; i, j berada dalam satu kendaraan.

Keterangan :

dij = jarak antara node i dengan node j

K = jumlah armada

i = index node awal arc; I = 1,2,..,n

j = index node akhir arc; c = 1,2,…n

k = index kendaraan; k = 1,2,…,k

N = Jumlah customer, dengan depot = o

Q = kapasitas maksimum kendaraan

(24)

Si = waktu pelayanan di node i

T = batasan jam kerja

tij = waktu tempuh antara node i dan j

ti = Waktu tiba dinode i

V = kecepatan kendaraan

yik = jumlah customer

sumber : http://www.ilmukomputer.com//2003/Anon%20Kuncoro%20Widigno.

2.4

Simulated Annealing

Dalam kasus ini penulisan menggunakan pencarian heuristic untuk

mencari solusi optimum dengan metode metode simulated annealing (SA) yang di

bandingkan dengan metode eksak. Simulated annealing adalah algoritma yang

menggunakan pendekatan heuristic yang didesain untuk mencari pendekatan

menuju solusi optimal dengan kwalitas tinggi dan kemudahan implementasi.

Kemampuannya adalah menghindari bad local optima, dimana dengan

probabilitas tertentu, suatu solusi yang tidak lebih baik dengan solusi sebelumnya

akan di terima, sehingga memungkinkan muncul solusi baru lainnya yang lebih

optimal. SA merupakan analogi perundingan secara fisik dari zat padat untuk

mencapai state energi yang lebih rendah dengan memecahkan masalah optimisasi

yang kombinasi (Combinatorial optimitation problem). SA sama halnya

perbaikan yang terbaik (first improverment) pada setiap evaluasi dari solusi

nighbour, sehingga kita selalu mengambil langkah yang memperbaiki solusi.

Solusi awal dibentuk dengan algoritma Sweep, dimana setiap kendarran dimuati

(25)

customer yang terdekat dengan depot. Perbaikan solusi (neightbour search)

dilakukan dengan melakukan pertukaran antar rute/exchange rute.

Algoritma SA secara umum :

1. Hasilkan solusi awal Xo secara random;

2. Hasilkan temperature awal To;

3. Solusi sekarang X = Xo;

4. Repeat

5. Repeat

6. Dengan neighbor, hasilkan solusi selanjutnya (y) dari solusi X;

7. Hitung ∆ = biaya y – biaya x;

8. If (∆

– log terpenuhi (n);

12. Tn + l = decrease (tn);

13. n = n +1

14. Until criteria berhenti outer / log terpenuhi;

Penjelasan dari Algoritma diatas :

1) Kita cari solusi awal dari masalah yang timbul, unutk kasus ini penulis

menggunakan algoritma sweep untuk membentuk rute awal

2) Menentukan temperatur awal (Tbegin) dan menentukan temperatur akhir

(Tend). T = Tbegin.

3) Solusi sekarang (X) merupakan solusi awal yang kita bentuk

4) Iterasi

5) Iterasi

6) Mencari solusi baru (Y) berdasarkan solusi sekarang (X). Prosedur mencari

(26)

menggunakan metode string relocation untuk melakukan pertukaran antara 2

rute dengan batasan tertentu. Untuk penjelasan algoritma neighbour akan

dijelaskan dibagian lain.

7) Mencari solusi cost ( ) dari solusi baru (Y) dengan solusi sekarang (X)

8) Jika solusi baru lebih baik, maka solusi sekaranng (X) = solusi baru (Y). Juga

dibandingkan jika solusi baru lebih baik dari solusi Xo, maka Xo = Y.

9) ELSE

10)Jika solusi baru lebih buruk, dengan probabilitas tertentu maka solusi sekarang

(X) = solusi baru (Y). Juga dibandingkan jika solusi baru lebih baik dari solusi

Xo, maka Xo = Y

11)Stop Iterasi

12)Temperatur diturunkan, dimana T sekarang = T sekarang * r

13)N = N + 1

14)Stop Iterasi jika T sekarang = Trend

Metode SA secara umum melakukan perbaikan secara iterasi dengan

membuat perubahan lokal dari solusi yang muncul saat itu sampai tidak ada lagi

perubahan yang menghasilkan solusi yang lebih baik. SA mengacak prosedur ini

melalui suatu metode yang memungkinkan terjadinya uphill moves (perubahan

yang memperburuk solusi) untuk mengurangi kemungkinan terjebak dalam solusi

yang buruk yang merupakan solusi optimal lokal.

Untuk mengukur seberapa cepat kita melakukan Annealing, kita perlu

menentukan :

Tk : jarak dari temperatur

(27)

Tk dan Nk adalah parameter yang dapat disetel untuk meningkatkan performance

dari SA untuk masalah tertentu. Menemukan variabel SA yang tepat adalah kunci

untuk menghasilkan solusi yang baik dengan waktu yang layak. Seringkali kita

tidak membutuhkan solusi yang benar–benar optimal, mungkin kita hanya butuh

1% dari nilai biaya terendah. Dan itu sesuai dengan solusi yang berkualitas

dengan waktu pencarian yang minimal.

2.4.1 Inisialisasi Rute

Dalam hal ini penulis menggunakan algoritma sweep pada fase awal

untuk membentuk rute dimana setiap kendaraan diberi muatan yang harus

diantarkan ke pelanggan. Sebelumnya pelanggan diurutkan sesuai dengan jarak

yang terdekat. Pemberian muatan ini dibatasi denan kapasitas dari masing-masing

kendaraan dan jam kerja perusahaan.

2.4.2 Metode Per baikan Rute

Karena dalam kasus ini rute terbentuk lebih dari satu rute, maka

perbaikan rute yang digunakan termasuk dalam metode perbaikan between route

dimana mempertimbangkan pertukaran atau relokasi pemberhentian dari dua rute

dari solusi yang layak. Untuk relokasi ini, akan dipilih 2 node secara random dari

rute tujuan, jarak dari 2 node ini dibatasi dengan constraint tertentu, kemudian

node yang terpilih dari rute asal dipindahkan ke rute tujuan.

(28)

Pada Tugas Akhir ini, tiap lokasi pengiriman barang di istilahkan

sebagai node. Untuk menghitung waktu tempuh yang dibutuhkan antar node,

maka jarak antar node dihitung. Secara umum ada 4 metode yang digunakan

untuk menghitung jarak :

1) Euclidian, dimana jarak diukur sebagai jarak garis lurus antara 2 node

2) Squared Euclidian, dimana merupakan kuadrat dari Euclidian.

Pengkuadratan menugaskan bobot yang lebih besar pada pasangan node

yang jauh dibandingkan pasangan yang berdekatan.

Gambar 2.3 Gambar Perhitungan Jarak

3) Reclinier, dihitung mempergunakan theorema phytagoras dimana jarak

yang dihasilkan merupakan jarak terjauh dari 2 node seperti yang tampak

pada gambar 2.3. sesuai dengan gambar 2.3, maka jarak terjauh adalah | Xj

- Xi| + |- Yj|.

4) Rectliniear dengan konstanta, dimana formula jarak Euclidian

dimodifikasi dengan menambahkan beberapa konstanta.

5) Perhitungan jarak sesungguhnya, dimana untuk cara ini memerlukan

proses penyiapan data yang lebih mendalam.

Node J (Xj, Yj)

Node I (Xi, Yi)

(Xj – Xi)

(29)

Dalam penulisan ini, penulis menggunakan metode reclinear dengan

konstanta, dimana jarak dihitung dengan rumus :

p p i j p i j

ij W X X Y Y

D = (|| +|| )1/

Metode ini dianggap lebih baik karena perhitungannya menggunakan formula

modifikasi jarak yang fleksibel unutk layout jalan-jalan dalam kota. W dan P

merupakan angka estimasi dari jarak sesungguhnya pada peta wilayah. W dan P

sendiri bisa digunakan untuk menggambarkan parameter yang berpengaruh

terhadap jarak tempuh sesungguhnya dari suatu node. Parameter yang bisa

mempengaruhi jarak tempuh antara lain :

a) Arah arus lalu lintas

b) Tingkat kepadatan pengguna lalu lintas

2.6

Kalibr asi Newton Raphson

Rumus yang digunakan untuk menghitung jarak pada dasarnya adalah

persamaan kuadrat. Salah satu metode unukt mencari nilai akar ialah persamaan

Newton Raphson. Jika tebakan awal dari akar adalah Xi, sebuah garis singgung

dapat diperluas dari titik [Xi, f(Xi]. Titik dimana garis singgung ini memotong

sumbu x biasanya menunjukkan sebuah taksiran perbaikan dari akar.

Metode Newton-Raphson dapat diturunkan berdasarkan interpretasi

geometrik (sebuah metode alternatif yang didasarkan pada Deret Taylor). Turunan

pertama pada Xi adalah ekuivalen terhadap kemiringan (slope) :

1 i 0 ) ( ) (x ' + − − = i i i x x x f

f Yang dapat diatur kembali menjadi :

) (

) ( xi1

i i i x f x f x − =

(30)

Rumus jarak yang digunakan adalah : p p i j p i j

ij W X X Y Y

D = (|| +|| )1/ ………. (1)

Jika dipangkatkan dengan P menjadi

) | |

|

(| j i p j i p

p p

ij W X X Y Y

D = − + − ……….…(2)

p ij p i j p i j p D Y Y X X

W − + − −

= (| | | | ) 0 ………(3) p ij p i j p i j p D Y Y X X W w

f( )= (| − | +| − | )− ………..(4)

) 1 ( )) | | | (| ( ) (

' w = P XjXi p + YjYi p W p

f ………..(5)

Rumus 4 dan rumus 5 kita subsitusikan pada formula Newton-Raphson menjadi

) )) | | | (| ( ) | | | (| (

Wi+1 ( 1)

− + − − − + − − = p i p i j p i j p ij p i j p i j p i i W Y Y X X P D Y Y X X W W

Jika kita asumsikan p=2, dan koordinat node 1 = (10,5), koordinat node 2 =

(20,25) dan jarak tempuh dari node 1 ke node 2 adalah 40, maka formula diatas

menjadi : ) . 1000 1600 ) 500 .( ( W 2 1 i i i i W W

W − −

=

+

Dimulai dengan tebakan 0,1, dilakukan iterasi perhitungan, yang hasilnya tampak

pada tabel 2.1. dari tabel didapatkan nilai W yang mendekati akar sebenarnya

adalah 1,788854.

Tabel 2.1. Tabel Newton Raphson

Iterasi ke- Wi Wi+1

(31)

2 3 4 5 6 7 8 9 8.027492 4.213061 2.486302 1.886677 1.79139 1.788856 1.788854 1.788854 4.213061 2.486302 1.886677 1.79139 1.788856 1.788854 1.788854 1.788854

2.7

Penelitian-penelitian Sebelumnya

Yudha Prasetyawan (1999) melakukan penelitian yang berjudul

“Perencanaan Penjadwalan Kendaraan Pelayanan Pengambilan Sampah

Kotamdya Surabaya”. Dalam penelitian ini dilakukan kalibrasi menggunakan

newton-raphson sehingga mendapatkan nilai untuk konstanta W dan P.

Rachamaniah Yulianti (1994) melakukan penelitian yang berjudul

“Penerapan Set Covering Technique dan Metode Simulasi untuk menentukan

jumlah stasiun dan Unit Pemadam Kebakaran di Kota Surabaya”. Dalam

penelitian ini didapatkan data kecepatan rata-rata kendaraan di Surabaya, dimana

data kecepataqn didapatkan dari data respon time PMK.

Rata-rata kecepatan lalulintas diteliti 1990 sekitar 33-37 Km/jam pada

saat sepi. Pada saat padat 24-28 km/jam. Dan menurut peraturan lalin 1965

(berdasarkan Dutch Regulation 1938) kecepatan maksimum di jalan raya 40

km/jam.

Kecepatan rata-rata semua alat angkut 17.4 km/jam. Surabaya

mempunyai pola aliran lalu lintas yang sangat kompleks. Pada jam yang sama,

lokasi beda, beban lalu lintas juga berbeda dimana beban lalu lintas tertinggi

(32)
(33)

PERANCANGAN SISTEM

Pada bab ini akan dibahas perancangan sistem aplikasi penjadwalan. Bagian

pertama berisi deskripsi sistem secara umum, kemudian data flow diagram dari

aplikasi yang dibuat, flowchart penjadwalan dengan cara eksak, penjadwalan

dengan cara heuristik, perancangan database sistem dan input data

awal/penyediaan data.

3.1 Deskr ipsi Sistem

Penjadwalan pengiriman barang ini dibuat berdasarkan sistem

pengiriman barang di perusahaan jasa pengiriman barang. Secara umum, sistem

pengiriman barang dapat digambarkan sebagai berikut :

Gambar 3.1. Flow Chart Sistem Pengiriman Barang

Pada sistem pengiriman barang, ada beberapa barang yang harus dikirimkan pada

lokasi tertentu, dan ada kendaraan yang akan digunakan untuk melakukan

pengiriman barang. Kemudian, setelah dilakukan penjadwalan, barang dikirimkan

berdasarkan jadwal yang diberikan untuk tiap kendaraan. Setelah selesai

mengirimkan barang, kendaraan bisa siap lagi digunakan untuk pengiriman

(34)

mengirimkan barang, kendaraan bisa siap lagi digunakan untuk pengiriman

berikutnya.

Pada sistem ini ada beberapa batasan/constraint yang digunakan yang

menentukan banyaknya barang yang dibawa oleh sebuah kendaraan, dan ada juga

beberapa konstanta yang mempengaruhi jalannya sistem. Batasan yang digunakan

antara lain :

1) Kapasitas setiap kendaraan terbatas, dimana kapasitas ini meliputi

maksimum bobot yang dapat diangkut, dan maksimum volume kendaraan.

2) Jam kerja dari kendaraan terbatas.

Konstanta yang mempengaruhi sistem :

1) Ada keecepatan rata-rata untuk waktu-waktu tertentu

2) faktor jarak antar pelanggan yang ditentukan oleh konstanta W dan P

3.2

Diagr am Ber jenjang

(35)

Diagram berjenjang merupakan dari hirarki proses yang terdapat dalam

sistem. Dalam sistem pendukung keputusan untuk pengiriman barang dengan

metode Simulated Annealing ini meliputi :

a) Entry Data

Proses entry data ini terdiri atas sub proses entry data gudang, toko dan

barang.

b) Penghitungan

Proses penghitungan ini terdiri atas sub proses penghitungan eksak dan

penghitungan non eksak atau heuristic.

c) Laporan

Proses laporan ini dibuat untuk memberikan suatu laporan hasil

peramalan dengan menggunakan metode Simulated Annealing.

3.3

Data Flow Diagr am Sistem

Sistem Penjadwalan ini digambarkan dengan menggunakan Data Flow

Diagram (DFD) yang terbagi dalam 3 level.

3.3.1 DFD Level O

Gambar 3.2 merupakan diagram DFD Level 0. pada Level 0 ini

digambarkan ada 2 external entity yang terlibat yaitu Penyedia data dan

(36)

Gambar 3.2 DFD Level 0 Sistem Penjadwalan

Dalam hal ini data yang dimasukkan adalah :

1) Data Kendaraan yang digunakan adalah :

a) Nama kendaraan yang digunakan

b) Bobot maksimum yang dapat ditampung oleh kendaraan

c) Volume maksimum yang dapat ditampung oleh kendaraan

d) Cost atau biaya yang dikeluarkan untuk tiap kilometer jarak yang

ditempuh.

2) Data Pelanggan, Meliputi :

a) Nama Pelanggan

b) Alamat Pelanggan

c) Koordinat X dari pelanggan berdasarkan Peta yang digunakan

d) Koordinat Y dari Pelanggan berdasarkan Peta yang digunakan

e) Nilai konstanta W dan P antar Node yang berkaitan

3) di Peta Pelanggan ini juga dimasukkan data Depot / tempat

pemberangkatan pengiriman barang.

4) Data kecepatan rata-rata, meliputi :

a) Frame waktru yang digunakan untuk tiap kecepatan.

b) Kecepatan rata-rata untuk frame waktu tersebut

5) Konstanta umum, meliputi :

(37)

c) Nilai default untuk konstanta W dan P yang mempengaruhi dalam

perhitungan jarak.

6) Konstanta Simulated Annealing, meliputi :

a) Temperatur yang digunakan, Tbegin dan Tend

b) Rc, Cooling konstanta, konstanta yang digunakan untuk

menurunkan temperatur. Nilai konstanta harus kurang dari 1 dan

sering kalli dipilih antara 0,8 sampai 0,99. Kita bisa merubah

jumlah pengulangan pada setiap temperatur tergantung dari ukuran

solusi yang dicari dan ukuran temperatur yang digunakan.

c) DL, Distance Limit. Merupakan konstanta yang digunakan untuk

membatasi jarak antar node yang dipertukarakan dalam prosedur

string relocation.

d) CR, Critical ratio. Merupakan konstanta yang menentukan

banyaknya interasi yang dapat diterima menjadi solusi dalam satu

tahap temperatur dengan banyaknya iterasi dalam 1 tahap

temperatur. Dimana CR dihitung dengan rumus:

CR = Nacc / Ntemp

Dengan

Nacc : banyaknya iterasi yang diterima menjadi solusi dalam satu

tahap temperatur

Ntemp : banyaknya keseluruhan iterasi yang terjadi pada satu tahap

Temperatur

(38)

f) Ntemp, menentukan jumlah iterasi maksimal dalam satu tahap

temperatur.

Eksternal Entity Pengguna digambarkan sebagai seorang

manajer/operator yang menggunakan aplikasi ini. Eksternal Enity Pengguna

menginputkan data pengiriman barang, dimana data yang diinputkan meliputi :

1) Nama Barang, yaitu nama barang yang akan dikirimkan

2) Berat barang dalam satuan Kg

3) Volume barang dalam satuan M3

4) Lama pelayanan dalam satuan jam. Lama pelayanan ini menunjukkan

waktu yang dibutuhkan untuk menurunkan barang dari kendaraan ke

tempat pelanggan

5) Flag Pengiriman, fungsinya untuk menunjukkan apakah record

tersebut ikut dikirimkan atau tidak.

6) Penerima barang, berisi data pelanggan yang akan menerima paket

barang tersebut.

7) Data Pengirim Barang, berisi data pelanggan yang melakukan

pengiriman barang.

Data yang diterima oleh eksternal entity pengguna ini adalah data rute

pengiriman barang hasil pengolahan baik menggunakan metode eksak maupun

metode non eksak. Data yang dihasilkan meliputi :

(39)

2) Data rute yang harus dilalui oleh tiap kendaraan, meliputi nama barang

yang dikirimkan, nama penerima barang, alamat penerima barang,

nama pengirim barang, jam kedatangan di lokasi pelanggan tersebut,

jam keberangkatan dari lokasi pelanggan tersebut dan berat barang

yang dikirimkan ke lokasi pelanggan tersebut.

3.3.2 DFD Lvel 1 :

Gambar 3.3 DFD Level 1 Sistem Penjadwalan

Gambar 3.3 menunjukkan Data Flow Diagram Level 1, dimana pada level

ini sistem dipecah lagi menjadi beberapa proses yaitu :

1) Proses entri data, dimana di bagian ini terjadi proses input data

kendaraan, data pelanggan, data pengiriman barang, data kecepatan

(40)

2) Proses metode eksak, dibagian ini terjadi proses pembentukan rute

dengan mencari rute yang paling optimal. Pembentukan rute

menggunakan metode eksak. Penjelasan lebih detil ada di bagian

lain dari bab ini.

3) Proses metode heuristik, dibagian ini terjadi prosers pembentukan

rute, dimana rute yang optimal dicari menggunakan metode

Simulated Annealing. Penjelasan lebih detil ada dibagian lain dari

bab ini.

3.3.3 DFD Lvel 2 :

Pada DFD Level 1 pada proses penjadwalan dengan metode eksak dan

metode heuristik masing-masing dipecah lagi menjadi proses yang lebih kecil.

a) DFD Level 2 proses Metode Eksak

(41)

Gambar 3.4 merupakan DFD Level 2 dari Metode Eksak. Pada bagian ini

terbagi dalam 4 proses yaitu

1) Load data global. Pada bagian ini diload data node y kendaraan yang ada,

mulaijam kerja, selesai jam kerja, dan data kecepatan rata-rata yang

digunakan.

2) Kombinasi node. Pada bagian ini, dicari kombinasi urutan dari node yang

terlibat. Untuk n node yang terlibat, maka jumlah kombinasi yang muncul

adalah n!.

3) Kombinasi kendaraan. Pada bagian ini dicari kombinasi urutan kendaraan

yang tersedia untuk melakukan pengiriman barang. Untuk k kendaraan

yang terlibat, maka akan ada k! Kombinasi. Jadi setelah suatu kombinasi

node ditemukan, pada kombinasi node ini dipasangkan pada kombinasi

tiap kendaraan yang muncul. Sehingga keseluruhan kombinasi yang

muncul sebanyak n! * k!.

4) Rute terbaik dicatat. Pada bagian ini, setiap kali sebuah rute didapatkan,

dihitung cost rutenya, kemudian rute dengan cost terendah disimpan di

memory.

b) DFD Level 2 proses Metode Heuristik

DFD Level 2 untuk methode Heuristik dapat dilihat pada gambar 3.4. pada

bagian ini metode Heuristik dipecah menjadi 4 proses.

1) Load global. Proses ini sama dengan proses load data global pada metode

(42)

2) Load konstanta Simulated Annealing. Pada bagian ini konstanta yang

digunakan oleh algoritma Annealing disimpan di memory.

3) Generate solusi awal. Pada bagian ini dilakukan pencarian solusi awal

yang merupakan inputan bagi Simulated Annealing. Proses ini akan

dijelaskan lebih detil pada bagian berikutnya.

4) Simulated Annealing. Pada bagian ini dilakukan proses pencarian solusi

baru dengan menggunakan algoritma Simulated Annealing. Proses ini akan

dijelaskan lebih detil pada bagian berikutnya.

Gambar 3.5 DFD Level 2 Metode Heuristik

3.4

Flowchar t Load Data Global

Sebelum sistem melakukan proses penjadwalan, baik dengan

menggunakan metode eksak maupun non eksak, dilakukan prosedur untuk meload

data global ke memori. Gambar 3.6 menunjukkan flowchart prosedur ini.

Pada bagian awal, data yang di load adalah nilai default untuk konstanta

(43)

kerja. Kemudian dilakukan proses perhitungan total jam kerja. Kemudian

menghitung node pelanggan yang terlibat, kemudian data node pelanggan di load

ke memory. Kemudian meload data kecepatan ke memory. Kemudian meload

jarak antar node, data jarak antar node disimpan dalam variabel matriks di

memory. Kemudian yang terakhir adalah meload data kendaran yang available ke

memory. Data kendaraan ini diurutkan secara descending berdasarkan berat (Kg)

yang mampu dibawa dan volume (M3) yang mampu dibawa.

Gambar 3.6 Flowchart Load data global ke memory

Data jarak antar node sendiri sudah tersimpan di dalam database, sehingga

(44)

3.5

Penjadwalan dengan car a eksak

Pembentukan rute dengan cara eksak dihitung berdasarkan model

matematika yang ada di bab sebelumnya. Dimana secara umum flowchart dari

cara eksak terbagi dalam 2 bagian, yaitu mencari semua kombinasi node yang

muncul, kemudian dari setiap kombinasi node yang muncul dipasanngkan pada

tiap kombinasi kendaraan, sehingga akan terbentuk rute dari tiap kendaraan.

Kemudian, dari semua rute yang muncul tersebut dicari nilai cost (biaya) yang

paling kecil (solusi optimum). Gambar 3.7 merupakan flowchart dari penjadwalan

cara eksak.

(45)

Pada awal metode ini, didapatkan jumlah node yang terlibat dan

didapatkan data kendaraan. Kemudian dilakukan pencarian kombinasi urutan

kendaraan yang hasilnya disimpan di file. Kemudian dibentuk suatu string.

Kemudian melakukan looping sebanyak jumlah node. Untuk setiap iterasi,

memanggil fungsi kombinasi untuk membentuk rute. Fungsi kombinasi sendiri,

nantinya akan memanggil dirinya (rekursif).

Jika karakter belum ada dalam string rute, maka karakter ditambahkan,

kemudian memanggil kembali fungsi kombinasi secara rekursif dengan argumen

string yang baru. Jika panjang string yang terbentuk sama dengan jumlah node

yang terlibat, maka kemudia rute yang terbentuk diposisikan pada tiap komninasi

urutan kendaraan dengan memenuhi batasan yang ada pada tiap kendaraan dan

jam kerja yang telah ditentukan. Dalam hal ini batasan yang ada untuk tiap

kendaraan adalah berat maksimum yang dapat dibawa dan volume maksimum

yang dapat dibawa. Kemudian dari rute yang elah diposisikan pada tiap

kendaraan, dihitung jarak tempuhnya dan cost dari rute tersebut. Untuk rute yang

jarak costnya termurah, disimpan untuk dibandingkan dengan rute berikutnya,

sehingga akhirnya akan ditemukan rute dengan cost termurah.

3.6

Penjadwalan dengan Heuristik

Penjadwalan dengan cara heuristik tidak mencari semua solusi yang

mungkin muncul, tetapi hanya mencari sebagian dari solusi yang mendekati

solusi nilai optimum. Langkah awal dari metode ini adalah membentuk solusi

awal, kemudian dari solusi awal itu kita melakukan perbaikan untuk mencari

(46)

Pada awal metode ini dilakukan prosedur load konstanta yang diperlukan

ke memori. Konstanta yang diload adalah :

a) Tbegin dan Tend, konstanta ini menentukan nilai temperatur awal dan

nilai temperatur akhir yang dituju.

Gambar 3.8 Flowchart Penjadwalan dengan metode Heuristik

b) V_RC, konstanta ini menentukan seberapa besar pendinginan/penurunan

temperatur dilakukan. Temperatur untuk state ke n dihitung dengan rumus:

Tn = Tn-1 * V_RC.

c) DL, konstanta ini menentukan jarak maksimum yang diperbolehkan antara

2 node yang dipertukarkan dalam prosedur pencairan solusi baru

(neighbour search/string relocation).

d) CR, konstanta ini menentukan nilai perbandingan antara jumlah solusi

yang telah ditemukan dengan jumlah iterasi total dalam 1 tahap

temperatur. Dalam kondisi tertentu, jika solusi tetap tidak ditemukan,

(47)

kurang atau sama dengan CR walaupun iterasi inner loop belum tercapai.

Atau EXIT when Nacc/Ntemp ≤ CR.

Dimana Nacc : jumlah solusi yang feasible yang telah ditemukan

Ntemp : jumlah total iterasi dalam 1 tahap/state temperatur.

Proses selanjutnya adalah pembentukan solsi awal yang akan dijelaskan

lebih detail di bagian berikutnya, kemudian dilanjutkan oleh Algoritma Simulated

Annealing itu sendiri. Pembentukan solusi awal ini sendiri merupakan

seed/inputan untuk Simulated Annealing. Kemudian berikutnya akan dijelaskan

procedure Neighbohood yanng merupakan proses pencarian rute baru berdasaran

rute yang sekarang.

3.6.1 Pembentukan Solusi Awal

Flowchart dari prosedur ini tampak pada gambar 3.9 pada awalnya

diinputkan jumlah node yang terlibat dalam pembentukan rute. Kemudian kita

membentuk solusi awal T, dengan elemen node ke 0 (Node Depot). Kemudian

kita melakukan looping sepanjang node yang ada. Jika node belum ada dalam

string T, maka dihitung jarak antara node tersebut dengan node akhir dari string T.

Kemudian dari hasil perhitungan jarak dari keseluruhan node, dicari jarak yang

terpendek dari node akhir dari string T dijadikan next node dari node akhir dari

string T. Prosedur ini diulang lagi sampai panjang string T sama dengan jumlah

(48)

Gambar 3.9 Flowchart Pembentukan Rute Awal

3.6.2 Simulated Annealing

Flowchart dari prosedur ini tampak pada gambar 3.10 dan gambar 3.11.

pada awal bagian Algoritma Simulated Annealing, kita mendeklarasikan variabel

T sebagai temperatur awal. Juga dideklarasikan variabel C_ntot yang akan

menyimpan jumlah iterasi yang telah dilakukan, dimana jumlah iterasi maksimum

(49)
(50)

Kemudian dilakukan proses looping, dimana proses looping ini berakhir

jika T sama dengan temperatur akhir yang dituju. Konstanta nTemp menunjukkan

jumlah solusi yang telah ditemukan dalam 1 tahap temperatur, dan nAcc

merupakan variabel yang menunjukkan jumlah solusi yang diterima sebagai solusi

baru dalam 1 tahap temperatur.

C D = rute_baru – rute_sekarang

D > 0 V_r = random

V_exp = exp(D/T)

V_r < v_exp Rute diterima

Rute_skrg = rute_baru Nacc++; C_ntemp++;

C_ntot++;

Yes

No

Yes

C_ntemp++; C_ntot++;

No

D Cost rute_skrg <

Cost rute_terbaik No

Rute_terbaik = rute_sekarang

Yes

(51)

Pada bagian inner loop akan dijelaskan pada bagian berikutnya. Setelah

inner loop selesai, dilakukan penurunan temperatur T, V_rc adalah konstanta yang

nilainya antara 0-1 yang menunjukkan skala penurunan temperatur.

Pada bagian inner loop, didapatkan rute_baru yang didapatkan dari

fungsi neighbour_baru didapatkan, kemudian dihitung total jarak dan total waktu

dari rute baru tersebut.

Langkah berikutnya adalah melakukan pengetesan memungkinkan atau

tidak (feasible) pada rute baru tersebut, dimana pengesetan ini berkaitan dengan

batasan sistem yaitu batrasan jam kerja dan kapasitas kendaraan. Jika semua rute

feasible maka langkah selanjutnya adalah menghitung selisih cost antara

rute_baru dan rute sekarang yang disimpan di variabel D.

Jika cost rute_baru lebih buruk dari rute sekarang, maka kemudian

dilakukan pengecekan suatu nilai random v_r. Jika nilai random tersebut

terpenuhi, maka rute baru tersebut diterima, sehingga rute_sekarang merupakan

rute_baru dan dilakukan increment pada variabel nAcc,c_ntemp dan c_ntot.

Kemudian, dilakukan pengecekan apakah cost rute_sekarang lebih murah dari

cost rute_terbaik, jika ya maka rute_terbaik di update.

Jika tidak memenuhi nilai random v_r, maka rute baru tersebut tidak

diterima, dan dilakukan increment pada variabel c_ntemp dan c_ntot.

Jika cost rute baru lebih rendah daeri cost rute_sekarang, maka rute baru

tersebut diterima, sehingga rute sekarang menjadi rute_baru, dilakukan increment

pada variabel nAcc, c_temp dan c_ntot. Kemudian, dilakukan pengecekan jika

cost rute_sekarang lebih murah dari cost rute_terbaik, jika ya maka rute_terbaik

(52)

Kembali ke pengecekan sebelumnya, jika rute tidak feasible, maka

dilakukan increment pada variabel C-ntot. Pada bagian akhir dari inner loop,

dilakukan pengecekan jika perbandingan antara solusi yang diterima dengan

solusi yang telah ditemukan kurang atau sama dengan CR, maka alur program

keluar dair inner loop. Kemudian, untuk inner loop sendiri berakhir jika nTemp

terpenuhi. Konstanta nTemp menunjukkan jumlah maksimum iterasi dalam inner

loop yang berjalan dalam 1 tahap temperatur.

3.6.3 Pencarian Neighborhood

Untuk membentuk rute baru yang didasarkan pada rute yang lama,

digunakan suatu prosedur pencarian disekitar solusi yang sekarang (neighborhood

searching). Dimana untuk pencarian solusi/rute baru ini penulis menggunakan

string relocation. Dalam string relocation ini, dilakukan pertukaran node antar

rute. Flowchart untuk prosedur ini tampak pada gambar 3.12.

Pada awal prosedur ini, kita mendeklarasikan dk sebagai rute sekarang.

Variabel dk ini berfungsi untuk melakukan string relocation.

Kemudian dilakukan looping. Pada awal looping, dilakukan random

untuk menentukan rute sebagai rute asal dan rute yang sebagai rute tujuan. Untuk

rute asal, dilakukan random untuk menemukan node awal dari rute asal yang akan

dipindahkan, dan di random juga jumlah node yang akan dipindahkan. Dari rute

tujuan, di random posisi node yang akan disisipi oleh node yang akan dipindahkan

(53)

Gambar 3.12 Flowchart Neighborhood Search

Kemudian dihitung jarak antara node awal yag akan dipindahkan dari rute asal

dengan node yang akan disisipi di rute tujuan. Looping akan berhenti jika jarak

antara 2 node tersebut kurang dari DL (distance limit).

Jika distance limit telah terpenuhi, maka dilakukan pemindahan node

(54)

3.7

Sistem Database

Sistem ini memerlukan data yang disimpan dalam database sederhana.

Database yang digunakan ialah database MySql 5.0 berikut ini diagram fisik dari

database yang digunakan tampak pada gambar 3.13, tabel 3.1 menampilkan daftar

kolom yang dibuat, dan tabel 3.2 menampilkan daftar tabel.

Tabel barang digunakan untuk menyimpan data barang yang akan

dikirimkan. Tabel toko menyimpan data-data toko . Tabel dtl_penerima

menyimpan data konstanta W dan Konstanta P untuk sebuah node pelanggan

dengan node pelanggan lainnya yang bersesuaian. Tabel jarak menyimpan data

jarak antar node atau toko, dimana jarak ini diperoleh dair perhitungan jarak antar

node dengan menggunakan konstanta W dan P. Tabel kecepatan menyimpan data

kecepatan untuk waktu-waktu tertentu.

Tabel kendaraan menyimpan data kendaraan yang digunakan untuk

mengirim barang. Tabel gudang menyinmpan data gudang dan stock barang.

Tabel barang menyimpan data barang, dan tabel variabel digunakan untuk

menyimpan konstanta-konstanta yang digunakan yang berkaitan dengan kerja

sistem.

3.7.1 Conceptual Data Model (CDM)

Conceptual Data Model (CDM) memodelkan struktur logis dari

keseluruhan aplikasi data, tidak tergantung pada software atau pertimbangan

model struktur data. CDM yang valid dapat dikonversi ke PDM. Dibawah ini

(55)

Pengiriman Barang pada PT. Rimo Catur Lestari, seperti yang terlihat pada

Gambar di bawah ini :

Memi liki Memili ki Memi liki Mem punyai Mempunyai Mempunyai Mempunyai barang id_barang nama_barang berat_barang volume_barang

<pi> Serial (5)

Variable characters (50) Integer Integer <M> <M> <M> Key_1 ... <pi > detil_Penerima kons_w kons_p Integer Integer <M> <M> gudang i d_gudang nama_gudang alamat_gudang kordinat_x_gudang kordinat_y_gudang

<pi> Variable characters (5) Variable characters (50) Variable characters (100) Decimal (5,2) Decimal (5,2) <M> <M> <M> Key_1 ... <pi> j arak i d_jarak j arak

<pi > Integer Integer <M> <M> Key_1 ... <pi> kecepatan id_kecepatan jam_awal jam_akhi r V_rata2

<pi> Serial (3) Integer Integer Integer <M> <M> <M> <M> Key_1 ... <pi > kendaraan id_kendaraan nama_kendaraan bobot_max_kg volume_m ax_m3 ready

<pi> Seri al (3)

Vari able characters (50) Integer Integer Integer <M> <M> <M> <M> Key_1 ... <pi> toko id_toko nam a_toko alam at_toko kordinat_x_toko kordinat_y_toko

<pi> Variabl e characters (5) Variabl e characters (50) Variabl e characters (100) Decimal (5,2) Decimal (5,2) <M> <M> <M> Key_1 ... <pi > variabel satuan_koordinat_ke_km Mulai_jam _kerja selesai _jam_kerj a kons_p kons_w TBegin TEnd V_RC DL CR NT emp NT ot <pi> Integer Integer Integer Integer Integer Integer Integer Integer Integer Integer Integer Integer <M> <M> <M> <M> <M> <M> <M> <M> <M> <M> <M> <M> Key_1 ... <pi>

Gambar 3.13 Conseptual Data Model (CDM)

3.7.2 Physical Data Model (PDM)

Physical Data Model (PDM) ini dibuat berdasarkan Conceptual Data

Model dan physical data model ini hasil generate dari conceptual data model di

atas. Physical Data Model (PDM) memodelkan struktur fisik dari basis data

(database), dengan mempertimbangkan perangkat lunak (software) DBMS serta

model struktur yang akan digunakan. PDM yang valid dapat dikonversi ke CDM.

(56)

barang i d_barang i d_gudang i d_toko nama_barang berat_barang vol ume_barang ... int(5) int(5) int(5) varchar(50) int(8) int(10) <pk> <fk1> <fk2> deti l_Penerima i d_gudang i d_toko kons_w kons_p int(5) int(5) int(5) int(5) <pk,fk1> <fk2> gudang id_gudang nama_gudang alamat_gudang kordinat_x_gudang kordinat_y_gudang ... int(5) varchar(50) varchar(100) deci mal (5,2) deci mal (5,2)

<pk> j arak id_j arak id_gudang id_toko jarak ... i nt(5) i nt(5) i nt(5) i nt(5) <pk> <fk1> <fk2> kecepatan i d_kecepatan i d_kendaraan j am_awal j am_akhir V_rata2 ... i nt(3) i nt(3) i nt(5) i nt(5) i nt(5) <pk> <fk> kendaraan i d_kendaraan nama_kendaraan bobot_max_kg vol ume_max_m3 ready ... int(3) varchar(50) int(5) int(5) int(3) <pk> toko i d_toko nama_toko alamat_toko kordi nat_x_toko kordi nat_y_toko ... i nt(5) varchar(50) varchar(100) decimal(5,2) decimal(5,2) <pk> variabel satuan_koordi nat_ke_km Mulai _jam_kerja selesai_j am_kerj a kons_p kons_w TBegi n TEnd V_RC DL CR NT emp NT ot ... i nt(5) i nt(5) i nt(5) i nt(5) i nt(5) i nt(5) i nt(5) i nt(5) i nt(5) i nt(5) i nt(3) i nt(3) <pk>

Gambar 3.14 Physical Data Model (PDM)

3.8

Penyediaan Data

Dalam sistem ini, dibutuhkan beberapa data yang digunakan untuk

membentuk rute. Antara lain data kendaraan, data pelanggan, data pengiriman

barang, kecepatan rata-rata, konstanta umum dan konstanta Simulated Annealing.

Untuk data kendaraan, data yang diperlukan adalah nama kendaraan,

bobot maksimum dan volume maksimum yang dapat dibawa. Untuk recordnya

sendiri didapatkan dari pengamatan secara langsung.

Untuk data pelanggan, informasi yang diperlukan adalah nama

pelanggan, alamt pelanggan, koordinat x dan koordinat y pelanggan. Untuk data

pelanggan dalam sistem ini, penulis membatasi pelanggan dalam 1 wilayah kota

Surabaya, hal ini karena berkaitan dengan batasan jam kerja yang ada. Data

(57)

digunakan oleh penulis, kemudian dibuat sistem koordinat, dimana 1 satuan

koordinat setara dengan 1 km. Dari sistem koordinat tersebut didapatkan

koordinat x dan koordinat y pelanggan. Peta yang digunakan oleh penulis tampak

pada gambar 3.15.

Gambar 3.15 Peta Surabaya

Selain dibuthkan data posisi x dan y untuk pelanggan, dibutuhkan juga

nilai konstanta w dan p dari suatu node ke node lainny. Disini penulis tidak

melakukan penelitian secara langsung, jadi konstanta w dan p ini diacak.

Konstanta w dan p ini bisa dicari dengan penelitian dimana konstanta ini didapat

menggambarkan kondisi kemacetan, kerusakan jalan, lebar jalan, arah arus, dan

(58)

Untuk data pengiriman barang, informasi yang diperlukan adalah nama

barang, berat barang dalam satuan kg, volume barang dalam satuan m3, dan

waktu pelayanan yang dibutuhkan untuk menurunkan barang tersebut. Data

barang ini didapatkan secara acak.

Untuk data kecepatan rata-rata, informasi yang dibutuhkan adalah frame

waktu dan kecepatan rata-rata untuk frame waktu tersebut. Data untuk ini dibuat

secara acak. Untuk konstanta umum, informasi yang dibutuhkan adalah konversi

satuan koordinat ke km, dimana untuk sistem ini 1 satuan koordinat = 1 km,

kemudian jam kerja perusahaan, dan nilai default untuk konstanta W dan P.

Untuk konstanta Simulated Annealing, informasi yang dibutuhkan

adalah Tbegin, Tend, RC, DL, CR, NTotal dan NTemp. Semua konstanta tersebut

(59)

IMPLEMENTASI

Pada bab ini akan membahas tentang implementasi program dari hasil

analisa dan perancangan sistem yang ada pada bab III, serta bagaimana cara

sistem tersebut dijalankan. Sistem informasi eksukitif ini berjalan yang akan

digunakan oleh pihak Top Level Management yang ada di PT. Rimo Catur Lestari.

Untuk lebih jelasnya dapat dijelaskan pada sub bab berikut:

4.1

Alat yang Digunakan

Pada bagian ini akan dijelaskan mengenai spesifikasi computer yang

akan digunakan untuk implementasi sistem. Spesifikasinya adalah sebagi berikut:

Perangkat Keras :

a) Intel DualCore 2.0 Ghz.

b) RAM 1Gb DDR2 Memory

c) 160 Gb HDD

Perangkat Lunak :

a) Windows 7 Profesional 32 bit

b) Zendcore sebagai web server, MySQL sebagai databasenya.

c) Power Designer 15 dan Power Designer 6.

d) Mozilla Firefox

(60)

4.2

Imlementasi Tatap Muka

Seperti yang telah disinggung pada bagian Kebutuhan Sistem di atas,

sistem yang dibangun ini terdiri atas dua unsur utama, GUI (Graphical User

Interface) dan basis data. GUI direpresentasikan oleh website , sedangkan data

yang disajikan berasal dari database. Karena itu, uraian pada bagian Implementasi

Sistem ini akan dibagi berdasarkan kedua unsur tersebut dengan tujuan agar

proses implementasi sistemnya lebih mudah untuk dimengerti.

Pada tahap ini akan dijabarkan tentang implementasi antarmuka dari

aplikasi berdasarkan perancangan yang telah dibuat. Form-form tersebut, yaitu :

4.2.1

For m Login

Hala

Gambar

Gambar 3.6 Flowchart Load data global ke memory
Gambar di bawah ini :
Gambar 3.14 Physical Data Model (PDM)
Gambar 4.10 Form Peramalan Lanjutan.
+7

Referensi

Dokumen terkait

Tindak lanjut hasil pemeriksaan periode lalu yang diukur dengan semakin banyak rekomendasi yang dilakukan oleh pemerintah diharapkan dapat meningkatkan

(1) Bank Penampung atau Mitra Pembayaran yang telah ditetapkan sebagaimana dimaksud dalam Pasal 7 menandatangani perjanjian kerja sama dengan Bank Kustodian. (2)

Menurut Papalia &amp; Felman (2010: 397) Perilaku prososial adalah segala bentuk perilaku yang dilakukan secara sukarela untuk memberikan keuntungan atau manfaat bagi

Iklan menginformasikan atau menyampaikan informasi- informasi mengenai produk sunlight sebagai sabun cuci piring dapat dipahami konsumen dan diketahui kegunaannya dalam

Memunculkan norma baru dan jaminan kepastian hukum sebagaimana yang diamanahkan oleh Pasal 28 D ayat (1) UUD NRI tahun 1945 terutama dalam hal penyelesaian sengketa

yang memadai bagi peserta didik, program sekolah dikemas secara menarik, sistem pembelajaran yang terpadu dengan pendidikan agama untuk pembinaan akhlak karimah

Paroki St.Bonaventura, mengundang umat pada hari Kamis, 1 Januari 2015 menghadiri: Renungan Sengsara Tuhan Yesus / Jalan Salib di hadapan Sakramen Mahakudus di Ruang