Kelas Halte Nama Operasi
String paths = ;
String bantu = ;
if sPath
[tujuan].getJarak = INFINITE
{ paths.pushString.valueOfsPath[tujuan].getJarak;
bantu =
new
DecimalFormat .
.format sPath
[tujuan].getJarak+ :
; String.valueOfsPath[tujuan].getJarak + :;
while
tujuan = awal { paths.pushdaftarVertex[tujuan].getNama;
paths = daftarVertex
[tujuan].getNama +
\n + paths;
tujuan = findIndex
daftarVertex [
sPath [tujuan].getFrom]
.getNama; }
paths = daftarVertex
[awal].getNama + \n
+ paths; paths = bantu + paths;
paths.pushdaftarVertex[awal].getNama; }
return paths;
}
public String dijkstraString awal, String tujuan {
int
a = findIndexawal;
int b = findIndextujuan;
daftarVertex [a].setInGraph
true ;
jumGraph = 1;
for int
i = 0; i jumlah_vertex
; i++ {
double jarakSementara =
edge [a][i];
sPath [i] =
new
TemporaryJalur_n_Jaraka, jarakSementara;
}
while
jumGraph jumlah_vertex
{
int minIndeks = getMin;
double minDist =
sPath [minIndeks].getJarak;
if minDist ==
INFINITE {
break ;
}
else
{ vertSkrg
= minIndeks; mulaiSmpSkrg
= sPath
[minIndeks].getJarak; }
daftarVertex [
vertSkrg ].setInGraph
true ;
jumGraph ++;
adjust_sPath; }
SYSTOOLS DEMO
paths = daftarVertex
[start].getNama + \n
+ paths;
paths = bantu + paths;
return
paths; }
public static
double
[][] deepCopyIntMatrix
double
[][] input {
if input ==
null return
null
;
double
[][] result =
new double
[input. length
][];
for int
r = 0; r input. length
; r++ { result[r] = input[r].clone;
}
return result;
}
public ListString perpindahanBus2StringTokenizer
stoken { ListString answer =
new
ArrayListString; ListString jalurPilihan =
new
ArrayListString;
while stoken.hasMoreElements {
jalurPilihan.addstoken.nextToken \n
; }
ListList daftarTrayek = new
ArrayListList;
for int
i = 0; i jalurPilihan.size; i++ {
if i = 0 {
int awal =
findIndexjalurPilihan.geti - 1;
int tujuan =
findIndexjalurPilihan.geti; daftarTrayek.add
edgeTrayek [awal][tujuan];
} }
ListString bantu = daftarTrayek.get0; String baru =
; String perpindahanHalte =
;
for int
i = 1; i daftarTrayek.size; i++ { baru =
;
for int
j = 0; j bantu.size; j++ {
for int
k = 0; k daftarTrayek.geti.size; k++ {
if
bantu.getj.equalsdaftarTrayek.geti.getk {
SYSTOOLS DEMO
private boolean
isInGraph ;
public String getNama {
return
nama ;
}
public void
setNamaString nama {
this
. nama
= nama; }
public boolean
isInGraph {
return isInGraph
; }
public void
setInGraph boolean
isInGraph {
this
. isInGraph
= isInGraph; }
public HalteString nama {
this
. nama
= nama;
this .
isInGraph =
false ;
} }
Lampiran 8: Source Code Kelas TemporaryJalur_n_Jarak
package com.entity;
public class
TemporaryJalur_n_Jarak {
private double
jarak ;
private int
from ;
public double
getJarak {
return jarak
; }
public void
setJarak double
jarak {
this
. jarak
= jarak; }
public int
getFrom {
return from
; }
public void
setFrom int
from {
this .
from = from;
}
public TemporaryJalur_n_Jarak
int from,
double jarak {
super
;
SYSTOOLS DEMO