Minggu, 28 Juni 2009

Doubly Linked List

<html>
<head>
<title>Struktur Data Doubly Linked List</title>
</head>
<body>
<script language = "javascript">
<!--

function DoublyLinkedList ()
{
this._Kepala = null;
this._Ekor = null;
this._Panjang = 0;
}

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 LinkedList <br>");
document.write("--------------- <br>");
for (i=0; i<4; i++)
{
document.write(List.ItemList(i) + "<br>") ;
}
document.write("--------------- <br>");


alert("Isi LinkedList Awal =" + List.ItemList(0));
alert("ItemList 1 pada Linked List diBuang, yaitu = " +List.ItemList(1));
List.Buang(1);



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

//-->
</script>
</body>
</html>
<html>
<head>
<title>Struktur Data Doubly Linked List</title>
</head>
<body>
<script language = "javascript">
<!--

function DoublyLinkedList ()
{
this._Kepala = null;
this._Ekor = null;
this._Panjang = 0;
}

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 LinkedList <br>");
document.write("--------------- <br>");
for (i=0; i<4; i++)
{
document.write(List.ItemList(i) + "<br>") ;
}
document.write("--------------- <br>");


alert("Isi LinkedList Awal =" + List.ItemList(0));
alert("ItemList 1 pada Linked List diBuang, yaitu = " +List.ItemList(1));
List.Buang(1);



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

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

Tugas VB


Membuat Form Transaksi






Untuk membuat tampilan form seperti di atas, langkah-langkahnya adalah sebagai berikut:
:z :D :p









Aturlah propertiesnya seperti pada gambar di atas :D setelah itu rancang form (Sesuai Kebutuhan). Jika propertiesnya sudah di atur, maka giliran untuk memasukan kode program seperti di bawah ini:




Private Sub CmdBaru_Click()
Tharga.Text = ""
Tjumlah.Text = ""
Ttotal.Text = ""
Tttl.Text = ""
Tdiskon.Text = ""
Thbayar.Text = ""
Tpembayaran.Text = ""
Tkembalian.Text = ""
End Sub

Private Sub CmdHitung_Click()

If Cnama.Text = "Code: 001" Then
Tharga.Text = 25000
Else
If Cnama.Text = "Code: 002" Then
Tharga.Text = 28000
Else
If Cnama.Text = "Code: 003" Then
Tharga.Text = 30000
Else
If Cnama.Text = "Code: 004" Then
Tharga.Text = 35000
End If
End If
End If
End If

Ttotal.Text = Val(Tjumlah) * Val(Tharga)
Tttl.Text = Val(Ttotal) - Val(Tttl)
If Val(Tttl) > 50000 Then
Tdiskon.Text = 0.1 * Val(Tttl)
Else
Tdiskon = 0
End If
Thbayar = Val(Tttl) - Val(Tdiskon)
Ljumlah.Caption = Thbayar.Text

End Sub

Private Sub CmdKeluar_Click()
End
End Sub


Private Sub CmdKembalian_Click()
Tkembalian = Val(Tpembayaran) - Val(Thbayar)
Ljumlah.Caption = Tkembalian
If Val(Tkembalian) < caption = "KEKURANGAN">
Else Lucapan.Caption = "TERIMA KASIH"
End If
End Sub
Private Sub Form_Load()
Cnama.AddItem "Code: 001"
Cnama.AddItem "Code: 002" Cnama.AddItem "Code: 003"
Cnama.AddItem "Code: 004"
End Sub
Private Sub Tkembalian_Change()
Ljumlah.Caption = Tkembalian
End Sub
Private Sub CmdBaru_Click()
Tharga.Text = ""
Tjumlah.Text = ""
Ttotal.Text = ""
Tttl.Text = ""
Tdiskon.Text = ""
Thbayar.Text = ""
Tpembayaran.Text = ""
Tkembalian.Text = ""
End Sub
Private Sub CmdHitung_Click()
If Cnama.Text = "Code: 001" Then
Tharga.Text = 25000
Else
If Cnama.Text = "Code: 002" Then
Tharga.Text = 28000
Else
If Cnama.Text = "Code: 003" Then
Tharga.Text = 30000
Else
If Cnama.Text = "Code: 004" Then
Tharga.Text = 35000
End If
End If
End If
End If
Ttotal.Text = Val(Tjumlah) * Val(Tharga) Tttl.Text = Val(Ttotal) - Val(Tttl) If Val(Tttl) > 50000 Then
Tdiskon.Text = 0.1 * Val(Tttl)
Else
Tdiskon = 0
End If
Thbayar = Val(Tttl) - Val(Tdiskon)
Ljumlah.Caption = Thbayar.Text

