• Tidak ada hasil yang ditemukan

Spesifikasi Modul Modul reset_semua

Dalam dokumen BAB 3 PERANCANGAN PROGRAM APLIKASI (Halaman 21-38)

Fungsi: men-setting nilai awal semua variabel global.

BEGIN

Setting nilai awal semua variabel global END

Modul hapus_gambar

Fungsi: menghapus gambar yang terdapat pada kotak gambar.

BEGIN

Batas atas kanvas = 0

Batas bawah kanvas = tinggi gambar Batas kiri kanvas = 0

Batas kanan kanvas = lebar gambar Lukis semua kanvas dengan warna putih

END

Modul hapus_semua1

Fungsi: membersihkan dan menonaktifkan semua komponen yang ada pada menu “Kriptografi Bitmap”, kecuali radio button “Enkripsi”, radio button “Dekripsi”, dan tombol “Clear All”.

BEGIN

Aktifkan radio buton “Enkripsi” Aktifkan radio buton “Dekripsi” Nonaktifkan tombol “Run” Nonaktifkan tombol “Browse” Nonaktifkan tombol “Save As” Nonaktifkan tombol “Full View”

Nonaktifkan edit box “input p” Bersihkan edit box “input p” Nonaktifkan edit box “input a” Bersihkan edit box “input a” Nonaktifkan edit box “input b” Bersihkan edit box “input b” Nonaktifkan edit box “input nA” Bersihkan edit box “input nA” Hilangkan edit box “ciphertext” Bersihkan edit box “ciphertext” Hilangkan edit box “plain image” Bersihkan edit box “plain image” Panggil modul hapus_gambar Panggil modul reset_semua

END

Modul hapus_semua2

Fungsi: membersihkan dan menonaktifkan semua komponen yang ada pada menu “Kriptografi Text”, kecuali radio button “Enkripsi”, radio button “Dekripsi”, dan tombol “Clear All”.

BEGIN

Aktifkan radio buton “Enkripsi” Aktifkan radio buton “Dekripsi” Nonaktifkan tombol “Run” Nonaktifkan tombol “Browse” Nonaktifkan tombol “Save As” Nonaktifkan edit box “input p” Bersihkan edit box “input p” Nonaktifkan edit box “input a” Bersihkan edit box “input a” Nonaktifkan edit box “input b” Bersihkan edit box “input b” Nonaktifkan edit box “input nA” Bersihkan edit box “input nA” Hilangkan edit box “ciphertext” Bersihkan edit box “ciphertext” Hilangkan edit box “plain image” Bersihkan edit box “plain image”

Reset Posisi Progress Bar

Panggil modul reset_semua

Modul hapus_semua3

Fungsi: membersihkan dan menonaktifkan semua komponen yang ada pada menu “Update File Kunci Kriptografi”, kecuali edit box “p awal” dan edit box “p akhir”.

BEGIN

Aktifkan tombol “Clear All” Aktifkan tombol “Update File” Nonaktifkan edit box “p” Bersihkan edit box “p” Nonaktifkan edit box “a” Bersihkan edit box “a” Nonaktifkan edit box “b” Bersihkan edit box “b” Hilangkan group box “Hasil”

Reset posisi Progress Bar

Panggil modul reset_semua

END

Modul Form Create

Fungsi: meen-setting tampilan awal layar dan nilai awal variabel global pada saat pertama kali program aplikasi dijalankan.

BEGIN

Tampilkan dialog box “Peringatan untuk tidak mengcopy file”

IF menekan tombol “Cancel” THEN

ke luar dari program

ELSE

Mencatat nama file kunci kriptografi Buat kanvas

Panggil modul hapus_semua1 Panggil modul hapus_semua2 Panggil modul hapus_semua3 Panggil modul reset_semua

Tulis keterangan menggunakan program pada menu “Help”

ENDIF END

Modul RBEnkripsi1Click

