Selasa, 25 Mei 2010

Insert Linked List

<html>
<head>
<title>Contoh Penggunaan Linked List</title>
</head>
<body>
<font color=33CC00><b><i>Contoh Penggunaan Struktur Data Linked List</i></b></font><br><hr>
<script language="javascript">
<!--
function linkedlist() {
this.panjang = 0;
this.kepala = null;
}

linkedlist.prototype =
{
constructor : linkedlist,

//Metode untuk menambah data
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++;
},

//Metode untuk menampilkan 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;
}
},

//Metode untuk membuang data
buang: function(index) {
if (index > -1 && index < this.panjang)
{
var NodeTanda = this.kepala, previous, i = 0;

// Membuang kepala
if (index === 0)
{
this.kepala = NodeTanda.next;
}
else
{
//Mencari index yang tepat
while(i++ < index)
{
previous = NodeTanda;
NodeTanda = NodeTanda.next;
}
previous.next = NodeTanda.next;
}
//decrement panjang
this.panjang--;
//return data
return NodeTanda.data;
}
else
{
return null;
}
},

//Metode untuk menyisipkan data
sisip: function(index,data) {
var node = {data:data,next:null};
var NodeTanda = this.kepala, i = 1;

if (index === 0)
{
node.next = this.kepala;
this.kepala = node;
}
else
{
while (i++ < index)
{
NodeTanda = NodeTanda.next;
}
node.next = NodeTanda.next;
NodeTanda.next = node;
}
this.panjang++;
},

//Metode untuk melihat ukuran panjang linked list
ukuran: function() {
return this.panjang;
},

//Metode untuk merubah ke Array
toArray: function() {
var result = [];
var NodeTanda = this.kepala;

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

//Metode untuk merubah ke String
toString: function() {
return this.toArray().toString();
}

};

//Fungsi untuk menampilkan isi variabel list
function tampil()
{
for (i=0; i<5; i++)
{
document.write(list.item(i) + "<br>");
}
document.write("<hr>");
}

var list = new linkedlist();

//Menambah data ke variabel list
list.tambah("00000");
list.tambah("11111");
list.tambah("22222");
list.tambah("33333");
list.tambah("44444");

document.write("Isi LinkedList : <br>");
tampil();

//Membuang salahsatu isi variabel list
list.buang(1);

document.write("Isi LinkedList : (Setelah data pada index ke-1 dibuang) <br>");
tampil();

//Menyisipkan data ke variabel list
list.sisip(2,"sisipan");

document.write("Isi LinkedList : (Setelah menyisipkan data di index ke-2) <br>");
tampil();

document.write("Panjang variabel list adalah = ");
document.write(list.ukuran());
//-->
</script>
</body>
</html>

Selasa, 18 Mei 2010

Linked List

Contoh Linked List

<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--;
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 Nerworking");

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("1 Item 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>

Stack dan Queue

1. Contoh Penggunaan 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>


2. Contoh Penggunaan 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>


3. Contoh Shift Unshift

<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>
<form name = "FormStrukturData">
<input name = "btnQueue" value = "Queue" type = "button" onClick="DataQueue();" />
</form>
</body>
</html>

terima kasih......