• Senin, 11 Juli 2011

      Praktikum Dijkstra

      <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;
      }
      alert("Jarak : "+posisi[i]+' ('+lintasan+')');
      }
      else
      {
      alert("Tidak ada jalur");
      }
      }

      function init()
      {
      var x = nilaiacuan;
      document.write('<pre>');
      document.write('<br>');
      document.write(matriks[0] = new Array(0,2,3,x,x,x));
      document.write('<br>');
      document.write(matriks[1] = new Array(2,0,3,6,x,x));
      document.write('<br>');
      document.write(matriks[2] = new Array(3,3,0,3,5,x));
      document.write('<br>');
      document.write(matriks[3] = new Array(x,6,3,0,1,3));
      document.write('<br>');
      document.write(matriks[4] = new Array(x,x,5,1,0,1));
      document.write('<br>');
      document.write(matriks[5] = new Array(x,x,x,3,1,0));
      document.write('<br>');
      document.write('</pre>');

      var awal='<pre>';
      document.write(awal+'A--2-B--6--D--3-F'+'<br>');
      document.write(' \\ | / | / '+'<br>');
      document.write(' 3 3 3 1 1 '+'<br>');
      document.write(' \\ | / | / '+'<br>');
      document.write(' \\|/ |/'+'<br>');
      document.write(' C--5--E'+'<br>');
      document.write('</pre>');
      }

      init();
      var dari=0;
      var ke=5;
      dijkstra(matriks.length,dari,ke);

      //-->
      </script>
      </body>
      </html>

      0 komentar:

      Posting Komentar

      Subscribe To RSS

      Sign up to receive latest news