Analisis algoritma sieve of erathosthenes

3.2.2 Flowchart Sistem

Flowchart sistem merupakan bagan yang menunjukkan alur kerja atau apa yang sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari prosedur- prosedur yang ada di dalam sistem. Berikut flowchart tahapan proses yang dilakukan untuk memberikan tanda tangan digital pada file .txt dengan menggunakan fungsi hash: mulai pembentukan sepasang kunci pembentukan tanda tangan digital verifikasi tanda tangan digital status dokumen masukkan file dokumen selesai Gambar 3.9. Flowchart tanda tangan digital file .txt

3.3 Analisis Algoritma

Analisis algoritma dilakukan untuk menduga besarnya sumber daya waktu yang dibutuhkan untuk sembarang ukuran masukan n Cormen et al, 1990 ed 2. Kompleksitas, Tn, didefenisikan sebagai waktu yang dibutuhkan oleh suatu algoritma untuk menyelesaikan proses dengan input berukuran n.

3.3.1 Analisis algoritma sieve of erathosthenes

Sebagai contoh, kita akan menentukan sekumpulan bilangan prima dari 2 sampai dengan 100, larik bilangan ini dapat kita lihat dibawah ini: 1 Terdapat sebuah larik bilangan dari 2 sampai 100. Universitas Sumatera Utara Tabel 3.4. List bilangan 2 sampai 100 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 2 Bilangan terkecil yang tidak dicoret adalah bilangan prima, yaitu 2. 3 Coret semua kelipatan bilangan 2 dalam larik. Tabel 3.5. List kelipatan bilangan 2 dicoret 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 49 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 4 Ulangi langkah 2 dan 3 sampai mencapai √ pembulatan = 10.  3 adalah bilangan prima, coret semua kelipatan 3 dalam larik. Tabel 3.6. List kelipatan bilangan 3 dicoret 2 3 4 5 6 7 8 9 10 Universitas Sumatera Utara 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 49 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100  5 adalah bilangan prima, coret semua kelipatan 5 dalam larik. Tabel 3.7. List kelipatan bilangan 5 dicoret 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 49 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100  7 adalah bilangan prima, coret semua kelipatan 7 dalam larik. Tabel 3.8. List kelipatan bilangan 7 dicoret 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 Universitas Sumatera Utara 5 Semua bilangan yang belum dicoret adalah bilangan prima. Tabel 3.9. List bilangan prima dari 2 sampai 100 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Kesimpulannya, bilangan prima antara 2 sampai dengan 100 adalah 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, dan 97. Apabila diimplementasikan dalam pseudocode, hasilnya dapat dilihat pada prosedur dibawah ini: Tabel 3.10. Pseudocode pembangkit bilangan prima 1 Function : sieveoferatosthenes input N : integer output 2 3 4 5 6 7 8 9 10 11 12 13 {Mencetak semua bilangan yang kurang dari atau sama dengan N yang merupakan bilangan prima Masukan: sembarang bilangan Keluaran: semua bilangan prima ≤ N dicetak } Deklarasi i, j : integer T : array [2…N] of boolean Algoritma {inisialisasi larik} for i ← 2 to sqrtN do T i ← true 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Universitas Sumatera Utara 14 15 16 17 18 19 20 21 22 23 end for {menyaring bilangan prima} for i ← 2 to sqrtN do if T i then j ← i i while j = N do T j ← false j ← j + i end while end if end for {Mencetak bilangan prima} for i ← 2 to N do if T i then output i end if end for Pada algoritma Sieve of Eratosthenes, pengecekan tidak dilakukan pada setiap n, dikarenakan penyaringan dengan memanfaatkan bilangan yang telah dicek sebelumnya, yaitu dengan mencoret terlebih dahulu bilangan kelipatannya sehingga tidak perlu dicek ulang kembali. Ini menyebabkan adanya faktor logaritma pada kompleksitas sieve of eratosthenes. Pada akhirnya, algoritma ini mempunyai kompleksitas Θ n log nlog log n.

3.3.2 Analisis algoritma SHA-1