Selasa, 19 Mei 2009

MODUL VI

SUSUNAN / DAFTAR DATA TERKAIT (LINKED LIST)
A. Landasan Teori

Linked list (Daftar Bertaut) adalah salah satu Struktur data dasar yang menggambarkan sekumpulan data yang saling terkait dengan ditandai dengan adanya Head sebagai kepala dari List, Pointer sebagai penghubung antar Node, serta Tail sebagai ujung dari List. Linked mirip dengan array, kecuali pada Linked list data yang ingin disimpan dapat dialokasikan secara dinamis pada saat pengoperasian program (run-time).
List terdiri dari:
  • Head (Kepala)
  • Pointer (Penunjuk)
  • Tail (Ujung)

Jenis-jenis linked List:

  • Linear Linked list (Searah)
  • Circular linked List (Searah)
  • Single Linked list
  • Double Linked List
B. Praktek
  1. Deklarasi Awal Pembentukan Linked List:

function Linked List()
{
This._panjang = 0;
This._kepala = null;
}

2. Konstruksi (pembentukan) metode yang akan dimiliki oleh Linked List, yaitu:

  • Tambah (untuk menambahkan Item/Node)
  • Item (untuk menunjuk Item List berdasarkan Index)
  • Buang (untuk membuang elemen linked list)
  • Ukuran (menentukan jumlah elemen linked list)
  • toArray (mengkonversi Linked list ke dalam susunan Array)
  • toString (untuk menghasilkan susunan Array bertipe String

3. Pembentukan Metode dalam linked List dengan Prototype:

Linked List.prototype =
{
Constructor:
LinkedList,
Tambah,
Item,
Buang,
Ukuran,
toString,
toArray;
}

Blok Penulisan Kode:


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

function LinkedList()
{
this._panjang = 0;
this._kepala = null;
}

LinkedList.prototype =
{
constructor: LinkedList,

//Membuat Metode untuk Menambah Data Kedalam List
Tambah: function (data)
{
//Membuat Node List
var node = {data: data, next: null}, NodeTanda;

//Periksa Isi List
if (this._kepala === null)
{
this._kepala = node;
}
else
{
NodeTanda = this._kepala;
while (NodeTanda.next)
{
NodeTanda = NodeTanda.next;
}
NodeTanda.next = node;
}
this._panjang++
},


//Membuat metode Untuk Menunjuk Item 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;
}
},


//Membuat metode Untuk Membuang Elemen List
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;
}
},


//Membuat metode Untuk Mengetahui Jumlah Elemen List
Ukuran: function()
{
return this._panjang;
},


//Membuat metode Untuk Membentuk Array
toArray: function()
{
var result = [],
NodeTanda = this._kepala;

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


//Membuat metode Untuk Konversi ke String
toString: function()
{
return this.toArray().toString();
}

}
var list = new LinkedList ();


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


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

alert("Isi Linked List Awal =" +list.Item(0));
alert("Item 1 Pada Linked List dibuang, Yaitu =" +list.Item(1));
list.Buang(1);



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

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

Jumat, 15 Mei 2009

Take Ngorek

haduh haduh...UAS bentar lagi tapi tugas nya lum kelar juga :c tugas VB juga lum kepikiran mau bikin apa :t cerita ma kakak malah diceramahin!! 1 jam exlusive pula! just do it without complaining katanya teh! yang paling menguras air mata adalah tugas makalah ekonomi yang data-datanya pada ilang!! huaaaa...!!! :c mesti mulai dari awal lagi!! yeah yeah bersemangat!! :z :~

Kamis, 14 Mei 2009

Tambahan Record

Cara Membuat Messages Box dengan Record

?html>
?head>
?title> Membuat Rekaman Objek ?/title>
?/head>
?body>
?script language="JavaScript">
?!--
var Record = new Array();
function Mahasiswa (npm, nama, matkul, nilai_angka, nilai_huruf) {
// Properti
this.npm = npm;
this.nama = nama;
this.matkul = matkul;
this.nilai_angka = nilai_angka;
this.nilai_huruf = nilai_huruf;

// Metode

this.LihatRecordMahasiswa = LihatRecordMahasiswa;
}

