else 31. g  if maka 3. = – else 5. = end if 7. end for for i  0 to 2m – 2 do 2.  0 if m maka 4.  i end if 10. for j  s to e do end for 13. end for

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