Anda di halaman 1dari 16

BONUS SOAL PENYISIHAN

INFORMATICS OLYMPIAD (I/O)


TAHUN 2019
1. Robi sekarang 15 tahun lebih tua dari pada adiknya Soni. Pada y tahun yang lalu umur Robi adalah dua kali
dari umur Soni. Jika Soni sekarang berumur b tahun dan b > y, berapakah nilai b – y ?

A. 13
B. 14
C. 15
D. 16
E. 17
2. Diketahui empat bilangan bulat positif W, X, Y dan Z yang juga memenuhi W < X < Y < Z. Jika hasil kali
W dan Y adalah 32, dan hasil kali X dan Z adalah 50. Berpakah nilai X dikali Y ?

A. 20
B. 25
C. 36
D. 40
E. 44
3. Berapa langkah minimal yang dibutuhkan untuk mengurutkan deret {3, 2, 1, 5, 7, 4, 8, 6, 10,
9} secara menaik apabila langkah yang hanya dapat anda lakukan adalah menukar posisi dari 2
buah bilangan manapun?
A. 4
B. 5
C. 6
D. 7
E. 8
4. 11100 mod 41 =
A. 1
B. 19
C. 20
D. 29
E. 40
5. Berapa banyak angka antara 100 hingga 1000 yang habis dibagi 3 dan 5 tetapi tidak habis
dibagi 30?
A. 48
B. 40
C. 30
D. 20
E. 18
6. 1/2 + 1/6 + 1/12 + 1/20 +… + 1/9900 =
A. 99/100
B. 96/100
C. 98/100
D. 97/100
E. 100/100
7. Bilangan 6075 habis dibagi bilangan-bilangan positif: n1, n2,.. n3 dst. Jika bilangan-bilangan
tersebut dijumlahkan adalah …
A. 11281
B. 11282
C. 11283
D. 11284
E. 11285

8. Didefinisikan N! = N x (N-1) x.. x 2 x 1 dan N# = N + (N-1) + ... + 2 +1


