SOAL SIMULASI SELEKSI OLIMPIADE SAINS TINGKAT KABUPATEN/KOTA 2013 CALON TIM OLIMPIADE KOMPUTER INDONESIA 2014
Waktu: 150 menit
PROGRAMMING CLUB SMP/SMA SUTOMO 1 MEDAN TAHUN 2013
SIMULASI OLIMPIADE SAINS 2013 TINGKAT KABUPATEN/KOTA BIDANG INFORMATIKA/KOMPUTER Lembar Peraturan dan Peringatan Selama Ujian 1. Model ujian ini adalah pilihan berganda: memilih maksimum SATU jawaban untuk setiap soal dan jika peserta memilih lebih dari satu jawaban untuk satu soal, maka jawaban tersebut akan dinilai SALAH. 2. Jawaban BENAR bernilai 4, jawaban SALAH bernilai -1, dan jawaban kosong (tidak menjawab) bernilai 0. 3. Jumlah soal 50, untuk dikerjakan dalam 2½ jam (atau 150 menit) 4. Notasi algoritma pada bagian algoritmika menggunakan pseudopascal yang pada intinya seperti Pascal tetapi tidak serinci Pascal karena diutamakan pada konsep logika di dalam algoritma. 5. Jawaban yang akan dinilai adalah yang ada di BAGIAN JAWABAN di halaman kedua. Jadi, jawaban yang baru dituliskan di bagian soal (tidak dipindahkan) dianggap tidak menjawab dan tidak akan dinilai. 6. Beberapa soal/ pilihan ditulis dalam dua kolom, jadi harap peserta memperhatikan nomor soal dan nomor pilihan jawaban terkait. 7. Halaman-halaman yang berisi pertanyaan ada di halaman no. 3 sampai dengan 8. Jika berkas Anda tidak lengkap/ rusak/ cacat/ tak terbaca, mintalah kepada panitia untuk penggantian kertas. 8. Peserta DILARANG: a. Menggunakan perangkat komputasi (laptop, kalkulator, komputer) b. Menggunakan alat komunikasi (handphone, pager, PDA, dll.) selama mengerjakan ujian ini c. Menggunakan buku/ referensi/ catatan selain berkas saol ini, serta d. Bekerja sama dengan atau mencontek hasil pekerjaan peserta lain Pelanggaran terhadap larangan ini oleh seorang peserta berakibat yang bersangkutan dibatalkan dari keikutsertaan ujian. 9. Berkas soal BOLEH digunakan untuk coretan tetapi TIDAK BOLEH dilepas dari bundelannya. Jika bundelan lepas secara tidak disengaja, pengawas diharapkan membundelnya kembali atau diganti dengan berkas baru. 10. Berkas soal TIDAK BOLEH dibawa pulang dan panitia setempat harus menghancurkannya atau menyimpannya hingga seluruh kabupaten/ kota seluruh Indonesia selesai melaksanakan OSK ini. Penjelasan sejumlah notasi yang digunakan dalam naskah soal. • • • • • • •
N! adalah bilangan faktorial N yang berharga hasil perkalian semua bilangan bulat mulai dari 1 sampai dengan N. Notasi “A mod B”, dengan A dan B bilangan-bilimgan bulat, menghasilkan sisa pembagian A dengan B, misalnya 10 mod 3 = 1 karena 10 jika dibagi 3 akan menyisakan 1. Notasi "sqrt(A)" dengan A bilangan nyata non-negatif maka menghasilkan akar dari A (atau √A), misalnya sqrt(9) = 3. Notasi “A shl N” dengan A bilangan biner (terdiri dari angka 0 dan 1) akan menambah N angka 0 di sebetah kanan bilangan A semula, misal 01 shl 2 = 0100. Notasi "A shr N" dengan A bilangan biner (terdiri dari angka 0 dan 1) akan membuang N angka dari sebelah kanan bilangan A semula, misal 0101 shr 2 = 01. Notasi "A XOR B", bila A dan B bilangan-bilangan bulat, adalah operasi biner antara tiap bit bilangan A dan B, dimana untuk setiap operasi bitnya akan berharga 1 jika hanya tepat ada satu bit bernilai 1, misal 1 XOR 3 = 012 XOR 112 = 102 = 2
Bidang Informatika/ Komputer
Halaman 1 dari 8
Simulasi OSK 2013
LEMBAR JAWABAN DAN PENILAIAN SIMULASI OSK 2013— BIDANG INFORMATIKA/KOMPUTER VERSI 01 Identitas Peserta (Diisi Peserta) No Kursi/Peserta: _ _ _ _ _ Nama: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Alamat rumah: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Sekolah: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Kelas: _ _ _ _ _ Alamat sekolah: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Beri tanda silang (×) pada huruf pilihan di baris sebelah kanan dari nomor soal ybs. No soal 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Pilihan jawaban A A A A A A A A A A A A A A A A A A A A A A A A A
B B B B B B B B B B B B B B B B B B B B B B B B B
C C C C C C C C C C C C C C C C C C C C C C C C C
D D D D D D D D D D D D D D D D D D D D D D D D D
E E E E E E E E E E E E E E E E E E E E E E E E E
Bidang Informatika/ Komputer
No soal 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
Pilihan jawaban A A A A A A A A A A A A A A A A A A A A A A A A A
B B B B B B B B B B B B B B B B B B B B B B B B B
C C C C C C C C C C C C C C C C C C C C C C C C C
D D D D D D D D D D D D D D D D D D D D D D D D D
E E E E E E E E E E E E E E E E E E E E E E E E E
Halaman 2 dari 8
Kotak penilaian (Diisi oleh juri penilai) Jml benar = _ _ _ _ (A) Jml salah = _ _ _ _ (B) Nilai (4*A – B) =
______ (tanda tangan dan nama Ketua Juri Penilai)
Simulasi OSK 2013
BAGIAN A: ARITMETIKA DAN LOGIKA (30 SOAL) 1. Banyaknya pasangan bilangan bulat asli 5. Jika 10¹⁰⁰ adalah 1 googol. Berapakah 100¹⁰⁰? berbeda yang selisih kuadratnya 2012 adalah... a. 10 googol a. 0 b. 2 googol b. 1 c. 3 googol c. 2 d. Googol² d. 3 e. Googol³ e. 4 6. Berapakah hasil dari 3456 mod 341? 2. Jika x²+ 2xy + y²= 81. Maka nilai dari x + y a. 42 adalah... b. 46 a. 3 c. 23 b. 6 d. 107 c. 9 e. 102 d. 12 7. Berapakah hasil dari 11²⁰¹³ mod 37? e. 0 a. 13 3. Jika 4! Berarti 4×3×2×1 = 24, maka digit b. 7 terakhir dari 1! + 2! + 3! + ... + 100! Adalah... c. 0 a. 1 d. 29 b. 3 e. 36 c. 5 8. Jika x dan y adalah dua buah bilangan prima, d. 7 manakah di antara berikut ini yang tidak e. 9 mungkin menjadi selisih antara x dan y? 4. Nilai dari 2²⁰¹³ mod 10 adalah a. 1 a. 0 b. 3 b. 2 c. 9 c. 4 d. 15 d. 6 e. 23 e. 8 Deskripsi berikut adalah untuk menjawab pertanyaan no. 9 —10 Charlie adalah seorang yang mahir permainan logika. Charlie menantang Anda bermain sebuah permainan dengannya. Charlie menuliskan sebuah bilangan S (1 ≤ S ≤ 2,000,000,000). Lalu, secara bergilir antara Charlie dan Anda, akan mengambil satu angka dari digit-digit S yang tidak nol lalu kurangkan S dengan digit tersebut. Hasil pengurangan tersebut akan menggantikan S. Sebagai contoh jika bilangan adalah 104, maka pemain akan menggantinya antara menjadi 103 (104 - 1) atau 100 (104 - 4). Pemain yang berhasil membuat bilangan menjadi 0 dinyatakan menang. Charlie akan selalu bermain optimal dan Anda mengambil giliran pertama. 9. Jika bilangan S adalah 13579, apakah langkah pertama Anda agar Anda pasti menang? a. 3 b. 5 c. 7 d. 9 e. Tidak mungkin menang
Bidang Informatika/ Komputer
10. Jika bilangan S adalah 31420, apakah langkah pertama Anda agar Anda pasti menang? a. 1 b. 2 c. 3 d. 4 e. Tidak mungkin menang
Halaman 2 dari 8
Simulasi OSK 2013
11. Jika plat mobil di suatu negara memenuhi 14. Charlie sangat sayang dengan bebekbebeknya. Ia mencatat hari ulang tahun setiap syarat bahwa plat tersebut harus dimulai bebeknya (tanggal dan bulan), sebagai contoh dengan 2 huruf yang berbeda, lalu diikuti 1 Agustus. Charlie bertanya, berapakah dengan 3 angka yang berbeda, maka ada jumlah minimal bebek yang harus ia miliki, berapa plat mobil yang berbeda semua yang agar ia yakin bahwa pasti ada 5 bebek yang bisa dibuat? berulang tahun pada tanggal dan bulan yang a. 608400 sama? b. 650000 a. 366 c. 468000 b. 1461 d. 327600 c. 1460 e. 676000 d. 365 12. Berapa banyak bilangan bulat positif dari 1 e. 1825 sampai 101 yang habis dibagi 2, habis dibagi 3 15. Jika w 10% lebih kecil dari x, dan y 30% lebih kecil dari z, seberapa besar nilai wy lebih kecil atau habis dibagi 5? dari xz? a. 55 a. 10% b. 73 b. 20% c. 84 c. 37% d. 97 d. 40% e. 100 e. 63% 13. Sejumlah burung akan menempati 4 buah 16. sangkar. Setiap sangkar dapat ditempati oleh 5 burung. Berapa jumlah burung yang a. diperlukan agar 3 sangkar pasti ditempati oleh b. minimal 3 burung? a. 11 c. b. 13 d. c. 15 d. 17 e. e. 19 Deskripsi berikut adalah untuk menjawab pertanyaan no. 17 —18 Charlie adalah seorang pengelana yang suka berkeliling dari satu kota ke kota lain. Kota-kota yang dapat dikunjungi adalah A, B, C, D, E, dan F. Ia menentukan aturan sebagai berikut: Jika hari ini ia berada di kota A, maka besoknya ia akan pergi ke kota B atau D Jika hari ini ia berada di kota B, maka besoknya ia akan pergi ke kota E atau D Jika hari ini ia berada di kota C, maka besoknya ia akan pergi ke kota D atau F Jika hari ini ia berada di kota D, maka besoknya ia akan pergi ke kota E atau F Jika hari ini ia berada di kota E, maka besoknya ia akan pergi ke kota C atau D Jika hari ini ia berada di kota F, maka besoknya ia akan pergi ke kota A atau E 17. Pada suatu hari Charlie berada di kota A, 18. Pada suatu hari Charlie berada di kota A dan berapa harikah yang ia perlukan paling memutuskan untuk tidak mengunjungi kota F, sedikitnya agar ia dapat berada di kota A 4 hari kemudian ia tidak mungkin berada di kembali dengan syarat ia harus sempat kota ... melalui C minimal satu kali? a. A a. 2 b. B b. 3 c. C c. 5 d. D d. 7 e. E e. 11
Bidang Informatika/ Komputer
Halaman 3 dari 8
Simulasi OSK 2013
Deskripsi berikut adalah untuk menjawab pertanyaan no. 19 sampai dengan no. 20 Charlie akan melalui kebun yang dapat digambarkan dengan peta. Masing-masing petak peta terdapat bunga dengan nilai kecantikan N. Charlie hanya dapat melalui kebun tersebut dari barat menuju dengan menginjak-injak bunga yang akan mengorbankan nilai kecantikan bunga tersebut. Charlie hanya bisa berjalan menuju arah timur, tenggara, atau timur laut. 19. Jika peta kebun bunga itu adalah 20. Jika peta kebun bunga itu adalah 1 5 1 5 1 5 1 5 1 5
1 5 5 5 5
Berapakah nilai kecantikan minimum yang harus Charlie korbankan? a. 1 b. 3 c. 5 d. 7 e. 9
5 1 5 5 5
5 5 1 5 5
5 5 5 2 5
5 5 5 5 2
Berapakah nilai kecantikan minimum yang harus Charlie korbankan? a. 1 b. 3 c. 5 d. 7 e. 9 Deskripsi berikut adalah untuk menjawab pertanyaan no. 21 sampai dengan no. 24 Pada suatu hari yang cerah, Charlie mengendarai sepeda motornya yang baru dari rumahnya menuju sekolah. Untuk menuju sekolah, Charlie dapat berhenti di persimpangan jalan untuk beristirahat (dan karena terjebak lampu merah). Setiap jalan yang dilaluinya memiliki nilai kenyamanan tertentu. Peta perjalanan Charlie dapat ditunjukkan oleh peta sebagai berikut. A 3 B 13 C 1 D 1 E 5 F
5 5
2 J
2
1
1 5
1 O
X
3
K
P 1
5
5 3
1 5
G
1
L
Q
8
1 1
2 1
H
1
M
1 2
1 1
3
R 3
I
N 1
3
S 3
T 5 U 1 V 7 W 5 Y Charlie mulai berangkat dari persimpangan X di dekat rumahnya dan menuju persimpangan S yang berada di dekat sekolahnya. Persimpangan yang telah dia lalui, tidak ingin dilaluinya lagi. 21. Berapakah jumlah nilai kenyamanan minimum 23. Jika Charlie melalui persimpangan T, yang mungkin didapatnya? berapakah jumlah nilai kenyamanan minimum a. 10 yang mungkin didapatnya? b. 3 a. 18 c. 5 b. 20 d. 7 c. 13 e. 9 d. 21 22. Jika Charlie melalui 8 persimpangan e. 15 (termasuk X dan S), berapakah jumlah 24. Jika Charlie melalui semua persimpangan, kenyamanan maksimum yang mungkin berapakah jumlah kenyamanan maksimum didapatnya? yang mungkin didapatnya? a. 19 a. 36 b. 21 b. 54 c. 17 c. 49 d. 23 d. 62 e. 36 e. Tidak mungkin terjadi
Bidang Informatika/ Komputer
Halaman 4 dari 8
Simulasi OSK 2013
Deskripsi berikut adalah untuk menjawab pertanyaan no. 25 Di suatu pelatnas TOKI 2012 yang cerah, anak-anak sedang berdebat mengenai siapa yang telah menghabiskan persediaan susu ultra pagi itu. Berikut wawancara kami bersama lima orang saksi. Gunawan : Aristo : Meilio: Kayaknya bukan Meilio deh Si Meilio tuh yang ngabisin Si Setiadi pelakunya Eh, btw gue ganteng. Si Gunawan kayaknya ga Yang pasti bukan si Gunawan Azaria : mungkin deh Setiadi: Yang pasti bukan Aristo Si Azaria tuh kayaknya Kayaknya si Meilio juga ga mungkin Si Aristo yang ngabisin 25. Jika setiap orang tepat sekali berkata bohong, dan sekali berkata jujur, siapakah pelakunya? a. Gunawan b. Azaria c. Aristo d. Setiadi e. Meilio 26. Dalam sebuah keluarga,terdapat anak laki-laki 28. Dengan pecahan uang 11, 12, dan 13, dan anak perempuan. Masing-masing laki-laki manakah di antara berikut nominal yang tidak memiliki banyak saudara laki-laki sama bisa dibentuk? dengan banyak saudara perempuan; dan a. 37 masing-masing perempuan memiliki banyak b. 46 saudara laki-laki sama dengan dua kali banyak c. 53 saudara perempuan. Berapakah selisih banyak d. 69 anak laki-laki dengan banyak anak perempuan? e. 74 a. 0 29. Jika dari sebuah kotak Anda hanya boleh b. 1 melangkah ke kanan atau ke atas, berapa c. 2 banyak jalur berbeda dari kotak A untuk d. 3 sampai ke kotak Z tanpa e. 4 Z melalui kotak X? 27. Dalam sebuah rumah keluarga kerajaan, a. 3 pembantu raja yang memegang semua kunci X X b. 6 kamar istana raja secara tidak sengaja c. 7 mengacak kunci-kuncinya sehingga dia tidak A d. 10 tahu apa kunci yang benar untuk sebuah e. 11 kamar sehingga di harus mencoba satu per 30. Charlie memiliki 80 koin identik yang mana satu kunci di setiap kamar. Jika terdapat 20 satu di antara koin-koin tersebut lebih ringan kamar, berpakah jumlah percobaan minimal daripada koin-koin lainnya. Charlie yang dilakukannya agar dia pasti tahu apa kunci yang benar untuk setiap kamar? memutuskan untuk menimbang koin-koin a. 20²⁰ tersebut dengan sebuah neraca dua lengan. b. 200 Tentunya dia ingin agar penimbangan c. 210 dilakukan seminimum mungkin. Berapakah d. 190 jumlah penimbangan minimum yang mungkin? e. 20 a. 3 b. 4 c. 5 d. 6 e. 7
Bidang Informatika/ Komputer
Halaman 5 dari 8
Simulasi OSK 2013
BAGIAN B: ALGORITMIKA (20 SOAL) [Peringatan: Seluruh penulisan notasi algoritma menggunakan Pseudopascal] Program berikut adalah untuk soal no. 31—32 procedure kyaa(n : integer); begin if n = 1 then write('*') else begin write('*'); kyaa(n - 1); write('*'); end; end; 31. Jika dipanggil kyaa(5), berapakah tanda bintang yang dihasilkan? a. 6 b. 10 c. 7 d. 11 e. 9 32. Jika dipanggil kyaa(n), berapakah tanda bintang yang dihasilkan? a. n+2 b. 2n c. 2n-3 d. 2n+1 e. 2n-1 function h(n: integer); begin if n=0 then h:=0 else h := n + h(n-1); end; 33. Untuk h(5), program di atas menghitung: a. 0+1+2+3+4+5 b. 1+2+3+4+5 c. 5+4+3+2+1 d. 5+4+3+2+1+0 e. Tidak ada yang benar function tro(lo:longint): longint; begin if lo = 0 then tro := 1 else tro := tro(lo-1) * (1 shl lo); end; 34. Nilai dari tro(5) adalah... a. 32768 b. 65536 c. 1024 d. 2048 e. 1 Bidang Informatika/ Komputer
Program berikut adalah untuk soal no. 35—37 function fpb(a,b : integer) : integer; begin if (b = 0) then fpb := // kosong (35) else fpb := // kosong (36) end; function kpk(a,b : integer) : integer; begin kpk := // kosong (37) end; Fungsi fpb diharapkan menghasilkan FPB dari a dan b, sedangkan fungsi kpk diharapkan menghasilkan KPK dari a dan b. 35. Apakah kode yang sesuai untuk mengisi tempat bertanda kosong (35)? a. a b. b c. a*b d. fpb(b,a) e. fpb(a,b) 36. Apakah kode yang sesuai untuk mengisi tempat bertanda kosong (36)? a. a b. b a. fpb(a mod b, b) b. fpb(b,a mod b) c. fpb(b,a) 37. Apakah kode yang sesuai untuk mengisi tempat bertanda kosong (37)? a. a*b b. a*b div fpb(a,b) c. fpb(a,b) * a *b d. fpb(a*b, a) e. fpb(b, a*b) 38. Perhatikan kode berikut ini. function me(m,n: integer): integer; begin if (m=0) or (n=0) then me:=1 else me:= me(m-1, n-1) + me(m-1,n); end; Hasil pemanggilan me(6,6) adalah: a. 64 b. 12 c. 15 d. 35 e. 81
Halaman 6 dari 8
Simulasi OSK 2013
Kode program berikut untuk soal no 39 dan 40 function lol(x,y:longint):longint; var tes: longint; begin if(y = 1)then lol:= x else if ((y mod 2) = 0) then begin tes:= lol(x, y div 2)); lol:= tes * tes; end else lol:= x * lol(x,y-1); end; 39. Nilai dari lol(2,10) adalah... a. 256 b. 512 c. 1024 d. 2048 e. 65536 40. Jika dipanggil lol(2,10), berapa kalilah lol akan dipanggil lagi? a. 2 b. 4 c. 6 d. 3 e. 5 Kode program berikut untuk soal no 41 dan 42 function ha(x,y,z: integer): boolean; begin if (z=0) then ha := (y>x) else if (y=0) then ha := false else if (x=0) then ha := true else ha := ha(x-1, y-1, z-1); end; 41. Dari pemanggilan di bawah ini, manakah yang bernilai false? a. ha(1,2,3) b. ha(2,6,2) c. ha(4,8,8) d. ha(6,5,4) e. ha(7,9,5) 42. Dari pemanggilan di bawah ini, manakah yang bernilai true? a. ha(77,35,59) b. ha(61,82,93)
Bidang Informatika/ Komputer
c. ha(54,20,11) d. ha(44,43,72) e. ha(25,18,36) 43. Perhatikan program berikut. var a,b: char; begin for a:='a' to 'd' do for b:=a downto 'a' do if a<> b then write(b) else writeln(a); end. Jika program dijalankan, outpunya adalah: a. a ba cba dbca b. a b ac bac cba c. a ab abc abcd d. a b ca dab abc e. a bb ccc dddd 44. Perhatikan kode program berikut ini. function tor(i:longint):longint; begin if (i=0) then tor:=1 else tor:= tor(i-1) +(1 shl i); end; Apakah hasil dari pemanggilan tor(15)? a. 32767 b. 65535 c. 15 d. 1 e. 0
Halaman 7 dari 8
Simulasi OSK 2013
Kode program berikut unutk soal no. 45—46 procedure gan(t:longint); var i,j: longint; begin for i:=1 to t do for j:=i to t do write('*'); end; 45. Berapa banyakkah tanda bintang (*) yang dicetak untuk pemanggilan gan(10)? a. 100 b. 125 c. 55 d. 45 e. 10 46. Berapakah nilai paramater t untuk pemanggilan gan(t) agar banyak tanda bintang yang dihasilkan adalah 120? a. 15 b. 17 c. 10 d. 14 e. 9 Kode program berikut unutk soal no. 47—48 procedure irv(a:int64); var b: longint; begin b := 5; while (a>0) do begin b:= b + (a mod 10); a:= a div 10; end; if (b mod 3=0) or (b mod 9=0) then writeln('Irvan') else writeln('Irvin'); end; 47. Berapakah nilai paramater a untuk pemanggilan irv(a) agar mencetak kata Irvan? a. 20 b. 21 c. 22 d. 23 e. 24 48. Berapakah nilai paramater a untuk pemanggilan irv(a) agar mencetak kata Irvin? a. 1293808 b. 981445 c. 77777 d. 2998480 e. 999999994
Kode program berikut unutk soal no. 49—50 procedure ala(m,n,o:boolean); begin if (m xor n) and o then writeln('Charlie') else if not(m) and (n xor o) then writeln('Peter') else if (m xor o) and n then writeln('Kenrick') else if not(m or n) and n then writeln('Golfin') else writeln('Tommy'); end; 49. Jika dipanggil ala(true,true,false), apakah keluarannya? a. Charlie b. Peter c. Kenrick d. Golfin e. Tommy 50. Pemanggilan apakah yang akan mencetak kata Golfin? a. ala(false, true, true) b. ala(false, true, false) c. ala(true, true, true) d. ala(true, false, true) e. ala(false, false, true)
----------- Akhir dari berkas soal -----------
Bidang Informatika/ Komputer
Halaman 8 dari 8
Simulasi OSK 2013