Anda di halaman 1dari 8

SOAL & PEMBAHASAN SELEKSI TAHAP 1 OLIMPIADE KOMPUTER

SMAN 1 METRO TAHUN 2009

SCORE PENILAIAN :
BENAR = +4
SALAH = -1
TIDAK MENJAWAB = 0

Soal dan Pembahasan Seleksi I


1. Seorang pedagang barang elektronik menjual sebuah televisi berwarna layar datar seharga
Rp.3.000.000, jika tarif pajak barang elektronik yang tergolong barang mewah tersebut
adalah antara 5 % sampai 8 %, maka harga yang paling mungkin untuk televisi tersebut
setelah ditambah pajak adalah :
(A) Rp. 3.180.000
(B) Rp. 3.100.000
(C) Rp. 3.120.000
(D) Rp. 3.140.000
(E) Rp. 3.250.000
Pembahasan
X = Rp 3.000.000
Tarif Pajak = 5% - 8%
Harga televisi + pajak 5% = 3.150.000
6% = 3.180.000
7% = 3.210.000
8% = 3.240.000

2. Manakah yang mendeklarasikan tipe enumerasi dengan tepat?


a. Type a=integer;
b. Type a=1..300;
c. Type a=(baik, jelek, buruk);
d. Type a=[baik, jelek, buruk];
e. Type a=baik, jelek, buruk;

3. Tipe di bawah ini mana yang tidak dapat melakukan operasi aritmatika?
a. Integer
b. Byte
c. Real
d. boolean
e. word

4. Deklarasi prosedur manakah yang tidak dibenarkan?


a. procedure hapus;
b. procedure hapus(s:string);
c. procedure hapus(var s:string);
d. procedure hapus(s:string):boolean;
e. procedure hapus(var data);
Pembahasan:
Untuk penulisan prosedur, tidak diperbolehkan adanya nilai kembali. Sedangkan parameter
tanpa tipe data (pada opsi e), dapat dibenarkan.
5. Tipe variabel ekspresi manakah yang tidak dapat ditampilkan dengan procedure Writeln?
a. Type T=Integer;
b. Type T=String;
c. Type C=Char;
d. Type T=(Small, Medium, Large)
e. Semua valid
Pembahasan:
Opsi d adalah tipe data enumerasi. Tipe data enumerasi tidak dapat ditampilkan dengan
perintah Writeln.

6. Perhatikan program berikut :


var s:string;
begin
s:='TOKI GO GET GOLD!';
delete(s,1,length(s)-12);
writeln(s);
end.
Apa keluaran program di atas ?
a. GO GET GOLD!
b. GO GET GOLD!
c. GET GOLD!
d. TOKI GO GET
e. TOKI GO GE
Pembahasan:
Procedure delete:
Deklarasi : procedure Delete(var S: String; Index: Integer; Count:Integer);
Keterangan : procedure delete akan menghapus S sebanyak count karakter, dimulai dari
posisi Index.
Function length:
Deklarasi : Function Length (S : String) : Integer;
Keterangan : Length menghasilkan panjang dari S, bernilai antara 0 sampai dengan 255.
Jika S tidak berisi apa-apa maka akan menghasilkan 0.
Statement delete(s,1,length(s)-12) akan menghapus s dari posisi 1 sebanyak panjang s, yaitu
17-12 = 5. Sehingga yang dihapus adalah karakter ‘TOKI ‘ dan s akan bernilai GO GET
GOLD!

7. Perhatikan penggalan program berikut :


var i,k: integer;
begin
i:=5; k:=0;
k:=trunc(sqrt(i))+1;
writeln(k);
end.
Apa keluaran program di atas ?
a. 3
b. 2.24
c. 2
d. 0
e. program tidak dapat dijalankan
Pembahasan:
Fungsi sqrt :
Deklarasi : Function Sqrt (X : Real) : Real;
Keterangan : menghasilkan akar pangkat dua dari x, di mana x harus positif
Fungsi trunc:
Deklarasi : Function Trunc (X : Real) : Longint;
Keterangan : menghasilkan bilangan bulat dari X, akan selalu lebih kecil atau sama dengan
X.
Sqrt(5) akan menghasilkan 2.23
Trunc(2.23) akan menghasilkan 2
Sehingga k:=trunc(sqrt(i))+1; akan menghasilkan 3

8. Mengacu pada program berikut :


var
A,B:string;
C:string[10];
begin
A:='TOKI MEMANG';
B:='HEBAT';
C:=A+B;
if (Pos(B)>0) then
Begin
Writeln('A');
end else
Writeln('B');
end.
Apa yang terjadi jika program di atas di jalankan...
a. Huruf ‘A’ tercetak
b. Huruf ‘B’ tercetak
c. Tidak dapat dipastikan
d. Terjadi error
e. Tidak bisa di compile
Pembahasan:
Kesalahan pertama yang akan ditemui program adalah pada function pos.
Deklarasi : Function Pos (Substr : String; S : String) : Integer;
Keterangan : function pos akan menghasilkan urutan atau posisi substr di S. Jika tidak
ditemukan, maka akan menghasilkan 0.
Pada program function pos hanya terdiri dari 1 parameter saja sehingga program tidak akan
dapat dijalankan.