Fungsi: mensetting tampilan awal mode enkripsi pada menu “Kriptorafi Bitmap”, ketika user mengklik radio button “Enkripsi”.

BEGIN

Aktifkan tombol “Browse” Nonaktifkan edit box “input p” Bersihkan edit box “input p” Nonaktifkan edit box “input a” Bersihkan edit box “input a” Nonaktifkan edit box “input b” Bersihkan edit box “input b” Nonaktifkan edit box “input nA” Bersihkan edit box “input nA” Nonaktifkan tombol “Clear All”

END

Modul Dekripsi1Click

Fungsi: mensetting tampilan awal mode enkripsi pada menu “Kriptografi

Bitmap”, ketika user mengklik radio button “Dekripsi”. BEGIN

Aktifkan tombol “Browse”

Aktifkan edit box “input p”

Aktifkan edit box “input a”

Aktifkan edit box “input b”

Aktifkan edit box “input nA”

Aktifkan tombol “Clear All”

END

Modul BBrowse1Click

Fungsi: memasukkan nama file yang akan dienkripsi atau didekripsi pada menu “Kriptografi Bitmap”, ketika user mengklik tombol “Browse”.

BEGIN

IF radio button “Dekripsi” diklik THEN

Tampilkan dialog box “Open File”

Filter file yang dapat dibuka adalah file text (*.TXT)

Nonaktifkan radio button “Enkripsi”

Nonaktifkan radio button “Dekripsi”

Nonaktifkan tombol “Browse”

Tampilkan label “input”

Tampilkan nama file yang akan dienkripsi pada edit box “input”

Aktifkan tombol “Save As”

ELSE

Tampilkan dialog box “Open File”

Filter file yang dapat dibuka adalah file bitmap (*.BMP)

Tampilkan Group Box “File”

Nonaktifkan radio button “Enkripsi”

Nonaktifkan radio button “Dekripsi”

Nonaktifkan tombol “Browse”

Tampilkan label “input”

Tampilkan nama file yang akan dienkripsi pada edit box “input”

Aktifkan tombol “Save As” Buat kanvas pada kotak gambar

Tampilkan gambar bitmap pada kanvas

Aktifkan check box “Stretch Image”

Aktifkan tombol “Full View”

Simpan lebar gambar pada variabel global “lebar” Simpan tinggi gambar pada variabel global “tinggi”

Simpan ukuran bit depth gambar pada variabel global “bitdepth”

Simpan ukuran resolusi horisontal gambar pada variabel global “resolusix” Simpan ukuran resolusi vertikal gambar pada variabel global “resolusiy”

ENDIF END

Modul BSave1Click

Fungsi: memasukkan nama file hasil enkripsi atau dekripsi suatu file pada menu “Kriptografi Bitmap”, ketika user mengklik tombol “Save As”.

BEGIN

IF radio button “Enkripsi” diklik THEN

Tampilkan dialog box “Save File”

Filter nama file yang dapat disimpan adalah file text (*.TXT)

Tampilkan label “output”

Tampilkan nama file yang akan dienkripsi pada edit box “output”

Aktifkan tombol “Run”

Nonaktifkan tombol “Save As”

ELSE

Tampilkan dialog box “Save File”

Filter nama file yang dapat disimpan adalah file bitmap (*.BMP)

Tampilkan nama file yang akan dienkripsi pada edit box “output” Aktifkan tombol “Run”

Nonaktifkan tombol “Save As”

ENDIF END

Modul jumlah_sama

Fungsi: menjumlahkan dua titik yang sama pada kurva elliptic.

BEGIN

Hitung pembilang gradien singgung Hitung penyebut gradien singgung

IF penyebut gradien garis singgung = 0 THEN

Hasil penggandaan titik tersebut adalah titik infinitas dan ASCII nya 256

ELSE

Gradien garis singgung = (pembilang / penyebut) modulo p Hitung kooordinat titik hasil penggandaan titik tersebut Cari ASCII titik tersebut

