Penyeleksian Kondisi

Penyelekasian kondisi adalah salah satu elemen algoritma yang paling sederhana. Penyeleksian kondisi memungkinkan suatu pernyataan dieksekusi hanya jika kondisi terpenuhi atau tidak terpenuhi. Berikut flowchartnya :

A.      Pernyataan if .. then
digunakan untuk menguji sebuah kondisi. Bila kondisi yang diuji terpenuhi, program akan  menjalankan pernyataan-pernyataan tertentu, dan bila kondisi yang diuji salah, program akan berhenti dan tidak manjalankan apapun.
If kondisi
   (pernyataan-pernyataan yang dijalankan
  jika kondisi terpenuhi)
kondisi sendiri merupakan suatu ekspresi bertipe Boolean, artinya hanya dapat bernilai benar (true) atau salah (false).
Contoh :
If (x>0) then
      Writeln (‘x bilangan positif’)
Program ini akan menuliskan ‘x bilangan positif’ jika variabel x lebih besar daripada 0 dan akan berhenti atau tidak menjalankan pernyataan apapun jika x<0.

Contoh lain :
program tugas3;
uses crt;
var
   tipe,jenis : char;
begin
clrscr;
     writeln('  PROGRAM MENGHITUNG ANGSURAN RUMAH   ');
     writeln;
       write('Tipe Rumah [A,B,C,D]   = ');readln(tipe);
       write('Jenis Pembayaran [T/K] = ');readln(jenis);
       if tipe = 'A' then
       begin
          if jenis='T' then
          begin
          writeln('Harga Rumah = Rp. 50.000.000');
          end
          else if jenis='K' then
          begin
          writeln('Angsuran Per Bulan = Rp. 500.000');
          end;
       end
       else if tipe = 'B' then
        begin
         if jenis='T' then
          begin
          writeln('Harga Rumah = Rp.65.000.000');
          end
          else if jenis='K' then
          begin
          writeln('Angsuran Per Bulan = Rp. 650.000');
          end;
       end
       else if tipe = 'C' then
        begin
         if jenis='T' then
          begin
          writeln('Harga Rumah = Rp.75.000.000');
          end
          else if jenis='K' then
          begin
          writeln('Angsuran Per Bulan = Rp. 750.000');
          end;
       end
       else if tipe = 'D' then
        begin
         if jenis='T' then
          begin
          writeln('Harga Rumah = Rp.85.000.000');
          end
          else if jenis='K' then
          begin
          writeln('Angsuran Per Bulan = Rp. 850.000');
          end;
       end;
readln;
end.
Outputnya :
 











B.      IF tersarang (nested IF)
Struktur if tersarang merupakan bentuk dari suatu statement if berada didalam lingkungan statement if yang lainnya.
Bentuk statement if tersarang sebagai berikut :
if kondisi1 then
    begin
       if kondisi2 then
       begin
             Statement1
       end;
else statement2
End;
   Else
   Statement3;
Contoh :
Program untuk menghitung sewa sebuah Angkutan yang harga untuk 1 km pertama Rp. 4500,- dan selanjutnya 2000/km
program menghitung_sewa_angkutan;
uses crt;
const
     pertama = 4500;
     lanjut  = 2000;
var
   jarak,bayar : integer;
begin
clrscr;
     writeln(' PROGRAM MENGHITUNG SEWA ANGKUTAN ');
     writeln;
   write('Jarak Tempuh (Km) = ');readln(jarak);
   if jarak>1 Then
   begin
     bayar := pertama + (jarak * lanjut);
     end
   else
     bayar := pertama;
     writeln('Bayarnya = Rp. ',bayar);
readln;
end.

Outputnya :













C.      Pernyataan if .. then .. else ..
Digunakan untuk menguji sebuah kondisi. Bila kondisi yang diuji terpenuhi program akan menjalankan pernyataan-pernyataan tertentu, dan bila kondisi yang diuji salah, program akan menjalankan pernyataan-pernyataan lain.
Bentuk umum pernyataan ini adalah sebagai berikut :
If kondisi then
   Begin
(pernyataan-pernyataan yang dijalankan jika kondisi terpenuhi)
End
Else
Begin
   (pernyataan-pernyataan yang dijalankan jika kondisi TIDAK terpenuhi)
End;
   Contoh :
   If (x>0) then
   Writeln(‘x bilangan positif’)
   Else
   Writeln(‘x BUKAN bilangan positif’);
Program ini akan menuliskan ‘x bilangan positif’ jika variabel x lebih besar daripada 0 dan menuliskan ‘x BUKAN bilangan positif’ jika x lebih kecil atau sama dengan 0.
Pernyataan if .. else diatas tidak diletakkan diantara kata kunci begin dan end, karena pernyataan yang dieksekusi hanya satu baris, sedang untuk pernyataan lebih dari satu baris maka wajib diletakkan di antara kata kunci begin dan end.

Contoh lain :
Program menetukan bilangan terbesar dari tiga buah bilangan bulat

program bil_terbesar;
uses crt;
var
   bil1,bil2,bil3    : longint;
   terbesar          : longint;
