BAB 3 METODOLOGI PENELITIAN
3.1 Pengumpulan dan Sumber Data
Pengumpulan data yang digunakan dalam penelitian ini adalah studi literatur yaitu penelusuran literatur yang bersumber dari buku, media, pakar ataupun dari hasil
penelitian orang lain yang bertujuan untuk menyusun dasar teori yang digunakan dalam melakukan penelitian. Kemudian dilakukan pengumpulan data berupa data teks
dengan kalimat panjang atau beberapa paragraphalinea. Data teks tersebut nantinya akan dienkripsi menggunakan algoritma ElGamal dan dikompresi menggunakan
algoritma Shannon-Fano.
3.2 Pengolahan Data
Data yang telah dikumpulkan kemudian diolah dengan langkah-langkah sebagai berikut :
3.2.1 Pembangkit Bilangan Acak Bilangan p dan a akan dibangkitkan secara acak menggunakan program, dimana
bilangan p adalah bilangan prima, sedangkan bilangan a adalah bilangan bulat yang merupakan a
{ 0,1,…,p-2. Oleh karena itu, bilangan p yang didapat secara acak
tersebut harus diuji kembali keprimaannya. Dalam penelitian ini, penulis menggunakan teori Lehmann untuk menguji keprimaan nilai p tersebut. Dalam teori
Lehmann dinyatakan bahwa untuk setiap bilangan prima p dan setiap bilangan a yang kurang dari p dan tidak habis dibagi oleh p, maka berlaku :
3.1 3.2.2 Penentuan Akar Primitif
pada Algoritma ElGamal Sistem yang penulis rancang terdiri dari tahap penentuan bilangan prima p, yang akan
mengenerate akar primitif α, dimana untuk bilangan bulat acak yang merupakan
elemen primitive
primitive Root grup Zp dari bilangan bulat mod p, ditentukan : “jika p adalah bilangan prima dan e N, dimana e p
− 1. Dalam setiap system
Universitas Sumatera Utara
residu modulo p, terdapat 0 atau e yang berbeda untuk m Z, 0 m p − 1,
dengan ord
p
m = e secara khusus terdapat p
−1 akar primitive modulo p. Mollin, 2007. Selanjutnya adalah proses enkripsi-kompresi dan proses dekompresi-dekripsi.
3.2.3 Proses Enkripsi-Kompresi
Tahapan enkripsi-kompresi berguna untuk mengamankan pesan dan memampatkan ukuran pesan teks, dimana untuk mengamankan pesan penulis menggunakan
algoritma ElGamal dan untuk memampatkan pesan penulis menggunakan algoritma Shannon-Fano. Tahapan ini dimulai dengan pembentukan kunci yaitu dengan
menentukan bilangan prima p, menentukan akar primitif α atau g dan menentukan
bilangan bulat x, proses selanjutnya adalah menghitung y = g
x
mod p dan kemudian akan didapatkan kunci privat x, p dan kunci public p, g, y. Setelah proses
pembentukan kunci ElGamal, dilanjutkan ke proses enkripsi untuk menghasilkan ciphertextnumber
yaitu dengan mengetikan plaintext yang akan dienkripsi, plaintext dipotong-potong kedalam bentuk blok-blok pesan yang kemudian dikonversikan
kedalam kode ASCII, setiap plainnumber yang telah diblok dimasukkan kedalam rumus yang telah ditetapkan, sehingga diperolehlah ciphertextnumber dari proses
enkripsi. Adapun flowchart dari proses enkripsi pesan teks dapat dilihat pada gambar 3.1.
Gambar 3.1. Flowchart Proses Enkripsi
Plainteks
Plainteks ASCII
=
a
� � dan =
a
. � � �
Cipherteks For i = 1 sampai p
A
A
Universitas Sumatera Utara
Ciphertextnumber yang dihasilkan dari proses enkripsi menggunakan algoritma
ElGamal berukuran 2 dua kali lebih besar dari pesan aslinya plaintext, sehingga dilakukan
proses kompresi dengan menggunakan algoritma kompresi Shannon-Fano. Adapun flowchart
proses kompresi dapat dilihat pada gambar 3.2.
Gambar 3.2 Flowchart Proses Kompresi Gambar 3.2 menjelaskan bahwa ciphertext yang diperoleh dari proses enkripsi
kemudian dikompresi, agar pesan termampatkan. Adapun proses yang dilakukan dengan menggunakan algoritma Shannon-Fano adalah membuat tabel yang memuat
frekuensi kemunculan dari tiap karakter, mengurutkan frekuensi tersebut dengan karakter yang frekuensinya paling sering muncul berada di atas dari daftar
descending, membagi karakter-karakter tersebut menjadi 2 kelompok yaitu atas dan bawah dengan jumlah total frekuensi pada bagian atas mendekati jumlah total
frekuensi pada bagian bawah dan memberikan kode 0 untuk sebelah atas dan kode 1 untuk sebelah bawah, mengulangi langkah sebelumnya pada masing-masing kelompok
hingga seluruh karakter dapat berdiri sendiri dan mempunyai kode bit yang unik. Hasil dari proses tersebut akan menghasilkan ciphertextnumber terkompresi.
A
Stop Cipherteks
Cipherteks Terkompresi Inisialisasi
Urut Frekuensi PembagianChar
Kompresi
Universitas Sumatera Utara
3.2.4 Proses Dekompresi-Dekripsi
Tahapan dekompresi-dekripsi digunakan untuk mengembalikan pesan teks kebentuk semula, yaitu dengan melakukan proses dekompresi terlebih dahulu, kemudian
diakhiri dengan proses dekripsi. Adapun urutan proses yang akan dilakukan pada tahapan dekompresi adalah mengidentifikasi data teks hasil kompresi yang sudah
diubah menjadi karakter pengganti, kemudian karakter pengganti diubah terlebih dahulu menjadi kode biner yang dilanjutkan dengan penelusuran tabel biner dengan
tujuan agar kode biner yang ditemukan dapat dibaca oleh pengguna dalam bentuk kode ASCII. Hasil dari proses dekompresi akan diperoleh ciphertext dengan ukuran
yang sama sebelum ciphertext tersebut dimampatkan. Untuk pengembalikan ciphertext
ke pesan aslinya plaintext, maka dilakukan proses dekripsi dengan menggunakan kunci privat. Adapun urutan yang akan dilakukan pada proses dekripsi
adalah mengambil nilai x, p sebagai kunci privat dari proses pembentukan kunci ElGamal, masukan ciphertext kedalam rumus yanng telah ditetapkan, pindahkan
plaintextnumber ke plaintextchar.
3.3 Proses Analisis