Anda di halaman 1dari 51

Catatan Pelatihan Olimpiade Komputer NARWEN, M.

Si

CATATAN OLIMPIADE KOMPUTER


Oleh Narwen, M.Si.
(085263641993)
Email: narwen68@gmail.com

Pelatihan di SMAN 1 Padang Panjang


Februari 20192

A. SISTEM BILANGAN BULAT


Bilangan real dibangun oleh komponen bilangan-bilangan:
(1) Bilangan Asli : bilangan yang berisi 1, 2, 3, …
Bilangan asli terdiri dari:
a. Bilangan dengan satu faktor: 1
b. Bilangan dengan dua faktor (prima) : 2, 3, 5, 7, …
c. Bilangan dengan lebih dari dua faktor (komposit): 4, 6, 8, 9, 10, …

Cara menentukan apakah sebuah bilangan bulat positif sebuah bilangan


prima atau tidak.
(a) Carilah sebuah bilangan prima terbesar yang kuadratnya lebih kecil atau sama
dengan (atau cari bilangan prima terbesar yang nilainya lebih kecil atau sama
dengan √ ) , misalkanbilangan prima itu p, sehingga diperoleh sekumpulan
bilangan prima yang kuadratnya lebih kecil dari atau sama dengan tersebut,
yaitu 2, 3, 5, 7, …, .
(b) – Mula-mula bagi N dengan bilangan prima terkecil, yaitu 2. Bila N habis dibagi 2
maka N bukan bilangan prima dan pengujian selesai.
– Bila N tidak habis dibagi 2, lanjutkan menguji N dengan bilangan prima
selanjutnya, yaitu 3. Bila N habis dibagi 3 maka N bukan bilangan prima dan
pengujian selesai.
– Bila N tidak habis dibagi 3, lanjutkan menguji N dengan prima selanjutnya,
yaitu 5.
(c) Bila diteruskan, N tidak habis dibagi oleh bilangan 2, 3, 5,…, , maka dapat
disimpulkan bahwa N adalah bilangan Prima.

Pra Olimpiade Komputer, 2019 -1- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Contoh.
1. Apakah 157 sebuah bilangan Prima?
Jawab.
Carilah sebuah bilangan prima sehingga . Dalam hal ini
diperoleh .
Jadi semua bilangan prima yang kuadratnya lebih kecil dari 157
adalah 2, 3, 5, 7 dan 11. Selanjutnya periksa apakah 157 habis
dibagi oleh kumpulan bilangan prima itu. Karena tak satupun dari
kumpulan bilangan prima tersebut habis membagi 157, maka dapat
disimpulkan bahwa 157 adalah sebuah bilangan prima.

2. Apakah 51 sebuah bilangan Prima?


Jawab.

Carilah sebuah bilangan prima sehingga . Dalam hal ini


diperoleh .
Jadi semua bilangan prima yang kuadratnya lebih kecil dari 51 adalah
2, 3, 5 dan 7. Selanjutnya periksa apakah 51 habis dibagi oleh
kumpulan bilangan prima itu. Karena 3 habis membagi 51, maka dapat
disimpulkan 51 bukanlah sebuah bilangan prima.

Algoritma untuk menguji apakah N bilangan prima atau tidak.

1. Input bilangan N
2. Set nilai Prima  True dan i 2
3. Selama i <= akar N dan prima maka lakukan
a. Jika N mod i = 0 maka prima  False
b. i  i + 1
4. Jika prima maka cetak “N bilangan prima”, jika tidak cetak
“N bukan bilangan prima”.

Sifat-sifat yang berlaku pada bilangan prima adalah:


(a) Bilangan bulat merupakan bilangan prima jika dan hanya jika untuk
setiap bilangan bulat , dengan membagi , akan berlaku salah satu dari p
membagi a atau p membagi b.
(b) Jika p prima dan p membagi a 1 a 2 ... a n , maka p membagi a k untuk suatu k,
dengan
(c) Jika p, q1, q2.... qn bilangan prima dan p membagi q1 q2 ... qn, maka untuk
suatu 1 ≤ k ≤ n.

(2) Bilangan cacah: bilangan asli yang digabungkan dengan unsur 0, yaitu 0, 1, 2, 3, …

(3) Bilangan Bulat: bilangan cacah digabungkan lawan bilangan asli terhadap
penjumlahan, yaitu …, -3, -2, -1, 0, 1, 2, 3, …

Pra Olimpiade Komputer, 2019 -2- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Bilangan bulat dapat dibedakan atas,


a. Bilangan genap: bilangan bulat yang habis dibagi 2
b. Bilangan ganjil: bilangan bulat yang tidak habis dibagi 2.
Prinsip dasar operasi dua bilangan bulat
 Bilangan ganjil + atau – bilangan ganjil = bilangan genap
 Bilangan genap + atau – bilangan genap = bilangan genap
 Bilangan ganjil + atau – bilangan genap = bilangan ganjil
 Bilangan genap + atau – bilangan ganjil = bilangan ganjil
 Bilangan genap bilangan genap = bilangan genap
 Bilangan ganjil bilangan ganjil = bilangan ganjil
 Bilangan ganjil bilangan genap = bilangan genap
 Bilangan genap bilangan ganjil = bilangan genap
Sifat-sifat yang berlaku pada bilangan bulat positif
1. Habis dibagi 2n n digit terakhir dari bilangan tersebut habis dibagi 2n
Habis dibagi pangkat dari 2
 21 : Digit terakhirnya habis dibagi 2
 22 : Dua digit terakhirnya habis dibagi 4
 23 : Tiga dgit terakhirnya habis dibagi 8
 24 : Empat digit terakhirnya habis dibagi 16
Contoh: 134576 habis dibagi 8 = 23 sebab 576 habis dibagi 8
4971328 habis dibagi 16 = 24 sebab 1328 habis dibagi 16
2. Habis dibagi 3 jumlah semua digit-digitnya habis dibagi 3.
Contoh : 356535 habis dibagi 3 sebab 3 + 5 + 6 + 5 + 3 + 5 = 27 dan 27 habis
dibagi 3.
3. Habis dibagi 5 digit terakhirnya adalah 0 atau 5
Contoh: 67585 dan 457830 adalah bilangan yang habis dibagi 5.
4. Habis dibagi 6 jumlah semua digit-digitnya habis dibagi 3 dan bilangannya
genap.
Contoh: 356532 habis dibagi 6 sebab 3 + 5 + 6 + 5 + 3 + 2 = 24 dan 24 habis
dibagi 3 dan bilanganya bilangan genap.
5. Habis dibagi 7
Cara memeriksa suatu bilangan habis dibagi 7 adalah:
 Potong digit terakhir dari bilangan yang akan diperiksa
 kalikan bilangan yang dipotong itu dengan 2 dan kurangkan hasilnya dari
bilangan yang sudah dipotong.
 Jika hasil terakhir habis dibagi 7, maka bilangan itu habis dibagi 7.
 Hal ini dapat diulang sampai diperoleh bilangan yang paling sederhana.

Pra Olimpiade Komputer, 2019 -3- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Contoh: Apakah 1645 habis dibagi 7 ?


 Kalikan 5 dengan 2, kemudian kurangkan 10 dari 164
 Diperoleh 164 – 10 = 154 habis dibagi 7 atau kita masih dapat
menyederhanakannya lagi.
 Kalikan 4 dengan 2, kurangkan 8 dari 15, sehingga 15 – 8 = 7 habis dibagi
7. Jadi 1645 habis dibagi 7
5. Habis dibagi 9 jumlah semua digitnya habis dibagi 9
Contoh: 96714 habis dibagi 9.
6. Habis dibagi 10 digit terakhirnya adalah 0.
Contoh : 2568740 habis dibagi 10
7. Habis dibagi 11 jumlah digit urutan ganjil dikurangi jumlah digit urutan
genap habis dibagi 11
Contoh : 945351 habis dibagi 11 , karena (9 + 5 + 5) - (4 + 3 + 1) = 11 dan 11
habis dibagi 11.
8. Habis dibagi 13.
Kalikan angka terakhir pada bilangan tersebut dengan 4 kemudian jumlahkan
dengan angka yang tersisa. Jika hasil terakhir habis dibagi 13, maka bilangan
tersebut habis dibagi 13.
Contoh: 304928 habis dibagi 13

9. Habis dibagi 17.


Kalikan angka terakhir pada bilangan tersebut dengan 5 kemudian kurangkan
hasilnya dari angka yang tersisa. Jika hasil terakhir habis dibagi 17, maka
bilangan tersebut habis dibagi 17.
Contoh: 39876322 habis dibagi 17

10. Habis dibagi 19.


Kalikan angka terakhir pada bilangan tersebut dengan 2 kemudian tambahkan
hasilnya dari angka yang tersisa. Jika hasil terakhir habis dibagi 19, maka
bilangan tersebut habis dibagi 19.
Contoh: 4456754 habis dibagi oleh 19.

11. Habis dibagi 23.


Kalian angka terakhir pada bilangan tersebut dengan 7 kemudian jumlahkan
dengan angka yang tersisa. Jika hasil terakhir habis dibagi 23, maka bilangan
tersebut habis dibagi 23
Contoh : 5395018 habis dibagi 23

Pra Olimpiade Komputer, 2019 -4- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

12. Habis dibagi 29.


Kalikan angka terakhir pada bilangan tersebut dengan 3 kemudian jumlahkan
hasilnya dari angka yang tersisa. Jika hasil terakhir habis dibagi 29, maka
bilangan tersebut habis dibagi 29.
Contoh: 6802414 habis dibagi 29.

13. Habis dibagi 39.


Kalikan angka terakhir pada bilangan tersebut dengan 4 kemudian tambahkan
hasilnya dari angka yang tersisa. Jika hasil terakhir habis dibagi 39, maka
bilangan tersebut habis dibagi 39.
Contoh: 9148074 habis dibagi 39

14. Habis dibagi 41.


Kalikan angka terakhir pada bilangan tersebut dengan 45 kemudian kurangkan
hasilnya dari angka yang tersisa. Jika hasil terakhir habis dibagi 41, maka
bilangan tersebut habis dibagi 41.
Contoh: 9617206 habis dibagi 41.

15. Habis dibagi 25 Dua digit terakhirnya adalah 00, 25, 50, atau 75.
Contoh : 5864150 habis dibagi 25
16. Habis dibagi 50.
Bilangan yang dua angka terakhirnya 00, 50.
Contoh : 5864150 habis dibagi 50
17. Habis dibagi 99.
Jika jumlah kelompok 2 digit dari kanan habis dibagi 99.
Contoh: 43857, jumlah kelompok 2 digit dari kanan adalah 57 + 38 + 4 = 99
habis dibagi 99
18. Habis dibagi 999.
Jika jumlah kelompok 3 digit dari kanan habis dibagi 999.
Contoh: 216143657982, jumlah kelompok 3 digit dari kanan adalah
982 + 657 + 143 + 216 = 1998.
Selanjutnya 1998 = 998 + 001 = 999 habis dibagi 999.

Sifat-sifat lain pada bilangan bulat


 Setiap bilangan bulat dapat diubah menjadi salah satu dari , ,
, …, atau , untuk dan bilangan bulat.
Misal untuk , maka dapat diubah menjadi salah satu dari , ,
atau .

 Dua bilangan bulat dan dengan , dapat dituliskan sebagai


