Analisis Sistem ANALISIS DAN PERANCANGAN SISTEM

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