0% menganggap dokumen ini bermanfaat (0 suara)
27 tayangan

Modul AMBIS Komputer

Diunggah oleh

Alamsyah Harahap
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
27 tayangan

Modul AMBIS Komputer

Diunggah oleh

Alamsyah Harahap
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 35

Informatika

MODUL RINGKAS
Disusun Oleh:

Salman Al Farisi
Daftar Isi
Perkenalan dengan bidang informatika ……………………………………………………………….1
Lomba-lomba di bidang informatika ………………………………………………………………….1
Bab I. Analitika dan Logika………………………………..………………………………………….2
Bab II. Teori Bilangan
Bab III. Aritmatika
Bab IV. Algoritma dan Pemrograman

1
Pengantar Seputar Bidang Informatika

Olimpiade bidang informatika adalah cabang olimpiade dimana


kompetisi tingkat internasionalnya adalah International Olympiad in
Informatics (IOI). IOI adalah ajang kompetisi pemrograman di tingkat
Internasional yang sudah berlangsung sejak 1985. Pada awalnya IOI
sendiri adalah lomba murni pemrograman semata berdasarkan masalah-
masalah yang sederhana. Para peserta dari berbagai negara secara
perseorangan berusaha menyelesaikan sejumlah masalah dalam waktu
yang singkat dengan membuat program penyelesaian masalah. Peserta
yang terpilih akan mewakili indonesia dan bergabung bersama Tim
Olimpiade Komputer Indonesia (TOKI).

Dalam perjalanannya problem-problem yang diberikan mengalami


peningkatan tingkat kesulitannya terutama sejak akhir tahun 90-an,
hingga pada saat ini pemrograman hanya satu aspek kecil semata di dalam
lomba ini. Dengan demikian, aspek utama yang diuji adalah kemampuan
menyelesaikan masalahnya sendiri.

Setelah melalui olimpiade informatika, selanjutnya peserta juga dapat


mengikuti berbagai macam perlombaan serupa pada jenjang perkuliahan
yang bersifat competitive programming, seperti ACM-ICPC
(pemrograman kompetitif beregu), Google Code Jam, dan berbagai
perlombaan nasional seperti Gemastik, Arkavidia ITB, dan Compfest UI.
Selain itu ada pula sistem competitive programming berbasis ranking
seperti TOKI learning center, Codeforces, Hackerrank, dan Topcoder.
TOKI juga membuka open contest, dimana semua kalangan dapat
mengikuti. Dengan adanya berbagai kompetisi tersebut, diharapkan
peserta dapat memperoleh pengalaman yang bisa diterapkan dari KSN.

2
I. Analitika dan Logika
I.1 Logika matematika
Dalam ilmu computer, logika berasal dari Bahasa Yunani yaitu Logos, yang artinya
kata, ucapan, atau alasan.
Beberapa istilah yang relevan:
• Premis, atau pernyataan
• Argumen, atau usaha mencari nilai kebenaran dari premis.
• Konklusi, atau kesimpulan.
• Logika matematika, atau logika dengan menggunakan simbol matematis.

Dikenal istilah proposisi sebagai sebuah pernyataan yang bernilai benar atau salah.

• 3 adalah bilangan genap


• Elon Musk adalah CEO Tesla
• 1+1=2

Proposisi dapat dihubungkan dengan operator logika. Misalkan p dan q adalah


proposisi. Maka operator logika yang dapat dikenakan untuk kedua proposisi
tersebut adalah:

1. Konjungsi (conjunction): p dan q, dinotasikan p Ù q,


2. Disjungsi (disjunction): p atau q, dinotasikan p Ú q,
3. Ingkaran (negation) dari p: tidak p, dinotasikan ~p.

Proposisi p dan q disebut proposisi atomic - Kombinasi p dengan q menghasilkan


proposisi majemuk (compound proposition).

Contoh 4: Diketahui proposisi-proposisi berikut:

p : Hari ini hujan


q : Murid-murid diliburkan dari sekolah

Maka proposisi majemuk:

3
p Ù q : Hari ini hujan dan murid-murid diliburkan dari sekolah
p Ú q : Hari ini hujan atau murid-murid diliburkan dari sekolah
~p : Tidak benar hari ini hujan (atau: Hari ini tidak hujan)

Dalam menentukan kebenaran operator logika, dapat digunakan tabel kebenaran.

Keterangan:

F = false (salah)
T = true (benar)

• Negasi:

• pÙq

• pÚq

4
Selain itu, terdapat pula hubungan "jika maka" (implikasi) dan "jika dan hanya
jika" (biimplikasi).

Bentuk proposisi bersyarat adalah “jika p, maka q”, dinotasikan dengan p ® q,


dan tabel kebenarannya yaitu

Proposisi p disebut hipotesis, antesenden, premis, atau kondisi. Proposisi q disebut


konklusi (atau konsekuen).

Terdapat tiga varian dari proposisi bersyarat p ® q, yaitu:


1. Konvers (kebalikan) : q ® p
2. Invers : ~ p ® ~ q
3. Kontraposisi : ~ q ® ~ p

Tabel kebenaran dari varian tersebut yaitu

5
Bentuk proposisi biimplikasi adalah “p jika dan hanya jika q”, dinotasikan dengan
p« q, dan memiliki tabel kebenaran sebagai berikut:

Hukum dari aljabar logika,

6
I.2 Hukum De Morgan

Hukum De Morgan menjelaskan bahwa dua pernyataan matematis dapat terkait


dengan kebalikannya.

Hukum De Morgan dapat dinyatakan dengan

Note: silakan baca pembuktian Hukum De Morgan disini.

7
I.3 Penarikan kesimpulan

Terdapat 3 kaidah penarikan kesimpulan,

1. Modus ponens

Misalkan terdapat 2 premis,


Premis 1: jika p maka q
Premis 2: p

Maka kesimpulan dari kedua premisnya adalah q

2. Modus tollens

Misalkan terdapat 2 premis,


Premis 1: jika p maka q
Premis 2: bukan q

Maka kesimpulan dari kedua premisnya adalah bukan p.

3. Silogisme

Silogisme adalaha pola berfikir yang terdiri dari dua pernyataan dan sebuah
kesimpulan. Misalkan,

Premis 1: jika p maka q


Premis 2: jika q maka r

Maka kesimpulan dari dua premisnya adalah jika p maka r.

Latihan soal bagian I

1. Tunjukkan bahwa p Ú ~(p Ú q) dan p Ú ~q keduanya ekivalen secara logika! (Hint:


bisa menggunakan hukum De Morgan).

2. Diberikan pernyataan “Tidak benar bahwa dia belajar Algoritma tetapi tidak
belajar Matematika”. Maka:
a. Nyatakan pernyataan di atas dalam notasi simbolik (ekspresi logika)

8
b. Berikan pernyataan yang ekivalen secara logika dengan pernyataan
tersebut (Hint: gunakan hukum De Morgan)

3. Buktikan hukum penyerapan: p Ù (p Ú q) « p !

4. Not ( not ( p or not q) or ( not p and not q)) or (p or not q) akan bernilai salah jika
nilai p dan q adalah?

5. Periksa kesahihan argumen berikut ini

p: Jika 3 lebih kecil dari 4, maka 3 adalah bilangan prima.


q: 3 tidak lebih kecil dari 4.

Kesimpulan: 3 bukanlah bilangan prima

5. 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:

Pak Dengklek pandai mengasah batu.


Pak Dengklek suka makan sayur-sayuran.
Pak Dengklek hidup di darat

9
Pernyataan yang pasti benar adalah:

• a. Tidak ada
• b. 1 dan 2
• c. 2
• d. 1 dan 3
• e. Semua Benar

(bank soal menyusul).

10
II. Teori Bilangan

II. 1. Bentuk Bilangan


Bilangan adalah suatu konsep matematika yang digunakan dalam pencacahan dan
pengukuran. Simbol ataupun lambang yang digunakan untuk mewakili suatu
bilangan disebut sebagai angka atau lambang bilangan. Dalam matematika, konsep
bilangan selama bertahun-tahun lamanya telah diperluas untuk meliputi bilangan
nol, bilangan negatif, bilangan rasional, bilangan irasional, dan bilangan kompleks.

Sebuah bilangan dapat berupa anggota himpunan sebagai berikut,

• Bilangan natural (N), dimana disebut juga bilangan positif atau bilangan
cacah. Anggota himpunan ini yaitu {1,2,3,4,...}

• Bilangan bulat (W), dimana adalah himpunan bilangan natural ditambah nol.
Anggota himpunan ini yaitu {0,1,2,3,4,...}

• Integer (Z) atau semua bilangan bulat dan nilai positif dan negatif dari
bilangan natural. Anggota himpuann ini yaitu {...-3,-2,-1,0,1,2,3,...}

• Bilangan rasional (Q) atau pecahan dimana pembagi dan penyebutnya adalah
integer. Contoh dari bilangan ini adalah 1/2, 2/3, -3/4. Nilai pembagi bisa nol,
namun penyebut tidak bisa nol.

• Bilangan real (R), yang merupakan semua bilangan yang dapat dituliskan ke
dalam desimal, termasuk pula bilangan irasional. Contohnya adalah 0.5, 3.2,
4.94443, π, √2.
Bilangan N, W, Z, dan Q dapat dikategorikan sebagai bilangan diskrit, namun R
adalah bilangan kontinu karena tidak dapat dipisahkan secara kuantitas.

Teorema 1. Sifat habis dibagi pada bilangan bulat, yaitu jika diberikan bilangan
bulat a dan b, dengan b > 0 maka selalu terdapat dengan tunggal bilangan bulat q
dan r yang memenuhi

11
Contoh 1. Bila a = 9 dan b = 4 maka diperoleh 9 = 2 × 4 + 1, jadi diperoleh q = 2
dan r = 1.

Bila a = −9 dan b = 4 maka −9 = −3 × 4 + 3, jadi diperoleh q = −3 dan r = 3.

Contoh 2. Diberikan a = 12 dan b = 5. Kita mempunyai beberapa representasi


sebagai berikut
12 = 5 × 2 + 2
=5×1+7
= 5 × 3 + (−3).
Ketiga representasi ini semuanya benar, tetapi hanya yang pertama memenuhi
kondisi karena disyaratkan 0 ≤ r < b.

Note: pembuktian lebih lanjut dapat dilihat disini

Teorema 2. Jika diberikan bilangan bulat a dan b, dengan b 6= 0 maka selalu


terdapat dengan tunggal bilangan bulat q dan r yang memenuhi

Note: pembuktian lebih lanjut dapat dilihat disini

II.2 Pembagi atau Faktor Persekutuan Terbesar

Definisi 1. Sebuah bilangan bulat b dikatakan terbagi atau habis dibagi oleh bilangan
bulat a tidak sama dengan 0 jika terdapat bilangan bulat c sehingga b = ac, ditulis a
| b. Notasi a ∤ b digunakan untuk menyatakan b tidak habis terbagi oleh a.

Teorema 3. Untuk setiap a, b, c ∈ Z berlaku pernyataan berikut

1. a |1 bila hanya bila a = ±1


2. Jika a|b dan c|d maka ac|bd
3. Jika a|b dan b|c maka a|c
4. a|b dan b|a bila hanya bila a = ±b
5. Bila a|b dan b 6= 0 maka |a| < |b|
6. Bila a|b dan a|c maka a|(bx + cy) untuk sebarang bilangan bulat x dan y

12
Note: pembuktian lebih lanjut dapat dilihat disini

Definisi 2. Misalkan a dan b dua bilangan bulat di mana minimal salah satunya tidak
nol. Faktor persekutuan terbesar (FPB) atau greatest common divisor (gcd) dari a
dan b adalah bilangan bulat d yang memenuhi

1. d | a dan d | b
2. Jika c | a dan c | b maka c ≤ d.

Pada definisi ini, kondisi 1 menyatakan bahwa d adalah faktor persekutuan dan
kondisi 2 menyatakan bahwa d adalah faktor persekutuan terkecil di antara semua
faktor persekutuan yang ada. Selanjutnya jika d faktor persekutuan terbesar dari a
dan b akan ditulis

Contoh 3. Faktor positif dari 12 adalah 1, 2, 3, 4, 6, 12, sedangkan faktor dari 30


adalah 1, 2, 3, 5, 6, 10, 15, 30. Jadi faktor persekutuaannya adalah 1, 2, 3, 6. Karena
itu disimpulkan gcd(12, 30) = 6.

Berdasarkan definisi FPB sesungguhnya kita cukup mengasumsikan bahwa a dan b


positif, sebab berlaku

Teorema 4. Jika a dan b dua bilangan bulat yang keduanya taknol maka terdapat
bilangan bulat x dan y sehingga

Persamaan ini disebut dengan identitas Bezout.

Note: pembuktian lebih lanjut dapat dilihat disini

Definisi 3. Dua bilangan a dan b (keduanya tidak nol) dikatakan prima relatif jika
gcd(a, b) = 1.
Pasangan bilangan (3, 5),(5, −9) dan (−27, −35) adalah beberapa contoh pasangan
bilangan prima relatif.

13
Teorema 5. Bilangan a dan b prima relatif bila hanya bila terdapat bulat x, y
sehingga ax + by = 1.

Note: pembuktian lebih lanjut dapat dilihat disini

akibatnya, Bila d = gcd(a, b), maka

Teorema 6. Diketahui gcd (a, b) = 1. Maka berlaku pernyataan berikut,

1. Jika a | c dan b | c maka ab | c.


2. Jika a | bc maka a | c.

Note: pembuktian lebih lanjut dapat dilihat disini

II.3 Kelipatan persekutuan terkecil

Definisi 4. Misalkan a dan b dua bilangan bulat tidak nol. Kelipatan persekutuan
terkecil (KPK) atau least common divisor (lcm) dari a dan b adalah bilangan bulat
positif m yang memenuhi

1. a | m dan b | m
2. Bila ada c > 0 dengan a | c dan b | c maka m ≤ c.

Kondisi 1 menyatakan bahwa m adalah kelipatan bersama atau persekutuan dari a


dan b. Kondisi 2 menyatakan bahwa m adalah kelipatan persekutan terkecil diantara
semua kelipatan persekutuan yang ada. Selanjutnya, m adalah KPK dari a dan b
akan ditulis

Sebagai contoh kelipatan persekutuan dari −12 dan 30 adalah 60, 120, 180, . . .
sehingga gcd(12, 30) = 60.

Teorema 7. Untuk dua bilangan positif a dan b berlaku

14
Akibatnya, untuk setiap pasangan bilangan bulat a dan b berlaku lcm(a, b) = ab bila
hanya bila gcd(a, b) = 1.

Note: pembuktian lebih lanjut dapat dilihat disini

Teorema 8. Untuk beberapa bilangan a1,...,ak berlaku

Note: pembuktian lebih lanjut dapat dilihat disini

II. 4 Operasi Modulus

Modulus atau modulo artinya adalah operasi yang menghasilkan sisa pembagian.

berikut adalah aturan distributif modulus,

Sedangkan, modulus juga memiliki sifat kongruensi,

15
Latihan

1. Tentukan hasil bagi dan sisanya jika 1, -2, 61 dan -59 dibagi oleh -7.

2. Tentukan KPK dari 3054 dan 12378

3. Ada berapa bilangan bulat prima atau genap antara 1 sampai 100 (inklusif) yang
tidak dapat dibagi 5?

4. Ada berapa bilangan bulat antara 1 sampai dengan 2018 yang tidak habis dibagi
2 dan tidak habis dibagi 5?

5. Jika FPB dari a dan 2008 = 251. Jika a < 4036, maka nilai terbesar untuk a
adalah

6. 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)?

(bank soal menyusul).

16
III. Aritmatika

III.1 Baris dan deret

III.1.1 Baris dan deret aritmatika


Barisan aritmatika adalah baris yang nilai setiap sukunya didapatkan dari suku
sebelumnya melalui penjumlahan atau pengurangan dengan suatu bilangan.

Untuk mengetahui nilai suku ke-n dari suatu barisan arimatika dapat dihitung
dengan rumus berikut.

Selisih atau beda antara nilai suku-suku yang berdekatan selalu sama yaitu b. Nilai
suku pertama dilambangkan dengan a.

Secara singkat, penjumlahan dari suku-suku pertama sampai suku ke-n barisan
aritmatika dapat dihitung dengan cara berikut.

Note: penurunan ada disini

III.1.2 Baris dan deret geometri


Barisan geometri adalah baris yang nilai setiap sukunya didapatkan dari suku
sebelumnya melalui perkalian dengan suatu bilangan. Untuk mengetahui nilai suku
ke-n dari suatu barisan geometri dapat dihitung dengan rumus berikut.

Perbandingan atau rasio antara nilai suku-suku yang berdekatan selalu sama yaitu r.
Nilai suku pertama dilambangkan dengan a.

17
Deret geometri adalah penjumlahan suku-suku dari barisan geometri.

Penjumlahan dari suku-suku pertama sampai suku ke-n barisan geometri dapat
dihitung dengan rumus berikut.

Note: penurunan ada disini

III.2.3 Deret Fibonacci


Fibonacci adalah barisan yang didefinisikan secara rekursif sebagai berikut.

Penjelasan: barisan ini berawal dari 0 dan 1, kemudian angka berikutnya didapat
dengan cara menambahkan kedua bilangan yang berurutan sebelumnya. Dengan
aturan ini, maka barisan bilangan Fibonaccci yang pertama adalah:

0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946

Barisan bilangan Fibonacci dapat dinyatakan sebagai berikut:

Perbandingan antara Fn+1 dengan Fn hampir selalu sama untuk sebarang nilai n dan
mulai nilai n tertentu, perbandingan ini nilainya tetap. Perbandingan itu disebut rasio
emas yang nilainya mendekati 1,618.

18
The golden spiral. Gambar: onlinemathlearning.com

Note: penurunan mendalam mengenai baris dan deret Fibonacci tersedia disini

III.3 Prinsip Inklusi Eksklusi

Penggabungan dua buah himpuann menghasilkan himpunan baru yang elemennya


berasal dari himpunan a dan b.

Gabungan dari himpunan a dan b dinyatakan dengan a È b. Gabungan himpunan


berarti gabungan keseluruhan elemen yang ada dalam a dan b.

Misalkan,

P = {1,3,4,5,6,7}
Q = {2,3,4,6,7,8}

Maka

P È Q = {1,2,3,4,5,6,7,8}

19
Irisan dari himpunan a dan b dinyatakan dengan a Ç b. Irisan himpunan berarti
subhimpunan yang berisi elemen yang terdapat di kedua keanggotaan himpunan a
dan b.
Misalkan,

P = {1,3,4,5,6,7}
Q = {2,3,4,6,7,8}

Maka

P Ç Q = {3,4,6,7}

Prinsip inklusi ekslusi juga dapat diterapkan di berbagai aplikasi, seperti misalnya
banyaknya bilangan dengan diberikan syarat tertentu.

III.4 Peluang dan Kombinatorika

Teori peluang merupakan bagian penting dalam matematika yang mempelajari


ukuran kemungkinan terjadinya suatu peristiwa dengan menganalisisnya secara
numerik, sedangkan kombinatorika mempelajari tentang banyaknya cara menyusun
sekumpulan objek.

III.4.1. Faktorial

Dalam matematika, Faktorial dari bilangan bulat positif dari n yang dilambangkan
dengan n!, adalah produk dari semua bilangan bulat positif yang kurang dari atau
sama dengan n:

atau

Nilai 0! adalah 1, menurut konvensi untuk produk kosong.

III.4.2. Kombinasi

20
Kombinasi adalah menggabungkan beberapa objek dari suatu grup tanpa
memperhatikan urutan. Di dalam kombinasi, urutan tidak diperhatikan.

{1,2,3} adalah sama dengan {2,3,1} dan {3,1,2}.

Contoh: Seorang anak hanya diperbolehkan mengambil dua buah amplop dari tiga
buah amplop yang disediakan yaitu amplop A, amplop B dan amplop C. Tentukan
ada berapa banyak kombinasi untuk mengambil dua buah amplop dari tiga buah
amplop yang disediakan?

Solusi: Ada 3 kombinasi yaitu; A-B, A-C dan B-C.

Kombinasi Berulang

Jika urutan tidak diperhatikan dan objek bisa dipilih lebih dari sekali, maka jumlah
kombinasi yang ada adalah:

Di mana n adalah jumlah objek yang bisa dipilih dan r adalah jumlah yang harus
dipilih.

Sebagai contoh jika kamu pergi ke sebuah toko donat. Toko donat itu menyediakan
10 jenis donat berbeda. Kamu ingin membeli tiga donat. Maka kombinasi yang
dihasilkan adalah

(10+3-1)!/3!(10-1)! = 220 kombinasi.

Kombinasi Tidak Berulang

Ketika urutan tidak diperhatikan akan tetapi setiap objek yang ada hanya bisa
dipilih sekali maka jumlah kombinasi yang ada adalah:

21
Di mana n adalah jumlah objek yang bisa dipilih dan r adalah jumlah yang harus
dipilih.

Sebagai contoh, kamu mempunyai 5 pensil warna dengan warna yang berbeda yaitu;
merah, kuning, hijau, biru dan ungu. Kamu ingin membawanya ke sekolah. Tapi
kamu hanya boleh membawa dua pensil warna. Ada berapa banyak cara untuk
mengkombinasikan pensil warna yang ada?
Dengan menggunakan rumus di atas maka ada

5!/(5-2)!(2)! = 10 kombinasi.

III.4.3. Permutasi

permutasi adalah menggabungkan beberapa objek dari suatu grup dengan


memperhatikan urutan. Di dalam permutasi, urutan diperhatikan.

{1,2,3} tidak sama dengan {2,3,1} dan {3,1,2}

Contoh: Ada sebuah kotak berisi 3 bola masing-masing berwarna merah, hijau dan
biru. Jika seorang anak ditugaskan untuk mengambil 2 bola secara acak dan urutan
pengambilan diperhatikan, ada berapa permutasi yang terjadi?

Solusi: Ada 6 permutasi yaitu; M-H, M-B, H-M, H-B, B-M dan B-H.

Salah satu aplikasi kombinasi dan permutasi adalah digunakan untuk mencari
probabilitas suatu kejadian.

Permutasi Berulang

Jika urutan diperhatikan dan suatu objek dapat dipilih lebih dari sekali maka jumlah
permutasinya adalah:

di mana n adalah banyaknya objek yang dapat dipilih dan r adalah jumlah yang harus
dipilih.

22
Sebagai contoh, jika kamu memiliki huruf A, B, C, dan D dan kamu ingin mencari
tahu ada berapa cara untuk menyusunnya dalam suatu grup yang berisi tiga angka
maka kamu akan menemukan bahwa ada 43 atau 64 cara untuk menyusunnya.
Beberapa cara untuk menyusunnya adalah: AAA, BBB, CCC, DDD, ABB, CBB,
DBB, dst.

Permutasi Tidak Berulang


Jika urutan diperhatikan dan setiap objek yang tersedia hanya bisa dipilih atau
dipakai sekali maka jumlah permutasi yang ada adalah:

di mana n adalah jumlah objek yang dapat kamu pilih, k adalah jumlah yang harus
dipilih dan ! adalah simbol faktorial.

Sebagai contoh, ada sebuah pemungutan suara dalam suatu organisasi. Kandidat
yang bisa dipilih ada lima orang. Yang mendapat suara terbanyak akan diangkat
menjadi ketua organisasi tersebut. Yang mendapat suara kedua terbanyak akan
diangkat menjadi wakil ketua. Dan yang mendapat suara ketiga terbanyak akan
menjadi sekretaris. Ada berapa banyak hasil pemungutan suara yang mungkin
terjadi?

5!/(5-3)! = 60.

Latihan