dengan

Pra Olimpiade Komputer, 2019 -5- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

 Jika bilangan bulat berupa bilangan kuadrat sempurna (pangkat dua), maka
 Digit terakhir adalah: 0, 1, 4, 5, 6 atau 9
 Bersisa 0 atau 1 jika dibagi 4
 Bersisa 0, 1 atau 4 jika dibagi 5 atau 8
 Jika bilangan bulat berupa bilangan kubik (pangkat tiga) kalau dibagi 7 maka
akan bersisa 0,1 atau 6

(4) Bilangan rasional. Ada dua definisi yang sering digunakan dalam mendefinisikan
bilangan rasional.
a. Bilangan berbentuk , dengan p dan q bilangan bulat dan .
b. Bilangan berbentuk desimal berulang atau berbentuk desimal hingga.

Mengkonversi bilangan rasional dari bentuk ke bentuk desimal berulang


atau sebaliknya, dari bentuk desimal berulang ke bentuk .
 Bila diketahui bilangan rasional dalam bentuk , maka bilangan rasional
tersebut dapat diubah menjadi bilangan berbentuk desimal berulang atau
berbentuk desimal hingga dengan cara membagi p dengan q.

Contoh. Ubah bentuk bilangan rasional berikut ke dalam bentuk desimal.

1. dan
2. Tentukan digit ke-100 dibelakang koma, bila diubah menjadi bilangan
desimal

 Bila diketahui bilangan berbentuk desimal berulang atau berbentuk desimal


hingga, maka bilangan rasional tersebut dapat diubah menjadi bilangan
rasional dalam bentuk dengan cara sebagai berikut:
a. Tulislah bilangan rasional itu dalam x.
b. Kalikan x dengan 10 pangkat banyak kelompok pengulangan digit.
c. Kurangkan hasil yang diperoleh dari langkah b dengan langkah a, kemudian
disederhanakan.

Contoh. Ubah bentuk bilangan rasional berikut ke dalam bentuk .

1. 0,285714285714…
2. 2,525252…

Salah satu cara untuk mencari Faktor Persekutuan Terbesar (FPB) antara dua
bilangan bulat dan dengan menggunakan Algoritma Euclid.

Pra Olimpiade Komputer, 2019 -6- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

var n,m,k,r,fpb : longint;


begin
readln(n,m);
if n < m then
begin
k := n;
n := m;
m := k;
end;
r := n mod m;
while r > 0 do
begin
n := m;
m := r;
r := n mod m;
end;
fpb := m;
writeln('FPB adalah ',fpb);
readln;
end.

(5) Bilangan irrasional. Ada dua definisi yang sering digunakan dalam mendefinisikan
bilangan irrasional.
a. Bilangan tidak berbentuk , dengan p dan q bilangan bulat dan .
b. Bilangan tidak berbentuk desimal berulang atau berbentuk desimal hingga.

Contoh.

(6) Bilangan real: gabungan dari bilangan rasional dengan bilangan irrasional.

Pra Olimpiade Komputer, 2019 -7- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

B. BILANGAN BINER
Penyajian setiap bilangan asli dengan basis dapat ditulis dalam bentuk

Dengan,

 bilangan bulat
 dan untuk

Beberapa sistem bilangan yang dikenal adalah sebagai berikut.

 Sistem Bilangan Biner (BIT),


o Bilangan dengan basis 2
o Disusun oleh angka 0 atau 1.
 Sistem Bilangan Oktal,
o Bilangan dengan basis 8
o Disusun oleh angka 0, 1, 2, ..., 7
 Sistem Bilangan Desimal,
o Bilangan dengan basis 10
o Disusun oleh angka 0, 1, 2, ..., 9
 Sistem Bilangan Hexadesimal,
o Bilangan dengan basis 16
o Disusun oleh angka 0, 1, 2, ..., 9, A, B, C, D, E, F.

Data dalam komputer dibentuk dari serangkaian bilangan biner yang disebut byte.

1 data 1 Byte = 8 Bit.


1 Kbyte = 1024 Byte

1. Bilangan Biner Tanpa Tanda.


 Bilangan biner yang tidak mengenal bilangan negatif.
 Hanya berisi bilangan positif dan nol saja.
 Semua bit panjangnya bebas
 Semua bit dapat dikonversikan sebagai satu digit.

Bilangan biner tanpa tanda dapat dikonversikan menjadi bilangan desimal atau
sebaliknya bilangan desimal dapat dikonversikan menjadi bilangan biner tanpa
tanda.

Pra Olimpiade Komputer, 2019 -8- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Konversi dari bilangan biner tanpa tanda ke bilangan desimal


Contoh : Konversikan bilangan biner berikut menjadi bilangan desimal.
a. 1001110, b. 111
Algoritma: .
1. Masukan sebuah bilangan biner(b)
2. d  0; p  1;
3. hitung panjang bilangan biner b (n)
4. untuk i  n, n-1, n-2,…,, 1 maka
lakukan
a. jika bi = ‘1’ maka d  d + p
b. p  2*p
5. Cetak nilai d

Program Pascal:
var n,p,d,i : integer;
b : string[16];
begin
readln(b);
p := 1; d := 0;
n := length(b);
for i := n downto 1 do
begin
if b[i] = '1' then d := d + p;
p := 2*p;
end;
writeln(d);
readln;
end.

Konversi dari bilangan desimal ke bilangan biner tanpa tanda.


Contoh : Konversikan desimal berikut menjadi bilangan biner tanpa tanda.
a. 78 b. 7

Algorima:
1. Masukan sebuah bilangan desimal (d)
2. b  ‘ ’
3. selama d > 1 maka lakukan
a. jika d mod 2 = 1 maka b  ‘1’ + b
jika tidak, b  ‘0’ + b
b. d  d div 2
4. b  ‘1’ + b
5. Cetak nilai b

Pra Olimpiade Komputer, 2019 -9- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Program Pascal:
var d : integer;
b : string[16];
begin
readln(d);
b := '';
while d > 1 do
begin
if d mod 2 = 1 then b := '1'+ b
else b := '0' + b;
d := d div 2;
end;
b := '1' + b;
writeln(b);
readln;
end.

2. Bilangan Biner Bertanda


 Bilangan biner yang mengenal bilangan negatif, nol dan bilangan positif.
 Panjang bilangan biner tersebut ditulis sepanjang kelipatan byte, yaitu 8, 16,
24, 32,…
 Jika digit paling kiri adalah ‘1’ maka bilangan tersebut adalah negatif.
 Sebaliknya jika digit paling kiri adalah ‘0’ maka bilangan tersebut adalah
positif.
 Digit yang dikonversi sebagai bilangan adalah satu kurangnya dari panjang
bilangan biner itu, karena digit yang paling kiri dihitung sebagai tanda.

Konversi bilangan desimal ke bilangan biner untuk bilangan biner bertanda.

Contoh: Diberikan bilangan desimal berikut:


a. 118 b. -76
Tentukan bilangan binernya.
Algoritma:
1. Masukan bilangan desimal (d)
2. Jika d >= 0 maka lakukan seperti tanpa tanda
3. Jika d < 0 maka
a. Jadikan d  |d| - 1
b. Cari bilangan binernya dalam kelipatan byte.
c. Balik setiap bitnya sehingga diperoleh bilangan biner
yang dicari.

Pra Olimpiade Komputer, 2019 - 10 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Program Pascal:
var d,i,j,r,digit : longint;
b : string[48];
begin
readln(d);
digit := 8;
i := 1;
if d > 0 then
begin
b := '';
while d > 1 do
begin
r := d mod 2;
if r = 1 then b := '1' + b
else b := '0' + b;
d := d div 2;
i := i + 1;
end;
b := '1' + b;
for j := 1 to digit-i do b:='0' + b;
end
else
begin
d := -1*d - 1;
b := '';
while d > 1 do
begin
r := d mod 2;
if r = 1 then b := '0' + b
else b := '1' + b;
d := d div 2;
i := i + 1;
end;
b := '1' + b ;
for j := 1 to digit-i do b:='1' + b;
end;
writeln(b);
readln;
end.

Konversi bilangan biner bertanda ke bilangan desimal.

Contoh: Diberikan bilangan biner bertanda berikut:


a. 01110110 b. 10110100
Tentukan bilangan desimalnya.
Algoritma:
1. Masukan bilangan biner bertanda b
2. Jika bit terkiri = 0 maka lakukan konversi seperti tanpa tanda
3. Jika bit terkiri = 1 maka
a. Balik setiap bitnya
b. Konversikan bilangan biner yang diperoleh menjadi bilangan
desimal.
c. Bilangan yang dicari adalah negatif dari bil desimal yang
diperoleh setelah tambah dengan satu.
4. Cetak nilai d.

Pra Olimpiade Komputer, 2019 - 11 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Operasi Pada Bilangan Biner.


1. Not (negasi) :
A Not(A)
1 0
0 1

Contoh :

2. AND (konjungsi)
A B a and b
1 1 1
1 0 0
0 1 0
0 0 0

Contoh: (a) (b)

3. OR (disjungsi)
A B a or b
1 1 1
1 0 1
0 1 1
0 0 0

Contoh:
4. XOR (Ekslusif or)
A B a xor b
1 1 0
1 0 1
0 1 1
0 0 0

Contoh:
5. SHR (Geser bit ke kanan)

Menggeser bit n sejauh m bit ke kanan (atau menghapus sebanyak m bit paling
kanan)
Contoh:

6. SHL (Geser bit ke kiri)

Menggeser bit n sejauh m bit ke kiri (atau menambahkan bit 0 sebanyak m bit
di sisi paling kanan)
Contoh:

Pra Olimpiade Komputer, 2019 - 12 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Tipe data untuk bilangan bulat.


a. Tanpa tanda (tidak masuk Bilangan negatif)
(1) Byte dengan ukuran 8 bit
Jangkauan nilai dari 0 … atau dari .
(2) Word dengan ukuran 16 bit
Jangkauan nilai dari 0 … atau dari 0 … 65535.
b. Mempunyai tanda atau termasuk bilangan negatif
(1) Shortint dengan ukuran 8 bit
Jangkauan nilai dari atau dari -128 … 127.
(2) Integer dengan ukuran 16 bit
Jangkauan nilai dari atau dari -32768 … 32767.
(3) Longint dengan ukuran 32 bit
Jangkauan nilai dari atau dari -2147483648 …
2147483647.

Tipe data untuk bilangan real.


(1) Real dengan ukuran 48 bit.

Pra Olimpiade Komputer, 2019 - 13 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

C. FAKTORISASI PRIMA.
Setiap bilangan komposit k, penulisannya dapat diubah menjadi bilangan dalam bentuk
faktorisasi prima, yaitu,

Dengan adalah bilangan prima yang berbeda dan adalah


bilangan cacah. Penulisan ini merupakan suatu teorema dasar dari aritmatika.

Catatan : Untuk mencari faktorisasi prima dari bilangan k, maka bagi bilangan tersebut
dengan bilangan prima terkecil, yaitu 2. Lakukan terus selama bilangan tersebut
habis dibagi 2. Jika tidak, bagi dengan prima selanjutnya, yaitu 3. Lakukan terus
pembagian dengan bilangan prima selanjutnya. Proses akan berhenti bila hasil
akhir adalah bilangan prima.

