Kamis, 17 September 2009

Sistem Operasi bab 3

1. Sebutkan state pada proses dan jelaskan diagram proses
State pada proses terdiri dari :
a. New: proses sedang dibuat.
b. Running: proses sedang dieksekusi.
c. Waiting: proses sedang menunggu beberapa event yang akan terjadi (seperti
menunggu untuk menyelesaikan I/O atau menerima sinyal).
d. Ready: proses menunggu jatah waktu dari CPU untuk diproses.
e. Terminated: proses telah selesai dieksekusi.


2. Apa yang dimaksud short term scheduler dan long term scheduler ?
Terdapat dua bentuk penjadwal, yaitu:
a. Longterm-Scheduler (job scheduler), menyeleksi proses-proses mana yang harus
dibawa ke ready queue. long-term scheduler terjadi sangat jarang (dalam
detik atau menit), sehingga setiap proses dijadwal dengan lambat. Long-term scheduler
digunakan untuk mengontrol tingkat multiprogramming.
b. Short-term Scheduler (CPU scheduler), memilih proses-proses yang siap untuk
dieksekusi, dan mengakolakasikan CPU ke salah satu dari proses-proses tersebut. Short-term scheduler terjadi sangat sering (dalam milidetik), jadi setiap proses dijadwal dengan cepat,

3. Jelaskan 4 alasan mengapa proses harus bekerja sama.
Keuntungan proses harus saling bekerja sama adalah
1. terjadi pembagian informasi antara satu proses dengan proses yang lain.
2. meningkatkan kecepatan komputasi dalam menyelesaikan suatu proses.
3. proses dapat dibagi dalam modul-modul.
4. lebih memberikan kenyamanan pada programmer.

4. Tuliskan kode program untuk penyelesaian permasalahan producer consumer dengan menggunakan shared memory.
#define BUFFER_SIZE 10
Typedef struct {
. . .
} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
Proses producer :
item nextProduced;
while (1) {
while (((in + 1) % BUFFER_SIZE) == out)
; /* do nothing */
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
}
Proses consumer :
item nextConsumed;
while (1) {
while (in == out)
; /* do nothing */
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
}

5. Diketahui skema komunikasi antar proses menggunakan mailbox
a. Proses P ingin menunggu 2 pesan, satu dari mailbox A dan satu dari mailbox B.
Tunjukkan urutan send dan receive yang dieksekusi
Send (A pesan ); mengirim pesan ke mailbox A,
Receive(A pesan ); Proses P menerima pesan dari mailbox A
Send (B pesan ); mengirim pesan ke mailbox B,
Receive(B pesan ); Proses P menerima pesan dari mailbox B.
b. Bagaimana urutan send dan receive yang dieksekusi P jika P ingin menunggu
satu pesan dari mailbox A atau mailbox B (salah satu atau keduanya)
Hanya bisa menerima satu pesan:
Caranya :
Receive ( P pesan); menerima peasan dari mailbox A.
Receive ( P pesan); menerima peasan dari mailbox B.

6. Jelaskah apa yang dimaksud dengan thread dan struktur dari thread.
Thread atau lighweight process (LWP) adalah suatu unit dasar dari CPU utilization yang berisi program counter, kumpulan register, dan ruang stack. Thread akan bekerjasama dengan thread yang lainnya dalam hal penggunaan bagian kode, bagian data, dan resource sistem operasi, seperti open file dan sinyal secara kolektif yang sering disebut dengan task.
Struktur dari thread terdiri atas dua struktur :
1. Single thread
2. Multi thread

7. Jelaskan empat keuntungan menggunakan threads pada multiple process.
1. respon lebih cepat.
2. menggunakan resource bersama-sama.
3. lebih ekonomis.
4. meningkatkan utilitas arsitektur mikroprosessor.

8. Apakah perbedaan antara user-level thread dan kernel-supported threads ?
User level thread adalah thread yang diatur dengan menggunakan pustaka user level thread. Contoh sistem yang menggunakan user thread adalah POSIX Pthreads, Mach C-threads dan Solaris threads.
Kernel thread adalah thread yang didukung oleh Kernel.
Contoh sistem yang menggunakan kernel thread adalah Windows 95/98/NT/2000, Solaris, Tru64 UNIX, BeOS dan Linux.

9. Ada 3 model multithreading, jelaskan.
a. One to One yaitu satu user-level thread dipetakan ke satu kernel thread.
b. Many-to-One , beberapa user level thread dipetakan ke satu kernel thread.
c. Many-to-Many, beberapa user level thread dipetakan ke beberapa kernel threads.
10. Jelaskan state pada Java thread.
Bahasa pemrograman Java menggunakan Java thread yang dibuat dengan menggunakan class Thread dan mengimplementasikan antar muka yang bersifat runnable (dapat dijalankan). Java thread diatur oleh Java virtual machine (JVM). Java thread terdiri dari state new, runnable, blocked dan dead.

Sabtu, 04 Juli 2009

Klasifikasi Software (Perangkat Lunak)

Klasifikasi Software (Perangkat Lunak)

Software atau biasa disebut perangkat lunak (piranti lunak) adalah program komputer yang berfungsi sebagai sarana interaksi antara pengguna dan perangkat keras. Perangkat lunak dapat juga dikatakan sebagai 'penterjemah' perintah-perintah yang dijalankan pengguna komputer untuk diteruskan ke atau diproses oleh perangkat keras.

Perangkat lunak adalah program komputer yang isi instruksinya dapat diubah dengan mudah. Perangkat lunak umumnya digunakan untuk mengontrol perangkat keras (yang sering disebut sebagai device driver), melakukan proses perhitungan, berinteraksi dengan perangkat lunak yang lebih mendasar lainnya (seperti sistem operasi, dan bahasa pemrograman), dan lain-lain.

Secara garis besar software terbagi menjadi 2 yaitu :

  1. Software Close Source

Software Close Source adalah jenis software yang kode sumbernya (source code) tertutup. Kode sumber dari software jenis ini tidak boleh diubah, dikembangkan dan dimodifikasi. Kode sumbernya dilindungi sehingga kode aslinya tidak dapat dilihat. Umumnya untuk mendapatkan software ini harus membayar (sifatnya komersil). Contoh dari software jenis ini adalah Microsoft Windows.

  1. Software Open Source

Software Open Source adalah jenis software yang kode sumbernya (source code) terbuka. Kode sumber dari software jenis ini boleh dipelajari, diubah, ditingkatkan, disebarluaskan, dikembangkan dan dimodifikasi. Kode sumbernya boleh dilihat sehingga dapat dibaca kode-kode pemrogramannya sesuai dengan aslinya. Umumnya untuk mendapatkan software ini kita tidak harus membayar (sifatnya gratis). Salah satu cara untuk dapat mendapatkannya kita cukup mendownload dari suatu situs yang banyak terdapat di internet. Contoh dari software jenis ini adalah Linux.



Jenis – Jenis Software

Ada ratusan atau bahkan ribuan sofware yang beredar di pasaran yang bekerja di bawah sistem operasi windows, diantara software-software yang beredar ada yang berbayar, freeware, free software, share ware, rental ware, dll. Banyaknya software yang bekerja di bawah sistem operasi windows dikarenakan windowslah operating system pertama yang muncul dan mengembangkan aplikasi komputer berbasis GUI yang berorientasi ke user.

Sementara untuk pembagian software menurut jenis penggunaannya adalah sebagai berikut :

    1. Tools dan Utility Software (Program Bantu)

Software ini merupakan jenis software yang digunakan untuk mempermudah dalam menangani pekerjaan yang berhubungan dengan pengoperasian komputer beserta perangkat pendukungnya. Misalnya digunakan untuk :

      1. Proses memeriksa & menganalisa (scanning & analyzing),

      2. Proses pengelolaan (management),

      3. Proses pencarian (searching),

      4. Proses perbaikan (repairing),

      5. Proses memperbanyak (copying dan burning),

      6. Proses menjelajah dan melihat-lihat (explorer dan browser),

      7. Proses memperkecil kapasitas data (compress),

      8. Dan lain-lain.

Program-program yang termasuk dalam klasifikasi jenis ini adalah :

  1. Program Antivirus

Ada banyak sekali jenis program antivirus yang beredar dipasaran, baik yang komersil maupun yang open source. Jenis program ini berfungsi sebagai scanning, analyzing, dan repairing files. Beberapa jenis program ini diantaranya yaitu :

1. Norton Antivirus

2. Symantec Antivirus

3. Avira Antivirus

4. PCMAV Antivirus

5. Ansav Antivirus

2. Program Pengelolaan Hardisk.

Untuk program jenis ini ada yang langsung tersedia ketika OS di install ataupun harus diinstall terpisah. Jenis program ini berfungsi sebagai management files dan memory. Beberapa jenis program ini diantaranya yaitu :

  1. Fdisk

  2. Power Quest

  3. Partition Magic

3. Program Cloning

Program ini berfungsi untuk mengcopy CD/DVD lengkap dengan system operasi yang terdapat di dalam CD/DVD sumbernya. Jenis program ini biasanya dipakai untuk mengcopy CD/DVD program. Beberapa jenis program ini diantaranya yaitu :

  1. Norton Ghost.

  2. Diskcopy.

  3. CloneCD.


4. Program Memperkecil jumlah Data (Compress Data)

Program ini berfungsi untuk memperkecil jumlah kapasitas data. Beberapa jenis program ini diantaranya yaitu :

  1. Winzip.

  2. Winrar.

  3. 7Zip.

5. Program Mencetak atau membuat CD (Burning)

Program ini berfungsi untuk membuat file / memasukkan file kedalam CD/DVD. File yang dimasukkan kedalam CD/DVD bisa berupa file data,

File music, file video, dll. Beberapa jenis program ini diantaranya yaitu :

  1. Nero express / Nero Burning.

  2. CD maker.

6. Program Multimedia Player.

Program ini berfungsi sebagai pemutar Multimedia file. File player yang diputar bisa berupa Audio file maupun Video file. Untuk multimedia player ada yang langsung tersedia ketika OS di install ataupun harus diinstall terpisah. Beberapa jenis program ini diantaranya yaitu :

a. Audio Player

  1. Winamp.

  2. Midipro player.

  3. MP3 Player.

b. Video Player

  1. Windows Media Player.

  2. Quick Time Player

  3. Power DVD.

7. Program Konverter Multimedia Player.

Program ini berfungsi sebagai konverter atau konversi Multimedia file. Ada kalanya multimedia file yang kita dapatkan tidak sesuai formatnya dengan player yang kita punya, sehingga untuk dapat menggunakan file tersebut harus kita konversikan. Sebagai contoh kita mempunyai file dengan format avi, namun player yang kita miliki Quick time player dengan format 3gp agar file kita bisa dimainkan (play) kita hatus mengkonversikannya ke bentuk 3gp. Beberapa jenis program ini diantaranya yaitu :

  1. Xilisoft video converter.

  2. Goldwave.

8. Program Internet Utility

Program ini berfungsi untuk membantu pada saat pengoperasian yang berhubungan dengan jaringan Internet. Beberapa jenis program ini diantaranya yaitu :

  1. Internet Browser (Internet Explorer, Mozilla Firefox, Opera, Mozaic)

  2. Webserver (Apache, Xampp)

  3. Database server (mysql, firebird, postgree, LDAP)


    1. Application Software (Program Aplikasi)

Software ini merupakan jenis software yang digunakan program-program yang bersifat aplikasi, tujuan akhir dari program aplikasi sama dengan Tools dan Utility Software yaitu untuk mempermudah dalam menangani pekerjaan yang berhubungan dengan pengoperasian komputer beserta perangkat pendukungnya.

Program-program yang termasuk dalam klasifikasi jenis ini adalah :

    1. Aplikasi Office

Program Aplikasi Office digunakan untuk program bantu dalam hal – hal yang berhubungan dengan produktivitas kerja. Beberapa jenis program ini diantaranya yaitu :

(MS Word, MS Excel, MS Power Point Presentation, MS Outlook, MS Publisher, MS Binder, MS Access, MS Info Path, dan lain-lain)

2. Aplikasi Pemrograman Web

Program ini berfungsi untuk membuat desain web, untuk diaplikasikan ke dalam internet. Beberapa jenis program ini diantaranya yaitu :

  1. PHP.

  2. Javascript

  3. Macromedia Dreamweaver.

  4. Bluefish.

  5. Zend

3. Aplikasi Pemrograman Pengolah Audio

Program ini berfungsi untuk mengolah data audio. Proses pengolahan data bisa berupa proses recording, editting, dubbing. Beberapa jenis program ini diantaranya yaitu :

  1. Goldwave

  2. Sound Recorder

  3. Audacity.

4. Aplikasi Pemrograman Pengolah Video.

Program ini berfungsi untuk mengolah data Video. Proses pengolahan data bisa berupa proses capturing, editting, dubbing, picture transision, rendering. Beberapa jenis program ini diantaranya yaitu :

  1. Pinnacle Studio

  2. Camtasia Studio

  3. Adobe Premiere

  4. Windows Movie Maker

  5. Ulead.

5. Aplikasi Pemrograman Grafis.

Program ini berfungsi untuk mengolah data gambar. Proses pengolahan data bisa berupa rotation, cropping, flip, efek warna, dll. Beberapa jenis program ini diantaranya yaitu :

  1. Adobe Photoshop

  2. Corel Draw

  3. Macromedia Freehand

6. Aplikasi Pemrograman Desain.

Program ini berfungsi untuk mendesain konstruksi bangunan, atau gedung, dengan tingkat keteliatian tinggi dan simulasi 3 dimensi. Beberapa jenis program ini diantaranya yaitu :

  1. Autocad

  2. Visio

7. Aplikasi Pemrograman Elektronik.

Program ini berfungsi untuk mendesain sirkuit electronik, untuk beberapa program dilengkapi dengan simulasi. Beberapa jenis program ini diantaranya yaitu :

  1. Protel

  2. Electronics Work Bench (EWB512)

  3. Visio

8. Aplikasi Pemrograman.

Program ini berfungsi untuk mendesain suatu program yang membutuhkan inputan, melakukan suatu proses dan menghasilkan output secara mandiri atau independent. Beberapa jenis program ini diantaranya yaitu :

  1. Borland Delphi

  2. Java (Eclips, JDK, JVM)

  3. Visual Studio (Visual Basic, Visual C++, Visual Foxpro)

9. Aplikasi Editor.

Program ini berfungsi sebagai program bantu editor untuk mendesain suatu program. Beberapa jenis program ini diantaranya yaitu :

  1. Notepad, Notepad++

  2. Wordpad

  3. Cooledit

  4. Editplus


Sabtu, 27 Juni 2009

Latihan uas

?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("3");
list.Tambah("2");
list.Tambah("1");
list.Tambah("4");


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

document.write("Isi Linked List Awal = " +list.Ukuran() + "?br>");
document.write ("?br>")


document.write("Isi Linked List to Array =" +list.toArray());
document.write ("?br>")


document.write("Data String Linked List Awal =" +list.toString());



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 (toArray, Angka)
{
if ((toArray.length - 1) >= Angka)
return (toArray[Angka] + "," + DataString(toArray,(Angka +

1)));
else
return "";
}

function bubbleSort (toArray, Mulai, MulaiBaru)
{
for (var i = MulaiBaru - 1; i >= Mulai; i--)
{
for (var j = Mulai; j ?= i; j++)
{
if (toArray[j+1] ? toArray[j])
{
var DataTemporer = toArray[j];
toArray[j] = toArray[j+1];
toArray[j+1] = DataTemporer;
}
}
}

return toArray;
}




?/script>



?body>
?center>
?form>
Masukan Deretan Angka, Pisahkan dengan Koma :
?hr>
?input type=text name=Data size=30 value= >
?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>
?/html>

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>

Graph

?html>
?head>?title>Dijkstra Algorithms ?/title>

?/head>
?body>
?script language = "javascript">

var NilaiAcuan = 10000;
var TakTerdefinisi = -1;
var NamaVerteks = new Array('A','B','C','D','E','F');
var Matriks = new Array(6);

function Bobot(a,b)
{
return Matriks[a][b];
}

function Dijkstra(JumlahVerteks,Awal,d)
{
var Posisi = new Array(JumlahVerteks);
var i;
var Kunjungan = new Array(JumlahVerteks);
var pred = new Array(JumlahVerteks);

for(i=0; i?JumlahVerteks; i++)
{
Posisi[i] = NilaiAcuan;
pred[i] = TakTerdefinisi;
Kunjungan[i] = false;
}
Posisi[Awal] = 0;

var Verteks;
for (Verteks = 0; Verteks ? JumlahVerteks; Verteks++)
{
var JarakTerpendek = NilaiAcuan, closest = -1;
for (i=0; i ? JumlahVerteks; i++)
{
if (!Kunjungan[i])
{
if (Posisi[i] ?= JarakTerpendek)
{
JarakTerpendek = Posisi[i]; closest = i;
}
}
}

Kunjungan[closest] = true

for (i=0; i ? JumlahVerteks; i++)
{
if (!Kunjungan[i])
{
var w = Bobot(closest, i);
if (Posisi[closest]+w ? Posisi[i])
{
Posisi[i] = Posisi[closest] + w;
pred[i] = closest;
}
}
}
}


i=d
if (Posisi[i] ? NilaiAcuan)
{
var Lintasan = NamaVerteks[i];
var Verteks = i;
while (Verteks>0)
{
Verteks = pred[Verteks];
if (Verteks>=0) Lintasan = NamaVerteks[Verteks] + '->' + Lintasan;
}
alert("Jarak :" + Posisi[i]+' ('+Lintasan+')'+'?br>');
} else
{
alert("Tidak ada Jalur");
}
}


var x = '~';
document.write('?pre>');
document.write(Matriks[0]=new Array(0,2,3,x,x,x));
document.write('?br>');
document.write(Matriks[1]=new Array(2,0,3,6,x,x));
document.write('?br>');
document.write(Matriks[2]=new Array(3,3,0,3,5,x));
document.write('?br>');
document.write(Matriks[3]=new Array(x,6,3,0,1,3));
document.write('?br>');
document.write(Matriks[4]=new Array(x,x,5,1,0,1));
document.write('?br>');
document.write(Matriks[5]=new Array(x,x,x,3,1,0));
document.write('?br>');
document.write('?/pre>');


document.write('?pre>A-2-B-6--D--3-F ?br>');
document.write('\\ / / ?br>');
document.write(' 3 3 3 1 1 ?br>');
document.write(' \\ / / ?br>');
document.write(' \\/ / ?br>');
document.write(' C--5-E ?br> ?/pre>');




var Dari=0; // A
var Ke =5; // F
Dijkstra(Matriks.length,Dari,Ke);
//-->

?/script>

?/body>
?/htmL>

Selasa, 16 Juni 2009

New Linked List

Program linked list setelah ditambahkan function Ukuran, toArray dan toString

/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>");

document.write("Isi Linked List Sebelum di Buang = " +list.Ukuran() +

"/br>");
document.write ("/br>")

document.write("Isi Linked List Awal =" +list.toArray());
document.write ("/br>")

document.write("Data String Linked List Awal =" +list.toString());

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


document.write ("/br>")
document.write ("/br>")
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>");

document.write("Isi Linked List Setelah di Buang = " +list.Ukuran() +

"/br>");

document.write("Isi Linked List Terakhir =" +list.toArray());
document.write ("/br>")
document.write("Data String Linked List Terakhir =" +list.toString());
//script>
//body>
//html>


Sabtu, 30 Mei 2009

Double LinkedList

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

function DoubleLinkedList()
/
this._panjang = 0;
this._kepala = null;
this._ekor = null;
}

DoubleLinkedList.prototype =
/
constructor:DoubleLinkedList,


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




toString: function()
/
return this.toArray().toString();
}
}
var list = new DoubleLinkedList();

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 Linked List Awal =" +list.ItemList(0));
alert("Item 1 pada Linked List dibuang, yaitu = "+list.ItemList(1));
list.Buang(1);

document.write ("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>

Rabu, 27 Mei 2009

Linked List

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


Selasa, 26 Mei 2009

QUEUE Push-Shift

?html>
?head>?title>Struktur Data Queue?/title>?/head>
?script language="javascript">
var queue=new Array();

function input(data)
{
queue.push(data)
}

function ambil()
{
var keluar_antrian=queue.shift();
if (keluar_antrian==0)
return "Queue sudah kosong";
else
return keluar_antrian;
}

function tampilkan (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='input(textSimpan.value);
textSimpan.value="";
tampilkan(mediaList);'>

?select name="mediaList" size=12>
?option> Isi Antrian....
?/select>
?input type=button value="Keluar Antrian"
onClick='textAmbil.value = ambil();
tampilkan(mediaList);'>
?input type=text name=textAmbil>
?/form>
?/body>
?/html>

Jumat, 17 April 2009

Kalender

<HTML>
<HEAD>
<TITLE>Kalender</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<SCRIPT type=text/javascript>

function ambilnamabulan(e)
{
var daftarbulan=new Array("Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember")
return daftarbulan[e];
}

function ambilhariawalbulan(t,b)
{
var i=new Date(t, b, 1);
return i.getDay();
}

function ambiljumlahhari(t,b)
{
var kabisat=false;
if(t%4==0) kabisat=true;
var a=new Array;
a[0]=31;
a[1]=(kabisat)?29:28;
a[2]=31;
a[3]=30;
a[4]=31;
a[5]=30;
a[6]=31;
a[7]=31;
a[8]=30;
a[9]=31;
a[10]=30;
a[11]=31;
return a[b];
}

function ambilkalender(tahun,namabulan,mulai,hariawalbulan,angka,jumlahhari,tanggal)
{
var warna="#ffffff";
var tabelkal=new String;
tabelkal="<table border='1'>";
tabelkal=tabelkal+"<tr><td align='center' bgcolor='#00ffff' colspan='7'><b>"+namabulan+", "+tahun+"</b></td></tr>";
tabelkal=tabelkal+"<tr><th>M</th><th>S</th><th>S</th><th>R</th><th>K</th><th>J</th><th>S</th></tr>";
for(baris=0;baris<=5;baris++)
{
tabelkal=tabelkal+"<tr>";
for(kolom=0;kolom<=6;kolom++)
{
if(kolom==hariawalbulan) mulai=true;
if(mulai&&(angka<=jumlahhari))
{
if((kolom==0)&&(angka!=tanggal)) warna="#ff00ff";
else
{
if(angka==tanggal) warna="#00ff00";
else warna="#ffffff";
}
tabelkal=tabelkal+"<td align='center' bgcolor="+warna+">";
tabelkal=tabelkal+angka;
angka++;
}
else
{
warna="#ffffff";
tabelkal=tabelkal+"<td bgcolor="+warna+">";
}
}
tabelkal=tabelkal+"</tr>";
}
tabelkal=tabelkal+"</table>";
return tabelkal;
}
function init()
{
var tgl=new Date();
var tahun=tgl.getYear();
var bulan=tgl.getMonth();
var tanggal=tgl.getDate();
var namabulan=ambilnamabulan(bulan);
var hariawalbulan=ambilhariawalbulan(tahun,bulan);
var jumlahhari=ambiljumlahhari(tahun,bulan);
var kalender=new String;
kalender=ambilkalender(tahun,namabulan,false,hariawalbulan,1,jumlahhari,tanggal);
if(document.all) tempatkalender.innerHTML=kalender;
}
</SCRIPT>

<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY onload=init()>
<DIV id=tempatkalender style="Left: 0px; POSITION: relative; TOP: 0px"></DIV><!-- www.000webhost.com Analytics Code -->
</SCRIPT>
</BODY>
</HTML>
Stack

?html>
?head>?title>Data stack?/title>
?script language="javascript">
var stack = new Array();
function input(data)
{
stack.push(data);
}
function ambil()
{
var data_stack=stack.pop();
if (data_stack==undefined)
return "stack sudah kosong";
else
return data_stack;
}
function tampilkan(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="Simpan"
onClick='input(textSimpan.value);
textSimpan.value="";
tampilkan(mediaList);'>
?select name="mediaList" size=12>
?option>Tampilkan Data....
?/select>
?input type=text name=textambil size=20>
?input type=button value="ambil"
onClick="textambil.value=ambil();
tampilkan(mediaList);">
?/form>
?/body>
?/html>



Hasil ketika mprogram dijalankan

Senin, 30 Maret 2009

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("0001","Dani","TI","SI");
Record[1]=new Mahasiswa("0002","Doni","TK","D3");
Record[2]=new Mahasiswa("0003","Dina","SI","SI");
Record[3]=new Mahasiswa("0004","Dini","KA","D3");
//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>");
//-->

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


hasilnya sebagai berikut




Data pegawai
?html>
?head>?title>Memanipulasi Data Pegawai?/title>?head>
?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_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 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;
alert ("Apakah anda mau menambah data lagi..??\n Jika 'YA' tekan 'OK' kemudian isi data\n Jika 'TIDAK' tekan 'OK' kemudian tekan 'Cancel'");
DBPegawai [DBPegawai.length]=new Pegawai(NIP,Nama,Gaji_Per_Jam,Jam_Kerja,Gaji);
}
ShowPegawai();
}
function ShowPegawai()
{
document.write("?table border='1'>"+ "?tr>"+ "?th>NIP?/th>?th>Nama?/th>?th>Gaji Per Jam?/th>?th>Jam Kerja?/th>"+ "?th>Gaji Total?/th>"+ "?/tr>");
for (i=0; i?DBPegawai.length; i++)
{
document.write("?tr>"+ " ?td>" + DBPegawai[i].NIP + "?/td>"+ " ?td>" + DBPegawai[i].Nama + "?/td>" + " ?td align='right'>" + DBPegawai[i].Gaji_Jam + "?/td>" + " ?td align='right'>" + DBPegawai[i].Jam_Kerja + "?/td>" + " ?td align='right'>" + DBPegawai[i].Gaji_Total + "?/td>" + " ?/tr>");
}
document.write ("?/table>");
}
//-->
?/script>
?/head>
?body onload ="inputPegawai();">
?/body>
?/html>

Array Fibonacci

?html>
?head>?title>Deret Fibonacci?/title>?/head>
?body>
?script language = "javascript">
?!--
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>
?/body>
?/html>

hasil setelah program dirunning adalah sebagai berikut :
Fibonacci (0)=0
Fibonacci (1)=1
Fibonacci (2)=1
Fibonacci (3)=2
Fibonacci (4)=3
Fibonacci (5)=5
Fibonacci (6)=8
Fibonacci (7)=13
Fibonacci (8)=21
Fibonacci (9)=34
Fibonacci (10)=55
Fibonacci (11)=89
Fibonacci (12)=144
Fibonacci (13)=233
Fibonacci (14)=377
Fibonacci (15)=610
Fibonacci (16)=987
Fibonacci (17)=1597
Fibonacci (18)=2584
Fibonacci (19)=4181
Fibonacci (20)=6765

Sabtu, 28 Maret 2009

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

hasil outputnya akan muncul sebagai berikut

Penambahan (15 + 14) = 29
Perkalian (15 X 14) = 210
Konversi 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>

hasil outputnya adalah sebagai berikut

bilangan Desimal : 25
Biner : 11001
Oktal : 31
Heksa : 19
Penjumlahan dan mengetahui type data
?html>
?head>
?title>membuat fungsi matematika dengan javascript?/title>?/head>
?body>
?script language = "javascript">
?!--
function jumlah(x,y)
{
var hasil = x + y; return (hasil);
}
var a = parseInt (prompt ("ketikan Bilangan A = \n Ingat jangan String"));
var b = parseInt (prompt ("ketikan Bilangan B = \n Ingat jangan String"));
var z = jumlah(a,b);
document.write (z); document.write ("?br>");
document.write ("?hr>");
document.write ("Tipe data-nya adalah = " + typeof (z));
//-->?/script>
?/body>
?/html>

hasil outputnya adalah sebagai berikut

25 // hasil penjumlahannya
Tipe data-nya adalah = number

Kamis, 26 Maret 2009

Modul 1 (Type Data)

Penambahan dan Perkalian 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>

hasilnya sebagai berikut

Penambahan (15 + 14) = 29
Perkalian (15 X 14) = 210

Rabu, 25 Maret 2009

Parameter Array (latihan 2)

?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 ("Masukan Bilangan :")tempat[m]=bil;}
for (n=1; n?=data; n++)
{document.write("Elemen Array ("+n+") ="+tempat[n] +"?br>");}
//-->
?/script>
?/body>
?/html>

contoh hasil setelah di running

Elemen Array (1) =11
Elemen Array (2) =12
Elemen Array (3) =13
Elemen Array (4) =14
Elemen Array (5) =15

Struktur Data (Modul 2 -- Array)

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

hasil setelah dirunning

Saya Sedang Senang

Kamis, 05 Februari 2009

Dampak Perpindahan Listrik Statis (Electro Static Discharge) Pada Hardware Komputer (Komponen Semikonduktor)

BAB 1
PENDAHULUAN


1. 1. Latar Belakang
Perkembangan teknologi komputer dari tahun ke tahun semakin berkembang pesat, hal tersebut bertujuan untuk memudahkan pengguna untuk memanfaatkan komputer sebagai alat bantu dalam menjalankan segala aktifitasnya. Namun ada salah satu hal penting dari proses pembuatan komputer. Proses hardware (pembuatan atau perakitan) komputer itu sendiri. Pada proses ini ada salah satu cabang ilmu fisika yang berperan sangat penting. Ilmu fisika tersebut adalah listrik statis (Electro Static).
Pada komputer yang biasa kita pakai terdiri dari 3 bagian penting, input device, proses device, dan output device. Untuk kali ini kita akan membahas mengenai proses device atau bisa kita sebut CPU. Kita tahu bahwa CPU terdiri dari banyak slot, dimana tiap-tiap slot terdiri dari ratusan atau bahkan ribuan komponen elektronik dan IC (Integrated Circuit). Pada suatu saat komponen elektronik dan IC tersebut akan mengalami kerusakan. Pernahkan kita berpikir mengapa komponen tersebut rusak…?. Apa penyebabnya…?. Pada kesempatan kali ini penulis akan membahas mengenai dampak listrik statis (electro static)terhadap komponen elektronik.
Dengan adanya makalah ini diharapkan dapat menambah pengetahuan pembaca mengenai listrik satis, dan diharapkan kita sebagai pengguna komputer diharapkan lebih berhati-hati apabila hendak membongkar pasang CPU ataupun perangkat elektonik lainnya. Dalam perkembangannya saat ini listrik statis sangat diperhatikan oleh perusahaan pembuat komponen elektronik sampai perusahaan perakitnya. Tidak ada salahnya kita sebagai user / pengguna lebih memperhatikan dampak dari listrik statis ini.






1. 2. Tujuan
Melalui makalah ini, penulis selaku penyusun mempunyai beberapa tujuan dan harapan di antaranya adalah sebagai berikut :
1. Pembaca dapat mengetahui apa yang dimaksud dengan listrik statis (electro static),
2. Pembaca dapat membedakan listrik statis (electro static) dan listrik dinamis (electro dynamic),
3. Pembaca dapat mengetahui dampak yang ditimbulkan oleh listrik statis (electro statis),
4. Pembaca dapat mengetahui penanggulangan atau pencegahan dari dampak listrik statis (electro statis) ini,
5. Pembaca dapat mempraktekkan dan mengaplikasikan pengetahuan mengenai listrik statis (electro static) dalam lingkungan kerja, lingkungan kampus maupun kehidupan sehari-hari.



















BAB 2
PEMBAHASAN


2. 1. Sejarah Listrik Statis (Electro Static)
Listrik Statis pertama kali ditemukan oleh Charles-Augustin de Coulomb (14 Juni 1736 ~ 23 Agustus 1806). Seorang ilmuwan Perancis yang berasal dari keturunan bangsawan. Percobaan yang Coulomb lakukan meliputi tekanan yang bisa memecahkan suatu benda (1773) dan ini adalah awal ilmu modern tentang kekuatan benda-benda. Karyanya di bidang listrik dan magnet yang membuatnya begitu terkenal, baru diterbitkan dalam serangkaian makalah antara tahun 1785 dan 1789.
Kemudian Coulomb melakukan percobaan dengan magnet kompas, ia langsung melihat bahwa gesekan pada sumbu jarum menyebabkan kesalahan. Ia membuat kompas dengan jarum tergantung pada benang lembut. Dan ia menarik kesimpulan; besarnya puntiran pada benang haruslah sama dengan kekuatan yang mengenai jarum dari medan magnetik bumi. Ini mengawali penemuan Timbangan Puntir, untuk menimbang benda-benda yang sangat ringan.
Timbangan puntir tadi membawa Coulomb ke penemuannya yang paling penting. Dengan menggerakkan dua bulatan bermuatan listrik di dekat timbangan puntir, ia menunjukkan bahwa kekuatan di antara kedua benda itu berbeda-beda jika kedua benda itu saling menjauh. Dari tahun 1784 sampai 1789, saat bekerja di berbagai departemen pemerintah, ia terus meneliti elektrostatika dan magnet. Tahun 1785 keluarlah hukum Coulomb; daya tarik dan daya tolak kelistrikan antara dua benda yang bermuatan listrik adalah perkalian muatannya dengan kuadrat terbalik dari jaraknya..
Di sebuah kota di daerah Perancis bernama Blois, Coulomb meneliti sifat muatan listrik pada benda dan diketemukannya bahwa muatan tersebut hanya ada pada permukaan benda. Didapatkannya pula bahwa daya magnet juga mengikuti hukum kuadrat terbalik seperti daya listrik statis.




I : Arus Discharge (Ampere)
D q : Besarnya Muatan Statis (Coulomb)
D t : Waktu Discharge (detik)
D q (Coulomb)
D t (Detik)I = ---------------------



Penemuan Coulomb yang memastikan adanya hubungan antara kelistrikan dan magnetisme kelak dibuktikan oleh Hans Christian Ørsted serta Siméon Poisson. Dan ini menjadi dasar penelitian elektrodinamika oleh Andre-Marie Ampere. Selanjutnya Andre Marie Ampere yang menyempurnakan penelitian yang dilakukan oleh Coulomb.
Andre Marie Ampere seorang fisikawan, matematikawan, dan kimiawan Perancis ini lahir di Lyon 20 Januari 1775. Guru dan rekan-rekan kerjanya adalah para pakar ilmuwan seperti Euler, Bernoulli, Fresnel, dan Oersted. Kontribusinya dalam bidang Fisika, Matematika, dan Kimia sangat besar. Namanya diabadikan sebagai nama satuan arus listrik pada sistem satuan internasional (Ampere).
I = q / tKontribusinya dalam bidang Fisika adalah perumusan teori tentang listrik Ampere mendefinisikan bahwa pada suatu rangkaian listrik yang disebut arus listrik adalah muatan listrik yang bergerak pada suatu penghantar dalam satuan waktu tertentu.
Didapat persamaan :
J = I / A
Sedangkan rapat arusnya didapat persamaan :

ρ = E / JKuat arus listrik dalam suatu penghantar juga bergantung pada kuat medan listrik (E) di dalam penghantar tersebut. Sifat penghantar dari suatu bahan disebut hambatan jenis ρ.
Dinyatakan dalam persamaan :

