Thursday, May 27, 2010

Linked List

<html>
<head>
<title>Struktur Data Linked List</title>
</head>
<body>
<script language = "JavaScript">
<!--

function LinkedList()
{
this._panjang = 0;
this._kepala = null;
}

LinkedList.prototype =
{
constructor: LinkedList,

//Membuat Metode untuk Menambah Data Kedalam List
Tambah: function (data)
{
//Membuat Node List
var node = {data: data, next: null}, NodeTanda;

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


//Membuat metode Untuk Menunjuk Item Data
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;
}
},


//Membuat metode Untuk Membuang Elemen List
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--;
return NodeTanda.data;
}
else
{
return null;
}
},


//Membuat metode Untuk Mengetahui Jumlah Elemen List
Ukuran: function()
{
return this._panjang;
},


//Membuat metode Untuk Membentuk Array
toArray: function()
{
var result = [],
NodeTanda = this._kepala;

while (NodeTanda)
{
result.push (NodeTanda.data);
NodeTanda = NodeTanda.next;
}
return result;
},


//Membuat metode Untuk Konversi ke String
toString: function()
{
return this.toArray().toString();
}

}
var list = new LinkedList ();


list.Tambah("Teknik Informatika");
list.Tambah("Teknik Komputer");
list.Tambah("Komputerisasi Akuntansi");
list.Tambah("Komputer Networking");


document.write("Isi Linked List <br>");
document.write("--------------- <br>");
for (i=0; i<4; i++)
{
document.write(list.Item(i) + "<br>");
}
document.write("--------------- <br>");

alert("Isi Linked List Awal =" +list.Item(0));
alert("Item 1 Pada Linked List dibuang, Yaitu =" +list.Item(1));
list.Buang(1);



document.write("Isi Linked List Terakhir <br>");
document.write("---------------- <br>");
for (i=0; i<4; i++)
{
document.write(list.Item(i) + "<br>");
}
document.write("---------------- <br>");

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

LinkedList Sisip

<html>
<head>
<title>Linked List Sisip</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");

          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(0));

    list.Buang(0);
       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 Linkedlist Disisipkan Lagi <br>");
       document.write("--------------- <br>");
  

       list.sisip(0,"");
       var x=prompt("Sisipkan Kembali Data =");
    {  
     document.write(x); 
    }
 
        for (i=0;i<6;i++)
      {
       document.write(list.Item(i) + "<br>");
      }
       document.write("----------------<br>");
       alert("Setelah Disisipkan");
//-->
</script>

</body>
</html>




Friday, May 21, 2010

Queue (Antrian)

<html>
<head>
<title>Program Queue dengan Shift dan Unshift</title>
<script language="javascript">
<!--
    function DataQueue()
    {
     var queue = [];
     queue.unshift(1);
     queue.unshift(2);
     var i = queue.shift();
     document.write(i + "<br>");

     queue.unshift("Pertama");
     queue.unshift("Kedua");
     var i = queue.shift();
     document.write(i + "<br>");
     document.write(queue[0]);
    }

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

<body><body bgcolor=lavender>
    <form name = "FormStrukturData">
    <input name = "btnQueue" value = "Queue" type = "button" onClick="DataQueue();" />
    </form>
</body>
</html>


Stack (Tumpukan)

<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>