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

3.4.3 Keluaran Sistem

Keluaran sistem Penerapan Rute Terpendek P.T Pos Indonesia adalah ruter yang dilewati, nilai bobot waktu serta nilai jarak dan pembentukan peta rute terpendek beserta alternatifnya.

3.4.4 Diagram Aktifitas

3.4.4.1 Diagram Aktifitas Update Data Kondisi Jalan

Gambar 3.18 Diagram Aktifitas Update Data Kondisi Jalan Pilih Menu Update data Kondisi Jalan Menampilkan data Kondisi Jalan Diagram Aktifitas Update Data Kondisi Jalan Start Administator Sistem Klik data yang akan di update Menampilkan Form Isian Ubah kondisi Jalan, dan Klik simpan Menyimpan data kondisi jalan pada tabel jalan

3.4.4.2 Diagram Aktifitas Update Data Kecepatan

Gambar 3.19 Diagram Aktifitas Update Data Kecepatan

3.4.4.3 Diagram Aktifitas Ubah Data Account

Gambar 3.20 Diagram Aktifitas Ubah Data Account Pilih Menu Update data Kecepatan Menampilkan data Kecepatan Diagram Aktifitas Update Data Kecepatan Start Administrator Sistem Klik data yang akan di update Menampilkan Form Isian Ubah Kecepatan, dan Klik simpan Menyimpan data kecepatan pada tabel hitungKecepatan dan jalan Klik tombol simpan ke teks Menyimpan data ke file dmp Pilih Menu Ubah Data Account Menampilkan form Data Account Diagram Aktifitas Ubah Data Account Start Staff Bagian Distribusi Administator Sistem Isi Username dan password baru, dan klik simpan Konfirmasi data data valid simpan data account ke table user data kosong tidak valid