Anda di halaman 1dari 62

Catatan Pelatihan Olimpiade Komputer NARWEN, M.

Si

CATATAN OLIMPIADE KOMPUTER


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

Pelatihan di SMAN 1 Padang


Januari 20202

A. SISTEM BILANGAN BULAT


Dalam matematika, biasanya bilangan yang dilibatkan adalah bilangan real selain bilangan
kompleks. Oleh karena itu, alangkah baiknya ditinjau terlebih dahulu komponen-
komponen yang membentuk bilangan real.

Bilangan real dibangun oleh komponen bilangan-bilangan:


(1) Bilangan Asli : bilangan yang dibentuk dari himpunan bilangan { }
Bilangan asli dapat dikelompokan menjadi 3 kelompok, yaitu,
a. Bilangan yang dibentuk dari satu faktor : { }.
b. Bilangan yang dibentuk dari dua faktor (prima) : { }
c. Bilangan yang dibentuk lebih dari dua faktor (komposit): { }
Langkah-langkah untuk menentukan apakah sebuah bilangan bulat positif
sebuah bilangan prima atau tidak.
(a) Carilah sebuah bilangan prima terbesar yang kuadratnya lebih kecil atau sama
dengan (Pernyataan tersebut dapat juga diubah menjadi cari bilangan prima
terbesar yang nilainya lebih kecil atau sama dengan √ ). Misalkan bilangan prima
terbesar itu adalah p, sehingga diperoleh sekumpulan bilangan prima yang
kuadratnya lebih kecil dari atau sama dengan tersebut, yaitu { }
(b) Selanjutnya, bagi N dengan bilangan-bilangan yang ada dalam { }
berturut-turut.
 Mula-mula bagi N dengan bilangan prima terkecil, yaitu 2. Bila N habis dibagi
2 maka N bukan bilangan prima dan pengujian selesai. Sebaliknya, 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.
Sebaliknya, bila N tidak habis dibagi 3, lanjutkan menguji N dengan prima
selanjutnya, yaitu 5.
(c) Bila diteruskan, jika N tidak habis dibagi oleh salah satu bilangan-bilangan 2, 3, 5,…,
atau , maka dapat disimpulkan bahwa N adalah bilangan Prima.

Pra Olimpiade Komputer, 2020 -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 adalah bilangan prima , bilangan bulat dengan
membagi , maka 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, …
Bilangan bulat dapat dibedakan atas,
a. Bilangan genap : bilangan bulat yang habis dibagi 2
b. Bilangan ganjil : bilangan bulat yang tidak habis dibagi 2.

Pra Olimpiade Komputer, 2020 -2- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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 habis dibagi 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 24 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.
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.

Pra Olimpiade Komputer, 2020 -3- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

 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

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.
Pra Olimpiade Komputer, 2020 -4- Sekolah Menengah Atas
Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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 Dua digit terakhirnya 00 atau 50.
Contoh : 5864150 habis dibagi 50, karena dua digit terakhir adalah 50.

17. Habis dibagi 99 Jumlah kelompok 2 digit dari kanan habis dibagi 99.
Contoh: 43857, jumlah kelompok 2 digit dari kanan adalah 57 + 38 + 4 = 99
Karena 99 habis dibagi 99 maka 43857 habis dibagi 99.

18. Habis dibagi 999 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.
Latihan.
1. Jika adalah bilangan enam digit yang habis dibagi 88, maka nilai dari
adalah…

2. Bilangan adalah bilangan lima digit yang habis dibagi 72. Tentukanlah nilai
dari agar bilangan lima digit menjadi bilangan terbesar yang habis
dibagi 72.

Sifat-sifat lain pada bilangan bulat


 Setiap bilangan bulat dapat diubah menjadi salah satu dari,
, , , …, ) atau ,
untuk suatu 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, 2020 -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
Operasi pada bilangan bulat
Kali( ), tambah( ), Kurang( ), bagi bulat ( ) dan sisa bagi bulat ( )

(4) Bilangan rasional. Ada dua definisi yang sering digunakan dalam mendefinisikan
bilangan rasional.
a. Bilangan berbentuk , dengan dan 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 atau kali x
dengan 10 pangkat suatu bilangan sehingga bilangan yang berada di belakang
koma sama antara x dengan bilangan .
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…

Pra Olimpiade Komputer, 2020 -6- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Salah satu cara untuk mencari Faktor Persekutuan Terbesar (FPB) antara dua bilangan
bulat dan dengan menggunakan Algoritma Euclid.
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.

Latihan
1. Bilangan real adalah bilangan rasional, sehingga dapat ditulis
dalam bentuk , dimana m, n bilangan-bilangan bulat, n ≠ 0. Jika faktor
persekutuan terbesar dari m dan n adalah 1, maka nilai dari m – n adalah…
A. 36 B.63 C. 9 D. 4 E. 18
2. Misalkan dan adalah dua bilangan asli. Jika faktor persekutuan terbesar
dari dan adalah 7 dan , maka hasil kali dengan adalah…
A. 255 B.735 C. 980 D. 245 E. 490
(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.

B. BILANGAN BINER
Secara umum, penyajian setiap bilangan bulat yang tidak negatif dengan basis dapat
ditulis dalam bentuk

Dengan,

Pra Olimpiade Komputer, 2020 -7- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

 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.

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

Pra Olimpiade Komputer, 2020 -8- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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
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);
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.

