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