Petunjuk mengerjakan soal!
* Soal berbentuk pilihan ganda, pilihlah jawaban yang paling benar!
* Skor ditentukan :
Benar = +4; Salah = -1; Tidak Menjawab = 0
* Waktu mengerjakan soal 120 menit dari mulai file terkirim operator (max pk 10.20WIB)!
* File harus dikirim paling lambat jam 12.20 WIB ke alamat e-mail ranti.smansa@gmail.com ,
* Soal berbentuk pilihan ganda, pilihlah jawaban yang paling benar!
* Skor ditentukan :
Benar = +4; Salah = -1; Tidak Menjawab = 0
* Waktu mengerjakan soal 120 menit dari mulai file terkirim operator (max pk 10.20WIB)!
* File harus dikirim paling lambat jam 12.20 WIB ke alamat e-mail ranti.smansa@gmail.com ,
CC : kirey_smansa@yahoo.co.id. Atau pada jendela komentar pada blog yang tersedia .Jika
lewat dari jam tersebut, dinyatakan gugur!
1. Pernyataan manakah yang boleh dipakai untuk mendeklarasikan variabel dalam Pascal?
a. var A, B;
b. var A: Real, B: Integer;
c. var A; B: Integer;
d. var (A, B): Integer;
e. var A: Pointer; B: Integer;
1. Pernyataan manakah yang boleh dipakai untuk mendeklarasikan variabel dalam Pascal?
a. var A, B;
b. var A: Real, B: Integer;
c. var A; B: Integer;
d. var (A, B): Integer;
e. var A: Pointer; B: Integer;
2. Carilah deklarasi yang tidak diperbolehkan:
a. const A = 14;
B = A * 2.5;
b. const E1 = 'Division by zero';
E2 = 'Overflow';
E3 = 'Invalid argument';
ErrMsg: array[1..3] of String =(E1, E2, E3);
c. const A = 40;
B: Integer = A * 15;
d. const A = 123;
B = Chr(A);
e. Semua jawaban salah
a. const A = 14;
B = A * 2.5;
b. const E1 = 'Division by zero';
E2 = 'Overflow';
E3 = 'Invalid argument';
ErrMsg: array[1..3] of String =(E1, E2, E3);
c. const A = 40;
B: Integer = A * 15;
d. const A = 123;
B = Chr(A);
e. Semua jawaban salah
3. Berikut ini penggalan program pascal :
function abc( a, b : byte ) : longint ;
begin
if b = 0 then abc := 1
else abc := a * abc(a, b-1) ;
end ;
Bila function abc di atas dipanggil dengan x := abc(5,3 ) ; maka x berharga :
a. 15
b. 125
c. 1
d. 8
e. salah semua
4. Masih berhubungan dengan function no. 23. di atas, function abc dipanggil dengan statemen
x := abc ( 3, 5) maka x berharga :
a. 81
b. 15
c. 243
d. 9
e. salah semua
5. Masih berhubungan dengan function abc soal no. 23 di atas, bila statemen abc := a * abc(a, b- 1) diganti dengan abc := a + abc(a,b-1) dan dipanggil dengan x := abc(3,4) maka x berharga :
a. 13
b. 12
c. 10
d. 11
e. salah semua
6. Perhatikan potongan program berikut :
begin
writeln(round(frac(3.7)));
end.
Apa keluaran program di atas ?
a. 0 b. 1 c. 2 d. 3 e. 4
function abc( a, b : byte ) : longint ;
begin
if b = 0 then abc := 1
else abc := a * abc(a, b-1) ;
end ;
Bila function abc di atas dipanggil dengan x := abc(5,3 ) ; maka x berharga :
a. 15
b. 125
c. 1
d. 8
e. salah semua
4. Masih berhubungan dengan function no. 23. di atas, function abc dipanggil dengan statemen
x := abc ( 3, 5) maka x berharga :
a. 81
b. 15
c. 243
d. 9
e. salah semua
5. Masih berhubungan dengan function abc soal no. 23 di atas, bila statemen abc := a * abc(a, b- 1) diganti dengan abc := a + abc(a,b-1) dan dipanggil dengan x := abc(3,4) maka x berharga :
a. 13
b. 12
c. 10
d. 11
e. salah semua
6. Perhatikan potongan program berikut :
begin
writeln(round(frac(3.7)));
end.
Apa keluaran program di atas ?
a. 0 b. 1 c. 2 d. 3 e. 4
7. Diketahui deklarasi fungsi dan variabel sebagai berikut:
var St: String;
procedure Sulap(var S: String);
begin
if S = 'Kecil’ then S :=’kecil’ else
if S = ‘Besar’ then S :=’BESAR’;
end;
Di antara potongan program berikut, manakah yang salah?
a. St := Chr(60);
Sulap(St);
b. St :=’KECIL’;
Sulap(St);
c. St := Chr(45) + Chr(65);
Sulap(St);
d. Sulap(‘Besar’);
e. Semua ekspresi di atas benar
var St: String;
procedure Sulap(var S: String);
begin
if S = 'Kecil’ then S :=’kecil’ else
if S = ‘Besar’ then S :=’BESAR’;
end;
Di antara potongan program berikut, manakah yang salah?
a. St := Chr(60);
Sulap(St);
b. St :=’KECIL’;
Sulap(St);
c. St := Chr(45) + Chr(65);
Sulap(St);
d. Sulap(‘Besar’);
e. Semua ekspresi di atas benar
8. Perintah mana yang tidak boleh digunakan untuk file bertipe text?
a. Assign
b. Reset
c. EOF
d. FilePos
e. Semua boleh digunakan untuk Text
a. Assign
b. Reset
c. EOF
d. FilePos
e. Semua boleh digunakan untuk Text
9. Misalkan file INPUT.TXT berisi baris-baris sebagai bcrikut:
3 1 4 9
5 2 6
8 7
0
Bagaimanakah output dari program tersebut?
a. 3 1 4 9
5 2 6
8 7
b. 3 1 4
9 5
c. 3 1 4
5 2
d. 3 1 4
5 8
e. Terjadi runtime error karena isi file INPUT.TXT tidak sesuai untuk program ini.
3 1 4 9
5 2 6
8 7
0
Bagaimanakah output dari program tersebut?
a. 3 1 4 9
5 2 6
8 7
b. 3 1 4
9 5
c. 3 1 4
5 2
d. 3 1 4
5 8
e. Terjadi runtime error karena isi file INPUT.TXT tidak sesuai untuk program ini.
Program berikut ini dipakai untuk menjawab dua soal di bawah ini
var Bil:Integer;
procedure Find(B:Integer;I:Integer);
var J,R:Integer;
begin
R:=Round(sqrt(B));
J:=2;
while (J<=R) and (B Mod J<>0) do
inc(J);
if J<=R then begin Write(J,'*'); Find(B div J, I+1); end; else if I>0 then
Writeln(B,'=',Bil)
else
Writeln('Bilangan Prima!');
end;
begin
Write('Masukkan bilangan : ');
Readln(Bil);
Find(Bil,0);
end.
10. Bagaimana output program di atas bila inputnya 42?
a. 7 * 3 * 2 = 42
b. Bilangan prima
c. =42
d. 2 * 3 * 7 = 47
e. Salah semua
11. Bagaimana output program di atas bila, inputnya 23?
a. = 23
b. Bilangan pima
c. 23 * 1 = 23
d. = 23 Bilangan prima!
e. Salah semua
Joni, petugas statistik yang baru saja belajar Pascal. Mencoba membuat program perata-rata sebagai berikut :
var Amatan:array[5] of integer;
Jumlah:Integer;
Rata-Rata :Integer;
I :Integer;
begin
for I:=1 to 5 do
begin
Write('Amatan ke-',I,' : ');
Readln(Amatan[I]);
end;
Jumlah:=0;
For I:=1 to 5 do
begin
Jumlah:=Jumlah+Amatan[I];
RataRata:=Jumlah/5;
Writeln('Jumlah = ',Jumlah);
Writeln('Rata-rata = ',RataRata);
Readln;
end.
Gunakan program yang dibuat oleh Joni ini untuk menjawab soal-soal berikut.
12. Ketika si Joni mencoba menjalankan program tersebut, temyata, compiler menunjukkan sebuah pesan kesalahan yang membuat: ia kebingungan. Tahukah Anda kesalahan pertama yang dibuat Joni?
a. Judul program (program Statistik) terlalu panjang, maksimum 8 karakter (misalnya: program Stat)
b. Procedure Readln (pada baris terakhir program sebelum end.) tidak boleh dipanggil tanpa parameter. Jadi seharusnya: Readln(I);
c. Statement for dengan variabel sama tidak boleh diulangi dua kali. Seharusnya dideklarasikan variabel lain, misalnya var I: Integer untuk for yang kedua
d. Deklarasi array salah, semestinya: var Amatan: array[ 1..5] of Integer;
e. Nama variabel seperti RataRata tidak valid, scharusnya Ratarata
13. Setelah Anda memberi saran demikian, temyata Joni masih belum bisa meng-compile programnya. Apa sebabnya?
a. setiap variabel harus dideklarasikan dengan keyword var sendiri-sendiri.
Misalnya:
var Jumlah: Integer;
var RataRata:Integer;
Var I:Integer;
b. Variabel RataRata tidak harus bertipe Real
c. Semua variabel, kecuali I seharusnya adalah Real, tidak boleh Integer
d. Pemisah antara parameter dalam Write dan Writeln harus titik koma, bukan koma,
var Bil:Integer;
procedure Find(B:Integer;I:Integer);
var J,R:Integer;
begin
R:=Round(sqrt(B));
J:=2;
while (J<=R) and (B Mod J<>0) do
inc(J);
if J<=R then begin Write(J,'*'); Find(B div J, I+1); end; else if I>0 then
Writeln(B,'=',Bil)
else
Writeln('Bilangan Prima!');
end;
begin
Write('Masukkan bilangan : ');
Readln(Bil);
Find(Bil,0);
end.
10. Bagaimana output program di atas bila inputnya 42?
a. 7 * 3 * 2 = 42
b. Bilangan prima
c. =42
d. 2 * 3 * 7 = 47
e. Salah semua
11. Bagaimana output program di atas bila, inputnya 23?
a. = 23
b. Bilangan pima
c. 23 * 1 = 23
d. = 23 Bilangan prima!
e. Salah semua
Joni, petugas statistik yang baru saja belajar Pascal. Mencoba membuat program perata-rata sebagai berikut :
var Amatan:array[5] of integer;
Jumlah:Integer;
Rata-Rata :Integer;
I :Integer;
begin
for I:=1 to 5 do
begin
Write('Amatan ke-',I,' : ');
Readln(Amatan[I]);
end;
Jumlah:=0;
For I:=1 to 5 do
begin
Jumlah:=Jumlah+Amatan[I];
RataRata:=Jumlah/5;
Writeln('Jumlah = ',Jumlah);
Writeln('Rata-rata = ',RataRata);
Readln;
end.
Gunakan program yang dibuat oleh Joni ini untuk menjawab soal-soal berikut.
12. Ketika si Joni mencoba menjalankan program tersebut, temyata, compiler menunjukkan sebuah pesan kesalahan yang membuat: ia kebingungan. Tahukah Anda kesalahan pertama yang dibuat Joni?
a. Judul program (program Statistik) terlalu panjang, maksimum 8 karakter (misalnya: program Stat)
b. Procedure Readln (pada baris terakhir program sebelum end.) tidak boleh dipanggil tanpa parameter. Jadi seharusnya: Readln(I);
c. Statement for dengan variabel sama tidak boleh diulangi dua kali. Seharusnya dideklarasikan variabel lain, misalnya var I: Integer untuk for yang kedua
d. Deklarasi array salah, semestinya: var Amatan: array[ 1..5] of Integer;
e. Nama variabel seperti RataRata tidak valid, scharusnya Ratarata
13. Setelah Anda memberi saran demikian, temyata Joni masih belum bisa meng-compile programnya. Apa sebabnya?
a. setiap variabel harus dideklarasikan dengan keyword var sendiri-sendiri.
Misalnya:
var Jumlah: Integer;
var RataRata:Integer;
Var I:Integer;
b. Variabel RataRata tidak harus bertipe Real
c. Semua variabel, kecuali I seharusnya adalah Real, tidak boleh Integer
d. Pemisah antara parameter dalam Write dan Writeln harus titik koma, bukan koma,
Misalnya
Writeln(‘Jumlah = ‘;Jumlah);
e. Semua alasan di atas salah
14. Joni mengganti operator “/” dengan "div" pada baris ke-15 program tersebut. Apa akibatnya?
a. program tidak mau di-compile karena. operator div tidak dapat digunakan di situ
b. nilai rata-ratanya menjadi 5
c. nilai rata-ratanya menjadi 6
d. nilai rata-ratanya menjadi 0
e. nitai rata-ratanya menjadi 2
Gunakan program berikut ini untuk menjawab beberapa soal selanjutnya:
uses crt;
var j:array['A'..'Z'] of Byte;
c:char;
Kal:string;
procedure HH(S:String);
var i:integer; {baris-6}
m:char;
begin
for i:= 1 to length(S) do
begin
m:=S[i]; {baris-11}
if m in ['A'..'Z'] then {baris-12}
inc(J[i]);
end;
end;
begin
for c:='A' to 'Z' do J[c]:=0;
Kal:='PASAR';
HH(Kal);
for c:='A' to 'Z' do
if J[c]>0 then write(c,J[c],' ');
writeln;
Kal:='RAYA';
HH(Kal);
for c:='Z' downto 'A' do
if j[c]>0 then write(c,J[c],' ');
writeln;
end.
15. Bila terdapat kesalahan yang menyebabkan program sama sekali tidak dapat dijalankan, sebutkan pada baris berapa, dan bagaimana perbaikannya?
a. Kesalahan semacam ini tidak ada
b. Baris 12, seharusnya ditulis
If [m] in [‘A’..’Z’] then
c. Baris 6 seharusnya ditulis
var i: Char;
d. Baris 13, seharusnya ditulis
lnc(J[m]);
e. Index array hanya boleh berupa angka. Jadi deklarasi variabel seharusnya ditulis:
const A = 1; Z = 26;
var J: array[A..Z] of Byte;
c: Byte;
Kal: String;
dan semua konstanta karakter dalam perintah for harus diganti, misalnya: for c:= A to Z do dan seterusnya
16. Dengan perbaikan seperti nomor sebelumnya (kalau ada), maka program bisa dijalankan. Apakah hasil dari program tersebut?
a. A2 PI RI SI
A4 PI R2 Sl Yl
b. A2 P1 RI SI
YI RI A2
c. A2 PI RI SI
YI R2 A4
d. PI A2 Sl RI
YI A4 R2
e. A2 P1 RI SI
Yl Sl R2 PI A4
Writeln(‘Jumlah = ‘;Jumlah);
e. Semua alasan di atas salah
14. Joni mengganti operator “/” dengan "div" pada baris ke-15 program tersebut. Apa akibatnya?
a. program tidak mau di-compile karena. operator div tidak dapat digunakan di situ
b. nilai rata-ratanya menjadi 5
c. nilai rata-ratanya menjadi 6
d. nilai rata-ratanya menjadi 0
e. nitai rata-ratanya menjadi 2
Gunakan program berikut ini untuk menjawab beberapa soal selanjutnya:
uses crt;
var j:array['A'..'Z'] of Byte;
c:char;
Kal:string;
procedure HH(S:String);
var i:integer; {baris-6}
m:char;
begin
for i:= 1 to length(S) do
begin
m:=S[i]; {baris-11}
if m in ['A'..'Z'] then {baris-12}
inc(J[i]);
end;
end;
begin
for c:='A' to 'Z' do J[c]:=0;
Kal:='PASAR';
HH(Kal);
for c:='A' to 'Z' do
if J[c]>0 then write(c,J[c],' ');
writeln;
Kal:='RAYA';
HH(Kal);
for c:='Z' downto 'A' do
if j[c]>0 then write(c,J[c],' ');
writeln;
end.
15. Bila terdapat kesalahan yang menyebabkan program sama sekali tidak dapat dijalankan, sebutkan pada baris berapa, dan bagaimana perbaikannya?
a. Kesalahan semacam ini tidak ada
b. Baris 12, seharusnya ditulis
If [m] in [‘A’..’Z’] then
c. Baris 6 seharusnya ditulis
var i: Char;
d. Baris 13, seharusnya ditulis
lnc(J[m]);
e. Index array hanya boleh berupa angka. Jadi deklarasi variabel seharusnya ditulis:
const A = 1; Z = 26;
var J: array[A..Z] of Byte;
c: Byte;
Kal: String;
dan semua konstanta karakter dalam perintah for harus diganti, misalnya: for c:= A to Z do dan seterusnya
16. Dengan perbaikan seperti nomor sebelumnya (kalau ada), maka program bisa dijalankan. Apakah hasil dari program tersebut?
a. A2 PI RI SI
A4 PI R2 Sl Yl
b. A2 P1 RI SI
YI RI A2
c. A2 PI RI SI
YI R2 A4
d. PI A2 Sl RI
YI A4 R2
e. A2 P1 RI SI
Yl Sl R2 PI A4
17. Tindakan apakah yang dilakukan oleh subrutin HH ketika dipanggil oleh baris 19 program di atas, dengan string S berisi kata “PASAR"?
a. Menghitung frekuensi kemunculan huruf-huruf alfabet dan menyimpannya dalam array J
b. Mengumpulkan huruf-huruf alfabet yang muncul lebih dari satu kali ke dalam array J
c. Mencatat letak setiap huruf alfabet ke dalam array J
d. Menentukan huruf yang paling sering dan paling jarang muncul dalam array J
e. Mengurutkan huruf-huruf menurut urutan alfabet dari yang terkecil sampai yang terbesar.
18. Penggalan program pascal sbb
a := 10 ; b := 0 ;
repeat b := b + 1 ; a := a - b ; until a > b ;
writeln ( a, b ) ;
Berapa harga a yang dicetak ?
a. 10
b. 1
c. 9
d. 0
e. salah semua
19. Masih berhubugan dengan no. 30 di atas, berapa harga b yang dicetak ?
a. 1
b. 0
c. 10
d. 9
e. salah semua
a. Menghitung frekuensi kemunculan huruf-huruf alfabet dan menyimpannya dalam array J
b. Mengumpulkan huruf-huruf alfabet yang muncul lebih dari satu kali ke dalam array J
c. Mencatat letak setiap huruf alfabet ke dalam array J
d. Menentukan huruf yang paling sering dan paling jarang muncul dalam array J
e. Mengurutkan huruf-huruf menurut urutan alfabet dari yang terkecil sampai yang terbesar.
18. Penggalan program pascal sbb
a := 10 ; b := 0 ;
repeat b := b + 1 ; a := a - b ; until a > b ;
writeln ( a, b ) ;
Berapa harga a yang dicetak ?
a. 10
b. 1
c. 9
d. 0
e. salah semua
19. Masih berhubugan dengan no. 30 di atas, berapa harga b yang dicetak ?
a. 1
b. 0
c. 10
d. 9
e. salah semua
20. Sementara sarjana adalah dosen. Semua dosen harus meneliti.
a. Sementara sarjana bukan dosen
b. Sementara peneliti bukan dosen
c. Sementara dosen tidak meneliti
d. Sementara peneliti adalah dosen
e. Semua sarjana harus meneliti
21. Hanya orang kaya saja yang dapat membeli rumah mewah dengan arsitektur bangunan Yunani. Rangkayo membeli rumah mewah dengan arsitektur bangunan Yunani. Orang itu tidak kaya.
a. Orang ini membeli rumah mewah dengan arsitektur bangunan Yunani
b. Orang ini pastilah Rangkayo adanya
c. Rangkayo bukan orang kaya
d. Orang ini pasti bukan Rangkayo adanya
e. Rumah mewah dengan arsitektur bangunan Yunani tidak terbeli Rangkayo
a. Orang ini membeli rumah mewah dengan arsitektur bangunan Yunani
b. Orang ini pastilah Rangkayo adanya
c. Rangkayo bukan orang kaya
d. Orang ini pasti bukan Rangkayo adanya
e. Rumah mewah dengan arsitektur bangunan Yunani tidak terbeli Rangkayo
22. A adalah anak seorang anak dari pasangan suami istri B dengan C. E adalah anak dari pasangan D dengan adiknya B, hubungan antara A dengan E adalah …
a. Saudara kandung
b. Saudara misan
c. Saudara sepupu
d. Saudara tiri
e. Saudara ipar
a. Saudara kandung
b. Saudara misan
c. Saudara sepupu
d. Saudara tiri
e. Saudara ipar
23. Enam ekor ayam masuk ke dalam 3 buah kandang yang semula kosong. Berapa jumlah maksimum yang mungkin ayam-ayam dalam satu kandang jika setiap kandang pasti ada ayam di dalamnya?
a. 0 b. 3 c. 2 d. 4 e. 6
a. 0 b. 3 c. 2 d. 4 e. 6
Deskripsi berikut ini adalah untuk menjawab pertanyaan nomor 24 s.d. 26
Suatu proyek terdiri atas 5 aktifitas : a, b, c, d, dan e. aktifitas a harus dikerjakan sebelum b, aktifitas c harus dikerjakan setalah d dan e, aktifitas d harus dikerjakan sebelum e dan setelah a, dan aktifitas e harus dikerjakan sebelum b. Beberapa aktifitas boleh dikerjakan bersamaan. Setiap aktifitas memerlukan waktu pengerjaan 1 jam.
24. Berapa jam minimal untuk menyelesaikan seluruh aktifitas tersebut ?
a. 1 jam
b. 2 jam
c. 3 jam
d. 4 jam
e. 5 jam
Suatu proyek terdiri atas 5 aktifitas : a, b, c, d, dan e. aktifitas a harus dikerjakan sebelum b, aktifitas c harus dikerjakan setalah d dan e, aktifitas d harus dikerjakan sebelum e dan setelah a, dan aktifitas e harus dikerjakan sebelum b. Beberapa aktifitas boleh dikerjakan bersamaan. Setiap aktifitas memerlukan waktu pengerjaan 1 jam.
24. Berapa jam minimal untuk menyelesaikan seluruh aktifitas tersebut ?
a. 1 jam
b. 2 jam
c. 3 jam
d. 4 jam
e. 5 jam
25. Aktifitas manakah yang boleh dikerjakan bersama-sama ?
a. a dan b
b. a dan c
c. b dan c
d. b dan e
e. d dan e
a. a dan b
b. a dan c
c. b dan c
d. b dan e
e. d dan e
26. Aktifitas manakah yang dikerjakan pada urutan ke 3 (atau jam ke 3) ?
a. a b. b c. c d. d e. e
a. a b. b c. c d. d e. e
27. Jika didefinisikan f(n) = n f(n–1) untuk setiap n > 0 dan f(0) = 1, maka berapakah f(10)/(f (7) x f(6)) ?
a. 1 b. 6 c. 7 d. 9 e. 10
a. 1 b. 6 c. 7 d. 9 e. 10
28. Terdapat 7 bilangan bulat A, B, C, D, E, F, dan G yang jika diurutkan membentuk deret bilangan cacah berurutan (misalnya 4,5,6,…) dengan pernyataan-pernyataan berikut:
(1) D berharga 3 kurangnya dari A
(2) B adalah angka di tengah jika semua diurutkan
(3) Kurangnya F dari B = kurangnya D dari C
(4) G lebih besar dari F
Jika diurutkan, urutannya adalah?
a. G,E,F,D,B,C,A
b. E,F,D,B,C,A,G
c. A,F,G,B,C,E,D
d. E,G,D,C,B,A,F
e. A,F,D,B,C,G,E
(1) D berharga 3 kurangnya dari A
(2) B adalah angka di tengah jika semua diurutkan
(3) Kurangnya F dari B = kurangnya D dari C
(4) G lebih besar dari F
Jika diurutkan, urutannya adalah?
a. G,E,F,D,B,C,A
b. E,F,D,B,C,A,G
c. A,F,G,B,C,E,D
d. E,G,D,C,B,A,F
e. A,F,D,B,C,G,E
29. Diketahui bentuk persamaan matematik sebagai berikut
y = 5 ((a+b/cd)+(m/(p+q))))
Pilih statemen dalam bahasa pemrograman Pascal yang benar untuk bentuk di atas :
a. y = 5((a+b)/(c*d) + m/(p+q))* ((a+b)/(c*d) + m/(p+q))
b. y = 5*((a+b)/(c*d) + m/(p+q))2
c. y:= 5((a+b)/(c*d) + m/(p+q))* ((a+b)/(c*d) + m/(p+q))
d. y = 5*((a+b)/(c*d) + m/(p+q))* ((a+b)/(c*d) + m/(p+q))
e. y := 5*((a+b)/(c*d) + m/(p+q))* ((a+b)/(c*d) + m/(p+q))
30. Diketahui dua buah statemen bersyarat (if … then … else) sebagai berikut :
(1) if traffic_light ON then if traffic_light = RED then STOP else GO endif endif
(2) if traffic_light ON then if traffic_light = RED then STOP endif else GO endif
Pilih pernyataan yang TIDAK BENAR di antara pernyataan-pernyataan berikut :
a. Kedua statemen tersebut ekuivalen (melakukan aksi yang sama dalam keadaan apapun).
b. Bagian then dari bentuk (1) merupakan bentuk if … then … else.
c. Untuk bentuk (1), ketika kondisi traffic_light ON bernilai false, maka tidak akan ada aksi.
d. Bentuk (1) dan (2) akan melakukan aksi yang sama ketika kondisi traffic_light ON dan traffic_light = RED keduanya bernilai true.
e. Bentuk (1) merupakan contoh bentuk if … then … else yang berada dalam bentuk if … then, sedang bentuk (2) merupakan contoh bentuk if … then yang berada dalam bentuk if … then … else.
31. Bila roda pertama berputar 6 kali, maka roda kedua berputar 13 kali. Bila yang pertama berputar 18 kali, berapa kali putaran yang kedua ....?
a. 78 b. 36 c. 26 d. 25 e. 39
y = 5 ((a+b/cd)+(m/(p+q))))
Pilih statemen dalam bahasa pemrograman Pascal yang benar untuk bentuk di atas :
a. y = 5((a+b)/(c*d) + m/(p+q))* ((a+b)/(c*d) + m/(p+q))
b. y = 5*((a+b)/(c*d) + m/(p+q))2
c. y:= 5((a+b)/(c*d) + m/(p+q))* ((a+b)/(c*d) + m/(p+q))
d. y = 5*((a+b)/(c*d) + m/(p+q))* ((a+b)/(c*d) + m/(p+q))
e. y := 5*((a+b)/(c*d) + m/(p+q))* ((a+b)/(c*d) + m/(p+q))
30. Diketahui dua buah statemen bersyarat (if … then … else) sebagai berikut :
(1) if traffic_light ON then if traffic_light = RED then STOP else GO endif endif
(2) if traffic_light ON then if traffic_light = RED then STOP endif else GO endif
Pilih pernyataan yang TIDAK BENAR di antara pernyataan-pernyataan berikut :
a. Kedua statemen tersebut ekuivalen (melakukan aksi yang sama dalam keadaan apapun).
b. Bagian then dari bentuk (1) merupakan bentuk if … then … else.
c. Untuk bentuk (1), ketika kondisi traffic_light ON bernilai false, maka tidak akan ada aksi.
d. Bentuk (1) dan (2) akan melakukan aksi yang sama ketika kondisi traffic_light ON dan traffic_light = RED keduanya bernilai true.
e. Bentuk (1) merupakan contoh bentuk if … then … else yang berada dalam bentuk if … then, sedang bentuk (2) merupakan contoh bentuk if … then yang berada dalam bentuk if … then … else.
31. Bila roda pertama berputar 6 kali, maka roda kedua berputar 13 kali. Bila yang pertama berputar 18 kali, berapa kali putaran yang kedua ....?
a. 78 b. 36 c. 26 d. 25 e. 39
32. Sebuah mesin memotong sejenis kayu dalam 6 menit, dan seorang tukang kayu dengan menggunakan gergaji tangan sapat melakukan pekerjaan tersebut dalam 18 menit. Setelah 4 menit, listrik padam dan kayu tersebut harus dipotong dengan gergaji tangan. Berapa menitkah yang diperlukan si tukang kayu untuk menyelesaikan pemotongan tersebut....?
a. 2 b. 4 c. 6 d. 12 e. 14
a. 2 b. 4 c. 6 d. 12 e. 14
33. 1, 3, 9, 21, ... ? maka dua bilangan berikutnya adalah....?
a. 41 dan 71
b. 33 dan 45
c. 33 dan 41
d. 36 dan 79
e. 40 dan 91
a. 41 dan 71
b. 33 dan 45
c. 33 dan 41
d. 36 dan 79
e. 40 dan 91
34. Berapa jumlah 3 digit awal dari bilangan 22003 x 52005 ?
a. 0
b. 2
c. 4
d. 6
e. 8
35. Ada sebuah bilangan n, di mana n = 22003, berapa digit terakhir dari n ?
a. 0
b. 2
c. 4
d. 6
e. 8
36. Dibawah ini yang bukan merupakan kumpulan statement yang digunakan untuk pengaturan letak layar adalah :
a. GotoXY,ClrScr,InsLine
b. Delay,GotoXY,DelLine
c. ClrScr,Gotoxy,Delete
d. Delay,DelLine,ClrScr
e. GotoXY,DelLine,InsLin
a. GotoXY,ClrScr,InsLine
b. Delay,GotoXY,DelLine
c. ClrScr,Gotoxy,Delete
d. Delay,DelLine,ClrScr
e. GotoXY,DelLine,InsLin
37. Diselenggarakan dimanakah Olimpiade Sains Nasional tahun 2007?
a. Jogjakarta d. Semarang
b. Jakarta e. Makassar
c. Surabaya
a. Jogjakarta d. Semarang
b. Jakarta e. Makassar
c. Surabaya
Soal berikut untuk no 38 dan 39
Deret bilangan fibonacci didefinisikan secara rekursif sbb :
f1 = 1
f2 = 2
fn = fn - 1 + fn – 2 untuk semua n > 2
Deret bilangan fibonacci didefinisikan secara rekursif sbb :
f1 = 1
f2 = 2
fn = fn - 1 + fn – 2 untuk semua n > 2
38. Berapa banyakkah bilangan Fibonacci antara 10 sampai dengan 500 ?
a. 5 b. 8 c. 13 d. 50 e. 90
a. 5 b. 8 c. 13 d. 50 e. 90
39. Dengan mengambil satu harga n kemudian anda menjumlahkan bilangan-bilangan tsb mulai dari ¦1 s.d. ¦n maka berapakah n terkecil agar jumlah itu > 150?
a. 9 b. 10 c. 11 d. 15 e. 20
a. 9 b. 10 c. 11 d. 15 e. 20
40. “Ayahku serta ketiga pamanku, dan juga kedua kakekku menjadi botak dalam 5 tahun saja setelah mereka menjadi praktisi hukum. Saya tidak mau kehilangan rambutku, makanya saya becita-cita menjadi dokter saja.” Manakah dari logika pernyataan berikut ini yang mirip dengan logika pernyataan di atas?
a. Setiap saat saya minum kopi sebelum tidur, sya menjadi sulit tidur. Karena malam ini saya ingin tidur nyenyak, maka, saya menelan pil tidur saja.
b. Anak-anak muda di kotaku banyak yang kena tilang akibat mengebut di Jalan Raya M di minggu-minggu terakhir ini. Karena saya tidak mau didenda, maka saya tidak mau mengebut di Jalan Raya M tersebut.
c. Setiap otang lain dipindahkan dari departemen kami dalam tiga tahun setelah bekerja di sini. Saya tidak mau bekerja di departemen lain, maka saya tidak mau mulai bekerja lebih keras lagi.
d. Teman-teman saya dalam proyek pekerjaan bangunan mengalami kecelakaan tertimpa batu bata dalam seminggu setelah mereka makan siang di warung Pak Soleh. Untuk menjaga keselamatan kerja saya, maka saya akan makan siang di warung Pak Dullah.
e. Ketiga orang teman klub permainan kartu remi saya masing-masing menjadi cerewet pada asap rokok setelah mereka berhenti merokok. Agar saya menjadi lebih menyenangkan buat mereka, maka saya akan berhenti dari klub permainan kartu remi ini.
41. Tim A sedang bertanding melawan Tim B. Tim A lebih banyak memenangkan pertandingan daripada Tim B. Jika pertandingan ini dimenangkan oleh Tim B, manakah dari pernyataan berikut yang PALING TIDAK MUNGKIN?
a. Tim A dan Tim B memenangkan peetandingan yang sma banyaknya
b. Tim B lebih banyak memenangkan pertandingan daripada Tim A
c. Tim A lebih banyak memenangkan pertandingan daripada Tim B
d. Tim A dan Tim B sama-sama pernah kalah oleh Tim C
e. Tim C lebih banyak memenangkan pertandingan daripada Tim A dan Tim B
Deskripsi untuk soal 42 – 44
Berikut ini ada 6 pernyataan yang dinomori 1 s.d. 6
1. Semua P dan X adalah N
2. Semua N kcuali P adalah X
3. Tidak ada P yang merupakan M
4. Tidak ada R yang merupakan N
5. Semua M adalah salah satu dari X atau R
6. Tidak ada Q yang merupakan X
42. Pernyataan tambahan manakah dari berikut ini yang PASTI benar jika keenam pernyataan di atas benar?
I. Tidak ada R yang merupakan P
II. Beberapa dari X juga adalah P
III. Beberapa dari X adalah juga M
a. Hanya I
b. Hanya I dan II
c. Hanya I dan III
d. I, II dan III
e. Tidak ada satu pun yang benar dari I, II, atau III
a. Setiap saat saya minum kopi sebelum tidur, sya menjadi sulit tidur. Karena malam ini saya ingin tidur nyenyak, maka, saya menelan pil tidur saja.
b. Anak-anak muda di kotaku banyak yang kena tilang akibat mengebut di Jalan Raya M di minggu-minggu terakhir ini. Karena saya tidak mau didenda, maka saya tidak mau mengebut di Jalan Raya M tersebut.
c. Setiap otang lain dipindahkan dari departemen kami dalam tiga tahun setelah bekerja di sini. Saya tidak mau bekerja di departemen lain, maka saya tidak mau mulai bekerja lebih keras lagi.
d. Teman-teman saya dalam proyek pekerjaan bangunan mengalami kecelakaan tertimpa batu bata dalam seminggu setelah mereka makan siang di warung Pak Soleh. Untuk menjaga keselamatan kerja saya, maka saya akan makan siang di warung Pak Dullah.
e. Ketiga orang teman klub permainan kartu remi saya masing-masing menjadi cerewet pada asap rokok setelah mereka berhenti merokok. Agar saya menjadi lebih menyenangkan buat mereka, maka saya akan berhenti dari klub permainan kartu remi ini.
41. Tim A sedang bertanding melawan Tim B. Tim A lebih banyak memenangkan pertandingan daripada Tim B. Jika pertandingan ini dimenangkan oleh Tim B, manakah dari pernyataan berikut yang PALING TIDAK MUNGKIN?
a. Tim A dan Tim B memenangkan peetandingan yang sma banyaknya
b. Tim B lebih banyak memenangkan pertandingan daripada Tim A
c. Tim A lebih banyak memenangkan pertandingan daripada Tim B
d. Tim A dan Tim B sama-sama pernah kalah oleh Tim C
e. Tim C lebih banyak memenangkan pertandingan daripada Tim A dan Tim B
Deskripsi untuk soal 42 – 44
Berikut ini ada 6 pernyataan yang dinomori 1 s.d. 6
1. Semua P dan X adalah N
2. Semua N kcuali P adalah X
3. Tidak ada P yang merupakan M
4. Tidak ada R yang merupakan N
5. Semua M adalah salah satu dari X atau R
6. Tidak ada Q yang merupakan X
42. Pernyataan tambahan manakah dari berikut ini yang PASTI benar jika keenam pernyataan di atas benar?
I. Tidak ada R yang merupakan P
II. Beberapa dari X juga adalah P
III. Beberapa dari X adalah juga M
a. Hanya I
b. Hanya I dan II
c. Hanya I dan III
d. I, II dan III
e. Tidak ada satu pun yang benar dari I, II, atau III
43. Manakah yang akan PASTI salah berdasar keenam pernyataan di atas?
a. Tidak ada Q yang merupakan P
b. Sejumlah Q bukan N, juga bukan P
c. Beberapa R adalah X
d. Semua R merupakan M
e. Beberapa X bukanlah M
a. Tidak ada Q yang merupakan P
b. Sejumlah Q bukan N, juga bukan P
c. Beberapa R adalah X
d. Semua R merupakan M
e. Beberapa X bukanlah M
44. Dari keenam pernyataan tsb pernyataab bernomor manakah yang dapat secara logika merupakan deduksi dari satu atau lebih pernyataan lainnya?
a. Pernyataan 2
b. Pernyataan 3
c. Pernyataan 4
d. Pernyataan 5
e. Pernyataan 6
a. Pernyataan 2
b. Pernyataan 3
c. Pernyataan 4
d. Pernyataan 5
e. Pernyataan 6
45. Jika pernyataan 2 ternyata SALAH, manakah dari berikut ini yang HARUS benar?
a. Sejumlah M bukanlah X atau pun R
b. Sejumlah P bukanlah N
c. Sejumlah Q bukanlah X
d. Sejumlah N bukanlah P atau pun X
e. Salah satu dari “Beberapa dari X merupakan P”, atau “beberapa dari N bukanlah P ataupun X” adalah benar, atau keduanya benar
Deskripsi untuk soal 46 – 48
Sebuah kelompok keluarga terdiri dari dua pria, tiga wanita dan 4 orang anak-anak duduk di barisan paling depan di bioskop. Mereka menduduki bangku nomor 101 – 109. Urutan duduk harus memenuhi aturan berikut :
· Keempat orang anak harus duduk paling bersampingan, pada bangku yang berurutan
· Kedua pria harus duduk bersampingan
46. Jika seorang pria duduk di bangku nomor 107 dan seorang wanita duduk di bangku nomor 108, bangku nomor yang bisa diduduki wanta lainnya?
a. 101 b. 102 c. 103 d. 104 e. 106
a. Sejumlah M bukanlah X atau pun R
b. Sejumlah P bukanlah N
c. Sejumlah Q bukanlah X
d. Sejumlah N bukanlah P atau pun X
e. Salah satu dari “Beberapa dari X merupakan P”, atau “beberapa dari N bukanlah P ataupun X” adalah benar, atau keduanya benar
Deskripsi untuk soal 46 – 48
Sebuah kelompok keluarga terdiri dari dua pria, tiga wanita dan 4 orang anak-anak duduk di barisan paling depan di bioskop. Mereka menduduki bangku nomor 101 – 109. Urutan duduk harus memenuhi aturan berikut :
· Keempat orang anak harus duduk paling bersampingan, pada bangku yang berurutan
· Kedua pria harus duduk bersampingan
46. Jika seorang pria duduk di bangku nomor 107 dan seorang wanita duduk di bangku nomor 108, bangku nomor yang bisa diduduki wanta lainnya?
a. 101 b. 102 c. 103 d. 104 e. 106
47. Ketiga wanita pasti dapat saling duduk berdampingan bila salah satu pria duduk di bangku no :
a. 101 b. 104 c. 105 d. 107 f. 109
a. 101 b. 104 c. 105 d. 107 f. 109
48. Jika bangku no. 103 dan 109 diduduki wanita, manakah bangku yang dpat diduduki oleh wanita ketiga?
a. 101 b. 102 c. 104 d. 106 e. 107
49. Layout program dalam Pascal yang benar adalah:
a. program[identifier];
begin
type[identifier];
var[identifier];
[program utama];
end
b. program [identifier]
b. program [identifier]
var [identifier]
begin [program utama]
end;
procedure [identifier]
begin
end.
c. begin
c. begin
end.
d. var [identifier];
d. var [identifier];
begin [program utama]
end;
e. type [identifier]
e. type [identifier]
var [identifier]
begin
program [identifier]
[program utama]
end.
50. Untuk mengimplementasikan matriks dalam bahasa Pascal, kita pasti menggunakan data:
a. Record
b. Object
c. Pointer
d. Array
e. Set
50. Untuk mengimplementasikan matriks dalam bahasa Pascal, kita pasti menggunakan data:
a. Record
b. Object
c. Pointer
d. Array
e. Set
51. Penggalan program sbb: a:=10;b:=0; repeat b:=b+1;a:=a-b;until a>b writeln(a,b);Berapa harga a yang dicetak?
a. 10 b. 1 c. 9 d. 11 e. salah semua
a. 10 b. 1 c. 9 d. 11 e. salah semua
52. Manakah yang salah:
a. function Gamma(I:Real):Real;
b. function Gamma(var I:Real):Real;
c. function Gamma(var I):Real;
d. function Gamma(I:Real);
e. semua deklarasi di atas benar
a. function Gamma(I:Real):Real;
b. function Gamma(var I:Real):Real;
c. function Gamma(var I):Real;
d. function Gamma(I:Real);
e. semua deklarasi di atas benar
53. Pernyataan manakah yang valid?
a. var A:^Integer;
b. var A:@Integer;
c. var A:Integer^;
d. var A^:Integer;
e. var ^A:Integer;
a. var A:^Integer;
b. var A:@Integer;
c. var A:Integer^;
d. var A^:Integer;
e. var ^A:Integer;
54. Jika didefinisikan f(n) = n f(n–1) untuk setiap n > 0 dan f(0) = 1, maka berapakah f(10)/(f (7) x f(6)) ?
a. 1 b. 2 c. 4 d. 6 e. 7
a. 1 b. 2 c. 4 d. 6 e. 7
55. Jika suatu seri : A – B – C – D – E – F – G –H – D – J – K – L – M – N - maka seri selanjutnya
a. D b. O c. P d. Q e. R
a. D b. O c. P d. Q e. R
56. 2 – 4 – 2 – 4 – 6 – 4 – 6 – 8 – 6 – 8 – 10 – 8 – seri selanjutnya...
a. 12 b. 10 c. 6 d. 8 e. 4
57. 11 = berapa persennya 55
a. 22% b. 20 % c. 18% d. 16% e. 21%
a. 22% b. 20 % c. 18% d. 16% e. 21%
58. 5 orang siswa menggali parit, selesai dalam 10 hari, berapa siswa yang diperlukan untuk menggali parit dalam ½ hari?
a. 20 orang d. 100 orang
b. 30 orang e. 50 orang
c. 10 orang
59. Gedung-gedung asrama dibangun dengan 2 hingga 6 lantai. Setiap kamar pada setiap gedung mulai dari lantai ke 2 terus ke atas, harus memiliki tangga darurat untuk menghadapi kemungkinan kebakaran. Jika hal itu benar, manakah berikut ini yang benar?
a. Kamar-kamar di lantai ke dua tidak memiliki tangga darurat
b. Kamar-kamar di lantai ke tiga tidak memiliki tangga darurat
c. Kamar-kamar di lantai ke empat memiliki tangga darurat
d. Hanya kamar-kamar di atas lantai ke dua yang memiliki tangga darurat
e. Beberapa dari gedung-gedung asrama berlantai dua tidak memiliki tangga darurat
60. Jika diketahui dalam perkalian matriks A (m*n) dengan B (n*p) diperlukan biaya mnp. Sementara untuk perkalian tiga matriks A*B*C dengan A(m*n), B(n*p) dan C(p*q) ternyata terdapat dua kemungkinan biaya yang bergantung pada urutannya :
· Urutan (A*B)*C [yaitu A dikali B dahulu kemudian dikali C], dan
· Urutan A*(B*C) [yaitu B dikali C dahulu kemudian dikali A].
Urutan (A*B)*C memerlukan biaya mnp + mpq sementara urutan A*(B*C) memerlukan biaya npq + mnq. Kedua harga bisa berbeda sesuai dengan biaya-biaya m, n, p, q tersebut. Pertanyaannya, untuk perkalian empat matriks A*B*C*D dengan A(10*4), B(4*15), C(15*2), dan D(2*20) manakah urutan dengan biaya minimum (paling rendah) ?
a. Urutan ((A*(B*C))*D)
b. Urutan (((A*B)*C)*D)
c. Urutan ((A*B)*(C*D))
d. Urutan (A*((B*C)*D))
e. Urutan (A*(B*(C*D)))
· Urutan (A*B)*C [yaitu A dikali B dahulu kemudian dikali C], dan
· Urutan A*(B*C) [yaitu B dikali C dahulu kemudian dikali A].
Urutan (A*B)*C memerlukan biaya mnp + mpq sementara urutan A*(B*C) memerlukan biaya npq + mnq. Kedua harga bisa berbeda sesuai dengan biaya-biaya m, n, p, q tersebut. Pertanyaannya, untuk perkalian empat matriks A*B*C*D dengan A(10*4), B(4*15), C(15*2), dan D(2*20) manakah urutan dengan biaya minimum (paling rendah) ?
a. Urutan ((A*(B*C))*D)
b. Urutan (((A*B)*C)*D)
c. Urutan ((A*B)*(C*D))
d. Urutan (A*((B*C)*D))
e. Urutan (A*(B*(C*D)))
Komentar
Posting Komentar