Tahap akhir pada prinsipnya sama dengan tahap ketiga, hanya saja bit-bit hasil decoding base64
dan dekripsi XOR tidak di-encode seperti tahap sebelumnya. Hal ini dilakukan karena data tidak perlu dikirimkan lagi. Yang di perlukan pada tahap akhir
adalah data kembali ke bentuk semula bentuk sebelum dienkripsi oleh pengirim. Untuk itu hasil dekripsi harus di dekompresi untuk mendapatkan bentuk semula.
Algoritma dekompresi dituliskan sebagai pseudo code berikut.
Tabel 3.15 Pseudocode dan Kompleksitas AlgoritmaDekompresi LZW
Step Pseudo code
1 : 2 :
3 : 4 :
5 : 6 :
7 : 8 :
9 : 10:
11: 12:
13: 14:
15: 16:
17: 18:
19: dictionary
null
for i = 0 to 255 do
dictionary[i] convertToASCIICharsi
dictionaryBitLength
¬lengthOfconvertToBinarylengthOfdictionary
endfor prev
getStreamFromDictionaryinputStream0 uncompressed
prev
for i = 1 to lengthOfinputStream
temp getStreamFromDictionaryinputStreami
if temp = ‘’ then
entry temp
else
entry prev + firstCharOfprev
endif uncompressed
entry addTodictionaryprev + firstCharOfentry
prev entry
endfor
1 255
1255 1255
1 1
n 1n
1n 1n
1n 1n
1n 1n
1n
Kompleksitas Big-O On
3.2 Perancangan Sistem
Berdasarkan hasil analisis proses yang berlangsung dalam sistem diperoleh gambaran fungsionalitas yang nantinya diterapkan pada sistem. Berdasarkan gambaran ini
dibangun suatu model rancangan yang diwujudkan dalam bentuk class diagram, rancangan struktur direktori pada berkas .xpi dan rancangan antarmuka pengguna,
dimana rancangan ini nantinya akan diimplementasikan menggunakan bahasa pemrograman.
Universitas Sumatera Utara
3.2.1 Class Diagram
Berdasarkan informasi yang yang diperoleh dari hasil analisis dan pemodelan sistem dibuatlah rancang bangun berupa class diagram yang berisikan informasi kelas-kelas
yang nantinya diimplementasi dengan bahasa pemrograman. Untuk memenuhi kebutuhan pesyaratan sistem dirancang 4 buah kelas yang terdiri dari kelas
cryptography , lzwCompression, encoDecoding dan ioFileAccessing. Masing-masing
kelas dan atributnya dinyatakan dalam tabel dibawan ini.
Tabel 3.16Kelas dan Atributnya
Nama Kelas Daftar Atribut
Deskripsi cryptography
1. key : String
2. plainText : String
3. cipherText : String
4. inputText : String
5. getBodyText
6. lcgKeyGeneratorlengthOfKey :
String 7.
writeOnComposetextToWritten 8.
encryptionTPPControlProces 9.
decryptionTPPControlProcess 10.
xorOperationopr1,opr2: String 11.
encryptbinPlain 12.
decryptbinCipher Kelas yang berguna untuk
menerapkan enkripsi dan dekripsi, pembangkit
kunci LCG dan kontrol proses yang harus
dilakukan pada setiap tahapan
Three Pass Protocol
.
Universitas Sumatera Utara
Tabel 3.16Kelas dan Atributnya Lanjutan
Nama Kelas Daftar Atribut
Deskripsi lzwCompression
1. dictionary: String
2. dictionaryBitLength: Integer
3. setDictionary
4. getIndexFromDictionary
lookChars: Integer 5.
getStreamFromDictionary indexOfDictionary: String
6. addToDictionaryaddedStream
7. compress inputStream:
ArrayOfInteger 8.
decompress inputStream: String 9.
binarizeCompressed inputDecimal: String
10. decCompressedinputBin:
ArrayOfInteger Kelas yang menyediakan
sumber daya melakukan kompresi dan dekompresi
dengan algoritma LZW.
EncoDecoding 1.
base64CharSet: String 2.
paddingSign: String 3.
base64Encoded: String 4.
base64Decoded: String 5.
getDecimalbinStream: Integer 6.
getBinerdec: String 7.
base64EncodeunencodedBits 8.
base64Decodeencoded Kelas yang berperan
dalam proses base64encoding
– decoding
, konversi deretan karakter menjadi
deretan bit-bit atau sebaliknya dari deretan
bit-bit menjadi deretan karakter tanpa non-
printableASCII characters FileIO
1. openpath
2. readfile
3. writefile,data
4. getDirectorytype: String
Kelas yang berguna untuk mengakses direktori dan
berkas teks yang menyimpan kunci enkripsi
dan dekripsi
Universitas Sumatera Utara
Untuk setiap kelas di atas didefenisikan sebuah class diagram sebagai berikut,
1 0..
+encryptionTPPControlProcess +decryptionTPPControlProcess
+getBodyText +lcgKeyGeneratorin lengthOfKey : int : string
+writeOnComposein textToWritten : string +xorOperationin opr1 : string, in opr2 : string : string
+encryptin binPlain : string +decryptin binCipher : string
-key : string -plainText : string
-cipherText : string -inputText : string
cryptography
+setDictionary +getIndexFromDictionaryin lookChars : string : int
+getStreamFromDictionaryin indexOfDictionary : int : string +addToDictionaryin addedStream : string
+compressin inputStream : string : int +decompressin inputStream : int : string
+binarizeCompressedin inputDecimal : int : string +decCompressedin inputBin : string : int
-dictionary : string -dictionaryBitLength : int
lzwCompression
+getDecimalin binStream : string : int +getBinerin dec : int : string
+base64Encodein unencodedBits +bade64Decodein encoded
-base64CharSet : string -paddingSign : string
-base64Encoded : string -base64Decoded
encoDecoding
+openin path : string +readin file
+writein file, in data : string +getDirectoryin type : string : string
fileIO
1 1
0..1
1 1
End1 End2
1 1
Gambar 3.15 Class Diagram untuk Sistem yang Dikembangkan
Class diagram tersebut menunjukkan kelas-kelas dan relasinya, terlihat bahwa
kelas cryptography memiliki multiplikasi 1 0...1 dengan kelas lzwCompression. Hubungan multiplikasi ini menunjukkan bahwa kelas kriptografi mengakses kelas
lzwCompression sebanyak nol tidak mengakses hingga satu kali ketika proses Three
Pass Protocol diterapkan. Kelas lzwCompression diakses pada Tahap pertama dan
tahap terakhir Three Pass Protocol sedangkan pada tahap kedua dan ketiga kelas cryptography
tidak mengakses kelas lzwCompression. Antara kelas cryptography dengan kelas fileIO relasinya dihubungkan oleh multiplikasi 1 1. Hal ini
menunjukkan bahwa kelas cryptography mengakses sebanyak satu kali kelas fileIO ketika diterapkan menggunakan Three Pass Protocol. Setiap tahapan kriptografi selalu
melibatkan pengaksesan berkas kunci baik untuk keperluan penyimpanan kunci maupun untuk keperluan pengambilan kembali kunci yang telah disimpan
sebelumnya. Sedangkan hubungan multiplikasi antara kelas kelas cryptography dengan kelas encoDecoding adalah 1 menunjukkan multiplikasi satu ke banyak,
yang berarti kelas kriptografi mengakses setidaknya satu atau lebih dari satu kali kelas encoDecoding
ketika akan mengenkripsi maupun mendekripsi pesan pada implementasi Three Pass Protocol.
Universitas Sumatera Utara
3.2.2 Perancangan Antarmuka
Add On yang dirancangan nantinya akan diwakilkan sebagai dua buah icon yang
ditempatkan pada tool bar jendela Write New Message pada aplikasi Mozilla Thunderbird. Berikut gambaran sederhana letak icon add on yang dirancang pada tool
bar Mozilla Thunderbird.
Gambar 3.16 Letak Icon Add On pada Toolbar Mozilla Thunderbird
Tabel 3.17Komponen pada Toolbar
No. Nama Komponen Keterangan
1
Toolbar Mozilla Thunderbird
Merupakan sebuah control bar pada Mozilla Thunderbird, didalamnya terdapat icon-icon.
2
Icon enkripsi
Icon yang mewakili fungsi kontrol untuk proses
kompresi, enkripsi dan base64 encoding- decoding
yang diperlukan pada Penerapan Three Pass Protocol
.
3 Icon
dekripsi Icon
yang mewakili fungsi kontrol untuk proses dekompresi, enkripsi dan base64 encoding-
decoding yang diperlukan pada Penerapan
Three Pass Protocol .
Universitas Sumatera Utara
3.2.3 Perancangan Struktur Direktori Add On
Perancangan sebuah aplikasi add on Mozilla Thunderbird mengharuskan penggunaan struktur direktori khusus yang nantinya direktori ini di-archive dengan
extensi dokumen “.xpi”. Struktur direktori untuk add on yang dirancang adalah sebagai berikut.
Gambar 3.17 Struktur Direktori untuk Add On yang Dikembangkan
Struktur direktori tersebut terdiri atas sebuah direktori yang diberi nama add on
yang sedang dirancang dan sebuah sub-direktori yang diberi nama “chrome” selain itu direktori utama juga berisikan dua berkas masing-masing “chrome.manifest” dan
“install.rdf”. Ini merupakan standar umum untuk struktur direktori aplikasi add on pada Mozilla Thunderbird. Di dalam sub direktori terdapat beberapa dokumen yang
terdiri atas dokumen berekstensi “.xul” yaitu dokumen overlay yang menjelaskan bahwa add on akan melakukan fungsinya pada jendela tertentu dalam Mozilla
Thunderbird. Sedangkan dokumen berekstensi “.css” berguna untuk mengatur posisi dan ukuran icon pada jendela Mozilla Thunderbird. Berkas yang menjelaskan
addonenkripsikompresiilmukomputer.usu.ac.id.xpi
chrome.manifest install.rdf
chrome button.css
scriptForAddOn.js icon.png
button.xul buttondekripsi.png
buttonenkripsi.png
Universitas Sumatera Utara
behavior fungsionalitas add on adalah berkas berekstensi “.js”, berkas ini berisikan
program yang ditulis dengan bahasa pemrograman javascript. Secara lengkap dokumen-dokumen ini dapat ditemukan pada bagian lampiran skripsi ini.
Universitas Sumatera Utara
BAB IV
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi Sistem