Anda di halaman 1dari 256

SIAP JADI JUARA

OLIMPIADE SAINS NASIONAL


KOMPUTER SMA SEDERAJAT

ISBN : 978-602-376-281-1

Penyusun : Tim Pustaka Cerdas


Layout & Ilustrasi : Tim Pustaka Baru
Cover : Tim Pustaka Baru
Penerbit : PUSTAKABARUPRESS
Alamat : Jl. Wonosari Km.6 Demblaksari Baturetno
Banguntapan Bantul Yogyakarta.
Telp. 0274 4353591 - 4438911
Pemasaran : PT. PUSTAKA BARU
Jl. Wonosari Km.6 Demblaksari Baturetno
Banguntapan Bantul Yogyakarta.
Telp. 0274 4353591 - 4438911
Cetakan : I – Yogyakarta, 2019

SARAN DAN MASUKAN UNTUK PROSES PERBAIKAN


e-mail : redaksipustakabarupress@gmail.com

© Hak cipta dilindungi oleh undang-undang.


All rights reserved. Dilarang mengutip atau memperbanyak sebagian atau seluruh isi buku ini tan-
pa izin tertulis dari penerbit. Ketentuan Pidana Sanksi Pelanggaran Pasal 72 UU Nomor 19 Tahun
2002 tentang Hak Cipta
1. Barang siapa dengan sengaja dan tanpa hak melakukan perbuatansebagaimana dimaksud
dalam pasal 2 ayat (1) atau pasal 49 ayat (1) dan ayat (2) dipidana dengan pidana penjara pa-
ling sedikit 1 (satu) bulan dan/atau denda paling sedikit Rp1.000.000,00 (satu juta rupiah) atau
pidana penjara paling lama 7 (tujuh) tahun dan/atau denda paling banyak Rp5.000.000.000,00
(lima miliar rupiah).
2. Barang siapa dengan sengaja menyerahkan, menyiarkan, memamerkan, mengedarkan, atau
menjual kepada umum sesuatu ciptaan barang atau hasil pelanggaran Hak Cipta atau Hak
Terkait sebagaimana dimaksud pada ayat (1), dipidana dengan pidana penjara paling lama 5
(lima) tahun dan/ atau denda paling banyak Rp500.000.000,00 (lima ratus juta rupiah)
KATA PENGANTAR
Kegiatan Olimpiade Sains Nasional (OSN) merupakan agenda tahunan yang dise-
lenggarakan oleh Direktorat Pembinaan SMA, Direktorat Jenderal Pendidikan Dasar dan
Menengah, Kementerian Pendidikan dan Kebudayaan. OSN meliputi 9 (sembilan) bi-
dang keilmuan, yaitu: bidang Matematika, Fisika, Kimia, Informatika/Komputer, Bi-
ologi, Astronomi, Ekonomi, Kebumian dan Geografi. Dan untuk buku ini mengupas
tentang OSN komputer.

OSN diselenggarakan sebagai bagian dari upaya untuk meningkatkan mutu pen-
didikan sains sekaligus upaya untuk menumbuhkan karakter siswa yang jujur, disiplin,
sportif, tekun, kreatif, tangguh dan cinta tanah air. Melalui OSN diharapkan potensi dan
bakat kecerdasan kognitif siswa di bidang sains dapat dimotivasi dan difasilitasi sehingga
berkembang dengan baik dan kita peroleh calon-calon terbaik untuk kita ikut sertakan
dalam olimpiade sains internasional. Panduan pelaksanaan Olimpiade Sains Nasional ini
merupakan acuan bagi panitia Olimpiade Sains Kabupaten/Kota (OSK), Olimpiade Sains
Provinsi (OSP), Olimpiade Sains Nasional (OSN), sekolah, guru, siswa dan bagi semua
pemangku kepentingan dalam mengikuti dan melaksanakan seleksi dengan sebaik-baik-
nya.

Oleh karena itu harus ada panduan untuk upaya pembelajaran dan latihan kepada
siswa dalam mengikuti OSN (pada buku ini bidang Komputer). Sehingga terbitlah buku
OSN ini sebagai acuan kepada para siswa siswi untuk menunjang olimpiade sains nasi-
onal. Buku ini tidak hanya membahas tentang materi materi yang diujikan, melainkan
kisi-kisi dan soal-soal prediksi tahun sebelumnya beserta soal prediksi untuk OSN 2019.
Sehingga buku ini bisa menjadi acuan lengkap untuk belajar para siswa.

Terimakasih kepada semua pihak yang telah mensuport dalam pelaksanaan penga-
daan buku OSN ini. Kami menyadari betul bahwasanya apa yang tertulis dalam buku ini
masih jauh dari kata sempurna. Kritik yang membangun dan saran kami harapkan untuk
kesempurnaan Panduan ini di masa yang akan datang. Semoga pelaksanaan OSN tahun
ini dapat berjalan dengan baik dengan dukungan semua pihak baik yang ada di daerah
maupun di tingkat pusat.

Penulis

3
Catatan:

4
DAFTAR ISI
KATA PENGANTAR................................................................................................... 3
DAFTAR ISI................................................................................................................ 5

BAGIAN 1
PENGANTAR............................................................................................................. 7
A. Olimpiade Sains Nasional............................................................................................................ 8
B. International Olympiad in Informatics.................................................................................... 8

BAGIAN 2
KARAKTERISTIK MATERI UJI................................................................................... 11
A. Tingkat IOI......................................................................................................................................... 12
B. Tingkat OSK/OSP............................................................................................................................ 12
C. Tingkat OSN .................................................................................................................................... 13

BAGIAN 3
RINGKASAN MATERI & LATIHAN SOAL................................................................ 15
BAB 1
ANALITIK & LOGIKA......................................................................................... 17
A. Logika Matematika................................................................................................................ 17
B. Hukum De Morgan................................................................................................................ 20
C. Silogisme dalam Penarikan Kesimpulan........................................................................ 21

BAB 2
ARITMATIKA...................................................................................................... 61
A. Peluang kombinasi dan permutasi ................................................................................. 61
B. Aturan-aturan mencacah (aturan penjumlahan dan aturan perkalian)............. 61
C. Operasi modulus ................................................................................................................... 62
D. Matrik dan operasi................................................................................................................. 62
E. Jenis jenis matriks................................................................................................................... 62
F. Deret bilangan umum, fibbonaci, deret segitiga........................................................ 63
G. Teori Bilangan.......................................................................................................................... 63
H. Prinsip inklusi – eklusi ......................................................................................................... 64

5
BAB 3
ALGORITMA....................................................................................................... 97
A. Pascal (Pseudopascal)........................................................................................................... 97
B. Analisis kompleksitas alogitma ........................................................................................ 97
C. Fungsi dan prosedur rekursif............................................................................................. 98
D. Pencarian FPB menggunakan metode Euclid.............................................................. 99
E. Pencarian bilangan prima.................................................................................................... 99
F. Algoritma pengurutan (sorting) , buble sort, select sort, quict sort dan
kompleksitas.................................................................................................................................. 99

BAGIAN 4
KUNCI JAWABAN & PEMBAHASAN...................................................................... 137

DAFTAR PUSTAKA.................................................................................................... 249


PROFIL PENULIS....................................................................................................... 251

6
BAGIAN 1

PENGANTAR
A. Olimpiade Sains Nasional B. International Olympiad
Pada saat ini Kementerian Pendidik- in Informatics
an dan Kebudayaan meyelenggarakan IOI adalah ajang kompetisi pemro­
Olimpiade Sains Nasional (OSN) tingkat graman di tingkat internasional yang
SMA yang terdiri dari 9 bidang olimpia- sudah berlangsung sejak 1985. Indonesia
de sains. Satu di antaranya adalah bidang mulai mengikuti IOI sejak 1995. Saat
Informatika/Komputer. Pemilihan peserta ini IOI diikuti oleh lebih dari 80 negara
yang akan bertanding di OSN dilakukan (termasuk semua negara maju) sehingga
melalui seleksi berjenjang dan serentak IOI merupakan lomba paling akbar dalam
di seluruh Indonesia, yaitu: bidang ini untuk tingkat SMA.

1. Tingkat kabupaten/kota (Olimpiade Pada awalnya IOI sendiri adalah


Sains tingkat Kabupaten/Kota–OSK), lomba murni pemrograman semata
berdasarkan masalah-masalah yang
kemudian
sederhana. Para peserta dari berbagai
2. Tingkat provinsi (Olimpiade Sains
negara secara perseorangan berusaha
tingkat Provinsi–OSP).
menyelesaikan sejumlah masalah dalam
waktu yang singkat dengan membuat
Seleksi di tingkat provinsi (OSP), pada
program penyelesaian masalah. Program
umumnya diikuti oleh sekitar 1500 siswa
yang dihasilkan diuji dengan sejumlah
peserta seleksi pertahunnya untuk ma-
data test (test case) yang mewakili
sing-masing bidang olimpiade. Semen-
sejumlah kondisi yang mungkin dari
tara di tingkat kabupaten/kota tentu­nya
input soal tersebut. Program yang dibuat
sekian kali lebih banyak lagi (estimasi ka-
peserta dinilai dari berapa banyak test
sar ada di atas 8-12 ribuan siswa). Hasil
case yang berhasil dijawab dengan benar
dari seleksi tingkat provinsi menentukan
oleh program tersebut. Nilai akhir peserta
siapa yang akan menjadi salah seorang
adalah jumlah nilai yang diperoleh
dari ke 70 hingga 90 siswa peserta OSN.
dari setiap program yang dibuatnya.
Selain sebagai ajang prestasi tingkat Peringkat peserta diurutkan berdasar
nasional, OSN bertujuan juga untuk nilai tersebut dan ¹⁄₁₂ (atau 8.33%) dari
mendapatkan calon peserta pembinaan semua peserta pada peringkat teratas
dan seleksi lebih lanjut hingga dipilih empat peserta mendapatkan medali emas, ¹⁄₆
siswa terbaik untuk menjadi anggota TOKI (atau 16.67%) berikutnya mendapatkan
(Tim Olimpiade Komputer Indonesia). medali perak dan ⅓ (atau 33.33%)
Mereka itulah yang akan mewakili negara mendapatkan medali perunggu. Sisanya
dan bangsa untuk bertanding di tingkat terdapat 50% yang tidak mendapatkan
dunia yaitu International Olympiad in medali. Peringkat negara disusun atas
Informatics (IOI). total perolehan medali peserta.

8
Dalam perjalanannya problem- Jadi bisa dikatakan bahwa kompetisi
problem yang diberikan mengalami IOI adalah menguji kemampuan pe­
peningkatan tingkat kesulitannya ser­ta dalam problem solving dengan
terutama sejak akhir tahun 90-an, pemrograman komputer. Setiap pe­
hingga pada saat ini pemrograman serta dalam waktu yang amat terba­
hanya satu aspek kecil semata di dalam tas harus mengerjakan sejum­ lah
lomba ini. Dengan demikian, aspek masalah yang diberikan dengan me­
utama yang diuji adalah kemampuan nyu­sun program untuk menyele­sai­
menyelesaikan masalahnya sendiri. kan masalah tersebut.

9
Catatan:

10
BAGIAN 2

KARAKTERISTIK
MATERI UJI
A. Tingkat IOI a. Mendeduksi proses dari test case
(input - output)
Secara umum penyelesaian masalah
b. Mengenali variabilitas test case
di tingkat IOI memerlukan aspek-aspek
(kasus ekstrem, kasus sederhana)
dalam proses berpikir sebagai berikut.
6. Melakukan manajemen waktu, me­
1. Peserta harus mampu membaca des- me­lihara ketelitian dan stamina dalam
kripsi soal (termasuk input-proses- mengerjakan hal-hal di atas (tahan
output) yang dinarasikan sebagai terhadap presure keterbatasan waktu
suatu cerita yang di dalamnya ter- dan memiliki endurance, keuletan
kandung suatu permasalahan yang dan ketelitian untuk tidak melolos­kan
hendak diselesaikan. sedikitpun kesalahan).
Sebagai catatan, kemampuan
2. Terkait dengan itu, diperlukan juga
dalam penyusunan program hanya­
pemahaman logika yang baik. Agar
lah salah satu aspek saja, yang lebih
berdasarkan deskripsi tersebut pe-
sulit adalah dalam kelima aspek-
serta mampu menyusun model/ab-
aspek. Efisiensi akan ditentukan dari
straksi permasalahan. Model dapat
metodologi apa yang digunakan
berupa interrelasi antar entitas se-
pada tahap ke 3.
bagai suatu graf atau bahkan sudah
menjadi lebih matang lagi sebagai
B. Tingkat OSK/OSP
suatu model atau fungsi rekurens.
Proses seleksi idealnya adalah meng-
3. Menemukan metode dalam penyu­ acu model IOI di atas yaitu problem
sunan algoritma berdasarkan model/ solving dengan pemrograman. Namun,
abstraksi sebelumnya. berbeda dengan bidang OSN lain seper-
ti Fisika, Matematika, Kimia dan Biologi,
4. Mampu melakukan optimasi model
bidang Informatika khususnya pemro-
penyelesaian masalah di aspek 2 dan
graman belum menjadi pelajaran resmi.
3 tersebut untuk mencapai efisiensi
Kalaupun ada, hanya di sekolah-sekolah
algoritma terbaik. Hanya sekedar
tertentu saja dan itupun belum tentu
solusi naïf saja tidak dapat mencapai
mengajarkan pemrograman. Materi Tek-
nilai maksimum.
nologi Informasi dan Komunikasi (TIK)
5. Konversi rancangan algoritma di yang selama ini dikenal sebagian besar
atas menjadi program serta evaluasi adalah materi tentang penggunaan pe-
hasil kerja pemrograman di atas rangkat lunak MS Office (pemrograman
berdasarkan seluruh kemungkinan hanya diberikan dalam porsi yang amat
test case yang akan diberikan. kecil).

12
Oleh sebab itu, materi uji IOI Di tingkat provinsi pada dasarnya
“diterjemahkan” ke dalam materi yang sama dengan di tingkat kabupaten/kota
menguji potensi akademis/skolastik kecuali komposisi algoritmika diperbesar.
tinggi yang relevan dengan aspek-aspek Hal ini bertujuan untuk memacu peserta
di atas. Diharapkan dari proses seleksi yang lolos di tingkat kabupaten/kota un­
ini, siswa yang berpotensi walaupun tuk memperdalam pemahamannya dan
belum mahir dalam pemrograman dapat keterampilan praktiknya dalam pemro­
terjaring untuk diberikan pembinaan graman.
yang intensif di Pelatnas.

Aspek yang sangat bergantung pada


C. Tingkat OSN
keterampilan peserta dalam pemrog­ Materi uji OSN disesuaikan dengan
raman dikurangi dan digantikan dengan materi uji di tingkat IOI. Peserta diberikan
materi uji “analisa dan logika” dan materi sejumlah soal yang membutuhkan pro­
uji kemampuan algoritmika. blem solving dan diselesaikan dengan
pemro­ graman menggunakan bahasa
Tingkatan seleksi OSK-OSP dibeda-
pem­ro­graman komputer. Selain itu siswa
kan atas komposisi dari ketiga komponen
juga diberikan soal yang penyelesaiannya
materi uji:
menggunakan logika serta ilmu per­
1. Kemampuan analitika/logika/aritme­ hitungan bilangan.
tika (nonprogramming)
2. Kemampuan algoritmika (program-
ming)

Komponen uji pemrograman tidak


mungkin untuk diadakan sehingga di­
gan­­tikan dengan kemampuan dan algo­­
rit­mika. Metode pengujiannya pun tidak
bisa dihindari bersifat tes objektif (pilihan
ganda) dan isian singkat. Metode ini
memang banyak sekali kelemahannya
yaitu memungkinkan jawaban asal tapi
benar, namun, memungkinkan peme­
riksaan yang segera dan efisien. Dampak
negatif tersebut bisa dikurangi dengan
pembuatan soal dan pilihan jawaban yang
dirancang dengan matang. Komposisi
analitika/logika di tingkat kabupaten/
kota adalah yang paling besar.

13
Catatan:

14
bagian 3

RINGKASAN MATERI
& LATIHAN SOAL
Catatan:

16
BAB

ANALITIK & LOGIKA


1

A. Logika Matematika mempelajari cara penalaran manusia,


sedangkan penalaran seseorang di­
1. Logika ung­kap­
kan dalam bahasa berupa
Dalam ilmu komputer, logika kalimat-kalimat. Dengan demikian
berasal dari bahasa Yunani yaitu logika mempelajari kalimat-kalimat
logos yang artinya kata, ucapan atau yang mengungkapkan atau meru­
alasan. Jadi, logika adalah ilmu untuk mus­kan penalaran manusia.
berpikir dan menalar dengan benar.
Ada beberapa istilah yang akan di­ 2. Proposisi
gunakan dalam logika informatika Proposisi: suatu kalimat deklaratif
yaitu: yang bernilai benar atau salah
tetapi tidak keduanya. Nilai benar/
1) Premis: yaitu sebuah pernyataan.
salah suatu proposisi disebut nilai
2) Argumen: usaha untuk mencari kebenaran pernyataan tersebut.
kebenaran dari premis berupa Nilai kebenaran tergantung pada
kesimpulan realitas.
3) Konklusi: Kesimpulan Proposisi dikelompokkan menja-
4) Logika matematika/logika simbol di 2:
ialah logika yang menggunakan 1) Proposisi sederhana: tidak me-
bahasa Matematika, yaitu de­ ngandung kata hubung
ngan menggunakan lambang-
2) Proposisi majemuk: terdiri atas
lambang atau simbol-simbol.
satu atau lebih pernyataan seder­
Keuntungan/kekuatan bahasa hana yang dihubungkan dengan
simbol adalah: ringkas, univalent/ kata hubung.
bermakna tunggal, dan universal/
Pernyataan yang benar dikata-
dapat dipakai di mana-mana. Logika
kan mempunyai nilai kebenaran B

17
(benar), sedangkan pernyataan yang Jika p bernilai benar, maka ~p pasti
salah dikatakan mempunyai nilai ke- bernilai salah. Begitu juga sebaliknya.
benaran S (salah). Berikut ini tabel kebenaran negasi.

Kebenaran suatu pernyatan di-


bedakan menjadi dua, yaitu:

1) Kebenaran faktual, yaitu kesesu-


aian antara isi peryataan dan fak-
ta sesungguhnya.

2) Kebenaran logis, yaitu kesesuai-


Selanjutnya akan dibahas proposisi
an dengan aturan-aturan logika.
majemuk yang melibatkan operator
3. Jika dan hanya jika (Tabel Kebe- konjungsi, disjungsi, implikasi dan
naran) biimplikasi. Operator logika pada
Kata hubung kalimat proposisi majemuk biasanya melibat­
kan minimal 2 variabel. Misalkan
Simbol Arti
~ tidak... diberikan pernyataan p dan q. Berikut
^ ...dan.... tabel kemungkinan nilai kebenaran
V ...atau... dari tiap pernyataan.
=> jika...maka... Diberikan pernyataan sebagai ber­
ó ..bila dan hanya bila...
ikut:
Nilai kebenaran suatu pernyataan p: Saya lapar
sangat bergantung pada operator q: Saya haus
logika yang dikenakan pada pernya­
Kemungkinan p q
taan tersebut. “Operator logika 1 B B
negasi biasanya hanya melibatkan 2 B S
satu proposisi atomik, sehingga nilai 3 S B
kebenarannya hanya ada 2 baris 4 S S
Jika pada faktanya saya lapar dan
kemungkinan.” Diberikan pernyataan
haus maka pernyataan p ^ q bernilai
sebagai berikut
benar.
p: Hari ini cerah
p q P^q
~p: Hari ini tidak cerah
B B B
B S S
S B S
S S S

18
“Operator logika konjungsi akan Pemakaian logika induktif ini
bernilai benar jika kedua pernyataan berbahaya karena bisa terjadi
bernilai benar“. Selanjutnya kita akan terlalu cepat mengambil kesim­
menyelidiki nilai kebenaran dari pulan yang berlaku umum,
operator logika disjungsi. sementara jumlah kasus yang
digunakan dalam premis ku­
rang memadai. Selain itu pula,
kemungkinan premis yang di­gu­­
na­kan kurang memenuhi kaidah-
kaidah ilmiah.

Ciri-ciri logika induktif antara


“Operator logika implikasi akan lain:
ber­­
nilai salah jika pernyataan yang
a) Sintesis
pertama bernilai benar dan pernya­
Kesimpulan ditarik dengan
taan kedua bernilai salah”. Berikut
menyintesiskan kasus-kasus
disaji­kan tabel kebenaran biimplikasi.
yang digunakan dalam pre­
mis-premis.

b) General
Kesimpulan yang ditarik se-
lalu meliputi jumlah kasus
yang lebih banyak
Operator logika biimplikasi akan ber­ c) Aposteriori
nilai benar jika kedua pernyataan Kasus-kasus yang dijadikan
memiliki nilai kebenaran yang sama. landasan argumen merupa-
kan hasil pengamatan inde-
4. Logika Induktif – Deduktif
rawi.
1) Logika Induktif
Kesimpulan tidak mungkin me­
Logika induktif adalah “sistem
ngandung nilai kepastian mutlak
penalaran yang menelaah prin-
(ada aspek probabilitas). Secara
sip-prinsip penyimpulan yang
umum, logika induktif sulit un­tuk
sah dari sejumlah hal khusus
dibuktikan kebenaran/kereliable­­
sampai pada suatu kesimpulan
annya dilihat dari ciri-cirinya.
umum yang bersifat boleh jadi.”

19
2) Logika deduktif Logika deduktif bisa berbahaya
apabila salah dalam mengambil/
Pengertian logika deduktif
menyusun kesimpulan. Sebagai
adalah ‘sistem penalaran
contoh:
yang menelaah prinsip-
prinsip penyimpulan yang
sah berdasarkan bentuknya
B. Hukum De Morgan
(form) serta kesimpulan yang Pernyataan: “jika dan hanya jika
dihasilkan sebagai kemestian semua masukan adalah benar (1), maka
yang diturunkan dari pangkal keluarannya adalah benar (1)”. Secara
pikiran yang jernih atau sehat’. logika adalah ekuivalen dengan pernya­
Atau logika deduktif adalah taan “ jika salah satu saja dari masukannya
‘suatu ilmu yang mempelajari tidak benar (0), maka keluarannya tidak
asas-asas atau hukum-hukum benar (0)”.
dalam berpikir hukum-hukum Aljabar Boolean sebagai aljabar logi-
tersebut harus ditaati supaya ka mempunyai banyak aturan atau teori.
pola berpikirnya benar dan Salah satu yang sangat berguna adalah
mencapai kebenaran’ (Sudiarja, teori De Morgan. Dengan teori ini, me-
dkk., 2006; Copi, I.M. 1978). mungkinkan kita dapat mengubah secara
Ciri-ciri dari logika deduktif bolak-balik dengan mudah dari bentuk
adalah: pernyataan Boolean.

a) Analitis Teori tersebut juga dapat digunakan


Kesimpulan daya tarik ha­ untuk menghilangkan tanda strip (tanda
nya dengan menganalisis komplemen) di atas beberapa variabel.
pro­posisi-proposisi atau Rumus hukum de morgan:
pre­mis-premis yang sudah
~( p ʌ q ) ≡ ~p v ~q
ada.
~( p v q ) ≡ ~p ʌ ~q
b) Tautologies
Kesimpulan yang ditarik se- Dua persamaan itu dikenal dengan
sungguhnya secara tersirat nama Hukum De Morgan: Untuk
sudah terkandung dalam mem­ buktikan Persamaan (1-1) perlu
premis-premisnya di perhatikan, bahwa jikalau semua
masukan 1, masing-masing ruas
c) Apirori
persamaan akan memberikan suatu hasil
Kesimpulan ditarik tanpa
yang sama dengan 0. Di pihak lain, kalau
pengamatan indrawi atau
satu (atau lebih dari satu) masukan sama
operasi kampus. Argumen
dengan 0, maka masing-masing ruas
deduktif selalu dapat nilai
persamaan akan memberikan suatu hasil
sahih atau tidaknya.

20
yang sama dengan 1. Jadi, untuk semua 3. Silogisme
kemungkinan masukan dari ruas sebelah Silogisme adalah suatu pengam­
kanan persamaan sama dengan ruas bilan kesimpulan dari dua macam
sebelah kiri. Persamaan (1-2) dibuktikan keputusan (yang mengandung
dengan cara yang sama. unsur yang sama dan salah satunya
harus universal) suatu keputusan
C. Silogisme dalam Penari- yang ketiga yang kebenarannya
kan Kesimpulan sama dengan dua keputusan yang
mendahuluinya. Dengan kata lain
Ada 3 kaidah penarikan kesimpulan:
silogisme adalah merupakan pola
1. Modus ponens berpikir yang di susun dari dua buah
premis 1: p →q pernyataan dan sebuah kesimpulan.
premis 2: p (modus ponens) Silogisme ditandai dengan ada-
__________________ nya dua pernyataan majemuk yang
dihubungkan dengan kata logika be-
Kesimpulan: q
rupa implikasi misalnya a =>b ( jika a
maka b) dan b => c ( jika b maka c).
2. Modus tollens
Berdasarkan metode silogisme, maka
Premis 1: p →q
dari kedua premis tersebut dapat di-
Premis 2: ~q (modus tollens) tarik kesimpulan yaitu a => c ( jika a
Kesimpulan: ~p maka c).

21
Catatan:

22
Soal Olimpiade
Sains Nasional Komputer
Soal OSN Tingkat kabupaten 3. Jika A bernilai True, B bernilai False,
C bernilai True, D bernilai False, E
Berikut adalah deskripsi untuk soal nomor bernilai False, dan F bernilai True.
1 dan 2 Maka Ekspresi Logika yang nilainya
Ana, Ani, Ina, Nia, Ian adalah teman sama dengan (A and ((( B or C ) and (
sekelas. Mereka baru saja menerima hasil D and E )) and F )) adalah....
Ulangan Harian. Nilai Ana lebih rendah A. (A and B) or((C or D) and(E or F))
dari Nia tapi lebih tinggi dari Ina. Nilai B. ((A or(B or C)) or(D or E) or F)
Ani lebih tinggi nilai Ian. Nilai Ina lebih C. ((A and B) or((C and(D andE)) and F))
tinggi dari nilai Ian. Nilai Ani lebih tinggi D. ((A or B) or((C andD) and(E or F)))
dari Ana tapi lebih rendah dari nilai Nia. E. (((A and B) orC) or((D or E) and F)

(SOAL OSN TINGKAT KABUPATEN TAHUN 2014)


1. Siapa yang memperoleh nilai tertinggi?
A. Ana 4. Not ( not ( P or not Q ) or ( not P and
B. Ani
not Q )) or ( P or not Q ).
C. Ina
Ekspresi di atas akan bernilai False
D. Nia
jika nilai P dan Q adalah ...
E. Ian
A. P = True, Q = True
(SOAL OSN TINGKAT KABUPATEN TAHUN 2015)
B. P = True, Q = False
C. P = False, Q = True
2. Siapa yang memperoleh nilai terendah? D. P = False, Q = False
A. Ana E. Tidak memungkinkan ekspresi
B. Ani ber­ni­lai False.
C. Ina
(SOAL OSN TINGKAT KABUPATEN TAHUN 2014)
D. Nia
E. Ian
5. Pada perlombaan reli jarak jauh, ter-
(SOAL OSN TINGKAT KABUPATEN TAHUN 2015)
dapat 5 peserta dengan karakteristik
sebagai berikut:

23
Andy: kecepatan berkendara 100 memasuki perguruan tinggi, maka
km/jam, setiap 80 km, akan berhenti dia tidak memenuhi syarat mengikuti
cek mesin selama 45 menit IOI. Seseorang yang akan mengikuti
Budi: kecepatan berkendara 80 IOI harus mengikuti pelatnas. Cakra
km/jam, setiap 75 km, akan berhenti saat ini adalah mahasiswa dari uni­
cek mesin selama 30 menit ver­
sitas XX dan pernah mendapat
medali Emas OSN, Basith adalah
Cory: kecepatan berkendara 100
mahasiswa dari universitas YYY dan
km/jam, setiap 70 km, akan berhenti
pernah mengikuti pelatnas, sedang­
cek mesin selama 15 menit
kan Nathan adalah siswa SMA Z yang
Didy: kecepatan berkendara 80 pernah dapat medali perak IOI.
km/jam, setiap 65 km, akan berhenti Pernyataan:
cek mesin selama 12 menit
(I) Basith adalah anggota asosiasi
Erna: kecepatan berkendara 100 alumni TOKI.
km/jam, setiap 60 km, akan berhenti
(II) Cakra adalah alumni TOKI.
cek mesin selama 6 menit.
(III) Nathan pernah mengikuti pelat-
Siapakah pemenang perlom­ nas.
ba­
an internasional ini apabila jarak (IV) Cakra pernah mengikuti IOI.
tem­puh dari garis start hingga finish
Dari pernyataan­-pernyataan di
adalah 1000 km?
atas, manakah yang pasti benar?
A. Andy
A. I, IV
B. Budi
B. II, IV
C. Cory
C. II, III
D. Didy
D. I, III
E. Erna
E. I, II, III
(SOAL OSN TINGKAT KABUPATEN TAHUN 2013)
(SOAL OSN TINGKAT KABUPATEN TAHUN 2013)

6. Asosiasi TOKI merupakan organisasi


yang anggotanya alumni TOKI. Deskripsi untuk soal nomor 7 – 8!
Seseorang dapat disebut alumni TOKI Sebuah rombongan tour sedang me­
jika sudah tidak memenuhi syarat la­
ku­
kan perjalanan dengan mobil. Satu
mengikuti IOI dan pernah mengikuti mobil terdiri dari 7 orang peserta tur dan
pelatnas. Seseorang dapat mengikuti 1 orang sopir. Posisi duduk dalam mobil
pelatnas bila pernah mendapatkan tersebut dapat digambarkan seba­
gai
medali saat OSN. Jika seseorang telah berikut:
berusia lebih dari 21 tahun atau telah

24
1 Sopir paling belakang, dan G tidak duduk

234 di barisan paling depan, maka dapat


kita pastikan, bahwa orang yang du-
567
duk di posisi 1 adalah..
Nama­-nama peserta rombongan ter­ A. A
sebut adalah A, B, C, D, E, F, G. Susunan B. B
duduk peserta tur ini ditentukan oleh C. C
aturan­-aturan sebagai berikut: D. D
(I) G harus duduk di samping jendela E. E

(II) A­B merupakan sebuah pasangan di (SOAL OSN TINGKAT KABUPATEN TAHUN 2013)
mana mereka harus duduk bersebe-
lahan
Deskripsi untuk soal nomor 9 - 11!
(III) C paling suka duduk persis di be­la­
kang sopir Ada 4 orang yang diinterview me­ng­
enai penghasilannya. Sebut saja nama­
(IV) D­
-A sedang bermusuhan, sehingga
nya A, B, C, D dan profesi mereka E, F, G,
mereka tidak boleh duduk berde-
H. Setiap orang memberikan 2 pernya­
katan dan harus ada orang di antara
taan. Namun, pernyataan yang dapat
mereka berdua (baik secara horizon-
dipercaya hanyalah pernyataan yang
tal, vertikal, maupun diagonal)
membicarakan pekerjaan asli orang ter­
(V) F mabuk darat, sehingga tidak boleh
sebut.
duduk di barisan paling belakang
Pernyataan lain bisa benar maupun
7. Dari deskripsi soal di atas, jika E se­ salah.
dang ingin tidur, sehingga dia du­
Berikut pernyataan keempat orang
duk di sebelah jendela pada baris­an
tersebut:
paling belakang, maka ada berapa
kemung­
kinan posisi duduk yang (I) A: G memiliki penghasilan 3 kali li-
dapat dibentuk? pat dari penghasilan F. E memiliki
A. 3 penghasilan lebih besar daripada
B. 4 saya.
C. 6 (II) B: F memiliki penghasilan lebih be-
D. 5 sar daripada G. C pekerjaannya ada-
E. 8 lah H atau E.
(SOAL OSN TINGKAT KABUPATEN TAHUN 2013)
(III) C: Saya memiliki penghasilan lebih
besar daripada E. F memiliki peng-

8. Dari deskripsi soal di atas, jika E se- hasilan paling rendah.

dang ingin tidur, sehingga dia du-


duk di sebelah jendela pada barisan

25
(IV) D: G memiliki penghasilan 2 kali lipat mungkin ayam-ayam dalam satu
dari penghasilan F. Saya memiliki kandang jika setiap kandang pasti
penghasilan lebih besar daripada H. ada ayam di dalamnya?
A. 0
9. Siapakah yang perkerjaannya adalah
B. 3
E?
C. 2
A. A
D. 4
B. B
E. 6
C. C
D. D (SOAL OSN TINGKAT KABUPATEN TAHUN 2007)

E. Tidak ada

(SOAL OSN TINGKAT KABUPATEN TAHUN 2012) Deskripsi untuk soal nomor 13-17!

Si Ani adalah seorang anak yang suka


10. Apakah pekerjaan dari D? berubah-ubah suasana hatinya yang ter-
A. E nyata dipengaruhi cuaca pada malam ha-
B. F rinya.
C. G
a. Jika hari ini hatinya berseri-seri, dan
D. H
di malam hari nanti terjadi hujan
E. G atau H
maka besok ia pasti akan pemurung.
(SOAL OSN TINGKAT KABUPATEN TAHUN 2012) Kalau tidak, besoknya menjadi biasa-
biasa saja.
11. Manakah pernyataan berikut yang b. Jika hari ini biasa-biasa saja, kemu-
benar? dian malam hari tidak hujan maka
A. Jika A adalah seorang H, maka C besoknya berseri-seri kembali. Kalau
adalah seorang F turun hujan, besoknya menjadi apa-
B. Jika B adalah seorang F, maka C tis.
adalah seorang H c. Jika hari ini pemurung, lalu malam-
C. Jika C adalah seorang G, maka B nya tidak hujan, besoknya menjadi
adalah seorang H biasa-biasa saja. Kalau turun hujan,
D. Jika D adalah seorang E, maka C besoknya menjadi pemarah.
adalah seorang G d. Jika hari ini pemarah, lalu malamnya
E. Jika A adalah seorang H, maka D turun hujan ia menjadi apatis kee-
adalah seorang E sokan harinya. Kalau tidak, ia menja-
(SOAL OSN TINGKAT KABUPATEN TAHUN 2012) di biasa-biasa saja.
e. Jika hari ini apatis, lalu malamnya tu-
12. Enam ekor ayam masuk ke dalam 3 run hujan besoknya ia menjadi pe-
murung. Kalau tidak, ia menjadi ber-
buah kandang yang semula kosong.
seri-seri kembali.
Berapa jumlah maksimum yang

26
13. Jika hari ini biasa-biasa saja lalu 4 16. Jika hari ini apatis dan diketahui 4
malam berturut-turut turun hujan malam terakhir hujan terus, maka
kecuali malam ke 3 tidak turun hujan, bagaimanakah suasana hatinya pada
bagaimanakah suasana hatinya pada hari 4 hari yang lalu?
hari berikutnya setelah 4 malam A. Pasti pemurung
tersebut? B. Selain apatis, mungkin juga ber-
A. Pemurung seri
B. Pemarah C. Selain berseri, mungkin juga bi-
C. Berseri-seri asa-biasa saja
D. Biasa-biasa saja D. Tidak mungkin terjadi
E. Apatis E. Selain biasa-biasa saja, mungkin
juga pemarah
(SOAL OSN TINGKAT KABUPATEN TAHUN 2007)
(SOAL OSN TINGKAT KABUPATEN TAHUN 2007)

14. Jika hari ini berseri-seri kemudian 7


malam berturut-turut hujan, maka 17. Jika hari ini pemarah dan diketahui
bagaimanakah hari berikutnya? 4 malam terakhir hujan terus, maka
A. Pemurung bagaimana suasana hatinya pada
B. Pemarah hari 4 hari yang lalu?
C. Berseri-seri A. Pasti pemurung
D. Biasa-biasa saja B. Selain apatis, mungkin juga ber-
E. Apatis seri
C. Selain berseri, mungkin juga
(SOAL OSN TINGKAT KABUPATEN TAHUN 2007)
biasa-biasa saja
D. Tidak mungkin terjadi
15. Jika hari ini pemurung dan diketahui
E. Selain biasa-biasa saja, mungkin
4 malam terakhir hujan terus, maka
juga pemarah
bagaimanakah suasana hatinya pada
hari 4 hari yang lalu? (SOAL OSN TINGKAT KABUPATEN TAHUN 2007)

A. Pasti pemurung
B. Selain apatis, mungkin juga ber- Deskripsi untuk soal nomor 18 - 19
seri
Seorang salesman atau petugas pe­
C. Selain berseri, mungkin juga bi-
ma­saran suatu perusahaan minuman
asa-biasa saja
ha­
rus mengunjungi 5 warung untuk
D. Tidak mungkin terjadi
mem­ per­kenalkan produk minuman ter­
E. Selain biasa-biasa, mungkin juga
baru. Kelima warung tersebut adalah: P,
pemarah.
Q, R, S, dan T. Dia hanya akan mengun­
(SOAL OSN TINGKAT KABUPATEN TAHUN 2007)
jungi masing-masing satu kali saja, satu

27
warung per hari, Senin sampai dengan A. Senin
Jumat, dengan aturan berikut: B. Selasa
C. Kamis
a. Tidak boleh mengunjungi warung R
D. Jum’at
pada hari Senin.
E. Minggu
b. Harus mengunjungi warung P sebe­
lum mengunjungi S. (SOAL OSN TINGKAT KABUPATEN TAHUN 2007)
c. Harus mengunjungi warung Q sebe-
lum mengunjungi T.
Deskripsi untuk soal nomor 21 - 22!
18. Mana jadwal yang memenuhi syarat? Enam (6) orang siswa menerima
A. Q, S, P, T, R hadiah sesuai berdasarkan nilai hasil ujian
B. R, Q, T, P, S Matematika dan ujian Fisika mereka. Nilai
C. R, S, P, Q, T tertinggi yaitu Rp6000 diberikan pada
D. T, R, Q, P, S nilai terbaik, kemudian berturut-turut
E. P, S, R, Q, T Rp5000, Rp4000, dan seterusnya pada
(SOAL OSN TINGKAT KABUPATEN TAHUN 2011) nilai terbaik kedua, ketiga, hingga terakhir
yang juga menerima Rp1000.
19. Jika ia mengunjungi R lebih dahulu Dari kedua hasil ujian masing-masing
daripada P, mana yang pasti benar? dipastikan setiap siswa mendapatkan
A. Q dikunjungi pertama kali hadiah dari masing-masing mata ujian.
B. R dikunjungi pada hari Selasa
Siapa mendapat berapa tidak dije-
C. P dikunjungi pada hari Rabu
laskan, yang diketahui adalah informasi
D. T dikunjungi pada hari Kamis
yang menyatakan bahwa:
E. S dikunjungi terakhir kali
Nilai Matematika Gina lebih besar
(SOAL OSN TINGKAT KABUPATEN TAHUN 2011)
dari Mira sementara nilai Fisika Gina lebih
kecil dari Bunga
20. Seorang anak bernama Joko sering
berbohong. Dia hanya jujur sehari Nilai Matematika Heni lebih besar
dalam seminggu. Satu hari dia dari Gina dan nilai Fisika Heni lebih kecil
berkata: “Aku berbohong pada Senin dari Lina
dan Selasa”. Pada hari selanjutnya Nilai Matematika Cici lebih kecil Gina
dia berkata: “Hari ini adalah salah tetapi nilai Fisika Cici lebih besar dari Gina
satu dari hari Minggu, Sabtu atau Nilai Matematika Mira lebih besar
Kamis”. Pada hari selanjutnya dia dari Lina dan nilai Fisika Mira lebih besar
berkata: “Aku berbohong pada Jumat dari Cici.
dan Rabu”. Pada hari apa dia berkata
Nilai Fisika Lina lebih kecil dari Gina.
jujur?

28
21. Dari informasi tersebut, banyaknya Jika hari ini ia berada di kota A maka be-
siswa yang dapat dipastikan tidak soknya ia akan pergi ke kota B atau D. Jika
menerima Rp6000 dari sekurangnya hari ini ia berada di kota B maka besoknya
satu mata ujian apa saja adalah ... ia akan pergi ke kota D atau E. Jika hari
A. 1 ini ia berada di kota C maka besoknya ia
B. 4 pergi ke kota D atau F. Jika hari ini ia ber-
C. 2 ada di kota D maka besoknya ia pergi ke
D. 3 kota E atau F. Jika hari ini ia berada di kota
E. 5 E maka besoknya ia pergi ke kota A atau
C. Jika hari ini ia berada di kota F maka
(SOAL OSN TINGKAT KABUPATEN 2009)
besoknya ia pergi ke kota B atau E.

22. Dari informasi tersebut, siapakah di


24. Pada suatu hari ia berada di kota A,
antara mereka yang dapat dipastikan
berapa harikah yang ia perlukan pa­
menerima total hadiah lebih besar
ling sedikitnya agar ia dapat ber­ada
dari Lina?
di kota A kembali dengan syarat ia
A. Hanya Gina
harus sempat melalui C minimal satu
B. Hanya Mira
kali?
C. Hanya Gina dan Heni
A. 7
D. Hanya Gina dan Mira
B. 6
E. Gina, Mira dan Heni
C. 3
(SOAL OSN TINGKAT KABUPATEN 2009) D. 8
E. 4
23. Siapakah di antara nama-nama ber-
(SOAL OSN TINGKAT KABUPATEN 2009)
ikut ini yang menerima total hadiah
paling besar?
25. Jika ia dari A kemudian selanjutnya ia
A. Cici
memutuskan tidak akan pernah kem-
B. Gina
bali ke kota A dan tidak akan pernah
C. Heni
pergi ke kota F, maka 5 hari kemudi-
D. Lina
an di kota-kota manakah ia mungkin
E. Mira
akan berada?
(SOAL OSN TINGKAT KABUPATEN 2009) A. E dan B
B. E dan C
Deskripsi soal untuk nomor 24-27! C. D dan C
D. D dan E
Seorang pengelana berkeliling dari
E. B dan C
satu kota ke kota lain. Kota-kota yang da-
pat dikunjungi adalah A, B, C, D, E, dan (SOAL OSN TINGKAT KABUPATEN 2009)

F. Ia menentukan aturan sebagai berikut.

29
26. Pada suatu hari ia berada di kota A, 3 28. Berapa jam minimal untuk meny­

hari kemudian ia berada di kota-kota lesaikan seluruh aktivitas tersebut?
ini, kecuali? A. 2 jam
A. F B. 3 jam
B. A C. 5 jam
C. E D. 4 jam
D. D E. 1 jam
E. C (SOAL OSN TINGKAT KABUPATEN 2007)
(SOAL OSN TINGKAT KABUPATEN 2009)
29. Aktivitas manakah yang boleh diker-
27. Jika pada hari Minggu ia berada di A jakan bersama-sama?
kemudian selanjutnya 2 hari kemu­ A. a dan b
dian (hari Selasa) tidak berada di F B. b dan c
dan besoknya lagi (hari Rabu) tidak C. a dan c
berada di C, kota manakah dari D. d dan e
berikut ini ia tidak akan mungkin E. b dan e
berada hari Kamis keesokan harinya? (SOAL OSN TINGKAT KABUPATEN 2007)
A. B
B. D 30. Aktivitas manakah yang dikerjakan
C. E pada urutan ke-3 (atau jam ke 3)?
D. F A. a
E. C B. b
(SOAL OSN TINGKAT KABUPATEN 2009) C. c
D. d
E. e
Deskripsi berikut ini adalah untuk menjawab
pertanyaan nomor 28 s.d 30! (SOAL OSN TINGKAT KABUPATEN 2007)

Suatu proyek terdiri atas 5 aktivitas:


a, b, c, d, dan e. Aktivitas a harus
dikerjakan sebelum b, aktivitas c harus
dikerjakan setelah d dan e, aktivitas d
harus dikerjakan sebelum e dan setelah a
dan aktivitas e harus dikerjakan sebelum
b. Beberapa aktivitas boleh dikerjakan
bersamaan. Setiap aktivitas memerlukan
waktu pengerjaan 1 jam.

30
SOAL OSN TINGKAT PROVINSI biji catur paling banyak yang bisa
ditempatkan? (untuk persoalan ini
1. Jika a, b, c, d dan e adalah bilangan-
tidak dipedulikan jenis dan warna biji
bilangan cacah (0, 1, 2, ...) dan
caturnya)
diketahui pula a + b + c + d + e = 15.
A. 4
Berapakah banyaknya kemungkinan B. 5
nilai-nilai kelima bilangan tersebut C. 6
dapat dibuat jika a+b harus sama D. 7
dengan 5 dan setiap bilangan boleh E. 8
digunakan lebih dari satu kali?
(SOAL OSN TINGKAT PROVINSI TAHUN 2018)
A. 456
B. 396
4. Seorang wanita menerima warisan
C. 457
sebesar ⅓ dari harta suaminya
D. 399
seorang pengusaha yang meninggal
E. 400
dunia karena kecelakaan pesawat.
(SOAL OSN TINGKAT PROVINSI TAHUN 2018)
Tiga orang anaknya juga menerima
masing-masing ⅓ dari sisanya. Jika
2. Dalam suatu deret bilangan bulat
jumlah yang diterima wanita tersebut
{xi, i> 0}, xi+1= 2 xi. (bilangan
dan salah seorang anaknya adalah
berikutnya = dua kali bilangan
Rp10 milyar, berapakah total harta
sebelumnya). Jika jumlah sebelas
yang ditinggalkan oleh pengusaha
bilangan pertama berurutan adalah
tersebut?
14329 maka bilangan ke-15 adalah.....
A. 12
A. 114688
B. 18
B. 118899
C. 14
C. 128868
D. 16
D. 139988
E. 17
E. 118000
(SOAL OSN TINGKAT PROVINSI TAHUN 2011
(SOAL OSN TINGKAT PROVINSI TAHUN 2018)

5. Panitia penyelenggara OSN bagian


3. Sejumlah biji catur hendak ditempat­
akomodasi mengatur penempatan
kan pada papan catur dengan syarat,
para delegasi wakil-wakil provinsi di
tidak ada biji catur pada baris ( jalur
sebuah hotel. Delegasi-delegasi itu
horizontal) yang sama, tidak ada biji
masing-masing dengan anggota yang
catur pada kolom ( jalur vertikal) yang
jumlahnya bervariasi, dan rencana ke-
sama, dan tidak ada biji catur pada
datangannya pun tidak bersamaan.
kedua diagonalnya. Ukuran papan
Para anggota delegasi yang sama
catur 8 baris 8 kolom. Berapa jumlah

31
diasumsikan datang bersamaan. Deskripsi berikut adalah untuk menjawab
Karena jumlah kamar di hotel itu agak pertanyaan no 6 dan 7
terbatas, panitia menetapkan suatu Terdapat N buah lampu b1, b2, …bn
pengaturan. Selama kamar-kamar dan tombolnya masing-masing di bawah
kosong masih tersedia, setiap kamar setiap lampu itu. Tombol itu berperilaku
kosong ditempati oleh dua orang dari aneh, jika tombol suatu lampu bi ditekan
delegasi yang sama. Jika jumlahnya sekali, lampu bi berubah dari mati
ganjil, yang satu orang itu akan menjadi terang atau dari terang menjadi
ditentukan belakangan setelah yang mati. Selain itu, ada beberapa lampu
berdua-berdua selesai ditempatkan. yang ikut berubah, mati menjadi terang
Selama masih ada kamar kosong, atau terang menjadi mati. Hubungan
yang satu orang itu pun ditempatkan lampu-lampu lain yang ikut berubah
di kamar yang kosong. Saat tidak ada dinyatakan dengan relasi (i, j). Jika relasi
kamar kosong tesisa, setiap orang (i, j) itu ada, maka penekanan tombol di
yang baru datang akan ditempatkan bi akan berdampak juga pada lampu di
di kamar yang baru ditempati bj selain bi itu sendiri, dan sebaliknya,
sendirian. Jika ada beberapa pilihan penekanan tombol di bj berdampak juga
kamar kosong, selalu dipilih kamar pada lampu di bi.
dengan nomor yang paling kecil. Jika
6. Ada 5 buah lampu: b1, b2, b3, b4 ,
tidak ada lagi kamar kosong, tapi ada
dan b5, dan terdapat relasi (1, 2),
beberapa kamar yang masih satu
(1, 5), (2, 3), (2, 4), (3, 5), (4, 5). Jika
orang, juga dipilih mulai dari kamar
mula-mula seluruh lampu mati, apa
dengan nomor terkecil. Sekarang
yang terjadi dengan b1 dan b2 jika
anda ketahui ada 8 kamar di hotel itu
dilakukan penekanan berturut-turut
dan ada 8 delegasi yang akan datang
pada tombol-tombol b1, b2, dan b3,
yang jumlahnya berturut-turut sesuai
dan b5, masing-masing sekali?
dengan urutan waktu kedatangan
A. Keduanya mati,
adalah 3, 1, 3, 2, 1, 3, 2, 1. Jika kamar
B. Keduanya terang,
dinomori dari 1 sampai dengan 8,
C. B1 terang dan b2 mati, atau
dan delegasi dinomori sesuai dengan
D. Mati dan b2 terang
urutan kedatangan dari 1 sampai 8,
E. B5 mati dan terang
dengan siapakah anggota delegasi
(SOAL OSN TINGKAT PROVINSI TAHUN 2010)
provinsi ke 8 akan sekamar?
A. 3 D. 2
B. 4 E. 5 7. Jika mula-mula seluruh lampu mati,
C. 7 tuliskan berapa banyak penekanan
dilakukan sesedikit-sedikitnya untuk
(SOAL OSN TINGKAT PROVINSI TAHUN 2011)

32
membuat semua lampu menjadi Deskripsi untuk soal nomor 9
terang? Suatu papan catur N x N setiapnya
A. 1 berisi bilangan nonnegatif. Di awal suatu
B. 2 bidak berada kotak (1, 1) atau yang di
C. 3 pojok kiri atas. Berikutnya secara berulang
D. 4 bidak dapat dipindahkan (1) horizontal
E. 5 ke kanan, atau (2) vertikal ke bawah
(SOAL OSN TINGKAT PROVINSI TAHUN 2010) sekian kotak sebanyak dengan bilangan
pada kotak terakhir bidak itu berada,
8. A dan B melakukan permainan batu. kecuali kalau membawa bidak keluar
Terdapat N buah tumpukan batu. Di dari papan. Tujuan akhir adalah kotak (N,
bagian bawah tumpukan terdapat N) atau yang pojok kanan bawah. Bila
kertas bertuliskan suatu bilangan bilangan terakhir adalah 0 dan bukan di
bulat positif menyatakan nilai pojok maka bidak berhenti (tidak dapat
tumpukan. Setiap pemain bergantian melanjutkan langkah kecuali kalau sudah
mengambil satu batu. Setiap pemain mencapai tujuan).
yang mengambil batu terakhir dari
9. Untuk papan catur berukuran 4x4
suatu tumpukan akan mendapatkan
berikut ini temukanlah ada berapa
skor sebesar nilai tumpukan ybs. Di
lintasan langkah-langkah yang ber­
awal permainan, jumlah batu setiap
be­
da untuk membawa bidak dari
susunan diketahui, dan nilai-nilai
posisi awal (kotak (1, 1)) ke tujuan
tumpukannya juga diketahui.
(kotak (4, 4)).
No tumpukan 1 2 3 4
Nilai tumpukan 5 4 15 457
Jumlah batu
2 3 1 5
pada tumpukan
Ada 4 tumpukan seperti pada tabel
di atas. A hendak melakukan langkah
pertama kalinya. Dengan asumsi B A. 6
adalah pemain yang tidak pernah me­ B. 7
lakukan kesalahan dalam memilih C. 3
langkahnya, hitunglah berapa skor akhir D. 4
maksimum yang dapat ia kumpulkan. E. 5
A. 481 D. 484
B. 482 E. 485
C. 483

(SOAL OSN TINGKAT PROVINSI TAHUN 2012)

33
Deskripsi untuk soal nomor 10 - 12 12. Supaya semakin lebih mudah untuk
Pak Umar menaruh barang berharga­ diingatnya, maklum makin hari tam­
nya di sebuah brankas (lemari besi) dengan bah pelupa saja, Pak Umar mensetnya
kunci kombinasi 7 digit setiap digit adalah kembali sedemikian rupa sehingga
bilangan 0 sampai dengan 9. bilangan-bilangan itu tidak ada
yang sama dan meningkat harganya
10. Suatu ketika Pak Umar mengatur dari kiri ke kanan. Ada berapa ke­
kom­
bi­
nasinya sedemikian rupa se­ mungkinan kombinasi?
hingga tidak ada digit yang digu­ A. 140
nakan berulang (setiap digit mak­ B. 130
simum satu kali). Suatu ketika ia lupa C. 120
bilangan kombinasi tersebut dan D. 150
meminta Anda untuk mencoba-coba E. 160
berbagai kemungkinan. Ada berapa (SOAL OSN TINGKAT PROVINSI TAHUN 2010)
kemungkinan kombinasi yang mung­
kin Anda harus coba?
Deskripsi untuk soal nomor 13 - 14
A. 604800
B. 606700 Dalam satu keluarga tedapat 8
C. 605900 saudara kandung, mereka adalah S, T, U
D. 604300 V, W, X, Y dan Z. Urutan nama ini tidak
E. 405900 berarti menunjukkan urutan umur, yang
diketahui, orang tua mereka melahirkan
(SOAL OSN TINGKAT PROVINSI TAHUN 2010)
anak-anak itu dengan perbedaan hanya
1 tahun berturut-turut. Diketahui juga
11. Supaya tidak mudah kelupaan lagi
bahwa:
ia men-set 3 digit berharga 0 (tidak
tahu digit yang mana!) dan lainnya ᪢᪢ Umur W lebih tua 4 tahun dari Z dan
seperti sebelumnya maksimum ha­ 3 tahun lebih muda dari X
nya muncul 1 kali dalam kode (kecuali ᪢᪢ Sementara itu, S lebih tua dari T, dan
yang 0 tsb). Anda berancang-ancang lebih muda dari X
᪢᪢ Umur U adalah umur rata-rata dari
kalau suatu ketika Pak Umar lupa
umur V dan X
kembali maka Anda berhitung ada
berapa kemungkinan kombinasi 13. Jika yang paling muda diketahui
yang nanti harus dicoba. berumur 8, berapakah umur W?
A. 90589 D. 904400 A. 14 D. 12
B. 104700 E. 105840 B. 16 E. 19
C. 89100 C. 17
(SOAL OSN TINGKAT PROVINSI TAHUN 2010) (SOAL OSN TINGKAT PROVINSI TAHUN 2010)

34
14. Jika V lebih muda dari W, manakah nya dengan mengacak huruf-huruf
urutan yang paling mungkin dari pada namanya, yaitu ‘D’, ‘E’, ‘N’, ‘G’,
pilihan di bawah ini jika diurutkan ‘K’, ‘L’, ‘E’, dan ‘K’. Suatu ketika ia
mulai dari yang tertua hingga yang lupa password komputernya, dan
termuda? memutuskan untuk mencoba semua
A. X, S, U, W, V, T, Y, Z kemungkinan pengacakan yang ada
B. X, S, T, W, V, U, Y, Z tanpa pengulangan. Berapakah waktu
C. Z, S, T, W, U, V, Y, X yang dibutuhkan untuk mencoba
D. X, T, S, V, W, U, Z, Y semua kemungkinan pengacakan
E. X, U, S, T, W, V, Y, Z tersebut, jika sekali mencoba suatu
(SOAL OSN TINGKAT PROVINSI TAHUN 2010) kemungkinan membutuhkan waktu
10 detik?
15. Selisih jumlah umur Barnie dan A. 100800 detik
Jecky 6 tahun yang lalu dan jumlah B. 110900 detik
umur Barnie dan Jecky 5 tahun yang C. 100900 detik
akan datang merupakan dua kali D. 120300 detik
dari selisih umur Zeta 6 tahun yang E. 140800 detik

lalu dan 5 tahun yang akan datang. (SOAL OSN TINGKAT PROVINSI TAHUN 2012)
Selisih umur Barnie dan Zeta adalah
31. Jumlah umur Jecky dan Zeta 1 17. Sebuah slot machine memiliki tiga
tahun yang lalu adalah 70. Umur roda undi. Di setiap roda ada 4
Jecky 7 tahun yang lalu merupakan simbol, yaitu A, B, C, dan D. Setiap
dua kali dari umur Barnie 7 tahun kali pengguna menarik tuas, ketiga
yang lalu. Selain itu, diketahui umur roda undi akan berputar dan masing-
Barinie, Jecky, dan Zeta saat ini masing roda berhenti di suatu simbol
adalah bilangan bulat. Berapa jumlah tertentu. Pengguna akan menang jika
umur Barnie, Jecky, dan Zeta 3 tahun ketiga simbol yang ditunjukkan roda
yang lalu? undi semuanya sama. Berapakah pe­
A. 25 luang pengguna untuk menang di
B. 48 slot machine ini?
C. 39 A. 1/14
D. 60 B. 1/15
E. 79 C. 1/16
(SOAL OSN TINGKAT PROVINSI TAHUN 2012)
D. 1/17
E. 1/18

16. Agar mudah diingat, Pak Dengklek (SOAL OSN TINGKAT PROVINSI TAHUN 2010)
membuat password untuk komputer­

35
18. Pak Dengklek memiliki 1000 buah na tikus-tikus tersebut sangat lapar,
kartu. Setiap kartu terdiri dari dua mereka mulai memakan sesamanya.
sisi yang tampak identik. Pada kedua Seekor tikus akan memakan seekor
sisi setiap kartu, Pak Dengklek dapat tikus setiap minggu untuk bertahan
memilih untuk menuliskan sebuah hidup. Bila seekor tikus tidak bisa ma-
angka, atau tidak menuliskan apa- kan seekor tikus yang lain, maka tikus
apa. Seribu buah kartu tersebut tersebut akan mati. Tikus yang masih
diletakkan oleh Pak Dengklek di atas hidup setelah 5 minggu berlalu sejak
meja, sehingga Anda dapat melihat Gnegus meletakkan tikus-tikus terse-
bahwa pada sisi yang terbuka, semua but di dalam kotak berjumlah ...
kartu telah ditulisi angka yang A. 7 tikus
B. 3 tikus
berbeda, mulai dari 1 hingga 1000.
C. 5 tikus
Anda tidak dapat melihat sisi yang
D. 25 tikus
tertutup. Pak Dengklek mengatakan
E. 12 tikus
bahwa: “Jika pada satu sisi kartu
tertulis bilangan ganjil, maka pada (SOAL OSN TINGKAT PROVINSI TAHUN 2010)

sisi lainnya pasti tertulis bilangan


yang habis dibagi 3, DAN jika satu 20. Terdapat 8 buah jeruk dan 3 buah apel.
sisi sebuah kartu tidak terdapat Buah-buah tersebut akan diletakkan
tulisan apa-apa (kosong), maka pada pada suatu garis lurus. Tetapi 2 apel
sisi lainnya pasti tertulis bilangan tidak boleh bersebelahan satu sama
yang habis dibagi 5”. Berapa minimal lain. Banyak kemungkinan meletak­
kartu yang harus Anda balik untuk kan buah-buah tersebut?
mengetahui apakah Pak Dengklek A. 84
berkata benar atau tidak? B. 86
A. 785 kartu C. 89
B. 595 kartu D. 87
C. 789 kartu E. 90
D. 897 kartu (SOAL OSN TINGKAT PROVINSI TAHUN 2010)
E. 967 kartu

(SOAL OSN TINGKAT PROVINSI TAHUN 2010) 21. Garis merupakan jalan, sedangkan
ang­
ka merupakan nomor rumah.
19. Gnegus berhasil menangkap 100 ekor Pen­
du­
duk di perumahan tersebut
tikus yang selalu mencuri makanan- suka memberi hadiah kepada tetang­
nya. Karena dia kesal, dia bergumam ga spesialnya. Tetangga spesial ada­
“I want to play a game”. Tikus-tikus lah nomor rumah yang terdapat di
tersebut diletakkan di dalam satu ko- seberang jalan yang memisahkan
tak, tanpa diberikan makanan. Kare- kedua­nya dan lebih dekat ke rumah

36
Pak RT dibanding dengan dirinya. 23. Empat pasang suami istri sedang
Rumah Pak RT adalah rumah ber­ mengadakan pesta. Di antaranya adalah
nomor 1. Contoh: tetangga spesial Adam, Budi, Chandra, Dani, Enni, Fitri,
dari 28 adalah 11, tetangga spesial Gina, dan Hanny. Mereka kemudian
dari 16 adalah 5, tetangga spesial dari dipasangkan menjadi 4 pasang untuk
18 adalah 5. Tentu saja tidak semua mengadakan permainan catur.
rumah memiliki tetangga spesial, Budi vs Enni
contohnya rumah nomor 1, 3, 17, dll.
Siapakah tetangga spesial dari 99? Adam vs istrinya Chandra
A. 64 Fitri vs suaminya Gina
B. 75
Dani vs istrinya Adam
C. 67
D. 65 Gina vs suaminya Enni
E. 76 Catatan: Adam, Budi, Chandra,
(SOAL OSN TINGKAT PROVINSI TAHUN 2010)
Dani adalah laki-laki dan Enni, Fitri,
Gina, Hanny adalah wanita.

22. Terdapat kurs mata uang di Planet Dalam setiap pasang suami istri,
Bebek sebagai berikut: sang suami pasti laki-laki dan sang
1 dolar A = 2 dolar B istri pasti wanita.

1 dolar A = 1.8 dolar C Dari pernyataan di atas maka istri


Budi adalah ...
1 dolar A = 2.5 dolar D
A. Enni
1 dolar B = 0.5 dolar C
B. Fittri
1 dolar B = 1.3 dolar D C. Gina
1 dolar C = 1.5 dolar D D. Hanny
E. Tidak ada
Bemi ingin menukarkan 1000
dolar A ke dolar D. Berapa uang mak- (SOAL OSN TINGKAT PROVINSI TAHUN 2010)

simal hasil penukaran uang yang da-


pat diperoleh Bemi? 24. Besok, Raja Dengklek akan menga-
dakan pesta yang sangat besar. Raja
A. 2700 dolar
Dengklek telah memesan 2013 botol
B. 2800 dolar
anggur untuk pestanya tersebut. Na-
C. 2900 dolar
mun berdasarkan laporan, salah satu
D. 3000 dolar
dari botol anggur tersebut telah di-
E. 3100 dolar
beri racun. Racun ini diketahui tidak
(SOAL OSN TINGKAT PROVINSI TAHUN 2010)
akan menunjukkan tanda-tanda ke-
racunan sampai orang yang memi-

37
numnya mati. Kematian terjadi anta- bukan hari Kamis maupun Senin.
ra 13-20 jam setelah racun terminum, Kemarin saya berkata bohong. Kema­
walaupun hanya terminum setetes. rin adalah hari Minggu”. Pada hari
Raja Dengklek memiliki 2013 orang apakah Kudo bertemu Heru?
tahanan yang rencananya akan di- A. Senin
eksekusi. Raja Dengklek harus ber- B. Selasa
hasil menemukan botol anggur yang C. Rabu
mengandung racun tersebut dalam D. Kamis
waktu 24 jam. Berapa minimal ba- E. Jumat
nyaknya tahanan yang harus minum (SOAL OSN TINGKAT PRIVINSI TAHUN 2011)
dari botol-botol anggur yang ada
untuk memastikan botol mana yang 26. Terdapat 4 orang yang sedang
mengandung racun? berbicara satu sama lain sebagai
A. 9 orang berikut. Diketahui beberapa orang
B. 8 orang berbohong dan yang lainnya berkata
C. 11 orang jujur.
D. 7 orang
A: Terdapat maksimal 1 orang yang
E. 17 orang
berbohong.
(SOAL OSN TINGKAT PROVINSI TAHUN 2010)
B: Terdapat minimal 2 orang yang
berbohong.
25. Heru selalu berkata jujur pada hari
Senin, Selasa, dan Rabu. Heru selalu C: Terdapat maksimal 3 orang yang
berkata bohong pada hari Kamis, berbohong.
Jumat, dan Sabtu. Pada hari Minggu, D: Terdapat minimal 4 orang yang
ia bisa berkata jujur atau bohong. berbohong.
Pada suatu hari, teman Heru, yang
Siapa sajakah orang-orang yang
bernaman Kudo ingin menanyakan
berbohong?
suatu informasi yang penting pada
Heru. Sayangnya, Kudo lupa melihat A. A dan D
B. B dan C
kalender sehingga lupa tanggal
C. C saja
dan hari pada saat itu. Tentu saja
D. D saja
Kudo yang cerdas tidak langsung
E. B, C dan D
menanyakan pertanyaannya pada
Heru. Setelah Kudo menanyakan (SOAL OSN TINGKAT PROVINSI TAHUN 2017)

beberapa pertanyaan, Heru menja­


wab, “Hari ini saya sedang berkata
jujur, begitu pula esok hari. Hari ini

38
Berikut ini merupakan deskripsi untuk soal A. 8 D. 15
no 27 dan 28 B. 9 E. 7
Untuk p, q dan r yang berupa variabel C. 10
boolean dan diberikan daftar simbol (SOAL OSN TINGKAT PROVINSI TAHUN 2017)
operator sebagai berikut:
Simbol 29. Diketahui empat premis (asumsi)
Arti Hasil
operator sebagai berikut:
^ And Benar, jika kedua
P ^ ~Q -> R ^ S
operan benar
v Or Benar, jika sa- K -> G
lah satu operan
benar ~P -> K
xor Xor Salah, jika kedua L -> -Q
opeartor benar
à Jika Salah, jika benar- Tentukan nilai dari G dan L agar R
maka >salah bisa dipastikan benar!
ó Jika dan Benar, jika benar
hanya ó benar atau A. G true dan L true
jika salah ó salah B. G false dan L true
Selanjutnya diberikan 2 pernyataan C. G false dan L false
logika sebagai berikut: D. L true
E. G false
p <=> (((q ^ (p v q)) -> ((q xor r) <=> (q
v ~r))) v p) (SOAL OSN TINGKAT PROVINSI TAHUN 2018)

q <=> ((q ^ (r v q)) -> ((p xor q xor r) ->


30. Iwan selalu berbohong pada hari
(q ^ (q v ~q))))
Senin, Selasa, Rabu dan berkata jujur
27. Ada berapa kombinasi (p, q, r) pada hari-hari lainnya. Di lain pihak
s­ehingga kedua pernyataan logika di Budi selalu berbohong pada hari
atas benar? Kamis, Jumat, Sabtu dan berkata
A. 5 D. 7 jujur pada hari-hari lainnya. Pada
B. 4 E. 6 suatu hari terjadi percakapan berikut:
C. 3 Iwan: “Kemarin saya berbohong”

(SOAL OSN TINGKAT PROVINSI TAHUN 2017) Budi: “Saya juga”

Pada hari apa percakapan terse­


28. Jika s <=> ((p -> (q -> (r -> s))) -> but terjadi?
(s -> (r -> (q -> p))))), maka ada
A. Senin D. Kamis
berapakah kombinasi (p, q, r, s)
B. Selasa E. Jumat
sehingga ketiga pernyataan logika
C. Rabu
tersebut terpenuhi?
(SOAL OSN TINGKAT PROVINSI TAHUN 2018)

39
SOAL OSN TINGKAT NASIONAL berhasil mem­
buka pintu masuk, Pak
Dengklek memiliki dua pilihan:
Deskripsi untuk soal no 1 – 5! Kabur melewati penjaga. Pilihan ini
Pak Dengklek baru saja mendapatkan membutuhkan waktu K[i]. Mengalahkan
informasi bahwa sebuah makhluk ja­ penjaga. Pilihan ini membutuhkan wak-
hat tengah menyusun rencana untuk tu L[i]. Setelah itu, stamina Pak Dengklek
menaklukkan Pekanbaru! Pak Dengklek akan bertambah sebanyak 1.
tidak tinggal diam dan berinisiatif un­ Jika Pak Dengklek berhasil mencapai
tuk mengalahkan sang makhluk jahat lantai ke-N, Pak Dengklek akan menghadapi
sebelum ia menyerang Pekanbaru. sang makhluk jahat. Pak Dengklek dapat
Sang makhluk jahat bersembunyi mengalahkan sang makhluk jahat jika
di markas rahasianya yang berbentuk staminanya saat mencapai lantai ke-N
menara dengan N lantai, yang dinomori paling sedikit sebesar stamina sang
dari 1 (paling bawah) hingga N (paling makhluk jahat, yakni S. Format Masukan
atas). Sang makhluk jahat berada di lantai Baris pertama akan berisi label kasus uji.
ke-N. Untuk mencapai lantai tersebut, Label kasus uji adalah sebuah string yang
Pak Dengklek harus memulai dari lantai dijelaskan sebagai berikut:
ke-1, kemudian naik satu-persatu hingga Panjang string tersebut adalah
akhirnya mencapai lantai ke-N. banyaknya subsoal ditambah satu. Karakter
Pada awalnya, Pak Dengklek memiliki ke-0 (indeks dimulai dari 0) akan berisi 0
stamina sebesar S. Stamina sang makh­ jika kasus uji tersebut merupakan contoh
luk jahat adalah S. Pak Dengklek bisa me­ kasus uji, atau berisi ‘.’ (titik) jika bukan.
ningkatkan staminanya dengan menga­ Untuk setiap nilai i di antara 1 hingga
lahkan penjaga-penjaga, seperti yang banyaknya subsoal, berlaku: jika kasus uji
akan dijelaskan selanjutnya. tersebut memenuhi batasan subsoal ke-i,
maka karakter ke-i berisi i, atau jika kasus
Semua lantai kecuali lantai teratas
uji tersebut tidak memenuhi batasan
(yakni, semua lantai ke-i yang memenuhi
subsoal ke-i, maka karakter ke-i berisi
i < N) memiliki tepat satu pintu masuk
karakter ‘.’ (titik). Sebagai contoh apabila
dan satu penjaga. Untuk memasuki lantai
label sebuah kasus uji sebuah soal adalah
ke-i, Pak Dengklek harus membuka pintu
0..345 , maka: Soal tersebut memiliki 5 buah
masuk pada lantai ke-i terlebih dahulu.
subsoal, Kasus uji tersebut merupakan
Untuk melakukan hal tersebut, Pak
contoh kasus uji, dan Kasus uji tesebut
Dengklek harus memiliki stamina paling
memenuhi batasan subsoal ke-3, ke-4, dan
sedikit P[i]. (Jika stamina Pak Dengklek
ke-5. Baris kedua berisi tiga buah bilangan
saat itu kurang dari P[i], maka misi Pak
bulat N, S , dan S . N - 1 baris berikutnya
Dengklek langsung gagal.) Setelah
masing-masing berisi tiga buah bilangan
bulat. Baris ke-i berisi P[i], K[i], dan L[i].

40
Format Keluaran Sebuah baris berisi waktu Contoh Masukan 2
tercepat yang diperlukan Pak Dengkek
0..34..7
untuk mengalahkan sang makhluk jahat,
714
atau -1 jika Pak Dengklek tidak mungkin
035
mengalahkan sang makhluk jahat. Pada
032
contoh masukan pertama, salah satu cara
112
ter­
cepat yang mungkin Pak Dengklek
042
lakukan untuk mengalahkan sang makhluk
613
jahat adalah sebagai berikut: Pada awalnya,
042
stamina Pak Dengklek adalah 1. Di lantai 1,
Pak Dengklek melewati penjaga. Di lantai Contoh Keluaran 2
2, Pak Dengklek mengalahkan penjaga, lalu -1
staminanya bertambah menjadi 2. Di lantai
Penjelasan
3, Pak Dengklek melewati penjaga. Di lantai
4, Pak Dengklek mengalahkan penjaga, lalu Pada contoh masukan pertama, sa-
staminanya bertambah menjadi 3. Di lantai lah satu cara tercepat yang mungkin Pak
5, Pak Dengklek melewati penjaga. Di lantai Dengklek lakukan untuk mengalahkan
6, Pak Dengklek mengalahkan penjaga, sang makhluk jahat adalah sebagai berikut:
lalu staminanya bertambah menjadi 4. Di Pada awalnya, stamina Pak Dengklek ada-
lantai 7, Pak Dengklek menghadapi sang lah 1. Di lantai 1, Pak Dengklek melewati
makhluk jahat, lalu mengalahkannya. Pada penjaga. Di lantai 2, Pak Dengklek menga-
contoh masukan kedua, Pak Dengklek lahkan penjaga, lalu staminanya bertam-
tidak mungkin membuka pintu masuk bah menjadi 2. Di lantai 3, Pak Dengklek
pada lantai 5. melewati penjaga. Di lantai 4, Pak Deng-
klek mengalahkan penjaga, lalu stamina-
Contoh Masukan 1 nya bertambah menjadi 3. Di lantai 5, Pak
0..34..7 Dengklek melewati penjaga. Di lantai 6, Pak
714 Dengklek mengalahkan penjaga, lalu sta-
035 minanya bertambah menjadi 4. Di lantai 7,
032 Pak Dengklek menghadapi sang makhluk
112 jahat, lalu mengalahkannya. Pada contoh
042 masukan kedua, Pak Dengklek tidak mung-
213 kin membuka pintu masuk pada lantai 5.
042 Untuk semua soal 1-5 , berlaku:

1 = N = 300.000
Contoh Keluaran 1
0 = S , S = 300.000
11
0 = P[i], K[i], L[i] = 300.000 untuk setiap 1
=i=N-1

41
1. Dari pernyataan tersebut, maka dapat 5. Nilai kompleksitas dari solusi untuk
diselesaikan dengan menggunakan simpan K[i] – L[i] dalam setiap lantai
metode dan cara apa? selama S0d<P[i]
A. Complete search A. (N LOG N )
B. Metode partially count B. O(N-N)
C. Count C. O(N)
D. Research D. O(N/N)
E. Practice E. O(N+N)

(SOAL OSN TINGKAT NASIONAL TAHUN 2018) (SOAL OSN TINGKAT NASIONAL TAHUN 2018)

2. Jika diketahui 1 ≤ N ≤ 2.000, maka 6. Diketahui pernyataan:


penyelesaian yang tepat untuk pro­ 1) Jika hari panas, maka Ani mema­
gram tersebut adalah ... kai topi.
A. Research
2) Ani tidak memakai topi atau ia
B. Practice
memakai payung.
C. Dynamic programming
D. Analisist 3) Ani tidak memakai payung.
E. Complete search Maka, kesimpulan yang sah adalah…
(SOAL OSN TINGKAT NASIONAL TAHUN 2018)
A. Hari panas
B. Hari tidak panas
3. Jika S = S dan P[i] = 0 untuk setiap 1 C. Ani memakai topi
≤ i ≤ N – 1 , maka kompleksitasnya D. Hari panas dan Ani memakai topi
adalah E. Hari tidak panas dan ani memakai
A. O(N) D. O+N topi
B. O-N E. N
(SOAL OSN TINGKAT NASIONAL TAHUN 2015)
C. O/N

(SOAL OSN TINGKAT NASIONAL TAHUN 2018)

4. Jika P[i] = 0 untuk setiap 1 ≤ i ≤ N – 1,


maka kompleksitasnya adalah ....
A. O(N LOG N )
B. O(N-N)
C. O(N)
D. O(N/N)
E. O(N+N)

(SOAL OSN TINGKAT NASIONAL TAHUN 2018)

42
Deskripsi soal dibawah untuk nomor 7-11! lakukan secara otomatis akan langsung
Semoga Anda masih ingat soal Tebak terdeteksi. Salah satu contoh kecurang-
Angka di mana Anda diharuskan mene- an yaitu Anda menjawab TERLALU BESAR
bak angka yang dipikirkan Pak Dengklek ketika Pak Dengklek menebak angka 1.
(dari rentang 1 hingga N) dengan mene- Format Interaksi
bak maksimal Q kali dan Pak Dengklek
Pada awalnya, program Anda akan
akan menjawab TERLALU KECIL, TERLALU
menerima label kasus uji. Label kasus uji
BESAR, atau SELAMAT apabila berhasil
berisi sebuah string yang dijelaskan se-
menebak angka yang dipikirkan.
bagai berikut:
Sekarang, mari kita bertukar posisi!
Panjang string tersebut adalah ba-
Anda diminta untuk memikirkan se- nyaknya subsoal ditambah satu.
buah angka dari rentang 1 hingga N.
Digit pertama dari label adalah ka-
Anda dinyatakan menang apabila Pak
rakter ke-0, digit kedua dari label adalah
Dengklek tidak dapat menebak angka
karakter ke-1, dan seterusnya.
yang Anda pikirkan hingga akhir tebakan
(tebakan ke-Q). Karakter ke-0 akan berisi 0 jika kasus
uji tersebut merupakan contoh kasus uji,
Sama seperti strategi Anda pada soal
dan berisi ‘.’ jika bukan.
Tebak Angka, Pak Dengklek memakai
prinsip Divide & Conquer untuk menebak Untuk setiap nilai i di antara 1 hingga
angka yang Anda pikirkan. Apabila angka banyaknya subsoal, berlaku:
yang Anda pikirkan berada pada rentang a. jika kasus uji tersebut memenuhi ba-
A hingga B, maka Pak Dengklek akan tasan subsoal ke-i, maka karakter ke-i
menebak C = (A + B) / 2 sebagai angka berisi i, atau
yang Anda pikirkan. Apabila C bukan b. jika kasus uji tersebut tidak memenu-
berupa bilangan bulat, maka secara acak hi batasan subsoal ke-i, maka karak-
Pak Dengklek akan memilih pembulatan ter ke-i berisi karakter ‘.’
ke atas atau pembulatan ke bawah. Tentu
saja apabila Anda menjawab TERLALU
Sebagai contoh apabila label sebuah
BESAR maka angka yang Anda pikirkan
kasus uji sebuah soal adalah 0..345, maka:
berada pada rentang A hingga C - 1 dan
apabila Anda menjawab TERLALU KECIL a. Soal tersebut memiliki 5 buah subso-
maka angka yang Anda pikirkan berada al,
pada rentang C + 1 hingga B. b. Kasus uji tersebut merupakan contoh
kasus uji, dan
Perlu diperhatikan bahwa Pak Deng-
c. Kasus uji tesebut memenuhi batasan
klek dapat mengecek apakah jawaban-
subsoal ke-3, ke-4, dan ke-5.
jawaban Anda konsisten sehingga kecu-
rangan-kecurangan yang bisa saja Anda

43
Selanjutnya, program Anda akan me- Untuk tebakan pertama, nilai A dan
nerima input dua buah bilangan N dan Q. B adalah 1 dan 9 sehingga C = (1 + 9) /
2 = 5.
Kemudian, Anda akan menerima
sebuah bilangan bulat C yaitu tebakan Karena 5 terlalu besar dibandingkan
Pak Dengklek untuk angka yang Anda dengan 3, maka Anda menjawab TERLA-
pikirkan. Anda diminta untuk menjawab LU BESAR. Sehingga untuk tebakan ke-
TERLALU KECIL, TERLALU BESAR, atau dua, nilai A dan B adalah 1 dan 4. Karena
SELAMAT berdasarkan angka yang Anda nilai C = (1 + 4) / 2 = 2, 5 bukan merupa-
pikirkan. kan bilangan bulat, maka Pak Dengklek
secara acak memilih untuk membulatkan
Apabila Anda menjawab SELAMAT,
ke bawah.
artinya Pak Dengklek berhasil menebak
angka yang Anda pikirkan dan Anda di- Karena 2 terlalu kecil dibandingkan
nyatakan kalah. Apabila Anda menjawab dengan 3, maka Anda menjawab TERLA-
selain SELAMAT, maka Pak Dengklek LU KECIL. Sehingga untuk tebakan ketiga,
akan menebak kembali angka yang Anda nilai A dan B adalah 3 dan 4. Karena nilai
pikirkan. C = (3 + 4) / 2 = 3, 5 bukan merupakan
bilangan bulat, maka Pak Dengklek seca-
Anda dinyatakan menang apabila
ra acak memilih untuk membulatkan ke
hingga tebakan ke-Q Pak Dengklek masih
atas.
belum mendapatkan jawaban SELAMAT.
Karena 4 terlalu besar dibandingkan
Contoh Interaksi
dengan 3, maka Anda menjawab TERLA-
LU BESAR. Karena setelah Q = 3 tebakan
Pak Dengklek tidak mendapatkan jawab-
an SELAMAT, maka Anda dinyatakan me-
nang pada permainan ini.

7. Anda akan menerima sebuah


bilangan bulat C yaitu tebakan
Pak Dengklek untuk angka yang
Anda pikirkan. Anda diminta untuk
menjawab TERLALU KECIL, TERLALU
BESAR, atau SELAMAT berdasarkan
Penjelasan Contoh Interaksi
angka yang Anda pikirkan, jika
Pada kasus tersebut, nilai N dan Q N = 31
secara berturut-turut adalah 9 dan 3. Dari
Q=4
angka 1 hingga 9, Anda memilih angka 3.
Maka tebakannya adalah:

44
A. Terlalu kecil atau terlalu besar A. Terlalu kecil atau terlalu besar
B. Selamat B. Selamat
C. Sedang C. Sedang
D. Besar D. Besar
E. Kecil E. Kecil

(SOAL OSN TINGKAT NASIONAL TAHUN 2014) (SOAL OSN TINGKAT NASIONAL TAHUN 2014)

8. Anda akan menerima sebuah bil­ 10. Anda akan menerima sebuah bilang_
angan bulat C yaitu tebakan Pak an bulat C yaitu tebakan Pak Deng­
Deng­
klek untuk angka yang Anda klek untuk angka yang Anda pikirkan.
pikirkan. Anda diminta untuk men­ Anda diminta untuk menjawab TER­
jawab TERLALU KECIL, TERLALU LALU KECIL, TERLALU BESAR, atau
BESAR, atau SELAMAT berdasarkan SELAMAT berdasarkan angka yang
angka yang Anda pikirkan, jika Anda pikirkan, jika
N = 127 N=9

Q=6 Q=3

Maka tebakannya yang tepat ada- Maka hasilnya adalah ...


lah...
A. Terlalu kecil atau terlalu besar
A. Terlalu kecil atau terlalu besar B. Selamat
B. Selamat C. Sedang
C. Sedang D. Besar
D. Besar E. Kecil
E. Kecil
(SOAL OSN TINGKAT NASIONAL TAHUN 2014)
(SOAL OSN TINGKAT NASIONAL TAHUN 2014)
11. Anda akan menerima sebuah bilang­
9. Anda akan menerima sebuah bilang­ an bulat C yaitu tebakan Pak Deng­
an bulat C yaitu tebakan Pak Deng­ klek untuk angka yang Anda pikirkan.
klek untuk angka yang Anda pikirkan. Anda diminta untuk menjawab TER­
Anda diminta untuk menjawab TER­ LALU KECIL, TERLALU BESAR, atau
LALU KECIL, TERLALU BESAR, atau SELAMAT berdasarkan angka yang
SELAMAT berdasarkan angka yang Anda pikirkan, jika
Anda pikirkan, jika N = 16
N=4
Q=4
Q=2
Maka hasil yang diperoleh adalah ..
Maka tebakannya adalah ...

45
A. Terlalu kecil atau terlalu besar Program yang diinginkan Pak Deng­
B. Selamat klek sederhana. Anda akan diberikan
C. Sedang se­buah untaian pesan berisi simbol A
D. Besar – Z (semua kapital) tanpa spasi. Setiap
E. Kecil huruf akan dinomori 1 sampai N,
dengan N adalah panjang dari pesan itu
(SOAL OSN TINGKAT NASIONAL TAHUN 2014)
sendiri. Kemudian Pak Dengklek akan
memberikan beberapa pertanyaan yang
12. Tidak ada orang pintar yang me­
dinyatakan oleh pasangan bilangan i dan
nyontek saat ujian. beberapa orang
j. Program anda harus mengeluarkan
yang menyontek saat ujian adalah
hasil reduksi substring dari posisi ke-i
orang yang malas belajar. Berdasarkan
hingga posisi ke-j. Adapun aturan reduksi
dua pernyataan tersebut, simpulan
yang diinginkan adalah sebagai berikut:
yang paling tepat adalah ...
A. Beberapa orang pintar tidak per- Untuk setiap sekumpulan huruf yang
lu belajar untuk ujian saling bersebelahan dan memiliki simbol
B. Beberapa orag yang malas bela- yang sama, hapus semua kecuali satu.
jar, bukan orang pintar Dengan kata lain, pada hasil reduksi pe-
C. Beberapa orang yang tidak me­ san, tidak ada dua huruf yang sama akan
nyontek adalah orang yang pintar saling bersebelahan. Contoh: HAALLL-
D. Semua orang malas menyontek LLOOOOO? HALO, MATARAM? MATA-
pada saat ujian RAM, dan AAAAA? A.
E. Semua orang pintar pernah ma- Hitung panjang pesan setelah dila-
las belajar kukan proses reduksi. Keluarkan angka
ini, karena ini merupakan informasi yang
13. Pak Dengklek bersama tim risetnya
penting untuk Pak Dengklek. Contoh:
sedang mengembang kan program
HAALLLLLOOOOO? HALO (4 huruf).
untuk mereduksi pesan yang berupa
sederet­an huruf alfabet kapital (A – Jika panjang pesan yang tereduksi
Z). Program ini sudah selesai dikem­ lebih kecil dari 10, cetak juga pesan hasil
bang­
kan, dan kini memasuki tahap reduksi tersebut.
pengujian. Sayangnya, Pak Dengklek Bisakah Anda menyelesaikan pro­
dan tim kebingungan bagaimana gram yang diinginkan Pak Dengklek?
memastikan bahwa program yang Sebagai catatan, Pak Dengklek hanya
mereka kembangkan bekerja dengan memberikan Anda sedikit waktu karena
baik. Akhirnya ia meminta bantuan sebentar lagi hasil penelitian mereka
Anda untuk membuat program akan dipublikasikan.
yang dapat membantu mengoreksi Maka komplesitasnya yang tepat
pekerjaan Pak Dengklek. berdasar deskripsi diatas adalah ...

46
A. O(n)- (O(Q* log n) ) 15. Sebagai pendekar, Pak Dengklek dan
B. O(n) + O(Q * log n) = O(n + Q * Pak Ganesh tidak boleh sakit. Supa-
log n) ya sehat, keduanya harus minum air
C. O(n + Q * log n) putih 2 liter per hari. Pak Dengklek
D. O(n) + O(Q * log n) = O(n - Q * memiliki 2 buah gelas yaitu:
log n) satu berukuran 200 ml dan
E. O(n) - O(Q * log n) = O(n - Q * satunya lagi berukuran 500 ml.
log n)
Berapa banyak urutan minum
(SOAL OSN TINGKAT NASIONAL TAHUN 2014)
Pak Dengklek dengan 2 buah gelas
tersebut (tidak perlu dipakai semua)
14. Pada sebuah pesta, terdapat 5 jenis apabila ia ingin minum air putih tepat
pasangan makanan dan minuman 2 liter?, dengan urutan minum 200-
yaitu jenis A, B, C, D, dan E. Setiap 200-200-200-200-500-500 dan 500-
makanan jenis A, akan mempunyai 500-200-200-200-200-200 dianggap
pasangan minuman jenis A. Demiki- berbeda.
an juga untuk B, C, D, E. Pak Deng-
A. 27
klek mendapat kesempatan untuk
B. 30
mencicipi semua jenis makanan dan
C. 29
minuman. Namun, terdapat aturan
D. 25
bahwa setiap minuman jenis X hanya E. 23
dapat diminum jika dan hanya jika
(SOAL OSN TINGKAT NASIONAL TAHUN 2015)
makanan jenis X sudah dimakan. Se-
bagai contoh, minuman jenis A hanya
16. Pak Dengklek sedang bermain Tebak
dapat diminum apabila makanan je-
Angka bersama Pak Ganesh. Terdapat
nis A sudah dimakan. Berapa banyak
100 bilangan bulat. Pak Dengklek
kemungkinan urutan makan dan mi-
memilih sebuah bilangan di antara 1
num semua jenis makanan yang di-
sampai 100, lalu Pak Ganesh berusaha
sediakan pada pesta tersebut? Anda
menebak bilangan yang dipilih Pak
dapat menuliskan jawaban dalam
Dengklek. Setiap putarannya, Pak
bentuk angka, atau dalam bentuk
Ganesh dapat menyebutkan sebuah
kombinasi, permutasi, dan faktorial.
bilangan, dan Pak Dengklek dapat
A. 5!
memberikan umpan balik “Kurang
B. 4!
C. 3! Dari”, “Sama Dengan”, dan “Lebih
D. 2! Dari” sesuai dengan bilangan yang
E. 1! dipilih. Permainan berhenti apabila
Pak Ganesh berhasil menebak bi­
(SOAL OSN TINGKAT NASIONAL TAHUN 2014)
langan yang dipilih Pak Dengklek,

47
yaitu saat Pak Dengklek memberikan dan tidak saling bertabrakan. Mereka
umpan balik “Sama Dengan”. Paling melanjutkan proses tersebut hingga
sedikit berapa kali Pak Ganesh tiba di kolom 3.
menyebut angka tebakan sehingga Berapa banyak cara berbeda un-
dijamin bahwa Pak Ganesh dapat tuk mereka berdua berjalan menuju
menebak bilangan yang dipilih Pak ke kolom 5?
Dengklek dengan benar untuk setiap
A. 11
kasus?
B. 10
A. Ada 10
C. 13
B. Ada 8
D. 12
C. Ada 9
E. 14
D. Ada 7
E. Ada 6 18. Pak Dengklek menggulirkan sebuah
(SOAL OSN TINGKAT NASIONAL TAHUN 2016)
dadu sepanjang jalan tanpa peng­
geseran. Untuk memindahkan dadu
17. Terdapat sebuah petak berbentuk dari satu petak ke petak berikutnya,
persegi panjang yang memiliki 4 Pak Dengklek memutar dadu sepan­
baris dan tak hingga kolom, seti- jang pinggir yang ada di perbatasan
ap lokasi akan didefinisikan dengan antara dua petak. Dia melakukannya
(baris, kolom). Pak Dengklek (D) se- 7 kali sampai dadu mencapai petak
dang berdiri di pojok kiri atas (1, 1), berisi bulatan putih di sebelah kanan.
dan Pak Ganesh (G) sedang berdiri di
pojok kiri bawah (4, 1) seperti pada
gambar di bawah ini:

Perhatikan bahwa banyaknya titik


di sisi kebalikan sebuah dadu selalu 7
(1 berlawanan dengan 6; 2 berlawan-
an dengan 5; 3 berlawanan dengan
Mereka berdua secara bersama- 4). Pada mulanya, sisi dengan 1 titik
sama dapat melangkah secara dia­ (berlawanan dengan sisi 6) ada di da-
gonal ke kolom sebelah kanan mere­ sar dadu, seperti ditunjukkan pada
ka, dengan syarat mereka berdua gambar. Setelah memutar dadu se-
tetap berada dalam petak tersebut kali ke petak kedua, sisi dengan 2 titik

48
(berlawanan dengan 5) akan berada Deskripsi berikut untuk soal nomor 20 - 21
di dasar dadu. Sisi dadu dengan be- Untuk menghilangkan penat, Pak
rapa titik ada di dasar dadu saat dadu Blangkon sering sekali jalan-jalan ke pe-
mencapai petak hijau di ujung? karangan di belakang rumahnya.
A. 3 Pekarangannya berukuran 7x8 petak
B. 7 yang di dalamnya terdapat N buah po-
C. 12 hon. Saat berada di posisi tertentu Pak
D. 10 Blangkon menyadari bahwa hanya bebe-
E. 2 rapa pohon saja yang bisa terlihat pada
(OSN TINGKAT NASIONAL TAHUN 2018) delapan arah mata angin, karena pohon
tertentu berada tepat di belakang pohon
19. Terdapat 16 koin yang berjejer dalam lainnya saat pandangan tertuju pada arah
satu baris di atas meja dengan konfi- tertentu. Jika dilihat dari atas dalam ko-
gurasi awal sebagai berikut. (A berar- ordinat dua dimensi, Pak Blangkon ada
ti Angka, G berarti Gambar) di posisi B sedangkan pohon-pohonnya
ada di posisi P. Seperti contoh pada gam-
bar di bawah ini.

Pak Dengklek memainkan se-


buah permainan. Dia akan memilih
dua buah koin yang tepat saling ber-
sebelahan, kemudian membalik sisi
keduanya, gambar menjadi angka,
serta angka menjadi gambar. Proses
Pada gambar di atas, dari 10 pohon
ini dianggap sebagai satu langkah.
hanya 4 pohon yang bisa dilihat secara
Langkah tersebut kemudian akan te-
langsung oleh Pak Blangkon pada dela­
rus diulang hingga semua koin me-
pan arah mata angin, sedangkan pohon-
nunjukkan sisi gambar. Berapa kali
pohon lainnya terhalang oleh pohon di
langkah minimal yang harus dilaku-
depannya.
kan Pak Dengklek agar semua koin
menunjukkan sisi gambar?
20. Jika susunan pohon dalam pekarang-
A. 11 an Pak Blangkon adalah sebagai ber-
B. 10 ikut:
C. 9
D. 8
E. 7

(SOAL OSN TINGKAT NASIONAL TAHUN 2011)

49
Ada berapa kemungkinan posisi tahun yang lalu, umur Budi sama de-
Pak Blangkon harus berdiri supaya ngan sepuluh kali lipat umur Beni.
jumlah pohon yang bisa dilihatnya Jika umur Budi saat ini 15 tahun, be-
semaksimal mungkin? rapakah umur Badu saat ini?
A. 4 A. 15
B. 5 B. 6
C. 6 C. 21
D. 7 D. 16
E. 8 E. 26

(SOAL OSN TINGKAT NASIONAL TAHUN 2017) (SOAL OSN TINGKAT NASIONAL TAHUN 2014)

21. Diketahui susunan pohon dalam pe- 23. Sebanyak N orang pengurus TOKI
karangan Pak Blangkon adalah seba- akan disebar ke dalam empat komisi
gai berikut: mengikuti ketentuan berikut:
᪢᪢ setiap anggota tergabung ke da-
lam tepat dua komisi
᪢᪢ setiap dua komisi memiliki tepat
satu anggota bersama,

Maka, berapakah nilai N?

A. 2
Pak Dengklek bertamu ke rumah
B. 4
Pak Blangkon dan diajak berkeliling
C. 6
di pekarangannya. Karena Pak Deng-
D. 8
klek membenci pohon, ada berapa
E. 12
kemungkinan posisi Pak Blangkon
harus berdiri bersama Pak Dengklek (SOAL OSN TINGKAT NASIONAL TAHUN 2010)

supaya jumlah pohon yang bisa dili-


hat seminimal mungkin? 24. Sebuah pesta reuni dihadiri oleh 101
pasang alumni yang datang bersama,
A. 1
serta 100 alumni yang datang sendiri.
B. 2
Semua hadirin di pesta tersebut sa­
C. 3
ling bersalaman dengan hadirin yang
D. 4
lainnya. Jika tiap alumni tidak bersa­­
E. 5
laman dengan pasangannya, berapa­
(SOAL OSN TINGKAT NASIONAL TAHUN 2017)
kah jumlah salaman yang terjadi?
A. 8000 salaman
22. Umur Badu sama dengan umur Budi B. 670 salaman
dijumlahkan dengan umur Beni. Lima

50
C. 9000 salaman A. L dan D
D. 10000 salaman B. dan L
E. 7000 salaman C. G dan O
D. D dan G
(SOAL OSN TINGKAT NASONAL TAHUN 2010)
E. Tidak dapat ditentukan

25. Pak Dengklek memiliki 6 buah pot (SOAL OSN TINGKAT NASIONAL TAHUN 2014)

bunga yang disusun berjajar dan


siap ditanami 3 (tiga) jenis bunga 27. Pada suatu hari, Adin dan Bannie
yaitu melati, mawar, dan anggrek di sedang bermain sebuah game bi-
pekarangan rumahnya. Ada berapa langan. Kedua pemain bergantian
banyak cara pengisian 6 pot bunga mengucapkan bilangan asli secara
tersebut sehingga pada 3 buah pot berurutan (dari 1), hingga perma-
yang bersebelahan yang manapun, inan berhenti. Jika sebuah bilangan
tidak ada 3 jenis bunga yang ketiga- mengandung angka 7, atau merupa-
nya berbeda? kan kelipatan 7, maka pemain harus
A. 297 mengucapkan “Up!”, bukan bilang-
B. 298 annya. Game ini berhenti jika ada
C. 299 pemain yang melakukan kesalahan
D. 300 (mengucapkan “Up!” pada saat yang
E. 201 kurang tepat, atau tidak mengucap-
(SOAL OSN TINGKAT NASIONAL TAHUN 2010) kan “Up!” pada saat bilangan itu me-
ngandung angka 7 atau merupakan
26. Seorang detektif sedang menangani kelipatan 7). Jika game ini berhenti di
sebuah kasus kriminal. Ada 4 orang bilangan 178, berapa banyak jumlah
tersangka berinisial G, O, L, D. Dari “Up!” yang telah diucapkan oleh ke-
hasil interogasi, detektif tersebut dua pemain?
mendapatkan sejumlah fakta, yaitu: A. <178
᪢᪢ Jika G berkata jujur, maka O ber- B. <128
kata jujur. C. <168
᪢᪢ Jika L berkata bohong, maka D D. <189
berkata jujur. E. <169
᪢᪢ Salah satu dari O dan L berkata (SOAL OSN TINGKAT NASIONAL TAHUN 2010)
jujur.
᪢᪢ O berkata jujur jika dan hanya 28. Jika sedang tidak marah, Pak Danu
jika D berkata bohong. biasanya suka bernyanyi sepanjang
Dari sejumlah fakta di atas, siapa hari. Jika sebaliknya, dia tidur-tidur-
yang berkata jujur? an sepanjang hari di kamarnya. Te-

51
tapi dia juga akan tidur-tiduran di 30. Terdapat sebuah daftar yang memu-
kamarnya jika dalam keadaan sa- at 2017 pernyataan sebagai berikut:
kit. Gara-gara tiduran, dia tidak bisa a. Pernyataan nomor 1: Terdapat
memberikan makan bebek-bebeknya tepat 1 pernyataan dalam daftar
sehingga makanan bebeknya akan ini yang salah.
tersisa. Sore ini terlihat makanan b. Pernyataan nomor 2: Terdapat
bebeknya tidak tersisa. Apakah Pak tepat 2 pernyataan dalam daftar
Danu sedang marah? ini yang salah. Pernyataan nomor
A. Pak Danu tidak sedang marah 3: Terdapat tepat 3 pernyataan
B. Pak Danu marah dalam daftar ini yang salah.
C. Pak Danu kecewa c. Pernyataan nomor 2016: Terda-
D. Pak Danu terluka pat tepat 2016 pernyataan dalam
E. Pak Danu sedih daftar ini yang salah.
d. Pernyataan nomor 2017: Terda-
(SOAL OSN TINGKAT NASIONAL TAHUN 2010)
pat tepat 2017 pernyataan dalam
daftar ini yang salah.
29. Aang, Budi, Cici, Dika dan Eno
bermain ayam-bebek. Setiap anak Pernyataan nomor berapakah
menjadi ayam atau bebek, tetapi yang benar jika ternyata hanya ada
tidak keduaduanya. Ayam selalu jujur satu yang benar?
dan bebek selalu berdusta. Aang A. 2016
berkata bahwa Budi adalah ayam. Cici B. 2017
berkata bahwa Dika adalah bebek. C. 2016 dan 2017
Eno berkata Aang bukan bebek. D. Tidak ada yang benar
Budi berkata Cici bukan ayam. Dika E. Salah semua
berkata bahwa Eno dan Aang adalah
(SOAL OSN TINGKAT NASIONAL TAHUN 2010)
binatang yang berbeda. Ada berapa
anak yang menjadi bebek dalam
permainan ini?
A. 5
B. 6
C. 2
D. 1
E. 4

(SOAL OSN TINGKAT NASIONAL TAHUN 2010)

52
SOAL OSN PREDIKSI A. Angka nomor 6 berwarna jingga
B. Kedua angka berwarna biru dan
Deskripsi berikut ini adalah untuk menjawab angka berwarna jingga, adalah
pertanyaan nomor 1-5! angka-angka yang terurut
C. Angka 2 berwarna merah
Joko membelikan mainan untuk
D. Angka 8 berwarna merah
anaknya. Mainan tersebut terdiri dari 9
E. Angka 7 berwarna biru
potongan angka-angka yang berwarna
warni. Dari hasil pengamatan dinyatakan 3. Jika angka 6 berwarna hijau, mana-
informasi berikut: kah kalimat yang benar?
᪢᪢ Sebuah angka berwarna jingga dan A. Angka 2 berwarna biru
ada masing-masing dua angka yang B. Angka 3 berwarna jingga
berwarna merah, hijau, kuning dan C. Angka 5 berwarna merah
biru D. Angka 5 berwarna jingga
᪢᪢ Angka-angka yang berwarna merah, E. Angka 7 berwarna biru
adalah angka yang berurutan
4. Manakah dari informasi berikut yang
᪢᪢ Angka 4 berwarna hijau
dapat menentukan warna seluruh
᪢᪢ Dua buah angka yang berwarna biru
ang­ka 2?
bukanlah angka yang berurutan
a. Angka 2 berwarna biru
᪢᪢ Angka 1 dan 9 berwarna kuning
b. Angka 3 berwarna biru
᪢᪢ Angka berwarna jingga bukanlah
c. Angka 5 berwarna merah
ang­ka yang berurut langsung dengan
d. Angka 7 berwarna biru
salah satu angka yang berwarna
e. Angka 7 berwarna hijau
hijau.
5. Manakah angka yang tidak mungkin
1. Jika salah satu angka yang berwarna
berwarna jingga
merah adalah angka 3, maka angka
A. Angka 3
manakah yang juga berwarna merah?
B. Angka 2
A. 2
C. Angka 6
B. 4
D. Angka 8
C. 5
E. Angka 7
D. 6
E. 7 6. Terndapat beberapa pernyataan:
᪢᪢ Jika hari panas, maka Budi me­
2. Jika angka 5 berwarna hijau, kalimat
makai topi.
di bawah ini benar kecuali:
᪢᪢ Budi tidak memakai topi atau ia
Angka berwarna jingga dan sa-
memakai payung.
lah satu angka berwarna kuning ada-
᪢᪢ Budi tidak memakai payung.
lah angka yang berurutan

53
Maka kesimpulan yang tepat berapakah jumlah salaman yang
adalah… terjadi?
A. Hari panas A. 8000 salaman
B. Hari tidak panas B. 670 salaman
C. Ani memakai topi C. 9000 salaman
D. Hari panas dan Ani memakai topi D. 10000 salaman
E. Hari tidak panas dan Ani mema­ E. 7000 salaman
kai topi 10. Enam ekor bebek masuk ke dalam 3
7. Umur Roni sama dengan umur Budi buah kandang yang semula kosong.
dijumlahkan dengan umur Bani. Lima Berapa jumlah maksimum yang
tahun yang lalu, umur Budi sama mungkin bebek-bebek dalam satu
dengan sepuluh kali lipat umur Bani. kandang jika setiap kandang pasti
Jika umur Roni saat ini 15 tahun, ada bebek di dalamnya?
berapakah umur Roni saat ini? A. 0 D. 4
A. 15 D. 16 B. 3 E. 6
B. 6 E. 26 C. 2
C. 21 11. Sebagai pendekar, Pak Dengklek dan
8. Sebanyak N orang pengurus TOKI Pak Ganesh tidak boleh sakit. Supaya
akan disebar ke dalam empat komisi sehat, keduanya harus minum air
mengikuti ketentuan berikut: putih 2 liter per hari. Pak Dengklek
᪢᪢ setiap anggota tergabung ke memiliki 2 buah gelas yaitu:
dalam tepat dua komisi satu berukuran 200 ml dan
᪢᪢ setiap dua komisi memiliki tepat satunya lagi berukuran 500 ml.
satu anggota bersama, Berapa banyak urutan minum
Maka, berapakah nilai N? Pak Dengklek dengan 2 buah gelas
tersebut (tidak perlu dipakai semua)
A. 2 D. 8
apabila ia ingin minum air putih tepat
B. 4 E. 12
2 liter?, dengan urutan minum 200-
C. 6
200-200-200-200-500-500 dan 500-
9. Sebuah pesta reuni dihadiri oleh 101 500-200-200-200-200-200 dianggap
pasang alumni yang datang bersama, berbeda.
serta 100 alumni yang datang sendiri. A. 27 D. 25
Semua hadirin di pesta tersebut sa­ B. 30 E. 23
ling bersalaman dengan hadirin C. 29
yang lainnya. Jika tiap alumni tidak
bersalaman dengan pasangannya, 12. Besok, Raja Kerajaan akan menga­
dakan pesta yang sangat besar. Raja

54
Kerajaan telah memesan 2019 botol besoknya berseri-seri kembali. Kalau
anggur untuk pestanya tersebut. turun hujan, besoknya menjadi apatis.
Namun berdasarkan laporan, salah 3) Jika hari ini pemurung, lalu malamnya
satu dari botol anggur tersebut telah tidak hujan, besoknya menjadi
diberi racun. Racun ini diketahui biasa-biasa saja. Kalau turun hujan,
tidak akan menunjukkan tanda- besoknya menjadi pemarah.
tanda keracunan sampai orang yang
4) Jika hari ini pemarah, lalu malamnya
meminumnya mati. Kematian terjadi
turun hujan ia menjadi apatis
antara 13-20 jam setelah racun ter­
keesokan harinya. Kalau tidak, ia
minum, walaupun hanya terminum
menjadi biasa-biasa saja.
setetes. Raja Kerajaan memiliki 2019
orang tahanan yang rencananya 5) Jika hari ini apatis, lalu malamnya
akan dieksekusi. Raja Kerajaan harus turun hujan besoknya ia menjadi
pemurung. Kalau tidak, ia menjadi
berhasil menemukan botol anggur
berseri-seri kembali.
yang mengandung racun tersebut
dalam waktu 24 jam. Berapa minimal
13. Jika hari ini biasa-biasa saja lalu 4 malam
banyaknya tahanan yang harus
berturut turun hujan kecuali malam ke
minum dari botol-botol anggur yang
3 tidak turun hujan, bagaimanakah
ada untuk memastikan botol mana
suasana hatinya pada hari berikutnya
yang mengandung racun?
setelah 4 malam tersebut?
A. 9 orang D. 7 orang
A. Pemurung
B. 8 orang E. 17 orang
B. Pemarah
C. 11 orang
C. Berseri-seri
D. Biasa-biasa saja
Deskripsi untuk soal nomor 13-17!
E. Apatis
Si Anggita adalah seorang anak yang
suka berubah-ubah suasana hatinya yang 14. Jika hari ini berseri-seri kemudian 4
ternyata dipengaruhi cuaca pada malam malam berturut-turut hujan, maka
harinya. bagaimanakah hari sebelumnya?
A. Pemurung
1) Jika hari ini hatinya berseri-seri, dan
B. Pemarah
di malam hari nanti terjadi hujan
C. Berseri-seri
maka besok ia pasti akan pemurung.
D. Biasa-biasa saja
Kalau tidak, besoknya menjadi biasa-
E. Apatis
biasa saja.
15. Jika hari ini pemurung dan diketahui
2) Jika hari ini biasa-biasa saja, kemudian
malam hari tidak hujan maka 4 malam terakhir hujan terus, maka

55
bagaimanakah suasana hatinya 4 yaitu batu yang dapat ditempati kera,
hari yang lalu? dan daun yang tidak dapat ditempati
A. Pasti pemurung kera. Seekor katak dapat melompat
B. Selain apatis, mungkin juga ber­ ke benda tepat di depannya atau
seri dapat melompatinya (dengan kata
C. Selain berseri, mungkin juga lain, menempati benda kedua yang
biasa-biasa saja ada di depannya). Berapa banyak
D. Tidak mungkin terjadi cara yang bisa ditempuh katak
E. Selain biasa-biasa, mungkin juga untuk menyeberangi sungai dengan
pemarah selamat (dengan tidak menginjak
16. Jika hari ini apatis dan diketahui 4 daun) jika konfigurasi benda di
malam terakhir hujan terus, maka sungai adalah sebagai berikut (kera
bagaimanakah suasana hatinya 4 menyeberang dari kiri ke kanan)
hari yang lalu?
A. Pasti pemurung
B. Selain apatis, mungkin juga ber- A. 1 D. 6
seri B. 3 E. 10
C. Selain berseri, mungkin juga bi- C. 2
asa-biasa saja
D. Tidak mungkin terjadi Deskripsi untuk soal nomor 19 - 20
E. Selain biasa-biasa saja, mungkin
Sakelar adalah alat untuk
juga pemarah
menghubungkan atau memutuskan
17. Jika hari ini pemarah dan diketahui aliran listrik. Bila sakelar dipasang pada
4 malam terakhir hujan terus, maka sebuah lampu, maka sakelar tersebut
bagaimana suasana hatinya 4 hari bisa menyalakan atau mematikan lampu
yang lalu? tersebut. Di rumah Sugeng, ada 30 lampu
A. Pasti pemurung yang dinomori dari 1 sampai 30. Untuk
B. Selain apatis, mungkin juga ber- menyalakannya, Sugeng memiliki sakelar
seri khusus, yaitu sakelar yang terhubung
C. Selain berseri, mungkin juga dengan lebih dari satu lampu. Ada lima
biasa-biasa saja sakelar, yaitu:
D. Tidak mungkin terjadi a. Sakelar A, yaitu sakelar yang
E. Selain biasa-biasa saja, mungkin terhubung dengan lampu bernomor
juga pemarah kelipatan 2.
b. Sakelar B, yaitu sakelar yang
18. Ada seekor katak yang ingin menye­
terhubung dengan lampu bernomor
be­rangi suatu sungai. Di sungai terse­
kelipatan 3.
but, terdapat dua jenis benda sungai,

56
c. Sakelar C, yaitu sakelar yang apabila berhasil menebak angka yang
terhubung dengan lampu bernomor dipikirkan.
kelipatan 5.
Sekarang, mari kita bertukar posisi!
d. Sakelar D, yaitu sakelar yang
terhubung dengan lampu bernomor Anda diminta untuk memikirkan se-
kelipatan 7. buah angka dari rentang 1 hingga N.
e. Sakelar E, yaitu sakelar yang ter­hu­ Anda dinyatakan menang apabila Pak
bung dengan lampu bernomor keli­ Darusallam tidak dapat menebak angka
patan 11. yang Anda pikirkan hingga akhir tebakan
(tebakan ke-Q).
Perlu diingat, jika lampu dalam
keadaan mati, dan sakelar yang terhubung Sama seperti strategi Anda pada soal
dengannya ditekan, maka lampu tersebut Tebak Angka, Pak Darusallam memakai
akan menyala. Begitu pula sebaliknya. prinsip Divide & Conquer untuk mene-
bak angka yang Anda pikirkan. Apabila
19. Ada berapa lampu yang tidak angka yang Anda pikirkan berada pada
bisa dinyala/matikan karena tak rentang A hingga B, maka Pak Darusallam
terhubung dengan saklar? akan menebak C = (A + B) / 2 sebagai
A. 0 D. 6 angka yang Anda pikirkan. Apabila C bu-
B. 1 E. 25 kan berupa bilangan bulat, maka secara
C. 5 acak Pak Darusallam akan memilih pem-
bulatan ke atas atau pembulatan ke ba-
20. Sugeng ingin agar rumahnya terang wah. Tentu saja apabila Anda menjawab
benderang, karena dia takut akan TERLALU BESAR maka angka yang Anda
kegelapan. Ada berapa lampu pikirkan berada pada rentang A hingga
maksimal yang bisa menyala secara C - 1 dan apabila Anda menjawab TERLA-
bersamaan? LU KECIL maka angka yang Anda pikirkan
A. 5 D. 16 berada pada rentang C + 1 hingga B.
B. 13 E. 24
Perlu diperhatikan bahwa Pak Daru-
C. 15
sallam dapat mengecek apakah jawaban-
jawaban Anda konsisten sehingga kecu-
Deskripsi soal dibawah untuk nomor 21-25!
rangan-kecurangan yang bisa saja Anda
Semoga Anda masih ingat soal lakukan secara otomatis akan langsung
Tebak Angka di mana Anda diharuskan terdeteksi. Salah satu contoh kecurang-
menebak angka yang dipikirkan Pak an yaitu Anda menjawab TERLALU BESAR
Darusallam (dari rentang 1 hingga N) ketika Pak Darusallam menebak angka 1.
dengan menebak maksimal Q kali dan
Pak Darusallam akan menjawab TERLALU Format Interaksi
KECIL, TERLALU BESAR, atau SELAMAT

57
Pada awalnya, program Anda akan pikirkan. Anda diminta untuk menjawab
menerima label kasus uji. Label kasus TERLALU KECIL, TERLALU BESAR, atau
uji berisi sebuah string yang dijelaskan SELAMAT berdasarkan angka yang Anda
sebagai berikut: pikirkan.

1. Panjang string tersebut adalah ba­ Apabila Anda menjawab SELAMAT,


nyak­nya subsoal ditambah satu. artinya Pak Darusallam berhasil menebak
angka yang Anda pikirkan dan Anda di-
2. Digit pertama dari label adalah ka­
nyatakan kalah. Apabila Anda menjawab
rakter ke-0, digit kedua dari label
selain SELAMAT, maka Pak Darusallam
adalah karakter ke-1, dan seterusnya.
akan menebak kembali angka yang Anda
3. Karakter ke-0 akan berisi 0 jika kasus pikirkan.
uji tersebut merupakan contoh kasus
Anda dinyatakan menang apabila
uji, dan berisi ‘.’ jika bukan.
hingga tebakan ke-Q Pak Darusallam
Untuk setiap nilai i di antara 1 hingga ma­sih belum mendapatkan jawaban
banyaknya subsoal, berlaku: SELAMAT.

1. jika kasus uji tersebut memenuhi ba-


21. Anda akan menerima sebuah
tasan subsoal ke-i, maka karakter ke-i
bilangan bulat C yaitu tebakan
berisi i, atau
Pak Darusallam untuk angka yang
2. jika kasus uji tersebut tidak memenu- Anda pikirkan. Anda diminta untuk
hi batasan subsoal ke-i, maka karak- menjawab TERLALU KECIL, TERLALU
ter ke-i berisi karakter ‘.’ BESAR, atau SELAMAT berdasarkan
Sebagai contoh apabila label sebuah angka yang Anda pikirkan, jika:
kasus uji sebuah soal adalah 0..345, maka: Rentang 1, 2, 3, 4, 5, 6, 7, 8.

1. Soal tersebut memiliki 5 buah subsoal, Maka tebakannya adalah....


2. Kasus uji tersebut merupakan contoh A. Terlalu kecil atau terlalu besar
kasus uji, dan B. Selamat
3. Kasus uji tesebut memenuhi batasan C. Sedang
subsoal ke-3, ke-4, dan ke-5. D. Besar
E. Kecil
Selanjutnya, program Anda akan
menerima input dua buah bilangan N 22. Anda akan menerima sebuah
dan Q. bilangan bulat C yaitu tebakan
Pak Darusallam untuk angka yang
Kemudian, Anda akan menerima
Anda pikirkan. Anda diminta untuk
se­
buah bilangan bulat C yaitu tebakan
menjawab TERLALU KECIL, TERLALU
Pak Darusallam untuk angka yang Anda

58
BESAR, atau SELAMAT berdasarkan 25. Anda akan menerima sebuah
angka yang Anda pikirkan, jika bilangan bulat C yaitu tebakan
(1+8)/2 = 4.5 Maka tebakannya Pak Darusallam untuk angka yang
yang tepat adalah ... Anda pikirkan. Anda diminta untuk
A. Terlalu kecil atau terlalu besar menjawab TERLALU KECIL, TERLALU
B. Selamat BESAR, atau SELAMAT berdasarkan
C. Sedang angka yang Anda pikirkan , jika
D. Besar N = 16
E. Kecil Q=4
23. Anda akan menerima sebuah Maka hasil yang diperoleh adalah ..
bilangan bulat C yaitu tebakan
A. Selamat
Pak Darusallam untuk angka yang
B. Terlalu kecil atau terlalu besar
Anda pikirkan. Anda diminta untuk
C. Besar
menjawab TERLALU KECIL, TERLALU
D. Kecil
BESAR, atau SELAMAT berdasarkan E. Sedang
angka yang Anda pikirkan, jika
rentan 1, 2, 3, 4, 5, 6, 7, 8, maka Pak Deskripsi untuk soal no 26 – 30!
Darusallam menebak 4 dan kita
Pak Daru baru saja mendapatkan in­
bilang terlalu kecil maka bilangan
for­
masi bahwa sebuah makhluk jahat
yang jadi adalah ...
tengah menyusun rencana untuk menak­
A. 5, 6, 7, 8 D. 1, 2, 3
luk­kan Pekanbaru! Pak Daru tidak tinggal
B. 1, 2, 3, 4 E. 4, 5, 6, 7
diam dan berinisiatif untuk mengalahkan
C. 6, 7, 8
sang makhluk jahat sebelum ia menye­
24. Anda akan menerima sebuah bilang­ rang Pekanbaru.
an bulat C yaitu tebakan Pak Daru­ Sang makhluk jahat bersembunyi
sallam untuk angka yang Anda di markas rahasianya yang berbentuk
pikirkan. Anda diminta untuk menja­ menara dengan N lantai, yang dinomori
wab TERLALU KECIL, TERLALU BESAR, dari 1 (paling bawah) hingga N (paling
atau SELAMAT berdasarkan angka atas). Sang makhluk jahat berada di lantai
yang Anda pikirkan, jika rentan 1, 2, ke-N. Untuk mencapai lantai tersebut,
3, 4, 5, 6, 7, 8, maka Pak Darusallam Pak Daru harus memulai dari lantai ke-
menebak 4 dan jika bilang terlalu 1, kemudian naik satu-persatu hingga
besar maka bilangan yang mungkin akhirnya mencapai lantai ke-N.
ada berapa ... Pada awalnya, pak Daru memiliki sta­
A. 3 D. 2 mina sebesar S. Stamina sang makhluk
B. 5 E. 6 jahat adalah S. pak Daru bisa mening­
C. 4

59
katkan staminanya dengan mengalahkan A. Complete search
penjaga-penjaga, seperti yang akan dije­ B. Metode partially count
laskan selanjutnya. C. Count
D. Research
Semua lantai kecuali lantai teratas
E. Practice
(yakni, semua lantai ke-i yang memenuhi
i < N) memiliki tepat satu pintu masuk 27. Jika diketahui 1 ≤ N ≤ 2.000, maka
dan satu penjaga. Untuk memasuki lantai penyelesaian yang tepat untuk pro­
ke-i, Pak Daru harus membuka pintu gram tersebut adalah
masuk pada lantai ke-i terlebih dahulu. A. Research
Untuk melakukan hal tersebut, Pak Daru B. Practice
harus memiliki stamina paling sedikit P[i]. C. Dynamic programming
(Jika stamina Pak Daru saat itu kurang D. Analisist
dari P[i], maka misi Pak Daru langsung E. Complete search
gagal.) Setelah berhasil membuka pintu
masuk, Pak Daru memiliki dua pilihan: 28. Jika S = S dan P[i] = 0 untuk setiap
1 ≤ i ≤ N – 1, maka kompleksitasnya
Kabur melewati penjaga. Pilihan ini
adalah
membutuhkan waktu K[i].
A. O(N)
Mengalahkan penjaga. Pilihan ini mem­ B. O-N
butuhkan waktu L[i]. Setelah itu, stamina Pak C. O/N
Daru akan bertambah sebanyak 1. D. O+N
Jika Pak Daru berhasil mencapai E. N
lantai ke-N, Pak Daru akan menghadapi
29. Jika P[i] = 0 untuk setiap 1 ≤ i ≤ N – 1,
sang makhluk jahat. Pak
maka kompleksitasnya adalah
Dengklek dapat mengalahkan sang A. O(N LOG N )
makhluk jahat jika staminanya saat men- B. O(N-N)
capai lantai ke-N paling sedikit sebesar C. O(N)
stamina sang makhluk jahat, yakni S . D. O(N/N)
Untuk semua soal 1-5 , berlaku: E. O(N+N)

1) 1 = N = 300.000 30. Nilai kompleksitas dari solusi untuk


simpan K[i] – L[i] dalam setiap lantai
2) 0 = S , S = 300.000
selama S0d<P[i]
3) 0 = P[i], K[i], L[i] = 300.000 untuk se- A. O (N LOG N )
tiap 1 = i = N – 1 B. O(N-N)
C. O(N)
26. Dari pernyataan di atas maka dapat
D. O(N/N)
diselesaikan dengan menggunakan
E. O(N+N)
metode dan cara apa?

60
BAB

ARITMETIKA
2

A. Peluang Kombinasi dan urutan, yang dapat dirumuskan se-


Permutasi bagai berikut:
n = n!/ r! (n-r)!
1. Peluang
Ruang sampel adalah himpunan 3. Permutasi
semua hasil yang mungkin dari sebu­ Permutasi adalah penyusunan
ah percobaan banyak anggota ruang beberapa objek dengan memperha­
sampel. tikan urutannya. Yang perlu diperha­
Pada suatu percobaan terdapat tikan dalam permutasi adalah objek-
n hasil yang mungkin dan masing- objek yang ada harus dibedakan
masing berkesempatan sama untuk satu dengan yang lainnya. Permutasi
muncul. Jika dari hasil percobaan dapat dirumuskan sebagai berikut:
ini terdapat k hasil yang merupakan n = n! /( n – r )!
kejadian A, maka peluang kejadian
A ditulis P (A) ditentukan dengan B. Aturan-Aturan Mencacah
rumus: (Aturan Penjumlahan dan
P (A) = k / n Aturan Perkalian)
Mencacah atau kaidah penggandaan
2. Kombinasi merupakan suatu metode menghitung
Kombinasi adalah campuran atau banyaknya anggota suatu kejadian tan­pa
gabungan atau susunan dari semua terlebih dahulu mendaftar seluruh ang­
atau sebagian elemen dari suatu gota kejadian tersebut.
himpun­an yang tidak mementingkan
Aturan perkalian pada kaidah penca-
urutan elemen.
cahan adalah sebagai berikut:
Kombinasi juga merupakan su-
sunan yang tidak memperhatikan

61
Jika terdapat n unsur yang terse-
D. Matrik dan Operasi
dia, Matriks adalah susunan segi empat
siku-siku dari bilangan yang dibatasi
K1 = banyak cara untuk menyusun un-
dengan tanda kurung. Suatu matriks
sur pertama.
tersusun atas baris dan kolom, jika
K2 = banyak cara untuk menyusun un-
matriks tersusun atas m baris dan n
sur kedua setelah unsur pertama ter-
kolom maka dikatakan matriks tersebut
susun.
berukuran (berordo) m x n. Penulisan
K3 = banyak cara untuk menyusun un-
matriks biasanya menggunakan huruf
sur ketiga setelah kedua tersusun.
besar A, B, C dan seterusnya, sedangkan
Dan seterusnya sampai
penulisan matriks beserta ukurannya
Kn = banyak cara untuk menyusun un-
(matriks dengan m baris dan n kolom)
sur ke-n setelah objek n-1 unsur sebe-
adalah Amxn, Bmxn, dan seterusnya.
lumnya tersusun.
Maka banyak cara untuk menyu-
sun n unsur yag tersedia adalah:
E. Jenis-Jenis Matriks
1. Matriks bujur sangkar yaitu matriks
K1 X k2 X k3 X ...X kn
yang banyaknya baris sama dengan
banyaknya kolom.
C. Operasi Modulus
Mod adalah singkatan dari modulus
yang artinya sebuah operasi yang meng­
hasilkan sisa pembagian dari suatu bi­
langan terhadap bilangan lainnya. Se­
men­tara div adalah singkatan dari divide
yang berarti bagi. 2. Matriks segitiga atas adalah matriks
Teorema 1: Kumpulan sifat distributif bujursangkar yang semua elemen di
mengenai modulo bawah diagonal utama bernilai nol.

Jika a, b adalah bilangan bulat dan n


adalah bilangan asli, maka:

1. (a+b) mod n = (a mod n + b mod n)


mod n
2. (ab) mod n = ((a mod n) * (b mod n))
mod n 3. Matriks segitiga bawah adalah ma­
3. (a^b) mod n = ((a mod n)^b) mod triks bujursangkar yang semua ele­
n, untuk b bilangan bulat nonnegatif. men di atas diagonal utamanya ber­
nilai nol

62
Suatu barisan bilangan dapat pula
dibentuk dari bilangan-bilangan yang
tidak mempunyai pola (aturan) tertentu,
misalnya barisan bilangan 1, 2, 5, 7, 3,
4… . Barisan bilangan seperti ini disebut
barisan bilangan sembarang. Bilangan-
bilangan yang membentuk suatu barisan
F. Deret Bilangan Umum, bilangan disebut suku barisan tersebut.
Fibbonaci, Deret Segitiga Fibonacci
Deret bilangan adalah penjumlahan Fibonacci pertama kali dikembangkan
dari suku-suku barisan bilangan. oleh Leonardo da Pisa, atau dikenal
Diketahui barisan bilangan sebagai sebagai Leonardo Fibonacci.
berikut: Barisan bilangan Fibonacci dapat di-
1, 3, 5, 7, 9, … nyatakan sebagai berikut:

5, 10, 15, 20, … Fn = (x1n – x2n)/ sqrt(5)

2, 4, 8, 16, … dengan

48, 40, 32, 24, … Fn adalah bilangan Fibonacci ke-n.

Deret bilangan dari barisan bilangan x1 dan x2 adalah penyelesaian.


tersebut adalah: Persamaan x2 – x – 1 = 0.

1+3+5+7+9+… Penjelasan deret fibonacci seperti


berikut ini:
5 + 10 + 15 + 20 + …

2 + 4 + 8 + 16 + … 1. jika ada deret bilangan dengan 2


angka pertama adalah 0 dan 1, maka
48 + 40 + 32 + 24 + …
deret fibonaccinya adalah 0, 1, 1, 2, 3,
Barisan Bilangan 5, 8, dan seterusnya.
Bilangan-bilangan yang diurutkan
2. jika ada deret bilangan dengan 2
dengan pola (aturan) tertentu memben-
angka pertama adalah 3 dan 5, maka
tuk suatu barisan bilangan. Misalnya, ba-
deret fibonaccinya adalah 3, 5, 8, 13,
risan bilangan
21, dan seterusnya.
1. 40, 44, 48, 52, 56, …, 116
G. Teori Bilangan
2. 1, 3, 5, 7, 9, …, 51 dan Teori bilangan (number theory) adalah
teori yang mendasar dalam memahami
3. 2, 4, 6, 8, 10, …, 98.
algoritma kriptografi. Bilangan yang

63
dimaksudkan adalah bilangan bulat Aplikasi Prinsip Inklusi-Eksklusi
(integer). Prinsip Inklusi-Eksklusi memiliki ba­
nyak aplikasi, di antaranya dalam pe­
Bilangan bulat adalah bilangan yang
nye­­li­dikan banyaknya bilangan prima
tidak mempunyai pecahan desimal, mi-
yang tidak melebihi suatu bilangan bulat
salnya 8, 21, 8765, -34, 0.
positif tertentu. Perhitungan ini dapat
Berlawanan dengan bilangan bulat dimanfaatkan dalam menjawab perma­
adalah bilangan riil yang mempunyai titik salah­an saringan Eratosthenes.
desimal, seperti 8.0, 34.25, 0.02.
Dalam saringan Eratosthenes, kita
H. Prinsip Inklusi – Eklusi mem­ buat suatu saringan yang mampu
menyaring bilangan-bilangan, demikian
Penggabungan dua buah himpunan
sehingga yang tersisih setelah disaring
menghasilkan sebuah himpunan baru
hanyalah bilangan prima yang dimaksud.
yang elemen nya berasal dari himpunan
A dan himpunan B. Himpunan A dan Untuk memahami prinsip ini, per-
himpunan B mungkin saja memiliki tama-tama kita kaji pengertian bilangan
ele­
men yang sama, dan hal tersebut bulat komposit. Bilangan komposit ada-
dapat ditemukan dalam |A ∩ B|. Setiap lah bilangan yang habis dibagi oleh bi-
unsur yang sama itu telah dihitung dua langan prima yang tidak melebihi akar
kali, sekali pada |A| dan sekali pada |B|, kuadratnya. Sebagai contoh, 50 adalah
meskipn ia dianggap sebagai sebuah bilangan komposit. Bilangan ini dapat di-
elemen pada |A ∪ B|. bagi habis oleh bilangan prima yang ti-
dak lebih dari 50 7 .

64
Soal Olimpiade
Sains Nasional Komputer
OSN TINGKAT KABUPATEN A. 5
B. 10
1. Jika n! = n x (n-1) x (n-2) x … x 1 un- C. 30
tuk setiap bilangan bulat positif n, D. 45
dan C(a, b) = a!/(b!(a–b)!), untuk a > E. 21
b, keduanya bilangan bulat positif.
(SOAL OSN TINGKAT KABUPATEN TAHUN 2015
Berapakah C(7, 3) x C(4, 2) x C(2, 1)
x C(1, 1)?
4. Berapa banyak kemungkinan solusi
A. 1240
untuk x + y + z = 11, jika x, y, z ada-
B. 420
lah bilangan-bilangan bulat positif
C. 33452
dan tidak ada yang sama harganya?
D. 115420
A. 5
E. 22
B. 10
2. Berapa banyak kemungkinan solusi C. 30
untuk x + y + z = 11, jika x, y, z adalah D. 45
bilangan-bilangan bulat positif dan E. 21
tidak ada yang sama harganya?
(SOAL OSN TINGKAT KABUPATEN TAHUN 2007)
A. 5
B. 10
5. Jika w, x, y dan z adalah ekspresi bi­
C. 30
langan bulat, masing-masing persa­
D. 45
maan berikut ini memiliki nilai yang
E. 21
sama, kecuali...
(SOAL OSN TINGKAT KABUPATEN TAHUN 2015) A. wx + wy + wz
B. (w + x + y) + 3
3. Berapa banyak kemungkinan solusi C. 3w + x + y + z
untuk x + y + z = 11, jika x, y, z ada- D. wx + w(y+z)
lah bilangan-bilangan bulat positif E. w(x + y) + wz
dan memenuhi hubungan x < y < z?
(SOAL OSN TINGKAT NASIONAL TAHUN 2014)

65
6. Seorang pelajar pergi ke sekolahnya, Deskripsi untuk soal nomor 8 – 10!
berangkat dari rumahnya ia berjalan Operasi modulo a mod b akan
kaki dengan kecepatan 5 km per jam. menghasilkan sisa pembagian a oleh
Tepat di pertengahan jarak antara b. Misalnya
rumah dan sekolahnya, ia bertemu
19 mod 4 menghasilkan 3 karena
teman karib sekolahnya yang sedang
19 = 4 x 4 + 3.
naik sepeda. Lalu ia segera dibonceng
temannya hingga sampai di sekolah. Bilangan faktorial n! untuk n bi-
Kecepatan temannya memacu sepe­ langan bulah positif, adalah hasil
da­nya adalah 15 km per jam. Berapa­ perkalian semua bilangan bulat dari
kah kecepatan gabungan yang terja­ 1 sampai dengan n. Misalnya 5! = 1 x
2 x 3 x 4 x 5.
di ( jarak tempuh total dibagi total
waktu)?
8. Berapakah 1012 mod 13?
A. 7,5 km per jam
A. 12
B. 10 km per jam
B. 3
C. 12,5 km per jam
C. 4
D. 13 km per jam
D. 9
E. 20 km per jam
E. 1
(SOAL OSN TINGKAT KABUPATEN TAHUN 2007)
(SOAL OSN TINGKAT KABUPATEN TAHUN 2007)

7. Berapakah 7450 mod 100? (Catatan:


9. Berapakah 12! mod 13?
n mod m, adalah sisa pembagian
A. 5
n oleh m, misalnya 41 mod 7 = 6
B. 9
karena 41 – (7 x 5) = 6).
C. 12
A. 1
D. 7
B. 51
E. 11
C. 49
D. 43 (SOAL OSN TINGKAT KABUPATEN TAHUN 2007)

E. 7
10. Jika 10! mod x = 0, maka manakah
(SOAL OSN TINGKAT KABUPATEN TAHUN 2007)
dari berikut ini yang tidak bisa me-
menuhi sebagai x?
a. 14175
b. 2268
c. 1575
d. 025
e. 3584

(SOAL OSN TINGKAT KABUPATEN TAHUN 2007)

66
11. Sebuah tangki air memiliki enam seharga 5 ribu per meter. Asumsikan
buah kran air di bagian dasarnya. Jika bahwa tidak terjadi perubahan pan-
semua kran dibuka maka tangki yang jang yang signifikan sebelum dan se-
terisi penuh akan habis isinya dalam telah penyambungan, berapa banyak
8 jam. Berapa jamkah yang dibutuh- sambungan yang dibuat agar nilai
kan untuk menghabiskan isi tangki penjualan setelah dikurangi biaya
bila hanya 4 buah kran yang dibuka? penyambungannya adalah sebesar-
A. 9 besarnya?
B. 10 A. 3
C. 11 B. 4
D. 12 C. 5
E. 14 D. 6
(SOAL OSN TINGKAT KABUPATEN TAHUN 2007) E. 7

(SOAL OSN TINGKAT KABUPATEN TAHUN 2007)


12. Seutas kabel serat optik yang pan­
jangnya 200 meter diketahui terputus 13. Jika operasi (a mod b) adalah sisa
didalamnya tepat di satu posisi. Ka­ dari operasi pembagian a oleh b,
rena secara fisik tidak terlihat ada­ berapakah (77.777.777 mod 100) +
nya tanda-tanda di mana lokasi yang (55.555.555 mod 10)?
putus itu, kabel dipotong-potong A. 5
sebagai berikut: B. 12
a. Pertama kabel dipotong di te­ C. 75
ngah, lalu masing-masing dipe­ D. 77
riksa E. 99
b. Bagian yang baik disimpan un­tuk
(SOAL OSN TINGKAT KABUPATEN TAHUN 2009)
disambung-sambungkan kem­
ba­li nanti,
14. Ada 3 pedagang keliling: Ali, Bahar,
c. Sementara yang di dalamnya
dan Cholil, yang secara berkala me-
terputus kembali dipotong di te­
ngunjungi kota A untk berjualan.
ngahnya, hingga potongan su­
a. Ali mengunjungi kota A setiap 10
dah terlalu kecil, langsung dibu­
hari sekali dan terakhir ia datang
ang.
3 hari yang lalu.
Potongan-potongan kabel yang
b. Bahar mengunjungi kota A seti-
baik kemudian disambung-sam-
ap 6 hari sekali dan besok ia akan
bungkan kembali dengan biaya pe-
datang.
nyambungan 25 ribu per sambungan.
Kabel yang sudah disambung-sam-
bungkan itu nanti masih dapat dijual

67
c. Cholil mengunjungi kota A setiap D. Halte 4 dan halte 7.
dua minggu sekali dan terakhir ia E. Halte 7 dan halte 8.
datang 5 hari yang lalu.
(SOAL OSN TINGKAT KABUPATEN TAHUN 201!)

Berapa hari lagikah berikutnya 16. 11100 mod 41 =


mereka akan bersamaan mengun- A. 1
jungi kota A pada hari yang sama? B. 19
A. 101 C. 20
B. 15 D. 29
C. 45 E. 40
D. 66 (SOAL OSN TINGKAT KABUPATEN TAHUN 2011)
E. 37

(SOAL OSN TINGKAT KABUPATEN TAHUN 2007) 17. 11 x 22 x 33 x 44 x 55 x ... x 3030 dapat
habis dibagi oleh 10n. Berapakah bi-
15. Pada suatu ketika sebuah bis seko­ langan n terbesar yang mungkin?
lah mengantar pulang enam siswa­ A. 105
nya yaitu J, K, L, M, N, P dan Q. Sekolah B. 130
berada pada kilometer (KM) ke 1 pada C. 30
D. 150
sebuah jalan raya. Saat menurunkan
E. 110
siswa, bus hanya mungkin berhenti
pada halte-halte yang posisinya di (SOAL OSN TINGKAT KABUPATEN TAHUN 2011)

KM ke 2, ke 3, ke 4 dan seterusnya.
Kita sebut halte 2, halte 3, halte 4 dan 18. Bilangan 6075 habis dibagi bilangan-
seterusnya. Pada saat itu, di halte 3 dan bilangan positif: n1, n2, .. n3 dan
halte 6, tidak ada siswa yang turun. seterusnya. Jika bilangan-bilangan
Ketika bis tersebut melaju setelah tersebut dijumlahkan adalah ...
berhenti di halte 8, hanya tersisa 3 A. 11281
orang siswa di dalam bis dan P dan Q B. 11282
tidak termasuk di dalamnya. Diketahui C. 11283
juga P turun terlebih dahulu dari pada D. 11284
Q (tidak pada halte yang sama). Jika J E. 11285
turun dari bis pada dua halte setelah (SOAL OSN TINGKAT KABUPATEN TAHUN 2008)
M turun, di manakah kemungkinan J
turun dari bis? 19. Suatu gedung dikerjakan oleh 20
A. Halte 2 dan halte 4. orang pekerja. Pekerjaan itu akan
B. Halte 2, halte 4 dan halte 7. selesai dalam 100 hari. Namun, setelah
C. Halte 5, halte 7 dan halte 8. 40 hari bekerja, 5 orang pekerja

68
mengalami kecelakaan sehingga A. 9
para pekerja berkabung selama 1 B. 5
hari (tidak bekerja). Hari selanjutnya, C. 7
mereka melanjutkan pekerjaan ter­ D. 3
sebut. Namun, karena masih berada E. 4
dalam suasana berkabung, ada (SOAL OSN TINGKAT KABUPATEN TAHUN 2007)
10 orang pekerja yang kecepatan
bekerjanya berkurang 20% dan 22. Pak Birla beserta istri dan Pak Tata
sisanya mengundurkan diri. Berapa beserta istri bertanding pada turna-
total waktu yang dibutuhkan untuk men catur (sistem gugur). Dari 3 per-
menyelesaikan pekerjaan tersebut tandingan yang dimainkan:
dimulai dari hari pertama kerja? 1) Hanya pada pertandingan perta-
A. 185 ma, suami dan istri bertanding.
B. 184
2) Laki-laki memenangkan 2 per-
C. 190
tandingan dan perempuan me-
D. 191
menangkan hanya 1 pertanding-
E. 161
an.
(SOAL OSN TINGKAT KABUPATEN TAHUN 2007)
3) Keluarga Birla memenangkan
pertandingan lebih banyak dari-
20. 1/2 + 1/6 + 1/12 + 1/20 + ... + 1/9900
pada keluarga Tata.
=
A. 99/100 4) Siapa yang kalah tidak bisa ber-
B. 96/100 main untuk pertandingan selan-
C. 98/100 jutnya,
D. 97/100 Siapa yang tidak pernah kalah?
E. 100/100
A. Bu Tata
(SOAL OSN TINGKAT KABUPATEN TAHUN 2007) B. Pak Tata
C. Bu Birla
21. Sebuah password (kata sandi) yang D. Pak Birla
terdiri dari 5 angka. Angka ke-4 E. Tidak ada jawaban yang benar
lebih besar daripada angka ke-2 (SOAL OSN TINGKAT NASIONAL TAHUN 2014)
dengan selisih 4. Sementara angka
ke-3 kurang dari angka ke-2 dengan 23. Berapa banyak persegi panjang yang
selisih 3. Angka pertama adalah 3 kali dapat terbentuk dalam papan catur
lipat angka terakhir. Ada 3 pasang berukuran n*n?
angka dengan jumlah 11. Berapakah A. n2 {catatan: n2 berarti n pangkat
angka ke-4 dari password tersebut? 2}

69
B. (n(n+1)/2)2 26. Amar sedang mengikuti kontes
C. n(n+1)(2n+1)/6 pemrograman TOKI. Tiap kali berhasil
D. n(n+1)(3(n2)+n­1)/6 mengerjakan soal, ia mendapatkan
E. (3n+1)*(n+2)!/4!*(n­1)! sebuah balon dengan warna unik
(SOAL OSN TINGKAT NASIONAL TAHUN 2008) untuk masing-masing soal. Saat
ini, ia telah berhasil menyelesaikan
24. Ada pipa air horizontal berbentuk semua soal dengan mudah. Namun,
lingkaran yang terisi sebagian. Jika rupanya panitia kehabisan balon
dilihat secara melintang, ketinggian sehingga Amar mendapat balon
air adalah 24 cm, sedangkan lebar air dengan warna yang sama untuk soal
pada permukaannya juga 24 cm. Be- yang terakhir (soal kelima). Waktu
rapakah diameter pipa tersebut? masih lama, sehingga Amar tidak
punya kegiatan. Ia pun menyusun
balonnya berjajar di depannya. Amar
lalu berpikir, ada berapa banyak
kombinasi susunan yang berbeda
yang dapat dibentuknya dengan
balon-balonnya?
A. 30
B. 60
A. 28 cm C. 90
B. 30 cm D. 120
C. 32 cm E. 240
D. 36 cm
(OSN TINGKAT KABUPATEN TAHUN 2013)
E. Jawaban A, B, C, D salah

(SOAL OSN TINGKAT KABUPATEN TAHUN 2013) 27. Andi memiliki 5 bilangan, yaitu 11,
13, 17, 19, dan 23. Dia bermaksud
25. Berapakah n minimal sedemikian se­ memilih satu bilangan lalu mengu­
hingga n! memiliki 2013 angka nol di rangkan bilangan tersebut dengan
belakangnya? (n! = nx(n­
1)x...3x2x1) 5. Dia kemudian mengalikan kelima
{catatan: n! berarti n faktorial} bilangan termasuk bilangan yang telah
A. 8065 dikurangkan tadi. Apabila dia ingin
B. 8064 agar hasil perkaliannya mak­
simal,
C. 8060 manakah bilangan yang dipilih Andi?
D. 8051 A. 11 D. 19
E. 8050 B. 13 E. 23
(OSN TINGKAT KABUPATEN TAHUN 2013) C. 17

(OSN TINGKAT KABUPATEN TAHUN 2013)

70
28. Berapakah banyak faktor dari 144.000 30. Cakra dan Basit dapat membangun
yang juga merupakan faktor dari sebuah kandang ayam dalam 6 hari.
450.000? Amar dan Basit dapat membangun
A. 24 sebuah kandang ayam dalam 3 hari.
B. 36 Amar dan Cakra dapat membangun
C. 48 kandang ayam dalam 5 hari. Pada
D. 60 suatu kesempatan mereka memba­
E. 72 ngun sebuah kandang ayam (mulai
(OSN TINGKAT KABUPATEN TAHUN 2013) bersama-sama). Namun pada hari
kedua dan seterusnya Cakra tidak
29. Operasi “a mod b” berarti sisa ketika dapat melanjutkan pekerjaannya ka­
a dibagi dengan b. Contohnya 5 mod rena sakit perut. Berapa hari yang
3 = 2. Berapakah dibu­
tuhkan untuk membangun
353653664176826832176826834 kan­­dang ayam tersebut (sejak awal
mod 13? mem­ba­ngun)?
A. 2, 75
A. 0
B. 2, 80
B. 1
C. 2, 85
C. 2
D. 2, 90
D. 3
E. 2, 95
E. 4
(OSN TINGKAT KABUPATEN TAHUN 2015)
(OSN TINGKAT KABUPATEN TAHUN 2013)

71
SOAL OSN TINGKAT PROVINSI D. 1/18
E. 1/22
1. Bila z bilangan bulat positif terkecil
(SOAL OSN TINGKAT PROVINSI TAHUN 2014)
yang memberikan sisa 5 jika dibagi
dengan 13 dan memberikan sisa 3
4. Bilangan bulat positif terkecil yang
jika dibagi dengan 18, berapa sisanya
memiliki tepat 6 pembagi (termasuk
jika dibagi dengan 11?
1 dan dirinya sendiri) adalah 12. Bi-
A. 2
B. 3 langan bulat positif terkecil yang me-
C. 4 miliki tepat 30 pembagi adalah...
D. 5 A. 730
E. 6 B. 740
C. 750
(SOAL OSN TINGKAT PROVINSI TAHUN 2012
D. 720
E. 710
2. Didefinisikan n! = n x (n-1) x (n-2)...
(SOAL OSN TINGKAT PROVINSI TAHUN 2012)
x 2 x 1. Berapakah banyaknya digit 0
beruntun di akhir 500!?
5. Jika a, b, c, d dan e adalah bilangan-
A. 241
B. 124 bilangan cacah (0, 1, 2, ...) dan dike-
C. 321 tahui pula a x b x c x d x e = 864,
D. 322 berapakah banyaknya kemungkinan
E. 122 nilai-nilai kelima bilangan tersebut
dapat dibuat jika a x b harus sama
(SOAL OSN TINGKAT PROVINSI TAHUN 2012)
dengan 12 dan setiap bilangan boleh
digunakan lebih dari satu kali?
3. Sebuah slot machine memiliki tiga
A. 240
roda undi. Di setiap roda ada 4
B. 750
simbol, yaitu A, B, C, dan D. Setiap
C. 570
kali pengguna menarik tuas, ketiga
D. 440
roda undi akan berputar dan masing-
E. 360
masing roda berhenti di suatu simbol
tertentu. Pengguna akan menang jika 6. Dalam suatu deret bilangan bulat {xi
ketiga simbol yang ditunjukkan roda , i > 0}, xi+1 = 2 xi. (bilangan berikut-
undi semuanya sama. Berapakah pe­ nya = dua kali bilangan sebelumnya).
lu­
ang pengguna untuk menang di Jika jumlah sebelas bilangan perta-
slot machine ini? ma berurutan adalah 14329 maka bi-
A. 1/32 langan kelimabelasnya adalah...
B. 1/12 A. 119879
C. 1/16 B. 114688

72
C. 117898 B. 7.75
D. 119099 C. 8.75
E. 129002 D. 9.75
E. 10.75
(SOAL OSN TINGKAT PROVINSI TAHUN 2012)
(SOAL OSN TINGKAT PROVINSI TAHUN 2014)
7. Perhatikan aturan-aturan berikut ini:
1<x, y, z<9 9. Pada sebuah toples, terdapat 1 juta

x3 bilangan ganjil ekor bakteri. Pada setiap detiknya,


setiap bakteri membelah diri menja-
x(x+1) > 20
di tepat dua ekor bakteri, kemudian
y3 bilangan genap toples tersebut dimasukkan 1 juta
x*y < 50 ekor bakteri tambahan. (Pada detik
pertama, ada 3 juta bakteri. Pada de-
z bilangan genap
tik kedua, ada 7 juta bakteri.) Berapa-
x+y+z<17 kah banyak bakteri pada detik ke 14?
Berapakah nilai x*(y+z) maksimal A. 32.767
yang bisa dibentuk? B. 33.767
C. 34.767
A. 77
D. 35.767
B. 80
E. 36.767
C. 56
D. 87 (SOAL OSN TINGKAT PROVINSI TAHUN 2014)

E. 96

(SOAL OSN TINGKAT PROVINSI TAHUN 2013) Deskripsi untuk soal nomor 10 - 12

Dari 100 orang peserta OSN kom-


8. TOKI Camp 2014 kali ini diadakan puter, diketahui 40 orang menyukai soal
di sebuah bukit. Seorang alumni kombinatorika, 40 orang suka soal teori
TOKI mendaki bukit tersebut dengan bilangan, dan 48 orang suka teka-teki si-
berjalan dengan kecepatan 1,5 km/ lang. Diketahui pula 4 orang suka ketiga-
jam. Ketika menuruni bukit tersebut, nya.
ia berjalan tiga kali lebih cepat.
Jika waktu yang dibutuhkan untuk 10. Jika peserta yang hanya suka dengan
melakukan perjalanan bolak-balik satu jenis soal saja ada 50 orang, be-
dari kaki bukit ke puncak bukit dan rapa orang yang hanya suka dengan
kembali ke kaki bukit adalah 6 jam, dua jenis soal?
maka jarak antara kaki bukit dan A. 33
puncak bukit adalah..... B. 34
A. 6.75 C. 35

73
D. 36 D. 18
E. 37 E. 17

(SOAL OSN TINGKAT PROVINSI TAHUN 2014) (SOAL OSN TINGKAT PROVINSI TAHUN 2014)

11. Berdasarkan jawaban soal sebelum- 14. Dewangga memiliki 2 ekor semut
nya, jika yang hanya menyukai soal dan 2 ekor anak semut. Suatu hari,
kombinatorika adalah 14 orang, be- para semut dan anaknya ingin me-
rapa orang yang suka kombinatorika nyeberangi sungai dengan menggu-
dan teori bilangan, atau suka kombi- nakan perahu daun. Namun, perahu
natorika dan teka-teki silang, namun daun tersebut hanya cukup menam-
tidak ketiganya? pung 2 ekor anak semut atau seekor
A. 10 semut dewasa. Hebatnya, para semut
B. 20 Dewangga sudah terlatih untuk men-
C. 22 dayung perahu daun, sehingga tiap
D. 30 kali menyeberang minimal harus ada
E. 33 1 ekor semut atau 1 ekor anak semut
(SOAL OSN TINGKAT PROVINSI TAHUN 2014) yang mendayung. Untuk menyebe-
rangkan keempat ekor semut, berapa
12. Bila peserta yang menyukai persis kali minimum perahu tersebut harus
hanya 2 jenis soal adalah 31 orang, menyeberangi sungai (bolak-balik di-
berapa orang yang tidak suka satu- hitung 2 kali penyeberangan)?
pun dari ketiga jenis soal tersebut? A. 11
A. 8 B. 10
B. 9 C. 9
C. 10 D. 8
D. 11 E. 7
E. 12 (SOAL OSN TINGKAT PROVINSI TAHUN 2015)

(SOAL OSN TINGKAT PROVINSI TAHUN 2015)


15. Ammar, Soko, Salvian, Ivan dan Raki-
13. Diberikan sebuah fungsi F(x) = 1 - 2x na bermain ayam-bebek. Setiap anak
- 3x2 - 4x3 dengan x bilangan bulat menjadi ayam atau bebek, tetapi ti-
dimulai dari 1 sampai dengan 30. dak kedua-duanya. Ayam selalu jujur,
Berapakah x yang memenuhi F(x) = sementara bebek selalu berdusta.
-20552? Ammar berkata bahwa Soko adalah
A. 12 ayam. Salvian berkata bahwa Ivan
B. 14 adalah bebek. Rakina berkata Am-
C. 16 mar bukan bebek. Soko berkata Sal-

74
vian bukan ayam. Ivan berkata bahwa berkaki empat atau pemakan tum-
Rakina dan Ammar adalah binatang buhan adalah 51/62, kemungkinan
yang berbeda. Berapakah banyaknya terpilih berkaki dua atau pemakan
bebek dalam permainan ini? tumbuhan adalah 11/62, dan tidak
A. 5 mungkin terpilih hewan tanpa kaki
B. 6 yang pemakan segala ataupun pe-
C. 3 makan tumbuhan yang berkaki. Jika
D. 2 di antara hewan tanpa kaki dipilih
E. 4 secara acak, kemungkinan didapat-
(SOAL OSN TINGKAT PROVINSI TAHUN 2014) kan hewan yang pemakan tumbuhan
adalah 1/2. Terakhir, peluang dida-
16. String adalah kumpulan dari karakter, patkan hewan tanpa kaki atau pema-
sedangkan substring adalah string kan tumbuhan adalah 1/31. Berapa
yang berturutan yang merupakan peluang mendapatkan hewan berka-
bagian dari string lain. Misal, “AB- ki empat?
CDEF”, “BCDE”, dan “ABEC” adalah A. 25/20
string. “CBBC” merupakan substring B. 25/31
dari “ACBBCA” namun “CBCA” bukan C. 25/25
merupakan substring dari “ACBBCA”. D. 25/35
Berapa banyak string yang terdiri dari E. 25/15

huruf A, B dan C, yang memiliki pan- (SOAL OSN TINGKAT PROVINSI TAHUN 2014)
jang 8 dan tidak mengandung sub-
string AB? 18. Sebelas tim sepak bola akan bertan­
A. 2344 ding satu dengan yang lain dalam
B. 2456 sebuah turnamen. Setiap tim akan
C. 2123 bertanding dengan sepuluh tim
D. 2584 yang lain sebanyak tepat satu kali.
E. 2384 Tim yang menang dalam sebuah
(SOAL OSN TINGKAT PROVINSI TAHUN 2014) pertandingan akan mendapatkan 5
poin, sedangkan yang kalah menda­
17. Di sebuah peternakan terdapat be- pat­kan 0 poin. Bila seri maka kedua
berapa jenis hewan. Ada yang pema- tim akan mendapatkan 1 buah poin.
kan tumbuh-tumbuhan, daging dan Berapa banyak total poin yang mung­
pemakan segala. Ada yang berkaki kin terjadi jika jumlah dari poin yang
2, berkaki 4 dan tidak berkaki. Jika didapatkan oleh semua tim tersebut
suatu saat dipilih secara acak seekor antara 100 sampai dengan 210?
hewan, kemungkinan terpilih hewan

75
A. 35 kemungkinan menyusut sebanyak Si cm setiap ma-
B. 34 kemungkinan lam hari. Diketahui bahwa:
C. 37 kemungkinan Tanam-
Ti Si
D. 36 kemungkinan an ke - i
E. 38 kemungkinan 1 30 3
2 20 4
(SOAL OSN TINGKAT PROVINSI TAHUN 2015) 3 10 2
4 25 5
19. Pada suatu hari, Dedew dan Thony Artinya, apabila tanaman ke-1
sedang bermain sebuah game dipanen pada hari ke-1, tingginya
bilangan. Kedua pemain bergantian adalah 30 cm. Apabila dipanen pada
mengucapkan bilangan asli hari ke-2, tingginya adalah 27 cm.
secara berurutan (dari 1), hingga Apabila dipanen pada hari ke-3, ting-
permainan berhenti. Jika sebuah ginya adalah 24 cm, dan seterusnya.
bilangan mengandung angka 7, atau Jika dalam 1 hari hanya dapat mema-
merupakan kelipatan 7, maka pemain nen habis 1 tanaman saja, berapakah
harus mengucapkan “Up!”, bukan JUMLAH tinggi keempat tanaman
bilangannya. Game ini berhenti hasil panen MAKSIMAL yang mung-
jika ada pemain yang melakukan kin didapat?
kesalahan (mengucapkan “Up!” A. 79
pada saat yang kurang tepat, atau B. 49
tidak mengucapkan “Up!” pada saat C. 69
bilangan itu mengandung angka 7 D. 59
atau merupakan kelipatan 7). Jika E. 89
game ini berhenti di bilangan 178,
(SOAL OSN TINGKAT PROVINSI TAHUN 2015)
berapa banyak jumlah “Up!” yang
telah diucapkan oleh kedua pemain?
A. 54 Deskripsi untuk soal nomor 21 – 22!

B. 55 Raja putih baru saja mendapatkan


C. 56 jenis pasukan baru yaitu 150 ekor Naga.
D. 57 Naga menyerang dengan cara menyem-
E. 58 burkan api atau menyemburkan es. Agar
(SOAL OSN TINGKAT PROVINSI TAHUN 2015) dapat menyemburkan api, sebelumnya
naga harus diberi makan dengan da-
20. Ada 4 buah tanaman yang harus di- ging. Jika naga diberi makan sayuran
maka Naga akan menyemburkan es. Ada
panen. Tanaman ke-i memiliki tinggi
3 jenis daging yang dapat dimakan oleh
Ti cm pada hari pertama ketika akan
naga yaitu; Daging sapi, ayam, bebek. Di-
dipanen dan jika tidak dipanen akan
ketahui ada 60 naga yang menyukai da-

76
ging sapi, 72 naga yang menyukai daging membawa sebuah senter. Diketahui
ayam, 80 naga yang menyukai daging untuk melewati jembatan tersebut
bebek, dan 7 naga vegetarian yang tidak Pak Dengklek membutuhkan waktu
makan daging (menyemburkan es). selama 10 detik, Bu Dengklek mem­
bu­
tuhkan waktu 5 detik, Ammar
21. Jika ada 55 naga yang menyukai da- membu­
tuhkan waktu 2 detik dan
ging sapi dan bebek, berapa jumlah Ra­ki­na membutuhkan waktu selama
naga yang hanya menyukai daging 1 detik. Apabila terdapat 2 orang
ayam? yang melewati jembatan di saat
A. 54 yang bersamaan, maka orang yang
B. 32 lebih cepat akan menyesuaikan ke­
C. 36
ce­
pat­
annya dengan orang yang
D. 58
lebih lambat. Waktu minimal yang
E. 37
dibu­­tuh­kan untuk mereka melewati
(SOAL OSN TINGKAT PROVINSI TAHUN 2015) jemba­­tan tersebut adalah ….. detik.
A. 14
22. Jika ternyata ada 9 naga yang yang B. 15
tidak makan daging maupun sayuran C. 16
(mereka hanya minum), dan ada 40 D. 17
naga yang menyukai daging ayam E. 18
dan bebek, berapa jumlah naga yang (SOAL OSN TINGKAT PROVINSI TAHUN 2015)
menyukai daging sapi dan (bebek
atau ayam)? 24. Diberikan deret bilangan:
A. 35 2 5 4 15 8 45 X Y
B. 36
Berapakah nilai X dan nilai Y?
C. 37
D. 38 A. X = 16 , Y = 135
E. 39 B. X = 17 , Y = 140
C. X = 18 , Y = 145
23. Pak Dengklek, Bu Dengklek, Ammar
D. X = 19 , Y = 155
dan Rakina ingin melewati sebuah
E. X = 20 , Y = 160
jembatan. Karena sudah berumur
(SOAL OSN TINGKAT PROVINSI TAHUN 2015)
1000 tahun, jembatan tersebut hanya
bisa dilewati oleh maksimal 2 orang.
25. Diberikan dua buah angka A dan B
Karena hari sudah malam, maka untuk
dengan ketentuan bilangan A dan
dapat melewati jembatan tersebut
B merupakan bilangan real. Tulislah
diperlukan senter sebagai sumber
rumusan yang menghasilkan nilai
penerangan. Namun, mereka hanya
terbesar dari dua bilangan tersebut

77
dengan operator bilangan biasa (+, -, A. 2
×, ÷) dan fungsi ABS (nilai absolut 2 B. 9
buah nilai real) tanpa memakai ope- C. 6
rator perbandingan (<, >, =, =, =,?). D. 4
A. (A + B - abs(A + B))/2 E. 8
B. (A + B + abs(A +B))/2 (SOAL OSN TINGKAT PROVINSI TAHUN 2015)
C. (A + B - abs(A - B))/2
D. (A - B - abs(A - B))/2 27. Pada sebuah permainan, seorang
E. (A + B + abs(A - B))/2
ksatria mula-mula berada pada po-
(SOAL OSN TINGKAT PROVINSI TAHUN 2016) sisi (1, 1) dan hendak pergi ke posisi
(6, 6) untuk menyelamatkan seorang
26. Athin dan Ayos sedang bermain te- putri yang cantik. Setiap petak per-
bak-tebakan bilangan dan terjadilah mainan dapat berisi vitamin atau ra-
percakapan berikut: cun.
Athin: “Aku memikirkan sebuah Petak yang berisi vitamin dilam-
bilangan bulat antara 1 sampai de- bangkan dengan bilangan positif
ngan 10 “. pada peta, yaitu ramuan yang akan
Ayos: “Apakah bilangan tersebut menambah kekuatan ksatria, atau
bilangan prima?” Petak yang berisi racun dilam-
Athin: “....” (Athin menjawab de- bangkan dengan bilangan negatif
ngan ya / tidak, tapi hanya Ayos yang pada peta, yaitu ramuan yang akan
mendengar ucapannya). mengurangi kekuatan ksatria.

Ayos: “Apakah bilangan tersebut


bilangan ganjil?”

Athin: “....” (Athin menjawab de-


ngan ya / tidak, tapi hanya Ayos yang
mendengar ucapannya).

Ayos: “Oh, dengan ini barulah


aku tahu bilangan yang kamu tebak
adalah X”

Athin: Ya Benar, X adalah ....... {tu-


liskan jawaban dalam bentuk angka
saja} Pada permainan ini, ksatria
Catatan: 1 bukan bilangan prima. hanya bisa berjalan ke arah timur
atau selatan (tidak bisa melangkah
secara diagonal). Ksatria tidak

78
pernah boleh kehabisan kekuatan 30. Pada suatu permainan kartu, terda­
(kekuatan bernilai negatif atau 0) pat 2 jenis kartu: kartu emas dan
selama permainan berlangsung, kartu perak. Permainan dilakukan
termasuk pada awal permainan, dan oleh 1 orang pemain dengan tujuan
semua ramuan pada petak-petak mendapatkan kartu emas sebanyak-
yang dilewati ksatria harus diminum. banyaknya. Berikut adalah aturan
Tentukan jumlah kekuatan awal permainan tersebut:
minimum yang harus dimiliki ksatria Pada setiap putaran, pemain ha-
pada awal permainan agar ksatria nya dapat mengambil selembar kar-
tersebut dapat menyelamatkan sang tu.
putri dan memenangkan permainan!
Pemain tidak dapat mengambil 5
A. 80 kartu perak secara berturut-turut.
B. 81
Jika pada p+1 putaran sebelum-
C. 82
nya pemain telah mengambil p+1
D. 83
kartu perak secara berturut-turut,
E. 84
maka paling banyak p kartu emas
(SOAL OSN TINGKAT PROVINSI TAHUN 2016) baru boleh diambil secara berturut-
turut.
28. Jika 1234 = 2x1 + 2x2 + 2x3 + 2x4
Berapa jumlah maksimal kartu
+ 2x5 dimana x1, x2, . . . , x5 adalah
emas yang dapat diambil jika pemain
bilangan cacah, dan x1 < x2 < . . . <
bermain selama 613 putaran?
x5. Tentukan nilai x1 + x2 +. . . + x5!
A. 26 A. 264
B. 28 B. 264
C. 30 C. 262
D. 32 D. 265
E. 35 E. 266

(SOAL OSN TINGKAT PROVINSI TAHUN 2014)


(SOAL OSN TINGKAT PROVINSI TAHUN 2016)

29. Tentukan jumlah seluruh bilangan


gan­jil antara 50 dan 150
A. 3000
B. 3500
C. 4000
D. 7000
E. 5000

(SOAL OSN TINGKAT PROVINSI TAHUN 2008)

79
SOAL OSN TINGKAT NASIONAL kubus sebagai berikut. Kubus-kubus
disusun mulai dari tingkat paling
1. Jika untuk bilangan-bilangan bulat
dasar ke tingkat lebih tinggi. Satu
positif x, y, dan z, berlaku (y + z)/3 <
ting­
kat baru disusun jika semua
x, dan x < y < z < 10. Manakah harga
kubus pada tingkat di bawahnya
(x+y+z) berikut ini yang tidak meme-
lengkap (kecuali tingkat paling dasar
nuhi?
tentu­nya disusun di atas tanah). Me­
A. 23
nu­
rut rencana tingkat paling dasar
B. 20
disusun dari 15x15 kubus, tingkat
C. 21
beri­kutnya disusun dari 14x14 kubus,
D. 24
dan seterusnya hingga yang tera­
E. 22
tas adalah 1x1 kubus. Karena ter­
(SOAL OSN TINGKAT NASIONAL TAHUN 2009) jadi suatu bencana nasional pem­
ba­
ngunan piramid dihentikan
2. Si Nona baru belajar baca dan hitung. sebe­
lum waktunya saat kubus ke
Karena masih belajar membaca, ia se- 1000 dinaikkan ke susunan. Pada
lalu salah membaca/tulis angka-ang- ting­
kat keberapa pembangunan itu
ka tertentu. Baginya angka 7 dibaca dihentikan (tingkat paling dasar ada­
sebagai angka 1, tetapi ia tidak keliru lah tingkat 1, di atasnya tingkat 2,
saat menuliskan angka 7. Juga, ang- dan seterusnya)?
ka 4 dituliskan sebagai angka 9 tetapi A. Tingkat ke 4
ia tidak keliru saat membaca angka B. Tingkat ke 7
4. Sementara angka 5 selalu bertu- C. Tingkat ke 8
karan dengan angka 2, dan angka 6 D. Tingkat ke 9
bertukaran dengan angka 9 baik saat E. Tingkat ke 10
membaca maupun menulis. Berapa-
(SOAL OSN TINGKAT NASIONAL TAHUN 2015)
kah yang ia tuliskan sebagai jawaban
jika dalam soal tertulis “37519 + 4213
4. Udin sudah bisa menjumlah bilangan,
= ... “?
tetapi baru saja belajar menulis angka.
A. 37229
Udin baru bisa menulis angka 1, 2,
B. 97135
3 dan 4. Tetapi dia tidak menyadari
C. 35726
bahwa angka 1 dan 4 berbeda, bagi
D. 41732
Udin “angka 4 adalah cara lain untuk
E. 32756
menuliskan angka 1.” Selain itu,
(SOAL OSN TINGKAT NASIONAL TAHUN 2009) bilangan beberapa digit seperti 132
adalah bilangan yang bernilai sama
3. Firaun Denxles II sedang membangun dengan hasil penjumlahan dari digit-
piramid dari batu-batu berbentuk

80
digit itu sendiri. Contoh: 132 = 1 + 3 Deskripsi untuk soal nomor 7
+ 2 = 6 dan 112314 = 1 + 1 + 2 + 3 Kali ini kita akan menyelidiki per­mainan
+ 1 + 1 = 9 (ingat, Udin menganggap tradisional lempar bom sembunyi tangan.
4 adalah 1). Sekarang, Udin ingin Permainan ini dimainkan oleh beberapa
tahu berapa banyak cara yang dapat pemain yang membentuk lingkaran.
dilakukannya untuk menuliskan Permainan ini dimulai dengan memberikan
sebu­
ah bilangan bernilai tertentu. salah satu orang tersebut sebuah bom
Misal­
nya 2, Udin dapat menuliskan mainan. Bom mainan tersebut memiliki
5 bilangan yaitu: 11, 14, 41, 44 dan suatu angka positif. Apabila angka tersebut
2. Ada berapa banyak kemungkinan menjadi 0 saat dipegang salah satu pemain,
bilangan beberapa digit yang menu­ maka bom tersebut akan meledak dan
rut Udin bernilai 3? pemain yang saat itu sedang memegang
A. 17 bom tersebut dinyatakan gugur. Setiap
B. 16 pemain saat baru mendapatkan bom
C. 15 (baik saat awal permainan maupun saat
D. 14 diberikan temannya seperti dijelaskan
E. 13 di bawah) harus mengurangi angka di
dalam bom tersebut dengan 1. Setelah itu,
SOAL OSN TINGKAT NASIONAL TAHUN 2010)
bom tersebut diberikan pada temannya
yang ada di arah sesuai jarum jam. Untuk
5. 11100 mod 41 =
mempermudah representasinya, kita akan
A. 1
beri nomor pemainnya dimulai dari 1 untuk
B. 19
pemain yang pertama kali mendapatkan
C. 20
bom, 2 untuk pemain yang ada tepat di
D. 29
sebelahnya searah jarum jam, 3 untuk yang
E. 40
setelahnya di arah jarum jam dan terus
(SOAL OSN TINGKAT NASIONAL TAHUN 2011) sampai seluruh pemain mendapatkan
nomor.
6. 11 x 22 x 33 x 44 x 55 x ... x 3030 da-
pat habis dibagi oleh 10n. Berapakah 7. Apabila bom tersebut pada awalnya
bilangan n terbesar yang mungkin? memiliki angka 825, maka apabila
A. 105 permainan dimainkan oleh 5 pemain
B. 130 maka pemain berapakah yang akan
C. 30 gugur?
D. 150 A. 1 D. 2
E. 110 B. 5 E. 3
(SOAL OSN TINGKAT NASIONAL TAHUN 21011) C. 4

(SOAL OSN TINGKAT NASIONAL TAHUN 2011)

81
8. PT. TOKI, sebuah perusahaan manu­ Orang kedua berkata, “Aku
faktur prosesor komputer, mem­buat BELUM BISA menentukan. Aku butuh
2 macam prosesor untuk dijual. Ma­ informasi tambahan.” Orang pertama
sing-masing prosesor dibuat melalui kemudian berkata “Jumlah umur
2 tahap dengan mengguna­kan mesin mereka sama dengan nomor rumah
tahap 1 dan mesin tahap 2. Detil paling ujung di jalan ini yang dapat
kebutuhannya adalah seperti berikut: kita lihat dengan jelas”
Silikon Besi Profit Waktu produksi Orang kedua berkata lagi, “Aku
Mesin1 Mesin2 MASIH BELUM BISA menentukan.
A 50 gr 70 gr Rp 13 5 2
Aku butuh informasi tambahan.”
B 40 gr 30 gr Rp 8 4 3
Orang pertama kemudian berkata
Memproduksi 1 prosesor A “Semua Anak sudah berusia lebih
mem­ butuhkan 50gr Silikon, 70gr dari satu tahun“.
Besi, dan 7 jam.
Orang kedua berkata lagi, “Aku
Prosesor yang bisa mendapatkan sudah bisa menentukannya”.
profit hanyalah yang sudah jadi
Berapa umur anak PALING TUA?
secara keseluruhan.
A. 4
Pak Dengklek, Sang Bos, mengi­
B. 6
nginkan keuntungan setidaknya
C. 9
Rp3.393.000 dan meminimalkan
D. 12
peng­gunaan silikon. Banyak silikon
E. 18
minimum yang dibutuhkan untuk
memenuhi keinginan Pak Dengklek (SOAL OSN TINGKAT NASIONAL TAHUN 2013)

tersebut adalah ... gram

A. 10050 Deskripsi soal nomor 10


B. 13050 Pada suatu ruangan, terdapat bera­
C. 14050 gam binatang berkaki empat dan bera­
D. 13500 gam binatang berkaki dua. Jumlah se­
E. 12050 luruh binatang adalah 112 ekor. Jumlah
(SOAL OSN TINGKAT NASIONAL TAHUN 2010) seluruh kaki binatang-binatang tersebut
adalah 310.
9. Ada dua orang yang berdiri pada
sebuah jalan. Seseorang berkata 10. Berapa ekorkah binatang yang ber­
pada yang lain, “Aku punya 3 anak, kaki dua?
hasil perkalian umur mereka adalah A. 86
B. 43
36. Berapa umur anak PALING TUA?”
C. 69

82
D. 37 D membeli 2 barang i, 1 barang ii,
E. 75 2 barang iii, dan 3 barang iv seharga
Rp18.000, 00. Berapakah nilai x?
(SOAL OSN TINGKAT NASIONAL TAHUN 2011)
A. 0
11. Pada suatu hari, a, b, c, dan d pergi B. 1
ke pasar. Mereka melihat ada 4 ba- C. 2
rang yang sedang didiskon 90% dan D. 3
mereka memutuskan untuk membe- E. 4
li keempat barang tersebut. Dalam (SOAL OSN TINGKAT NASIONAL TAHUN 2014)
perjalanan pulang, mereka bertemu
teman mereka, e yang ternyata se-
Deskripsi untuk soal nomor 12
dang membutuhkan keempat ba-
rang tersebut. e ingin mengetahui Tiga orang sahabat, Ari, Budi, dan Cici
harga masing-masing barang terse- terdampar di sebuah pantai bersama seekor
but dan menanyakannya pada a, b, kucing. Mereka berusaha mengumpulkan
c, dan d. Sayangnya mereka berem- makanan, dan yang berhasil mereka
pat sudah lupa harga masing-masing temukan hanyalah ikan-ikan kecil, namun
barang tersebut sehingga mereka dengan jumlah cukup banyak. Karena
kelelahan, mereka memutuskan untuk
hanya memberitahukan jumlah ma-
beristirahat dan membangun tenda.
sing-masing barang yang dibeli be-
Mereka berencana untuk memasak ikan
serta total harganya. Setelah men-
keesokan harinya bersama-sama.
dapat informasi tersebut, e berkata,
“wah, sayang sekali, saya masih be- Malamnya, ketika semua sedang ter-
lum dapat menentukan harga setiap tidur, Ari bangun dari tidurnya. Karena
barang tersebut hanya berdasarkan ia kuatir pada keesokan harinya teman-
keterangan dari kalian.”. e merupakan temannya akan curang pada saat mem-
orang yang pandai menghitung dan bagi ikan untuk sarapan, Ari mencoba
informasi yang diperolehnya adalah: mengamankan bagiannya. Ia membagi
A membeli x barang i, 2 barang ii, ikan-ikan tersebut ke dalam 3 bagian
1 barang iii, dan 3 barang iv seharga sama rata. Ternyata tersisa satu ekor ikan.
Rp15.000, 00. Ari mengambil salah satu dari 3 bagian,
dan memberikan sisa satu ekor ikan tadi
B membeli 3 barang i, 1 barang ii,
ke kucingnya, dan kemudian tidur lagi.
3 barang iii, dan 4 barang iv seharga
Tidak disangka, ternyata kedua teman-
Rp25.000, 00.
nya yang lain mempunyai pikiran untuk
C membeli 4 barang i, 2 barang ii, melakukan hal yang sama seperti Ari:
3 barang iii, dan 5 barang iv seharga bangun, membagi ikan (yang tersisa) ke
Rp31.000, 00. dalam tiga bagian, dan mengambil ba-

83
giannya. Pada setiap pembagian, selalu ada 35 ekor ayam jantan. Di antara-
tersisa satu ekor ikan yang kemudian di- nya, 15 ekor adalah ayam kampung,
berikan kepada si kucing. 19 ekor berjengger panjang, dan 25
Keesokan paginya, mereka semua ekor berkokok keras. Ayam kampung
terbangun, dan tanpa saling memberita- jantan yang berkokok keras ada se-
hu apa yang mereka lakukan pada ma- banyak 12 ekor, ayam kampung jan-
lam harinya, mereka membagi ikan-ikan tan berjengger panjang ada seba-
tersebut untuk bertiga. Sama seperti nyak 7 ekor, sedangkan ayam jantan
sebelumnya, pembagian dengan 3 me- yang berjengger panjang dan berko-
nyisakan satu ekor ikan, yang diberikan kok keras ada sebanyak 9 ekor. Bera-
kepada si kucing. pakah jumlah ayam kampung jantan
yang berjengger panjang dan ber-
12. Berapakah jumlah minimum ikan kokok keras yang dimiliki Pak Blang-
yang terkumpul mula-mula? kon?
A. 76 A. 6
B. 77 B. 3
C. 78 C. 11
D. 79 D. 7
E. 80 E. 4
(SOAL OSN TINGKAT NASIONAL TAHUN 2013) (SOAL OSN TINGKAT NASIONAL TAHUN 2014)

13. Bilangan bulat positif terkecil yang 15. Pada suatu hari, bebek-bebek Pak
memiliki tepat 6 pembagi (termasuk Dengklek yang bernama Kwak, Kwik,
1 dan dirinya sendiri) adalah 12. Kwek, dan Kwok ingin mengikuti lom-
Bilangan bulat positif terkecil ba lari. Karena sudah bekerja keras,
yang memiliki tepat 30 pembagi ada- Pak Dengklek ingin menghadiahkan
lah... sepasang sepatu baru untuk masing-
A. 730 masing bebek-bebeknya. Akan teta-
B. 720 pi, masing-masing bebek memiliki
C. 710 warna kesukaan yang berbeda-beda.
D. 690 Berikut ini adalah beberapa informasi
E. 680 terakhir yang diingat Pak Dengklek:
(SOAL OSN TINGKAT NASIONAL TAHUN 2012)
Tinggi bebek-bebek Pak Deng-
klek adalah 30 cm, 31 cm, 32 cm,
dan 33 cm (sayangnya Pak Dengklek
14. Pak Blangkon beternak dua jenis
lupa urutan tinggi untuk Kwak, Kwik,
ayam yaitu ayam kampung dan ayam
Kwek, dan Kwok).
ras. Di halaman belakang rumahnya

84
Warna-warna yang disukai Pak melaju setelah berhenti di halte 8,
Dengklek adalah merah, putih, hijau, hanya tersisa 3 orang siswa di dalam
hitam (lagi-lagi Pak Dengklek lupa bis dan P dan Q tidak termasuk di da-
urutan warna kesukaan untuk Kwak, lamnya. Diketahui juga P turun terle-
Kwik, Kwek, dan Kwok) bih dahulu dari pada Q (tidak pada
Tinggi Kwek yang menyukai war- halte yang sama).
na hijau adalah 32 cm, yang juga le- Jika J turun dari bis pada dua hal-
bih tinggi dari Kwik. te setelah M turun, di manakah ke-
mungkinan J turun dari bis?
Bebek yang menyukai warna me-
rah lebih tinggi dari Kwak. A. Halte 2 dan halte 4.
B. Halte 2, halte 4 dan halte 7.
Bebek yang menyukai warna hi-
C. Halte 5, halte 7 dan halte 8.
tam memiliki tinggi 31 cm.
D. Halte 7 dan halte 8.
Kwik tidak menyukai warna putih E. Halte 4 dan halte 7.
dan Kwok menyukai warna merah.
(SOAL OSN TINGKAT NASIONAL TAHUN 2013)
Bagaimana urutan tinggi bebek-
bebek Pak Dengklek diurutkan dari 17. Enam acara pertunjukan kesenian
yang paling pendek? akan berlangsung dari jam 17.00
A. Kwak, kwik, kwek, kwok hingga jam 21.00. Antara acara satu
B. Kwik, kwok, kwak , kwek dengan acara berikutnya harus ter-
C. Kwek, kwak, kwok, kwik dapat jeda selama 5 menit. Setiap
D. Kwek, kwak, kwik, kwok acara akan diberi jatah waktu yang
E. Kwak, kwek, kwok, kwik sama kecuali acara ketiga akan dibe-
(SOAL OSN TINGKAT NASIONAL TAHUN 2013)
rikan waktu lebih lama 10 menit dan
acara terakhir akan diberi waktu te-
16. Pada suatu ketika sebuah bis seko- pat 1 jam. Berapa lama waktu jatah
lah mengantar pulang enam siswa- waktu acara ketiga?
nya yaitu J, K, L, M, N, P dan Q. Se- A. 29
B. 27 ¹⁄₂
kolah berada pada kilometer (KM)
C. 30
ke 1 pada sebuah jalan raya. Saat
D. 39
menurunkan siswa, bis hanya mung-
E. 17 ³⁄₄
kin berhenti pada halte-halte yang
posisinya di KM ke 2, ke 3, ke 4 dan (SOAL OSN TINGKAT NASIONAL TAHUN 2012)

seterusnya. Kita sebut halte 2, halte


3, halte 4 dan seterusnya. Pada saat 18. Diketahui empat bilangan bulat po-
itu, di halte 3 dan halte 6, tidak ada sitif W, X, Y dan Z. Jika hasil kali W
siswa yang turun. Ketika bis tersebut dan Y adalah 32, dan hasil kali X dan

85
Z adalah 100. Sementara diketahui C.D + A + B = 2
juga hasil kali Y dan Z adalah delapan D.A + B + C = 6
kali hasil kali W dan X.
Berapakah nilai A yang dimak-
Berapakah y dikali z?
sud?
A. 100
A. 0
B. 160
B. 1
C. 80
C. 2
D. 200
D. 3
E. 44
E. 5
(SOAL OSN TINGKAT NASIONAL TAHUN 2010)
(SOAL OSN TINGKAT NASIONAL TAHUN 2014)

19. Diketahui empat bilangan bulat posi-


22. Sebuah brankas dilengkapi dengan
tif W, X, Y dan Z yang juga memenuhi
kunci kombinasi 4 dijit. Masing-
W < X < Y < Z. Jika hasil kali W dan
masing digit memiliki 2 kemungkinan
Y adalah 32, dan hasil kali X dan Z
nilai, yaitu 0 dan 1. Ternyata, dike­
adalah 50. Berpakah nilai X dikali Y?
tahui diantara 4 dijit itu, hanya 2
A. 20
dijit yang berfungsi untuk mengunci
B. 25
C. 36 brankas tersebut. Berapakah banyak
D. 40 percobaan minimal untuk dapat
E. 44 mem­buka brankas tersebut?
A. 3
(SOAL OSN TINGKAT NASIONAL TAHUN 2014)
B. 6
C. 12
20. Berapakah banyaknya bilangan an­
D. 18
tara 1-1000, inklusif, di mana perka­ E. 24
lian digit-digitnya merupakan bilang­
(SOAL OSN TINGKAT NASIONAL TAHUN 2013)
an positif kelipatan 10?
A. 157
23. Adi dan Budi adalah murid dari se-
B. 156
C. 155 buah kelas yang terdiri dari 40 siswa.
D. 154 Dari kelas tersebut akan dipilih 20
E. 153 orang siswa sebagai wakil kelas. Wa-
kil kelas dipilih dengan cara memba-
21. Jika diketahui A, B, C dan D adalah gi 40 orang siswa menjadi 20 grup.
bilangan bulat dan memenuhi: Tiap grup melempar sebuah koin
A.B + C + D = 3 untuk menentukan siapa yang akan
B.C + A + D = 5 mewakili kelas tersebut. Jika peluang

86
Adi dan Budi terpilih untuk mewakili 25. Berapa banyak kata sepanjang N-
kelas tersebut adalah \frac{a}{b}, di- karakter yang dapat dibentuk dari
mana a dan b saling prima, berapa- angka-angka {0, 1, 2}, sedemikian
kah a + b? sehingga angka-angka yang saling
A. 91 bersebelahan hanya berselisih maksi-
B. 93 mum 1. Contoh: Untuk N=2 terdapat
C. 95 7 kata yang dapat dibentuk yaitu: <0
D. 97 0>, <0 1>, <1 0>, <1 1>, <1 2>, <2
E. 99 1>, <2 2>. Notasi < > menyatakan
(SOAL OSN TINGKAT NASIONAL TAHUN 2012) bentukan satu kata. Jika N=10, bera-
pa banyak kata yang dapat dibentuk?
24. Pak Adi adalah seorang guru. Ia A. 8119
mengajar 3 kelas, masing-masing B. 8121
berisi 7, 11, dan 13 siswa. Suatu saat, C. 8123
Pak Adi ingin membeli dan memba- D. 8125
gikan sejumlah permen kepada se- E. 8127

mua siswa pada salah satu kelas. Jika (SOAL OSN TINGKAT NASIONAL TAHUN 2015)
permen dibagikan ke kelas pertama
(7 siswa), maka ada 1 anak yang akan 26. Deskripsi
mendapatkan lebih banyak dari yang Pak Dengklek sedang memain­
lain. Jika dibagikan ke kelas kedua (11 kan sebuah permainan bernama
siswa), akan ada 8 anak yang menda- “Daratan dan Es”. Pada permainan
pat lebih banyak dari yang lain. Jika ini, terdapat sebuah dunia yang
dibagikan ke kelas ketiga (13 siswa), dinyatakan sebagai petak-petak
akan ada 6 anak yang akan menda- berukuran 5 × 5. Setiap petak berupa
pat lebih banyak dari yang lain. Bera- daratan atau lantai es. Setiap petak
pa jumlah minimal permen agar yang daratan memiliki sebuah nilai.
perlu ditambah agar bisa dibagikan Apabila terdapat N petak daratan,
ke satu kelas manapun semua siswa maka nilai-nilai pada petak daratan
adalah 1 hingga N. Tidak ada dua
yang akan mendapatnya dalam jum-
petak daratan yang memiliki nilai
lah sama?
yang sama. Dunia tersebut cukup
A. 331
unik karena ujung kiri dan kanan
B. 543
dunia menyambung, begitu pula
C. 741
dengan ujung atas dan bawah dunia.
D. 839
Pada permainan ini, terdapat sebuah
E. 1001
karakter pemain, yang pada awalnya
(SOAL OSN TINGKAT NASIONAL TAHUN 2014)
ditempatkan pada petak daratan

87
dengan nilai 1. Pemain ini dapat D. O(N - 5log5) =O(N)
memberi tahu Pak Dengklek nilai pada E. O(N+ 5log5) = N
daratan di mana pemain ini berada.
(SOAL OSN TINGKAT NASIONAL TAHUN 2018)
Pada awalnya, Pak Dengklek sama
sekali tidak tahu petak-petak mana
27. Keuntungan seorang pedagang ber­
yang berupa daratan, maupun nilai-
tambah setiap bulan dengan jumlah
nilai yang berada pada petak daratan.
yang sama. Bila keuntungan sampai
Untuk memenangkan permainan ini,
bulan keempat 30 ribu rupiah, dan
Pak Dengklek harus berhasil menen­
sampai bulan kedelapan 172 ribu
tukan informasi tersebut, dengan
rupiah, maka keuntungan sampai bu­
memainkan karakter pemain sebagai­
lan ke-18 adalah .....
mana dijelaskan di bawah ini. Pak
A. 1.017 ribu rupiah
Dengklek dapat meminta pemain
B. 1.050 ribu rupiah
tersebut untuk bergerak ke arah ATAS,
C. 1.100 ribu rupiah
KANAN, BAWAH, atau KIRI. Kemudian,
D. 1.120 ribu rupiah
pemain akan bergerak satu petak ke
E. 1.137 ribu rupiah
arah yang Pak Dengklek minta. Apabila
petak tujuan adalah lantai es, maka 28. Sebuah truk berangkat pada pukul
pemain tersebut akan melanjutkan 08.10 menuju kota S dengan kece­
gerakannya ke arah yang dituju sampai patan rata-rata 40 km/jam. Sebuah
ia berada di petak daratan. Untuk lebih sedan menyusul dari tempat yang
jelasnya, perhatikan ilustrasi-ilustrasi sama dan berangkat pada pukul
berikut. Pada awalnya, pemain berada 08.40 dengan kecepatan 60 km/jam,
pada petak daratan dengan nilai 1. jika rute kedua kendaraan tersebut
Apabila Pak Dengklek memintanya
sama dan tidak ada yang berhenti,
untuk bergerak ke ATAS, maka pemain
maka pukul berapa sedan tersebut
akan berada pada petak daratan
akan menyalip truk ...
dengan nilai 9.
A. 10.20 D. 09.45
Terdapat setidaknya sebuah baris B. 10.00 E. 09.40
yang mana semua petaknya merupa- C. 09.50
kan petak daratan. (Bisa saja terdapat
(SOAL OSN TINGKAT NASIONAL TAHUN 2008)
petak daratan lain yang tidak ter-
masuk baris tersebut.), maka berapa
29. 1 + 2 + 3 + 4 + 5 + .......... +29 =
kompleksitas yang diperoleh dari ka-
A. 435 D. 300
sus tersebut?
B. 280 E. 290
A. O (N – 25 log 5 ) = O (N) C. 465
B. O (N+ 25log5) =O (N)
(SOAL OSN TINGKAT NASIONAL TAHUN 2009)
C. O (N+ 5log5) = O (N)

88
30. Deskripsi untuk membuat barisan A dan B
Bebek Pak Dengklek baru saja men­jadi barisan aritmetika.
pulang dari liburan ke Pekanbaru.
Dari kasus tesebut, tuliskan ru­
Tentu saja, Pak Dengklek lalu meminta
mus­an kontradiksi jika dua indeks i
oleh-oleh dari bebeknya. Bebek Pak
dan j memenuhi S[i] = S’[i] dan S’[ j]
Dengklek setuju untuk memberikan
= S ‘[ j]?
oleh-oleh dengan satu syarat, yaitu
Pak Dengklek harus menyelesaikan A. O(N1)
teka-teki yang mereka buat di Pe­ B. N1
kan­
baru. Terdapat dua buah baris­ C. (ON)2
an A dan B yang masing-masing D. O(N2)
awalnya terdiri dari N buah bilangan E. N2
bulat, dinomori dari 1 hingga N. Pak (SOAL OSN TINGKAT NASIONAL TAHUN 2017)
Dengklek dapat melakukan nol atau
lebih operasi. Pada setiap operasi, SOAL OSN PREDIKSI
Pak Dengklek akan memilih suatu
1. Diberikan sembilan variabel boolean
indeks i (1 = i = N), suatu bilangan
X1 s.d. X9 . Dari kesembilan variabel
real d, dan melakukan salah satu dari
tiga pilihan berikut: 1. Mengganti tersebut, dibuat beberapa kalimat
nilai A[i] menjadi d. 2. Mengganti boolean, yaitu:
nilai B[i] menjadi d. 3. Mengganti nilai X2 xor (~X1 )
A[i] dan B[i] menjadi d. Perhatikan (~X5 ) xor X6
bahwa setelah melakukan sebuah
X5 xor X4
operasi, mungkin saja terdapat nilai-
nilai pada barisan A maupun B yang (~X3 ) xor (~X4 )
bukan merupakan bilangan bulat lagi X3 xor (~X5 )
(yakni, menjadi bilangan real). Pak
X7 xor (~X8 )
Dengklek harus melakukan sesedikit
mungkin operasi agar pada akhirnya, (~X9 ) xor X9
barisan A dan B membentuk baris­an X6 xor X3
aritmetika. Dengan kata lain, sete­
Ada berapa kemungkinan kon­
lah operasi terakhir, harus terda­
figurasi X1 s.d. X9 yang membuat
pat bilangan real x dan y yang
setidaknya ada satu kalimat bernilai
memenuhi: 1. A[i] = A[i -1] + x untuk
FALSE? Dua konfigurasi dikatakan
setiap 1 < i = N, dan 2. B[i] = B[i -1] +
berbeda apabila di antara dua kon­
y untuk setiap 1 < i = N. Bantulah Pak
figurasi tersebut terdapat setidaknya
Dengklek menentukan banyaknya
satu Xi (1 <= i <= 9) yang bernilai
operasi tersedikit yang diperlukan

89
beda. (Catatan: A xor B akan bernilai A. X= 3
TRUE jika nilai A dan B tidak sama.) B. X= 4
C. X= 5
A. 621
D. X= 6
B. 782
E. X= 7
C. 461
D. 321 3. Bila z bilangan bulat positif terkecil
E. 512 yang memberikan sisa 5 jika dibagi
Pada hari Senin sebuah bus dengan 13 dan memberikan sisa 3
sekolah mengantar pulang tujuh jika dibagi dengan 18, berapa sisanya
sis­wanya yaitu A, B, C, D, E, F dan jika dibagi dengan 11?
G. Sekolah berada pada kilometer A. 3
(KM) ke 1 pada sebuah jalan raya. B. 2
Saat menurunkan siswa, bus hanya C. 4
mungkin berhenti pada halte-halte D. 1
yang posisinya di KM ke 2, ke 3, ke E. 5
4 dan seterusnya. Kita sebut halte
2, halte 3, halte 4 dan seterusnya. 4. Pak Ismail memiliki dua buah bilang-
Pada saat itu, di halte 3 dan halte 6, an bulat positif, tetapi Ia lupa berapa
tidak ada siswa yang turun. Ketika bis nilai dari kedua bilangan tersebut.
tersebut melaju setelah berhenti di Namun, Ia ingat bahwa jumlah dari
halte 8, hanya tersisa 3 orang siswa di kedua bilangan tersebut adalah 105.
dalam bis dan F dan G tidak termasuk Kemudian FPB dan KPK dari kedua
di dalamnya. Diketahui juga F turun bilangan tersebut secara berturut-
terlebih dahulu dari pada G (tidak turut adalah 15 dan 150. Berapakah
pada halte yang sama). selisih dari kedua bilangan tersebut?
Jika A turun dari bis pada dua A. 45
halte setelah D turun, di manakah B. 46
kemungkinan A turun dari bis? C. 47
D. 48
A. Halte 3 dan halte 4.
E. 49
B. Halte 3, halte 4 dan halte 7.
C. Halte 5, halte 8. 5. Raja Putih akan memberikan peng-
D. Halte 7 dan halte 8. hargaan kepada 10 pion. Raja akan
E. Halte 4 dan halte 7. memberikan 3 jenis penghargaan,
yaitu:
2. Tentukan bilangan bulat positif ter­
a. Penghargaan Pion Jujur (PPJ) ke-
kecil x yang memenuhi fungsi f(x) =
pada 6 pion paling jujur.
(4 + x)20 sehingga nilai digit terkanan
b. Penghargaan Pion Kuat (PPK) ke-
dari nilai fungsi tersebut adalah 1.
pada 8 pion paling kuat.

90
c. Penghargaan Pion Lucu (PPL) ke- A. 260
pada 8 pion paling lucu. B. 261
C. 262
D. 263
Setiap pion dapat menerima le-
E. 265
bih dari 1 penghargaan. Pion yang
mendapatkan ketiga perhargaan se- 7. String adalah kumpulan dari karakter,
kaligus akan dinaikkan pangkatnya sedangkan substring adalah string
menjadi benteng. Berapa jumlah mi- yang berturutan yang merupakan
nimal pion yang pasti naik pangkat? bagian dari string lain. Misal, “AB-
A. 6 CDEF”, “BCDE”, dan “ABEC” adalah
B. 4 string. “CBBC” merupakan substring
C. 3 dari “ACBBCA” namun “CBCA” bukan
D. 7 merupakan substring dari “ACBBCA”.
E. 2 Berapa banyak string yang terdiri dari
huruf A, B dan C, yang memiliki pan-
6. Terdapat suatu permainan koin, ter-
jang 8 dan tidak mengandung sub-
dapat 2 jenis koin: koin angka dan
string AB?
koin gambar. Aturan dalam permain-
A. 2871
an itu adalah
B. 2873
Pemain tidak dapat mengambil 5
C. 2585
koin gambar secara berturut-turut
D. 2584
Setiap putaran permainan pema- E. 2655
in hanya dapat mengambil satu koin

Jika pada p+1 putaran sebelum- Deskripsi untuk soal nomor 9 – 10!
nya pemain telah mengambil p+1 Deviyuangga memiliki 3 teman yang
koin gambar secara berturut-turut, sangat akrab dengannya, yaitu Jefrre,
maka paling banyak p koin angka Reza, dan Berna. Mereka berempat sa-
baru boleh diambil secara berturut- ngatlah cerdas dan ganteng. Namun De-
turut viyuangga sangat ambisius. Ia penasaran,
catatan: permainan dilakukan siapakah yang paling cerdas dan paling
oleh 1 orang pemain, yaitu dengan ganteng di antara mereka berempat.
tu­
ju­
an mendapatkan koin angka Untuk mengetahui hal itu, Deviyuangga
seba­nyak-banyaknya. bertanya kepada “Sang Master” menge-
nai siapa yang paling cerdas dan paling
Maka berapa jumlah maksimal
ganteng di antara mereka. Namun “Sang
koin angka yang dapat diambil, jika
Master” tidak langsung memberi jawab-
pemain bermain selama 613 putaran
an kepada Deviyuangga. “Sang Master”
permainan?
memberi teka-teki sehingga Deviyuang-

91
ga harus berpikir keras terlebih dahulu 10. Terdapat bilangan, dari bilangan-
sebelum mengetahui jawabannya. Beri- bilangan 10 sampai dengan 100 yang
kut perkataan “Sang Master”: habis dibagi 5 adalah ...
Deviyuangga bukan yang terganteng A. 9
di antara mereka berempat B. 18
C. 12
Berna lebih ganteng dari Jefrre,
D. 30
namun tidak lebih cerdas.
E. 90
Deviyuangga lebih cerdas dan lebih
11. Terdapat angka-angka yang terdiri
ganteng dari Reza
dari 6 digit, ada berapa bilangan
Berna bukanlah yang paling tidak yang semua digitnya berbeda dan
cerdas di antara mereka harus menaik? (digit pertama tidak
boleh 0)
8. Berdasarkan deskripsi di atas, ada
A. 504
berapa kemungkinan urutan tingkat
B. 84
kegantengan?
C. 4040
A. 1
D. 210
B. 2
E. 720
C. 3
D. 4 12. Ada 4 bilangan p1, p2, p3, dan p4.
E. 5 Jika p1 + 3 p2, p2 <= p3, p3 + 5 <=
p4, 1 <= p1, p2, p3, p4 <= 40, maka
9. Ternyata Deviyuangga bukan yang
banyaknya kemungkinan p1, p2, p3,
paling cerdas. Deviyuangga pun
dan p4 yang berbeda adalah:
merasa kesal dan belajar lebih rajin
A. 169080
setiap hari hingga larut malam.
B. 1256640
Hasilnya, ia pun berhasil naik 1
C. 628320
posisi dan menggusur orang yang
D. 52360
sebelumnya berapa pada posisi
E. 26180
tersebut ke posisi Deviyuangga.
Siapa saja yang mungkin berada 13. Terdapat bilangan 720000 dan
pada posisi nomor dua saat ini? 262144, dari kedua bilangan tersebut,
A. Berna/Jefrre berapa banyak bilangan berbeda
B. Deviyuangga/Jefrre yang membagi habis kedua bilangan
C. Berna/Deviyuangga tersebut?
D. Deviyuangga/Berna A. 13 D. 28
E. Berna/Reza B. 7 E. 13
C. 8

92
14. Jeni, Ani, dan Reza senang mengikuti 16. Pak Barnudin memiliki mata uang
kompetisi pemrograman. Mereka dollar dengan lembar pecahan 100,
bertiga tidak suka bersaing, sehingga 50, 20, dan 10 yang bernilai kese­
mereka mengikuti kompetisi pemro­ luruhan sebesar 10290 dollar. Berapa
graman yang berbeda. Jeni mengikuti banyak lembar pecahan minimal
kompetisi yang berlangsung 7 hari yang dimiliki Pak Barnudin?
sekali, Ani mengikuti kompetisi A. 106
yang berlangsung 3 hari sekali, dan B. 104
Reza mengikuti kompetisi yang C. 102
berlangsung 5 hari sekali hari Selasa, D. 111
dan Reza mengikuti di hari Kamis. Tapi E. 105
karena mereka berkompetisi pada
17. Terdapat 3 anak bersaudaraan, ber­
hari yang tidak sama, mereka merasa
nama Anton, Badu dan Cila. Mereka
kesepian dan mereka menunggu-
adalah tiga bersaudara (tidak kem­
nunggu satu hari terdekat di mana
bar) dan Anton adalah yang tertua
mereka bisa berkompetisi pada hari
dan Cila adalah yang termuda. Hasil
yang sama. Di hari apakah itu?
kali umur-umur mereka adalah
A. Selasa
135. Ketiga orang tersebut belum
B. Rabu
berumur 10 tahun. Berapakah hasil
C. Senin
perkalian umur Anton dan Badu?
D. Jumat
A. 19
E. Kamis
B. 45
15. Pada operasi “SWAPBIT” adalah C. 25
ope­
rasi untuk menukar 2 buah bit D. 39
yang bersebelahan dalam suatu E. 46
bilangan biner. Misalkan 0110 dapat
18. Pada suatu ketika di kebun Pak
diubah dengan 1 SWAPBIT menjadi
Surahman sedang berkumpul berba­
1010 atau 0101. Berapa banyak
gai macam binatang. Binatang terse­
operasi SWAPBIT paling sedikit yang
but ada yang berkaki satu, ada yang
diperlukan agar membuat bilangan
berkaki tiga, dan ada yang berkaki
biner 100101010 menjadi bernilai
lima. Diketahui bahwa:
minimum?
a. jumlah seluruh binatang adalah
A. 8
52 ekor,
B. 7
b. jumlah seluruh kaki dari binatang
C. 10
berkaki satu dan tiga adalah 88,
D. 5
dan jumlah seluruh kaki dari
E. 11
binatang berkaki tiga dan lima
adalah 106.
93
Berapa banyaknya binatang ber­ sebuah kantong, kemudian ia mengambil
kaki satu? setengah dari yang tersisa di mesin
ke dalam tasnya. Proses perhitungan
A. 20 D. 32
menggunakan mesin dilakukan berulang
B. 22 E. 40
hingga seluruh permen masuk ke tas
C. 30
atau masuk ke kantong Pak Raharja dan
19. Berapa banyak bilangan antara 100 indikator mesin mati.
sampai dengan 1000 (inklusif) yang
habis dibagi 3 atau habis dibagi 5, te­ 20. Jika dalam penghitungan tersebut
tapi tidak habis dibagi 9? nyala lampu indikatornya adalah:
A. 621 D. 523 merah, merah, merah, hijau, merah,
B. 321 E. 221 hijau, merah, merah, mati.
C. 452 Berapakah jumlah sekilo permen
yang dibeli Pak Raharja seluruhnya?
Deskripsi untuk soal nomor 21-22!
A. 217 D. 215
Pak Raharja membeli sekilo permen
B. 328 E. 304
di pasar kliwon. Karena penasaran, ia
C. 247
ingin mengetahui berapa banyaknya se­
kilo permen yang dibelinya. di pasar kli­ 21. Jika Pak Dengkek membeli 215
won tersebut terdapat mesin penghitung buah permen, berapakah jumlah
permen yang ajaib, mesin ini dapat me­ permen yang tersisa di kantong saat
ngenali jumlah permen ganjil atau genap. melakukan penghitungan?
Jika mesin tersebut dimasuki permen de­ A. 6 permen D. 12 permen
ngan jumlah genap, maka lampu indi­ B. 8 permen E. 13 permen
kator akan berwarna hijau, sedangkan C. 10 permen
jika ganjil akan berwarna merah, jika
22. Arvlo robot si kelinci pandai melon­
tidak ada permen di dalamnya maka
cat dan akan dipakai Pak Tamto un­
lampu in­dikator akan mati. Pak Raharja
tuk memanen tanaman. Pak Tamto
yang penasaran akhirnya memasukkan
menanam 15 tanaman di ha­
la­
satu kilo permennya ke dalam mesin
man rumahnya dalam satu lajur
tersebut, kemudian mengamati nyalanya
lampu indikator, jika berwarna hijau ia dan jarak antara dua tanaman tidak
akan mengambil setengah dari per­ harus sama. Diberikan data posisi 15
men yang ada di mesin tersebut. Lalu tanam­an sebagai berikut:
ia mengamati apa yang terjadi. Jika 2 9 17 31 59 72 94 103 141 152 179
indikator menyala merah, maka ia akan 211 241 288 293
mengam­ bil satu permen dari mesin Untuk mengambil 7 tanaman
tersebut, memisahkannya ke dalam dalam 6 loncatan dari kiri ke kanan,

94
tentukan loncatan terpendek yang 25. Pada suatu hari, si Tantre memilih 11
maksimal. bilangan secara acak di antara 1...21.
A. 27 D. 26 Kesebelas bilangan tersebut tidak
B. 44 E. 33 ada yang sama. Selanjutnya a akan
C. 38 menghitung ada berapa pasang
bilangan a dan b pada 11 bilangan
23. Andre, Bahrudin, dan Ciko bekerja tersebut yang memenuhi a mod
untuk sebuah proyek dengan dead­ b = 0 dan a tidak sama dengan b.
line 100 hari. Pernyataan manakah di bawah ini
Jika Andre dan Bahrudin saja yang benar?
yang bekerja, maka proyek selesai A. Minimal ada 1 pasang bilangan
dalam 144 hari. yang memenuhi syarat tersebut
Jika Andre dan Ciko saja yang B. Minimal ada 2 pasang bilangan
bekerja, maka proyek akan selesal yang memenuhi syarat tersebut
dalam 135 hari. C. Minimal ada 3 pasang bilangan
yang memenuhi syarat tersebut
Jika Bahrudin dan Ciko saja yang
D. Minimal ada 4 pasang bilangan
bekerja, maka proyek akan selesai
yang memenuhi syarat tersebut
dalam 120 hari.
E. Bisa saja tidak ada satu pasang
Agar proyek cepat selesai, mereka bilangan pun yang memenuhi
bertiga bekerja bersama-sama. syarat tersebut
Namun setelah 11 hari bekerja, Andre
mendadak tidak datang. Pada hari 26. Bu Sintia mempunyai sejumlah gelas
keberapakah si Andre paling lambat ukur, dengan ukuran: 8000 mL, 4000
harus datang kembali sehingga mL, 2000 mL, 1000 mL, 500 mL, 250
pekerjaan tersebut dapat selesai mL and 125 mL. Untuk membuat
dengan tidak melebihi deadline? kue, ia mengisi gelas ukuran 4000
mL, 1000 mL, 500 mL, 250 mL dan
A. 66 D. 48
125 mL dengan air. Bu Giselya
B. 78 E. 39
juga mempunyai gelas ukur yang
C. 56
ukurannya sama. Ia mengisi gelas
24. Ada berapa banyak untaian bit ukur 125 mL, 500 mL dan 2000 mL
dengan panjang 10 yang diawali 000 dengan air. Bu Bella juga mempunyai
atau diakhiri 1111? gelas ukur yang ukurannya sama, dan
A. 194 gelas ukurnya mula-mula kosong.
B. 172 Semua air yang ada pada gelas
C. 184 ukur Bu Sintia dan Bu Giselya akan
D. 128 dimasukkan ke gelas ukur Bu Bella,
E. Pilihan A, B, C, dan D salah.

95
sedemikian rupa sehingga semua A. A atau C
gelas ukur Bu Bella kosong atau B. B atau B
penuh. Berapa jumlah gelas ukur Bu C. C atau D
Bella yang penuh tanpa ada air yang D. D atau A
terbuang? E. Semua salah.
A. 2 D. 6
29. Perhatikan deskripsi berikut:
B. 4 E. 7
Proses sebuah mesin pembuat
C. 5
baterai terkait pada 5 macam materi:
A, B, C, D dan E.
Deskripsi untuk soal nomor 28 – 29!
Proses pertama mengolah setiap
Pak Setiawan adalah seorang peda­
3 unit A dan 2 unit B menghasilkan 3
gang keliling. Setiap hari ia berjualan di
unit D.
suatu kampung dan besoknya berpindah
ke kampung lain. Namun, ia memiliki Proses kedua mengolah setiap 1
aturan-aturan yaitu sebagai berikut. Pak unit A, 1 unit C, dan 1 unit D menjadi
Setiawan selalu berjualan di 4 kampung 2 unit E dan 3 unit B.
berbeda yaitu: A, B, C, dan D. Proses ketiga mengolah setiap 1
Jika hari ini ia ada di A, maka besoknya unit E dan 1 unit D menjadi 2 unit A.
akan pasti pindah ke C. Setiap proses segera terjadi
Jika hari ini ia ada di B maka hari jika setiap bahan yang diperlukan
berikutnya ia akan berada di A atau D. tersedia dan hasilnya diperoleh
tepat 1 jam kemudian. Proses juga
Jika hari ini ia ada di C maka besoknya
bisa terjadi secara paralel misalnya
ia akan ke B atau D.
jika tersedia 6 unit A dan 4 unit B,
Jika hari ini ia ada di D maka besoknya maka satu jam berikutnya dua proses
ia pasti akan berada di A. pertama akan menghasilkan 6 unit D.

Jika mula-mula terdapat 5 unit


27. Jika pada suatu hari ia ada di A, di
A, 3 unit B, dan 1 unit C, ada berapa
manakah ia bisa berada 3 hari kemu­
banyak materi A tepat pada 3 jam
dian?
berikutnya?
A. A atau C D. B atau C
B. B atau D E. A atau D A. 1 unit
C. A atau B B. 2 unit
C. 3 unit
28. Jika pada suatu hari ia berada di A, D. 4 unit
20 hari kemudian berada di suatu E. 5 unit
kampung X. Maka pada hari ke-5
berada pada tempat?

96
BAB

ALGORITMA
3

Algoritma adalah aturan atau lang­ Deklarasi Tipe - Digunakan untuk


kah-­langkah yang sistematis dan juga menyebutkan tipe setiap data yang
logis untuk memecahkan sebuah perma­ akan digunakan pada program Pas­
salahan. cal.

Deklarasi variabel - Berisi data-


A. Pascal (Pseudopascal) data yang bisa berubah-ubah nilainya
Struktur Program Pascal: di dalam program. Deklarasi variabel
harus diletakkan setelah deklarasi
1. Judul Program tipe ( jika ada).
Judul program digunakan untuk
memberi nama program dan sifatnya 3. Pernyataan
opsional. Jika ditulis harus terletak Bagian ini diawali dengan BEGIN
pada awal dari program dan diakhiri dan diakhiri dengan END, setiap
dengan titik koma (;). statemen yang merupakan instruksi
program diakhiri dengan tanda titik
2. Blok Program koma (;).
Dalam blog gambar terdapat de­
klarasi pada pascal. B. Analisis Kompleksitas
Deklarasi Label - Digunakan jika Alogitma
pada penulisan program akan meng­ Algoritma adalah hal mendasar
gunakan statemen GOTO (untuk me­ yang dipakai dalam pemrograman.
loncat ke suatu statemen tertentu).
Contoh algoritma untuk meng­
Deklarasi Konstanta - Digunakan hitung perpangkatan dua bilangan.
untuk mengidentifikasikan data yang Hasil akhir dari kode yang akan di­
nilainya sudah ditentukan dan pasti, kembangkan direpresentasikan oleh
tidak dapat diubah dalam program. fungsi matematis berikut:

97
jika kita naikkan nilai dari y sehingga
f(x, y)=xy
kita memanggil pangkat (2, 2)?
Salah satu implementasi seder-
Kode yang dieksekusi akan men-
hana untuk fungsi matematis di atas
jadi:
adalah:
hasil = 1
def pangkat(x, y):
for i in range(0, 2):
hasil = 1
hasil = 2 * hasil
for i in range(0, y):
return hasil
hasil = x * hasil
return hasil yang ketika diuraikan menjadi:

Pada dasarnya yang kita lakukan hasil = 1


pada kode di atas ialah mengalikan hasil = 2 * hasil
x dengan dirinya sendiri sebanyak hasil = 2 * hasil
y kali, dan menyimpan hasil kali return hasil
tersebut di dalam variabel hasil.
C. Fungsi dan Prosedur
Baris hasil = x * hasil melakukan
Rekursif
perkalian x dengan dirinya sendiri,
dan perulangan dilakukan untuk me- Prosedur dan fungsi merupakan sub
mastikan baris ini dijalankan seba- program yang sangat bermanfaat dalam
nyak y kali. pemrograman, terutama untuk program
atau proyek yang besar. Manfaat
Maka kode akan dieksekusi se-
penggunaan sub program antara lain
perti berikut:
adalah:
hasil = 1
for i in range (0, 1): 1. meningkatkan readibility, yaitu mem­
hasil = 2 * hasil permudah pembacaan program.
return hasil 2. meningkatkan modularity, yaitu me­
Yang kita perulangan for yang me­cah sesuatu yang besar menjadi
ada kita kembangkan akan menjadi: modul-modul atau bagian-bagian
yang lebih kecil sesuai dengan fung­
hasil = 1
sinya, sehingga mempermudah pe­
hasil = 2 * hasil
ngecekan, testing dan lokalisasi kesa­
return hasil
lahan.
Total terdapat tiga langkah yang
perlu dijalankan untuk mendapatkan 3. meningkatkan reusability, yaitu suatu
hasil pangkat yang diinginkan. Sangat sub program dapat dipakai berulang
sederhana dan mudah. Bagaimana kali dengan hanya memanggil sub
program tersebut tanpa menuliskan

98
perintah-perintah yang semestinya E. Pencarian Bilangan Prima
diulang-ulang.
Bilangan prima (Prime Number)
4. Sub Program Rekursif adalah sub ada­lah bilangan yang habis dibagi oleh
program yang memanggil dirinya angka 1 dan dirinya sendiri. Bilangan
sendiri selama kondisi pemanggilan prima merupakan bilangan asli. Bilangan
dipenuhi. asli adalah bilangan bulat positif yang
bukan nol. Contohnya dari 1, 2, 3, ... , tak
D. Pencarian FPB Menggu- terhingga positif.
nakan Metode Euclid
Faktor prima suatu bilangan adalah
FPB adalah istilah Matematika yang bilangan prima yang terkandung dalam
merupakan singkatan dari Faktor Perse­ faktor bilangan itu. Sementara cara untuk
kutuan Terbesar, atau dalam bahasa mencari faktor prima suatu bilangan
Inggris disebut GCD (Greatest Common dapat dengan menggunakan pohon
Divisor). faktor.
FPB dari dua bilangan adalah sebuah Bilangan prima dimulai dari angka
bilangan bulat positif terbesar yang da- 2 dan berlanjut ke angka seterusnya.
pat membagi kedua bilangan tersebut. Bilang­
an 2 hanya dapat difaktorkan
Misalkan terdapat 2 bilangan, 24 dan menjadi 2 dan 1 (2 = 2 x 1). Bilangan 2
32. adalah bilangan prima terkecil dan satu
satunya bilangan prima genap.
Bilangan yang dapat membagi 24
adalah: 1, 2, 3, 4, 6, 8, 12, 24. Dan seterusnya.

Bilangan yang dapat membagi 32


F. Algoritma Pengurutan
adalah: 1, 2, 4, 8, 16, 32.
(Sorting), Bubble Sort,
1, 2, dan 4, ketiga bilangan ini dapat Select Sort, Quict Sort
membagi 24 maupun 32, dan yang di-
dan Kompleksitas
maksud dengan FPB dari 24 dan 32 ada-
lah 4, karena merupakan bilangan terbe- Kompleksitas dari suatu algoritma
sar dari bilangan-bilangan yang dapat merupakan ukuran seberapa banyak
membagi kedua bilangan itu. komputasi yang dibutuhkan algoritma
tersebut untuk mendapatkan hasil yang
Algoritma Euclid merupakan algorit-
diinginkan. Algoritma yang dapat mem-
ma yang digunakan untuk mencari FPB
peroleh hasil yang diinginkan dalam wak-
dari dua buah bilangan. Algoritma ini
tu yang singkat memiliki kompleksitas
memanfaatkan sifat-sifat dari sisa pem-
yang rendah, sementara algoritma yang
bagian atau modulo.
membutuhkan waktu yang lama untuk

99
memperoleh hasil tersebut mempunyai 3. Quick sort
kompleksitas yang tinggi. Biasanya kom- Sistem algoritma Quick Sort sen­
pleksitas algoritma dinyatakan secara diri adalah membagi kumpulan suatu
asimptotik dengan notasi big-O. Jika data menjadi beberapa sub bagian/
kompleksitas waktu untuk menjalankan partisi. Pembagian partisi ini berda­
suatu algoritma dinyatakan dengan T(n), sar­
kan letak dari suatu pivot yang
dan memenuhi T(n) ≤ C(f(n)) untuk n ≥ dapat dipilih secara acak. Akan tetapi
n 0 maka kompleksitas dapat dinyatakan justru penentuan pivot inilah yang
dengan T(n) = O(f(n)). sangat memengaruhi dalam proses
kecepatan sorting.
1. Bubble Sort
Bubble Sort merupakan cara peng­­ 4. Insertion sort
urutan yang sederhana. Algorit­ Insertion sort adalah sebuah
ma sorting ini disebut juga dengan algo­ritma sederhana yang cukup
compa­rison sort dikarenakan hanya efisien untuk mengurutkan sebuah
meng­an­dal­kan perbandingan nilai list yang hampir terurut. Langkah-
ele­men untuk mengoperasikan ele­ langkah pengurutannya adalah:
mennya.
a. Elemen awal dimasukkan semba­
rang, lalu elemen berikutnya di­
2. Select sort
ma­sukkan dibagian paling akhir.
Algoritma sorting sederhana
b. Elemen tersebut dibandingkan
yang lain adalah selection sort. Ide
dengan elemen ke (x-1).
dasarnya adalah melakukan bebe­
c. Setiap pergeseran akan meng-
rapa kali pass untuk melakukan
ganti nilai elemen berikutnya,
penye­ lek­
sian elemen struktur data.
namun hal ini tidak menjadi per-
Untuk sorting ascending (menaik),
soalan sebab elemen berikutnya
elemen yang paling kecil di antara
sudah diproses lebih dahulu.
elemen-elemen yang belum urut,
disimpan indeksnya, kemudian 5. Merge sort
dilakukan pertukaran nilai elemen Algoritma Merge Sort ditemukan
dengan indeks yang disimpan oleh John von Neumann di tahun
tersebut dengan elemen yang paling 1945. Merge Sort termasuk paradigma
depan yang belum urut. Sebaliknya, algoritma divide and conquer (kurang
untuk sorting descending (menurun), lebih berarti: bagi dan atasi). Hal ini
elemen yang paling dikarenakan algoritma ini melakukan
pembagian struktur data sebelum
4 besar yang disimpan indeksnya
kemudian dioperasi satu per satu.
kemudian ditukar.

100
Soal Olimpiade
Sains Nasional Komputer
OSN TINGKAT KABUPATEN function jeruk(anggur, melon:
integer): integer;
1. Function wow(x:integer):integer; begin
begin if (melon = 1) then jeruk:= 0 else
if (x < 2) then wow:= x jeruk:= mangga(anggur) * anggur +
else wow:= wow(x-2) + 3*wow(x-1); jeruk(anggur, melon - 1);
end; end;
Apa yang akan dikembalikan
pada pemanggilan fungsi wow(8)? 2. Berapakah hasil pemanggilan fungsi
mangga (49)?
A. 3620 D. 3927
A. 1
B. 3760 E. 4126
B. 7
C. 3824
C. 14
(SOAL OSN TINGKAT KABUPATEN TAHUN 2012) D. 21
E. 49
Deskripsi soal untuk no 2 dan 3! (SOAL OSN TINGKAT KABUPATEN TAHUN 2012)

Perhatikan potongan program ber­


ikut: 3. Berapakah hasil pemanggilan fungsi
jeruk (25, 20)?
function mangga(rambutan: integer):
A. 425
integer;
B. 450
begin
C. 475
if (rambutan = 1) then mangga:= 1 D. 500
else E. 525
if (rambutan mod 2 = 1) then
(SOAL OSN TINGKAT KABUPATEN TAHUN 2012)
mangga:= mangga(3 * rambutan +
1)
else mangga:= mangga(rambutan
div 2);
end;

101
Deskripsi soal nomor 4 dan 5 str:string;
Perhatikan potongan program ber­ begin
ikut: if a=0 then
bincin:=’’
function f(a: integer):integer;
else
begin
begin
if a=0 then
b:=a mod 4;
f:= 1
if (b=0) then str:=’0’
else
else str:=’1’;
f:= 2*f(a-1);
bincin:=bincin (a div 2)+str;
end;
end;
function g(b: integer):integer;
end;
begin
if b=0 then
Nilai yang dihasilkan ketika fungsi
g:= f(b)
bincin(73) dipanggil adalah …
else
A. 1001001
g:= f(b) + g(b-1);
B. 1101101
end;
C. 1010101
4. Jika fungsi g(3) dipanggil maka nilai D. 1011011
yang dihasilkan adalah..... E. 1101001
A. 1 (SOAL OSN TINGKAT KABUPATEN TAHUN 2013)
B. 3
C. 4
Soal untuk no 7-8
D. 15
E. 16
Perhatikan potongan program beri­
(SOAL OSN TINGKAT KABUPATEN TAHUN 2012) kut:

function sapi(kucing: integer):


5. Jika fungsi f(10) dipanggil maka nilai integer;
yang dihasilkan adalah....... begin
A. 1 D. 1023 if (kucing <= 2 ) then
B. 9 E. 1024 sapi:= 1
C. 10 else
(SOAL OSN TINGKAT KABUPATEN TAHUN 2012) sapi:= sapi(kucing div 2)+1;
end;
6. Perhatikan program di bawah ini: function ayam(rumput: integer):
function bincin (a:integer):string; integer;
var begin
b:integer; if (rumput < 1024) then

102
ayam:= ayam(rumput*2) + 9. Perhatikan potongan program ber­
sapi(rumput) ikut:
else var data: array[1..10] of integer = (3,
ayam:= 0; 9, 2, 6, 1, 4, 7, 8, 5, 10);
end; procedure piring(n: integer);
function rumput(batu: integer): begin
integer; if (n<=10) then
var a, c:integer; begin
begin piring(n*2);
a:=2; piring(n*2+1);
c:=1; write(data[n], ’ ’);
while (batu > 0) do end;
begin end;
if ((batu mod 2) = 1) then Jika statement pada baris ke 8
c:=c*a; yaitu write(data[n], ’ ‘) dipindahkan
batu:= batu div 2; pada sebelum statement baris
a:= a*a; ke 6, maka untuk menghasilkan
end; output yang terurut menaik setelah
rumput:=c; pemanggilan piring(1) adalah ....
end;
A. (3, 9, 2, 6, 1, 4, 7, 8, 5, 10)
7. Berapakah nilai dari ayam(rumput(9))? B. (1, 2, 8, 3, 6, 9, 10, 4, 5, 7)
A. 19 C. (10, 6, 9, 3, 5, 7, 8, 1, 2, 4)
B. 10 D. (7, 4, 2, 1, 3, 6, 5, 9, 8, 10)
C. 9 E. (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
D. 8 (SOAL OSN TINGKAT KABUPATEN TAHUN 2014)
E. 7

(SOAL OSN TINGKAT KABUPATEN TAHUN 2014)


Deskripsi untuk soal nomor 10 - 11

Perhatikan potongan program berikut:


8. Berapakah nilai dari ayam(rumput(2))?
a. 44 function yolo(x, y:integer):integer;
b. 42 begin
c. 8 if (y = 0) then yolo:=x
d. 2 else yolo:= yolo(y, x mod y)*yolo(y
e. 1 mod x, x mod y)*y;
end;
(SOAL OSN TINGKAT KABUPATEN TAHUN 2014)
begin
writeln(yolo(19, 5));
end.

103
10. Berapakah keluaran program di atas? 13. Deskripsi untuk soal nomor 13
A. 80 Perhatikan potongan program
B. 0 berikut:
C. 125
while (a>b) do
D. 720
begin
E. 19
a:= a-b;
(SOAL OSN TINGKAT KABUPATEN TAHUN 2014) c:= c+1;
d:= d+b;
11. Bila fungsi yolo (9, y) dipanggil dan end;
fungsi tersebut mengembalikan nilai writeln(c, ’ ‘, d);
4, maka berapakah nilai y? Jika pada awalnya nilai a, b, c,
A. 1 dan d berturut-turut adalah 23, 4, 0,
B. 2 dan 0; maka keluaran dari potongan
C. 3 program tersebut adalah:
D. 4 A. 0 0 D. 5 20
E. 5 B. 1 4 E. 6 50
(SOAL OSN TINGKAT KABUPATEN TAHUN 2014) C. 3 4

(SOAL OSN TINGKAT KABUPATEN TAHUN 2015)


12. Diberikan potongan kode program
sebagai berikut:
Deskripsi berikut untuk soal nomor 14 dan 15!
{x dan y bertipe data integer}
x:=10; y:=10; Perhatikan potongan program beri­
x:=x*x; y:=x; kut:
if (x<y) then x:=y-1 for i:= 0 to ((1 shl n) – 1 do
else if (x>y) then x:=y+1; begin
x:=x div x; for j:= 0 to n - 1 do
Nilai x setelah potongan program begin
di atas dieksekusi adalah: if((i and (1 shl j)) <> 0)then
A. 10 write(‘1’)
B. 99 else
C. 11 write(‘0’);
D. 100 end;
E. 1 writeln;
end;
(SOAL OSN TINGKAT KABUPATEN TAHUN 2014)

14. Jika kode di atas dijalankan dengan


n = 3, maka banyak angka 0 yang

104
dihasilkan oleh instruksi pada baris A. x=1, y=0
ke-5 adalah: B. x=0, y=1
A. 5 C. x=0, y=0
B. 4 D. x=1, y=1
C. 3 E. x=1, y=2
D. 2 (SOAL OSN TINGKAT KABUPATEN TAHUN 2012)
E. 1

(SOAL OSN TINGKAT KABUPATEN TAHUN 2015)


Deskripsi soal untuk no 18 dan 19

15. Untuk setiap baris hasil keluaran, Perhatikan potongan program beri­
selisih jumlah angka 1 paling banyak kut:

adalah: procedure swap(a, b, c:integer);


A. n*n D. log(n) var
B. n*(n-1)/2 E. log(n)/2 temp: array[1..20]:integer;
C. n i, j: integer;
begin
(SOAL OSN TINGKAT KABUPATEN TAHUN 2015)
j:= 1;
for i:= b+1 to c do
Diskripsi berikut untuk soal no 16 dan 17 begin
Perhatikan potongan program beri­ temp[ j]:= x[i];
kut: j:= j+1;
end;
x:= x xor y;
for i:= a to b do
x:= y xor x;
begin
x:= x xor y;
temp[ j]:= x[i];
16. Jika nilai awal x dan y adalah 3 dan 4, j:= j+1;
maka setelah kode di atas dijalankan end;
nilainya adalah: j:= 1;
A. x=4, y=3 for i:= a to c do
B. x=4, y=4 begin
C. x=5, y=4 x[i]:= temp[ j];
D. x=6, y=4 j:= j+1;
E. x=7, y=4 end;
end;
(SOAL OSN TINGKAT KABUPATEN TAHUN 2012)

18. Jika array x berisi (5, 8, 10, 11, 25, 30,


17. Jika nilai awal x dan y adalah 1 dan 0, 33, 42, 49, 54, 63, 64, 66, 75, 78, 84,
maka setelah kode di atas dijalankan 93, 96). Dan diinginkan baris tersebut
nilainya adalah:

105
tersusun terbalik. Berapa kali minimal Deskripsi untuk soal nomor 21 - 22
pemanggilan swap dilakukan? Perhatikan potongan program beri­
A. 16 kut:
B. 17
for i:=1 to 4 do begin
C. 18
for j:=1 to x do write(‘ ‘);
D. 19
for j:=y downto i do write(‘*’);
E. 20
writeln;
(SOAL OSN TINGKAT KABUPATEN TAHUN 2012)
end;

19. Jika array x berisi (6, 4, 3, 5, 1, 2). 21. Untuk menghasilkan output seperti
Dan dilakukan pemanggilan swap(1, di bawah ini:
2, 4) dan swap(3, 4, 5) maka akan *******
menghasilkan output: *****
A. 3, 5, 1, 4, 6, 2 ***
B. 4, 3, 1, 5, 6, 2 *
C. 1, 3, 6, 4, 5, 2 Nilai x dan y harus diganti
D. 4, 3, 5, 1, 6, 2 dengan …
E. 3, 5, 1, 6, 4, 2
A. i dan 4
(SOAL OSN TINGKAT KABUPATEN TAHUN 2012) B. i dan 7
C. i-1 dan 4-i
20. Perhatikan potongan program beri­
D. i-1 dan 7-i
kut: E. i-1 dan 8-i
A:= 0
(SOAL OSN TINGKAT KABUPATEN TAHUN 2013)
for i:= C to D do
A:=(A+i) mod 5
output (A) 22. Untuk menghasilkan output seperti
Jika output yang muncul di layar di bawah ini:
adalah 3 dan nilai variabel C dan D *
hanya boleh berada di antara 0..255, **
ada berapa banyak kemungkinan ***
pa­sangan nilai C dan D yang meng­ ****
hasilkan output tersebut? Nilai x dan y harus diganti de­
ngan …
A. 2
B. 5 A. 4 dan 2*i D. 4-i dan 2*i-
C. 1326 B. 4-i dan 2*i 1
D. 2652 C. 4 dan 2*i-1 E. S e m u a
E. 5253 salah

(SOAL OSN TINGKAT KABUPATEN TAHUN 2013) (SOAL OSN TINGKAT KABUPATEN TAHUN 2013)

106
23. Perhatikan potongan algoritma beri­ Deskripsi untuk soal nomor 25 - 26
kut ini: var
x dan y bertipe integer i, n, c: longint;
x:= 20; y:= 35; begin
x:= x + y; readln(n);
y:= x - y; c:= 0;
x:= x - y; for i:= 1 to n do begin
Nilai pasangan variabel x dan inc(c, i);
y setelah operasi x:=x-y dieksekusi end;
adalah... writeln(c);
A. x = 35, dan y =55 end.
B. x = 35, dan y = 20
25. Apakah output program di atas apa­
C. x = 15, dan y = 5
bila masukan n bernilai 10?
D. x = 15, dan y = -20
A. 10
E. x = -35, dan y = 15
B. 45
(SOAL OSN TINGKAT KABUPATEN TAHUN 2014) C. 55
D. 65
24. Perhatikan berikut ini: E. 76
var
(SOAL OSN TINGKAT KABUPATEN TAHUN 2016)
arr: array[1..30] of longint = ( 5, 5, 7,
8, 6, 8, 5, 8, 4, 6, 6, 3, 4, 26. Apakah output program di atas apa­
2, 8, 0, 9, 2, 3, 4, 7, 8, 5, 4, 5, 3, 9, 8, bila masukan n bernilai 1000?
0, 3 ); A. 1000
i, c: longint; B. 5500
begin C. 5550
c:= 0; D. 505000
for i:=1 to length(arr) do begin E. 500500
inc(c, arr[i]);
(SOAL OSN TINGKAT KABUPATEN TAHUN 2016)
end;
writeln((c/length(arr)):0:2);
27. Perhatikan potongan program beri­
end.
kut:
Apa keluaran program di atas?
function swag(x:integer):integer;
A. 3.17 D. 6.17
begin
B. 4.17 E. 7.17
if (x<7) then swag:=x
C. 5.17
else swag:=swag(x mod 7)*swag(x
(SOAL OSN TINGKAT KABUPATEN TAHUN 2016)
div 7)*7;
end;

107
begin D. 5
writeln(swag(71)); E. 10
end.
(SOAL OSN TINGKAT KABUPATEN TAHUN 2018)
Berapakah nilai x sehingga kelu­
aran program tersebut adalah 21?
Deskripsi untuk soal nomor 29 – 30!
A. 22
B. 21 Perhatikan fungsi berikut
C. 20 function wah(x, y: integer): integer;
D. 19 begin
E. 38 if ((x = 0) and (y = 0)) then wah:= 0;
(SOAL OSN TINGKAT NASIONAL TAHUN 2017) else if (x > y) then
begin
28. var arr: array[1..10] of integer; if (x > -y) then wah:= wah(x – 1, y)
i, j, s: integer; + 1;
begin else wah:= wah(x, y + 1) + 1;
for i:= 1 to 10 do end
arr[i]:= i + 1; else
for i:= 1 to 10 do begin
begin if (x > -y) then wah:= wah(x, y - 1)
for j:= i+1 to 10 do + 1;
begin else wah:= wah(x + 1, y) + 1;
if (arr[i] = -1)then break; end;
s:= arr[ j] div arr[i]; end;
if (s * arr[i] = arr[ j]) then 29. Pemanggilan wah (3, 3) mengha­
begin silkan?
arr[i]:= arr[i] + arr[ j]; A. 3
arr[ j]:= arr[i] - arr[ j]; B. 6
arr[i]:= arr[i] - arr[ j]; C. 9
arr[i]:= -1; D. 12
end; E. Tidak ada pilihan jawaban yang
end; benar
end;
(SOAL OSN TINGKAT KABUPATEN TAHUN 2009)
end.
Berapa nilai dari arr[9] setelah
program selesai dijalankan? 30. Ada berapa pasangan x dan y yang
berbeda dimana wah(x, y) menge­lu­
A. -1
arkan hasil 3?
B. 0
C. 2

108
A. 6 i:= 1;
B. 12 j:= 1;
C. 3 while (i <= 1000) do
D. 8 begin
E. Tidak ada pilihan jawaban yang writeln(i);
benar ............ // perintah yang hilang
j:= j + 2;
(SOAL OSN TINGKAT KABUPATEN TAHUN 2009)
end;
writeln(i);
OSN TINGKAT PROVINSI
Bila pada ekspresi pemeriksaan
1. Perhatikan potongan algoritma beri­ kondisi loop-while (perintah while (i
kut. <= 1000) do) variable i diganti dengan
for i:= 1 to n do pemeriksaan variabel j menjadi
for j:= 1 to n do while ( j <= M) do berapakah harga
XX(i, j); yang terkecil yang mungkin untuk
Misalnya XX(i, j) dijalankan de­ menggantikan M agar algoritma
ngan harga berapapun bersifat kons­ bekerja secara identik?
tan, dan potongan algoritma itu
A. 54 D. 60
dengan harga n = 100, diperlukan
B. 55 E. 70
waktu rata-rata 1 detik kira-kira
C. 65
berapa detik potongan algoritma ini
(SOAL OSN TINGKAT KABUPATEN TAHUN 2010)
dijalankan untuk nilai n =

2000?
3. Perhatikan potongan program beri­
A. 200 kut:
B. 400 for i:=1 to n do
C. 500 for j:= 1 to i do
D. 600 ...
E. 300 Jika n = 100, maka potongan
(SOAL OSN TINGKAT KABUPATEN TAHUN 2010 ) program tersebut akan berjalan
dalam waktu 1 detik. Berapakah
2. Deskripsi untuk soal nomor 2 lamanya program berjalan jika
Tujuan dari algoritma ini adalah n=10000? (bulatkan ke bilangan
mencetak deret bilangan: 1, 2, 5, 10, bulat terdekat).
17, 26, 37, dan seterusnya selama Dengan catatan: kode program/
hingga pertama kali mencetak angka algoritma dalam loop dapat diekse­
yang > 1000. kusi dengan waktu konstan.

109
A. 9902 D. 9908 b: integer;
B. 9904 E. 9910 str: string;
C. 9906 begin
if (a=0) then
(OSN TINGKAT PROVINSI TAHUN 2011)
coba:= ‘’
else
Deskripsi untuk soal nomor 4 dan 5! begin
Perhatikan potongan program beri­ b:= a mod 2;
kut:
if (b=0) then str:=’0’
hitung:=0;
else str:=’1’;
n:=10;
for i:=1 to n do coba:= coba(a div 2)+str;
if (i mod 2 = 0) then end;
for j:=1 to 10 do
if ( j mod 2 = 0) then end;
hitung:= hitung + j Nilai yang dikembalikan oleh
else pemanggilan fungsi coba(155) ada­lah?
hitung:= hitung + i;
writeln(hitung); A. 11001000
B. 10110000
4. Apakah output yang tampil di layar? C. 10010010
A. 300 D. 11001001
B. 250 E. 10011011
C. 400
(SOAL OSN TINGKAT KABUPATEN TAHUN 2011)
D. 520
E. 600
7. Diketahui definisi fungsi sebagai ber­
(SOAL OSN TINGKAT KABUPATEN TAHUN 2011)
ikut. Jika max(a, b) adalah fungsi yang
mengembalikan nilai maksimum dari
5. Jika kode di baris ke 2 diganti dengan
a dan b, berapakah nilai dari F1(4, 3)?
n:=1000, apakah output yang tampil
function F1(i, j: integer): integer;
di layar?
begin
A. 1189500
if (i < 0) or ( j < 0) then
B. 147000
F1:= max(i, j) + 1
C. 1387800
else if i = j then
D. 1067900
F1:= F1(i + 1, j - 1)
E. 1267500
else
(SOAL OSN TINGKAT KABUPATEN TAHUN 2011) F1:= F1(i - 2, j - 1) + F1(i - 1, j - 2);
end;
6. Perhatikan fungsi berikut: A. 9
function coba(a:integer):string; B. 8
var C. 7

110
D. 6 Deskripsi untuk soal nomor 10 - 11
E. 5 Perhatikan potongan program beri­
(SOAL OSN TINGKAT KABUPATEN TAHUN 2012) kut

//inisiasi semua T[..] sebagai true


Deskripsi untuk soal nomor 8- 9 for i:= 2 to max do
begin
Perhatikan fungsi berikut:
if (T[i]) then
function F5(n: integer): integer;
begin
begin
writeln(i);
if (n = 1) or (n = 2) then
j:= i;
F5:= 1
while ( j*i <= max) do
else
begin
F5:= F5(n - 1) + F5(n - 2);
... // perintah yang hilang
end;
j:= j + 1;
8. Berapa kalikah F5(4) dieksekusi pada end;
pengeksekusian F5(8)? end;
A. 4x end;
B. 3x
10. Agar algoritma tersebut dapat me­
C. 2x
nam­
pilkan semua bilangan prima
D. 1x
2, 3, 5, 7, … dan seterusnya hingga
E. Tidak ada
nilai max, perintah apa yang harus
OSN TINGKAT PROVINSI TAHUN 2012
dituliskan di bagian … //perintah
yang hilang? (hint: perintah hanya
9. Berapa kalikah F5(n-k) dieksekusi
terdiri dari 1 statement).
pada pengeksekusian F5(n) (dengan
A. T[i × j]:= true
n>k>2, notasikan jawaban anda
B. T[i × j]:= 1
dalam F5, n dan k)?
C. T[i / j]:= true
A. Banyaknya eksekusi f(n-
D. T[i × j]:= false
k+1)+banyaknya eksekusi
E. T[i / j]:= true
f(n-k+2)
B. Banyaknya eksekusi f(n-k+1)- (OSN TINGKAT PROVINSI TAHUN 2012)

banyak­nya eksekusi f(n-k+2)


C. Banyaknya eksekusi f(n-k+1) 11. Mengacu pada potongan algoritma
D. Banyaknya eksekusi banyaknya di atas. Bila max bernilai 100, berapa
eksekusi f(n-k+2) kali perintah writeln(i) dieksekusi?
E. Banyaknya eksekusi f(n-k- A. 27 kli
1)*banyaknya eksekusi f(n-k+2) B. 25 kali
(2012) C. 29 kali

111
D. 30 kali 13. Apabila rumus pada baris ke-5
E. 32 kali program di atas diubah menjadi
(OSN TINGKAT PROVINSI TAHUN 2012)
b:=a*(a+b) dan nilai b setelah
program dijalankan adalah 108, maka
12. Perhatikan potongan program beri­ berapa nilai q-p?
kut ini: A. 5
var m, i, a, b, c, d:longint; B. 4
begin C. 3
readln(m); D. 2
a:=1;b:=1;c:=1; E. 1
for i:=4 to m do (OSN TINGKAT PROVINSI TAHUN 2012)
begin
d:=a+b+c; 14. Apabila diketahui p=3 dan nilai b
a:=b; setelah program dijalankan adalah
b:=c; 350, maka berapa nilai q pada saat
c:=d; inisialisasi?
end; A. 5
writeln(c); B. 4
end. C. 3
Bila user memasukkan input 8, D. 2
maka berapakah outputnya? E. 1
A. 40 (OSN TINGKAT PROVINSI TAHUN 2012 )
B. 52
C. 43 15. Perhatikan potongan program beri­
D. 31 kut
E. 39 function func(x:integer):integer;
(OSN TINGKAT PROVINSI TAHUN 2012) var
i: integer;
Deskripsi untuk soal nomor 13 - 14 b: boolean;
begin
Perhatikan potongan program beri­
b:= true;
kut
i:= 1;
a:=2; while b=true do
b:=3; begin
for i:=p to q do if (x mod i) <> 0 then
begin begin
b:=i*(a+b); func:= i;
end; b:=false;

112
end; 17. Perhatikan potongan program beri­
inc(i); kut!
end; var N, hasil: integer;
end; procedure solve(X:integer);
Dengan mengasumsikan tipe begin
integer adalah tipe bilangan bulat if (X>1) then
yang tidak memiliki batasan, berikan begin
sepuluh nilai x positif terkecil di mana hasil:=hasil+1;
tidak ada angka positif y sehingga solve(X div 2 + X mod 2);
func(y) = x. end;
A. 1, 6, 10, 12, 14, 15, 18, 20, 21, 22 end;
B. 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23 begin
C. 1, 10, 12, 14, 17, 18, 20, 21, 22 , 25 readln(N);
D. 11, 12, 13, 14, 17, 18, 20, 21, 22, 25 hasil:=0;
E. 7, 8, 12, 14, 17, 19, 20, 21, 22 , 25 solve(N);
writeln(hasil);
(OSN TINGKAT PROVINSI TAHUN 2012)
end.
Bila diberi masukan bilangan 77,
16. Perhatikan potongan program beri­ maka program akan memberikan
kut: keluaran
var
A. 11 D. 31
i, j:longint;
B. 7 E. 9
begin
C. 22
for j:=1 to 15 do
for i:=1 to 16-j do (OSN TINGKAT PROVINSI TAHUN 2103)
if (i mod j=0) then writeln(‘*’);
end. 18. Perhatikan potongan program beri­
Jika program di atas dijalankan, kut!
maka banyaknya bintang yang akan function kibo(n: integer):integer;
ditampilkan ke layar adalah begin
A. 50 if (n = 2) or (n = 1) or (n = 0) then
B. 47 kibo:= n
C. 34 else kibo:= kibo(n-1) + kibo(n-3);
D. 29 end;
E. 17 Berapa kalikah kibo(3) dipanggil
saat pemanggilan kibo(7)?
(OSN TINGKAT PROVINSI TAHUN 2012)
A. 1 kali
B. 2 kali
C. 3 kali

113
D. 4 kali Deskripsi untuk soal nomor 20 - 21
E. 5 kali Perhatikan potongan program beri­
(OSN TINGKAT PROVINSI TAHUN 2013) kut!

procedure tulis (n, m:integer);


19. Perhatikan potongan program beri­ var
kut! i, j, k:integer;
var begin
we: longint; for i:=1 to n do
Z: array[1..15] of longint = (64, 19, begin
56, 67, 66, 82, for j:=1 to (n div m) do
31, 20, 67, 10, 94, 100, 57, 14, 86); for k:=1 to m do
function f(x: longint; y: longint): writeln(‘*’);
longint; for j:=1 to (n mod m) do
var writeln(‘-’);
a, b: longint; end;
begin end;
if (x = y) then
f:= Z[y] 20. Bila kita memanggil prosedur tulis
else begin (30, 30), berapakah jumlah ‘*’ yang
a:= f(x, (x+y) div 2); tertulis?
b:= f((x+y) div 2+1, y); A. 1000 kali
if (a < b) then f:= a B. 600 kali
else f:= b C. 800 kali
end D. 700 kali
end; E. 900 kali
begin (OSN TINGKAT PROVINSI TAHUN 2013)
we:= f(3, 11);
writeln(we); 21. Bila kita memanggil prosedur tulis(n,
end. m), berapakah jumlah simbol (‘*’
Apakah keluaran dari program maupun ‘-’) yang tertulis? {tuliskan/
tersebut? nyatakan dalam m atau n}
A. 20 A. N2
B. 70 B. N3
C. 50 C. N4
D. 10 D. N5
E. 30 E. N6

(OSN TINGKAT PROVINSI TAHUN 2013) (OSN TINGKAT PROVINSI TAHUN 2013)

114
22. Diberikan potongan program seba­ 24. Tuliskanlah input yang dapat me­
gai berikut, berapakah hasil dari ngeluarkan output berupa satu baris
Proses(11)? berisi angka-angka sebagai berikut:
function Proses(x: integer): integer;
begin 12345
if(x <= 1) then Proses:= x untuk program sebagai berikut:
else Proses:= Proses(x div 2 * x mod var
2) + Proses(x div 2 + x mod 2); ar: array[1..5] of integer;
end; i: integer;
A. 6 procedure S(a, b: integer);
B. 5 var
C. 4 temp: integer;
D. 3 begin
E. 2 temp:= ar[a];
ar[a]:= ar[b];
(OSN TINGKAT PROVINSI TAHUN 2016)
ar[b]:= temp;
end;
23. Tuliskan keluaran program berikut
begin
ini:
for i:= 1 to 5 do read(ar[i]);
function meong(x: longint):integer;
S(3, 4);
begin
S(4, 1);
if (x = 0) then
S(5, 2);
meong:= 0
S(5, 1);
else if (x mod 2 = 1) and ((x div 2)
for i:= 1 to 4 do begin
mod 2 = 1) then
write(ar[i], ‘ ‘);
meong:= meong((x div 2) div 2) + 1
end;
else
writeln(ar[5]);
meong:= meong(x + 1) + 1;
end.
end;
A. 41532
begin
B. 54321
writeln(meong(888));
C. 12345
end.
D. 32145
A. 21
E. 43521
B. 11
C. 24 (OSN TINGKAT PROVINSI TAHUN 2016)

D. 31
E. 17

(OSN TINGKAT PROVINSI TAHUN 2016)

115
25. Sad writeln(z);
Tuliskan output dari program Berapakah outputnya tersebut?
pseudo code di bawah ini jika input A. 34
x = 9. B. 41
function jarak(km:integer): integer; C. 37
begin D. 21
if (km <= 2) then E. 16
jarak:= 1
OSN TINGKAT PROVINSI TAHUN 2015
else
jarak:= jarak(km-1) + jarak(km-2);
27. Tuliskan output dari program pseudo
end;
code di bawah ini.
var
begin
i, x:integer;
lala:=10;
begin
x:=2;
readln(x);
haha:=0;
for i:= x downto 1 do
for i:=1 to lala do
write( jarak(i), ‘ ‘);
begin
end.
j:=i;
lili:=true;
Tuliskan hasil outputnya!
while ( j>1) do
A. 8 5 3 2 1 1 13 21 34
begin
B. 21 8 13 3 34 1 2 1 1
if ( j mod x = 1) then lili:=false;
C. 1 1 2 3 5 8 13 21 34
j:=j div x;
D. 13 8 5 2 1 1 21 34 1
end;
E. 34 21 13 8 5 3 2 1 1
if (lili=true) then haha:=haha+i;
(OSN TINGKAT PROVINSI TAHUN 2015) else haha:=haha+1;
end;
26. Tuliskan output dari program pseudo writeln(haha);
code di bawah ini jika input x = 20 end.
dan y = 14.
readln(x, y); Berapakah hasilnya?
z:= 0; A. 21
while (x > y) do begin B. 11
z:= z + x; C. 19
z:= z - y; D. 7
x:= x - 2; E. 16
y:= y - 1;
(OSN TINGKAT PROVINSI TAHUN 2015)
end;

116
28. Perhatikan berikut: if (Y = 0) then B:= 0
var else B:= C(X, B(X, Y-1));
aku, kamu, dia, saya, anda: integer; end;
begin function A(X, Y: integer): integer;
aku:=2; kamu:=10; begin
for saya:=aku to kamu do if (Y = 0) then A:= 1
begin else A:= B(X, A(X, Y-1));
dia:=saya; end;
for anda:= 1 to saya-1 do begin
begin writeln(A(4, 2));
writeln(dia); end.
dia:= dia * (saya-anda) div (anda+1); Jika kode program “writeln(A(4,
end; 2));” diganti dengan “writeln(A(3,
end; 6));”, Tuliskan output dari program
end. pseudo code tersebut!
Penjumlahan dari tiga angka ter­
A. 789
akhir yang tercetak oleh program
B. 767
pseudo code di atas adalah ...
C. 879
A. 185 D. 729
B. 165 E. 897
C. 175
(OSN TINGKAT PROVINSI TAHUN 2015)
D. 155
E. 145
30. Diberikan program di bawah ini. Be-
(OSN TINGKAT PROVINSI TAHUN 2014) rapakah output dari program terse-
but?
29. Perhatikan program berikut: var
function D(X, Y: integer): integer; rumah: array[1..25] of integer;
begin procedure buat(x, y:integer);
if (Y = 0) then D:= 1 begin
else D:= Y+1; rumah[x]:= rumah[x] + 1;
end; rumah[y+1]:= rumah[y + 1] -1;
function C(X, Y: integer): integer; end;
begin function hitung():integer;
if (Y = 0) then C:= X var
else C:= D(X, C(X, Y-1)); i, tmp, pintu, jendela: integer;
end; begin
function B(X, Y: integer): integer; tmp:= 0; pintu:= 0; jendela:= 0;
begin for i:= 1 to 25 do

117
begin else if e[a] = -1 then
tmp:= tmp + rumah[i]; f:= 0
if tmp > pintu then else f:= 2 * f(e[a], b);
begin end;
pintu:= tmp; A. 5
jendela:= i; B. 6
end; C. 4
end; D. 7
hitung:= jendela; E. 8
end;
(OSN TINGKAT PROVINSI TAHUN 2008)
begin
buat(4, 8);
2. Diberikan program seperti di bawah
buat(3, 6);
ini. Berapakah output dari program
buat(10, 15);
tersebut? {tuliskan jawaban sesuai
buat(14, 20);
dengan output yang dihasilkan}
writeln(hitung());
var i, j, k, sum:integer;
end.
begin
{tuliskan jawaban sesuai dengan
sum:=0;
output yang dihasilkan}
for i:= 1 to 10 do
A. 5 begin
B. 4 j:=0; k:=i;
C. 6 while (k>0) do
D. 14 begin
E. 10 sum:=sum+j+k;
(OSN TINGKAT PROVINSI TAHUN 2018) j:=j+1; k:=k-1;
end;
OSN NASIONAL end;
writeln(sum);
1. Diberikan fungsi seperti di bawah ini. end.
Berapakah nilai dari f(8, 4)? {tuliskan A. 387
jawaban sesuai dengan output yang- B. 385
dihasilkan} C. 388
var e: array[1..10] of integer = (6, 7, 4, D. 389
5, -1, 4, -1, 3, 1, 9); E. 340
function f(a, b: integer): integer;
(SOAL OSN TINGKAT NASIONAL TAHUN 2018)
begin
if a = b then
f:= 1

118
3. Diberikan program di bawah ini. Tulis­ x:=x-j
kan output dari program tersebut. else
{tuliskan jawaban sesuai dengan x:=x+j;
output yang dihasilkan} end;
function movpush(a, end;
b:integer):integer; writeln(x);
var x: integer;
end.
begin
while(b <> 0) do
4. Apakah keluaran dari program di
begin
atas?
x:= a and b;
A. 40
x:= x shl 1;
B. 50
a:= a xor b;
C. 30
b:= x;
D. 60
end;
E. 20
movpush:= a
end; (SOAL OSN TINGKAT NASIONAL TAHUN 2017)

begin
writeln(movpush(movpush(300, 5. Jika nilai baa pada awalnya diganti
510), movpush(0, 110))); menjadi baa:=1000; maka keluaran
end. program menjadi ... .
A. 670 D. 870 A. 240600
B. 1120 E. 920 B. 260700
C. 650 C. 270900
(SOAL OSN TINGKAT NASIONAL TAHUN 2014)
D. 250500
E. 255900

(SOAL OSN TINGKAT NASIONAL TAHUN 2017)


Deskripsi untuk soal nomor 4 - 5
Perhatikan potongan kode program
berikut! Deskripsi untuk soal nomor 6 - 7
var
Perhatikan potongan kode program
i, j, x, baa:longint;
berikut
begin
count:= 0;
x:=0;
for i:= 1 to n do
baa:=10;
begin
for i:=1 to baa do begin
x:= i;
for j:= 1 to i do begin
while (x > 0) do
if i mod 2=1 then
begin

119
if (x mod 10 = 1) then for i:= n-1 downto 1 do
inc(count); begin
x:= x div 10; if gembel(n, i)=1 then pedhet:=
end; pedhet+1;
end; end;
writeln(count); wedhus:= pedhet;
end;
6. Apakah output dari program apabila
n = 12? 8. Jika pada program utama terdapat
A. 9 statement untuk mencetak hasil
B. 8 dari wedhus(30), maka output yang
C. 7 ditampilkan adalah
D. 6 A. 11
E. 5 B. 15
(SOAL OSN TINGKAT NASIONAL TAHUN 2015)
C. 8
D. 9
E. 10
7. Apakah output dari program apabila
n = 10000? (SOAL OSN TINGKAT NASIONAL TAHUN 2014)
A. 3440
B. 3450 9. Jika p adalah suatu bilangan prima,
C. 3460 x adalah bilangan bulat positif, dan
D. 3470 pangkat(p, x) adalah fungsi p pangkat x
E. 3480 (px ), maka fungsi wedhus(pangkat(p,
(SOAL OSN TINGKAT NASIONAL TAHUN 2015) x)) akan menghasil­kan output sesuai
dengan rumus .... {tuliskan rumusnya
sesederhana mungkin} (Gunakan
Deskripsi untuk soal nomor 8 - 9
variabel p, x, dan fungsi pangkat).
Perhatikan potongan kode program
A. px – p1
berikut!
B. px - px
function gembel(x, y: integer): C. px - p(x+1)
integer; D. px - p(x*1)
begin E. px - p(x-1)
if y=0 then gembel:= x
(SOAL OSN TINGKAT NASIONAL TAHUN 2014)
else gembel:= gembel(y, x mod y);
end;
function wedhus(n: integer): integer;
var pedhet: integer;
begin
pedhet:= 0;

120
Deskripsi untuk soal nomor 10 - 11 A. 3110
Perhatikan potongan kode program B. 2110
berikut C. 4210
var i, j: integer; D. 4110
var board: array[0..5] of longint; E. 3210
function kepo():integer; (SOAL OSN TINGKAT NASIONAL TAHUN 2014)
var n:integer = 0;
begin 12. Perhatikan potongan program di ba­
for i:= 5 downto 0 do begin wah ini!
n:= n shl 1; var
n:= n + (board[i] mod 2); data1: array[1..10] of integer = (4, 11,
end; 2, 5, 1, 9, 7, 5, 6, 8);
kepo:=n; data2, data3: array[1..10] of integer;
end; i: integer;
procedure tambah(); begin
begin for i:= 1 to 10 do
for i:= 0 to 17 do data2[i]:= 1;
for j:= 0 to 5 do for i:= 1 to 10 do
board[ j]:= board[ j] + sqr( j+i); inc(data2[data1[i]]);
end; for i:= 2 to 10 do
begin data2[i]:= data2[i] + data2[i-1];
for i:= 0 to 5 do for i:= 10 downto 1 do
board[i]:= i; begin
tambah(); data3[data2[data1[i]]]:= data1[i];
writeln(kepo()); dec(data2[data1[i]]);
end. end;
10. Berapakah output yang dihasilkan for i:= 1 to 10 do
bila program tersebut dijalankan? write(data3[i]);
A. 21 end.
B. 22 Keluaran dari program di atas
C. 23 adalah...
D. 24 A. 11502000005
E. 25 B. 11400004005
(SOAL OSN TINGKAT NASIONAL TAHUN 2014) C. 10002004005
D. 11102004005
11. Berapakah nilai board[1] pada akhir E. 10012004005

program? (SOAL OSN TINGKAT NASIONAL TAHUN 2014)

121
13. Perhatikan potongan program beri­ C. 4
kut! D. 5
begin E. 6
readln(n); ((SOAL OSN TINGKAT NASIONAL TAHUN 2012)
i:=0;
while i<n do
15. Perhatikan potongan program beri­
begin
kut!
i:=i+4;
function a(n:integer):integer;
if (i<n) then
begin
for j:=1 to 4 do
if (n=0) then
write(‘*’);
a:= 0;
end;
else
end;
Berapa kali ‘*’ ditulis dilayar jika a:= 1-n*a(n-1);
input n adalah 20? end;
Berapakah hasil dari a(5)?
A. 24
B. 8 A. -120
C. 12 B. -76
D. 16 C. 120
E. 30 D. 0
E. 76
(SOAL OSN TINGKAT NASIONAL TAHUN 2013)
((SOAL OSN TINGKAT NASIONAL TAHUN 2011)

14. Perhatikan potongan program


16. Perhatikan prosedur sebagai berikut!
berikut:
procedure esrever(var i, j:inte-
function adadeh(n: longint);
ger);
var i, j, k: longint;
begin var k:integer;
adadeh:=0; begin
for i:=1 to n do k:=i;
for j:=1 to n+1 do i:=j;
for k:=1 to n+2 do j:=k;
adadeh:=adadeh+1; writeln( j, ’ ‘, i);
adadeh:=adadeh div 6; end;
end; Apa output di layar jika dipanggil
Berapakah nilai n minimal agar dengan parameter esrever(2, 100)?
adadeh(n) lebih dari 200? A. 2 2
A. 12 B. 100 2
B. 10 C. 2 100

122
D. 100 100 D. merupakan fungsi pangkat em­
E. Tidak ada jawaban yang benar pat dari n
E. merupakan fungsi kubik (pang-
(SOAL OSN TINGKAT NASIONAL TAHUN 2011)
kat 3) dari n
(SOAL OSN TINGKAT NASIONAL TAHUN 2010)
17. Diberikan penggalan program se-
bagai berikut. (note: program ini
19. Perhatikan tahapan-tahapan berikut:
merupakan Pascal-like pseudocode,
Misalkan ada dua variabel “x” dan
secara sintaks belum tentu sama de-
“y”, dan variabel “hasil” yang nilai
ngan Pascal)
awalnya 0. Lakukan proses berikut
function f (n: integer);
selama nilai “x” lebih besar dari 0:
begin
Jika nilai “x” ganjil maka nilai
if n=0 then f:=0
“hasil”:= “hasil” + y.
else f:= n + f(n-1);
end; nilai “x” selanjutnya adalah nilai
Untuk f(8) program di atas “x” sebelumnya dibagi dua, bila ada
menghitung: hasil pecahan, maka pecahannya di
A. 0+1+2+3+4+5+6+7+8 buang. (contoh bila nilai “x” sebelum-
nya 1, maka nilai “x” selanjutnya 0)
B. 1+2+3+4+5+6+7+8
C. 8+7+6+5+4+3+2+1 nilai “y” selanjutnya adalah nilai
D. 8+7+6+5+4+3+2+1+0 “y” sebelumnya dikali dua
E. Tidak ada jawaban benar Manakah program pseudo-pas-
18. Perhatikan potongan program beri­ cal yang merupakan program dari
tahapan-tahapan tersebut? (catatan:
kut!
fungsi “mod” memberikan nilai sisa
for i:= 1 to n do begin
bagi, contoh: 13 mod 5 = 3 dan fung-
for j:= 1 to n do begin
si “div” membagi dan membulatkan
for k:= 1 to n do begin
ke bawah)
writeln(‘Hello’);
end; A. var x, y: integer
end; x:= 10;
end; y:= 15;
Dengan sembarang harga n hasil:= 0;
> 0, keluaran ‘Hello’ akan dicetak
berulang-ulang dalam sejumlah baris while x > 0
yang... begin
if (y mod 2 = 1) then begin ha-
A. merupakan konstanta
sil:= hasil + y; end;
B. merupakan fungsi kuadrat dari n
x:= x * 2;
C. merupakan fungsi linier dari n
y:= y div 2;
end

123
B. var x, y: integer if (y mod 2 = 1) then begin ha-
x:= 10; sil:= hasil + y; end;
y:= 15; x:= x div 2;
hasil:= 0; y:= y * 2;
while x > 0 end
begin
(SOAL OSN TINGKAT NASIONAL TAHUN 2011
if (x mod 2 = 1) then begin ha-
sil:= hasil + y; end;
x:= x div 2; Deskripsi untuk soal nomor 20 – 23!
y:= y * 2; if (a and b) or ((not c) and d) then
end if ((a or not b) and c) or (b and (not
C. var x, y: integer a)) then
x:= 10; writeln(1);
y:= 15; else
hasil:= 0; if (a or (d and b)) and (not b) then
while x > 0 writeln(2);
begin else
if (x mod 2 = 1) then begin ha- writeln(4);
sil:= hasil + x; end; else
x:= x * 2; if not (d and c) and (not a) then
y:= y div 2; writeln(5);
end else
D. var x, y: integer writeln(6);
x:= 10;
y:= 15; 20. Jika dijalankan dan ternyata mence-
hasil:= 0; takkan harga 4 maka urutan harga-
while x > 0 harga a, b, c, d yang mungkin adalah?
begin A. TRUE, FALSE, TRUE, FALSE
if (x mod 2 = 1) then begin ha- B. TRUE, TRUE, TRUE, FALSE
sil:= hasil + x; end; C. FALSE, FALSE, TRUE, TRUE
x:= x div 2; D. TRUE, TRUE, FALSE, FALSE
y:= y * 2; E. TRUE, FALSE, FALSE, TRUE
end (SOAL OSN TINGKAT NASIONAL TAHUN 2011)
E. var x, y: integer
x:= 10; 21. Jika a berharga TRUE, b berharga
y:= 15; FALSE, c berharga FALSE, dan d ber­
hasil:= 0; harga TRUE, maka apa yang akan
while x > 0 dicetak?
begin

124
A. 5 Berdasarkan dua huruf awal nama
B. 4 para siswa ia menghitung suatu fungsi
C. 3
H(nama) = (10 X harga huruf perta-
D. 2
ma dari nama + harga huruf kedua dari
E. 1
nama) mod 17.
(SOAL OSN TINGKAT NASIONAL TAHUN 2011)
Harga huruf a adalah 1, huruf b ada-
lah 2, dan seterusnya hingga harga z ada-
22. Jika a berharga FALSE, b berharga lah 26 (huruf besar dan huruf kecil sama
FALSE, c berharga FALSE, dan d ber- saja). Misalnya H(Afandi) = (10 harga a +
harga FALSE, maka apa yang akan di- harga f) mod 17 = (10 x 1 + 6) mod 17 =
cetak? 16 dan H(Bella) = (10 x 2 + 5) mod 17 =
A. 5 8. Berdasarkan harga fungsi dari nama-
B. 4 nama itu dan urutan pada buku absen,
C. 3 maka siswa yang bersangkutan ditem-
D. 2 patkan pada bangku dengan nomor yang
E. 1 sesuai dengan harga fungsi itu.
(SOAL OSN TINGKAT NASIONAL TAHUN 2011) Ternyata pada terdapat fungsi
H(nama) yang berharga sama untuk
23. Yang tidak akan mencetakkan ang- nama berlainan. Untuk itu ia membuat
ka 5 adalah untuk urutan a, b, c, d: algoritma tambahan, jika H(x) berharga
A. FALSE, TRUE, TRUE, FALSE suatu nomor bangku yang sudah ditem­
B. FALSE, TRUE, FALSE, FALSE pati oleh yang lain pada urutan sebelum­
C. FALSE, FALSE, TRUE, FALSE nya, maka x akan dicarikan bangku
D. FALSE, FALSE, FALSE, TRUE dengan urutan berikutnya yang masih
E. FALSE, FALSE, FALSE, FALSE belum ditempati. Begitu juga kalau
((SOAL OSN TINGKAT NASIONAL TAHUN 2011) ternyata, bangku itu sudah ditempati
pula, maka diperiksa yang berikutnya
lagi hingga didapatkan bangku kosong.
Deskripsi untuk soal nomor 24 - 26
Kecuali, jika akan ditempatkan di nomor
Pak Hashim adalah guru yang kreatif. 16 ternyata no 16 sudah ditempati maka
Ia menempatkan anak-anak di kelasnya akan diperiksa mulai bangku no 0, dan
mengi­kuti suatu algoritma sebagai beri­ seterusnya. Berikut ini penempatan untuk
kut. Bangku-bangku dinomori dari 0 3 siswa pertama dalam urutan.
sam­­pai dengan 16 (jadi ada 17 bangku). H(Afandi) = 16, ditempatkan di 16
Kebe­tul­an siswa di kelasnya hanya ada 12, karena 16 kosong
dengan urutan buku absen sebagai berikut:
Afandi, Andi, Bella, Budi, Coki, .Dewi, Fany, H(Andi) = 7, ditempatkan di bangku
Gunawan, Mega, Mulya, Nunik, dan Riska. no 7 karena bangku no 7 kosong

125
H(Bella) = 8, ditempatkan di bangku D. 6
no 8 karena bangku no 8 kosong E. 7

Untuk Budi, karena H(Budi) = 7, dan (SOAL OSN TINGKAT NASIONAL TAHUN 2009)
bangku no 7 sudah terisi, periksa di bang-
ku no 8, tetapi bangku no 8 juga sudah Deskripsi untuk soal nomor 27-30
terisi, periksa bangku no 9, dan ditem-
Perhatikan array (larik) berikut. Array
patkan di bangku no 9 karena bangku no
tersebut adalah array integer bernama X
9 kosong. Untuk Budi, banyaknya bang-
yang berdimensi satu dan berisikan 15
ku yang diperiksa Pak Hashim sebelum
elemen array dengan indeks dari 0, 1, ...
mendapatkan bangku kosong adalah 2
9. Isi dari masing-masing elemen array
(yaitu gagal di no 7 dan no 8).
itu berturut-turut adalah:

24. Ditempatkan di manakah Dewi? I 0 1 2 3 4


A. 15 5 6 7 8 9
B. 12 X [I] 9 5 2 10
C. 9 1 8 4 3 7
D. 4 6
E. 5
Serta, diberikan prosedur-prosedur
(SOAL OSN TINGKAT NASIONAL TAHUN 2009) berikut

const ctr: integer = 0;


25. Ditempatkan di manakah Nunik?
procedure tx(a, b: integer);
A. 3
var tmp: integer;
B. 15
begin
C. 13
ctr:= ctr + 1; tmp:= X[a]; X[a]:= X[b];
D. 8
X[b]:= tmp;
E. 50
end;
(SOAL OSN TINGKAT NASIONAL TAHUN 2009) procedure adukaduk;
var j: integer;
26. Jika ada murid baru bernama Susi begin
(dalam buku absen berada pada for j:= 0 to 8 do if (X[ j] > X[ j+1]) then
urutan terakhir), berapa kali peme- tx( j, j+1);
riksaan bangku oleh Pak Hashim se- end;
belum mendapatkan bangku kosong procedure cetak(i: integer);
untuk Susi? var j: integer;
A. 0 begin
B. 10 for j:= 0 to i do write(X[ j], ’ ‘);
C. 4 writeln;
end;

126
27. Jika setelah prosedur adukaduk di- begin write(X[i],? „);cetak(i-1) end;
pangil sebanyak dua kali kemudian end;
prosedur cetak(9) dipanggil, maka Keluaran hasil dari pemanggilan
keluaran yang dicetak adalah: cetak(9) adalah:
A. 5 9 10 2 8 1 3 4 6 7
A. 1 6 7 3 4 8 3 10 5
B. 2 5 1 8 4 3 7 6 9 10
B. 2 5 1 8 4 3 7 6 9 10
C. 5 2 9 1 8 4 3 7 6 10
C. 6 7 3 4 8 1 10 2 5
D. 9 10 5 7 4 3 7 6 2 1
D. 5 9 10 2 8 1 3 4 6 7
E. 9 5 10 2 8 4 3 7 6 1
E. 10 9 8 7 6 5 4 3 2 1
(SOAL OSN TINGKAT NASIONAL TAHUN 2009)
(SOAL OSN TINGKAT NASIONAL TAHUN 2009)

28. Jika pemanggilan adukaduk dilaku-


PREDIKSI OSN 2019
kan n kali, maka tepat pada harga n
berapakah X[0] diisi harga 1 untuk 1. Terdapat sebuah program sebagai
yang pertama kali? berikut:
A. 7 var
B. 5 i, j, total: integer;
C. 9 begin
D. 4 total:= 0;
E. 8 for i:= 1 to 100 do
for j:= 1 to 100 do
(SOAL OSN TINGKAT NASIONAL TAHUN 2009)
total:= total + i - j;
writeln(total);
29. Setelah pemanggilan adukaduk se-
end.
banyak 20 kali berapakah harga va-
Berapa nilai total di akhir pro-
riable ctr?
gram?
A. 200
B. 100 A. -499950
C. 34 B. -549990
D. 25 C. -324444
E. 10 D. -239000
E. -679000
(SOAL OSN TINGKAT NASIONAL TAHUN 2009

Deskripsi berikut untuk soal nomor 2 - 3


30. Jika fungsi cetak(i: integer) ditulis
Perhatikan potongan kode program
ulang sebagai berikut. berikut!
procedure cetak(i: integer);
function abab(x, y:integer):integer;
begin
begin
if (i>=0) then
if (x + y = 0) then begin

127
abab:= 0; kandang:= kandang (kelinci,
end else if (x > y) then begin kelinci+wortel) + kandang
abab:= y + abab(x-1, y); (kelinci+wortel, kelinci+hamster)+
end else begin kandang (kelinci+hamster, kucing);
abab:= x + abab(x, y-1); end;
end;
4. Berapakah nilai dari kandang(2, 6)?
end;
A. 9
2. Berapakah nilai dari fungsi abab(5, B. 4
7)? C. 7
A. 37 D. 8
B. 35 E. 6
C. 38
5. Berapakah nilai dari kandang (2014,
D. 39
3021)?
E. 36
A. 2018
3. Berapakah nilai dari fungsi abab(29, B. 2015
13)? C. 2019
A. 377 D. 2016
B. 367 E. 2014
C. 387
D. 398 Deskripsi untuk soal nomor 6-7!
E. 388 Perhatikan potongan kode program
berikut!
Deskripsi untuk soal nomor 4 - 5
function anggrek(x: integer): integer;
Perhatikan kode program berikut! var
function kandang(kelinci, kucing:in- ans, i: integer;
teger):integer; begin
var wortel, hamster: integer; ans:= 0;
begin for i:= 1 to x do begin
wortel:=(kucing-kelinci) div 3; ans:= ans + i;
hamster:=wortel*2; end;
if kelinci > kucing then anggrek:= ans;
kandang:= 0 end;
else if (kucing-kelinci < 3) then function tanah(x: integer): integer;
kandang:= 2*(kucing-kelinci) var
else ans, i: integer;
begin
ans:= 0;

128
for i:= 1 to x do begin if i mod 2=1 then
ans:= ans + anggrek(i); b:=b-a
end; else
tanah:= ans; b:=b+a;
end; end;
function pot(x: integer): integer; end;
var writeln(b);
ans, i: integer; end.
begin
8. Jika program tersebut dijalankan dan
ans:= 0;
for i:= 1 to x do begin dianalisis, maka berapakah keluaran
ans:= ans + tanah(i); dari program di atas?
end; A. 60
pot:= ans; B. 70
end; C. 50
D. 40
6. Berapakah nilai dari pot(3)? E. 30
A. 17
B. 16 9. Jika nilai awal asa diganti menjadi
C. 19 asa:=1000, maka outputnya adalah ...
D. 15 A. 245200
E. 20 B. 250400
C. 268900
7. Berapakah nilai dari pot(6)? D. 240800
A. 127 E. 269000
B. 128
C. 126 Deskripsi untuk soal nomor 10 – 11!
D. 129
Perhatikan potongan kode program
E. 125
berikut!

Deskripsi soal untuk nomor 8 dan 9! var x:integer;


function caca(yeye:integer):integer;
Perhatikan pola program di bawah ini!
var abc, i:integer;
var begin
i, a, b, asa:longint; abc:=0;
begin if (yeye mod 5 = 0) then
b:=0; begin
asa:=10; for i:=1 to 7 do abc:=abc+caca(yeye
for i:=1 to asa do begin div 5);
for a= 1 to i do begin end else if (yeye mod 3 = 0) then

129
begin inc(count);
for i:=1 to 5 do abc:=abc+caca(yeye z:= z div 10;
div 3); end;
end else if (yeye mod 2 = 0) then end;
begin writeln(count);
abc:=caca(yeye div 2)+caca(yeye div Apakah output dari program
2); apabila n = 13?
end;
A. 7
if (yeye=1) then caca:=1 else
B. 8
caca:=abc;
C. 6
end;
D. 5
begin
E. 4
x:=25;
writeln(caca(x)); 13. Perhatikan potongan kode program
end. berikut!
function melati(x, y: integer): integer;
10. Apakah output dari program di atas?
begin
A. 50
if y=0 then melati:= x
B. 78
else melati:= melati(y, x mod y);
C. 49
end;
D. 68
function mawar(n: integer): integer;
E. 59
var kamboja: integer;
11. Apabila x bernilai 35, maka apakah begin
output yang dihasilkan? kamboja:= 0;
A. 1 for i:= n-1 downto 1 do
B. 0 begin
C. 2 if melati(n, i)=1 then kamboja:= kam-
D. 3 boja+1;
E. 5 end;
mawar:= kamboja;
12. Perhatikan potongan kode program end;
berikut: Jika pada program utama terda-
count:= 0; pat statement untuk mencetak hasil
for i:= 1 to n do dari mawar(25), maka output yang
begin ditampilkan adalah ...
z:= i;
A. 11
while (z > 0) do
B. 9
begin
C. 8
if (z mod 10 = 1) then

130
D. 7 Berapa output yang dihasilkan
E. 6 pada program tersebut?

14. Perhatikan pseudocode berikut! A. 389


procedure mystory(a:integer; b:inte- B. 388
ger;); C. 387
var m:integer; D. 386
begin E. 385
if (a <> b)
16. Diberikan fungsi seperti di bawah ini.
begin
Berapakah nilai dari f(7 , 5)? {tuliskan
writeln(‘OSN2019’);
jawaban sesuai dengan output yang
m:= (a + b) / 2;
dihasilkan}
mystory(a, m);
var r: array[1..10] of integer = (6, 7, 4,
mystory(m, b);
5, -1, 4, -1, 3, 1, 9);
end;
function f(d, r: integer): integer;
end;
Berapa kali teks ‘OSN2019’ dice- begin
tak pada pemanggilan mystory(0, 8)? if d = r then
f:= 1
A. 10
else if r[d] = -1 then
B. 21
f:= 0
C. 35
else f:= 2 * f(r[d], e);
D. 17
end;
E. program tidak pernah berhenti

15. Perhatikan program di bawah ini! A. 7


var a, b, c, sum:integer; B. 3
begin C. 5
sum:=0; D. 9
for a:= 1 to 10 do E. 4
begin
b:=0; c:=i; Deskripsi untuk soal nomor 17 - 18

while (k>0) do Perhatikan fungsi berikut:


begin function F4(n: integer): integer;
sum:=sum+b+c; begin
b:=b+1; c:=c-1; if (n = 1) or (n = 2) then
end;
F4:= 1
end;
else
writeln(sum);
F4:= F4(n - 1) + F4(n - 2);
end.
end;

131
17. Berapa kalikah F4(3) dieksekusi pada C. 3
pengeksekusian F4(8)? D. 2
A. 5 E. 1
B. 4
20. Apabila rumus pada baris ke-5
C. 2
program di atas diubah menjadi
D. 6
s:=r*(r+s) dan nilai s setelah program
E. 1
dijalankan adalah 108, maka berapa
18. Berapa kalikah F4(n-k) dieksekusi nilai v-u?
pada pengeksekusian F4(n) (dengan A. 6
n>k>2, notasikan jawaban anda da- B. 5
lam F4, n dan k)? C. 7
A. banyaknya eksekusi f(n-k+2)+ba- D. 8
nyaknya eksekusi f(n+k+2) E. 9
B. banyaknya eksekusi f(n-k-1)+ba-
nyaknya eksekusi f(n-k-2) Deskripsi untuk soal nomor 21 - 22!
C. banyaknya eksekusi f(n-k+2)+ba- Perhatikan program berikut:
nyaknya eksekusi f(n-k*2) var input: string;
D. banyaknya eksekusi f(n-k+1)+ba- procedure ubah(s:string)
nyaknya eksekusi f(n-k/2) var i, j:integer;
E. banyaknya eksekusi f(n-k+1)+ba- begin
nyaknya eksekusi f(n-k+2) for i:=1 to length(s)-1 do
begin
Deskripsi soal berikut untuk no 19 dan 20!
s[i]:= chr((((ord(s[i])-65) + (ord(s[i+1])
Perhatikan potongan program beri­ - 65)) mod 26) + 65);
kut!
end;
r:=2;
writeln(s);
s:=3;
end;
for i:=u to v do begin
begin ubah(input);
s:=i*(r+s); end.
end;
Dengan ketentuan:
19. Apabila diketahui u=3 dan nilai s se- 1) Fungsi ord(cc: char) menghasilkan ni-
telah program dijalankan adalah 350, lai kode ASCII karakter CC;
maka berapa nilai v pada saat inisia-
2) Fungsi chr (K: integer) menghasilkan
lisasi?
karakter yang kode ASCII-nya adalah
A. 5
K.
B. 4

132
3) Potongan tabel konversi kode ASCII for tenis:= hong downto kong do
dari karakter ‘A’ s.d. ‘Z’ diberikan se- begin
bagai berikut: ord(‘A’) = 65 kota:= kota + tenis;
ord(‘B’) = 66 end;
ord(‘C’) = 67 end;
sampai end;
ord(‘X’) = 88 hongkong:= tenis + kota;
end;
ord(‘Y’) = 89
ord(‘Z’) = 90
Berapakah hasil pemanggilan
fungsi hongkong(3)?
21. Apabila variabel input berisi nilai
‘TOKIABSOLUTEWINNERIOI’, apakah A. 28
output yang dihasilkan oleh program B. 30
di atas? C. 28
A. IZTJCUHAGOYBFWBSWAXXJ D. 31
B. HYAIBTBZFNXCEVARVZWWI E. 23
C. HYSIBTGZFNXAEVARVZWWI 24. Program berikut:
D. IZTJCUHAGOYBFWBSWAXXJ var hasil:string; bay, a:integer;
E. HZAJIUBAFOXBEWRSZAWXI procedure terjemahan (x:integer, var
22. Apabila program di atas mengelu- y:integer)
arkan output ‘RIPTQHDLTMQMSS’, begin
nilai variabel input sebelum program if (x<=y) then
begin
dijalankan adalah ... .
terjemahan(x*3, y);
A. RAIHMEDALIEMAS
hasil:=str(y div x)+hasil;
B. GOGETGOLDMEDAL
y:=y mod x;
C. HYAIBTBZFNXCEVA
end;
D. OSNINFORMATIKA
end;
E. SUKSESSEMUANYA
begin
23. Perhatikan potongan program beri­ hasil:=’’; {strinng kosong}
kut ini! terjemahan(a, bay);
function hongkong(x: integer): inte- writeln(hasil);
ger; end.
var hong, kong, tenis, kota: integer;
begin Jika nilai a adalah 1 dan nilai bay
kota:= 0; adalah 80, apakah output program
for hong:= 1 to x do begin di atas jika prosedur terjemahan
for kong:= 1 to hong do begin dijalankan?

133
A. 1122 27. Perhatikan potongan program beri­
B. 2211 kut!
C. 1212 Data:= Kelas;
D. 2222 x:= 0;
E. 2121 for i:= 0 to Data-1 do
begin
25. Perhatikan prosedur sebagai berikut!
x:= x + 2*i;
procedure forever(var i, j:integer);
end;
var k:integer;
writeln(x);
begin
k:=i;
i:=j; Berapakah nilai Kelas sehingga
j:=k; program di atas menghasilkan out-
writeln( j, ’ ‘, i); put x tertulis 90?
end; A. 45
B. 9
Apa output di layar jika dipanggil C. 0
dengan parameter forever(2, 200)? D. 11
A. 200 2 E. 10
B. 100 2
C. 200 100 Deskripsi untuk soal nomor 28 - 29

D. 2 200 var D:array[0..6] of char = (‘A’, ’B’, ’C’,


E. 100 2 ’D’, ’E’, ’F’, ’G’);
// procedure untuk menukarkan isi
26. Diberikan penggalan program seba-
array D[a] dan D[b]
gai berikut:
procedure swap(a: integer; b: inte-
function f (n: integer);
ger);
begin
var tmp: char;
if n=0 then f:=0
begin
else f:= n + f(n-1);
...// perintah-perintah untuk menu-
end;
Untuk f(5) program di atas karkan
menghitung: end;
// procedure untuk mencetak isi ar-
A. 0+1+2+3+6+7+8
ray dalam satu baris.
B. 5+4+3+2+1+0
procedure printarray;
C. 1+2+3+4+5+8
var i: integer;
D. 6+5+4+3+2+1
begin
E. 0+1+2+3+6+7
... // perintah-perintah untuk men-
cetak

134
end; E. D[a]:= D[b]
procedure XX(m: integer); D[b]:= tmp
var i: integer;
D[a]:= tmp
begin
if (m <= 0) then 29. Misalkan XX(8) dijalankan di suatu
printarray komputer selama 1 detik, kira-kira
else berapa lama XX(10) dijalankan?
begin A. 60 detik
XX(m-1); B. 120 detik
for i:= m-2 downto 0 do C. 90 detik
begin D. 130 detik
swap(i, m-1); E. 80 detik
XX(m-1);
swap(i, m-1); 30. ANGKA SUBSEKUENS
end; Pak Jaya Kusuma memiliki array
end; yang berisi N elemen, setiap elemen
end; berada di antara 0 sampai 9 (inklusif).
Pak Jaya Kusuma ingin mencari
28. Jika swap (a, b) dimaksudkan untuk suatu subsekuens valid terpanjang
menukarkan isi array D[a] dengan dari array tersebut. Subsekuens dari
D[b], tuliskan perintah-perintah yang suatu array adalah sekuens yang
seharusnya ada di bagian “... .” di da- dapat diperoleh dengan menghapus
lam procedure swap tersebut. beberapa elemen array tanpa meng­
A. D[a]:= tmp ubah urutan dari array tersebut. Se­
D[a]:= D[b] ba­gai contoh, array {1, 3, 3, 6, 7}
D[b]:= tmp memiliki subsekuens {1, 3, 6}, {1, 6,
7}, tetapi bukan {1, 7, 6} karena tidak
B. D[a]:= tmp
mengubah urutan pada array asli.
D[a]:= tmp
Misalkan subsekuens yang dipi-
D[b]:= tmp
lih adalah S. S disebut valid apabila
C. D[a]:= D[b] dari 1 <= i < |S| (|S| adalah panjang
D[b]:= 0 dari array S), banyaknya i dimana Si!=
D[a]:= 0 Si + 1 tidak lebih dari 1. Sebagai con-
toh subsekuens {1, 3, 3} valid karena
D. D[a]:= 0
dua angka berurutan yang nilainya
D[b]:= tmp
beda tidak lebih dari satu, sedangkan
D[a]:= 0 subsekuens {1, 6, 7} tidak valid karena
jumlah dua angka berurutan yang ni-

135
lainya beda ada dua. Bantu Pak Jaya Maka berapa rumus pengga-
Kusuma menentukan panjang S valid bungan dua element dari kasus ter-
yang terpanjang! sebut?

Batasan: A. cin >> n;


1 <= N <= 100.000 for(int i = 1;i <= n;i++) cin >>
Format Masukan: isi[i]; //Membaca input
1) Baris pertama berisi sebuah bi-
for(int i = 1;i <= n;i++){
langan N.
for(int j = 0;j <= 9;j++){
2) Baris kedua berisi N bilangan,
masing-masing menandakan pref[ j][i] = pref[ j][i-1]; //Generate
elemen ke-i dari array Pak Jaya prefix
Kusuma. if( j == isi[i]) pref[ j][i]++;
Format Keluaran: }
Sebuah bilangan seperti des­krip­
B. cin >> n;
si di atas.
for(int i = 1;i <= n;i++) cin >>
Contoh Masukan dan Keluaran: isi[i];
Contoh masukan Contoh keluaran C. cout << ans << endl;
4 4 D. ans = max(ans, maxka+maxki);
1111 E. E.ans = max(ans, maxka+maxki);
6 5
112122
7 3
1224352

136
BAGIAN 4

KUNCI JAWABAN
& PEMBAHASAN
Catatan:

138
Pembahasan:
BAB 1 LOGIKA Jika “or” salah satu true maka
nilai akan true, dan jika “and” salah
OSN Tingkat Kabupaten
satu false maka nilai akan false.
1. D. Nia Dari (A and ((( B or C ) and ( D
Pembahasan: and E )) and F )) , nilai yang diperoleh
Diperoleh perbandingan sebagai terakhir adalah False.
berikut:
Sehingga dari pilihan a sampai e,
a. Ana < Nia maka dicari hasil akhir yang false.
b. Ana > Ina
Seperti berikut:
c. Ani > Ian
d. Ina > Ian (A and ((( B or C ) and ( D and E ))
e. Ani > Ana and F ))
f. Ani < Nia ((T V T) ^ (F^F)) ^ T
Dapat disederhanakan menja- F^T
di Nia > Ani > Ana > Ina > Ian. Jadi S
yang mendapat nilai tertinggi adalah T^S
Nia. S (FALSE)

4. C. P = FALSE , Q = TRUE
2. E. Ian
Pembahasan:
Pembahasan:
Agar A or B = False, maka A ha-
Diperoleh perbandingan sebagai
rus False dan B harus False.
berikut:
P or not Q harus False.
a. Ana < Nia
Berarti persamaannya sekarang
b. Ana > Ina
men­jadi:
c. Ani > Ian
d. Ina > Ian Not (not False or (not P and not Q))
e. Ani > Ana or False
f. Ani < Nia Atau
Dapat disederhanakan menjadi Not (True or (not P and not Q)) or Fal-
Nia > Ani > Ana > Ina > Ian. se
Dapat ditarik kesimpulan bahwa Not (True or (not P and not Q))
nilai terendah adalah Ian. harus False, berarti True or (not P and
not Q) harus True. Karena True or X
3. C. ((A and B) or((C and(D andE)) and pasti True, maka (not P and not Q) ti-
F)) dak penting.

139
Jadi, P or not Q harus False. Maka Cakra saat ini adalah mahasiswa
P harus False dan Q harus True. dari universitas XX dan pernah
mendapat medali Emas OSN
5. E. Erna
--> pernyataan 2 dan 4 belum pasti
Pembahasan: II. Cakra adalah alumni TOKI.
a. Andy --> disebut alumni TOKI jika sudah
Sekali jalan = ⁴⁄₅ jam =48 menit + tidak memenuhi syarat mengikuti IOI
45 menit = 93 menit untuk 80 km dan pernah mengikuti pelatnas. -->
-->1162,5 Cakra saat ini adalah mahasiswa dari
b. Budi universitas XX dan mendapat pernah
Sekali jalan = 56,25 menit + 30 medali Emas OSN, --> Seseorang
menit = 86,25 untuk 75km --> dapat mengikuti pelatnas bila pernah
1150 mendapatkan medali saat OSN. -->
tidak memenuhi syarat mengikuti IOI
c. Cory
(T) dan pernah mengikuti pelatnas.
Sekali jalan= 42 menit + 15 me-
(Tidak Pasti).
nit = 57 untuk 70km --> 814
Kkata “dapat” bisa berupa opsi­
d. Didy
onal, bisa di ikuti atau tidak. Jadi bisa
Sekali jalan = 60,75 menit untuk
kontra dengan pernyataan 4, kalau
65km --> 934
dia ikut, maka pernyataan 4 benar.
e. Erna
Sekali jalan = 42 menit untuk 60 7. C. 3
km --> 700 Pembahasan:
Jadi yang menang adalah Erna. Formasi:

D Sopir
6. D. I, III
G F C
Nathan adalah siswa SMA Z yang
E B A
pernah dapat medali perak IOI

--> III. Nathan pernah mengikuti D Sopir


pelatnas. (Betul) G F C
Basith adalah mahasiswa dari A B E
universitas YYY dan pernah mengi-
kuti pelatnas G Sopir
--> I. Basith adalah anggota asosiasi D F C
alumni TOKI. (Betul) E B A

Jadi ada 3 formasi yang terbentuk.

140
8. D. D D: G >2x F.
Pembahasan: D > H.
Kemungkinan posisi duduk:
Jadi pekerjaan si D adalah E.
D Sopir
G F C
10. A. E
E B A
Pembahasan:
4 orang: A , B, C, D
D Sopir
G F C Profesi E, F, G, H
A B E Pernyataan dari 4 orang:

A: G >3x F.
G Sopir
D F C E > A.
E B A B: F > G.

C => pekerjaannya adalah H


Jadi orang yang duduk di posisi no­
atau E.
mor satu adalah D.
C: C > E.
9. D.D
F < semua
Pembahasan:
4 orang: D: G >2x F.

A D > H.

B Jadi pekerjaan si D adalah E

C
11. E. Jika A adalah seorang H, maka D
D adalah seorang E
Profesi E, F, G, H Pembahasan:
Pernyataan dari 4 orang: 4 orang:

A: G >3x F. A

E > A. B
C
B: F > G. D
C => pekerjaannya adalah H Profesi E, F, G, H
atau E. Pernyataan dari 4 orang:
A: G >3x F.
C: C > E.
E > A.
F < semua
B: F > G.

141
C => pekerjaannya adalah H 13. E. Apatis
atau E. Pembahasan:
C: C > E. (Biasa-biasa saja) -> (Apatis) ->
(Pemurung) -> (Biasa-biasa saja) ->
F < semua
(Apatis)
D: G >2x F.
14. A. Pemurung
D > H.
Pembahasan:
Pernyataan yang tepat adalah (Berseri-seri) -> (Pemurung) ->
jika A seorang H, maka D adalah (Pemarah) -> (Apatis) -> (Pemurung)
seorang E. -> (Pemarah) -> (Apatis) ->
(Pemurung)
12. D. 4
15. B. Selain apatis, mungkin juga berse­
Pembahasan:
Pada kandang pertama diisi 1 ekor ri-­seri
ayam Pembahasan:
pada kandang kedua diisi 1 ekor Pertama, kita bikin dahulu pemeta-
ayam annya
pada kandang ketiga diisi 4 ekor Hujan Tidak hujan
Berseri-seri Pemurung Biasa saja
ayam
Biasa saja Apatis Berseri seri
jadi jumlah maksimal pada 1 kan- Pemurung Pemarah Biasa saja
dang adalah 4 Pemarah Apatis Biasa saja
atau bisa dibagi seperti ini: Apatis pemurung Berseri-seri
Bagi ayamnya ke setiap kandang
Diketahui ada 6 ayam dengan 3 kan­ Malam ke-1:
dang tesedia, di mana setiap kandang Dari tabel, kita tahu yang membuat
setidaknya terisi 1 ayam murung ketika hujan adalah apatis
Kn merepresentasikan Kandang ke-n dan berseri-seri
An merepresentasikan Ayam ke-n Malam ke-2:
K1 K2 K3 Dari tabel, kita tahu yang membuat
A1 A2 A3 apatis ketika hujan adalah biasa saja
A4 dan pemarah, namun tidak ada yang
A5 membuat berseri-seri ketika hujan
A6 Malam ke-3:
---------------+ Dari tabel, kita tahu yang membuat
411 pemarah ketika hujan adalah pe­
Maka maksimum ayam dalam 1 kan- murung
dang ada 4 Malam ke-4:

142
Dari tabel, kita tahu yang membuat 17. A. Pasti pemurung
pemurung ketika hujan adalah apatis Pembahasan:
dan berseri-seri Pertama, kita bikin dahulu pemetaan­
Jadi, Ani mungkin apatis atau berseri- nya
seri pada malam 4 hari sebelumnya. Hujan Tidak hujan
Berseri-seri Pemurung Biasa saja
16. E. Selain biasa-biasa saja, mungkin Biasa saja Apatis Berseri seri
juga pemarah Pemurung Pemarah Biasa saja
Pemarah Apatis Biasa saja
Pembahasan:
Apatis pemurung Berseri- seri
Pertama, kita bikin dahulu pemeta-
annya
Malam -1:
Hujan Tidak hujan
Berseri-seri Pemurung Biasa saja Dari tabel, kita tahu yang membuat
Biasa saja Apatis Berseri seri murung ketika hujan adalah apatis
Pemurung Pemarah Biasa saja dan berseri-seri
Pemarah Apatis Biasa saja Malam -2:
Apatis pemurung Berseri-seri
Dari tabel, kita tahu yang membuat
apatis ketika hujan adalah biasa saja
Malam -1:
dan pemarah, namun tidak ada yang
Dari tabel, kita tahu yang membuat
membuat berseri-seri ketika hujan
murung ketika hujan adalah apatis
Malam -3:
dan berseri-seri
Dari tabel, kita tahu yang membuat
Malam -2:
pemarah ketika hujan adalah pemu­
Dari tabel, kita tahu yang membuat
rung
apatis ketika hujan adalah biasa saja
Malam -4:
dan pemarah, namun tidak ada yang
Dari tabel, kita tahu yang membuat
membuat berseri-seri ketika hujan
pemurung ketika hujan adalah apatis
Malam -3:
dan berseri-seri.
Dari tabel, kita tahu yang membuat
Jadi suasana hati pada 4 hari yang
pemarah ketika hujan adalah pe­mu­
lalu adalah pasti pemurung.
rung
Malam -4: 18. E. P, S, R , Q , T
Dari tabel, kita tahu yang membuat Pembahasan:
pemurung ketika hujan adalah apatis Beri pernyataan “Tidak boleh me­
dan berseri-seri ngun­jungi warung R pada hari Senin”
Jadi selain biasa-biasa saja mungkin adalah pernyataan pertama, “Harus
juga pemarah. mengunjungi warung P sebelum
mengunjungi S” adalah pernya­ taan
kedua dan “Harus mengunjungi

143
warung Q sebelum mengunjungi T” dan Jumat (mengkontradiksi bahwa
adalah pernyataan ketiga. Atau: Q >/ T yang mana tidak ada jadwal
a. Hari Kunjung Senin R yang lebih lama dari Kamis dan Jumat)
b. Hari Kunjung P > Hari Kunjung S sehingga kemungkinan Q terdapat
c. Hari Kunjung Q > Hari Kunjung T di hari Senin atau Selasa. Dari sini,
kita bisa perhatikan bahwa R tidak
Evaluasikan untuk seluruh jawaban mungkin di hari Senin, sehingga satu-
pilihan ganda: satunya jadwal R adalah hari Selasa.
Q, S, P, T, R. Pernyataan 1 dan 3 me- Dengan demikian, Q adalah warung
menuhi, tetapi tidak untuk pernyata- yang akan dikunjungi pertama.
an 2 karena P<S. Perhatikan jika P dikunjungi hari
dan (C) tidak memenuhi karena Senin Kamis. Jadi satu-satunya jadwal S
= R. adalah hari Jumat. Dari jadwal hari
T, R, Q, P, S. Memenuhi untuk pernya- Senin, Selasa dan Rabu, R hanya
taan 1 dan 2, tetapi tidak untuk per- dapat menempati hari Selasa atau
nyataan 3 dikarenakan Q<T. Rabu. Jika R menempati salah satu
P, S, R, Q, T. Memenuhi untuk pernya- dari hari Selasa atau Rabu, dan Q
taan 1, 2 dan 3. menempati salah satu dari hari Selasa
Sehingga satu-satunya jadwal yang atau Rabu setelah R dijadwalkan,
memenuhi adalah (E). maka akan terjadi kontradiksi bahwa
Q >/ T sehingga Q pasti dikunjungi
19. A. Q dikunjungi pertama kali.
paling awal.
Pembahasan: Dari observasi bisa pastikan, bahwa
Diketahui R>P. Maka R tidak akan Q pasti dikunjungi pertama kali.
dikunjungi pada hari Senin dan
Jumat, P tidak akan dikunjungi hari 20. B. Selasa
Senin dan Selasa. Jadi jadwal yang Pembahasan:
memungkinkan untuk P adalah Rabu, Ada 4 kasus, yaitu ketiga pernyataan
Kamis atau Jumat. tersebut bohong dan 3 lainnya yaitu
Perhatikan bahwa P>S. Jadwal yang salah satu di antaranya jujur.
memungkinkan untuk P adalah hari Dapat dicek bahwa tidak mungkin
Rabu atau Kamis. Telusuri untuk pernyataan pertama dan ketiga
setiap kasus: sama-sama bohong karena jika
Perhatikan jika P dikunjungi hari Rabu. iya, maka setidaknya dia jujur pada
Pada hari Kamis dan Jumat terdapat Senin atau selasa dan juga Rabu atau
jadwal yang belum terpenuhi. Karena Jumat sehingga kontradiksi dengan
P>S, maka S akan dijadwalkan di pernyataan hanya jujur sehari dalam
antara Kamis atau Jumat. Q tidak seminggu.
mungkin dijadwalkan di antara Kamis

144
Karena pernyataan pertama atau digunakan sebagai patokan untuk
ketiga jujur, pasti pernyataan kedua menentukan urutan yang mungkin
bohong. dalam ujian Matematika:
Jika pernyataan pertama jujur, maka Heni > Gina > Mira > Cici > Lina >
pernyataan ketiga bohong sehingga Bunga
dia jujur pada hari Rabu atau Jumat Bunga > Heni > Gina > Mira > Cici
yang pasti merupakan hari di mana > Lina
dia mengucapkan pernyataan per­ta­ Untuk Fisika adalah:
ma ( jujur). Hal ini kontradiksi karena Bunga > Gina
pada hari selanjutnya berarti hari Lina > Heni
Kamis atau Sabtu yang membuat Cici > Gina
pernyata­an kedua benar. Mira > Cici
Maka pernyataan ketiga pasti jujur Gina > Lina
sehingga dia jujur pada hari Senin Karena siswa yang paling banyak di-
atau Selasa yang dengan alasan sebut dalam informasi untuk ujian
sama seperti poin sebelumnya, pasti Fisika adalah Gina, maka Gina digu-
merupakan hari di mana dia menya­ nakan lagi sebagai patokan untuk
ta­kan pernyataan ketiga. menentukan urutan yang mungkin
Jika dia jujur pada hari Senin, maka dalam ujian Fisika:
hari sebelumnya, yang mana dia me­ Mira > Cici > Bunga > Gina > Lina >
nyatakan pernyataan kedua, adalah Heni
hari minggu yang membuat pernya­ Bunga > Mira > Cici > Gina > Lina >
taan kedua benar. Kontradiksi. Heni
Jadi, bisa diambil kesimpulan bahwa Maka, dapat ditarik kesimpulan siswa
dia jujur pada hari Selasa. yag pasti tidak akan mendapatkan
Rp6000 adalah 3 siswa yaitu Cici,
21. D. 3
Gina dan Lina.
Pembahasan:
Pisahkan antara ujian Matematika 22. E. Gina , Mira dan Heni
dan Fisika Pembahasan:
Untuk Matematika adalah sebagai Pisahkan antara ujian Matematika
berikut: dan Fisika
Gina > Mira Untuk Matematika adalah sebagai
Heni > Gina berikut:
Gina > Cici Gina > Mira
Mira > Lina Heni > Gina
Karena siswa yang paling banyak Gina > Cici
disebut dalam informasi untuk ujian Mira > Lina
Matematika adalah Gina, maka Gina

145
Karena siswa yang paling banyak Gina > Cici
disebut dalam informasi untuk ujian Mira > Lina
Matematika adalah Gina, maka Gina Karena siswa yang paling banyak
digunakan sebagai patokan untuk disebut dalam informasi untuk ujian
menentukan urutan yang mungkin Matematika adalah Gina, maka Gina
dalam ujian Matematika: digunakan sebagai patokan untuk
Heni > Gina > Mira > Cici > Lina > menentukan urutan yang mungkin
Bunga dalam ujian Matematika:
Bunga > Heni > Gina > Mira > Cici Heni > Gina > Mira > Cici > Lina >
> Lina Bunga
Untuk Fisika adalah: Bunga > Heni > Gina > Mira > Cici
Bunga > Gina > Lina
Lina > Heni Untuk Fisika adalah:
Cici > Gina Bunga > Gina
Mira > Cici Lina > Heni
Gina > Lina Cici > Gina
Karena siswa yang paling banyak di- Mira > Cici
sebut dalam informasi untuk ujian Gina > Lina
Fisika adalah Gina, maka Gina digu- Karena siswa yang paling banyak di-
nakan lagi sebagai patokan untuk sebut dalam informasi untuk ujian
menentukan urutan yang mungkin Fisika adalah Gina, maka Gina digu-
dalam ujian Fisika: nakan lagi sebagai patokan untuk
Mira > Cici > Bunga > Gina > Lina > menentukan urutan yang mungkin
Heni dalam ujian Fisika:
Bunga > Mira > Cici > Gina > Lina > Mira > Cici > Bunga > Gina > Lina >
Heni Heni
Sehingga yang menerima total hadi- Bunga > Mira > Cici > Gina > Lina >
ah lebih besar dari Lina adalah Gina, Heni
Mira dan Heni. Maka, dapat ditarik kesimpulan bahwa
yang menerima total hadiah paling
23. E. Mira
besar adalah Mira.
Pembahasan:
Pisahkan antara ujian Matematika 24. B .6
dan Fisika Pembahasan:
Untuk Matematika adalah sebagai 6 kali dengan proses A-B-E-C-D-E-A
berikut: atau A-D-E-C-F-E-A (catatan: A tidak
Gina > Mira dihitung)
Heni > Gina

146
25. D. D dan e 29. B. B dan C
Pembahasan: Pembahasan:
D dan E dengan proses AèDèEèC
1) A-B-D-E-C-D dan \ /
2) A-B-E-C-D-E \ /
èBç
26. D
dengan X è Y berarti X harus diker-
Pembahasan: jakan sebelum Y
Karena F, A, E, C bisa dengan proses Jam 1:
1) A-B-D-E 2) A-B-E-A 3)A-B-E-C 4) Kita hanya bisa mengerjakan A, D se-
A-B-D-F karang bisa dikerjakan
27. D. F Jam 2:
Kita hanya bisa mengerjakan D, E se-
Pembahasan:
karang bisa dikerjakan
karena B, D, E, C bisa dengan proses
Jam 3:
1) A-B-D-E-C 2) A-B-E-A-B 3) A-B-E-
Kita hanya bisa mengerjakan E, B dan
A-D 4) A-B-D-F-E.
C sekarang bisa dikerjakan
28. D. 4 jam Jam 4:
Pembahasan: Kerjakan B dan C sekaligus, sehingga
AèDèEèC tidak ada kerjaan yang tersisa
\ / Jadi aktivitas yang boleh dikerjakan
\ / bersama-sama adalah b dan c
èBç
30. E. E
dengan X è Y berarti X harus diker-
Pembahasan:
jakan sebelum Y
Jam 1:
Jam 1:
Kita hanya bisa mengerjakan A, D se-
Kita hanya bisa mengerjakan A, D se-
karang bisa dikerjakan
karang bisa dikerjakan
Jam 2:
Jam 2:
Kita hanya bisa mengerjakan D, E se-
Kita hanya bisa mengerjakan D, E se-
karang bisa dikerjakan
karang bisa dikerjakan
Jam 3:
Jam 3:
Kita hanya bisa mengerjakan E, B dan
Kita hanya bisa mengerjakan E, B dan
C sekarang bisa dikerjakan
C sekarang bisa dikerjakan
Jam 4:
Jam 4:
Kerjakan B dan C sekaligus, sehingga
Kerjakan B dan C sekaligus, sehingga
tidak ada kerjaan yang tersisa
tidak ada kerjaan yang tersisa
Dari urutan paling atas dapat di­
simpulkan untuk aktivitas yang di

147
kerjakan pada urutan ke 3 adalah 3. E. 8
aktivitas e. Pembahasan:

OSN TINGKAT PROVINSI


1. B. 396
Pembahasan:
c+d+e = 10
di mana
0+0+10 sampai 0+10+0 berjumlah
11
1+0+9 sampai 1+9+0 berjumlah
10, jadi karena jumlah kemungkinan
sama dengan e+1, maka ketika e = 0,
kemungkinan ada 1
11 + 10 + 9 +.. 1 = 66 (bisa pake Sn
juga )
lalu karena kemungkinan a + b = 5
ada 6
0 + 5 dan 5 + 0 Maka dapat ditarik kesimpulan bah­
1 + 4 dan 4 + 1 wa ada 8 biji catur yang paling banyak
2 + 3 dan 3 + 2, jadi 66 dikali 6 = 396 yang bisa ditempati.
2. A. 114688 4. B. 18 milyar
Pembahasan: Pembahasan:
Sn = a(rn -1) / r - 1 Si istri mendapatkan x/3 dan
14329 = a(211 - 1) / 2 - 1 Setiap anak mendapatkan 2x/9
14329 =2047 * a / 2 X adalah harta suami.
a = 14329 / 2047 Berarti 10milyar = x/3 + 2x/9... X =
a= 7 9/5 * 10milyar
U15 = arn - 1 = 18milyar
U15 = 7*214
U15 = 114688

148
5. E.5 7. C. 3
Pembahasan: Pembahasan:
Dibuat dengan tabel, seperti berikut: Penekanan pada b1 akan meme­nga­
ruhi lampu: (1, 2, 5)
Penekanan pada b2 akan meme­nga­
ruhi lampu: (1, 2, 3, 4)
Penekanan pada b3 akan meme­nga­
ruhi lampu: (2, 3, 5)
Penekanan pada b4 akan meme­nga­
6. B. Keduanya terang ruhi lampu: (2, 4, 5)
Pembahasan: Penekanan pada b5 akan meme­nga­
Penekanan pada b1 akan meme­nga­ ruhi lampu: (1, 3, 4, 5)
ruhi lampu: (1, 2, 5) Agar semua lampu hidup (awalnya
Penekanan pada b2 akan meme­nga­ mati) maka banyaknya penekanan
ruhi lampu: (1, 2, 3, 4) pada setiap lampu (1, 2, 3, 4, 5)
Penekanan pada b3 akan meme­nga­ haruslah ganjil.
ruhi lampu: (2, 3, 5) Misal
Penekanan pada b4 akan meme­nga­ a: banyaknya penekanan pada lampu b1
ruhi lampu: (2, 4, 5) b: banyaknya penekanan pada lampu b2
Penekanan pada b5 akan meme­nga­ c: banyaknya penekanan pada lampu b3
ruhi lampu: (1, 3, 4, 5) d: banyaknya penekanan pada lampu b4
sehingga e: banyaknya penekanan pada lampu b5
b1 b2 b3 b4 b5 Jadi:
0 0 0 0 0 à (kondisi awal) Lampu 1: a+b+e = ganjil (i)
1 1 0 0 1 à (setelah penekanan b1) Lampu 2: a+b+c+d = ganjil (ii)
memengaruhi lampu 1, 2, dan 5 saja Lampu 3: b+c+e= ganjil (iii)
(3 dan 4 tetap) Lampu 4: b+d+e= ganjil (iv)
0 0 1 1 1 à (setelah penekanan b2) Lampu 5: a+c+d+e = ganjil (v)
memengaruhi lampu 1, 2, 3, dan 4 (Karena minimal, maka angka ganjil
saja (5 tetap) haruslah 1 dan genap adalah 0)
0 1 0 1 0 à (setelah penekanan b3) (iii) & (iv) => c+d = gnp (vi)
memengaruhi lampu 2, 3, dan 5 saja (ii) & (vi) => a+b = gjl (vii)
(1 dan 4 tetap) (i) & (vii) => e = gnp = 0 (viii)
tidak ada penekanan b4 (v) & (vi) & (viii) => a = gjl = 1 (ix)
1 1 1 0 1 à (setelah penekanan b5) (vii) & (ix) => b = gnp = 0 (x)
memengaruhi lampu 1, 3, 4, dan 5 (iii) & (viii) & (x) => c = gjl = 1 (xi)
saja (2 tetap) (iv) & (viii) & (x) => d = gjl = 1 (xii)
sehingga terbukti jika lampu 1 dan 2
sama-sama menyala pada akhirnya.

149
a: 1 Jadi, ini bisa dikerjakan secara
b: 0 Dynamic Programming Bottom Up.
c: 1
d: 1
e: 0
Jadi, banyaknya penekanan minimal
ada 3 (b1, b3, b4)

8. A. 481
Pembahasan:
Jumlah batu pada tumpukan adalah Sehingga f(1, 1) = 4
11 yang merupakan bilangan ganjil.
Pada giliran pertama maka, A akan 10. A. 604800
mengambil tumpukan ke 3, dan akan Pembahasan:
mendapatkan 15 poin. Kemudian Karena tidak boleh ada digit yang
ten­tunya B akan mengambil tumpuk­ berulang dan kita punya (0..9) total
an yang jika diambil 1 tidak akan 10 buah angka, maka kita gunakan
sama dengan 1 (2). permutasi: 10P7 = 10 x 9 x 8 x 7 x 6 x
Maka urutan pengambilannya adalah 5 x 4 = 604800.
3 2 4 4 4 2 2 1 1 4 4.
11. E. 105840
Berdasarkan urutan tersebut A men-
Pembahasan:
dapatkan semua nilai yaitu 5 + 4 + 15
Pertama, menentukan posisi 3 buah
+ 457 = 481
digit 0,
9. D. 4 Karena panjang passwordnya adalah
Misalkan f(y, x) adalah banyak cara 7 digit,
dari posisi (y, x) menuju titik paling Maka kita gunakan kombinasi: 7C3 =
terakhir. 35.
Maka, f(n, n) = 1 (titik terakhir yang Kemudian isi 4 digit yang tidak diisi
berisi angka 0). dengan digit 0,
Misalkan peta[y][x] adalah angka di Karena 0 sudah digunakan maka se-
posisi (y, x). karang kita hanya memiliki 9 buah
F(y, x) = {1, jika y = n dan x = n angka,
{ 0, jika y> n atau r > n Maka menggunakan permutasi: 9P4
F(y, x) = = 9 x 8 x 7 x 6 = 3024.
{f(y+peta[y][x], x)+f(y, x+peta[y][x]) Sehingga didapat hasil seperti ber­
Maka, fungsi f bisa didefinisikan ikut = banyak cara menempatkan
sebagai berikut: angka 0 x banyak cara mengisi digit
sisanya = 35 x 3024 = 105840.

150
12. C. 120 eliminasi (1) dan (2), diperoleh: 3z = 17
Pembahasan: Z = 17/3, bukan bilangan bulat, maka
Bilangan yang kita miliki yaitu (0 , 1 , kasus b > z tidak mungkin terjadi.
2 , 3 , 4 , 5 , 6 , 7 , 8 , 9) untuk menda- Kasus kedua: z > b.
patkan susunan 7 digit yang berbe- z - b = 31 <=> b = z - 31
da dan menaik yaitu kita hanya per- j = 2 (z - 31) - 7 <=> j = 2z - 69 ... (3)
lu memilih 7 dari 10 angka tersebut j + z = 72 ... (4)
( 10C7 = 120 ) lalu menekan 7 digit eliminasi (3) dan (4), diperoleh 3z = 141
yang kita pilih tadi secara terurut dari Z = 141/3 = 47.
kecil ke besar maka didapatlah su- B = z - 31 = 47 - 31 = 16
sunan 7 digit yang menaik. J = 72 - z = 72 - 47 = 35
Maka jumlah umur Barnie, Jecky, dan
13. D. 12
Zeta 3 tahun yang lalu = b + j + z - 9
Pembahasan:
= 16 + 35 + 47 - 9 = 88 - 9 = 79
Z=8
Maka karena umur W 4 tahun lebih 16. A. 100800 detik
tua dari Z Pembahasan:
Jadi umur W=8+4=12 Terdapat 8 karakter, 1 d, 2 e, 1 g, 2 k,
1 l, 1 n.
14. A. X, S, U, W, V, T, Y, Z
Banyaknya kemungkinan: 8!/(1! 2! 1!
Pembahasan:
2! 1! 1!) = 8!/4 = 10080
Jika V lebih muda dari W, maka
Waktu yang dibutuhkan: 10080 × 10
urutannya sebagai berikut:
= 100800 detik.
XSUWVTYZ
17. C. 1/16
15. E. 79
Pembahasan:
Pembahasan:
Banyaknya kemungkinan hasil: 43 =
Diketahui:
64
B: barnie, z: zeta, j: jecky
Banyaknya kemungkinan menang: 4
|b - z| = 31
(AAA, BBB, CCC, DDD)
j + z - 2 = 70 <=> j + z = 72
Maka peluang menang = 4 / 64 = 1
j - 7 = 2(b - 7) <=> j = 2b -7
/ 16
Kasus pertama: b > z.
b - z = 31 <=> b = 31 + z
j = 2 (31 + z) - 7 <=> j = 55 + 2z ... (1)
j + z = 72 ... (2)

151
18. E. 967 kartu 20. A. 84
Pembahasan: Pembahasan:
Diketahui 4 pernyataan sebagai beri­ Diketahui:
kut: Terdapat 8 buah jeruk pada suatu
Jika kartu ganjil (bukan kelipatan 2) garis lurus. Kita ingin menyelipkan 3
=> kartu sebaliknya kelipatan 3=> buah apel ke antara jeruk-jeruk terse-
pernyataan pertama pada soal but. Berarti ada 9 tempat dimana kita
bisa menaruh apel, yaitu di posisi pa-
Jika kartu bukan kelipatan 3 => kartu
ling awal, paling akhir, atau diantara
sebaliknya kelipatan 2 kontraposisi
jeruk-jeruk. Maka jawabannya kom-
dari pernyataan pertama pada soal
binasi 3 tempat dari 9 tempat yang
Jika kartu kosong => kartu sebaliknya
tersedia = 9c3 = 84.
kelipatan 5 => pernyataan kedua
pada soal 21. A. 64
Jika kartu bukan kelipatan 5 => kartu Pembahasan:
sebaliknya tidak kosong => kontra­ Menggunakan pola kuadrat 2^2 = 4
posisi dari pernyataan kedua pada 4^2 = 16 6^2 = 36 8^2 = 64 10^2
soal = 100
Maka kartu yang harus di cek ada­lah Karena 99 letaknya di sebelah kanan
kartu yang bukan kelipatan 2 atau 100, maka pasti tetangga spesial dari
bukan kelipatan 3 atau bukan kelipat­ 99 adalah 8^2 Jadi jawabannya 64.
an 5 (karena tidak ada kartu kosong)
22. A. 2700 dolar
Banyak kartu tersebut ekivalen de­
Pembahasan:
ngan semua kartu yang bukan keli­­
1 dolar A = 1.8 dolar C
pat­an kpk (2, 3, 5)
1.8 dolar C = 1.5 × 1.8 dolar D = 2.7
= 1000 - 1000 div (kpk(2, 3, 5))
dolar D
= 1000 - 33 = 967 kartu
Maka 1 dolar A = 2.7 dolar D
19. B. 3 tikus 1000 dolar A = 2700 dolar D.
Pembahasan:
23. D. Hanny
Minggu ke -1: 100 div 2 = 50 berarti
Diketahui:
yang hidup adalah 50 tikus
Adam suaminya Gina,
Minggu ke -2: 50 div 2 = 25
Chandra suaminya Fitri,
Minggu ke -3: 25 div 2 = 12
Dani suaminya Enni
Minggu ke -4: 12 div 2 = 6
Adam vs istrinya Chandra(Fitri) -
Minggu ke -5: 6 div 2 = 3
Fitri vs suaminya Gina(Adam) kedua
Jadi tikus yang hidup setelah 5
pernyataan tersebut sama, selanjut­
minggu adalah sebanyak 3
nya

152
Dani vs istrinya Adam(Gina) - Gina 25. D. Kamis
vs suaminya Enni(Dani), sehingga Pembahasan:
pasangan yang tersisa adalah Budi Daftar pernyataan (sebelah kiri jika
dan Hanny. hari itu jujur, sebelah kanan jika bo-
Maka Hanny adalah istri Budi. hong):
a. Hari ini jujur <> Hari ini bohong
24. C. 11 orang
b. Besok jujur <> Besok bohong
Pembahasan:
c. Hari ini bukan Kamis maupun Se-
Satu orang tahanan bisa minum be­
nin <> Hari ini Kamis atau Senin
be­
rapa tetes dari beberapa anggur
d. Kemarin bohong <> Kemarin jujur
seka­li­gus dalam satu waktu.
e. Kemarin Minggu <> Kemarin
Semua orang tahanan yang disuruh
bukan Minggu Pada bagian kiri
minum harus minum secara serentak
terlihat bahwa nomor (3) dan (5)
karena tidak akan sempat menunggu
tidak dapat keduanya bernilai
tahanan mati terlebih dahulu.
benar (terjadi kontradiksi), kare-
Solusinya adalah sebagai berikut:
na jika kemarin Minggu, maka
a. 1 orang minum anggur sepan-
hari ini Senin.
jang interval 210 secara bergan-
Pernyataan nomor (3) jika Heru bo-
tian (minum anggur nomor 1
hong.
sampai 210, jangan minum ang-
Maka Kudo bertemu Heru adalah
gur nomor 210 + 1 sampai 2013).
hari Kamis.
Jika dia mati, berarti anggur be-
racun ada di interval dia. 26. A. A dan D
b. Jika tidak, ada di interval lainnya. Pembahasan:
c. 1 orang lain minum anggur se- D sudah pasti berbohong, Karena jika
panjang interval 29 secara ber- D jujur, maka minimal ada 4 orang
gantian (minum anggur nomor yang berbohong, itu artinya semua-
1 sampai 29, minum lagi anggur nya berbohong termasuk D (kontra-
nomor 210 + 1 sampai 210 + 29 diksi)
dan seterusnya). Jika tidak, ada Perhatikan bahwa pernyataan A dan
di interval lainnya. B bertentangan. Maka salah satu dari
d. 1 orang lain minum anggur A atau B jujur dan salah satunya lagi
sepanjang interval 28 secara berbohong. Akibatnya minimal ada 2
bergantian dan seterusnya sam­ orang yang berbohong (D dan salah
pai interval 20 secara bergan­tian. satu dari A dan B). Berdasarkan fakta
Jika diperhatikan, konfigurasi ini, artinya B jujur dan A bohong.
cara meminum membentuk Jika C berbohong, maka seharusnya
biner. Total diperlukan 11 orang. terdapat lebih dari 3 yang berbo-
hong. Faktanya jika C bohong, hanya

153
ada 3 yang berbohong, yaitu D, A Dengan begitu, kombinasi pqr yang
dan C (kontradiksi). Maka yang tepat menghasilkan nilai benar pada 2 eks­
adalah C jujur. presi di atas ada 5 yaitu 100, 101,
Terdapat 2 orang yang berbohong. 110, 111, 011.

27. A. 5 28. E. 7
Pembahasan: Pembahasan:
p <=> (((q ^ (p v q)) -> ((q xor r) <=> S <=> ((p -> (q -> ( r -> s))) -> (s ->
(q v ~r))) v p) dapat disederhanakan (r -> ( q -> p))))
menjadi Ekspresi x -> y sama dengan ekspresi
p <=> (q -> ((q xor r) <=> (q v ~r))) ~x v y. Lalu disederhanakan menjadi
v p) (penyerapan) S <=> (~(p -> (q -> (r -> s))) v (s ->
maka: (r -> (q -> p))))
Jika p bernilai 1/benar, maka tidak S <=> (~(~p v (~q v (~r v s))) v (~s v
peduli apapun nilai dari q dan r, ha- (~r v (~q v p))))
silnya pasti benar. Dengan begini kita S <=> ((p ^ (q ^ (r ^ ~s))) v (~s v ( ~r
hanya perlu mencoba 4 kemungkin- v (~q v p)))), sekarang kita coba. Ka-
an dengan p bernilai 0/salah. rena ada banyak kemungkinan, maka
kita harus jeli mencobanya.
P ó ((q xor r) ó( Misal, saya namakan ekspresi (p ^ (q
P Q R
q v ~r))) vp ) ^ (r ^ ~s))) sebagai x1 dan (~s v ( ~r
0 0 0 0 v (~q v p))) sebagai x2.
0 0 1 0
Maka ekspresi tersebut menjadi s
0 1 0 0
0 1 1 1 <=> (x1 v x2).
X1 hanya bernilai benar apabila pqr
Nilai pqr yang menghasilkan benar bernilai benar dan s bernilai salah.
adalah 100, 101, 110, 111, 011. Seka- X2 hanya bernilai salah jika p bernilai
rang kita coba ekspresi yang kedua. salah dan qrs bernilai benar.
Q <=> ((q ^ (r v q)) -> ((p xor q xor Saat s bernilai 0/salah, ekspresi di
r) -> (q ^ (q v ~q)))) dapat diseder- atas pasti selalu salah. Karena x2
hanakan menjadi q <=> q -> ((p xor akan bernilai benar.
q xor r) -> (q ^ 1)) (penyerapan dan Saat s bernilai 1/benar, ada 8 ke-
negasi) mungkinan pqr. Daripada mencari x1
Q -> ((p xor q xor r) -> q) (identitas). v x2 yang bernilai benar, maka lebih
Setelah ini tinggal coba-coba lagi. baik mencari yang bernilai salah yaitu
Dari 8 kemungkinan yang ada, se­ saat p bernilai salah dan qr bernilai
muanya bernilai benar, silahkan coba benar. Dengan begitu, kombinasi ni-
sendiri. lai pqrs yang memenuhi ekspresi lo-
gika di atas ada 7.

154
29. B. G false dan L true Lalu pada hari Selasa, Rabu, Jumat
Pembahasan: dan Sabtu untuk Iwan dan Budi dibe­
Nilai dari G False dan L True, maka ri warna hitam karena pada hari itu
dengan begitu bisa ditarik kesim­pul­ sudah tidak mungkin.
an sebagai berikut:

Minggu
Perny. 1 Perny. 2 Kesimpulan

Selasa

Jumat
Kamis

Sabtu
Senin

Rabu
KàG ~G ~K (modus tollens)
~P à K ~K ~(~P) = P (modus tollens)
L à ~Q L ~Q (modus ponens)
P ^ ~Q à R ^ S P^ ~Q R ^ S (modus ponens)

Iwan
30. D. Kamis
Pembahasan:

Budi
Dibuat tabel di mana barisnya ma­
sing-­masing Iwan dan Budi, dan ko­
lom adalah hari-harinya. Jika hari ini adalah hari Minggu,
Jumat, dan Sabtu, Iwan seharusnya
Minggu

berkata bahwa kemarin saya tidak


Selasa

Jumat
Kamis

Sabtu
Senin

Rabu

berbohong, maka dalam kasus ini hari


Iwan Minggu sangat tidak mungkin. Begitu
Budi juga dengan Budi, pada hari Senin,
Selasa, dan Rabu dia seharusnya
Iwan tidak mungkin berkata “kemarin mengatakan kalau kemarin Budi
saya berbohong” jika hari ini adalah tidak berbohong. Senin dan Minggu
hari Selasa atau Rabu. Untuk hari tereliminasi, satu-satunya hari yang
Senin tentu dia bisa mengatakan benar adalah hari Kamis.
itu karena hari Minggu dia berkata
jujur, dan hari Senin dia berbohong Minggu
Selasa

Jumat
Kamis

Sabtu
Senin

Rabu

tentang hari Minggu. Sama halnya


dengan Budi, dia tidak bisa berbicara
Iwan

“saya juga” jika hari ini adalah hari


Jumat atau Sabtu.
Budi
Minggu
Selasa

Jumat
Kamis

Sabtu
Senin

Rabu

Iwan
Budi

155
OSN Tingkat Nasional lantai ke-i, jika nilai L[i] K[i], maka
L[i] pasti dipilih. Selain itu, anggap
1. A. Complete search awalnya kita memilih K[i]. Misal S0d
Pembahasan: menyatakan stamina Pak Dengklek
Dari pernyataan deksripsi yang telah saat ini. Jika saat selesai S0d < Sm,
dijabarkan makahal ini dapat disele­ maka kita harus mengganti beberapa
sai­kan menggunakan complete search. K[i] dengan L[i]. Dalam memilih yang
Salah satu cara yang bisa digu­ na­ diganti, prioritaskan yang memiliki
kan adalah menggunakan rekursi, nilai K[i]-L[i] paling besar. Hal ini bisa
pada setiap lantai, coba semua dicapai dengan bantuan sorting.
kemung­kinan pilihan yang tersedia, Se­lan­
jutnya, kurangi total waktu
yaitu kabur melewati pen­ jaga atau dengan dengan Sm - S0d nilai K[i]-
mengalahkan penjaga, lalu cari L[i] terbesar (bisa dilihat bahwa ini
jumlah waktu minimal. Komplek­si­tas sama dengan menukar K[i] dengan
dari solusi ini adalah O(2N). L[i]). Kompleksitas dari solusi ini
adalah O(NlogN).
2. C. Dynamic programming
Pembahasan: 5. Diselesaikan dengan bantuan priority
Soal ini diselesaikan menggunakan queue. Dengan solusi simpan K[i]
dynamic programming (DP). State - L[i] dalam priority queue. Untuk
dari DP tersebut adalah (posisi lantai, setiap lantai ke-i, selama S0d < P[i],
banyak lantai yang mana penjaganya maka cari nilai terbesar dari priority
sudah dikalahkan). Untuk mengisi queue tersebut dan kurangi total
nilai dari DP, cari hasil minimum dari waktu dengan nilai tersebut.
kedua kemungkinan pilihan untuk Lakukan hal yang sama selama S0d
setiap lantai. Kompleksitas dari solusi saat Pak Dengklek berada di lantai N
ini adalah O(N2). masih lebih kecil dari Sm. Komplek-
sitas dari solusi ini adalah O(NlogN).
3. A. O(N)
Pembahasan: 6. B. Hari tidak panas
Karena stamina dari Pak Dengklek, sang Pembahasan:
makhluk jahat, dan para penjaga tidak Premis (1) Jika hari panas, maka Ani
perlu diperhatikan, maka untuk setiap memakai topi.
lantai, pilih nilai yang paling minimum Premis (2) Ani tidak memakai topi
di antara L[i] dan K[i]. Kompleksitas atau ia memakai payung.
dari solusi ini adalah O(N). Premis (3) Ani tidak memakai payung.
p: Hari panas.
4. A. O(N LOG N)
q: Ani memakai topi.
Sub soal ini dapat diselesaikan de­
r: Ani memakai payung.
ngan bantuan sorting. Untuk setiap

156
Selesaikan terlebih dahulu premis (1) Jika Pak Dengklek menebak 4 dan
dan (2) kemudian digabungkan de- jika kita bilang terlalu besar maka
ngan premis (3). bilangan yang mungkin menjadi
Dari premis (1) dan (2). 1, 2, 3 --> tidak baik (cuma ada 3
Premis (1) Jika hari panas, maka Ani bilangan).
memakai topi. Jika Pak Dengklek menebak 4 dan
Premis (2) Ani tidak memakai topi kita bilang terlalu kecil maka bilangan
atau ia memakai payung. yang mungkin menjadi 5, 6, 7, 8 ---->
p? q baik (ada 4 bilangan)
~q? r Jika Pak Dengklek menebak 5 dan kita
Ingat bentuk berikut: bilang terlalu besar maka bilangan
~q? r ekivalen dengan q? r yang mungkin menjadi 1, 2, 3, 4 --->
sehingga bentuk di atas menjadi: baik (ada 4 bilangan)
p? q Jika Pak Dengklek menebak 5 dan
q? r kita bilang terlalu kecil maka bilangan
_____ yang mungkin menjadi 6, 7, 8 ---->
? p? r (Silogisme) tidak baik (ada 3 bilangan).
Dari sini gabungkan dengan premis Jadi pilihlah rentang yang terbesar
ketiga: jika banyaknya bilangan adalah
p? r gan­jil maka terserah bilang terlalu
~r kecil ataupun terlalu besar, karena
_____ rentangnya juga sama.
? ~p (Modus Tollens)
8. A. Terlalu kecil atau terlalu besar
Kesimpulan akhirnya adalah ~p yaitu
“Hari tidak panas”. Pembahasan:
Caranya adalah di saat banyaknya bi­
7. A. Terlalu kecil atau terlalu besar langan yang mungkin adalah genap,
Pembahasan: maka kita pilih rentang yang terbesar.
Caranya adalah di saat banyaknya bi­ Rentang saat ini adalah: 1, 2, 3, 4, 5, 6,
langan yang mungkin adalah genap, 7, 8 maka nilai dari (1+8)/2 =4.5 dan
maka kita pilih rentang yang terbesar, jika tidak dalam bilangan bulat maka
Rentang saat ini adalah: 1, 2, 3, 4, 5, 6, Pak Dengklek akan membulatkannya,
7, 8 maka nilai dari (1+8)/2 =4.5 dan bisa pembulatan ke atas bisa pem­
jika tidak dalam bilangan bulat maka bu­­
latan ke bawah (terserah Pak
pak dengklek akan membulatkannya, Dengklek).
bisa pembulatan ke atas bisa pem­ Jika Pak Dengklek menebak 4 dan
bu­latan ke bawah (terserah Pak jika kita bilang terlalu besar maka
Dengklek). bilangan yang mungkin menjadi

157
1, 2, 3 --> tidak baik (hanya ada 3 yang mungkin menjadi 5, 6, 7, 8 ---->
bilangan) baik (ada 4 bilangan)
Jika Pak Dengklek menebak 4 dan Jika Pak Dengklek menebak 5 dan kita
kita bilang terlalu kecil maka bilangan bilang terlalu besar maka bilangan
yang mungkin menjadi 5, 6, 7, 8 ----> yang mungkin menjadi 1, 2, 3, 4 --->
baik (ada 4 bilangan) baik (ada 4 bilangan)
Jika Pak Dengklek menebak 5 dan kita Jika Pak Dengklek menebak 5 dan
bilang terlalu besar maka bilangan kita bilang terlalu kecil maka bilangan
yang mungkin menjadi 1, 2, 3, 4 ---> yang mungkin menjadi 6, 7, 8 ---->
baik (ada 4 bilangan) tidak baik (ada 3 bilangan).
Jika Pak Dengklek menebak 5 dan Jadi pilihlah rentang yang terbesar
kita bilang terlalu kecil maka bilangan jika banyaknya bilangan adalah
yang mungkin menjadi 6, 7, 8 ----> ganjil maka terserah bilang terlalu
tidak baik (ada 3 bilangan). kecil ataupun terlalu besar, karena
Jadi pilihlah rentang yang terbesar rentangnya juga sama. Jadi kesim­
jika banyaknya bilangan adalah gan­ pulannya bisa terlalu kecil atau terlalu
jil maka terserah bilang terlalu ke­cil besar.
ataupun terlalu besar, karena ren­
10. A. Terlalu kecil atau terlalu besar
tang­nya juga sama.
Pembahasan:
9. A. Terlalu kecil atau terlalu besar Caranya adalah di saat banyaknya bi­
Pembahasan: lang­an yang mungkin adalah ge­nap,
Caranya adalah di saat banyaknya maka kita pilih rentang yang terbe­
bilangan yang mungkin adalah genap, sar, contoh:
maka kita pilih rentang yang terbesar. Rentang saat ini adalah: 1, 2, 3, 4, 5, 6,
Rentang saat ini adalah: 1, 2, 3, 4, 5, 6, 7, 8 maka nilai dari (1+8)/2 =4.5 dan
7, 8 maka nilai dari (1+8)/2 = 4.5 dan jika tidak dalam bilangan bulat maka
jika tidak dalam bilangan bulat maka Pak Dengklek akan membulatkannya,
pak dengklek akan membulatkannya, bisa pembulatan ke atas bisa pem­
bisa pembulatan ke atas bisa pem­ bu­latan ke bawah (terserah Pak
bu­latan ke bawah (terserah Pak Dengklek).
Dengklek). Jika Pak Dengklek menebak 4 dan jika
Jika Pak Dengklek menebak 4 dan kita bilang terlalu besar maka bilangan
jika kita bilang terlalu besar maka yang mungkin nya menjadi 1, 2, 3 -->
bilangan yang mungkin menjadi tidak baik (cuma ada 3 bilangan).
1, 2, 3 --> tidak baik (cuma ada 3 Jika Pak Dengklek menebak 4 dan
bilangan). kita bilang terlalu kecil maka bilangan
Jika Pak Dengklek menebak 4 dan yang mungkin menjadi 5, 6, 7, 8 ---->
kita bilang terlalu kecil maka bilangan baik (ada 4 bilangan)

158
Jika Pak Dengklek menebak 5 dan kita Jika Pak Dengklek menebak 4 dan
bilang terlalu besar maka bilangan kita bilang terlalu kecil maka bilangan
yang mungkin menjadi 1, 2, 3, 4 ---> yang mungkin menjadi 5, 6, 7, 8 ---->
baik (ada 4 bilangan) baik (ada 4 bilangan)
Jika Pak Dengklek menebak 5 dan Jika Pak Dengklek menebak 5 dan kita
kita bilang terlalu kecil maka bilangan bilang terlalu besar maka bilangan
yang mungkin menjadi 6, 7, 8 ----> yang mungkin menjadi 1, 2, 3, 4 ----
tidak baik (ada 3 bilangan). > baik (ada 4 bilangan)
Jadi pilihlah rentang yang terbesar Jika Pak Dengklek menebak 5 dan
jika banyaknya bilangan adalah gan­ kita bilang terlalu kecil maka bilangan
jil maka terserah bilang terlalu ke­cil yang mungkin menjadi 6, 7, 8 ---->
ataupun terlalu besar, karena ren­ tidak baik (ada 3 bilangan).
tang­nya juga sama. Jadi pilihlah rentang yang terbesar
jika banyaknya bilangan adalah gan­
11. A. Terlalu kecil atau telalu besar
jil maka terserah bilang terlalu ke­cil
Pembahasan: atau­pun terlalu besar, karena ren­
Karena Pak Dengklek mencari bila­ tang­nya juga sama.
ngannya menggunakan cara binnary
search maka rasanya pasti ketemu, 12. B. Beberapa orang yang malas belajar,
tetapi kita punya keunggulan yaitu bukan orang pintar
angka yang kita pikirkan bisa kita Pembahasan:
ubah-ubah terus dengan syarat Diketahui kata dan frasa dari soal:
masih ada dalam jangkauan dan tak P = orang pintar
melanggar peraturan. Q = menyontek saat ujian
Caranya adalah di saat banyaknya R = orang yang malas belajar
bila­ngan yang mungkin adalah ge­ Maka diperoleh:
nap, maka kita pilih rentang yang Tidak ada p melakukan q
terbe­sar, contoh: Beberapa q merupakan r
Rentang saat ini adalah: 1, 2, 3, 4, 5, 6, Simpulan: beberapa r bukan p
7, 8 maka nilai dari (1+8)/2 =4.5 dan Secara matematis, dapat ditulis seba-
jika tidak dalam bilangan bulat maka gai berikut:
Pak Dengklek akan membulatkannya, P-q
bisa pembulatan ke atas bisa pem­ Q-r
bulatan ke bawah (terserah Pak -------
Dengklek). Jadi r - p
Jika pak dengklek menebak 4 dan jika Jadi, simpulan yang tepat adalah
kita bilang terlalu besar maka bilangan beberapa orang yang malas belajar,
yang mungkin menjadi 1, 2, 3 --> tidak bukan orang pintar.
baik (cuma ada 3 bilangan).

159
13. B. O(n) + O(Q * log n) = O(n + Q * Pertama, outputkan nilai len (karena
log n) nilai len muncul untuk seluruh kondi-
Pembahasan: si jawaban).
Pertama, kompresi tiap substring de- Perhatikan format keluaran: “Jika
ngan huruf yang sama menjadi sua- panjang pesan yang tereduksi lebih
tu struktur yang memuat ciri: batas kecil dari 10, cetak juga pesan hasil
kiri substring(L), batas kanan sub- reduksi tersebut.”. Hal tersebut dapat
string(R), dan huruf penyusun sub- dilakukan dengan iterasi biasa.
string. Jika len < 10:
Contoh untuk string “AAAALLLLLOO- Outputkan nilai len dan iterasi huruf
OOOHAA” penyusun substring dari indeks x ke
Dapat dikompresi menjadi indeks y. Misal (dengan contoh di
(1, 4, ‘A’) atas):
(5, 9, ‘L’) Outputkan substring[1].huruf, sub-
(10, 14, ‘O’) string[2].huruf, dan substring[3].hu-
(15, 15, ‘H’) ruf, iterasi dapat dilakukan dengan
(16, 17, ‘A’) perulangan biasa
Perhatikan bahwa range untuk tiap Kompleksitas untuk input dan meng-
struktur telah terurut: [1, 4]; [5, 9]; [10, ompresi string adalah O(n).
14]; [15, 15]; [16, 17] Kompleksitas untuk mencari nilai i
Lalu perhatikan query. Query yang dan j adalah O(log n), lalu ditanyakan
diberikan dalam bentuk [i, j], yaitu pertanyaan sebanyak Q pertanyaan.
substring yang memiliki batas kiri i Lalu kompleksitas untuk input per­
dan batas kanan j. Kita akan melaku- ta­nyaan dan menjawab setiap per­
kan binary search untuk menentukan tanyaan adalah O(1) sehingga
suatu substring a sehingga La = i = kom­plek­sitas total untuk bagian per­
Ra dan suatu substring b sehingga Lb tanyaan adalah O(Q) * (O(log n) +
= j = Rb O(1)) = O(Q) * (O(log n)) = O(Q * log
Jika sudah ditemukan indeks sub n).
string-substring yang memenuhi. Komplesitas total adalah O(n) + O(Q
Misal indeks substring a di mana La = * log n) = O(n + Q * log n).
i = Ra adalah x dan indeks substring
14. A. 5!
b di mana Lb = i = Rb adalah y
Pembahasan:
Panjang substring hasil reduksi (len)
Pertama kita buat dulu sequence mi-
= y - x + 1.
numnya aja.
Misal (dengan contoh di atas):
Yaitu a’b’c’d’e’
I = 2 dan j = 10, maka x = 1 dan y = 3.
Lalu kita selipkan makanannya
Sehingga len = 3 - 1 + 1 = 3.
A bisa di belakang a saja = 1 cara.

160
Sequence sekarang a’b’c’d’e’ , 16. D. Ada 7
B bisa di belakang b’/a’/a=3 cara Pembahasan:
C bisa 5 cara 2n >= 100 (Pilih n seminimal mung­
D bisa 7 cara kin)
E bisa 9 cara misal:
Jadi banyak cara= 1*3*5*7*9*5! 23 = 8
(5! Dari permutasi minuman awal) 26 = 64
27 = 128
15. E. 23
Jadi jawabannya adalah 7
Pembahasan:
Semisal punya angka 94
Bisa diselesaikan dengan Persamaan
50 = 100 div 2 (Lebih)
Linear Diophantine
75 = 100 div 2 div 2 + 50 (Lebih)
(Bentuk umum: ax + by = c)
87 = 100 div 2 div 2 div 2 + 75 (Lebih)
200x + 500y = 2000
93 = 100 div 2 div 2 div 2 div 2 +
Jadi
87(Lebih)
2x + 5y = 20
96 = 100 div 2 div 2 div 2 div 2 div 2
Gcd(2, 5) = 1 sedangkan 1 habis
+ 93 (Kurang)
membagi 20, maka persamaan terse-
Sampai disini ada 2 kemungkinan
but memiliki solusi
94/95 karena ini nebak benarnya
Xo = 0
harus minimal jadi harus pasti dan
Yo = 4
kita pakai worst case sehingga ada
X = Xo + (b/gcd(a, b))t -> x = 0 + 5t = 5t
2 kemungkinan lagi. Oleh karena itu,
Y = Yo - (a/gcd(a, b))t -> y = 4 - 2t
total ada 7.
T bilangan bulat
Sementara x harus >= 0 dan y >= 0 17. B. 10
X >= 0 --> 5t >= 0 --> t >= 0 ...... (1) Pembahasan:
Y >= 0 --> 4 - 2t >= 0 --> 4 >= 2t Menggunakan Dynamic Program-
--> t <= 2 .............................................. (2) ming dan akan ditemukan pola c=
Dari (1) dan (2) --> 0 <= t <= 2 Kolom
Bagi kasus: Basecase c(1)=0 , c(2)=2 , c(3)=4
T = 0 -> x = 0, y = 4. Banyaknya cara c(n)=c(n-1) + c(n-2)
mengacak = 4! / (0! 4!) = 1 c(4)=c(3) + c(2)= 4+2 = 6
T = 1 -> x = 5, y = 2. Banyaknya cara c(5)=c(4) + c(3)= 6+4 = 10
mengacak = 7! / (5! 2!) = 21
T = 2 -> x = 10, y = 0. Banyaknya cara
mengacak = 10! / (10! 0!) = 1
Banyaknya kemungkinan urutan mi­
num = Banyaknya cara mengacak =
1 + 21 + 1 = 23

161
18. A. 3 melakukan X terlebih dahulu, lalu
Pembahasan: melakukan Y. Atau kita singkat XY.
Pergerakan dadu dengan memaju- Lalu kita definisikan juga -X sebagai
kan dadu ke arah utara sekali berarti merotasikan dadu yang berlawanan
memajukan sekali semua angka yang arah dari X. I dinotasikan sebagai
berada di siklus garis merah (ber- “tidak melakukan apa-apa pada
lawanan panah). Memajukan dadu dadu”. Lalu perhatikan bahwa:
arah ke selatan sekali berarti seba- B(-B)=S(-S)=I
liknya, memundurkan sekali semua S4=B4=(-S)4=(-B)4=I
angka yang berada di siklus garis BSBSBS=SBSBSB=I
merah (searah panah). Sama seperti dan operasi ini asosiatif, XYZ=(XY)
siklus garis merah untuk memajukan Z=X(YZ) namun tidak komutatif. De-
dadu ke arah timur dan barat, namun finisikan X-1 sebagai suatu aksi yang
sesuai panah jika arahnya ke barat. mengembalikan dadu ke semula dari
operasi X. Perhatikan bahwa (XYZ)-1
=(-Z)(-Y)(-X). Kembali ke masalah,
pergerakan yang akan kita lakukan
adalah (-B)3S(-B)S3. Lalu perhatikan
bahwa
(-B)3S(-B)S3
=(-B)3*I*S(-B)*I*S3
=(-B)3*((-B)B)*S(-B)*((-S)S)*S3
Perhatikan bahwa maju ke arah uta- =(-B)4(BS(-B)(-S))S4
ra empat kali sama saja seperti tidak =BS(-B)(-S)
melakukan apa-apa. Lintasan terse- Dan ternyata lintasan yang tadi ha-
but sekarang ekuivalen dengan lin- nya ekuivalen dengan
tasan ini.

Jadi dapat ditarik kesimpulan bahwa


ada 3 titik yang ada di dasar saat
dadu mencapai petak hijau di ujung.

Abstraksi. Misalkan S dan B adalah


suatu operasi yang masing-masing
merotasikan dadu ke arah selatan dan
barat. Kita definisikan X*Y sebagai

162
19. C. 9 21. E. 1
Pembahasan: p p p
Peluang jatuhnya koin yang akan P
menunjukkan sisi gambar adalah se- P p p p p X1
bagai beikut: p
p p p p
1) G, A, A, G, A, A, G, A, G, A, A, A,
p p P
A, G, G, A. p p p
2) G, G, G, G, A, A, G, A, G, A, A, A,
A, G, G, A. Total p/pohon = 20.
3) G, G, G, G, G, G, G, A, G, A, A, A, X1 = 20p - 7p = 13 p.
A, G, G, A. Jadi ada hanya 1 kemungkinan.
4) G, G, G, G, G, G, G, G, A, A, A, A,
A, G, G, A. 22. C. 21
5) G, G, G, G, G, G, G, G, G, G, A, A, Pembahasan:
A, G, G, A. Badu = a, Budi = b, Beni = c.
6) G, G, G, G, G, G, G, G, G, G, G, G, A = b + c;
A, G, G, A. 5 tahun yang lalu, budi = 10 kali lipat
7) G, G, G, G, G, G, G, G, G, G, G, G, beni.
G, A, G, A. (b - 5) = 10*(c - 5)
8) G, G, G, G, G, G, G, G, G, G, G, G, Budi saat ini 15 tahun, b = 15
G, G, A, A. 15 - 5 = 10*(c - 5)
9) G, G, G, G, G, G, G, G, G, G, G, G, C=6
G, G, G, G. A = b + c = 15 + 6 = 21

20. A. 4 23. C. 6
Pembahasan: Pembahasan:
p Diketahui komisinya = a, b, c, d
x1 x4 p Anggotanya = 1, 2, 3, 4, 5, 6
p p p p Simulasi:
p2 x3
“setiap anggota tergabung ke dalam
p p p P
P p p tepat dua komisi”
p p 1 = a, b
2 = b, c
Total p/pohon = 15 3 = c, d
X1 = 15p 4 = d, a
X2 = 15p “setiap dua komisi memiliki tepat
X3 = 15p satu anggota bersama”
X4 = 15p
Jadi ada 4 kemungkinan.

163
Komisi d-b menurut pernyataan 1 25. A. 297
belum ada anggota bersama jadi Pembahasan:
tambah 1 anggota lagi = 5 Menggunakan dynamic program-
Sama juga dengan komisi a-c, jadi ming,
tambah 1 anggota lagi jadi = 6 Diketahui
Misal melati=a, mawar=b, anggrek-
24. -
=c
Pembahasan:
Misal f(n, ab) adalah banyaknya
Diketahui
cara menyusun n pot bunga (sesuai
101 pasang
aturan) di mana dua bunga di depan­
100 datang sendiri
nya adalah ab
Hadirin saling bersalaman
Berdasarkan kesimetrisan, apapun
Salaman yang terjadi
dua bunga berbeda x dan y, maka
Pasangan salaman dengan yang sen­
hasil f(n, xy) nya sama
diri:
Yakni, f(n, ab) = f(n, ba) = f(n, ac) =
Diketahui jika 1 orang terjadi 2 sa-
f(n, ca) = f(n, bc) = f(n, cb). Misalkan
laman
saja ini sama dengan f(n, xy)
Berarti jika bareng pasangan , maka
Jika depannya ab, maka selanjutnya
masing-masing adalah 2*100 = 200
tidak boleh c (selanjutnya a atau b,
untuk 1 pasangan salaman 1 orang
ada dua kasus)
Berarti jika ada 100 yang hadir
Dari dua kasus tersebut pandang di-
101*100 = 10100 salaman
git kedua hingga akhir. Terdapat sub-
Salaman yang terjadi yang sudah
problem:
mem­bawa pasangan =
A b a _ _ _ ... Subprolem untuk kasus
Jika 101 pasang salaman dengan an­
ini f(n-1, ba) = f(n-1, xy)
tar­sesama yang membawa psangan
A b b _ _ _ ... Subprolem untuk kasus
101 orang salaman 100 kali dengan
ini f(n-1, bb) = f(n-1, xx)
orang
Diperoleh f(n, xy) = f(n-1, xy) + f(n-1,
Jika 101 orang maka 10.100
xx)
Salaman yang datang sendiri
Misalkan f(n, aa) adalah banyaknya
1 orang bersalaman dengan 90 orang.
cara menyusun n pot bunga (sesuai
Berarti jika 100 orang , maka masing-
aturan) di mana dua bunga di depan­
masing = 9000
nya adalah aa
Jadi 10.100 + 10.100 + 90
Berdasarkan kesimetrian, apapun bu-
20.290
nga x, maka hasil f(n, xx) sama
Jadi dapat ditarik kesimpulan jumlah
Yakni, f(n, aa) = f(n, bb) = f(n, cc). Mi-
salaman yang terjadi adalah 20.290
salkan saja ini sama dengan f(n, xx)
salaman

164
Jika depannya aa, maka selanjutnya yang disebutkan pada jawaban
boleh a, b, maupun c diasumsikan berbohong
Dari tiga kasus tersebut pandang di- Maka dianalisis dari jawaban satu per
git kedua hingga akhir. Terdapat sub- satu yaitu sebagai berikut:
problem: A) l dan d jujur berarti g dan o bo-
A a a _ _ _ ... Subprolem untuk kasus hong l jujur berarti o bohong
ini f(n-1, aa) = f(n-1, xx) (aturan 3) valid
A a b _ _ _ ... Subprolem untuk kasus o bohong berarti g bohong
ini f(n-1, ab) = f(n-1, xy) (aturan 1 menggunakan modus
A a c _ _ _ ... Subprolem untuk kasus tollens) valid
ini f(n-1, ac) = f(n-1, xy)
B) o dan l jujur berarti g dan d bo-
Diperoleh f(n, xx) = f(n-1, xx) + 2*f(n-
hong
1, xy)
l jujur berarti o bohong (aturan
Dengan basis
3) invalid
F(2, xx) = 1,
F(2, xy) = 1 o jujur berarti d bohong (aturan
2 3 4 5 6 4) valid
Xx 1 3 7 17 41 d bohong berarti l jujur (aturan
Xy 1 2 5 12 29
2 menggunakan modus tollens)
valid
Di mana untuk mencari penyusunan
pot dengan panjang 6, C) g dan o jujur berarti l dan d bo-
= f(6, ab) + f(6, ba) + f(6, ac) + f(6, ca) hong g jujur berarti o jujur(atur-
+ f(6, bc) + f(6, cb) + f(6, aa) + f(6, bb) an 1 menggunakan modus po-
+ f(6, cc) nens) valid
= 6*f(6, xy) + 3*f(6, xx) o jujur berarti l bohong (aturan
= 6*29 + 3*41 3) valid
= 297 o jujur berarti d bohong (aturan
4) valid
26. C.
Pembahasan: l bohong berarti o jujur (aturan
Premis-premis dari fakta 3) valid
G -> o l bohong berarti d jujur (aturan
~ l -> d 2 menggunakan modus ponens)
O xor l. invalid
O <=> ~d
D) d dan g jujur berarti o dan l bo-
Dalam soal menanyakan siapa
hong
yang berkata jujur, berarti selain

165
g jujur berarti o jujur (aturan 1 28. A. Pak Danu tidak sedang marah
menggunakan modus ponens) Pembahasan:
invalid Premis dalam soal:
o bohong berarti l jujur (aturan Marah =>bernyanyi
3) invalid Marah => tidur
Sakit => tidur
l bohong berarti o jujur (aturan
Tidur => makanan bebek tersisa
3) invalid
Karena makanan bebeknya tidak ter­
o jujur berarti d bohong (aturan sisa, maka dalam kasus ini dia seha­
4) invalid rusnya tidak tidur (modus tollens).
Jadi yang berkata jujur adalah L dan D Karena ia tidak tidur, maka pada hari ini
Pak Dengklek sedang tidak marah dan
27. A < 178 sehat (modus tollens). Karena dia tidak
Pembahasan: marah, dalam kasus ini dia semestinya
Banyak bilangan yang mengandung bernyanyi.
angka 7 dari kelipatan 10 ada seba-
29. E. 4
nyak floor(177:10) =17
Ditambah dengan 1 buah angka sa- Pembahasan:
tuan yaitu 7, Diketahui:
Sehingga totalnya ada 18. Yaitu (7, A mengatakan bahwa b itu ayam.
17, 27, 37, 47, ...., 167, 177). Dari 70- C mengatakan bahwa d itu bebek.
79 selain 77 ada sebanyak 9. Dari E mengatakan bahwa a itu ayam.
170-177 selain 177 ada sebanyak 7. B mengatakan bahwa c itu bebek.
Total yang mengandung angka 7 ada D berkata bahwa > a.
sebanyak 18 + 9 + 7 = 34. Perhatikan bahwa terdapat suatu
Banyak bilangan kelipatan 7 ada se- rantai yang bisa kita telusuri secara
banyak floor (177:7)= 25. mudah, yaitu e => a => b => c => d.
Banyak bilangan yang merupakan Jika kita telusuri bagaimana kasusnya
irisan pada hasil 1 dan 2 ada seba- jika e adalah ayam, kita akan temu-
nyak 5 yaitu (7, 70, 77, 147, 175). Jadi kan kontradiksi bahwa c mengatakan
banyaknya up ada 34 + 25 -5 = 54. bahwa d itu ayam, namun pernyatan
Game berhenti bila tidak mengucap- d jelas-jelas salah karena e dan a ke-
kan up pada kelipatan 7 atau pada duanya merupakan ayam. Jadi tidak
bilangan yang mengandung angka mungkin bahwa e adalah ayam.
7, karena berhenti pada angka 178, Jika e adalah bebek, kita tidak temu-
berarti pada angka tersebut mereka kan kontradiksi. E mengatakan bah-
tidak mengucapkan up. wa a itu bebek, a mengatakan bahwa
Banyaknya mengatakan up adalah pa­ b itu bebek, b mengatakan bahwa c
da bilangan-bilangan yang < 178. itu ayam, c mengatakan bahwa d itu

166
bebek, dan d berbohong pun benar PREDIKSI OSN
sesuai dengan pernyataannya, kare-
na e dan a keduanya sama. 1. A. 2
Selama e menjadi bebek, a, b dan d Pembahasan:
juga bebek yang sehingga banyaknya Lihat aturan dari soal seperti berikut:
anak yang menjadi bebek adalah 4. a. Merah selalu berurutan.
b. angka 4 = hijau.
30. A. 2016 c. biru tidak boleh berurutan.
Pembahasan: d. angka 1 dan 9 = kuning.
Soal menanyakan bagaimana jika 1 e. angka jingga tidak boleh di sebe­
pernyataan saja yang benar. Ekspre- lah angka hijau.
si yang ekuivalen yaitu bagaimana f. ada 1 warna jingga. ada 2 warna
jika 2016 pernyataan saja yang salah merah, hijau, kuning, biru.
(1 yang benar, maka yang lain pun Dari aturan di atas kita bisa menem-
salah. “yang lain” ada 2016 pernya- patkan dengan pasti hanya warna hi-
taan). Pernyataan nomor 2016 meru- jau dan kuning:
pakan pernyataan yang benar, karena K _ _ _ H_ _ _ _ K
ia mengatakan bahwa 2016 pernya- karena merah memiliki syarat harus
taan di daftar tersebut salah, atau 1 berurutan, sehingga jika salah satu
pernyataan di list itu saja yang benar. merah di 3 maka, merah pasti di an-
Karena makanan bebeknya tidak ter­ tara 2 atau 4, namun karena 4 dipakai
sisa, maka dalam kasus ini dia seha­ oleh hijau, jadi hanya 2 yang meme-
rusnya tidak tidur (modus tollens). nuhi.
Karena ia tidak tidur, maka pada hari
ini Pak Dengklek sedang tidak marah 2. A. angka nomor 6 berwarna jingga
dan sehat (modus tollens). Karena Pembahasan:
dia tidak marah, dalam kasus ini dia Lihat aturan dari soal seperti berikut:
semestinya bernyanyi. a. Merah selalu berurutan.
b. Angka 4 = hijau.
c. Biru tidak boleh berurutan.
d. Angka 1 dan 9 = kuning.
e. Angka jingga tidak boleh disebe-
lah angka hijau.
f. Ada 1 warna jingga. ada 2 warna
merah, hijau, kuning, biru.
Dari aturan di atas kita bisa menem-
patkan dengan pasti hanya warna hi-
jau dan kuning:
K _ _ _ h_ _ _ _ k

167
Karena menurut aturan jingga tidak c. biru tidak boleh berurutan
boleh di sebelah hijau, maka karena d. angka 1 dan 9 = kuning
hijau berada di angka 5, maka jingga e. angka jingga tidak boleh disebe-
tidak mungkin berada di 6. lah angka hijau
f. ada 1 warna jingga, ada 2 warna
3. E angka 7 berwarna biru
merah, hijau, kuning, biru.
Pembahasan: Dapat diambil kesimpulan bahwa pa­
Ditinjau dari pilihan yang ada satu- da pilihan jawaban sudah langsung
satu, sebagai berikut: memberikan informasi nomor 2 ada­
a. Angka 2 berwarna biru, FALSE, lah biru sehingga tidak usah mencari-
karena apabila biru berada di 2 cari lagi.
maka merah tidak bisa ditempat-
kan karena merah harus berurut- 5. A. angka 3
an dan biru tidak boleh berurut- Pembahasan:
an Lihat aturan dari soal seperti berikut:
b. Angka 3 berwarna jingga, FALSE, a. Merah selalu berurutan
karena jingga tidak boleh berada b. angka 4 = hijau
di samping hijau c. biru tidak boleh berurutan
c. Angka 5 berwarna merah, FALSE, d. angka 1 dan 9 = kuning
karena merah harus berurutan e. angka jingga tidak boleh di sebe­
sehingga jika merah ditaruh di lah angka hijau
5, merah tidak bisa ditempatkan f. ada 1 warna jingga, ada 2 warna
lagi karena 6 dan 4 sudah terpa- merah, hijau, kuning, biru.
kai karena menurut aturan, jingga tidak
d. Angka 5 berwarna jingga, FALSE, boleh berada di samping hijau (hjiau
karena jingga tidak boleh berada berada di no 4)
di samping hijau
6. B. Hari tidak panas.
e. Angka 7 berwarna biru, TRUE,
karena jika warna biru ditempat- Pembahasan:
kan di 7, kita masih bisa menem- Premis (1) Jika hari panas, maka Budi
patkan warna lain dengan tetap memakai topi.
mengikuti aturan. Premis (2) Ani tidak memakai topi
atau ia memakai payung.
4. A. angka 2 berwarna biru Premis (3) Ani tidak memakai payung.
Pembahasan: p: Hari panas
Lihat aturan dari soal seperti berikut: q: Ani memakai topi
a. Merah selalu berurutan r: Ani memakai payung
b. angka 4 = hijau

168
Selesaikan terlebih dahulu premis 8. C. 6
(1) dan (2) kemudian digabungkan Pembahasan:
dengan premis (3) Diketahui komisinya = A, B, C, D
Dari premis (1) dan (2): Anggotanya = 1, 2, 3, 4, 5, 6
Premis (1) Jika hari panas, maka Ani Simulasi:
memakai topi. “setiap anggota tergabung ke dalam
Premis (2) Ani tidak memakai topi tepat dua komisi”.
atau ia memakai payung. 1 = A, B
p? q 2 = B, C
~q? r 3 = C, D
--------- 4 = D, A
Ingat bentuk berikut: “setiap dua komisi memiliki tepat
~q? r ekuivalen dengan q? r satu anggota bersama”.
sehingga bentuk di atas menjadi: Komisi D-B menurut pernyataan 1
p? q belum ada anggota bersama jadi
q? r tambah 1 anggota lagi = 5.
_____ Sama juga dengan Komisi A-C, jadi
? p? r (Silogisme) tambah 1 anggota lagi jadi = 6.
Dari sini gabungkan dengan premis
ketiga: 9. -
p? r Pembahasan:
~r Diketahui
_____ 101 pasang.
? ~p (Modus Tollens) 100 datang sendiri.
Kesimpulan akhirnya adalah ~p yang Hadirin saling bersalaman
artinya “Hari tidak panas”. Salaman yang terjadi
Pasangan salaman dengan yang sendiri:
7. C. 21
Diketahui jika 1 orang terjadi 2 sala­
Pembahasan: man.
Bani = a, Deni = b, Roni = c. Berarti jika bersama pasangan, maka
a = b + c; masing-masing adalah 2*100 = 200
5 tahun yang lalu, Deni = 10 kali lipat un­tuk 1 pasangan salaman 1 orang.
Roni. Berarti jika ada 100 yang hadir
(b - 5) = 10*(c - 5) 101*100 = 10100 salaman.
Deni saat ini 15 tahun, b = 15 Salaman yang terjadi yang sudah
15 - 5 = 10*(c - 5) membawa pasangan:
c = 6. Jika 101 pasang salaman dengan an­
a = b + c = 15 + 6 = 21 tarsesama yang membawa pasangan

169
101 orang salaman 100 kali dengan 11. E. 23
orang Pembahasan:
Jika 101 orang maka 10.100 Bisa diselesaikan dengan Persamaan
Salaman yang datang sendiri: Linear Diophantine
1 orang bersalaman dengan 90 orang. (Bentuk umum: ax + by = c)
Berarti jika 100 orang, maka masing- 200x + 500y = 2000
masing = 9000 Jadi
Jadi 10.100 + 10.100 + 90 2x + 5y = 20
20.290. Gcd(2, 5) = 1 sedangkan 1 habis
Jadi, dapat ditarik kesimpulan jumlah membagi 20, maka persamaan
salaman yang terjadi adalah 20.290 tersebut memiliki solusi
salaman. Xo = 0
Yo = 4
10. D. 4
X = Xo + (b/gcd(a, b))t -> x = 0 + 5t = 5t
Pada kandang pertama diisi 1 ekor
Y = Yo - (a/gcd(a, b))t -> y = 4 - 2t
bebek
T bilangan bulat
Pada kandang kedua diisi 1 ekor be-
Sementara x harus >= 0 dan y >= 0
bek.
X >= 0 --> 5t >= 0 --> t >= 0 ...... (1)
Pada kandang ketiga diisi 4 ekor be-
Y >= 0 --> 4 - 2t >= 0 --> 4 >= 2t
bek.
--> t <= 2 .............................................. (2)
Jadi jumlah maksimal pada 1 kan-
Dari (1) dan (2) --> 0 <= t <= 2
dang adalah 4.
Bagi kasus:
Atau bisa dibagi seperti ini:
T = 0 -> x = 0, y = 4. Banyaknya cara
Bagi bebeknya ke setiap kandang.
mengacak = 4! / (0! 4!) = 1
Diketahui ada 6 bebek dengan 3 kan-
T = 1 -> x = 5, y = 2. Banyaknya cara
dang tesedia, dimana setiap kandang
mengacak = 7! / (5! 2!) = 21
setidaknya terisi 1 bebek.
T = 2 -> x = 10, y = 0. Banyaknya cara
Kn merepresentasikan Kandang ke-n
mengacak = 10! / (10! 0!) = 1
An merepresentasikan bebek ke-n.
Banyaknya kemungkinan urutan mi­
K1 K2 K3
num = Banyaknya cara mengacak =
A1 A2 A3
1 + 21 + 1 = 23
A4
A5 12. C. 11 orang
A6
Pembahasan:
---------+
Satu orang tahanan bisa minum be-
411
berapa tetes dari beberapa anggur
Maka maksimum bebek dalam 1
sekaligus dalam satu waktu.
kandang ada 4.
Semua orang tahanan yang disuruh
minum harus minum secara serentak

170
karena tidak akan sempat menunggu 15. B. Selain apatis, mungkin juga ber-
tahanan mati terlebih dahulu. seri-seri
Solusinya adalah sebagai berikut: Pembahasan:
a. 1 orang minum anggur sepan- Pertama, kita bikin dahulu pemeta-
jang interval 210 secara bergan- annya
tian (minum anggur nomor 1 Hujan Tidak hujan
sampai 210, jangan minum ang- Berseri-seri Pemurung Biasa saja
gur nomor 210 + 1 sampai 2019). Biasa saja Apatis Berseri seri
Pemurung Pemarah Biasa saja
Jika dia mati, berarti anggur be-
Pemarah Apatis Biasa saja
racun ada di interval dia. Jika ti- Apatis pemurung Berseri-seri
dak, ada di interval lainnya.
b. 1 orang lain minum anggur se- Malam -1:
panjang interval 29 secara ber- dari tabel, kita tahu yang membuat
gantian (minum anggur nomor murung ketika hujan adalah Apatis
1 sampai 29, minum lagi anggur dan Berseri-seri.
nomor 210 + 1 sampai 210 + 29 Malam -2:
dan seterusnya). Jika tidak, ada dari tabel, kita tahu yang membuat
di interval lainnya. Apatis ketika hujan adalah Biasa Saja
c. 1 orang lain minum anggur se- dan Pemarah, namun tidak ada yang
panjang interval 28 secara ber- membuat Berseri-seri ketika hujan.
gantian. dan seterusnya sampai Malam -3:
interval 20 secara bergantian. dari tabel, kita tahu yang membuat
Jika diperhatikan, konfigurasi Pemarah ketika hujan adalah Pemu-
cara meminum membentuk bi- rung.
ner. Total diperlukan 11 orang. Malam -4:
dari tabel, kita tahu yang membuat
13. E. Apatis
Pemurung ketika hujan adalah Apatis
Pembahasan
dan Berseri-Seri.
(Biasa - Biasa saja) -> (Apatis) -> (Pe-
Jadi, Ani mungkin Apatis atau Ber-
murung) -> (Biasa - biasa saja) ->
seri-seri pada malam 4 hari sebelum-
(Apatis)
nya.
14. B. Pemurung
16. E. Selain biasa saja mungkin juga
Pembahasan:
pemarah
( Berseri - seri) -> (Pemurung) -> (Pe-
marah) -> (Apatis) -> (Pemurung) -> Pembahasan:
(Pemarah) -> (Apatis) -> (Pemurung) Pertama, kita bikin dahulu pemeta-
annya:

171
Hujan Tidak hujan Malam -1:
Berseri-seri Pemurung Biasa saja dari tabel, kita tahu yang membuat
Biasa saja Apatis Berseri seri murung ketika hujan adalah Apatis
Pemurung Pemarah Biasa saja dan Berseri-seri.
Pemarah Apatis Biasa saja
Apatis pemurung Berseri - seri Malam -2:
dari tabel, kita tahu yang membuat
Malam -1: Apatis ketika hujan adalah Biasa Saja
dari tabel, kita tahu yang membuat dan Pemarah, namun tidak ada yang
murung ketika hujan adalah Apatis membuat Berseri-seri ketika hujan.
dan Berseri-seri. Malam -3:
Malam -2: dari tabel, kita tahu yang membuat
dari tabel, kita tahu yang membuat Pemarah ketika hujan adalah Pemu-
Apatis ketika hujan adalah Biasa Saja rung.
dan Pemarah, namun tidak ada yang Malam -4:
membuat Berseri-seri ketika hujan. dari tabel, kita tahu yang membuat
Malam -3: Pemurung ketika hujan adalah Apatis
dari tabel, kita tahu yang membuat dan Berseri-Seri.
Pemarah ketika hujan adalah Pemu- jadi suasana hati pada 4 hari yang
rung. lalu adalah pasti pemurung.
Malam -4: 18. D. 6.
dari tabel, kita tahu yang membuat
Pembahasan:
Pemurung ketika hujan adalah Apatis
Penjelasan dari gambar katak diso-
dan Berseri-Seri.
al adalah untuk kotak ke 2, 4 dan 5
Jadi selain biasa-biasa saja mungkin
sudah menjadi jalur yang pasti, jadi
juga pemarah.
tidak ada perbedaan dengan jalur
17. A. Pasti pemurung 17 yang lain, sehingga hitung kotak 1
Pembahasan: dan 3.
Pertama, kita bikin dahulu pemeta- Kotak 1 ada 2 cara.
annya: Kotak 3 ada 3 cara.
Hujan Tidak hujan Jadi total ada 6 cara.
Berseri-seri Pemurung Biasa saja
Biasa saja Apatis Berseri seri 19. D. 6.
Pemurung Pemarah Biasa saja Pembahasan:
Pemarah Apatis Biasa saja Caranya adalah cari bilangan prima
Apatis pemurung Berseri - seri
dari 12 sampai 30: 13, 17, 19 , 23, 29
= 5 ditambah 1 jadinya 6.

172
20. D. 16. Jadi pilihlah rentang yang terbesar
Hitung menggunakan inklusi-exklusi jika banyaknya bilangan adalah ganjil
= (30/2 + 30/3 + 30/5 + 30/7 + maka terserah bilang terlalu kecil
30/11) - (30/6 + 30/10 + 30/14 + ataupun terlalu besar, karena rentang
30/22+30/15+30/21+30/30) = 37- nya juga sama.
15 = 22. Maka akan diperoleh hasil menjadi
22-5-1 = 16. terlalu kecil atau terlalu besar.

21. A. Terlalu kecil atau terlalu besar.


Pembahasan: 22. A. Terlalu kecil atau terlalu besar.
Caranya adalah di saat banyaknya Pembahasan:
bilangan yang mungkin adalah nilai dari (1+8)/2 =4.5 dan jika tidak
genap, maka kita pilih rentang yang dalam bilangan bulat maka Pak Da-
terbesar. rusallam akan membulatkannya, bisa
Rentang saat ini adalah: 1, 2, 3, 4, 5, pembulatan keatas bisa pembulatan
6, 7, 8. kebawah (terserah Pak Darusallam).
maka nilai dari (1+8)/2 =4.5 dan jika Jika Pak Darusallam menebak 4 dan
tidak dalam bilangan bulat maka Pak jika kita bilang terlalu besar maka
Darusallam akan membulatkannya, bilangan yang mungkin nya menjadi
bisa pembulatan keatas bisa pem- 1, 2, 3 --> tidak baik (cuma ada 3
bulatan kebawah (terserah Pak Daru- bilangan).
sallam). Jika Pak Darusallam menebak 4 dan
Jika Pak Darusallam menebak 4 kita bilang terlalu kecil maka bilangan
dan jika kita bilang terlalu besar yang mungkin menjadi 5, 6, 7, 8 ---->
maka bilangan yang mungkin nya baik (ada 4 bilangan).
menjadi1, 2, 3 ---> tidak baik (cuma Jika Pak Darusallam menebak 5
ada 3 bilangan). dan kita bilang terlalu besar maka
Jika Pak Darusallam menebak 4 dan bilangan yang mungkin menjadi 1, 2,
kita bilang terlalu kecil maka bilangan 3, 4 ----> baik (ada 4 bilangan).
yang mungkinnya menjadi 5, 6, 7, 8 Jika Pak Darusallam menebak 5 dan
----> baik (ada 4 bilangan). kita bilang terlalu kecil maka bilangan
Jika Pak Darusallam menebak 5 yang mungkin menjadi 6, 7, 8 ---->
dan kita bilang terlalu besar maka tidak baik (ada 3 bilangan)
bilangan yang mungkinnya menjadi Jadi pilihlah rentang yang terbesar
1, 2, 3, 4 ----> baik (ada 4 bilangan). jika banyaknya bilangan adalah ganjil
Jika Pak Darusallam menebak 5 dan maka terserah bilang terlalu kecil
kita bilang terlalu kecil maka bilangan ataupun terlalu besar, karena rentang
yang mungkinnya menjadi 6, 7, 8 ---- nya juga sama.
--> tidak baik (ada 3 bilangan).

173
23. A. 5, 6, 7, 8 Rentang saat ini adalah: 1, 2, 3, 4,
Pembahasan: 5, 6, 7, 8 maka nilai dari (1+8)/2 =
Caranya adalah disaat banyaknya 4.5 dan jika tidak dalam bilangan
bilangan yang mungkin adalah bulat maka Pak Darusallam akan
genap, maka kita pilih rentang yang membulatkannya, bisa pembulatan
terbesar, rentang saat ini adalah: 1, 2, ke atas bisa pembulatan ke bawah
3, 4, 5, 6, 7, 8 . (terserah Pak Darusallam).
Jika Pak Darusallam menebak 4 dan Jika Pak Darusallam menebak 4 dan
kita bilang terlalu kecil maka bilangan jika kita bilang terlalu besar maka
yang mungkin menjadi 5, 6, 7, 8 ----> bilangan yang mungkin nya menjadi
baik (ada 4 bilangan). 1, 2, 3 --> tidak baik (cuma ada 3
bilangan).
24. A. 3 Jika Pak Darusallam menebak 4 dan
Pembahasan: kita bilang terlalu kecil maka bilangan
Caranya adalah disaat banyaknya yang mungkin menjadi 5, 6, 7, 8 ---->
bilangan yang mungkin adalah baik (ada 4 bilangan).
genap, maka kita pilih rentang yang Jika Pak Darusallam menebak 5
terbesar, rentang saat ini adalah: 1, 2, dan kita bilang terlalu besar maka
3, 4, 5, 6, 7, 8 . bilangan yang mungkin menjadi 1, 2,
Jika Pak Darusallam menebak 4 3, 4 ----> baik (ada 4 bilangan)
dan jika kita bilang terlalu besar Jika Pak Darusallam menebak 5 dan
maka bilangan yang mungkin nya kita bilang terlalu kecil maka bilangan
menjadi1, 2, 3, jadi ada 3 bilangan. yang mungkin menjadi 6, 7, 8 ---->
tidak baik (ada 3 bilangan)
25. B. Terlalu kecil atau terlalu besar
Jadi pilihlah rentang yang terbesar
Pembahasan:
jika banyaknya bilangan adalah
Karena Pak Darusallam mencari bila­
ganjil maka terserah bilang terlalu
ngannya menggunakan cara binnary
kecil ataupun terlalu besar, karena
search maka rasanya pasti ketemu,
rentangnya juga sama.
tetapi kita punya keunggulan yaitu
angka yang kita pikirkan bisa kita 26. A. Complete search
ubah ubah terus dengan syarat Pembahasan:
masih ada dalam jangkauan dan tak Dari pernyataan deksripsi yang telah
melanggar peraturan. dijabarkan maka dapat diselesakan
Caranya adalah disaat banyaknya menggunakan complete search.
bilangan yang mungkin adalah Salah satu cara yang bisa digunakan
genap, maka kita pilih rentang yang adalah menggunakan rekursi,
terbesar. pada setiap lantai, coba semua
kemungkinan pilihan yang tersedia,

174
yaitu kabur melewati penjaga atau total waktu dengan dengan sm - s0d
mengalahkan penjaga, lalu cari nilai k[i]-l[i] terbesar (bisa dilihat
jumlah waktu minimal. Kompleksitas bahwa ini sama dengan menukar k[i]
dari solusi ini adalah O(2N). dengan l[i]). Kompleksitas dari solusi
ini adalah o(nlogn).
27. C. Dynamic programming
Pembahasan: 30. A. O(n log n).
Soal ini diselesaikan menggunakan Pembahasan:
dynamic programming (DP). State Diselesaikan dengan bantuan priority
dari DP tersebut adalah (posisi lantai, queue. Dengan solusi simpan k[i] -
banyak lantai yang mana penjaganya l[i] dalam priority queue. Untuk seti-
sudah dikalahkan). Untuk mengisi ap lantai ke-i, selama s0d < p[i], maka
nilai dari DP, cari hasil minimum dari cari nilai terbesar dari priority queue
kedua kemungkinan pilihan untuk tersebut dan kurangi total waktu de-
setiap lantai. Kompleksitas dari solusi ngan nilai tersebut.
ini adalah O(N2). Lakukan hal yang sama selama s0d
saat pak daru berada di lantai n ma-
28. A. O(N)
sih lebih kecil dari sm. Kompleksitas
Pembahasan: dari solusi ini adalah o(nlogn).
Karena stamina dari Pak Daru, sang
makhluk jahat, dan para penjaga ti-
dak perlu diperhatikan, maka untuk
setiap lantai, pilih nilai yang paling
minimum di antara L[i] dan K[i]. Kom-
pleksitas dari solusi ini adalah O(N).

29. A. O(n log n).


Pembahasan:
Menggunaan bantuan sorting. Un­
tuk setiap lantai ke-i, jika nilai l[i]
k[i], maka l[i] pasti dipilih. Selain itu,
anggap awalnya kita memilih k[i].
Misal s0d menyatakan stamina pak
daru saat ini. Jika saat selesai s0d
< sm, maka kita harus mengganti
beberapa k[i] dengan l[i]. Dalam
memilih yang diganti, prioritaskan
yang memiliki nilai k[i] - l[i] paling
besar. Hal ini bisa dicapai dengan
bantuan sorting. Selanjutnya, kurangi

175
X < y< z.
BAB 2 ARITMETIKA 1 < 2 < 8 =11 (benar).
1 <3 < 7 =11 (benar).
OSN Kabupaten
1 <4 <6 =11 (benar).
1. B. 420 2 <3 <6 =11 (benar).
Pembahasan: 2 <4 <5 =11 (benar).
7!/3!(7 - 3 )! = 35 1 <5 <5 = 11(salah).
4!/2!(4 - 2 )! = 6 Jadi diperoleh hasil 5.
2!/1!(2 - 1)! = 2 4. B. 10
=35*6*2 = 420
Pembahasan:
2. C. 30 Diketahui:
Pembahasan: X+y+z = 11
X + y + z = 11, dan x, y, dan z berbe- Karena x<=y<=z, kemungkinan nilai
da semua: terbesar adalah 9. Kenapa? Karena
Kemungkinan bilangan yang meme- ketiga bilangan harus bernilai bulat
nuhi x, y, z (urut dari kecil ke besar). positif. Jadi, dari kemungkinan ter-
Ambil salah satu bilangan (misal x) buruk, x=1, y=1, dan z=9, sehingga
kemudian cari bilangan y yang lebih 1+1+9 = 11.
besar dari x dan seterusnya sampai z, Lalu, berikut adalah beberapa ke-
cari bilangan yang lebih besar dari y. mungkinannya:
Lalu kita permutasi ketiga pasangan 1+1+9 =11
yang ditemukan. 1+2+8 = 11
Untuk yang x = 1: 1+3+7 = 11
1, 2, 8 ( 3! = 6 ). 1+4+6 = 11
1, 3, 7 ( 3! = 6 ). 1+5+5 = 11
1, 4, 6 ( 3! = 6 ). 2+2+7 = 11
Untuk yang x = 2: 2+3+6 = 11
2, 3, 6 ( 3! = 6 ) 2+4+5 = 11
2, 4, 5 ( 3! = 6 ) 3+3+5 = 11
Untuk yang x = 3: 3+4+4 = 11
(tidak ada). Jadi, jawabannya adalah 10.
Jadi, diperoleh: 5. C. 3w + x+ y + z
3! X 5 = 6 x 5 = 30.
Pembahasan:
3. A. 5 Diketahui:
Diketahui: Jika, w=1 , x=2, y=3, z=4
X+y+z=11 dan x<y<z=11. maka dapat diketahui:
Maka kita bisa mencobanya:

176
a. wx + wy + wz = 1x2+1x3+1x4=9 8. E. 1
b. (x+y+z)w = (2+3+4)x1 = 9 Pembahasan:
c. 3w + x + y + z = 3x1+2+3+4=12 1012 mod 13
d. wx+w(y+z) = (1x2) + 1x(3+4) = 9 = (102)6 mod 13
e. w(x+y) + wz = 1x(2+3) + (1x4)= 9 = (100)6 mod 13
dari hasil a, b, c, d, e hasil yang tidak = (100 mod 13) 6 mod 13
sama adalah 12, sehingga diperoleh = 96 mod 13
persamaan yang berbeda adalah 3w = (92)3 mod 13
+ x + y + z. = (81)3 mod 13
= (81 mod 13)3 mod 13
6. A. 7,5 km per jam
= 36 mod 13
Pembahasan:
= (33)2 mod 13
Diketahui:
= (27)2 mod 13
Rumus kecepatan (V) adalah jarak (S)
= (27 mod 13) 2 mod 13
dibagi waktu (t).
= 12 mod 13
S = V / t.
=1
Anggap jarak dari rumah ke sekolah
adalah X km. Waktu dari rumah ke 9. C. 12
sekolah adalah X / 10. Pembahasan:
Waktu dari sekolah ke rumah adalah 12! Mod 13
X / 30. = (1.2.3.4.5.6.7.8.9.10.11.12) mod 13
Total waktu = X / 10 + X / 30 = 4X / =(1.2.3.4.5.6.(-6)(-5)(-4)(-3)(-2)(-1)) mod 13.
30. =(1.2.3.4.5.6)2 mod 13.
Kecepatan gabungan = X / (4X/30) = = (1.(2.6).(3.5).4)2 mod 13.
30/4 = 7,5 km per jam. = (1.12.15.4)2 mod 13.
= (1.(-1).2.4)2 mod 13.
7. C. 49
= (-8)2 mod 13.
Setiap 74 terjadi perulangan pada
= 64 mod 13.
angka paling belakang.
= 12.
71=7
72=49 10. E. 3584
73=343
Pembahasan:
74=2401
Kita mencari x yang tidak habis mem-
75=16.807
bagi 10.
Maka,
Maka diperoleh faktorisasi prima dari
450 mod 4 =2
setiap bilangan:
Jadi kita hanya perlu mencari 72 mod
10! = 1.2.3.4.5.6.7.8.9.10
100.
= 28.35.52.7
72 mod 100 = 49.

177
Dianalisis satu-satu dari pilihan gan­ 13. B. 12
da yang tersedia: Pembahasan:
A. 14175 = 34.52.7 Perhatikan pola 7x mod 100:
B. 2268 = 22.34.7 71 mod 100 = 7
C. 1575 = 32.52.7 72 mod 100 = 49
D. 2025 = 34.52 73 mod 100 = 43
E. 3584 = 297 74 mod 100 = 1
Terlihat bahwa 3548 tidak habis 75 mod 100 = 7
membagi 10!. 76 mod 100 = 49
77 mod 100 = 43
11. D. 12
78 mod 100 = 1
Pembahasan:
Dari sini terlihat pola setiap 4 suku.
Diketahui:
Sehingga 77.777.777 mod 1000 =
Tangki yang terisi akan habis dalam
77.777.777 mod 4 mod 100 = 71
8 jam,
mod 100 = 7.
Maka dihitung tangki yang isinya 6x8
Lalu karena 5 dipangkatkan berapa
= 48 “jam keran”,
pun, satuannya selalu 5, maka
Jika punya 4 keran, berarti waktu
55.555.555 mod 10 = 5.
yang diperlukan adalah 48 “jam ke-
Sehingga (77.777.777 mod 100) +
ran” / 4 keran.
55.555.555 mod 10 = 12.
= 12 jam.
14. E. 37
12. B. 4
Pembahasan:
Pembahasan:
Cara 1: dengan menumerasi hari di
Diketahui panjang sisa pemotongan
mana mereka mengunjungi kota
kabel tersebut berturut-turut:
A. Lalu melihat hari dimana mereka
100, 50, 25, 12.5, 6, 25, dst...
bertiga bertemu. Misalkan setiap
Sambungan ke 0: 100 5 = 500
bilangan x di bawah ini adalah x hari
Sambungan ke 1: 50 5 - 25= 475
setelah hari ini.
Sambungan ke 2: 25 5 - 25 = 100
Ali: 7, 17, 27, 37, 47, 57, dan seterus-
Sambungan ke 3: 12.5 5 - 25 = 37.5
nya.
Sambungan ke 4: 6.25 5 -25 = 6.25
Bahar: 1, 7, 13, 19, 25, 31, 37, 43, 49,
Sambungan ke 5: 3.125 5 - 25 = -9.375.
dan seterusnya ,
Karena pada sambungan ke 5 nilai
Cholil: 9, 23, 37, 51, 65, dan seterus-
penjualan sambungan kabel bernilai
nya.
minus (-).
Perhatikan bahwa mereka bertiga
Maka sambungan cukup dilakukan
mengunjungi kota a bersamaan di 37
sampai sambungan ke-4 yaitu 6,25.
hari setelah hari ini.

178
15. D . Halte 4 dan halte 7 17. B. 130
Pembahasan: Pembahasan:
Halte 3 dan halte 6 tidak ada yang Faktorisasi prima dari bilangan
turun maka kemungkinan halte di 10=21x51, yang menyatakan bahwa
mana M turun adalah halte 2, 4, 5, 7, angka puluhan/banyaknya angka nol
misal M turun di halte 2 maka J turun di depan suatu bilangan dipengaruhi
di halte 4. oleh angka 5 dan suatu angka genap.
Jika M turun di halte 4 maka J tidak Perhatikan deret 12 x 22 x 33 x 44 x 55 x
mungkin turun D halte 6 (liat infor­ ... X 3030, karena kita tahu bahwa ang-
masi). ka genap lebih banyak daripada ang-
Jika M turun di halte 5 maka J turun ka 5, maka hitung hanya angka yang
di halte 7. merupakan kelipatan 5.
Maka kemungkinan halte di mana J Didapat 5, 10, 15, 20, 25 dan 30 ada-
akan turun adalah halte 4 dan 7. lah angka yang merupakan kelipatan
dari 5 dari deret tersebut. Perhatikan:
16. E. 40
55 memiliki lima angka 5, 1010=210x510
Pembahasan: memiliki sepuluh angka 5, 15,
Sederhanakan bentuk modulus. 1515=315x515 memiliki lima belas
11 100 mod 41 = (112 ) 50 mod 41 angka 5, 2020=420x520=240x520 me-
= (121) 50 mod 41 miliki 20 angka 5, 2525=(52)25=550
Aplikasi modulus pada bilangan 121, memiliki lima puluh angka 5, dan
Dikarenakan 21/41 = 3 dan 41 x 3 = 3030=(2x5x3)30=230x530x330 terdapat
123, tiga puluh angka 5.
Sehingga Jumlahkan seluruh populasi angka
121 mod 41 = (121 -123) mod 41 = 5, maka diperoleh 5+10+15+­ 20+­
(-2) mod 41, sehingga diperoleh 50+30=130. Dari sini didapat bahwa
= (121) 50 mod 41 = (-2) 50 mod 41 = bilangan terbesar n untuk 12 x 22 x 33
(-2.2) 25 mod 41. x 44 x 55 x ... X 3030 dapat dibagi 10n
= (4) 25 mod 41 = (45)5 mod 41 = adalah n=130.
(1024)5 mod 41.
Aplikasi modulus pada bilangan 18. D. 4
1024, didapat 1024 mod 41 = 40 Pembahasan:
mod 41 = (-1) mod 31 , sehingga: Rumus penjumlahan pembagi suatu
(-1) 5 mod 41 = -1 mod 41 bilangan adalah
= 40 mod 41.
Dan diperoleh bahwa
11100 mod 41 = 40.
Adalah bilangan eksponen untuk
pangkat prima p_k dalam suatu bi-

179
langan tersebut. Jika diambil dari pi- Dan sisanya mengundurkan diri se­
lihan ganda, terdapat angka satuan hingga total power yang dapat dike­
yang berbeda-beda tetapi digit lain- luarkan seluruh pekerja menjadi 0.8 x
nya yang sama. Sehingga kita ambil 10 = 8 power per hari.
Karena dibutuhkan 1200 power maka
mod 10 pekerja dapat menyelesaikannya de-
ngan 1200 / 8 = 150 hari.
Faktorisasi prima dari 6075=52x35, Maka total waktu pekerjaan = 40 +
sehingga didapat (1+5+52) 150 + 1 (berkabung) = 191.
(1+3+32+33+34+35) { mod } 10.
20. A. 99/100
Evaluasikan:
((1+5+52)(1+3+32+33+34+35)) Pembahasan:
mod 10. 1/2 + 1/6 + 1/12 + 1/20 + ... + 1/9900
=(((1+5+52) mod 10) Dijumlahkan satu persatu nanti kete-
((1+3+32+33+34+35) mod 10)) mod mu polanya,
10. 1/2 + 1/6 = 2/3 (saat mencapai 1/6
=(((1+5+5) mod 10)((1+3+9+7+1+3) hasilnya 2/3, 2 dikali 3 = 6).
mod 10)) mod 10. 1/2 + 1/6 + 1/12 = 2/3 + 1/12 = 3/4
=((11 mod 10)(24 mod 10)) mod 10 (saat mencapai 1/12 hasilnya 3/4, 3
=(1x4) mod 10 4 mod 10. dikali 4 = 12).
= 4. 1/2 + 1/6 + 1/12 + 1/20 = 3/4 + 1/20
= 4/5 (saat mencapai 1/20 hasilnya
19. D. 191 4/5, 4 dikali 5 = 20).
Pembahasan: Intinya hasil dari penjumlahan terse-
Diketahui: but diketahui sebagai berikut:
1 orang pekerja memiliki power = 1, hasil dari penjumlahan pecahan ter-
Jadi 20 pekerja akan mengeluarkan sebut, pembilang bernilai = penye-
20 power, dan but – 1.
Untuk mengerjakan dalam 100 hari, Hasil dari penjumlahan pecahan ter-
pekerja harus mengeluarkan seba- sebut, apabila pembilang dan penye-
nyak 20 x 100 = 2000 power but dikali, hasilnya adalah penyebut
Setelah 40 hari, 5 orang pekerja me­ dari pecahan terakhir yang dijumlah.
ninggal, maka power yang telah Dari fakta diatas diketahui pecah-
dikeluarkan adalah 40x20 =800 po­ an terakhir yang dijumlah adalah
wer, sehingga pekerja membu­tuh­kan 1/9900, hasil dari penjumlahan deret
1200 power lagi. tersebut adalah 99/100 karena:
Karena berkabung, maka 10 orang Hasil dari penjumlahan pecahan ter-
powernya menurun 20% menjadi 0.8 sebut, pembilang bernilai = penye-
but - 1

180
99 = 100 - 1 22. D. Pak Birla
Hasil dari penjumlahan pecahan Pembahasan:
tersebut, apabila pembilang dan Diketahui:
penyebut dikali, hasilnya adalah Pertandingan 1: Pak Birla melawan
penyebut dari pecahan terakhir yang Ibu Birla -- Pak Birla menang.
dijumlah: Pertandingan 2: Pak Tata melawan
99 * 100 = 9900. Ibu Tata -- Ibu Tata menang.
Sehingga diperoleh hasil 99/100. Pertandingan 3: Pak Birla melawan
Ibu Tata -- Pak Birla menang.
21. A. 9
Jadi yang tidak pernah kalah adalah
Pembahasan:
Pak Birla.
Diketahui:
Password terdiri dari 5 angka, 23. B. (n(n+1)/2)2
Angka ke 4 > angka ke 2 dengan se- Pembahasan:
lisih 4. Dengan mencari pola kita bisa mene-
Angka ke 3 < angka ke 2 selisih 3. mukan banyaknya persegi panjang
Angka 1 = 3 x angka terakhir. untuk soal ini:
3 pasang angka jumlahnya 11. Persegi 1 x 1 = 1 persegi.
Dari kalimat syarat 1-4 maka angka Persegi 2 x 2: 9 persegi.
yang mungkin adalah sebagai beri- 1 x 1 = 4.
kut: 2 x 1, 1 x 2 = 4.
Abcde 2 x 2 = 1, total = 9 persegi.
33041 Persegi 3 x 3: 36 persegi.
64152 1 x 1 = 9.
95263 2 x 1, 1 x 2 = 12.
637 2 x 2 = 4.
748 3 x 1, 1 x 3 = 6.
859 2 x 3, 3 x 2 = 4.
Pada kalimat syarat ke 5 ada 3 pa- 3 x 3 = 1, total = 36 persegi.
sang angka yang berjumlah 11. Ang- Dari sini bisa dilihat bahwa pola =
ka pembentuk 11 antara lain: 2+9 , (n*(n+1) / 2)2.
3+8, 4+7, 5+6 sehingga pasti terda-
pat angka kembar dalam password 24. B. 30
itu agar bisa mendapat 3 pasang. Tarik garis dari ujung tali busur menuju
Maka tugas kita hanya mencoba- titik pusat lingkaran, panjangnya
coba kedelapan angka tersebut dan r ( jari-jari lingkaran). Lalu panjang
akhirnya diperoleh 6 5 2 9 2. garis dari titik pusat lingkaran sampai
Sehingga diperoleh hasil atau angka titik tengah tali busur panjangnya 24
ke 4 adalah angka 9. - r (karena tinggi air dikurangi r).

181
Dari sini terbentuklah segitiga siku- Tetapi ada 2 balon yang sama war-
siku dengan kakinya 24 - r dan 12, nanya.
dengan sisi miring r. Maka menggunakan rumus permu-
tasi:
n!/(n-r)! =5!/(5-3)! = 60.

27. E. 23
Pembahasan:
Diketahui:
5 bilangan, yaitu 11, 13, 17, 19, dan
Lalu didapat jari-jarinya: 23.
R2 = 122 + (24 - r)2. Anggapan ada 2 bilangan a sama b, a
R2 = 144 + 576 – 48r + r2. > b; a > 0; b > 0;
0 = 720 - 48r. Misal a = b + k, dengan k > 0; b + k
48r = 720. > b ( jelas)
R = 15. Tujuannya adalah (b + k)*b
Karena jari-jarinya 15, berarti diame- Ada 2 kasus:
ternya 30. Kurangi b + k dengan x atau kurangi
b dengan x.
25. A. 8065 1. Kurangi bilangan yang besar de­
Pembahasan: ngan x. (b + k - x)*b = b2 + bk - bx
Untuk mencari berapa angka nol di- 2. Kurangi bilangan yg kecil dengan
belakang n! Maka menggunakan: x. (b + k)*(b - x) = b^2 + bk -bx - kx.
N/5 + n/25 + n/125 ... Terlihat perbedaanya, jika yang diku-
Floor(n/5) + floor(n/25) + floor- rangi bilangan yg kecil, maka hasil-
(n/125) + floor(n/625) + floor- nya terdapat (- kx).
(n/3125) = 2013 Sehingga pilih bilangan yang lebih
625n/3125 + 125n/3125 + 25n/3125 besar yang dikurangi agar hasilnya
+ 5n/3125 + n/3125 = 2013 lebih maksimal.
781n/3125 = 2013 Sehingga diperoleh hasil 23.
781n-n /3125 = 2013 (dengan obser­
28. D. 60
vasi, harus mengurangi dengan n
supaya ketemu dengan nilai n). Pembahasan:
780n/3125 = 2013. Banyaknya faktor dari 144.000 yang
N = 8064 + 1 = 8065. juga merupakan faktor dari 450.000
adalah banyaknya faktor dari
26. B. 60 fpb(144.000, 450.000).
Pembahasan: 144.000 = 27 x 32 x 53.
Total balon ada 5, 450.000 = 24 x 32 x 55.

182
Dicari banyak faktor dari 24 x 32 x 53. 30. E. 2, 95
Bilangan dengan faktorisasi prima Pembahasan:
2a x 3y x 5y akan habis membagi Dalam satu hari:
24 x 32 x 53 apabila (0 <= a <= 4) C + b = 1/6 pekerjaan.
dan (0 <= b <= 2) dan (0 <= c <= A + b = 1/3 pekerjaan.
3). Jadi ada 5 kemungkinan untuk a, A + c = 1/5 pekerjaan.
3 kemungkinan untuk b, 4 ke­mung­ Kemudian, menggunakan eliminasi-
kinan untuk c, maka total kemung­ substitusi diperoleh:
kinan untuk kombinasi a, b, c, adalah A = 11/60.
5 x 3 x 4 = 60. B = 9/60.
Atau dengan seperti ini: C = 1/60.
Fpb(144.000, 450.000) = 24 x 32 x 53. Pada hari pertama, mereka menger-
Banyaknya faktor dari fpb(144.000, jakan bersama-sama. A + b + c =
450.000) = (4+1) x (2+1) x (3+1) = 60. 21/60 = 7/20.
Hari-hari selanjutnya c tidak dapat
29. C. 2
melanjutkan pekerjaan, tinggal a dan
Pembahasan:
b.
Hint: 1000000 mod 13 = 1.
Sisa pekerjaan yang belum tersele-
Dari hint tersebut maka diperoleh
saikan 13/20. A dan b dapat menye-
perhitungan:
lesaikan pekerjaan selama 3 hari.
353653664176826832176826834
Jadi, 13/20 * 3 = 39/20 = 1, 95 hari.
mod 13.
Hari yang dibutuhkan untuk memba­
= (353653664176826832176 x
ngun kandang ayam tersebut (sejak
1000000 + 826834) mod 13.
awal membangun) = 1 + 1,95
= (353653664176826832176 +
= 2,95.
826834) mod 13.
= (353653664176826 x 1000000 +
832176 + 826834) mod 13. OSN TINGKAT PROVINSI
= (353653664 x 1000000 + 832176 +
1. A. 2
826834+176826) mod 13.
= (353 x 1000000 + 832176 + Pembahasan:
826834+176826+653664) mod 13 N mod 13 = 5.
Sehingga diperoleh: N mod 18 = 3.
353653664176826832176826834 13a + 5 = 18b + 3.
mod 13. a = 4.
= (353 + 653664 + 176826 + 832176 b = 3.
+ 826834) mod 13. 13(4) + 5 = 57.
= 2489853 mod 13. N mod 11.
= 2. = 57 mod 11.

183
= 2 mod 11. 5. E. 360
= 2. Pembahasan:
ab = 12 = 22 × 3.
2. B. 124
cde = 864/12 = 72 = 23 × 32.
Pembahasan:
banyaknya cara untuk ab:
Banyaknya digit 0 beruntun di akhir
Menentukan distribusi faktor 2: kom-
N! Dipengaruhi oleh banyaknya fak-
binasi (2 + 2 - 1) C (2 - 1) = 3C1 = 3.
tor 5 di N!.
Menentukan distribusi faktor 3: kom-
Banyaknya faktor 5: 500/5 + 500/25
binasi (1 + 2 - 1) C (2 - 1) = 2C1 = 2.
+ 500/125 = 100 + 20 + 4 = 124.
Maka banyaknya cara yg mungkin
3. C. 1/16 untuk ab = 3 × 2 = 6.
Pembahasan: Banyaknya cara untuk cde:
Banyaknya kemungkinan hasil: 43 = Menentukan distribusi faktor 2: kom-
64. binasi (3 + 3 - 1) C (3 - 1) = 5C2 = 10.
Banyaknya kemungkinan menang: 4 Menentukan distribusi faktor 3: kom-
(AAA, BBB, CCC, DDD). binasi (2 + 3 - 1) C (3 - 1) = 4C2 = 6.
Maka peluang menang = 4 / 64 = 1 Maka banyaknya cara yg mungkin
/ 16. untuk cde = 10 × 6 = 60
Banyaknya kemungkinan nilai a, b, c,
4. D. 720 d, e: 6 × 60 = 360
Pembahasan:
6. B. 114688
Cara mencari 4, 2, 1 dengan cara bru­
teforce dapat diminimalisasi de­ngan Pembahasan:
cara memfaktorkan angka 30 yaitu Sn = a(rn -1) / r – 1.
21 x 31 x 51. 14329 = a(211 - 1) / 2 – 1.
Angka-angka 2, 3, dan 5 dapat dibuat 14329 =2047 * a / 2.
kombinasi yang menghasilkan (a+1) a = 14329 / 2047.
+ (b+1) + (c+1) = 30, dalam kasus ini a= 7.
karena seluruh angka berpangkat 1 U15 = arn – 1.
maka tidak ada yang harus kita coba U15 = 7*214.
lagi. Hanya ada 1 kemungkinan yaitu U15 = 114688.
(a+1) = 2, a = 1. 7. C. 56
(b+1) = 3, b = 2.
Pembahasan:
(c+1) = 4, c = 4.
Berdasarkan informasi tersebut da-
Untuk mendapatkan angka terkecil,
pat diketahui x ganjil, y genap, dan
maka angka terbesar harus dipang­
z genap.
kat­kan ke basis terkecil, yaitu
x(x+1) > 20, maka x = 5 atau x = 7
24 x 32 x 51 = 720.

184
Kasus x = 5 => xy < 50 => y < 10, Pada detik ke-0, terdapat 1 juta bakteri.
maka 1 < y < 9. Pada detik ke-1, terdapat 2(1) + 1 = 2
x + y + z < 17. + 1 juta bakteri.
y + z < 12. Pada detik ke-2, terdapat 2(2+1) + 1
Nilai y + z terbesar yang mungkin: = 22 + 2 + 1 juta bakteri.
10, maka x(y + z) = 50. Pada detik ke-3, terdapat 2(22 + 2 +
Kasus x = 7 => xy < 50 => y < 7, 1) + 1 = 23 + 22 + 2 + 1 juta bakteri
maka 1 < y < 7. Pada detik ke-4, terdapat 2(23 + 22
x + y + z < 17. + 2 + 1) + 1 = 24 + 23 + 22 + 2 + 1
y + z < 10. juta bakteri.
nilai y + z terbesar yang mungkin: 8, Sampai detik 14,
maka x(y + z) = 56. Pada detik ke-14, terdapat 214 +...+
Nilai maksimal = 56. 23 + 22 + 2 + 1 juta bakteri.
Dengan deret geometri diperoleh
8. A. 6.75
pada detik ke 14 terdapat 215 - 1 =
Pembahasan: 32.767 juta bakteri.
Kecepatan mendaki = v1 = 1.5 km/
jam; 10. A. 33
Kecepatan menurun = v2 = 3*1.5 Pembahasan:
Km/Jam = 4.5 Km/Jam. Dari 100 org
Kecepatan mendaki = t1 = 3*t2. 40 org = kombinatorika;
Kecepatan menurun = t2. 40 org = teori bilangan;
t1 + t2 = 6 jam. 48 org = teka-teki;
3t2 + t2 = 6. 4 org = suka ketiganya;
4t2 = 6. 36 – x – z + 36 –x – y + 44 – y – z = 50
t2 = 1.5 jam. 66 – 2 (x + y + z) = 0.
t1 = 3 * 1.5 = 4.5 jam. X + y + z = 66/2 = 33.
S adalah jarak antara kaki bukit de-
11. C. 22
ngan puncak.
2S = v1 * t1 + v2 * t2. Pembahasan:
2S = 1.5 * 4.5 + 4.5 * 1.5. 36 – x – z = 14.
S = 1.5 * 4.5 = 6.75. ?X + z = 22.

9. A. 32.767. 12. D. 11

Pembahasan: Pembahasan:
Misalkan f(x) adalah banyaknya bak- 36 – x – z + x + y + z + 4 + 36 – x – y
teri pada detik ke x (dalam satuan + 44 – y – z +? = 100.
juta). 120 – (x + y + z) +? = 100.
F(x+1) = 2*f(x) + 1 120 – 31 +? = 100.
? = 131 – 120 = 11.

185
13. E. 17 Diperoleh x yang memenuhi adalah
Pembahasan: 17.
Diketahui:
14. C. 9
Semakin besar nilai x, maka semakin
Pembahasan:
kecil nilai F(x).
Diketahui:
Algoritma bekerja dengan mencoba
Jika dua semut kecil yang menye­
titik tengah selang. Jika hasil fungsi di
berang ke sisi lain, maka satu semut
titik tengah lebih besar dari -20552,
dapat menyeberang kembali untuk
maka pencarian dikurangi menjadi
mengembalikan perahu ke sisi awal.
selang kanan. Sebaliknya jika hasil
Jika satu semut besar yang menye­
fungsi di titik tengah lebih kecil dari
berang ke sisi lain, maka perahu tidak
-20552, maka pencarian dikurangi
dapat kembali kecuali sebelumnya di
menjadi selang kiri.
sisi lain tersebut terdapat semut kecil.
Selang pencarian 1<=x<=30, titik te-
Strategi yang digunakan adalah de­
ngah = (1+30) div 2 = 15.
ngan menyeberangkan dua semut
F(15) = 1 - 2(15) - 3(15)2 - 4(15)3 =
kecil yang akan menjadi alat untuk
-14204.
menyeberangkan satu semut besar.
Karena -14204 > -20552 pencarian
Caranya, seberangkan 2 semut kecil
diperkecil menjadi selang 16<= x
X dan Y. Kemudian 1 semut kecil X
<=30.
akan kembali membawa perahu agar
Selang pencarian 16<=x<=30, titik
semut besar dapat menyeberang.
tengah = (16+30) div 2 = 23.
Setelah semut besar menyeberang,
F(23) = 1 - 2(23) - 3(23)2 - 4(23)3 =
semut kecil Y akan mengembalikan
-50300.
perahu.
Karena -14204 < -20552 pencarian
Mula-mula:
diperkecil menjadi selang 16 <= x
Aaaa
<= 22.
Langkah 1:
Selang pencarian 16<=x<=22, titik
AA -----aa----->
tengah = (16+22) div 2 = 19.
AA aa
F(19) = 1 - 2(19) - 3(19)2 - 4(19)3 =
Langkah 2:
-28556.
AA <-----a------ a
Karena -28556 < -20552 pencarian
Aaa a
diperkecil menjadi selang 16 <= x
Langkah 3:
<= 8.
Aa ------A-----> a
Selang pencarian 16<=x<=18, titik
Aa Aa
tengah = (16+18) div 2 = 17.
Langkah 4:
F(17) = 1 - 2(17) - 3(17)2 - 4(17)3 =
Aa <-----a------ A
-20552.
Aaa A

186
Langkah 5: Ivan = bebek -> (Raki <> = Ammar
A ------aa-----> A -> Raki =bebek).
A Aaa Raki =bebek -> (Ammar = ayam be-
Langkah 6: bek).
A <-----a------ Aa Tidak ada kontradiksi, semua pernya-
Aa Aa taan di atas benar. Jadi, banyaknya
Langkah 7: bebek dalam permainan ini adalah 4.
A ------A-----> Aa
16. D. 2584
A aaa
Langkah 8: Pembahasan:
A <-----a------ AA Menggunakan dynamic programming
Aa AA dengan cara di mana:
Langkah 9: F(n, a)=f(n-1, a)+f(n-1, b)+f(n-1, c)
------aa-----> AA jumlah kombinasi di mana panjang
Aaaa string adalah n dan a adalah huruf
Jadi dapat disimpulkan: total ada 9 terakhir dalam string tersebut,
langkah Karena dicari substring tanpa me-
ngandung ab maka untuk f(n, b):
15. E. 4 F(n, b)=f(n-1, b)+f(n-1, c) jumlah
Pembahasan: kombinasi di mana panjang string
Jika Ammar adalah ayam: adalah n dan b adalah huruf terakhir
Ammar = ayam -> (Soko = ayam). dalam string tersebut.
Soko = ayam -> (Salvian = bebek). F(n, c)=f(n-1, a)+f(n-1, b)+f(n-1, c)
Salvian = bebek -> (Ivan = bebek jumlah kombinasi di mana panjang
ayam). string adalah n dan c adalah huruf
Ivan = ayam -> (Raki <> Ammar -> terakhir dalam string tersebut
Raki = bebek). Dengan masing-masing base case
Raki = bebek -> (Ammar = ayam be- F(1, a)=f(1, b)=f(1, c)=1.
bek). Jawabannya berada di f(8, a)+f(8,
Terjadi kontradiksi pada Ammar dan b)+f(8, c)= 2584.
Raki: “Padahal jika Ammar ayam dan
17. B. 25/31
Rakina mengatakan bahwa Ammar
ayam, maka Rakina harusnya ayam.”. Pembahasan:
Tapi jika Ammar adalah bebek: Jika suatu saat dipilih secara acak
Ammar = bebek -> (Soko = ayam see­kor hewan, kemungkinan terpilih
bebek). hewan berkaki empat atau pemakan
Soko = bebek -> (Salvian = bebek tumbuhan adalah 51/62, kemungkin­
ayam). an terpilih berkaki dua atau pemakan
Salvian = ayam -> (Ivan = bebek) tumbuhan adalah 11/62, Kaki 4 atau

187
Herbi = 51/62 = Kaki 4 + Herbi - Kaki 18. B. 34 kemungkinan
4 dan Herbi Kaki 2 atau Herbi = 11/62 Pembahasan:
= Kaki 2 + Herbi - Kaki 2 dan Herbi. Diketahui:
Dan tidak mungkin terpilih hewan Ada 11 Tim.
tanpa kaki yang pemakan segala Menang: 5 poin.
atau­pun pemakan tumbuhan yang Kalah: 0 poin.
berkaki. Seri: 1 poin.
Kaki 0 dan Omni = 0 -> artinya selu- Jumlah pertandingan ada 11C2 = 55
ruh Omni itu berkaki. pertandingan.
Kaki 2, 4 dan Herbi = 0 -> artinya se- Dalam pertandingan jika ada yang
luruh Herbi itu Tanpa Kaki. menang pasti juga ada yang kalah,
Jika di antara hewan tanpa kaki dipilih jadi kita cukup menghitung banyak-
secara acak, kemungkinan didapat­ nya pertandingan yang ada peme-
kan hewan yang pemakan tumbuhan nang dan yang kalah saja.
adalah 1/2. Misal x adalah banyaknya pertan-
Karena seluruh herbivora itu tidak dingan yang ada pemenang dan ka-
berkaki, maka: Herbi = 1/2 Tanpa Kaki lah,
Terakhir, peluang didapatkan hewan 100 <= 5*x+2*(55-x) <= 210.
tanpa kaki atau pemakan tumbuhan Kita akan mencari banyaknya x yang
adalah 1/31 2/62). bulat yang memenuhi persamaan tsb
Tanpa Kaki atau Herbi = Tanpa Kaki 5*55+2*0 = 275 (x).
+ Herbi - Tanpa Kaki dan Herbi 2/62 5*54+2*1 = 272 (x).
= Tanpa Kaki + Herbi - Tanpa Kaki 5*53+2*2 = 269 (x).
dan Herbi 2/62 = Tanpa Kaki + 1/2 5*33+2*22 = 209 (v).
Tanpa Kaki - 1/2 Tanpa Kaki 2/62 = 5*32+2*23 = 206 (v).
Tanpa Kaki x/62 menunjukkan bah- 5*31+2*24 = 203 (v).
wa jumlah seluruhnya adalah 62, kita 5*0+2*55 = 110 (v).
bisa abaikan ini sehingga total hewan 33-0+1 = 34 kemungkinan.
tanpa kaki adalah: 2.
Herbi = 1/2 Tanpa Kaki Herbi = 1/2 * 19. A. 54
2 Herbi = 1. Pembahasan:
Kaki 4 v Herbi = 51/62 = Kaki 4 + Banyak bilangan yang mengandung
Herbi -Kaki 4 dan Herbi 51 = Kaki 4 + angka 7 dari kelipatan 10 ada se-
1 + 0 (Dari pernyataan sebelumnya, banyak floor(177:10) =17 ditambah
kita dapatkan bahwa semua hewan dengan 1 buah angka satuan yaitu
herbivora dalam soal ini itu tanpa 7, sehingga totalnya ada 18. Yaitu
kaki) 50 = Kaki 4. (7, 17, 27, 37, 47, ...., 167, 177). Dari
Jadi peluang terpilihnya hewan ber­ 70-79 selain 77 ada sebanyak 9. Dari
kaki 4 adalah 50/62 = 25 / 31. 170-177 selain 177 ada sebanyak 7.

188
Total yang mengandung angka 7 ada 134 = s + a + b - sa - sb - ab + sab
sebanyak 18 + 9 + 7 = 34. 134 = 60 + 72 + 80 - sa - sb - 40 + sab.
Banyak bilangan kelipatan 7 ada se- -38 = -sa - sb + sab.
banyak floor (177:7)= 25. 3. Banyak suka sapi dan (bebek atau ayam) =
bilangan yang merupakan irisan pada sa+ sb - sab = 38.
hasil 1 dan 2 ada sebanyak 5 yaitu (7,
23. D. 17
70, 77, 147, 175).
Jadi banyaknya up ada 34 + 25 - 5 Pembahasan:
= 54. Diketahui:
P = Pak Dengklek (10) , B = Bu Deng-
20. C. 69 klek(5), A= Ammar (2), R= Rakina (1).
Pembahasan: Hanya terdapat 1 senter yang bisa
Hari pertama tanaman 4 = 25. dipakai maka harus bolak balik yang
Hari kedua tanaman 2 = 20-4 = 16. pertama untuk mengantar 1 orang,
Hari ketiga tanaman 1 = 30-(2x3) = kemu­dian yang waktu tempuh paling
24. sedikit mengembalikan senter terse­
Hari keempat tanaman 3 = 10- but ke titik awal. Misalkan X adalah
(3x2)=4. titik awal, dan Y adalah titik akhir.
Jadi total maksimal 25+16+24+4= (Tanda panah berarti ada yang berja­
69. lan ke arah panah tersebut)
Waktu
21. D. 58 X Arah Y Ket.
Tempuh
Pembahasan: P, B, - (Semua 0
Diketahui 60 suka sapi (s). A, R masih di
72 suka ayam (a). titik awal)
80 suka bebek (b). P, B A, R (Am- 2
7 vegetarian. mar dan
143 = s + a + b - sa - sb - ab + sab. Rakina
143 = 60 + 72 + 80 - sa - 55 - ab + sab. menyeb-
-14 = -sa - ab + sab. rang)
hanya suka ayam = a - ( sa + ab - sab). P, B, A (Rakina 1
hanya suka ayam = 72 - 14 = 58. R kembali
ke titik
22. D. 38 awal)
Pembahasan: R P, B, A (Pak 10
Diketahui 60 suka sapi (s). dan Bu
72 suka ayam (a). Dengklek
80 suka bebek (b). menyeb-
7 vegetarian. rang)

189
Waktu 8 x 2 = 16.
X Arah Y Ket.
Tempuh Jadi, nilai X = 16.
A, R P, B (Ammar 2
kembali b. Kita juga dapatkan rumus untuk
ke titik bilangan ke-4 didapatkan ketika
awal) bilangan ke-2 dikali 3:
- P, B, (Am- a, 5, a, 15, a, 45, a, Y.
A, R mar dan 5 x 3 = 15.
Rakina
15 x 3 = 45.
menyeb-
rang) 45 x 3 = 135.

Jadi, nilai Y = 135.


Jadi diperoleh total = 0 + 2 + 1 + 10
+ 2 +2 = 17 25. A. (A + B - abs(A + B))/2

24. A. X= 16, Y = 135 Pembahasan:


2, 5, 4, 15, 8, 45, X, Y. Diketahui:
a, b, c, d, e, f, g, h. Bilangan terbesarnya A,
Kita perhatikan a dan c: Jika c dibagi Maka 2 bilangan tersebut kita anggap
a, A dan (A-x) (untuk sebuah bilangan
Maka: non­negatif x).
c:a = 4: 2 Dapat diperhatikan A - (A-x) = x, dan
=2 (A-X) - A = -x.
e:c = 8: 4. Maka abs(A - (A-x)) = x.
=2. Lalu A + (A-x) = 2A-x.
Kita perhatikan b dan d: Jika d dibagi X dapat dihilangkan dengan formula
b, di atas,
Maka: Jadi (A + (A-x) + abs(A- (A-x)) = 2A.
d:b = 15: 5 Tinggal dibagi 2 dan dapat A.
= 3. Jadi tinggal ganti (A-x) jadi B.
f:d = 45: 15 (A + B + abs(A - B))/2.
=3. 26. A. 2
a. Maka, kita dapatkan rumus un-
Pembahasan:
tuk bilangan ke-3 didapatkan ke-
Dicoba semua kemungkinan jawaban
tika bilangan ke-1 dikali 2:
Athin, yakni
2, b, 4, b, 8, b, X, b.
1) Bilangan prima dan ganjil
2 x 2 = 4. 3, 5, 7.
4 x 2 = 8. 2) bilangan prima dan genap
2.

190
3) Bukan Bilangan prima dan ganjil -33 (atas) -103 (kiri) 22 (atas)
1, 9. 42 (kiri) 83 (kiri) 42 (kiri).
4) Bukan Bilangan prima dan genap
Petak yang ditebalkan adalah petak
4, 6, 8, 10.
yang bisa dilewati oleh kesatria (di-
Dari semua kemungkinan yang ada,
dapat dengan melakukan tracking
hanya kemungkinan kedua yang
mulai dari petak[6][6]) agar nilai ke-
memberikan kepastian di satu bila­
kuatan pada suatu petak nilainya se-
ngan, yakni bilangan 2. Maka jawaban
maksimum mungkin.
yang tepat adalah bilangan 2.
Jalur ini belum optimal untuk men-
27. D. 83 dapatkan nilai kekuatan awal mini-
mum. Perhatikan kalau pada petak[6]
Pembahasan:
[5] diganti arah sebelumnya menjadi
Jika kita menginginkan kekuatan
(atas) dan petak[4][5] juga digan-
pada petak[r][c], maka semaksimum
ti arah sebelumnya menjadi (atas)
mung­ kin maka kita bisa menghi­
maka didapatkan seperti ini.
tungnya dengan:
-23 -12 (kiri) -29 (kiri)
Petak[r][c] = max(petak[r][c] + pe-
-21 (kiri) -31 (kiri) -41 (kiri)
tak[r-1][c], petak[r][c] + petak[r][c-1]).
Kita dapat menghitungnya mulai dari -6 (atas) -31 (kiri -87 (atas)
baris paling atas. Untuk baris perta- -53 (atas) -76 (atas) -106 (atas)
ma tentunya yang maksimum adalah -26 (atas) -84 (kiri) -56 (kiri)
dari sebelah kirinya dan untuk kolom -83 (atas) -72 (atas) -93 (kiri)
pertama tentunya yang maksimum
-36 (atas) -83 (kiri) -87 (atas)
adalah dari atasnya. Kita juga coba
17 (atas) -82 (atas) 32 (kiri)
tracking apakah dia dari kiri atau dari
atas. -47 (atas) -95 (kiri) -58 (atas)
-23 -12 (kiri) -29 (kiri) 0 (atas) -80 (atas) 18 (atas
-21 (kiri) -31 (kiri) -41 (kiri)
-33 (atas) -103 (kiri) 22 (atas)
-6 (atas) -31 (kiri -87 (atas) 42 (kiri) -39 (atas) -80 (kiri).
-53 (atas) -76 (atas) -106 (atas)
Nilai negatif terkecil pada jalur yang
-26 (atas) -84 (kiri) -56 (kiri) dilewati adalah -82. Kekuatan awal
-83 (atas) -72 (atas) -93 (kiri) kesatria haruslah 83 agar pada petak
tersebut kekuatan kesatria tidak ku-
-36 (atas) -83 (kiri) -87 (atas)
rang dari atau sama dengan 0.
17 (atas) 7 (kiri) 32 (kiri)

-47 (atas) -95 (kiri) -58 (atas)


0 (atas) 9 (atas) 18 (atas

191
28. B. 28 Jadi jumlah dari bilangan ganjil yang
Pembahasan: terletak di antara 50 sampai dengan
Nilai 2x terbesar < 1234 yaitu 210 150 adalah 5000.
(1024).
30. C. 262
1234 - 1024 = 210.
Pembahasan:
Nilai 2x terbesar < 210 yaitu 27 (128).
Karena kartu perak terbanyak yang
210 - 128 = 82.
bo­leh diambil adalah 4, maka emas
Nilai 2x terbesar < 82 yaitu 26 (64)
yang boleh diambil= 3 per 7 putaran.
82 - 64 = 18.
613/7 = 87 kali.
Nilai 2x terbesar < 82 yaitu 24 (16)
87 x 3 = 261.
18 - 16 = 2.
Kan 87 x 7 = 609.
Tersisa 21, sehingga jawaban yang
613-609 = 4 putaran, berarti ma-
memenuhi adalah 1 + 4 + 6 + 7 +
sih boleh mengambil 2 perak dan 1
10 = 28.
emas.
29. E 5000 Total emas: 261 + 1 = 262.
Pembahsan:
OSN TINGKAT NASIONAL
Diketahui deret bilangan:
51 + 53 + 55 + … + 149. 1. B. 20
Dari deret di atas kita sudah bisa me- Pembahasan:
ngetahui Dari persamaan (y + z)/3 < x, dan x
A = 51. < y < z < 10. Maka diperoleh y+z<3x
B = 2. di mana y+z selalu kurang dari keli­
Un = 149. patan 3 kali x.
Setelah itu kita cari nilai n. Karena x<10, nilai x untuk 8 dan 9 ti-
Un = (a + (n-1)b). dak memenuhi karena, y dan z tidak
149 = (51 + (n-1)2). bisa dua-duanya 9 dan 8. (dari perti-
149 = (51 +(2n – 2)). daksamaan x<y<z<10).
149 = 2n + 49. 1) Untuk x=7, dan y+z<21, dengan
2n = 149 – 49. masing-masing kemungkinan:
2n = 100. Y+z = 20, y+z = 19, y+z = 18,
N = 50. Tinjau untuk y+z = 20, karena
Karena nilai n sudah ketemu lang- kemungkinan y=10\pm c dan x=10\
sung kita masukkan ke rumus Sn. mp c (dengan konstanta c bilangan
Sn = n/2 (a + Un). bulat), maka solusi ini tidak mungkin
S50= 50/2 (51 + 149) untuk persyaratan pertidaksamaan.
= 25 (200). Dapat diketahui bahwa y+z untuk 19
= 5000. dan 18 tidak memenuhi karena untuk
19 (misalkan y adalah 9), maka y=9\

192
pm c dan z=10\mp c tidak memenuhi. 6 <=> 9. Selain angka itu, si Nona ti-
Dan untuk 18, y=9\pm c dan x=9\mp dak merasa kesulitan.
c adalah solusi yang tidak memung­ Untuk kesulitan menulis, perubahan-
kinkan. Kita tahu bahwa untuk semua nya ialah 4 => 9, 5 <=> 2, dan 6 <=>
y+z\leq 17 dan y+z> 16 selalu 9.
memenuhi pertidaksamaan di atas. Sebelum mengerjakan soal, si Nona
Jadi semua kombinasi x+y+z yang pasti akan membaca soalnya terlebih
tidak memenuhi adalah 27, 26, dan dahulu. Maka 37519 akan menjadi
25. Kombinasi-kombinasi yang hanya 31216, dan 4213 akan menjadi 4513.
memenuhi x=7 adalah 24 dengan Jadi, 31216 + 4513 = 35729. Sesaat ia
y+z=17. menulis, diperoleh tulisan 32756.
2) Untuk x=6, y+z<18, dengan ma-
3. B. Tingkat ke 7
sing-masing kemungkinan:
Y+z=17, y+z=16, y+z=15, \dots Pembahasan:
Tinjau untuk y+z=17, kita peroleh Menggunaan metode brute-force,
y=8\pm c dan x=9\mp c yang meme- Kalkulasi dari 15, dan menambahkan
nuhi solusi tersebut. Sehingga x+y+z (n-1)2 + (n-2)2 + \dots + (1)2 pada
adalah 6+8+9=23. Dapat disimpul- ruas paling kanan sampai menemu-
kan bahwa y+z\leq 17 dan y+z> 14 kan nilai n minimum yang terdapat
selalu memenuhi pertidaksamaan bilangan 1000 yang memenuhi per-
diatas. Kita tahu bahwa semua kom- tidaksamaan tersebut.
binasi x+y+z yang memenuhi adalah Pertama: 1<1000<152 =>
23, 22, 21. 1<1000<225, tidak memenuhi maka
3) Untuk x=5, y+z<15. Karena solu- tambahkan:
si yang memenuhi adalah y+z> 14 Kedua: 1<1000<152+142 =>
dan y+z> 12, kombinasi-kombinasi 1<1000<421, tidak memenuhi:
x+y+z lain untuk x=5 yang memenu- Ketiga: 1<1000<152+142+132 =>
hi ini kurang dari 19. 1<1000<590, tidak memenuhi:
Alhasil diperoleh 20 adalah solusi Keempat: 1<1000<152+142+132+122
x+y+z yang tidak memenuhi. => 1<1000<734, tidak memenuhi:
K e l i m a :
2. E. 32756 1<1000<15 +14 +13 +12 +11 =>
2 2 2 2 2

Pembahasan: 1<1000<855, tidak memenuhi:


Diketahui: Keenam: 1<1000<152+142+132+1
Terdapat semacam “proposisi” untuk 22+112+102=> 1<1000<955, tidak
menggantikan sebuah angka dalam memenuhi:
kondisi membaca dan menulis. Ketujuh: 1<1000<152+142+132+122
Untuk kesulitan membaca, dapat di- +112+102+92 => 1<1000<1036, ka-
ketahui bahwa 7 => 1, 5 <=> 2, dan rena nilai minimum sudah ditempuh,

193
maka pembangunan piramid akan =(121)50 mod 41 = (-2)^{50} mod
berhenti pada tingkat ke-7. }41 = (-2^2)^{25} mod }41 = (4)^{25
mod }41 = (4^5)^5 mod }41=
4. E. 13
(1024)^5 mod }41.
Pembahasan: Aplikasikan modulus pada bilangan
Rumus rekursi: 1024, didapat 1024 mod }41 = 40
Untuk menulis angka 0 ada 0 cara, mod }41 = (-1) mod }41. Sehingga:
maka f(0)=0. (-1)^5 mod } 41 = -1 mod } 41 = 40
Untuk menulis angka 1 ada 2 cara mod 41.
[langsung “1”, langsung “4”], maka Diperoleh bahwa 11^{100 mod 41 =
f(1)= 2. 40.
Untuk menulis angka 2:
(1 cara [langsung “2”]. 6. B. 130
4 kemungkinan lainnya [“11”, ”14”, Pembahasan:
”41”, ”44”] = “1”f(2-1) + “4”f(2-1) = 2 Diketahui faktorisasi prima dari bi-
f(x-1). langan 10=21x51, yang menyatakan
Maka f(2)= 5. bahwa angka puluhan/banyaknya
Untuk menulis angka 3. angka nol di depan suatu bilangan
1 cara [langsung “3”]. dipengaruhi oleh angka 5 dan sua-
10 kemungkinan lain [“1”f(2), ”4”f(2)] tu angka genap. Perhatikan deret 12
= 2f(x-1). x 22 x 33 x 44 x 55 x ... X 3030, karena
2 kemungkinan lainnya [“2”f(1)] = kita tahu bahwa angka genap lebih
f(x-2). banyak daripada angka 5, maka hi-
F(3)= 13. tung hanya angka yang merupakan
Karena angka yang ada hanya 1-4, kelipatan 5.
dan (4 sama dengan 1), maka untuk Didapat 5, 10, 15, 20, 25 dan 30 ada-
banyak kombinasi cara menulis ang- lah angka yang merupakan kelipatan
ka = 4 bisa dihitung dengan rumus: dari 5 dari deret tersebut.
F(x)=2f(x-1)+f(x-2)+f(x-3). Maka diperoleh 55 memiliki lima ang-
ka 5, 1010=210x510 memiliki sepuluh
5. E. 40
angka 5, 15, 1515=315x515 memiliki lima
Pembahasan: belas angka 5, 2020 = 420x520=240x520
11^{100 {mod }41 = (11^2)^{50 memiliki 20 angka 5, 2525=(52)25=550
{mod }41= (121)^{50 {mod } 41. memiliki lima puluh angka 5, dan
Aplikasikan modulus pada bilangan 3030=(2x5x3)30=230x530x330 terdapat
121, dikarenakan 121/41 = 3 dan tiga puluh angka 5.
41x 3=123, sehingga 121 mod 41 Jumlahkan seluruh populasi
= (121-123) mod 41 = (-2) mod 41. angka 5, maka diperoleh 5 +
Sehingga: 10+15+20+50+30 = 130. Dari sini

194
didapat bahwa bilangan terbesar n Produk A --> [3.393.000/13.000] =
untuk 12 x 22 x 33 x 44 x 55 x ... X 3030 261.
dapat dibagi 10n adalah n=130. Produk B --> [3.393.000/8.000] =
424, 125 = 425.
7. C. 4
Sekarang hitung jumlah silikon yang
Pembahasan: diperlukan untuk masing-masing
Diketahui: produk.
Dapat diobservasikan bahwa saat A butuh 261 x 50 gr = 13.050 gram.
bom mempunyai angka A ketika B butuh 425 x 40 gr = 17.000 gram.
permainan belum dimulai, maka Jadi ambil yang terkecil, yaitu 13.050
saat permainan dimulai, pemain gram.
1 memiliki angka bom (A-1) di
tangannya. Hal ini diobservasi dari 9. C. 9
penggalan soal “Baik saat awal Pembahasan:
permainan maupun saat diberikan Diketahui:
ke temannya”. Saat bom di angka I) perkalian umur mereka = 36.
A dan permainan belum dimulai, Ii) pada saat orang pertama memberi
tidak mungkin bahwa pemain 1 akan tahu jumlah umur anak, orang kedua
mendapatkan angka A lagi sehingga masih belum mengetahui umur anak
angka awal permainan adalah (A-1) tertua, berarti ada lebih dari satu pa-
dan sebelum permainan adalah A. sangan perkalian tiga angka yang
Jadi diperoleh bahwa saat permainan hasil kalinya 36 dan hasil jumlahnya
dimulai, pemain pertama akan men­ sama.
dapatkan bom ke-(825-1) atau 824. Iii) pada saat orang pertama menga-
Jadi dimoduluskan angka tersebut takan bahwa semua anak sudah ber-
dengan angka 5 diperoleh bahwa usia lebih dari 1 tahun, orang kedua
anak yang terkena ledakan bom mengetahuinya, ini berarti di salah
adalah anak ke-4. satu pasangan perkalian yang jum-
lahnya sama ada anak yang berumur
8. B. 13050
satu tahun, sehingga ketika orang
Pembahasan: kedua mengetahui semua anak ber-
Diketahui Rp3.393.000 adalah keun- umur lebih dari satu tahun pasangan
tungan minimum. perkalian itu dapat dicoret, dan ja-
Sehingga dapat dihitung satu per waban pun diketahui.
satu berapa banyak produk A atau Dengan melihat faktor dari 36, maka
B yang dibutuhkan untuk mendapat dapat dihitung:
keuntungan sedemikian, 6*6*1 = è 6+6+1 = 13.
lalu hitung dengan menggunakan 9*2*2 = 36 è 9+2+2 = 13.
fungsi ceiling (krn bila >3.393.000 .

195
Jadi dapat disimpulkan, umur anak D = 2a + b + 2b + 2000 + 3d = 18000
tertua = 9. = 2a + 3b + 3d = 16000 ...(5).
Masukkan juga persamaan (3) ke B
10. C. 69
dan C.
Pembahasan: B = 3a + b + 3b + 3000 + 4d = 25000
Diketahui: = 3a + 4b + 4d = 22000 ......(6).
X=banyak binatang berkaki 4. C = 4a + 2b + 3b + 3000 + 5d =
Y=banyak binatang berkaki 2. 31000.
Maka: = 4a + 5b + 5d = 28000 .......(7).
X + y = 112. Kurangi persamaan (7) dengan (6)
4x+2y=310. (7) - (6) = a + b + d = 6000 ....(8).
Lalu gunakan eliminasi, Kalikan persamaan (8) dengan 3, lalu
X + y = 112 dikali 4. kurangi dengan persamaan (5).
4x + 4y = 448. 3a + 3b + 3d = 18000.
4x + 2y = 310. 2a + 3b + 3d = 16000.
---------------- - Didapatlah bahwa harga a = 2000
2y = 138. Masukkan a ke persamaan (5).
Y=138/2=69. 2a + 3b + 3d = 16000.
Jadi binatang yang berkaki 2 ada 69 4000 + 3b + 3d = 16000.
ekor. 3b + 3d = 12000 ..........(9).
11. B. 1 Masukkan a dan persamaan (9) ke
per­samaan (4).
Pembahasan:
Xa + 3b + 3d = 14000.
Diketahui:
2000X + 12000 = 14000.
I = a , ii = b , iii = c , iv = d
2000X = 2000.
Berarti:
X = 1.
A = Xa + 2b + c + 3d = 15000.
B = 3a + b + 3c + 4d = 25000. 12. D. 79
C = 4a + 2b + 3c + 5d = 31000. Pembahasan:
D = 2a + b + 2c + 3d = 18000. Jika setiap orang mendapat x ikan
B - D = a + c + d = 7000 ........ (1) dan bersisa 1 ikan, maka sebelum
C - B = a + b + d = 6000 .........(2) pembagian terdapat (3x+1)/2 ikan
Kurangi hasil (1) dan (2). Misalkan f(x) = (3x+1)/2 maka x mini-
(1) - (2) = c - b = 1000. mum ketika:
C = b +1000 .........(3) F(x) bulat.
Masukkan persamaan (3) ke A dan D F(f(x)) bulat.
A = Xa + 2b + b + 1000 + 3d = 15000. F(f(f(x))) bulat.
= Xa + 3b + 3d = 14000 (1000-nya F(f(f(f(x)))) bulat.
saya masukkan ke 15000) ...(4). Jadi nilai minimum x adalah 7.

196
Pembagian ke-4: 7, 7, 7, 1. 12-9+x+7-9+x+x=15.
Pembagian ke-3: 11, 11, 11, 1. 3x=15.
Pembagian ke-2: 17, 17, 17, 1. X=5.
Pembagian ke-1: 26, 26, 26, 1. Untuk ayam kampung jantan yang
Sehingga total adalah 26*3+1 = 79. berjengger panjang dan berkokok
keras adalah:
13. B. 720
9-5 = 4.
Pembahasan:
Banyaknya pembagi dari suatu bi- 15. A. Kwak, Kwik, Kwek, Kwok.
langan dapat dicari dengan melaku- Pembahasan:
kan faktorisasi prima. Dibuat tabel yang berisikan nama-
Sebuah bilangan yang dapat direpre- nama bebek tersebut dan diisikan
sentasikan sebagai 2a + 3b + 5c (dan sesuai keterangan
seterusnya) akan memiliki pembagi Nama Tinggi Warna Keterangan
sebanyak (a+1) x (b+1) x (c+1) dst. Kwak 30 Putih
Kwek 32 Hijau
Cara mencari 4, 2, 1 dengan cara bru­
Kwik 31 Hitam Tinggi < 32
teforce dapat diminimalisasi dengan Kwok 33 Merah
cara memfaktorkan angka 30 yaitu 21
x 31 x 51 angka-angka 2, 3, dan 5 dapat Jadi diperoleh urutan Kwak, Kwik,
dibuat kombinasi yang menghasilkan Kwek, Kwok .
(a+1) + (b+1) + (c+1) = 30.
Dalam kasus ini karena seluruh ang- 16. Diketahui:
ka berpangkat 1 maka tidak ada yang Siswa J, K , L , M , N , P , Q
harus kita coba lagi. Hanya ada 1. Karena Halte 3 dan Halte 6 tidak ada
Kemungkinan yaitu yang turun maka kemungkinan halte
(a+1) = 2, a = 1. di mana M turun adalah halte 2, 4, 5,
(b+1) = 3, b = 2. 7.
(c+1) = 4, c = 4. Misal M turun di halte 2 maka J turun
Untuk mendapatkan angka terkecil, di halte 4.
Maka angka terbesar harus dipang­ Jika M turun di halte 4 maka J tidak
katkan ke basis terkecil, sehingga di­ mungkin turun d halte 6.
per­oleh perhitungan: Jika M turun di halte 5 maka J turun
24 x 32 x 51 = 720. di halte 7.
Maka kemungkinan halte di mana J
14. E. 4 akan turun adalah halte 4 dan 7.
Pembahasan:
17. D. 39
Cari dulu ayam ras jantan yang ber­
jengger panjang dan berkokok keras: Pembahasan:
12- (9-x)+7-(9-x)+x=15. Misal: x = waktu/pertunjukan acara
berlangsung selama 4 jam,

197
Karena acara terakhir membutuhkan Z = 10
waktu 1 jam, Jadi diperoleh:
Maka 5 acara yang lain membu- XY = 40.
tuhkan waktu 3 jam. Waktu = 18.00
20. B. 156
19.00 20.00 => x+5 x+5 x+15
Setiap angka harus ada angka 5 dan
X+5 x+5 5x + 35.
genap saat dikali menjadi kelipatan
= 3x60 + 5x = 145 x.
10(tidak boleh 0).
= 29.
Jika 2 digit,
Maka waktu acara ketiga adalah
Genap 5 atau 5 genap.
x+10 = 29 + 10 = 39.
4 x 1+ 1 x 4 = 8.
18. B. 160 Jika 3 digit,
Pembahasan: 5 _ _ è 5 ganjil genap atau 5 genap
Diketahui: ganjil atau 5 genap genap.
Bilangan bulat positif W, X, Y dan Z. 1 x 5 x 4 + 1 x 4 x 5 + 1 x 4 x 4 = 56.
Hasil kali W dan Y adalah 32, dan ha- _ 5 _ è> sama seperti di atas = 56.
sil kali X dan Z adalah 100. _ _ 5 è sama seperti di atas = 56.
Haisl kali Y dan Z adalah delapan kali karena terjadi 2 kali angka yang sama
hasil kali W dan X. (saat ganjil diisi dengan 5), maka
WY = 32, XZ = 100, YZ = 8WX , YZ =? 3(56) - 3(4) = 156.
WYXZ = 3200 ; WX = 3200/YZ
21. C. 2
8(3200/YZ) = YZ ; (YZ)2 = 25600 ;
Pembahasan:
10(256)1/2 = 160.
AB + C + D = 3...(i).
19. D. 40 BC + A + D = 5...(ii).
Pembahasan: CD + A + B = 2...(iii).
Diketahui: DA + B + C = 6...(iv).
Empat bilangan bulat positif W, X, Y Langkah 1: (i) - (ii).
dan Z yang juga memenuhi W < X < C - A + B(A - C) = -2?
Y < Z. Jika hasil kali W dan Y adalah (A - C)(1 - B) = 2?
32, dan hasil kali X dan Z adalah 50. A - C = 2/(1 - B)...(v).
WY = 32 ; XZ = 50 ; XY =? Langkah 2: (iii) - (iv).
WXYZ = 1600 ; XY = 1600/WZ A - C + D(C - A) = -4?
WY = {1x32, 2x16, 4x8} (A - C)(1 - D) = -4?
XZ = {1x50, 2x25, 5x10} A - C = -4/(1 - D)…(vi).
W = {1, 2, 4} ; Z = {50, 25, 10} Langkah 3: (v) = (vi).
W=4; 2/(1 - B) = -4/(1 - D)?
Y=8; 2 - 2D = -4 + 4B?
X=5; 3B + D = 3…(vii).

198
Langkah 4: (i) - (iv). 22. B. 6
D - B + A(B - D) = -3? Pembahasan:
(B - D)(1 - A) = 3? Kita misalkan brankas tersebut ha-
B - D = 3/(1 - A)...(viii). nya memiliki 3 digit, dan hanya 2 di-
Langkah 5: (ii) - (iii). git yang berfungsi untuk membuka
D - B + C(B - D) = 3? brankas, maka diperlukan 3 perco-
(B - D)(1 - C) = -3? baan (000 tidak termasuk karena jika
B - D = -3/(1 - C)...(ix). 2 digit yang berfungsi tsb adalah 00,
Langkah 6: (viii) = (ix). brankas akan langsung terbuka):
3/(1 - A) = -3/(1 - C)? a. 110
3 - 3C = -3 + 3A? b. 101
A + C = 2…(x) c. 011
Langkah 7: (i) + (ii) + (iii) + (iv).
Jika brankas memiliki 4 digit, maka
A + B + B + C + C + D + D + A + AB
kita hanya perlu mengalikan dengan
+ BC + CD + DA = 16.
2 untuk kombinasi angka ke-empat,
? 2(A + B + C + D) + (A + C)(B + D)
begitupun untuk 5 digit, 6 digit, dan
= 16.
seterusnya.
Substitusikan persamaan (x): A + C =
Sehingga diperoleh hasil 3 x 2 = 6.
2.
Atau bisa dengan menggunakan cara
? 2(2 + B + D) + 2(B + D) = 16? 4 + 4B
seperti berikut:
+ 4D = 16? B + D = 3…(xi)
C(n, k) = n/(n-k)k
Langkah 8: Gunakan Eliminasi/Sub-
= 4!/(4-2)!2!
stitusi pada persamaan (vii) dan (xi)
= 4x3x2x1/2!2x1
3B + D = 3.
= 4x3x2x1/2x1x2x1
B + D = 3.
= 3x2x1
------------- -
=6
B = 0, D = 3.
Langkah 9: Substitusikan nilai B dan 23. D. 97
D ke persamaan (ii) Pembahasan:
0 + A + 3 = 5? A = 2. Kita buat setiap grup beranggota 2
orang, untuk menghitung peluang
Adi dan Budi terpilih, Adi tidak boleh
segrup dengan Budi.
Peluang Adi tidak segrup dengan
Budi = (Banyak cara Adi segrup
dengan siapa saja - Banyak Cara Adi
segrup dengan Budi)/(Banyak cara
Adi segrup dengan siapa aja).

199
= (39-1)/39 = 38/39. 77 X3 mod 13 = 1 mod 13.
lalu peluang dari Adi terpilih dan 12 X3 mod 13 = 1 mod 13.
Budi terpilih di grup berbeda = 1/2 12 X3 mod 13 = 144 mod 13.
x 1/2 = 1/4. X3 = 12.
Jadi diperoleh total (38/39) * (1/4) = X = 143.5.1 + 91.4.8 + 77.12.6.
19/78. X = 715 + 2912 + 5544.
Sehingga hasilnya 19+78 = 97. X = 9171.
Maka untuk permen yang dimiliki
24. D. 839
Pak Adi sekarang = 9171 mod KPK(7,
Pembahasan: 11, 13) = 9171.
Diselesaikan dengan Chinese Rema- mod 1001 = 162.
inder Theorem dari tiga persamaan Karena Pak Adi ingin membagi per-
berikut: men tersebut sedemikian agar setiap
X mod 7 = 1. kelas mendapat jumlah permen sama
X mod 11 = 8. rata, maka ia memerlukan setidaknya
X mod 13 = 6. KPK(7, 11, 13) = 1001 permen.
Di mana X = B1.X1.C1 + B2.X2.C2 + Jadi ia perlu membeli 1001 - 162 =
B3.X3.C3. 839 buah permen lagi.
X = B1.X1.1 + B2.X2.8 + B3.X3.6
Pada CRT, nilai dari Bi adalah LCM(b1, 25. A. 8119
b2, b3) / bi. LCM dari (7, 11, 13) = Pembahasan:
1001. Maka: a(n) = banyak cara menempatkan 0
B1 = 1001/7 = 143. pada string dengan panjang n.
B2 = 1001/11 = 91. b(n) = banyak cara menempatkan 1
B3 = 1001/13 = 77. pada string dengan panjang n.
X = 143.X1.1 + 91.X2.8 + 77.X3.6 c(n) = banyak cara menempatkan 2
Teorema chinese remainder menya- pada string dengan panjang n.
takan: BiXi mod bi = 1 mod bi. Menggunakan metode DP,
B1.X1 mod 7 = 1 mod 7. Misal f(n) = banyak cara menyusun
143. X1 mod 7 = 1 mod 7. string dengan panjang n, maka:
3 X1 mod 7 = 1 mod 7. F(n) = a(n) + b(n) + c(n).
3. X1 mod = 15 mod 7. Karena selisih maksimal hanya 1,
X1 = 5. maka:
B2. X2 mod 11 = 1 mod 11. a(n) = a(n - 1) + b(n - 1).
91 X2 mod 11 = 1 mod 11. b(n) = a(n - 1) + b(n - 1) + c(n - 1).
3 X2 mod 11 = 1 mod 11. c(n) = b(n - 1) + c(n - 1).
3 X2 mod 11 = 12 mod 11. Base case: a(1) = 1, b(1) = 1, c(1) = 1.
X2 = 4.
B3 X3 mod 13 = 1 mod 13.

200
Dari f(n) = a(n) + b(n) + c(n), maka bahwa baris yang terisi penuh adalah
b(n) = a(n - 1) + b(n - 1) + c(n - 1) = baris ke-1. 2. Kedua baris tersebut
f(n - 1). tidak memiliki petak daratan di kolom
Maka, f(n) = 2 * [a(n - 1) + b(n - 1) yang sama. Untuk kasus ini, urutan
+ c(n - 1)] + b(n - 1) = 2 * f(n - 1) + kedua baris tersebut bisa saling
f(n - 2). lepas, atau ditentukan melalui kolom
Dengan f(1) = a(1) + b(1) + c(1) = 1 + lain sesuai kemungkinan 1. Maka,
1 + 1 = 3 dan f(2) = 7 (diketahui dari untuk subsoal ini, yang diperlukan
soal), maka kita bisa mencari f(3) dan hanyalah mengurutkan baris-baris
seterusnya. tersebut sesuai dua kemungkinan di
f(3) = 2 * 7 + 3 = 17 atas. Kompleksitas dari subsoal ini
f(4) = 2 * 17 + 7 = 41 adalah O (N+ 25log5) = O(N)
f(5) = 2 * 41 + 17 = 99
27. A. 1.017 ribu rupiah
f(6) = 2 * 99 + 41 = 239
f(7) = 2 * 239 + 99 = 577 Pembahasan:
f(8) = 2 * 577 + 239 = 1393 Diketahui:
f(9) = 2 * 1393 + 577 = 3363 Keuntungan sampai bulan ke-4 (S4)
f(10) = 2 * 3363 + 1393 = 8119 = 30ribu rupiah.
Keuntungan sampai bulan ke-8 (S8)
26. B. O(N+ 25log5) =O(N) = 172ribu rupiah.
Pembahasan: Ditanyakan:
Diketahui urutan kolom pada baris Keuntungan sampai bulan ke-18
yang terisi penuh sudah ditetapkan. (S18).
Akibatnya, kolom dari suatu petak Penyelesaian:
bisa ditetapkan secara pasti, dengan Sn = n/2 (2a + (n - 1)b).
berpatokan kepada baris yang sudah Keuntungan sampai bulan keempat
penuh tersebut. Untuk mempermu­ (S4):
dah, tetapkan bahwa baris yang terisi S4 = 4/2 (2a + (4 - 1)b).
penuh adalah baris ke-1. Selanjutnya, <=> 30.000 = 2(2a + 3b).
kita akan menentukan urutan baris- <=> 15.000 = 2a + 3b ........(1).
baris sisanya. Perhatikan bahwa Keuntungan sampai bulan kedelapan
untuk dua baris berbeda, terdapat (S8):
dua kemung­kinan: 1. Kedua baris S8 = 8/2 (2a + (8 - 1)b).
tersebut memiliki petak daratan di <=> 172.000 = 4(2a + 7b).
kolom yang sama. Akibatnya, urutan <=> 43.000 = 2a + 7b ........(2)
relatif dari kedua baris tersebut dapat Eliminasi persamaan (1) dan (2), di-
ditentu­ kan melalui urutan petak peroleh:
daratan pada kolom tersebut. Hal 2a + 3b = 15.000
ini karena kita sudah menetapkan 2a + 7b = 43.000

201
<=> -4b = -28.000 Ingat Rumus Jarak? Jarak = Kecepatan
<=> b = -28.000/-4 x Waktu.
<=> b = 7.000 ST = SS
Subtitusi nilai b = 7.000 ke persama- VT x tT = VS x tS
an (1) diperoleh: 40 (tS + ½) = 60.tS
2a + 3b = 15.000 40tS + 20 = 60tS
2a + 3(7.000) = 15.000 20tS = 20
2a + 21.000 = 15.000 tS =1
2a = 15.000 - 21.000 Artinya Sedan baru menyalip setelah
2a = -6.000 1 jam, yaitu: 08.40 + 1 jam = 09.40.
a = -6.000/2
29. A. 435
a = -3.000
Keuntungan sampai bulan ke-18 (S18). Pembahasan:
Sn = n/2 (2a + (n - 1)b) 1 + 2 + 3 + 4 + 5 + .......... +29 =
S18 = 18/2 (2(-3.000) + (18 - 1).7000) Ada 2 cara sederhana,
S18 = 9(-6.000 + 119.000) Cara pertama:
S18 = 9(113.000) Buatlah pasangan jumlahan yang
S18 = 1.017.000 mudah dihitung sebagai berikut
Jadi, keuntungan sampai bulan ke-18 (1+29)+(2+28)+(3+27)+...(14+16)
adalah 1.017 ribu rupiah. = 30 x 14
= 420.
28. E. 09.40 Karena ini adalah jumlahan ganjil,
Pembahasan: maka ada bilangan tengah
ST, VT, tT masing-masing adalah Ja- yang belum dapat pasangan yaitu 15.
rak, Kecepatan, dan Waktu Truk, dan Maka hasil akhir adalah 420 + 15 = 435
SS, VS, tS masing-masing adalah Ja- atau
rak, Kecepatan, dan Waktu Sedan. Cara kedua:
Truk berangkat pukul 08.10 dan Se- Ini termasuk kategori soal jumlahan
dan baru berangkat pukul 08.40, bilangan asli.
maka selisih ½ jam dan Waktu Truk Jumlah N pertama bilangan asli
jelas yang lebih lama karena berang- mempunyai rumus:
kat lebih dulu, sehingga: ½N x (N+1).
? tT = tS + ½. Pada soal di atas N=29, maka
(Awas, biasanya ada yang salah tulis (29/2) x (29+1)
tT = tS - ½, sekali lagi. = 29/2 x 30
ingat bahwa Waktu Truk lebih lama = 29 x 15
dari sedan). = 435.
MENYALIP berarti Jarak tempuh Truk
dan Sedan adalah SAMA.

202
30. D. O(N2) cnt(A)×cnt(B) =O(N)×O(N)=O(N2).
Pembahasan: Karena teorema di atas, jika optA(A’)
Lemma 6.1 cnt (A) < N2 / N optA(A1) + opt B(B’)= N kita dapat mengguna-
Corollary 6.2.Jika N/2-1 < opt A(A’) < kan solusi kompleksitas O(cnt(A)×cn-
N/2+ 1, maka cnt(A) =O(N). t(B)) untuk menghitung nilai opt(op-
Lemma 6.2. Jika optA(A’)<N2-1, maka tdif f(A, B)). Jika tidak, maka kita bisa
cnt(A) = 1. mengabaikan nilai opt(optdif f(A, B))
cnt(A)> 1, dan (a0, D) dan (a’0, D’) dan langsung mengambil nilai op-
adalah dua pasangan bilangan bulat t(optsame(A, B)) karena dijamin op-
berbeda yang memenuhi: t(optsame(A, B))= N.
Terdapat pasangan bilangan bulat Kompleksitas dari solusi ini adalah
(iA, jA) yang memenuhi change(iA, O(N2).
jA) = optA(A’) pada A, A[ jA]-A[iA]
PREDIKSI OSN 2019
jA-iA=D, danA[iA]-D×iA=a0.
Terdapat pasangan bilangan bulat 1. E. 512
(iA’, jA’) yang memenuhi change(iA’, Pembahasan:
jA’) = optA(A’) pada A, A[ jA’]-A[iA’] Diketahui:
jA’-iA’=D’, dan A[iA’]-D’×iA’=a’0. A xor B =TRUE jika nilai A dan B tidak
Kita akan membuat dua array baru sama.
S dan S’ dengan konstruksi sebagai Misalkan semua kalimat bernial
berikut: TRUE.
S[i] =a0+i×D•S’[i] =a’0+i×D’ . Maka berakibat.
Karena optA(A’)<N2-1, terdapat lebih X2=X1 (dalam bool) ......kalimat 1.
dari N/2+1 indeksi yang memenuhi X5=X6 (dalam bool)......kalimat 2.
S[i] =A[i]. Selain itu, terdapat lebih X5!=X4 (dalam bool)......kalimat 3.
dari N/2+1 indeks i yang memenuhi X3!=X4 (dalam bool)......kalimat 4.
S’[i] =A[i]. Maka, terdapat setidaknya X3=X5 (dalam bool)......kalimat 5.
dua indeksi dan j yang memenuhi S[i] X7=X8 (dalam bool)......kalimat 6.
=S’[i] dan S [ j] =S’[ j]. Maka, (a0, D) = X9=X9 (dalam bool)......kalimat 7.
(a’0, D’). Kontradiksi. X6!=X3(dalam bool)......kalimat 8.
Teorema 6.1. Jika optA (A’) +opt- Perhatikan kalimat 2, 5, 8.
B(B’)=N, maka cnt(A)× cnt(B) =O(N2). dari kalimat 2 dan 5 didapat bahwa
Bukti.W.L.O.G. asumsikan bah- X3=X6 (dalam bool).
wa optA(A’)=optB(B’). Maka op- sementara pada kalimat 8 didapat
tA(A’)=N/2.•JikaoptA(A’)<N/2-1, bahwa X6!=X3 (dalam bool).
maka cnt(A)×cnt(B) = 1×O(N2) Kontradiksi
=O(N/2).•Jika N/2-1=optA(A’)=N/2, Berarti Pemisalan “Misalkan semua
maka N/2=optB(B’)=N/2+ 1. Maka kalimat bernilai true” salah, negasinya

203
adalah pasti ada 1 kalimat yang kecuali pangkat 0 maka angka tera-
bernilai false. khirnya adalah 5.
Berarti bagaimanapun konfigurasi- - Misal Jika X=2 maka (4+2)20=620
nya pasti ada 1 kalimat yang bernilai 61=6
false, sedangkan untuk membentuk 62=36
konfigurasi dari X1 sampai X9 ada 63=216
2^9=512 cara karena X1 bisa true/ Dari percobaan tersebut juga sudah
false begitu seterusnya hingga X9. terbukti bahwa 6 pangkat berapapun
Jadi jawabannya 512. kecuali pangkat 0 maka angka ter­
akhirnya adalah 6.
2. E. Halte 4 dan halte 7
Misal Jika X=3 maka (4+3)20=720
Pembahasan: 71=7
Siswa A B C D E F G. 72=49
Halte 3 dan Halte 6 tidak ada yang 73=313
turun maka kemungkinan halte di 74=2191
mana D turun adalah halte 2, 4, 5, 7 75=......7
Misal D turun di halte 2 maka A turun Dari percobaan ke-3 ini kita menemu­
di halte 4. kan sebuah pola angka terakhir yaitu
Jika D turun di halte 4 maka A 7931
tidak mungkin turun d halte 6 (liat 7931
informasi). 7931
Jika D turun di halte 5 maka A turun 7931
di halte 7. 7931
Maka kemungkinan halte di mana A Jadi X=3.
akan turun adalah halte 4 dan 7.

3. A. 3 4. A. 45
Pembahasan: Pembahasan:
fungsi f(x) = (4 + x)20. Diketahui:
Karena X paling minimum dan X bi­ Bilangan pertama adalah a dan bi-
langan bulat positif maka kita coba langan kedua adalah b.
dari bilangan bulat positif terkecil A + b = 105
yaitu 1. FPB(a, b) = 15
Misal Jika X=1 maka (4+1)20 = 520 . KPK(a, b) = 150
51=5 (a . B)/FPB(a, b) = 150
52=25 (a . B)/15 = 150
53=125 A . B = 2250
Dari percobaan tersebut sudah ter- A + b = 105
bukti bahwa 5 pangkat berapapun A = 105 - b

204
A . B = 2250 Setiap pemain tidak boleh mengam-
(105 - b) . B = 2250 bil 5 koin gambar berurutan
105b - b^2 = 2250 Karna koin gambar terbanyak yang
0 = b^2 - 105b + 2250 boleh diambil adalah 4, maka emas
(b - 75)(b - 30) = 0 yang boleh diambil = 3 per 7 putaran
B = 75 atau b = 30 sehingga didapat:
Untuk b = 75 613/7 = 87 kali
A = 105 - b 87 x 3 = 261
A = 105 - 75 Karena 87 x 7 = 609
A = 30 613-609 = 4 putaran,
Selisih antara a dengan b = 45 Berarti pemain masih boleh meng-
Untuk b = 30 ambil 2 perak dan 1 emas,
A = 105 - 30 Maka total emas:
A = 75 261 + 1 = 262.
Selisih antara a dengan b = 45.
7. D. 2584
5. E. 2 Pembahasan:
Pembahasan: Dynamic programming dengan cara:
Total semua penghargaan yang ada F(n, a)=f(n-1, a)+f(n-1, b)+f(n-1, c)
adalah 6 + 8 + 8 = 22 penghargaan. jumlah kombinasi di mana panjang
Dengan menggunakan PHP (Pigeon string adalah n dan a adalah huruf
Hole Principle), agar mendapat nilai terakhir dalam string tersebut.
minimal penghargaan untuk masing- Karena dicari substring tanpa me-
masing pion, setiap penghargaan ngandung ab maka untuk f(n, b):
harus disebar ratakan, jadi 20 F(n, b)=f(n-1, b)+f(n-1, c) jumlah
penghargaan dibagi ke masing- kombinasi di mana panjang string
masing pion, sehingga setiap pion adalah n dan b adalah huruf terakhir
mendapat 2 penghargaan. Tersisa 2 dalam string tersebut.
penghargaan yang akan dibagikan, F(n, c)=f(n-1, a)+f(n-1, b)+f(n-1, c)
maka akan ada 2 pion yang mem­ jumlah kombinasi di mana panjang
peroleh ketiga penghargaan. string adalah n dan c adalah huruf
Jadi ada minimal 2 pion yang men- terakhir dalam string tersebut.
dapatkan sebanyak 3 penghargaan. Dengan masing-masing base case
F(1, a)=f(1, b)=f(1, c)=1
6. C. 262
Jawabannya berada di f(8, a)+f(8,
Pembahasan: b)+f(8, c)= 2584.
Diketahui:
Dua jenis koin: koin angka dan gam-
bar.

205
8. C. 3 Jadi bilangan 10 sampai 100 yang
Pembahasan: habis dibagi 5 adalah 18.
Diketahui:
11. B. 84
Deviyuangga bukan yang terganteng
Pembahasan:
di antara mereka berempat.
Diketahui:
Berna lebih ganteng dari Jefrre, na­
Angka yang terdiri dari 6 digit namun
mun tidak lebih cerdas.
semua digitnya berbeda dan harus
Deviyuangga lebih cerdas dan lebih
menaik.
ganteng dari Reza.
Jadi tidak mungkin ada angka 0 di
Berna bukanlah yang paling tidak
situ. Jika ada, angka 0 akan menjadi
cerdas di antara mereka.
digit pertama dan ini menyebabkan
Jadi bisa disimpulkan tingkat kegan­
bilangan tersebut menjadi bilangan
tengan ada 3 kemungkinan.
5 digit.
9. B. Deviyuangga/Jefrre. Jadi ada 9 angka, lalu buat bilangan
Pembahasan: 6 digit yang berbeda dan harus me-
Diketahui: naik.
Deviyuangga bukan yang terganteng Ini berarti dengan mengambil 6 ang-
di antara mereka berempat ka dari 9 angka tersebut, lalu urutkan
Berna lebih ganteng dari Jefrre, sendiri jadi 1 susunan angka yang
namun tidak lebih cerdas. diambil itu pasti bisa diurutkan jadi
Deviyuangga lebih cerdas dan lebih menaik. Jadi terdapat {9}{6} cara = 84
ganteng dari Reza. cara.
Berna bukanlah yang paling tidak
12. D. 52360
cerdas di antara mereka,
Pembahasan:
Jadi bisa disimpulkan yang berada di
Diketahui:
posisi nomor 2 adalah Deviyuangga/
Misalkan y1 = p1 + 3. Karena p1 >=
Jefrre.
1, maka y1 >= 4.
10. B. 18 Misalkan y2 = p2 + 1.
Pembahasan: Misalkan y3 = p3 + 2.
Diketahui: bilangan 10 – 100 Misalkan y4 = p4 - 2. Karena p4 <=
Ditanya: bilangan 10 -100 habis diba- 40, maka y4 <= 38.
gi 5. Maka sudah diketahui y1, y2, y3, y4
Maka diperoleh hasil atau perhitung- yang memenuhi y1 < y2 < y3 < y4.
an: Kemudian didapatkan 4 <= y1 < y2
(100 – 10) / 5 < y3 < y4 <= 38. Sekarang persoalan
90/ 5 = 18 berubah menjadi mencari 4 bilangan

206
(y1, y2, y3, y4) antara 4 sampai 38 15. E. 11
yang terurut menaik. Pembahasan:
Karena ada 35 bilangan di antara 4 Agar bernilai minimum, kita harus
sampai 38, dan dipilih 4 bilangan. pindahkan semua digit 0 ke depan
Maka solusi dari persoalan ini adalah (awal).
35C4 = 52360. Banyak Penukaran Biner
0 100101010
13. C. 8
1 100101001
Pembahasan:
2 100100011
720000 = 27 x 32 x 54
3 100000111
262144 = 218
5 000001111
FPB = 27
Jumlah = 1 + 2 + 3 + 5 = 11
Dengan teori bilangan didapatkan
bahwa faktor dari FPB 7+1 = 8. 16. A. 106
Pembahasan:
14. C. Senin
Pak Barnudin memiliki mata uang
Pembahasan:
pecahan 100, 50, 20 , 10 => artinya
Diketahui:
ia punya semua pecahan itu (minimal
Jeni, Ani, Reza mengikuti kompetisi
1) maka
pemrograman berbeda.
10290 div terbesar #1 ( 100 ) => 102
Jeni kompetisi 7 hari sekali.
10290 mod 100 = 90
Ani kompetisi 3 hari sekali dan
90 div terbesar #2 ( 50 ) => 1
Reza mengikuti kompetisi 5 hari se-
90 mod 50 = 40
kali.
40 div terbesar #3 (20) => 2
Cara matematisnya, itu dicari KPKnya
40 div 20 = 0
dari 3, 5, dan 7 yaitu 105.
Karena masih ada terbesar #4 (10)
105/7=15
yang belum masuk nominasi maka
15/7=2 sisa 1
ambil 1 lembar uang paling kecil,
Jadi bisa disimpulkan bahwa mereka
yang artinya harus mengambil uang
kompetisi pada hari yang sama ada­
20 berarti uang 20 tinggal 1 sehingga
lah hari Senin, karena hari dimulai
terdapat 20 div terbesar #last (10) =>
dari Minggu.
2
Jadi jumlahnya ada 106.

207
17. B. 45 1000 = 300, yang diperoleh dari dari
Pembahasan: (1000-100)/3.
Diketahui: Jumlah angka yang merupakan ke-
A= Anton lipatan 5 antara 100 sampai dengan
B= Badu 1000 = 181, yang diperoleh dari dari
C= Cila, (1000-100)/5.
Umur mereka < 10 Jumlah angka yang merupakan ke-
Diketahui A * B * C = 135, Faktor dari lipatan 3 dan 5 (atau kelipatan 15)
135 adalah 9, 5 dan 3 berasal dari antara 100 sampai dengan 1000 =
(135 = 3 * 5 * 9). 60, yang diperoleh dari dari (1000-
Karena A > B > C Maka umurnya 100)/15.
menjadi Jumlah angka yang merupakan ke-
9>5>3 lipatan 9 antara 100 sampai dengan
Jadi = Anton * Badu 1000 = 100, yang diperoleh dari
=9*5 (1000-100)/9.
= 45 Jumlah angka yang dapat dibagi 3 +
yang dapat dibagi 5 - Jumlah angka
18. B. 22 yang dapat dibagi keduanya - angka
Pembahasan: yang dapat dibagi 9.
Diketahui: Jadi total bilangan yang mungkin
Binatang berkaki satu: X adalah = 300 + 181 - 60 - 100 = 321.
Binatang berkaki tiga: Y
20. D. 215
Binatang berkaki lima: Z
X+Y+Z=52 (Pers. 1) Pembahasan:
X+3Y=88 -> X=88-3Y (Pers. 2) Diektahui:
3Y+5Z=106 (Pers. 3) M, M, M, H, M, H, M, M, mati.
Subtitusi X pada Pers. 2 Ke Pers. 1: Misalkan banyaknya permen: n.
88-3Y+Y+Z=52 -> Z=-36+2Y (Pers.4) Total[1] = (n-1)/2.
Subtitusi Z pada Pers. 4 Ke Pers. 3: Total[2] = (total[1]-1)/2;
3Y-180+10Y=106 -> 13Y=286 -> Total[3] = (total[2]-1)/2;
Y=22 Total[4] = total[3]/2
X+3Y=88 Total[5] = (total[4]-1)/2;
X+66=88 Total[6] = total[5]/2
X=22. Total[7] = (total[6]-1)/2
Total[8] = (total[7]-1)/2;
19. B. 321 Total[8] = 0, total[7] = 1, total[6] = 3,
Pembahasan: total[5] = 6, total[4] = 13, total[3] =
Jumlah angka yang merupakan ke- 26, total[2] = 53, total[1] = 107,
lipatan 3 antara 100 sampai dengan N = 215

208
Jadi ada 215 permen yang dibeli pak tanaman paling kiri, dan pengambilan
Raharja. terakhir dibatasi tanaman paling
kanan, maka agar maksimal kita
21. A. 6 permen
perlu membuat loncatannya serata
Pembahasan: mungkin.
Diektahui: Rata-rata dari 6 loncatan dari ujung
M, M, M, H, M, H, M, M, mati. kiri ke ujung kanan adalah (293-2)/6
Ketika n belum sama dengan 0 , jum- = 48.5.
lah = n mod 2 , n/2; 107, 53, 26, 13, Jadi diusahakan loncatannya mende­
6, 3, 1. kati 48.5.
Jumlah = 1+1+1+1 +1+1 = 6 per- Dengan mengambil secara greedy
men. yaitu dengan melakukan loncatan
22. C. 38 dari ujung kiri dan ujung kanan de-
ngan mengusahakan panjang loncat-
Pembahasan:
an >= 48.5 tapi tidak terlalu jauh,
Diketahui:
(2) 9 17 31 (59) 72 94 (103) (141) 152
Saat mengambil 7 tanaman, akan
(179) 211 (241) 288 (293)
terdapat loncatan terpendek, dan
Jarak dari (2) ke (59) adalah 57.
loncatan terpendek ini semaksimal
(59) ke (103) adalah 44
mungkin.
(103) ke (141) adalah 38
Semisal, ada 3 kemungkinan peng-
(141) ke (179) adalah 38
ambilan (kemungkinan pengambil-
(179) ke (241) adalah 52
an seluruhnya ada 15C7 = 6435 ke-
(241) ke (290) adalah 52
mungkinan).
Dari cara greedy diperoleh loncat­
Pada pengambilan pertama, loncat-
an terkecil adalah 38. Hasil ini cukup
an minimal = 7.
besar. Tetapi perlu untuk membuk­
Pada pengambilan kedua, loncatan
tikannya maka tidak mungkin
minimal = 5.
mem­ buat loncatan terkecilnya 39.
Pada pengambilan ketiga, loncatan
Caranya adalah lakukan loncatan-
minimal = 22.
loncatan dengan jarak >= 39. Pada
Pada tiga kemungkinan tersebut,
loncatan terakhir tidak mungkin
loncatan minimal yang paling besar
dibuat loncatan dengan jarak >=
adalah 22.
39. Dan artinya, terbukti secara
Cari loncatan minimal yang paling
kontradiksi bahwa 39 tidak mungkin
besar dari semua kemungkinan.
diperoleh dan jelas di atas 39 juga
Agar loncatan minimalnya sebesar
tidak mungkin. Jadi 38 adalah paling
mungkin, maka Arvlo perlu loncat
maksimal.
sejauh mungkin. Tetapi karena
pengambilan pertama dibatasi oleh

209
23. C. 56 akan lebih sedikit waktu A+B+C
Pembahasan: bekerja bersama, sehingga pekerjaan
Diketahui: membutuhkan waktu lebih dari
A = Andre. 100 hari. Jadi n harus dibulatkan ke
B = Bahrudin. bawah. 11+44=55.
C = Ciko. Pada hari ke 56 Andre sudah harus
Jika A + B bekerja bersama, akan se­ datang.
lesai dalam 144 hari. Artinya dalam 1
24. C. 184
hari bisa 1/144 pekerjaan.
Pembahasan:
Lakukan cara serupa pada yang lain-
Menggunakan inclusi dan exclusi:
nya.
Kemungkinan diawali 000 = 210-3 =
A + C sehari 1/135 Pekerjaan.
2 7.
B + C Sehari 1/120 Pekerjaan.
Kemungkinan diakhiri 1111 = 2^10-
(dalam sehari ).
4 = 2 6.
A+B=1/144 (dalam sehari ).
Kemungkinan diawali dan diakhiri
A+C=1/135 (dalam sehari ).
000 dan 1111 = 210-3-4 = 23.
B+C=1/120 (dalam sehari ).
Hasil akhir: 128+64-8 = 184.
2(A+B+C)=1/144+1/135+1/120 (da-
lam sehari ). 25. D. Minimal ada 4 pasang bilangan
(A+B+C)=(1/144+1/135+1/120)/2 yang memenuhi syarat tersebut.
(dalam sehari ). Pembahasan:
Misalkan 1/144+1/135+1/120 = x Meminimalisir jumlah a mod b =0.
Dalam sehari A+B+C bisa menyele- Agar a mod b>0, bilanganya harus
saikan sebanyak x / 2 pekerjaan. prima. Karena prima faktornya 1 dan
Dalam 11 hari pertama, mereka bisa bilangan itu sendiri
menyelesaikan 11x/2 pekerjaan. Ke­ Jadi diperoleh:
mu­dian dalam n hari hanya B dan C 2 - 3 - 5 - 7 - 11 - 13 - 17 - 19 -? -? -?
yang bekerja. Hari sisanya sebe­lum Diisi angka komposit.
mencapai 100 hari, A sudah kem­bali A > Isi dengan 4. 4 mod 2 = 0.
bekerja. Maka dapat dibuat persa­ B> Isi dengan 9. 9 mod 3 =0.
maan berikut: C> Isi dengan 6. 6 mod 2=0 & 6 mod
11x/2 + n(1/120) + (100-11-n) x/2 = 1. 3=0.
Persamaan di atas silahkan dihitung Jadi dapat disimpulkan ada 4 pasang.
sendiri.
Akan didapat n=44+8/13.
Nilai n sudah pas untuk menye­
le­
saikan pekerjaan tepat 100 hari.
Jika n dibulatkan ke atas, maka

210
26. A. 2 Jika hari ini ia ada di A, maka besok-
Pembahasan: nya akan pasti pindah ke C.
Bu Sintia: 4000--1000--500--250— Jika hari ini ia ada di B maka hari ber-
125. ikutnya ia akan berada di A atau D.
Bu Giselya: 2000--500—125. Jika hari ini ia ada di C maka besok-
Jumlah semuanya adalah 8500, ke- nya ia akan ke B atau D.
mudian isi gelas terbesar ukuran Jika hari ini ia ada di D maka besoknya
8000 ml dan sisanya dituang ke 500 ia pasti akan berada di A sehingga
ml. diperoleh:
Sehingga, terdapat 2 gelas Bu Bella Hari 0 . A.
yang terisi penuh, yaitu yang ukuran- Hari ke 1 . C.
nya 8000 ml dan 500 ml. Hari ke 2 . B atau D.
HARI ke 3 dari b = A ATAU D.
27. E. A atau D Hari ke 3 dari d = A.
Pembahasan: Hari ke 4 dari D = A.
Diketahui: Hari ke 4 dari A = C.
Pak Setiawan selalu berjualan di 4 Hari ke 5 dari A = C.
kampung berbeda yaitu: A, B, C, dan Hari ke 5 dari C = B atau D.
D. Setiap 4 hari perulangannya di ulang.
Jika hari ini ia ada di A, maka besok- Hari ke 20 akan ada 2 kemungkinan
nya akan pasti pindah ke C. yaitu dengan 20 mod 4: yaitu hari ke
Jika hari ini ia ada di B maka hari ber- 5 berada pada tempat A ATAU C.
ikutnya ia akan berada di A atau D.
29. E. 5 unit
Jika hari ini ia ada di C maka besok-
nya ia akan ke B atau D. Pembahasan:
Jika hari ini ia ada di D maka besok- 5A, 3B, C, 0, 0.
nya ia pasti akan berada di A. Kata kunci: proses bisa terjadi jika
Maka dapat dicari: bahan yang diperlukan tersedia dan
Hari 0 . A. per proses dapat dilakukan secara
Hari ke 1 . C. paralel.
Hari ke 2 . B atau D. Jadi, habiskan proses 1 dulu, lalu pro-
Rute b: A ATAU D. ses kedua, dan proses ketiga (dilaku-
RUTE D:A. kan sebanyak jam yang ditanya):
Proses pertama:
28. A. A atau C 5A, 3B, C, 0, 0
Pembahasan: 2A, B, C, 3D, 0 (proses pertama, jam
Diketahui: ke 1 berhenti di sini).
Pak Setiawan selalu berjualan di 4 Proses kedua:
kampung berbeda yaitu: A, B, C, dan D. A, B, C, 3D, 0

211
A, 4B, 0, 3D, 2 (proses kedua, jam ke 2
berhenti di sini).
BAB 3 LOGARITMA
Proses ketiga:
OSN TINGKAT KABUPATEN
A, 4B, 0, 3D, 2E
3A, 4B, 0, 2D, E 1. D . 3927
5A, 4B, 0, D, 0 (proses ketiga, jam ke 3 Pembahasan:
berhenti di sini). Wow(0)=0, wow(1)=1,
Jadi prosesnya dilakukan sequential Wow(2)=0+3.1=3,
proses 1 memakan 1 jam baru melak­ Wow(3)=1+3.3=10,
sanakan proses 2, Wow(4)=3+3.10=33,
Jadi banyak materi A tepat pada 3 Wow(5)=10+3.33=109,
jam berikutnya adalah 5 unit. Wow(6)=33+3.109=360,
Wow(7)=109+3.360=1189,
Wow(8)=360+3.1189=3927.

2. A. 1
Pembahasan:
Function mangga(rambutan: inte-
ger): integer;
Begin
If (rambutan = 1) then mangga:= 1
else
If (rambutan mod 2 = 1) then mang-
ga:= mangga(3 * rambutan + 1)
Else mangga:= mangga(rambutan
div 2);
End;
Function jeruk(anggur, melon: inte-
ger): integer;
Begin
If (melon = 1) then jeruk:= 0 else
Jeruk:= mangga(anggur) * anggur +
jeruk(anggur, melon - 1);
End;
Pemanggilan fungsi mangga hasil-
nya = 1.
Jadi mangga(49) = 1

212
3. C. 475 6. B.1101101
Pembahasan: Pembahasan:
Fungsi jeruk cara gampangnya dicari Bincin(73) = 73 mod 4 = 1 str = ‘1’; 73
polanya. div 2 = 36. BINCIN(36)+1.
Jeruk (25, 20) = 1 * 25 + jeruk (25, 19) Bincin(36)=36 mod 4 = 0 str = ‘0’; 36
>>> 25. div 2 = 18; BINCIN(18)+0.
Jeruk (25, 19) = 1 * 25 + jeruk (25, 18) Bincin(18)=18 mod 4 <>0 str = ‘1’ 18
>>> 25. div 2 = 9; BINCIN(9)+1.
Jeruk (25, 1) = 0 Bincin (9)=9 mod 4 <> 0 str = ‘1’ 9
Jadi itu diulang sebanyak melon - 1 div 2 = 4 BINCIN(4)+1.
kali, (19 kali) Bincin(4) 4 mod 4 = 0 str = ‘0’ 4 div 2
(1*25)19 = 2; BINCIN(2)+0.
= 19 * 25 Bincin(2)2 mod 4 <> 0 str = ‘1’ 2 div
= 475. 2 = 1 BINCIN(1)+1.
Bincin(1)1 mod 4 <> 0 str = ‘1’ 1 div
4. D. 15
2 = 0; BINCIN(0)+1
Pembahasan: = 1101101.
F(3) = 2f(2)
= 2 * 2f(1) 7. C. 9
= 2 * 2 * 2f(0) Pembahasan:
= 2* 2 *2 Fungsi sapi itu fungsi 2 pangkat bera­
=8 pa yang hasinya kucing,
-> Fungsi f(n) untuk menghitung 2n. Contoh kucing = 512.
Maka g(3): 2 pangkat n = 512.
G(3) = f(3) + g(2) N = 9.
G(2) = f(2) + g(1) Fungsi ayam(rumput(9).
G(1) = f(1) + g(0) Jalankan dulu fungsi rumput(9).
G(1) = 2 + 1 = 3 Saat batu = 9.
G(2) = 4 + 3 = 7 C = 2.
G(3) = 8 + 7 = 15 A = 4.
-> fungsi g(n) untuk menghitung Batu = 9 div 2 = 4.
2n+1 – 1. Saat batu = 4.
C = 2.
5. E. 1024
A = 16.
Pembahasan: Batu = 4 div 2 = 2.
Fungsi f(n) untuk menghitung 2n Saat batu = 2.
Maka C = 2.
F(10) = 210 = 1024 A = 256.
Batu = 2 div 2 = 1.

213
Saat batu = 1. P(9) = a9
C = 512. P(8) = a8
A = 65536. P(7) = a7
Batu = 1 div 2 = 0 (selesai). P(6) = a6
Rumput = c = 512. P(5) = a5, p(10) = a5, a10
Sekarang fungsi ayam(512). P(4) = a4, p(8), p(9) = a4, a8, a9
Ayam(512) = ayam(1024) + s (512). P(3) = a3, p(6), p(7) = a3, a6, a7
Ayam(512) = 0 + 9 = 9. P(2) = a2, p(4), p(5) = a2, a4, a8, a9,
a5, a10
8. A. 44
P(1) = a1, p(2), p(3) = a1, a2, a4, a8,
Pembahasan: a9, a5, a10, a3, a6, a7
Ayam(4) = ayam(8) + s(4) P(1) = a1, a2, a4, a8, a9, a5, a10, a3,
Ayam(8) = ayam(16) + s(8) a6, a7
Ayam(16) = ayam(32) + s(16) Karena isi array di pilihan soal angka-
Ayam(32) = ayam(64) + s(32) nya dari 1-10, maka:
Ayam(64) = ayam(128) + s(64) A1 nilainya harus 1
Ayam(128) = ayam(256) + s(128) A2 nilainya harus 2
Ayam(256) = ayam(512) + s(256) A4 nilainya harus 3
Ayam(512) = ayam(1024) + s(512) A8 nilainya harus 4
Jadi diperoleh ayam(4) = 44. Sampai
9. B. (1, 2, 8, 3, 6, 9, 10, 4, 5, 7). A7 nilainya harus 10
Jadi, kalau diurutin arraynya dari a1,
Pembahasan:
a2, ..., a10 = 1, 2, 8, 3, 6, 9, 10, 4, 5, 7.
Var data: array[1..10] of integer = (3,
9, 2, 6, 1, 4, 7, 8, 5, 10); 10. A. 80
Procedure piring(n: integer); Pembahasan:
Begin Diketahui:
If (n<=10) then Yolo(19, 5) = yolo(5, 4) * yolo(5, 4) * 5
Begin = (yolo(4, 1) * yolo(4, 1) * 4) * (yolo(4,
Write(data[n], ’ ‘); 1) * yolo(4, 1) * 4) * 5
Piring(n*2); = ((yolo(1, 0) * yolo(1, 0) * 1) * (yolo(1,
Piring(n*2+1); 0) * yolo(1, 0) * 1) * 4) * ((yolo(1, 0) *
End; yolo(1, 0) * 1) * (yolo(1, 0) * yolo(1, 0)
End; * 1) * 4) * 5
Array isinya (a1, a2, a3..., 10) = ((1 * 1 * 1) * (1 * 1 * 1) * 4) * ((1 * 1
Karena n<=10, kita coba nyari p(1) * 1) * (1 * 1 * 1) * 4) * 5
dari p(10) terus p(9) terus p(8), dst = (1 * 1 * 4) * (1 * 1 * 4) * 5
P(10) = a10 (p(20) dan p(21) gk ada = 4 * 4 * 5
karena lebih dari 10). = 80

214
Y mod x = y; jika x > y D= d+b
Yolo(x, y) = (yolo(y, x mod y)) ^ 2 * y; Maka a= 23-4=19, c=0+1=1, d=
untuk x > y dan y > 0. 0+4=4
A=19-4=15, c=1+1=2, d= 4+4=8
11. D. 4
A=15-4=11, c=2+1=3, d=8+4=12
Pembahasan: A= 11-4= 7, c=3+1=4, d=12+4=16
Yolo(9, y) = 4 A= 7-4=3, c=4+1=5, d=16+4=20
Yolo(y, 9 mod y) * yolo(y, 9 mod y) * Jadi a baru=3 dan 3<4, maka program
y = 4. tersebut berhenti dan output kelu­
Cari nilai y agar 9 mod y = 1, yaitu y arannya c=5 d=20.
= 4. Karena:
Yolo(4, 9 mod 4) * yolo(4, 9 mod 4) 14. D. 2
*4=4 Pembahasan:
Yolo(4, 1) * yolo(4, 1) * 4 = 4 Diketahui:
Dan yolo(4, 1) = 1 (seperti nomor 48), For i:= 0 to ((1 shl n) – 1 do
maka: Begin
1 * 1 * 4 = 4 (benar) For j:= 0 to n - 1 do
Sehingga y = 4. Begin
If((i and (1 shl j)) <> 0)then
12. E. 1
Write(‘1’)
Pembahasan: Else
X=x*x jadi x=10*10 Write(‘0’);
Y=x jadi y=100. End;
Lalu x=x div x. Writeln;
Jadi x=100 div 100 maka hasilnya End;
x=1. Yang dicari baris ke-5, artinya hanya
13. D. 5 20 pada saat i ke 5 saja (i dimulai dari
0 “i = 4”), j dimulai dari angka 0,
Pembahasan:
diakhiri oleh n-1 menandakan iterasi
Diketahui:
loop berjumlah tepat N.
While (a>b) do
Lalu untuk mendalami kodenya
Begin
If ( ( i and (1 shl j ) ) <> 0 ) then
A:= a-b;
“ <> 0 “ artinya jika hasil dari binary
C:= c+1;
operator “ (i and (1 shl j)) “ Tidak sama
D:= d+b;
dengan 0 maka write(“1”)
End;
Sebaliknya jika sama dengan 0 maka
Writeln(c, ’ ‘, d);
write(“0”);
A= 23, b=4, c=0, d=0
Untuk j pertama yaitu j = 0
A=a-b
Kita masukkan ke dalam persamaan
C= c+1

215
(i and (1 shl j)) <> 0 16. E. x = 7, y = 4
(4 and (1 shl 0)) <> 0 Pembahasan:
(4 and 1 ) <> 0 Pertama, Konversi 3 dan 4 menjadi
Binarynya (4 and 1) angka biner
4 = 100 3 = 011
1 = 001 4 = 100
------------- Operasi xor akan menghasilkan nilai
000 = 0 true apabila a=true dan b=false atau
Karena sama dengan 0 a=false dan b=true.
Maka write(“0”) Sehingga:
Untuk j yg kedua j = 1 X=7
(i and (1 shl j)) <> 0 X=3
(4 and (1 shl 1)) <> 0 X=7
(4 and 2) <> 0 Maka jawaban yang benar adalah
Binarynya (4 and 2) x=7 dan y=4.
4 = 100
2 = 010 17. A. x = 1, y = 0.
------------- Pembahasan:
000 = 0 1 = 001
Karena sama dengan 0 make 0 = 000
write(“0”) maka:
Untuk terakhir j = 2 X=1
(5 and (1 shl 2)) <> 0 X=1
(5 and 4) <> 0 X=1
Binarynya (5 and 4) Jadi, x = 1 dan y = 0.
5 = 101
18. B. 17
4 = 100
Pembahasan:
------------
Menggunakan teknik seperti merge
100 = 4
sort.
Tidak sama dgn 0 maka write(“1”)
Dengan cara membagi 2 tiap pe-
Setelah didapat stringnya “001”
manggilan swap menggunakan re-
Banyak 0 adalah 2.
kursif.
15. B. 4 Jadi banyaknya data N = 18 (pada
Pembahasan: soal).
J:= 0 to n-1 , kompleksit J = O(N) (5, 8, 10, 11, 25, 30, 33, 42, 49, 54, 63,
Iterasinya unik, “1100” mempunyai 64, 66, 75, 78, 84, 93, 96).
tepat 4 digit . Artinya N = 4. Frekuensi data sekarang = 18.

216
Bagi 2 ambil tengah nya yaitu swap(1, F(3) = F(1) + F(2) + 1 = 0 + 1 + 1 = 2
n/2, n) atau swap(1, 9, 18). F(4) = F(2) + F(2) + 1 = 1 + 1 + 1 = 3
([5, 8, 10, 11, 25, 30, 33, 42, 49], [54, F(5) = F(2) + F(3) + 1 = 1 + 2 + 1 = 4
63, 64, 66, 75, 78, 84, 93, 96]) F(9) = F(4) + F(5) + 1 = 3 + 4 + 1 = 8
([54, 63, 64, 66, 75, 78, 84, 93, 96], [5, F(18) = F(9)+ F(9) + 1 = 8 + 8 + 1 =
8, 10, 11, 25, 30, 33, 42, 49]) 17
Lalu setelah membagi 2 dan mela­ku­
19. E. 3, 5, 1, 6, 4, 2
kan swap .
Pisahkan rekursif mereka dengan Pembahasan:
mem­bagi dua lagi seterusnya sampai Array:
dengan tersisa 1 angka (6, 4, 3, 5, 1, 2) swap(1, 2, 4)
[54, 63, 64, 66, 75, 78, 84, 93, 96] ([6, 4], [3, 5], 1, 2)
==== [5, 8, 10, 11, 25, 30, 33, 42, 49] ([3, 5], [6, 4], 1, 2)
([54, 63, 64, 66, 75], [78, 84, 93, 96]) (3, 5, 6, 4, 1, 2) -> swap(3, 4, 5)
([78, 84, 93, 96], [54, 63, 64, 66, 75]) (3, 5, [6, 4], [1], 2)
Bagi 2 lagi (3, 5, [1], [6, 4], 2)
([78, 84, 93, 96] ===== [54, 63, 64, (3, 5, 1, 6, 4, 2).
66, 75]) 20. D. 2652
([78, 84], [93, 96])
Pembahasan:
([93, 96], [78, 84])
Diketahui:
Bagi 2 lagi
A:= 0
([93, 96] ===== [78, 84])
For i:= C to D do
([93], [96])
A:=(A+i) mod 5
Bagi 2 lagi
Output (A)
([93], [96])
Karena mod 5, a dan c hanya bisa
([96], [93])
memiliki nilai 0, 1, 2, 3, 4.
(96 ==== 93)
Lalu compute prefix sumnya
Atau bisa juga tanpa memperdulikan
Ambil dari range c ke d hanya jika
angka-angka hanya dengan frekuensi
pref[d]-pref[c]==3;
setiap bagi 2.
Nilainya terdiri dari 1, 2, 3, 4. Maka
F(18) = F(9) + F(9) + 1
prefix sum nya juga berulang
F(9) = F(4) + F(5) + 1
Memiliki nilai 0, 1, 3, 1, 0. Ada seba­
F(5) = F(2) + F(3) + 1
nyak 51 pola berulang.
F(4) = F(2) + F(2) + 1
Bagi kasus:
F(3) = F(1) + F(2) + 1
Saat pola ke 1: 3 bisa dipasangkan
F(2) = F(1) + F(1) + 1
dengan 0 pertama. =1.
F(1) = 0;
Saat pola ke 2: 3 bisa dipasangkan
F(1) = 0;
dengan 3 0 pertama. =3.
F(2) = F(1) + F(1) + 1 = 0 + 0 + 1 = 1

217
Sampai pada Saat i = 4.
Saat pola ke 51: 3 bisa dipasangkan J = 7 downto 4 -> 4 bintang
dengan (51)*2-1 0 pertama = 101
23. B . X=35, y=20
Jadi total ada 2601.
Kasus kedua yaitu jika Pembahasan:
pref[d]==pref[c]==3, hal ini sudah Diektahui:
memenuhi jadi ditambah lagi 51 . X dan y bertipe integer
=2601+51= 2652. X:= 20; y:= 35;
X:= x + y;
21. A. i dan 4 Y:= x - y;
Pembahasan: X:= x - y;
Diketahui: X=20, y=35.
Nilai x tidak ada yang benar, nilai y = X=20+35=55.
8 - i, sehingga Y=55-35=20.
Saat i = 1. X=55-20=35.
J = 7 downto 1 -> 7 bintang.
24. C. 5.17
Saat i = 2
J = 6 downto 2 -> 5 bintang. Pembahasan:
Saat i = 3. Var
J = 5 downto 3 -> 3 bintang. Arr: array[1..30] of longint = ( 5, 5, 7,
Saat i = 4. 8, 6, 8, 5, 8, 4, 6, 6, 3, 4,
J = 4 downto 4 -> 1 bintang. 2, 8, 0, 9, 2, 3, 4, 7, 8, 5, 4, 5, 3, 9, 8,
0, 3 );
22. E I, c: longint;
Pembahasan: Begin
Diketahui: C:= 0;
For i:=1 to 4 do begin For i:=1 to length(arr) do begin
For j:=1 to x do write(‘ ‘); Inc(c, arr[i]);
For j:=y downto i do write(‘*’); End;
Writeln; Writeln((c/length(arr)):0:2);
End; End.
Nilai x tidak ada yang benar, nilai y = Jadi itu bisa dilihat dari for i:=1 sam-
2*i -1, sehingga pai panjang array
Saat i = 1. Dan inc(c, arr[i])berfungsi menambah
J = 1 downto 1 -> 1 bintang. c dengan arr[i].
Saat i = 2. Jadi C = 0+ arr[1] +arr[2]+.....+arr[30]
J = 3 downto 2 -> 2 bintang. Dan dibagian outputnya itu diminta
Saat i = 3. C dibagi dengan panjang 30
J = 5 downto 3 -> 3 bintang.

218
155/30 = 5, Swag = swag(x mod 7) * swag(x div
1666666666666666666666666666667 7) * 7
((c/length(arr)):0:2). Karena 21 = 3 * 7
Berarti hanya diminta 2 digit dibe- Maka harus ditemukan angka (ang­
lakang koma sehingga menjadi 5, gap saja z) yang jika:
17(dibulatkan). Z mod 7 =1.
Z div 7 = 3.
25. C, 55
Oleh karena itu, dipilih 22, karena: 22
Pembahasan: mod 7.
Diketahui: = 1, 22 div 7.
Sn=(n+1) n/2 . = 3.
Sehingga Jadi swag(22 mod 7) * swag(22 div 7) * 7.
S10= (n+1) n/2. = 1*3*7.
S10= (10+1) 10/2. = 21.
S10= (11) 5.
S10= 55. 28. D. 5
Pembahasan:
26. E. 500500
Perulangan dari 1 sd 10 (karena nilai
Pembahasan: variabel perulangan i dari 1 sd 10)
Diketahui: Proses ke: 1.
Un = a+(n-1)*b, a dari angka pertama Nilai awal arr [1..10]:=(2, 3, 4, 5, 6, 7,
Sn=((a+Un)/2).n, n dari angka yang 8, 9, 10, 11)
akan dicari Perulangan j (2 sd 10) ==> j:=i+1
S1000=((1+1000)/2).n maka i+1 di sini hasilnya adalah 2 sd
=1001/2.1000 10.
=500500. ( j=2) diketahui
27. B. 21 I=1, j=2, arr[i]=2, arr[ j]=3
Karena arr[1] tidak sama dengan -1
Pembahasan:
maka lanjut proses
Diketahui:
S=arr[ j]/arr[i];
Function swag(x:integer):integer;
=3/2 = 1
Begin
Karena S*arr[i] (2*1) tidak sama de-
If (x<7) then swag:=x
ngan 3 maka lewatkan proses logika
Else swag:=swag(x mod 7)*swag(x
Arr[2]=3;****
div 7)*7;
Kemudian lanjut ke j=3
End;
( j=3)diketahui
Begin
I=1, j=3, arr[i]=2, arr[ j]=4
Writeln(swag(71));
Karena arr[1] tidak sama dengan -1
End.
maka lanjut proses

219
S=arr[ j]/arr[i]; ( j=4) diketahui
=4/2 = 2 I=2, j=4, arr[i]=3, arr[ j]=5
Karena S*arr[i] (2*2)=sama dengan 4 If (arr[i] = -1)then break ==>lewati
(arr[ j]) maka S:= arr[ j]/arr[i];
Ada perubahan/perhitungan = 5/3=1
Arr[i]:= arr[i] + arr[ j]; If (s * arr[i] = arr[ j]) ==>lewati
Arr[i]:= 2 + 4 = 6 Arr[4]=5;****
Arr[1]:= 6 ( j=5) diketahui
Arr[ j]:= arr[i] - arr[ j]; I=2, j=5, arr[i]=3, arr[ j]=6
Arr[ j]:= 6-4 = 2 If (arr[i] = -1)then break ==>lewati
Arr[3]:= 2;**** S:= arr[ j]/arr[i];
Arr[i]:= arr[i] - arr[ j]; = 6/3=2
Arr[i]:= 6 - 2 = 4 Karena S*arr[i] (2*3)=sama dengan 6
Arr[1]:= 4 (arr[ j]) maka
Arr[i]:= -1; Ada perubahan/perhitungan
Arr[1]:= -1;**** Arr[i]:= arr[i] + arr[ j];
( j=4)diketahui Arr[i]:= 3 + 6 = 9
I=1, j=4, arr[i]=-1, arr[ j]=5 Arr[2]:= 9
Karena arr[1] sama dengan -1 maka Arr[ j]:= arr[i] - arr[ j];
break Arr[ j]:= 9-6 = 3
Arr[4]=5;**** Arr[5]:= 3;****
Kesimpulan: Arr[i]:= arr[i] - arr[ j];
Nilai arr[1]= -1 Arr[i]:= 9 - 3 = 6
Nilai arr[2]= 3 Arr[2]:= 6
Nilai arr[3]= 2 Arr[i]:= -1;
Nilai arr[4]= 5 Arr[2]:= -1;****
Nilai akhir arr [1..10]:=(-1, 3, 2, 5, 6, 7, ( j=6)diketahui
8, 9, 10, 11) I=2, j=6, arr[i]=-1, arr[ j]=7
Proses ke: 2 Karena arr[1] sama dengan -1 maka
Nilai awal arr [1..10]:=(-1, 3, 2, 5, 6, 7, break
8, 9, 10, 11) Arr[6]=7;****
Perulangan j (3 sd 10) Kesimpulan:
( j=3) diketahui Nilai arr[2]=-1
I=2, j=3, arr[i]=3, arr[ j]=2 Nilai arr[3]=2
If (arr[i] = -1)then break ==>lewati Nilai arr[4]=5
S:= arr[ j]/arr[i]; Nilai arr[5]=3
= 2/3=0 Nilai arr[6]=7
If (s * arr[i] = arr[ j]) ==>lewati Nilai akhir arr [1..10]:=(-1, -1, 2, 5, 3,
Arr[3]=2;**** 7, 8, 9, 10, 11)

220
Proses ke: 3 Arr[i]:= 10 - 2 = 8
Nilai awal arr [1..10]:=(-1, -1, 2, 5, 3, 7, Arr[3]:= 8
8, 9, 10, 11) Arr[i]:= -1;
Perulangan j (4 sd 10) Arr[3]:= -1;****
( j=4)diketahui ( j=8)diketahui
I=3, j=3, arr[i]=2, arr[ j]=5 I=3, j=6, arr[i]=-1, arr[ j]=9
If (arr[i] = -1)then break ==>lewati Karena arr[1] sama dengan -1 maka
S:= arr[ j]/arr[i]; break
= 5/2=2 Arr[8]=9;****
If (s * arr[i] = arr[ j]) ==>lewati Kesimpulan:
Arr[4]=5;**** Nilai arr[3]=-1
( j=5) diketahui Nilai arr[4]=5
I=3, j=5, arr[i]=2, arr[ j]=3 Nilai arr[5]=3
If (arr[i] = -1)then break ==>lewati Nilai arr[6]=7
S:= arr[ j]/arr[i]; Nilai arr[7]=2
= 3/2=1 Nilai arr[8]=9
If (s * arr[i] = arr[ j]) ==>lewati Nilai akhir arr [1..10]:=(-1, -1, -1, 5, 3,
Arr[5]=3;**** 7, 2, 9, 10, 11)
( j=6) diketahui Proses ke: 4
I=3, j=6, arr[i]=2, arr[ j]=7 Nilai awal arr [1..10]:=(-1, -1, -1, 5, 3,
If (arr[i] = -1)then break ==>lewati 7, 2, 9, 10, 11)
S:= arr[ j]/arr[i]; Perulangan j (5 sd 10)
= 7/2=3 ( j=5)diketahui
If (s * arr[i] = arr[ j]) ==>lewati I=4, j=5, arr[i]=5, arr[ j]=3
Arr[6]=7;**** If (arr[i] = -1)then break ==>lewati
( j=7) diketahui S:= arr[ j]/arr[i];
I=3, j=7, arr[i]=2, arr[ j]=8 = 3/5=0
If (arr[i] = -1)then break ==>lewati If (s * arr[i] = arr[ j])
S:= arr[ j]/arr[i]; ==>lewati
= 8/2=4 Arr[5]=3;****
If (s * arr[i] = arr[ j]) ( j=6)diketahui
Ada perubahan/perhitungan I=4, j=6, arr[i]=5, arr[ j]=7
Arr[i]:= arr[i] + arr[ j]; If (arr[i] = -1)then break ==>lewati
Arr[i]:= 2 + 8 = 10 S:= arr[ j]/arr[i];
Arr[3]:= 10 = 7/5=1
Arr[ j]:= arr[i] - arr[ j]; If (s * arr[i] = arr[ j])
Arr[ j]:= 10-8 = 2 ==>lewati
Arr[7]:= 2;**** Arr[6]=7;****
Arr[i]:= arr[i] - arr[ j]; ( j=7)diketahui

221
I=4, j=7, arr[i]=5, arr[ j]=2 Nilai arr[9]=5
If (arr[i] = -1)then break ==>lewati Nilai arr[10]=11
S:= arr[ j]/arr[i]; Nilai akhir arr [1..10]:=(-1, -1, -1, -1, 3,
= 2/5=0 7, 2, 9, 5, 11)
If (s * arr[i] = arr[ j]) Proses ke: 5
==>lewati Nilai awal arr [1..10]:=(-1, -1, -1, -1, 3,
Arr[7]=2;**** 7, 2, 9, 5, 11)
( j=8)diketahui Perulangan j (6 sd 10)
I=4, j=8, arr[i]=5, arr[ j]=9 ( j=6)diketahui
If (arr[i] = -1)then break ==>lewati I=5, j=6, arr[i]=3, arr[ j]=7
S:= arr[ j]/arr[i]; If (arr[i] = -1)then break ==>lewati
= 9/5=1 S:= arr[ j]/arr[i];
If (s * arr[i] = arr[ j]) = 7/3=2
==>lewati If (s * arr[i] = arr[ j])
Arr[8]=9;**** ==>lewati
( j=9)diketahui Arr[6]=7;****
I=4, j=8, arr[i]=5, arr[ j]=10 ( j=7)diketahui
If (arr[i] = -1)then break ==>lewati I=5, j=7, arr[i]=3, arr[ j]=2
S:= arr[ j]/arr[i]; If (arr[i] = -1)then break ==>lewati
= 10/5=2 S:= arr[ j]/arr[i];
If (s * arr[i] = arr[ j]) = 2/3=0
Ada perubahan/perhitungan If (s * arr[i] = arr[ j])
Arr[i]:= arr[i] + arr[ j]; ==>lewati
Arr[i]:= 5 + 10 = 15 Arr[7]=2;****
Arr[4]:= 15 ( j=8)diketahui
Arr[ j]:= arr[i] - arr[ j]; I=5, j=8, arr[i]=3, arr[ j]=9
Arr[ j]:= 15-10 = 5 If (arr[i] = -1)then break ==>lewati
Arr[9]:= 5;**** S:= arr[ j]/arr[i];
Arr[i]:= arr[i] - arr[ j]; = 9/3=3
Arr[i]:= 15 - 5 = 10 If (s * arr[i] = arr[ j])
Arr[4]:= 10 Ada perubahan/perhitungan
Arr[i]:= -1; Arr[i]:= arr[i] + arr[ j];
Arr[4]:= -1;**** Arr[i]:= 3 + 9 = 12
Kesimpulan: Arr[5]:= 12
Nilai arr[4]=-1 Arr[ j]:= arr[i] - arr[ j];
Nilai arr[5]=3 Arr[ j]:= 12-9 = 3
Nilai arr[6]=7 Arr[8]:= 3;****
Nilai arr[7]=2 Arr[i]:= arr[i] - arr[ j];
Nilai arr[8]=9 Arr[i]:= 12 - 9 = 3

222
Arr[5]:= 3; Arr[9]=5;****
Arr[i]:= -1; Proses ke: 7
Arr[5]:= -1;**** Nilai awal arr [1..10]:=(-1, -1, -1, -1,
( j=9)diketahui -1, 7, 2, 3, 5, 11)
I=5, j=9, arr[i]=-1, arr[ j]=5 Perulangan j (8 sd 10)
If (arr[i] = -1)then break ( j=8)diketahui
Arr[9]=5;**** I=7, j=8, arr[i]=2, arr[ j]=3
Kesimpulan: If (arr[i] = -1)then break ==>lewati
Nilai arr[5]=-1 S:= arr[ j]/arr[i];
Nilai arr[6]=7 = 3/2=1
Nilai arr[7]=2 If (s * arr[i] = arr[ j]) ==> lewati
Nilai arr[8]=3 Arr[8]=3;****
Nilai arr[9]=5 ( j=9)diketahui
Nilai akhir arr [1..10]:=(-1, -1, -1, -1, I=7, j=9, arr[i]=2, arr[ j]=5
-1, 7, 2, 3, 5, 11) If (arr[i] = -1)then break ==>lewati
Proses ke: 6 S:= arr[ j]/arr[i];
Nilai awal arr [1..10]:=(-1, -1, -1, -1, = 5/2=2
-1, 7, 2, 3, 5, 11) If (s * arr[i] = arr[ j]) ==> lewati
Perulangan j (7 sd 10) Arr[9]=5;****
( j=7)diketahui Kesimpulan:
I=6, j=7, arr[i]=7, arr[ j]=2 Nilai arr[7]=2
If (arr[i] = -1)then break ==>lewati Nilai arr[8]=3
S:= arr[ j]/arr[i]; Nilai arr[9]=5
= 2/7=0 Nilai arr[10]=11
If (s * arr[i] = arr[ j]) ==> lewati Nilai akhir arr [1..10]:=(-1, -1, -1, -1,
Arr[7]=2;**** -1, 7, 2, 3, 5, 11)
( j=8)diketahui Proses ke: 8
I=6, j=8, arr[i]=7, arr[ j]=3 Nilai awal arr [1..10]:=(-1, -1, -1, -1,
If (arr[i] = -1)then break ==>lewati -1, 7, 2, 3, 5, 11)
S:= arr[ j]/arr[i]; Perulangan j (9 sd 10)
= 3/7=0 ( j=9)diketahui
If (s * arr[i] = arr[ j]) ==> lewati I=8, j=9, arr[i]=3, arr[ j]=5
Arr[8]=3;**** If (arr[i] = -1)then break ==>lewati
( j=9)diketahui S:= arr[ j]/arr[i];
I=6, j=9, arr[i]=7, arr[ j]=5 = 5/3=1
If (arr[i] = -1)then break ==>lewati If (s * arr[i] = arr[ j]) ==> lewati
S:= arr[ j]/arr[i]; Arr[9]=5;****
= 5/7=0 Kesimpulan:
If (s * arr[i] = arr[ j]) ==> lewati Nilai arr[8]=3

223
Nilai arr[9]=5 Selain itu, dilakukan x + 1, terjadi
Nilai arr[10]=11 operasi penjumlahan +1.
Nilai akhir arr [1..10]:=(-1, -1, -1, -1, Berdasarkan pemodelan di atas, kita
-1, 7, 2, 3, 5, 11) tahu bahwa untuk setiap iterasi dari
Proses ke: 9 fungsi rekursi wah() akan melakukan
Nilai awal arr [1..10]:=(-1, -1, -1, -1, penjumlahan +1.
-1, 7, 2, 3, 5, 11) Dan tebak saja, adanya operasi pen-
Perulangan j (10 sd 10) jumlahan dan pengurangan untuk x
( j=10)diketahui serta y semata-mata hanya agar x =
I=9, j=10, arr[i]=5, arr[ j]=11 0 dan y = 0.
If (arr[i] = -1)then break ==>lewati Jadi, wah(3, 3) sama saja dengan 3
S:= arr[ j]/arr[i]; + 3 = 6. Dan, wah(-4, 2) sama saja
= 11/5=2 dengan |-4| + 2 = 4 + 2 = 6. Maka, kita
If (s * arr[i] = arr[ j]) ==> lewati mendapatkan persamaan berikut:
Arr[10]=11;**** Wah(x, y) = |x| + |y|.
Kesimpulan: Wah(3, 3) = |3| + |3| = 6.
Nilai arr[9]=5 Jadi diperoleh hasil = 6.
Nilai arr[10]=11
30. B. 12
Nilai akhir arr [1..10]:=(-1, -1, -1, -1,
Diketahui:
-1, 7, 2, 3, 5, 11).
Function wah(x, y: integer): integer;
Yang ditanyakan adalah nilai arr[9] ,
Begin
sehingga urutan data arr ke 9 adalah
If ((x = 0) and (y = 0)) then wah:= 0;
5.
Else if (x > y) then
29. B. 6 Begin
Diketahui: If (x > -y) then wah:= wah(x – 1, y)
Untuk kodisi x = 0 dan y = 0, keluar- + 1;
annya adalah 0. Else wah:= wah(x, y + 1) + 1;
Untuk kodisi x > y atau x - y > 0, End
Untuk kondisi x > -y atau x + y > 0, Else
dilakukan x - 1, terjadi operasi pen- Begin
jumlahan +1. If (x > -y) then wah:= wah(x, y - 1)
Selain itu, dilakukan y + 1, terjadi + 1;
operasi penjumlahan +1. Else wah:= wah(x + 1, y) + 1;
Selain itu, End;
Untuk kondisi x > -y atau x + y > End;
0, dilakukan y - 1, terjadi operasi Untuk kondisi x = 0 dan y = 0,
penjumlahan +1. keluarannya adalah 0.
Untuk kodisi x > y atau x - y > 0,

224
Untuk kondisi x > -y atau x + y > Deret bilangan: 1, 2, 5, 10, 17, 26,
0, dilakukan x - 1, terjadi operasi 37, dan seterusnya selama hingga
penjumlahan +1. pertama kali mencetak angka yang
Selain itu, dilakukan y + 1, terjadi > 1000.
operasi penjumlahan +1. Un = 1 + (n-1)2.
Selain itu, 1000 < 1 + (n-1)2. => didapat n
Untuk kondisi x > -y atau x + y > 0, minimal = 33.
dilakukan y - 1, terjadi operasi pen- Berarti ‘j’ sama dengan bilangan gan­
jumlahan +1. jil ke 33, yaitu 2 x 33 - 1 = 65.
Selain itu, dilakukan x + 1, terjadi
3. A. 9902
operasi penjumlahan +1.
Diketahui: wah(x, y) = |x| + |y| Pembahasan:
Kemungkinan hasil penjumlahan be- Diketahui:
rupa 3: Algoritma dalam loop waktunya kon-
A = {(-3, 0), (-2, -1), (-1, -2), (0, -3), (1, stan, berarti:
-2), (2, -1), (3, 0), (-2, 1), (-1, 2), (2, 1), for i:= 1 to n do
(1, 2), (0, 3)} for j:= 1 to i do
N(A) = 12. A();
Jadi, jawabannya 12. lalu kode tadi manggil A() sebanyak 1
+ 2 + 3 + ... + n kali -> kalo n = 100
makan waktu 1 detik,
OSN TINGKAT PROVINSI maka bisa dihitung seperti berikut:
n = 100 dieksekusi 1 detik. n=10000?
1. B. 400
S100 = 50(101) = 5050 S10000 =
Pembahasan:
5000(1+10000) = 50005000 kali
Diketahui:
S10000/S100 = 9902 detik.
for i:= 1 to n do
for j:= 1 to n do 4. A. 300
XX(i, j); Pembahasan:
n1= 100 Diketahui:
n2=2000 Untuk setiap i di mana i adalah bila­
t1=1 ngan genap, hitung akan ditam­
(2000/100)^2 x 1 = 20^2 = 400 detik. bahkan sebagai berikut:
j = 1, hitung:= hitung + i
j = 2, hitung:= hitung + 2
j = 3, hitung:= hitung + i
2. C. 65
j = 4, hitung:= hitung + 4
Pembahasan:
j = 5, hitung:= hitung + i
Diketahui:
j = 6, hitung:= hitung + 6

225
j = 7, hitung:= hitung + i coba(155) = coba(77)+”1”
j = 8, hitung:= hitung + 8 = coba(38)+”1”+”1” =
j = 9, hitung:= hitung + i coba(19)+”0”+”1”+”1” =
j = 10, hitung:= hitung + 10 coba(9)+”1”+”0”+”1”+”1” =
atau untuk setiap i genap, maka dihi- coba(4)+”1”+”1”+”0”+”1”+”1” =
tung dengan ditambahkan sebanyak coba(2)+”0”+”1”+”1”+”0”+”1”+”1” =
5*i + 30. coba(1)+”0”+”0”+”1”+”1”+”0”+”1”+
Sekarang i genap adalah 2, 4, 6, 8, 10. ”1” =
Berarti: coba(0)+”1”+”0”+”0”+”1”+”1”+”0”+”
hitung = 5 * (2 + 4 + 6 + 8 + 10) + 5 1”+”1” = “”+”1”+”0”+”0”+”1”+”1”+”
* 30 = 300. 0”+”1”+”1” =”10011011”
fungsi kode adalah mengubah bi-
5. E. 1267500
langan base 10 jadi base 2.
Pembahasan:
Diketahui: 7. B. 8
hitung:=0; Pembahasan:
n:=10; Diketahui:
for i:=1 to n do function F1(i, j: integer): integer;
if (i mod 2 = 0) then begin
for j:=1 to 10 do if (i < 0) or ( j < 0) then
if ( j mod 2 = 0) then F1:= max(i, j) + 1
hitung:= hitung + j else if i = j then
else F1:= F1(i + 1, j - 1)
hitung:= hitung + i; else
writeln(hitung); F1:= F1(i - 2, j - 1) + F1(i - 1, j - 2);
a = 40 end;
b = 10 Pemanggilannya yaitu:
jika cari n = 1000. F(4, 3) --> f(2, 2) + f(3, 1)
Maka dari 1000 ada 500 bilangan ge- F(2, 2) --> f(3, 1)
nap, F(3, 1) --> f(1, 0) + f(2, -1)
Sehingga: F(1, 0) --> f(-1, -1) + f(0, -2)
Sn = n/2 (2a+(n-1)b) Sebagai base case maka nilai:
S500 = 500/2 ( 80 + (499)*10) F(2, -1) = 2+1 = 3
= 250 (5070) F(-1, -1) = -1 + 1 = 0
= 1267500. Kemudian masukan nilai tersebut:
F(4, 3) --> f(2, 2) + f(3, 1) = 8
6. E. 10011011
F(2, 2) --> f(3, 1) = 4
Pembahasan: F(3, 1) --> f(1, 0) + f(2, -1) = 4
F(1, 0) --> f(-1, -1) + f(0, -2) = 1

226
Nilai f(4, 3) adalah 8. Pembahasan:
Perhatikan bahwa suatu bilangan
8. C. 2x
akan dicetak jika T[i] bernilai true.
Pembahasan: Jadi pada perintah yang hilang
Pengeksekusian F(8) akan terjadi se- (di mana terjadi loop untuk setiap
cara rekursi sebagai berikut: bilangan kelipatan i dimulai dari i2),
F(8) = F(7) + F(6) untuk tiap bilangan kelipatan i, T[i ×
F(7) = F(6) + F(5) j] harus dibuat false.
F(6) = F(5) + F(4) jadi isi perintah yang hilang adalah:
F(5) = F(4) + F(3) T[i × j]:= false.
F(4) = F(3) + F(2)
F(3) = F(2) + F(1) 11. B. 25 kali
Dimana F(2) dan F(1) adalah base Pembahasan:
case, jadi rekursi dihentikan. Perintah writeln dieksekusi sebanyak-
Maka F(4) akan dieksekusi sebanyak banyaknya bilangan prima yang ku­
2x. rang dari sama dengan max. Pada
soal ini, ada 25 bilangan prima yang
9. A. Banyaknya eksekusi f(n-k+1) +
bernilai kurang dari sama dengan
banyaknya eksekusi f(n-k+2)
100. Jadi, writeln dieksekusi 25 kali.
Pembahasan:
function F5(n: integer): integer; 12. D. 31
begin Pembahasan:
if (n = 1) or (n = 2) then Buat dengan tabel
F5:= 1 i d a b c
else - - 1 1 1
4 5 1 1 3
F5:= F5(n - 1) + F5(n - 2);
5 3 1 3 5
end; 6 9 3 5 9
Dengan membentuk deret fibonacci 7 17 5 9 17
f(8)=1 8 31 9 17 31
f(7)=1 Jadi, diperoleh hasil 31.
f(6)=2
13. C .3
f(5)=3
Pembahasan:
f(4)=5
Diketahui:
f(n-k)=banyaknya eksekusi f(n-k+1)+
a:=2;
banyaknya eksekusi f(n-k+2).
b:=3;
for i:=p to q do
begin
10. D. T[i × j]:= false b:=i*(a+b);
end;

227
b= 108 di mana tiap p merupakan bilangan
b = a*(a+b) prima.
a = 2, b = 3 Pada fungsi KPK, pangkat dari tiap
b = 2 × (2 + 3) = 10 prima merupakan nilai maksimum
b = 2 × (2 + 10) = 24 dari tiap pangkatnya.
b = 2 × (2 + 24) = 52 Agar func(y) = x,
b = 2 × (2 + 52) = 108 tentu pada bilangan prima tertentu,
Karena memerlukan 4 tahap supaya pangkatnya pada x lebih tinggi dari
b = 108, maka q - p = 4 - 1 = 3. pangkat prima tersebut pada KPK
yang disebut pada sebelumnya.
14. A. 5
Perlu juga dipenuhi, bahwa x meru-
Pembahasan: pakan nilai terkecil yang memiliki pri-
Diketahui: ma dengan pangkat itu.
a:=2; Atau dengan kata lain, setiap x yang
b:=3; bisa dinyatakan dalam func(y) pasti
for i:=p to q do berbentuk pk, untuk suatu p prima
begin sembarang dan k bilangan bulat po­
b:=i*(a+b); sitif.
end; Jadi, 10 bilangan bulat positif yang
P=3 tidak bisa dinyatakan dalam pk
b=350 adalah 1, 6, 10, 12, 14, 15, 18, 20, 21,
a = 2, b = 3 22.
b = 3 × (2 + 3) = 15
b = 4 × (2 + 15) = 68 16. C.34
b = 5 × (2 + 68) = 350 Pembahasan:
Diperoleh bahwa nilai akhir i = 5, Diketahui:
maka jawabanya adalah 5. Inti dari program adalah bila ada
bilangan-bilangan dari 1 hingga
15. A. 1, 6, 10, 12, 14, 15, 18, 20, 21, 22
16-j yang dapat dibagi 1-15 secara
Pembahasan: berturut-turut, cetak 1 bintang. Jadi
Diketahui: kita deskripsikan satu per satu:
Agar func(y) = x, maka y harus habis j = 1 --> i = 1-15, 15*
dibagi 1, 2, 3, ..., x - 1. j = 2 --> i = 1-14, 7*
Perhatikan bahwa y terkecil yang me- j = 3 --> i = 1-13, 4*
menuhi pasti merupakan KPK dari 1, j = 4 --> i = 1-12, 3*
2, 3, ..., x - 1. j = 5 --> i = 1-11, 2*
Perlu diingat bahwa suatu bilangan y j = 6 --> i = 1-10, 1*
bisa dinyatakan dalam bentuk p1k1 j = 7 --> i = 1-9, 1*
× p2k2 × ... × pnkn, j = 8 --> i = 1-8, 1*

228
untuk j >8 maka hasilnya akan selalu Diketahui:
1 bintang karena tidak ada bilangan we: longint
dari 1-7 yang bisa dibagi 9. Z: array[1..15] of longint = (64, 19, 56,
maka 15+7+4+3+2+1+1+1 = 34 67, 66, 82,
bin­tang. 31, 20, 67, 10, 94, 100, 57, 14, 86);
1. f(3, 11),
17. B. 7
Karena gak sama, jadi dipecah jadi
Pembahasan: a=f(3, 7)
Jika masukan bilangan 77, maka pro- b=f(8, 11)
gram akan memberikan keluaran Sehingga memakai rumus di pro-
jika x>1 maka s(x div 2 + x mod 2) gram
sehingga x=77 adalah s(77)->h=0. 2. F(3, 7) sendiri juga dipecah, jadinya
s(77 div 2 + 77 mod 2) = s(28+1) a=f(3, 5)
=s(39)->h=1. b=f(6, 7)
s(39 div 2+ 39 mod 2)=s(20)->h=2. 3. f(3, 5) ini juga harus dipecah jadi
s(20 div 2 + 20 mod 2)=s(10) ->h=3. a=f(3, 4)
s(10 div 2 + 10 mod 2)=s(5) ->h=4. b=f(5, 5)
s(5 div 2+ 5 mod 2)=s(3) -> h=5. 4. f(3, 4) juga harus dipecah lagi jadi
s(3 div 2 + 3 mod 2)=s(2)->h=6. a=f(3, 3)
s(2 div 2 + 2 mod 2)=s(1)->h=7. b=f(4, 4)
18. C. 3 kali Angka sudah sama, sehingga:
a=f(3, 3)=z[3]=56
Pembahasan:
b=f(4, 4)=z[4]=67
function kibo(n: integer):integer;
Nilai 56 sama 67 nya itu diliat di var
begin
Karena a<b, maka didapat nilai
if (n = 2) or (n = 1) or (n = 0) then
F(3, 4)=56
kibo:= n
5. Kembali ke langkah 3, maka dida-
else kibo:= kibo(n-1) + kibo(n-3);
pat
end;
A=f(3, 4)=56.
kibo(7) = kibo(6) + kibo(4)
B=f(5, 5)=z[5]=66.
= kibo(5) + kibo(3) + kibo(3) +
Karena a<b juga, maka
kibo(1)
F(3, 5)=56.
= kibo(4) + kibo(2) + kibo(3) +
Jadi diperoleh we = 10.
kibo(3) + kibo(1)
= kibo(3) + kibo(1) + kibo(2) + 20. E. 900 kali
kibo(3) + kibo(3) + kibo(1) Pembahasan:
jadi totalnya adalah 3 kali For i:=1 to n do
19. D. 10 Begin
For j:=1 to (n div m) do
Pembahasan:

229
for k:=1 to m do = 1+proses(0)+proses(3)=3
writeln(‘*’); = 1+0+proses(1)+proses(2)=2
For j:=1 to (n mod m) do =1+0+1+proses(0)+proses(1) =1
writeln(‘-’); =1+0+1+0+1=3
End;
23. B. 11
Karena yang ditanyakan hanya sim-
bol ‘*’, maka untuk perulangan pen- Pembahasan:
cetakan ‘-’ maka boleh diabaikan. Diketahui:
Pencetakan simbol ‘*’ dilakukan seba­ Function meong(x: longint):integer;
nyak 30*(30 div 30 * 30) = 900 kali. Begin
if (x = 0) then
21. A. N2 meong:= 0
Pembahasan: else if (x mod 2 = 1) and ((x div 2)
Diketahui: mod 2 = 1) then
N div m = \left \lfloor \frac{n}{m} \ meong:= meong((x div 2) div 2) + 1
right \rfloor else
Banyak pencetakan simbol-simbol: meong:= meong(x + 1) + 1;
N(\left \lfloor \frac{n}{m} \right \rflo- End;
or m + (n\;mod\;m)) Begin
Perhatikan bahwa \left \lfloor \ writeln(meong(888));
frac{n}{m} \right \rfloor = \frac{n - End.
(n\;mod\;m)}{m} ---
Maka didapat: Function meong(x: longint):integer;
N(\frac{n - (n\;mod\;m)}{m}m + Begin
n\;mod\;m)) if (x = 0) then // base case, bila x = 0,
N((n - (n\;mod\;m)) + n\;mod\;m)) maka return 0
N(n). meong:= 0
N2. else if (x mod 2 = 1) and ((x div 2)
mod 2 = 1) then // literally ( jika x
22. D. 3
mod 4 = 3, maka)
Pembahasan: meong:= meong((x div 2) div 2) + 1
Diketahui: // literraly (x div 4)
Function proses(x: integer): integer; else
Begin meong:= meong(x + 1) + 1; // sampai
if(x <= 1) then proses:= x sini pastii sudah jelas. Simulasikan
else proses:= proses(x div 2 * x mod saja.
2) + proses(x div 2 + x mod 2); End;
End; Begin
Proses(11) = proses(1)+proses(6)=4 writeln(meong(888));

230
End. Diketahui:
Meong(888) akan jadi meong(891) + “jarak” adalah sebuah fungsi rekursi,
3 dengan basis jarak(1)=jarak(2)=1,
Meong(891) + 3 akan jadi meong(222) dan rekurens jarak(x)=jarak(x-1)+ja-
+4 rak(x-2). Oleh karena itu, nilai jarak(x)
Meong(222) + 4 akan jadi meong(223) akan membentuk sebuah pola yaitu
+5 barisan fibonacci 1, 1, 2, 3, 5, 8, 13,
Meong(223) + 5 akan jadi meong(55) 21, 34, ... .
+6 For i:= x downto 1 do
Meong(55) + 6 akan jadi meong(13) write( jarak(i), ‘ ‘);
+7 Pengulangan for di atas akan menu-
Meong(13) + 7 akan jadi meong(15) liskan nilai dari jarak(i), dimulai dari
+9 i=9 sampai i=1, diikuti dengan se-
Meong(15) + 9 akan jadi meong(3) + buah karakter spasi. Maka hasil yang
10 akan dikeluarkan program di atas
Meong(3) + 10 akan jadi meong(0) + adalah
11 34 21 13 8 5 3 2 1 1.
Meong(0) + 11 akan jadi 0 + 11 = 11
26. D. 21
Kelar, meong(888) = 11.
Pembahasan:
24. A. 41532 Diketahui:
Pembahasan: Z:= z + x;
S(a, b) = menukar nilai ar[a] dan ar[b] Z:= z - y;
Index 1 2 3 4 5 Z=z+(x-y);
Nilai ar[1] ar[2] ar[3] ar[4] ar[5], lalu X Y Z
dilakukan s(3, 4) 20 14 6
18 13 5
ar[1] ar[2] ar[4] ar[3] ar[5], lalu dila-
16 12 4
kukan s(4, 1) 14 11 3
ar[3] ar[2] ar[4] ar[1] ar[5], lalu dila- 12 10 2
kukan s(5, 2) 10 9 1
ar[3] ar[5] ar[4] ar[1] ar[2], lalu dila- 8 8 X= y
kukan s(5, 1) (maka pernyataan
ar[2] ar[5] ar[4] ar[1] ar[3] tidak berlaku lagi )
12345
Jadi diperoleh total semua z = 21.
Inputnya: ar[1] ar[2] ar[3] ar[4] ar[5]
41532

25. e. 34 21 13 8 5 3 2 1 1
27. A. 21
Pembahasan:
Pembahasan:

231
Ada bilangan 2 pangkat maka Akan dicetak 10*(10-1)*(10-
haha+bilangan tersebut, selain itu 2)*....*(10-7) / 8! =45
ditambah 1. Anda = 9
Dari program tersebut ada salah satu Akan dicetak 10*(10-1)*(10-
dari bilangan ( j div 2) mod 2 = 1, 2)*....*(10-8) / 9! = 10
maka lili akan false. Jadi 120+45+10 = 175.
Jadi, dari 1-10 ada 3 bilangan 2 pang-
29. D. 729
kat yaitu: 2, 4, 8.
Sehingga perhitungan dalam pro- Pembahasan:
gram tersebut adalah Diketahui:
I + Hasil Writeln(a(4, 2)) -> diganti writeln(a(3,
1 1 1 6))
2 2 3 Fungsi d merupakan fungsi yang
3 1 4 apabila y<>0 maka y + 1.
4 4 8
Fungsi c merupakan fungsi yang
5 1 9
6 1 10 menjumlahkan nilai x dan y.
7 1 11 Fungsi b merupakan fungsi yang
8 8 19 mengalikan nilai x dan y.
9 1 20
Fungsi a merupakan fungsi x ber-
10 1 21
pangkat y.
Jadi hasil outputnya adalah 21.
Maka diperoleh hasil outputnya ada-
28. C. 175 lah A(3, 6)=729.
Pembahasan:
30. B. 4
Diketahui:
Pembahasan:
Perulangan anda yang dimulai dari 1
Nilai array tidak diinisialisasi maka ni-
sampai sembilan akan mencetak
lai array dengan indeks 1 sampai 25
. Anda = 1
= 0.
Akan dicetak “10” = 10/1
Kemudian prosedur buat (x, y) dija-
. Anda = 2
lankan untuk mengisi array dengan
Akan dicetak “45” =10*9 / 1*2
indeks x dengan 1, dan berindeks
Anda = 3
y+1 dengan -1
Akan dicetak “120” = 10*9*8/ 1*2*3
Maka diperoleh:
Jadi 3 angka terakhir terletak pada
(setelah diurutkan)
perulangan anda = 9, 8, dan 7
Rumah[3] = 1
Anda = 7
Rumah[4] = 1
Akan dicetak
Rumah[7] = -1
10*9*8*7*6*5*4/1*2*3*4*5*6*7 =120
Rumah[9] = -1
Anda = 8
Rumah[10] = 1

232
Rumah[14] = 1 Maka f = 2*2 = 4.
Rumah[16] = -1 Jadi nilai dari f(8, 4) adalah 4.
Rumah[21] = -1
2. B. 385
Ketika fungsi hitung terakhir kali di-
jalankan (saat semua array yang di- Pembahasan:
proses telah bernilai 1 atau -1 ) untuk Diketahui:
i=3 dan i=4 nilai tmp = 2, Perulangan while akan diulangi seba­
Nilai jendela akan sama dengan i ke- nyak k kali. Dan penjumlahan j + k
tika tmp besar dari pintu, akan selalu bernilai k pada setiap
Dengan begitu nilai pintu = nilai tmp perulangan karena j akan menjadi
maksimal = 2. ( j+1) dan k akan menjadi (k - 1), dan
Maka i selanjutnya perintah while ti- hasil penjumlahan menjadi ( j + k), di
dak akan dijalankan karena nilai tmp mana j dan k berisi nilai di awal.
tetap (bernilai 2). Sehingga diperoleh:
Dengan begitu jendela = 4. 1*1 + 2*2 + 3*3 + 4*4 + 5*5 + 6*6 +
7*7 + 8*8 + 9*9 + 10*10.
Dengan menggunakan sigma i2, dan
OSN TINGKAT NASIONAL maka dihasilkan 385

1. C. 4 3. E. 920
Pembahasan: Pembahasan:
Diketahui: Diketahui:
F( (8 = a, 4 = b) Angka yang kecil, misalnya mov-
Jika a (8) = b (4) maka f =1 push(5, 3)
Jika salah Movpush(5, 3) [a = 5, b = 3]
Jika array ke 8 = -1 maka f = 0 B <> 0
Jika salah A = 101
f = 2 * f ( array ke 8 = 3 , b = 4 ) kita B = 011 and
umpamakan sebagai persamaan x X = 001
Maka f = 2*f(3, 4) X = 001 shl 1 = 010
Lalu A = 101
f= 2*f( array ke 3 = 4 , b= 4 ) B = 011 xor
Maka f = 2* f(4, 4) sesuai dengan A = 110
syarat pertama maka f (4, 4) = 1 B = x = 010
karena nilai a dan nilai b sama. B <> 0
Maka f = 2 * 1 = 2 A = 110
Jadi f = 2 B = 010 and
Lalu masuk kembali ke persamaan x X = 010
Maka f = 2 * f( (8, 4 ) yaitu 2 X = 010 shl 1 = 100

233
A = 110 4. C, 30
B = 010 xor Pembahasan:
A = 100 Diketahui:
B = x = 100 Nilai x akhir itu:= nilai x awal + ∑ ji =
B <> 0 0 + ( 2 + 4 + 6 +....+ baa ).
A = 100 Baa: = 10
B = 100 and Maka diperoleh output nya:
X = 100 X:= 0 + 2 + 4 + 6 + 8 +10 .
X = 100 shl 1 = 1000 = 30.
A = 100
B = 100 xor 5. D. 250500
A = 000 Pembahasan:
B = x = 1000 Diketahui:
B <> 0 Program tersebut menjumlahkan
A = 0000 angka-angka genap dari deret 1-baa
B = 1000 and dengan syarat baa genap,
X = 0000 I ( j)
X = 0000 shl 1 = 00000 1 -1
A = 0000 2 +1 +2
B = 1000 xor 3 -1 -2 -3
A = 1000 4 +1 +2 +3 +4
B = x = 00000 Dan seterusnya hingga
B = 0, loop berhenti Baa-1 -1 -2 -3 -4 -5 -6 -...-(baa-1)
Baa +1 +2 +3 +4 +5 +6 +...+(baa-1)
Didapatkan bahwa a = 1000 yang +baa
masih merupakan reprentasi biner. Nah nilai xakhir itu:= nilai x awal + ∑
Representasi desimal dari a adalah 8 ji = 0 + ( 2 + 4 + 6 +....+ baa )
sehingga nilai movpush(5, 3) = 8 Baa:= 1000
Sehingga dapat disimpulkan bahwa Sehingga diperoleh output
fungsi movpush(a, b) menjumlahkan X:= 0 +2 +4 +6 +8 +10 +...+ 1000 =
a dengan b. 250500.
Jadi nilai movpush(movpush(300,
6. E. 5
510), movpush(0, 110)).
Pembahasan:
= movpush(810, 110).
Diketahui:
= 920.
N = 1 1 mod 10 = 1 bernilai true,
eksekusi increment. Count = 1 pada
saat n = 1 s.d 9 x mod 10 = 1 bernilai
false, inc tidak dieksekusi pada saat n

234
= 10 10 mod 10 false 10 div 10 = 1 bcde = x111 ( 9.1.1.1 ) => bisa kita
1 mod 10 = 1 increment count count ubah susunanya sebanyak 4 macam,
= 1; hasilnya:= 9.1.1.1.4 = 36.
Pada saat n = 11 11 mod 10 = 1 true, bcde = 1111 ( 1.1.1.1 ) => bisa kita
increment count 1 11 div 10 = 1 1 ubah susunanya sebanyak 1 macam,
mod 10 = 1 increment count 1. Co- hasilnya:= 1.1.1.1.1 = 1
unt = 1 + 1 -> 2 Total banyaknya angka 1 pada bila­
Pada saat n = 12 12 mod 10 = 1 false ngan antara 1-10000 adalah:=
12 div 10 = 1 1 mod 10 =1 increment 1 + 2916 + 486 + 36 + 1
count count = 1. = 3440
Total count 1 + 1 + 2 + 1 = 5.
8. C. 8
7. A. 3440 Pembahasan:
Pembahasan: Ditanya banyaknya bilangan antara
Diketahui: 1 - (n-1) yang relatif prima dengan n
N:= 10000 => artinya nilai maxs = Atau dengan kata lain,
10000. Mencari banyaknya bilangan antara
Bilangan 5 digit abcde. 1 - (n-1) yang memiliki fpb dengan
Dengan nilai a = 1/0 n:= 1.
Jika a:=1 maka hanya ada satu ke- Sehingga menggunakan fungsi euler,
mungkinan yaitu 10000 => jumlah jika n:= 30 maka bilangan bilangan
angka 1:= 1. tersebut adalah:= 29 23 19 17 13 11
Jika a:= 0 maka kita bisa mengubah 7 1.
keempat digit lain yaitu bcde, Yang total ada 8 bilangan.
Sehingga Karena ada 8 bilangan antara 1 - 29
Punya 10 angka yaitu 0 1 2 3 4 5 6 7 yang relatif prima dengan 30 maka
8 9. output tersebut adalah 8.
Lalu misalkan x:= pilihan angka yang
9. E. px - p(x-1)
terdiri dari:= 0 2 3 4 5 6 7 8 9 ( 9 ang-
ka ) Pembahasan:
1 merupakan angka 1 ( 1 angka ) Bilangan relatif prima dari (1 - n-1)
Bcde dimasukan x dan 1. dengan n.
Caranya: Yang dicari: jika inputanya (p)x
bcde = xxx1 ( 9.9.9.1 ) => bisa kita Dengan p bilangan prima.
ubah susunanya sebanyak 4 macam, Maka rumus banyaknya bilangan re­
hasilnya:= 9.9.9.1.4 = 2916. latif prima adalah px - p(x-1) .
bcde = xx11 ( 9.9.1.1 ) => bisa kita
ubah susunanya sebanyak 6 macam,
hasilnya:= 9.9.1.1.6 = 486.

235
10. A. 21 Data3(9):=0
Pembahasan: Data3(10):=5
Diketahui: Jadi hasil outputnya adalah 11 1 0 2
Diperoleh arrray [0]= ganjil [1]= ge- 0 0 4 0 0 5.
nap [2]= ganjil [3]= genap [4]= ganjil
13. D. 16
[5]=genap.
Pembahasan:
Tidak diperlukan untuk mencari jum-
I *
lah dalam setiap array. Karena semua 0 4
bilangan board akan di mod 2, se- 4 8
hingga n= 21. 8 12
Jadi dapat disimpulkan bahwa out- 12 16
16 16
putnya adalah 21.
20 16
11. B. 2110
Jadi “*” ditulis dilayar jika n adalah 20
Pembahasan:
adalah sebanyak 16.
Diketahui:
Board[0] adalah jumlah dari 02 + 12 14. B. 10
+ 22 + ... + 172 + 0 = 1785 bisa di-
Pembahasan:
cek dengan n(n+1)(2n+1), dengan n
Diketahui:
adalah 17.
Nilai sudah diinisialisasi dengan 0
Board[1] adalah board[0] - 02 + 182
Lihat di looping bahwa:
+ 1 = 1785 - 0 + 324 + 1 = 2110.
K = 1 -> n+2
12. D. 11 1 0 2 0 0 4 0 0 5 J = 1 -> n+1
I = 1 => n
Pembahasan:
Pada saat looping, maka menambah
Diketahui:
nilai dengan +1, dengan looping
Data1: array[1..10] of integer = (4, 11,
yang sama, artinya:
2, 5, 1, 9, 7, 5, 6, 8);
Saat looping i di jalankan, maka ia
Data2, data3: array[1..10] of integer;
menambahkan +1 sebanyak n+2,
Dari program yang dituliskan di soal
begitu pula pada looping lainnya
maka diperoleh:
Jadi bisa digambarkan seperti ini:
Data3(1):= 11
adadeh = (n+2)(n+1)(n) = (n3 + n2
Data3(2):=1
+ 2n2 + 2n)/6
Data3(3):=0
Dapat dimasukkan:
Data3(4):=2
(n3 + n2 + 2n2 + 2n)/6
Data3(5):=0
Coba 12 => 123 + 122 + 2(12)2 +
Data3(6):=0
2(12) = 1728 + 144 + 288 + 24 =
Data3(7):=4
Data3(8):=0

236
1728 + 432 + 24 = 1728 + 456 = I = 100
(2184/6) = 364 [memenuhi] J=2
Coba 10 => 103 + 102 + 2(10)2 + Perintah nya ‘writeln ( j, ‘ ‘ , i).
2(10) = 1000 + 100 + 200 + 20 = Jadi, (2, 100).
1320 / 6 = 220 [memenuhi]
17. D. 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0
Coba 6 => 63 + 62 + 2(6)2 + 2(6) =
216 + 36 + 72 + 12 = 216 + 108 + Pembahasan:
12 = 228 + 108 = 336 / 6 = 56 [tidak F(8)= 8 + f(7)
memenuhi]. F(7)= 7 + f(6)
Maka nilai minimumnya adalah 10. F(6)= 6 + f(5)
F(5)= 5 + f(4)
15. E. 76 F(4)= 4 + f(3)
Pembahasan: F(3)= 3 + f(2)
Diketahui: F(2)= 2 + f(1)
Function a(n:integer):integer; F(1)= 1 + f(0)
Begin F(0)= 0
if (n=0) then Sehingga jawaban yang benar adalah
a:= 0; 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0.
else
18. E. Merupakan fungsi kubik (pangkat
a:= 1-n*a(n-1); // 1-[n*a(n-1)]
3) dari n.
End;
Sehingga diperoleh: Pembahasan:
N a(n) Diperoleh hasil:
1 1 Perulangan i dari 1 sampai n, j dari 1
2 -1 sampai n, k dari 1 sampai n.
3 4 Maka perulangan akan dilakukan se-
4 -15 banyak n*n*n=n3 .
5 76 Merupakan fungsi kubik (pangkat 3
Jadi hasil dari a(5) adalah 76. ) dari n.
Atau bisa dengan cara:
16. C. (2, 100) Dia melakukan looping sebanyak n
Pembahasan: Looping kedua dia juga looping se-
Diketahui: banyak n.
Hanya terjadi sekali pengulangan Looping ketiga juga looping seba-
(2, 100) var i dan j nyak n.
K akan menjadi nilai i Maka bisa disimpulkan sebagai fung-
I akan menjadi nilai j si kubik.
Dan j akan menjadi nilai k terbaru
K=2

237
19. B. Var x, y: integer 20. E. TRUE, FALSE, FALSE , TRUE.
X:= 10; Pembahasan:
Y:= 15; Tabel kebenaran
hasil:= 0; Xy X .y
while x > 0 00 0
begin 01 0
10 0
if (x mod 2 = 1) then begin hasil:=
11 1
hasil + y; end;
Xy X+y
x:= x div 2; 00 0
y:= y * 2; 01 1
end 10 1
11 1
Pembahasan:
Variable “x” dan “y”, dan variabel X X’
0 1
“hasil” yang nilai awalnya 0. Lakukan
1 0
proses berikut selama nilai “x” lebih
besar dari 0:
Lalu dicoba di seluruh pilihan ganda
jika nilai “x” ganjil maka nilai “hasil”:=
yang ada, maka hasil yang diperoleh
“hasil” + y.
adalah true, false, false, true.
nilai “x” selanjutnya adalah nilai “x”
sebelumnya dibagi dua, bila ada hasil 21. B. 4
pecahan, maka pecahannya dibuang. Pembahasan:
(contoh bila nilai “x” sebelumnya 1, Diketahui:
maka nilai “x” selanjutnya 0). A = true
nilai “y” selanjutnya adalah nilai “y” B = false
sebelumnya dikali dua. C = false
Sehingga diperoleh: D = true
Var x, y: integer Maka hasil yang dicetak adalah ang-
x:= 10; ka 4.
y:= 15;
22. A. 5
hasil:= 0;
while x > 0 Pembahasan:
begin Diketahui:
if (x mod 2 = 1) then begin hasil:= Jika a=false b=false c=false d= false
hasil + y; end; kita masukkan nilai a, b, c, dan d ke
x:= x div 2; pernyataan pertama.
y:= y * 2; If (false and false) or ((not false) and
end false) then

238
Pernyataan ini akan menghasilkan periksa 8, 8 sudah ditempati, 9
nilai false maka pernyataan yang kosong, tempatkan di 9.
diproses selanjutnya adalah Dengan menghitung masing masing
Else nama siswa kita mendapatkan
if not (d and c) and (not a) then Coki = 11
writeln(5); Dewi = 12, karena sebenarnya Dewi
else adalah 11, namun 11 ditempati se­
writeln(6); hing­ga 12 ditempati dewi karena ma­
Kita substitusikan d, c dan a dengan sih kosong.
nilai yang dimiliki variabel tersebut
25. C. 13
Else
if not (false and false) and (not false) Pembahasan:
then Diketahui:
writeln(5); Bahwa tempat duduk siswa didapat
else dari ((10 x harga huruf pertama) +
writeln(6); harga huruf kedua) mod 17.
Dengan melihat tabel kebenaran, Afandi = 16.
maka pernyataan akan bernilai true Andi = 7.
sehingga program akan mencetak 5. Bella = 8.
Budi = 9 karena Budi sebenarnya
23. E. FALSE, FALSE, FALSE, FALSE. adalah 7, tetapi 7 sudah ditempati,
Pembahasan: periksa 8, 8 sudah ditempati, 9
Tes semua pilihan kosong, tempatkan di 9.
Pilihan e. Sudah pasti salah karena Fany = 10.
pada untuk a, b, c, d bernilai false Gunawan = 3.
akan menghasilkan nilai 5. Mega = 0 karena 0 tidak ada, mega
menjadi 1.
24. B. 12
Mulya = 15.
Pembahasan: Nunik = 13, sebenarnya Nunik ada­
Diketahui: lah 8 namun karena 8-12 sudah
Bahwa tempat duduk siswa didapat ditempati, Nunik menjadi 13.
dari ((10 x harga huruf pertama) +
harga huruf kedua) mod 17 26. E. 7
Afandi = 16 Pembahasan:
Andi = 7 Diketahui:
Bella = 8 Bahwa tempat duduk siswa didapat
Budi = 9 karena Budi sebenarnya dari ((10 x harga huruf pertama) +
adalah 7, tetapi 7 sudah ditempati, harga huruf kedua) mod 17.
Afandi = 16.

239
Andi = 7. ke sebelah kanan hingga tidak ada
Bella = 8. lagi yang lebih besar darinya.
Budi = 9 karena Budi sebenarnya Kondisi awal, x = \{9, 5, 2, 10, 1, 8, 4,
adalah 7, tetapi 7 sudah ditempati, 3, 7, 6\}.
periksa 8, 8 sudah ditempati, 9 Lakukan adukaduk pertama, sehing-
kosong, tempatkan di 9. ga x = \{5, 2, 9, 1, 8, 4, 3, 7, 6, 10\}.
Riska = 2. Lihat, 9 berpindah hingga ke posisi
Susi = sebenarnya adalah 7, namun sebelum 10 (sebelumnya 10 ada di
karena 7-13 sudah ditempati sehing­ index ke-3).
ga Pak Hashim melakukan 7 kali Kemudian, 10 pindah hingga ke ujung
pengecekan (13-7+1 = 7). himpunan karena tidak ada lagi bi-
langan yang lebih besar darinya.
27. B. 2, 5, 1, 8, 4, 3, 7, 6, 9, 10
Lakukan adukaduk kedua, sehingga x
Pembahasan: = \{2, 5, 1, 8, 4, 3, 7, 6, 9, 10\}.
Diketahui:
Kondisi awal 28. D. 4
Ctr = 0 Pembahasan:
X = \{9, 5, 2, 10, 1, 8, 4, 3, 7, 6\} Untuk adukaduk yang ke-3, pindah-
Prosedur tx(a, b) kan saja angka 1 di index ke-1 karena
Ctr:= ctr + 1, atau ctr + 1 angka 5 berpindah ke kanan.
Tmp = x_{a} Untuk adukaduk yang ke-4, kita pin-
X_{a} = x_{b} dahkan angka 2 ke kanan.
X_{b} = tmp Angka satu sudah ada di x_{0}.
Atau sederhananya, prosedur tx(a, b) Jadi, jawabannya adalah 4.
akan menukar elemen a dan b dari
29. D 25
himpunan x.
Selain itu, ctr ditambahkan dengan 1. Pembahasan:
Prosedur adukaduk Variabel ctr akan bertambah 1 jika
perulangan untuk j = 0 hingga 8 terjadi penukaran nilai.
untuk kondisi x_{j} > x_{j + 1} atau Kondisi awal x = \{9, 5, 2, 10, 1, 8, 4,
x_{j} - x_{j + 1} > 0 3, 7, 6\}.
lakukan tx( j, j+1) Untuk adukaduk pertama, x = \{5, 2,
Prosedur cetak(i) 9, 1, 8, 4, 3, 7, 6, 10\}. Ada 8 kali pe-
perulangan untuk j = 0 hingga i nukaran nilai.
cetak x_{j} dan sebuah spasi. Untuk adukaduk kedua, x = \{2, 5, 1,
Jalankan prosedur adukaduk seba­ 8, 4, 3, 7, 6, 9, 10\}. Ada 7 kali penu-
nyak dua kali. Berdasarkan pemodelan karan nilai.
kode di atas, kita tahu bahwa adukaduk Untuk adukaduk ketiga, x = \{2,
akan memindahkan bilangan terbesar 1, 5, 4, 3, 7, 6, 8, 9, 10\}. Ada 6 kali
penukaran nilai.
240
Untuk adukaduk keempat, x = \{1, 2. B. 35
2, 4, 3, 5, 6, 7, 8, 9, 10\}. Ada 3 kali Pembahasan:
penukaran nilai. Abab (5, 7).
Untuk adukaduk kelima, x = \{1, 2, 3, Abab 5+7=0? Tidak
4, 5, 6, 7, 8, 9, 10\}. Ada 1 kali penu- Abab 5>7? Tidak
karan nilai. Masuk ke abab x+abab(x, y-1)
Tidak akan ada lagi penukaran nilai Abab 5+abab (5, 6).
karena himpunan sudah terurut. Abab (5, 6)
Jadi, jawabannya adalah 8 + 7 + 6 + Abab 5+abab (5, 5)
3 + 1 = 25. Abab (5, 5)
Abab 5+abab(5, 4)
30. C. 6 7 3 4 8 1 10 2 5
Abab (5, 4) 5>4? Ya
Pembahasan:
Abab 4+abab (4, 4)
Berdasarkan kodisi if (i >= 0) dan ada
Abab (4, 4)
rekursi write(i - 1), maka fungsi ini
Abab 4+abab (4, 3)
mencetak dari belakang, yaitu 6 7 3
Abab (4, 3)
4 8 1 10 2 5.
Abab 3+abab (3, 3)
Abab (3, 3)
PREDIKSI OSN 2019 Abab 3+abab(3, 2)
Abab (3, 2)
1. A. -499950
Abab 2+abab (2, 2)
Pembahasan: Abab (2, 2)
Diketahui: Abab 2+abab (2, 1)
Nilai awal total adalah 0. Abab (2, 1)
Maka setiap i =1 dikurangkan de­ Abab 1+abab(1, 1)
ngan j dari 1-100 dan seterusnya Abab (1, 1)
sampai nilai i= 100 tersebut akan Abab 1 + abab (1, 0)
dikurangkan dengan j dr 1- 100. Abab 0+abab (0, 0)
Sehingga diperoleh: 0+0 =0
I:= +(1+2+3+...+100) Setelah itu substitusi ke atas
J:= +(1+2+3+...+100).100 Sampai ketemu abab 5+abab (5, 6) =
Total:= total +i - j 35.
Total:= 0 + (1+2+...+100) -
(1+2+...+100).100. 3. A. 377
Total:= -(1+2+...+100) .99 Pembahasan:
Total:= -(5050).99 Jika sudah mensimulasikan rekursif­
Total:= - 499950. nya, maka kita bisa menyimpulkan
bahwa abab(x, y) = x*y.

241
Jadi, abab(5, 7) = 35 dan abab(29, 13) Pot(3)= (1.3) + (1.2 + 2.2) + (1.1 + 2.1
= 377. +3.1)
Pot(3)= 1.6 + 2.3 + 3.1 = 15.
4. D. 8
Pembahasan: 7. C. 126
Diketahui: Pembahasan:
Dari program di dalam soal mengha­ Diketahui:
sil­
kan selisih kedua bilangan yang Setiap pot(n) maka akan memanggil
diinput lalu dikalikan 2. tanah(1) - tanah(n)
Sehingga diperoleh: Setiap tanah(n) maka akan memang­
6-2 = 4 x 2 gil anggrek(1) - anggrek(n)
= 8. Setiap anggrek(n) akan menjumlah-
kan dari 1-n
5. E. 2014
Sehingga diperoleh perhitungan:
Pembahasan: Pot(3) = tanah(1) + tanah(2) + ta-
Seperti di no.4 maka, dapat diperoleh nah(3) = anggrek(1).3 + anggrek(2).2
hasil dengan mengkalikan 2 dari hasil + anggrek(3).1
pengurangan bilangan sebelumnya, Setaip anggrek(n) dijumlahkan dari 1
maka hasilnya: sampai n.
3021-2914 = 1007 x 2 = 2014. Maka
6. D. 15 Pot(6):= 6.1 + 5.3 + 4.6 + 3.10 + 2.15
+ 1.21 = 126.
Pembahasan:
Diketahui: 8. E. 30
Setiap pot(n) maka akan memanggil Pembahasan:
tanah(1) - tanah(n) Diketahui angka angka genap dari
Setiap tanah(n) maka akan manggil deret 1-asa akan dijumlahkan de-
anggrek(1) - anggrek(n) ngan syarat asa adalah bilangan
Setiap anggrek(n) akan menjumlah- yang genap.
kan dari 1-n I ( j)
Sehingga diperoleh perhitungan: 1 -1
Pot(3) = tanah(1) + tanah(2) + ta- 2 +1 +2
nah(3) = anggrek(1).3 + anggrek(2).2 3 -1 -2 -3
+ anggrek(3).1 4 +1 +2 +3 +4
Setaip anggrek(n) dijumlahkan dari 1 Dan seterusnya sampai
sampai n. Asa-1 -1 -2 -3 -4 -5 -6 -...-(asa-1)
Maka Asa +1 +2 +3 +4 +5 +6 +...+(asa-1)
Pot(3)= anggrek(1).3 + anggrek(2).2 +asa
+ anggrek(3).1

242
Nilai xakhir itu:= nilai x awal + ∑ ji = Memanggil caca(35) dan melakukan
0 + ( 2 + 4 + 6 +....+ asa ) penambahan abc= abc + caca(7)
Asa:= 10 sebanyak 7x memanggil caca(7) dan
Output hasilnya nol lalu kembali ke caca(35)
X:= 0 + 2 + 4 + 6 + 8 +10 = 30 dan melakukan penjumlahan 0
sebanyak 7x dan hasil akhir caca(35)
9. B. 250400
= 0.
Pembahasan:
Diketahui: 12. D. 5
Nilai xakhir itu:= nilai x awal + ∑ ji = Pembahasan:
0 + ( 2 + 4 + 6 +....+ asa ) Diketahui:
Asa:= 1000 Pada saat n = 1 1 mod 10 = 1 bernilai
Output true, eksekusi increment. Count = 1
X:= 0 +2 +4 +6 +8 +10 +...+ 900 = pada saat n = 1 s.d 9 z mod 10 = 1
250400. bernilai false, inc tdk di eksekusi pada
saat n = 10 10 mod 10 false 10 div 10
10. C. 49
= 1 1 mod 10 = 1 increment count
Pembahasan: count = 1; pada saat n = 11 11 mod
Diketahui: 10 = 1 true, increment count 1 11 div
Pemanggilan caca (25) dan melaku­ 10 = 1 1 mod 10 = 1 increment count
kan 7x penambahan abc = abc + 1. Count = 1 + 1 -> 2.
caca(5). Pada saat n = 13 , maka 13 mod 10
Lalu memanggil caca(5) dan mela­ = 1 false 13 div 10 = 1 1 mod 10 =1
kukan 7x penambahan abc= abc + increment count count = 1.
caca(1). Total count 1 + 1 + 2 + 1 = 5.
Lalu memanggil caca(1) dan hasilnya
1 kembali ke caca (5) dan melakukan 13. D. 7
penambahan 1 sebanyak 7x dan ha- Pembahasan:
silnya caca(5) =7 kembali ke caca(25) Diketahui:
dan melakukan penambahan 7 seba- Banyaknya bilangan antara 1 - (n-1)
nyak 7x dan hasilnya caca(25) = 49. yang relatif prima dengan n.
Sehingga:
11. B. 0
Mencari bilangan dengan fungsi eu-
Pembahasan: ler yang n:= 25.
Diketahui: Maka bilangan-bilangan tersebut ia-
Caca(35). lah:= 23 19 17 13 11 7 1 => total ada
For 1 <= 7 = 7 x 0. 7 bilangan.
Abc+=caca(7).
Caca(7) = abc = 0.

243
Karena ada 7 bilangan antara 1 - 23 Perulangan while akan diulangi
yang relatif prima dengan 25 maka sebanyak c kali,
output tersebut adalah 7. Dan penjumlahan b + c akan selalu
bernilai c pada setiap perulangan
14. E. Program tidak pernah berhenti.
karena b akan menjadi (b+1) dan
Pembahasan: b akan menjadi (c - 1), dan hasil
Diketahui: penjumlahan menjadi (b + c), di
Bahwa nilai m adalah nilai rata-rata mana b dan c berisi nilai di awal.
dari a dan b. Sehingga diperoleh 1*1 + 2*2 + 3*3
Salah satunya cara adalah mengikuti + ... + 10*10, dengan menggunakan
jalannya prosedur tersebut: sigma i2, dan maka dihasilkan 385.
Mystory(0, 8), a:=0 dan b:=8, a<>b:
‘osn2019’ dicetak; 16. E. 4
m:=4; Pembahasan:
mystory(0, 4), a:=0 dan b:=4, a<>b: Diketahui:
‘osn2019’ dicetak; Var r.
m:=2; Interger: (6, 7, 4, 5, -1, 4, -1, 3, 1, 9);
mystory(0, 2), a:=0 dan b:=2, a<>b: Interger d dan e.
‘osn2019’ dicetak; Array [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] of
m:=1; integer:= (6, 7, 4, 5, -1, 4, -1, 3, 1, 9)
mystory(0, 1), a:=0 dan b:=1, a<>b: F( (7 = d, 4 = 5).
‘osn2019’ dicetak; Jika d (7) = e (5) maka f =1
m:=0; Jika salah
mystory(0, 0), a:=0 dan b:=0, karena Jika array ke 7 = 4 maka f = 0
a=b maka prosedur tidak melakukan Jika salah
apa-apa. f = 2 * f ( array ke 7 = -1 , b = 5 ) kita
mystory(0, 1), a:=1 dan b:=0, a<>b: umpamakan sebagai persamaan x
Perhatikan pada prosedur “ mystory(0, Maka f = 2*f(-1, 5)
1), a:=0 dan b:=1, a<>b:”. Karena Lalu
prosedur tersebut memanggil dirinya f= 2*f( array ke 4 = 5 , b= 5 )
sendiri dengan parameter yang sama Maka f = 2* f(5, 5) sesuai dengan
dan dengan batasan yang tidak jelas, syarat pertama maka f (5, 5) = 1
maka akan terjadi infinite loop pada karena nilai d dan nilai e sama.
program tersebut atau program tidak Maka f = 2 * 1 = 2
pernah berhenti. Jadi f = 2
Lalu masuk kembali ke persamaan x
15. E. 385
Maka f = 2 * f( (7, 5 ) yaitu 2
Pembahasan: Maka f = 2*2 = 4.
Diketahui: Jadi nilai dari f (7, 5) adalah 4.

244
17. C. 2 s = 2 × (2 + 10) = 24
Pembahasan: s = 2 × (2 + 24) = 52
Diketahui: s = 2 × (2 + 52) = 108
Pengeksekusian f(8) akan terjadi se­ Karena memerlukan 4 tahap supaya s
cara rekursi sebagai berikut: = 108, maka v - u = 4 - 1 = 3.
F(8) = f(7) + f(6)
20. B. 5
F(7) = f(6) + f(5)
Pembahasan:
F(6) = f(5) + f(4)
R:=2;
F(5) = f(4) + f(3)
S:=3;
F(4) = f(3) + f(2)
For i:=u to v do
F(3) = f(2) + f(1)
Begin
Dimana f(2) dan f(1) adalah basecase,
s:=i*(r+s);
jadi rekursi dihentikan.
End;
Sehingga dapat disimpulkan bahwa:
R = 2, s = 3
F(3) akan dieksekusi sebanyak 2x.
s = 3 × (2 + 3) = 15
18. E. banyaknya eksekusi f(n-k+1)+ s = 4 × (2 + 15) = 68
banyak­nya eksekusi f(n-k+2). s = 5 × (2 + 68) = 350
Pembahasan: Nilai akhir i = 5. Maka hasilnya adalah
Membentuk deret fibonacci 5.
F(8)=1
21. C. HYSIBTGZFNXAEVARVZWWI
F(7)=1
Pembahasan:
F(6)=2
Diketahui:
F(5)=3
Perhitungan dari depan dan belakang,
F(4)=5
dari kata ‘tokiabsolutewinnerioi’.
F(n-k)=banyaknya eksekusi f(n-k+1)+
sesuai dengan kode, s[length(s)]
banyaknya eksekusi f(n-k+2).
atau huruf terakhir tidak akan
19. C. 3 berubah,
Pembahasan: karena pada kode for i=1 sampai
Diketahui: length(s)-1,
R:=2; huruf yang diubah hanya dari 1
S:=3; sampai length(s)-1,
For i:=u to v do dan huruf terakhir tidak akan
Begin diubah.
s:=i*(r+s); maka eliminasi jawaban b dan d,
End; lalu cari huruf yang diubah di depan,
R = 2, s = 3 dan akan didapat jawaban
s = 2 × (2 + 3) = 10 ‘hysibtgzfnxaevarvzwwi’.

245
22. A. RAIHMEDALIEMAS Diketahui:
Pembahasan: Terjemahan(1, 80) --> terjemahan
Diketahui: (3, 80) --> terjemahan(9, 80) -->
Perhitungan sama dengan nomor 21, terjemahan (27, 80)
S[length(s)] atau huruf terakhir tidak Terjemahan(27, 80)
akan berubah, Hasil = 80 div 27 = 2
Eliminasi jawaban yang tidak mun­g­ Y = 80 mod 27 = 26
kin, Terjemahan(9, 80)
Maka jawaban yang tersisa hanya Hasil = 26 div 9 + hasil
Raihmedaliemas. = ‘2’ + ‘2’ = ‘22’
Y = 26 mod 9 = 8
23. E. 23 Terjemahan(3, 80)
Pembahasan: Hasil = 8 mod 3 + hasil
Diketahui: = ‘2’ +’22’ = ‘222’
Function hongkong(x: integer): Y = 8 div 3 = 2
integer; Terjemahan(1, 80)
Var hong, kong, tenis, kota: integer; Hasil = 2 div 1 + hasil
Begin = ‘2’ + ‘222’ = ‘2222’.
kota:= 0; Jadi dapat disimpulkan hasil out­put­
for hong:= 1 to x do begin nya adalah 2222.
for kong:= 1 to hong do begin
25. D. 2 200
for tenis:= hong downto kong do
begin Pembahasan:
kota:= kota + tenis; Hanya terjadi sekali pengulangan
end; (2, 200) var i dan j
end; K akan menjadi nilai i
end; I akan menjadi nilai j
hongkong:= tenis + kota; Dan j akan menjadi nilai k terbaru
End; K=2
Kota = 1+2+2+1+3+3+2+3+2+1 I = 200
=20. J=2
Kota + tenis = 20 + 3 Perintahnya ‘writeln ( j, ‘ ‘ , i).
= 23. Jadi hasilnya adalah 2 200.
Jadi hasil pemanggilan fungsi
26. B. 5+4+3+2+1+0
hongkong(3) adalah 23.
Pembahasan:
F(5)= 5 + f(4)
24. D. 2222 F(4)= 4 + f(3)
Pembahasan: F(3)= 3 + f(2)

246
F(2)= 2 + f(1) 30. E.ans = max(ans, maxka+maxki);
F(1)= 1 + f(0) Pembahasan:
F(0)= 0 Menggunakan prefix suffix dan
Sehingga jawaban yang benar adalah greedy. Yang dicari array S yang va-
5 + 4 + 3 + 2 + 1 + 0. lid, dengan susunan kurang lebih a,
a, a, a, a, ..., ., ., a, b., ., ., .., ., b, b, b, b, b,
27. E. 10
Ambil nilai maksimum di kiri terma-
Pembahasan:
suk elemen yang seperti apa begitu
Diketahui:
juga yang kanan.
Nilai x dipengaruhi oleh jumlah 2 *
#include <bits/stdc++.h>
0 + 2 * 1 + 2 * 2 + ... + 2 * (kelas - 1)
Using namespace std;
2[n/2(n+1)] = 90 ; n(n+1) = 90 ; n2 +
Int cnt[10]; //cnt[i] merupakan jum-
n = 90.
lah elemen i dari array
Jika nilai 9 disubstitusikan ke n, maka
Int isi[100005]; //isi[i] merupakan isi
hasilnya akan memenuhi
array
92+9=90.
Int pref[10][100005]; //pref[i][ j] me-
Karena loopignya 0 => kelas - 1, maka
rupakan jumlah elemen i dari 1 hing-
nilai kelas kita tambah 1 menjadi 9+1
ga j
= 10.
Int ans, maxka, maxki, n; //maxka me-
Maka jawabannya 10.
rupakan jumlah maksimum elemen
28. A. di sebelah kanan pointer, maxki se-
Pembahasan: belah kiri.
Sesuai program yang di analisa maka: Int main(){
D[a]:= tmp Cin >> n;
D[a]:= D[b] For(int i = 1;i <= n;i++) cin >> isi[i];
D[b]:= tmp. //Membaca input
For(int i = 1;i <= n;i++){
29. C. 90 detik Cnt[isi[i]]++;
Pembahasan: For(int j = 0;j <= 9;j++){
Xx(10) dijalankan sebanyak 10!/8!=90 Pref[ j][i] = pref[ j][i-1]; //Generate
detik. prefix
Diketahui 8!, adalah banyak kompu­ If( j == isi[i]) pref[ j][i]++;
tasi yang dijalankan selama 1 detik. }
Jadi diperoleh hasil 90 detik. }
For(int i = 1;i <= n;i++){
Maxka = maxki = 0;
//Maximum dan minimum direset
For(int j = 0;j <= 9;j++){

247
Maxki = max(maxki,
pref[ j][i]); //Di cek, elemen apa yang
di sebelah kirinya paling banyak
Maxka = max(maxka, cnt[ j]-pref[ j]
[i]); //Di cek, elemen apa yang di
sebelah kanannya paling banyak
}
Ans = max(ans, maxka+maxki); //
Penggabungan dua elemen tersebut
}
Cout << ans << endl;
//Output jawaban}.

248
DAFTAR PUSTAKA

Imrona, Mahmud. 2012. Aljabar Linier Dasar. Jakarta Timur: Erlangga.


Suarga. 2012. Algoritma Pemrograman. Yogyakarta: Andi.
Kadir, Abdul. 2008. Dasar-Dasar Pemrograman Pascal. Yogyakarta: Andi.
Suprapto, dkk. 2008. Bahasa Pemrograman. Departemen Pendidikan Nasional.
Siang, Jong Jek. 2009. Matematika Diskrit dan Aplikasi Pada Ilmu Komputer. Yogyakarta:
Andi.
Yahya, Sofyansyah Yusari. 2014. Analisa Perbandingan Algoritma Bubble Sort dan
Selection Sort dengan Metode Perbandingan Eksponensial. Jurnal Pelita Informatika
Budi Darma, Vol: VI, No: 3, April 2014.
F. Soesianto, Djoni Dwijono, 2006, Logika Matematika Untuk Ilmu Komputer, Yogyakarta:
Andi Offset.
Setiadi Rachmat, 2004, Pengantar Logika Matematika, Informatika, Bandung.
Setiadji, 2007, Logika Informatika, Yogyakarta: Graha Ilmu.
Malvino, Leach (1981), Digital Principles And Applications, Mc. Graw Hill.
Wilman J. Halkias, Integrated Electronic Analog and Digital Circuit System, Mc Graw Hill,
1972
Suwignyo, Dasar-dasar Digital Electronics, 1989w
Wheeler, Ruric E. 1992. Moderm Mathematics. Belmont, CA: Wadsworth.

https://goo.gl/8H6UbA https://goo.gl/E3t9pd https://goo.gl/JvPBnD


https://goo.gl/wznPRH https://goo.gl/SqUD7u https://goo.gl/GJkhGS
https://goo.gl/3RYA56 https://goo.gl/RBS8vE https://goo.gl/nsXPTg
https://goo.gl/M2pE1r https://goo.gl/9XT1dK https://goo.gl/t4eU14
https://goo.gl/oJQcSf https://goo.gl/bHfEhK https://goo.gl/DxqN2e
https://goo.gl/HXJ9pR https://goo.gl/SbbZhh https://goo.gl/otUWfs
https://goo.gl/nHW18D https://goo.gl/pj2KLc https://goo.gl/ub3DiL
https://goo.gl/snLT42 https://goo.gl/P29qBF https://goo.gl/uhrWbf
https://goo.gl/SUPxeW https://goo.gl/aeCBmP https://goo.gl/oody5J

249
https://goo.gl/WUMQ3m https://goo.gl/vhQxPk https://goo.gl/FQqVHx
https://goo.gl/iDvYKP https://goo.gl/dAN3St https://goo.gl/Vsi1bq
https://goo.gl/9mKoaB https://goo.gl/ba3MgD https://goo.gl/FZ9oQt
https://goo.gl/DtYfpw https://goo.gl/WbgMqA https://goo.gl/K5tcfL
https://goo.gl/s5kSCD https://goo.gl/xJPaCA https://goo.gl/h85oGR
https://goo.gl/rF99GC https://goo.gl/6RCPNo

250
PROFIL PENULIS

Tim Pustaka Cerdas


Adalah tim penulis yang berada di bawah bimbingan Pustaka Baru Press. Tim ini fokus
mendalami, membedah, dan mengulas berbagai keperluan kepenulisan bertema tes atau
ujian yang diselenggarakan di Indonesia maupun buku bertema penunjang pelajaran.
Tim Pustaka Cerdas telah menelurkan beberapa karya yang sudah diterbitkan. Guna
menopang kualitas dan kredibilitas karya-karya yang ditelurkan, tim ini terdiri dari
mereka anak muda yang energik dan suka menulis. Lahir dan berkembang dari berbagai
rumpun studi, baik mereka para tentor, guru, mahasiswa, hingga redaktur pelaksana.
Masing-masing mempunyai peran tersendiri sesuai bidangnya.

Kontributor Utama:
Yeni Mulyani

Lahir di Karanganyar tanggal 17 September 1994. Pada tahun 2001 ia mulai belajar di
bangku SD, yaitu SDN 02 Jatipurwo, Kecamatan Jatipuro, Kabupaten Karanganyar, Provinsi
Jawa Tengah. Lalu lanjut SMP di SMP N 01 Jatipuro, setelah itu melanjutka sekolah di
SMK Sudirman 1 Wonogiri dengan mengambil jurusan Administrasi Perkantoran dan
lulus pada tahun 2012. Kemudian kuliah di salah satu perguruan tinggi yaitu di STMIK
Amikom Yogyakarta jurusan Sistem Informasi dan lulus pada tahun 2016.

Pernah aktif di organisasi kemahasiswaan Forum Senator Kelas, humas di kampus


serta menjadi asistem praktikum pada tahun ajaran 2013/2014 pada masa kuliah. Saat ini
bekerja di perusahaan bidang IT di daerah Yogyakarta, dan sering menulis blog tentang
travelling di akun blog pribadinya.

251
Catatan:

252
Catatan:

253
Catatan:

254
Catatan:

255
Catatan:

256

Anda mungkin juga menyukai