bab iii kondisi

20
III. PEMILIHAN/KONDISI III. PEMILIHAN/KONDISI Pada umumnya, penyelesaian suatu Pada umumnya, penyelesaian suatu masalah memiliki beberapa masalah memiliki beberapa alternatif pelaksanaan perintah alternatif pelaksanaan perintah atau aksi. Suatu perintah hanya atau aksi. Suatu perintah hanya dapat dijalankan apabila dapat dijalankan apabila persayaratan atau kondisi persayaratan atau kondisi tertentu dipenuhi. tertentu dipenuhi. Instruksi pemilihan adalah Instruksi pemilihan adalah instruksi yang dipakai untuk instruksi yang dipakai untuk memakai satu dari beberapa memakai satu dari beberapa kemungkinan aksi berdasarkan kemungkinan aksi berdasarkan

Upload: formatik

Post on 25-May-2015

1.736 views

Category:

Technology


3 download

DESCRIPTION

Algoritma Pemrograman I

TRANSCRIPT

Page 1: Bab Iii Kondisi

III. PEMILIHAN/KONDISIIII. PEMILIHAN/KONDISI• Pada umumnya, penyelesaian suatu Pada umumnya, penyelesaian suatu

masalah memiliki beberapa alternatif masalah memiliki beberapa alternatif pelaksanaan perintah atau aksi. Suatu pelaksanaan perintah atau aksi. Suatu perintah hanya dapat dijalankan apabila perintah hanya dapat dijalankan apabila persayaratan atau kondisi tertentu dipenuhi.persayaratan atau kondisi tertentu dipenuhi.

• Instruksi pemilihan adalah instruksi yang Instruksi pemilihan adalah instruksi yang dipakai untuk memakai satu dari beberapa dipakai untuk memakai satu dari beberapa kemungkinan aksi berdasarkan suatu kemungkinan aksi berdasarkan suatu persyaratanpersyaratan..

Page 2: Bab Iii Kondisi

Ada dua bentuk instruksi pemilihan yang sering digunakan, yaitu:

I. IF…THEN

II. CASE…OF

Page 3: Bab Iii Kondisi

1. Kondisi 1 kasus dgn IF….THEN1. Kondisi 1 kasus dgn IF….THEN

If kondisi thenaksi

endif

If kondisi then

aksi

Formula kondisi 1 kasus di Algo

Formula kondisi 1 kasus di Pascal

Page 4: Bab Iii Kondisi

Contoh: PseudocodeContoh: Pseudocode

Program Genap{mencetak pesan “bilangan genap” jika sebuah bilangan bulat

yang diinput merupakan bilangan genap}

DeklarasiX : integer

Algoritma:Read (x)If x mod 2 = 0 then

write (‘genap’)endif

Page 5: Bab Iii Kondisi

Contoh: PascalContoh: Pascal

PROGRAM GENAP;USES WINCRT;

VARX : INTEGER;

BEGIN