ENDIF END

Modul jumlah_lawan

Fungsi: menjumlahkan dua buah titik pada kurva elliptic yang saling berlawanan.

BEGIN

Hasil penjumlahan dua titik yang berlawanan adalah titik infinitas

END

Modul jumlah_beda

Fungsi: menjumlahkan dua buah titik yang berbeda pada kurva elliptic.

BEGIN

Hitung pembilang gradien garis potong dua titik yang berbeda Hitung penyebut gradien garis potong dua titik yang berbeda Hitung gradien garis potong

Hitung titik koordinat hasil penjumlahan dua titik yang berbeda Cari ASCII titik tersebut

Modul jumlah

Fungsi: menjumlahkan dua buah titik pada kurva elliptic.

BEGIN

IF titik P adalah titik infinitas and titik Q bukan titik infinitas THEN

Hasil penjumlahannya adalah titik P

ELSE IF titik P bukan titik infinitas and titik Q adalah titik infinitas THEN

Hasil penjumlahannya adalah titik Q

ELSE IF titik P adalah titik infinitas and titik Q adalah titik infinitas THEN

Hasil penjumlahannya adalah titik infinitas

ELSE

IF xP = xQ THEN

IF yP = yQ THEN

Panggil modul jumlah_sama

ELSE IF yP ≠ yQ THEN

Panggil modul jumlah_lawan

ENDIF ELSE

Panggil modul jumlah_beda

ENDIF ENDIF END

Modul perkalian

Fungsi: mengalikan titik P pada kurva elliptic dengan sebuah bilangan asli n.

BEGIN

Jumlahkan titik P sebanyak n kali.

END

Modul cari_G

Fungsi: mencari titik G secara acak.

BEGIN

Acak titik G, di mana ASCII huruf G adalah mulai dari 0 sampai dengan 254

END

Modul cari_n

BEGIN

WHILE hasil perkalian bukan titik infinitas DO

Kalikan titik G sebanyak n kali

ENDWHILE

Simpan besar n

END

Modul cari_nA

Fungsi: mencari nilai nA secara acak.

BEGIN

Acak bilangan asli mulai dari 1 sampai dengan n-1

Simpan bilangan asli tersebut sebagai nA

END

Modul cari_PA

Fungsi: menghitung titik PA, di mana PA = nA . G

BEGIN

Kalikan nA dengan titik G Simpan titik PA

END

Modul acak_k

Fungsi: mencari nilai k secara acak.

BEGIN

Acak bilangan asli antara 0 sampai dengan p Simpan bilangan tersebut sebagai k

END

Modul cari_kG

Fungsi: mengalikan k dengan titik G

BEGIN

Kalikan k dengan titik G

Modul cari_kPA

Fungsi: mengalikan k dengan titik PA

BEGIN

Kalikan k dengan titik PA

Simpan hasil perkalian sebagai titik kPA

END

Modul jumlah_PmkPA

Fungsi: menjumlahkan titik Pm (titik sebuah karakter plaintext) dengan titik kPA

BEGIN

Jumlahkan titik Pm dengan titik kPA

END

Modul enkripsi

Fungsi: mengenkripsi sebuah karakter.

BEGIN

Panggil modul acak_k Panggil modul cari_kG Panggil modul cari_kPA

Panggil modul jumlah_Pm_kPA

END

Modul cari_nAcm1

Fungsi: mengalikan titik Cm yang pertama dengan nA.

BEGIN

Kalikan titik Cm yang pertama dengan nA

Simpan hasilnya sebagai titik nACm1

END

Modul minus_nAcm1

Fungsi: mencari titik yang berlawanan dengan titik nACm1.

BEGIN

Simpan hasilnya sebagai titik -nACm1

END

Modul jumlah_cm2_minus

Fungsi: menjumlahkan titik Cm2 dengan titik -nACm1.

BEGIN

