BubbleSort

<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=40 value="2,8,1,1,9,5,4,7,3">
<br>
<br>
<input type=button value="Urutkan"onClick="urutkan(this.form)">
<br>
<br>
<br>
Hasil pengurutan:
<hr>
<input type=text name =Hasil size=40>
</form>
</center>
</body>
</html>

Dijkstra

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

Double Linked List

<html>
<head>
<title>Struktur Data LinkedList</title>
</head>
<body bgcolor=blood>
<Script Language = "JavaScript">
<!--
alert("test");
function DoublyLinkedList()
{
this._Panjang = 0;
this._Kepala = null;
this._Ekor=null;
}

DoublyLinkedList.prototype =
{
constructor: DoublyLinkedList,


Tambah: function (data)
{

var node = {data:data,next: null,prev:null };


if(this._Panjang== 0)
{
this._Kepala = node;
this._Ekor= node;
}
else
{
this._Ekor.next=node;
Node.prev = this._ekor;
this._Ekor= node;
}
this._Panjang++;
},
ItemList: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,i = 0;
if (index===0)
{
this._Kepala = NodeTanda.next;
if(!this._Kepala)
{
this._Ekor=null;
}
else
{
this._Kepala.prev= null;
}
}
else
if (index===this._Panjang-1)
{

NodeTanda = this._Ekor;
this._Ekor= NodeTanda.prev;
this._Ekor.next= null;
}
else
{
while (i++ < index)
{
NodeTanda=NodeTanda.next;
}
NodeTanda.prev.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().toString();
}
}



var List = new DoublyLinkedList();

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

document.write("Isi Double Linked List <br>");
document.write("-------------- <br>");

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

document.write("Isi LinkedList Awal="+List.Ukuran()+"<br>");
document.write("Isi Array Awal="+List.toArray()+"<br>");
document.write("Isi String Awal="+List.toString()+"<br><br>");
alert("item List 1 pada linkedlist di buang, yaitu="+List.ItemList(1));
List.Buang(1);
document.write("Isi LinkedList Setelah di buang<br>");
document.write("-------------- <br>");

for (i=0; i<4; i++)
{
document.write(List.ItemList(i) + "<br>");
}
document.write("--------------- <br>");
document.write("Isi LinkedList Awal="+List.Ukuran()+"<br>");
document.write("Isi Array Awal="+List.toArray()+"<br>");
document.write("Isi String Awal="+List.toString()+"<br><br>");

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

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

program queue 2

<html>
<Head>
<title> Struktur Data 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"Antrian 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>
<from>
<input type=text name=textSimpan>
<input type=button value="Masukan Antrian"
onclick='Masukan_Antrian(textSimpan.value);
textSimpan.value="";
Dalam_Antrian(Visualisasi);'>
<select name="Visualisasi" size=12>
<option>Isi Antrian....
</select>
<input type=text name=textAmbil size=20>
<input type=button value="Keluar Antrian"
onClick="textAmbil.value=Keluar_Antrian();
Dalam_Antrian(Visualisasi);">
</option>
</from>
</body>
</html>

Program Queue

<html>
<head>
<title>program queue dengan pop dan unshift JavaScript</title>
<script language="JavaScript">

function DataQueue()
{
var queue=[];
queue.unshift(1);
queue.unshift(2);

var i=queue.pop();
document.write(i+"<br/>");
queue.unshift(3);
queue.unshift(4);
var i=queue.pop();
document.write(i+"<br/>");
}

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

Stack (Menambahkan Function)

<html>
<head>
<title>Struktur Data Stack</title>
<script language = "JavaScript">
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>