Thursday, May 27, 2010

Insert pada linked list

<html>
<head>
<title>Insert Linked List</title></head>
<body>
<script>
<!--
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(refference)
{
if (refference > -1 && refference < this._panjang)
{
var NodeTanda = this._kepala,
i=0;
while (i++ < refference)
{
NodeTanda = NodeTanda.next;
}
return NodeTanda.data;
} else
{
return null;
}
},

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

//posisi refference
while(i++ < refference)
{
NodeTanda = NodeTanda.next;
}

while(refference++ < this._panjang)
{

dummy = NodeTanda.data;
NodeTanda.data = data;
NodeTanda = NodeTanda.next;
data = dummy;
}

}

this._panjang++;
},

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

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

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 networking");
list.tambah("");

document.write("Isi LinkedList <br>");
document.write("--------------- <br>");
for (i=0;i<5;i++)
{

document.write(list.Item(i) + "<br>");
}
document.write("----------------<br>");

alert("Isi LinkedList awal = " + list.Item(0));

document.write("--------------- <br>");
document.write("<br>");
document.write("--------------- <br>");
document.write("Isi Link list telah dimasukan <br>");
document.write("--------------- <br>");
list.insert(2,"Rumahku Syurgaku");

for (i=0;i<5;i++)
{
document.write(list.Item(i) + "<br>");
}
document.write("----------------<br>");
//-->
</script>
</body>
</html>

Tuesday, May 18, 2010

Penggunaan Stack

<html>
<head>
<title>Struktur Data Stack</title>
<script>
var stack=new Array();
function Input_ke_Stack(data)
{
stack.push(data);
}
function Ambil_dari_Stack()
{
var data_dari_stack = stack.pop();
if(data_dari_stack ==undefined)
return "Stack Sudah Kosong";
else
return data_dari_stack;
}

function TampilkanStack(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>
<form>
<input type=text name=textSimpan size=25>
<input type=button value="Masukan ke Stack"
onClick='Input_ke_Stack(textSimpan.value);
textSimpan.value="";
TampilkanStack(mediaList);'>
<select name="mediaList"size=12>
<option>Tampilkan data...
</select>
<input type=text name=textAmbil size=20>
<input type=button value="Ambil dari Stack"
onClick="textAmbil.value=Ambil_dari_Stack();
TampilkanStack(mediaList);">
</form>
</body>
</html>

Penggunaan Linklist

<html>
<head>
<title>Linked List</title></head>
<body>
<script>
<!--
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--;
return NodeTanda.data;
} else
{
return null;
}
},

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 networking");
document.write("Isi LinkedList <br>");
document.write("--------------- <br>");
for (i=0;i<4;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<4;i++)
{
if (list.Item(i) == null)
{
document.write("--");
} else
{
document.write(list.Item(i) + "<br>");
}
}
document.write("----------------<br>");

//-->

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

Penggunaan Queue

<html>
<head>
<title>Penggunaan Queue</title>
<script>
<!--
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>