Kompleksitas Algoritma Perhitungan kompleksitas algoritma L-Deque dapat dilihat pada Tabel 4.4.

Hasil dari langkah 3 dapat dilihat pada tabel 3. Tabel 4.3 Hasil Langkah 3 I A B C D J d [V] 5 7 2 6 11 Pi [V] C A I C B Tampilan Hasil yang telah di uji dengan menggunakan Algoritma Bellman-Ford untuk mendapatkan jarak terpendek dapat dilihat pada gambar 5. Gambar 4.17Shortest PathMenggunakan Algoritma Bellman-Ford

4.3 Kompleksitas Algoritma Perhitungan kompleksitas algoritma L-Deque dapat dilihat pada Tabel 4.4.

Tabel 4.4 Kompleksitas Algoritma L-Deque No Code C C Universitas Sumatera Utara 1 public class Ldeque { C 1 1 C 1 2 public listListedge_ graph; C 1 1 C 1 3 ListdoubleshortestDistances = new Listdouble; C 2 1 C 2 4 ListdoublepredecessorVertex = new Listdouble; C 2 1 C 2 5 publicdoubletotalJarak; C 1 1 C 1 6 public Listintpath; C 1 1 C 1 7 stopwatch watch = new Stopwatch; C 2 1 C 2 8 publicdoubleelapsedTimeMs = 0; C 2 1 C 2 9 public LDequeListListedge_ graph { C 1 1 C 1 10 this.graph = graph; C 3 1 C 3 11 path = newListint; C 2 1 C 2 12 public void Ldequeint startIndex, int toIndex { C 1 1 C 1 13 watch.start; C 4 1 C 4 14 path.AddtoIndex; C 5 1 C 5 15 double INF = double.PositiveInfinity; C 6 1 C 6 16 dequeint deque = new Dequeint; C 2 1 C 2 17 foreach var pair in graph { C 7 1 C 7 18 shortestDistances.AddINF; C 8 1 C 8 19 predecessorVertex.Add-1; C 8 1 C 8 20 shortestDistances[startIndex] = 0; C 2 1 C 2 21 deque.AddToBackstartIndex; C 9 1 C 9 Universitas Sumatera Utara 22 while deque.Count = 0 { C 10 1 C 10 21 int u = deque.RemoveFromFront; C 11 1 C 11 22 foreach var pair in graph[u] { C 7 1 C 7 23 int v = pair.toIndex; C 2 1 C 2 24 if shortestDistances[v] shortestDistances[u] + pair.cost C 12 N C 12 N 25 if deque.Containsv C 12 N 2 C 12 N 2 26 if shortestDistances[v] == double.PositiveInfinity C 12 N 3 C 12 N 3 27 deque.AddToBackv; C 9 N 3 C 9 N 3 28 deque.AddToFrontv; C 13 1 C 13 29 shortestDistances[v] shortestDistances[u] + pair.cost; C 9 1 C 9 30 predecessorVertex[v] = u; C 2 1 C 2 31 getPathstartIndex, toIndex; C 14 1 C 14 32 totalJarak = shortestDistances[toIndex]; C 2 1 C 2 33 elapsedTimeMs = watch. stop ; C 2 1 C 2 34 public void getPathint u, int v { C 1 1 C 1 35 double k; C 6 1 C 6 36 k = predecessorVertex[v]; C 2 1 C 2 37 If k == -1 || u==v { C 12 1 C 12 38 return; C 15 1 C 15 39 path .Addintk; C 5 1 C 5 40 getPath u,intk; C 17 1 C 17 Universitas Sumatera Utara Dari perhitungan kompleksitas waktu pada Tabel 4.2 maka didapat T|n| yang merupakan jumlah kolom C sebagai berikut: Ʃ=Tn=7C1+12C2+C3+C4+2C5+2C6+2C7+2C8+2C9+C10+C11+C12+C13+C14+C1 5+C16+C17+C12N+C12N 2 +C12N 3 +C9N 3 Ʃ = Tn = ƟN 3 Perhitungan kompleksitas algoritma Bellman-Ford dapat dilihat pada Tabel 4.5. Tabel 4.5 Kompleksitas Algoritma Bellman-Ford No Code C C 1 public class BellmanFord; C 1 1 C 1 2 public Listedge Edge = new Listedge; C 2 1 C 2 3 public int V; C 1 1 C 1 4 publicListdouble shortestDistances; C 1 1 C 1 5 public double totalJarak; C 3 1 C 3 6 public ListintpredecessorVertex; C 1 1 C 1 7 public Listint path; C 1 1 C 1 8 Stopwatch = new Stopwatch; C 2 1 C 2 9 public double elapsedTimeMs = 0; C 3 1 C 3 10 Public BellmanFord C 1 1 C 1 11 predecessorVertex = new Listint; C 2 1 C 2 12 shortestDistances = new Listdouble; C 2 1 C 2 13 path = new Listint; C 2 1 C 2 14 public void BellmanFordShortestPathint startIndex, int toIndex C 1 1 C 1 15 if V == 0 Edge.Count 0 generateV; C 4 1 C 4 16 shortestDistances .Clear; C 5 1 C 5 17 predecessorVertex .Clear; C 5 1 C 5 Universitas Sumatera Utara 18 double INF = double.PositiveInfinity; C 6 1 C 6 19 For int i = 0; i V; i++ C 7 N C 7 20 shortestDistances. AddINF; C 8 N C 8 N 21 predecessorVertex .Add-1; C 8 N C 8 N 22 shortestDistances [startIndex] = 0; C 2 1 C 2 23 while true C 9 1 C 9 24 bool update = false; C 10 1 C 10 25 Foreach edge e in Edge C 11 1 C 11 26 if shortestDistances[e.from]= INF shortestDistances[e.to] shortestDistances[e.from] + e.cost C 4 1 C 4 27 shortestDistances [e.to] = shortestDistances [e.from] + e.cost ; C 2 1 C 2 28 predecessorVertex [e.to] = e.from; C 2 1 C 2 29 update = true; 30 Ifupdatebreak; C 4 1 C 4 31 if totalJarak = shortestDistances [toIndex]; C 2 1 C 2 31 public void getShortestPathListint startIndex, int toIndex C 1 1 C 1 32 watch.start; C 12 1 C 12 33 path.AddtoIndex; C 8 1 C 8 34 if startIndex = toIndex C 4 1 C 4 35 BellmanFordShortestPathstartIndex, toIndex; C 13 1 C 13 36 getPathstartIndex, toIndex; C 14 1 C 14 37 elapsedTimeMs = watch.stop; C 2 1 C 2 38 public void getPathint u, int v C 1 1 C 1 39 double k; C 6 1 C 6 40 k = predecessorVertex[v]; C 2 1 C 2 Universitas Sumatera Utara 41 if k == -1 || u == v C 4 1 C 4 42 path .Addintk; C 8 1 C 8 43 getPathu, intk; C 14 1 C 14 44 public class edge C 1 1 C 1 45 publicintfrom, to; C 1 1 C 1 46 publicdoublecost; C 1 1 C 1 47 public edgeint _from, int _to, double _cost C 1 1 C 1 48 from= _from; C 2 1 C 2 49 to = _to; C 2 1 C 2 50 cost = _cost; C 2 1 C 2 51 privatedoubleGetTotalPositiveCost C 15 1 C 15 52 double sum = 0; C 6 1 C 6 53 foreach var e inEdge C 16 1 C 16 54 if e.cost 0 sum += e.cost; C 4 1 C 4 55 private void generateV C 15 1 C 15 56 foreach var e inEdge C 16 1 C 16 57 V = Math.MaxV, e.from; C 2 1 C 2 58 V = Math.MaxV, e.to; C 2 1 C 2 Dari perhitungan kompleksitas pada Tabel 4.5 maka didapat Tn yang merupakan jumlah kolom C sebagai berikut: ∑= 13C 1 + 16C 2 + 2C 3 + 6C 4 + 2C 5 + 3C 6 + C 7 + C 8 + C 9 + C 10 + C 11 + C 12 + C 13 +2C 14 +2C 15 +2C 16 +2C 8 N ∑ = Tn = ƟN Universitas Sumatera Utara BAB 5 KESIMPULAN DAN SARAN

5.1 Kesimpulan