Jumlahkan titik Cm2dengan titik -nACm1

END

Modul dekripsi

Fungsi: mendekripsikan sebuah karakter pada ciphertext.

BEGIN

Panggil modul cari_nAcm1 Panggil modul minus_nAcm1 Panggil modul jumlah_cm2_minus

END

Modul baca_baris

Fungsi: menghitung jumlah baris sebuah file text.

BEGIN

Baca file text

Hitung jumlah baris file text tersebut

END

Modul baca_file_kombinasi

Fungsi: membaca file kunci kriptografi “kombinasi_pab.txt” dan mendapatkan kombinasi kunci p, a, dan b.

BEGIN

Panggil modul baca_baris

IF file “kombinasi_kunci_pab.txt” ada THEN

IF header file = ‘KOMBINASI_KUNCI_PAB_SES’ THEN

Hitung banyak baris

Hitung banyak kombinasi kunci p, a, dan b

Panggil modul bentuk_titik

ENDIF ENDIF END

Modul periksa_angka

Fungsi: memeriksa apakah sebuah string terdiri dari angka-angka.

BEGIN

Hitung panjang string

Cek apakah karakter pertama sampai karakter terakhir string adalah angka

END

Modul bentuk_titik

Fungsi: membuat representasi karakter ASCII pada titik-titik yang dibentuk oleh persamaan kurva elliptic.

BEGIN

Cari titik-titik yang terdapat pada persamaan kurva elliptic Simpan koordinat titik tersebut ke dalam nomor desimal ASCII Hitung banyak titik

END

Modul BRun1Click

Fungsi: menjalankan proses enkripsi atau dekripsi file bitmap, ketika tombol “Run” pada menu “Kriptografi Bitmap” diklik.

BEGIN

Nonaktifkan tombol “Browse” Nonaktifkan tombol “Save As”

Cek validasi nama file input dan output

IF radio button “Enkripsi” diklik THEN

Buka file input Bentuk file output

Panggil modul baca_file_kombinasi

IF file “kombinasi_kunci_pab.txt” ditemukan THEN

Simpan waktu proses dimulai Tulis header file

Panggil modul cari_n Panggil modul cari_nA Panggil modul cari_PA

Simpan ukuran resolusi horisontal gambar

Panggil modul enkripsi untuk mengenkripsi ukuran resolusi horisontal Simpan ukuran resolusi vertikal gambar

Panggil modul enkripsi untuk mengenkripsi ukuran resolusi vertikal Simpan ukuran bit depth gambar

Panggil modul enkripsi untuk mengenkripsi ukuran bit depth Simpan tinggi gambar

Panggil modul enkripsi untuk mengenkripsi tinggi Tulis hasil enkripsi

Simpan lebar gambar

Panggil modul enkripsi untuk mengenkripsi lebar Tulis hasil enkripsi

FOR pikselx = 0 to (lebar-1) DO FOR piksely = 0 to (tinggi-1) DO

Atur posisi progress bar

Simpan informasi warna pada piksel[x,y]

Panggil modul enkripsi untuk mengenkripsi informasi warna

ENDFOR ENDFOR

Simpan waktu proses selesai

Tampilkan dialog box yang memberitahu bahwa proses telah selesai

ENDIF

Tutup file input dan output

ELSE

Periksa semua kunci yang diinput

IF kunci yang diinput benar THEN

Buka file input Bentuk file output

Panggil modul baca_baris Baca header file

IF header file benar THEN

Simpan waktu proses dimulai Panggil modul cari_G

Panggil modul cari_n Panggil modul cari_nA Panggil modul cari_PA

FOR ulang = 1 to ((jumlah baris-1)/2) DO

Panggil modul dekripsi

Simpan ukuran resolusi horisontal gambar Panggil modul dekripsi

Simpan ukuran resolusi vertikal gambar Panggil modul dekripsi

Simpan tinggi gambar Panggil modul dekripsi