begin
clrscr;
   writeln('PROGRAM MENCARI BILANGAN TERBESAR ');
   writeln('    MASUKKAN 3 BUAH BILANGAN     ');
   writeln;
   write(' Masukkan Bilangan Pertama = ');readln(bil1);
   write(' Masukkan Bilangan Kedua   = ');readln(bil2);
   write(' Masukkan Bilangan Ketiga  = ');readln(bil3);

   if(bil1>bil2) then
     terbesar:=bil1
     else terbesar:=bil2;

   if(terbesar>bil3)then
     terbesar:=terbesar
     else terbesar :=bil3;
   writeln;
      write(' Bilangan Yang Terbesar Adalah = ',terbesar);
   readln;
end.
Outputnya :









D.      Pernyataan if .. then .. else if .. then .. else ..

Dalam kasus-kasus tertentu, terdapat kondisi lebih dari dua yang tidak dimungkinkan menggunakan pernyataan if .. else. Oleh sebab itu, untuk menangani kasus tersebut digunakan pernytaan if .. else if

Contoh :

If (x>0) then

   Writeln (‘x bilangan positif’)

Else if (x<0) then

   Writeln (‘x bilangan negatif’)
Else
   Write (‘x adalah nol’);
Pada contoh diatas, mula-mula program mengecek nilai x > 0 atau tidak. Bila kondisi ini terpenuhi program akan menulis ‘x bilangan positif’, sebaliknya bila tidak terpenuhi program akan menjalankan pernyataan if kedua untuk mengecek nilai x < 0 atau tidak. Bila kondisi ini terpenuhi program akan menulis ‘x bilangan negatif’. Dan bila tidak terpenuhi, program menulis ‘x adalah nol’

Contoh lain :
Program menghitung gaji Karyawan pada PT XTZ jika diinput adalah nama dan Kode Jabatan dan pengeluarkan jabatan dan perincian gajinya ditetapkan berdasarkan jabatan
program PT_XYZ;
uses crt;
var
   kj             : string[5];
   gp,tt,tm,Total : longint;
   nama,jabatan   : string [30];
  begin
     clrscr;
     writeln('        PROGRAM MENGHITUNG GAJI KARYAWAN PT XYZ');
     writeln;
     write('Masukkan Nama Karyawan : ');readln(nama);
     write('Masukkan Kode Jabatan [DR,WD,MN,AS,KW]: '); readln(kj);
     writeln('');
        if kj= 'DR' Then
        begin
        jabatan:='Direktur';
        gp     :=3000000;
        tt     :=850000;
        tm     :=500000;
        end
     else if kj= 'WD' Then
        begin
        jabatan:='Wak.Direktur';
        gp     :=2500000;
        tt     :=800000;
        tm     :=500000;
        end
     else if kj= 'MN' Then
        begin
        jabatan:='Manajer';
        gp     :=2000000;
        tt     :=800000;
        tm     :=450000;
        end
      else if kj= 'AS' Then
        begin
        jabatan:='Asisten';
        gp     :=1500000;
        tt     :=700000;
        tm     :=400000;
        end
      else if kj= 'KW' Then
        begin
        jabatan:='Karyawan';
        gp     :=1000000;
        tt     :=500000;
        tm     :=300000;
        end;
      Total := gp + tt + tm;
      writeln('Nama Karyawan       = ',nama);
      writeln('Jabatan             = ',jabatan);
      writeln('Gaji Pokok          = ', gp);
      writeln('Tunjangan Transaksi = ', tt);
      writeln('Tunjangan Makan     = ', tm);
      writeln('Total Gaji          = Rp ', Total);
readln;
end.
Outputnya :
 











E.      Pernyataan Case

Digunakan untuk menyederhanakan konstruksi if .. else if yang terlalu banyak.

Bentuk umum pernyataan ini adalah sebagai berikut :

Case variabel kondisi of

Case – Label 1; statement 1;

Case – Label 2; statement 2;
Case – Label 3; statement 3;
Case – Label 4; statement 4;
........
........
Case – Label n; statement n;
End; {end dari case}

Contoh :
Program untuk Mengetahui informasi harga dan besar angsuran Rumah
uses crt;
var
  tipe,jenis : char;
begin
clrscr;
 writeln('    PROGRAM MENGHITUNG SEWA RUMAH JIKA DI KREDIT ');
  writeln;
  write('Tipe Rumah [A,B,C,D]    = ');readln(tipe);
  write('Jenis Pembayaran [T/K]  = ');readln(jenis);
   case upcase(tipe) of
   'A' : begin
     case upcase (jenis) of
     'T' : writeln('Harga Rumah        = Rp. 50.000.000');
     'K' : writeln('Angsuran Per Bulan = Rp. 500.000');
       end;
       end;
    'B' : begin
      case upcase(jenis) of
      'T' : writeln('Harga Rumah        = Rp. 65.000.000');
      'K' : writeln('Angsuran Per Bulan = Rp. 650.000');
        end;
        end;
    'C' : begin
      case upcase (jenis) of
      'T' : writeln('Harga Rumah        = Rp. 75.000.000');
      'K' : writeln('Angsuran Per Bulan = Rp. 750.000');
       end;
       end;
    'D' : begin
      case upcase (jenis) of
      'T' : writeln('Harga Rumah        = Rp. 85.000.000');
      'K' : writeln('Angsuran Per Bulan = Rp. 850.000');
        end;
        end;
     end;
readln;
end.
Outputnya :
 

Komentar

Postingan populer dari blog ini

Konsep Dasar Algoritma

Apa Itu Sistem Operasi Komputer ?

Perangkat Lunak Bebas (Free Software)