PROGRAMMING CLUB
SMP/SMA SUTOMO 1 MEDAN
TAHUN 2013
SIMULASI OLIMPIADE SAINS 2013
TINGKAT KABUPATEN/KOTA
BIDANG INFORMATIKA/KOMPUTER
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.
• 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
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 10. Jika bilangan S adalah 31420, apakah langkah
pertama Anda agar Anda pasti menang? pertama Anda agar Anda pasti menang?
a. 3 a. 1
b. 5 b. 2
c. 7 c. 3
d. 9 d. 4
e. Tidak mungkin menang e. Tidak mungkin menang
Program berikut adalah untuk soal no. 31—32 Program berikut adalah untuk soal no. 35—37
procedure kyaa(n : integer); function fpb(a,b : integer) : integer;
begin begin
if n = 1 then if (b = 0) then
write('*') fpb := // kosong (35)
else else
begin fpb := // kosong (36)
write('*'); end;
kyaa(n - 1);
write('*'); function kpk(a,b : integer) : integer;
end; begin
end; kpk := // kosong (37)
31. Jika dipanggil kyaa(5), berapakah tanda end;
bintang yang dihasilkan? Fungsi fpb diharapkan menghasilkan FPB dari a dan b,
a. 6 sedangkan fungsi kpk diharapkan menghasilkan KPK
b. 10 dari a dan b.
c. 7
35. Apakah kode yang sesuai untuk mengisi tempat
d. 11
bertanda kosong (35)?
e. 9
a. a
32. Jika dipanggil kyaa(n), berapakah tanda
b. b
bintang yang dihasilkan?
c. a*b
a. n+2
b. 2n d. fpb(b,a)
c. 2n-3 e. fpb(a,b)
d. 2n+1 36. Apakah kode yang sesuai untuk mengisi tempat
e. 2n-1 bertanda kosong (36)?
a. a
function h(n: integer); b. b
begin a. fpb(a mod b, b)
if n=0 then h:=0
else h := n + h(n-1); b. fpb(b,a mod b)
end; c. fpb(b,a)
33. Untuk h(5), program di atas menghitung: 37. Apakah kode yang sesuai untuk mengisi tempat
a. 0+1+2+3+4+5 bertanda kosong (37)?
b. 1+2+3+4+5 a. a*b
c. 5+4+3+2+1 b. a*b div fpb(a,b)
d. 5+4+3+2+1+0 c. fpb(a,b) * a *b
e. Tidak ada yang benar d. fpb(a*b, a)
e. fpb(b, a*b)
function tro(lo:longint): longint;
38. Perhatikan kode berikut ini.
begin
if lo = 0 then function me(m,n: integer): integer;
tro := 1 begin
else if (m=0) or (n=0) then me:=1
tro := tro(lo-1) * (1 shl lo); else me:= me(m-1, n-1) + me(m-1,n);
end; end;
34. Nilai dari tro(5) adalah... Hasil pemanggilan me(6,6) adalah:
a. 32768 a. 64
b. 65536 b. 12
c. 1024 c. 15
d. 2048 d. 35
e. 1 e. 81