BAB 3
ANALISIS DAN PERANCANGAN
3.1. Analisis Sistem
Analisis sistem bertujuan untuk memecah sistem ke dalam komponen-komponen subsitem yang lebih kecil untuk mengetahui hubungan setiap komponen tersebut dalam
mencapai tujuan Whitten Bentley 2007 Pada penjelasan Dennis et al.2012 menyebutkan bahwa terdapat beberapa tahap
yang dilakukan pada proses analisis sistem, yaitu : 1.
Understand, yaitu memahami kinerja sistem yang telah ada. 2.
Indentify, yaitu mengidentifikasi masalah. 3.
Analyze, yaitu menganalisa kebutuhan dari sistem yang akan dibangun. Tahap understand adalah tahap yang dapat dilewatkan dalam proses analisis sistem jika
sistem yang akan dirancang belum pernah dibuat sebelumnya atau sistem yang ada sebelumnya sudah tidak relevan lagi dengan sistem yang dibangun Sujiono, 2016.
Dijelaskan sujiono, 2016 bahwa tahap kedua yang merupakan identifikasi masalah bertujuan untuk mengidentifikasi dan mendeskripsikan penyebab masalah yang akan
diselesaikan oleh sitem. Tahap ketiga yaitu tahap analisa kebutuhan sistem. Dalam hal ini, akan dihasilkan daftar kebutuhan sistem yang bersifat fungsional dan non
fungsional yang akan digunakan pada proses perancangan sistem Sujiono, 2016.
3.1.1. Understand
Understand berkaitan dengan sistem yang telah ada sebelumnya. Tahap ini dikerjakan oleh sytem analyst jika sistem yang akan dibangun merupakan pengembangan dari
sistem sebelumnya. Jika sistem yang dibangun adalah sistem yang baru atau sistem sebelumnya sudah tidak relevan dengan sistem yang akan dibangun, maka tahap ini
dapat dilewatkan Dennis, et al. 2016.
Universitas Sumatera Utara
Pada penelitian ini, sistem yang akan dibangun merupakan sistem yang belum pernah dibuat sebelumnya sehingga tidak akan dibahas lebih lanjut. Tahap understand tidak
akan dibahas lebih dalam dalam penelitian kali ini yang berjudul Implementasi Algoritma Massey-Omura dan Algoritma Elias Gamma pada simulasi Three-Pass
Protocol.
3.1.2. Identify
Pada tahap identifikasi masalah identify akan dihasilkan deskripsi penyebab dari masalah yang akan diselesaikan oleh sistem. Masalah-masalah yang diperoleh tersebut
kemudian digambarkan dalam sebuah diagram yang dikenal dengan sebutan Diagram Ishikawa atau disebut juga Fishbone Diagram. Diagram ini merupakan diagram yang
telah banyak digunakan oleh para analis sistem untuk mengidentifikasi, menganalisadan memecahkan masalahWhitten Bentley, 2007.
Diagram Ishikawa berbentuk seperti ikan yang strukturnya terdiri dari kepala ikan fish’s head dan tulang-tulang ikan fish’s bones. Nama atau judul dari masalah yang
diidentifikasi terletak pada bagian kepala ikan. Sedangkan tulang-tulang ikan menggambarkan penyebab-penyebab masalah tersebut Whitten Bentley, 2007.
Berikut ini perancangan Diagram Ishikawa untuk masalah pada penelitian ini :
Gambar 3.1 Diagram Ishikawa Masalah penelitian.
Jalur pengiriman pesan dan kunci yang mungkin dimasuki oleh penyusup
Kemungkinan terjadinya kedala pengiriman pesan
diakibatkan data yang besar
Pengirim dan penerima ingin pertukaran informasi
yang efisien dan aman
Perlu keamanan informasi dan efisiensi
dalam pengiriman informasi
Bagaimana mengamankan pesan dan
sekaligus
mengefesiensikan pesan dalam pertukaran
informasi.
Ada pihak ketiga yang menginginkan
informasi
System Method
Material
Belum adanya
aplikasi desktop
yang mengombinasikan
algoritma kriptografi dan algoritma kompresi yang
dipilih Algoritma kriptografi
asimetris lebih aman namun menghasilkan
data yang besar Memanfaatkan algoritma
kriptografi dan algoritma kompresi
User
Universitas Sumatera Utara
Pada gambar 3.1 dihalaman sebelumnya dapat dilihat bahwa terdapat empat kategori pada penelitian ini. Berkaitan dengan pengguna users, mediaalat yang
terlibat materials, metode yang digunakanmethods dan sistem system. Setiap detail penyebab masalah tersebut digambarkan dengan tanda panah yang mengarah ke masing
– masing kategori. Gambar 3.1 dapat dilihat bahwa akar permasalhan yang terjadi adalah adanya
pihak ketiga yang ingin melakukan pencurian informasi dan berkaitan dengan besarnya data dalam pengiriman informasi tersebut. Solusi yang ditawarkan adalah dengan
memanfaatkan algoritma kriptografi asimetris dengan kombinasi algoritma kompresi untuk mengefisiensikan transfer data.
3.1.3. Analyze
Tahap analyze adalah tahap yang dilakukan setelah tahap identifikasi masalah. Tahap ini bertujuan untuk mengumpulkan kebutuhan sistem yang disebut dengan requirement.
Daftar requirement berdasarkan kebutuhan yang harus dipenuhi sebuah sistem dapat dibagi menjadi dua jenis, yaitu functional requirement kebutuhan fungsional dan Non-
functional requirement kebutuhan nonfungsional Dennis et al., 2012.
3.1.3.1.Functional Requirement Kebutuhan fungsional sistem mendeskripsikan fungsi-fungsi yang harus dilakukan oleh
sebuah sistem untuk mencapai tujuan Whitten Bentley 2007.Functional Requirement kebutuhan fungsional dari sebuah
sistem sebagai “kemampuan dari sebuah produk atau hal-hal yang mampu dilakukan oeh sistem untuk memenuhi
kebutuhan pengguna” Sujiono,2016. Pada penelitian ini kebutuhan sistem yang diperlukan untuk mengimplementasikan algoritma Massey-Omura dan algoritma Elias
Gamma pada simulasi Three-Pass Protocol terlihat pada tabel 3.1 dibawah ini.
Tabel 3.1 Tabel Kebutuhan Fungsional Sistem
No. Kebutuhan Fungsional
Deskripsi 1.
Menerima input plaintext Sistem mencari dan membaca file teks yang
berekstensi .doc yang tersimpan pada perangkat
Universitas Sumatera Utara
yang digunakan atau sistem menerima input plaintext dari pengguna secara manual.
2. Fungsi pembangkit kunci
Kunci dibangkitkan oleh sistem dengan melakukan acak bilangan prima.
3. Mengenkripsi pesan
Plaintext yang dienkripsi berupa karakter text dengan menggunakan kunci yang telah
dibangkitkan. Sistem melakukan enkripsi menggunakan algoritma Massey-Omura.
4. Mendekripsi pesan
Ciphertext yang didekripsi berupa karakter text yang telah diterima. Sistem melakukan dekripsi
menggunakan algoritma Massey-Omura. 5.
Mengkompresi pesan Sistem melakukan kompresi pesan dengan
menggunakan algoritma Elias-Gamma. Sistem melakukan kompresi sebelum data dikrimkan
kepada penerima. 6.
Mendekompresi pesan Sistem melakukan dekompresi pesan dengan
menggunakan algoritma Elias-Gamma. Sistem melakukan kompresi setelah data diterima.
3.1.3.2.Nonfunctional Requirement Kebutuhan non fungsional mendeskripsikan fitur lain seperti karakteristik, batasan
sistem, performa, dokumentasi dan yang lain agar sistem berjalan sukses Whitten Bentley 2007. Pada tabel 3.2 dibawah ini akan dipaparkan kebutuhan nonfungsional
sistem pada penelitian.
Tabel 3.2 Tabel kebutuhan Nonfungsional Sistem
No. Kebutuhan Nonfungsional
Deskripsi 1.
User Friendly Sistem menggunakan desain yang mudah
dimengerti dan dipelajari.
Universitas Sumatera Utara
2. Dokumentasi
Sistem yang akan dibangun memiliki panduan penggunaan.
3. Performa
Sistem dapat menyimpan hasil dari fungsi kriptografi
4. Kontrol
Sistem yang akan dibangun akan menampilkan pesan error untuk setiap input yang tidak
sesuai.
5. Hemat Biaya
Sistem dibangun dengan memanfaatkan perangkat
lunak freeware
yang dapat
digunakan dan disebarluaskan dengan bebas.
3.1.3.3.Analisis Kerja Algoritma Pada penelitian ini, analisis kerja algortima program meliputi perancangan sistem secara
umum dan perancangan algoritma. Disajikan melalui flowchart algoritma dan pseudocode.
3.1.3.3.1. Diagram Alir Sistem
Pada diagram alir sistem menunjukan alur kerja sistem secara sistematis ditampilkan pada gambar 3.2. Pada sistem yang dibangun, secara umum memiliki 4 halaman utama
yaitu halaman beranda, halaman teori singkat, simulasi, dan tentang aplikasi seperti pada seperti terlihat pada gambar 3.2 pada halaman 29 dibawah ini :
Universitas Sumatera Utara
Gambar 3.2. Diagram Alir Sistem.
Universitas Sumatera Utara
3.1.3.3.2. Diagram Alir Massey-Omura
Pada gambar 3.3. dibawah ini menunjukkan diagram alir algorima Massey-Omura.
Gambar 3.3. Diagram alir algoritma Massey-Omura.
Terlihat pada gambar 3.3. diatas merupakan proses enkripsi dan dekripsi algoritma Massey-Omura. Pada gambar menunjukkan proses enkripsi Massey-Omura. Pada
Universitas Sumatera Utara
gmabar terlihat bahwa proses enkripsi diawali dengan input plaintext yang dilakukan pengirim pesan. Kemudian, dilakukan pembangkitan kunci dan setelah itu dilakukan
enkripsi sehingga terbentuk Ciphertxt. Proses dekripsi diawali dengan melakukan input ciphertext C2 oleh pengirim pesan. Kemudian dilakukan dekripsi dengan
menggunakan kunci yang telah dibangkitkan sehingga menghasilkan ciphertext C3 untuk kemudian dikirimkan ke penerima pesan. Setelah itu, penerima pesan melakukan
dekripsi kembali untuk mendapatkan plaintext..
3.1.3.3.3. Pseudocode Massey-Omura
Pada algoritma Massey-Omura terdiri dari dua fungsi, yaitu fungsi enkripsi dan fungsi dekripsi. Pseudocode untuk fungsi enkripsi seperti terlihat dibawah ini :
eA = Kunci Enkripsi prime = bilangan prima
arrayint [] = ascii tiap karakter dari plain text for i = 0; i = arrayint.lenght -1; i++
n = ModPow arrayint [i], Key, prime arrayint [i] = n
return arrayint
Proses enkripsi dilakukan setelah terdapat Paintext, bilangan prima p, kunci enkripsi eA. Proses enkripsi dilakukan melalui perhitungan C = M
eA
mod p dimana m merupakan nilai ascii pada karakter plaintext yang telah di enkripsi. Hasil perhitungan
akan kembali dimasukkan kedalam array.
dA = Kunci dekripsi prime = bilangan prima
enkripted [] = ciphertext dalam bentuk array for i = 0; i = enkripted.lenght -1; i++
n = ModPow enkripted [i], Key, prime arrayint [i] = n
return arrayint
Proses dekripsi dilakukan dengan melakukan perhitungan M = C
dA
mod p dimana M adalah nilai ASCII pada karakter di plaintext. Hasil perhitungan dimasukkan ke
dalam array.
Universitas Sumatera Utara
3.1.3.3.4. Diagram Alir Elias Gamma
Gambar 3.4 dibawah ini merupakan diagram alir algoritma Elias Gamma.
Gambar 3.4 Diagram alir algoritma Elias Gamma
Pada gambar 3.4 diatas memperlihatkan proses kompresi dan dekompresi algoritma Elias Gamma. Proses kompresi diawali dengan melakukan input bilangan positif n.
Kemudian, melakukan konfersi bilangan n kedalam bentuk biner untuk selanjutnya
Universitas Sumatera Utara
dilakukan penghitungan panjang digit pada bilangan biner. Setelah itu, dihitung unary dan dilakukan penggabungan kode unary dengan biner. Sehingga dihasilkan output
kode Elias Gamma. Setelah itu proses dekompresi. Pada proses ini diawali dengan melakukan input kode Elias Gamma. Kemudian proses dekompresi dilakukan dengan
mengambil jumlah digit 0 sebelum digit 1 pertama sebagai N dan setelah digit 1 pertama sebagai bilangan bulat L. Langkah selanjutnya mengghitung n = 2
N
+L sehingga didapatkan karakter n.
3.1.3.3.5. Pseudocode Elias Gamma
Pada penelitian ini menggunakan algoritma Elias Gamma. dibawah ini ditunjukkan pseudocode kompresi.
Elias_gamma s Freq = CountFreq s
charSet = GetCharset s t = CharSet.Length
for n to t
lakukan : b = DecToBin n
M = b.Length Code = code.Substring1,code.Length-1
For k = 0 to M-1 Lakukan :
Unary = unary + “0” Unary = unary + “0”
For j = 0 to M Lakukan :
String = “Unary” + “code” TabelCode.Addstring
Pada algoritma Elias Gamma, pertama akan membuat sebuah tabel yang menjadi kamus data. Pada tabel tersebut akan disusun karakter menurut banyak kemunculannya.
Karakter dengan frekuensi kemunculan paling banyak akan diletakkan pada urutan pertama dan begitu seterusnya. Selanjutnya dilakukan operasi dan proses kompresi
sehingga didapatkan kode Elias Gamma. Kemudian karakter yang telah diterjemahkan menjadi kode baru akan dikirmkan.
Universitas Sumatera Utara
3.1.3.3.6. Diagram Alir Bangkitkan Prima
Pada gambar 3.5 dibawah ini di perlihatkan diagram alir bangkitkan bilangan prima
Gambar 3.5 Diagram Alir Bangkitkan Prima
Pada gambar 3.5 diatas ditrangkan bahwa proses generate bilangan prima diawali dengan mengambil sebuah bilangan acak a. Langkah selanjutnya mengecek apakh
bilangan a adalah bilangan prima dengan menggunakan algoritma Lehmann. Jika pada fungsi Lehmann menghasilkan True terhadap bilangan a , maka a adalah prima.
Universitas Sumatera Utara
3.1.3.3.7. Pseudocode Bangkitkan Prima
Berikut ini ditampilkan pseudocode untuk melakukan generate bilangan prima.
Generate_prima : a = random bilangan
a = a mod 2 == 1 ? a : a + 1 while lehmanna
goto Generate_prima return a
3.1.3.3.8. Diagram Alir Lehmann
Pada penelitian ini, algoritma lehman digunakan untuk melakukan pengecekan bilangan yang diacak adalah benar
– benar bilangan prima. Pada gambar 3.6 berikut ini ditampilkan diagram alir algoritma Lehmann.
Gambar 3.6 Diagram Alir Algoritma Lehmann
Pada gambar 3.6 diatas diterangkan bahwa proses algoritma Lehmann diawali dengan menginputkan bilangan prima p. Kemudian mengacak bilangan antara 2 sampai
Universitas Sumatera Utara
bilangan p sebagai a. Menghitung L =
a
p-12
mod p. Jika L = 1 atau L = -1, maka p adalah prima.
3.1.3.3.9. Pseudocode Lehmann
Dibawah ini diperlihatkan pseudocode algoritma Lehmann
Bool lehmann p Nilai = random
for i = 0 ; i 5; i++ lakukan :
n = nilai.next2,p-1 L = ModPown,p-12,p
Jika L = 1 dan L = -1 Return False
Return True
3.1.3.3.10. Bangkitkan Kunci Massey-Omura
Pada penggunaan algoritma Massey-Omura memerlukan pembangkitan kunci yang digunakan untuk perhitungan enkripsi dan dekripsi pesan. Pada gambar 3.7 dibawah ini
dideskripsikan dalam diagram alir generate kunci
Gambar 3.7 Diagram Alir Bangkitkan Kunci Enkripsi-Dekripsi.
Pada gambar 3.7 diatas memperilhatkan proses generate kunci enkripsi e dan kunci dekripsi d. Diawali dengan menginputkan bilangan prima p, kemudian melakukan
Universitas Sumatera Utara
acak bilangan e dimana e lebih besar dari 2 dan lebih kecil dari p-1. Kemudian menghitung GCD antara e dengan p-1. Hasil GCD harus sama dengan satu, agar
bilangan p-1 dan e adalah relatif prima.
3.1.3.3.11. Pseudocode Bangkitkan Kunci
Pada generate kunci Massey-Omura terdapat proses untuk melakukan generate kunci enkripsi dan dekripsi. Telah digambarkan sebelumnya pada gambar 3.11 diagram alir
pada generate kunci. Berikut ini ditunjukkan pseudocode generate kunci enkripsi dan dekripsi.
Pseudocode Kunci Enkripsi :
p = bilangan prima Lakukan
e = bilangan acak antara 2 dan p-1 N = GCD p-1,e
Jika N == 1 Return e
Pseudocode Kunci Dekripsi :
Invers_modulare,p -1 x1,y1,x2,y2, q ,temp, modulo = b
If a b X1 = y2 = 1
X2 = y1 = 0 Else
x1 = y2 = 0 x2 = y1 = 1
While b =0 q = a b
temp = b b = a
– q b a = temp
temp = x2 x2 = x1
x1 = temp temp = y2
y2 = y1 – q y2
y1 = temp return y1 = y1 0 ? y1 : y1 + modulo
Universitas Sumatera Utara
3.1.3.4.Implementasi Diagram UML UML atau Unified Modelling Language adalah pendekatan analisis dan desain sistem
berorientasi objek. Pendekatan ini memandang sistem sebagai kumpulan-kumpulan objek, dimana objek tersebut dapat berupa data maupun proses. Terdapat beberapa
diagram pada UML, yaitu use case diagram, class diagram dan sequence diagram Dennis, et al. 2012.
3.1.3.4.1. Use Case Diagram
Diagram use case digunakan untuk menggambarkan hubungan atau interaksi antara sistem dengan pengguna. Diagram ini menggambarkan sebagian besar kebutuhan yang
telah dipaparkan sebelumnya. Pada gambar 3.8 berikut dirincikan kebutuhan fungsional pada tabel 3.1
Gambar 3.8 Diagram Use Case Kebutuhan Fungsional
Pada gambar 3.8 diatas mendeskripsikan diagram use case kebutuhan fungsional sistem pada tabel 3.1 sebelumnya. Gambar diatas menunjukkan bahwa setiap use case
Universitas Sumatera Utara
saling berhubungan satu sama lain. Jalanya sistem diawali dengan input plaintext, kemudian membangkitkan kunci algoritma, selanjutnya sistem melakukan proses
enkripsi, kompresi, dekompresi dan dekripsi secara berurutan sehingga diperoleh plaintext kembali.
3.1.3.4.2. Sequence Diagram
Whitten dalam Sebayang, 2014 menyebutkan bahwa sequence diagram adalah suatu diagram yang menggambarkan interaksi antar objek pada sistem dalam sebuah urutan
waktu atau rangkaian waktu, seperti pada gambar 3.9 dibawah ini :
Gambar 3.9 Sequence Diagram sistem.
Pada gambar 3.9 diatas menunjukkan aksi dan reaksi antara penguna dengan sistem. Pada gambar terlihat bahwa aksi yang diberikan oleh pengguna kepada sistem
Universitas Sumatera Utara
diwakilkan dengan tanda anak panah sedangkan respon sistem kepada pengguna diwakilkan dengan simbol anak panah putus-putus.
3.1.3.4.3. Activity Diagram
Activity Diagram digunakan untuk menggambarkan reaksi antara user dengan sistem. Pada gambar 3.10 dibawah ini merupakan Activity Diagram pada sistem
Gambar 3.10 Activity Diagram Sistem
Universitas Sumatera Utara
3.2. Perancangan Sistem