5 Tabel 2 Return value pada fungsi
Return Value Keterangan
MP_OKAY 0 Jika fungsi berhasil
MP_MEM -2 Jika
fungsi melebihi
memori MP_VAL -3
Jika nilai input tidak valid
Librari dalam penelitian ini mempunyai beberapa fungsi yang menjadi dasar dalam
proses komputasi. Fungsi-fungsi tersebut yaitu:
a. init
Fungsi init digunakan untuk melakukan inisialisasi terhadap bilangan mp_int. Proses
insialisasi ini akan memberikan nilai default pada variabel-variabel yang ada pada tipe data
mp_int. Algoritme fungsi init adalah sebagai
berikut:
Input : mp_int a Output : alokasi memori a sebanyak 10
digit array 1. Alokasi memori untuk 10 digit
2. Jika gagal , return MP_MEM 3. For n from 0 to 9 do
a
n
4. a.sign MP_ZPOS
5. a.used 6. a.alloc
10 7. Return MP_OKAY
Algoritme fungsi init di atas menunjukkan
bahwa fungsi tersebut akan mengalokasikan memori sebanyak 10 digit array atau setara
dengan bilangan 320 bit. Jika terjadi kegagalan, maka fungsi tersebut akan mengembalikan nilai
MP_MEM. Fungsi ini memberikan nilai default pada
variabel-varibel yang
ada dengan
a.sign=MP_ZPOS, a.used=0, a.alloc=10, dan a
n
= 0, untuk n=0,1,...,9.
b. mp_free_mem
Fungsi mp_free_mem
merupakan
kebalikan dari fungsi init. Fungsi ini digunakan untuk mengembalikan memori yang telah
dialokasikan ke kondisi semula sehingga memori tersebut dapat digunakan kembali.
Algoritme fungsi mp_free_mem adalah sebagai berikut:
Input : mp_int a Output : memori a didealokasi
1. For n from 0 to a.used-1 do a
n
2. Free alokasi memori pada a 3. a.used
4. a.alloc 5 a. sign
MP_ZPOS 6. Return MP_OKAY
Algoritme fungsi mp_free_mem di atas
menunjukkan bahwa fungsi tersebut akan mengembalikan memori yang telah terpakai.
Selanjutnya fungsi tersebut akan memberikan nilai pada variabel-varibel yang ada dengan
a.sign = MP_ZPOS, a.used = 0, dan a.alloc =0.
c. mp_grow
Fungsi mp_grow
digunakan untuk
menambah digit array ketika memori yang akan dipakai
melebihi memori
yang telah
dialokasikan alloc used. Algoritme fungsi mp_grow
adalah sebagai berikut: Input : mp_int a dan int b
Output : alokasi memori a ditambahkan sampai b digit array
1. If a.alloc b Realokasikan digit array a menjadi b
For n from a.used to b do a
n
a.alloc b
2. Return MP_OKAY Algoritme
fungsi mp_grow
di atas
menunjukkan bahwa fungsi tersebut akan memeriksa
banyaknya memori
yang dialokasikan terlebih dahulu. Jika banyaknya
memori yang ingin ditambahkan lebih besar dari memori yang telah dialokasikan, maka
fungsi tersebut akan mengalokasikan kembali memori
sebanyak memori
yang ingin
ditambahkan.
d. mp_clear_zero Fungsi mp_clear_zero digunakan untuk