Contoh.
Tulislah bilangan berikut dalam bentuk faktorisasi prima: 20, 100, 6075

Aplikasi dari Faktorisasi prima.


(1) Menentukan semua faktor prima dari suatu bilangan.
Misalkan , maka faktor prima dari K adalah
Contoh.
Tentukan semua faktor prima dari bilangan 15, 40 dan 6075.

(2) Menentukan banyaknya faktor positif dari suatu bilangan.


Misalkan , maka banyak faktor positif dari K adalah

Contoh.
Tentukan banyak faktor positif dari bilangan 15, 40 dan 6075.

(3) Menentukan banyak faktor dari suatu bilangan yang dapat dibagi oleh bilangan
lain.
Misalkan , maka banyak faktor dari K yang dapat dibagi oleh
bilangan n dapat dicari dengan merubah K dalam bentuk faktorisasi prima menjadi
bilangan yang mengandung n.
Contoh.
Tentukan banyak faktor positif dari bilangan
a. 40 yang habis dibagi 10.
b. 6075 yang habis dibagi 45.
c. 6075 yang habis dibagi 40.

Pra Olimpiade Komputer, 2019 - 14 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

(4) Menentukan semua faktor positif dari suatu bilangan.


Misalkan , maka semua faktor positif dari k dapat diperoleh dengan
cara mengkombinasikan jumlah pangkat dari masing-masing faktor prima
dari 0 sampai dengan .
Contoh.
Tentukan Semua faktor positif dari bilangan 15, 40 dan 6075.

(5) Menentukan jumlah semua faktor positif dari suatu bilangan.


Misalkan , maka jumlah semua faktor positif dari suatu bilangan k

adalah

Contoh.
Tentukan Jumlah semua faktor positif dari bilangan 15, 40 dan 6075.

(6) Menentukan bilangan positif terkecil yang banyak faktornya diketahui.


Misalkan akan ditentukan bilangan terkecil yang banyak faktornya adalah . Pertama,
carilah faktor dari terlebih dahulu. Misalkan

Kemudian ambil bilangan prima pertama sebanyak faktor prima dari dan pangkatkan
dengan faktor-faktor dari n setelah dikurangi satu. Jadi diperoleh bilangan , dimana

Contoh.
1. Tentukan bilangan bulat positif terkecil yang banyak faktornya adalah
a. 8 b. 12 c. 30
2. Tentukan banyak bilangan dari 1 s/d 100 yang banyak faktor positifnya 2.
3. Tentukan banyak bilangan dari 1 s/d 100 yang banyak faktor positifnya 4.
4. Tentukan banyak bilangan dari 1 s/d 100 yang banyak faktor positifnya 6.

(7) Menentukan banyaknya faktor persekutuan antara dua bilangan bulat positif.
Misalkan dua bilangan bulat positif k dan l, masing-masing dalam bentuk
dan , maka banyak faktor persekutuan dari k dan l
adalah
Contoh.
Tentukan banyaknya faktor persekutuan antara dua bilangan
a. 40 dan 25
b. 100 dan 6075

(8) Menentukan semua faktor persekutuan antara dua bilangan bulat positif.
Misalkan dua bilangan bulat positif k dan l, masing-masing dalam bentuk

Pra Olimpiade Komputer, 2019 - 15 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

dan , maka semua faktor persekutuan dari k dan l


dapat diperoleh dengan cara mengkombinasikan jumlah pangkat dari masing-masing
faktor prima dari 0 sampai dengan

Contoh.
Tentukan semua faktor persekutuan antara dua bilangan
a. 40 dan 25 b. 100 dan 6075

(9) Menentukan faktor persekutuan terbesar (FPB) antara dua bilangan bulat positif.
Misalkan dua bilangan bulat positif k dan l, masing-masing dalam bentuk
dan , maka faktor persekutuan terbesar dari k dan l,
adalah

Contoh.
Tentukan faktor persekutuan terbesar antara dua bilangan
a. 40 dan 25 b. 100 dan 6075

Cara lain menentukan faktor persekutuan terbesar (FPB).


Selain cara di atas dan selain dengan cara mendaftarkan semua faktor-faktornya, maka
cara lain untuk menentukan faktor persekutuan antara dua bilangan adalah
menggunakan algoritma Euclid. Dasar dari algoritma Euclid adalah sebagai berikut.
a. Diberikan dua bilangan komposit k dan l dengan . Kedua bilangan tersebut
dapat ditulis sebagai, , dimana q adalah bilangan bulat terbesar yang
merupakan hasil bagi k oleh l, dan r adalah sisa dari pembagian k oleh l dan
.
b. Jika , maka ulangi lagi perhitungan dengan mengganti k dengan l dan l
dengan r. Tapi jika , maka proses berhenti dan FPB(k, l) adalah nilai r
terakhir yang tidak sama dengan 0.

Contoh.
Tentukan faktor persekutuan terbesar antara dua bilangan
a. 40 dan 25 b. 100 dan 6075

(10) Menentukan kelipatan persekutuan terkecil (KPK) antara dua bilangan bulat
positif.
Misalkan dua bilangan bulat positif k dan l, masing-masing dalam bentuk
dan , maka faktor persekutuan terkecil dari k dan l,

Contoh.
Tentukan kelipatan persekutuan terkecil antara dua bilangan
a. 40 dan 25 b. 100 dan 6075

Pra Olimpiade Komputer, 2019 - 16 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Hubungan FPB dengan KPK dari dua bilangan Komposit.

Akibatnya, jika , maka dan dikatakan saling prima (relatif prima) dan
.
Dua bilangan dikatakan saling prima apabila,
(a) Kedua bilangan itu adalah bilangan prima
(b) Kedua bilangan itu adalah dua bilangan yang berurutan.
(c) Salah satu bilangan adalah bilangan prima dan bilangan yang lain bukan
kelipatan dari bilangan prima itu.
(d) Kedua bilangan itu bukan bilangan prima dan salah satu bukanlah faktor atau
kelipatan dari bilangan lain.

Contoh Soal
1. (OSK 2007 No. 12) Jika a dan b adalah bilangan prima terbesar yang dapat membagi
7007, berapakah a+b?
(A) 24 (B) 18 (C) 20 (D) 28 (E) 16

2. (OSK 2011 No. 4) 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

3. (OSK 2012 No. 3) Bilangan prima adalah bilangan bulat yang hanya habis dibagi
dengan 1 dan bilangan itu sendiri. Ada berapa banyak bilangan prima pada rentang
1..100?
A. 25 B. 24 C. 23 D. 22 E. 21

4. (OSK 2012 No. 16) Diketahui FPB(a,b)=c. Jika a>b dan b=210, berapakah nilai a dan
c yang mungkin sehingga c merupakan nilai terbesar dari pilihan di bawah ini?
A. 216 dan 6 B. 294 dan 7 C. 426 dan 6 D. 637 dan 7 E. 637 dan 14

5. (OSK 2014 No. 6) Berapakah banyak faktor dari 144.000 yang juga merupakan
faktor dari 450.000?
A. 24 B. 36 C. 48 D. 60 E. 72

6. (OSK 2015 No. 2) Bu Dengklek adalah seorang guru. Minggu depan, Bu Dengklek
ingin membagikan permen kepada 7 orang muridnya, namun belum tentu semua
muridnya datang ke sekolah pada minggu depan. Sebagai tambahan, Bu Dengklek
ingin membagikan permen kepada murid-muridnya sama rata dan tidak bersisa.
Berapakah jumlah permen minimal yang harus Bu Dengklek bawa minggu depan?
a. 1 b. 210 c. 420 d. 2520 e. 5040

Pra Olimpiade Komputer, 2019 - 17 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

7. (OSK 2015 No. 3) Diberikan 4 buah angka berbeda, yaitu T, O, K, dan I. Jika
diketahui N = TO x KI = IK x OT, berapa nilai N terbesar yang mungkin?
a. 1472 b. 2208 c. 3024 d. 4284 e. Jawaban a, b, c, d salah

