My first Magazine pemrograman-kompetitif-dasar | Page 22

2 Matematika Diskret Dasar Anda perlu berhati-hati pada kasus pembagian, karena aritmetika modular tidak serta-merta bekerja. Diketahui sifat berikut: a mod m 6 = b  12 mod 6 6 = 4  a mod m b mod m  mod m. Contoh: Pada aritmetika modular, a b 12 mod 6 4 mod 6  mod 6. mod m biasa ditulis sebagai: a × b −1  mod m dengan b −1 adalah modular multiplicative inverse dari b. Perhitungan Modular multiplicative inverse tidak dibahas pada buku ini. Namun, jika Anda penasaran, modular multiplicative inverse dapat dihitung menggunakan algoritma extended euclid 5 atau memanfaatkan teorema Euler. 6 2.2 Bilangan Prima Bilangan prima merupakan bilangan bulat positif yang tepat memiliki dua faktor (pembagi), yaitu 1 dan dirinya sendiri. Beberapa contoh bilangan prima adalah 2, 3, 5, 13, 97. Lawan dari bilangan prima adalah bilangan komposit. Bilangan komposit adalah bilangan yang memiliki lebih dari dua faktor. Contoh dari bilangan komposit adalah 6, 14, 20, 25. 2.2.1 Uji Keprimaan (Primality Testing ) Aktivitas untuk mengecek apakah suatu bilangan bulat N adalah bilangan prima disebut dengan uji keprimaan (primality testing ). Solusi yang mudah untuk mengecek apakah N meru- pakan bilangan prima dapat dilakukan dengan mengecek apakah ada bilangan selain 1 dan N yang habis membagi N. Kita dapat melakukan iterasi dari 2 hingga N − 1 untuk mengetahui apakah ada bilangan selain 1 dan N yang habis membagi N. Kompleksitas waktu untuk solusi ini adalah O(N). Solusi ini dapat dilihat pada Algoritma 3. Algoritma 3 Uji keprimaan dengan melakukan pengecekan dari 2 sampai N-1. 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12 function IS P RIME N AIVE (N) if N ≤ 1 then return f alse end if for i ← 2, N − 1 do if N mod i = 0 then return f alse end if end for return true end function