Rabu, 07 Juli 2010

BubbleSort

<html>
<head><title>bubblesort</title>
<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(); // jika data kosong, kursor akan berada di 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=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&gt;

Contoh Program :

Algoritma Dijkstra

<html>
<head><title>Algoritma Dijkstra</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) //panjang matriks, dari, ke
{
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;
var 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 terpendek dari " +namaverteks[dari]+ " ke " +namaverteks[d]+ " : " + posisi[i] + " (" + lintasan + ")");
}
else
{
alert ("Tidak ada jalur");
}
}

function init()
{
var x = '~';

document.write('<pre>');
document.write(" A B C D E F" + '<br>');

document.write('A ' + (matriks[0]=new Array(0,2,3,x,x,x)) + '<br>');

document.write('B ' + (matriks[1]=new Array(2,0,3,6,x,x)) + '<br>');

document.write('C ' + (matriks[2]=new Array(3,3,0,3,5,x)) + '<br>');

document.write('D ' + (matriks[3]=new Array(x,6,3,0,1,3)) + '<br>');

document.write('E ' + (matriks[4]=new Array(x,x,5,1,0,1)) + '<br>');

document.write('F ' + (matriks[5]=new Array(x,x,x,3,1,0)) + '<br>');

document.write('</pre>');

document.write('<pre>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> </pre>');

}

init();
var dari = 0; // A
var ke = 5; // F

dijkstra(matriks.length,dari,ke);

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

Contoh Program :

Selasa, 22 Juni 2010

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,"DATA SISIP");

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&gt;

Contoh Program :



Queue (Antrian)

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


Contoh Program :

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>

Contoh Program :

Jumat, 30 April 2010

Record Menghitung Nilai Mahasiswa

<html>
<head>
<title>Program penggunaan Record</title>
<script language="javascript">
<!--
var databaseMHS = new Array();

function nilaiMHS(v_npm, v_nama, v_prodi)
{
this.npm = v_npm;
this.nama = v_nama;
this.prodi = v_prodi;
this.absen = 0;
this.tugas = 0;
this.uts = 0;
this.uas = 0;
this.total = 0;
}

function tambah()
{
databaseMHS[0] = new nilaiMHS("R001", "Reza", "TI");
databaseMHS[1] = new nilaiMHS("R002", "Hery", "TI");
databaseMHS[2] = new nilaiMHS("R003", "Anto", "TI");
databaseMHS[3] = new nilaiMHS("R004", "Novi", "SI");
databaseMHS[4] = new nilaiMHS("R005", "Sari", "KA");
}

function tampilkan()
{
var spasi = ""
spasi += "<table border='1'>" +
"<tr><th>NPM</th> <th>Nama</th> <th>Prodi</th> <th>Absen</th>" +
"<th>Tugas</th> <th>UTS</th> <th>UAS</th> <th>Total</th></tr>";

for (i=0; i<databaseMHS.length; i++)
{
spasi +="<tr>" +
"<td>" + databaseMHS[i].npm + "</td>" +
"<td>" + databaseMHS[i].nama + "</td>" +
"<td align='left'>" + databaseMHS[i].prodi + "</td>" +
"<td align='center'>" + databaseMHS[i].absen + "</td>" +
"<td align='center'>" + databaseMHS[i].tugas + "</td>" +
"<td align='center'>" + databaseMHS[i].uts + "</td>" +
"<td align='center'>" + databaseMHS[i].uas + "</td>" +
"<td align='center'>" + databaseMHS[i].total + "</td>" +
"</tr>";
}
spasi += "</table>";
document.getElementById("hasil").innerHTML = spasi;
}