9. Jika n dan p adalah dua bilangan bulat, dan n + p berharga ganjil, manakah dari berikut ini
bil ganjil?
a. n – p + 1
b. np
c. n2 + p2 – 1
d. 3p + 5n
e. (p – n)(n – p)
Pembahasan ;
A bukan, karena (n+p) adalah ganjil maka dari n dan p salah satu ganjil dan yang lain genap.
Selisih antara n dan p pasti ganjil sehingga jika ditambah 1 menjadi genap.
B bukan karena perkalian antara suatu bilangan genap dengan bilangan apapun akan menjadi
genap.
C bukan karena pangkat bulat positif berapapun dari bilangan genap, tetap genap, dan ganjil
tetap ganjil, kemudian ganjil ditambah genap dan dikurang ganjil menjadi genap.
D bukan karena pangkat bulat positif berapapun dari bilangan ganjil tetap bilangan ganjil, dan
jumlah dua bilangan ganjil menjadi genap.
E benar, karena perkalian antara dua bilangan ganjil menghasilkan bilangan ganjil.

10. var
i,j : integer;
begin
for i :=1 to 3 do
for j :=i to 3 do
write(‘*’);
writeln;
end.
Output program di atas :
a. *
**
***

b. ***
***
***

c. ***
**
*

d. ******

11. 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
Pembahasan:
Fungsi frac (lihat pembahasan di atas)
Fungsi round
Deklarasi : Function Round (X : Real) : Longint;
Keterangan : membulatkan bilangan X, yang mungkin lebih besar atau lebih kecil dari X.
Frac(3.7) akan menghasilkan 0.7
Round(0.7) akan menghasilkan 1

12. Delegasi-delegasi dari negara W dan negara R duduk berhadap-hadapan pada meja
perundingan. Masing-masing delegasi terdiri atas seorang ketua, dua atase militer dan dua
wakil kamar dagang negara masing-masing. Delegasi W beranggotakan A, B, C, D, dan E.
Delegasi R beranggotakan F, G, H, I, dan J. Masing-masing delegasi berada pada sisi-sisi
memanjang berlainan (satu negara pada sisi yang sama dan ketua duduk di tengah
delegasinya). Batasan dalam mengatur urutan duduk mereka:
· Delegasi W menempatkan A dan B di kedua ujung barisannya.
· Kuping kanan G tuli shg ia harus paling kanan dari delegasi R.
· Baik D maupun F bukan ketua.
· Para atase militer W, salah seorangnya B, didudukkan berdampingan,dan tidak ada satupun
yang berseberangan dengan atase militer R
· G bukan atase militer.
· C wakil dari kamar dagang, duduk berseberangan dgn H.

Manakah yang paling mungkin mengenai F berikut?


a. Wakil kamar dagang yang duduk di sebelah I
b. Wakil kamar dagang yang duduk di sebelah H
c. Wakil kamar dagang yang duduk berseberangan dengan B
d. Atase militer yang duduk di sebelah I
e. Atase militer yang duduk di sebelah J

Pembahasan
Dibuat diagram sbb
x1–x2–x3–x4–x5 negara W
y1–y2–y3–y4–y5 negara R
Dari (1) kemungkinan {x1,x5} adalah {A,B} atau {B,A}
Dari (2) maka y5=G yang karena pernyataan (4) dan (5) (G bukan a.m dan B adalah a.m)
menyebabkan x5=B, sehingga (atase militer dengan bold)
A –x2–x3–x4– B
y1–y2–y3–y4–G
Dari pernyataan (6) dan (4) diperoleh C = x2 dan y2 = H, sehingga
A –C –x3–x4– B
y1–H –y3–y4–G
Dari pernyataan (3) dan diagram di atas D = x4 dan F = y1 atau y4
A –C –E –D –B
y1–H –y3–y4– G
Jadi tinggal 2 kemungkinan F=y1 (atase militer), atau F=y4 (wakil kamar dagang).
Jika atase militer maka (D) dan (E) salah karena sebelah y1 adalah H.
Jika wakil kamar dagang maka (B) salah karena H atase militer dan (C) salah karena B ada di
depan G.
Jadi tinggal pilihan (A) yang paling mungkin.
(Note: ini bukan satu-satunya kemungkinan.Kemungkinan lainnya masih ada tapi tidak ada di
kelima pilihan itu).

13. Berapakah jangkauan tipe data Word?


a. 0…255
b. 0…65536
c. 0…65535
d. -32768…32767
e. Salah semua

14. Tipe data manakah yang dapat memuat bilangan pecahan?


a. Byte
b. Integer c. Boolean
d. Real
e. LongInt

15. Dalam potongan program berikut,