WRITE ('NILAI X :'); READLN (X);IF X MOD 2 = 0 THENWRITELN ('BILANGAN TERSEBUT ADALAH BILANGAN

GENAP');

END.

Page 6: Bab Iii Kondisi

2. IF…THEN..ELSE

If kondisi thenaksi1

ELSEAKSI2

endif

If kondisi then

aksi1

ELSE

AKSI2

Formula kondisi 2 kasus di Algo

Formula kondisi 2 kasus di Pascal

Page 7: Bab Iii Kondisi

Contoh: PseudocodeContoh: Pseudocode

Program Genap{mencetak pesan “bilangan genap” jika sebuah bilangan bulat yang

diinput merupakan bilangan genap}

DeklarasiX : integer

Algoritma:Read (x)If x mod 2 = 0 then

write (‘genap’)ELSE

WRITE (‘GAJIL’);endif

Page 8: Bab Iii Kondisi

Contoh: PascalContoh: PascalPROGRAM GENAP;USES WINCRT;VAR

X : INTEGER;BEGIN

WRITE ('NILAI X :'); READLN (X);IF X MOD 2 = 0 THENWRITELN ('BILANGAN TERSEBUT ADALAH BILANGAN

GENAP')ELSEWRITELN ('BILANGAN TERSEBUT ADALAH BILANGAN

GANJIL');END.

Page 9: Bab Iii Kondisi

3. KONDISI 3 KASU/LEBIH

If kondisi1 thenaksi1

ELSEIF KONDISI2 THENAKSI2ELSE

IF KONDISI3 THENAKSI3ELSEendif

ENDIFENDIF

Formula kondisi 3 kasus atau lebih di Algo

Page 10: Bab Iii Kondisi

Formula kondisi 3 kasus atau lebih di Pascal

• If kondisi1 then• aksi1• ELSE• IF KONDISI2 THEN• AKSI2• ELSE• IF KONDISI3

THEN• AKSI3• ELSE

aksi4•

Page 11: Bab Iii Kondisi

Contoh soal:Contoh soal:

1. Misalkan karyawan PT “ABC” dikelompokkan berdasarkan golongannya. Upah perjam tiap karyawan bergantung pada golongannya. Jumlah jam kerja yang normal selama seminggu adalah 48 jam. Kelebihan jam kerja dianggap lembur dgn upah lembur adalah Rp.3000/jam untuk semua golongan karyawan. Buatlah algoritma yg membaca nama karyawan dan jumlah jam kerjanya selama seminggu, lalu menghitung gaji mingguannya.

Gol Upah per jam

A Rp. 4000

B Rp. 5000

C Rp. 6000

D Rp. 7500

Page 12: Bab Iii Kondisi

START

NAMA$, GOL, JJK,JAMLEMBUR, UPJ,UPAHTOTAL

NAMA, GOL, JJK

GOL =’A’

UPJ = 4000Y

T

GOL =’B’

UPJ = 5000Y

T

GOL =’C’

UPJ = 6000Y

GOL =’D’

UPJ = 7500Y

T

T

JJK <= 48

Upahtotal=JJK*UPJ

Y

T

Jamlembur=JJK-48Upahtotal=48*UPJ+jamlahlembur*3000

Page 13: Bab Iii Kondisi

PSEUDOCODE:

PROGRAM upahkaryawan{menghitung upah mingguan karyawan, input nama, gol, jumlah jam kerja}

Deklarasinama :stringgol :charJJK,jamlembur : integerupJ,upahtotal :real

ALGORITMA:READ (NAMA,GOL,JJK)IF GOL =‘A’ THEN UPJ =4000ELSE

IF GOL =‘B’ THEN UPJ =5000ELSE

IF GOL =‘C’ THEN UPJ =6000ELSE

IF GOL =‘D’ THEN UPJ =7500 ENDIFENDIF

ENDIFENDIF

Page 14: Bab Iii Kondisi

IF JJK <= Jamkerjanormal then

upahtotal = jjk * upahperjam

Else

jamlembur = jjk – jamkerjanormal

upahtotal = jamkerjanormal * upahperjam +jamlembur * upahlembur

Endif

Write (nama, upahtotal)

Page 15: Bab Iii Kondisi

• PROGRAM upahkaryawan;• {menghitung upah mingguan karyawan, input nama, gol, jumlah jam kerja}

• USES WINCRT;• var• nama :string ;• gol :char ;• JJK,jamlembur : integer ;• upJ,upahtotal :real;• CONST

• JAMKERJANORMAL = 48;• UPAHLEMBUR =3000;

• begin• write ('nama karyawan :');readln (nama);• write ('golongan :');readln (gol);• write ('julah jam kerja :');readln (jjk);

• IF GOL ='A' THEN UPJ :=4000• ELSE• IF GOL ='B' THEN UPJ :=5000• ELSE• IF GOL ='C' THEN UPJ :=6000• ELSE• IF GOL ='D' THEN UPJ :=7500;

Page 16: Bab Iii Kondisi

• IF JJK <= JAMKERJANORMAL THEN• UPAHTOTAL:=JJK *UPJ• ELSE• JAMLEMBUR:=JJK - JAMKERJANORMAL;• UPAHTOTAL:= JAMKERJANORMAL * UPJ +

JAMLEMBUR *UPAHLEMBUR;

• WRITELN ('NAMA KARYAWAN =',NAMA);• WRITELN ('JUMLAH LEMBUR =',JAMLEMBUR ,

'JAM');• WRITELN ('UPAH TOTAL =',UPAHTOTAL:7:0);• READLN;• END.

Page 17: Bab Iii Kondisi

II. CASE..OFII. CASE..OF

- Instruksi CASE digunakan sebagai instruksi pemilihan yg akan dilakukan hanya bergantung pada nilai dari satu macam var.

- Var tersebut harus bertipe CHAR atau Integer- Bentuk umum, CASE dlm algoritma adalah:

CASE var nilai1 :aksi1nilai2 :aksi2nilai3 :aksi3

.nilain :aksi_ndefault : aksi_x

ENDCASE

Page 18: Bab Iii Kondisi

CONTOHCONTOH• PROGRAM upahkaryawan;• {menghitung upah mingguan karyawan, input nama, gol, jumlah jam kerja}

• USES WINCRT;• var• nama :string ;• gol :char ;• JJK,jamlembur : integer ;• upJ,upahtotal :real;• CONST

• JAMKERJANORMAL = 48;• UPAHLEMBUR =3000;

• begin• write ('nama karyawan :');readln (nama);• write ('golongan :');readln (gol);• write ('julah jam kerja :');readln (jjk);

• CASE GOL OF• 'A' : UPJ :=4000;• 'B' : UPJ :=5000;• 'C' : UPJ :=6000;• 'D' : UPJ :=7500;

• END;

• IF JJK <= JAMKERJANORMAL THEN• UPAHTOTAL:=JJK *UPJ• ELSE• JAMLEMBUR:=JJK - JAMKERJANORMAL;• UPAHTOTAL:= JAMKERJANORMAL * UPJ + JAMLEMBUR *UPAHLEMBUR;

• WRITELN ('NAMA KARYAWAN =',NAMA);• WRITELN ('JUMLAH LEMBUR =',JAMLEMBUR , 'JAM');• WRITELN ('UPAH TOTAL =',UPAHTOTAL:7:0);• READLN;• END.

Page 19: Bab Iii Kondisi

CASE dlm pascal:CASE dlm pascal:

CASE VAR OF

NILAI1 : AKSI1

NILAI2 : AKSI2

NILAI3 : AKSI3

.

NILAIN : AKSIN

END;

Page 20: Bab Iii Kondisi

2. Indeks nilai mahasiswa ditentukan berdasarkan nilai ujiann yg diraihnya. Ketentuan pemberian nilai indeks adalah sebagai berikut:jika nilai ujian >= 80, indeks nilai =Ajika 70 <= nilai ujian <80, indeks nilai = Bjika 55 <=nilai ujian <70, indeks nilai = Cjika 40 <=nilai ujian <55, indeks nilai = Djika nilai ujian < 40, indeks nilai = Ebuatlah algoritma yg membaca nilai ujian, lalu menentukan indeksnya, kemudian mencetak nilai dan indeksnya .