7 3. r r
4. i 0 5. while q
i
0 do
6. q
i+1
q c n
7. r
i+1
q c – q
i+1
c n 8. i i + 1
9. r r + r
i
10. end while 11. while r p do
12. r r – p 13. end while
e. Invers Misalkan a
∈ , maka g
∈
yang membuat
g
.
mod p = 1
atau bisa ditulis dengan g
.
≡ 1mod p disebut dengan invers a dalam
atau notasinya g =
. Ada dua macam algoritme invers dalam
yang diimplementasikan dalam penelitian ini, yaitu algoritme invers Extended
Euclidean dan algoritme Binary Invers.
Algoritme Extended Euclidean
Input : a
∈ , a 0 Output :
g = ∈
1. u a, v p 2.
1, 0
3. while u 1 do 4. quo v u
5. rem v mod u 6. x
=
− x
1
.quo 7. v u
8. u rem 9.
x
1
10. x
11. end while 12. g
mod p
Algoritme Binary Invers
Input : a
∈ , a 0 Output :
g = ∈
1. u a, v p 2.
1, 0
3. while u ≠ 1 dan v ≠ 1 do
4. while u genap do 5. u u 1
6. if
genap maka 7.
1
8. else 9.
+
1
10. end if 11. end while
12. while v genap do 13. v v 1
14. if
genap maka 15.
1
16. else 17.
+
1
18. end if 19. end while
20. if u v maka 21. –
22.
–
23. else 24.
– 25.
–
26. end if 27. end while
28. if u == 1 maka 29. g
mod p
30. else 31. g
mod p
32. end if Aritmetika pada
Operasi-operasi aritmetika pada yang
diimplementasikan adalah :
a. Penjumlahan
Fungsi ini melakukan proses penjumlahan dua anggota
. Rumusnya adalah sebagai berikut
misalkan
= dan
=
anggota , maka
+ =
=
dengan = + mod p. Algoritmenya adalah sebagai berikut
Input : a dan b dengan m koefisien
Output : a + b = c
∈ 1. for i 0 to m – 1 do
2. = + 3. if p maka
4. = – 5. end if
6. end for
Dengan melihat algoritme tersebut, dapat diketahui bahwa algoritme penjumlahan untuk
dilakukan dengan
menjumlahkan koefisien-koefisien
representasi polinomial
yang bersesuaian. Kemudian jika diperlukan,
8 hasil tiap penjumlahan direduksi dengan cara
mengurangkannya dengan p.
b. Pengurangan
Fungsi ini melakukan proses pengurangan dua anggota
. Rumus dan algoritmenya hampir sama dengan penjumlahan sebagai
berikut misalkan
= dan
=
anggota , maka
−
= =
dengan = - mod p. Algoritmenya adalah sebagai berikut
Input : a dan b dengan m koefisien
Output : a - b = c
∈ 1. for i 0 to m – 1 do
2. if maka 3. = –
4. else 5. =
−
+
6. end if 7. end for
Dengan melihat algoritme tersebut, dapat diketahui bahwa algoritme pengurangan untuk
dilakukan dengan
mengurangkan koefisien-koefisien
representasi polinomial
yang bersesuaian. Kemudian jika diperlukan a
i
b
i
, p dikurangkan terlebih dahulu dengan b
i
kemudian baru ditambah dengan a
i
. c. Perkalian
Dalam penelitian ini, diimplementasikan dua algoritme perkalian. Kedua algoritme tersebut
adalah algoritme Schoolbook dan algoritme Karatsuba.
Algoritme perkalian Schoolbook
Algoritme Schoolbook
adalah metode
perkalian yang sudah biasa kita pakai sejak sekolah dasar. Rumusnya :
= =
≡
dengan =
mod .
Contoh az =
+ +
bz = +
+
=
≡ =
+
+
+
+ +
+
+
+ Algoritme perkalian Schoolbook adalah sebagai
berikut
Input : a dan b dengan m koefisien
Output : ab = c
1. for i 0 to 2m – 2 do 2. 0
3. if m maka 4. i
5. i 6. else
7. m – 1 8. i – m – 1
9. end if 10. for j s to e do
11. +
12. end for 13. end for
Dengan menggunakan algoritme Schoolbook, operasi perkalian dilakukan sebanyak n
2
dan penjumlahan sebanyak n-1
2
Mahfouz 2004.
Algoritme perkalian Karatsuba
Waktu untuk melakukan operasi kali lebih lama dibandingkan waktu untuk melakukan
operasi jumlah. Metode perkalian Karatsuba mempunyai keunggulan dengan menurunkan
jumlah operasi perkalian yang dilakukan. Pada penelitian ini, algoritme Karatsuba yang
digunakan adalah algoritme Karatsuba satu iterasi.
Contoh penggunaan algoritme Karatsuba pada polinomial berderajat 1
azbz = +
+ =
+
+ +
– –
z + dari contoh tersebut, dapat dilihat bahwa
operasi perkalian yang dilakukan hanya sebanyak 3 kali. Bila menggunakan algoritme
9 Schoolbook, operasi perkalian yang dilakukan
adalah 4 kali. Selain
menambah banyaknya
operasi jumlah, algoritme ini juga memerlukan variabel
yang lebih
banyak untuk
melakukan perhitungan. Algoritme Karatsuba satu iterasi
adalah sebagai berikut
Input : a,b
∈ dengan k koefisien, p
Output :
=
ab 1. for i 0 to k – 1 do
2. D