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>