if dan then


Slide III

Algoritma Pemilihan (Selection)

           

            Review – Type Data Boolean

Adalah mengembalikan nilai True (Benar) atau False (Salah)

Dik x = 2

x > 3 à False

x < 3 à True

Table Kebenaran

X

Y

AND

OR

T

T

T

T

T

F

F

T

F

T

F

T

F

F

F

F

Dik x = true, y = false

Tentukan nilai (x and y) or x

(T and F) or T

F or T à T

  1. Ilustrasi PEMILIHAN

Misalnya akan dibuat sebuah program sebagai berikut

 

 

 

 

Keterangan : Jika yang dipilih oleh user adalah menu ‘1’, maka program akan menampilkan harga sebesar 7.000. Jika yang dipilih oleh user adalah menu ‘2’, maka program akan menampilkan harga sebesar 8.000. Perhatikan, apabila yang dipilih adalah menu yang lain, maka programpun akan menampilkan daftar yang berbeda pula.

 

 

 

 

Diperlukan suatu mekanisme pemilihan agar program mampu merespon dengan baik  inputan dari user.

 

Algoritma diatas apabila di terjemahkan dalam bahasa natural adalah sebagai berikut

 

Jika input menu adalah 1, maka tuliskan ‘Harga : 7.000’

Selain itu, Jika input menu adalah 2, maka tuliskan ‘Harga : 8.000’

Selain itu, Jika input menu adalah 3, maka tuliskan ‘Harga : 9.000’

Selain itu, Jika input menu adalah 4, maka tuliskan ‘Harga : 6.000’

Selain itu, tuliskan ‘Menu yang anda inputkan salah’

 

  1. Seleksi menggunakan IF Then Else

 

Format umum dari IF Then Else adalah sbb

 

If Kondisi_1 terpenuhi Then Statement_1

Else If Kondisi_2 terpenuhi Then Statement_2

Else If Kondisi_3 terpenuhi Then Statement_3

Else If Kondisi_4 terpenuhi Then Statement_4

Else (Selain dari Kondisi diatas)

Statement Else

Apa Itu Kondisi?

Dalam contoh kasus diatas (program pemilihan menu) terdapat 5 buah Kondisi, yaitu :

Kondisi apabila yang dipilih adalah menu 1

Kondisi apabila yang dipilih adalah menu 2

Kondisi apabila yang dipilih adalah menu 3

Kondisi apabila yang dipilih adalah menu 4

Dan 1 buah Kondisi Else

Yaitu kondisi dimana menu yang dipilih selain menu 1,2,3 dan empat

 

Apa itu Statement ?

Dalam contoh kasus diatas (program pemilihan menu) terdapat sebuah statement untuk setiap kondisinya, yaitu :

Kondisi  menu 1 à statemennya adalah : harga 7.000

Kondisi  menu 2 à statemennya adalah : harga 8.000

Kondisi  menu 3 à statemennya adalah : harga 9.000

Kondisi  menu 4 à statemennya adalah : harga 6.000

Kondisi Else à statementnya adalah : menu yang anda inputkan salah

 

Dengan demikian contoh aplikasi diatas dapat dituliskan program utuhnya sbb

 

Program PilihMenu ;

Uses

wincrt;

var

Menu : char;

 

Begin

clrscr;

writeln(‘MENU :’);

writeln(‘1. Bakso’);

writeln(‘2. Mie Ayam’);

writeln(‘3. Siomay’);

writeln(‘4. Bubur Ayam’);

writeln;

 

write(‘Pilih Menu : ‘) ;

readln(Menu);

 

Kondisi 1

If Menu = ‘1’ then

 

Statement 1

Begin

write(‘Harga = 7.000’);

 

Kondisi 2

End

Else  If Menu = ‘2’ then

 

Statement 2

Begin

write(‘Harga = 8.000’);

 

Kondisi 3

End

Else  If Menu = ‘3’ then

 

Statement 3

Begin

write(‘Harga = 9.000’);

 

Kondisi 4

End

Else  If Menu = ‘4’ then

 

Statement 4

Begin

write(‘Harga = 6.000’);

 

