Selasa, 16 Juni 2009

graph

(html>
(head>(title>Di jkstra Algorithms(/title>
(script>
(!--
alert("Taet Di jkstra")
//-->


(/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 Di jkstra(JumlahVarteks,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 = 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">SI(/font>'));
}
init ()
var Dari=0 // A
var Ke =5 // F
Di jkstra(Matriks.length,Dari,Ke);
//-->
(/script>
(/body>
(/html>