function hitung()
{
for (i=0; i<databaseMHS.length; i++)
{
if (databaseMHS[i].npm == document.getElementById("npm").value)
{
databaseMHS[i].absen = document.getElementById("absen").value;
databaseMHS[i].tugas = document.getElementById("tugas").value;
databaseMHS[i].uts = document.getElementById("uts").value;
databaseMHS[i].uas = document.getElementById("uas").value;
n_absen = (databaseMHS[i].absen * 0.1);
n_tugas = (databaseMHS[i].tugas * 0.2);
n_uts = (databaseMHS[i].uts * 0.3);
n_uas = (databaseMHS[i].uas * 0.4);
databaseMHS[i].total = n_absen + n_tugas + n_uts + n_uas;

break;
}
}
document.getElementById("npm").value = "";
document.getElementById("absen").value = "";
document.getElementById("tugas").value = "";
document.getElementById("uts").value = "";
document.getElementById("uas").value = "";
document.getElementById("npm").focus();

tampilkan();
}
//-->
</script>
</head>

<body onload = "tambah(); tampilkan();">
`
<table border="0" bgcolor = "red">

<tr><th align = right>NPM</th> <th>:</th>
<th align = left>
<input id="npm" type="text" size="15" maxlength="14">
</th>
</tr>

<tr><th align = right>Nilai Absen</th> <th>:</th>
<th align = left>
<input id="absen" type="text" size="4" maxlength="2">
</th>
</tr>

<tr><th align = right>Nilai Tugas</th> <th>:</th>
<th align = left>
<input id="tugas" type="text" size="4" maxlength="2">
</th>
</tr>

<tr><th align = right>Nilai UTS</th> <th>:</th>
<th align = left>
<input id="uts" type="text" size="4" maxlength="2">
</th>
</tr>

<tr><th align = right>Nilai UAS</th> <th>:</th>
<th align = left>
<input id="uas" type="text" size="4" maxlength="2">
</th>
</tr>

<tr>
<th align = center colspan=3>
<input type="button" value="Hitung Nilai" onclick="hitung()">
</th>
</tr>
</table>

<hr>
Data Kuliah Akhir Mahasiswa <br>
Mata Kuliah Struktur Data
<hr>

<table>
<tr><td colspan=5><div id="hasil">Area Hasil</div></td></tr>
</table>
<br>

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

Contoh Program :

Program entri data pegawai

<html>
<head>
<title>Program entri data pegawai</title>
<script language="javascript">
<!--
var dbPegawai = new Array();

function pegawai(f_nip,f_nama,f_gaji_per_jam,f_jam_kerja,f_gaji_total)
{
this.nip = f_nip;
this.nama = f_nama;
this.gaji_jam = f_gaji_per_jam;
this.jam_kerja = f_jam_kerja;
this.gaji_total = f_gaji_total;
}

function inputPegawai()
{
var nama, gaji_per_jam, jam_kerja, gaji;
while ( nip = window.prompt("Ketikkan NIP (Nomor Induk Pegawai)\n" +
"Click 'cancel' untuk berhenti !!"))
{
nama = window.prompt ("Nama Pegawai :");
gaji_per_jam = parseInt(window.prompt("Gaji per jam :"));
jam_kerja = parseInt(window.prompt("Jumlah jam kerja :"));
gaji = gaji_per_jam * jam_kerja;
dbPegawai[dbPegawai.length] = new pegawai(nip,nama,gaji_per_jam,jam_kerja,gaji);
}
showPegawai();
}

function showPegawai()
{
document.write("<table border='1'>" +
"<tr>" +
"<th>NIP</th><th>Nama</th><th>Gaji per Jam</th><th>Jam Kerja</th>" +
"<th>Gaji Total</th>" +
"</tr>");

for (i=0; i<dbPegawai.length; i++)
{
document.write("<tr>" +
"<td>" + dbPegawai[i].nip + "</td>" +
"<td>" + dbPegawai[i].nama + "</td>" +
"<td align='right'>" + dbPegawai[i].gaji_jam + "</td>" +
"<td align='right'>" + dbPegawai[i].jam_kerja + "</td>" +
"<td align='right'>" + dbPegawai[i].gaji_total + "</td>" +
"</tr>");
}
document.write("</table>");
}

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

<body onload = "inputPegawai();">
</body>
</html>
Contoh Program :