1. Diberikan suatu bilangan bulat m yang memenuhi 1009 < m < 2018. Diberikan
pula himpunan S = {1, 2, 3, … ,m}. Berapakah nilai m terkecil agar selalu terdapat
paling sedikit satu pasang anggota himpunan S yang jumlahnya adalah 2018?

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.

23
3. Berapa banyak langkah yang perlu dilakukan untuk memecah sebuah chocolate
bar yang berukuran 20 x 21 menjadi potongan 1x1? Satu langkah yang dimaksud
adalah memotong secara horizontal atau vertikal tepat sekali, dan tidak boleh
memotong lebih dari satu potong coklat sekaligus dengan ditumpuk.

4. Dua orang sahabat, Pak Dengklek dan Pak Ganesh memiliki sejumlah kucing
kesayangan yang tak terhingga 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 ?

5. 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?

(bank soal menyusul)

IV. Algoritma

IV.1. Pseudopascal

Variabel: pendeklarasian suatu variabel dalam pemrograman biasanya dapat berupa


deklarasi nilai maupun tipe variabel. Dalam pseudopascal, biasanya dimulai dengan
deklarasi var

var data: array[1..10] of integer = (8, 12, 16, 20, 12, 14,
16, 20, 20, 22);

Pada contoh ini terdapat variabel data yang berisi array dengan 10 elemen, dimana
masing-masing elemen memiliki tipe integer.

Selain itu, contoh lainnya misalnya

24
a, b: integer
yang berarti a dan b memiliki tipe data integer.

x := 80;
x memiliki nilai 80.

Blok program

Dalam pseudopascal, blok program umumnya dimulai dengan begin dan diakhiri
dengan end.

Contohnya yaitu

begin
j := 1;
kancil := 0;
while(j <= i) do
begin
if i mod j = 0 then inc(kancil);
inc(j);
end;
if kancil = 2 then inc(panda);
end;

maka program utama yang akan dieksekusi adalah bagian tersebut

Fungsi

Fungsi adalah bagian dalam program yang dibuat terpisah dari program utama untuk
struktur yang lebih baik, meningkatkan keterbacaan, modularitas, dan dimana
umumnya pemrograman berorientasi objek akan digunakan dalam pekerjaan.
Fungsi ini dapat dipanggil di program utama dengan mengalirkan variabel yang
diminta.

Contoh fungsi yaitu

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

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

IV.2. Kondisional

Penggunaan logika dalam program pseudopascal ini dinyatakan dalam operator


kondisional dan perulangan (looping).

Operator kondisional dapat berupa if (jika) then (maka) , else if (selain itu jika) then
(maka), dan else (selain itu).

Contohnya,

if x > 10 then bebek:= 0

else if x > 20 then bebek := 3

else bebek := 2;

Maksud dari kondisional ini adalah jika x lebih dari 10 maka nilai variabel bebek
adalah 0. Jika nilai x lebih dari 20, maka variabel bebek bernilai 3. Jika kedua syarat
tersebut tidak terpenuhi, maka variabel bebek bernilai 2.

Hal ini berbeda dengan if saja, misalnya


if x > 10 then bebek:= 0

if x > 20 then bebek := 3

if x <= 10 then bebek := 2;

Karena pada bentuk ini variabel x akan dicek untuk masing-masing kondisi dan
tidak dilempar ke kondisi selain itu.

26
Kita misalkan nilai x = 30, maka pada skenario pertama hanya akan menyimpan
nilai 3, namun pada skenario kedua maka akan menyimpan nilai 0 sebelum
menyimpan 3.

IV.3. Perulangan (looping)

Terdapat dua jenis perulangan, yaitu for dan while.

Pada operasi for, maka perulangan akan terus berjalan selama kondisi yang
diberikan di awal terpenuhi, misalnya

for i := 2 to 100 do
begin
print(i);
end;

Dimana akan mencetak nilai variabel i dari 2 sampai 100.

Persoalan yang sama juga dapat diselesaikan dengan operasi while,

i := 2

while i <= 100 do


begin
print(i);
i ++;
end;

i++ menggambarkan operasi mengupdate nilai i dengan i+1.

IV. 4. Pengurutan (sorting)

Sorting adalah sesuatu proses aplikasi dimana yang awalnya acak -acakkan lalu
diurutkan dalam sebuah sekumpulan objek menurut urutan atau susunan sesuai
dengan kebutuhan agar ketata rapi.

Sorting

27
Pengertian Sorting
Sorting adalah sesuatu proses aplikasi dimana yang awalnya acak -acakkan lalu
diurutkan dalam sebuah sekumpulan objek menurut urutan atau susunan sesuai
dengan kebutuhan agar ketata rapi. Tujuan dari penggunaan sorting adalah
memudahkan seseorang dalam pencarian, menyusun data yang awalnya acak –
acakkan menjadi keurut, dan menyeselaikan masalah yang kompleks seperti
schedulling, pengolahan basis data dan lain – lain

Penyusunan sorting ada 2 yaitu secara ascending dan descending. Ascending adalah
pengurutan dari kecil ke yang lebih besar sedangkan descending adalah pengurutan
dari besar ke yang lebih kecil. Contohnya diberikan angka acak yaitu : 10 , 34 , 67,
2 , 8 , 54 , 114, 88 lalu di sorting secara ascending jadi hasilnya menjadi 2, 8, 10,
34, 54, 67, 88, 114 .

IV.4.1. Bubble Sort

Adalah pengurutan yang dilakukan dengan membandingkan apakah data sebelum


dengan sesudahnya mana yang lebih besar atau kecil lalu ditukarkan secara terus
menerus sampai data tersebut kesusun menurut perintah yang dilakukan apakah
secara ascending atau descending.

Proses pengurutan menggunakan Bubble Sort

• Pertama membandingkan data ke – i dengan data ke (i+1).Jika tidak sesuai


dengan kententuan urutan apakah ascending atau descending maka tukar.
• Terus bandingkan data sampai ke data yang terakhir .
• Proses akan terhenti bila membandingkan data sampai data yang terakhir.

IV.4.2 Selection Sort

Adalah pengurutan yang dilakukan dengan cara mencari nilai maksimum atau
minimum yang dimulai dari data posisi 0 hingga ke posisi N-1. Ada 2 cara
pengurutan di dalam selection sort yaitu seleksi maksimum dan minimum .Seleksi
maksimum adalah memilih elemen maksimum sebagai pengurutan sedangkan
seleksi minimum adalah memilih elemen minimum sebagai pengurutan.

28
• Mencari data terkecil dalam interval j=0 sampai j=N-1.
• Jika pada posisi posditemukan data yang terkecil, tukarkan data diposisi pos
dengan data di posisi i jika k. dan ulangi sampai data sudah keurut.
IV. 4. 3 Insertion Sort

Adalah pengurutan yang dilakukan dengan cara menyisipkan elemen pada posisi
yang sudah ditentukan atau tepat .

Macam – macam insertion sort

Langsung
Ilustrasi dari langkah-langkah pengurutan dengan algoritma penyisipan langsung
dapat dilihat pada tabel berikut

Dengan Biner
Adalah pengurutan yang lebih cepat dengan cara data yang dibagi 2 dari bagian data
posisi 0 sampai dengan i – 1 . Apabila data pada posisi ke i berada pada jangkauan

29
kiri maka proses perbandingan dilakukan hanya pada bagian kiri dan menggeser
posisi sampai i.

IV.4.4 Radix Sort

Radix Sort merupakan salah satu algoritma Non-Comparasion Sort (pengurutan


tanpa pembandingan). Proses yang dilakukan dalam metode ini adalah
mengklasifikasikan/menyelesaikan data sesuai dengan kategori terurut yang
tertentu, dan tiap kategori dilakukan pengklasifikasian lagi, dan seterusnya sesuai
kebutuhan, kemudian subkategori-kategori atau bagian-bagian dari kategori
tersebut digabungkan kembali.

IV.4.5 Shell Sort

Perbaikan terhadap pengurutan sisip. Pertama-tama adalah menentukan jarak


mula-mula dari data yang akan dibandingkan, yaitu N / 2. Data pertama
dibandingkan dengan data dengan jarak N / 2. Apabila data pertama lebih besar
dari data ke N / 2 tersebut maka kedua data tersebut ditukar. Kemudian data kedua
dibandingkan dengan jarak yang sama yaitu N / 2. Demikian seterusnya sampai
seluruh data dibandingkan sehingga semua data ke-j selalu lebih kecil daripada
data ke-(j + N / 2).

Pada proses berikutnya, digunakan jarak (N / 2) / 2 atau N / 4. Data pertama


dibandingkan dengan data dengan jarak N / 4. Apabila data pertama lebih besar
dari data ke N / 4 tersebut maka kedua data tersebut ditukar. Kemudian data kedua
dibandingkan dengan jarak yang sama yaitu N / 4. Demikianlah seterusnya hingga
seluruh data dibandingkan sehingga semua data ke-j lebih kecil daripada data ke-(j
+ N / 4).

Pada proses berikutnya, digunakan jarak (N / 4) / 2 atau N / 8. Demikian


seterusnya sampai jarak yang digunakan adalah 1.

Latihan
1. Apakah keluaran program dibawah?
var i, ans, x: integer;
begin
ans := 0;
x := 80;

30
for i := 1 to x do
begin
if i mod 3 = 0 then inc(ans);
end;
writeln(ans);
end.

2. Apakah keluaran program dibawah?


var merpati: integer;
begin
merpati := 2018;
if merpati mod 100 > 20 then
merpati := merpati + 1
else
merpati := merpati + 2;
writeln(merpati + merpati);
end.

3. Pak Dengklek sering perlu untuk menemukan sebuah nama bebek dari daftar
nama bebeknya. Ia menemukan dengan membaca satu per satu dari kiri ke kanan,
dan jika ia menemukan nama tersebut dan bukan yang pertama, maka ia akan
menukar dengan nama di kirinya. Misalnya daftar nama bebek pak Dengklek
adalah:

Kwik, Kwek, Kwak, Kwok, Kwuk, Kweik, Kwaok

Dan diminta untuk menemukan Kwak, ia membandingkan Kwak dengan Kwik,


Kwek dengan Kwak kemudian mengubah list menjadi

Kwik, Kwak, Kwek,Kwok, Kwuk, Kweik, Kwaok

Jika ia diminta menemukan Kwaok, dia membandingkan Kwaok ke setiap nama


dalam daftar, dan mengubah list menjadi:

Kwik, Kwak,Kwek, Kwok,Kwuk, Kwaok, Kweik

Pada dua kali pencarian tersebut, Pak Dengklek melakukan 3 + 7 = 10


pembandingan.

31
Jika Pak Dengklek mulai dengan daftar berisi 10 nama yang berbeda, dan diminta
untuk menemukan setiap nama persis 1 kali, berapa banyaknya pembandingan
maksimal yang harus dilakukannya?

4. Apakah keluaran program dibawah?

var arr: array[1..7] of integer = (3, 5, 2, 1, 1, 7, 2);


cnt: array[1..10] of integer;
i, j: integer;
begin
for i := 1 to 7 do
inc(cnt[arr[i]]);
for i := 1 to 10 do
for j := 1 to cnt[i] do
write(i);
end.

5. Berapakah nilai akhir n, jika nilai n pada awalnya adalah 62792912?


var
n, temp : longint;
begin
readln(n);
while n >= 10 do
temp := 1;
while n > 0 do
begin
temp := temp * (n mod 10);
n := n div 10;
end;
n := temp;
end.

(bank soal menyusul)

Daftar Pustaka

32
1. Tim Pustaka Cerdas, 2019. Siap jadi juara OSN komputer. Yogyakarta: Pustaka
Baru Press.

2. Fahrurozi, Achmad. Logika Proposisi. Universitas Gunadarma. Diakses di


http://achmad_fahrurozi.staff.gunadarma.ac.id/Downloads/files/67675/CAPTURE
+5+-+Logika+Proposisi.pdf

3. Kharti, Irene Swastiwi Viandari. 2018. Belajar Menarik Kesimpulan dengan


Logika Matematika | Matematika Kelas 11. Ruang Guru. Diakses di
https://blog.ruangguru.com/belajar-menarik-kesimpulan-dengan-logika-
matematika

4. Octavia, Bella. 2020. Barisan dan Deret Aritmatika: Rumus, Contoh Soal dan
Pembahasan Lengkap. Zenius. Diakses di
https://www.zenius.net/blog/23365/materi-soal-barisan-deret-aritmatika

5. Octavia, Bella. 2020. Barisan dan Deret Geometri: Rumus, Contoh Soal, dan
Pembahasan Lengkap. Zenius. Diakses di
https://www.zenius.net/blog/23355/contoh-soal-barisan-dan-deret-geometri

6. Sukardi, 2020. Materi, Soal, dan Pembahasan – Kongruensi Modulo.


Mathcyber1997.com. Diakses di https://mathcyber1997.com/materi-soal-dan-
pembahasan-kongruensi-modulo/

7. Bilangan Fibonacci. Wikipedia. Diakses di


https://id.wikipedia.org/wiki/Bilangan_Fibonacci

8. Derivation – Sum of Arithmetic Series. Hanlonmath.com. Diakses di


http://www.hanlonmath.com/pdfFiles/resource_1109.pdf

9. Hernadi, Julan. Pengantar Teori Bilangan. Diakses di


https://dosen.ikipsiliwangi.ac.id/wp-
content/uploads/sites/6/2018/03/teori_bilangan_bab1.pdf

10. Neill, Alex. 2016. Types of numbers. Assesment Resource Banks. Diakses di
https://arbs.nzcer.org.nz/types-numbers

33
11. Bilangan. Wikipedia. Diakses di https://id.wikipedia.org/wiki/Bilangan

12. TOKI. Kisi-Kisi dan Materi Uji Olimpiade Sains BIDANG


INFORMATIKA/KOMPUTER. Diakses di https://toki.id/download/kisi-kisi-dan-
materi-uji-olimpiade-sains-bidang-informatika-komputer/

13. Sorting (Pengurutan). Catatan Algoritma. Diakses di


https://catatananalgo.wordpress.com/2016/10/02/algoritma-sorting-pengurutan/

14. Truth Tables, Tautologies, and Logical Equivalences. Diakses di


https://sites.millersville.edu/bikenaga/math-proof/truth-tables/truth-
tables.html#:~:text=A%20truth%20table%20shows%20how,for%20the%20five%
20logical%20connectives.

34

Anda mungkin juga menyukai