SOAL DAN PEMBAHASAN
OLIMPIADE SAINS KABUPATEN 2016
BIDANG KOMPUTER
Apa
kabar sobat? Semoga dalam keadaan sehat wal’afiat semua sekeluarga juga. Saya
ingin berbagi tentang apa yang saya dapatkan untuk sobat sedunia. Saya dapat
soal dan pembahasan OSK 2016 bidang komputer dari Kujawab.com. Yang sudah saya
olah dan kembangkan sehingga memudahkan sobat untuk dipelajari ataupun di
cetak. Nih sobat, file pdf dapat didownload dengan sekali klik di bawah ini.
http://downloads.ziddu.com/download/25293869/Olimpiade_Sains_Kota_OSK_2016_Komputer.pdf.html#.VvPyxnDF1u4.blogger
Olimpiade Sains Kota (OSK) 2016 - Komputer
1. Berapakah banyaknya bilangan prima antara 1 sampai 100
(inklusif)?
a. 15 b. 20 c. 25 d. 30 e. 35
Pembahasan:
Jawabannya adalah 25 (C)
Karena bilangan prima antara 1-100
ialah 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97
2. Berapa banyaknya bilangan kubik (pangkat 3 dari sebuah
bilangan positif) antara 2 sampai dengan 1001 (inklusif)?
a. 7 b. 8 c. 9 d. 10 e. 11
Pembahasan:
Bilangan kubik terbesar yang lebih kecil
dari 1001 ialah 1000 = 103, terus bilangan kubik terkecil yang lebih
besar dari 2 ialah 8 = 23, sehingga jumlah bilangan antara 2 - 10
adalah 9 yaitu 2, 3, 4, 5, 6, 7, 8, 9, 10. 1 tidak dihitung karena (13=1).
Jadi jawabannya ialah 9 (C)
Benar, untuk a ≥ 0, b ≥ a, inklusif banyaknya bilangan kubik adalah:
¦(a,b)= -
3. Berapakah hasil 272016 mod 26?
a. 1 b. 2 c. 3 d. 4 e. 5
Pembahasan:
272016
mod 26
=
(26.1+1)2016 mod 26
= 12016
mod 26
= 1 (A)
|
gunakan Euler's totient function untuk
menjawab soal ini.
didapatkan
phi(26) = 12
persamaanya
menjadi
272016
mod 12 mod 26
270 mod
26
1 mod
26
= 1(A)
|
4. (2m + 5) mod n = 6
Berapakah nilai m yang yang mungkin jika n bernilai 999983?
a. 200004 b.
499992 c. 499993 d. 499991 e.
499990
Pembahasan:
(2m+5) mod n = 6
(2m+5) mod 999983 = 6
2m mod 999983 + 5 mod 999983=6
2m mod 999983 + 5 =6
2m mod 999983=1
m = 499992 (B)
5. Berapa banyak string 10 bit yang banyaknya bit 1
string tersebut sama dengan banyaknya bit 0?
Catatan
: bit adalah digit bilangan biner (0 dan 1).
a. 126 b.
252 c. 504 d. 512 e. 120
Pembahasan:
10!/5!x5!
=252
dalam
string bit, hanya ada 2 kemungkinan, yaitu 1 atau 0. jika banyaknya angka
0=banyaknya angka 1, maka, 10/2=5 adalah panjang masing-masing bit 1 dan 0.
= 252
|
bit
pertama harus 1, jadi sisa 9 tempat lagi dimana ada 4 angka 1 tersisa dan 5
angka 0 tersisa.
Jadi,
9!
/ 4!5! → 126
|
6. Terdapat 4 bilangan x1, x2, x3,
dan x4. Jika x1 + 3 x2, x2
<= x3, x3 + 5 <= x4,
1 <= x1, x2, x3, x4
<= 40, maka banyaknya kemungkinan x1, x2, x3,
dan x4 yang berbeda adalah:
a. 1256640 b.
628320 c. 52360 d. 26180 e. 169080
Pembahasan:
Misalkan
y1 = x1 + 3.
Karena
x1 >= 1, maka y1 >= 4
Misalkan
y2 = x2 + 1
Misalkan
y3 = x3 + 2
Misalkan
y4 = x4 - 2.
Karena
x4 <= 40, maka y4 <= 38
Tujuan
dari pemisalan di atas adalah untuk mendapatkan y1, y2,
y3, y4 yang memenuhi y1 < y2
< y3 < y4.
Alasan
kenapa dipilih pemisalan tersebut diserahkan kepada pembaca untuk dicari
sendiri.
Kemudian
didapatkan
4
<= y1 < y2 < y3 < y4
<= 38.
Sekarang
persoalan kita berubah menjadi mencari 4 bilangan (y1, y2,
y3, y4) antara 4 sampai 38 yang terurut menaik.
Persoalan ini mirip dengan soal OSK
2016 nomor selanjutnya (7)
Karena
ada 35 bilangan diantara 4 sampai 38, dan dipilih 4 bilangan. Maka solusi
dari persoalan ini adalah 35C4 = 52360
|
Perhatikan
bahwa 1<=X1<=32
Polanya
1,4,10,20,35...,5984 ( C(n+2,3) )
Yang
diminta adalah 1+4+10+20+...+5984 = 52360 (c)
|
7. Dalam sebuah angka yang terdiri dari 6 digit,
berapakah banyaknya bilangan yang semua digitnya berbeda dan harus menaik?
(digit pertama tidak boleh 0)
a. 84 b.
504 c. 210 d. 5040 e. 720
Pembahasan:
Anggap aja 6 angka diambil acak lalu
diurutkan jadi 9C6 =84
8. Sebuah kunci kombinasi terdiri dari 7 angka. Setiap
angka dapat bernilai 0-9. Angka terakhir selalu lebih besar dari angka-angka sebelumnya.
Angka pada setiap digit selalu berbeda dengan angka pada digit lain. Ada berapa
kemungkinan berbeda kombinasi 7 angka tersebut?
a. 86400 b.
86040 c. 85860 d. 95680 e.15200
Pembahasan:
Bila digit terakhir adalah 9 maka ada 9P6
= 60480 kemungkinan
Bila digit terakhir adalah 8 maka ada 8P6
= 20160 kemungkinan
Bila digit terakhir adalah 7 maka ada 7P6
= 5040 kemungkinan
Bila digit terakhir adalah 6 maka ada 6P6
= 720 kemungkinan
Total: 60480 + 20160 + 5040 + 720 = 86400 (A)
9. Terdapat 2 bilangan, yaitu 720000 dan 262144. Berapa
banyak bilangan berbeda yang membagi habis kedua bilangan tersebut?
a. 7 b. 8 c. 30 d. 31 e. 32
Pembahasan:
720000 = 27 x 32 x
54
262144 = 218
FPB = 27
Dengan teori bilangan didapatkan bahwa
faktor dari FPB 7+1 = 8
10. Pak Dengklek akan membell sejumlah permen untuk
dibaglkan pada tamunya yang datang di pesta ulang tahunnya. Dia mengetahui akan
ada paling banyak 8 tamu yang datang. Karena Pak Dengklek adil, Pak Dengklek
akan membagi rata permen Itu kepada tamu-tamu tersebut. jika semua tamu datang
akan tersisa 6 permen. jika 1 tamu tidak datang, akan tersisa 5 permen. jika 3
tamu tidak datang, akan tersisa 2 permen. Bantulah Pak Dengklek untuk
menentukan banyaknya permen paling sedikit yang harus dibeli:
a. 168 b.
504 c. 202 d. 222 e. 102
Pembahasan:
Simulasikan saja jawaban 222
11. Ali, Lia, dan Budi senang mengikuti kompetisi
pemrograman. Karena mereka tidak suka bersaing, mereka mengikuti kompetisi
pemrograman yang berbeda. Ali mengikuti kompetisi yang berlangsung 7 hari
sekali, Lia mengikuti kompetisi yang berlangsung 3 hari sekali, dan
Budi mengikuti kompetisi yang berlangsung 5 hari sekali. Pada minggu ini,
Ali mengikuti kompetisi di hari Senin, Lia mengikuti di hari Selasa, dan
Budi mengikuti di hari Kamis. Tapi karena mereka berkompetisi pada hari
yang tidak sama, mereka merasa kesepian dan mereka menunggu-nunggu satu
hari terdekat dimana mereka bisa berkompetisi pada hari yang sama. Di hari
apakah itu?
a. Senin b.
Selasa c. Rabu d. Kamis e. Jumat
Pembahasan:
Karena Ali hanya bisa bertanding pada hari
Senin, maka A senin
kita dapat melihat bahwa Ali mengikuti
kompetisi yang berlangsung 7 hari sekali yaitu pada hari Senin.
mereka ingin berkompetisi pada hari yang
sama.
jadi, dapat saya simpulkan bahwa Ali, Lia,
& Budi dapat bersama - sama berkompetisi pada hari senin, karena Ali
berkompetisi 7 hari sekali.
12. Manakah nilai-nilai A, B, C, D, E yang dapat memenuhi
pernyataan
(A and B and C and D) or not E bernilai false?
a. A = true, B = true, C = true, D = true, E = true
b. A = false, B = false, C = false, D = false, E = false
c. A = true, B = false, C = true, D = false, E = true
d. A = false, B = true, C = false, D = true, E = false
e. A = true, B = true, C = true, D = true, E = false
Pembahasan:
Dengan Cara Trial and Error
didapatkan jawaban C
tapi bisa juga menggunakan cara
(A and B and C and D) or Not e = false
artinya
(false) or false = false
not e = false
e = true;
a and b and c and d <> true
jadi jawabannya adalah C
13. A adalah suatu himpunan bilangan prima. B adalah
suatu himpunan bilangan yang jika dibagi dengan 7, memiliki sisa bagi 3. C
adalah suatu himpunan yang merupakan hasil irisan himpunan A dan himpunan
B. Berapakah banyak bilangan antara 1 sampai dengan 100 yang menjadi anggota
himpunan C?
a. 4 b. 5 c. 6 d. 7 e. 8
Pembahasan:
A =
{2,3,5,7,11,13,14,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97}
B =
{3,10,17,24,31,38,45,52,59,66,73,80,87,94}
A ∩ B = {3,17,31,59,73}
C = 5 (B)
14. Berapa banyak bilangan antara 100 sampai dengan 1000
(inklusif) yang habis dibagi 3 atau habis dibagi 5, tetapi tidak habis
dibagi 9?
a. 321 b.
421 c. 221 d. 323 e. 423
Pembahasan:
Jumlah angka yang merupakan kelipatan 3
antara 100 sampai dengan 1000 = 300
Jumlah angka yang merupakan kelipatan 5 antara
100 sampai dengan 1000 = 181
Jumlah angka yang merupakan kelipatan 3 dan
5 (atau kelipatan 15) antara 100 sampai dengan 1000 = 60
Jumlah angka yang merupakan kelipatan 9
antara 100 sampai dengan 1000 = 100
Sehingga total bilangan yang mungkin adalah
= 300 + 181 - 60 - 100 = 321
(A)
15. Operasi "SWAPBIT" adalah operasi untuk
menukar 2 buah bit yang bersebelahan dalam suatu bilangan biner. Misalkan
0110 dapat diubah dengan 1 SWAPBIT menjadi 1010 atau 0101. Berapa banyak
operasi SWAPBIT paling sedikit yang diperlukan agar membuat bilangan biner
100101010 menjadi bernilai minimum?
a. 5 b. 7 c. 8 d. 10 e. 11
Pembahasan:
Tinggal menghitung berapa digit angka 0
yang ada di belakang masing-masing digit angka 1
5 + 3 + 2 + 1 = 11 (E)
16. Ido berulang tahun ke-20 pada hari Kamis, 13 Oktober
2016. Pada hari apakah Ido lahir?
a. Senin b. Rabu c. Jumat d. Sabtu e. Minggu
a. Senin b. Rabu c. Jumat d. Sabtu e. Minggu
Pembahasan:
Tahun kabisat dari 2016 hingga 1996 (2016-20)
adalah 2016, 2012, 2008, 2004, 2000 dan 1996
Dari 2016-1996 ada 7300 hari (20x365)
7300 + 6 = 7306 (Di tambah tahun kabisat)
7306 mod 7 = 5, maka akan ada pergesaran
mundur 5 hari
5 hari sebelum Kamis adalah Minggu
(E) Minggu
17. Pada sebuah jam analog terdapat jarum panjang dan
jarum pendek. Di antara pukul 3 dan pukul 4, pada pukul berapakah sudut
yang dibentuk jarum pendek dan jarum panjang berharga maksimum (dibulatkan
ke menit terdekat)? Catatan: penghitungan sudut jarum pendek dan jarum
panjang pada sebuah jam menggunakan sudut yang lebih kecil.
a. 3 lebih 45 menit c. 3 lebih 47 menit e. 3 lebih 49 menit
a. 3 lebih 45 menit c. 3 lebih 47 menit e. 3 lebih 49 menit
b. 3 lebih 46 menit d.
3 lebih 48 menit
Pembahasan:
Satu lingkaran penuh ada 180º. Untuk setiap
satu menit pergerakan jarum menit bertambah 180/(12*5) = 3 derajat. Sedangkan,
untuk setiap satu menit, jarum jam hanya bertambah derajatnya sebanyak
180/(12*60)= 0.25 derajat. Dapat dilihat di sini, bahwa untuk setiap
pertambahan menit, jumlah derajatnya juga akan lebih cepat naik, sehingga
pilihan jawabannya adalah yang meinitnya paling besar, yaitu E
18. Nilai rata-rata suatu kelas pada ujian pelajaran
pemrograman adalah 74. Ternyata ada tambahan satu orang lagi yang
mengikuti ujian susulan, sehingga nilai rata-rata itu menjadi lebih besar
dari 75. Jika nilai ujian susulan tersebut adalah 95, ada berapa siswa
paling banyak di kelas tersebut (termasuk satu siswa yang mengikuti ujian
susulan)?
a. 19 b. 20 c. 21 d. 22 e. 23
Pembahasan:
Misal
n adalah jumlah siswa di kelas tersebut.
Total
nilai sebelum ditambah siswa baru adalah
: 74(n-1)=74n-74
Total
nilai setelah ditambah siswa baru adalah
: 74n-74+95=74n
+ 21
Rata=Rata
nilai setelah ditambah siswa baru :
(74n+21)/n>75
74n+21>75n n<21 Bilangan terbesar pertama yang kurang dari 21 adalah 20, sehingga jawabannya adalah B
Maaf,
menurut soal rata-rata baru itu bukan sama dengan 75 tetapi lebih besar dari
75
|
((n-1)74
+ 1.95)/n > 75
74n -
74 + 95 > 75n
19>n
n=19
.. jika di cocokan
(18.74
+ 95)/19 = 75.105 .....
maka
jawabannya (A)
-74+95
= 21, bukan 19
|
19. Pak Dengklek memiliki mata uang dollar dengan lembar
pecahan 100, 50, 20, dan 10 yang bernilai keseluruhan sebesar 10290
dollar. Berapa banyak lembar pecahan minimal yang dimiliki Pak Dengklek?
a. 102 b.
104 c. 105 d. 106 e. 111
Pembahasan:
10290 div 100 = 102
10290 mod 100 = 90
90 div 50 = 1
90 mod 50 = 40
40 div 20 = 2
40 mod 2 = 0
Jawaban: 102 + 1 + 2 = 105 (C)
kak harusnya yang pecahan 10 nya harus ada
juga :3 jadi ada 106
20. Jika A B, B C, dan C D, manakah
pernyataan yang pasti benar?
a. A D b.
A C c. B D d. B D
e. C merupakan bilangan terbesar dari 4 bilangan tersebut
Pembahasan:
*koreksi soal:
A >= B, B>=C, C<=D
A >= D
A >= C
B >=D
B <= D
C merupakan bilangan terbesar dari 4
bilangan tersebut
jawabannya B
21. Jehan mempunyai tugas beternak amuba. Menurut
informasi gurunya, jenis amuba ini akan melahirkan 1 amuba baru per menit
setelah menit ke-4 sejak dilahirkan. jenis amuba ini akan melahirkan satu amuba
baru. Mula-mula gurunya memberikan 6 amuba yang baru dilahirkan dan menginstruksikan
Jehan untuk mengamati pertumbuhan amuba per menit selama 1 jam sejak 6 amuba
itu diberikan. Perkembangan amuba seterusnya diilustrasikan pada gambar berikut
ini.
Berapakah jumlah amuba pada menit ke-60 sejak 6 amuba
pertama mulai hidup jika tidak ada amuba yang mati?
a. 595038720 c.
595038725 e. 595038728
b. 595038722 d.
595038726
Pembahasan:
Soal ini akan diselesaikan dengan Dynamic Programming.
Misalkan f(n) adalah banyaknya amuba pada
menit ke-n.
Kita tahu, banyaknya amuba pada menit ke-n
adalah banyaknya amuba pada menit sebelumnya (n-1) ditambah banyaknya amuba
baru. Dimana amuba baru dilahirkan oleh amuba yang telah berumur minimal 4
menit. Amuba yang berumur minimal 4 menit adalah amuba yang pada menit ke(n-4)
ia telah ada, banyaknya ada f(n-4). Dari sana didapatkan relasi rekursi f(n) =
f(n-1) + f(n-4)
f(1) = 6
f(2) = 6
f(3) = 6
f(4) = 6
f(5) = f(4) + f(1) = 6 + 6 = 12
f(6) = f(5) + f(2) = 12 + 6 = 18
f(7) = f(6) + f(3) = 18 + 6 = 24
f(8) = f(7) + f(4) = 24 + 6 = 30
f(9) = f(8) + f(5) = 30 + 12 = 42
f(10) = f(9) + f(6) = 42 + 18 = 60
f(11) = f(10) + f(7) = 60 + 24 = 84
f(12) = f(11) + f(8) = 84 + 30 = 114
f(13) = f(12) + f(9) = 114 + 42 = 156
f(14) = f(13) + f(10) = 156 + 60 = 216
f(15) = f(14) + f(11) = 216 + 84 = 300
f(16) = f(15) + f(12) = 300 + 114 = 414
f(17) = f(16) + f(13) = 414 + 156 = 570
f(18) = f(17) + f(14) = 570 + 216 = 786
f(19) = f(18) + f(15) = 786 + 300 = 1086
f(20) = f(19) + f(16) = 1086 + 414 = 1500
f(21) = f(20) + f(17) = 1500 + 570 = 2070
f(22) = f(21) + f(18) = 2070 + 786 = 2856
f(23) = f(22) + f(19) = 2856 + 1086 = 3942
f(24) = f(23) + f(20) = 3942 + 1500 = 5442
f(25) = f(24) + f(21) = 5442 + 2070 = 7512
f(26) = f(25) + f(22) = 7512 + 2856 = 10368
f(27) = f(26) + f(23) = 10368 + 3942 =
14310
f(28) = f(27) + f(24) = 14310 + 5442 =
19752
f(29) = f(28) + f(25) = 19752 + 7512 =
27264
f(30) = f(29) + f(26) = 27264 + 10368 =
37632
f(31) = f(30) + f(27) = 37632 + 14310 =
51942
f(32) = f(31) + f(28) = 51942 + 19752 =
71694
f(33) = f(32) + f(29) = 71694 + 27264 =
98958
f(34) = f(33) + f(30) = 98958 + 37632 =
136590
f(35) = f(34) + f(31) = 136590 + 51942 = 188532
f(36) = f(35) + f(32) = 188532 + 71694 =
260226
f(37) = f(36) + f(33) = 260226 + 98958 =
359184
f(38) = f(37) + f(34) = 359184 + 136590 =
495774
f(39) = f(38) + f(35) = 495774 + 188532 =
684306
f(40) = f(39) + f(36) = 684306 + 260226 =
944532
f(41) = f(40) + f(37) = 944532 + 359184 =
1303716
f(42) = f(41) + f(38) = 1303716 + 495774 =
1799490
f(43) = f(42) + f(39) = 1799490 + 684306 =
2483796
f(44) = f(43) + f(40) = 2483796 + 944532 =
3428328
f(45) = f(44) + f(41) = 3428328 + 1303716 =
4732044
f(46) = f(45) + f(42) = 4732044 + 1799490 =
6531534
f(47) = f(46) + f(43) = 6531534 + 2483796 =
9015330
f(48) = f(47) + f(44) = 9015330 + 3428328 =
12443658
f(49) = f(48) + f(45) = 12443658 + 4732044
= 17175702
f(50) = f(49) + f(46) = 17175702 + 6531534
= 23707236
f(51) = f(50) + f(47) = 23707236 + 9015330
= 32722566
f(52) = f(51) + f(48) = 32722566 + 12443658
= 45166224
f(53) = f(52) + f(49) = 45166224 + 17175702
= 62341926
f(54) = f(53) + f(50) = 62341926 + 23707236
= 86049162
f(55) = f(54) + f(51) = 86049162 + 32722566
= 118771728
f(56) = f(55) + f(52) = 118771728 +
45166224 = 163937952
f(57) = f(56) + f(53) = 163937952 +
62341926 = 226279878
f(58) = f(57) + f(54) = 226279878 +
86049162 = 312329040
f(59) = f(58) + f(55) = 312329040 +
118771728 = 431100768
f(60) = f(59) + f(56) = 431100768 +
163937952 = 595038720
Jawaban : A
karena di pilihannya hanya beda satuan, dan
untuk setiap menit jumlah amoeba selalu habis dibagi 6. soal dapat diselesaikan
dengan menguji setiap opsi dengan teori keterbagian.
dari seluruh opsi, bilangan genap dan dapat
dibagi 3 hanya opsi (A).
Deskripsi
untuk soal nomor 22 - 23
Rina sedang bermain dengan string (deretan) huruf. Aturan
permainannya adalah sebagai berikut. Pada satu kali permainan pemain memilih
sebuah string. Selanjutnya setiap huruf akan diganti dengan string tertentu,
misalnya setiap huruf A diganti dengan “AB” dan setiap huruf B diganti dengan
“A”. Jika permainan dilakukan lebih dari satu kali, pergantian dilakukan pada
hasil sebelumnya menggunakan aturan pergantian yang sama. Misalkan Rina memilih
string "BAABA" dan bermain 1 kali, maka string itu akan berubah
menjadi "AABABAAB". Jika bermain 2 kali, maka string itu akan berubah
menjadi "ABABAABAABABA".
22. Dengan peraturan A diganti dengan “AB” dan B diganti
dengan “A”, berapa panjang string hasil setelah dilakukan 10 kali permainan
dengan string awal adalah “A”?
a. 90 b. 55 c. 144 d. 89 e. 88
Pembahasan:
String awal = "A"
f(0) = 1 (A)
f(1) = 2 (AB)
f(2) = 3 (ABA)
f(3) = 5 (ABAAB)
f(n) = f(n-1)+f(n-2)
f(10) = f(9) + f((8)
f(9) = 89
f(8) = 55
f(10) = 89+55 = 144 (C)
23. Rina melakukan permainan yang sama dengan soal
sebelumnya dan dia menemukan secarik kertas di meja bertuliskan
"ABABBBABABBBBBBBBBABABBBABA". Dia ingat bahwa itu adalah string
hasil permainan yang pernah dilakukannya dengan string awal dan peraturan yang
berbeda (seperti soal sebelumnya). Tapi dia lupa string awalnya apa dan
peraturannya apa, yang hanya dia ingat adalah dia melakukan permainan sebanyak
3 kali. Rina meminta kalian mencari string awal dan peraturan penggantian untuk
menghasilkan string yang ditemukan di meja tersebut!
a. string awal: “B”, peraturan: (A diganti dengan “AAA”,
B diganti dengan “BAB”)
b. string awal: “ABA”, peraturan: (A diganti dengan
“BAB”, B diganti dengan “ABA”)
c. string awal: “BA”, peraturan: (A diganti dengan “BA”,
B diganti dengan “AB”)
d. string awal: “AB”, peraturan: (A diganti dengan “BA”,
B diganti dengan “AB”)
e. string awal: “A”, peraturan: (A diganti dengan “ABA”,
B diganti dengan “BBB”)
Pembahasan:
f(3)=27
simulasi aja. Kalau instingiku itu bilangan
3n
jadi f(n)=3n
f(0) = 1
f(1) = 3
f(2) = 9
Kemungkinan jawaban di sini hanya ada A & E
Untuk pilihan A String Awal tidak
mungkin = "A" karena string awal: “B”, peraturan: (A diganti dengan
“AAA”, B diganti dengan “BAB”)
Hanya akan membentuk pola awalan dengan
string adalah "B" contoh f(1) = BAB
Jadi Jawabannya adalah E
24. Anthony ingin bermain sulap. Dia memiliki 10 kandang
burung dengan kapasitas maksimal masing-masing 5 burung. Dia menyediakan
beberapa burung dan meminta seorang penonton memasukkan semua burung tersebut
ke dalam kandang-kandang tanpa dilihat oleh Anthony. Berapakah burung yang
harus disediakan Anthony supaya dia bisa dengan pasti mengatakan dengan yakin
bahwa "Setidaknya pasti ada 3 kandang yang berisi 2 burung!"?
a. 8 b. 13 c.
14 d. 19 e. 20
Pembahasan:
Kemungkinan terburuk :
5
|
5
|
2
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
Minimal ada 19 burung (D)
Deskripsi
untuk soal nomor 25 - 27
Di Kota TOKI terdapat tempat yang berbentuk segi-7
beraturan. Masing-masing titik pada segi-7 tersebut harus diwarnai salah satu
dari 7 warna yaitu: merah, jingga, kuning, hijau, biru, nila, dan ungu.
Pemberian warnanya mengikuti aturan sebagai berikut :
· kuning
tidak boleh bersebelahan dengan hijau.
· biru
harus berada 3 titik disebelah kiri nila.
· hijau
harus berada tepat disebelah merah (boleh sebelah kiri maupun sebelah
kanan).
· jingga
tidak boleh ditempatkan bersebelahan dengan biru maupun nila.
· ungu
harus berada 3 titik dari biru.
· merah
harus berada pada 2 titik dari ungu.
25. Manakah yang benar dari pernyataan berikut?
a. Ungu dan Nila berjarak sebanyak 3 titik.
b. Jingga dan merah berjarak sebanyak 3 titik
c. Hijau dan Kuning berjarak sebanyak 3 titik
d. Ungu dan Nila berjarak sebanyak 2 titik.
e. Kuning dan Merah berjarak sebanyak 2 titik
Pembahasan:
susunan nya
nila
merah ungu
hijau
jingga
kuning biru
(anggap saja itu segi 7 beraturan )
pernyataan yang benar := B. jingga
dan merah berjarak 3 titik
26. Warna apakah yang berada tepat sebelah kiri jingga?
a. merah b.
hijau c. biru d. ungu e. kuning
Pembahasan: tepat sebelah kiri jingga
:= D. ungu
27. Apabila pernyataan "merah harus berada pada 2
titik dari ungu" dihapus, warna apa saja yang mungkin berada tepat sebelah
kiri nila?
a. Merah atau Biru c.
Hijau Saja e. Merah
atau Hijau
b. Biru atau Hijau d.
Merah Saja
Pembahasan: E. hijau / merah
28. Ali, Badu dan Cica adalah tiga bersaudara (tidak
kembar) dan Ali adalah yang tertua dan Cica adalah yang termuda. Hasil kali
umur-umur mereka adalah 135. Ketiga orang tersebut belum berumur 10 tahun.
Berapakah hasil perkalian umur Ali dan Badu?
a. 9 b. 5 c. 45 d. 15 e. 27
Pembahasan:
misalkan
A = umur Ali
B = umur Badu, dan
C = umur Cica
dari soal, kita dapat kan bahwa A > B
> C, A,B,C < 10, dan A*B*C = 135
pemfaktoran dari 135, kita mendapatkan (33 *
5) → (3*3 , 5, 3) = (9,5,3)
jadi, A=9, B=5, C=3. A*B = 45 (C)
Deskripsi
untuk soal nomor 29 - 31
Pada suatu ketika di kebun Pak Dengklek sedang berkumpul
berbagai macam binatang. Binatang tersebut ada yang berkaki satu, ada yang
berkaki tiga, dan ada yang berkaki lima. Diketahui bahwa jumlah seluruh
binatang adalah 52 ekor, jumlah seluruh kaki dari binatang berkaki satu dan
tiga adalah 88, dan jumlah seluruh kaki dari binatang berkaki tiga dan lima
adalah 106.
29. Berapakah jumlah seluruh kaki yang ada?
a. 160 b. 128 c. 138 d. 140 e. 156
Pembahasan: Jumlah Kaki = X+3Y+5Z =
22+66+40=128
30. Berapa banyaknya binatang berkaki satu?
a. 20 b. 22 c. 30 d. 32 e. 40
Pembahasan:
Misal
:
Binatang
berkaki Satu : X
Binatang
berkaki Tiga: Y
Binatang
berkaki Lima : Z
Diketahui
:
X+Y+Z=52
(Pers. 1)
X+3Y=88
-> X=88-3Y (Pers. 2)
3Y+5Z=106
(Pers. 3)
|
Subtitusi
X pada Pers. 2 Ke Pers. 1 :
88-3Y+Y+Z=52
-> Z=-36+2Y (Pers.4)
Subtitusi
Z pada Pers. 4 Ke Pers. 3 :
3Y-180+10Y=106
-> 13Y=286 -> Y=22
X+3Y=88 -> X+66=88 -> X=22 |
31. Berapa banyaknya binatang berkaki lima?
a. 8 b. 10 c. 18 d. 20 e. 22
Pembahasan: 3Y+5Z=106 -> 66+5Z=106
-> 5Z = 40 -> Z=8
Deskripsi
untuk soal nomor 32 - 34
Sebuah keluarga besar, terdiri dari 9 orang: A, B, C, D,
E, F, G, H, I. Diketahui beberapa fakta sebagai berikut:
· A
adalah ayah dari E
· E
adalah bibi dari D
· I
adalah keponakan dari F
· H
adalah nenek dari G dan ibu dari E.
· B
adalah paman dari G dan suami C.
· A,
H, E, dan F, sudah menikah, dan pasangannya merupakan salah satu dari 9 anggota
keluarga tersebut (pasangan merupakan suami istri).
32. Siapakah Istri A?
a. B b. I c. H d. F e. G
Pembahasan:
(C) H
33. Siapa yang dapat dipastikan adalah seorang perempuan?
a. F b. G c. C d. D e. I
Pembahasan:
(C) C
34. Siapa yang merupakan anak tunggal?
a. G b. E c. D d. C e. I
Pembahasan:
(A) G
35. Suami dari E adalah ...
a. A b. B c. C d. F e. H
Pembahasan:
(D) F
36. Terdapat 5 katak A, B, C, D, dan E yang masing-masing
berusia berturut-turut 7 minggu, 8 minggu, 9 minggu, 10 minggu, dan 11
minggu.
Mereka akan melompat dari suatu daun teratai ke daun
teratai lainnya. Mereka telah meletakkan beberapa panah diantara daun, dan
mereka semua memulai pada sisi kiri seperti pada gambar.Ketika seseorang
melompat ke suatu daun, dia menunggu sampai ada katak lain yang datang
ke daun tersebut. Kemudian diantara dua katak pada daun tersebut, katak
yang lebih tua akan melompat ke katak lain mengikuti panah yang tebal,
sedangkan yang lebih muda mengikuti panah yang tipis. Bagaimanakah posisi
akhir mereka pada sisi kanan dari gambar di atas (dari paling atas)?
a. B – C – D – A – E c.
B – D – C – E – A e. A
– B – C – D – E
b. B – D – C – A – E d.
B – C – D – E – A
Pembahasan:
B-D-C-A-E (B)
37. Bu Dengklek sedang ingin mempersiapkan dua makanan,
dan kedua makanan tersebut terbuat dari 4 bahan yang sama yaitu daging,
tomat, ikan dan wortel.
Pertama, Bu Dengklek harus memasak ikan dan wortel secara
bersamaan dan membutuhkan waktu 5 menit (S1). Kemudian Bu Dengklek memasak
daging dan tomat bersamaan dan membutuhkan waktu 5 menit (S2). Kemudian
hasil dari daging dan tomat tersebut dibagi menjadi tiga bagian (S9, S5,
S4). Untuk proses S4, Bu Dengklek menggabungkan hasil dari S2 dan S1 dan
memprosesnya selama 5 menit. Begitu seterusnya sampai makanannya jadi, dan
setiap proses itu membutuhkan waktu 5 menit. Tentulah bisa saja dua proses
berjalan bersamaan, dan waktu total untuk menyelesaikan kedua makanan itu
menjadi lebih singkat. Berapakah waktu minimum yang diperlukan Bu Dengklek
untuk menyelesaikan masakannya
a. 20 menit b. 15 menit c. 30 menit d. 25 menit e.
55 menit
Pembahasan:
Terdapat 11 proses dan 2 proses bisa
dilakukan bersamaan, serta setiap proses dibutuhkan waktu 5 menit. Sehingga
waktu minimum yang dibutuhkan adalah:
ceil(11/2) * 5 = ceil(5.5) * 5 = 6 * 5 = 30 (C)
38. Pak Dengklek ingin membawa belanjaannya dari pasar ke
rumahnya hanya melalui suatu jaringan jalan tol. Pada setiap ruas jalan
tol ia harus membayar sejumlah uang yang ditunjukkan dengan angka-angka
pada gambar berikut.
Ia ingin memilih lintasan dengan biaya yang paling
minimum. Berapa biaya minimum yang harus disediakan Pak Dengklek untuk
sampai ke rumahnya?
a. 17 b. 18 c. 19 d. 20 e. 21
Pembahasan:
gunakan Greedy untuk memecahkan soal ini,
jalur yang paling minimum adalah (3-2-11-3) = 19 (C)
Istilah Greedy sepertinya kurang tepat.
Karena berdasarkan definisi, Greedy akan mengambil pilihan terbaik (saat ini)
untuk setiap langkah. Sehingga pada langkah pertama (kalau Greedy) akan memilih
jalan dengan panjang 2, karena paling pendek diantara pilihan lain.
Jawaban benar, namun menurut saya sebaiknya
tidak menggunakan istilah Greedy. Takut menyesatkan. Hehehe
yang diminta adalah biaya minimum,
diperoleh 19.
Deskripsi
untuk soal nomor 39 - 40
Terdapat suatu permainan Grid berbentuk petak-petak yang
tersusun 3x3 yang dilengkapi dengan 4 tombol, dengan bentuk seperti
seperti pada Gambar 1. Jika sebuah tombol ditekan, angka-angka
pada keempat petak di sekelilingnya akan berputar searah jarum jam.
Susunan pada Grid 1 akan ditulis per baris sebagai berikut 1-4-5;7-3-2;8-9-6.
Contoh: diberikan susunan semula seperti pada Grid 2,
jika tombol A ditekan maka agka-angka pada petak menjadi seperti pada Grid
3.
39. Jika dari susunan pada Grid 1, kemudian dilakukan
penekanan tombol A dua kali dan kemudian tombol C satu kali, maka
susunannya akan menjadi (urutan ditulis dari kiri ke kanan
a. 3-7-5;4-6-9;8-2-1 c. 4-1-3;5-2-6;7-8-9 e. 1-2-3;4-9-8;7-6-5
a. 3-7-5;4-6-9;8-2-1 c. 4-1-3;5-2-6;7-8-9 e. 1-2-3;4-9-8;7-6-5
b. 3-7-5;4-9-1;8-6-2 d.
1-2-3;4-5-6;7-8-9
Pembahasan:
setelah melalui 3 kali penekanan.
susunannya berubah menjadi 3-7-5;4-9-1;8-6-2.
40. Berapa penekanan tombol minimal (tombol apa saja)
yang diperlukan untuk menyusun susunan angka pada Grid 2 menjadi susunan
pada Grid 1 di atas?
a. 3 b. 4 c. 5 d. 6 e. 7
41. Apa keluaran program diatas?
var
arr : array[1..30] of longint = (5,5,7,8,6,8,5,8,4,6,6,3,4,
2,8,0,9,2,3,4,7,8,5,4,5,3,9,8,0,3);
i, c : longint;
begin
c := 0;
for i:=1 to length(arr) do begin
inc(c, arr[i]);
end;
writeln((c/length(arr)):0:2);
end.
a. 3.17 b.
4.17 c. 5.17 d. 6.17 e. 7.17
Pembahasan:
Itu mungkin jumlah semua data di bagi
dengan panjang data arr
jadi jumlah data [1] - data [30] / 30 =
155/30 = 5.1666666666667 karena yang dipakai 2 angka dibelakang koma jadinya
5.17
Deskripsi
untuk soal nomor 42 - 43
var
i, n, c : longint;
begin
readln(n);
c := 0;
for i := 1 to n do begin
inc(c, i);
end;
writeln(c);
end.
42. Apakah output program di atas apabila masukan n
bernilai 10?
a. 10 b. 45 c. 55 d. 65 e. 76
Pembahasan:
mungkin sama dengan yang nomer 41 .. itu
juga pertambahan dari semua nilai i, maka 1+2+3... +10
pakai prinsip 1+10 + 2+9... 5+6 maka akan
menjadi 11 x 5 = 55 (C)
43. Apakah output program di atas apabila masukan n
bernilai 1000?
a. 1000 b.
5500 c. 5550 d. 505000 e. 500500
Pembahasan:
1+2+3 ...... +1000
pakai prinsip 1000+1 = 1001 * 1000/2 =
1001*500 = 500500 (E)
44.
var
i, j, n, r, c, d : longint;
begin
readln(n, r);
c := 0;
for i := 1 to n do begin
d := 1;
for j := 1 to i do begin
d := d * r;
end;
inc(c, d);
end;
writeln(c);
end.
Jika diberi input 20 2, maka outputnya adalah?
a. 1048576 c.
1048575 e. 2097151
b. 2097152 d.
2097150
Pembahasan:
program bakal melaksanakan penjumlahan
deret geo dari 2^1 ... 2^20
i:= 1 to n
setiap i bakal ngelaksanain sebanyak i kali
=> r^i
berhubung n itu 20 dan r itu 2 maka
=> 2(2^20 - 1 ) / 2-1
=> 2(1048575)/1
=> 2097150 (D)
45.
function tis(a : integer) : longint;
begin
if(a < 10) then tis := a
else tis := tis(a div 10) * 3 + tis(a div 50);
end;
Berapakah hasil dari pemanggilan fungsi tis(143)?
a. 8 b. 9 c. 10 d.
11 e.
12
Pembahasan:
Tis(143) a= 143
143>10 maka tis(143 div 10) * 3 +
tis(143 div 50)
= tis(14)*3 + tis(2)
karena tis(14) 14>10 maka
tis(14 div 10) * 3 + tis(14 div 50)
tis(1) * 3 + tis(0)
karena semuanya tis a<10 maka tis(a) =
a
jadi 1*3 + 0 = 3
masukan 3 ke tis(!4)
3*3 + 2 = 11 (D)
46.
const
MAXS = 10;
var
i, n : integer;
A : array[1..10] of integer;
procedure klik();
begin
dec(i);
end;
function klek(x : integer) : integer;
begin
if(x = MAXS) then klek := A[x] * A[1]
else klek := A[x] * A[x+1];
end;
function klok() : integer;
var
tmp : integer;
begin
if(i = 0) then klok := i
else begin
tmp := i;
klik();
klok := klok() + klek(tmp);
end;
end;
begin
A[1] := 1; A[2] := 2; A[3] := 3; A[4] := 4; A[5] := 5;
A[6] := 6; A[10] := 11; A[9] := 9; A[7] := 8; A[8]:=7;
read(n);
i := n;
writeln(klok());
end.
Apakah output program di atas jika diberi input 8?
a. 240 b. 235 c. 237 d. 330 e. 327
Pembahasan:
Program diatas memiliki makna yang sama
dengan fungsi berikut:
Bila kita masukkan nilai x = 8 maka:
f(8) = A[1]*A[2] + A[2]*A[3]
+ A[3]*A[4] + A[4]*A[5] + A[5]*A[6] + A[6]*A[7] +
A[7]*A[8] + A[8]*A[9]
= 1*2 + 2*3 + 3*4 + 4*5 + 5*6 + 6*8 + 8*7 +
7*9 = 237 (C)
Deskripsi
untuk soal nomor 47 - 48
a := 13; b := 1;
while(a < n) do
begin
a := a + b;
b := b + 1;
end;
writeln(a, ' ', b);
47. Dari pilihan berikut ini, berapakah nilai n yang
TIDAK membuat nilai a di akhir adalah 79?
a. 68 b. 69 c. 70 d. 71 e. 72
Pembahasan:
program a mengalami penambahan +1 +2 +3 dst
sampai nilai a >= n
jadi N:= 79
a = 13 .... 68 79
jawabanya := A. 68
48. Berapakah nilai n maksimum yang membuat nilai b di
akhir bernilai 15?
a. 134 b.
133 c. 119 d. 118 e. 117
Pembahasan:
b:= 15
a = 13
a akhir = 13 + 1+...+14= 118
jadi nilai n haruslah
:= n <=118
berhubung dipilihan nilai max yang memenuhi
persamaan adalah 118
Deskripsi
untuk soal nomor 49 - 50
function
begin
if y = 0 then naon := 1
else if y = 1 then naon := x
else naon := naon(x, y div 2) * naon(x, y div 2 ) * naon(x, y
mod 2);
end;
49. Berapakah hasil dari naon(3, 8)?
a. 11 b.
24 c. 6561 d. 512 e.
81
Pembahasan:
(3,8) => (3,4)*(3,4)*(3,0) =>
81*81*1 => 6561 (C)
(3,4) => (3,2)*(3,2)*(3,0) =>
9*9*1 => 81
(3,2) => (3,1)*(3,1)*(3,0) =>
3*3*1 => 9
50. Berapa kalikah fungsi naon dipanggil pada pemanggilan
naon(4, 13)?
a. 13 b.
15 c. 20 d. 21 e. 22
Pembahasan:
(4,13) => hasilnya 21 + 1 [manggil
dirinya sendiri yaitu (4,13) => 22 (E) jawaban nomor 50
(4,13 ) => (4,6) (4,6) (4,1) =>
7*2 + 1 => 9*2 [ (4,6) ada dua dan setiap (4,6) bakal manggil 9 naon] +
3 ( manggil dirinya sediri ) => 21
(4,6) => (4,3) (4,3) (4,0) =>
3*2 [ (4,3) ada 2 nah setiap (4,3) bakal manggil 3 naon] + 3 ( manggil
dirinya sendiri ) => 9
(4,3) => (4,1) (4,1) (4,1)
=> 3 ( manggil dirinya sendiri )
#setiap (4,1) dan (4,0 ) tidak akan
memanggil fungsi naon lain, melainkan langsung menghasilkan nilai x atau 1
Oh ya sobat, saya bercerita sedikit
ya tentang pengalaman hidup saya. Dulu saya ketika kelas X, salah seorang guru
yang menangani Olimpiade Nasional di sekolahku datang perkelas. Kebetulan
beliau juga mendatangi kelasku, beliau bertanya “Dulu sewaktu SMP disini ada
yang pernah ikut Olimpiade?” Salah satu temenku maju untuk memperkenalkan diri
bahwa dia dulu sewaktu SMP pernah ikut Olimpiade juara 4 di Primagama. Aku
sedikit minder dan berpikir-pikir sejenak sambil berkata dalam hati “Dulu aku
pernah ikut olimpiade apa ya…?”. Kemudian guru itu mendata temenku itu.
Kemudian aku check in di internet tentang olimpiade SMA ternyata tidak hanya 1
tetapi 9 bidang meliputi Astronomi, Kebumian, Geografi, Ekonomi, Kimia, Fisika,
Biologi, Matematika, dan Komputer. Saya terkejut ketika membaca bertemu
dengan kata Komputer. Imajinasi saya keluar sambil sedikit berkhayal
“Soal Komputer itu seperti apa ya? Apa sama seperti yang diajarkan disekolahan
seperti MS. Word atau MS. Excel? Pasti seru!!!”. Kemudian saya searching lagi
soal olimpiade komputer di mbah google. Saya semakin mengerutkan kening ketika
membaca soalnya sambil berkata “Maksudnya gimana ini?”. Lalu saya coba-coba
ikut bimbingan belajar disekolahan tentang bidang TIK dan mengajukan diri untuk
ikut olimpiade, nah kebetulan juga orangnya yang ikut 3 tapi salah satu dari
mereka tidak pernah masuk dan giliran aku sebagai pengganti dia. Jadi totalnya
pas 3 anak. Ketika pertama saya bimbingan belajar ternyata saya ketinggalan 3
pertemuan, tiba-tiba yang dipelajari Matriks, belajar memasukkan algoritma ke
Pascal, lalu diberi PR tentang matriks tersebut. Saya hanya pasrah dan bertawakkal.
Nah, mulai dari situ saya semakin giat mencari-cari soal-soal yang berhubungan
dengan Pascal itu. Ternyata seru juga sobat.
Ketika Olimpiade semakin dekat jadwalnya.
Saya dan 2 teman saya itu semakin rajin masuk sekolah untuk mengikuti bimbingan
belajar secara sistem kebut. Yang pada akhirnya, namaku berada di urutan 40.
Gara-gara soal 50 yang kubisa 22 sehingga ku tak percaya diri sampai akhirnya
ku hanya bisa menjawab soal 22 itu tadi. Tapi itu akan ku jadikan motivasi
hidup, bahwa tahun depan saya masih bisa ikut dan harus lebih giat dan rajin
lagi belajarnya. Maaf sobat, berbagi pengalaman hidup nih. Sekali lagi saya
minta maaf jika ada kata-kata yang salah dan menyinggung perasaan sobat. I’m
sorry. Semoga pengalamanku diatas dapat memotivasi sobat. Thank you for
visiting in my blog. Thank you…