Simpan tinggi gambar Panggil modul dekripsi Simpan lebar gambar Panggil modul dekripsi

Simpan informasi warna gambar pada tiap piksel Bentuk gambar pada kanvas

Atur posisi progress bar

ENDFOR

Simpan gambar yang terbentuk pada kanvas ke dalam file bitmap

Setting ukuran resolusi horisontal gambar Setting ukuran resolusi vertikal gambar

Tampilkan dialog box yang memberitahu bahwa proses telah selesai Nonaktifkan tombol “Run”

Nonaktifkan edit box “input p” Nonaktifkan edit box “input a” Nonaktifkan edit box “input b” Nonaktifkan edit box “input nA” Aktifkan tombol “Clear All” Aktifkan tombol “Full View”

ENDIF

Tutup file input dan output

ENDIF ENDIF

Panggil modul reset_semua

END

Modul BCancel1Click

Fungsi: mereset semua komponen yang terdapat pada layar menu “Kriptografi

Bitmap” dan semua variabel global, ketika tombol “Clear All” diklik. BEGIN

Panggil modul hapus_semua1 Panggil modul reset_semua Panggil modul hapus_gambar

Reset posisi progress bar END

Modul BFullClick

Fungsi: memperlihatkan gambar secara utuh, ketika tombol “Full View” diklik.

BEGIN

Panjang scroll bar vertikal Form full screen = tinggi gambar Tampilkan Form full screen

END

Modul StretchCheckClick

Fungsi: menyesuaikan ukuran kanvas dengan ukuran kotak gambar, ketika check

box “Stretch Image” diklik. BEGIN

IF check box “Stretch Image” diklik THEN Stretch gambar sebesar kotak gambar END

Modul RBEnkripsi2Click

Fungsi: mensetting tampilan awal mode enkripsi pada menu “Kriptorafi Text”, ketika user mengklik radio button “Enkripsi”.

BEGIN

Aktifkan tombol “Browse” Nonaktifkan edit box “input p” Bersihkan edit box “input p” Nonaktifkan edit box “input a” Bersihkan edit box “input a” Nonaktifkan edit box “input b” Bersihkan edit box “input b” Nonaktifkan edit box “input nA” Bersihkan edit box “input nA” Nonaktifkan tombol “Clear All”

END

Modul Dekripsi2Click

Fungsi: mensetting tampilan awal mode enkripsi pada menu “Kriptografi Text”, ketika user mengklik radio button “Dekripsi”.

BEGIN

Aktifkan tombol “Browse”

Aktifkan edit box “input p”

Aktifkan edit box “input a”

Aktifkan edit box “input nA”

Aktifkan tombol “Clear All”

END

Modul BBrowse2Click

Fungsi: memasukkan nama file yang akan dienkripsi atau didekripsi pada menu “Kriptografi Text”, ketika user mengklik tombol “Browse”.

BEGIN

Tampilkan dialog box “Open File”

Filter file yang dapat dibuka adalah file text (*.TXT)

Tampilkan Group Box “File”

Nonaktifkan radio button “Enkripsi”

Nonaktifkan radio button “Dekripsi”

Nonaktifkan tombol “Browse”

Tampilkan label “input”

Tampilkan nama file yang akan dienkripsi pada edit box “input”

Aktifkan tombol “Save As”

END

Modul BSave2Click

Fungsi: memasukkan nama file hasil enkripsi atau dekripsi suatu file pada menu “Kriptografi Text”, ketika user mengklik tombol “Save As”.

BEGIN

Tampilkan dialog box “Save File”

Filter nama file yang dapat disimpan adalah file text (*.TXT)

Tampilkan label “output”

Tampilkan nama file yang akan dienkripsi pada edit box “output”

Aktifkan tombol “Run”

Nonaktifkan tombol “Save As”

END

Modul BCancel2Click

Fungsi: mereset semua komponen yang terdapat pada layar menu “Kriptografi