var Z1, Z2, Z3, Z4: set of Byte;
begin
Z1 := [1, 2, 6, 8, 9];
Z2 := [3, 6, 8, 12, 14];
Z3 := Z1 + Z2;
Z4 := Z1 * Z2;
end.
Berapakah nilai akhir Z3 dan Z4?
a. Z3 = [6, 7, 8]
Z4 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
b. Z3 = [6, 8]
Z4 = [1, 2, 3, 6, 8, 9, 12, 14]
c. Z3 = [1, 2, 3, 6, 6, 8, 8, 9, 12, 14]
Z4 = [6, 6, 8, 8]
d. Z3 = [1, 2, 3, 6, 8, 9, 12, 14]
Z4 = [6, 8]
e. Salah semua

Soal di bawah ini untuk no. 16 s.d 18


6 orang pengusaha P – Q – R – S – T & U mengadakan rapat tertutup. Dgn formasi kursi
diatur berjarak sama satu sama lain mengelilingi meja, sedemikian sehingga setiap kursi di
seberangnya:
- P tidak boleh ditempatkan di samping Q
- R tidak boleh ditempatkan di samping S
- T harus ditempatkan di samping S
16. Jika R duduk di seberang Q, ada berapa kombinasi urutan keempat pengusaha lainnya
dapat didudukan
a. 5
b. 4
c. 3
d. 2
e. 1

Pembahasan
Urutan 1 : R,P,U,Q,T,S
Urutan 2 : P,U,Q,T,S,R

17. Jika P duduk di seberang T, siapa yg duduk di seberang S?


a. P
b. Q
c. S
d. T
e. U
Pembahasan
Urutan 1 : P, U,R,T,S,Q

18. Jika P duduk di seberang Q, siapa yang dapat ditempatkan di seberang T, jika I.S II.R III.
U?
a. Hanya II
b. Hanya III d. I, II dan III
c. Hanya I dan II
d. Hanya II dan III
e. I, II dan III

Pembahasan
Urutan 1 : P,T,S,Q,R,U
Urutan 2 : T,S,Q,R,U,P
Urutan 3 : S,Q,R,U,P,T
Urutan 4 : Q,R,U,P,T,S

19. Deklarasi manakah yang benar?


a. type Anggota = record
Nama: String[40];
NomorAnggota: Word;
End;
b. type Anggota: record
Nama = String;
NomorAnggota = Word;
End;
c. type Anggota := record
Nama := String[20];
NomorAnggota := Word;
End;
d. Type Anggota = record
Nama: String[];
NomorAnggota: Word;
end;
e. Semua deklarasi di atas salah

20. Tipe data mana yang sanggup memuat numerik hingga 75000?
a. Word
b. Integer
c. Real
d. Longint
e. String

21. Seorang manajer perusahaan kecil sedang mengatur Jadwal kerja para pegawainya. Setiap
hari kerja (Senin s.d Jumat, lima hari kerja seminggu) diperlukan paling sedikit tiga orang
pegawai. Karena perusahaan ini masih kecil, jumlah pegawainya hanya ada lima orang yang
bekerja secara paruh waktu (part time, artinya tidak masuk setiap hari lima hari seminggu),
Ali hanya bisa masuk kerja pada hari Senin, Rabu, dan Jumat. Baiquini tidak bisa masuk
kerja pada hari Rabu. Chali hanya bisa masuk kerja pada hari Selasa dan Rabu. Dita tidak
bisa masuk kerja pada hari Jumat. Eko bisa masuk kerja kapan saja kecuali setiap hari Senin
pertama dan setiap hari Kamis pertama dalam setiap bulan. Siapa saja yang selalu dapat
masuk kerja pada hari Senin ?
a. Dita, Baiquini, dan Ali
b. Ali, Eko, dan Chali
c. Baiquini, Eko, dan Chali
d. Eko, Chali, dan Dita
e. Baiquini, Chali, dan Dita

Pembahasan
Ali : Senin,Rabu,Jumat
Baiquini : Senin,Selasa,Kamis,Jumat
Chali : Selasa, Rabu
Dita : Senin,Selasa,Rabu,Kamis,
Eko : Selasa, Rabu, Jumat

22. Siapa saja yang selalu dapat masuk kerja pada hari Jumat?
a. Ali, Baiquini, dan Dita.
b. Ali, Chali, dan Dita.
c. Baiquini, Chali, dan Eko.
d. Chali, Baiquini, dan Ali.
e. Ali, Baiquni, dan Eko.

23. Pada hari apa kemungkinan sang manajer menghadapi kesulitan untuk mendapatkan
minimum tiga orang pegawai ?
a. Senin
b. Selasa
c. Rabu
d. Kamis
e. Jumat

Pembahasan
Senin = 3 pegawai pasti
Selasa & Rabu = 4 pegawai siap
Kamis = 2 pegawai (Eko tidak dapat hadir senin dan minggu pertama)
Jumat = 3 pegawai pasti

24. Pada hari apa sang manajer harus (tidak ada pilihan lain) untuk meminta Eko masuk kerja
?
a. Senin
b. Selasa
c. Rabu
d. Kamis
e. Jumat

Anda mungkin juga menyukai