Pra Olimpiade Komputer, 2020 -9- Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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.

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:

Pra Olimpiade Komputer, 2020 - 10 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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.

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: (a) (b)


4. XOR (Ekslusif or)
A B A xor B
1 1 0
1 0 1
0 1 1
0 0 0

Contoh: (a) (b)


5. SHR (Geser bit ke kanan)

 Menggeser bit n sejauh m bit ke kanan


 Menghapus sebanyak m bit paling kanan
Contoh:

6. SHL (Geser bit ke kiri)

Pra Olimpiade Komputer, 2020 - 11 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

 Menggeser bit n sejauh m bit ke kiri


 Menambahkan bit 0 sebanyak m bit di sisi paling kanan
Contoh:

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.

Latihan
1. Nilai dari ekspresi adalah…
A30 B. 60 C. 120 C. 122 D. 7680

2. Nilai dari ekspresi adalah…


A. 14 B. 19 C. 31 D. 40 E. 77

3. Nilai dari ekspresi adalah (10 or 14 and 16 xor 6)


A. 0 B. 6 C. 14 D. 10 E. 12

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

Pra Olimpiade Komputer, 2020 - 12 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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.

(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.

Pra Olimpiade Komputer, 2020 - 13 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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 3.
4. Tentukan banyak bilangan dari 1 s/d 100 yang banyak faktor positifnya 4.
5. Tentukan banyak bilangan dari 1 s/d 100 yang banyak faktor positifnya 5.
6. 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
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

Pra Olimpiade Komputer, 2020 - 14 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

(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

Hubungan FPB dengan KPK dari dua bilangan Komposit.

Pra Olimpiade Komputer, 2020 - 15 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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

7. (OSK 2015 No. 3) Diberikan 4 buah angka berbeda, yaitu dan . Jika diketahui
, berapa nilai terbesar yang mungkin?
a. 1472 b. 2208 c. 3024 d. 4284 e. Jawaban a, b, c, d salah

Pra Olimpiade Komputer, 2020 - 16 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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, 2020 - 17 - 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, 2020 - 18 - 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,


1.
2.

Pra Olimpiade Komputer, 2020 - 19 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

3.
4.

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, 2020 - 20 - 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.

18. (OSK 2019 No.2) Angka yang menempati digit satuan dari
21100 - 25100 + 29100 - 33100 adalah:
a. 0 b. 2 c. 3 d. 6 e. 8

Pra Olimpiade Komputer, 2020 - 21 - 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

Pra Olimpiade Komputer, 2020 - 22 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

= 2. (172 - 8. 20) – 1 . (20)


= 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.

3.
4. 7x + 4y = 100

Pra Olimpiade Komputer, 2020 - 23 - 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.

7. Jika adalah bilangan terkecil bila dibagi dengan 2, 3, 4, 5 dan 6 berturut-turut


menghasilkan sisa 1, 2, 3, 4 dan 5, maka bila dibagi dengan 7 maka sisanya
adalah…
a. 2 b. 3 c. 4 d. 5 e. 6

Pra Olimpiade Komputer, 2020 - 24 - 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
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

Pra Olimpiade Komputer, 2020 - 25 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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, 2020 - 26 - 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, 2020 - 27 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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


2 1

Pra Olimpiade Komputer, 2020 - 28 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

J. KOMBINATORIKA
Kombinatorika 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. 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, 2020 - 29 - 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. Berapa cara
untuk memilih buku dari tempat tersebut, apabila,
a. Dua buku berbeda.
b. Tiga buku berbeda.

Pra Olimpiade Komputer, 2020 - 30 - 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, 2020 - 31 - 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%

7. (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

8. (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

9. (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, 2020 - 32 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

10. (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

11. (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

12. (OSK 2019 No. 1) Ada berapa bilangan bulat prima atau genap antara 1 sampai
100 (inklusif) yang tidak dapat dibagi 5?
a. 63 b. 64 c. 65 d. 66 e. 67

(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.
Relasi Recurrence
Relasi Recurrence untuk barisan { } adalah persamaan yang menyatakan dalam
salah satu atau lebih bentuk untuk semua dengan
dimana bilangan bulat non-negatif.
Barisan { } tersebut dikatakan sebagai solusi dari relasi recurrence ini bila
memenuhi relasi recurrence.
dan disebut syarat awal untuk barisan reccurence

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. (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

Pra Olimpiade Komputer, 2020 - 33 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

4. (OSK 2017 No. 12) Berapa banyak kata sepanjang N-karakter yang dapat
dibentuk dari angka-angka {0, 1, 2}, sedemikian sehingga angka-angka yang
saling bersebelahan hanya berselisih maksimum 1. Contoh : Untuk N=2
terdapat 7 kata yang dapat dibentuk yaitu : <0 0>, <0 1>, <1 0>, <1 1>, <1
2>,<2 1>, <2 2>. Notasi < > menyatakan bentukan satu kata. Jika N=10,
berapa banyak kata yang dapat dibentuk?
a. 8119 b. 8121 c. 8123 d. 8125 e. 8127
5. Berapa banyak string biner dengan panjang 10 tapi tidak memuat substring
‘001’.
6. 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?
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

Pra Olimpiade Komputer, 2020 - 34 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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. (OSK 2018 No. 19)Di hadapan Indra terdapat sebuah kotak kosong dan sebuah kantong yang
berisi 20 bola yang masing-masing bernomor 1, 4, 8, 13, 17, 19, 21, 25, 36, 44, 49, 53, 56, 62,
65, 76, 85, 89, 91, dan 98. Indra kemudian memainkan sebuah permainan, ia akan mengambil
sebuah bola dari dalam kantong secara acak dan langsung memindahkannya ke dalam kotak
tanpa melihat nomor pada bola tersebut. Langkah ini akan dilakukan secara berulang-ulang
hingga Indra lelah. Berapa kali minimal Indra harus melakukan langkah ini agar di dalam kotak
dipastikan setidaknya terdapat 2 buah bola berbeda dimana selisih nomor yang tertera
padanya habis dibagi 19?
a. 2 b. 6 c. 7 d. 15 e. 20

8. 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.
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,  .

Pra Olimpiade Komputer, 2020 - 35 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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,
– – ( )
(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
Contoh:

1. Berapa banyak “kata” yang terbentuk dari huruf-huruf pada kata “HAPUS”?
2. Ada berapa banyak permutasi dari huruf-huruf ABCDEFGH dimana,
a. memuat string ABG ?
b. memuat string ABG dan EH?
3. Ada berapa banyak string biner panjang 10 yang memuat tepat 3 buah angka 1.
4. Carilah banyaknya lintasan terpendek dari A ke B.
B

Pra Olimpiade Komputer, 2020 - 36 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

5. Carilah banyaknya lintasan terpendek dari A ke B.

6. 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
e. Berapa cara berdiri dalam suatu barisan sehingga yang duduk paling
pinggir adalah pria.
f. Berapa cara berdiri dalam suatu barisan sehingga yang duduk paling
pinggir adalah pria dan 3 orang yang duduk di tengah adalah wanita.

Permutasi dengan Pengulangan


Jumlah permutasi-r dari himpunan dengan anggota yang memperbolehkan
pengulangan adalah .

Kombinasi dengan pengulangan


Terdapat kombinasi-r dari himpunan dengan anggota yang
memperbolehkan pengulangan.
Contoh.
1. Berapa banyak string panjang 5 yang dapat dibentuk dari alphabet
2. Ada berapa cara untuk memilih 4 buah uang koin dari kotak yg memuat koin-koin
Rp 200, Rp. 500 dan Rp 1000. Asumsikan bahwa urutan pengambilan tidak
penting dan ada sedikitnya 4 koin untuk masing-masing pecahan koin.
3. Ada berapa banyak solusi dari x1 + x2 + x3 = 11, jika , dan
4. Ada berapa banyak solusi dari x1 + x2 + x3=11, jika , dan .
5. Ada berapa banyak solusi dari x1 + x2 + x3 = 11, jika , dan .
6. Apakah hubungan antara solusi x1 + x2 + x3 + x4 = 6, xi bilangan bulat
nonnegatif, dengan lintasan terpendek antara A dan B pada grid berikut,

Pra Olimpiade Komputer, 2020 - 37 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

7. Ada berapa banyak salaman yang terjadi bila 10 orang berkumpul dan diantara
mereka saling bersalaman.
8. 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,

adalah:

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

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

Pra Olimpiade Komputer, 2020 - 38 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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,
a. Amar mendapat balon dengan warna yang sama untuk dua soal yang
terakhir (soal kelima dan ke enam).
b. Amar mendapat balon dengan warna yang berbeda 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.
2. Berapa banyak cara berbeda untuk mengisi lantai sebuah ruangan
berukuran 2x8 dengan menggunakan ubin berukuran 2x1 atau 2x2.
3. 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

Pra Olimpiade Komputer, 2020 - 39 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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 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.
e. Tentukan banyaknya cara memilih enam orang dimana paling sedikit 1 orang
adalah laki-laki.

11. Banyaknya bilangan 7 angka berbeda yang dapat dibentuk dengan cara mengubah
susunan angka dari 2504224.

12. Banyaknya bilangan berbeda yang dapat dibentuk dengan cara mengubah susunan angka
dari 2504224.

13. Tentukan banyak bilangan positif lima angka yang berupa palindrom. Palindrom adalah
bilangan atau kata yang sama bila dibaca dari kiri ke kanan atau sebaliknya. Sebagai contoh
35353 adalah bilangan palindrom, sedangkan 14242 bukan palindrom.

14. Tentukan banyak bilangan positif lima angka palindrom yang habis dibagi 3.

Pra Olimpiade Komputer, 2020 - 40 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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
dimana

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.

(8) 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:

Pra Olimpiade Komputer, 2020 - 41 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

 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.
1. Diberikan ekspansi polinomial dari
a. Tentukan Koefisien dari
b. Tentukan Koefisien dari

2. Jika diuraikan menjadi bentuk polinomial maka koefisien dari suku


adalah...
a. 1024 b -2560 c. 2560 d. 2880 e. -2880

3. Jika diuraikan menjadi bentuk polinomial maka koefisien dari suku


adalah...

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, 2020 - 42 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

K. LOGIKA MATEMATIKA
PERNYATAAN
1. Kalimat tertutup (pernyataan/Preposisi): Suatu kalimat yang mempunyai nilai benar saja
atau salah saja, tetapi tidak sekaligus benar dan salah.
2. Kalimat terbuka: Suatu kalimat yang belum dapat ditentukan nilainya benar saja atau salah saja.

Contoh:
Nyatakan kalimat-kalimat berikut merupakan pernyataan, kalimat terbuka atau bukan keduanya!
a. 1 tahun terdiri dari 12 bulan
b. x + 4 = 7
c. Berapa umurmu?
d. Suku kelima barisan 1,3,5,... adalah 11.
e. Hari ini adalah hari Kamis
f. Coklat adalah makanan yang enak.

PENGHUBUNG PREPOSISI
Dalam logika matematika dikenal beberapa penghubung untuk mengkombinasikan preposisi
atomik, yaitu:
1. Negasi (Negation) atau
Negasi dari suatu preposisi adalah lawan dari nilai preposisi tersebut.

2. Disjungsi (Disjunction) atau


Disjungsi dari dua preposisi akan bernilai benar (true) apabila minimal salah satu dari
preposisi bernilai benar, selain itu bernilai salah (false).

3. Eksklusif Disjungsi atau xor


Eksklusif Disjungsi dari dua preposisi akan bernilai benar (true) apabila kedua preposisi
bernilai berbeda, selain itu bernilai salah (false).

4. Konjungsi (Conjunction) atau and


Konjungsi dari dua preposisi akan bernilai salah (false) apabila minimal salah satu dari
preposisi bernilai salah, selain itu bernilai benar (true).

5. Implikasi (Implication)
Implikasi dari dua preposisi (premis dan konklusi) akan bernilai salah (false) apabila
premis bernilai benar (true) dan konklusi bernilai salah (false), selain itu bernilai benar
(true).

6. Biimplikasi (Biimplication)

Pra Olimpiade Komputer, 2020 - 43 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Biimplikasi dari dua preposisi akan bernilai benar (true) apabila kedua preposisi bernilai
sama, selain itu bernilai salah (false).

7. Ekuivalensi(Equivalence)
Dua preposisi dikatakan Ekuivalen apabila nilai kebenarannya adalah sama.

Penggabungan proposisi / preposisi atomik menggunakan kata penghubung akan membentuk


Preposisi Majemuk.

NEGASI DISJUNGSI & KONJUNGSI

Rumus: ~ ( p  q)  ~ p  ~ q ~ ( p  q)  ~ p  ~ q

CARA MENGIMPLIKASI p  q
 Jika p, maka q
 Jika p, q
 p mengakibatkan q (p implies q)
 q jika p
 p hanya jika q
 p syarat cukup untuk q (hipotesis menyatakan syarat cukup (sufficient condition) )
 q syarat perlu untuk p (konklusi menyatakan syarat perlu (necessary condition) )
 q bilamana p (q whenever p)

NEGASI IMPLIKASI & BIIMPLIKASI

Rumus: ~ ( p  q)  p  ~ q
~ ( p  q)  (p  ~ q) atau (q  ~ p)

KONVERS, INVERS & KONTRAPOSISI


Konvers
pq q p
Inver
s

~ p ~ q ~ q ~ p

EKIVALENSI

Pra Olimpiade Komputer, 2020 - 44 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Dua buah proposisi majemuk, P(p, q, ..) dan Q(p, q, ..) disebut ekivalen secara logika jika keduanya
mempunyai tabel kebenaran yang identik, ditulis sebagai P(p, q, …)  Q(p, q, …)
Contoh. Hukum De Morgan: ~(p  q)  ~p  ~q.

HUKUM-HUKUM LOGIKA
Disebut juga hukum-hukum aljabar preposisi

1. Hukum identitas: ■pFp ■pTp


2. Hukum null/dominasi: ■ p  F  F ■pTT
3. Hukum negasi: ■ p  ~p  T ■ p  ~p  F
4.Hukum idempoten: ■ppp ■ppp
5.Hukum involusi (negasi ganda): ■ ~(~p)  p
6.Hukum penyerapan (absorpsi):■ p  (p  q)  p ■ p  (p  q)  p
7.Hukum komutatif: ■ p  q  q  p ■pqqp
8.Hukum asosiatif: ■p  (q  r)  (p  q)  r ■ p  (q  r)  (p  q)  r

9.Hukum distributif: ■p(qr)  (pq)(pr) ■ p(qr)  (pq)(pr)


10.Hukum De Morgan: ■ ~(p  q)  ~p  ~q ■ ~(p  q)  ~p  ~q

PENARIKAN KESIMPULAN
1. MODUS PONENS
pq Premis 1 : Jika p maka q (Benar)
p Premis 2 : p (Benar)
q Konklusi : q (Benar)

2. MODUS TOLLENS
p q Premis 1 : Jika p maka q (Benar)
~ q Premis 2 : ~ q (Benar)
 ~ p Konklusi : ~ p (Benar)

3. SILOGISME

Pra Olimpiade Komputer, 2020 - 45 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

pq Premis 1 : Jika p maka q (Benar)


qr Premis 2 : Jika q maka r (Benar)
Konklusi : Jika p maka r (Benar)
pr

TAUTOLOGI DAN KONTRADIKSI

 Sebuah preposisi disebut tautologi jika ia benar untuk semua kasus, preposisi tautologi
dicirikan pada kolom terakhir pada tabel kebenarannya hanya memuat nilai B (True).
Bentuk preposisi   adalah sebuah tautologi
 Sebuah preposisi disebut kontradiksi jika ia salah untuk semua kasus, preposisi tautologi
dicirikan pada kolom terakhir pada tabel kebenarannya hanya memuat nilai S (False).
 Bentuk preposisi (pq)  (pq) adalah sebuah Kontradiksi

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

Pra Olimpiade Komputer, 2020 - 46 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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

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

Pra Olimpiade Komputer, 2020 - 47 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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

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

Pra Olimpiade Komputer, 2020 - 48 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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

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

14. (OSK 2019 No.4)Ada 7 orang yang ingin pergi ke bioskop. Sebut mereka A, B, C, D, E, F dan G.
Mereka duduk bersebelahan, namun terdapat aturan mengenai posisi duduk sebagai berikut:
 A tidak ingin duduk di sebelah B
 C ingin duduk di sebelah D
 E ingin duduk di pojok kiri
 F tidak ingin duduk di sebelah E
Berapa banyak urutan duduk agar semua keinginan mereka terpenuhi?
a. 72 b. 96 c. 120 d. 144 e. 16810

15. (OSK 2019 No.11)Kisah ini mengenai kehidupan masa lalu Pak Dengklek di zaman Paleolitikum.
Pada saat itu diketahui beberapa hal:
Orang yang bisa membunuh hewan pasti pandai mengasah batu.
Orang yang hidup nomaden (berpindah-pindah) bisa makan sayur-sayuran.
Setiap orang pasti suka makan sayur atau daging.
Reaksi orang terhadap suatu jenis makanan hanya suka atau tidak suka.
Orang yang membunuh hewan suka makan daging.
Orang yang tidak punya rumah pasti hidupnya nomaden.
Orang yang tidak suka makan sayur pasti tinggal menetap di hutan untuk berburu.
Diketahui bahwa Pak Dengklek saat itu tidak punya rumah dan suka makan daging. Terdapat 3
pernyataan sebagai berikut:
1. Pak Dengklek pandai mengasah batu.

Pra Olimpiade Komputer, 2020 - 49 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

2. Pak Dengklek suka makan sayur-sayuran.


3. Pak Dengklek hidup di darat
Pernyataan yang pasti benar adalah:
a. Tidak ada b. 1 dan 2 c. 2 d. 1 dan 3 e. Semua Benar

16. (OSK 2019 No.11) Nilai yang menyebabkan pertanyaan dibawah ini bernilai TRUE adalah:
(P and ((not P or not(Q or (not R and Q))) and (P and (Q or not R))))
a. P=False, Q=True, R=False
b. P=True, Q= True, R=False
c. P=True, Q=False, R=False
d. P=True, Q=True, R=True
e. Tidak mungkin pernyataan di atas bernilai benar
.
17. (OSK 2019 No.15) Diketahui himpunan kosong A dan B yang dapat ditambahkan bilangan bulat
dari i dengan 1 <= i <= 30. Bilangan i akan dimasukkan ke himpunan A dan B dengan syarat berikut.
 Bilangan yang telah dimasukkan ke himpunan yang satu tidak dapat dimasukkan ke himpunan
bilangan lainnya.
 Hasil perkalian dua bilangan yang berada di himpunan yang sama setelah dimodulo 31 akan
selalu menghasilkan bilangan yang berada di himpunan A.
 Hasil perkalian dua bilangan yang berada di himpunan yang saling beda setelah dimodulo 31
akan selalu menghasilkan bilangan yang berada di himpunan B.
 Bilangan 1 berada di himpunan A
Maka banyaknya anggota himpunan A dan B berturut-turut adalah:
a. 11 dan 19 b. 12 dan 18 c. 13 dan 17 d. 14 dan 16 e. 15 dan 15

18. (OSK 2019 No.23) Pada suatu hari, Pak Chanek ingin meminjam uang Pak Dengklek. Tetapi,
karena Pak Chanek terlalu sering meminjam uang, Pak Dengklek memberikan sebuah ujian.
 Pak Dengklek: “Kamu harus mencari tahu 3 bilangan yang sedang aku pikirkan. Perkalian dari
ketiganya adalah 140. Bilangan terbesarnya adalah bilangan favoritku.”
 Pak Chanek: “Aku tahu bilangan favoritmu, tapi aku masih belum tahu apa ketiga bilangan
tersebut.”
 Pak Dengklek: “Jumlah dari 2 bilangan terkecil adalah bilangan genap.”
 Pak Chanek: “Oh, sekarang aku tahu.”
Berapakah penjumlahan dari ketiga bilangan tersebut?
a. 41 b. 39 c. 34 d. 28 e. 21

19. (OSK 2019 No.24) Untuk hadiah ulang tahun pak Dengklek, pak Ganesh ingin memberikan
beberapa barisan yang sangat unik. Diantaranya adalah:
1, 2, 3, 4, 5, 6, ….
1, 4, 9, 16, 25, 36, ….
1, 2, 6, 24, 120, ….
1, 4, 18, 96, ….
Seketika pak Dengklek berkata ke pak Ganesh “Barisan apakah yang kamu berikan kepadaku
bung?”. Pak Ganesh pun menjawab, “Saya tidak akan memberitahumu sebelum kamu menemukan

Pra Olimpiade Komputer, 2020 - 50 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

suku ke-6 dari barisan terakhir”. Bantulah pak Dengklek untuk mengetahui barisan ke-4 dengan
menemukan suku ke-6 nya?
a. 4320 b. 4230 c. 2340 d. 5040 e. 1296

L. TEORI GRAF
CONTOH:
1. (OSK 2016 No.25 dan 26) Di Kota TOKI terdapat tempat yang berbentuk segi-7 beraturan. Masing
masing titik pada segi-7 tersebut harus diwarnai salah satu dari 7 warna yaitu: merah, jingga, kuning,
hijau, biru, nila, dan ungu. Pemberian warnanya mengikuti aturan sebagai berikut :
● kuning tidak boleh bersebelahan dengan hijau.
● biru harus berada 3 titik disebelah kiri nila.
● hijau harus berada tepat disebelah merah (boleh sebelah kiri maupun sebelah
kanan).
● jingga tidak boleh ditempatkan bersebelahan dengan biru maupun nila.
● ungu harus berada 3 titik dari biru.
● merah harus berada pada 2 titik dari ungu.
25. Manakah yang benar dari pernyataan berikut?
a. Ungu dan Nila berjarak sebanyak 3 titik. b. Jingga dan merah berjarak sebanyak 3 titik
c. Hijau dan Kuning berjarak sebanyak 3 titik d. Ungu dan Nila berjarak sebanyak 2 titik.
e. Kuning dan Merah berjarak sebanyak 2 titik.

26. Warna apakah yang berada tepat sebelah kiri jingga?


a. merah b. hijau c. biru d. ungu e. kuning

27. Apabila pernyataan "merah harus berada pada 2 titik dari ungu" dihapus, warna apa saja yang
mungkin berada tepat sebelah kiri nila?
a. Merah atau Biru b. Biru atau Hijau c. Hijau Saja d. Merah Saja e. Merah atau Hijau

2. (OSK 2016 No.32-35)Sebuah keluarga besar, terdiri dari 9 orang: A, B, C, D, E, F, G, H, I. Diketahui


beberapa fakta sebagai berikut:
 A adalah ayah dari E
 E adalah bibi dari D
 I adalah keponakan dari F
 H adalah nenek dari G dan ibu dari E.
 B adalah paman dari G dan suami C.
 A, H, E, dan F, sudah menikah, dan pasangannya merupakan salah satu dari 9 anggota
keluarga tersebut (pasangan merupakan suami istri).

Pra Olimpiade Komputer, 2020 - 51 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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

35. Suami dari E adalah ...


a. A b. B c. C d. F e. H
4. (OSK 2016 No.36) Terdapat 5 katak A, B, C, D, dan E yang masing-masing berusia berturut-turut 7
minggu, 8 minggu, 9 minggu, 10 minggu, dan 11 minggu.

Mereka akan melompat dari suatu daun teratai ke daun teratai lainnya. Mereka telah meletakkan
beberapa panah diantara daun, dan mereka semua memulai pada sisi kiri seperti pada gambar.
Ketika seseorang melompat ke suatu daun, dia menunggu sampai ada katak lain yang datang ke
daun tersebut. Kemudian diantara dua katak pada daun tersebut, katak yang lebih tua akan
melompat ke katak lain mengikuti panah yang tebal, sedangkan yang lebih muda mengikuti panah
yang tipis. Bagaimanakah posisi akhir mereka pada sisi kanan dari gambar di atas (dari paling
atas)?
a. B – C – D – A – E b. B – D – C – A – E c. B – D – C – E – A
d. B – C – D – E – A e. A – B – C – D – E

5. (OSK 2016 No.37) Bu Dengklek sedang ingin mempersiapkan dua makanan, dan kedua makanan
tersebut terbuat dari 4 bahan yang sama yaitu daging, tomat, ikan dan wortel.

Pertama, Bu Dengklek harus memasak ikan dan wortel secara bersamaan dan membutuhkan
waktu 5 menit (S1). Kemudian Bu Dengklek memasak daging dan tomat bersamaan dan
membutuhkan waktu 5 menit (S2). Kemudian hasil dari daging dan tomat tersebut dibagi menjadi
tiga bagian (S9, S5, S4). Untuk proses S4, Bu Dengklek menggabungkan hasil dari S2 dan S1 dan

Pra Olimpiade Komputer, 2020 - 52 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

memprosesnya selama 5 menit. Begitu seterusnya sampai makanannya jadi, dan setiap proses itu
membutuhkan waktu 5 menit. Tentulah bisa saja dua proses berjalan bersamaan, dan waktu total
untuk menyelesaikan kedua makanan itu menjadi lebih singkat. Berapakah waktu minimum yang
diperlukan Bu Dengklek untuk menyelesaikan masakannya?
a. 20 menit b. 15 menit c. 30 menit d. 25 menit e. 55 menit

6. (OSK 2016 No.38) Pak Dengklek ingin membawa belanjaannya dari pasar ke rumahnya hanya
melalui suatu jaringan jalan tol. Pada setiap ruas jalan tol ia harus membayar sejumlah uang yang
ditunjukkan dengan angka-angka pada gambar berikut.

Ia ingin memilih lintasan dengan biaya yang paling minimum. Berapa biaya minimum yang harus
disediakan Pak Dengklek untuk sampai ke rumahnya?
a. 17 b. 18 c. 19 d. 20 e. 21

7. (OSK 2017 No.24 dan 25) Pak Totok adalah pedagang keliling. Setiap hari ia berjualan di suatu
kampung dan besoknya berpindah ke kampung lain. Namun, ia memiliki aturan-aturan sbb. Pak
Totok selalu berjualan di 4 kampung berbeda yaitu: A, B, C, dan D.
Jika hari ini ia ada di A, maka besoknya akan pasti pindah ke C.
Jika hari ini ia ada di B maka hari berikutnya ia akan berada di A atau D.
Jika hari ini ia ada di C maka besoknya ia akan ke B atau D.
Jika hari ini ia ada di D maka besoknya ia pasti akan berada di A.

24. Jika pada suatu hari ia ada di A, dimanakah ia bisa berada 3 hari kemudian?
a. A atau B b. A atau C c. B atau C d. A atau D e. B atau D

25. Jika pada suatu hari ia berada di A, 20 hari kemudian berada di suatu kampung X. Kampung
apakah yang tidak mungkin sebagai X?
a. A b. B c. C d. D e. Jawaban a, b, c, dan d salah

8. (OSK 2017 No.34) Pak Dengklek harus membawa itik-itiknya melewati terowongan dari stasiun S
ke stasiun T. Pada gambar setiap stasiun digambarkan sebagai lingkaran. Itik-itik tersebut harus
berjalan melalui terowongan dengan arah yang ditunjukkan pada gambar, dari satu stasiun ke
stasiun lain. Setiap terowongan mempunyai kapasitas itik yang dapat lewat dalam sehari, yang
jumlahnya dinyatakan dalam angka pada gambar. Dari sebuah stasiun, Pak Dengklek dapat
mengirim itik-itiknya melalui terowongan yang tersedia pada stasiun tersebut ke stasiun
berikutnya.

Pra Olimpiade Komputer, 2020 - 53 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

Berapa jumlah itik maksimum yang dapat dipindahkan oleh Pak Dengklek dari S ke T dalam satu
hari?
a. 4 b. 5 c. 6 d. 7 e. 8

9. (OSK 2018 No.12) Graph di samping kanan menggambarkan


peternakan dimana Pak Dengklek tinggal, yang terdiri dari 10
kandang dan 16 jalan satu arah. Pak Dengklek sedang berada di
kandang nomor 1 dan ingin menuju kandang nomor 10. Berapa
banyak rute berbeda yang dapat ditempuh Pak Dengklek? Dua
rute dikatakan berbeda jika pak Dengklek melalui 2 jalan yang
berbeda.
a. 14 b. 15 c. 16 d. 17 e. 18

10. (OSK 2018 No.14) Diberikan sebuah array berisi [3, 9, 1, 10, 7, -3, 5, -10, -17]. Satu langkah
didefinisikan sebagai pemilihan 2 buah angka (misal a dan b), menghapus salah satunya (misal a),
dan menambahkan b dengan perkalian a dan b. Anda menjalankan langkah-langkah tersebut
sampai hanya terdapat 1 angka di array. Berapakah nilai terbesar yang bisa anda dapatkan?
a. 471 b. 468 c. 465 d. 462 e. 459

11. (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
12. (OSK 2018 No.20) Pak Dengklek sedang terdampar di pulau misterius. Ia menemukan sebuah
petunjuk harta karun, tetapi sayang semua angka di petunjuk tersebut hilang. Adapun petunjuk
nya seperti dibawah ini.

Simbol “?” menandakan angka yang hilang, berapa banyak titik yang menjadi kemungkinan lokasi
harta karun jika diketahui angka yang hilang merupakan bilangan bulat positif?
a. 3 b. 4 c. 5 d. 6 e. 7

Pra Olimpiade Komputer, 2020 - 54 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

13. (OSK 2018 No.22) Pak Dengklek ingin mengikuti kursus berternak bebek unggul. Kursus tersebut
terdiri dari modul C1 s.d.C12, dan setiap modul membutuhkan 3 bulan. Urutan modul ditunjukkan
pada graf sebagai berikut, dimana arah panah: C1 C2 berarti pak dengklek harus lulus C1
sebelum mengikuti C2. Pak Dengklek harus lulus C4 dan C13 sebelum mengikuti C14. Beberapa
modul boleh diikuti secara paralel, pak Dengklek dapat melakukan sekaligus karena beliau sangat
pandai.

Jika setiap modul membutuhkan 3 bulan, berapa lama minimum pak Dengklek dapat
menyelesaikan kursusnya?
a. 9 b. 15 c. 21 d. 30 e. 42

14. (OSK 2018 No.24) Pak Dengklek mendapat sebuah mesin permainan dari pak Ganesh. Mesin
tersebut sangat menarik, terdiri dari 3 bola X,Y,Z dan 3 tombol A,B,C. Setiap tombol akan
mempunyai panah berarah. Misalnya Tombol B, mempunyai Sumber
adalah bola Y, dan Target adalah bola Z. Bola bisa berisi kelereng. Cara
kerja mesin tersebut adalah sebagai berikut :
 Jika sebuah tombol ditekan, Mesin akan mencek apakah ada
kelereng di bola Sumber.
 Jika iya, maka semua bola Sumber dari tombol akan kehilangan 1
kelereng dan semua bola Target akan bertambah 1 kelereng
Contoh: jika B ditekan maka bola Y akan berkurang 1 kelereng dan bola Z akan berisi 1 kelereng
Jika pak Dengklek menekan dengan urutan tertentu, maka mesin akan berada pada keadaan
stabil, yaitu jumlah kelereng tidak berubah, tombol apapun yang ditekan. Tentukan urutan
penekanan tombol, agar mesin menjadi stabil?
a. B - B - C - A - B – A b. B - C - B - C - B - A
c. B - C - B - B - A –A d. B - B - C - B - C - C
e. B - B - B - C - B - A

15. (OSK 2018 No.28) Pak Dengklek membuat suatu permainan


bagi para bebeknya, membawa mereka ke dalam satu goa yang
petanya sebagai berikut. Lingkaran adalah ruangan, dan arah
panah menunjukkan lorong untuk mencapai suatu ruangan dari
sebuah ruangan. Angka menunjukkan jumlah permata dalam
setiap ruangan. Hadiah akan diberikan kepada bebek, yang
berhasil mengumpulkan sejumlah permata yang paling banyak,
Berapa maksimum permata yang dapat dikumpulkan mulai dari
pintu masuk (kiri bawah) sampai keluar (Kanan atas)?
a. 26 b. 27 c. 28 d. 29 e. 30

Pra Olimpiade Komputer, 2020 - 55 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

16. (OSK 2019 No.19) Pak Dengklek sedang memimpin proyek


pembangunan jalan di negara A, yang berjumlah 13 kota dengan
rencana pembangunan 32 jalan. Suatu hari, Pak Dengklek harus
pergi menemui istrinya di Indonesia dan meninggalkan untuk
sementara waktu proyeknya. Presiden negara A ingin mengetahui
berapa jalan antar kota yang sudah selesai, untuk membayar
sementara Pak Dengklek, dengan peta sebagai berikut.
Dengan angka angka di dalam kota melambangkan banyaknya jalan
yang menghubungkan kota tersebut dengan kota lain, tentukanlah
berapa banyak jalan yang sudah jadi.
a. 11 b. 13 c. 16
d. 18 e. 26

Pra Olimpiade Komputer, 2020 - 56 - 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, 2020 - 57 - 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.
Tujuan Uji Algoritmika
 Menguji kemampuan peserta dalam memahami suatu algoritma tertentu
 Menguji kemampuan peserta dalam merancang algoritma untuk memecahkan
suatu masalah
 Untuk tingkat OSP, kemampuan yang diujikan berfokus pada tujuan yang
pertama
Kemampuan Yang Harus Dikuasai
 Untuk bisa menyusun algoritma, penting untuk bisa membaca dan memahami
algoritma
 Notasi algoritma:
 bahasa sehari-hari atau
 Notasi atau tatacara tertentu yang disebut pseudopascal (pascal yang
tercampur dengan bahasa sehari-hari)
Aspek-Aspek Yang Diujikan
1. Penggunaan variabel beserta sifat-sifatnya terkait dengan algoritma tertentu, tidak
terkait dengan bahasa pemrograman tertentu.
 Setiap variable memiliki: nama, tipe, ukuran, nilai
Tipe Ukuran Jangkauan

Byte 1 Byte ( 8 Bit) 0 ... 255

Shortint 1 Byte ( 8 Bit) -128... 127

Word 2 Byte (16 Bit) 0 ... 65535

Integer 2 Byte (16 Bit) -32768... 32767

Longint 4 Byte (32 Bit) -2147483648 … 2147483647

 Harga-harga variabel dari waktu ke waktu dapat berubah setiap langkah


proses yang berjalan
 Evaluasi nilai variabel untuk kendali proses
 Contoh:
integer a := 2; Nilai a saat ini adalah 3
a := a + 1;
if (a = 2 ) then
….

Pra Olimpiade Komputer, 2020 - 58 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

2. Operator Aritmatika dan Presedensi operator


 Variabel bersifat numerik, dioperasikan dengan operator matematika:
tambah, kurang, kali, bagi, pangkat, div, mod, dll
 Variabel bersifat BIT, dioperasikan dengan operator bit: not, and, or, xor,
shl , shr.
 Variabel bersifat Boolean, dioperasikan dengan operator boolean: not, and,
or, xor.
 Setiap operator memiliki presedensi:
 Yang harus diperhatikan adalah urutan pengevaluasian operator-
operator tersebut
 Operator dengan presedensi lebih tinggi harus dioperasikan terlebih
dahulu
 Urutan operator berdasarkan presedensi:
(a) Kurung ()
(b) Pangkat dan akar
(c) Perkalian, pembagian dan modulo
(d) Penjumlahan dan pengurangan

3. Aliran kendali proses:


 Aliran kendali proses ditujukan untuk mengendalikan alur sebuah proses
 Alur kendali utama:
 Block
 Percabangan dengan , dan
 Pengulangan (loop) dengan , , dan
 Pengendalian proses diatur melalui ekspresi logika yang harus dievaluasi
 Jika ekspresi logika bernilai benar, alur akan dipilih
 Jika ekspresi logika bernilai salah, alur tidak akan dipilih

4. Pemanggilan prosedur dan fungsi


5. Kendali proses dengan fungsi rekursif
6. Struktur Array (satu dimensi atau lebih)
7. Pemahaman permasalahan umum dengan penggunaan logika
8. Kompleksitas

Pra Olimpiade Komputer, 2020 - 59 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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,

6. Variabel berindeks atau ARRAY.


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

Pra Olimpiade Komputer, 2020 - 60 - Sekolah Menengah Atas


Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

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.


a.  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.
Pra Olimpiade Komputer, 2020 - 61 - Sekolah Menengah Atas
Catatan Pelatihan Olimpiade Komputer NARWEN, M.Si

d. ORD
e. CHR
f. UPCASE

Pra Olimpiade Komputer, 2020 - 62 - Sekolah Menengah Atas

Anda mungkin juga menyukai