function LihatRecordMahasiswa() {
document.write("?td>" + this.npm + "?/td>");
document.write("?td>" + this.nama + "?/td>");
document.write("?td>" + this.matkul + "?/td>");
document.write("?td>" + this.nilai_angka + "?/td>");
document.write("?td>" + this.nilai_huruf + "?/td>");
}

//mengisi data
for (I=1; I?=5; I++)
{
npm=window.prompt("NPM");
nama=window.prompt("Nama");
matkul=window.prompt("Matkul");
nilai_angka=window.prompt("Nilai Angka");

if (nilai_angka ?= 49)
{nilai_huruf = "E";}
else
{
if (nilai_angka ?= 59)
{nilai_huruf = "D";}
else
{
if (nilai_angka ?= 69)
{nilai_huruf = "C";}
else
{
if (nilai_angka ?= 79)
{nilai_huruf = "B";}
else

{nilai_huruf = "A";}


}}}

Record[I] = new Mahasiswa (npm, nama, matkul, nilai_angka, nilai_huruf);

}


//menampilkan data
document.write("?table border = '1'>");
document.write("?th>NPM?/th> ?th>Nama?/th>");
document.write("?th>Matkul?/th> ?th>Nilai Angka?/th> ?th>Nilai Huruf?/th> ?br>");

for (I=1; I ? Record.length; I++)
{
document.write("?tr>");
Record[I].LihatRecordMahasiswa();
document.write("?/tr>");
}
document.write("?/table> ?br>");


//-->

?/script>
?/body>
?/html>

MODUL V

ANTRIAN (QUEUE)


A. Landasan Teori

Antrian (Queue) adalh merupakan sekumpulan data terstruktur yang diolah dengan prinsip Pengolahan Data FIFO (First In First Out)


B. Praktek

  1. Queue ke 1

?html>
?head>
?title>Program Queue dengan shift 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>


2. Queue ke 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>
?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>
?input type=text name=textAmbil size=20>
?input type=button value="Keluar Antrian"
onClick="textAmbil.value=Keluar_Antrian();
Dalam_Antrian(Visualisasi);">
?/form>
?/body>
?/html>

MODUL IV

TUMPUKAN (STACK)


A. Landasan Teori

Tumpukan (Stack) adlah sekumpulan data terstruktur yang diolah dengan prinsip Pengolahan Data LIFO (Last In First Out) Metode Penyimpanan Data ke dalam Stack secaraUmum dinamakan Push dan sebaliknya pengambilan data dari stack dinamakan pop

B. Praktek

  1. Program Ke 1

?html>
?head>
?title>Contoh Implementasi Push dan Pop pada Stack?/title>
?/head>
?body>
?script type = "text/javascript">
var stack= new Array;
stack.push("A");
stack.push("B");
stack.push("C");
document.write("Stack:"+stack.toString()+"?br>");
var YangDiAmbil=stack.pop();
document.write("Data Yang Diambil:"+YangDiAmbil);
document.write("?br>");
document.write("Isi Stack Terakhir:"+stack.toString());
?/script>
?/body>
?/html>

2. Program Ke 2


?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
eturn 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>
?input type=button value="Masukkan ke Stack"
onClick='Input_ke_Stack(textSimpan.value); textSimpan.value="";
TampilkanStack(mediaList);'>

?select name="mediaList" size=12>
?option>Tampilan 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>

MODUL III

RECORD


A. Landasan Teori

Record merupakan struktural data yang mengandung sekumpulan data atau fields yang berbeda jenis atau tipenya dan deklarasi Type record dapat dilakukan oleh user sendiri.


B. Praktek

Membuat Rekaman Objek


