Desain Sistem Algoritma dan

m – 1. Dari grafik di atas, dapat kita buktikan pernyataan tersebut. Pada gambar 3.1 sama halnya pada gambar 3.3 dan gambar 3.4, terlihat kombinasi secara tepat antara a, b, dan m, sehingga LCG mempunyai periode maksimal m-1, dimana dengan m = 11, perulangan terjadi pada n=11. Sedangkan pada gambar 3.2 dan 3.5, kombinasi a, b, dan m sangat buruk, sehingga terjadi perulangan saat n = 6 dengan m = 11, sehingga tidak memenuhi syarat untuk menghasilkan LCG yang memiliki periode maksimal.

3.3 Desain Sistem

Proses perancangan yang akan digunakan pada sistem ini merupakan proses perancangan yang berorientasi pada prosedural, untuk itu dibuatlah algoritma dan flowchart dan perancangan tampilan. Aplikasi ini dirancang suatu sistem yang memproses karakter ASCII American Standard Code for Information Interchange 256 karakter.

3.4 Algoritma dan

Flowchart Sistem Prosedur ini merupakan gambaran sistem secara keseluruhan. Sistem ini terdiri ada tiga proses utama, yaitu proses enkripsi, proses pembangkitan kunci secara acak, dan proses dekripsi. Di bawah ini akan digambarkan flowchart dari sistem secara garis besar : 1. Start 2. Masuk pada tampilan utama sistem 3. Ada empat buah pilihan, pilih salah satu diantaranya 4. Untuk pilihan keluar, setelah di-klik akan muncul pilihan apakah mau keluar atau tidak, jika iya maka akan keluar dari sistem, jika tidak akan tetap pada tampilan utama dari sistem. 5. Untuk pilihan enkripsi dari file, setelah di-klik akan muncul form untuk meng- import file teks, lalu akan ada proses pembangkitan kunci dan proses enkripsi serta dekripsi dari file teks. UNIVERSITAS SUMATERA UTARA 6. Untuk tampilan enkripsi dari keyboard, setelah di-klik akan muncul form untuk menginputkan plaintext, lalu ada proses pembangkitan kunci dan proses enkripsi serta dekripsi dari keyboard. 7. Untuk pilihan bantuan, jika di-klik akan muncul form bantuan yang menjelaskan secara singkat tahap-tahap pada sistem ini UNIVERSITAS SUMATERA UTARA Tidak Tidak Tidak Tidak Ya Ya Ya Ya Gambar 3.6 Flowchart Sistem Enkripsi dan dekripsi file Finish Start Pilihan Enkripsi dan dekripsi dari keyboard Bangkitkan kunci Enkripsi dan dekripsi dari file teks Bantuan Keluar Bangkitkan kunci Enkripsi dan dekripsi dari keyboard Import file, tampilkan isi file Input plaintext Tampilkan form browse plaintext Tampilkan dan simpan sebagai ciphertext Tampilkan plaintext Tampilkan from input plaintext Tampilkan dan simpan sebagai ciphertext Tampilkan plaintext Tampilkan form bantuan Dekripsi ciphertext Dekripsi ciphertext Menu utama UNIVERSITAS SUMATERA UTARA

3.4.1 Algoritma dan Flowchart Proses Enkripsi dan Dekripsi dari File Teks

