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;
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)
(UTS 2008-2009)
Keluaran : ………………….
(UTS 2008-2009)
begin
If (a div b)=1 then b:=1
Else if (a mod b)=0 then b:=2
Else b:=3;
End;
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 :
B. Tipe parameter...............................................................................
(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 }
................................................................................................................................
............................... { Inisialisasi}
(UTS 2008-2009)
(UTS 2008-2009)
(UTS 2008-2009)
Agar output dari program tersebut adalah „hasilnya ini‟, maka statemen kondisi pada
tempat yang bertanda titik-titik (……) seharusnya:
(UTS 2008-2009)
(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;
(UTS 2008-2009)
(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;
(UTS 2008-2009)
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);
(UTS 2008-2009)
D. „A‟
„D‟
E
„E‟
(UTS 2008-2009)
(UTS 2008-2009)
24. Jika ch1,ch2 dan ch3 bertipe karakter , dengan urutan pembacaan data sbb :
1
ab
1.2
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);
A. *
**
***
B. ***
**
*
C. *
*
*
D. ***
***
***
E ******
(UTS 2005 – 2006)
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)
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;
B. Repeat
write(i);
until n<I;
C. Repeat
write(i);
until I >N;
D. While I<=N do
write(i);
E I:=1
while I<=N do
write(i);
begin
If a=’Satu’ then b=’APA’
Else if a=’dua’ then b=’APA-APAAN’
Else b=’APAADANYA’;
End;
{Variabel GLOBAL}
Const N=3;
Var kata, kiti: string;
i : integer;
begin
write(‘Masukkan kata satu, dua atau yang lain:’);
readln(kata);
for i:=1 to N do
begin
APA(kata, kiti);
write(kiti);
end;
end.
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)
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)
B. FUNCTION<nama>(daftar_parameter);
Bagian_deklarasi;
Bagian_penyataan;
C. PROCEDURE<nama>(daftar_parameter):tipe;
Bagian_deklarasi;
Bagian_penyataan;
D. PROSEDUR<nama>(daftar_parameter);
Bagian_deklarasi;
Bagian_penyataan;
E FUNGSI<nama>(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.
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)
43. Jika pengguna menginputkan x=3, y=3, dan x=5 maka output algoritma tersebut adalah:
A. 1 B. 2 C. 3 D. 4 E. 5 F. Semua jawaban salah
(UTS SP 2006 – 2007)
44. Jika pengguna menginputkan x=4,y=5, dan x=5 maka output algoritma tersebut adalah:
A. 1 B. 2 C. 3 D. 4 E. 5 F. Semua jawaban salah
(UTS SP 2006 – 2007)
45. Berkenaan dengan sejarah generasi komputer, manakah pernyataan yang salah :
A. Generasi pertama telah menggunakan bahasa mesin
B. Generasi kedua telah menggunakan bahasa assembly.
C. Generasi ketiga telah muncul mini komputer
D. Generasi keempat masih menggunakan integrated circuit
E Generasi kelima tidak lagi menggunakan bahasa tingkat tinggi
F. Semua pernyataan di atas adalah benar
(UTS SP 2006 – 2007)
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 D. while (i <= x) do
Sum Sum+x i=i+1
i=i+1 Sum ← Sum + x
until (x=i)
B. i traversal [1..x] E Repeat x times
Sum Sum+x Input (i)
Sum ← Sum + x
C. iterate F Tidak ada jawaban yang
Sum Sum+x benar
stop (i=x)
i=i+1
(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 C. Program Deret
Kamus Kamus
i,sum : integer i,sum : integer
Algoritma Algoritma
input (n); i0 input(n); i0
sum0 sum0
while i<=(n*2) do while i<=(n*2) do
ii+2 ii+2
sum sum+i if i mod 2=0 then
output(sum) sum sum+i
output(sum)
B. Program Deret D. Program Deret
Kamus Kamus
i,sum : integer i,sum : integer
Algoritma Algoritma
Input(n);i1 i0
sum0 sum0
while i<(n*2)+1 do while i<n do
if i mod 2=0 then ii+1
sum sum+i sum sum+i*2
ii+1 output(sum)
output(sum)
E A,B,C,D tidak ada yang benar F. A,B,C,D tidak ada yang salah
52. Berikut adalah pernyataan yang benar mengenai variabel lokal dan global.
A. Variabel global adalah variabel yang terdapat pada deklarasi fungsi atau prosedur.
B. Variabel lokal diakui di seluruh bagian program.
C. Parameter yang terdapat pada pendeklarasian subprogram termasuk variable global.
D. Variabel yang ada pada deklarasi prosedur dapat diolah pada program utama.
E. Variabel global yang memiliki nama yang sama dengan variabel lokal tidak dapat
diolah pada fungsi yang mendeklarasikan variabel lokal tersebut.
F. Semua pernyataan salah
(UTS SP 2006 – 2007)
Jika nilai-nilai x yang akan diinputkan adalah 2,3,5,7,10,1. Maka nilai yang dicetak oleh
program di atas adalah :
A. 16 B. 12 C. 4 D. 6 E. 2 F. Tdk ada yg benar
(UTS SP 2006 – 2007)
KAMUS:
A: integer
Function X (D,P:integer) integer
Function Y(I,J:integer)integer
ALGORITMA:
A2
Output(A,’=’,Y(A,3))
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)
Program undefined
Kamus
one,two,three : integer
Algoritma
one 5; two 10; three 5
defined(three,two,one)
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)
63. Jika pengguna menginputkan x=3 dan y=3, maka output algoritma tersebut adalah:
A. 1 B. 2 C. 3 D. 4 E 5
(UTS 2006 – 2007)
64. Jika pengguna menginputkan x=4 dan y=5, maka output algoritma tersebut adalah:
A. 1 B. 2 C. 3 D. 4 E 5
(UTS 2006 – 2007)
65. Jika pengguna menginputkan a=2, b=5 dan c=6, maka output algoritma tersebut adalah:
A. abc B. bac C. cab D. cba E. acb
(UTS 2006 – 2007)
66 Jika pengguna menginputkan a=2, b=1 dan c=1, maka output algoritma tersebut adalah:
A. abc B. bac C. cab D. cba E. acb
(UTS 2006 – 2007)
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 D. while (X ≠ 9999) do
sum sum+x Sum ← Sum + x
input(x) input(X)
until (x=9999)
B. repeat E while (X ≠ 9999) do
sum sum+i Sum ← Sum + x
input(x)
until (x=9999)
C. repeat
sum sum+1
input(x)
until (x=9999)
(UTS 2006 – 2007)
70. Di bawah ini yang merupakan program yang benar untuk menjumlahkan bilangan 2 + 4 + 6
+ 8 + 10 adalah
A. Program Deret C. Program Deret
Kamus Kamus
i,sum : integer i,sum : integer
Algoritma Algoritma
i0 i1
sum0 sum0
while i<=10 do while i<=10 do
ii+2 if i mod 2=0 then
sum sum+1 sum sum+i
output(sum) ii+2
output(sum)
Jika nilai-nilai x yang diinputkan adalah 2,3,5,7,10,1. Maka nilai yang dicetak oleh program
di atas adalah :
A. 16 B. 12 C. 4 D. 6 E. 2
(UTS 2006 – 2007)
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)
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)
ALGORITMA:
Input(X,Y);
If test(Y) then
Doy(X,Y,Z)
Else
Z Text(Y,X)
Output(Z,Y,X)
KAMUS LOKAL
Algoritma:
If ((X+1) mod 3=0) then
true
else
false
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’
KAMUS LOKAL
Z:integer
Algoritma:
Dyo(X,Y,Z)
inttostr(Z*2)
Kamus
const bingung : Integer = 5
yyy : integer
Procedure PindahBaris
{I.S : Sembarang}
{F.S : cursor berpindah ke baris berikutnya}
Algoritma
yyy traversal [bingung-4..bingung]
pusing(yyy)
Pindahbaris
Kamus lokal
yyy : integer
Algoritma
yyy traversal [1..xxx]
output(xxx)
A. 1 D. 11111
2 2222
3 333
4 44
5 5
B. 1 E. 55555
22 4444
333 333
4444 22
55555 1
C. 11111
22222
33333
44444
55555
(UTS 2006 – 2007)
Algoritma
one 10
two 5
defined(one,two,three)
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)
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)
83. Jika pengguna menginputkan 5,3,1 maka output algoritma tersebut adalah:
(UTS 2008 – 2009)
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 D. while (X ≠ 9999) do
sum sum+x Sum ← Sum + x
input(x) input(X)
until (x=9999)
B. repeat E while (X ≠ 9999) do
sum sum+i Sum ← Sum + x
input(x)
until (x=9999)
C. repeat
sum sum+1
input(x)
until (x=9999)
(UTS 2008 – 2009)
86. Di bawah ini yang merupakan program yang benar untuk menjumlahkan bilangan 2 + 4 + 6
+ 8 + 10 adalah
A. Program Deret C. Program Deret
Kamus Kamus
i,sum : integer i,sum : integer
Algoritma Algoritma
i0 i1
sum0 sum0
while i<=10 do while i<=10 do
ii+2 if i mod 2=0 then
sum sum+1 sum sum+i
output(sum) ii+2
output(sum)
Jika nilai-nilai x yang diinputkan adalah 2,3,5,7,10,1. Maka nilai yang dicetak oleh program
di atas adalah :
A. 16 B. 12 C. 4 D. 6 E. 2
(UTS 2008 – 2009)
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)
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)
ALGORITMA:
Input(X,Y);
If test(Y) then
Doy(X,Y,Z)
Else
Z Text(Y,X)
Output(Z,Y,X)
KAMUS LOKAL
Algoritma:
If ((X+1) mod 3=0) then
true
else
false
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’
KAMUS LOKAL
Z:integer
Algoritma:
Dyo(X,Y,Z)
inttostr(Z*2)
Kamus
const bingung : Integer = 5
yyy : integer
Procedure PindahBaris
{I.S : Sembarang}
{F.S : cursor berpindah ke baris berikutnya}
Algoritma
yyy traversal [bingung-4..bingung]
pusing(yyy)
Pindahbaris
Kamus lokal
yyy : integer
Algoritma
yyy traversal [1..xxx]
output(xxx)
A. 1 D. 11111
2 2222
3 333
4 44
5 5
B. 1 E. 55555
22 4444
333 333
4444 22
55555 1
C. 11111
22222
33333
44444
55555
(UTS 2008 – 2009)
Algoritma
one 10
two 5
defined(one,two,three)
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)
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
……
str’Hell’
cc’o’
has Str • cc
Jika pada program analisakasus1 tersebut pengguna memasukkan x=3, y=8, dan z=5
dimana x≠y≠z, maka output algoritma tersebut adalah:
A. latihan B. prokom C. aku D. Fine E good
(UTS 2007 – 2008)
Jika input dari program analisakasus2 tersebut untuk x= 32 dan y=50,maka nilai x,y,z
akhir (output) adalah :
A. x = 32 B. x=32 C. x=50 D. x=50 E x=42
y =50 y=32 y=32 y=50 y=50
z = 52 z=42 z=-52 z=42 z=32
(UTS 2007 – 2008)
Untuk membuat daftar menu seperti diatas sebaiknya menggunakan notasi algoritma
A. if B. If..then C. If..then…else D. If..then..else..if E. Depend on
(UTS 2007 – 2008)
……………………
x : real
……………………
x = 10 / 3
if (x = 3.3333) then
output(‘Sama Nilainya’)
else
output(‘Tidak Sama Nilainya’)
……………………
Kamus
i,j,k:integer
procedure prosedur1 (input i:integer;input/output j,k:integer)
Algoritma
i←0;j←1;k←2
input(i,j,k)
prosedur1(j,k,i)
output(j,k,i)
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)
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
B. Program TentangUang
Kamus
jumlah : real {jumlah uang yang akan dikonversi}
hasil : real (jumlah uang setelah dikonversi)
kurs : real
Algoritma
input(asal)
input (kurs)
hasil <- (KonversiUang(asal,kurs))
C. Program TentangUang
Kamus
asal : real {jumlah uang yang akan dikonversi}
hasil : real (jumlah uang setelah dikonversi)
kurs : real
Algoritma
input(asal)
input (kurs)
hasil <- (KonversiUang(asal,kurs))
output (hasil)
D. Program TentangUang
Kamus
jumlah : real {jumlah uang yang akan dikonversi}
hasil : real (jumlah uang setelah dikonversi)
kurs : real
Algoritma
input(asal,kurs)
hasil <- (KonversiUang(asal,kurs))
output (hasil)
E. Program TentangUang
Kamus
jumlah : real {jumlah uang yang akan dikonversi}
hasil : real (jumlah uang setelah dikonversi)
kurs : real
Algoritma
input(asal)
input (kurs)
KonversiUang(asal,kurs)
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}
Jika x = 6, maka
A. Akan tercetak 'hidup prokom' 1 kali
B. Akan tercetak 'hidup prokom' 10 kali
C. Akan tercetak 'hidup prokom' 9 kali
D. Tidak ada nilai yg dicetak
E. Akan tercetak 'hidup prokom' tak berhingga kali
(UTS 2007 – 2008)
112. Berikut ini adalah nama variabel yang dapat dipergunakan (valid), KECUALI
A. data_pertama
B. Data1
C. Data 1
D. Data_ke_satu
E. Luas_A1
(UTS 2007 – 2008)
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
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)
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)
A. TRUE
B. FALSE
C. MIGHT BE TRUE
D. MIGHT BE FALSE
E. IF NOT TRUE THEN FALSE
(UTS 2007 – 2008)
117. Dari algoritma dibawah ini manakah algoritma yang tidak menghasilkan deret bilangan ganjil
pada perangkat keluaran (inputan user selalu bilangan bulat positif, 0 dianggap genap positif)
A. input (N)
i traversal [1..N]
if (i mod 2 = 0 ) then
output(i+1)
else
output(i)
{end if}
{end traversal}
B. input (N)
if (N mod 2 = 0 ) then
N N+1
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)
Contoh :
input :
<‟CS 1023‟, „3‟, „B‟>
<‟MA1114‟, „4‟, „A‟>
<‟MA 2333‟, „3‟, „E‟>
Output :
IPK = 2,5
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
.............
Rata = jumlah dari bilangan yang merupakan kelipatan 3 dan kurang dari 20
cacah dari bilangan yang merupakan kelipatan 3 dan kurang dari 20
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)
...................................................................
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')
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)
Kamus
type : karyawan = <nama:string, gol:integer, lembur:integer,
gaji:integer>
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)
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
Algoritma
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)
Kamus
type : karyawan = <nama:string, gol:integer, lembur:integer,
gaji:integer>
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)
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
Algoritma
1 POLINOM [10]
. Buatlah Agoritma untuk menghitung hasil evaluasi polinom
P(x) = xn + xn-1 + xn-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
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))
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)