8. (OSK 2016 No. 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. 23

9. (OSK 2018 No. 3) Dua orang sahabat, Pak Dengklek dan Pak Ganesh memiliki
sejumlah kucing kesayangan yang takterhingga jumlahnya dengan harga 465
satuan per ekornya. Sedangkan pak Dengklek memiliki milyaran ekor bebek yang
setiap bebeknya bernilai 300 satuan. Keduanya melakukan transaksi dengan cara
bertukar hewan. Sebagai contoh, jika pak Dengklek berhutang ke pak Ganesh
sebesar 135 satuan, maka ia dapat membayar hutangnya dengan memberi pak
Ganesh 2 ekor bebek dan mendapatkan sebuah kucing sebagai kembalian.
Berapakah pecahan transaksi terkecil yang dapat diselesaikan dengan
menggunakan cara pertukaran tersebut?
a. 5 b. 10 c. 15 d. 135 e. 165

10. (OSK 2018 No. 4) Jika FPB dari a dan 2008 = 251. Jika a < 4036, maka nilai terbesar
untuk a adalah…
a. 3263 b. 4016 c. 2259 d. 3765 e. 3514

11. (OSK 2018 No. 5) Kita tahu bahwa bilangan prima adalah suatu bilangan yang
memiliki tepat 2 bilangan pembagi positif. Didefinisikan F-Primes adalah suatu
bilangan yang memiliki tepat 5 bilangan pembagi positif. Berapa banyakkah
bilangan F-Primes dari 1-1000 (inklusif)?
a. 2 b. 3 c. 4 d. 5 e. 6

Pra Olimpiade Komputer, 2019 - 18 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

D. KETERBAGIAN
Pada operasi pembagian, jika

artinya: bilangan dibagi dengan hasil bagi dan sisa pembagian .


Jika sisa , maka dikatakan bilangan membagi habis bilangan dengan
hasil bagi q dan ditulis , tetapi jika tidak habis dibagi maka ditulis .

Sifat-sifat keterbagian

 dan berlaku untuk semua bilangan bulat , syarat .


 Jika maka dengan adalah bilangan bulat
 Jika dan maka k
 Jika dan maka
 Jika dan maka
 Jika dan maka , dengan , bilangan bulat

Pra Olimpiade Komputer, 2019 - 19 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

E. KEKONGRUENAN
Misalkan n bilangan bulat positif. Bilangan bulat a dan b kongruen modulo n, ditulis

– , untuk suatu k bulat.

Apabila – dikatakan a dan b tidak kongruen modulo n, ditulis dalam notasi

Contoh:
a. 5 ≡ 19 (mod 7), karena 5 – 19 = –2 . 7
b. -11 ≡ 10 (mod 7), karena –11 – 10 = –3 . 7
c. 32 ≡ –4 (mod 7), karena –(–32) – 4 = 4 . 7

Sifat-sifat kekongruenan.
Misalkan n bilangan bulat positif dan a, b, c, d sebarang bilangan bulat, maka berlaku:
1.
2. .
3. dan
4. dan dan

5. dan .
6. untuk setiap bilangan bulat positif k.
7.
8. dan
9. dan
Catatan:
1. Jika n kelipatan 10 maka untuk mencari modulo n, selain rumus di atas, gunakan
pola pengulangan dari bilangan yang akan dicari. Kemudian bagilah pangkat
bilangan dengan modulo dari banyaknya pola pengulangan.
Bila n = 10, maka menyatakan 1 digit terakhir.
Bila n = 100, maka menyatakan 2 digit terakhir.
Bila n = 1000, maka menyatakan 3 digit terakhir.

2. Ingat kembali rumus eksponen,

Pra Olimpiade Komputer, 2019 - 20 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Contoh: Hitunglah nilai berikut:


1. dan
2.
3. (OSK 2007 No. 11)
(A) 1 (B) 51 (C) 49 (D) 43 (E) 7
4. (OSK 2009 No. 14)
A. 12 B. 3 C. 4 D. 9 E. 1
5. (OSK 2009 No. 15) 12!
A. 5 B. 9 C. 12 D. 7 E. 11
6. (OSK 2009 No. 16) Jika 10! mod x = 0, maka manakah dari berikut ini yang
tidak bisa memenuhi sebagai x.
A. 14175 B. 2268 C. 1575 D. 2025 E. 3584
7. (OSK 2010 No. 8)
A. 5 B. 12 C. 75 D. 77 E. 99
8. (OSK 2011 No. 1)
a. 1 b. 19 c. 20 d. 29 e. 40
9. (OSK 2011 No. 3)
a. 1 b. 9 c. 21 d. 69 e. 81
10. (OSK 2014 No. 14)
A. 0 B. 1 C. 2 D. 3 E. 4
11. (OSK 2016 No. 3)
a. 1 b. 2 c. 3 d. 4 e. 5
12. (OSK 2016 No. 4) Tentukan nilai m dari bentuk
a. 200004 b. 499992 c. 499993 d. 499991 e. 499990

13. (OSK 2017 No. 7) Berapakah nilai dari .


a. 0 b. 2 c. 4 d. 6 e. 8
14. (OSP 2017 No. 1) Tentukan digit kedua dari belakang dari bilangan

Pra Olimpiade Komputer, 2019 - 21 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

15. (OSK 2017 No. 18) Bilangan bulat non negatif


0, 1, 2, … diletakkan pada koordinat (x,y)
seperti pada gambar sebelah kanan. Sebagai
contoh, bilangan 0, 1, dan 2 diletakkan pada
koordinat (0,0), (1,1), dan (2,0). Berapa
koordinat untuk bilangan 2017?
a. (1008,1009) b. (1008,1008)
c. (1009,1001) d. (1009,1008)
e. (1009,1009)

16. (OSK 2018 No. 13) Pak Dengklek sedang bermain dengan sebuah barisan
bilangan. Pada awalnya, barisan tersebut hanya berisi angka 1. Lalu selama (n-
1) langkah, Pak Dengklek akan membuat barisan baru yang diawali oleh
barisan sebelumnya, bilangan positif minimum yang belum pernah Pak
Dengklek pakai, dan diakhiri oleh barisan sebelumnya lagi. Contoh untuk n=2,
barisan tersebut akan berisi [1,2,1] dan pada n=3, barisan tersebut akan berisi
[1,2,1,3,1,2,1]. Setelah Pak Dengklek membuat barisan tersebut, ia penasaran,
angka berapa yang sekarang berada di indeks ke-K (Barisan tersebut dimulai
dari indeks-1). Maka ia bertanya pada kalian, berapakah bilangan dengan
indeks ke-30 jika n = 15?
a. 1 b. 2 c. 3 d. 4 e. 5

17. (OSK 2018 No. 15) Kwak ingin mengikuti olimpiade sains bebek nasional
(OSBN). Untuk itu, ia ingin belajar terlebih dahulu di setiap kota yang ada di
negeri Bebetropolis. Negeri tersebut dapat diasumsikan sebagai grid 1 dimensi
dengan indeks 1 sampai 10 (inklusif) yang mewakili tiap kota yang berbeda.
Saat ini, Kwak berada di indeks ke-1. Jika Kwak berada di indeks ke-i dan ingin
pergi ke indeks ke-j, maka ia harus membayar biaya perjalanan sebesar (i+j)
mod 11. Karena OSBN akan diadakan di kota dengan indeks ke-1, maka di
akhir perjalanan Kwak harus kembali ke indeks ke-1. Berapakah biaya
minimum yang harus dibayar jika Kwak ingin mengunjungi semua kota yang
ada?
a. 4 b. 5 c. 7 d. 11 e. 16

Catatan : Soal di atas diubah menjadi indeks ke-i menyatakan banyak permata
yang boleh diambil pada di tempat i. Jumlah permata maksimum
diambil adalah 10. Jika diambil lebih atau sama dengan 11 maka
permata itu harus dibuang. Berapa banyak permata maksimum yang
dapat diambil bila dimulai dari tempat ke-1 dan kembali ketempat
ke-1 dan semua tempat dilalui maksimum 1 kali kecuali titik awal.

Pra Olimpiade Komputer, 2019 - 22 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

F. PERSAMAMAAN DIOPHANTINE LINIER


(PDL)
Persamaan dengan a, b, c bilangan bulat dan a, b tidak nol disebut
persamaan Diophantine linier, jika penyelesaian yang akan dicari untuk x dan y adalah
bilangan-bilangan bulat.
 Bila membagi habis c, maka PDL yang diberikan mempunyai solusi.
Sebaliknya bila tidak membagi habis c, maka PDL yang diberikan tidak
mempunyai solusi.
 Sebaiknya carilah dengan menggunakan algoritma Euclid.
 Carilah solusi dan dari nilai dengan membalik langkah algoritma
Euclid.
 Bila dan adalah solusi dari PDL , maka solusi umum dari
persamaan tersebut adalah dan , dengan k
adalah bilangan bulat.

Contoh: Tentukanlah solusi dari persamaan berikut:


1.
Jawab:
Terapkan algoritma Euclid untuk menentukan FPB(72,56), diperoleh
72 = 1 . 56 +16
56 = 3 . 16 + 8
16 = 2 . 8 + 0
Dengan demikian FPB(56,72) = 8.
Setiap bilangan yang berbentuk 56x + 72y merupakan kelipatan 8.
Karena 8 | 40 maka persamaan di atas mempunyai solusi.
Dengan membalikkan urutan pengerjaan algoritma Euclid, diperoleh:
8 = 56 – 3.16
= 56 – 3 . (72-56)
= 4 . 56 – 3.72
Kalikan kedua ruas dengan 5, diperoleh 20 . 56 – 15 . 72 = 40.
Ini berarti dan – merupakan salah satu solusinya.
Solusi umumnya berbentuk dan – – – –
untuk k bilangan bulat.

2.
Jawab:
Terapkan algoritma Euclid untuk menentukan FPB(172,20), diperoleh
172 = 8 . 20 +12
20 = 1 . 12 + 8
12 = 1 . 8 + 4
8 = 2 . 4 + 0
Dengan demikian FPB(172,20) = 4.
Setiap bilangan yang berbentuk 172x + 20y merupakan kelipatan 4.
Karena 4 | 1000 maka persamaan di atas mempunyai solusi.
Dengan membalikkan urutan pengerjaan algoritma Euclid, diperoleh:
4 = 12 – 1. 8
= 12 – 1 . (20 – 1.12)
= 2 . 12 + (-1). 20
= 2. (172 - 8. 20) – 1 . (20)

Pra Olimpiade Komputer, 2019 - 23 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

= 2. 172 +(-17).20
Kalikan kedua ruas dengan 250, diperoleh 500 . 172 +(–4250). 20 = 1000.
Ini berarti dan – merupakan salah satu solusinya.
Solusi umumnya berbentuk dan
– –( ) – – untuk k bilangan bulat.

Pra Olimpiade Komputer, 2019 - 24 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

H. PERSAMAMAAN KONGRUEN LINIER


(PKL)
Persamaan dalam bentuk dengan a, b dan n bilangan bulat dan x
adalah bilangan bulat yang merupakan solusi yang akan dicari.

 Bila membagi habis b, maka PKL yang diberikan mempunyai solusi dan
banyak solusinya adalah sebanyak bilangan . Sebaliknya bila
tidak membagi habis b, maka PKL yang diberikan tidak mempunyai solusi.
 Carilah solusi dari persamaan dengan cara merubah
persamaan menjadi , untuk suatu k, sehingga nilai adalah bilangan
bulat.
 Bila adalah solusi dari PKL , maka solusi umum dari
persamaan tersebut adalah
, dengan .

 Selanjutnya tinjau solusi x untuk

Contoh: Tentukanlah solusi dari persamaan berikut:


1.
2.
3.
4.
5. Suatu bilangan bila dibagi dengan 15 mempunyai sisa 8 dan bila dibagi
dengan 8 mempunyai sisa 3.
a. Berapa nilai bilangan itu?
b. Berapakah sisanya bila dibagi dengan 6.

6. Seorang guru ingin membagikan permen kepada tiga kelompok muridnya


yang masing-masing berjumlah 2, 3 dan 5 orang. Bila dibagikan, masing-
masing kelompok akan bersisa 1. Berapakah jumlah permen paling sedikit
yang harus dibagikan oleh guru tersebut.

Pra Olimpiade Komputer, 2019 - 25 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

H. CHINESE REMINDER THE OREMS


(CRT)
Misalkan bilangan bulat positif, sedemikian sehingga
untuk setiap . Maka sistem konruen linear,

Akan mempunyai solusi simultan yang tunggal modulo bilangan .


Langkah-langkah untuk mencari solusi dari sistem ini.
i. Periksa apakah untuk setiap . Jika memenuhi maka lanjut
ke langkah selanjutnya. Jika tidak maka selesai.
ii. Hitung nilai-nilai dari, dan , untuk .

iii. Carilah nilai dari persamaan kongruen linear dengan


.
iv. Solusi dari sistem kongruen linear adalah,

Contoh: Tentukanlah solusi dari sistem persamaan berikut:


1.

2. (OSK 2016 No. 10) Pak Dengklek akan membeli sejumlah permen untuk
dibagikan 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

Pra Olimpiade Komputer, 2019 - 26 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

3. (OSK 2017 No. 10) Pak Adi adalah seorang guru. Ia mengajar 3 kelas, masing-
masing berisi 7, 11, dan 13 siswa. Suatu saat, Pak Adi ingin membeli dan
membagikan sejumlah permen kepada semua siswa pada salah satu kelas. Jika
permen dibagikan ke kelas pertama (7 siswa), maka ada 1 anak yang akan
mendapatkan lebih banyak dari yang lain. Jika dibagikan ke kelas kedua (11
siswa), akan ada 8 anak yang mendapat lebih banyak dari yang lain. Jika
dibagikan ke kelas ketiga (13 siswa), akan ada 6 anak yang akan mendapat
lebih banyak dari yang lain. Berapa jumlah minimal permen agar jika
dibagikan ke satu kelas manapun semua siswa akan mendapatnya dalam
jumlah yang sama?
a. 331 b. 543 c. 741 d. 839 e. 1001

Pra Olimpiade Komputer, 2019 - 27 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

I. FUNGSI TANGGA.
Fungsi tangga adalah suatu fungsi bila digambarkan pada bidang kartesius akan
berbentuk seperti tangga. Ada 3 macam fungsi tangga yaitu: fungsi floor (pembulatan
ke bawah), fungsi ceiling (pembulatan ke atas), dan fungsi bulat (pembulatan ke
bilangan bulat terdekat).

(1) Fungsi Floor (pembulatan ke bawah).


Misalkan x adalah bilangan real. Nilai fungsi floor x ditulis dengan ⌊ ⌋ merupakan
bilangan bulat terbesar yang kurang dari atau sama dengan x, atau dapat juga ditulis
sebagai,
⌊ ⌋
dengan bilangan bulat.
Contoh:

3,14  3,  2, 5  3,  2   1 , dan lain sebagainya.


Akibatnya untuk setiap bilangan real x, x  x  x , dimana {x} menyatakan bagian
pecahan dari x. Dalam hal ini akan berlaku 0  x  1 .

(2) Fungsi Ceiling (pembulatan ke atas)


Misalkan x adalah bilangan real. Nilai fungsi ceiling x ditulis dengan ⌈ ⌉ merupakan
bilangan bulat terkecil yang lebih dari atau sama dengan x, atau dapat juga ditulis
sebagai,
⌈ ⌉
dengan bilangan bulat.

Contoh: 3,14  4,  2, 5  2,  2   2 , dan lain sebagainya.


(3) Fungsi Bulat (pembulatan ke bilangan bulat terdekat)
Misalkan x adalah bilangan real. Nilai fungsi bulat x ditulis dengan x  merupakan
bilangan bulat terdekat dengan x, atau dapat juga ditulis sebagai,
{ }
[ ] {
{ }

dengan bilangan bulat.

Pra Olimpiade Komputer, 2019 - 28 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Contoh: 3,14  3,  2, 5  2,  


2 1

Pra Olimpiade Komputer, 2019 - 29 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

J. KOMBINATORIKA
Kombinatorika adalah adalah cabang matematika untuk menghitung jumlah
penyusunan objek-objek tanpa harus mengenumerasi semua kemungkinan
susunannya.

Enumerasi adalah penghitungan obyek dengan sifat-sifat tertentu. Enumerasi bagian


penting dari kombinatorika.

Counting adalah dasar dalam menghitung peluang dari kejadian-kejadian diskrit.

Dasar-dasar Counting
(1) Aturan Penjumlahan

Jika pekerjaan pertama dapat dilakukan dengan cara dan pekerjaan kedua
dengan cara, dan kedua pekerjaan ini dapat dilakukan dalam waktu yang
bersamaan, maka terdapat cara untuk melakukan salah satu pekerjaan
tersebut.
Perumuman Aturan penjumlahan. Jika terdapat pekerjaan-pekerjaan
yang dapat dilakukan dalam cara, dan ada di antara
pekerjaan-pekerjaan tersebut yang dapat dilakukan dalam waktu yang bersamaan,
maka terdapat cara untuk melakukan salah satu dari
pekerjaan-pekerjaan tersebut.

Contoh:
1. Suatu kelas terdiri dari 5 putri dan 16 putra. Berapa cara untuk memilih ketua
kelas.

2. Suatu tempat berisi 5 buku matematika, 6 buku fisika, 7 buku biologi, 4 buku
kimia dan 8 buku komputer. Berapa cara untuk memilih satu buku di tempat
tersebut.

(2) Aturan Perkalian

Misalkan sebuah pekerjaan dapat dibagi ke dalam dua pekerjaan lain yang
berurutan. Jika ada n1 cara untuk menyelesaikan pekerjaan pertama dan n2 cara
untuk menyelesaikan pekerjaan kedua setelah pekerjaan pertama selesai, maka
terdapat n1  n2 cara untuk menyelesaikan seluruh pekerjaan tersebut.
Perumuman aturan perkalian. Jika suatu pekerjaan terdiri dari barisan pekerjaan-
perkerjaan T1, T2, …, Tm yang dapat dilakukan dalam n1, n2, …, nm cara, secara
berurutan, maka terdapat n1  n2  …  nm cara untuk melakukan pekerjaan tersebut.

Pra Olimpiade Komputer, 2019 - 30 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Contoh:
1. Suatu kelas terdiri dari 5 putri dan 16 putra.
a. Berapa cara untuk memilih ketua dan wakil ketua kelas.
b. Berapa cara untuk memilih ketua dan wakil ketua kelas dengan syarat ketua
harus laki-laki.
c. Berapa cara untuk memilih ketua, wakil ketua dan sekretaris dengan syarat
ketua harus laki-laki dan sekretaris wanita.

2. Nomor polisi terdiri dari 8 digit, dimana 2 digit pertama adalah huruf, 4 digit
berikutnya adalah angka dan 2 digit terakhir adalah huruf. Berapa banyak nomor
polisi berbeda yang dapat dibuat bila,
a. Angka dan huruf boleh sama
b. Angka dan huruf semuanya berbeda.

3. Berapa banyak bilangan ganjil antara 1000 dan 9999 (termasuk 1000 dan 9999 itu
sendiri) bila,
a. semua angkanya berbeda
b. boleh ada angka yang sama

4. Password sistem komputer panjangnya 6 sampai 8 karakter. Tiap karakter boleh


berupa huruf atau angka. Huruf besar dan huruf kecil tidak dibedakan. Berapa
banyak Password yang dapat dibuat?

5. Suatu kapal laut dilengkapi tiang bendera dan tiga macam bendera, yaitu putih,
merah, dan kuning. Dalam berapa cara kapal tersebut dapat mengirimkan isyarat
dengan menggunakan bendera-bendera tersebut, bila
a. Satu tiang bendera
b. Dua tiang bendera
c. Dua tiang bendera dan setiap tiang harus terisi.

6. Berapa banyak cara 3 huruf dapat disusun dari 5 huruf ABCDE :


a. jika tidak boleh ada pengulangan?
b. jika huruf awalnya A dan tidak boleh ada pengulangan?
c. jika huruf awalnya bukan A dan tidak boleh ada pengulangan
d. Huruf E harus muncul dan tidak ada perulangan

7. Suatu tempat berisi 5 buku matematika, 6 buku fisika, 7 buku biologi, 4 buku kimia
dan 8 buku komputer. Berapa cara untuk memilih buku dari tempat tersebut,
apabila,
a. Dua buku berbeda.
b. Tiga buku berbeda.

Pra Olimpiade Komputer, 2019 - 31 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Aturan penjumlahan dan perkalian juga dapat direpresentasikan dalam istilah


himpunan.
Aturan penjumlahan
Misalkan A1, A2, …, Am himpunan yang saling lepas. Maka banyaknya cara untuk
memilih anggota dari gabungan A1  A2  …  Am adalah jumlah dari
banyaknya anggota setiap himpunan.
|A1  A2  …  Am | = |A1| + |A2| + … + |Am| .

Aturan perkalian
Misalkan A1, A2, …, Am himpunan hingga. Maka banyaknya cara untuk memilih
satu anggota dari hasil kali Cartesian A1  A2  …  Am dilakukan dengan memilih
satu anggota dari A1, satu anggota dari A2, …, dan satu anggota dari Am.
|A1  A2  …  Am | = |A1|  |A2|  …  |Am|.

(3) Prinsip Inklusi-Ekslusi


Jika himpunan A1 dan A2 yang tidak saling lepas. Maka
|A1  A2| = |A1| + |A2| - |A1  A2|
disebut prinsip inklusi-eksklusi.

Jika himpunan A1, A2 dan A3 yang tidak saling lepas. Maka


|A1  A2 A3| = |A1| + |A2| +|A3| - |A1  A2|- |A1  A3|- |A2  A3|+ |A1  A2  A3|

Contoh:

1. (OSK 2008 No. 16-18) Di sebuah sekolah terdapat 90 siswa yang sedang
menempuh tahap persiapan ujian. Mereka diharuskan mengikuti setidaknya
satu dari pelajaran-pelajaran tambahan berikut: Fisika, Bahasa Inggris, dan
Sejarah. Dari keseluruhan siswa ini, terdapat 50 yang memilih Fisika, terdapat
60 yang memilih Bahasa Inggris, dan terdapat 55 yang memilih Sejarah. Tiga
puluh siswa memilih Fisika dan Bahasa Inggris, sementara 10 siswa memilih
Bahasa Inggris dan Sejarah tetapi tidak memilih Fisika. Dua puluh siswa
memilih ketiga pelajaran tersebut.
a. Berapakah banyak siswa yang memilih Fisika dan Sejarah, tetapi tidak
memilih Bahasa Inggris?
a. 0 b. 45 c. 30 d. 15 e. 55
b. Berapa banyak siswa yang memilih setidaknya dua dari tiga pelajaran
tersebut?
a. 55 b. 20 c. 10 d. 45 e. 35
c. Berapa banyak dari mereka yang hanya memilih satu pelajaran saja?
a. 55 b. 20 c. 10 d. 45 e. 35

2. (OSK 2011 No. 21) 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

Pra Olimpiade Komputer, 2019 - 32 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

3. (OSK 2013 No. 29) Terdapat sebuah nomor telepon abc-defg. Sebuah nomor
telepon yang mudah diingat adalah sebuah nomor yang memenuhi (abc=def) atau
(abc = efg) (di sini, abc menyatakan bilangan tiga digit abc). Ada berapa
kemungkinan nomor telepon yang mudah diingat?
A. 9000 B. 9990 C. 14985 D. 19980 E. 19990

4. (OSK 2013 No.30) Dari bilangan bulat 1 hingga 2013, berapakah jumlah bilangan
yang habis dibagi 3, 5 atau 7 tetapi tidak habis dibagi 21 dan 35?
A. 943 B. 960 C. 971 D. 1067 E. 1093

5. (OSK 2014 No. 13) Dari 100 orang siswa, diketahui 37 orang menyukai
Matematika, 27 orang menyukai Biologi, dan 50 orang tidak suka keduanya. Berapa
banyak orang yang hanya suka Matematika saja?
A. 11 B. 15 C. 16 D. 21 E. 23

6 (OSK 2015 No. 4-5) Murid-murid sekolah X sedang melakukan Study Tour dengan
menggunakan bus, dan terdapat TV di bus tersebut. Untuk menentukan channel TV
yang akan ditonton pada saat perjalanan, diadakan survey terhadap seluruh
penumpang bus tersebut. Channel yang diusulkan yaitu Channel A, B, dan C. Setelah
dihitung, 77% penumpang menyetujui sekurang-kurangnya satu dari ketiga channel
tersebut ditayangkan, 30% penumpang menyetujui Channel A, 20% penumpang
menyetujui Channel B, dan 50% penumpang menyetujui Channel C.
a. Jika hanya 3% dari penumpang yang memilih penayangan ketiga Channel
tersebut, berapa persen penumpang yang memilih lebih dari satu Channel?
a. 17% b. 20% c. 37% d. 53% e. 57%
b. Jika yang memilih tepat 2 dari 3 Channel yang diusulkan adalah 20% dari
jumlah penumpang, berapa persenkah penumpang yang memilih hanya satu
atau ketiga Channel sekaligus?
a. 17% b. 20% c. 37% d. 53% e. 57%

8. (OSK 2015 No. 15) Berapa banyak bilangan bulat antara 1 sampai dengan 100 yang
habis dibagi 3 atau 5?
a. 6 b. 10 c. 15 d. 47 e. 49

9. (OSK 2015 No. 16) Berapa banyak bilangan bulat antara 1 sampai dengan 100 yang
tidak habis dibagi 3 atau tidak habis dibagi 5?
a. 51 b. 53 c. 85 d. 90 e. 94

10. (OSK 2016 No. 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

Pra Olimpiade Komputer, 2019 - 33 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

11. (OSK 2018 No. 1) Ada berapa bilangan bulat antara 1 sampai dengan 2018 yang
tidak habis dibagi 2 dan tidak habis dibagi 5?
a. 606 b. 807 c. 1211 d. 1412 e. 1817

12. (OSK 2018 No. 9) Terdapat 760 siswa di suatu sekolah. Ada 71 siswa yang
mengikuti klub musik dan 110 yang tidak mengikuti klub sains. Pada klub sains,
jumlah laki-laki 30 lebih banyak dari perempuan. 59 siswa dengan 35 di
antaranya perempuan mengikuti klub musik maupun sains. 86 siswa laki tidak
mengikuti keduanya. Setengah siswa dari klub musik yang tidak mengikuti klub
sains adalah laki-laki. Berapakah selisih jumlah siswa laki-laki dengan jumlah
siswa perempuan di sekolah tersebut ?
a. 104 b. 41 c. 432 d. 328 e. 74

(4) Diagram Pohon

Contoh:
Ada berapa string biner dengan panjang empat yang tidak memiliki dua 1 secara
berurutan?
Catatan: diagram pohon efektif untuk nilai n yang kecil. Jika n besar maka
permasalahan dapat diselesaikan dengan menggunakan relasi
reccurens.
Contoh
1. Berapa banyak string biner dengan panjang 10 tapi tidak memuat
substring ‘11’.
2. Berapa banyak string biner dengan panjang 10 tapi tidak memuat
substring ‘10’.
3. Berapa banyak string biner dengan panjang 10 tapi tidak memuat
substring ‘001’.
4. Berapa banyak string biner dengan panjang 10 tapi tidak memuat
substring ‘100’.
5. Berapa banyak string biner dengan panjang 10 yang memuat substring
‘111’.

(5) Prinsip Sangkar Merpati


Jika (k + 1) atau lebih obyek ditempatkan ke dalam k kotak, maka terdapat paling
sedikit satu kotak yang memuat dua atau lebih obyek tersebut.

Perumuman Prinsip Sangkar Merpati. Jika N obyek ditempatkan ke dalam k kotak,


maka terdapat paling sedikit satu kotak yang memuat sedikitnya ⌈ ⌉ obyek.

Contoh:
1. (OSK 2008 No.13) Sebuah laci berisikan 4 buah kaus kaki berwarna hitam, 4 buah kaus
kaki berwarna putih dan 4 buah kaus kaki berwarna merah. Jika kita tidak dapat
melihat isi laci, berapakah jumlah kaus kaki minimum yang perlu diambil agar kita
pasti mendapatkan setidaknya sepasang kaus kaki dengan warna yang sama?

Pra Olimpiade Komputer, 2019 - 34 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

a. 10 b. 6 c. 4 d. 8 e. 12

2. (OSK 2008 No.14) Ada tiga buah kotak tertutup yang masing-masing berisikan 2 buah
kelereng: kotak pertama berisikan dua kelereng putih, kotak kedua berisikan dua
kelereng hitam, dan kotak ketiga berisikan satu kelereng putih dan satu kelereng
hitam. Sewaktu akan diberi label, secara tidak sengaja urutan ketiga buah kotak itu
tertukar sedemikian sehingga isi setiap kotak tidak sama dengan apa yang tertulis
pada label kotak tersebut. Dengan asumsi kita hanya bisa mengetahui isi kotak dengan
mengeluarkan kelereng satu per satu tanpa melihat ke dalam kotak, berapakah jumlah
minimal seluruh kelereng yang harus dikeluarkan dari kotak-kotak tersebut agar kita
dapat memastikan isi dari ketiga kotak tersebut?
a. 1 b. 2 c. 3 d. 4 e. 5

3. (OSK 2009 No.7) Di dalam suatu keranjang terdapat sejumlah bola kelereng: 5 butir
berwarna kuning, 6 butir berwarna biru dan 4 butir berwarna merah. Dengan ditutup
matanya, Adi diminta untuk mendapatkan 3 butir kelereng yang warnanya sama.
Untuk memastikan bahwa ia mendapatkan ketiga kelereng itu minimal berapa butir
kelereng yang harus ia ambil dari keranjang?
A. 3 B. 5 C. 7 D. 9 E. 11

4. Di dalam suatu keranjang terdapat sejumlah bola kelereng: 5 butir berwarna kuning, 6
butir berwarna biru dan 4 butir berwarna merah. Dengan ditutup matanya, Adi
diminta untuk mendapatkan 3 butir kelereng dengan warna yang berbeda. Untuk
memastikan bahwa ia mendapatkan ketiga kelereng itu minimal berapa butir kelereng
yang harus ia ambil dari keranjang?
A. 7 B. 9 C. 11 D. 12 E. 13

5. (OSK 2011 No.17) Pada sebuah kantong terdapat 2 buah kelereng kuning, 5 buah
kelereng biru, dan 8 buah kelereng hitam. Berapa minimal banyaknya kelereng yang
perlu diambil agar kita pasti mendapatkan setidaknya 5 kelereng bewarna sama?
a. 10 b. 11 c. 9 d. 13 e. 12

6. (OSK 2018 No.8) Ada 3 kotak diberi label yang salah. Kotak A seharusnya berisi 2 bola
biru, kotak B seharusnya berisi 2 bola merah, kotak C seharusnya berisi 1 bola merah dan 1
bola biru. Dalam satu langkah, Anda diperbolehkan untuk mengambil 1 bola dari salah satu
kotak, dan melihatnya tanpa melihat bola lainnya lalu mengembalikannya lagi. Berapa
minimum langkah yang diperlukan agar anda dapat menentukan label yang benar dari tiap
kotak?
a. 5 b. 4 c. 3 d. 1 e. 2

7. Tentukan banyak orang minimal dalam suatu ruangan sehingga dipastikan terdapat 5
orang mempunyai hari kelahiran yang sama.

(6) Permutasi
 Permutasi adalah jumlah urutan berbeda dari pengaturan objek-objek.
 Permutasi merupakan bentuk khusus dari aplikasi kaidah perkalian.

Pra Olimpiade Komputer, 2019 - 35 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

1. Permutasi dari elemen


Misalkan jumlah objek adalah . maka
(1) urutan pertama dipilih 1 objek dari objek,
(2) urutan kedua dipilih 1 objek dari – objek,
(3) urutan ketiga dipilih 1 objek dari – objek,

(4) urutan terakhir dipilih 1 objek dari objek yang tersisa.
Menurut kaidah perkalian, permutasi n dari n objek adalah,
– –

2. Permutasi dari elemen,  .


Permutasi dari elemen adalah jumlah kemungkinan urutan buah elemen
yang dipilih dari buah elemen, dengan  , dimana pada setiap kemungkinan
urutan tidak ada elemen yang sama.
Dalam hal ini, ada n elemen berbeda dan r buah kotak (r  n), maka
(1) kotak ke-1 dapat diisi oleh satu dari n elemen  (ada pilihan) ;
(2) kotak ke-2 dapat diisi oleh satu dari – elemen  (ada pilihan);
(3) kotak ke-3 dapat diisi oleh satu dari – elemen  (ada n – 2 pilihan);

(4) kotak ke-r dapat diisi oleh satu dari – elemen  (ada – pilihan)
Menurut kaidah perkalian, jumlah urutan berbeda dari penempatan bola adalah
permutasi dari elemen, yaitu,
– – ( )

Contoh
1. Berapa banyak “kata” yang terbentuk dari huruf-huruf pada kata “HAPUS”?

(7) Kombinasi
 Kombinasi adalah bentuk khusus dari permutasi.
 Jika pada permutasi urutan kemunculan diperhitungkan, maka pada kombinasi,
urutan kemunculan diabaikan.
Ilustrasi: misalkan ada 2 buah bola yang warnanya sama yang akan dimasukkan
ke dalam 3 buah kotak. Setiap kotak hanya boleh berisi paling banyak 1
bola. Jumlah cara memasukkan bola ke dalam kotak adalah
3!
P(3,2) P(3,2) 1! (3)(2)
   =3
2 2! 2! 2
Kombinasi r elemen dari n elemen dengan adalah jumlah pemilihan yang
tidak terurut r elemen yang diambil dari n buah elemen, yaitu,
– – ( )
( )
Akibatnya untuk , maka

Pra Olimpiade Komputer, 2019 - 36 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Contoh:

1. Ada berapa banyak permutasi dari huruf-huruf ABCDEFGH dimana,


a. memuat string ABG ?
b. memuat string ABG dan EH?

2. Ada berapa banyak string biner panjang 10 yang memuat tepat 3 buah angka 1.

3. Carilah banyaknya lintasan terpendek dari A ke B.

4. Terdapat 8 pria dan 5 wanita.


a. Berapa cara berdiri dalam suatu barisan dari pria dan wanita tersebut.
b. Berapa cara berdiri dalam suatu barisan dimana kelompok pria
dipisahkan dari kelompok wanita.
c. Berapa cara berdiri dalam suatu barisan dimana dua pria harus
berdampingan.
d. Berapa cara berdiri dalam suatu barisan sehingga tidak ada 2 wanita
yang berdiri bersebelahan

Permutasi dengan Pengulangan


Jumlah permutasi-r dari himpunan dengan anggota yang memperbolehkan
pengulangan adalah .
Contoh.
1. Berapa banyak string panjang n yang dapat dibentuk dari alphabet

Kombinasi dengan pengulangan


Terdapat kombinasi-r dari himpunan dengan anggota yang
memperbolehkan pengulangan.

Contoh.
1. Ada berapa cara untuk memilih 5 lembar uang kertas dari kotak yg memuat
lembaran $1, $2, $5, $10, $20, $50 dan $100. Asumsikan bahwa urutan
pengambilan tidak penting dan ada sedikitnya 5 lembar uang kertas utk
masing-masing pecahan.

Pra Olimpiade Komputer, 2019 - 37 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

2. Ada berapa banyak solusi dari x1 + x2 + x3 = 11, jika , dan

3. Ada berapa banyak solusi dari x1 + x2 + x3=11, jika , dan


.

4. Apakah hubungan antara solusi x1 + x2 + x3 + x4 = 6, xi bilangan bulat


nonnegatif, dengan lintasan terpendek antara A dan B pada grid berikut,
B

5. Ada berapa banyak salaman yang terjadi bila 10 orang berkumpul dan diantara
mereka saling bersalaman.
6. Ada berapa banyak salaman yang terjadi bila 10 pasang suami istri berkumpul
dan diantara mereka saling bersalaman kecuali dengan pasangannya.

Permutasi dengan obyek yang tak dapat dibedakan


Jumlah permutasi dari n obyek, di mana terdapat
 n1 obyek tipe 1,
 n2 obyek tipe 2, … , dan
 nk obyek k,
n!
adalah: dengan n1  n2    nk  n
n1!n2 ! nk !

Contoh.
1. Ada berapa banyak string yang dapat dibuat dengan mengatur kembali huruf-huruf
pada kata SUCCESS.

2. (OSK 2015 No.14) Berapa banyak susunan kata yang dapat dibuat dari huruf-huruf
penyusun kata “INFORMATIKA” yang mengandung “RM” tetapi tidak mengandung
“OF”?
a. 816480 b. 816408 c. 816840 d. 848160 e. 846180

Pra Olimpiade Komputer, 2019 - 38 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

3. (OSK 2013 No.5) Pak Zaki memiliki 12 buah permen yang akan dibagikan kepada 3
orang cucunya, yaitu Abi, Bibi, dan Cibi. Permen yang dibagikan tidak bersisa. Dalam
pembagian tersebut bisa saja ada cucu yang tidak mendapatkan permen sama sekali.
Tentu saja, satu permen tidak bisa dibagi kepada lebih dari satu orang. Karena Cibi
merupakan cucu kesayangan Pak Zaki, maka Cibi selalu mendapat lebih dari 6 permen.
Berapakah banyak cara Pak Zaki membagikan permen tersebut ke cucu-cucunya?
Suatu cara dianggap berbeda jika banyak permen yang diterima salah satu orang
berbeda
A. 20 B. 364 C. 60 D. 128 E. 21

4. (OSK 2013 No.6) Sebuah toko menjual donat dengan rasa yang berbeda-beda.
Terdapat 4 jenis rasa donat yang dijual, yaitu Stroberi, Coklat, Vanilla, dan Cappucino.
Pak Dengklek ingin membeli 4 buah donat. Berapa banyak kemungkinan Pak Dengklek
untuk membeli donat-donat tersebut?
A. 9 B. 24 C. 256 D. 1 E. 35

5. (OSK 2014 No.1) Amar sedang mengikuti kontes pemrograman TOKI. Tiap kali berhasil
mengerjakan soal, ia mendapatkan sebuah balon dengan warna unik untuk masing-
masing soal. Saat ini, ia telah berhasil menyelesaikan semua soal dengan mudah.
Namun, rupanya panitia kehabisan balon sehingga Amar mendapat balon dengan
warna yang sama untuk soal yang terakhir (soal kelima). Waktu 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 C. 90 D. 120 E. 240
Catatan: Bila soal di atas diubah menjadi,
Amar mendapat balon dengan warna yang sama untuk dua soal yang
terakhir (soal kelima dan ke enam).

6. (OSK 2014 No.2) Empat pasang suami istri menonton pagelaran orkestra. Tempat
duduk mereka harus dipisah antara kelompok suami dan kelompok istri. Untuk
masing-masing kelompok disediakan 4 buah tempat duduk bersebelahan dalam satu
barisan. Banyaknya cara memberikan tempat duduk kepada mereka adalah ...
A. 288 B. 576 C. 864 D. 1152 E. 1440

7. (OSK 2017 No.4) Berapa banyak cara berbeda untuk mengisi lantai sebuah ruangan
berukuran 2x8 dengan menggunakan ubin berukuran 2x1, jika harus terdapat tepat 2
ubin yang dipasang secara vertical?
a. 7 b. 8 c. 9 d. 10 e. 11
Catatan: Bila soal di atas diubah menjadi,
1. Berapa banyak cara berbeda untuk mengisi lantai sebuah ruangan
berukuran 2x8 dengan menggunakan ubin berukuran 2x1.

Pra Olimpiade Komputer, 2019 - 39 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

2. Berapa banyak cara berbeda untuk mengisi lantai sebuah ruangan


berukuran 2x8 dengan menggunakan ubin berukuran 2x1 dan 2x2 .

8. (OSK 2017 No.5) Sebuah brankas dilengkapi dengan kunci kombinasi 4 dijit. Masing-
masing dijit memiliki 2 kemungkinan nilai, yaitu 0 dan 1. Ternyata, diketahui diantara
4 dijit itu, hanya 2 dijit yang berfungsi untuk mengunci brankas tersebut. Berapakah
banyak percobaan minimal untuk dapat membuka brankas tersebut?
a. 3 b. 6 c. 12 d. 18 e. 24

9. (OSK 2017 No.6) Adi dan Budi adalah murid dari sebuah kelas yang terdiri dari 40
siswa. Dari kelas tersebut akan dipilih 20 orang siswa sebagai wakil kelas. Wakil kelas
dipilih dengan cara membagi 40 orang siswa menjadi 20 grup. Tiap grup melempar
sebuah koin untuk menentukan siapa yang akan mewakili kelas tersebut. Jika peluang
Adi dan Budi terpilih untuk mewakili kelas tersebut adalah , dimana a dan saling
prima, berapakah ?
a. 91 b. 93 c. 95 d. 97 e. 99

10. (OSK 2017 No.9) String biner adalah deretan karakter yang setiap karakternya adalah
‘0’ atau ‘1’. Substring dari suatu string adalah potongan dari string itu atau string itu
sendiri. Berapa banyak string biner dengan panjang 9 yang tidak berisi substring ‘100’?
a. 113 b. 143 c. 168 d. 232 e. 253

11. (OSK 2018 No.2) Diketahui terdapat 7 pasangan suami istri. Delapan orang dipilih
secara acak. Tentukan banyaknya cara agar dari delapan orang yang dipilih
merupakan 4 pasangan suami istri.
a. 70 b. 35 c. 15 d. 10 e. 20
Bila soal di atas dimodifikasi mejadi:
a. Tentukan banyaknya cara memilih delapan orang dari pasangan tersebut.
b. Tentukan banyaknya cara memilih lima orang yang semuanya laki-laki.
c. Tentukan banyaknya cara memilih delapan orang dimana 2 perempuan dan
6 laki-laki.
d. Tentukan banyaknya cara memilih delapan orang dimana paling sedikit 1
orang adalah laki-laki.

Distribusi obyek ke dalam kotak


Banyaknya cara untuk mendistribusikan n obyek yang dapat dibedakan ke dalam k
kotak yang berbeda sehingga ni buah obyek ditempatkan dalam kotak i, i = 1, 2, …, k
adalah n!
n1!n2 ! nk !

Pra Olimpiade Komputer, 2019 - 40 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Contoh.
1. Ada berapa banyak cara untuk mendistribusikan satu set kartu pada 4 orang
pemain sehingga setiap pemain mendapatkan 5 kartu.
2. Pada suatu tempat terdapat 20 slot lampu yang sejajar. Bila akan dipasang 6
lampu biru, 4 lampu hijau dan 3 lampu merah, tentukanlah berapa cara untuk
memasang lampu-lampu tersebut pada slot yang disediakan.

Koefisien Binomial
Perhatikan bentuk berikut,

( ) ( ) ( )

∑( )

Dalam hal ini, ( ) disebut sebagai koefisien binomial dari .

Bila diperluas sampai dengan n diperoleh,


(x + y)n = C(n,0)xn + C(n,1)xn-1y + C(n,2)xn-2y2 + … + C(n,n-1)xyn-1 + C(n,n)yn.
∑ ( )

Dalam hal ini, ( ) disebut sebagai koefisien binomial dari .

Sifat-sifat:
1. C(n,j) = C(n,n-j).
2. C(n,0) + C(n,1) + … + C(n,n) = 2n.
n
3.  (1) C (n, k )  0
k 0
k

n
4.  2 C (n, k )  3
k 0
k n

Catatan:
 ruas kanan sifat bagian 2 menyatakan banyaknya subhimpunan dari himpunan
dengan n anggota. Dari ruas kiri kita peroleh bahwa subhimpunan ini dapat
dikelompokkan berdasarkan banyaknya anggota.
 Sifat bagan 3 menyatakan bahwa subhimpunan berukuran ganjil sama banyak
dengan subhimpunan berukuran genap.
Contoh.

Pra Olimpiade Komputer, 2019 - 41 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

1. Tentukan koefisien dari ekspansi polinomial


2. Tentukan digit terakhir dari

Identitas Pascal
Misal n dan k bilangan bulat positif, n  k. Maka, C(n+1,k) = C(n,k-1) + C(n,k).

Pra Olimpiade Komputer, 2019 - 42 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

K. LOGIKA MATEMATIKA
CONTOH:
1. (OSK 2013 No. 8) 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

2. (OSK 2014 No.10) Jika A bernilai True, B bernilai False, C bernilai True, D bernilai False, E
bernilai False, dan F bernilai True. Maka Ekspresi Logika yang nilainya sama dengan (A and
(((B or C) and (D and E)) and F)) adalah....
A. (A and B) or ((C or D) and (E or F))
B. ((A or (B or C)) or (D or E) or F)
C. ((A and B) or ((C and (D and E)) and F))
D. ((A or B) or ((C and D) and (E or F)))
E. (((A and B) or C) or ((D or E) and F))

3. (OSK 2015 No.23) Ekspresi “not((P and Q) or (not P or (P and not Q)))” bernilai True jika:
a. P = True, Q = True
b. P = True, Q = False
c. P = False, Q = True
d. P = False, Q = False
e. Berapapun nilai P dan Q, ekspresi tersebut tidak mungkin bernilai true

4. (OSK 2015 No.35) Perhatikan pernyataan berikut:


 Jika hari hujan, maka Budi memakai payung.
 Budi memakai topi atau tidak memakai payung.
Ternyata, hari ini Budi tidak memakai topi. Kesimpulan yang sah adalah:
a. Hari ini hujan
b. Hari ini tidak hujan
c. Budi memakai payung
d. Hari ini hujan dan Budi memakai payung
e. Hari ini tidak hujan dan Budi memakai payung

Pra Olimpiade Komputer, 2019 - 43 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

5. (OSK 2016 No.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

6. (OSK 2017 No.3) Terdapat sebuah daftar yang memuat 2017 pernyataan sebagai berikut:
Pernyataan nomor 1: “Terdapat tepat 1 pernyataan dalam daftar ini yang salah.”
Pernyataan nomor 2: “Terdapat tepat 2 pernyataan dalam daftar ini yang salah.”
Pernyataan nomor 3: Terdapat tepat 3 pernyataan dalam daftar ini yang salah.”
...
Pernyataan nomor 2017: “Terdapat tepat 2017 pernyataan dalam daftar ini yang salah. “
Pernyataan nomor berapakah yang benar jika ternyata hanya ada satu yang benar?
a. 2004 b. 2008 c. 2016 d. 2017 e. Jawaban a, b, c, d salah

7. (OSK 2017 No.8) Terdapat 6 buah pekerjaan, A, B, C, D, E, dan F. Pekerjaan ini harus dikerjakan
dengan mengikuti aturan sebagai berikut:
Pekerjaan F harus dikerjakan sebelum pekerjaan A
Pekerjaan B harus dikerjakan sebelum pekerjaan D
Pekerjaan E dapat dikerjakan jika pekerjaan B sudah dikerjakan
Sebelum mengerjakan pekerjaan B, pekerjaan C harus sudah dilakukan
Pekerjaan A harus dikerjakan sebelum pekerjaan B
Salah satu urutan pengerjaan pekerjaan yang dapat dilakukan adalah…
a. D, B, F, C, A, E
b. C, F, A, D, B, E
c. C, B, F, A, E, D
d. F, C, A, D, B, E
e. F, A, C, B, E, D

8. (OSK 2017 No.14) Pelatih olah raga meminta 3 atlet binaannya bernama Dengklek, Ganesh,
Blangkon untuk berlari mengelilingi lapangan olah raga dengan target sebanyak 5 keliling. Kondisi
yang diperoleh adalah:
 Jika Blangkon tidak menyelesaikannya paling awal, maka Dengklek yang menyelesaikan paling
awal dari ketiganya.
 Jika Dengklek tidak menyelesaikannya paling akhir, maka Ganesh yang menyelesaikan paling
awal dari ketiganya.
Dari sejumlah kondisi di atas, bagaimana urutan pencapaian target mulai dari yang paling awal
menyelesaikan tagetnya?
a. Dengklek, Ganesh, Blangkon
b. Ganesh, Dengklek, Blangkon
c. Blangkon, Ganesh, Dengklek
d. Blangkon, Dengklek, Ganesh
e. Dengklek, Blangkon, Ganesh

Pra Olimpiade Komputer, 2019 - 44 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

9. (OSK 2017 No.20) Jika semua A adalah B dan sebagian B adalah C, manakah pernyataan di
bawah ini yang benar?
a. Semua A adalah C
b. Sebagian C adalah A
c. Semua C adalah A
d. Sebagian A adalah C
e. Jawaban a, b, c, dan d salah

10. (OSK 2018 No.11) Perhatikan pernyataan berikut:


Jika hari ini ada tugas, maka saya tidak bisa pergi ke bioskop.
Jika saya tidak bisa pergi ke bioskop, maka saya tidak bisa menonton film terbaru.
Jika hari ini libur, maka saya bisa menonton film terbaru.
Hari ini ada tugas.
Kesimpulan yang tidak sah adalah?
a. Hari ini tidak libur b. Hari ini libur
c. Saya tidak bisa menonton film terbaru d. Saya tidak bisa pergi ke bioskop
e. Hari ini tidak ada tugas

11. (OSK 2018 No.17) Ekspresi Logika yang nilainya sama dengan (P and (Q or P)) and (not(Q) or
(P and not(Q))) adalah....
a. P or not(Q)
b. not(P) or Q
c. P and Q
d. P and not(Q)
e. (not(P) and Q) or P

12. (OSK 2018 No.18) Terdapat 5 kotak, tepat salah satu dari ketiga kotak tersebut terdapat mobil
didalamnya! Disetiap kotak terdapat sebuah pernyataan, hanya satu dari ketiga pernyataan yang
benar.
Kotak 1: Mobil terdapat di kotak ini
Kotak 2: Mobil tidak terdapat di kotak ini
Kotak 3: Mobil tidak ada di kotak nomor 1
Kotak 4: Mobil terdapat di kotak nomor 3 atau 5
Kotak 5: Mobil terdapat di kotak bernomor ganjil
Dimanakah mobil itu berada?
a. Kotak nomor 1
b. Kotak nomor 2
c. Kotak nomor 3
d. Kotak nomor 4
e. Kotak nomor 5

Pra Olimpiade Komputer, 2019 - 45 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

13. (OSK 2018 No.21) Pak Dengklek mempunyai 4 bebek yang memiliki berat yang berbeda-beda.
Pak Dengklek juga mengetahui beberapa fakta mengenai berat keempat bebek tersebut sebagai
berikut:
bebek1 > bebek2
bebek2 < bebek3
bebek3 > bebek4
Berat setiap bebek adalah bilangan bulat antara 1 - 4 (inklusif).
Manakah pernyataan yang pasti salah di bawah ini?
a. Berat bebek1 > bebek4
b. Selisih berat bebek1 dan 3 >= 3
c. Selisih berat bebek2 dan 4 >= 1
d. Berat bebek3 > bebek1
e. Berat bebek4 > bebek2

Pra Olimpiade Komputer, 2019 - 46 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

L. TEORI GRAF
CONTOH:
1 . (OSK 2016 No.25 dan 26)
2 . (OSK 2016 No.36)
3 . (OSK 2016 No.37)
4 . (OSK 2016 No.38)
5 . (OSK 2017 No.24 dan 25)
6 . (OSK 2017 No.34)
7 . (OSK 2018 No.12)
8 . (OSK 2018 No.14)
9 . (OSK 2018 No.20)
10. (OSK 2018 No.22)
11. (OSK 2018 No.24)
12. (OSK 2018 No.28)

Pra Olimpiade Komputer, 2019 - 47 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

M. ALGORITMA DAN PEMROGRAMAN


Algoritma adalah suatu urutan dari beberapa langkah yang logis guna
menyelesaikan suatu masalah.
Dalam ilmu matematika dan komputer, algoritma merupakan prosedur dari
beberapa langkah demi langkah untuk penghitungan. Algoritma dipakai untuk
penghitungan, penalaran otomatis, dan pemrosesan data.
Susunan algoritma, dimulai dari kondisi awal dan input awal, instruksi tersebut
mendeskripsikan komputasi yang apabila itu dieksekusi serta diproses dengan
melewati urutan-urutan kondisi terbatas yang terdefinisi dengan baik, sehingga
dapat menghasilkan output atau keluaran dan berhenti di kondisi akhir yang telah
ditentukan.
Algoritma berbeda dengan Logaritma. Logaritma adalah sebuah operasi di ilmu
matematika guna menghitung kebalikan eksponen dari sebuah perpangkatan.
Kata Algoritma ditemukan oleh Abu Abdullah Muhammad Ibnu Musa Al-
Khwarizmi, beliau merupakan matematikawan yang berasal dari Persia yang
ditemukan pada Abad Ke 9. Kata algoritma mulai berkembang di abad ke 18.
Merancang Algoritma yang Baik
Menurut Donald E. Knuth, sebuah algoritma yang baik mempunyai kriteria sebagai
berikut :
1. Masukan (Input). Algoritma mempunyai input nol (tidak punya input) atau
mempunyai satu atau lebih dari satu input.
2. Keluaran (Output). Algoritma harus menghasilkan atau mengeluarkan
minimal 1 output.
3. Terbatas (Finite). Algoritma harus berhenti setelah melakukan langkah-
langkah yang diperlukan.
4. Pasti (Definite). Algoritma harus jelas kapan dimulai dan berakhir. Tujuan
dari algoritma harus jelas. Setiap langkah-langkah harus dijelaskan dengan
jelas.
5. Efisien. Membuat sebuah algoritma haruslah efisien.

Algoritma disajikan dalam 2 bentuk, yaitu


 Bentuk tulisan atau bahasa
Harus memakai sebuah bahasa yang dapat dimengerti manusia dalam membuat
langkah-langkah dari algoritma itu sendiri. Disajikan dengan memakai pseudocode.
Pseudocode berasal dari "pseudo" artinya "menyerupai atau mirip" dan "code" yaitu
"kode program".

Pra Olimpiade Komputer, 2019 - 48 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Contoh beberapa bahasa pemrograman yang sering digunakan untuk menyatakan


pseudocode antara lain : pascal, BASIC, Pascal, C, dan lain sebagainya.
 Bentuk gambar.
Penyajian algoritma yang dalam bentuk gambar disebut flow chart.

Pada saat kita ingin menelusuri sebuah algoritma atau program, untuk bahasa
pascal mulailah dari perintah “BEGIN” dan diakhiri dengan “END.”.
1. Satu perintah diakhir dengan “;”.
2. Input data adalah dengan READ atau READLN.
3. Mencetak data adalah dengan WRITE atau WRITELN.
4. FUNGSI (FUNCTION) dan PROSEDUR (PROCEDURE)
Perbedaan utama antara Fungsi dan prosedur adalah,
1. Prosedur dimulai dengan reserved word PROCEDURE, sedangkan fungsi
dengan FUNCTION.
2. Fungsi dideklarasikan dengan tipenya, sedangkan prosedur tidak.
3. Fungsi dapat menampung nilai, sedangkan prosedur tidak.
 Sebagian dari prosedur dan fungsi ini, ada yang sudah didefinisikan di
dalam pascal.
 Prosedur dan fungsi demikian dinamakan prosedur standar dan fungsi
standar.
 Program pascal itu sendiri dibangun oleh prosedur dan fungsi standar ini.

5. Perintah Bersyarat
IF <syarat> THEN <Perintah1> ELSE <Perintah2>;
<syarat> adalah variabel dengan tipe Boolean, yaitu bernilai benar (true) atau
salah (false)
<Perintah 1> adalah perintah yang dijalankan bila <syarat> bernilai True.
<Perintah 2> adalah perintah yang dijalankan bila <syarat> bernilai False.
Kadang-kadang perintah bersyarat ini tidak mempunyai perintah ELSE.
Perintah1 dan Perintah2 bisa berisi lebih dari satu perintah pascal, sehingga
harus diapit oleh “begin” dan “end;”.
Dalam bentuk Flowchart,

Pra Olimpiade Komputer, 2019 - 49 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

6. Variabel berindeks atau ARRAY.


Variabel berindeks dengan indeks i dengan untuk satu
dimensi,
 Dalam matematika, dapat ditulis dalam bentuk .
 Dalam pascal dapat ditulis [ ].
Variabel berindeks dengan indeks i dengan dan j dengan
untuk dua dimensi,
 Dalam matematika, dapat ditulis dalam bentuk .
 Dalam pascal dapat ditulis [ ] atau [ ][ ]

7. Fungsi atau prosedur Rekursif


Fungsi atau prosedur rekursif adalah Fungsi atau prosedur yang
memanggil dirinya sendiri. Fungsi atau prosedur rekursif akan berhenti
memanggil dirinya apabila syarat dasar sudah dipenuhi.

8. Pengulangan.
a. Pengulangan Pasti
i. Maju : FOR <indeks> := <awal> TO <akhir> DO <perintah>;
Dalam hal ini nilai <akhir> >= nilai <awal>
ii. Mundur : FOR <indeks> := <awal> DOWNTO <akhir> DO
<perintah>;
Dalam hal ini nilai <akhir> <= nilai <awal>

b. Pengulangan tidak Pasti (bersyarat)


i. WHILE <syarat> DO <perintah>;
Pengulangan akan tetap dilakukan selama syarat bernilai
benar. Nilai awal syarat diberikan sebelum perintah WHILE.
Jika syarat bernilai salah maka pengulangan akan berhenti.
Biasanya nilai syarat akan berubah dengan memberikan
salah satu perintah didalam <perintah> setelah DO.
ii. REPEAT <perintah> UNTIL <syarat>; Pengulangan akan
tetap dilakukan selama syarat bernilai salah. Nilai awal
syarat diberikan sebelum perintah REPEAT. Jika syarat
bernilai benar maka pengulangan akan berhenti. Biasanya
nilai syarat akan berubah dengan memberikan salah satu
perintah didalam <perintah> sebelum UNTIL.

9. Operator
a. Assigment(pemberian nilai)  :=
b. Operator Biner  NOT, AND, OR, XOR, SHL, SHR
c. Operator Integer  +, -, *, MOD, DIV
d. Operator Real  +, *, /, -
e. Operator string  +, - ,

10. Fungsi-fungsi Khusus.


Pra Olimpiade Komputer, 2019 - 50 - Sekolah Menengah Atas
Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

a. INC(n,m)  n := n + m
Khusus: INC(n)  n := n + 1;
b. DEC(n,m)  n := n - m
Khusus: DEC(n)  n := n - 1;
c. LENGTH(string) : menghitung banyak karakter pada string.
d. ORD
e. CHR
f. UPCASE

Pra Olimpiade Komputer, 2019 - 51 - Sekolah Menengah Atas

Anda mungkin juga menyukai