Kondisi Else

End

else

 

Statement Else

Begin

write(‘Menu yang anda inputkan salah’);

End;

End.

 

 

 

 

  1. Contoh Program – Operasi Matematis

 

program PemilihanOperasi;

uses

wincrt;

var

Bil1 : integer;

Bil2 : integer;

Hasil  : Real;

Operasi : Char;

begin

write(‘Masukan Bilangan Pertama : ‘);

readln(Bil1);

write(‘Masukan Bilangan Kedua : ‘);

readln(Bil2);

writeln;

writeln(‘Operasi Matematika :’);

Writeln(‘1. Penjumlahan’);

Writeln(‘2. Pengurangan’);

Writeln(‘3. Perkalian’);

Writeln(‘4. Pembagian’);

write(‘Operasi yang diinginkan : ‘);

readln(Operasi);

 

If Operasi = ‘1’ Then

Begin

Hasil := Bil1 + Bil2 ;

write(Bil1, ‘ + ‘, Bil2, ‘ = ‘, Hasil:2:2);

End

Else If Operasi = ‘2’ then

Begin

Hasil := Bil1 – Bil2;

write(Bil1, ‘ – ‘, Bil2, ‘ = ‘, Hasil:2:2);

End

Else If Operasi = ‘3’ then

Begin

Hasil := Bil1 * Bil2;

write(Bil1, ‘ x ‘, Bil2, ‘ = ‘, Hasil:2:2);

End

Else If Operasi = ‘4’ then

Begin

Hasil := Bil1 / Bil2;

write(Bil1, ‘ / ‘, Bil2, ‘ = ‘, Hasil:2:2);

End

Else

Begin

write(‘Pilihan Anda Salah’);

End;

 

end.

 

 

 

 

 

 

  1. Contoh Program Penentuan Nilai

 

program PenentuanNilai;

uses

wincrt;

var

Score : integer;

Nilai : Char;

begin

write(‘Inputkan Score Ujian Anda : ‘);

readln(Score);

 

If (Score > 80) and (Score <= 100) Then

Begin

Write(‘Nilai A’) ;

End

Else If (Score > 70) and (Score <= 80) Then

Begin

Write(‘Nilai B’) ;

End

Else If (Score > 60) and (Score <= 70) Then

Begin

Write(‘Nilai C’) ;

End

Else If (Score > 50) and (Score <= 60) Then

Begin

Write(‘Nilai D’) ;

End

Else If Score <= 50 Then

Begin

Write(‘Nilai E’) ;

End

Else

Begin

Write(‘Score diluar range yang diperbolehkan’)

End;

 

end.

 

 

Keterangan Range Nilai :

A : 81 – 100

B : 71 – 80

C : 61 – 70

D : 51 – 60

E : 0 – 50

 

 

 

 

 

 

 

 

  1. Contoh Program Penentuan GENAP_GANJIL

 

Program

GENAP_GANJIL;

Uses

Wincrt;

Var

Bilangan : integer;

Begin

Repeat

clrscr;

 

write(‘Inputkan Sebuah Bilangan : ‘);

readln(Bilangan);

 

If Bilangan mod 2 = 0 then

Begin

write(‘GENAP’);

End

Else

Begin

write(‘GANJIL’);

End;

 

readln;

until keypressed;

 

End.i

 

  1. Contoh Program Penentuan Tahun Kabisat

 

Program

Penentu_Kabisat;

Uses

Wincrt;

Var

Tahun : integer;

Begin

Repeat

clrscr;

 

write(‘Inputkan Tahun : ‘);

readln(Tahun);

 

If Tahun mod 4 = 0 then

Begin

write(‘KABISAT’);

End

Else

Begin

write(‘BUKAN KABISAT’);

End;

 

readln;

until keypressed;

End.

  1. Seleksi Menggunakan Case Of

 

Format Umum Case Of

 

Case variable Of

Kondisi_1 : Begin

Statemen_1;

End;

Kondisi_2 : Begin

Statemen_2;

End;

Kondisi_3 : Begin

Statemen_3;

End;

.

.

Kondisi_N : Begin

