PERANCANGAN PROGRAM APLIKASI
3.1 Gambaran Umum Perusahaan 3.1.1 Sejarah Perusahaan
Karena diberlakukannya Peraturan Deregulasi di sektor perbankan pada tahun 1986, menyebabkan banyak bermunculan bank-bank baru. Pencetakan formulir perbankan, khususnya cetakan surat-surat berharga pada waktu itu hanya dilaksanakan oleh Perusahaan Umum Percetakan Uang Republik Indonesia (PERUM PERURI). Banyaknya permintaan mengakibatkan dibutuhkannya peran sektor swasta dalam produksi cetakan dokumen berpengaman. Hal inilah yang telah membawa PT. Swadharma Eragrafindo Sarana hadir dalam industri percetakan di Indonesia hingga saat ini.
Pada awalnya, PT. Swadharma Eragrafindo Sarana didirikan sebagai usaha patungan PT. Tri Handayani Utama, PT. Sarana Bersama Pembiayaan Indonesia, dan PT. Dian Rakyat. Secara resmi, PT. Swadharma Eragrafindo Sarana berdiri dengan dibuatnya Akte Notaris Miryam Magdalena, S.H. Nomor 24 tanggal 9 Maret 1988. Hingga saat ini kantor pusat PT. Swadharma Eragrafindo Sarana berdomisili di kawasan industri Pulo Gadung, Jakarta, dan telah memiliki 3 kantor cabang, yaitu di kota Surabaya, Bandung, dan Denpasar.
PT. Swadharma Eragrafindo Sarana merupakan perusahaan percetakan swasta nasional pertama yang mendapat kepercayaan dari pemerintah Indonesia untuk mencetak surat-surat berharga. Hal ini didasarkan pada Sertifikat Ijin Operasi
Pencetakan Dokumen Sekuriti Nomor 09/1989 yang dikeluarkan oleh Badan Koordinasi Pemberantasan Pemalsuan Uang Dan Dokumen Sekuriti (BOTASUPAL). Dokumen sekuriti merupakan barang berharga yang memiliki nilai materiil dan nilai sosial yang dikandungnya. Oleh sebab itu, rancangan suatu dokumen sekuriti harus dijaga dengan sangat ketat, agar tidak disalahgunakan oleh pihak-pihak yang tidak bertanggung jawab.
Produk yang dicetak oleh perusahaan, dirancang dengan gaya sentuhan artistik seirama dengan perkembangan teknologi canggih yang sarat dengan sistem sekuriti. Dengan demikian, perusahaan dapat memberikan sistem sekuriti yang berkualitas tinggi pada produk-produk yang dihasilkan. Salah satu contoh dari teknologi tersebut adalah
Invisible Image. Invisible Image adalah gambar yang terdapat pada cetakan dokumen
sekuriti, yang hanya dapat dilihat dengan menggunakan alat khusus seperti sinar ultra
violet. Invisible Image dicetak dengan menggunakan tinta khusus yaitu Invisible Ink.
Di samping itu, perusahaan juga selalu berupaya untuk mengembangkan teknologi dalam rangka maksimalisasi kualitas, kuantitas, dan pengamanan produk. Secara periodik, perusahaan juga melakukan riset-riset dengan perusahaan sejenis, baik di dalam maupun di luar negeri.
Contoh produk dokumen sekuriti yang telah dihasilkan oleh perusahaan, di antaranya adalah Kartu Tanda Penduduk (KTP), surat suara Pemilihan Umum, voucher, tiket, cek, ijazah, sertifikat, Surat Keterangan Pajak Daerah (SKPD) dan lain sebagainya. Di samping itu, perusahaan juga memproduksi cetakan-cetakan non sekuriti, di antaranya adalah kalender, brosur, poster, kartu nama dan lain sebagainya.
3.1.2 Struktur Organisasi Perusahaan
Untuk mencapai tujuannya, perusahaan telah menciptakan suatu manajemen yang baik dan teratur. Hingga 31 Desember 2006, jumlah karyawan PT. Swadharma Eragrafindo Sarana telah mencapai 159 orang.
Adapun struktur organisasi PT. Swadharma Eragrafindo Sarana adalah sebagai berikut.
Gambar 3.1 Struktur Organisasi PT. Swadharma Eragrafindo Sarana Sumber : Company Profile PT. Swadharma Eragrafindo Sarana (2006)
3.1.3 Permasalahan Yang Dihadapi Perusahaan
PT. Swadharma Eragrafindo Sarana memiliki 3 kantor cabang di luar kota Jakarta, yaitu di kota Surabaya, Bandung, dan Denpasar. Namun, pada ketiga kantor cabang tersebut tidak terdapat mesin pencetak dokumen sekuriti. Ketiga kantor cabang tersebut, hanya memiliki mesin-mesin cetak dokumen non sekuriti. Mesin-mesin pencetak dokumen sekuriti hanya terdapat di kantor pusat yang berdomisili di kota Jakarta. Hal ini disebabkan karena dibutuhkan biaya yang cukup besar untuk membeli mesin-mesin pencetak dokumen sekuriti tersebut. Ketiga kantor cabang tersebut hanya
membuat rancangan dokumen sekuriti yang diminta oleh pelanggan dan kemudian dicetak di Jakarta.
Selama ini, proses pengiriman file hasil rancangan yang dibuat pada kantor cabang ke kantor pusat di kota Jakarta dilakukan secara manual. File hasil rancangan dokumen sekuriti tersebut disimpan dalam suatu media penyimpanan file, seperti CD atau flashdisk. Kemudian file tersebut, dibawa ke Jakarta oleh salah seorang karyawan kantor cabang dengan menggunakan sarana transportasi. Hal ini tidaklah efisien, karena membutuhkan waktu yang cukup lama dan biaya yang cukup besar untuk melakukan pengiriman file rancangan tersebut.
Perusahaan tidak pernah melakukan proses pengiriman file rancangan dokumen sekuriti melalui jaringan komputer. Hal ini disebabkan karena perusahaan takut file rancangan dokumen sekuritinya bocor dan disalahgunakan oleh pihak-pihak yang tidak bertanggung jawab. Padahal dengan menggunakan jaringan komputer, proses pengiriman file rancangan dokumen sekuriti dapat dilakukan dengan jauh lebih cepat dan murah.
3.1.4 Usulan Pemecahan Masalah
Dengan memperhatikan permasalahan yang ada yaitu kebutuhan akan sistem pengamanan file rancangan dokumen sekuriti dan berdasarkan pengamatan di atas, maka pemecahan masalahnya adalah dengan merancang suatu program aplikasi kriptografi untuk PT. Swadharma Eragrafindo Sarana. Aplikasi tersebut, akan mengenkripsi file rancangan dokumen perusahaan. Dengan demikian, perusahaan dapat merasa aman untuk melakukan pengiriman file rancangan dokumen melalui jaringan komputer. Di samping itu, tingkat keamanan file rancangan dokumen menjadi berlipat ganda.
3.2 Perancangan Program 3.2.1 Struktur Menu
Program aplikasi kriptografi yang dirancang memiliki struktur hirarki di mana terdapat 4 sub menu dari menu utamanya. Bentuk struktur menu program aplikasi kriptografi yang dirancang dapat digambarkan sebagai berikut.
Gambar 3.2 Rancangan Struktur Menu Utama
3.2.2 State Transition Diagram (STD)
Perpindahan state setelah dilakukan sebuah event atau action pada rancangan program aplikasi kriptografi ini, dijelaskan lebih lanjut menggunakan State Transition
Diagram (STD). Di bawah ini adalah STD rancangan dari setiap modul yang terdapat
dalam program aplikasi kriptografi yang dibuat. Menu Utama
Kriptografi
Bitmap
Kriptografi
Text
Update File Kunci
Kriptografi
A STD Menu Utama
Menu Utama Kriptografi Bitmap
Kriptografi Text
Update File Kunci
Kriptografi
Help
Klik Sembarang Tempat Di Luar Menu Utama Tampilkan Pilihan Menu Utama
Klik Menu "Kriptografi Text" Tampilkan Pilihan Kriptografi Text
Klik Menu "Kriptografi Bitmap" Tampilkan Pilihan Kriptografi Bitmap
Klik Menu "Help" Tampilkan Pilihan Menu Help Klik Menu "Update File Kunci Kriptografi" Tampilkan Pilihan Update File Kunci Kriptografi
Klik Sembarang Tempat Di Luar Menu Utama Tampilkan Pilihan Menu Utama
B STD Menu Kriptografi Bitmap
Kriptografi Bitmap
Exit
Enkripsi Dekripsi
Klik Pilihan "Enkripsi" Tampilkan Mode Enkripsi
Klik Sembarang Tempat Di Dalam Menu "Kriptografi Bitmap" Tampilkan Pilihan Menu Kriptografi Bitmap
Klik Pilihan "Dekripsi" Tampilkan Mode Dekripsi
Klik Sembarang Tempat Di Dalam Menu "Kriptografi Bitmap" Tampilkan Pilihan Menu Kriptografi Bitmap Klik Pilihan "Exit"
Ke Luar Dari Program
Browse Save As Run
Clear All
Klik Pilihan "Browse" Tampilkan Dialog Box Open File Input
Klik Pilihan "Browse" Tampilkan Dialog Box Open File Input Klik Pilihan "Clear All"
Reset Semua Komponen Pada Layar Menu Kriptografi Bitmap
Klik Pilihan "Save As" Tampilkan Dialog Box Save File Output
Klik Pilihan"Run" Jalankan Proses Enkripsi Atau Dekripsi
C STD Menu Kriptografi Text
Kriptografi Text
Exit
Enkripsi Dekripsi
Klik Pilihan "Enkripsi" Tampilkan Mode Enkripsi
Klik Sembarang Tempat Di Dalam Menu "Kriptografi Text" Tampilkan Pilihan Menu Kriptografi Text
Klik Pilihan "Dekripsi" Tampilkan Mode Dekripsi
Klik Sembarang Tempat Di Dalam Menu "Kriptografi Text" Tampilkan Pilihan Menu Kriptografi Text Klik Pilihan "Exit"
Ke Luar Dari Program
Browse Save As Run
Clear All
Klik Pilihan "Browse" Tampilkan Dialog Box Open File Input
Klik Pilihan "Browse" Tampilkan Dialog Box Open File Input Klik Pilihan "Clear All"
Reset Semua Komponen Pada Layar Menu Kriptografi Text
Klik Pilihan "Save As" Tampilkan Dialog Box Save File Output
Klik Pilihan "Run" Jalankan Proses Enkripsi Atau Dekripsi
D STD Menu Update File Kunci Kriptografi
Update File Kunci
Kriptografi
Update File Exit
Klik Pilihan "Update File" Jalankan Modul Update File
Klik Sembarang Tempat Di Dalam Menu "Update File Kunci Kriptografi" Tampilkan Pilihan Menu Update File Kunci Kriptografi
Klik Pilihan "Exit" Ke Luar Dari Program
Clear All
Klik Pilihan "Clear All"
Reset Semua Komponen Pada Layar
Klik Pilihan "Exit" Ke Luar Dari Program
Gambar 3.6 STD Menu Update File Kunci Kriptografi
E STD Menu Help
Help
Exit
Klik Pilihan "Exit" Ke Luar Dari Program Klik Sembarang Tempat Di Dalam Menu "Help"
Tampilkan Menu Help
3.2.3 Rancangan Layar
Rancangan layar yang terdapat pada program aplikasi kriptografi ini terdiri dari 4 bagian besar sebagai berikut.
• Layar Menu Kriptografi Bitmap.
• Layar Menu Kriptografi Text.
• Layar Menu Update File Kunci Kriptografi.
• Layar Menu Help.
Menu-menu tersebut ditampilkan dalam bentuk tab sheet. Untuk masuk ke dalam tiap-tiap menu, user dapat mengklik tab sheet menu yang tersedia pada layar.
A Layar Menu Kriptografi Bitmap
Program Kriptografi PT. Swadharma Eragrafindo Sarana Gambar
Logo Perusahaan
Nama Perusahaan
Kriptografi Bitmap Kriptografi Text Update File Kunci Kriptografi Help
Mode Tombol "Browse" Radio Button "Enkripsi" Radio Button "Dekripsi" Tombol "Run" Tombol "Clear All" Tombol "Save As" Kunci Input p : Input a : Input nA : Input b :
Edit box "input p" Edit box "input a" Edit box "input b" Edit box "input nA" Progress Bar
File
Plain Image : Ciphertext :
Edit box "Plain Image" Edit box "Chipertext"
Kotak Gambar Tombol "Full View" Tombol "Exit" Check Box "Stretch Image"
Layar Menu “Kriptografi Bitmap” adalah layar yang pertama kali muncul begitu program aplikasi dijalankan. Pada bagian atas layar, terdapat nama dan gambar logo perusahaan. Selain itu terdapat beberapa tab sheet untuk masuk ke menu-menu lain.
Pada menu “Kriptografi Bitmap”, user dapat melakukan proses enkripsi dan dekripsi file gambar bitmap. Suatu file gambar bitmap akan dienkripsi menjadi suatu file teks (ciphertext). Dan kemudian file ciphertext tersebut dapat didekripsi kembali menjadi file gambar bitmap seperti semula. Fungsi setiap komponen pada layar tersebut adalah sebagai berikut.
• Radio Button “Enkripsi“ berfungsi untuk memilih mode enkripsi.
• Radio Button “Dekripsi“ berfungsi untuk memilih mode dekripsi.
• Tombol “Browse” berfungsi untuk memasukkan nama file gambar yang akan
dienkripsi ataupun nama file ciphertext yang akan didekripsi.
• Tombol “Save As” berfungsi untuk memasukkan nama file ciphertext hasil dari
enkripsi suatu file gambar. Tombol ini juga berfungsi untuk memasukkan nama
file gambar hasil dari dekripsi file ciphertext.
• Tombol “Clear All” berfungsi untuk me-reset ulang semua komponen yang ada
pada layar.
• Tombol “Run” berfungsi untuk menjalankan proses enkripsi atau dekripsi.
• Tombol “Full View” berfungsi untuk menampilkan gambar yang terdapat pada
layar secara utuh.
• Progress Bar berfungsi untuk memberitahu kepada user seberapa jauh proses
• Edit box “input p” berfungsi untuk meng-input kunci p ketika user akan
melakukan proses dekripsi.
• Edit box “input a” berfungsi untuk meng-input kunci a ketika user akan
melakukan proses dekripsi.
• Edit box “input b” berfungsi untuk meng-input kunci b ketika user akan
melakukan proses dekripsi.
• Edit box “input nA” berfungsi untuk meng-input kunci nA ketika user akan
melakukan proses dekripsi.
• Edit box “Plain Image” berfungsi untuk menampilkan nama file gambar.
• Edit box “Ciphertext” berfungsi untuk menampilkan nama file ciphertext.
• Kotak gambar berfungsi untuk menampilkan gambar yang akan dienkripsi
ataupun gambar hasil proses dekripsi.
• Check Box “Stretch Image” untuk memperbesar atau memperkecil gambar
sedemikian sehingga gambar dapat terlihat secara utuh sebesar ukuran kotak gambar.
• Tombol “Exit” berfungsi untuk ke luar dari program.
Jika terjadi kesalahan peng-input-an, maka akan muncul sebuah dialog box yang akan memberitahu user kesalahan apa yang terjadi. Di samping itu, setelah proses enkripsi selesai dilakukan, akan muncul sebuah dialog box yang menampilkan lamanya
waktu proses enkripsi serta nilai kunci p, a, b, dan nA. Kunci-kunci ini berfungsi untuk
mendekripsikan file yang telah dienkripsi tersebut.
Apabila user selesai melakukan proses dekripsi, akan muncul dialog box yang menampilkan lamanya waktu proses dekripsi yang dilakukan.
B Layar Menu Kriptografi Text
Program Kriptografi PT. Swadharma Eragrafindo Sarana Gambar
Logo Perusahaan
Nama Perusahaan
Kriptografi Bitmap Kriptografi Text Update File Kunci Kriptografi Help
Mode Tombol "Browse" Radio Button "Enkripsi" Radio Button "Dekripsi" Tombol "Run" Tombol "Clear All" Tombol "Save As" Kunci Input p : Input a : Input nA : Input b :
Edit box "input p" Edit box "input a" Edit box "input b" Edit box "input nA" Progress Bar
File
Plaintext : Ciphertext :
Edit box "Plaintext" Edit box "Chipertext"
Tombol
"Exit"
Gambar 3.9 Rancangan Layar Menu Kriptografi Text
Untuk masuk ke dalam menu “Kriptografi Text”, user tinggal mengklik tab sheet “Kriptografi Text”. Pada menu “Kriptografi Text”, user dapat melakukan proses enkripsi
dan dekripsi file teks. Fungsi setiap komponen pada layar tersebut adalah sebagai berikut.
• Radio Button “Enkripsi“ berfungsi untuk memilih mode enkripsi.
• Radio Button “Dekripsi“ berfungsi untuk memilih mode dekripsi.
• Tombol “Browse” berfungsi untuk memasukkan nama file plaintext yang akan
dienkripsi ataupun nama file ciphertext yang akan didekripsi.
• Tombol “Save As” berfungsi untuk memasukkan nama file ciphertext hasil dari
enkripsi suatu file plaintext. Tombol ini juga berfungsi untuk memasukkan nama
file plaintext hasil dari dekripsi suatu file ciphertext.
• Tombol “Clear All” berfungsi untuk me-reset ulang semua komponen yang ada
pada layar.
• Tombol “Run” berfungsi untuk menjalankan proses enkripsi atau dekripsi.
• Progress Bar berfungsi untuk memberitahu kepada user seberapa jauh proses
yang sudah dijalankan oleh program aplikasi.
• Edit box “input p” berfungsi untuk meng-input kunci p ketika user akan
melakukan proses dekripsi.
• Edit box “input a” berfungsi untuk meng-input kunci a ketika user akan
melakukan proses dekripsi.
• Edit box “input b” berfungsi untuk meng-input kunci b ketika user akan
melakukan proses dekripsi.
• Edit box “input nA” berfungsi untuk meng-input kunci nA ketika user akan
melakukan proses dekripsi.
• Edit box “Ciphertext” berfungsi untuk menampilkan nama file ciphertext.
• Tombol “Exit” berfungsi untuk ke luar dari program.
Jika terjadi kesalahan peng-input-an, maka akan muncul sebuah dialog box yang akan memberitahu user kesalahan apa yang terjadi. Di samping itu, setelah proses enkripsi selesai dilakukan, akan muncul sebuah dialog box yang menampilkan lamanya
waktu proses enkripsi serta nilai kunci p, a, b, dan nA. Kunci-kunci ini berfungsi untuk
mendekripsikan file yang telah dienkripsi tersebut.
Sedangkan apabila user selesai melakukan proses dekripsi, akan muncul suatu
C Layar Menu Update File Kunci Kriptografi
Program Kriptografi PT. Swadharma Eragrafindo Sarana Gambar
Logo Perusahaan
Nama Perusahaan
Kriptografi Bitmap Kriptografi Text Update File Kunci Kriptografi Help
Batas p Tombol "Update File" Tombol "Clear All" Keterangan p : Edit box "p"
Edit box "a" Edit box "b"
Progress Bar Group Box "Hasil"
Jumlah kombinasi p, a, dan b yang didapat : Jumlah titik terbanyak pada p = 283 :
Tombol
"Exit"
Input p awal : Input p awal :
Edit box "p awal"
a : b :
Edit box "p akhir"
Jumlah titik tersedikit pada p = 283 :
Gambar 3.10 Rancangan Layar Menu Update File Kunci Kriptografi
Untuk masuk ke dalam menu “Update File Kunci Kriptografi”, user tinggal mengklik tab sheet “Update File Kunci Kriptografi”. Pada menu “Update File Kunci Kriptografi”, user dapat mengupdate file teks yang bernama “kombinasi_kunci_pab.txt”.
File tersebut berisi kombinasi kunci p, a, dan b yang dapat membentuk 256 titik pada
persamaan kurva elliptic. Ke 256 titik ini akan merepresentasikan 256 jenis karakter pada ASCII. Kombinasi kunci p, a, dan b yang terdapat dalam file “kombinasi_kunci_pab.txt” ini nantinya akan digunakan dalam proses enkripsi suatu
file.
Sedangkan fungsi setiap komponen pada layar menu ini adalah sebagai berikut. • Edit box “p awal” berfungsi untuk memasukkan batas p awal. Batas p awal ini
telah ditentukan, yaitu sebesar 227. Hal ini disebabkan karena pada p yang kurang 227, tidak ditemukan kombinasi kunci p, a, dan b yang dapat membentuk 256 titik pada persamaan kurva elliptic.
• Edit box “p akhir” berfungsi untuk memasukkan batas p akhir. Nilai p akhir yang
boleh diinput adalah mulai dari 227 sampai dengan 283. Hal ini disebabkan karena pada p yang kurang dari 227 dan lebih besar dari 283, tidak ditemukan kombinasi kunci p, a, dan b yang dapat membentuk 256 titik pada persamaan kurva elliptic. Semakin besar nilai p akhir yang diinput, maka jumlah kombinasi yang didapatkan akan semakin banyak.
• Tombol “Clear All” berfungsi untuk me-reset ulang semua komponen yang ada
pada layar.
• Tombol “Update File” berfungsi untuk menjalankan proses update file
“kombinasi_kunci_pab.txt”.
• Progress Bar berfungsi untuk memberitahu kepada user seberapa jauh proses update file yang sudah dijalankan oleh program aplikasi.
• Edit box “p” berfungsi untuk menampilkan kunci p yang sedang dihitung ketika
proses update file sedang berjalan.
• Edit box “a” berfungsi untuk menampilkan kunci a yang sedang dihitung ketika
proses update file sedang berjalan.
• Edit box “b” berfungsi untuk menampilkan kunci b yang sedang dihitung ketika
proses update file sedang berjalan.
• Group box “Hasil” berfungsi untuk menampilkan keterangan mengenai jumlah
kombinasi kunci yang didapatkan, jumlah titik tersedikit dan terbanyak pada bilangan p prima yang terakhir didapat.
• Tombol “Exit” berfungsi untuk ke luar dari program.
Jika terjadi kesalahan peng-input-an, maka akan muncul sebuah dialog box yang akan memberitahu user kesalahan apa yang terjadi. Di samping itu, setelah proses
update file kunci kriptografi selesai dilakukan, akan muncul sebuah dialog box yang
D Layar Menu Help
Program Kriptografi PT. Swadharma Eragrafindo Sarana Gambar
Logo Perusahaan
Nama Perusahaan
Kriptografi Bitmap Kriptografi Text Update File Kunci Kriptografi Help
Memo
Tombol
"Exit"
Gambar 3.11 Rancangan Layar Menu Help
Untuk masuk ke dalam menu “Help”, user tinggal mengklik tab sheet “Help”. Pada menu “Help”, hanya terdapat dua buah komponen. Komponen-komponen tersebut
adalah memo dan tombol “Exit”. Pada memo terdapat teks yang berisi penjelasan singkat mengenai penggunaan program. Sedangkan tombol “Exit” berfungsi untuk ke luar dari program.
3.2.4 Spesifikasi Modul Modul reset_semua
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