Kamis, 04 November 2010

Artikel Deadlock

Artikel Deadlock

Pengertian deadlock

deadlock adalah keadaan dimana dua program memegang kontrol terhadap sumber daya yang dibutuhkan oleh program yang lain. Tidak ada yang dapat melanjutkan proses masing-masing sampai program yang lain memberikan sumber dayanya, tetapi tidak ada yang mengalah.
Deadlock yang mungkin dapat terjadi pada suatu proses disebabkan proses itu menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. Dua atau lebih proses dikatakan berada dalam kondisi deadlock, bila setiap proses yang ada menunggu suatu kejadian yang hanya dapat dilakukan oleh proses lain dalam himpunan tersebut.


Karakteristik Deadlock

Karakteristik-karakteristik ini harus dipenuhi keempatnya untuk terjadi deadlock. Namun, perlu diperhatikan bahwa hubungan kausatif antara empat karakteristik ini dengan terjadinya deadlock adalah implikasi. Deadlock mungkin terjadi apabila keempat karakteristik terpenuhi.

Empat kondisi tersebut adalah:

1.Mutual Exclusion . Kondisi yang pertama adalah mutual exclusion yaitu proses memiliki hak milik pribadi terhadap sumber daya yang sedang digunakannya. Jadi, hanya ada satu proses yang menggunakan suatu sumber daya. Proses lain yang juga ingin menggunakannya harus menunggu hingga sumber daya tersebut dilepaskan oleh proses yang telah selesai menggunakannya. Suatu proses hanya dapat menggunakan secara langsung sumber daya yang tersedia secara bebas.

2.Hold and Wait . Kondisi yang kedua adalah hold and wait yaitu beberapa proses saling menunggu sambil menahan sumber daya yang dimilikinya. Suatu proses yang memiliki minimal satu buah sumber daya melakukan request lagi terhadap sumber daya. Akan tetapi, sumber daya yang dimintanya sedang dimiliki oleh proses yang lain. Pada saat yang sama, kemungkinan adanya proses lain yang juga mengalami hal serupa dengan proses pertama cukup besar terjadi. Akibatnya, proses-proses tersebut hanya bisa saling menunggu sampai sumber daya yang dimintanya dilepaskan. Sambil menunggu, sumber daya yang telah dimilikinya pun tidak akan dilepas. Semua proses itu pada akhirnya saling menunggu dan menahan sumber daya miliknya.

3.No Preemption . Kondisi yang selanjutnya adalah no preemption yaitu sebuah sumber daya hanya dapat dilepaskan oleh proses yang memilikinya secara sukarela setelah ia selesai menggunakannya. Proses yang menginginkan sumber daya tersebut harus menunggu sampai sumber daya tersedia, tanpa bisa merebutnya dari proses yang memilikinya.

4.Circular Wait . Kondisi yang terakhir adalah circular wait yaitu kondisi membentuk siklus yang berisi proses-proses yang saling membutuhkan. Proses pertama membutuhkan sumber daya yang dimiliki proses kedua, proses kedua membutuhkan sumber daya milik proses ketiga, dan seterusnya sampai proses ke n-1 yang membutuhkan sumber daya milik proses ke n. Terakhir, proses ke n membutuhkan sumber daya milik proses yang pertama. Yang terjadi adalah proses-proses tersebut akan selamanya menunggu.

Penanganan Deadlock

4 cara untuk menangani keadaan deadlock, yaitu:

1.Pengabaian. Maksud dari pengabaian di sini adalah sistem mengabaikan terjadinya deadlock dan pura-pura tidak tahu kalau deadlock terjadi. Dalam penanganan dengan cara ini dikenal istilah ostrich algorithm. Pelaksanaan algoritma ini adalah sistem tidak mendeteksi adanya deadlock dan secara otomatis mematikan proses atau program yang mengalami deadlock. Kebanyakan sistem operasi yang ada mengadaptasi cara ini untuk menangani keadaan deadlock. Cara penanganan dengan mengabaikan deadlock banyak dipilih karena kasus deadlock tersebut jarang terjadi dan relatif rumit dan kompleks untuk diselesaikan. Sehingga biasanya hanya diabaikan oleh sistem untuk kemudian diselesaikan masalahnya oleh user dengan cara melakukan terminasi dengan Ctrl+Alt+Del atau melakukan restart terhadap komputer.

2.Pencegahan. Penanganan ini dengan cara mencegah terjadinya salah satu karakteristik deadlock. Penanganan ini dilaksanakan pada saat deadlock belum terjadi pada sistem. Intinya memastikan agar sistem tidak akan pernah berada pada kondisi deadlock. Akan dibahas secara lebih mendalam pada bagian selanjutnya.

3.Penghindaran. Menghindari keadaan deadlock. Bagian yang perlu diperhatikan oleh pembaca adalah bahwa antara pencegahan dan penghindaran adalah dua hal yang berbeda. Pencegahan lebih kepada mencegah salah satu dari empat karakteristik deadlock terjadi, sehingga deadlock pun tidak terjadi. Sedangkan penghindaran adalah memprediksi apakah tindakan yang diambil sistem, dalam kaitannya dengan permintaan proses akan sumber daya, dapat mengakibatkan terjadi deadlock. Akan dibahas secara lebih mendalam pada bagian selanjutnya.

4.Pendeteksian dan Pemulihan. Pada sistem yang sedang berada pada kondisi deadlock, tindakan yang harus diambil adalah tindakan yang bersifat represif. Tindakan tersebut adalah dengan mendeteksi adanya deadlock, kemudian memulihkan kembali sistem. Proses pendeteksian akan menghasilkan informasi apakah sistem sedang deadlock atau tidak serta proses mana yang mengalami deadlock. Akan dibahas secara lebih mendalam pada bagian selanjutnya.


Pencegahan Deadlock

Pencegahan deadlock dapat dilakukan dengan cara mencegah salah satu dari empat karakteristik terjadinya deadlock. Berikut ini akan dibahas satu per satu cara pencegahan terhadap empat karakteristik tersebut.

1.Mutual Exclusion . Kondisi mutual exclusion pada sumber daya adalah sesuatu yang wajar terjadi, yaitu pada sumber daya yang tidak dapat dibagi (non-sharable). Sedangkan pada sumber daya yang bisa dibagi tidak ada istilah mutual exclusive. Jadi, pencegahan kondisi yang pertama ini sulit karena memang sifat dasar dari sumber daya yang tidak dapat dibagi.

2.Hold and Wait . Untuk kondisi yang kedua, sistem perlu memastikan bahwa setiap kali proses meminta sumber daya, ia tidak sedang memiliki sumber daya lain. Atau bisa dengan proses meminta dan mendapatkan sumber daya yang dimilikinya sebelum melakukan eksekusi, sehingga tidak perlu menunggu.

3.No Preemption . Pencegahan kondisi ini dengan cara membolehkan terjadinya preemption.

Maksudnya bila ada proses yang sedang memiliki sumber daya dan ingin mendapatkan sumber daya tambahan, namun tidak bisa langsung dialokasikan, maka akan preempted. Sumber daya yang dimiliki proses tadi akan diberikan pada proses lain yang membutuhkan dan sedang menunggu. Proses akan mengulang kembali eksekusinya setelah mendapatkan semua sumber daya yang dibutuhkannya, termasuk sumber daya yang dimintanya terakhir.

4.Circular Wait . Kondisi 'lingkaran setan' ini dapat 'diputus' dengan jalan menentukan total kebutuhan terhadap semua tipe sumber daya yang ada. Selain itu, digunakan pula mekanisme enumerasi terhadap tipe-tipe sumber daya yang ada. Setiap proses yang akan meminta sumber daya harus meminta sumber daya dengan urutan yang menaik. Misalkan sumber daya printer memiliki nomor 1 sedangkan CD-ROM memiliki nomor 3. Proses boleh melakukan permintaan terhadap printer dan kemudian CD-ROM, namun tidak boleh sebaliknya.


Penghindaran Deadlock

Penghindaran terhadap deadlock adalah cara penanganan yang selanjutnya. Inti dari penghindaran adalah jangan sembarangan membolehkan proses untuk memulai atau meminta lagi. Maksudnya jangan pernah memulai suatu proses apabila nantinya akan menuju ke keadaan deadlock. Kedua, jangan memberikan kesempatan pada proses untuk meminta sumber daya tambahan jika penambahan tersebut akan membawa sistem pada keadaan deadlock. Tidak mungkin akan terjadi deadlock apabila sebelum terjadi sudah kita hindari.

Langkah lain untuk menghindari adalah dengan cara tiap proses memberitahu jumlah kebutuhan maksimum untuk setiap tipe sumber daya yang ada. Selanjutnya terdapat deadlock-avoidance algorithm yang secara rutin memeriksa state dari sistem untuk memastikan tidak adanya kondisi circular wait serta sistem berada pada kondisi safe state. Safe state adalah suatu kondisi dimana semua proses mendapatkan sumber daya yang dimintanya dengan sumber daya yang tersedia. Apabila tidak bisa langsung, ia harus menunggu selama waktu tertentu, kemudian mendapatkan sumber daya yang diinginkan, melakukan eksekusi, dan terakhir melepas kembali sumber daya tersebut. Terdapat dua jenis algoritma penghindaran yaitu resource-allocation graph untuk single instances resources serta banker's algorithm untuk multiple instances resources.

Dalam banker's algorithm, terdapat beberapa struktur data yang digunakan, yaitu:

Available . Jumlah sumber daya yang tersedia.

Max . Jumlah sumber daya maksimum yang diminta oleh tiap proses.

Allocation . Jumlah sumber daya yang sedang dimiliki oleh tiap proses.

Need . Sisa sumber daya yang masih dibutuhkan oleh proses, didapat dari max- allocation.

Kemudian terdapat safety algorithm untuk menentukan apakah sistem berada pada safe state atau tidak.

Algoritma Deadlock-Avoidance

Algoritma “deadlock-avoidance” secara dinamik akan memeriksa alokasi resource apakah dapat mengarah ke status (keadaan) tidak aman (misalkan terjadi circulair wait condition)

Jawaban Praktikum

Jawaban Praktikum

1. - $ cd : Menuju ke direktori home

- $ pwd : Untuk melihat direktori yang aktif atau sedang di gunakan

- $ ls -al : Melihat isi direktori

- $ cd . : Melihat direktori aktual dan parent directory

- $ pwd : Melihat direktori yang aktif

- $ ls -al : Melihat isi direktori

- $ cd .. : Menuju direktori satu level ke atas

- $ pwd : Melihat direktori yang akif

- $ ls -al : Melihat isi direktori

- $ cd /etc : Masuk ke direktori etc

- $ls -al | more : Untuk melihat isi direktori tetapi hanya sebagian yang di tampilkan sehingga harus menekan tombol untuk melihat semuanya.

- $ cat passwd : Untuk melihat isii Password

- $ cd - : Masuk ke direktori sebelumnya

- $ pwd : Melihat direktori yang aktif

2. ls : Melihat isi direktori (home)

ls -a : Melihat semua direktori berikut yang tersembunyi.

3. File yang terbentuk :

- report_jan,report_feb,report_mar

- graph_jan,graph_feb,graph_mar

4. Gambar di samping !

5. $ mv {graph_jan,graph_feb,graph_mar} SO/graphs

6. $ mv {report_jan,report_feb} SO/report

7. $ rm report_mar

Jawaban Teori

Jawaban Teori

1. Gambar struktur direktori pohon




2. 5 Direktori standard pada linux
a./etc = Berisi file administrative (konfigrasi dll) dan file executable atau script yang berguna untuk administrasi system.
b./dev = Berisi file khusus yang merepresentasikan peralatan hardware seperti memori, disk, printer, tape, floppy, jaringan dll.
c./bin = Berisi utilitas sistem level rendah (binary).
d./sbin = Berisi utilitas sistem untuk superuser (untuk membentuk administrasi sistem).
e./proc = Berisi informasi tentang kernel Linux, proses dan virtual system file.

3. Nama file dan direktori maksimal terdiri dari 255 karakter berupa alfanumerik dan beberapa karakter spesial yaitu garis bawah, titik, koma dan lainnya kecuali spasi dan karakter “&”, “;”, “|”, “?”, “`”, “””, “’”, “[“, “]”, “(“, “)”, “$”, “<”, “>”, “{“, “}”,“^”, “#”, “\”, “/”. Linux membedakan huruf kecil dengan huruf besar (case sensitive).

4. Perbedaan nama Path absolut dan relatif
a.Nama path absolut dimulai dengan tanda garis miring (“/”). Nama direktori dimulai dari sistem file rott berurutan sampai ditemukan direktori atau file tersebut.
b.Nama path relatif tidak dimulai dengan tanda garis miring. Isinya nama direktori yang harus dilewati dari current directory untuk mencapai obyek tersebut. Lokasi ditentukan secara relatif dari current directory.

5. cd : mengubah direktori
6. ls : melihat isi current directory atau direktori tertentu
7. cp : meng-copy file dan direktori
8. mv : memindahkan dan atau mengubah nama file dan direktori
9. rm : menghapus file
10. touch : membuat file kosong atau mengubah file
11. mkdir : membuat direktori
12. rmdir : menghapus direktori kosong
13. file : melihat tipe file
14. cat : menampilkan isi file teks
15. less : menampilkan halaman teks halaman per halaman

Selasa, 29 Juni 2010

bubble

<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 denga 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>
<form>
<select type=text size=20 style=width:200px>
</select><br><br>

</form>

</center>

</body>

</html>

bubblesort

<html>
<head>
<title>JavaScript Random Number Generator.</title>
</head>
<body>

<script type="text/javascript">

var ranarray = new Array(10);

// Generate random numbers to fill ranarray.
function genNumbers(listbox) {
var i;

for(i = 0; i < ranarray.length; i++) {
ranarray[i] = Math.random()*100;
// Round to nearest integer.
ranarray[i] = Math.round(ranarray[i]);
}

// Update the select box list.
updateList(listbox);
}


function sortNumbers(listbox) {
var x, y, holder;
// The Bubble Sort method.
for(x = 0; x < ranarray.length; x++) {
for(y = 0; y < (ranarray.length-1); y++) {
if(ranarray[y] > ranarray[y+1]) {
holder = ranarray[y+1];
ranarray[y+1] = ranarray[y];
ranarray[y] = holder;
}
}
}

// Update the select box list.
updateList(listbox);
}

// Assign values in array to values in the select box.
function updateList(listbox) {
var i;
for(i = 0; i < ranarray.length; i++) {
if(listbox.options[i] == null) {
listbox.options[i] = new Option(ranarray[i]);
} else {
listbox.options[i].text = ranarray[i];
}
}

}

</script>

<form>
<select name="ranlist" size="20" style="width:300px">
</select><br><br>
<input type="button" value="Generate Numbers"
onclick="genNumbers(this.form.ranlist);">
<input type="button" value="Bubble Sort Numbers"
onclick="sortNumbers(this.form.ranlist);">
</form>


</body>
</html>

Selasa, 04 Mei 2010

menambahkan function

<html>
<head>
<title>menambahkan function</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 tampilkan_stack(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="";
tampilkan_stack(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();
tampilkan_stack(mediaList);'>

</form>
</body>
</html>

Kamis, 29 April 2010

Queue Static

<html>
<head>
<title>program Queue</title>
<script language="javascript">

function DataQueue()
{
var queue = [];
queue.unshift(1);
queue.unshift(2);

var i = queue.pop();
document.write(i + "<br>");
queue.unshift(3);
queue.unshift(4);
var i = queue.pop();
document.write(i + "<br>");
}

</script>
</head>
<body>
<form name="FormStrukturData">
<input name="btnQueue" value="Queue" type="button"
onClick = "DataQueue();">

</form>
</body>
</html>

record

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

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

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

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>

Stack

<html>
<head>
<title>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>

manipulasi data pegawai

<html>
<head>
<title>Manipulasi Data Pegawai</title>
<script language = "javascript" type="text/javascript">
<!--

var DBPegawai = new Array();
function Pegawai(Fields_NIP,Fields_Nama,Fields_Gaji_Per_Jam,Fields_Jam_Kerja,Fields_Gaji_Total)
{

this.NIP = Fields_NIP;
this.Nama = Fields_Nama;
this.Gaji_Jam = Fields_Gaji_Per_Jam;
this.Jam_Kerja = Fields_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;
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>

Parameter Array

<html>
<head>
<title>Parameter Array</title>
<body>
<script language = "JavaScript">
<!--

var tempat = []
var data = prompt("masukkan jumlah maksimum Array :");
for (i=0; i<=data; i++)

{
tempat[i] = prompt("masukkan bilangan :");
}

for (j=0; j<=data; j++)
{
document.write("elemen array("+j+") = "+tempat[j]+"<br>");
}

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

Array

<html>
<head>
<title>Belajar Array</title>
</head>
<body>
<script language = "JavaScript">
<!--

var dataku = new Array ("Saya","Sedang","Senang");
for (i=0; i<3; i++)
{
document.write(dataku[i] + "<br>");
}
alert("Selamat Belajar Struktur Data");
alert("Semoga Memperoleh Ilmu yang Bermanfaat");

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

Function penambahan

<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:"));
var b = parseInt(prompt("Ketikan Bilangan B:"));
var z = jumlah(a,b);

document.write(z);
document.write("<br>");
document.write("<hr>");
document.write("Tipe Datanya Adalah = "+typeof(z));

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

Selasa, 02 Maret 2010

function untuk menambahkan bilangan

html>
<head>
<title>Membuat Fungsi Matematika Dengan JavaScript</title>
</head>
<body>
<script language = "Javascript">
<!--
function jumlah (x,y) {
var hasil = x + y;

return (hasil);
}
var a = parseInt(prompt("Ketikan Bilangan A = \n Ingat Jangan String"));
var b = parseInt(prompt("Ketikan Bilangan B = \n Ingat Jangan String"));
var z = jumlah(a,b);

document.write(z);
document.write("<BR>");
document.write("<hr>");
document.write("Tipe Datanya adalah = " + typeof(z));

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

latihan dan evaluasi

<html>
<head>
<title>Mencari persamaan kuadrat</title>
</head>
<body>
<script language="JavaScript">
<!--
function akar(a,b,c)
{
var d = (b*b)-(4*a*c);
return(d);
}

var a=parseFloat(prompt("Menghitung akar persamaan kuadrat \n masukan nilai A=\n"));
var b=parseFloat(prompt("Menghitung akar persamaan kuadrat \n masukan nilai B=\n"));
var c=parseFloat(prompt("Menghitung akat persamaan kuadrat \n masukan nilai C=\n"));

var z=akar(a,b,c);
document.write("Nilai akar kuadrat =" +z+"<BR>");
document.write("<BR>");
document.write("<HR>");

if (z>0)
{
var x1= (-b - Math.sqrt(z))/(2*a);
var x2= (-b + Math.sqrt(z))/(2*a);

document.write("Nilai x1=" +x1+ "<BR>");
document.write("Nilai x1=" +x2+ "<BR>");
document.write("<BR>");
document.write("<HR>");
alert("anda telah berhasil selamat");
} else

if (z==0)
{
document.write("tidak ada akar real");
alert("anda belum berhasil coba lagi");
}
if (z<0)

{
document.write("tidak ada akar real");
alert("anda belum berhasil coba lagi");
}

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

Selasa, 23 Februari 2010

konversi antar sistem bilangan

<HTML>
<HEAD>
<TITLE>Konver Antar sistem Bilangan</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "JavaScript">
<!--
var bil = new Number (25);
document.write("Bilangan Dsimal: " +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) +

//-->
</SCRIPT>
</BODY>
</HTML

menambahkan 2 bilangan

<HTML>
<HEAD>
<TITLE>Type Bilangan</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "JavaScript">
<!--
var a = 15;
b = 14;

tambah = a + b;
kali = a * b;

document.write("Penambahan (" +a+ " + " +b+ ") = " + tambah);
document.write("<BR>");
document.write("Perkalian (" +a+ " x " +b+ ") = " + kali );
document.write("<BR>");

//-->
</SCRIPT>
</BODY>
</BODY
</HTML>