Statemen_N;

End;

Else

Begin

Statement Else ;

End;

End;

 

 

Yang perlu diperhatikan adalah, variable yang digunakan dalam pernyataan kondisi, haruslah variable yang memiliki tingkat ordinalitas, integer dan char . Sedangkan type data String tidak dapat dipergunakan dalam Case Of

 

 

Contoh 1,  Mencari Jumlah Hari – Case Of

 

Program

JumlahHari;

Uses

Wincrt;

Var

Tahun : Integer;

DigitBulan : integer;

Begin

Write(‘Inputkan Tahun = ‘);

Readln(Tahun);

Repeat

Write(‘Inputkan Digit Bulan : ‘);

Readln(DigitBulan);

case DigitBulan Of

1,3,5,7,8,10,12 : Begin

Write(‘Jumlah hari = 31 hari’);

End;

4,6,9,11        : Begin

Write(‘Jumlah hari = 30 hari’);

End;

2               : Begin

If Tahun mod 4 = 0 then

Begin

Write(‘Jumlah hari = 29 hari’)

End

Else

Begin

Write(‘Jumlah hari = 28 hari’)

End;

End;

Else

Begin

Write(‘Inputan salah!!!’);

End;

End;

readln;

until Keypressed;

End

 

 

 

Contoh 2,  Menentukan Nilai – Case Of

 

 

program PenentuanNilai;

uses

wincrt;

var

Score : integer;

Nilai : Char;

begin

Repeat

write(‘Inputkan Score Ujian Anda : ‘);

readln(Score);

 

Case Score Of

81..100 : Begin

Nilai := ‘A’ ;

Write(‘Nilainya = ‘, Nilai);

End;

71..80 : Begin

Nilai := ‘B’ ;

Write(‘Nilainya = ‘, Nilai);

End;

61..70 : Begin

Nilai := ‘C’;

Write(‘Nilainya = ‘, Nilai);

End;

51..60 : Begin

Nilai := ‘D’;

Write(‘Nilainya = ‘, Nilai);

End;

0..50  : Begin

Nilai := ‘E’ ;

Write(‘Nilainya = ‘, Nilai);

End

Else

Begin

Write(‘Nilai yang anda inputkan tidak terdapat dalam jangkauan’) ;

End;

End;

readln;

until keypressed;

end.

 

 

 

Contoh 3,  Menentukan Upah Mingguan – Case Of

 

 

Program

UpahMingguan;

Uses

wincrt;

Var

Golongan : Char;

UpahNormal, UpahLembur, UpahTotal : LongInt;

Jam_kerja : LongInt;

Begin

Repeat

clrscr;

write(‘Inputkan Golongan Anda : ‘);

Readln(Golongan);

write(‘Inputkan Jumlah Jam Kerja : ‘);

Readln(Jam_Kerja) ;

if jam_kerja >= 40 Then

Begin

Case Golongan of

‘A’  : Begin

UpahNormal := 40 * 5000;

End;

‘B’  : Begin

UpahNormal := 40 * 6000;

End;

‘C’  : Begin

UpahNormal := 40 * 7000;

End;

End;

End

else

Begin

Case Golongan of

‘A’  : Begin

UpahNormal := Jam_Kerja * 5000;

End;

‘B’  : Begin

UpahNormal := Jam_Kerja * 6000;

End;

‘C’  : Begin

UpahNormal := Jam_Kerja * 7000;

End;

End;

End;

 

If Jam_Kerja > 40 then

Begin

Case Golongan of

‘A’ : Begin

UpahLembur := (Jam_Kerja – 40) * 7000;

End;

‘B’ : Begin

UpahLembur := (Jam_Kerja – 40) * 8000;

End;

‘C’ : Begin

UpahLembur := (Jam_Kerja – 40) * 9000;

End;

End;

End;

 

UpahTotal := UpahNormal + UpahLembur;

 

Writeln(‘Upah Normal = ‘, UpahNormal);

Writeln(‘Upah Lembur = ‘, UpahLembur);

Writeln(‘Upah Total = ‘, UpahTotal);

 

readln;

until keypressed;

End.

 

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s