Praktikum 5.1 Array satu dimensi
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 5 Array</tittle><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
//membuat array
$mahasiswa = array("Toni","Joko","Agam","Tina","Lia","Yana");
$ipk = array(3.23,2.89,4.00,3.12,2.67,2.22);
$i = 0;
//mengakses array
echo "<table border = 1>";
echo "<tr>";
echo "<td>No</td>";
echo "<td>Nama</td>";
echo "<td>ipk</td>";
echo "</tr>";
while ($nama = each ($mahasiswa)){
echo "<tr>";
$no = $nama[0] + 1;
echo "<td>$no</td>";
echo "<td>$nama[1]</td>";
echo "<td>$ipk[$i]</td>";
echo "</tr>";
$i++;
}
echo "</table>";
?>
</body>
</html>
Praktikum 5.2 Array multi dimensi
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 5 Array</tittle><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
//membuat array
$mahasiswa = array (
array(
"nama" =>"Toni",
"nim" => "123456789",
"IPK" => 2.79
),
array (
"nama" => "Joko",
"nim" => "234567890",
"IPK" => 2.67
),
array (
"nama" => "Tina",
"nim" => "4567890145",
"IPK" => 2.34
),
array (
"nama" => "Lia",
"nim" => "6789043256",
"IPK" => 3.12
),
array (
"nama" => "Agam",
"nim" => "67452253436",
"IPK" => 4.00
),
array (
"nama" => "Yanna",
"nim" => "345562327844",
"IPK" => 3.56
),
);
echo "<table border=1>";
echo "<tr>";
echo "<td>Nama</td>";
echo "<td>N I M</td>";
echo "<td>IPK</td>";
foreach ($mahasiswa as $nama){
echo "<tr>";
foreach ($nama as $key =>$value){
echo "<td>$value</td>";
}
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>
Senin, 23 April 2012
Sabtu, 21 April 2012
Laporan Praktikum PBW 4
Praktikum 4.1 percabangan while
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 4.Perulangan</tittle><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$tinggi = 10 ;
$i = 0;
while ($i < $tinggi){
$j = 0;
while($j<=$i){
echo "*";
$j++;
}
echo "<br>";
$i++;
}
?>
</body>
</html>
Ouput segitiga bawah
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 4.Perulangan</tittle><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$tinggi = 0 ;
$i = 10;
while ($i >= $tinggi){
$j = 0;
while($j <=$i){
echo "*";
$j++;
}
echo "<br>";
$i--;
}
?>
</body>
</html>
Praktikum 4.2 perulangan Do...While
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 4.Perulangan</tittle><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$i=0;
do {
$j = 0;
while($j < $i){
echo "*";
$j++;
}
echo "<br>";
$i++;
}while($i<=10);
?>
</body>
</html>
Cek bilangan.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 4.Perulangan</tittle><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$x = 100;
while ($x > 0){
if ($x % 2 ==0){
echo "$x adalah bilangan Genap";
}else{
echo "$x adalah bilangan <b>Ganjil</b>";
}
echo "<br>";
$x--;
}
?>
</body>
</html>
Modifikasi code di atas untuk menampilkan 100 baris tulisan,yang mana apabila itu baris ketiga dan kelipatannya akan bertuliskan "foo" dan jika baris kelima dan kelipatannya akan bertuliskan "bar" serta tiap baris ke 15 dan kelipatannya akan bertuliskan "foobar" selain ketentuan ini tulisan yang akan mucul adalah "ini baris ke x."
maka code nya sebagai berikut :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 4.Perulangan</tittle><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$x = 1;
while ($x < 100){
if ($x % 15 == 0 ){
echo "foobar";
}else if($x % 5 == 0){
echo "bar";
}else if($x % 3 == 0){
echo "foo";
}else{
echo "ini baris ke-$x";
}
echo "<br>";
$x++;
}
?>
</body>
</html>
Praktikum 4.3 perulangan for
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 4.Perulangan</tittle><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$tinggi = 10;
$i = 0;
for ($i = 0 ; $i <= $tinggi ; $i++){
for ($j = 0 ; $j < $i ; $j++ ){
echo "*";
}
echo "<br>";
}
?>
</body>
</html>
Struktur 2 for (segitiga bawah)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 4.Perulangan</tittle><br><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$tinggi = 0;
$i = 10;
for ($i = 10 ; $i >= $tinggi ; $i--){
for ($j = 0 ; $j < $i ; $j++ ){
echo "*";
}
echo "<br>";
}
?>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 4.Perulangan</tittle><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$tinggi = 10 ;
$i = 0;
while ($i < $tinggi){
$j = 0;
while($j<=$i){
echo "*";
$j++;
}
echo "<br>";
$i++;
}
?>
</body>
</html>
Ouput segitiga bawah
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 4.Perulangan</tittle><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$tinggi = 0 ;
$i = 10;
while ($i >= $tinggi){
$j = 0;
while($j <=$i){
echo "*";
$j++;
}
echo "<br>";
$i--;
}
?>
</body>
</html>
Praktikum 4.2 perulangan Do...While
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 4.Perulangan</tittle><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$i=0;
do {
$j = 0;
while($j < $i){
echo "*";
$j++;
}
echo "<br>";
$i++;
}while($i<=10);
?>
</body>
</html>
Cek bilangan.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 4.Perulangan</tittle><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$x = 100;
while ($x > 0){
if ($x % 2 ==0){
echo "$x adalah bilangan Genap";
}else{
echo "$x adalah bilangan <b>Ganjil</b>";
}
echo "<br>";
$x--;
}
?>
</body>
</html>
Modifikasi code di atas untuk menampilkan 100 baris tulisan,yang mana apabila itu baris ketiga dan kelipatannya akan bertuliskan "foo" dan jika baris kelima dan kelipatannya akan bertuliskan "bar" serta tiap baris ke 15 dan kelipatannya akan bertuliskan "foobar" selain ketentuan ini tulisan yang akan mucul adalah "ini baris ke x."
maka code nya sebagai berikut :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 4.Perulangan</tittle><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$x = 1;
while ($x < 100){
if ($x % 15 == 0 ){
echo "foobar";
}else if($x % 5 == 0){
echo "bar";
}else if($x % 3 == 0){
echo "foo";
}else{
echo "ini baris ke-$x";
}
echo "<br>";
$x++;
}
?>
</body>
</html>
Praktikum 4.3 perulangan for
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 4.Perulangan</tittle><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$tinggi = 10;
$i = 0;
for ($i = 0 ; $i <= $tinggi ; $i++){
for ($j = 0 ; $j < $i ; $j++ ){
echo "*";
}
echo "<br>";
}
?>
</body>
</html>
Struktur 2 for (segitiga bawah)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 4.Perulangan</tittle><br><br>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$tinggi = 0;
$i = 10;
for ($i = 10 ; $i >= $tinggi ; $i--){
for ($j = 0 ; $j < $i ; $j++ ){
echo "*";
}
echo "<br>";
}
?>
</body>
</html>
Minggu, 08 April 2012
Laporan Praktikum PBW 3
Praktikum 3.1 percabangan if
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$stok_roti = 100;
if($stok_roti <= 50){
echo '<script language= "javascript"> alert ("Stock Roti sudah menipis")</script>';
}
?>
<body>
</html>
Memunculkan Message box jika sudah dibawah 100
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$stok_roti = 50;
if($stok_roti <= 50){
echo '<script language= "javascript"> alert ("Stock Roti sudah menipis")</script>';
}
?>
<body>
</html>
Membuat stok baju dan celana dan memunculkan peringatan (message box) jika stok dibawah 10
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$baju = 9;
$celana = 9;
if($baju <= 10 && $celana <= 10){
echo '<script language= "javascript"> alert ("Stock baju dan celana sudah menipis")</script>';
}
?>
<body>
</html>
Menentukan sebuah bilangan genap dan ganjil
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$bil = 3;
if($bil % 2 != 0 ){
echo '<script language= "javascript"> alert ("3 adalah Bilangan Ganjil")</script>';
}
?>
<body>
</html>
Praktikum 3.2 percabangan if..else
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtmll/DTD/xhtmll-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Praktikum 3. Struktur Kontrol </title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$umur = 12;
if(($umur < 20) && ($umur >10)){
echo 'Anda masih Remaja';
}else{
echo 'Anda bukan lagi Remaja';
}
?>
</body>
</html>
Praktikum 3.3 percabangan if..else if..else
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$bulan_lahir = 6;
if ($bulan_lahir == 1){
echo 'Anda lahir di bulan januari';
}else if ($bulan_lahir == 2){
echo 'Anda lahir di bulan Februari';
}else if ($bulan_lahir == 3){
echo 'Anda lahir di bulan Maret';
}else if ($bulan_lahir == 4){
echo 'Anda lahir di bulan April';
}else if ($bulan_lahir == 5){
echo 'Anda lahir di bulan Mei';
}else if ($bulan_lahir == 6){
echo 'Anda lahir di bulan Juni';
}else if ($bulan_lahir == 7){
echo 'Anda lahir di bulan Juli';
}else if ($bulan_lahir == 8){
echo 'Anda lahir di bulan Agustus';
}else if ($bulan_lahir == 9){
echo 'Anda lahir di bulan September';
}else if ($bulan_lahir == 10){
echo 'Anda lahir di bulan Oktober';
}else if ($bulan_lahir == 11){
echo 'Anda lahir di bulan November';
}else if ($bulan_lahir == 12){
echo 'Anda lahir di bulan Desember';
}else{
echo 'Bulan yang anda masukkan salah';
}
?>
</body>
</html>
Praktikum 3.4 percabagan if sembarang
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"xml:lang="on"lang="on">
<head>
<title>Praktikum 3.Struktur Kontrol</title>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$tanggal_lahir = 16;
$bulan_lahir = 6;
if ($bulan_lahir == 1){
if($tanggal_lahir <= 20)
echo 'Anda Berzodiak <b>CAPRICON</b>';
else
echo 'Anda Berzodiak <b>AQUARIUS</b>';
}else if ($bulan_lahir == 2){
if($tanggal_lahir <= 19)
echo 'Anda Berzodiak <b>AQUARIUS</b>';
else
echo 'Anda Berzodiak <b>PISCES</b>';
}else if ($bulan_lahir == 3){
if($tanggal_lahir <= 20)
echo 'Anda Berzodiak <b>PISCES</b>';
else
echo 'Anda Berzodiak <b>ARIES</b>';
}else if ($bulan_lahir == 4){
if($tanggal_lahir <= 19)
echo 'Anda Berzodiak <b>ARIES</b>';
else
echo 'Anda Berzodiak <b>TAURUS</b>';
}else if ($bulan_lahir == 5){
if($tanggal_lahir <= 20)
echo 'Anda Berzodiak <b>TAURUS</b>';
else
echo 'Anda Berzodiak <b>GEMINI</b>';
}else if ($bulan_lahir == 6){
if($tanggal_lahir <= 21)
echo 'Anda Berzodiak <b>GEMINI</b>';
else
echo 'Anda Berzodiak <b>CANCER</b>';
}else if ($bulan_lahir == 7){
if($tanggal_lahir <= 22)
echo 'Anda Berzodiak <b>CANCER</b>';
else
echo 'Anda Berzodiak <b>LEO</b>';
}else if ($bulan_lahir == 8){
if($tanggal_lahir <= 23)
echo 'Anda Berzodiak <b>LEO</b>';
else
echo 'Anda Berzodiak <b>VIRGO</b>';
}else if ($bulan_lahir == 9){
if($tanggal_lahir <= 22)
echo 'Anda Berzodiak <b>VIRGO</b>';
else
echo 'Anda Berzodiak <b>LIBRA</b>';
}else if ($bulan_lahir == 10){
if($tanggal_lahir <= 23)
echo 'Anda Berzodiak <b>LIBRA</b>';
else
echo 'Anda Berzodiak <b>SCORPIO</b>';
}else if ($bulan_lahir == 11){
if($tanggal_lahir <= 22)
echo 'Anda Berzodiak <b>SCORPIO</b>';
else
echo 'Anda Berzodiak <b>SAGITARIUS</b>';
}else if ($bulan_lahir == 12){
if($tanggal_lahir <= 21)
echo 'Anda Berzodiak <b>SAGITARIUS</b>';
else
echo 'Anda Berzodiak <b>CAPRICON</b>';
}
?>
</body>
</html>
Praktikum 3.5 percabangan switch..case
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$hari_ini = 'Rabu';
switch ($hari_ini){
case 'Senin':
echo 'Hari Senin';
break;
case 'Selasa':
echo 'Hari Selasa';
break;
case 'Rabu':
echo 'Hari Rabu';
break;
case 'Kamis':
echo 'Hari Kamis';
break;
case 'Jumat':
echo 'Hari jumat';
break;
case 'Sabtu':
echo 'Hari Sabtu';
break;
case 'Minggu':
echo 'Hari Minggu';
break;
default:
echo 'Hari Tidak Terdaftar';
break;
}
?>
</body>
</html>
Pada praktikum 3.3 penggunaan if diganti dengan penggunaan switch..case
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$bulan_lahir = 6;
switch ($bulan_lahir){
case 1:
echo 'Anda lahir di bulan Januari';
break;
case 2:
echo 'Anda lahir di bulan Februari ';
break;
case 3:
echo 'Anda lahir di bulan Maret';
break;
case 4:
echo 'Anda lahir di bulan April';
break;
case 5:
echo 'Anda lahir di bulan Mei';
break;
case 6:
echo 'Anda lahir di bulan Juni';
break;
case 7:
echo 'Anda lahir di bulan Juli';
break;
case 8:
echo 'Anda lahir di bulan Agustus';
break;
case 9:
echo 'Anda lahir di bulan September';
break;
case 10:
echo 'Anda lahir di bulan Oktober';
break;
case 11:
echo 'Anda lahir di bulan November';
break;
case 12:
echo 'Anda lahir di bulan Desember';
break;
default:
echo 'bulan Tidak Terdaftar';
break;
}
?>
</body>
</html>
Pada praktikum 3.4 ubah menjadi switch...case dan if yang didalam tetap tanpa mengganti apapun
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$tanggal_lahir = 16;
$bulan_lahir = 6;
switch ($bulan_lahir){
case 1:
if($tanggal_lahir <= 20)
echo 'Anda Berzodiak <b>CAPRICON</b>';
else
echo 'Anda Berzodiak <b>AQUARIUS</b>';
break;
case 2:
if($tanggal_lahir <= 19)
echo 'Anda Berzodiak <b>AQUARIUS</b>';
else
echo 'Anda Berzodiak <b>PISCES</b>';
break;
case 3:
if($tanggal_lahir <= 20)
echo 'Anda Berzodiak <b>PISCES</b>';
else
echo 'Anda Berzodiak <b>ARIES</b>';
break;
case 4:
if($tanggal_lahir <= 19)
echo 'Anda Berzodiak <b>ARIES</b>';
else
echo 'Anda Berzodiak <b>TAURUS</b>';
break;
case 5:
if($tanggal_lahir <= 20)
echo 'Anda Berzodiak <b>TAURUS</b>';
else
echo 'Anda Berzodiak <b>GEMINI</b>';
break;
case 6:
if($tanggal_lahir <= 21)
echo 'Anda Berzodiak <b>GEMINI</b>';
else
echo 'Anda Berzodiak <b>CANCER</b>';
break;
case 7:
if($tanggal_lahir <= 22)
echo 'Anda Berzodiak <b>CANCER</b>';
else
echo 'Anda Berzodiak <b>LEO</b>';
break;
case 8:
if($tanggal_lahir <= 23)
echo 'Anda Berzodiak <b>LEO</b>';
else
echo 'Anda Berzodiak <b>VIRGO</b>';
break;
case 9:
if($tanggal_lahir <= 22)
echo 'Anda Berzodiak <b>VIRGO</b>';
else
echo 'Anda Berzodiak <b>LIBRA</b>';
break;
case 10:
if($tanggal_lahir <= 23)
echo 'Anda Berzodiak <b>LIBRA</b>';
else
echo 'Anda Berzodiak <b>SCORPIO</b>';
break;
case 11:
if($tanggal_lahir <= 22)
echo 'Anda Berzodiak <b>SCORPIO</b>';
else
echo 'Anda Berzodiak <b>SAGITARIUS</b>';
break;
case 12:
if($tanggal_lahir <= 21)
echo 'Anda Berzodiak <b>SAGITARIUS</b>';
else
echo 'Anda Berzodiak <b>CAPRICON</b>';
break;
default:
echo 'Zodiak Tidak Terdaftar';
break;
}
?>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$stok_roti = 100;
if($stok_roti <= 50){
echo '<script language= "javascript"> alert ("Stock Roti sudah menipis")</script>';
}
?>
<body>
</html>
Memunculkan Message box jika sudah dibawah 100
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$stok_roti = 50;
if($stok_roti <= 50){
echo '<script language= "javascript"> alert ("Stock Roti sudah menipis")</script>';
}
?>
<body>
</html>
Membuat stok baju dan celana dan memunculkan peringatan (message box) jika stok dibawah 10
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$baju = 9;
$celana = 9;
if($baju <= 10 && $celana <= 10){
echo '<script language= "javascript"> alert ("Stock baju dan celana sudah menipis")</script>';
}
?>
<body>
</html>
Menentukan sebuah bilangan genap dan ganjil
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$bil = 3;
if($bil % 2 != 0 ){
echo '<script language= "javascript"> alert ("3 adalah Bilangan Ganjil")</script>';
}
?>
<body>
</html>
Praktikum 3.2 percabangan if..else
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtmll/DTD/xhtmll-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Praktikum 3. Struktur Kontrol </title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$umur = 12;
if(($umur < 20) && ($umur >10)){
echo 'Anda masih Remaja';
}else{
echo 'Anda bukan lagi Remaja';
}
?>
</body>
</html>
Praktikum 3.3 percabangan if..else if..else
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$bulan_lahir = 6;
if ($bulan_lahir == 1){
echo 'Anda lahir di bulan januari';
}else if ($bulan_lahir == 2){
echo 'Anda lahir di bulan Februari';
}else if ($bulan_lahir == 3){
echo 'Anda lahir di bulan Maret';
}else if ($bulan_lahir == 4){
echo 'Anda lahir di bulan April';
}else if ($bulan_lahir == 5){
echo 'Anda lahir di bulan Mei';
}else if ($bulan_lahir == 6){
echo 'Anda lahir di bulan Juni';
}else if ($bulan_lahir == 7){
echo 'Anda lahir di bulan Juli';
}else if ($bulan_lahir == 8){
echo 'Anda lahir di bulan Agustus';
}else if ($bulan_lahir == 9){
echo 'Anda lahir di bulan September';
}else if ($bulan_lahir == 10){
echo 'Anda lahir di bulan Oktober';
}else if ($bulan_lahir == 11){
echo 'Anda lahir di bulan November';
}else if ($bulan_lahir == 12){
echo 'Anda lahir di bulan Desember';
}else{
echo 'Bulan yang anda masukkan salah';
}
?>
</body>
</html>
Praktikum 3.4 percabagan if sembarang
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"xml:lang="on"lang="on">
<head>
<title>Praktikum 3.Struktur Kontrol</title>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$tanggal_lahir = 16;
$bulan_lahir = 6;
if ($bulan_lahir == 1){
if($tanggal_lahir <= 20)
echo 'Anda Berzodiak <b>CAPRICON</b>';
else
echo 'Anda Berzodiak <b>AQUARIUS</b>';
}else if ($bulan_lahir == 2){
if($tanggal_lahir <= 19)
echo 'Anda Berzodiak <b>AQUARIUS</b>';
else
echo 'Anda Berzodiak <b>PISCES</b>';
}else if ($bulan_lahir == 3){
if($tanggal_lahir <= 20)
echo 'Anda Berzodiak <b>PISCES</b>';
else
echo 'Anda Berzodiak <b>ARIES</b>';
}else if ($bulan_lahir == 4){
if($tanggal_lahir <= 19)
echo 'Anda Berzodiak <b>ARIES</b>';
else
echo 'Anda Berzodiak <b>TAURUS</b>';
}else if ($bulan_lahir == 5){
if($tanggal_lahir <= 20)
echo 'Anda Berzodiak <b>TAURUS</b>';
else
echo 'Anda Berzodiak <b>GEMINI</b>';
}else if ($bulan_lahir == 6){
if($tanggal_lahir <= 21)
echo 'Anda Berzodiak <b>GEMINI</b>';
else
echo 'Anda Berzodiak <b>CANCER</b>';
}else if ($bulan_lahir == 7){
if($tanggal_lahir <= 22)
echo 'Anda Berzodiak <b>CANCER</b>';
else
echo 'Anda Berzodiak <b>LEO</b>';
}else if ($bulan_lahir == 8){
if($tanggal_lahir <= 23)
echo 'Anda Berzodiak <b>LEO</b>';
else
echo 'Anda Berzodiak <b>VIRGO</b>';
}else if ($bulan_lahir == 9){
if($tanggal_lahir <= 22)
echo 'Anda Berzodiak <b>VIRGO</b>';
else
echo 'Anda Berzodiak <b>LIBRA</b>';
}else if ($bulan_lahir == 10){
if($tanggal_lahir <= 23)
echo 'Anda Berzodiak <b>LIBRA</b>';
else
echo 'Anda Berzodiak <b>SCORPIO</b>';
}else if ($bulan_lahir == 11){
if($tanggal_lahir <= 22)
echo 'Anda Berzodiak <b>SCORPIO</b>';
else
echo 'Anda Berzodiak <b>SAGITARIUS</b>';
}else if ($bulan_lahir == 12){
if($tanggal_lahir <= 21)
echo 'Anda Berzodiak <b>SAGITARIUS</b>';
else
echo 'Anda Berzodiak <b>CAPRICON</b>';
}
?>
</body>
</html>
Praktikum 3.5 percabangan switch..case
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$hari_ini = 'Rabu';
switch ($hari_ini){
case 'Senin':
echo 'Hari Senin';
break;
case 'Selasa':
echo 'Hari Selasa';
break;
case 'Rabu':
echo 'Hari Rabu';
break;
case 'Kamis':
echo 'Hari Kamis';
break;
case 'Jumat':
echo 'Hari jumat';
break;
case 'Sabtu':
echo 'Hari Sabtu';
break;
case 'Minggu':
echo 'Hari Minggu';
break;
default:
echo 'Hari Tidak Terdaftar';
break;
}
?>
</body>
</html>
Pada praktikum 3.3 penggunaan if diganti dengan penggunaan switch..case
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$bulan_lahir = 6;
switch ($bulan_lahir){
case 1:
echo 'Anda lahir di bulan Januari';
break;
case 2:
echo 'Anda lahir di bulan Februari ';
break;
case 3:
echo 'Anda lahir di bulan Maret';
break;
case 4:
echo 'Anda lahir di bulan April';
break;
case 5:
echo 'Anda lahir di bulan Mei';
break;
case 6:
echo 'Anda lahir di bulan Juni';
break;
case 7:
echo 'Anda lahir di bulan Juli';
break;
case 8:
echo 'Anda lahir di bulan Agustus';
break;
case 9:
echo 'Anda lahir di bulan September';
break;
case 10:
echo 'Anda lahir di bulan Oktober';
break;
case 11:
echo 'Anda lahir di bulan November';
break;
case 12:
echo 'Anda lahir di bulan Desember';
break;
default:
echo 'bulan Tidak Terdaftar';
break;
}
?>
</body>
</html>
Pada praktikum 3.4 ubah menjadi switch...case dan if yang didalam tetap tanpa mengganti apapun
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="on" lang="on">
<head>
<tittle>Praktikum 3. Struktur Kontrol</tittle>
<meta http-equiv="content-type" content="text/html; charsct=utf-8" />
<meta name="generator" content="Geany 0.20" />
</head>
<body>
<?php
$tanggal_lahir = 16;
$bulan_lahir = 6;
switch ($bulan_lahir){
case 1:
if($tanggal_lahir <= 20)
echo 'Anda Berzodiak <b>CAPRICON</b>';
else
echo 'Anda Berzodiak <b>AQUARIUS</b>';
break;
case 2:
if($tanggal_lahir <= 19)
echo 'Anda Berzodiak <b>AQUARIUS</b>';
else
echo 'Anda Berzodiak <b>PISCES</b>';
break;
case 3:
if($tanggal_lahir <= 20)
echo 'Anda Berzodiak <b>PISCES</b>';
else
echo 'Anda Berzodiak <b>ARIES</b>';
break;
case 4:
if($tanggal_lahir <= 19)
echo 'Anda Berzodiak <b>ARIES</b>';
else
echo 'Anda Berzodiak <b>TAURUS</b>';
break;
case 5:
if($tanggal_lahir <= 20)
echo 'Anda Berzodiak <b>TAURUS</b>';
else
echo 'Anda Berzodiak <b>GEMINI</b>';
break;
case 6:
if($tanggal_lahir <= 21)
echo 'Anda Berzodiak <b>GEMINI</b>';
else
echo 'Anda Berzodiak <b>CANCER</b>';
break;
case 7:
if($tanggal_lahir <= 22)
echo 'Anda Berzodiak <b>CANCER</b>';
else
echo 'Anda Berzodiak <b>LEO</b>';
break;
case 8:
if($tanggal_lahir <= 23)
echo 'Anda Berzodiak <b>LEO</b>';
else
echo 'Anda Berzodiak <b>VIRGO</b>';
break;
case 9:
if($tanggal_lahir <= 22)
echo 'Anda Berzodiak <b>VIRGO</b>';
else
echo 'Anda Berzodiak <b>LIBRA</b>';
break;
case 10:
if($tanggal_lahir <= 23)
echo 'Anda Berzodiak <b>LIBRA</b>';
else
echo 'Anda Berzodiak <b>SCORPIO</b>';
break;
case 11:
if($tanggal_lahir <= 22)
echo 'Anda Berzodiak <b>SCORPIO</b>';
else
echo 'Anda Berzodiak <b>SAGITARIUS</b>';
break;
case 12:
if($tanggal_lahir <= 21)
echo 'Anda Berzodiak <b>SAGITARIUS</b>';
else
echo 'Anda Berzodiak <b>CAPRICON</b>';
break;
default:
echo 'Zodiak Tidak Terdaftar';
break;
}
?>
</body>
</html>
Kamis, 05 April 2012
POP Quis 2
1.Apa yang dimaksud proses menurut silberschthatz?
Menurut Silberschatz, suatu proses adalah lebih dari sebuah kode program, yang terkadang disebut text section. proses juga mencakup program counter, yaitu sebuah stack untuk menyimpan alamat dari instruksi yang akan dieksekusi selanjutnya dan register. Sebuah proses pada umumnya juga memiliki sebuah stack yang berisikan data-data yang dibutuhkan selama proses dieksekusi seperti parameter metoda, alamat return dan variabel lokal, dan sebuah data section yang menyimpan variabel global.
2.Jelaskan perbedaan antara proses dan program menurut Tanenbaum?
Perbedaan antara proses dan program menurut Tanenbaum.
suatu program adalah satu entitas pasif; seperti isi dari sebuah berkas yang disimpan didalam disket. Sedangkan sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang menyimpan alamat instruksi selanjut yang akan dieksekusi dan seperangkat sumber daya (resource) yang dibutuhkan agar sebuah proses dapat dieksekusi.
3.Jelaskan kegiatan,pembuatan proses,terminasi proses,status proses, dan proses control block?
Pembuatan Proses
Ketika sebuah proses membuat proses baru maka terdapat dua kemungkinan dalam pelaksanaannya:
1. orang tua proses tersebut berjalan secara konkuren dengan proses anaknya.
2. orang tua proses tersebut menunggu hingga beberapa atau seluruh proses anakannya selesai.
Juga terdapat dua kemungkinan dalam pemberian ruang alamat (address space) proses yang baru:
1. proses tersebut merupakan duplikasi orang tuanya.
2. proses tersebut memiliki program yang diload ke ruang alamatnya.
Terminasi Proses
Suatu parent dapat mengakhiri eksekusi salah satu children-nya untuk alasan-alasan seperti:
• Child melampaui penggunaan resource yang telah dialokasikan. Dalam keadaan ini, parent perlu
mempunyai mekanisme untuk memeriksa status children-nya.
• Task yang ditugaskan kepada child tidak lagi diperlukan.
• Parent berakhir dan sistem operasi tidak memperbolehkan suatu child untuk tetap menjalankan
proses jika parent-nya sudah tidak ada. Jadi, jika suatu proses berakhir, maka semua
children-nya juga harus diterminasi. Fenomena yang disebut cascading termination ini biasanya
dimulai oleh sistem operasi.
Status Proses
Bila sebuah proses dieksekusi, maka statusnya akan berubah-ubah. Status dari sebuah proses mencerminkan aktivitas atau keadaan dari proses itu sendiri. Berikut ini adalah status-status yang
mungkin dimiliki sebuah proses menurut Tanenbaum:
• Running: pada saat menggunakan CPU pada suatu waktu.
• Ready: proses diberhentikan sementara karena menunggu proses lain untuk dieksekusi.
• Blocked: tidak dijalankan sampai event dari luar, yang berhubungan dengan proses tersebut
terjadi.
Sedangkan menurut Silberschatz, terdapat lima macam jenis status yang mungkin dimiliki oleh
suatu proses:
• New: status yang dimiliki pada saat proses baru saja dibuat.
• Running: status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi.
• Waiting: status yang dimiliki pada saat proses menunggu suatu event (contohnya: proses M/K).
• Ready: status yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor.
• Terminated: status yang dimiliki pada saat proses telah selesai dieksekusi.
Ada tiga kemungkinan bila sebuah proses memiliki status running:
• Jika program telah selesai dieksekusi maka status dari proses tersebut akan berubah menjadi
Terminated.
• Jika waktu yang disediakan oleh OS untuk proses tersebut sudah habis maka akan terjadi
interrupt dan proses tersebut kini berstatus Ready.
• Jika suatu event terjadi pada saat proses dieksekusi (seperti ada request M/K) maka proses
tersebut akan menunggu event tersebut selesai dan proses berstatus Waiting.
Process Control Block
• Status proses: status mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
• Program counter: suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi
untuk proses ini.
• CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer.
Register tersebut termasuk accumulator, register indeks, stack pointer, general-purposes register, ditambah code information pada kondisi apa pun. Beserta dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya
• Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari
dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung pada sistem memori
yang digunakan oleh sistem operasi (lihat Bagian V, “Memori”).
• Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan,
batas waktu, jumlah akun jumlah job atau proses, dan banyak lagi.
• Informasi status M/K: Informasi termasuk daftar dari perangkat M/K yang di gunakan pada
proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
• PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses
yang satu dengan yang lain.
Menurut Silberschatz, suatu proses adalah lebih dari sebuah kode program, yang terkadang disebut text section. proses juga mencakup program counter, yaitu sebuah stack untuk menyimpan alamat dari instruksi yang akan dieksekusi selanjutnya dan register. Sebuah proses pada umumnya juga memiliki sebuah stack yang berisikan data-data yang dibutuhkan selama proses dieksekusi seperti parameter metoda, alamat return dan variabel lokal, dan sebuah data section yang menyimpan variabel global.
2.Jelaskan perbedaan antara proses dan program menurut Tanenbaum?
Perbedaan antara proses dan program menurut Tanenbaum.
suatu program adalah satu entitas pasif; seperti isi dari sebuah berkas yang disimpan didalam disket. Sedangkan sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang menyimpan alamat instruksi selanjut yang akan dieksekusi dan seperangkat sumber daya (resource) yang dibutuhkan agar sebuah proses dapat dieksekusi.
3.Jelaskan kegiatan,pembuatan proses,terminasi proses,status proses, dan proses control block?
Pembuatan Proses
Ketika sebuah proses membuat proses baru maka terdapat dua kemungkinan dalam pelaksanaannya:
1. orang tua proses tersebut berjalan secara konkuren dengan proses anaknya.
2. orang tua proses tersebut menunggu hingga beberapa atau seluruh proses anakannya selesai.
Juga terdapat dua kemungkinan dalam pemberian ruang alamat (address space) proses yang baru:
1. proses tersebut merupakan duplikasi orang tuanya.
2. proses tersebut memiliki program yang diload ke ruang alamatnya.
Terminasi Proses
Suatu parent dapat mengakhiri eksekusi salah satu children-nya untuk alasan-alasan seperti:
• Child melampaui penggunaan resource yang telah dialokasikan. Dalam keadaan ini, parent perlu
mempunyai mekanisme untuk memeriksa status children-nya.
• Task yang ditugaskan kepada child tidak lagi diperlukan.
• Parent berakhir dan sistem operasi tidak memperbolehkan suatu child untuk tetap menjalankan
proses jika parent-nya sudah tidak ada. Jadi, jika suatu proses berakhir, maka semua
children-nya juga harus diterminasi. Fenomena yang disebut cascading termination ini biasanya
dimulai oleh sistem operasi.
Status Proses
Bila sebuah proses dieksekusi, maka statusnya akan berubah-ubah. Status dari sebuah proses mencerminkan aktivitas atau keadaan dari proses itu sendiri. Berikut ini adalah status-status yang
mungkin dimiliki sebuah proses menurut Tanenbaum:
• Running: pada saat menggunakan CPU pada suatu waktu.
• Ready: proses diberhentikan sementara karena menunggu proses lain untuk dieksekusi.
• Blocked: tidak dijalankan sampai event dari luar, yang berhubungan dengan proses tersebut
terjadi.
Sedangkan menurut Silberschatz, terdapat lima macam jenis status yang mungkin dimiliki oleh
suatu proses:
• New: status yang dimiliki pada saat proses baru saja dibuat.
• Running: status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi.
• Waiting: status yang dimiliki pada saat proses menunggu suatu event (contohnya: proses M/K).
• Ready: status yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor.
• Terminated: status yang dimiliki pada saat proses telah selesai dieksekusi.
Ada tiga kemungkinan bila sebuah proses memiliki status running:
• Jika program telah selesai dieksekusi maka status dari proses tersebut akan berubah menjadi
Terminated.
• Jika waktu yang disediakan oleh OS untuk proses tersebut sudah habis maka akan terjadi
interrupt dan proses tersebut kini berstatus Ready.
• Jika suatu event terjadi pada saat proses dieksekusi (seperti ada request M/K) maka proses
tersebut akan menunggu event tersebut selesai dan proses berstatus Waiting.
Process Control Block
• Status proses: status mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
• Program counter: suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi
untuk proses ini.
• CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer.
Register tersebut termasuk accumulator, register indeks, stack pointer, general-purposes register, ditambah code information pada kondisi apa pun. Beserta dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya
• Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari
dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung pada sistem memori
yang digunakan oleh sistem operasi (lihat Bagian V, “Memori”).
• Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan,
batas waktu, jumlah akun jumlah job atau proses, dan banyak lagi.
• Informasi status M/K: Informasi termasuk daftar dari perangkat M/K yang di gunakan pada
proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
• PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses
yang satu dengan yang lain.
4.Sebutkan 8 komponen OS menurut siberschtatz?
• Managemen Proses.
• Managemen Memori Utama.
• Managemen Berkas.
• Managemen Sistem Masukan/Keluaran.
• Managemen Penyimpanan Sekunder.
• Sistem Proteksi.
• Jaringan.
• Command-Interpreter System.
5.Sebutkan 4 komponen proses menurut Tanenbaum?
• Managemen proses,
• Masukan/Keluaran
• Managemen Memori, dan
• Sistem Berkas.
6.Sebutkan kegiatan atau aktivitas dari : Manajemen proses,manajemen berkas,manajemen I/O,manajemen penyimpanan sekunder,sistem proteksi dan manajemen memori?
Manajemen proses:
• Membuat dan menghapus proses pengguna dan sistem proses.
• Menunda atau melanjutkan proses.
• Menyediakan mekanisme untuk proses sinkronisasi.
• Menyediakan mekanisme untuk proses komunikasi.
• Menyediakan mekanisme untuk penanganan deadlock.
Manajemen berkas:
• Pembuatan dan penghapusan berkas.
• Pembuatan dan penghapusan direktori.
• Mendukung manipulasi berkas dan direktori.
• Memetakan berkas ke secondary-storage.
Managemen I/O
• Penyangga: menampung sementara data dari/ke perangkat Masukan/Keluaran.
• Spooling: melakukan penjadualan pemakaian Masukan/Keluaran sistem supaya lebih efisien (antrian dsb.).
• Menyediakan driver: untuk dapat melakukan operasi rinci untuk perangkat keras Masukan/Keluaran tertentu.
Managemen Penyimpanan Sekunder
• free-space management.
• alokasi penyimpanan.
• penjadualan disk.
Sistem proteksi :
• Membedakan antara penggunaan yang sudah diberi izin dan yang belum.
• Menyediakan alat untuk pemberlakuan sistem.
• Menspesifikasi kontrol untuk dibebankan/diberi tugas.
Manajemen memori :
• Menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya.
• Memilih program yang akan di-load ke memori.
• Managemen Proses.
• Managemen Memori Utama.
• Managemen Berkas.
• Managemen Sistem Masukan/Keluaran.
• Managemen Penyimpanan Sekunder.
• Sistem Proteksi.
• Jaringan.
• Command-Interpreter System.
5.Sebutkan 4 komponen proses menurut Tanenbaum?
• Managemen proses,
• Masukan/Keluaran
• Managemen Memori, dan
• Sistem Berkas.
6.Sebutkan kegiatan atau aktivitas dari : Manajemen proses,manajemen berkas,manajemen I/O,manajemen penyimpanan sekunder,sistem proteksi dan manajemen memori?
Manajemen proses:
• Membuat dan menghapus proses pengguna dan sistem proses.
• Menunda atau melanjutkan proses.
• Menyediakan mekanisme untuk proses sinkronisasi.
• Menyediakan mekanisme untuk proses komunikasi.
• Menyediakan mekanisme untuk penanganan deadlock.
Manajemen berkas:
• Pembuatan dan penghapusan berkas.
• Pembuatan dan penghapusan direktori.
• Mendukung manipulasi berkas dan direktori.
• Memetakan berkas ke secondary-storage.
Managemen I/O
• Penyangga: menampung sementara data dari/ke perangkat Masukan/Keluaran.
• Spooling: melakukan penjadualan pemakaian Masukan/Keluaran sistem supaya lebih efisien (antrian dsb.).
• Menyediakan driver: untuk dapat melakukan operasi rinci untuk perangkat keras Masukan/Keluaran tertentu.
Managemen Penyimpanan Sekunder
• free-space management.
• alokasi penyimpanan.
• penjadualan disk.
Sistem proteksi :
• Membedakan antara penggunaan yang sudah diberi izin dan yang belum.
• Menyediakan alat untuk pemberlakuan sistem.
• Menspesifikasi kontrol untuk dibebankan/diberi tugas.
Manajemen memori :
• Menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya.
• Memilih program yang akan di-load ke memori.
Selasa, 03 April 2012
Rangkuman Sistem Operasi
BAGIAN
1 KONSEP DASAR PERANGKAT KOMPUTER
Sistem operasi adalah
perangkat lunak komputer atau software yang bertugas untuk melakukan kontrol
dan manajemen perangkat keras dan juga operasi-operasi dasar sistem, termasuk
menjalankan software aplikasi seperti program-program pengolah data yang bisa digunakan
untuk mempermudah kegiatan manusia. Sistem Operasi dalam bahasa Inggrisnya
disebut Operating System, atau biasa di singkat dengan OS.
Sejarah perkembangan
Arsitektur
perangkat keras komputer tradisional terdiri dari empat komponen utama yaitu
"Prosesor",
"Memori Penyimpanan", "Masukan" (Input), dan
"Keluaran" (Output). Model
tradisional
tersebut sering dikenal dengan nama arsitektur von Neumann (Gambar 1.2, “Arsitektur
Komputer von
Neumann”). Pada saat awal, komputer berukuran sangat besar sehingga
komponen-komponennya
dapat memenuhi sebuah ruangan yang sangat besar. Sang pengguna --
menjadi
programer yang sekali gus merangkap menjadi menjadi operator komputer -- juga
bekerja
di dalam ruang
komputer tersebut.
Alasan
mempelajari sistem operasi
Hal yang paling
terlihat secara kasat mata ialah perubahan (pengecilan) fisik yang luar biasa. Penggunaan
memori dan disk pun meningkat dengan tajam, terutama setelah multimedia mulai dimanfaatkan
sebagai antarmuka interaksi. Saat dahulu, setiap arsitektur komputer memiliki
sistem operasinya yang tersendiri. Jika dewasa ini telah terjadi penciutan arsitektur
yang luar biasa, dengan sendirinya menciutkan jumlah variasi sistem operasi.
Hal ini ditambah dengan trend sistem operasi yang dapat berjalan diberbagai
jenis arsitektur. Sebagian dari pembaca yang budiman mungkin mulai bernalar:
mengapa hari gini (terpaksa) mempelajari sistem operasi?! Secara pasti-pasti, dimana
relevansi dan "job (duit)"-nya?Terlepas dari perubahan
tersebut di atas; banyak aspek yang tetap sama seperti dahulu. Komputer abad
lalu menggunakan model arsitektur von-Neumann, dan demikian pula model komputer
abad ini. Aspek pengelolaan sumber daya sistem operasi seperti proses, memori,
masukan/keluaran (m/k), berkas, dan seterusnya masih menggunakan
prinsip-prinsip yang sama. Dengan sendirinya, mempelajari sistem operasi masih
tetap serelevan abad lalu; walaupun telah terjadi berbagai perubahan fisik.
Hak kekayaan Intelektual
(IPR). Istilah
tersebut terdiri dari tiga kata kunci yaitu: ''Hak'', ''Kekayaan'' dan
''Intelektual''. Kekayaan merupakan abstraksi yang dapat: dimiliki, dialihkan,
dibeli, maupun dijual. Sedangkan ''Kekayaan Intelektual'' merupakan kekayaan
atas segala hasil produksi kecerdasan daya pikir seperti teknologi,
pengetahuan, seni, sastra, gubahan lagu, karya tulis, karikatur, dan
seterusnya. Terakhir, ''Hak Kekayaan Intelektual'' (HKI) merupakan hak-hak (wewenang/kekuasaan)
untuk berbuat sesuatu atas Kekayaan Intelektual tersebut, yang diatur oleh norma-norma
atau hukum-hukum yang berlaku.
HKI
perangkat lunak
perangkat lunak,
sangat umum perusahaan besar memiliki portfolio paten yang berjumlah ratusan,
bahkan ribuan. Sebagian besar perusahaan-perusahaan ini memiliki perjanjian
cross-licensing, artinya Saya izinkan anda menggunakan paten saya asalkan saya
boleh menggunakan paten anda. Akibatnya hukum paten pada industri perangkat
lunak sangat merugikan perusahaan-perusahaan kecil yang cenderung tidak
memiliki paten. Tetapi ada juga perusahaan kecil yang menyalahgunakan hal ini.
Misalnya Eolas yang mematenkan teknologi plug-in pada web browser. Untuk kasus
ini, Microsoft tidak dapat menyerang balik Eolas, karena Eolas sama sekali
tidak membutuhkan paten yang dimiliki oleh Microsoft. Eolas bahkan sama sekali
tidak memiliki produk atau layanan, satu-satunya hal yang dimiliki Eolas
hanyalah paten tersebut. Oleh karena itu, banyak pihak tidak setuju terhadap
paten perangkat lunak karena sangatmerugikan industri perangkat lunak. Sebuah
paten berlaku di sebuah negara. Jika sebuah perusahaan ingin patennya berlaku
di Negara lain, maka perusahaan tersebut harus mendaftarkan patennya di negara
lain tersebut. Tidak seperti hak cipta, paten harus didaftarkan terlebih dahulu
sebelum berlaku.
Perangkat Keras
Komputer
Hirarki
Storage
1.
Register
2.
Cache
3.
RAM
4.
Extension Memory
5.
Magnetik disk
6.
Optical Disk
7.
Magnetic Tapes
BAGIAN
2 KONSEP DASAR SISTEM OPERASI
Komponen Sistem Operasi
Tidak semua sistem operasi mempunyai
struktur yang sama. Namun menurut Avi Silberschatz,
Peter Galvin,
dan Greg Gagne, umumnya sebuah sistem operasi modern mempunyai komponen
sebagai berikut:
• Managemen
Proses.
• Managemen
Memori Utama.
• Managemen
Berkas.
• Managemen
Sistem Masukan/Keluaran.
• Managemen
Penyimpanan Sekunder.
• Sistem
Proteksi.
• Jaringan.
• Command-Interpreter
System.
Sedangkan
menurut A.S. Tanenbaum, sistem operasi mempunyai empat komponen utama, yaitu:
• Managemen
proses,
•
Masukan/Keluaran
• Managemen
Memori, dan
• Sistem Berkas.
Fungsi dari komponen sistem operasi
1. Managemen
Proses adalah Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang
berkaitan dengan managemen proses
seperti:
• Membuat dan
menghapus proses pengguna dan sistem proses.
• Menunda atau
melanjutkan proses.
• Menyediakan
mekanisme untuk proses sinkronisasi.
• Menyediakan
mekanisme untuk proses komunikasi.
• Menyediakan
mekanisme untuk penanganan deadlock.
2. Managemen
Memori Utama adalah Sistem operasi bertanggung-jawab atas aktivitas-aktivitas
yang berkaitan dengan managemen memori seperti:
• Menjaga track
dari memori yang sedang digunakan dan siapa yang menggunakannya.
• Memilih
program yang akan di-load ke memori.
3. Managemen
Berkas adalah Sistem operasi bertanggung-jawab dalam aktivitas yang berhubungan
dengan managemen berkas:
• Pembuatan dan
penghapusan berkas.
• Pembuatan dan
penghapusan direktori.
• Mendukung
manipulasi berkas dan direktori.
• Memetakan
berkas ke secondary-storage.
• Mem-back-up
berkas ke media penyimpanan yang permanen (non-volatile).
4. Managemen
Sistem Masukan/Keluaran adalah Komponen Sistem Operasi untuk sistem
Masukan/Keluaran:
• Penyangga:
menampung sementara data dari/ke perangkat Masukan/Keluaran.
• Spooling:
melakukan penjadualan pemakaian Masukan/Keluaran sistem supaya lebih efisien
(antrian dsb.).
• Menyediakan driver:
untuk dapat melakukan operasi rinci untuk perangkat keras
Masukan/Keluaran
tertentu.
5. Managemen
Penyimpanan Sekunder adalah Sistem operasi bertanggung-jawab atas
aktivitas-aktivitas yang berkaitan dengan managemen disk
seperti:
• free-space
management.
•
alokasi penyimpanan.
• penjadualan
disk.
6. Sistem Proteksi
Proteksi mengacu pada mekanisme
untuk mengontrol akses yang dilakukan oleh program, prosesor, atau pengguna ke
sistem sumber daya. Mekanisme proteksi harus:
• Membedakan antara penggunaan yang
sudah diberi izin dan yang belum.
• Menspesifikasi kontrol untuk
dibebankan/diberi tugas.
• Menyediakan
alat untuk pemberlakuan sistem.
7. Jaringan
Sistem
terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori, atau clock.
Setiap prosesor mempunyai memori dan clock tersendiri. Prosesor-prosesor
tersebut terhubung melalui jaringan komunikasi Sistem terdistribusi menyediakan
akses pengguna ke bermacam sumber-daya sistem. Akses tersebut menyebabkan
peningkatan kecepatan komputasi dan meningkatkan kemampuan penyediaan data.
8. Command-Interpreter
System
Sistem Operasi
menunggu instruksi dari pengguna (command driven). Program yang membaca instruksi
dan mengartikan control statements umumnya disebut: control-card interpreter,
command-line interpreter dan terkadang dikenal sebagai shell. Command-Interpreter
System sangat bervariasi dari satu sistem operasi ke sistem operasi yang
lain dan disesuaikan dengan tujuan dan teknologi perangkat Masukan/Keluaran
yang ada. Contohnya: CLI, Windows, Pen-based (touch),
dan lain-lain.
Layanan
Sistem Operasi
1. Pembuatan
Program
2. Eksekusi
Program
3. Operasi
Masukan/Keluaran
4. Manipulasi
Sistem Berkas
5. Komunikasi
6. Deteksi
Error
System
Program
System
program menyediakan lingkungan yang memungkinkan
pengembangan program dan eksekusi berjalan dengan baik. Dapat dikategorikan:
•
Managemen/manipulasi berkas Membuat, menghapus, copy, rename, print,
memanipulasi berkas dan direktori.
• Informasi
status Beberapa program meminta informasi tentang tanggal, jam, jumlah memori
dan disk yang tersedia, jumlah pengguna dan informasi lain yang sejenis.
• Modifikasi
berkas Membuat berkas dan memodifikasi isi berkas yang disimpan pada disk atau
tape.
• Pendukung bahasa
pemrograman Kadang kala compiler, assembler, interpreter dari
bahasa pemrograman diberikan kepada pengguna
dengan bantuan sistem operasi.
• Loading dan
eksekusi program Ketika program di-assembly atau di-compile,
program tersebut harus di load ke dalam memori untuk dieksekusi. Untuk
itu sistem harus menyediakan absolute loaders, relocatable loaders,
linkage editors, dan overlay loaders.
• Komunikasi
Menyediakan
mekanisme komunikasi antara proses, pengguna, dan sistem komputer yang berbeda.
Sehingga pengguna bisa mengirim pesan, browse web pages, mengirim
e-mail, atau mentransfer berkas.
BAGIAN
3 PROSES DAN PENJADUALAN
Pembuatan
Proses
Ketika sebuah proses membuat proses
baru maka terdapat dua kemungkinan dalam pelaksanaannya:
1. orang tua
proses tersebut berjalan secara konkuren dengan proses anaknya.
2. orang tua
proses tersebut menunggu hingga beberapa atau seluruh proses anakannya selesai.
Juga terdapat
dua kemungkinan dalam pemberian ruang alamat (address space) proses yang baru:
1. proses
tersebut merupakan duplikasi orang tuanya.
2. proses
tersebut memiliki program yang diload ke ruang alamatnya.
Terminasi
Proses
Suatu
parent dapat mengakhiri eksekusi salah satu children-nya untuk alasan-alasan
seperti:
• Child melampaui penggunaan
resource yang telah dialokasikan. Dalam keadaan ini, parent perlu
mempunyai mekanisme untuk memeriksa
status children-nya.
• Task yang ditugaskan kepada child
tidak lagi diperlukan.
• Parent berakhir dan sistem
operasi tidak memperbolehkan suatu child untuk tetap menjalankan
proses jika parent-nya sudah tidak
ada. Jadi, jika suatu proses berakhir, maka semua
children-nya juga harus
diterminasi. Fenomena yang disebut cascading termination ini biasanya
dimulai oleh sistem operasi.
Status
Proses
Bila sebuah
proses dieksekusi, maka statusnya akan berubah-ubah. Status dari sebuah proses mencerminkan
aktivitas atau keadaan dari proses itu sendiri. Berikut ini adalah
status-status yang
mungkin dimiliki
sebuah proses menurut Tanenbaum:
• Running:
pada saat menggunakan CPU pada suatu waktu.
• Ready:
proses diberhentikan sementara karena menunggu proses lain untuk dieksekusi.
• Blocked:
tidak dijalankan sampai event dari luar, yang berhubungan dengan proses
tersebut
terjadi.
Sedangkan
menurut Silberschatz, terdapat lima macam jenis status yang mungkin dimiliki
oleh
suatu proses:
• New:
status yang dimiliki pada saat proses baru saja dibuat.
• Running:
status yang dimiliki pada saat instruksi-instruksi dari sebuah proses
dieksekusi.
• Waiting:
status yang dimiliki pada saat proses menunggu suatu event (contohnya: proses
M/K).
• Ready:
status yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor.
• Terminated:
status yang dimiliki pada saat proses telah selesai dieksekusi.
Ada tiga kemungkinan bila sebuah
proses memiliki status running:
• Jika program telah selesai
dieksekusi maka status dari proses tersebut akan berubah menjadi
Terminated.
• Jika waktu yang disediakan oleh
OS untuk proses tersebut sudah habis maka akan terjadi
interrupt dan
proses tersebut kini berstatus Ready.
• Jika suatu event terjadi pada
saat proses dieksekusi (seperti ada request M/K) maka proses
tersebut akan
menunggu event tersebut selesai dan proses berstatus Waiting.
Process
Control Block
• Status proses:
status mungkin, new, ready, running, waiting, halted,
dan juga banyak lagi.
• Program
counter: suatu stack yang berisi alamat dari instruksi selanjutnya
untuk dieksekusi
untuk proses
ini.
• CPU
register: Register bervariasi dalam jumlah dan jenis, tergantung pada
rancangan komputer.
Register
tersebut termasuk accumulator, register indeks, stack pointer, general-purposes
register, ditambah code information pada kondisi apa pun. Beserta
dengan program counter, keadaan/status informasi harus disimpan
ketika gangguan terjadi, untuk memungkinkan proses tersebut
berjalan/bekerja dengan benar setelahnya
• Informasi
managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai
dari
dasar dan batas
register, tabel page/halaman, atau tabel segmen tergantung pada sistem memori
yang digunakan
oleh sistem operasi (lihat Bagian V, “Memori”).
• Informasi
pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang
digunakan,
batas waktu,
jumlah akun jumlah job atau proses, dan banyak lagi.
• Informasi
status M/K: Informasi termasuk daftar dari perangkat M/K yang di gunakan pada
proses ini,
suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
• PCB hanya
berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari
proses
yang satu dengan
yang lain.
Hirarki
Proses
Sistem operasi
yang mendukung konsep proses harus menyediakan beberapa cara untuk membuat seluruh
proses yang dibutuhkan. Pada sistem yang simple atau sistem yang didisain untuk
menjalankan applikasi sederhana, sangat mungkin untuk mendapatkan seluruh
proses yang akan dibutuhkan itu, terjadi pada waktu sistem dimulai. Pada kebanyakan
system bagaimanapun juga beberapa cara dibutuhkan untuk membuat dan
menghacurkan selama operasi.
Konsep
Penjadualan
Multiprogramming
bertujuan untuk memaksimalkan penggunaan CPU dengan
cara mengatur alokasi waktu yang digunakan oleh CPU, sehingga proses berjalan
sepanjang waktu dan memperkecil waktu idle. Untuk sistem yang bersifat
prosesor tunggal (uniprosesor), hanya ada satu proses yang dapat
berjalan setiap waktunya. Jika proses yang ada lebih dari satu, maka proses
yang lain harus menunggu sampai CPU bebas dan siap untuk dijadualkan kembali.
Penjadualan
CPU
Kapan pun CPU
menjadi idle, sistem operasi harus memilih salah satu proses untuk masuk
kedalam antrian ready (siap)
untuk dieksekusi. Pemilihan tersebut dilakukan oleh penjadual short term.
Penjadualan memilih dari sekian proses yang ada di memori yang sudah siap
dieksekusi, den mengalokasikan CPU untuk mengeksekusinya.
Penjadualan Preemptive
Penjadualan CPU mungkin akan
dijalankan ketika proses:
1. Berubah dari running ke waiting
state
2. Berubah dari running ke ready
state
3. Berubah dari waiting ke ready
4. Terminates
Algoritma
Penjadualan 1
Algoritma
diperlukan untuk mengatur giliran proses-proses diready queue yang mengantri
untuk dialokasikan ke CPU. Terdapat berbagai macam algoritma,antara lain:
• First come
first serve
Algoritma ini
mendahulukan proses yang lebih dulu datang. Kelemahannya,waiting time
rata-rata cukup
lama.
• Shortest job
first
Algoritma ini
mendahulukan proses dengan CPU burst terkecil yang akan mengurangi waiting
time rata-rata.
• Priority
Algoritma ini
mendahulukan prioritas terbesar. Kelemahannya, prioritas kecil tidak mendapat
jatah CPU. Hal
ini dapat diatasi dengan aging,yaitu semakin lama menunggu,prioritas semakin
tinggi.
• Round Robin
Algoritma ini
menggilir proses-proses yang ada diantrian dengan jatah time quantum yang sama.
Jika waktu
habis,CPU dialokasikan keproses selanjutnya.
• Multilevel
Queue
Algoritma ini
membagi beberapa antrian yang akan diberi prioritas berdasarkan tingkatan.
Tingkatan lebih
tinggi menjadi prioritas utama.
• Multilevel
Feedback Queue
Pada dasarnya
sama dengan Multilevel Queue,bedanya pada algoritma ini diizinkan untuk
pindah antrian.
Algoritma
Penjadualan 2
Sistem hard
real-time biasa digunakan menyelesaikan critical task dengan jaminan waktu
tertentu.
Jika kebutuhan
waktu tidak terpenuhi, maka aplikasi akan gagal. Sistem operasi menggunakanmekanisme
resource reservation untuk menerima atau menolak suatu permintaan proses. Sistem
soft real-time memiliki kelonggaran waktu dibandingkan sistem hard real-time.
Sistem soft real-time dapat mengakibatkan delay yang lebih lama atau dapat
menyebabkan terjadinya starvation.
Langganan:
Postingan (Atom)