Kamis, 24 Juni 2010

Sort-Discending

<html>
<head>
<script LANGUAGE = "Javascript">

function Urutkan (form)
 {
    DataKosong= false;
    DataInputan = form.Data.value;
    inputData = DataInputan.split (",");
    for (var i = 0; i<inputData.length; i++)
    {
        inputData [i] = parseInt (inputData[i], 10);
    if (isNaN (inputData [i]) )
    {
      DataKosong = true;
      break;
    }
    }

inputData = bubbleSort (inputData, 0, inputData.length-1);
if (DataKosong)
 {
   alert ("Silakan Entri Dulu Data, Pisahkan dengan tanda Koma");
   form.Data.focus();
 }
   else
   form.Hasil.value = DataString (inputData,0);
 }


function DataString (ArrayData, Angka)
 {
   if ( (ArrayData.length - 1) >= Angka)
   return (ArrayData[Angka] + "," + DataString (ArrayData, (Angka + 1) ) );
   else
   return "";
 }

function bubbleSort (ArrayData, Mulai, MulaiBaru)
 {
   for (var i=MulaiBaru-1; i>=Mulai; i--)
   {
          for (var j=Mulai; j<=i; j++)
         {
        if (ArrayData[j+1] > ArrayData [j] )
        {
           var DataTemporer = ArrayData [j];
           ArrayData [j] = ArrayData [j+1];
           ArrayData[j+1] = DataTemporer;
          }
       }
   }

return ArrayData;
}
</script>
</head>

<body>
<center>
<form>
  Masukan Deretan Angka, Pisahkan denga Koma :
  <hr>
  <input type = text name=Data size=30 Value="">
  <br>
  <input type=button value="Urutkan" onClick="Urutkan (this.form)">
  <br>
    <br>
    Hasil Pengurutan :
    <hr>
    <input type=text name=Hasil size=30>
    </form>
</center>
</body>
</html>

Sort-Ascending

<html>
<head>
<script LANGUAGE = "Javascript">

function Urutkan (form)
 {
    DataKosong= false;
    DataInputan = form.Data.value;
    inputData = DataInputan.split (",");
    for (var i = 0; i<inputData.length; i++)
    {
        inputData [i] = parseInt (inputData[i],10);
    if (isNaN (inputData [i]) )
    {
      DataKosong = true;
      break;
    }
    }

inputData = bubbleSort (inputData, 0, inputData.length-1);
if (DataKosong)
 {
   alert ("Silakan Entri Dulu Data, Pisahkan dengan tanda Koma");
   form.Data.focus();
 }
   else
   form.Hasil.value = DataString (inputData,0);
 }


function DataString (ArrayData, Angka)
 {
   if ( (ArrayData.length - 1) >= Angka)
   return (ArrayData[Angka] + "," + DataString (ArrayData, (Angka + 1) ) );
   else
   return "";
 }

function bubbleSort (ArrayData, Mulai, MulaiBaru)
 {
   for (var i=MulaiBaru-1; i>=Mulai; i--)
   {
          for (var j=Mulai; j<=i; j++)
         {
        if (ArrayData[j+1] < ArrayData [j] )
        {
           var DataTemporer = ArrayData [j];
           ArrayData [j] = ArrayData [j+1];
           ArrayData[j+1] = DataTemporer;
          }
       }
   }

return ArrayData;
}
</script>
</head>

<body>
<center>
<form>
  Masukan Deretan Angka "," Pisahkan dengan Koma :
  <hr>
  <input type = text name=Data size=30 Value="">
  <br>
  <input type=button value="Urutkan" onClick="Urutkan (this.form)">
  <br>
    <br>
    Hasil Pengurutan :
    <hr>
    <input type=text name=Hasil size=30>
    </form>
</center>
</body>
</html>

Djikstra-Algorithm

<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+')'+'<br>');
}
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> 


           

Selasa, 25 Mei 2010

Linked List(sisip)

<html>
<head>
<title>Linked List</title></head>
<body>
<script language = "JavaScript">
<!--
function LinkedList()
 {
  this._panjang = 0;
  this._kepala = null;
 }

 LinkedList.prototype =
 {
  constructor : LinkedList,

   tambah : function(data)
    {
     var node = {data : data, next:null};
     var NodeTanda;

     if (this._kepala === null)
     {
      this._kepala = node;
     } else
      {
       NodeTanda = this._kepala;
       while (NodeTanda.next)
       {
         NodeTanda = NodeTanda.next;
       }
       NodeTanda.next = node;
      }
      this._panjang++;
    },

  Item : function(index)
   {
    if (index > -1 && index < this._panjang)
     {
      var NodeTanda = this._kepala,
      i=0;
      while (i++ < index)
      {
       NodeTanda = NodeTanda.next;
      }
      return NodeTanda.data;
     } else
      {
       return null;
      }
   },


 Buang : function(index)
  {
   if( index > -1 && index < this._panjang)
    {
     var NodeTanda = this._kepala,previous, i=0;
     if (index === 0)
     {
      this._kepala = NodeTanda.next;
     } else
      {
       while(i++ < index)
       {
        previous = NodeTanda;
        NodeTanda = NodeTanda.next;
       }
       previous.next = NodeTanda.next;
      }
      this._panjang--;
    } else
     {
      return null;
     }
  },

 sisip : function(index,data)
  {
    var node = {data : data, next:null};
    var temp = "";
    if( index > -1 && index < this._panjang)
    {
      var NodeTanda = this._kepala, i=0;
      this.tambah("x");

      //posisi index
      while(i++ < index)
      {
        NodeTanda = NodeTanda.next;
      }
      while(index++ < this._panjang)
      {
        temp = NodeTanda.data;
        NodeTanda.data = data;
        NodeTanda = NodeTanda.next;
        data = temp;
      }
   }
   this._panjang++;
  }, 

 Ukuran : function()
 {
  return this._panjang;
 },

 toArray : function()
  {
   var result = [],
   NodeTanda = this._kepala;
   while (NodeTanda)
   {
    result.push(NodeTanda.data);
    NodeTanda = NodeTanda.next;
   }
   return result;
  },

 toString : function()
  {
   return this.toArray().toSring();
  }

 }

  var list = new LinkedList();
  list.tambah("Teknik Informatika");
  list.tambah("Teknik Komputer");
  list.tambah("Komputer Akutansi");
  list.tambah("Computer Nerworking");
  list.tambah("Sistem Informasi");
  list.tambah("Management Informatika");
  document.write("Isi LinkedList <br>");
  document.write("--------------- <br>");
  for (i=0;i<6;i++)
   {
     document.write(list.Item(i) + "<br>");
   }
   document.write("----------------<br>");
   alert("Isi LinkedList awal = " + list.Item(0));
   alert("Item 1 pada LinkedList dibuang, yaitu = " + list.Item(1));

 list.Buang(1);
   document.write("<br><br>");
   document.write("Isi LinkedList Terakhir <br>");
   document.write("--------------- <br>");
   for (i=0;i<6;i++)
   {
    if (list.Item(i) == null)
    {
     document.write("--");
    } else {
     document.write(list.Item(i) + "<br>");
     }
   }
   document.write("--------------- <br>");
   document.write("<br>");
   document.write("--------------- <br>");
   document.write("Isi Link list disisipkan lagi <br>");
   document.write("--------------- <br>");
   list.sisip(2,"Teknik Komputer ");
    for (i=0;i<6;i++)
  {
  document.write(list.Item(i) + "<br>");
  }
  document.write("----------------<br>");
  alert("setelah disisipkan");
//-->
</script>


</body>
</html>



Selasa, 18 Mei 2010

Visualisasi Stack

<html>
<head>
<title>Penggunaan Struktur Data Stack (Tumpukan)</title>
<script language="javascript">
<!--
    var stack = new Array();

    function input_ke_stack(data)
    {
     stack.push(data);
    }

    function ambil_dari_stack()
    {
     var yang_ambil_dari_stack = stack.pop();
     if (stack.length == 0)
        return (yang_ambil_dari_stack + " -> stack sudah kosong");
     else
        return yang_ambil_dari_stack;
    }

    function dalam_antrian(list)
    {
     list.options.length = 0;
     for (var i = 0; i < stack.length; i++)
     {
      var data = new Option(stack[i]);
      list.options[list.options.length] = data;
     }
    }

//-->
</script>
</head>

<body>
    <font color=#992811>Visualisasi stack (Tumpukan)</font>
    <form>
    <input type=text name=textSimpan>
    <input type=button value="Masuk Tumpukan" onClick = 'input_ke_stack(textSimpan.value);
                         textSimpan.value = "";
                         dalam_antrian(visualisasi);'>
    <select name="visualisasi" size=12>
    <option>Isi antrian....
    </select>
    <br>
    <input type=text name=textAmbil size=20>
    <input type=button value="Keluar Dari Tumpukan" onClick='textAmbil.value = ambil_dari_stack();
                           dalam_antrian(visualisasi);'>
    </form>
</body>
</html>


visualisasi queue

<html>
<head>
<title>Penggunaan Queue</title>
<script language="javascript">
<!--
    var queue = new Array();

    function masuk_antrian(data)
     {
      queue.unshift(data);
     }

    function keluar_antrian()
     {
      var yang_keluar_antrian = queue.pop();
      if (queue.length == 0)
        return (yang_keluar_antrian + " -> Queue sudah kosong");
      else
        return yang_keluar_antrian;
     }

    function dalam_antrian(list)
     {
      list.options.length = 0;
      for (var i = 0; i < queue.length; i++)
     {
      var data = new Option(queue[i]);
      list.options[list.options.length] = data;
     }
    }

//-->
</script>
</head>

<body>
    <font color=#992811>Visualisasi Queue (Antrian)</font>
    <form>
    <input type=text name=textSimpan>
    <input type=button value="Masuk Antrian"
                        onClick = 'masuk_antrian(textSimpan.value);
                        textSimpan.value = "";
                        dalam_antrian(visualisasi);'>
    <select name="visualisasi" size=12>
    <option>Isi antrian....
    </select>
    <br>
    <input type=text name=textAmbil size=20>
    <input type=button value="Keluar Antrian"
                        onClick='textAmbil.value = keluar_antrian();
                         dalam_antrian(visualisasi);'>
    </form>
</body>
</html>


Sabtu, 24 April 2010

Luas Segitiga

Kode html:
<html>
<head><title>luas segitiga</title></head>
<body>
<script language="JavaScript">
 <!--
    var alas=parseInt(prompt("MAsukan Nilai Alas"));
    var tinggi=parseInt(prompt("Masukan Nilai Tinggi"));

    hasil=0.5*alas*tinggi;
    document.write("Alas   ="+alas+"<br>");
    document.write("Tinggi ="+tinggi);
    document.write("<hr>");
    document.write("Luas Segitiga ="+hasil);
 //-->
</script>
</body>
</html>


Hasil Program: