<html>
<head><title>Dijkstra Algoritma</title>
<script>
<!--
alert ("Taet Dijkstra");
//-->
</script>
</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 = 1;
}
}
}
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,o,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