3.2.2 Sequence Diagram
Suatu sequence diagram adalah suatu penyajian perilaku yang tersusun sebagai rangkaian langkah-langkah percontohan dari waktu ke waktu. Sequence diagram
digunakan untuk menggambarkan arus pekerjaan, pesan yang yang disampaikan, dan bagaimana elemen-elemen di dalamnya bekerja sama dari waktu ke waktu untuk
mencapai suatu hasil. Berikut diagram sequence pada penelitian ini dapat dilihat pada Gambar 3.3 dan 3.4.
Gambar 3.3 Sequence Diagram untuk ElGamal User
Gambar 3.4 Sequence Diagram untuk Hacker
Universitas Sumatera Utara
3.2.3 Activity Diagram
Activity Diagram adalah sebuah diagram yang berfokus pada aktifitas-aktifitas yang
terjadi yang terkait dalam suatu proses tunggal. Dengan kata lain, diagram ini menunjukkan bagaimana aktifitas-aktifitas tersebut bergantung satu sama lain. Activity
diagram pada sistem dapat ditunjukkan pada Gambar 3.5 dan 3.6.
Gambar 3.5 Activity Diagram untuk ElGamal User
Universitas Sumatera Utara
Gambar 3.6 Diagram Activity untuk Hacker 3.3 Pseudocode dan Flowchart Program
3.3.1 Pseudocode dan Flowchart Lehmann Primality Test
Lehmann Primality Test pada penelitian ini digunakan untuk mencari bilangan prima
dengan cara mencari nilai dari a
p-12
mod p sebanyak sepuluh kali dan mencatat probabilitasnya. Jika probabilitasnya lebih besar dari 97, maka p adalah bilangan
prima. Pseudocode dari Lehmann Primality Test terdiri dari dua fungsi dimana fungsi pertama adalah untuk membangkitkan bilangan acak, dan fungsi kedua adalah untuk
menentukan apakah bilangan acak tersebut adalah bilangan prima atau tidak :
Universitas Sumatera Utara
1. function random_with_N_digitsn:
2. range_start = 10n-1
3. range_end = 10n-1
4. l = randomrange_start, range_end
5. if l 2 == 0 or l 3 == 0:
6. return random_with_N_digitsn
7. return l
8. function lehmann:
9. p = random_with_N_digitsn
10. persen = 50
11. probability = 0
12. for i in range10:
13. a = random1,p
14. if ap-12 mod p == 1 or
ap-12 mod p == -1 : 15.
probability += persen 16.
persen = persen 2 17.
if probability = 97 : 18.
return l 19.
else : 20.
return lehmann:
Fungsi pertama 1 adalah fungsi untuk membangkitkan bilangan acak ganjil yang memiliki kemungkinan prima. Hal yang pertama dilakukan adalah menerima inputan
digit n lalu menentukan rentang digit untuk membangkitkan bilangan acak. variabel range_start
2 berfungsi sebagai rentang terkecil, sedangkan variabel range_end 3 berfungsi sebagai rentang terbesar. Kemudian bilangan acak akan dibangkitkan dan
disimpan di variabel 4. Jika variabel l di-modkan oleh 2 atau 3 menghasilkan nilai 0 yaitu pada proses 5, maka bilangan tersebut tidak mungkin prima. Oleh karena itu
dilakukan fungsi rekursif untuk mengulangi proses pembangkitan angka hingga mendapatkan hasil yang diinginkan.
Proses selanjutnya adalah mencari kemungkinan bilangan tersebut adalah prima atau tidak, dengan menggunakan fungsi 8 . Hal yang pertama dilakukan adalah
memanggil fungsi membangkitkan bilangan acak lalu disimpan ke variabel p 9. Lalu proses 10 hingga 20 akan memeriksa probabilitas bilangan tersebut adalah prima
atau tidak dengan cara mengecek
ap-12 mod p
apakah menghasilkan nilai 1 atau
Universitas Sumatera Utara
-1. Jika menghasilkan salah satu nilai tersebut maka kemungkinan bilangan acak tersebut prima semakin tinggi.
Berikut flowchart algoritma Lehmann Primality Test yang dapat ditunjukkan dari Gambar 3.7.
Gambar 3.7 Flowchart Lehmann Primality Test
Universitas Sumatera Utara
3.3.2 Pseudocode dan Flowchart Primitive Roots