Modulo mempelajari sisa hasil bagi (reminder). Misalnya: berapakah sisa 100
dibagi 9? Dan, jawabnya adalah 1. Di sini, kita dapat menuliskannya menjadi: 100
mod 9 = 1 atau mod (100,9) = 1.
a. 15
b. 20
c. 25
d. 30
e. 35
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
Jawaban : bilangan kubik terkecil yang lebih kecil dari 1001 adalah 1000 (10 ),
3
maka banyaknya bilangan kubik antara 2 hingga 1001 adalah 10, 9, 8 ... 2. 1 tidak
dihitung karena (13=1).
3
Berapakah hasil 272016 mod 26?
a. 1
b. 2
c. 3
d. 4
e. 5
= (26.1+1)2016 mod 26
= 12016 mod 26
=1 (A)
4
(2m + 5) mod n = 6
a. 200004
b. 499992
c. 499993
d. 499991
e. 499990
2m mod 999983 + 5 =6
2m mod 999983=1
m = 499992 (B)
Jawaban : 5
Berapa banyak string 10 bit yang banyaknya bit 1 string tersebut sama dengan
banyaknya bit 0?
a. 126
b. 252
c. 504
d. 512
e. 120
pada awal penulisan biner agar angka itu terbaca harus dimulai dari 1 karna jika
dimulai dari 0 akan terbaca pada bilangan selanjutnya jadi sisa tempat ialah 9
tmpat ,5 untuk angka 0,4 untuk angka 1, kemudian dilakukan permutasi unsur
yang sama
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
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
Jawaban : 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
Jawaban : 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
Jawaban : Bila digit terakhir adalah 9 maka ada 9P6 = 60480 kemungkinan
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
Jawaban : umlah 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)
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
Jawaban : Tahun kabisat dari 2016 hingga 1996(2016-20) adalah 2016,2012,
2008, 2004, 2000 dan 1996
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
Jika Dikalimat Matematika kan : 74=x/y : x= 74y (I) ; dan 75 < x+95/y+1 (II)
subsitusi I ke II :
y<20
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
30
Berapa banyaknya binatang berkaki satu?
a. 20
b. 22
c. 30
d. 32
e. 40
31
Berapa banyaknya binatang berkaki lima?
a. 8
b. 10
c. 18
d. 20
e. 22
Jawaban : 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)
32
Siapakah Istri A?
a. B
b. I
c. H
d. F
e. G
33
Siapa yang dapat dipastikan adalah seorang perempuan?
a. F
b. G
c. C
d. D
e. I
34
Siapa yang merupakan anak tunggal?
a. G
b. E
c. D
d. C
e. I
Jawaban :
32. (C) H
33. (C) C
34. (A) G
35. (D) F
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
b. B – D – C – A – E
c. B – D – C – E – A
d. B – C – D – E – A
e. A – B – C – D – E
Jawaban :
41
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.
Jawaban : tu 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
43
Apakah output program di atas apabila masukan n bernilai 1000?
a. 1000
b. 5500
c. 5550
d. 505000
e. 500500
Jawaban : 42.
S10 = n/2 (2a+(n-1)b)
S10 = 5 (2+9)
S10 = 55
43
= 500500
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;
dimasukan ke tis(143)
tis(143) = 3*3 +2
= 11 (D)
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
48
Berapakah nilai n maksimum yang membuat nilai b di akhir bernilai 15?
a. 134
b. 133
c. 119
d. 118
e. 117
47. N:= 79
a = 13 .... 68 79
jawabanya := A. 68
48. b:= 15
a = 13
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
50
Berapa kalikah fungsi naon dipanggil pada pemanggilan naon(4, 13)?
a. 13
b. 15
c. 20
d. 21
e. 22
Jawaban : 49. (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
50. (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
#setiap (4,1) dan (4,0 ) tidak akan memanggil fungsi naon lain, melainkan
langsung menghasilkan nilai x atau 1