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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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 Z0 0 1
.
Dengan pembatas :
∑
= ≤ N i ik iy Q q 1 T S N V x d i N j ijk ij N KK
∑
∑
+ ≤∑
= − = = . . 0 1 0 1 1 V dtij = 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
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
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
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
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.
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)
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 − =
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 Xj−Xi p + Yj −Yi 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
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
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
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
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
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 :
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
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 :
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
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
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
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
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
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.
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
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,
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
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
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
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
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
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
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
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.
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
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
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
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
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