Upload
formatik
View
1.736
Download
3
Embed Size (px)
DESCRIPTION
Algoritma Pemrograman I
Citation preview
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..
Ada dua bentuk instruksi pemilihan yang sering digunakan, yaitu:
I. IF…THEN
II. CASE…OF
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
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
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.
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
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
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.
3. KONDISI 3 KASU/LEBIH
If kondisi1 thenaksi1
ELSEIF KONDISI2 THENAKSI2ELSE
IF KONDISI3 THENAKSI3ELSEendif
ENDIFENDIF
Formula kondisi 3 kasus atau lebih di Algo
Formula kondisi 3 kasus atau lebih di Pascal
• If kondisi1 then• aksi1• ELSE• IF KONDISI2 THEN• AKSI2• ELSE• IF KONDISI3
THEN• AKSI3• ELSE
aksi4•
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
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
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
IF JJK <= Jamkerjanormal then
upahtotal = jjk * upahperjam
Else
jamlembur = jjk – jamkerjanormal
upahtotal = jamkerjanormal * upahperjam +jamlembur * upahlembur
Endif
Write (nama, upahtotal)
• 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;
• 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.
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
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.
CASE dlm pascal:CASE dlm pascal:
CASE VAR OF
NILAI1 : AKSI1
NILAI2 : AKSI2
NILAI3 : AKSI3
.
NILAIN : AKSIN
END;
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 .