?html>
?head>
?title> Membuat Rekaman Objek ?/title>
?/head>
?body>
?script language="JavaScript">
?!--
var Record = new Array();
function Mahasiswa (npm, nama, prodi, jenjang) {
// Properti
this.npm = npm;
this.nama = nama;
this.prodi = prodi;
this.jenjang = jenjang;

// Metode

this.LihatRecordMahasiswa = LihatRecordMahasiswa;
}

function LihatRecordMahasiswa() {
document.write("?td>" + this.npm + "?/td>");
document.write("?td>" + this.nama + "?/td>");
document.write("?td>" + this.prodi + "?/td>");
document.write("?td>" + this.jenjang + "?/td>");
}

//mengisi data
Record[0] = new Mahasiswa ("43E001", "Dani", "TI", "SI");
Record[1] = new Mahasiswa ("43E001", "Doni", "TI", "SI");
Record[2] = new Mahasiswa ("43E001", "Dina", "TI", "SI");
Record[3] = new Mahasiswa ("43E001", "Dini", "TI", "SI");

//menampilkan data
document.write("?table border = '1'>");
document.write("?th>NPM?/th> ?th>Nama?/th>");
document.write("?th>Prodi?/th> ?th>Jenjang?/th> ?br>");

for (i=0; i ? Record.length; i++)
{
document.write("?tr>");
Record[i].LihatRecordMahasiswa();
document.write("?/tr>");
}
document.write("?/table> ?br>");

document.write("?table border = '1'>");
document.write("?th>NPM?/th> ?th>Nama?/th>");
document.write("?th>Prodi?/th> ?th>Jenjang?/th> ?br>");

for (i=0; i ? Record.length; i++)
{
document.write("?tr>");
Record[i].npm;
document.write("?/tr>");
}
document.write("?/table>");
//-->

?/script>
?/body>
?/html>


Program Entri Data Pegawai


?html>
?head>?title>Memanipulasi data pegawai?/title>
?script language = "javascript" type="text/javascript">
?!--
var DBPegawai = new Array();
function pegawai(Fields_NIP,
Fields_Nama,
Fields_Gaji_Per_Jam,
Fields_Jam_Kerja,
Fields_Gaji_Total)
{
this.NIP = Fields_NIP;
this.Nama = Fields_Nama;
this.Gaji_Jam = Fields_Gaji_Per_Jam;
this.Jam_Kerja= Fields_Gaji_Total;
}

