<html>
<head><title>Dijkstra Algorithms</title>
</head>
<body>
<script language = "javascript">
<!--
var nilaiacuan = 10000;
var takterdefinisi = -1;
var namaverteks = new Array('A', 'B', 'C', 'D', 'E', 'F');
var matriks = new Array(6);
function bobot(a,b)
{
return matriks[a][b];
}
function dijkstra(jumlahverteks,awal,d)
{
var posisi = new Array(jumlahverteks);
var i;
var kunjungan = new Array(jumlahverteks);
var sebelum = new Array(jumlahverteks);
for (i=0; i<jumlahverteks; i++)
{
posisi[i] = nilaiacuan;
sebelum[i] = takterdefinisi;
kunjungan[i] = false;
}
posisi[Awal] = 0;
var verteks;
for (verteks=0; verteks<jumlahverteks; verteks++)
{
var jarakterpendek = nilaiacuan, berhenti = -1;
for (i=0; i<jumlahverteks; i++)
{
if (!kunjungan[i])
{
if posisi[i] <= jarakterpendek)
{
jarakterpendek = posisi[i];
berhenti = i;
}
}
}
kunjungan[berhenti] = true;
for (i=0; i<jumlahverteks; i++)
{
if (!kunjungan[i])
{
var w = bobot(berhenti, i);
if (posisi[berhenti]+w < posisi[i])
{
posisi[i] = posisi[berhenti] + w;
sebelum[i] = berhenti;
}
}
}
}
i = d;
if (posisi[i] < nilaiacuan)
{
var lintasan = namaverteks[i];
var verteks = i;
while (verteks>0)
{
verteks = sebelum[verteks];
if (verteks >= 0)
lintasan = namaverteks[verteks] + '->' + lintasan;
{
message ("Jarak :" + posisi[i] + ' (' + lintasan + ')' + '<br>');
}
else
{
message ("Tidak ada jalur");
}
}
}
function init()
{
var x = nilaiacuan;
matriks[0] = new Array(0,2,3,x,x,x);
matriks[1] = new Array(2,0,3,6,x,x);
matriks[2] = new Array(3,3,0,3,5,x);
matriks[3] = new Array(x,6,3,0,1,3);
matriks[4] = new Array(x,x,5,1,0,1);
matriks[5] = new Array(x,x,x,3,1,0);
var awal = '<pre>';
awal = awal + 'A--2-B-6--D--3-F'+ '<br>';
awal = awal + ' \ | /| /'+ '<br>';
awal = awal + ' 3 3 3 1 1'+ '<br>';
awal = awal + ' \ | / | /'+ '<br>';
awal = awal + ' \|/ |/'+ '<br>';
awal = awal + ' C--5-E'+ '<br>';
awal = awal + '</pre>';
message(awal.replace(/(\d)+/g, '<font color="red">$1</font>'));
}
init();
var dari=0; // A
var ke = 5; // F
dijkstra(matriks.length,dari,ke);
//-->
</script>
</body>
</html>
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar