Senin, 23 April 2012

Laporan Praktikum PBW 5

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>


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>

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>














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.

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.

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.