End Sub

Private Sub CmdKeluar_Click()
End
End Sub


Private Sub CmdKembalian_Click()
Tkembalian = Val(Tpembayaran) - Val(Thbayar)
Ljumlah.Caption = Tkembalian
If Val(Tkembalian) < caption = "KEKURANGAN" caption = "TERIMA KASIH" caption =" Tkembalian">


Setelah memasukkan kode program, kemudian di running. jika berhasil maka jalannya form akan seperti berikut:

pilih nama barang
masukkan jumlah barang
klik hitung
jika berhasil maka form akan terisi oleh angka-angka,
setelah itu masukkan nominal uang pada kolom pembayaran
kemudian klik kembalian, maka akan muncul nominal hasil perhitungan.

Inilah hasil akhir form!!! horeeee :D :~ :~ :~ :~ :~ :~ :~ :~ :~








Selasa, 23 Juni 2009

Modul VII


Pengurutan Sort

A. Landasan Teori
Pengurutan (Sorting) adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu ataupun masih acak, sehingga tersusun secara teratur menurut aturan dan pola tertentu.



Contoh:
Data Acak : 1, 5, 6, 8, 1, 3, 25, 85
Ascending : 1, 1, 3, 5, 6, 8, 25, 85
Descending : 85, 25, 8, 6, 5, 3, 1, 1


Salah satu metode pengurutan data adalah Bubble Sort, yaitu mengurutkan data dengan
cara membandingkan elemen data sekarang (Acuan) dengan elemen berikutnya.

Pengurutan Ascending: Jika elemen sekarang lebih besar dari elemen berikutnya, maka kedua elemen tersebut ditukar.

Pengurutan Descending: Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar.

Ketika satu proses telah selesai, maka bubble sort akan mengulang proses, demikian seterusnya sampai dengan interaksi sebanyak n-1. Proses Algoritma Bubble Sort berhenti jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telah di inginkan.


B. Contoh Program:

?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++)
{
iputData[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>
Masukkan Deretan Angka, Pisahkan Dengan Koma :
?hr>
?br> ?input type=text name=Data size=30 value="5, 6, 8, 12, 4, 8, 4, 20">
?br>
?br>
?input type=button value="Urutkan" onClick="Urutkan(this.form)">
?br>
?br>
?br>
Hasil Pengurutan :
?hr>
?input type=text name=Hasil size=30>

?/form>
?/center>

?/body>
?/html>


Selasa, 16 Juni 2009

GRAPH

GRAPH
<html>
<head><title>jkstra Algorithms</title>
<script>
<!--
alert ("Taet Dijkstra");
//-->

</script>
</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;
{
message("Jarak : " + Posisi[i]+' ('+Lintasan+') '+'<br>');
}
else
{
message("Tidak Ada Jalur")
}
}

function init(){
var x = NilaiAcuan
Matriks[0]=new Array(0, 2, 3, x, x, x)
Matriks[1]=new Array(2, 0, 3, 6, x, x)
Matriks[2]=new Array(3, 3, 0, 3, 5, x)
Matriks[3]=new Array(x, 6, 3, 0, 1, 3)
Matriks[4]=new Array(x, x, 5, 1, 0, 1)
Matriks[5]=new Array(x, x, x, 3, 1, 0)

var Awal='<pre>'
Awal = Awal + 'A--2-B-6--D--3-F'+'<br>'
Awal = Awal + ' \ / / '+'<br>'
Awal = Awal + ' 3 3 3 1 1 '+'<br>'
Awal = Awal + ' \ / / '+'<br>'
Awal = Awal + ' \/ / '+'<br>'
Awal = Awal + ' C--5-E '+'<br>'
Awal = Awal + '</pre>'

message(Awal.replace(/(\d)+/g, '<font color="red">$1</font>'));
}
init()
var Dari = 0 // A
var Ke = 5 // F
Dijkstra(Matriks.length,Dari,Ke);
//-->
</script>
</body>
</html>