Minggu, 07 November 2010

buble sort with insert

<html>
<head>
<title>Bubblesort list.</title>
</head>
<body>

<script type="text/javascript">


function inputList(form)
{
var i;
DataKosong= false;
DataInputan = form.IsianData.value;
inputData = DataInputan.split(",");
for(i = 0; i<inputData.length; i++)
{
inputData[i] = parseInt(inputData[i], 10);
if (isNaN (inputData [i]) )
{
DataKosong = true;
break;
}
}
if (DataKosong)
{
alert ("Silakan Entri Dulu Data, Pisahkan dengan tanda Koma");
form.Data.focus();
}
// Update the select box list.
updateList(form.ranlist);
}

function sortNumbers(form)
{
inputData = bubbleSort(inputData, 0, inputData.length-1);
// Update the select box list.
updateList(form.ranlist);

}

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


// Assign values in array to values in the select box.
function updateList(listbox)
{
var i;
for(i = 0; i < inputData.length; i++) {
if(listbox.options[i] == null) {

listbox.options[i] = new Option(inputData[i]);
} else {

listbox.options[i].text = inputData[i];
}
}

}


</script>

<form>
Masukan Deretan Angka, Pisahkan denga Koma :
<hr>
<input type = text name=IsianData size=30 Value="">
<br>
<input type=button value="Masukan ke List" onClick="inputList(form)">
<br>
<br>
<select name="ranlist" size="20" >
</select><br><br>
<input type=button value="Bubble Sort Ascending" name="button1"
onclick="sortNumbers(form)">


</form>


</body>
</html>

descending

<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 denga Koma :
<hr>
<input type = text name=Data size=30 Value="">
<br>
<input type=button value="Urutkan" onClick="Urutkan (this.form)">
<br>
<br>
Hasil Pengurutan :
<hr>
<input type=text name=Hasil size=30>
</form>
</center>
</body>
</html>

Ascending

<html>
<head>
<title>JavaScript Random Number Generator.</title>
</head>
<body>

<script type="text/javascript">

var ranarray = new Array(100);

// Generate random numbers to fill ranarray.
function genNumbers(listbox) {
var i;

for(i = 0; i < ranarray.length; i++) {
ranarray[i] = Math.random()*100;
// Round to nearest integer.
ranarray[i] = Math.round(ranarray[i]);
}

// Update the select box list.
updateList(listbox);
}


function sortNumbers(listbox) {
var x, y, holder;
// The Bubble Sort method.
for(x = 0; x < ranarray.length; x++) {
for(y = 0; y < (ranarray.length-1); y++) {
if(ranarray[y] > ranarray[y+1]) {
holder = ranarray[y+1];
ranarray[y+1] = ranarray[y];
ranarray[y] = holder;
}
}
}

// Update the select box list.
updateList(listbox);
}

// Assign values in array to values in the select box.
function updateList(listbox) {
var i;
for(i = 0; i < ranarray.length; i++) {
if(listbox.options[i] == null) {
listbox.options[i] = new Option(ranarray[i]);
} else {
listbox.options[i].text = ranarray[i];
}
}

}

</script>

<form>
<select name="ranlist" size="20" style="width:200px">
</select><br><br>
<input type="button" value="Generate Numbers"
onclick="genNumbers(this.form.ranlist);">
<input type="button" value="Bubble Sort Numbers"
onclick="sortNumbers(this.form.ranlist);">
</form>


</body>
</html>

insert (linked)

<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;
}
},

insert : 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");

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>");
document.write("<br>");
document.write("--------------- <br>");
document.write("Isi Link list disisipkan lagi <br>");
document.write("--------------- <br>");
list.insert(2,"Teknik Komputer ");

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

LINKED

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




Selasa, 29 Juni 2010

dikjstra

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

Hasilnya :

Kamis, 25 Februari 2010

Latihan Struktur Data

Latihan 1 :
<HTML>
<HEAD>
<TITLE>Type Bilangan</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "JavaScript">
<!--

var a = 15;
b = 14;

tambah = a + b;
kali = a * b;

document.write("Penambahan (" +a+ " + " +b+ ") = " + tambah);
document.write("<BR>");
document.write("Perkalian (" +a+ " x " +b+ ") = " + kali);
document.write("<BR>");

//-->
</SCRIPT>
</BODY>
</HTML>


Latihan 2 :
<HTML>
<HEAD>
<TITLE>Konversi Antar Sistem Bilangan</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "JavaScript">
<!--

var bil = new Number(25);
document.write("Bilangan Desimal: " +bil + "<BR>");
document.write("<HR>");

document.write("Biner : " + bil.toString(2) + "<BR>");
document.write("Oktal : " + bil.toString(8) + "<BR>");
document.write("Heksa : " + bil.toString(16) +"<BR>");

//-->
</SCRIPT>
</BODY>
</HTML>


Latihan 3 :
<HTML>
<HEAD>
<TITLE>Membuat Fungsi Matematika Dengan JAvaScript</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "JavaScript">
<!--

function jumlah(x, y) {
var hasil = x + y;

return(hasil);
}

var a = parseInt(prompt("Ketikan Bilangan A = \n Ingat Jangan String"));
var b = parseInt(prompt("Ketikan Bilangan B = \n Ingat Jangan String"));
var z = jumlah(a,b);

document.write(z);
document.write("<BR>");
document.write("<hr>");
document.write("Tipe Data nya adalah = " + typeof(z));

//-->
</SCRIPT>
</BODY>
</HTML>




Latihan 4 :
<html>

<head>

<title>Persamaan kuadrat</title>

</head>

<body>

<script language="JavaScript">

<!--

function determinant(a,b,c)

{

var d = (b*b)-(4*a*c);

return(d);

}



var a=parseFloat(prompt("Menghitung akar persamaan kuadrat masukan nilai A =\n"));

var b=parseFloat(prompt("Menghitung akar persamaan kuadrat masukan nilai B =\n"));

var c=parseFloat(prompt("Menghitung akat persamaan kuadrat masukan nilai C =\n"));



var det=determinant(a,b,c);

document.write("Nilai Determinannya = " +det+"<BR>");

document.write("<BR>");

document.write("<HR>");



if (det>0)

{

var x1 = (-b - Math.sqrt(det))/(2*a);

var x2 = (-b + Math.sqrt(det))/(2*a);



document.write("Nilai x1 = " +x1+ "<BR>");

document.write("Nilai x2 = " +x2+ "<BR>");

document.write("<BR>");

document.write("<HR>");

document.write("Akar-akarnya beda");

alert("Nilai akar-akarnya ada dan berbeda");

} else



if (det==0)

{

var x1 = (-b - Math.sqrt(det))/(2*a);

var x2 = (-b + Math.sqrt(det))/(2*a);



document.write("Nilai x1 = " +x1+ "<BR>");

document.write("Nilai x2 = " +x2+ "<BR>");

document.write("<BR>");

document.write("<HR>");

document.write("Akar-akarnya kembar");

alert("Nilai akar-akarnya sama");

} else

if (det<0)



{

document.write("Akar-akarnya tidak real");

alert("Nilai akar-akarnya tidak terdefinisi");

}



//-->

</script>

</body>

</html>