Translate to your languages

Selamat Datang . Suatu kehormatan bagi saya atas kunjungan ini. Saya sangat berharap kunjungan berikutnya.

29 Oktober 2008

PEMILIHAN


 

PEMILIHAN


 

Menganalisis kasus suatu masalah : menentukan kondisi boolean (bernilai true atau false) dan menentukan aksi yang dilakukan jika kondisi tersebut berlaku(memenuhi).

Kondisi Boolean     : suatu ekspresi relasional (ekspresi dengan operator relasional) yg bernilai true atau false bergantung pada nilai masing-masing operand yang terlibat di dalamnya.

Aksi yg dikerjakan bila kondisi boolean memenuhi dapat berupa pengisian nilai (assignment), kalkulasi, baca, tulis, dsb.


 

Penentuan kondisi boolean dan aksi yg dilakukan bergantung pada jumlah kasus yg terdapat pada masalah tsb : satu kasus, dua kasus, atau lebih dari dua kasus.


 

Tabel Translasi Notasi Algoritmik Pemilihan ke Notasi bahasa Pascal

Kelompok

Algoritmik

Pascal

Ket

1. IF-THEN

if <kondisi> then

aksi

endif

if kondisi then

aksi;

(*endif*)

Bila aksi lebih dari satu :

if kondisi then

begin

aksi1;

aksi2;


aksiN;


end; (*if*)

2. IF-THEN-

ELSE

if <kondisi> then

aksi1

else

aksi2

endif

if kondisi then

aksi1;

else

aksi2;

(* endif *)

 

3. CASE


 

case (nama)

<kond1> : aksi1

<kond2> : aksi2

.

.

.

<kondN> : aksiN

[otherwise aksiX]

Translasi cara 1 :

case nama of

nilai1 : aksi1;

nilai2 : aksi2;

.

.

.

nilaiN : aksiN;

[else aksiX]

end;

nilai1, nilai2,… adalah nilai yg bertipe integer, char atau boolean.

Translasi cara 2 :

if kondisi1 then

aksi1;

else


if kond2 then

aksi2;

else


Cara ini diterapkan bila kondisi berupa ekspresi yg operatornya bukan '=' atau bila operatornya '=' tetapi tetapan di ruas kanan '=' tidak bertipe integer, char boolean.


 

Contoh 1 : Algoritma menentukan sebuah bilangan bulat merupakan bilangan genap

ALGORITMIK

Algoritma BILANGAN_GENAP

{Mencetak pesan "bilangan genap" jika sebuah bilangan bulat yg dibaca dari piranti masukan merupakan bilangan genap}

DEKLARASI

bil : integer

DESKRIPSI

    read(bil)

    if bil mod 2 = 0 then

        write ('bilangan genap')

    endif


 

Pascal

PROGRAM BILANGAN_GENAP ;

( Mencetak pesan "bilangan genap" jika sebuah bilangan bulat yg dibaca dari piranti masukan merupakan bilangan genap )


 

uses wincrt;


 

(* DEKLARASI *)

var

bil : integer;


 

(* DESKRIPSI *)

Begin

writeln ("Ketikkan sembarang bilangan bulat : "); readln(bil);

if bil mod 2 = 0 then

writeln ('bilangan genap');

    (*end if *)

end.


 

Latihan :

Buatlah algoritma dan program dalam bahasa pascal, untuk menentukan bilangan terbesar(maksimum) dari dua buah bilangan!!!


 


 

Contoh 2 : Algoritma menentukan nama hari dari nomor harinya

ALGORITMIK

Algoritma NAMA_NAMA_HARI

{ Mencetak nama hari bila diberikan nomornya }

DEKLARASI

NoHari : integer [1..7]

DESKRIPSI

    read (NoHari)

    case (NoHari)

    NoHari=1    : write('Senin')

    NoHari=2    : write('Selasa')

    NoHari=3    : write('Rabu')

    NoHari=4    : write('Kamis')

    NoHari=5    : write('Jumat')

    NoHari=6    : write('Sabtu')

    NoHari=7    : write('Minggu')

    otherwise write (' Tidak ada Harinya !!! ')

    endcase


 

PASCAL

