Masukan Sistem Proses Sistem
Gambar 3.3 Set node Awal
Daftar pengirimpenerima ditampilkan ditabel daftarpengirimanTabel, waktu
berangkat dipilih dari comboBox wktbrgkt, parameter dan banyak semut
terima daftar node pengirimpenerima dari tabel
terima daftar peta dari kelas load peta
set riut18 mjd node awal
set variabel string
Dest=riut18
A
Gambar 3.4 Set wilayah Pengiriman
For j=0 to jml wilayah
true set array vertexList = array
nama node ke j For k = 0 to jml
vertexList true
Jika nama vertexList ke k = Dest
true set tujuan pada
wilayah ke j menjadi true
k++
j++ A
B false
false false
Gambar 3.5 Set node Pengiriman
2. Mencari urutan cluster pengiriman Setelah menentukan node dan cluster pengiriman maka langkah
selanjutnya adalah mencari urutan cluster. Ditujukan untuk mengetahui cluster mana yang akan dikunjungi lebih dahulu. Hal
ini ditujukan untuk mempersingkat waktu pencarian rute pengiriman. Gambar 3.6 adalah diagram alir untuk mencari urutan
cluster pengiriman.
For j=0 to jml wilayah
true set array vertexList = array
nama node ke j
For k = 0 to jml vertexList
true Jika nama vertexList
ke k = Dest true
set tujuan pada wilayah ke j
menjadi true k++
j++ A
B false
false false
Gambar 3.6 Mencari urutan Cluster 3. Mencari rute pengiriman tercepat
Setelah mendapatkan urutan cluster. Maka selanjutnya adalah mencari rute pengiriman tercepat. Gambar 3.7, 3.8, 3.9, 3.10, 3.11
adalah diagram alir untuk mencari rute pengiriman tercepat.
A
mencari urutan waktu pengiriman
mencari jalur urutan cluster
mulai dari vertexList 3
mengubah urutan cluster ke angka
mencari rute pengiriman kembali set cluster awal =
cluster akhir rute set cluster
vertexList 3 menjadi Dest
mengubah urutan cluster
ke angka
D
Gambar 3.7 Pencarian rute cluster ke 0
D
For i to bnyk semut
set array vr= array nama node dengan cluster urutan pengiriman pertama set array
amNew=array bobot waktu dengan urutan cluster pengiriman pertama
mengubah susunan matrik amNew dan array vr dengan titik 0 sebagai node awal
set array vrTmp= susunan node baru yang telah diubah, set matriks amNewTmp =susunan matriks
yang telah diubah, set matriks amBobot =susunan matriks invers
semut =0 true
set matriks tMatAwal = matriks
pheromone awal mencari rute
terpendek untuk urutan cluster ke 0
get list finalPath = array susunan jalan terpendek, get finalBobot = matriks bobot jalan, get finalTau = matriks
pheromone baru
E set list gabungFT = tampung list
finalTau, gabungFP = tampung list finalPath, gabungVertUrut =
tampung vrTmp set matriks
tMatAwal = matriks finalTau
false
for i=0 to finalPath -1
set list gabungPath = tampung finalPath-1, set gabungbobot =
finalBobot
Gambar 3.8 Pencarian rute cluster ke-i
E
for i=1 to urutanCluster-1
set array vrIn= array nama node dengan cluster urutan pengiriman ke i set array amIn=array bobot
waktu dengan urutan cluster pengiriman ke i
semut = 0 true
set matriks tMatAwal2 = matriks
pheromone awal set matriks
tMatAwal2 = matriks tauTemp
false
mencari rute terpendek untuk
urutan cluster ke i memasukkan
rute terpilih ke tmpInCluster
set finalPath tmpInCluster ke 0, set finalBobot tmpInCluster ke 1, setfinalTau tmpInCluster ke 2,
set testVertexBaru tmpInCluster ke 3 set list tauTemp = tampung finalTau,
gabungFT = tampung finalTau, gabungFP = tampung finalPath, gabungVertUrut
=tampung testVertexBaru for d=0 to ukuran
finalPath-1 set gabungPath =tampung finalPath,
set gabungBobot = gabungBobot sebelum + finalBobot, i++
F
Gambar 3.9 Pencarian rute cluster akhir
F
set vrLast = daftar vertex urutan cluster terakhir, set amLast =daftar matriks urutan cluster akhir
semut = 0 set matriks
tMatAkhir = matriks
pheromone awal set matriks
tMatAkhir= matriks finalTau
true false
mencari rute terpendek untuk
urutan cluster akhir
memasukkan rute terpilih ke
tmpAkhCluster set finalPath tmpAkhCluster ke 0, set
finalBobot tmpAkhCluster ke 1, set finalTau tmpAkhCluster ke 2, set
testVertexAkhir tmpAkhCluster ke 3 set gabungFT = tampung finalTau, gabungFP
= tampung finalPath, gabungVertUrut =tampung testVertexAkhir
for d=0 to ukuran finalPath
set gabungPath =tampung finalPath, set gabungBobot = gabungBobot
sebelum + finalBobot set list bandingbobot = tampung gabungbobot,
set list bandingpath =tampung gabungpath
G
Gambar 3.10 Set destinasi ulang dan pencarian rute semut ke n
G
for j=o to ukuran listVertexMap
set vertex vere = listVertexMap ke j
for k=0 to ukuran vere
vere ke k DestNext =
true set Dest vere =
true, k++
j++
D
H
Gambar 3.11 Pencarian rute terbaik
Selain diagram alir tersebuat ada proses-proses utama dalam tahap pencarian rute terpendek dengan algoritma Ants Colony System.
1. Algoritma proses inisialisasi status Algoritma ini merupakan tahap pertama algoritma Ants Colony
System. Algoritma ini dibagi dua yaitu inisialisasi status 1 dan inisialisasi status 2. Dimana semut dapat memilih algoritma mana yang akan
digunakan. Jika nilaiQ = nilaiQ0, maka dipilih inisialisasi status1, dan jika nilaiQ nilaiQ0, maka dipilih inisialisasi status2
H
set double bbtTerbaik = bandingbobot ke 0, set list pathTerbaik = bandingPath ke 0, set
nilaiI = 0
for i = 1 to ukuran bandingBobot
bbtTerbaik bandingBobot ke i
set bbtTerbaik = bandingBobot ke i, set pathTerbaik =
bandingPath ke i, set nilaiI = i set global =
pheromoneGloba l
nilai balik rute alternatif dan
terbaik
Gambar 3.12 Proses Inisialisasi Status 1
for i = 0 to ukuran adjMat
for j = 0 to ukuran adjMat
set krMatrik[i][j] = adjMat[i][j],
j++ i++
for x = 1 to ukuran B
for i = 0 to ukuran adjMat
for j=0 to ukuran adjMat
krMatrik[i][j] = krMatrik[i][j] adjMat[i] [j], j++
i++
x++ for i =0 to
ukuran adjMat
for j = 0 to ukuran
adjMat baru[i][j] = tMatrik[i][j] krMatrik[i][j],
j++ i++
return hasil inisialisasi
status1
Gambar 3.13 Proses Inisialisasi Status 2
for i = 0 to ukuran adjMat
for j = 0 to ukuran adjMat
set krMatrik[i][j] = adjMat[i][j],
j++ i++
for x = 1 to ukuran B
for i = 0 to ukuran adjMat
for j=0 to ukuran adjMat
krMatrik[i][j] = krMatrik[i][j] adjMat[i] [j], j++
i++ x++
for i =0 to ukuran
adjMat for j = 0 to
ukuran adjMat
baru[i][j] = tMatrik[i][j] krMatrik[i][j], j++
i++
for k = 0 to ukuran baru
jumlah = 0
jumlah = jumlah + baru[angkajalanawal] [k] for m = 0 to
ukuran baru baru[angkajalanawal] [m] = baru[angkajalanawal] [m] jumlah
return hasil inisialisasi
status 2
2. Algoritma proses pheromone lokal
Gambar 3.14 Proses Update Phremone Lokal
Lnn = 0, c = ukuran adjMat
for i = 0 to ukuran adjMat
for j=0 to ukuran
adjMat vertexList ke i = jalanPresent
vertexList ke j = nextJalan Lnn = adjMat[i][j]
j++ i++
true false
set double deltaT = 1
LnnC for i = 0 to ukuran
tMatriks for j = 0 to ukuran
tMatriks vertexList ke i = jalanPresent
vertexList ke j = nextJalan tMatriks[i][j] = 1-nilaiP tMatriks[i][j] + nilaiPdeltaT
j++ i++
true false
return tMatriks
3. Algoritma proses pheromone global
Gambar 3.15 Proses menentukan pheromone yang akan di update Pheromone Global
set int bagi = jmlclusterbnyksemut, set
int q = 0 for i=0 to
ukuran tMatrik
for j=0 to bnyk semut
jmlCluster==bnyksemut
for k=q to bagi
set list baruTau = tampung tMatriks ke k, set list baruVert = tampung InvVert ke k,
set baruRut = tampung rute ke k k++
true
set q=bagi, set bagi = bagi semut
false
j++
i++
A
Gambar 3.16 Proses Update Pheromone Global
A for i = 0 to
ukuran baruTau set double perCluster = baruTau ke i,
set vertex perVert = baruRut ke i, set string perRut = baruRut ke i
set double deltaT1 = 1Lgb,
set deltaT2 = 0 for j=0 to ukuran
perCluster for k=0 to ukuran
perCluster for l=0 to
ukuran perRut-1
perVert[j].toString.equalsperRut[l].toString perVert[k].toString.equalsperRut[l+1].toString
hasilGlobal[j][k] = 1-a percluster[j][k] + adeltaT1 hasilGlobal[j][k] = 1-a percluster[j][k] + adeltaT2
true false
l++ k++
j++ set list finalHasilGlobal = tampung nilai hasilGlobal,
i++ return finalHasilGlobal, baruVert, baruRut
Gambar 3.17 berikut ini merupakan diagram konteks dari proses yang terjadi didalam system optimasi rute terpendek pengiriman barang P.T. Pos
Indonesia secara umum.
Bagian Distribusi Sistem Informasi
Pencarian Rute Pengiriman Barang
Petugas Pos
Data jarak Daftar lokasi Pengiriman jumlah node
dan Parameter Perhitungan
pheromone awal, qo, beta, rho, alpha
Rute Pengiriman Barang
3.17 Diagram Konteks