Kode Program cryptIDE HASIL DAN PEMBAHASAN

submenu Save, Save As, Save All, Close, Close All, Close All Except This, Cut, Copy, Paste, dan Select All. Gambar 4.29 Menu Popup Tab Code Editor

4.2 Kode Program cryptIDE

Code editor pada cryptIDE memanfaatkan komponen TCodeEditor. TCodeEditor diturunkan dari kelas TRichEdit, dengan penambahan beberapa metode dan properti. Beberapa diantaranya memegang peranan penting pada proses code highlighting. function TCo deEditor.getlexemestr: string; var pos: TPoint; checkonly: boolean: string; Fungsi getlexeme merupakan metode pada kelas TCodeEditor yang bertanggung jawab untuk mengembalikan satu buah lexeme berikutnya dari string masukan str dimulai dari posisi pos . Selama proses getlexeme , posisi pos akan ‘digeser’ ke posisi berikutnya sampai dicapai akhir string str atau sampai ditemukan akhir dari lexeme. Rincian fungsi getlexeme diperlihatkan pada Lampiran A. Proses yang digunakan untuk perolehan lexeme pada code highlighting sedikit berbeda Jefri Umar : Analisis Perancangan Perangkat Lunak Ide Integrated Development Environment Fortran G77, 2009. dengan proses pada analisis leksikal. Pada proses perolehan lexeme pada code highlighting, karakter whitespace, karakter khusus, dan komentar tidak dibuang, melainkan dikembalikan sebagai lexeme. procedure TC odeEditor.highlightvar pos: TPoint; str: string; Prosedur highlight juga merupakan satu diantara metode kelas TCodeEditor. Prosedur highlight melakukan code highlighting satu baris masukan, dengan cara memanggil fungsi getlexeme dan melakukan analisis tiap lexeme sampai tidak terdapat lexeme yang bisa dikembalikan oleh fungsi getlexeme . Rincian prosedur highlight diperlihatkan pada Lampiran B. Cara kerja metode highlight adalah mula-mula memeriksa apakah baris masukan str merupakan komentar. Jika baris str merupakan komentar, maka baris tersebut akan di-highlight dengan font style komentar. Jika bukan, maka proses dilanjutkan dengan memeriksa lexeme yang dikembalikan dari pemanggilan fungsi getlexe me , dan ditentukan jenis lexeme tersebut, apakah merupakan karakter biasa, komentar, kata tercadang, konstanta bilangan bulat desimal, konstanta bilangan pecahan, konstanta bilangan bulat biner, konstanta bilangan bulat oktal, konstanta bilangan bulat heksadesimal, konstanta untaian karakter, atau kata biasa. function Gen erateKeyregNo: Shortstring: Shortstring; var i: integer; begin result := ; for i := LengthregNo downto 1 do result := result + regNo[i]; end; Fungsi GenerateKey merupakan fungsi yang terdapat pada berkas Pcrypt.dll. Fungsi GenerateKey digunakan untuk membangkitkan kunci dari data nomor registrasi pengguna. Algoritma kriptografi yang digunakan adalah algoritma kriptografi klasik Caesar Cipher, dengan pergeseran karakter untuk tiap karakter masukan adalah sebanyak urutan karakter kunci pada tabel ASCII. Jefri Umar : Analisis Perancangan Perangkat Lunak Ide Integrated Development Environment Fortran G77, 2009. function dec riptcipher, key: Shortstring: Shortstring; var i: integer; begin result := ; for i := 1 to lengthcipher do begin if ordcipher[i] ordkey[i mod lengthkey+1] then result := result + chr256-ordkey[i mod lengthkey+1]- ordcipher[i] else result := result + chrordcipher[i]- ordkey[i-1 mod lengthkey+1]; end; end; Fungsi decript merupakan fungsi yang terdapat pada berkas Pcrypt.dll. Fungsi decript digunakan untuk melakukan dekripsi tiap karakter masukan cipher dengan kunci key . function enc riptplain, key: Shortstring: Shortstring; var i: integer; begin result := ; for i := 1 to lengthplain do result := result + chrordplain[i]+ ordkey[i-1 mod lengthkey+1] mod 256; end; Fungsi encript merupakan fungsi yang terdapat pada berkas Pcrypt.dll. Fungsi encript digunakan untuk melakukan enkripsi tiap karakter masukan plain dengan kunci key . Ketika pengguna memilih berkas kode sumber yang akan dibuka, maka cryptIDE akan memeriksa ekstensi berkas kode sumber tersebut. Jika berkas kode sumber tersebut berekstensi .4esc, maka berkas tersebut merupakan berkas kode sumber terenkripsi. Kemudian cryptIDE akan memeriksa status registrasi pengguna. Jika pengguna telah melakukan registrasi, maka proses berikutnya adalah membaca dan melakukan dekripsi tiap baris berkas kode sumber terenkripsi tersebut dengan kunci yang dibangkitkan dari nomor registrasi, dan menampilkannya ke tab page code editor sampai dicapai akhir dari berkas end of file tersebut. Cuplikan kode program berikut merupakan cuplikan kode program untuk membaca, mendekripsi tiap baris Jefri Umar : Analisis Perancangan Perangkat Lunak Ide Integrated Development Environment Fortran G77, 2009. berkas kode sumber terenkripsi dan kemudian menampilkannya ke tab page code editor. ... AssignFilef, Ta b.path; resetf; while noteoff do begin readlnf, temp; if reged then Tab.codeedtr.Lines.Adddecripttemp, GenKeyregNo else Tab.codeedtr.Lines.Addtemp; end; ... Ketika pengguna akan menyimpan suatu berkas kode sumber tab page dengan suatu nama berkas, maka cryptIDE akan memeriksa ekstensi nama berkas kode sumber tersebut untuk menentukan jenis berkas kode sumber tersebut. Jika nama berkas kode sumber tersebut berekstensi .4esc, maka berkas tersebut merupakan berkas kode sumber terenkripsi. Kemudian cryptIDE akan memeriksa status registrasi pengguna. Jika pengguna telah melakukan registrasi, maka proses berikutnya adalah membaca dan melakukan enkripsi tiap baris berkas kode sumber tab page tersebut dengan kunci yang dibangkitkan dari nomor registrasi, dan kemudian menuliskannya ke berkas sampai dicapai akhir baris berkas tab page tersebut. Cuplikan kode program berikut merupakan cuplikan kode program untuk membaca, mengenkripsi tiap baris berkas kode sumber tab page dan kemudian menuliskannya ke dalam berkas kode sumber. ... AssignFilef, Sa veDialogSource.FileName; rewritef; temp := GenKeyregNo; for i := 0 to TCodeEditorPgCtrlSource.Pages[ix].Components[0].Lines.Count-1 do writelnf, encriptTCodeEditorPgCtrlSource.Pages[ix].Components[0].Lines[i], temp; CloseFilef; ... Jefri Umar : Analisis Perancangan Perangkat Lunak Ide Integrated Development Environment Fortran G77, 2009.

4.3 Pembahasan cryptIDE