Contoh : 4! = 4 x 3 x 2 x 1 = 24
4# = 4+3+2+1 = 10
Berapa digit terakhir dari ((5#)#) + ((3#)#) - ((5!)! + (3!)!) ?
A. 4
B. 3
C. 2
D. 1
E. 0

Untuk soal 9-10


Seorang salesman (petugas pemasaran) suatu perusahaan minuman harus mengunjungi 5
warung untuk memperkenalkan produk minuman terbaru. Kelima warung tersebut adalah: P,
Q, R, S, dan T. Dia hanya akan mengunjungi masing-masing satu kali saja, satu warung per
hari, Senin s/d Jumat, dengan aturan berikut:
 Tidak boleh mengunjungi warung R pada hari Senin
 Harus mengunjungi warung P sebelum mengunjungi S.
 Harus mengunjungi warung Q sebelum mengunjungi T.
9. Mana jadwal yang memenuhi syarat?
A. Q, S, P, T, R
B. R, Q, T, P, S
C. R, S, P, Q, T
D. T, R, Q, P, S
E. P, S, R, Q, T
10. Jika ia mengunjungi R lebih dahulu daripada P, mana yang pasti benar?
A. Q dikunjungi pertama kali
B. R dikunjungi pada hari Selasa
C. P dikunjungi pada hari Rabu
D. T dikunjungi pada hari Kamis
E. S dikunjungi terakhir kali
11. Di suatu pulau misterius terdapat 2 macam orang, prajurit dan pencuri. Sang prajurit selalu
berkata jujur dan sang pencuri selalu berkata bohong. Suatu hari Anda bertemu tiga orang
yang berkata seperti berikut:
A: Hanya satu diantara kami yang merupakan prajurit
B: Setidaknya satu dari antara kita adalah prajurit
C: A bukanlah prajurit
Siapakah diantara mereka yang merupakan prajurit?
A. Hanya A
B. Hanya B
C. Hanya C
D. B dan C saja
E. A dan B saja

Untuk Soal no. 12 – 14


Berikut ini suatu permainan yang akan anda mainkan berdua dengan lawan anda. Dengan saling
berhadapan, ditengah-tengah terdapat mangkuk berisi 50 kelereng. Anda dan lawan anda secara
bergantian akan mengambil satu sampai dengan lima butir kelereng sekali raih dari mangkuk
(tidak boleh lebih dari 5 butir, dan minimal satu butir). Pemain yang melakukan pengambilan
terakhir (yang menyebabkan mangkuk kosong) adalah pemenang permainan ini. Lawan anda
adalah seorang yang ahli dalam permainan ini sehingga tidak akan membuat kesalahan yang
dapat menyebabkan ia menjadi kalah kecuali kondisi yang anda berikan sehingga ia tidak
memiliki pilihan untuk menang.

12. Kini giliran anda untuk mengambil pertama kali. Berapakan yang anda ambil pertama kali
agar anda akhirnya menang?
A. 1
B. 2
C. 3
D. 4
E. 5

13. Anda mendapat giliran pertama untuk mengambil dan anda selama ini menjaga situasi agar
anda akhirnya menang. Jika permainan berlangsung hingga lawan telah anda mengambil
berturut-turut 3, 1, 5, 5, dan 4, dan berikutnya giliran anda. Berapakah jumlah kelereng
yang sudah anda ambil sebelum pengambilan anda yang berikutnya (tidak termasuk yang
akan anda ambil)?
A. 7
B. 10
C. 12
D. 15
E. 20

14. Anda mendapat giliran pertama untuk mengambil dan anda selama ini menjaga situasi agar
anda akhirnya menang. Jika selama permainan lawan selalu mengambil sebanyak-
banyaknya. Berapakah jumlah kelereng yang akhirnya anda kumpulkan hingga selesai
(dan anda menang tentunya)?
A. 7
B. 10
C. 12
D. 15
E. 20

Untuk soal no 15 - 19
Ekspresi logika berikut menggunakan operator and, or, dan not. Operator and mensyaratkan kedua operand harus
bernilai benar untuk menjadikan ekspresi bernilai benar dan selain itu ekspresi bernilai salah. Operator or hanya
mensyaratkan salah satu berharga benar (termasuk boleh keduanya benar) untuk menjadikan ekspresi bernilai benar, jika
kedua operand salah maka ekspresi menjadi salah. Operator not adalah untuk menegasikan (yang benar menjadi salah
dan yang salah menjadi benar) operand yang tertulis setelahnya.

15. Dari nilai- nilai berikut, pernyataan mana yang bernilai salah jika C, D, E, F bernilai benar. A, B bernilai salah?
A. (A and B) or ((C and D) or E) and F
B. (A or B) and ((C or D) and E) or F
C. (A and B) and ((C or D) or E) or F
D. (A and B) and ((C and D) and E) and F
E. ((A or B) or (C or D) or E) and F
16. Dari nilai- nilai berikut, pernyataan mana yang bernilai benar jika C, D, E, F bernilai salah. A, B bernilai benar?
A. (A and B) or ((C and D) or E) and F
B. (A or B) and ((C or D) and E) or F
C. (A and B) and ((C or D) or E) or F
D. (A and B) and ((C and D) and E) and F
E. ((A or B) or (C or D) or E) and F
17. Dari nilai- nilai berikut, pernyataan mana yang bernilai salah jika A, C, D, E bernilai benar. B, F bernilai salah,
kecuali?
A. (A and B) or ((C and D) or E) and F
B. (A or B) and ((C or D) and E) or F
C. (A and B) and ((C or D) or E) or F
D. (A and B) and ((C and D) and E) and F
E. ((A or B) or (C or D) or E) and F
18. Dari nilai- nilai berikut, pernyataan mana yang bernilai benar jika B, C, D, E bernilai benar. A, F bernilai salah?
A. (F or B) and ((C or D) and E) or A
B. (F and B) or ((C and D) or E) and A
C. (A and B) and ((C or D) or E) or F
D. (F and B) and ((C and D) and E) and A
E. ((A or B) or (C or D) or E) and F
19. Ekspresi not((not(a))or(b)) sama dengan
A. (a)and(not(b))
B. (a)or(not(b))
C. (not(a))and(not(b))
D. TRUE
E. FALSE
20. Sebuah lingkaran akan dibagi-bagi menjadi sejumlah bidang yang dibentuk dengan
menggambar garis lurus yang memotong dua tepi lingkaran.
Dengan menggambar 3 garis sebagai berikut, terbentuk 4 atau 5 bidang

Berapa bidang maksimal yang dihasilkan dengan 3 garis?


A. 9
B. 5
C. 7
D. 6
E. 8
21. Berapa banyak untaian bit dengan panjang 10 yang diawali 000 atau diakhiri 1111?
A. 192
B. 184
C. 176
D. 128
E. Pilihan A, B, C, dan D salah.
22. Ada pipa air horizontal berbentuk lingkaran yang terisi sebagian. Jika dilihat secara
melintang, ketinggian air adalah 24 cm, sedangkan lebar air pada permukaannya juga 24 cm.
Berapakah diameter pipa tersebut?
A. 28 cm
B. 30 cm
C. 32 cm
D. 36 cm
E. Jawaban A, B, C, D salah

Untuk Soal no. 23 - 24


Sebuah rombongan tour sedang melakukan perjalanan dengan mobil. Satu mobil terdiri dari 7 orang
peserta tur dan 1 orang supir. Posisi duduk dalam mobil tersebut dapat digambarkan sbb
1 Supir
2 3 4
5 6 7
Nama-nama peserta rombongan tersebut adalah A, B, C, D, E, F, G. Susunan duduk peserta tour ini
ditentukan oleh aturan-aturan sebagai berikut
(ii) G harus duduk di samping jendela
(iii) A-B merupakan sebuah pasangan di mana mereka harus duduk bersebelahan
(iv) C paling suka duduk persis di belakang supir
(v) D-A sedang bermusuhan, sehingga mereka tidak boleh duduk berdekatan dan harus ada orang
di antara mereka berdua (baik secara horizontal, vertikal, maupun diagonal)
(vi) F mabuk darat,sehingga tidak boleh duduk di barisan paling belakang

23. Dari deskripsi soal di atas, jika E sedang ingin tidur, sehingga dia duduk di sebelah jendala
pada barisan paling belakang,maka ada berapa kemungkinan posisi duduk yang dapat
dibentuk?
A. 4
B. 5
C. 6
D. 7
E. 8
24. Dari deskripsi soal di atas, jika E sedang ingin tidur, sehingga dia duduk di sebelah jendela
pada barisan paling belakang, dan G tidak duduk di barisan paling depan,maka dapat kita
pastikan, bahwa orang yang duduk di posisi 1 adalah..
A. A
B. B
C. C
D. D
E. E
25. Perhatikan gambar persegi ajaib berukuran 4x4 di bawah ini:

4 ? 5 X
14 Z 11 ?
? 6 Y 3
1 ? 8 13
Jika persegi ajaib tersebut diisi bilangan bulat dari 1 sampai dengan 16 sedemikian rupa
sehingga total bilangan- bilangan dalam setiap kolom/baris/diagonal adalah sama, maka X
+ Y + Z = ...
A. 34
B. 33
C. 32
D. 31
E. 30

Code berikut untuk soal 26-27


uses crt;
var kambing : array[1..10] of integer = (6,3,8,2,9,1,5,6,5,6);
result : array[1..10] of integer ;
i,jangkrik,jumkam,awal,akhir : integer;
begin
jumkam := length(kambing);
awal := 1;
akhir := jumkam;
for jangkrik:= 1 to jumkam do
begin
if jangkrik mod 2 = 0 then
begin
result[jumkam-(jangkrik-1)] := kambing[akhir];
dec(akhir);
end
else
begin
result[jumkam-(jangkrik-1)] := kambing[awal];
inc(awal);
end;
end;
end.
26. Setelah program berjalan, isi dari array result adalah(urut dari index pertama)…
A. 1 9 5 2 6 8 5 3 6 6
B. 3 6 2 8 1 9 6 5 6 5
C. 6 5 6 5 1 9 2 8 3 6
D. 9 1 2 5 8 6 3 5 6 6
E. 6 3 8 2 9 1 5 6 5 6
27. Jika baris 2 dan 3 diganti seperti berikut, maka isi dari array result adalah(urut dari index
pertama)…

var kambing : array[1..15] of integer = (1,2,3,4,5,6,7,8,9,10,11,


12,13,14,15);
result : array[1..15] of integer;
i,jangkrik,jumkam,awal,akhir : integer;
A. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
B. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
C. 2 1 4 3 6 5 8 7 10 9 12 11 14 13 15
D. 8 9 7 10 6 11 5 12 4 13 3 14 2 15 1
E. 8 9 10 7 11 6 12 5 13 4 14 3 15 2 1

Code untuk soal nomer 28-30


function orakarik(n:integer):longint;
begin
if (n = 0) or (n = 1) then
begin
orakarik:=1
end
else begin
orakarik := orakarik(n mod 2) + orakarik(n-1) * n;
end;
end;

28. Apabila nilai n=5, maka function orakarik akan mengembalikan nilai…
A. 210
B. 325
C. 206
D. 206
E. 300
29. Apabila nilai n=8, maka function orakarik akan mengembalikan nilai…
A. 69281
B. 92681
C. 69821
D. 96821
E. 98261
30. Apabila function orakarik mengembalikan nilai 6235301, maka nilai awal dari n adalah…
A. 9
B. 10
C. 11
D. 12
E. 13
Code untuk Soal 31

procedure cetak(a : byte);


begin
while a > 0 do
begin
write(a mod 2);
a := a shr 1;
end;
end;

31. Apabila dipanggil cetak(255), output yang dihasilkan adalah…


A. 10000111
B. 11000111
C. 10001111
D. 01110001
E. 01111000

Untuk Soal No 32 dan 33


function movpush(a, b :integer):integer;
var x: integer;
begin
while(b <> 0) do
begin
x := a and b;
x := x shl 1;
a := a xor b;
b := x;
end;
movpush := a;
end;
32. Jika dipanggi movpush(movpush(300, 510), movpush(0, 110)), Maka nilai kembalian dari
function diatas adalah..
A. 897
B. 920
C. 678
D. 820
E. 1200

33. Jika dipanggi movpush(movpush(500, 11), movpush(685, 110)), Maka nilai kembalian
dari function diatas adalah..
A. 1500
B. 1789
C. 2019
D. 1306
E. 1460
Soal Untuk No 34 dan 35

function k(a:integer):integer;
begin
if(a=1) then
k:=1
else
k:=k(k(a-1));
end;

34. Kembalian function diatas apabila dipanggi dengan parameter 20 adalah…


A. 40
B. 37
C. 23
D. 4
E. 1
35. Kembalian function diatas apabila dipanggi dengan parameter 200 adalah…
A. 400
B. 370
C. 230
D. 40
E. 1
Untuk Soal No 36 sampai 38
Var a,b,c,d : Boolean;
begin

if((a and b) xor (c or d)) then


writeln('OLIMPIADE TI')
else if(not((not a) xor b) and (c xor (not d))) then
writeln('FASILKOM')
else if((c or d) and d xor (a and b) or (not c)) then
writeln('UNIVERSITAS JEMBER')
else
writeln('NOTHING');
end.

36. Programa akn mencetak NOTHING jika nilai a,b,c dan d adalah…
A. a=True, b=False, c=False, d=True
B. a=False, b=True, c=False, d=True
C. a=True, b=True c=False, d=True
D. a=True, b=False, c=True, d=True
E. a=True, b=True, c=True, d=True
37. Programa akn mencetak OLIMPIADE TI dengan komposisi Boolean berikut, kecuali…
A. a=True, b=False, c=False, d=True
B. a=False, b=True, c=False, d=True
C. a=True, b=False c=False, d=False
D. a=True, b=False, c=True, d=True
E. a=False, b=False, c=True, d=True
38. Perhatikan baris ke-3, ekspresi logika apa yang tepat agar program selalu mencetak
OLIMPIADE TI untuk semua kemungkinan nilai a, b, c, dan d…
A. not((not a) xor b) and (c xor (not d)
B. not a or (a or b) and (c xor (not c))
C. (c or d) and d xor (a and b) or (not c)
D. (a and b) xor (notd)
E. (c or d) and (not b)

Untuk Soal No 39 dan 40

while a>b do
begin
a :=a-b;
b :=b+1;
c :=c+b;
d :=d+a;
end;
writeln(c,’ ‘,d)
39. Jika diberi nilai awal a = 50, b = 10, c = 0, d = 0, maka program akan mencetak…
A. 90 50
B. 50 90
C. 40 80
D. 80 40
E. 30 90
40. Jika diberi nilai awal a = 100, b =10, c = 0, d = 0, maka program akan mencetak…
A. 98 340
B. 340 98
C. 430 89
D. 89 430
E. 67 345

Soal Untuk No 41-43

function ben(a,b: integer):integer;


begin
if(b=0) then
ben:=a
else
ben:=ben(b,a mod b);
end;

function ten(c,d : integer):integer;


begin
ten:= (c*d) div ben(c,d);
end;

41. Hasil dari ben(30,5)..


A. 5
B. 10
C. 15
D. 20
E. 25
42. Hasil dari ten(36,48)…
A. 121
B. 144
C. 169
D. 196
E. 225
43. Hasil dari ten(ben(30,25),ben(80,180))…
A. 360
B. 420
C. 540
D. 720
E. 810

Untuk Soal No 44 - 46

for i := 0 to ((1 shl n) - 1) do


begin
for j := 0 to n - 1 do
begin
if((i and (1 shl j)) <> 0)then
write('1')
else
write('0');
end;
writeln;
end;

44. Banyak angka 1 yang dihasilkan program diatas jika n bernilai 4 adalah...
A. 30
B. 31
C. 32
D. 33
E. 34
45. Jika n=3, maka yang tercetak pada baris ke-6 adalah…
A. 111
B. 110
C. 101
D. 001
E. 010
46. Yang tercetak apabila n = 4 pada baris ke-7 adalah…
A. 0110
B. 1010
C. 0011
D. 1111
E. 0000
Untuk Soal No 47-49
procedure graf(x: integer);
var i: integer;
begin
if x >= 0 then
begin
graf(x - 1);
graf(x - 1);
for i := 0 to x - 1 do
writeln('*');
graf(x - 2);
end;
end;

47. Banyak bintang yang tercetak apabila dipanggil graf(5) adalah…


A. 78
B. 79
C. 80
D. 81
E. 82
48. Berapa banyak procedur graf akan dipanggil pada soal no 22 termasuk pada main
program…
A. 356
B. 357
C. 358
D. 359
E. 360

49. Berapa nilai n jika bintang yang tercetak sebanyak 200?


A. 5
B. 6
C. 7
D. 8
E. 9
Untuk Soal No 50

a := b xor c and not d;


b := a and c or d;
c := b or a xor not d;

50. Bila nilai a, b,c dan d berturut-turut adalah 0, 10, 9, dan 35. Nilai c setelah melewati
potongan program tersebut adalah…
A. -2
B. -1
C. 0
D. 1
E. 2

Anda mungkin juga menyukai