Prosedur ini digunakan untuk melakukan proses enkripsi dan dekripsi. Pada tahap ini juga akan dipanggil beberapa prosedur pendukung yang telah dijelaskan sebelumnya. Di bawah ini akan dijelaskan prosesnya secara lebih rinci : 1. Start 2. Pilih tombol browse untuk mengambil file teks yang akan dienkripsikan 3. Hitung panjang plaintext 4. Jika panjang plaintext lebih dari 1024 karakter, akan ditampilkan pesan error, dan isi file harus dipersingkat, jika tidak lanjut ke tahap berikutnya 5. Konversi plaintext ke dalam kode ASCII 6. Bangkitkan kunci 7. Hitung ciphertext, C i = P i + K i adalah kunci ke-i, dan Ci adalah ciphertext ke-i mod 256 ; dimana Pi adalah plaintext ke-i, Ki 8. Tampilkan ciphertext yang berupa kode ASCII 9. Simpan ciphertext 10. Untuk mendekripsikannya, lalu hitung plaintext, P i = C i - K i 11. Ubah plaintext ke karakter semula dan tampilkan mod 256 12. Finish ‘ UNIVERSITAS SUMATERA UTARA Ya Tidak A Browse file teks Tentukan panjang plaintext, plaintext = konversi ke kode ASCII Bangkitkan kunci C i = P i + K i mod 256 Start If length plain 1024 Tampilkan isi file Tampilkan pesan error Tampilkan nilai ASCII, lalu simpan sebagai ciphertext UNIVERSITAS SUMATERA UTARA Gambar 3.7 Flowchart Proses Enkripsi dan Dekripsi dari File Teks

3.4.2 Algoritma dan Flowchart Proses Pembangkitan Kunci

Prosedur ini digunakan untuk melakukan proses pembangkitan kunci dengan metode Linear Congruential Generator LCG. Proses ini dilakukan setelah user menginputkan plaintext, dan akan dipanggil kembali saat mau mendekripsikan ciphertext. Di bawah ini akan dijelaskan prosesnya secara lebih rinci : 1. Start 2. Inputkan nilai Xo seed, a, b, m yang merupakan konstanta LCG 3. Hitung, total1 = mod aXo+b, m 4. For i= 2: length plain, jadi kunci akan dibangkitkan sepanjang plaintext, sehingga panjang kunci sama dengan panjang plaintext yang merupakan ciri khas dari algoritma OTP 5. Hitung, total = mod atotal i-1 +b, m A P i = C i - K i mod 256 Konversi plaintext ke karakter semula Finish Tampilkan plaintext semula UNIVERSITAS SUMATERA UTARA 6. Selanjutnya, kunci yang diperoleh dimodulokan lagi dengan 256 untuk konversi ke ASCII 7. Tampilkan kunci acak dan tampilkan juga grafik keacakannya 8. Finish Gambar 3.8 Flowchart Proses Pembangkitan Kunci Start Input Xo, a,b, dan m For i = 2: length plain total1 = mod aXo+b, m total i = mod atotal i-1 +b, m Finish Tampilkan hasil pembangkitan kunci dan grafik keacakan UNIVERSITAS SUMATERA UTARA

3.4.3 Algoritma dan Flowchart Proses Enkripsi dan Dekripsi dari keyboard

Prosedur ini digunakan untuk melakukan proses enkripsi dan dekripsi. Pada tahap ini juga akan dipanggil beberapa prosedur pendukung yang telah dijelaskan sebelumnya. Di bawah ini akan dijelaskan prosesnya secara lebih rinci : 1. Start 2. Inputkan plaintext yang ingin dienkripsikan pada tempat yang telah disediakan 3. Hitung panjang plaintext 4. Jika panjang plaintext lebih dari 1024 karakter, akan ditampilkan pesan error, dan isi file harus dipersingkat, jika tidak lanjut ke tahap berikutnya 5. Konversi plaintext ke dalam kode ASCII 6. Bangkitkan kunci 7. Hitung ciphertext, C i = P i + K i 8. Tampilkan ciphertext yang berupa kode ASCII mod 256 ; dimana Pi adalah plaintext ke- i, Ki adalah kunci ke-i, dan Ci adalah ciphertext ke-i 9. Simpan ciphertext 10. Untuk mendekripsikannya, hitung plaintext, P i = C i - K i 11. Ubah plaintext ke karakter semula dan tampilkan mod 256 12. Finish UNIVERSITAS SUMATERA UTARA Ya Tidak A Input plaintext Bangkitkan kunci C i = P i + K i mod 256 Start If length plain 1024 Tentukan panjang plaintext, plaintext = konversi ke kode ASCII Tampilkan pesan error Tampilkan nilai ASCII, lalu simpan sebagai ciphertext UNIVERSITAS SUMATERA UTARA Gambar 3.9 Flowchart Proses Enkripsi dan Dekripsi dari Keyboard

3.5 Diagram