Selanjunya itu penemuan Coulomb mengenai listrik statis dibuktikan oleh Bejamin Franklin, seorang ilmuwan asal Amerika. Benjamin yang sangat kagum akan kekuatan badai dan petir berargumen bahwa petir menyambar mengandung aliran listrik. Ia berargumen bahwa listrik dan petir mempunyai banyak kesamaan, kesamaan yang dimaksud adalah kesamaan warna cahaya, arah aliran, bunyi yang dihasilkan dan banyak lagi. Pada saat itu banyak ahli yang memiliki pendapat yang sama, namun hanya Benjaminlah yang mampu membuktikan pendapat tersebut. Pada tahun 1747 Benjamin memperkenalkan istilah positif dan negatif untuk menggambarkan muatan listrik untuk menggantikan istilah vitroeus dan resinous yang dipakai sebelumnya.
Pada tahun 1750 ~ 1752, dalm upayanya membuktikan bahwa petir adalah listrik, ia mulai berpikir untuk melindungi manusia, gedung, dan struktur lain dari bahaya sambaran petir. Ia kemudian menciptakan alat dari batangan besi dengan panjang 8 sampai 10 kaki yang ditanam kebumi, Ia berpendapat bahwa besi berujung runcing akan menarik listrik dan dengan dihubungkan ke tanah (bumi) akan mengosongkan listrik satis yang berasal dari awan. Percobaan penemuannya dilakukan dengan cara menempatkan batang besi runcing pada sebuah bangunan dan menggunakan layang-layang yang telah ditempeli kunci logam sebagai alat penghubung untuk mendekatkan dengan awan. Percobaan ini berhasil alat penangkal petir temuan Benjamin yang terkenal dengan nama Franklin Rod hingga sekarang banyak digunakan oleh rumah, gedung dan jenis bangunan lainnya.

2. 2. Listrik Statis (Electro Static)
Sebenarnya apa itu listrik statis?, mungkin ini pertanyaan yang timbul pada saat pertama kali membaca makalah ini. Sebelum menjawab pertanyaan tersebut ada baiknya kita lakukan percobaan dibawah ini. Potong kertas menjadi bagian kecil-kecil, kemudian ambil penggaris mika. Gosok-gosokan penggaris mika pada tangan / rambut, setelah itu dekatkan penggaris pada kertas kecil yang telah kita potong-potong tadi. Apa yang terjadi …??. Kertas kecil-kecil tadi akan berterbangan disekitar penggaris mika. Itulah yang disebut listrik statis.
Listrik statis (Electro statis) adalah muatan listrik yang berada pada benda isolator (mika, baju, celana, rambut, dll). Kertas kecil-kecil berterbangan karena adanya ketidakseimbangan electron-elektron pada permukaan sebuah benda. Electron-electron ini bisa berpindah karena beberapa factor, yaitu:
1. Adanya contact and separation dua permukaan benda atau biasa disebut triboelectric charge. Untuk memperjelas ilustrasi Lihat Gambar ....!


2. Adanya gesekan antara dua permukaan benda atau biasa disebut Friction charge.
3. Berdekatan dengan medan elektrostatic atau biasa disebut Induction charge.
Proses perpindahan muatan listrik statis (Electro static) antara dua benda yang mempunyai potensial listrik berbeda disebut Electro Static Discharge (ESD). Proses inilah yang berbahaya dan perlu kita waspadai karena berpotensi merusak komponen semikonduktor yang ada.

Kok bisa merusak teorinya gimana…?
Ingat hukum Coulomb tentang muatan (Q = I x t). Karena waktu perpindahan muatan itu sangat cepat dalam ordo sepersekian detik, maka Arus yang dihasilkan sangat besar, suatu komponen elektonik memiliki batasan arus tertentu apabila batasan tersebut dilewati maka dapat mengakibatkan berubahnya karakteristik (sifat) kelistrikan suatu komponen semikonduktor (electro static sensitive device) sehingga menyebabkan kerusakan. Contohnya saja, umur part (Life Time) tersebut bisa berkurang.

Contoh Electro Static Sensitive Device …?
Contohnya : Pick up laser pada CD/DVD Rom, Processor, IC pada motherboard, IC pada VGA card, Transistor, IC CMOS, FET, dan banyak lagi.

Ketika kita berjalan, kita akan bergesekan dengan lantai, semakin lama atau sering kita bergesekan maka tubuh kita menjadi semakin bermuatan. Ketika kita menyentuh benda maka muatan electro static yang berada pada tubuh kita akan berpindah.Contoh nyata sehari – hari ....?







Lalu.., Bagaimana cara mencegah kerusakan tersebut…?
Caranya adalah dengan menjaga electro static sensitive device tidak tersentuh benda bermuatan , yaitu dengan cara :
Untuk Manufacture Electronik / Semikonduktor.
Ø Mengkondisikan Listrik statis (electro static) pada ruangan kerja selalu sama / balance ( Vorang = Valat = Vlingkungan = Vproduk ).
A. Untuk Orang, harus menggunakan wrist strap, heel strap yang terhubung dengan ground. Atau kita juga bisa memakai sandal anti static (lantai ruangan harus antistatic). Jari tangan harus memakai Finger Cots atau Hand Glove yang terbuat dari bahan anti static. Untuk Pakaian kerja tidak boleh terbuat dari nylon.
Sering kita lihat iklan di media mengenai Prosesor Intel, terlihat orang yang bekerja menggunakan pakaian seperti ninja atau astronot. Itu adalah pakaian khusus yang terbuat dari bahan anti static.
Heel Strap
Sandal Anti Static
GND
Wrist Strap






PERLENGKAPAN ANTISTATIC UNTUK MANUSIA (HUMAN)
ANTISTATIC ROOM
CAUTION UNTUK ANTISTATIC ROOM

B. Untuk Alat / equipment dan tools harus terhubung ke grounding system (pentanahan) termasuk meja kerja. Pastikan semua AC socket (Tegangan AC 220 Volt) terhubung ke grounding. Untuk menetralkan apabila terjadi perpindahan muatan electrostatic, selain itu grounding juga berfungsi sebagai proteksi apabila ada tegangan / arus bocor.
GND
Working table
GND
Mat floor


TERMINAL GROUNDING PADA MANUFACTURE

