Analisis dan Perbandingan Algoritma L-Queue dan Algoritma Floyd Dalam Penentuan Lintasan Terpendek Pada Graph

107

LISTING PROGRAM
Kode Program Algoritma Floyd:
using System;
namespace JarakTerdekat
{
public class Floyd
{
public List P;
public List M;
public double totalJarak;
public int startIndex;
public int endIndex;
public List result;
public int N;
public void init(List inputTable, double N)
{
this.N = (int)N;
P = new List();
result = new List();

M = inputTable;
for (int i = 0; i < N; i++)
{
P.Add(new List());
for (int j = 0; j < N; j++)
{
P[i].Add(-1);
}
}
}
public List calculateShortestPath(int startIndex,
int endIndex)
{
this.startIndex = startIndex;
this.endIndex = endIndex;
result.Add(startIndex);
FloydAlgo(M);
path(startIndex, endIndex);
result.Add(endIndex);
return result;

}

Universitas Sumatera Utara

108

public void path(int u, int v)
{
double k;
k = P[u][v];
if (k == -1)
{
return;
}
path(u, (int)k);
result.Add((int)k);
path((int)k, v);
}
public List FloydAlgo(List M)
{

for (int k = 0; k < N; k++)
{
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
if (M[i][k] + M[k][j] < M[i][j])
{
M[i][j] = M[i][k] + M[k][j];
P[i][j] = k;
}
}
}
}
totalJarak = M[startIndex][endIndex];
return M;
}
public int min(int i, int j)
{
if (i > j)

{
return j;
}
return i;
}
public void printMatrix(List Matrix)
{
Console.Write("\n\t");
for (int j = 0; j < N; j++)
{
Console.Write(j + "\t");
}
Console.WriteLine();
for (int j = 0; j < 35; j++)
{

Universitas Sumatera Utara

109


Console.Write("-");
}
Console.WriteLine();
for (int i = 0; i < N; i++)
{
Console.Write(i + " |\t");
for (int j = 0; j < N; j++)
{
Console.Write(Matrix[i][j]);
Console.Write("\t");
}
Console.Write("\n");
}
Console.WriteLine("\n");
}
}
}

Kode Program Algoritma L-Queue :
namespace JarakTerdekat

{
public class LQueueBaru
{
public List graph = new List();
List shortestDistances = new List();
List predecessorVertex = new List();
public double totalJarak;
public List path;
Stopwatch watch = new Stopwatch();
public double elapsedTimeMs = 0;
public LQueueBaru(List graph)
{
this.graph = graph;
path = new List();
}
public void LQueue(int startIndex, int toIndex)
{
watch.start();
path.Add(toIndex);
double INF = double.PositiveInfinity;

Queue queue = new Queue();
foreach (var pair in graph)
{
shortestDistances.Add(INF);
predecessorVertex.Add(-1);
}
shortestDistances[startIndex] = 0;
queue.Enqueue(startIndex);

Universitas Sumatera Utara

110

while (queue.Count != 0)
{
int u = queue.Dequeue();
foreach (var pair in graph[u])
{
int v = pair.toIndex;
if (shortestDistances[v] >

shortestDistances[u] + pair.cost)
{
shortestDistances[v] =
shortestDistances[u] + pair.cost;
predecessorVertex[v] = u;
if (!queue.Contains(v))
queue.Enqueue(v);
}
}
}
getPath(startIndex, toIndex);
totalJarak = shortestDistances[toIndex];
elapsedTimeMs = watch.stop();
}
public void getPath(int u, int v)
{
double k;
k = predecessorVertex[v];
if (k == -1 || u == v)
{

return;
}
path.Add((int)k);
getPath(u, (int)k);
}
}
}

Universitas Sumatera Utara

111

CURRICULUM VITAE

Nama

: Dhika Handayani Rangkuti

Alamat Sekarang


: Jln. H Adam Malik Gg Selamat No. 22 Medan

Alamat Orang Tua

: Jln. H Adam Malik Gg Selamat No. 22 Medan

Telp/ Hp

: 081375892549

Email

: dhikahandayani12@gmail.com

Riwayat Pendidikan
2012 – 2016

: S1 Ilmu Komputer Universitas Sumatera Utara, Medan

2009 – 2012


: SMK Telkom Shandy Putra Medan

2006 – 2009

: SMP Negeri 7 Medan

2000 – 2006

: SD Swasta Cenderamata Medan

Keahlian
Bahasa

: Indonesia, Inggris

Pemrograman

: C#, C++, Java Android

Database

: MySql

Design

: Photoshop

Perkantoran

: Microsoft Office

Kursus yang diikuti
TOEFL
Pengalaman Organisasi
[2009]

Anggota Paskibra SMP Negeri 7 Medan

[2010 – 2011]

Sekretaris OSIS SMK Telkom Shandy Putra Medan

[2010 – 2011]

Anggota Paskibraka SMK Telkom Shandy Putra Medan

Universitas Sumatera Utara

112

Pengalaman Kepanitiaan
[2012]

Koordinator Konsumsi Dies Natalis IMILKOM 2012

[2014]

Anggota Dokumentasi Porseni 2014

Seminar
[2014]

Seminar Nasional Literasi Informasi “SENARAI”

Universitas Sumatera Utara