Anda di halaman 1dari 5

SOAL & PEMBAHASAN SELEKSI TAHAP e.

procedure hapus(var data);


1 OLIMPIADE KOMPUTER Pembahasan:
Untuk penulisan prosedur, tidak diperbolehkan
SCORE PENILAIAN : adanya nilai kembali. Sedangkan parameter
BENAR = +4 tanpa tipe data (pada opsi e), dapat dibenarkan.
SALAH = -1
TIDAK MENJAWAB = 0 5. Tipe variabel ekspresi manakah yang tidak
dapat ditampilkan dengan procedure Writeln?
Soal dan Pembahasan Seleksi I a. Type T=Integer;
1. Seorang pedagang barang elektronik menjual b. Type T=String;
sebuah televisi berwarna layar datar seharga c. Type C=Char;
Rp.3.000.000, jika tarif pajak barang elektronik d. Type T=(Small, Medium, Large)
yang tergolong barang mewah tersebut adalah e. Semua valid
antara 5 % sampai 8 %, maka harga yang paling Pembahasan:
mungkin untuk televisi tersebut setelah Opsi d adalah tipe data enumerasi. Tipe data
ditambah pajak adalah : enumerasi tidak dapat ditampilkan dengan
(A) Rp. 3.180.000 perintah Writeln.
(B) Rp. 3.100.000
(C) Rp. 3.120.000 6. Perhatikan program berikut :
(D) Rp. 3.140.000 var s:string;
(E) Rp. 3.250.000 begin
Pembahasan s:='TOKI GO GET GOLD!';
X = Rp 3.000.000 delete(s,1,length(s)-12);
Tarif Pajak = 5% - 8% writeln(s);
Harga televisi + pajak 5% = 3.150.000 end.
6% = 3.180.000 Apa keluaran program di atas ?
7% = 3.210.000 a. GO GET GOLD!
8% = 3.240.000 b. GO GET GOLD!
c. GET GOLD!
2. Manakah yang mendeklarasikan tipe d. TOKI GO GET
enumerasi dengan tepat? e. TOKI GO GE
a. Type a=integer; Pembahasan:
b. Type a=1..300; Procedure delete:
c. Type a=(baik, jelek, buruk); Deklarasi : procedure Delete(var S: String;
d. Type a=[baik, jelek, buruk]; Index: Integer; Count:Integer);
e. Type a=baik, jelek, buruk; Keterangan : procedure delete akan menghapus
S sebanyak count karakter, dimulai dari posisi
3. Tipe di bawah ini mana yang tidak dapat Index.
melakukan operasi aritmatika? Function length:
a. Interger Deklarasi : Function Length (S : String) :
b. Byte Integer;
c. Real Keterangan : Length menghasilkan panjang dari
d. boolean S, bernilai antara 0 sampai dengan 255.
e. word Jika S tidak berisi apa-apa maka akan
menghasilkan 0.
4. Deklarasi prosedur manakah yang tidak Statement delete(s,1,length(s)-12) akan
dibenarkan? menghapus s dari posisi 1 sebanyak panjang s,
a. procedure hapus; yaitu 17-12 = 5. Sehingga yang dihapus adalah
b. procedure hapus(s:string); karakter ‘TOKI ‘ dan s akan bernilai GO GET
c. procedure hapus(var s:string); GOLD!
d. procedure hapus(s:string):boolean;
7. Perhatikan penggalan program berikut : Deklarasi : Function Pos (Substr : String; S :
var i,k: integer; String) : Integer;
begin Keterangan : function pos akan menghasilkan
i:=5; k:=0; urutan atau posisi substr di S. Jika tidak
k:=trunc(sqrt(i))+1; ditemukan, maka akan menghasilkan 0.
writeln(k); Pada program function pos hanya terdiri dari 1
end. parameter saja sehingga program tidak akan
Apa keluaran program di atas ? dapat dijalankan.
a. 3
b. 2.24 9. Jika n dan p adalah dua bilangan bulat, dan n
c. 2 + p berharga ganjil, manakah dari berikut ini bil
d. 0 ganjil?
e. program tidak dapat dijalankan a. n – p + 1
Pembahasan: b. np
Fungsi sqrt : c. n2 + p2 – 1
Deklarasi : Function Sqrt (X : Real) : Real; d. 3p + 5n
Keterangan : menghasilkan akar pangkat dua e. (p – n)(n – p)
dari x, di mana x harus positif Pembahasan ;
Fungsi trunc: A bukan, karena (n+p) adalah ganjil maka dari n
Deklarasi : Function Trunc (X : Real) : Longint; dan p salah satu ganjil dan yang lain genap.
Keterangan : menghasilkan bilangan bulat dari Selisih antara n dan p pasti ganjil sehingga jika
X, akan selalu lebih kecil atau sama dengan X. ditambah 1 menjadi genap.
Sqrt(5) akan menghasilkan 2.23 B bukan karena perkalian antara suatu bilangan
Trunc(2.23) akan menghasilkan 2 genap dengan bilangan apapun akan menjadi
Sehingga k:=trunc(sqrt(i))+1; akan genap.
menghasilkan 3 C bukan karena pangkat bulat positif berapapun
dari bilangan genap, tetap genap, dan ganjil tetap
8. Mengacu pada program berikut : ganjil, kemudian ganjil ditambah genap dan
var dikurang ganjil menjadi genap.
A,B:string; D bukan karena pangkat bulat positif berapapun
C:string[10]; dari bilangan ganjil tetap bilangan ganjil, dan
begin jumlah dua bilangan ganjil menjadi genap.
A:='TOKI MEMANG'; E benar, karena perkalian antara dua bilangan
B:='HEBAT'; ganjil menghasilkan bilangan ganjil.
C:=A+B;
if (Pos(B)>0) then 10. var
Begin i,j : integer;
Writeln('A'); begin
end else for i :=1 to 3 do
Writeln('B'); for j :=i to 3 do
end. write(‘*’);
Apa yang terjadi jika program di atas di writeln;
jalankan... end.
a. Huruf ‘A’ tercetak Output program di atas :
b. Huruf ‘B’ tercetak a. *
c. Tidak dapat dipastikan **
d. Terjadi error ***
e. Tidak bisa di compile b. ***
Pembahasan: ***
Kesalahan pertama yang akan ditemui program ***
adalah pada function pos. c. ***
** c. Wakil kamar dagang yang duduk
* berseberangan dengan B
d. ****** d. Atase militer yang duduk di sebelah I
e. Atase militer yang duduk di sebelah J
11. Perhatikan potongan program berikut :
begin Pembahasan
writeln(round(frac(3.7))); Dibuat diagram sbb
end. x1–x2–x3–x4–x5 negara W
Apa keluaran program di atas ? y1–y2–y3–y4–y5 negara R
a. 0 Dari (1) kemungkinan {x1,x5} adalah {A,B}
b.1 atau {B,A}
c. 2 Dari (2) maka y5=G yang karena pernyataan (4)
d. 3 dan (5) (G bukan a.m dan B adalah a.m)
e. 4 menyebabkan x5=B, sehingga (atase militer
Pembahasan: dengan bold)
Fungsi frac (lihat pembahasan di atas) A –x2–x3–x4– B
Fungsi round y1–y2–y3–y4–G
Deklarasi : Function Round (X : Real) : Longint; Dari pernyataan (6) dan (4) diperoleh C = x2
Keterangan : membulatkan bilangan X, yang dan y2 = H, sehingga
mungkin lebih besar atau lebih kecil dari X. A –C –x3–x4– B
Frac(3.7) akan menghasilkan 0.7 y1–H –y3–y4–G
Round(0.7) akan menghasilkan 1 Dari pernyataan (3) dan diagram di atas D = x4
dan F = y1 atau y4
12. Delegasi-delegasi dari negara W dan negara A –C –E –D –B
R duduk berhadap-hadapan pada meja y1–H –y3–y4– G
perundingan. Masing-masing delegasi terdiri Jadi tinggal 2 kemungkinan F=y1 (atase militer),
atas seorang ketua, dua atase militer dan dua atau F=y4 (wakil kamar dagang).
wakil kamar dagang negara masing-masing. Jika atase militer maka (D) dan (E) salah karena
Delegasi W beranggotakan A, B, C, D, dan E. sebelah y1 adalah H.
Delegasi R beranggotakan F, G, H, I, dan J. Jika wakil kamar dagang maka (B) salah karena
Masing-masing delegasi berada pada sisi-sisi H atase militer dan (C) salah karena B ada di
memanjang berlainan (satu negara pada sisi depan G.
yang sama dan ketua duduk di tengah Jadi tinggal pilihan (A) yang paling mungkin.
delegasinya). Batasan dalam mengatur urutan (Note: ini bukan satu-satunya
duduk mereka: kemungkinan.Kemungkinan lainnya masih ada
· Delegasi W menempatkan A dan B di kedua tapi tidak ada di kelima pilihan itu).
ujung barisannya.
· Kuping kanan G tuli shg ia harus paling kanan 13. Berapakah jangkauan tipe data Word?
dari delegasi R. a. 0…255
· Baik D maupun F bukan ketua. b. 0…65536
· Para atase militer W, salah seorangnya B, c. 0…65535
didudukkan berdampingan,dan tidak ada satupun d. -32768…32767
yang berseberangan dengan atase militer R e. Salah semua
· G bukan atase militer.
· C wakil dari kamar dagang, duduk 14. Tipe data manakah yang dapat memuat
berseberangan dgn H. bilangan pecahan?
a. Byte
Manakah yang paling mungkin mengenai F b. Integer c. Boolean
berikut? d. Real
a. Wakil kamar dagang yang duduk di sebelah I e. LongInt
b. Wakil kamar dagang yang duduk di sebelah H
15. Dalam potongan program berikut, 18. Jika P duduk di seberang Q, siapa yang
var Z1, Z2, Z3, Z4: set of Byte; dapat ditempatkan di seberang T, jika I.S II.R
begin III. U?
Z1 := [1, 2, 6, 8, 9]; a. Hanya II
Z2 := [3, 6, 8, 12, 14]; b. Hanya III d. I, II dan III
Z3 := Z1 + Z2; c. Hanya I dan II
Z4 := Z1 * Z2; d. Hanya II dan III
end. e. I, II dan III
Berapakah nilai akhir Z3 dan Z4?
a. Z3 = [6, 7, 8] Pembahasan
Z4 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] Urutan 1 : P,T,S,Q,R,U
b. Z3 = [6, 8] Urutan 2 : T,S,Q,R,U,P
Z4 = [1, 2, 3, 6, 8, 9, 12, 14] Urutan 3 : S,Q,R,U,P,T
c. Z3 = [1, 2, 3, 6, 6, 8, 8, 9, 12, 14] Urutan 4 : Q,R,U,P,T,S
Z4 = [6, 6, 8, 8]
d. Z3 = [1, 2, 3, 6, 8, 9, 12, 14] 19. Deklarasi manakah yang benar?
Z4 = [6, 8] a. type Anggota = record
e. Salah semua Nama: String[40];
NomorAnggota: Word;
Soal di bawah ini untuk no. 16 s.d 18 End;
6 orang pengusaha P – Q – R – S – T & U b. type Anggota: record
mengadakan rapat tertutup. Dgn formasi kursi Nama = String;
diatur berjarak sama satu sama lain mengelilingi NomorAnggota = Word;
meja, sedemikian sehingga setiap kursi di End;
seberangnya: c. type Anggota := record
- P tidak boleh ditempatkan di samping Q Nama := String[20];
- R tidak boleh ditempatkan di samping S NomorAnggota := Word;
- T harus ditempatkan di samping S End;
16. Jika R duduk di seberang Q, ada berapa d. Type Anggota = record
kombinasi urutan keempat pengusaha lainnya Nama: String[];
dapat didudukan NomorAnggota: Word;
a. 5 end;
b. 4 e. Semua deklarasi di atas salah
c. 3
d. 2 20. Tipe data mana yang sanggup memuat
e. 1 numerik hingga 75000?
a. Word
Pembahasan b. Integer
Urutan 1 : R,P,U,Q,T,S c. Real
Urutan 2 : P,U,Q,T,S,R d. Longint
e. String
17. Jika P duduk di seberang T, siapa yg duduk
di seberang S? 21. Seorang manajer perusahaan kecil sedang
a. P mengatur Jadwal kerja para pegawainya. Setiap
b. Q hari kerja (Senin s.d Jumat, lima hari kerja
c. S seminggu) diperlukan paling sedikit tiga orang
d. T pegawai. Karena perusahaan ini masih kecil,
e. U jumlah pegawainya hanya ada lima orang yang
Pembahasan bekerja secara paruh waktu (part time, artinya
Urutan 1 : P, U,R,T,S,Q tidak masuk setiap hari lima hari seminggu), Ali
hanya bisa masuk kerja pada hari Senin, Rabu,
dan Jumat. Baiquini tidak bisa masuk kerja pada d. Kamis
hari Rabu. Chali hanya bisa masuk kerja pada e. Jumat
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

Anda mungkin juga menyukai