C. Untuk Lingkungan (area kerja), gunakan ESD Ionizer atau Clean Bench untuk menetralisir udara disekitar area kerja. Lantai bisa dicat dengan cat anti static atau dengan mengganti lantai vinly dengan lantai vinly anti static.
ESD IONIZER
CLEAN BENCH WITH HEPA FILTER
D. Untuk Produk, Menaruh Electro Static Sensitive Device pada tempat yang terbuat dari bahan anti static (bahan-bahan yang kondisi electronnya selalu seimbang / balance). Biasakan memegang produk memakai finger cots atau shand glove anti static atau bisa memakai bekas dari standart packing yang digunakan (sebagai contoh pada saat kita membeli Processor, IC, Motherboard, atau VGA Card untuk standart kemasan dari pabrik perusahaan biasanya memakai aluminium foil atau sejenisnya, standart kemasan tersebut terbuat dari bahan anti static, gunakan jika kita ingin memasang, memindahkan Electro Static Sensitive Devica dari satu tempat ke tempat lain.
Untuk User (pengguna)
Ø Buat Grounding system (sistem pentanahan) pada rumah. Kita bisa membuat baru atau bila rumah kita sudah dilengkapi grounding PLN kita bisa menghubungkan / mengkoneksikannya ke sana. (Grounding PLN biasanya terdapat di bawah meteran listrik atau dibawah sekering).
Ø Pastikan semua AC socket, AC plug, dan kabel terdiri dari 3 buah pin atau kabel (phase, netral, ground).
Ø Koneksikan semua peralatan elektonik ke Grounding system yang telah kita buat.
Ø Apabila kita hendak membongkar suatu peralatan elektronik, gunakan bekas kemasan aluminium foil untuk memindahkan komponen tersebut.
Tips diatas sangat penting, karena selain sebagai pencegahan dari efek electrostatic, tips diatas juga sebagai safety (keamanan) terhadap kita. Mungkin kita pernah terkena aliran listrik (tersetrum) pada saat memegang CPU, atau pada saat memcuci pakaian dengan mesin cuci, atau ketika kita menyentuh peralatan elektronik lainnya. Ikuti langkah diatas dan hal tersebut tidak akan pernah terjadi lagi.
Pada pembahasan diatas disinggung mengenai grounding (pentanahan), berikut pembahasannya.

2. 3. Gounding (Pentanahan)
Grounding (Pentanahan) adalah salah satu bagian terpenting dari pengontrolan ESD. Semua material yang bersifat konduktive dan dissipative harus mempunyai sistem pentanahan yang baik untuk menetralkan apabila terjadi perpindahan muatan electrostatic, Grounding berfungsi untuk menjaga agar semua benda (part, equipment, mesin, dll) dan tubuh manusia berada pada tegangan listrik yang sama, sehingga tidak timbul muatan listrik yang dapat menyebabkan ESD.
Grounding seharusnya mempunyai tegangan lisrik 0 Volt terhadap tanah, dan memiliki nilai resistansi < 10 Ohm

Grounding dilakukan dengan cara
Menghubungkan semua benda (area kerja, manusia, equipment, dll) ke titik ground yang mempunyai tegangan listrik sama yang disebut dengan “common point ground”.
Common point ground merupakan sistem atau metode untuk menghubungkan dua atau lebih gounding pada bahan penghantar ke tegangan listrik yang sama.

Tanda untuk Common Point Ground
(Titik Ground Instalasi)
Tanda ini berfungsi untuk mengidentifikasi bahwa titik / tempat tersebut merupakan Common Point Ground.






2. Menghubungkan common point ground ke grounding pada equipment atau ke kabel grounding PLN (kabel ketiga yang tidak bertegangan listrik). Ini merupakan salah satu cara penggrounding yang cukup efektif, karena semua equipment di area kerja tersebut pada dasarnya sudah terhubung dengan kabel grounding PLN. Menghubungkan semua benda atau equipment ke kabel grounding PLN menjadikan semua yang ada di area kerja mempunyai tegangan listrik yang sama.





SIMBOL –SIMBOL YANG BERKAITAN DENGAN ESD

Tanda untuk Electro Static Sensitive Device
Tanda untuk titik Ground Instalasi
Lambang ESD Safe
Lambang ESD Association

.
BAB 3
KESIMPULAN

Electro Static Discharge (ESD) adalah Proses perpindahan muatan listrik statis (Electro static) antara dua benda yang mempunyai potensial listrik berbeda, proses ini sangat berbahaya karena berlangsung sangat cepat (dalam hitungan seper sekian detik) sehingga arus yang mengalir menjadi besar.
Peralatan Elektronik maupun Komponen Semikonduktor yang bisa terkena dampak dari Electro Static Discharge (ESD) biasa disebut dengan Electro Static Sensitive DeviceDischarge (ESD).
Dampak yang ditimbulkan Electro Static Discharge (ESD) seringkali tidak langsung merusak, melainkan mempersingkat umur (Life Time) suatu produk atau barang. Karena sifat / karakteristik dari ESD yang tidak tetap inilah maka ESD dianggap sebagai bahaya besar bagi Manufacture Elektronik dan Komponen Semikonduktor. ESD bagaikan bom waktu yang bisa meledak kapan saja. Kerusakan dari komponen tidak bisa diprediksikan, bisa terjadi di manufacture, distributor, ataupun di tingkat user (pengguna), waktunya pun bervariasi, bisa dalam hitungan tahun, bulan, atau bahkan dalam hitungan hari.
Karena dampak yang ditimbulkan ESD sangat besar, Manufacture Elektronik dan Komponen Semikonduktor berlomba-lomba untuk mengurangi dampak dari ESD, walaupun konsekuensinya biaya yang mereka keluarkan untuk investasi bisa mencapai ratusan ribu dollar. Mereka berlomba-lomba untuk membuat ESD control program yang efektif dan efisien.
Sudah selayaknya kita sebagai end user (pengguna akhir) ikut berhati-hati terhadap dampak dari ESD, dan pandai-pandai memilih produk yang akan kita beli (baik electronik maupun hardware dari komputer).
ekoprihastopo © 2008 Template by:
SkinCorner