Mengelompokan Program yang ada di linux.
Pengelompokan :
ï?? Office
ï?¶ OpenOffice.
OpenOffice.org adalah seperangkat lunak perkantoran yang didalamnya terdapat fungsi pengolah kata (word processing), pengolah lembar (spreadsheet), pembuatan gambar (drawing), pembuatan presentasi (presentation), pengolahan data, web editor, database, dan formula editing.
Komponen dalam OpenOffice.org adalah :
1. OpenOffice.org Writer, adalah program perkantoran untuk mengolah kata dan sama seperti Microsoft Word pada Microsoft Office. Berguna untuk membuat dokumen tulisan, misal surat, buku, laporan, dll.
2. OpenOffice.org Calc, adalah aplikasi perkantoran berupa spreadsheet yang lengkap, sama seperti Microsoft Excell pada Microsoft Office.
3. OpenOffice.org Impress, adalah program untuk membuat presentasi sebagaimana Microsoft PoworPoint pada Microsoft Office.
4. OpenOffice.org Draw, adalah program untuk menggambar dan dilengkapi dengan tool dalam membuat 3D, membuat efek kewarnaan, dll. Program ini hampir sama dengan Microsoft Visio pada Microsoft Office.
5. OpenOffice.org Math, adalah program untuk menulis formula (rumus matematika), seperti halnya Microsoft Equation Editor pada Microsoft Office.
6. OpenOffice.org Base, adalah aplikasi untuk membuat database, seperti halnya Microsoft Access pada Microsoft Office.
ï?¶ StraOffice.
Sepanjang sejarahnya, StarOffice belum pernah menjadi open source dan tidak akan pernah menjadi open source. Malahan, versi 6 dari StarOffice menjadi berlisensi komersial biasa seperti halnya MS Office atau Corel WordPerfect Office Versi open source StarOffice memang ada, disebut OpenOffice, yang analog dengan Mozilla terhadap Netscape 6. Jadi, penyebutan StarOffice sebagai aplikasi open source cukup menyesatkan, karena yang open source itu adalah OpenOffice, variannya, dan juga beberapa aplikasi office lain di Linux (Koffice, Siag Office).
ï?¶ Koffice.
Aplikasi KOffice ini merupakan produk open source, yang terdiri dari KWord word processor, KSpread spreadsheet calculator, KPresenter presentation manager, KPlato project management software, Karbon vector graphics editor dan Krita raster graphics editor. Sedangkan untuk aplikasi pembuatan chart dapat dibuat dalam Kchart, dimana chart dapat dibuat sebagai plugin untuk dipasang di seluruh aplikasi KOffice. Hal yang menarik dari KOffice ini bahwa semua aplikasi di dalamnya terintegrasi dengan baik satu sama lain. â??Sebagai contoh, Kword dapat ditempeli dengan grafis bitmap, di Krita dapat ditempeli grafis vector dan Karbon dapat ditempeli chart.
ï?¶ GNOME Office.
GNOME Office merupakan paket aplikasi perkantoran berbasis GTK dan desktop GNOME. Paket aplikasi perkantoran yang satu ini sangat ringan digunakan dibandingkan dengan OpenOffice.. GNOME Office terdiri dari :
â?¢ Abiword Word Processor
â?¢ Gnumeric Spreadsheet
â?¢ Planner Project Management
â?¢ Dia Diagram
â?¢ GIMP Image Editor
â?¢ Inkscape SVG Vector Ilustrator
ï?? Pemrograman.
ï?¶ Gambas.
Dalam pengembangan perangkat lunak, Gambas adalah dialek bahasa pemrograman BASIC yang berorientasi objek, disertai dengan lingkungan pengembangan terintegrasi (Integrated Development Environment). Gambas berjalan di sistem operasi Linux dan sistem operasi Unix-like lainnya. Gambas ditujukan bagi pengguna Visual Basic yang bermigrasi ke Linux.
'Gambas' adalah singkatan berulang dari Gambas Almost Means Basic. Gambas juga berarti 'udang' dalam bahasa Spanyol, sesuai dengan logo yang digunakan Gambas, yakni seekor udang.
Gambas yang dikembangkan di Paris oleh Benoît Minisini sejak 1999, merupakan perangkat lunak bebas yang dirilis di bawah lisensi GNU General Public License.
ï?¶ Php.
PHP merupakan script yang menyatu dengan HTML dan berada pada server (server side HTML embedded scripting). Dengan PHP ini Anda dapat membuat beragam aplikasi berbasis web, mulai dari halaman web yang sederhana sampai aplikasi komplek yang membutuhkan koneksi ke database.
Sampai saat ini telah banyak database yang telah didukung oleh PHP dan kemungkinan akan terus bertambah.
ï?¶ Java.
Java diluncurkan pertama sekali pada tahun 1995 sebagai bahasa pemrograman umum (general purpose programming language). Dengan visi "write once run anywhere", para perancang Java memulai dengan menanamkan visi mereka ke dalam Java untuk membuat piranti-piranti yang ada di rumah (small embedded customer device) seperti TV, telepon, radio, dan sebagainya supaya dapat berkomunikasi satu sama lain.
Langkah pertama yang diambil oleh Sun Microsystem adalah dengan membuat JVM (Java Virtual Machine) yang kemudian diimplementasikan dalam bentuk JRE (Java Runtime Environment). JVM merupakan lingkungan tempat eksekusi program Java berlangsung dimana para objek saling berinteraksi satu dengan yang lainnya. Dengan konsep Virtual Machine membuat Java mempunyai kemampuan penanganan memori yang lebih baik, keamanan yang lebih tinggi serta portabilitas yang besar.
ï?? Sound dan Multimedia.
ï?¶ Aplikasi Multimedia.
Hal ini bisa dilakukan dengan perintah cdrecord dari command line maupun dari GUI dengan program Nautilus browser,Gnome Baker, x-cd-Roast, maupun Sepertine.
ï?¶ Aplikasi Musik.
Kita bisa sekedar meminta musik, ,merekam suara, atau mengganti format file musik dengan program seperti alsamixer, sound Jouricer, Banshee, xmms, dan Rhythmbox.
ï?¶ Memutar Film.
Karena isu lisensi dan paten, secara otomatis software untuk memutar film tidak ada, tetapi kita mendownload/copy programnya sendiri dan menginstalnya.
ï?¶ Menonton Tv.
Hal ini bisa kita lakukan dengan menggunakan program tv time.
ï?? Internet.
ï?¶ Mozilla.
Produk-produk dari Mozilla Foundationâ??Mozilla Suite (biasa disebut Mozilla saja), browser saudaranya â??Firefox, dan turunannya â??Netscapeâ??termasuk browser alternatif yang digemari para peselancar web. Pemblok popup, keamanan serta tabbed browsing merupakan dua daya tarik keluarga browser ini di sistem operasi Windows. Pada Linux, Mozilla merupakan browser utama, selain Konqueror. Setting juga bisa dilakukan dengan menggunakan file konfigurasi. Pengguna Linux tentu tidak akan asing lagi pada cara ini, karena banyak program di Linux disetel dengan cara ini. File konfigurasi Mozilla/Firefox bernama user.js. File ini harus dalam format plain text. Anda tidak akan menemukan file ini pada instalasi default, sehingga Anda harus membuat file ini terlebih dahulu.
Kelebihan cara kedua ini adalah setelan browser Anda dengan mudah dapat dipertahankan meskipun Anda mengupgrade browser Mozilla/Firefox. Caranya cukup dengan mem-backup file user.js.
Selasa, 30 Juni 2009
Selasa, 23 Juni 2009
Pengurutan (Sort)
<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=30 value="5,6,8,5,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>
<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=30 value="5,6,8,5,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>
Minggu, 21 Juni 2009
Graf / Graph
html>
?head>
?title>Dijkstra Algoritms ?/title>
?script>
?!--
alert("Taet Dijkstra");
//-->
?/script>
?/head>
?body>
?script language = "javascript">
var NilaiAcuan =10000
var TakTerdefinisi =-1
var Nama Verteks =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 =new Array(JumlahVerteks);
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 Lintangan = NamaVerteks [i];
var Verteks = i;
while (Verteks>0)
{
Verteks = Sebelum[Verteks];
if (Verteks>=0) Lintasan = NamaVereteks [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>
?head>
?title>Dijkstra Algoritms ?/title>
?script>
?!--
alert("Taet Dijkstra");
//-->
?/script>
?/head>
?body>
?script language = "javascript">
var NilaiAcuan =10000
var TakTerdefinisi =-1
var Nama Verteks =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 =new Array(JumlahVerteks);
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 Lintangan = NamaVerteks [i];
var Verteks = i;
while (Verteks>0)
{
Verteks = Sebelum[Verteks];
if (Verteks>=0) Lintasan = NamaVereteks [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>
Selasa, 09 Juni 2009
Tugas DoublyLinkedList
<html>
<head>
<title>Struktur Data 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("Tekhnik Informatika");
List.Tambah("Tekhnik 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>
<head>
<title>Struktur Data 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("Tekhnik Informatika");
List.Tambah("Tekhnik 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>
Senin, 08 Juni 2009
Blog Penulisan Kode LinkedList
?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>
?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>
Rabu, 13 Mei 2009
Struktur Data Queue2
<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 (yang_keluar_antrian == undefined)
return "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 bgcolor = "lavender">
<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>
<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 (yang_keluar_antrian == undefined)
return "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 bgcolor = "lavender">
<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>
Struktur Data Queue1
<html>
<head>
<title>Program Queue dengan unshift javaScript?/title>
<script language="JavaScript">
function DataQueue()
{
var queue = [];
queue.unshift(1);
queue.unshift(2);
var i = queue.shift();
document.write(i + "?br />");
queue.unshift(3);
queue.unshift(4);
var i = queue.shift();
document.write(i + "?br />");
}
</script>
</head>
<body>
<form name="FormStrukturData">
<input name="btnQueue" value="Queue" type="button"
onClick="DataQueue();" />
</form>
</body>
</html>
<head>
<title>Program Queue dengan unshift javaScript?/title>
<script language="JavaScript">
function DataQueue()
{
var queue = [];
queue.unshift(1);
queue.unshift(2);
var i = queue.shift();
document.write(i + "?br />");
queue.unshift(3);
queue.unshift(4);
var i = queue.shift();
document.write(i + "?br />");
}
</script>
</head>
<body>
<form name="FormStrukturData">
<input name="btnQueue" value="Queue" type="button"
onClick="DataQueue();" />
</form>
</body>
</html>
Tampilan Nama_Bulan
<html>
<head>
<title>Menampilkan Nama Bulan</title>
</head>
<body>
<script language="javascript">
<!--
var Bulan = new Array("","Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des")
var Angka = parseInt(prompt("Masukan Angka"));
document.write(Bulan[Angka]);
//-->
</script>
</body>
</html>
<head>
<title>Menampilkan Nama Bulan</title>
</head>
<body>
<script language="javascript">
<!--
var Bulan = new Array("","Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des")
var Angka = parseInt(prompt("Masukan Angka"));
document.write(Bulan[Angka]);
//-->
</script>
</body>
</html>
Stack Latihan2
<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>
<input type=button value="Masukkan 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>
<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>
<input type=button value="Masukkan 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>
Stack Latihan 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>
<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>
Rabu, 06 Mei 2009
Modul 2 Array
<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]);
}
alert("Selamat Belajar Struktur Data");
alert("Semoga Memperoleh Ilmu yang Bermanfaat");
//-->
</script>
</body>
</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]);
}
alert("Selamat Belajar Struktur Data");
alert("Semoga Memperoleh Ilmu yang Bermanfaat");
//-->
</script>
</body>
</html>
Senin, 13 April 2009
Modul Struktur Data Pertama
STRUKTUR DATA
Silabus Materi :
1. Tipe Data dan Manipulasinya
2. Struktur Data Array (Larik)
3. Struktur Data Record (Rekaman) / Struct (Struktur)
4. Struktur Data Stack (Tumpukan)
5. Struktur Data Queue (Antrian) dan Struktur Data Dequeue (Antrian Berprioritas)
6. Struktur Data List (Daftar / Susunan)
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 JavaScript, yaitu bahasa yang berbentuk kumpulan skrip yang pada fungsinya berjalan pada suatu dokumen HTML, sepanjang sejarah internet bahasa ini adalah bahasa skrip pertama untuk web. Bahasa ini adalah bahasa pemrograman untuk memberikan kemampuan tambahan terhadap bahasa HTML dengan mengijinkan pengeksekusian perintah-perintah di sisi user, yang artinya di sisi browser bukan di sisi server web.
Pengertian
Struktur data adalah cara menyimpan atau merepresentasikan data di dalam computer agar bisa dipakai secara efisien. Sedangkan data adalah representasi dari fakta dunia nyata. Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau symbol.
TIPE DATA
Yaitu kelompok data yang membedakan satu dengan yang lainnya. Tipe data dapat dikelompokan menjadi dua macam, yaitu :
1. Tipe dasar, merupakan tipe yang dapat langsung dipakai, yaitu :
a. Bilangan Logika atau Boolean,
b. Bilangan Bulat,
c. Bilangan Riil,
d. Karakter, dan
e. String.
2. Tipe bentukan, merupakan tipe yang didefinisikan sendiri oleh pemrogram. Contohnya :
a. Array, dan
b. Record.
Untuk memanipulasi data diperlukan operator, yaitu :
1. Operator Matematika : Penjumlahan (+), Perkalian (*), Pembagian (/), Modulus (%).
2. Operator Binary Digir : Dan (&), Atau (I), Atau (^), Negasi (-), Geser kekiri (<<), dan Geser kekanan (>>).
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-contoh program :
1. Program Menambahkan 2 Bilangan :
<html>
<head>
<title>Type Bilangan</title>
</head>
<body bgcolor="aqua">
<font color="blue" face="comic sans ms">
<script language = "javascript">
<!--
var a = 15;
b = 14;
tambah = a+b;
kali = a*b;
document.write ("A = "+a+" ");
document.write ("<br>");
document.write ("B = "+b+" ");
document.write ("<br>");
document.write ("<hr>");
document.write ("Penambahan (" +a+ " + " +b+ ") = " + tambah);
document.write ("<br>");
document.write ("Perkalian (" +a+ " x " +b+ ") = " + kali);
document.write ("<br>");
//-->
</script>
</font>
</body>
</html>
2. Program Konversi Antar Sistem Bilangan
<html>
<head>
<title>konversi Antar Sistem Bilangan</title>
</head>
<body bgcolor="aqua">
<font color="green" face="comic sans ms">
<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>
</font>
</body>
</html>
3. Membuat Function Untuk Menambahkan Bilangan
<html>
<head>
<title>Membuat fungsi Matematika Dengan Javascript</title>
</head>
<body bgcolor="lavender">
<font color="purple" face="comic sans ms">
<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>
</font>
</body>
</html>
ARRAY
Array adalah sekumpulan data atau struktur data yang mempunyai tipe data yang sama dan diakses berdasarkan indeks. Hampir di setiap bahasa pemrograman disediakan fasilitas untuk mendeklarasikan dan mengolah struktur Data Array.
Jenis-jenis array berdasarkan sifatnya :
1. Array Statis, dan
2. Array Dinamis.
Jenis-jenis array berdasarkan dimensi ruang-nya :
1. Array 1 Dimensi,
2. Array 2 Dimensi, dan
3. Array 3 Dimensi.
Contoh program :
<HTML>
<HEAD>
<TITLE>Belajar Array</TITLE>
</HEAD>
<BODY Bgcolor = "blue sky">
<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 Bgcolor = "blue sky">
<SCRIPT LANGUAGE = "JavaScript">
<!--
var tempat = [];
var data = prompt ("Ketik Jumlah Maksimum Array :");
for (m=1; m<data; m++)
{
var bil = prompt ("Masukan Bilangan :");
tempat [m]= bil;
}
for (n=1; n<=data; n++)
{
document.write("Elemen Array ("+n+") =" +tempat[n] + "<BR>");
}
//-->
</SCRIPT>
</BODY>
</HTML>
Program untuk menghitung dan menampilkan deret Fibonacci :
<html>
<head>
<script>
<!--
function fibonacci (n) {
var i;
var array_fib = new Array();
array_fib.push(0);
array_fib.push(1);
for (i=0; i<n; i++) {
array_fib.push(array_fib[0] + array_fib[1]);
array_fib.shift();
}
return array_fib[0];
}
for(i=0; i<=20; i++)
document.write("fibonacci (" + i + ") = " + fibonacci(i) + "<br>");
//-->
</script>
</head>
<body bgcolor="aqua">
</body>
</html>
RECORD
Record merupakan tipe bentukan yang disusun oleh satu atau lebih field. Tiap fielc menyimpan data dari tipe dasar tertentu atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya. Nama record ditentukan oleh pemrogram. Karena strukturnya yang disusun oleh field-field, maka record dinamakan juga tipe terstruktur.
Contoh program :
<html>
<head><title>Membuat Rekaman Objek</title></head>
<body bgcolor="lavender">
<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", "S1");
Record[1] = new Mahasiswa("43E001", "Doni", "TI", "S1");
Record[2] = new Mahasiswa("43E001", "Dina", "TI", "S1");
Record[3] = new Mahasiswa("43E001", "Dini", "TI", "S1");
//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>
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_Per_Jam = Fields_Gaji_Per_Jam;
this.Jam_Kerja = Fields_Jam_Kerja;
this.Gaji_Total = Fields_Gaji_Total;
}
function inputPegawai()
{
var Nama, Gaji_Per_Jam, Jam_Kerja, Gaji ;
while ( NIP = window.prompt ("Ketikan NIP (Nomor Induk Pegawai)\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_Per_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>
Program Kalender dan Jam Digital :
<script>
setCal()
function getTime() {
// initialize time-related variables with current time settings
var now = new Date()
var hour = now.getHours()
var minute = now.getMinutes()
now = null
var ampm = ""
// validate hour values and set value of ampm
if (hour >= 12) {
hour -= 12
ampm = "PM"
} else
ampm = "AM"
hour = (hour == 0) ? 12 : hour
// add zero digit to a one digit minute
if (minute < 10)
minute = "0" + minute // do not parse this number!
// return time string
return hour + ":" + minute + " " + ampm
}
function leapYear(year) {
if (year % 4 == 0) // basic rule
return true // is leap year
/* else */ // else not needed when statement is "return"
return false // is not leap year
}
function getDays(month, year) {
// create array to hold number of days in each month
var ar = new Array(12)
ar[0] = 31 // January
ar[1] = (leapYear(year)) ? 29 : 28 // February
ar[2] = 31 // March
ar[3] = 30 // April
ar[4] = 31 // May
ar[5] = 30 // June
ar[6] = 31 // July
ar[7] = 31 // August
ar[8] = 30 // September
ar[9] = 31 // October
ar[10] = 30 // November
ar[11] = 31 // December
// return number of days in the specified month (parameter)
return ar[month]
}
function getMonthName(month) {
// create array to hold name of each month
var ar = new Array(12)
ar[0] = "January"
ar[1] = "February"
ar[2] = "March"
ar[3] = "April"
ar[4] = "May"
ar[5] = "June"
ar[6] = "July"
ar[7] = "August"
ar[8] = "September"
ar[9] = "October"
ar[10] = "November"
ar[11] = "December"
// return name of specified month (parameter)
return ar[month]
}
function setCal() {
// standard time attributes
var now = new Date()
var year = now.getYear()
if (year < 1000)
year+=1900
var month = now.getMonth()
var monthName = getMonthName(month)
var date = now.getDate()
now = null
// create instance of first day of month, and extract the day on which it occurs
var firstDayInstance = new Date(year, month, 1)
var firstDay = firstDayInstance.getDay()
firstDayInstance = null
// number of days in current month
var days = getDays(month, year)
// call function to draw calendar
drawCal(firstDay + 1, days, date, monthName, year)
}
function drawCal(firstDay, lastDate, date, monthName, year) {
// constant table settings
var headerHeight = 50 // height of the table's header cell
var border = 2 // 3D height of table's border
var cellspacing = 4 // width of table's border
var headerColor = "midnightblue" // color of table's header
var headerSize = "+3" // size of tables header font
var colWidth = 60 // width of columns in table
var dayCellHeight = 25 // height of cells containing days of the week
var dayColor = "darkblue" // color of font representing week days
var cellHeight = 40 // height of cells representing dates in the calendar
var todayColor = "red" // color specifying today's date in the calendar
var timeColor = "purple" // color of font representing current time
// create basic table structure
var text = "" // initialize accumulative variable to empty string
text += '<CENTER>'
text += '<TABLE BORDER=' + border + ' CELLSPACING=' + cellspacing + '>' // table settings
text += '<TH COLSPAN=7 HEIGHT=' + headerHeight + '>' // create table header cell
text += '<FONT COLOR="' + headerColor + '" SIZE=' + headerSize + '>' // set font for table header
text += monthName + ' ' + year
text += '</FONT>' // close table header's font settings
text += '</TH>' // close header cell
// variables to hold constant settings
var openCol = '<TD WIDTH=' + colWidth + ' HEIGHT=' + dayCellHeight + '>'
openCol += '<FONT COLOR="' + dayColor + '">'
var closeCol = '</FONT></TD>'
// create array of abbreviated day names
var weekDay = new Array(7)
weekDay[0] = "Sun"
weekDay[1] = "Mon"
weekDay[2] = "Tues"
weekDay[3] = "Wed"
weekDay[4] = "Thu"
weekDay[5] = "Fri"
weekDay[6] = "Sat"
// create first row of table to set column width and specify week day
text += '<TR ALIGN="center" VALIGN="center">'
for (var dayNum = 0; dayNum < 7; ++dayNum) {
text += openCol + weekDay[dayNum] + closeCol
}
text += '</TR>'
// declaration and initialization of two variables to help with tables
var digit = 1
var curCell = 1
for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
text += '<TR ALIGN="right" VALIGN="top">'
for (var col = 1; col <= 7; ++col) {
if (digit > lastDate)
break
if (curCell < firstDay) {
text += '<TD></TD>';
curCell++
} else {
if (digit == date) { // current cell represent today's date
text += '<TD HEIGHT=' + cellHeight + '>'
text += '<FONT COLOR="' + todayColor + '">'
text += digit
text += '</FONT><BR>'
text += '<FONT COLOR="' + timeColor + '" SIZE=2>'
text += '<CENTER>' + getTime() + '</CENTER>'
text += '</FONT>'
text += '</TD>'
} else
text += '<TD HEIGHT=' + cellHeight + '>' + digit + '</TD>'
digit++
}
}
text += '</TR>'
}
// close all basic table tags
text += '</TABLE>'
text += '</CENTER>'
// print accumulative HTML string
document.write(text)
}
</script>
<p align="center"><font face="arial" size="-2">This free script provided by</font><br>
<font face="arial, helvetica" size="-2"><a href="http://javascriptkit.com">JavaScript
Kit</a></font></p>
Silabus Materi :
1. Tipe Data dan Manipulasinya
2. Struktur Data Array (Larik)
3. Struktur Data Record (Rekaman) / Struct (Struktur)
4. Struktur Data Stack (Tumpukan)
5. Struktur Data Queue (Antrian) dan Struktur Data Dequeue (Antrian Berprioritas)
6. Struktur Data List (Daftar / Susunan)
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 JavaScript, yaitu bahasa yang berbentuk kumpulan skrip yang pada fungsinya berjalan pada suatu dokumen HTML, sepanjang sejarah internet bahasa ini adalah bahasa skrip pertama untuk web. Bahasa ini adalah bahasa pemrograman untuk memberikan kemampuan tambahan terhadap bahasa HTML dengan mengijinkan pengeksekusian perintah-perintah di sisi user, yang artinya di sisi browser bukan di sisi server web.
Pengertian
Struktur data adalah cara menyimpan atau merepresentasikan data di dalam computer agar bisa dipakai secara efisien. Sedangkan data adalah representasi dari fakta dunia nyata. Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau symbol.
TIPE DATA
Yaitu kelompok data yang membedakan satu dengan yang lainnya. Tipe data dapat dikelompokan menjadi dua macam, yaitu :
1. Tipe dasar, merupakan tipe yang dapat langsung dipakai, yaitu :
a. Bilangan Logika atau Boolean,
b. Bilangan Bulat,
c. Bilangan Riil,
d. Karakter, dan
e. String.
2. Tipe bentukan, merupakan tipe yang didefinisikan sendiri oleh pemrogram. Contohnya :
a. Array, dan
b. Record.
Untuk memanipulasi data diperlukan operator, yaitu :
1. Operator Matematika : Penjumlahan (+), Perkalian (*), Pembagian (/), Modulus (%).
2. Operator Binary Digir : Dan (&), Atau (I), Atau (^), Negasi (-), Geser kekiri (<<), dan Geser kekanan (>>).
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-contoh program :
1. Program Menambahkan 2 Bilangan :
<html>
<head>
<title>Type Bilangan</title>
</head>
<body bgcolor="aqua">
<font color="blue" face="comic sans ms">
<script language = "javascript">
<!--
var a = 15;
b = 14;
tambah = a+b;
kali = a*b;
document.write ("A = "+a+" ");
document.write ("<br>");
document.write ("B = "+b+" ");
document.write ("<br>");
document.write ("<hr>");
document.write ("Penambahan (" +a+ " + " +b+ ") = " + tambah);
document.write ("<br>");
document.write ("Perkalian (" +a+ " x " +b+ ") = " + kali);
document.write ("<br>");
//-->
</script>
</font>
</body>
</html>
2. Program Konversi Antar Sistem Bilangan
<html>
<head>
<title>konversi Antar Sistem Bilangan</title>
</head>
<body bgcolor="aqua">
<font color="green" face="comic sans ms">
<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>
</font>
</body>
</html>
3. Membuat Function Untuk Menambahkan Bilangan
<html>
<head>
<title>Membuat fungsi Matematika Dengan Javascript</title>
</head>
<body bgcolor="lavender">
<font color="purple" face="comic sans ms">
<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>
</font>
</body>
</html>
ARRAY
Array adalah sekumpulan data atau struktur data yang mempunyai tipe data yang sama dan diakses berdasarkan indeks. Hampir di setiap bahasa pemrograman disediakan fasilitas untuk mendeklarasikan dan mengolah struktur Data Array.
Jenis-jenis array berdasarkan sifatnya :
1. Array Statis, dan
2. Array Dinamis.
Jenis-jenis array berdasarkan dimensi ruang-nya :
1. Array 1 Dimensi,
2. Array 2 Dimensi, dan
3. Array 3 Dimensi.
Contoh program :
<HTML>
<HEAD>
<TITLE>Belajar Array</TITLE>
</HEAD>
<BODY Bgcolor = "blue sky">
<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 Bgcolor = "blue sky">
<SCRIPT LANGUAGE = "JavaScript">
<!--
var tempat = [];
var data = prompt ("Ketik Jumlah Maksimum Array :");
for (m=1; m<data; m++)
{
var bil = prompt ("Masukan Bilangan :");
tempat [m]= bil;
}
for (n=1; n<=data; n++)
{
document.write("Elemen Array ("+n+") =" +tempat[n] + "<BR>");
}
//-->
</SCRIPT>
</BODY>
</HTML>
Program untuk menghitung dan menampilkan deret Fibonacci :
<html>
<head>
<script>
<!--
function fibonacci (n) {
var i;
var array_fib = new Array();
array_fib.push(0);
array_fib.push(1);
for (i=0; i<n; i++) {
array_fib.push(array_fib[0] + array_fib[1]);
array_fib.shift();
}
return array_fib[0];
}
for(i=0; i<=20; i++)
document.write("fibonacci (" + i + ") = " + fibonacci(i) + "<br>");
//-->
</script>
</head>
<body bgcolor="aqua">
</body>
</html>
RECORD
Record merupakan tipe bentukan yang disusun oleh satu atau lebih field. Tiap fielc menyimpan data dari tipe dasar tertentu atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya. Nama record ditentukan oleh pemrogram. Karena strukturnya yang disusun oleh field-field, maka record dinamakan juga tipe terstruktur.
Contoh program :
<html>
<head><title>Membuat Rekaman Objek</title></head>
<body bgcolor="lavender">
<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", "S1");
Record[1] = new Mahasiswa("43E001", "Doni", "TI", "S1");
Record[2] = new Mahasiswa("43E001", "Dina", "TI", "S1");
Record[3] = new Mahasiswa("43E001", "Dini", "TI", "S1");
//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>
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_Per_Jam = Fields_Gaji_Per_Jam;
this.Jam_Kerja = Fields_Jam_Kerja;
this.Gaji_Total = Fields_Gaji_Total;
}
function inputPegawai()
{
var Nama, Gaji_Per_Jam, Jam_Kerja, Gaji ;
while ( NIP = window.prompt ("Ketikan NIP (Nomor Induk Pegawai)\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_Per_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>
Program Kalender dan Jam Digital :
<script>
setCal()
function getTime() {
// initialize time-related variables with current time settings
var now = new Date()
var hour = now.getHours()
var minute = now.getMinutes()
now = null
var ampm = ""
// validate hour values and set value of ampm
if (hour >= 12) {
hour -= 12
ampm = "PM"
} else
ampm = "AM"
hour = (hour == 0) ? 12 : hour
// add zero digit to a one digit minute
if (minute < 10)
minute = "0" + minute // do not parse this number!
// return time string
return hour + ":" + minute + " " + ampm
}
function leapYear(year) {
if (year % 4 == 0) // basic rule
return true // is leap year
/* else */ // else not needed when statement is "return"
return false // is not leap year
}
function getDays(month, year) {
// create array to hold number of days in each month
var ar = new Array(12)
ar[0] = 31 // January
ar[1] = (leapYear(year)) ? 29 : 28 // February
ar[2] = 31 // March
ar[3] = 30 // April
ar[4] = 31 // May
ar[5] = 30 // June
ar[6] = 31 // July
ar[7] = 31 // August
ar[8] = 30 // September
ar[9] = 31 // October
ar[10] = 30 // November
ar[11] = 31 // December
// return number of days in the specified month (parameter)
return ar[month]
}
function getMonthName(month) {
// create array to hold name of each month
var ar = new Array(12)
ar[0] = "January"
ar[1] = "February"
ar[2] = "March"
ar[3] = "April"
ar[4] = "May"
ar[5] = "June"
ar[6] = "July"
ar[7] = "August"
ar[8] = "September"
ar[9] = "October"
ar[10] = "November"
ar[11] = "December"
// return name of specified month (parameter)
return ar[month]
}
function setCal() {
// standard time attributes
var now = new Date()
var year = now.getYear()
if (year < 1000)
year+=1900
var month = now.getMonth()
var monthName = getMonthName(month)
var date = now.getDate()
now = null
// create instance of first day of month, and extract the day on which it occurs
var firstDayInstance = new Date(year, month, 1)
var firstDay = firstDayInstance.getDay()
firstDayInstance = null
// number of days in current month
var days = getDays(month, year)
// call function to draw calendar
drawCal(firstDay + 1, days, date, monthName, year)
}
function drawCal(firstDay, lastDate, date, monthName, year) {
// constant table settings
var headerHeight = 50 // height of the table's header cell
var border = 2 // 3D height of table's border
var cellspacing = 4 // width of table's border
var headerColor = "midnightblue" // color of table's header
var headerSize = "+3" // size of tables header font
var colWidth = 60 // width of columns in table
var dayCellHeight = 25 // height of cells containing days of the week
var dayColor = "darkblue" // color of font representing week days
var cellHeight = 40 // height of cells representing dates in the calendar
var todayColor = "red" // color specifying today's date in the calendar
var timeColor = "purple" // color of font representing current time
// create basic table structure
var text = "" // initialize accumulative variable to empty string
text += '<CENTER>'
text += '<TABLE BORDER=' + border + ' CELLSPACING=' + cellspacing + '>' // table settings
text += '<TH COLSPAN=7 HEIGHT=' + headerHeight + '>' // create table header cell
text += '<FONT COLOR="' + headerColor + '" SIZE=' + headerSize + '>' // set font for table header
text += monthName + ' ' + year
text += '</FONT>' // close table header's font settings
text += '</TH>' // close header cell
// variables to hold constant settings
var openCol = '<TD WIDTH=' + colWidth + ' HEIGHT=' + dayCellHeight + '>'
openCol += '<FONT COLOR="' + dayColor + '">'
var closeCol = '</FONT></TD>'
// create array of abbreviated day names
var weekDay = new Array(7)
weekDay[0] = "Sun"
weekDay[1] = "Mon"
weekDay[2] = "Tues"
weekDay[3] = "Wed"
weekDay[4] = "Thu"
weekDay[5] = "Fri"
weekDay[6] = "Sat"
// create first row of table to set column width and specify week day
text += '<TR ALIGN="center" VALIGN="center">'
for (var dayNum = 0; dayNum < 7; ++dayNum) {
text += openCol + weekDay[dayNum] + closeCol
}
text += '</TR>'
// declaration and initialization of two variables to help with tables
var digit = 1
var curCell = 1
for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
text += '<TR ALIGN="right" VALIGN="top">'
for (var col = 1; col <= 7; ++col) {
if (digit > lastDate)
break
if (curCell < firstDay) {
text += '<TD></TD>';
curCell++
} else {
if (digit == date) { // current cell represent today's date
text += '<TD HEIGHT=' + cellHeight + '>'
text += '<FONT COLOR="' + todayColor + '">'
text += digit
text += '</FONT><BR>'
text += '<FONT COLOR="' + timeColor + '" SIZE=2>'
text += '<CENTER>' + getTime() + '</CENTER>'
text += '</FONT>'
text += '</TD>'
} else
text += '<TD HEIGHT=' + cellHeight + '>' + digit + '</TD>'
digit++
}
}
text += '</TR>'
}
// close all basic table tags
text += '</TABLE>'
text += '</CENTER>'
// print accumulative HTML string
document.write(text)
}
</script>
<p align="center"><font face="arial" size="-2">This free script provided by</font><br>
<font face="arial, helvetica" size="-2"><a href="http://javascriptkit.com">JavaScript
Kit</a></font></p>
Selasa, 07 April 2009
Tugas 1
<script>
setCal()
function getTime() {
// initialize time-related variables with current time settings
var now = new Date()
var hour = now.getHours()
var minute = now.getMinutes()
now = null
var ampm = ""
// validate hour values and set value of ampm
if (hour >= 12) {
hour -= 12
ampm = "PM"
} else
ampm = "AM"
hour = (hour == 0) ? 12 : hour
// add zero digit to a one digit minute
if (minute < 10)
minute = "0" + minute // do not parse this number!
// return time string
return hour + ":" + minute + " " + ampm
}
function leapYear(year) {
if (year % 4 == 0) // basic rule
return true // is leap year
/* else */ // else not needed when statement is "return"
return false // is not leap year
}
function getDays(month, year) {
// create array to hold number of days in each month
var ar = new Array(12)
ar[0] = 31 // January
ar[1] = (leapYear(year)) ? 29 : 28 // February
ar[2] = 31 // March
ar[3] = 30 // April
ar[4] = 31 // May
ar[5] = 30 // June
ar[6] = 31 // July
ar[7] = 31 // August
ar[8] = 30 // September
ar[9] = 31 // October
ar[10] = 30 // November
ar[11] = 31 // December
// return number of days in the specified month (parameter)
return ar[month]
}
function getMonthName(month) {
// create array to hold name of each month
var ar = new Array(12)
ar[0] = "January"
ar[1] = "February"
ar[2] = "March"
ar[3] = "April"
ar[4] = "May"
ar[5] = "June"
ar[6] = "July"
ar[7] = "August"
ar[8] = "September"
ar[9] = "October"
ar[10] = "November"
ar[11] = "December"
// return name of specified month (parameter)
return ar[month]
}
function setCal() {
// standard time attributes
var now = new Date()
var year = now.getYear()
if (year < 1000)
year+=1900
var month = now.getMonth()
var monthName = getMonthName(month)
var date = now.getDate()
now = null
// create instance of first day of month, and extract the day on which it occurs
var firstDayInstance = new Date(year, month, 1)
var firstDay = firstDayInstance.getDay()
firstDayInstance = null
// number of days in current month
var days = getDays(month, year)
// call function to draw calendar
drawCal(firstDay + 1, days, date, monthName, year)
}
function drawCal(firstDay, lastDate, date, monthName, year) {
// constant table settings
var headerHeight = 50 // height of the table's header cell
var border = 2 // 3D height of table's border
var cellspacing = 4 // width of table's border
var headerColor = "midnightblue" // color of table's header
var headerSize = "+3" // size of tables header font
var colWidth = 60 // width of columns in table
var dayCellHeight = 25 // height of cells containing days of the week
var dayColor = "darkblue" // color of font representing week days
var cellHeight = 40 // height of cells representing dates in the calendar
var todayColor = "red" // color specifying today's date in the calendar
var timeColor = "purple" // color of font representing current time
// create basic table structure
var text = "" // initialize accumulative variable to empty string
text += '<CENTER>'
text += '<TABLE BORDER=' + border + ' CELLSPACING=' + cellspacing + '>' // table settings
text += '<TH COLSPAN=7 HEIGHT=' + headerHeight + '>' // create table header cell
text += '<FONT COLOR="' + headerColor + '" SIZE=' + headerSize + '>' // set font for table header
text += monthName + ' ' + year
text += '</FONT>' // close table header's font settings
text += '</TH>' // close header cell
// variables to hold constant settings
var openCol = '<TD WIDTH=' + colWidth + ' HEIGHT=' + dayCellHeight + '>'
openCol += '<FONT COLOR="' + dayColor + '">'
var closeCol = '</FONT></TD>'
// create array of abbreviated day names
var weekDay = new Array(7)
weekDay[0] = "Sun"
weekDay[1] = "Mon"
weekDay[2] = "Tues"
weekDay[3] = "Wed"
weekDay[4] = "Thu"
weekDay[5] = "Fri"
weekDay[6] = "Sat"
// create first row of table to set column width and specify week day
text += '<TR ALIGN="center" VALIGN="center">'
for (var dayNum = 0; dayNum < 7; ++dayNum) {
text += openCol + weekDay[dayNum] + closeCol
}
text += '</TR>'
// declaration and initialization of two variables to help with tables
var digit = 1
var curCell = 1
for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
text += '<TR ALIGN="right" VALIGN="top">'
for (var col = 1; col <= 7; ++col) {
if (digit > lastDate)
break
if (curCell < firstDay) {
text += '<TD></TD>';
curCell++
} else {
if (digit == date) { // current cell represent today's date
text += '<TD HEIGHT=' + cellHeight + '>'
text += '<FONT COLOR="' + todayColor + '">'
text += digit
text += '</FONT><BR>'
text += '<FONT COLOR="' + timeColor + '" SIZE=2>'
text += '<CENTER>' + getTime() + '</CENTER>'
text += '</FONT>'
text += '</TD>'
} else
text += '<TD HEIGHT=' + cellHeight + '>' + digit + '</TD>'
digit++
}
}
text += '</TR>'
}
// close all basic table tags
text += '</TABLE>'
text += '</CENTER>'
// print accumulative HTML string
document.write(text)
}
</script>
<p align="center"><font face="arial" size="-2">This free script provided by</font><br>
<font face="arial, helvetica" size="-2"><a href="http://javascriptkit.com">JavaScript
Kit</a></font></p>
setCal()
function getTime() {
// initialize time-related variables with current time settings
var now = new Date()
var hour = now.getHours()
var minute = now.getMinutes()
now = null
var ampm = ""
// validate hour values and set value of ampm
if (hour >= 12) {
hour -= 12
ampm = "PM"
} else
ampm = "AM"
hour = (hour == 0) ? 12 : hour
// add zero digit to a one digit minute
if (minute < 10)
minute = "0" + minute // do not parse this number!
// return time string
return hour + ":" + minute + " " + ampm
}
function leapYear(year) {
if (year % 4 == 0) // basic rule
return true // is leap year
/* else */ // else not needed when statement is "return"
return false // is not leap year
}
function getDays(month, year) {
// create array to hold number of days in each month
var ar = new Array(12)
ar[0] = 31 // January
ar[1] = (leapYear(year)) ? 29 : 28 // February
ar[2] = 31 // March
ar[3] = 30 // April
ar[4] = 31 // May
ar[5] = 30 // June
ar[6] = 31 // July
ar[7] = 31 // August
ar[8] = 30 // September
ar[9] = 31 // October
ar[10] = 30 // November
ar[11] = 31 // December
// return number of days in the specified month (parameter)
return ar[month]
}
function getMonthName(month) {
// create array to hold name of each month
var ar = new Array(12)
ar[0] = "January"
ar[1] = "February"
ar[2] = "March"
ar[3] = "April"
ar[4] = "May"
ar[5] = "June"
ar[6] = "July"
ar[7] = "August"
ar[8] = "September"
ar[9] = "October"
ar[10] = "November"
ar[11] = "December"
// return name of specified month (parameter)
return ar[month]
}
function setCal() {
// standard time attributes
var now = new Date()
var year = now.getYear()
if (year < 1000)
year+=1900
var month = now.getMonth()
var monthName = getMonthName(month)
var date = now.getDate()
now = null
// create instance of first day of month, and extract the day on which it occurs
var firstDayInstance = new Date(year, month, 1)
var firstDay = firstDayInstance.getDay()
firstDayInstance = null
// number of days in current month
var days = getDays(month, year)
// call function to draw calendar
drawCal(firstDay + 1, days, date, monthName, year)
}
function drawCal(firstDay, lastDate, date, monthName, year) {
// constant table settings
var headerHeight = 50 // height of the table's header cell
var border = 2 // 3D height of table's border
var cellspacing = 4 // width of table's border
var headerColor = "midnightblue" // color of table's header
var headerSize = "+3" // size of tables header font
var colWidth = 60 // width of columns in table
var dayCellHeight = 25 // height of cells containing days of the week
var dayColor = "darkblue" // color of font representing week days
var cellHeight = 40 // height of cells representing dates in the calendar
var todayColor = "red" // color specifying today's date in the calendar
var timeColor = "purple" // color of font representing current time
// create basic table structure
var text = "" // initialize accumulative variable to empty string
text += '<CENTER>'
text += '<TABLE BORDER=' + border + ' CELLSPACING=' + cellspacing + '>' // table settings
text += '<TH COLSPAN=7 HEIGHT=' + headerHeight + '>' // create table header cell
text += '<FONT COLOR="' + headerColor + '" SIZE=' + headerSize + '>' // set font for table header
text += monthName + ' ' + year
text += '</FONT>' // close table header's font settings
text += '</TH>' // close header cell
// variables to hold constant settings
var openCol = '<TD WIDTH=' + colWidth + ' HEIGHT=' + dayCellHeight + '>'
openCol += '<FONT COLOR="' + dayColor + '">'
var closeCol = '</FONT></TD>'
// create array of abbreviated day names
var weekDay = new Array(7)
weekDay[0] = "Sun"
weekDay[1] = "Mon"
weekDay[2] = "Tues"
weekDay[3] = "Wed"
weekDay[4] = "Thu"
weekDay[5] = "Fri"
weekDay[6] = "Sat"
// create first row of table to set column width and specify week day
text += '<TR ALIGN="center" VALIGN="center">'
for (var dayNum = 0; dayNum < 7; ++dayNum) {
text += openCol + weekDay[dayNum] + closeCol
}
text += '</TR>'
// declaration and initialization of two variables to help with tables
var digit = 1
var curCell = 1
for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
text += '<TR ALIGN="right" VALIGN="top">'
for (var col = 1; col <= 7; ++col) {
if (digit > lastDate)
break
if (curCell < firstDay) {
text += '<TD></TD>';
curCell++
} else {
if (digit == date) { // current cell represent today's date
text += '<TD HEIGHT=' + cellHeight + '>'
text += '<FONT COLOR="' + todayColor + '">'
text += digit
text += '</FONT><BR>'
text += '<FONT COLOR="' + timeColor + '" SIZE=2>'
text += '<CENTER>' + getTime() + '</CENTER>'
text += '</FONT>'
text += '</TD>'
} else
text += '<TD HEIGHT=' + cellHeight + '>' + digit + '</TD>'
digit++
}
}
text += '</TR>'
}
// close all basic table tags
text += '</TABLE>'
text += '</CENTER>'
// print accumulative HTML string
document.write(text)
}
</script>
<p align="center"><font face="arial" size="-2">This free script provided by</font><br>
<font face="arial, helvetica" size="-2"><a href="http://javascriptkit.com">JavaScript
Kit</a></font></p>
Langganan:
Postingan (Atom)