Sequence Diagram Activity Diagram Pseudocode dan Flowchart Lehmann Primality Test

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