function input pegawai()
{
var Nama,Gaji_Per_Jam,Jam_Kerja,Gaji;
while ( NIP = window.prompt("Ketikan NIP (Nomor Induk Karyawan)
\n\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 ="input Pegawai();">
?/body>
?/html>

Memanipulasi data pegawai






MODUL II

ARRAY


A. Landasan Teori

Array adalah sekumpuan data atau Struktur data yang memiliki tipe dsat yang sama dan diakses berdasarkan Indeks. Hampir disetiap bahasa pemrograman disediakan fasilitas untuk mendeklarasikan dan mengolah struktur data Array.

Jenis-jenis array berdasarkan sifatnya:

1. Array statis

2. Array dinamis

jenis-jenis Array berdasarkan dimensi ruangnya:

1. Array 1 Dimensi

2. Array 2 Dimensi

3. Array 3 Dimensi

B. Praktek

B.1 Pendeklarasian Array dalam javaScript

sintaks untuk array 1 dimensi

1. nama_array = new Array (elemen_1, s.d elemen_n)

2. nama_array = (elemen_1, s.d elemen_n)

B.2 Implementasi Dalam Program


?html>
?head>
?title>Belajar Array ?/title>
?/head>
?body>
?script language ="JavaScript">
?!--
var DATA_KU = new Array("Saya","Sedang","Senang");
for(i=0; i?3; i++)
{
document.write(DATA_KU[i] +"?BR>");
}
alert ("Selamat Belajar Struktur Data");
alert ("Semoga Memperoleh Ilmu yang Bermanfaat");
//-->
?/script>
?/body>
?/html>
======================================

?html>
?head>
?title> Parameter Array ?/title>
?/head>
?body>
?script language ="JavaScript">
?!--
var tempat = ([]);
var data = prompt("Ketik Jumlah Maksimum Array :");
for (m=1; m?=data; m++)
{
var bil = prompt("Masukkan Bilangan :")
tempat[m]=bil;
}
for (n=1; n?=data; n++)
{
document.write("Elemen Array ("+n+") = "+tempat[n]+"?BR>");
}
//-->
?/script>
?/body>
?/html>

MODUL I

TIPE DATA



A. Tipe data

Merupakan kelompok data yang membedakan satu denagn yang lainnya, Tipe data umum adalah sebagai berikut:

1. Numeric (Bilangan)

Dibagi dalam 2 Kelompok besar, yaitu Integer (Bilangan bulat) dan real (Bilangan pecahan). Untuk Bilangan Bulat dikenal dengan basis bilangan Biner, Oktal, Desimal dan Hexadesimal, sedangkan Bilangan pecahan biasanaya mengguanakan simbol Eksponen ("e"/"E"), contoh: 1.2 x 10³=1.2 + 03.

2. string (Gabunghan kata)

a. Dalam javaScript ditulis diantara tranda petik ganda

b. Beberapa karakter Khusus dalam JS:

1. \a: Membangkitkan suara (Speaker Komputer)

2. \b: Menggeser kursor ke kiri

3. \n: Pindah baris

3. Boolean (Logika)

Tipe data yang terdiri dari 2 kondisi, benar (True) dan salah (false).

4. Tipe data Bentukan

Tipe data yang berasal dari dari diturunkannya tipe data primitif (Bilangan, String dan Boolean contohnya adalah:

1. Array

2. Record

Untuk Memanipulasi data diperlukan Operator, yaitu:

1. Operator matematika: Penjumlahan (+), Pengurangan (-), Perkalian (*), Pembagian (/), Modulus (%)

2. Operator Binary digit: Dan (&), Atau (l), Atau (^), Negasi (~), Geser Kiri (<<) dan Geser kanan (>>)

3. Operator Pembanding: Sama dengan (==), Tidak Sama dengan (!=), Kurang dari (<), Lebih Besar dari (>), kurang dari atau sama dengan (<=) dan Lebih Besar dari atau sama dengan (>=).




Contoh Praktek:

1. Program Menambahkan 2 Bilangan


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


2. Program Konversi Antar Bilangan


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


3. Membuat Function Untuk Menambahkan Bilangan


?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 Datanya adalah = " + typeof(z));
//-->
?/script>
?/body>
?/html>

MODUL PRAKTEK

Tujuan Instruksional Umum:

Agar Mahasiswa dapat mengetahui bagaimana cara penyimpanan, penyusunan, pemrosesan dan pengaturan data di dalam media penyimpanan komputer, serta bagaimana mencari data yang telah direkam sehingga data tersebut dapat dipergunakan secara efisien.

Silabus materi:

  1. Tipe Data dan Manipulasinya
  2. Struktur Data Array
  3. Struktur Data Record (Rekaman) / Stack (Struktur)
  4. Struktur Data Stack (Tumpukan)
  5. Struktur Data Queue (Antrian) dan Struktur data Queue (Antrian Berprioritas)
  6. Struktur Data List (Daftar/Susunan) / Link List
  7. Struktur Data Graph (Susunan Grafis)
  8. Struktur Data Tree (Susunan Pohon)
  9. Sort (Pengurutan data)
  10. Searching (Pencarian data)

Dalam Modul ini penulis menggunakan Java Script (Bukan java), yaitu suatu script yang dikembangkan dari C++ dan jalan pada sisi Client apabila dikaitkan dengan pengembangan WEB dan selanjutnya dapat dipadukan dengan XMLHttpRequest untuk berinteraksi dengan server secara Asyncronous (bermain dibelakang layar) yang lebih dikenal dengan AJAX (Asyncronous javaScript And XML).