PROGRAM
NAMA_ HARI
;

( Mencetak nama hari bila diberikan nomornya )

Uses wincrt;

(* DEKLARASI *)

var


NoBulan : integer ;

(* DESKRIPSI *)

Begin


Write ('Masukkan nomor hari (1-7) : '); readln(NoBulan);


Case NoBulan of

    1     : writeln ('Senin');

    2     : writeln ('Selasa');

    3     : writeln ('Rabu');

    4     : writeln ('Kamis');

    5    : writeln ('Jumat');

    6    : writeln ('Sabtu');

    7    : writeln ('Minggu');

    else    writeln ('Tidak ada Harinya');

end;

end.


 


 

Contoh 3 : Algoritma menu empat persegi panjang

ALGORITMIK

Algoritma EMPAT_PERSEGI_PANJANG

{Algoritma untuk menampilkan menu perhitungan empat persegi panjang, memilih menu, dan melakukan proses perhitungan }

DEKLARASI

nomor_menu     : integer

panjang, lebar     : real

luas, keliling, diagonal : real

DESKRIPSI

    { Cetak Menu }

    write(' ************************************************** ')

    write('        MENU EMPAT PERSEGI PANJANG         ')

    write('            1. Hitung Luas                 ')

    write('            2. Hitung Keliling             ')

    write('            3. Hitung panjang diagonal         ')

    write('            4. Keluar dari Program             ')

    write(' *************************************************** ')

    write(' Masukkan pilihan anda dengan mengetikkan angka (1/2/3/4) ? ')

    read (nomor_menu)

    case (nomor_menu)

    nomor_menu =1    : read (panjang,lebar)

             luasßpanjang*lebar

             write('luas')

    nomor_menu =2    : read (panjang,lebar)

             kelilingß2*panjang + 2*lebar

             write('keliling')

    nomor_menu =3    : read (panjang,lebar)

             diagonalßsqrt(panjang*panjang + lebar*lebar)

             write('diagonal')

    nomor_menu =4    : write('Keluar dari program … sampai jumpa')

    endcase


 

PASCAL

PROGRAM EMPAT_PERSEGI_PANJANG;

(* Program untuk menampilkan menu perhitungan empat persegi panjang, memilih menu, dan melakukan proses perhitungan *)


 

Uses wincrt;

var

nomor_menu     : integer ;

panjang, lebar     : real;

luas, keliling, diagonal : real;

Begin

    writeln(' ******************************************************* ');

    writeln('        MENU EMPAT PERSEGI PANJANG         ');

    writeln('            1. Hitung Luas                 ');

    writeln('            2. Hitung Keliling             ');

    writeln('            3. Hitung panjang diagonal         ');

    writeln('            4. Keluar dari Program             ');

    writeln(' ******************************************************** ');

    write(' Masukkan pilihan anda dengan mengetikkan angka (1/2/3/4) ? ');    readln(nomor_menu);


 

    case nomor_menu of

    1    : begin

         Write('Panjang? '); readln(panjang);

         Write('Lebar? '); readln(lebar);

         Luas:=panjang*lebar;

         writeln('Luas = ',luas);

         end;

    2    : begin

         Write('Panjang? '); readln(panjang);

         Write('Lebar? '); readln(lebar);

         Keliling:=2*panjang + 2*lebar;

         writeln('Keliling = ', keliling);

         end;

    3    : begin

         Write('Panjang? '); readln(panjang);

         Write('Lebar? '); readln(lebar);

         Diagonal:=sqrt(panjang*panjang + lebar*lebar);

         writeln('Diagonal = ', diagonal);

         end;

    4    : writeln('Keluar dari program :-) sampai jumpa');


 

    end;

end.


 

TUGAS :

Buatlah Algoritma & Program menggunakan bahasa pascal untuk menentukan indeks nilai ujian, gunakan struktur IF-THEN-ELSE !!!


 

Rules :

Index A untuk nilai ≥ 80,

Index B untuk 70 ≤ nilai < 80,

Index C untuk 55 ≤ nilai < 70,

Index D untuk 40 ≤ nilai < 55,

Index E untuk nilai < 40.

Tidak ada komentar: