Kumpulan Soal UTS Algoritma dan Pemrograman
1. Berapakah hasil ekspresi : 10 div 40 mod 60 / 5 3 / 3 = , dengan tipe
(UTS 2008-2009)
2. Jika a,b,c bertipe integer , dengan input : 1 2 3 4 5 6. Perhatikan potongan program ini :
read(a,b);
c:= a mod b div c + a - b;
if a > c then c := c div b else c:= a mod b;
read(a,b,c); c:=b-a;
Maka nilai akhir variabel a,b dan c adalah : ,, (UTS 2008-2009)
3. Sebuah program memiliki deklarasi untuk penulisan konstanta dengan nama tetap dan tipe
jurusan, dengan nilai TE; deklarasi tipe enumerasi jurusan dengan nilai TE,TI dan IF
(bukan string), dan variabel bertipe jurusan dengan nama jur. Tulis deklarasi tersebut dalam
notasi algoritma !
(UTS 2008-2009)
4. Perhatikan program berikut : program uts1;
var a,c : integer;
begin
readln(a);
while a < 0 do
begin
a:=a-1;
write(1/a:2:2, );
end;
end.
Jika input adalah 3, keluaran program tersebut adalah : ........,.,. (UTS 2008-2009)
5. Tulis output untuk potongan program dibawah ini: for i:=1 to 3 do
for j:=1 to i do begin
write(j);
writeln;
end;
(UTS 2008-2009)
6. Tulis keluaran algoritma sebagai berikut, jika masukan adalah 1 2 3 4: input(a,b)
depend on a
a=1 : if a
Input (a,b)
Output(a,b)
a>1 : if a>2 then
depend on b
b=2 : output (b,a)
b>2 : output (b+1,a+1)
b
begin
write(Masukkan kata );
readln(kata);
for i:=1 to N do
begin
APA(i, kata);
writeln(kata);
end;
end.
Jika masukan program diatas adalah 3, maka keluarannya adalah :
(UTS 2008-2009)
9. Syarat agar pemanggilan benar/valid untuk prosedur dengan jenis parameter input/output :
A. Parameter aktual adalah sebuah ...
B. Tipe parameter...............................................................................
C. Isi parameter aktual....
(UTS 2008-2009)
10. Tulis deklarasi prosedur dalam notasi algoritmik dengan nama Fungsi, dengan parameter A
dan B bertipe integer. Parameter A ketika dipanggil boleh berisi konstanta, parameter B
harus variabel yang boleh tidak terdefinisi.
.. (UTS 2008-2009)
11. Ada beberapa menu di warung : batagar dengan harga 1000, soto 2000, dan bakso 3000.
Batagor ada 2 macam, kuah dan kering. masukan adalah harga. Jika memilih batagor, ada
masukan tambahan jenisnya, yaitu kuah atau kering. Tulis notasi algoritma untuk output pilihan menu yang akan terhidang. Cukup bagian algoritma saja, dan gunakan jenis analisa
kasus yang paling efisien !
(UTS 2008-2009)
12 Buat fungsi dalam pascal dengan nama Fak yang menghasilkan nilai faktorial sebuah
bilangan N.
{ Header / judul untuk deklarasi fungsi }
................................................................................................................................
{Deklarasi variabel, jika perlu}
{Bagian implementasi algoritma/instruksi untuk fungsi }
Begin
............................... { Inisialisasi}
For ...........................do .; { Perhitungan }
. { Pengisian nilai fungsi} End;
(UTS 2008-2009)
13. Misal diketahui sebuah program sebagai berikut : Program AnalisaKasus1;
Var x,y:integer;
begin
readln(y); x:=2;
if xx then
y:=y+2*x
else
y:=y-2*x;
writeln(y);
End.
Jika input dari program tersebut adalah y = 7, maka nilai y akhir (output) adalah ....
A. 9 B. 41 C. 41 D. -23 E.Tidak ada jawaban benar
(UTS 2008-2009)
14. Misal diketahui sebuah program sebagai berikut : Program AnalisaKasus2;
Var x:integer;
begin
readln(x); if x>=80 then x:=x-30;
if x>=70 then x:=x-10
Else if x>=65 then x:=x-5;
if x
writeln(x);
end.
Jika input dari program tersebut adalah x = 82, maka nilai x akhir (output) adalah ....
A. 52 B.-52 C. 42 D. 47 E. Tidak ada yang benar
(UTS 2008-2009)
15. Misal diketahui sebuah program sebagai berikut : Program AnalisaKasus3;
var
a : real; b :integer; c,d:boolean;
begin
a:= sqrt(10); b:= 3;
c:= false and (10 mod b=0);
d:= ad) then if a>d then a:=a+1 else a:=a-1 else true;
B. if (xx then y:=x-1; else y:=x+1;
C. if x=true then if y=true then if x=y then y:=x else x:=y;
D. if (bc)=false then begin a:=b*c; b:=100; end else a:=c else
c:=b;
E. if (v>=c) then v:=false else begin c:=c+1; d:=d+1; end;
(UTS 2008-2009)
17
. Case a of, dapat diikuti statement dibawah ini ( hasil tidak error ):
A. A .. Z: writeln(UTS Prokom); a:=ch;
B. 1 .. F : writeln(UTS Prokom); A .. C: x:=x+1;end;
C. 1,2,3,4,5,6,7,8,9,a,b,c,d,e,f : writeln(hexadesimal);end;
D. else writeln (END of TEXT); end;
E. c : x:=x*y else end;
(UTS 2008-2009)
18. Berapakah hasil ekspresi : 10 + 40 mod 6 * 5 3 A 27 B.7 C.17 D. 23 E.4
(UTS 2008-2009)
19. Jika a,b,c bertipe integer , dengan input sbb : 1 2 3 4 5 6. Hasil dari potongan program di
bawah ini read(a,b); b:=a-b;
read(a,b,c); c:=a-b;
Maka nilai akhir variabel a,b dan c adalah :
A. Blank B. 1, , C. 1, , a D. 1, a, 1 E. a, b,
(UTS 2008-2009)
20. Manakah urutan deklarasi yang benar :
A. const tetap=TE; type jurusan=(TE,TI,CS);
var a,b,c : integer;
B. type jurusan=(TE,TI,CS); const tetap=TE;
var a,b,c : integer;
C. const tetap=TE; var a,b,c : integer;
type jurusan=(TE,TI,CS);
D. var a,b,c : integer; const tetap=TE;
type jurusan=(TE,TI,CS);
E Tidak ada jawaban yang benar
(UTS 2008-2009)
21. Diketahui program pascal sebagai berikut: uses crt;
var a,b:integer;
begin
readln(a,b);
case a of
1 : if a=2 then writeln('A');
2 : if a=2 then
case b of
1 : begin
a:=1;
writeln('B');
end;
2 : writeln('C');
else writeln('D');
end;
else writeln('E');
end;
readln;
end.
Jika program dijalankan dua kali, masing-masing dengan menginputkan 1 2 kemudian 2 1 (data dipisahkan dengan spasi), maka output string yang dihasilkan oleh masing-masing eksekusi adalah:
A. A B
B.
B C. A
D. A D
E
E
(UTS 2008-2009)
22. Perhatikan Listing Program Pascal berikut ini : 01: Var i, j, k : Integer; 02: Begin 03: i := 10; 04: j := 13; 05: k := i + 5; 06: If i < j Then 07: Begin 08: j := 10; 09: i := 13; 10: End 11: Else 12: Begin 13: j := k; 14: k := i; 15: i := j; 16: End;
17: End.
Berapakah nilai akhir dari variable i, j, dan k ?
A. 10, 13, dan 15
B. 15, 13, dan 10
C. 10, 15, dan 13
D. 13, 15, dan 10
E 13, 10, dan 15
(UTS 2008-2009)
23. Berapakah hasil ekspresi ; 10 + 40 mod 6 * 5 3 A. 27
B. 7
C. 17
D. 23
E 4
(UTS 2005 2006)
24. Jika ch1,ch2 dan ch3 bertipe karakter , dengan urutan pembacaan data sbb :
1
ab
1.2
dan data di atas merupakan masukan untuk program di bawah ini program uts1;
var a,b,c : char;
begin
read(a,b,c);
read(a,b,c);
writeln(a,' - ',b,' - ',c);
readln;
end.
Maka nilai akhir variabel a,b dan c adalah :
A. Blank
B. 1, , C. 1, , a D. 1, a, 1
E a, b, (UTS 2005 2006)
25.
Manakah urutan deklarasi yang benar :
A. const tetap=TE; type jurusan=(TE,TI,CS);
var a,b,c : integer;
B. type jurusan=(TE,TI,CS); const tetap=TE;
var a,b,c : integer;
26. Jika diberikan inputan a:= 3 program uts1;
var a,c : integer;
begin
readln(a);
a:=abs(a);
while a 0 do
begin
a:=a-1;
writeln(1/a);
end;
readln;
end.
Maka pernyataan yang benar adalah :
A. Tidak berhasil di-compile
B. Berhasil di-compile tapi runtime error
C. Akan menghasilkan output : , 1
D. Tidak menghasilkan sembarang output
E Tidak ada pernyataan yang benar
(UTS 2005 2006)
27. Manakah pernyataan yang benar untuk program dibawah : program uts4;
uses crt;
var i,j : integer;
begin
clrscr;
for i:=1 to 3 do
for j:=1 to i do
write('*');
readln;
end.
A. *
**
***
B. ***
**
*
C. const tetap=TE; var a,b,c : integer;
type jurusan=(TE,TI,CS);
D. var a,b,c : integer; const tetap=TE;
type jurusan=(TE,TI,CS);
E Tidak ada jawaban yang benar
(UTS 2005 2006)
C. *
*
*
D. ***
***
***
E ******
(UTS 2005 2006)
28. Diketahui program pascal sebagai berikut: uses crt;
var a,b:integer;
begin
readln(a,b);
case a of
1 : if a=2 then writeln('A');
2 : if a=2 then
case b of
1 : begin
a:=1;
writeln('B');
end;
2 : writeln('C');
else writeln('D');
end;
else writeln('E');
end;
readln;
end.
Jika program dijalankan dua kali, masing-masing dengan menginputkan 1 2 kemudian 2 1 (data dipisahkan dengan spasi), maka output string yang dihasilkan oleh masing-masing eksekusi adalah:
A. A B
B.
B C. A
D. A D
E
E (UTS 2005 2006)
29. Teliti dengan cermat potongan program pascal berikut: 1 var a: integer;
2 b: real;
3 c: boolean;
4 begin
5 if a then
6 case b of
7 10..20 : writeln('A');
8 1..9 : writeln('B');
9 else if c then writeln ('C');
10 end;
11 else
12 if b>10 then
13 if a and c then writeln('D');
14 else
15 case c of
16 true : writeln('E');
17 false: writeln('F');
18 end;
19 end.
Berdasarkan analisis anda, jumlah baris perintah yang salah adalah:
A. 8
B. 7
C. 6
D. 5
E 4
(UTS 2005 2006)
30. Berikut penulisan case .. of yang benar adalah
A. case X of begin
1: if Y then Y:=Z;
else Y:=X;
end;
B. case X of case Y of
1: if Y then Y:=Z; else Y:=X;
end;
end;
C. Case X of 1: case Y of
100:writeln(X);
end;
else end;
D. case X of case Y of end;
if Y then end;
end;
E case beginX of 1:case Y of else end; 2: writeln(D);
End;
(UTS 2005 2006)
31. Notasi Pengulangan yang menghasilkan keluaran sejumlah N:
A. For i := 1 to N write(i);
B. Repeat write(i);
until nN;
D. While I
B. Jika kiti=APA maka Keluaran=APAADANYAAPAADANYAAPAADANYA C. Jika kata=dua maka keluaran=APA-APAANAPA-APAANAPA-APAAN D. Jika kata=dua maka keluaran=duaduadua; E Jika kata=APA maka keluaran=APA-APAANAPA-APAANAPA-APAAN
(UTS 2005 2006)
33. Berdasarkan program APAADANYA pada soal di atas (sebelumnya), bila write(kiti)
diubah write(kata) dalam bagian looping , maka jawaban yang sesuai adalah:
A. Jika kata=satu maka keluaran= satusatusatu B. Jika kiti=APA maka Keluaran=APAADANYAAPAADANYAAPAADANYA C. Jika kata=dua maka keluaran=APA-APAANAPA-APAANAPA-APAAN D. Jika kata=tiga maka keluaran=APAADANYAAPAADANYAAPAADANYA; E Jika kata=APA maka keluaran=APA-APAANAPA-APAANAPA-APAAN (UTS 2005 2006)
34. Perhatikan Listing Program Pascal berikut ini : 01: Var a, b, c : Integer; 02: Begin 03: c = 42; 04: a := 90; 05: b := Z; 06: If a := b Then 07: Begin 08: Writeln(Sama); 09: a := Z; 10: End; 11: Else 12: Begin 13: Writeln(Tidak Sama); 14: a := A; 15: End;
16: End;
Pada baris keberapakah terjadi kesalahan penulisan statement ?
A. 15, 13, 01, 03, 08, 02, 06, 14, dan 10
B. 16, 09, 14, 06, 04, 03, 13, 05, dan 10
C. 11, 03, 01, 08, 04, 02, 06, 15, dan 16
D. 13, 16, 08, 03, 09, 05, 06, 07, dan 10
E 05, 13, 07, 02, 08, 06, 09, 16, dan 11
(UTS 2005 2006)
35. Terdapat Bagian suatu program pascal sebagai berikut:
I:=4;
while I
Dari potongan program tersebut Tampilan yang mungkin adalah:
A. 4444
B. 1234
C. 1
12
123
1234
D. 1
22
333
4444
E 4
44
444
4444
(UTS 2005 2006)
36. Yang sesuai dengan Parameter Passing By Reference, ada pada penulisan Heading program Prosedur/Fungsi:
A. Procedure A(s: string, a:integer)
B. Function C(s: string, a:integer) : integer
C. Procedure B(var s: string, a:integer)
D. Procedure (s: string, a:integer)
E Function E(s: string, a:integer) : integer
(UTS 2005 2006)
37. Berikut adalah deklarasi fungsi/prosedur yang benar..
A. PROCEDURE (daftar_parameter);
Bagian_deklarasi;
Bagian_penyataan;
B. FUNCTION(daftar_parameter);
Bagian_deklarasi;
Bagian_penyataan;
C. PROCEDURE(daftar_parameter):tipe;
Bagian_deklarasi;
Bagian_penyataan;
D. PROSEDUR(daftar_parameter);
Bagian_deklarasi;
Bagian_penyataan;
E FUNGSI(daftar_parameter):tipe;
Bagian_deklarasi;
Bagian_penyataan;
(UTS 2005 2006)
38. Telusuri program di bawah ini VAR
A: integer;
Function X (D : integer, P: integer): integer;
VAR
A : integer ; B : integer;
BEGIN
B := 1
For A := 1 to P do
B := B * D;
X:=B;
END;
Procedure Y (I: integer, J: integer, var K: integer);
BEGIN
K:= X(I,J) * X(J,I);
END;
BEGIN
Y(5,3,A);
Write (A = ,A);
END.
Keluaran dari program di atas adalah:
A. A = 25243
B. K = 30537
C. A = 30375
D. K = 12545
E Program error
(UTS 2005 2006)
39. Perhatikan Listing Program Pascal berikut ini : 18: Var i, j, k : Integer; 19: Begin 20: i := 10; 21: j := 13; 22: k := i + 5; 23: If i < j Then 24: Begin 25: j := 10; 26: i := 13; 27: End 28: Else 29: Begin 30: j := k; 31: k := i; 32: i := j; 33: End;
34: End.
Berapakah nilai akhir dari variable i, j, dan k ?
A. 10, 13, dan 15
B. 15, 13, dan 10
C. 10, 15, dan 13
D. 13, 15, dan 10
E 13, 10, dan 15
(UTS 2005 2006)
40. Perhatikan potongan program berikut ini : 01: {X dan Y adalah variable Integer} 02: X := 50; 03: Y := 25; 04: if (X > 25) And (Y < 25) then 05: if (X > 25) then 06: begin 07: Temporary := X; 08: X := Y; 09: Y := Temporary; 10: End; 11: 12: X := Y;
13: Y := X + Y;
Berapakah nilai akhir dari variable X, dan Y ?
A. 50, dan 25
B. 50, dan 50
C. 50, dan 100
D. 25, dan 50
E 25, dan 100
(UTS 2005 2006)
41. Terdapat program Pascal sebagai berikut: Program XXX;
Var n:integer;
Procedure ANI(var a:integer);
Var I : integer;
Begin
For I:=1 to 3 do
A:=I;
A:=A+1;
End;
Begin
n:=1;
ANI(n);
End.
Dari Program XXX di atas, dengan melihat pemakaian procedure ANI, maka keluaran nilai
A akan muncul:
A. 4
B. 6
C. 3
D. 5
E 7
(UTS 2005 2006)
42. Dalam Program XXX (pada soal sebelumnya), bila heading Procedure ANI(var
a:integer) diubah Procedure ANI(a:integer), maka nilai n =
A. 1
B. 2
C. 3
D. 4
E 5
(UTS 2005 2006)
Algoritma di bawah ini untuk menjawab soal nomor 43 dan 44 Program cek1
Kamus
x,y : integer
Algoritma
input (x,y,x)
depend on (x,y)
x=1 : output(1)
2
46. Pernyataan yang benar berkenaan dengan paradigma pemrograman :
A. Procedural: A sequence of detailed instructions is provided to the computer
B. Procedural : Each object is an example drawn from a class of similar objects
C. OOP : no use of temporary variables to store intermediate results
D. Functional : A series of logical deductions from known facts
E A,B,C,D tidak ada yang benar
F. A,B,C,D tidak ada yang salah
(UTS SP 2006 2007)
47. Hal-hal yang benar berkenaan dengan pendefinisian type adalah sebagai berikut, kecuali :
A. Mendefinisikan nama type dalam judul ( harusnya kamus ! )
B. Mendefinisikan domain harga
C. Menentukan konvensi penulisan konstanta dengan type tersebut
D. Menentukan operator terhadap objek dengan type tersebut
E Semua pernyataan A,B,C,D benar
F. Semua pernyataan A,B,C,D salah
(UTS SP 2006 2007)
48. Statement yang di bawah ini akan menghasilkan nilai Sum yang sama untuk masukan yang sama, jika nilai i sebelum pengulangan adalah 1 dan x=10, kecuali :
A. repeat
Sum Sum+x i=i+1
until (x=i)
D. while (i
A. repeat
sum sum+x input(x)
until (x=9999)
D. while (X = 9999) do input(X)
Sum Sum + x
B. i traversal [1..x]
sum sum+x input(x)
E A,B,C,D tidak ada yang benar
C. iterate
sum sum+x stop (x=9999)
input(x)
F A,B,C,D tidak ada
jawaban yang salah
(UTS SP 2006 2007)
50. Diberikan potongan program sebagai berikut : Program ZZZ
Kamus
a,b,c:integer
Algoritma
a 5; b 10; c 1 while c < a do
c a; a b ; b c {akhir pengulangan}
output(a,b,c)
Dari notasi algoritma diatas maka harga yang disimpan oleh a,b,c adalah:
A. a = 5 ; b = 10 ; c = 1 D. a = 10 ; b = 5 ; c = 5
B. a = 10 ; b = 5 ; c = 10 E a = 5 ; b = 10 ; c = 5
C. a = 10 ; b = 5 ; c = 1 F. Tidak ada jawaban yang benar (10,5,10)
(UTS SP 2006 2007)
51. Di bawah ini yang merupakan program yang benar untuk menjumlahkan bilangan 2 + 4 + 6
+ 8 + 10 + + (n*2) adalah A. Program Deret
Kamus
i,sum : integer
Algoritma
input (n); i0
sum0 while i
B. Program Deret Kamus
i,sum : integer
Algoritma
Input(n);i1
sum0 while i
pengecekan bernilai false
C. Proses pengulangan pada while-do akan dihentikan bila kondisi pengecekan
bernilai true
D. Proses pengulangan pada repeat x times akan dihentikan bila kondisi
pengulangan telah dilakukan sebanyak n kali.
E. Proses pengulangan pada n traversal [1..x] akan dihentikan bila kondisi
pengulangan telah dilakukan sebanyak n kali.
F Semua jawaban di atas salah
(UTS SP 2006 2007)
55. Berikut adalah pernyataan yang benar mengenai parameter, kecuali:.
A. Parameter aktual adalah nama atau nilai yang dipakai ketika prosedur dipanggil
B. Parameter formal adalah list nama variabel pada saat mendefinisikan prosedur.
C. Parameter aktual harus berupa nama jika tipe parameter output yang digunakan
D. Saat pemanggilan, parameter aktual yg bersifat output tak perlu didefinisikan nilainya
E. Parameter formal harus dideklarasikan dalam 2 jenis, sebagai input atau output.
F Semua pernyataan di atas benar
(UTS SP 2006 2007)
56. Telusuri algoritma program di bawah ini PROGRAM UTS_gitu_loh
KAMUS:
A: integer
Function X (D,P:integer) integer Function Y(I,J:integer)integer
ALGORITMA:
A2 Output(A,=,Y(A,3))
Function X (P,D:integer) integer {Pre-condition: D dan P terdefinisi}
KAMUS LOKAL
A, B : integer
Algoritma:
B 0 A traversal[0..D]
B B + P B
Function Y(I,J:integer)integer {Pre-condition: I dan J terdefinisi}
Kamus Lokal
Algoritma:
X(I,J) + X(J,I)
Keluaran dari program di atas adalah: A. A = 16 B. 2 = 17 C. A = 18 D. Y = 19 E. A = 20 F. Tdk ada yg benar
(UTS SP 2006 2007)
57. Perhatikan program berikut ini :
Program undefined
Kamus
one,two,three : integer
Procedure defined (Input one : integer;
Input/output two : Integer;
output three : integer)
Algoritma
one 5; two 10; three 5 defined(three,two,one)
Procedure defined (Input one : integer;
Input/output two : Integer;
output three : integer)
Kamus Lokal
Algoritma
one 2 * one + two two one + two * 2
three one + two
Berapakah nilai one,two,three sebelum dan setelah memanggil procedure
defined ?
A. 5, 10, 5 & 10, 20, 60 D 5,10, 0 & 60, 40, 20
B. 5,10,5 & 5, 60, 40 E 5,10, 5 & 60, 40, 5
C. 5, 10,0 & 20, 40, 60 F Semua Jawaban Salah
(UTS SP 2006 2007)
Algoritma di bawah ini untuk menjawab soal nomor 58-59 1 Program cari_maks
2 { I.S : menerima masukan 4 buah bilangan
3 F.S : Menampilkan bilangan terbesar dari keempat bilangan tersebut}
4 Kamus
5 dat1,dat2,dat3,dat4,big : integer
6 Algoritma
7 Input(dat1,dat2,dat3,dat4)
8 if (dat1>dat2)and (dat1>dat3) and (dat1>dat4) then
9 bigdat1 10 Else
11 if (dat2>dat1)and (dat2>dat3) and (dat2>dat4) then
12 bigdat2 13 else if (dat3>dat1)and (dat3>dat2) and (dat3>dat4) then
14 bigdat3 15 else
16 bigdat4 17 output big
58. Jika program diberikan input dat1=7, dat2=10, dat3=6, dat4=9 , maka urutan proses eksekusi
program menjadi :
A. 7-8-10-11-13-14-17 D. 7-8-10-11-13-15-16-17
B. 7-8-10-11-12-17 E. 7-8-10-13-14-17
C. 7-8-10-11-13-14-17 F. Tidak ada yg benar
(UTS SP 2006 2007)
59 Jika program diberikan input dat1=2, dat2=3, dat3=4, dat4=5 , maka nilai big setelah
eksekusi program menjadi :
A. 2 D. 5
B. 3 E. 0
C. 4 F. Tidak ada yg benar
(UTS SP 2006 2007)
60. Perhatikan program di bawah ini Program allAboutBoolean
Kamus
X, Y, Z : Boolean
A : integer
Algoritma
Input(a)
X False Z ( (3 + (5 div 2) ) = 5) Y a
C. Program tersebut untuk menghitung deret 1 1 2 3 5
D. Program tersebut untuk menghitung nilai faktorial
E. Program tersebut untuk menghitung deret nilai sinus
F Tidak ada jawaban yang benar.
(UTS SP 2006 2007)
62. Ekspresi berikut akan menghasilan nilai yang sama, kecuali :.
A. A ( 15 div 2 mod 5 ) + ( 10 / 2 ) B. A ( 15 div 2 mod 5 / 2 > 2,5 ) C. A ( 15 div 2 mod 5 / 2 ) or ( true EQ true ) D. A ( 1,5 div 1,5 * 5 = 5 ) or ( true xor true ) E. A ( 15 div 2 mod 5 / 2 div 2 ) F Semua pernyataan di atas benar
(UTS SP 2006 2007)
Algoritma di bawah ini untuk menjawab soal nomor 63 dan 64 Program cek1
Kamus
x,y : integer
Algoritma
input (x,y)
depend on (x,y)
x=1 : output(1)
2
b=10 : output(acb)
a>c : if a
Dengan spesifikasi tambahan :
- jumlah bilangan untuk kasus kosong = 0
Statement yang benar untuk melengkapi program di atas (program juga benar untuk
menangani kasus kosong) adalah
A. repeat
sum sum+x input(x)
until (x=9999)
D. while (X 9999) do Sum Sum + x
input(X)
B. repeat
sum sum+i input(x)
until (x=9999)
E while (X 9999) do Sum Sum + x
C. repeat
sum sum+1 input(x)
until (x=9999)
(UTS 2006 2007)
69. Diberikan potongan program sebagai berikut : Program ZZZ
Kamus
a,b,c:integer
Algoritma
a 5 b 10 c 1 while c < b do
c a a b b c {akhir pengulangan}
output(a,b,c)
Dari notasi algoritma diatas maka harga yang disimpan oleh a,b,c adalah:
A. a = 5 ; b = 10 ; c = 1
B. a = 5 ; b = 10 ; c = 10
C. a = 10 ; b = 5 ; c = 1
D. a = 10 ; b = 5 ; c = 5
E a = 5 ; b = 10 ; c = 5
(UTS 2006 2007)
70. Di bawah ini yang merupakan program yang benar untuk menjumlahkan bilangan 2 + 4 + 6
+ 8 + 10 adalah
A. Program Deret Kamus
i,sum : integer
Algoritma
i0
sum0 while i
D. Proses pengulang pada iterate-stop akan dihentikan bila kondisi pengecekan
bernilai true
E Semua jawaban di atas salah
(UTS 2006 2007)
73. Telusuri algoritma program di bawah ini PROGRAM UTS_gitu_loh
{I.S: sembarang
F.S: menampilkan suatu bilangan hasil perhitungan}
KAMUS:
A: integer
Function X (D,P:integer) integer Function Y(I,J:integer)integer
ALGORITMA:
Output(A=,Y(2,3))
{Definisi function dan procedure}
Function X (D,P:integer) integer {Pre-condition: D dan P terdefinisi}
KAMUS LOKAL
A, B : integer
Algoritma:
B 0 A traversal[1..P]
B B + D B
Function Y(I,J:integer)integer {Pre-condition: I dan J terdefinisi}
Kamus Lokal
Algoritma:
X(I,J) * X(J,I)
Keluaran dari program di atas adalah:
A. A = 32 B. Y = 36 C. A = 36 D. Y = 216 E. A = 216
(UTS 2006 2007)
74. Berikut adalah pernyataan yang benar mengenai parameter formal dan aktual..
A. Parameter formal adalah parameter yang terdapat pada pada pemanggilan fungsi atau
prosedur, sedangkan parameter aktual adalah parameter pendeklarasian judul
subprogram.
B. Parameter formal diakui di seluruh bagian program, sedangkan parameter aktual hanya
berlaku di subprogram saja.
C. Parameter formal adalah parameter yang terdapat pada pendeklarasian judul
subprogram, sedangkan parameter aktual adalah parameter pada pemanggilan fungsi
atau prosedur.
D. Parameter formal dapat bertindak sebagai variabel input dan output, sedangkan
parameter aktual hanya bertindak sebagai variabel input saja
E Semua jawaban salah
(UTS 2006 2007)
75. Telusuri algoritma program di bawah ini PROGRAM UTS_kaleee
{IS: meminta inputan bilangan
FS: menampilkan hasil berupa bilangan dan string}
KAMUS:
X,Y: integer
Z : string
Function inttostr(angka:integer) string {mengkonversi nilai integer menjadi string}
Procedure doy(input I,J:integer,output K:string)
Procedure dyo(input I,J:integer,output K:integer)
Function test (X:integer) boolean Function text (X,Y:integer) string
ALGORITMA:
Input(X,Y);
If test(Y) then
Doy(X,Y,Z)
Else
Z Text(Y,X)
Output(Z,Y,X)
{Definisi function dan procedure}
Function test (X:integer) boolean
KAMUS LOKAL
Algoritma:
If ((X+1) mod 3=0) then
true else
false
Procedure dyo(input I,J:integer,output K:integer)
KAMUS LOKAL
Algoritma:
K I*J-I
Procedure doy(input I,J:integer,output K:string)
KAMUS LOKAL
Algoritma:
Depend on (I,J)
I = J : K xxaxx I < J : K xaaxx I > J : K xxaax
Function text (X,Y:integer) string
KAMUS LOKAL
Z:integer
Algoritma:
Dyo(X,Y,Z)
inttostr(Z*2)
Keluaran dari program di atas jika input X = 5 dan Y=4 adalah:
A. 32 4 5 D. 30 4 5 B. xxaax 4 5 E. 32 5 4 C. xxaax 5 4 (UTS 2006 2007)
76. Perhatikan Program berikut ini : Program mumet1
Kamus
const bingung : Integer = 5
yyy : integer
Procedure PindahBaris
{I.S : Sembarang}
{F.S : cursor berpindah ke baris berikutnya}
Procedure pusing(Input xxx:integer)
{I. S : nilai xxx terdefinisi }
{F. S : nilai xxx tampil di layar}
Algoritma
yyy traversal [bingung-4..bingung]
pusing(yyy)
Pindahbaris
procedure pusing(input xxx:integer)
{I. S : nilai xxx terdefinisi }
{F. S : nilai xxx tampil di layar}
Kamus lokal
yyy : integer
Algoritma
yyy traversal [1..xxx]
output(xxx)
A. 1
2
3
4
5
D. 11111
2222
333
44
5
B. 1
22
333
4444
55555
E. 55555
4444
333
22
1
C. 11111
22222
33333
44444
55555
(UTS 2006 2007)
77. Perhatikan program berikut ini : Program undefined
Kamus
one,two,three : integer
Procedure defined (Input one : integer;
Input/output two : Integer;
output three : integer)
{I. S : nilai one dan two terdefinisi }
{F. S : menghasilkan nilai two dan three }
Algoritma
one 10 two 5
defined(one,two,three)
Procedure defined (Input one : integer;
Input/output two : Integer;
output three : integer)
Kamus Lokal
Algoritma
one 2 * one + two two one + two * 2
three one + two
Berapakah nilai one,two,three sebelum dan setelah memanggil procedure
defined ?
A. 10, 5, 0 & 10, 35, 60
B. 10, 5, 0 & 25, 60, 85
C. 10, 5, 0 & 25, 35, 60
D. 10, 5, 0 & 10, 35, 85
E Semua Jawaban Salah
(UTS 2006 2007)
Algoritma di bawah ini untuk menjawab soal nomor 78 79 1 Program cari_maks
2 { I.S : menerima masukan 4 buah bilangan
3 F.S : Menampilkan bilangan terbesar dari keempat bilangan tersebut}
4 Kamus
5 dat1,dat2,dat3,dat4,big : integer
6 Algoritma
7 Input(dat1,dat2,dat3,dat4)
8 if (dat1>dat2)and (dat1>dat3) and (dat1>dat4) then
9 bigdat1 10 Else
11 if (dat2>dat1)and (dat2>dat3) and (dat2>dat4) then
12 bigdat2 13 else if (dat3>dat1)and (dat3>dat2) and (dat3>dat4) then
14 bigdat3 15 else
16 bigdat4 17 output big
78. Terdapat satu buah bug pada program diatas yang menyebabkan program tidak berjalan
dengan semestinya, yaitu pada baris ke
A. 7 B. 10 C. 11 D. 13 E. 16
(UTS 2006 2007)
79. Koreksi untuk kesalahan tersebut seharusnya adalah
A. dat1input, dat2input, dat3input,dat4input
B. tanpa else
C. if (dat2>dat1 >dat3 >dat4) then
D. elseif (dat3>dat1)and (dat3>dat2) and (dat3>dat4) then
E berikan indentasi di baris 16
(UTS 2006 2007)
80. Jika program sudah diperbaiki dan dat1=7, dat2=6, dat3=10, dat4=9 , maka urutan proses
eksekusi program menjadi :
A. 7-8-10-11-13-14-17 D. 7-13-14-16-17
B. 7-8-10-11-13-14-15-16-17 E. 7-8-10-13-14-17
C. 7-8-10-11-13-14-16-17
(UTS 2006 2007)
81. Jika terdapat 3 variabel bertipe string sebagai berikut: (BONUS) str, has : string
cc : character
strHell cco has Str cc
Jika has berisi Hello, maka operasi pada has adalah : A. o D. Hello
B. Hell E. Tidak bisa ditentukan
C. oHell
(UTS 2006 2007)
82. Perhatikan program di bawah ini Program allAboutBoolean
Kamus
X, Y, Z : Boolean
A : integer
Algoritma
Input(a)
X True Z ( (4 + (5 div 2) ) = 5) Y a >= 0 If (X and Y) Xor (Y and Z) then
Output (Terpenuhi)
Else
Output (Tidak Terpenuhi)
Output ( Ya)
Apa yang akan dioutputkan oleh program di atas?
A. Terpenuhi
B. Terpenuhi Ya
C. Tidak Terpenuhi
D. Tidak Terpenuhi Ya
E Tidak ada jawaban yang benar, karena nilai variable a belum dapat ditentukan
nilainya (tergantung dengan inputan user)
(UTS 2006 2007)
Algoritma di bawah ini untuk menjawab soal nomor 83 dan 84 Program cek1
Kamus
x,y : integer
Algoritma
input (y,x,x)
depend on (x,y)
x=y : output(1)
xy : depend on (y) y>x : output(2)
xy : output(4)
y
i: integer
x : integer {sekumpulan bilangan integer yang dibaca,
diakhiri dengan 9999}
sum : integer
Algoritma :
sum 0 input(x)
......
......
......
output(sum)
Program di atas membaca sekumpulan nilai integer yang diketikkan lewat piranti masukan,
dan menjumlahkan nilainya. Pemasukan nilai integer diakhiri dengan 9999
Dengan spesifikasi tambahan : - jumlah bilangan untuk kasus kosong = 0
Statement yang benar untuk melengkapi program di atas (program juga benar untuk
menangani kasus kosong) adalah
A. repeat
sum sum+x input(x)
until (x=9999)
D. while (X 9999) do Sum Sum + x
input(X)
B. repeat
sum sum+i input(x)
until (x=9999)
E while (X 9999) do Sum Sum + x
C. repeat
sum sum+1 input(x)
until (x=9999)
(UTS 2008 2009)
85. Diberikan potongan program sebagai berikut : Program ZZZ
Kamus
a,b,c:integer
Algoritma
a 5 b 10 c 1 while c < b do
c a b a a c
output(a,b,c)
Dari notasi algoritma diatas maka harga yang disimpan oleh a,b,c adalah:
(UTS 2008 2009)
86. Di bawah ini yang merupakan program yang benar untuk menjumlahkan bilangan 2 + 4 + 6
+ 8 + 10 adalah
A. Program Deret Kamus
i,sum : integer
Algoritma
i0
sum0 while i
pengecekan bernilai false
C. Proses pengulang pada while-do akan dihentikan bila kondisi pengecekan bernilai
true
D. Proses pengulang pada iterate-stop akan dihentikan bila kondisi pengecekan
bernilai true
E Semua jawaban di atas salah
(UTS 2008 2009)
89. Telusuri algoritma program di bawah ini PROGRAM UTS_gitu_loh
{I.S: sembarang
F.S: menampilkan suatu bilangan hasil perhitungan}
KAMUS:
A: integer
Function X (D,P:integer) integer Function Y(I,J:integer)integer
ALGORITMA:
Output(A=,Y(2,3))
{Definisi function dan procedure}
Function X (D,P:integer) integer {Pre-condition: D dan P terdefinisi}
KAMUS LOKAL
A, B : integer
Algoritma:
B 0 A traversal[1..P]
B B + D B
Function Y(I,J:integer)integer {Pre-condition: I dan J terdefinisi}
Kamus Lokal
Algoritma:
X(I,J) * X(J,I)
Keluaran dari program di atas adalah:
A. A = 32 B. Y = 36 C. A = 36 D. Y = 216 E. A = 216
(UTS 2008 2009)
90. Berikut adalah pernyataan yang benar mengenai parameter formal dan aktual..
A. Parameter formal adalah parameter yang terdapat pada pada pemanggilan fungsi atau
prosedur, sedangkan parameter aktual adalah parameter pendeklarasian judul
subprogram.
B. Parameter formal diakui di seluruh bagian program, sedangkan parameter aktual hanya
berlaku di subprogram saja.
C. Parameter formal adalah parameter yang terdapat pada pendeklarasian judul
subprogram, sedangkan parameter aktual adalah parameter pada pemanggilan fungsi
atau prosedur.
D. Parameter formal dapat bertindak sebagai variabel input dan output, sedangkan
parameter aktual hanya bertindak sebagai variabel input saja
E Semua jawaban salah
(UTS 2008 2009)
91. Telusuri algoritma program di bawah ini PROGRAM UTS_kaleee
{IS: meminta inputan bilangan
FS: menampilkan hasil berupa bilangan dan string}
KAMUS:
X,Y: integer
Z : string
Function inttostr(angka:integer) string {mengkonversi nilai integer menjadi string}
Procedure doy(input I,J:integer,output K:string)
Procedure dyo(input I,J:integer,output K:integer)
Function test (X:integer) boolean Function text (X,Y:integer) string
ALGORITMA:
Input(X,Y);
If test(Y) then
Doy(X,Y,Z)
Else
Z Text(Y,X)
Output(Z,Y,X)
{Definisi function dan procedure}
Function test (X:integer) boolean
KAMUS LOKAL
Algoritma:
If ((X+1) mod 3=0) then
true else
false
Procedure dyo(input I,J:integer,output K:integer)
KAMUS LOKAL
Algoritma:
K I*J-I
Procedure doy(input I,J:integer,output K:string)
KAMUS LOKAL
Algoritma:
Depend on (I,J)
I = J : K xxaxx I < J : K xaaxx I > J : K xxaax
Function text (X,Y:integer) string
KAMUS LOKAL
Z:integer
Algoritma:
Dyo(X,Y,Z)
inttostr(Z*2)
Keluaran dari program di atas jika input X = 5 dan Y=4 adalah:
A. 32 4 5 D. 30 4 5 B. xxaax 4 5 E. 32 5 4 C. xxaax 5 4 (UTS 2008 2009)
92. Perhatikan Program berikut ini : Program mumet1
Kamus
const bingung : Integer = 5
yyy : integer
Procedure PindahBaris
{I.S : Sembarang}
{F.S : cursor berpindah ke baris berikutnya}
Procedure pusing(Input xxx:integer)
{I. S : nilai xxx terdefinisi }
{F. S : nilai xxx tampil di layar}
Algoritma
yyy traversal [bingung-4..bingung]
pusing(yyy)
Pindahbaris
procedure pusing(input xxx:integer)
{I. S : nilai xxx terdefinisi }
{F. S : nilai xxx tampil di layar}
Kamus lokal
yyy : integer
Algoritma
yyy traversal [1..xxx]
output(xxx)
A. 1
2
3
4
5
D. 11111
2222
333
44
5
B. 1
22
333
4444
55555
E. 55555
4444
333
22
1
C. 11111
22222
33333
44444
55555
(UTS 2008 2009)
93. Perhatikan program berikut ini : Program undefined
Kamus
one,two,three : integer
Procedure defined (Input one : integer;
Input/output two : Integer;
output three : integer)
{I. S : nilai one dan two terdefinisi }
{F. S : menghasilkan nilai two dan three }
Algoritma
one 10 two 5
defined(one,two,three)
Procedure defined (Input one : integer;
Input/output two : Integer;
output three : integer)
Kamus Lokal
Algoritma
one 2 * one + two two one + two * 2
three one + two
Berapakah nilai one,two,three sebelum dan setelah memanggil procedure
defined ?
A. 10, 5, 0 & 10, 35, 60
B. 10, 5, 0 & 25, 60, 85
C. 10, 5, 0 & 25, 35, 60
D. 10, 5, 0 & 10, 35, 85
E Semua Jawaban Salah
(UTS 2008 2009)
Algoritma di bawah ini untuk menjawab soal nomor 94 95 1 Program cari_maks
2 { I.S : menerima masukan 4 buah bilangan
3 F.S : Menampilkan bilangan terbesar dari keempat bilangan tersebut}
4 Kamus
5 dat1,dat2,dat3,dat4,big : integer
6 Algoritma
7 Input(dat1,dat2,dat3,dat4)
8 if (dat1>dat2)and (dat1>dat3) and (dat1>dat4) then
9 bigdat1 10 Else
11 if (dat2>dat1)and (dat2>dat3) and (dat2>dat4) then
12 bigdat2 13 else if (dat3>dat1)and (dat3>dat2) and (dat3>dat4) then
14 bigdat3 15 else
16 bigdat4 17 output big
94. Terdapat satu buah bug pada program diatas yang menyebabkan program tidak berjalan
dengan semestinya, yaitu pada baris ke
A. 7 B. 10 C. 11 D. 13 E. 16
(UTS 2008 2009)
95. Koreksi untuk kesalahan tersebut seharusnya adalah
A. dat1input, dat2input, dat3input,dat4input
B. tanpa else
C. if (dat2>dat1 >dat3 >dat4) then
D. elseif (dat3>dat1)and (dat3>dat2) and (dat3>dat4) then
E berikan indentasi di baris 16
(UTS 2008 2009)
96. Jika program sudah diperbaiki dan dat1=7, dat2=6, dat3=10, dat4=9 , maka urutan proses
eksekusi program menjadi :
A. 7-8-10-11-13-14-17 D. 7-13-14-16-17
B. 7-8-10-11-13-14-15-16-17 E. 7-8-10-13-14-17
C. 7-8-10-11-13-14-16-17
(UTS 2008 2009)
97. Jika terdapat 3 variabel bertipe string sebagai berikut: str, has : string
cc : character
strHell cco has Str cc
Jika has berisi Hello, maka operasi pada has adalah : A. o D. Hello
B. Hell E. Tidak bisa ditentukan
C. oHell
(UTS 2008 2009)
98. Perhatikan program di bawah ini Program allAboutBoolean
Kamus
X, Y, Z : Boolean
A : integer
Algoritma
Input(a)
X True Z ( (4 + (5 div 2) ) = 5) Y a >= 0 If (X and Y) Xor (Y and Z) then
Output (Terpenuhi)
Else
Output (Tidak Terpenuhi)
Output ( Ya)
Apa yang akan dioutputkan oleh program di atas?
A. Terpenuhi
B. Terpenuhi Ya
C. Tidak Terpenuhi
D. Tidak Terpenuhi Ya
E Tidak ada jawaban yang benar, karena nilai variable a belum dapat ditentukan
nilainya (tergantung dengan inputan user)
(UTS 2008 2009)
99. Telusuri program di bawah ini. Program analisakasus1
Kamus
x,y : integer
Algoritma
input (x,y,z)
Depend on (x,y)
xy : depend on (y,z)
y>z : output (fine) y=80 then
zz-30 if z>=70 then
zz-10 else
if z>= 65 then
zz-5 yx if x
(UTS 2007 2008)
102. Perhatikan penggalan algoritma di bawah ini
x : real
x = 10 / 3
if (x = 3.3333) then
output(Sama Nilainya)
else
output(Tidak Sama Nilainya)
Apakah output dari penggalan algoritma di atas ?
A. Sama Nilainya
B. Tidak sama nilainya
C. Sama nilainya
D. Tidak Sama Nilainya
E. Error, karena bilangan bertipe real tidak bisa digunakan dalam if-then-else
(UTS 2007 2008)
103. IF (a = 10 AND b = 5) THEN c = 50 ELSE c = 15
Pada sintaks di atas jika ternyata variabel a diberikan input 5 maka nilai variabel c adalah A. 5 B. 10 C. 15 D. 25 E. 50
(UTS 2007 2008)
104. Perhatikan program di bawah ini. Program Fungsi
Kamus
i,j,k:integer
procedure prosedur1 (input i:integer;input/output j,k:integer)
Algoritma
i0;j1;k2
input(i,j,k)
prosedur1(j,k,i)
output(j,k,i)
Procedure prosedur1 (input i:integer; input/output j,k:integer)
Kamus lokal
Algoritma
k i + j
j k mod i
i j mod k
Jika algoritma tersebut dieksekusi dengan input dari user secara berurutan adalah 2, 5 dan
10, maka output yang ditampilkan adalah:
A. 0, 0, 12 D. 0, 15, 5
B. 0, 0, 15 E. 2, 0, 12
C. 5, 0, 15
(UTS 2007 2008)
105. Di bawah ini merupakan penulisan fungsi yang benar, adalah :
A. Function cobalagi (i,j : integer) integer Kamus
Algoritma
Cobalagi i + j
B. Function cobalagi (i,j : integer) integer Kamus
X : integer
Algoritma
X i + j
C. Function cobalagi (input i,j : integer output x : integer) Kamus
Algoritma
X i + j
D. Function cobalagi (i,j : integer) integer Kamus
Algoritma
Cobalagi i + j
E. Semua benar
(UTS 2007 2008)
106. Berdasarkan penulisan fungsi yang benar pada soal no 7, maka untuk mengambil nilai dari
sebuah fungsi, dapat dilakukan dengan perintah sebagai berikut :
A. a cobalagi (2,5) D. cobalagi (2,5) a B. cobalagi (2,5) E. cobalagi (2,5) a C. x cobalagi (2,5) (UTS 2007 2008)
107. Terdapat sebuah fungsi yang akan menghasilkan nilai konversi sebuah mata uang menjadi
mata uang negara lainnya. Header fungsi sebagai berikut :
function KonversiUang(jumlah,kurs:real)->real
Algoritma yang paling tepat untuk function KonversiUang tersebut adalah
A. -> output jumlah/kurs
B. output jumlah/kurs
C. jumlah/kurs
E.
input(asal)
input (kurs) KonversiUang(asal,kurs)
(UTS 2007 2008)
109
.
Perhatikan pola berikut ini: 1 5
2 4
3
2 4
1 5
Telah didefinisikan prosedure GantiBaris untuk pindah ke baris berikutnya
Pola diatas dapat dihasilkan dengan notasi algoritma:
A. N 5 i N j N Repeat N times
Repeat N times
If (i=j) then
Output(j)
Else
Output( )
{end if}
j j+1 {end repeat}
i i+1 gantibaris
{end repeat}
D. N 5 i traversal [1..N]
j traversal [N..1] If (i=j) then
Output(N-j+1)
Else
If (j=N+1-i) then
Output (i)
else
Output( )
{end if}
{end if}
{end traversal}
GantiBaris
{end traversal}
B. N 5 i 1 j 1 Repeat N times
Repeat N times
If (i=j) and (i=N+1-j) then
Output(j)
Else
Output( )
{end if}
j j+1 {end repeat}
i i+1 gantibaris
{end repeat}
E. Tidak ada jawaban yang benar
C. N 5 i traversal [1..N]
j traversal [N..1] If (i=j) and (j=N+1-i) then
Output(j)
Else
Output( )
{end if}
{end traversal}
GantiBaris
{end traversal}
(UTS 2007 2008)
110. Diketahui penggalan algoritma sebagai berikut: Program apaini
Kamus
Algoritma
Input(x)
bx While x 9999 do
Input(x)
If x > b then
bx {x=9999}
Output(b)
Jika inputnya :
12
14
2
9999
Maka nilai yang dicetak adalah
A. 12 B. 2 C. 9999 D. 12 14 2 E. 14
(UTS 2007 2008)
111. Diketahui algoritma sebagai berikut: Program hayoapa
Kamus
Algoritma
Input(x)
apahayo true While (x
D. Data_ke_satu
E. Luas_A1
(UTS 2007 2008)
113. Perhatikan program berikut ini: Program MenghitungRata2
{Program untuk menampilkan hasil perhitungan rata-rata}
Kamus :
Angka1, Angka2,Angka3 : Integer
Contstant Pembagi : Integer = 3
Function Rata2(Nilai1,Nilai2,Nilai3,JmlNilai:integer) real
Algoritma :
input(Rata2(Angka1,Angka2,Angka3,Pembagi))
output(Rata2(Angka1,Angka2,Angka3,Pembagi))
Berdasarkan program untuk menghitung rata-rata di atas, bagian mana yang salah sesuai
tujuan program di atas :
A. Integer = 3
Keterangan : seharusnya Integer 3
B. Function Rata2(Nilai1,Nilai2,Nilai3,JmlNilai:integer) real
Keterangan : seharusnya function Rata2(input : Nilai1,Nilai2,Nilai3,JmlNilai:integer) real
C. input(Rata2(Angka1,Angka2,Angka3,Pembagi))
Keterangan : yang ada di dalam kurung tidak boleh diisi pemanggilan fungsi
D. output(Rata2(Angka1,Angka2,Angka3,Pembagi))
Keterangan : yang ada di dalam kurung tidak boleh diisi pemanggilan fungsi kecuali
yang dipanggil prosedur
E. C dan D salah
(UTS 2007 2008)
114. Perhatikan program berikut ini Program PerkalianDuaAngka
{Program untuk menampilkan hasil perkalian dua angka yang dimasukkan
oleh penguna} Kamus :
Angka1, Angka2 : Integer
HasilPerkalian : Integer
Algoritma :
input(Angka1); input(Angka2)
HasilPerkalian Angka1 * Angka2 output(HasilPerkalian)
Berdasarkan program untuk menghitung perkalian dua angka di atas, bagian mana yang salah
sesuai tujuan program di atas :
A. HasilPerkalian : Integer
Keterangan : harusnya dijadikan satu dengan perintah di atasnya
B. Algoritma :
Keterangan : harusnya ada garis bawahnya
C. input(Angka1); input(Angka2)
Keterangan : harusnya tidak ada tanda ;
D. output(HasilPerkalian)
Keterangan : harusnya tidak ada tanda di antara HasilPerkalian
E. HasilPerkalian : Integer
Keterangan : harusnya tipe data real
(UTS 2007 2008)
115. Cara deklarasikan konstanta PI didalam algoritma adalah :
A. constant PI=3.14
B. constant PI=real=3.14
C. constant PI
else
N N+2 i 1 While i < N do
output (i+2)
i i +2 {end while}
C. input (N) i 0 repeat N times
output (i+1)
i i +1 {end repeat}
D. input (N) i traversal [1..N]
output(i)
i i+1 {end traversal}
E. Tidak ada jawaban yang benar
(UTS 2007 2008)
118. Manakah dari pernyataan berikut ini yang salah mengenai notasi pengulangan ?
A. Proses pengulang pada repeat until akan dihentikan bila kondisi pengecekan bernilai
true
B. Proses pengulang pada iterate stop akan tetap dijalankan bila kondisi pengecekan
bernilai false
C. Proses pengulang pada iterate stop akan dihentikan bila kondisi pengecekan bernilai
true
D. Proses pengulang pada while do akan dihentikan bila kondisi pengecekan bernilai true
E. Tidak ada jawaban yang benar
(UTS 2007 2008)
Essay UTS SP 2006 - 2007
1. Tuliskan program dengan ketentuan sebagai berikut: a. Program melakukan pengecekan, apakah seorang mahasiswa dapat dinyatakan lulus
TPB atau tidak.
spesifikasi
input : 3 record matakuliah dari seorang mahasiswa (untuk menyederhanakan
permasalahan, anggap saja matakuliah TPB cuma ada 3)
proses : melakukan menghitung IPK mahasiswa, mengecek apakah ada nilai E,
kemudian menentukan apakah mahasiswa tersebut lulus TPB
Syarat kelulusan TPB (ini hanya simulasi, bukan syarat yang sebenarnya) :
IPK mahasiswa >= 2 dan tidak ada nilai E (asumsikan tidak pernah ada nilai T)
output : mencetak IPK, dan mencetak hasil pengecekan kelulusan TPB
Contoh :
input :
Output :
IPK = 2,5
mahasiswa tersebut tidak lulus TPB
b. Program tersebut direalisasikan dalam tiga modul, yaitu:
i. Fungsi IsAdaE ii. Fungsi konversi
iii. Fungsi IsLulus
c. Kerjakan program di atas pada lembar yang sudah disediakan.
Program KelulusanTPB {Program Utama}
Kamus :
type matakuliah :
matkul1,matkul2,matkul3 : matakuliah
ada_E : ............
IPK : real
sks_total : integer
Algoritma :
.................................
{ada_E bernilai true jika mahasiswa punya nilai E, dan false jika sebaliknya}
ada_E IsAdaE(matkul11) ..... IsAdaE(matkul2)..... IsAdaE(matkul3)
sks_total .....................................
IPK ( (matkul1.sks * konversi(matkul1.nilai_huruf))+
(matkul2.sks * konversi(matkul2.nilai_huruf))+
(matkul3.sks * konversi(matkul3.nilai_huruf)) )/sks_total
Output(IPK= ,........)
{Memeriksa apakah mahasiswa memenuhi persyaratan lulus TPB,manfaatkan fungsi yang telah
anda buat }
if ........................ then
output (Mahasiswa tersebut lulus TPB)
else
output (Mahasiswa tersebut tidak lulus TPB)
function IsAdaE(k:matakuliah)boolean
{menerima sebuah record matakuliah dan mengembalikan nilai true jika ada nilai E dan false jika
sebaliknya}
kamus lokal :
algoritma
if ............... then
.............
else
.............
function konversi(nil_huruf:char) integer
{menerima sebuah nilai huruf , dan mengkonversikannya ke nilai angka}
kamus lokal :
algoritma :
depend on .............
............
............
............
............
............
function IsLulus(IPK: real, ada_E:............) boolean
{melakukan pengecekan apakah seorang mahasiswa dapat dinyatakan lulus TPB atau tidak,
berdasarkan syarat kelulusan yang telah ditetapkan}
kamus lokal :
algoritma
if .......................... then
...........
else
...........
2. Tuliskan program dengan ketentuan sebagai berikut: a. Spesifikasi program
input : jumlah bilangan yang dimasukkan (n), asumsikan n >0,
proses : dari n bilangan yang dimasukkan, program mengecek berapa banyak (cacah)
dan jumlah (total penjumlahan) dari bilangan yang merupakan kelipatan 3 dan
kurang dari 20
Jika banyaknya (cacah bilangan) adalah genap, maka dihitung rata-
ratanya dengan rumus :
Rata = jumlah dari bilangan yang merupakan kelipatan 3 dan kurang dari 20
cacah dari bilangan yang merupakan kelipatan 3 dan kurang dari 20
output : - mencetak cacah dari bilangan yang merupakan kelipatan 3 dan
kurang dari 20
- mencetak jumlah dari bilangan yang merupakan kelipatan 3 dan
kurang dari 20
- mencetak rata-rata (jika dipenuhi syarat seperti pada spesifikasi
program)
Contoh :
N = 5
Bilangan ke-1 : 1
Bilangan ke-2 : 3
Bilangan ke-3 : 6
Bilangan ke-4 : 21
Bilangan ke-5 : 34
Cacah bilangan kelipatan 3 dan kurang dari 20 = 2 (3 dan 6)
Jumlah bilangan kelipatan 3 dan kurang dari 20 = 9 (3+6)
Rata-rata: 4.5 (lihat kembali pesyaratan mencari nilai rata-rata seperti pada spesifikasi
program di atas)
b. Program tersebut direalisasikan dalam tiga modul, yaitu:
i. Procedure CekJumlahDanCacahBilangan ii. Procedure CekCacahBilDanHitungRata
Program UTS2 {Program Utama}
Kamus
n :integer {jumlah bilangan yang dimasukkan}
bil : integer {bilangan yang dimasukkan}
jum : integer {variabel untuk menyimpan nilai jumlah bilangan}
cacah:integer {variabel untuk menyimpan nilai cacah bilangan}
...................................................................
...................................................................
Algoritma
input(n)
{Pemanggilan procedure CekJumlahDanCacahBilangan}
...............................................
output(Cacah bilangan kelipatan 3 dan kurang dari 20 =,.......)
output(Jumlah bilangan kelipatan 3 dan kurang dari 20 =,.......)
if ................. then
{Pemanggilan prosedur CekJumlahDanCacahBilangan}
......................
else
output('Penyebut nol, jadi tidak bisa dicari rata-rata')
Procedure CekJumlahDanCacahBilangan(input n:integer,
output jumbil,cacahbil:integer)
{Menerima sebuah nilai yang menyatakan banyaknya bilangan
dan menghasilkan cacah dan jumlah dari bilangan-bilangan kelipatan 3}
{IS : terdefinisi banyaknya bilangan yang dimasukkan (n)
FS : menghasilkan cacah dan jumlah dari bilangan-bilangan kelipatan 3}
Kamus lokal
i,bil: integer
Algoritma
{Assignment awal}
................
................
................
while (i
output(Bilangan ke -,i,=)
...............
{Memeriksa apakah bilangan yang dimasukkan habis dibagi 3 dan
kurang dari 20}
if ........................ then
.......................
.......................
{agar pengulangan dapat berhenti, perlu statemen di bawah ini}
.............
{i=n}
Procedure CekCacahBilDanHitungRata(input cacahbil,jumbil:integer)
{Memeriksa apakah cacah bilangan adalah genap.Jika genap, hitung rata-ratanya dan dicetak}
{IS: terdefinisi cacah bilangan dan jumlah bilangan
FS:didapatkan nilai rata-rata dan mencetak nilai rata-rata}
kamus lokal
ratabil:real {variabel untuk menyimpan nilai rata-rata}
Algoritma
...........................
....................
....................
Essay UTS 2006 - 2007
[20] II.1 PENGHITUNGAN GAJI KARYAWAN
Pada suatu perusahaan terdapat lima (5) golongan karyawan. Gaji karyawan ditentukan
berdasarkan gaji tetap dan juga dari lamanya bekerja. Gaji tetap dan gaji per jam tersebut
tergantung kepada golongan karyawan sesuai dengan tabel berikut :
Golongan Gaji tetap( Rp ) Upah lembur per jam( Rp )
1 500.000 5000
2 300.000 3000
3 250.000 2000
4 100.000 1500
5 50.000 1000
Lengkapilah algoritma di bawah ini untuk menghitung jumlah total gaji karyawan yang
diterima berdasarkan jam lemburnya.
Input: golongan karyawan, nama karyawan, jam lembur sebulan.
Output: menampilkan jumlah total gaji seluruh karyawan dalam susunan terurut membesar
(ascending)
Catatan : gunakan type bentukan( record ). Tidak boleh menggunakan tabel(array).
Program adaDiSlide
Kamus type : karyawan =
k1,k2,k3:karyawan
procedure baca_data(output kt:karyawan)
procedure hitung_gaji(input/output kd:karyawan)
procedure urut(input : ku1,ku2,ku3:karyawan)
Algoritma baca_data(k1)
baca_data(k2)
baca_data(k2)
hitung_gaji(k1)
hitung_gaji(k2)
hitung_gaji(k3)
urut(k1,k2,k3)
procedure baca_data(output kt:karyawan)
Kamus lokal Input (kt.nama, kt.gol, kt.lembur)
procedure hitung_gaji(input/output kd:karyawan)
Kamus lokal
Algoritma depend on (kd.gol)
1 : kd.gaji500.000+kd.lembur*5000 2 : kd.gaji300.000+kd.lembur*3000 3 : kd.gaji250.000+kd.lembur*2000 4 : kd.gaji100.000+kd.lembur*1500 5 : kd.gaji50.000+kd.lembur*1000
procedure urut(input : ku1,ku2,ku3:karyawan)
Kamus lokal depend on (ku1.gaji, ku2.gaji, ku3.gaji)
ku1.gaji>ku2.gaji>ku3.gaji:ouput(ku3.gaji, ku2.gaji, ku1.gaji)
ku1.gaji>ku3.gaji>ku2.gaji:ouput(ku2.gaji, ku3.gaji, ku1.gaji)
ku2.gaji>ku1.gaji>ku3.gaji:ouput(ku3.gaji, ku1.gaji, ku2.gaji)
ku2.gaji>ku3.gaji>ku1.gaji:ouput(ku1.gaji, ku3.gaji, ku2.gaji)
ku3.gaji>ku1.gaji>ku2.gaji:ouput(ku2.gaji, ku1.gaji, ku3.gaji)
ku3.gaji>ku2.gaji>ku1.gaji:ouput(ku1.gaji, ku2.gaji, ku3.gaji)
[20] II.2 PERMAINAN TEBAK ANGKA
Tuliskan algoritma Permainan menebak angka, yang dilakukan antara 2 orang. Aturan
mainnya adalah sebagai berikut :
1. Pemain A diminta untuk memasukkan angka antara 1 sampai 100.
2. Pemain B diberi kesempatan 6x untuk menebak angka yang dimasukkan pemain A.
3. Setiap tebakan yang dilakukan B, program anda akan menginformasikan pada B, apakah lebih besar, lebih kecil, atau sama dengan angka yang dimasukkan
A.
4. Jika setelah 6x kesempatan pemain B gagal menebak angka yang dimasukkan A, maka pesan akan tampil Coba kembali dan proses diulang kembali.
5. Jika B berhasil menebak dengan benar, maka pemain A dan B diminta untuk menukar posisi, dan permainan diulang kembali.
6. Program akan terus berlangsung selama pemain A tidak memasukkan nilai -1.
Contoh tampilan di layar terhadap persoalan di atas sebagai berikut: (data yang diinputkan
user dalam bold style)
Player A enter number (between 1..100) to be guessed (-1) to end: 12
(Program will clear screen at this point)
Player B you have 6 chances to guess the number.
Chance 1: 50
Guess is greater than number !
Chance 2: 25
Guess is greater than number !
Chance 3: 13
Guess is greater than number !
Chance 4: 5
Guess is less than number !
Chance 5: 12
------------------ Player B Wins ------------------
Please swap roles and play again.
Player A enter number (between 1..100) to be guessed (-1) to end: -1
PROGRAM ENDED !
Lengkapilah algoritma di bawah ini untuk menjawab persoalan tebak angka tersebut yang
akan menghasilkan tampilan di layar seperti contoh di atas !
Program Game
Kamus
Number, Guess : integer
Count : integer
Change : boolean
Function InputNumber integer {fungsi untuk mengembalikan nilai berupa angka yang akan ditebak}
Function InputGuess integer {fungsi untuk mengembalikan angka tebakan yang sudah dimasukkan user}
Function GreaterThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih besar
daripada Number}
Function LessThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih kecil
daripada Number}
Function Equal (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess sama dengan Number,
yaitu angka yang ditebak}
Algoritma
Output (Player A enter number (between 1..100) to be guessed
(-1) to end : )
Number InputNumber While (Number -1) and (number > 0) and (number < 101) do
Output (Player B You have 6 change to guess the number)
Change False Count 0 Repeat
Count Count + 1 Guess InputGuess If (GreaterThan (Number,Guess)= True) then
Output (Guess is greater than number)
If (LessThan (Number,Guess)= True) then
Output (Guess is less than number)
If (Equal (Number,Guess)= True) then
Output (Thats the number !!!)
Change True Until (Count = 6) or (change = True)
Output (Please swap roles and play again)
Number InputNumber
Function InputNumber integer
{fungsi untuk mengembalikan nilai berupa angka yang akan ditebak}
Kamus Lokal
Algoritma
Input (InputNumber)
InputNumber
Function InputGuess integer {fungsi untuk mengembalikan angka tebakan yang sudah dimasukkan user}
Kamus Lokal
Algoritma
Input (InputGuess)
InputGuess
Function GreaterThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih besar
daripada Number}
Kamus Lokal
Algoritma
GreaterThan False If (Guess > Number) then
GreaterThan True GreaterThan
Function LessThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih kecil
daripada Number}
Kamus Lokal
Algoritma
LessThan False If (Guess < Number) then
LessThan True LessThan
Function Equal (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess sama dengan Number,
yaitu angka yang ditebak}
Kamus Lokal
Algoritma
Equal False If (Guess = Number) then
Equal True Equal
Essay UTS 2008 - 2009
[20] II.1 PENGHITUNGAN GAJI KARYAWAN
Pada suatu perusahaan terdapat lima (5) golongan karyawan. Gaji karyawan ditentukan
berdasarkan gaji tetap dan juga dari lamanya bekerja. Gaji tetap dan gaji per jam tersebut
tergantung kepada golongan karyawan sesuai dengan tabel berikut :
Golongan Gaji tetap( Rp ) Upah lembur per jam( Rp )
1 500.000 5000
2 300.000 3000
3 250.000 2000
4 100.000 1500
5 50.000 1000
Lengkapilah algoritma di bawah ini untuk menghitung jumlah total gaji karyawan yang
diterima berdasarkan jam lemburnya.
Input: golongan karyawan, nama karyawan, jam lembur sebulan.
Output: menampilkan jumlah total gaji seluruh karyawan dalam susunan terurut membesar
(ascending)
Catatan : gunakan type bentukan( record ). Tidak boleh menggunakan tabel(array).
Program adaDiSlide
Kamus type : karyawan =
k1,k2,k3:karyawan
procedure baca_data(output kt:karyawan)
procedure hitung_gaji(input/output kd:karyawan)
procedure urut(input : ku1,ku2,ku3:karyawan)
Algoritma baca_data(k1)
baca_data(k2)
baca_data(k2)
hitung_gaji(k1)
hitung_gaji(k2)
hitung_gaji(k3)
urut(k1,k2,k3)
procedure baca_data(output kt:karyawan)
Kamus lokal Input (kt.nama, kt.gol, kt.lembur)
procedure hitung_gaji(input/output kd:karyawan)
Kamus lokal
Algoritma depend on (kd.gol)
1 : kd.gaji500.000+kd.lembur*5000 2 : kd.gaji300.000+kd.lembur*3000 3 : kd.gaji250.000+kd.lembur*2000 4 : kd.gaji100.000+kd.lembur*1500 5 : kd.gaji50.000+kd.lembur*1000
procedure urut(input : ku1,ku2,ku3:karyawan)
Kamus lokal depend on (ku1.gaji, ku2.gaji, ku3.gaji)
ku1.gaji>ku2.gaji>ku3.gaji:ouput(ku3.gaji, ku2.gaji, ku1.gaji)
ku1.gaji>ku3.gaji>ku2.gaji:ouput(ku2.gaji, ku3.gaji, ku1.gaji)
ku2.gaji>ku1.gaji>ku3.gaji:ouput(ku3.gaji, ku1.gaji, ku2.gaji)
ku2.gaji>ku3.gaji>ku1.gaji:ouput(ku1.gaji, ku3.gaji, ku2.gaji)
ku3.gaji>ku1.gaji>ku2.gaji:ouput(ku2.gaji, ku1.gaji, ku3.gaji)
ku3.gaji>ku2.gaji>ku1.gaji:ouput(ku1.gaji, ku2.gaji, ku3.gaji)
[20] II.2 PERMAINAN TEBAK ANGKA
Tuliskan algoritma Permainan menebak angka, yang dilakukan antara 2 orang. Aturan
mainnya adalah sebagai berikut :
7. Pemain A diminta untuk memasukkan angka antara 1 sampai 100.
8. Pemain B diberi kesempatan 6x untuk menebak angka yang dimasukkan pemain A.
9. Setiap tebakan yang dilakukan B, program anda akan menginformasikan pada B, apakah lebih besar, lebih kecil, atau sama dengan angka yang dimasukkan
A.
10. Jika setelah 6x kesempatan pemain B gagal menebak angka yang dimasukkan A, maka pesan akan tampil Coba kembali dan proses diulang kembali.
11. Jika B berhasil menebak dengan benar, maka pemain A dan B diminta untuk menukar posisi, dan permainan diulang kembali.
12. Program akan terus berlangsung selama pemain A tidak memasukkan nilai -1.
Contoh tampilan di layar terhadap persoalan di atas sebagai berikut: (data yang diinputkan
user dalam bold style)
Player A enter number (between 1..100) to be guessed (-1) to end: 12
(Program will clear screen at this point)
Player B you have 6 chances to guess the number.
Chance 1: 50
Guess is greater than number !
Chance 2: 25
Guess is greater than number !
Chance 3: 13
Guess is greater than number !
Chance 4: 5
Guess is less than number !
Chance 5: 12
------------------ Player B Wins ------------------
Please swap roles and play again.
Player A enter number (between 1..100) to be guessed (-1) to end: -1
PROGRAM ENDED !
Lengkapilah algoritma di bawah ini untuk menjawab persoalan tebak angka tersebut yang
akan menghasilkan tampilan di layar seperti contoh di atas !
Program Game
Kamus
Number, Guess : integer
Count : integer
Change : boolean
Function InputNumber integer {fungsi untuk mengembalikan nilai berupa angka yang akan ditebak}
Function InputGuess integer {fungsi untuk mengembalikan angka tebakan yang sudah dimasukkan user}
Function GreaterThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih besar
daripada Number}
Function LessThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih kecil
daripada Number}
Function Equal (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess sama dengan Number,
yaitu angka yang ditebak}
Algoritma
Output (Player A enter number (between 1..100) to be guessed
(-1) to end : )
Number InputNumber While (Number -1) and (number > 0) and (number < 101) do
Output (Player B You have 6 change to guess the number)
Change False Count 0 Repeat
Count Count + 1 Guess InputGuess If (GreaterThan (Number,Guess)= True) then
Output (Guess is greater than number)
If (LessThan (Number,Guess)= True) then
Output (Guess is less than number)
If (Equal (Number,Guess)= True) then
Output (Thats the number !!!)
Change True Until (Count = 6) or (change = True)
Output (Please swap roles and play again)
Number InputNumber
Function InputNumber integer
{fungsi untuk mengembalikan nilai berupa angka yang akan ditebak}
Kamus Lokal
Algoritma
Input (InputNumber)
InputNumber
Function InputGuess integer {fungsi untuk mengembalikan angka tebakan yang sudah dimasukkan user}
Kamus Lokal
Algoritma
Input (InputGuess)
InputGuess
Function GreaterThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih besar
daripada Number}
Kamus Lokal
Algoritma
GreaterThan False If (Guess > Number) then
GreaterThan True GreaterThan
Function LessThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih kecil
daripada Number}
Kamus Lokal
Algoritma
LessThan False If (Guess < Number) then
LessThan True LessThan
Function Equal (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess sama dengan Number,
yaitu angka yang ditebak}
Kamus Lokal
Algoritma
Equal False If (Guess = Number) then
Equal True Equal
Essay UTS 2007-2008
1
. POLINOM [10]
Buatlah Agoritma untuk menghitung hasil evaluasi polinom
P(x) = xn + x
n-1 + x
n-2 + + x
Function Evaluasi_Polinom (n:integer,x:integer)integer {menerima input n dan x bertipe integer. n merupakan pangkat tertinggi
dari polinom, n>=1. Fungsi mengembalikan nilai deret xn + x
n-1 + x
n-2 + + x
}
Kamus
Pangkat : integer {hasil eksponensial tiap suku}
sum : integer {hasil penjumlahan suku-suku polinom}
i : integer {pencacah}
Algoritma
Pangkat 1 Sum 0 i traversal [1..n]
pangkat pangkat * x sum sum + pangkat Sum
ATAU Solusi lain
Function Evaluasi_Polinom (n:integer,x:integer)integer {menerima input n dan x bertipe integer. n merupakan pangkat tertinggi
dari polinom, n>=1. Fungsi mengembalikan nilai deret xn + x
n-1 + x
n-2 + +
x }
Kamus
Pangkat : integer {hasil eksponensial tiap suku}
sum : integer {hasil penjumlahan suku-suku polinom}
i,j : integer {pencacah}
Algoritma
Sum 0 i traversal [n..1]
pangkat 1 j traversal [1..i]
pangkat pangkat * x sum sum + pangkat Sum
2. PEMBACAAN KARAKTER [10] a) Tuliskan sebuah fungsi yang mengembalikan nilai TRUE jika karakter pertama sama
nilainya dengan karakter kedua.
b) Tuliskan program utama berisikan pengulangan pembacaan karakter pertama dan karakter kedua dengan kondisi berhenti jika karakter pertama nilainya berbeda dengan
karakter kedua. Catatan: gunakan notasi pengulangan dimana badan program
dieksekusi/dijalankan minimal satu kali.
function cek(a,b : character) boolean
{mengembalikan nilai TRUE jika karakter pertama = karakter kedua dan FALSE jika
sebaliknya }
Kamus lokal
if a = b then
cek true else
cek false
Program utama
{program berisi pengulangan membaca dua karakter hingga dua karakter tersebut
berbeda. Pengecekan karakter dilakukan dengan pemanggilan fungsi cek() } Kamus
c1,c2: character
function cek(a,b: character) boolean
repeat
read(c1)
read(c2)
until not(cek(c1,c2))
3. PENGHITUNGAN GAJI KARYAWAN [20] Pada suatu perusahaan terdapat lima (5) golongan karyawan. Gaji karyawan ditentukan
berdasarkan gaji tetap dan juga dari lamanya bekerja. Gaji tetap dan gaji per jam tersebut
tergantung kepada golongan karyawan sesuai dengan tabel berikut :
Golongan Gaji tetap( Rp ) Upah lembur per jam( Rp )
1 500.000 5000
2 300.000 3000
3 250.000 2000
4 100.000 1500
5 50.000 1000
Lengkapilah algoritma di bawah ini untuk menghitung jumlah total gaji karyawan yang
diterima berdasarkan jam lemburnya.
Input: golongan karyawan, nama karyawan, jam lembur sebulan.
Output: menampilkan jumlah total gaji seluruh karyawan dalam susunan terurut membesar
(ascending)
Catatan : gunakan type bentukan( record ). Tidak boleh menggunakan tabel(array).
Program adaDiSlide
Kamus type : karyawan =
k1,k2,k3:karyawan
procedure baca_data(output kt:karyawan)
procedure hitung_gaji(input/output kd:karyawan)
procedure urut(input : ku1,ku2,ku3:karyawan)
Algoritma baca_data(k1)
baca_data(k2)
baca_data(k2)
hitung_gaji(k1)
hitung_gaji(k2)
hitung_gaji(k3)
urut(k1,k2,k3)
procedure baca_data(output kt:karyawan)
Kamus lokal Input (kt.nama, kt.gol, kt.lembur)
procedure hitung_gaji(input/output kd:karyawan)
Kamus lokal
Algoritma depend on (kd.gol)
1 : kt.gajiku1>ku3:ouput(ku3.gaji, ku1.gaji, ku2.gaji)
ku2>ku3>ku1:ouput(ku1.gaji, ku3.gaji, ku2.gaji)
ku3>ku1>ku2:ouput(ku2.gaji, ku1.gaji, ku3.gaji)
ku3>ku2>ku1:ouput(ku1.gaji, ku2.gaji, ku3.gaji)