BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Analisis sistem adalah fase awal pembangunan sistem dengan melakukan proses identifikasi komponen-komponen yang dibutuhkan oleh sistem. Analisis sistem dapat
dilakukan dengan menentukan komponen yang menjadi input, proses yang dilakukan sistem, dan output dari sistem. Beberapa tahapan dapat dilakukan untuk menganalisis
sebuah sistem, yaitu sebagai berikut:
3.1.1 Analisis masalah
Analisis masalah adalah proses identifikasi sebab dan akibat dibangunnya sebuah sistem agar sistem dapat berjalan sesuai dengan tujuan dibuatnya sistem.
Permasalahan yang dibahas pada penelitian ini adalah perlunya pengamanan data yang berkaitan dengan aspek kerahasiaan file
untuk menghindari bahaya seperti pemanipulasian isi file oleh pihak yang tidak bertanggungjawab. Masalah lain yang
akan dibahas adalah diperlukannya suatu metode untuk mengecilkan atau mengkompresi ukuran file terenkripsi dengan bertujuan untuk mempermudah dan
mempercepat proses pengiriman file. Selain itu, algoritma pengamanan data yang akan digunakan menganut sistem Three-Pass-Protocol sehingga kebutuhan akan sebuah
metode kompresi data menjadi semakin besar. Pengamanan data akan dilakukan
dengan menggunakan algoritma Massey-Omura dan kompresi data akan dilakukan dengan menggunakan algoritma Even-Rodeh. File dokumen yang digunakan dalam
penelitian ini adalah file berekstensi .docx. Analisis masalah dapat digambarkan dengan menggunakan diagram Ishikawa,
dimana dengan diagram ini sebab-sebab yang berhubungan dengan suatu permasalahan dapat digambarkan secara detail. Diagram Ishikawa juga sering disebut
dengan diagram tulang ikan atau cause-and-effect diagram. Analisis masalah dengan
diagram Ishikawa dapat dilihat pada gambar 3.1.
Universitas Sumatera Utara
Gambar 3.1 Diagram Ishikawa Analisis Masalah
Sistem akan melakukan 4 jenis proses yaitu proses enkripsi, dekripsi, kompresi dan dekompresi. Pertukaran pesan akan dilakukan sebanyak 3 kali sesuai dengan
konsep Three-Pass-Protocol. Tahap pertama pertukaran pesan dimulai dengan pihak Pengirim Sender mengunci pesan dengan kunci enkripsi Pengirim. Kemudian,
dilanjutkan dengan mengkompresi pesan yang sudah dienkripsi dan mengirim pesan yang telah dikompresi kepada pihak Penerima Recepient. Pada tahap kedua pihak
Penerima menerima pesan dan mendekomprasi pesan, yang dilanjutkan dengan mengenkripsi pesan dengan kunci enkripsi milik pihak Penerima. Penerima pesan
kemudian mengkompresi pesan terenkripsi dan mengirimkan pesan ke pihak Pengirim. Pada tahap ketiga, pihak Pengirim menerima pesan dan mendekompresi
pesan tersebut. Selanjutnya, pihak Pengirim mengenkripsi pesan dengan kunci dekripsi milik pihak Pengirim dan megirimkan pesan kembali kepada pihak Penerima.
Penerima pesan kemudian mendekompresi pesan yang telah diterima dan mendekripsi pesan dengan kunci dekripsi milik Penerima untuk mendapatkan pesan asli. Alur
proses enkripsi-dekripsi dan kompresi-dekompresi sistem dapat dilihat pada Gambar 3.2.
Universitas Sumatera Utara
Gambar 3.2 Alur Proses Enkripsi-Dekripsi dan Kompresi-Dekompresi Sistem
3.1.2 Analisis persyaratan
Analisis persyaratan merupakan tahapan yang dilakukan untuk menentukan kebutuhan dan kondisi yang harus dipenuhi ketika membangun sebuah sistem. Analisis
persyaratan terbagi dua, yaitu analisis fungsional dan analisis non-fungsional. 1
Analisis Fungsional Analisis fungsional dilakukan dengan menerjemahkan
kebutuhan sistem menjadi
fungsi-fungsi detail mengenai hal-hal yang harus dipenuhi pada sistem yang dirancang. Adapun persyaratan fungsional yang harus dipenuhi sistem yaitu:
a. Sistem harus mampu melakukan enkripsi data terhadap file dokumen dengan
ekstensi file .docx dengan algoritma Massey-Omura. b.
Sistem harus mampu melakukan kompresi data dengan algoritma Even- Rodeh terhadap file dokumen yang telah dienkripsi.
c. Sistem harus mampu melakukan dekripsi data terhadap hasil enkripsi dengan
algoritma Massey-Omura menjadi data asli kembali.
Universitas Sumatera Utara
d. Sistem harus mampu melakukan dekompresi data terhadap hasil kompresi
dengan algoritma Even-Rodeh menjadi data asli kembali.
2 Analisis Non-Fungsional
Analisis non-fungsional dilakukan dengan menganalisis bagaimana seharusnya sebuah sistem melakukan sesuatu yang akan digunakan untuk menilai kinerja
sistem dan menjadi penentu apakah daya guna sistem sudah baik atau belum. Adapun persyaratan non-fungsional yang harus dipenuhi sistem adalah:
a. Performa
Sistem yang dibangun harus dapat melakukan proses dan menunjukkan hasil dari enkripsi-kompresi data dan dekripsi-dekompresi data tersebut.
b. Mudah digunakan User friendly
Sistem yang dibangun memiliki tampilan yang user friendly agar mudah dipelajari dan digunakan oleh pengguna.
c. Ekonomis
Sistem harus dapat bekerja dengan baik tanpa harus mengeluarkan biaya tambahan dalam penggunaan perangkat keras maupun perangkat lunak.
d. Dokumentasi
Sistem yang dibangun dapat menyimpan data hasil enkripsi serta dapat menyimpan hasil kompresi.
e. Kontrol
Sistem yang telah dibangun harus tetap dikontrol setelah selesai dirancang agar fungsi dan kinerja sistem dapat terjaga dan memberikan hasil yang
sesuai dengan keinginan pengguna.
3.1.3 Pemodelan sistem
Pemodelan sistem merupakan proses untuk membangun atau membentuk model dari suatu sistem. Tujuan dari pemodelan sistem adalah untuk memperoleh gambaran
mengenai tugas-tugas atau
proses yang harus dilakukan oleh sistem agar sistem dapat
bekerja dengan baik sesuai dengan fungsionalitasnya. Pemodelan sistem pada pada penelitian ini akan dilakukan dengan menggunakan Use Case Diagram, Sequence
Diagram, dan Activity Diagram.
Universitas Sumatera Utara
Use case pada dasarnya adalah rangkaian sekelompok proses yang saling terkait dan membentuk sebuah sistem. Sedangkan use case diagram adalah diagram use case
yang digunakan untuk menggambarkan secara ringkas mengenai User yang menggunakan sistem dan proses-proses yang dilakukan oleh sistem.
Use case diagram diawali dengan menginisialisasi User yang disebut Aktor yang akan menginisiasi kegiatan sistem. User berperan di dalam sistem Pengirim Sender
atau Penerima Recipient. User dapat melakukan proses enkripsi-dekripsi dan kompresi-dekompresi dengan sistem. Sebelum bertukar informasi, kedua pihak akan
membangkitkan private key yang akan menjadi kunci enkripsi dan dekripsi berdasarkan public key yaitu bilangan prima yang dibangkitkan oleh pihak Pengirim.
Use case diagram sistem dalam penelitian ini dapat dilihat pada Gambar 3.3.
Gambar 3.3 Use Case Diagram Sistem
Universitas Sumatera Utara
Sequence diagram adalah suatu diagram yang menampilkan interaksi-interaksi antar objek di dalam sistem yang disusun berdasarkan sebuah urutan. Sequence
Diagram digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai sebuah respon dari suatu kejadian atau event. Sequence
Diagram sistem dapat dilihat pada Gambar 3.4.
Gambar 3.4 Sequnce Diagram Sistem
Activity Diagram adalah sebuah diagram yang menggambarkan aliran aktivitas yang terjadi pada setiap use case. Activity Diagram digunakan untuk menampilkan
langkah-langkah pengerjaan proses sistem. Terdapat 9 proses yang dilakukan sistem pada penelitian ini yaitu pembangkit bilangan prima, pembangkit kunci pengirim,
pembangkit kunci penerima, enkripsi 1, enkripsi 2, dekripsi 1, dekripsi 2, kompresi dan dekompresi teks. Activity Diagram untuk Pembangkit Bilangan Prima dapat
dilihat pada Gambar 3.5.
Universitas Sumatera Utara
Gambar 3.5. Activity Diagram Pembangkit Bilangan Prima
Activity Diagram untuk Pembangkit Kunci A dapat dilihat pada Gambar 3.6.
Gambar 3.6. Activity Diagram Pembangkit Kunci A
Universitas Sumatera Utara
Activity Diagram untuk Pembangkit Kunci B dapat dilihat pada Gambar 3.7.
Gambar 3.7. Activity Diagram Pembangkit Kunci B
Universitas Sumatera Utara
Activity Diagram untuk Enkripsi1 dapat dilihat pada Gambar 3.8.
Gambar 3.8. Activity Diagram Enkripsi1
Universitas Sumatera Utara
Activity Diagram untuk Enkripsi2 dapat dilihat pada Gambar 3.9.
Gambar 3.9. Activity Diagram Enkripsi2
Universitas Sumatera Utara
Activity Diagram untuk Dekripsi1 dapat dilihat pada Gambar 3.10.
Gambar 3.10. Activity Diagram Dekripsi1
Universitas Sumatera Utara
Activity Diagram untuk Dekripsi2 dapat dilihat pada Gambar 3.11.
Gambar 3.11. Activity Diagram Dekripsi2
Activity Diagram untuk Kompresi dapat dilihat pada Gambar 3.12.
Gambar 3.12. Activity Diagram Kompresi
Universitas Sumatera Utara
Activity Diagram untuk Dekompresi dapat dilihat pada Gambar 3.13.
Gambar 3.13. Activity Diagram Dekompresi
3.1.4 Pseudocode
1 Pseudocode Pembangkit Bilangan Prima
Berikut adalah pseudocode untuk Pembangkit Bilangan Prima
FUNCTION bilprimarandom counter
← 0 FOR i
← 2 TO random-1 DO IF random mod i == 0 THEN
Counter ← counter + 1
end if END FOR
IFcounter 0 THEN RETURN 0
ELSE RETURN random
END IF END FUNCTION
Bilangan prima diperlukan pada enkripsi dan dekripsi algoritma Massey-Omura sebagai modulus. Bilangan prima dibangkitkan dengan memilih sebuah angka
random dan melakukan pengecekan untuk mengetahui apakah angka tersebut merupakan bilangan prima atau tidak. Pengecekan dilakukan dengan membagi
random dengan angka 2 sampai dengan random-1. Variabel
counter
digunakan untuk menghitung jumlah random yang habis dibagi 2 hingga random-1. Apabila
counter
bernilai 0 maka fungsi akan mengembalikan nilai random, sedangkan bila
counter
lebih besar dari 0 maka fungsi akan mengembalikan nilai 0.
Universitas Sumatera Utara
2 Pseudocode GCD
Berikut adalah pseudocode untuk GCD
FUNCTION gcdm, n r
← m mod n WHILE r = 0
RETURN gcdn,r END WHILE
RETURN n END FUNCTION
Fungsi GCD digunakan oleh fungsi
kunci_e
ketika mencari kunci enkripsi, untuk mencari faktor persekutuan terbesar dari nilai e yang dibangkitkan secara acak
dan bilangan prima-1.
3 Proses Pembangkit Kunci Enkripsi
Berikut adalah pseudocode untuk proses Pembangkit Kunci Enkripsi
FUNCTION kunci_eprima e
← random2, prima - 1 IF gcde, prima - 1 == 1 THEN
RETURN e ELSE
RETURN kunci_eprima END IF
END FUNCTION
Bila bilangan prima sudah didapatkan melalui fungsi
bilprima
, dilakukan random calon kunci enkripsi e dengan fungsi
kunci_e
dan rentang nilai 1
� ����� − 1. Syarat yang harus dipenuhi agar nilai dapat dipakai sebagai kunci e adalah GCD dari random dan prima-1 adalah 1. Bila GCD bernilai 1
maka e memenuhi syarat sebagai kunci enkripsi.
4 Proses Pembangkit Kunci Dekripsi
Berikut adalah pseudocode untuk proses Pembangkit Kunci Dekripsi
FUNCTION kunci_dprima, e d
← 1 hasil
← d e mod prima - 1 WHILE hasil = 1 hasil = 0
d ← d + 1
hasil ← d e mod prima - 1
END WHILE IF hasil == 0 THEN
RETURN 0 ELSE
RETURN d END IF
END FUNCTION
Universitas Sumatera Utara
Fungsi kunci_d digunakan untuk mencari kunci dekripsi d. Pada fungsi ini dilakukan perhitungan inversi modulo dari e dengan rumus
� � � ��� ����� − 1 = 1 dan menyimpan hasil perhitungan pada variabel
hasil
. Dilakukan operasi perulangan dengan menambahkan 1 kepada
d
tiap kali perulangan dan berhenti ketika nilai
hasil
adalah 1 atau 0. Apabila
hasil
bernilai 0, maka fungsi akan mengembalikan nilai 0. Sedangkan bila
hasil
bernilai 0, fungsi akan mengeluarkan
d
sebagai kunci dekripsi.
5 Pseudocode Proses Enkripsi
Berikut adalah pseudocode untuk proses Enkripsi
FUNCTION enkripsiplaintext, prima, e FOREACH c IN plaintxt DO
bitsplain ← Appendc
END FOR FOR i
← 0 TO lengthbitsplain DO p[i]
← ConvertToIntbitsplain[i] c
← pangkatp[i],e mod prima text
← Appendc text
← append“ ” END FOR
RETURN text END FUNCTION
Pada proses enkripsi, karakter yang akan diproses ditampung pada sebuah list dengan nama bitsplain. Setiap karakter teks kemudian dikonversi menjadi
nilai interger yang merepresentasikan karakter tersebut dan menyimpan nilai ke dalam variabel p. Nilai integer karakter dikomputasikan sesuai dengan rumus
enkripsi algoritma Massey-Omura yaitu �
�
�
��� � dan disimpan di dalam variabel c. Hasil enkripsi disimpan pada variabel text. Spasi diberikan diantara
hasil komputasi dengan tujuan untuk memisahkan setiap integer karakter. Proses ini akan menghasilkan output Cipherteks dalam bentuk angka.
6 Pseudocode Proses Dekripsi
Berikut adalah pseudocode untuk proses Dekripsi
FUNCTION dekripsiC, prima, d{ bitsplain
← C.Split FOR i
← 0 TO lengthbitsplain-1 c[i]
← ConvertToInt32bitsplain[i] p
← Pangkatc[i],d mod prima asli
← ConvertToCharp
sb
← Appendasli
Universitas Sumatera Utara
END FOR RETURN text
Cipherteks yang diproses untuk didekripsi adalah dalam bentuk angka yang dipisahkan oleh spasi, maka dilakukan split dengan tanda pemisah spasi dan
menampung cipherteks kedalam list bitsplain. cipherteks diubah menjadi integer dan disimpan pada variabel c. Kemudian karakter cipherteks
dikomputasikan sesuai dengan rumus dekripsi algoritma Massey-Omura yaitu � =
�
�
��� � dan menyimpan hasil di dalam variabel p. Bilangan bulat pada p dikonversi kedalam bentuk karakter dan disimpan pada variabel asli sehingga
didapatkan teks awal.
7 Pseudocode Proses Kompresi
Berikut adalah pseudocode untuk proses Kompresi
FUNCTION kompresikalimat m
← 0 srtChar
← sortedCharkalimat
FOREACH c IN kalimat DO bitkom
← AppendCodem END FOR
WHILE lengthbitkom mod 7 = 0 bitkom
← Append0 m
← m + 1 END WHILE
IF m=0 bitflag
← ConvertToStringm,2 WHILE lengthbitflag mod 7 =0
bitflag ← 0 + bitflag
end while bitkom
← Appendbitflag ELSE
bitkom ← Append0000000
END IF sbitkom
← ConvertToStringbitkom awal
← 0 FOR i
← 7 TO lengthsbitkom dec
← ConvertToIntsbitkom.Substringawal,7, 2 chr
← ConvertToChardec charkom
← Appendchr awal
← i i
←i + 7 END FOR
charkom.
Append
FOR j ← 0 TO lengthsrtChar
charkom ← AppendsrtChar[j]
END FOR RETURN charkom
END FUNCTION
Universitas Sumatera Utara
Proses kompresi dimulai dengan mengurutkan karakter berdasarkan frekuensi kemunculan karakter. Hasil pengurutan karakter disimpan di dalam variabel
srtChar. Setelah dilakukan pengurutan, dibentuk sebuah string yang berisi bit
kode Even-Rodeh yang merepresentasikan karakter teks dan menyimpannya ke dalam variabel bitkom. Dilakukan perhitungan mod panjang bit kompresi
dengan 7. Ketika hasil sisa bagi tidak sama dengan 0, tambahkan append padding “0” hingga hasil sisa bagi menjadi 0 dan meyimpan jumlah dari padding
yang ditambah dalam variabel m untuk digunakan ketika menuliskan flag bits. Selanjutnya, nilai pada variabel m dikonversi ke dalam bentuk binari yang
disimpan ke dalam variabel bitflag, kemudian ditambahkan angka 0 didepannya sehingga jumlah bit menjadi tujuh digit. Apabila tidak ada padding
yang ditambahkan, maka flag bits yang dituliskan hanya angka 0 berjumlah tujuh digit. Flag bits ditulis setelah padding agar sistem dapat mengetahui berapa
banyak padding yang ditambahkan pada string bit kompresi. Bit hasil kompresi ditampung pada variabel sbitkom untuk diubah menjadi
ke dalam bentuk karakter. Tahap perubahan bit kompresi menjadi karakter kompresi dimulai dengan mengambil bagian sbitkom mulai dari indeks awal
yaitu indeks-0 sebanyak 7 digit dan mengubahnya ke dalam bentuk integer. Hasil konversi disimpan dalam variabel dec. Nilai integer pada variabel dec
dikonversi kedalam bentuk char dan ditampung dalam variabel chr. Karakter pada variabel chr ditambahkan kedalam List charkom dan didapatkan karakter
hasil kompresi. Simbol “” ditambahkan pada charkom sebagai pemisah karakter kompresi dengan karakter asli. Dilakukan operasi perulangan untuk
menuliskan karakter asli ke dalam charkom.
8 Pseudocode Proses Dekompresi
Berikut adalah pseudocode untuk proses Dekompresi
FUNCTION dekompresistrkom charkompresi
← strkom.Splitnew[] {}, [0]
FOREACH c IN charkompresi DO t
← ConvertToStringConvertToIntc,2 IF lengtht = 7
FOR i ← 0 TO 7-lengtht
bin ← Append0
END FOR
Universitas Sumatera Utara
bin ← Appendt
ELSE bin
← Appendt END IF
END FOR bitf
← ConvertToIntbin.Substringlengthbin-7,2 IFbitf == 0
bin ← bin.Substring0,lengthbin-7
ELSE bin
← bin.Substring0,lengthbin-7+bitf END IF
FOR y ← 0 TO lengthkarakter
kodeER ← AddCodey
END FOR karakter
← strkom.Splitnew[] {}, [1]
FOREACH c IN bin kode
← c IF kodeER.Containskode
karasli ← karakter[kodeER.IndexOfkode]
kode ←
END IF END FOR
RETURN karasli END FUNCTION
Proses dekompresi dimulai dengan menampung karakter kompresi ke dalam variabel charkompresi dimana indeks karakter yang diambil dimulai dari 0
hingga simbol “”. Setiap karakter kompresi diubah menjadi binari dan menyimpan nilai pada variabel t. Ditambahkan angka 0 didepan bit jika digit
kurang dari tujuh dan menyimpan hasil pada variabel bin. Kemudian dilakukan penghapusan padding dan flag bits dari string bit kompresi dimulai dengan
mengambil tujuh bit terakhir dan mengkonversi nilai kedalam bentuk integer. Nilai disimpan pada variabel bitf. Dilakukan pengecekan dengan kondisi bitf
bernilai 0 atau tidak. Bila bitf bernilai 0, maka dilakukan pemotongan indeks sehingga nilai yang diambil untuk variabel bin dimulai dari indeks 0 hingga
indeks akhir kurang 7. Jika bitf tidak bernilai 0, maka indeks yang diambil untuk bin dimulai dari 0 hingga indeks akhir – 7 + bitf. Kode Even-Rodeh
dibangkitkan sesuai dengan jumlah karakter asli dengan memanggil fungsi Code dan menyimpannya pada list kodeER. Karakter asli yang diambil setelah simbol
“” ditampung dalam variabel karakter. Kemudian dilakukan pengecekan untuk melihat apakah bit terdapat pada deretan kode Even-Rodeh. Bit ditampung
pada variabel kode. Indeks ke-0 ditambahkan ke kode dan dilakukan pengecekan apakah kode terdapat pada list kodeER. Bila tidak, maka indeks ke-
Universitas Sumatera Utara
1 ditambahkan ke kode dan dilakukan pengecekan ulang. Penambahan akan terus dilanjutkan hingga kode terdapat pada list kodeER dan merepresentasikan
sebuah karakter asli. Karakter asli yang didapatkan ditampung pada variabel karasli
.
9 Pseudocode Kode Even-Rodeh
Berikut adalah pseudocode untuk proses Pembangkit Kode Even-Rodeh
FUNCTION Coden IF n4{
ns ← ConvertToStringn, 2
FOR i ← 0 TO 3- lengthns
kode ← Append0
END FOR kode
← Appendns ELSE
kode ← Append0
WHILE n = 4 ns
← ConvertToStringn,2 kode
← Insert0,ns n
← lengthns END WHILE
END IF RETURN kode
END FUNCTION
Pembangkit kode Even-Rodeh digunakan oleh proses Encoding dan Decoding untuk membangkitkan kode. Keluaran dari proses ini adalah kode Even-Rodeh
sesuai dengan nilai parameter masukan n. Pembangkitan kode dimulai dengan mengecek apakah nilai n lebih kecil dari 4 atau tidak. Bila n lebih kecil dari 4,
maka ubah n ke dalam bentuk binari dan simpan sebagai ns, kemudian angka 0 ditambahkan hingga jumlah bit kode menjadi 3 dan append tambahkan ns.
Bila n lebih besar sama dengan 4, append “0” pada kode dan lakukan operasi perulangan selama n lebih besar sama dengan 4. Nilai n dikonversi menjadi biner
dan disimpan pada variabel ns, kemudian nilai ns ditambahkan ke kode pada indeks ke-0. Jadikan panjang bit ns sebagai nilai dari n.
3.1.5 Flowchart
1 Flowchart Sistem
Sistem yang dibangun berfungsi untuk melakukan proses enkripsi-dekripsi pesan dengan menggunakan algoritma Massey-Omura dan proses kompresi-dekompresi
Universitas Sumatera Utara
terhadap file yang telah dienkripsi dengan algoritma Even-Rodeh. Pertukaran pesan akan dilakukan dalam tiga tahap dalam bentuk file kompresi. Proses kompresi akan
dilakukan setiap proses enkripsi atau dekripsi selesai dilakukan kecuali pada proses Dekripsi2. Dan proses dekompresi dilakukan sebelum memulai proses enkripsi atau
dekripsi kecuali pada Enkripsi1. Flowchart sistem dapat dilihat pada Gambar 3.14.
Gambar 3.14. Flowchart Sistem
Universitas Sumatera Utara
2 Flowchart Pembangkit Kunci
Pembangkit kunci dimulai setelah membangkitkan bilangan prima dan melakukan random kunci enkripsi eA atau eB dengan syarat
1 ��|�� ����� − 1.
Kemudian dilakukan pengecekan nilai GCD ��|��, ����� − 1. Bila GCD bernilai 1
maka eA atau eB memenuhi syarat untuk dipakai sebagai kunci enkripsi. Setelah mendapatkan kunci enkripsi, dilakukan pencarian kunci dekripsi dA atau dB dengan
mencari invers eA atau eB mod p-1 melalui perhitungan � � � ��� ����� − 1 =
1. Flowchart Pembangkit kunci dapat dilihat pada Gambar 3.15.
Gambar 3.15 Flowchart Pembangkit Kunci
Universitas Sumatera Utara
3 Flowchart Enkripsi1 dan Enkripsi2
Dapat dilihat pada Gambar 3.16, Enkripsi1 dimulai dengan menginput teks asli, bilangan prima dan kunci enkripsi Sender eA. Teks asli kemudian dikonversi
menjadi integer berdasarkan Tabel ASCII. Setelah dikonversi, dilakukan perhitungan C1 dan didapatkan hasil Cipherteks1. Proses Enkripsi1 dilakukan oleh Sender.
Enkripsi2 dilakukan oleh Recipient dan dimulai dengan menginput Cipherteks1, bilangan prima, dan kunci enkripsi Recipient eB. Kemudian dilakukan
proses perhitungan C2 dan didapatkan Cipherteks2.
Gambar 3.16. Flowchart Enkripsi1 dan Enkripsi2
4 Flowchart Dekripsi1 dan Dekripsi2
Seperti pada Gambar 3.17. Dekripsi1 dimulai dengan menginput Cipherteks2, bilangan prima dan kunci dekripsi dA. Dilakukan perhitungan C3 dan menghasilkan
Cipherteks3. Proses Dekripsi1 dilakukan oleh Sender. Dekripsi2 dilakukan oleh Recipient yang dimulai dengan menginput
Cipherteks3, bilangan prima, dan kunci dekripisi Recipient. Dilakukan perhitungan P
Universitas Sumatera Utara
sehingga didapatkan integer dari plainteks. Kemudian Integer plainteks dikonversi menjadi karakter kembali.
Gambar 3.17. Flowchart Dekripsi1 dan Dekripsi2
5 Flowchart Even-Rodeh Code
Parameter masukan yang akan diproses oleh pembangkit kode Even-Rodeh adalah n yaitu indeks karakter yang telah diurutkan berdasarkan frekuensi kemunculan
karakter. Fungsi ini mengahasilkan output kode Even-Rodeh sesuai dengan nilai n. Proses pembangkit kode dilakukan dengan mengecek nilai n. Terdapat dua kondisi
pengecekan yaitu nilai n lebih besar dari 4 atau tidak. Flowchart Even-Rodeh Code dapat dilihat pada Gambar 3.18.
Universitas Sumatera Utara
Gambar 3.18. Flowchart Even-Rodeh Code
Ya
Ya Tidak
Tidak Ya
Tidak Kode = “0”
Mulai
Input n
Output kode
Selesai n 4
kode = ns + kode
n = ns.length n
≥ 4 kode = “”
ns = ConvertToBinn ns = ConvertToBinn
i 3 - ns.Length
kode = kode + “0”
kode = kode + ns i = 0
i++
Universitas Sumatera Utara
3.2 Perancangan Sistem