Text” dan semua variabel global, ketika tombol “Clear All” diklik. BEGIN

Panggil modul hapus_semua2 Panggil modul reset_semua

Reset posisi progress bar END

Modul BRun2Click

Fungsi: menjalankan proses enkripsi atau dekripsi file teks, ketika tombol “Run” pada menu “Kriptografi Text” diklik.

BEGIN

Nonaktifkan tombol “Browse” Nonaktifkan tombol “Save As”

Cek validasi nama file input dan output

IF radio button “Enkripsi” diklik THEN

Buka file input Bentuk file output

Panggil modul baca_file_kombinasi

IF file “kombinasi_kunci_pab.txt” ditemukan THEN

Simpan waktu proses dimulai Tulis header file

Panggil modul cari_G Panggil modul cari_n Panggil modul cari_nA Panggil modul cari_PA Panggil modul baca_baris

FOR ulang = 1 to jumlah baris DO

Baca karakter pada file plaintext

Panggil modul enkripsi untuk mengenkripsi karakter tersebut Tulis hasil enkripsi pada file ciphertext

Atur posisi progress bar

ENDFOR

Simpan waktu proses selesai

Tampilkan dialog box yang memberitahu bahwa proses telah selesai

ENDIF

Tutup file input dan output

ELSE

Periksa semua kunci yang diinput

IF kunci yang diinput benar THEN

Buka file input Bentuk file output

Panggil modul baca_baris Baca header file

IF header file benar THEN

Panggil modul cari_G Panggil modul cari_n Panggil modul cari_nA Panggil modul cari_PA

FOR ulang = 1 to ((jumlah baris-1)/2) DO

Baca ASCII pada setiap baris file ciphertext Panggil modul dekripsi

Tulis karakter hasil proses dekripsi pada file plaintext Atur posisi progress bar

ENDFOR

Tampilkan dialog box yang memberitahu bahwa proses telah selesai Nonaktifkan tombol “Run”

Nonaktifkan edit box “input p” Nonaktifkan edit box “input a” Nonaktifkan edit box “input b” Nonaktifkan edit box “input nA” Aktifkan tombol “Clear All”

ENDIF

Tutup file input dan output

ENDIF ENDIF

Panggil modul reset_semua

END

Modul BClearClick

Fungsi: mereset semua komponen pada layar menu “Update File Kunci Kriptografi”, ketika tombol ”Clear All” diklik.

BEGIN

Panggil modul hapus_semua3 Panggil modul reset_semua

Reset posisi progress bar

Nonaktifkan tombol “Clear All”

END

Modul BUpdateClick

Fungsi: mengupdate file “kombinasi_kunci_pab.txt”, yang berisi kombinasi kunci p, a, dan b yang dapat membentuk 256 titik pada kurva elliptic.

BEGIN

IF nilai p akhir 227 atau p akhir 283 THEN

FOR p = p awal to p akhir DO IF p adalah bilangan prima THEN

FOR a = 0 to p-1 DO FOR b = 0 to p-1 DO

Panggil modul bentuk_titik

IF jumlah titik = 256 THEN

Tulis p, a, dan b ke dalam file “kombinasi_kunci_pab.txt” Hitung jumlah kombinasi kunci p, a, dan b yang ditemukan

ENDIF ENDFOR ENDFOR ENDIF ENDFOR ENDIF

Tampilkan jumlah kombinasi kunci p, a, dan b yang ditemukan Tampilkan jumlah titik tersedikit pada bilangan p prima yang terakhir Tampilkan jumlah titik terbanyak pada bilangan p prima yang terakhir

END

Modul BExitClick

Fungsi: ke luar dari program, ketika tombol “Exit” diklik.

BEGIN

Akhiri aplikasi

Dalam dokumen BAB 3 PERANCANGAN PROGRAM APLIKASI (Halaman 21-38)

Dokumen terkait