Analisis Algoritma Baby-Step Giant-Step dan Pohlig-Hellman untuk Menyelesaikan Masalah Logaritma Diskrit
ANALISIS ALGORITMA
BABY-STEP GIANT-STEP
DAN
POHLIG-HELLMAN
UNTUK MENYELESAIKAN
MASALAH LOGARITMA DISKRIT
SKRIPSI
ETTY WINITA ROISKA SIMBOLON
090803073
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2015
(2)
ANALISIS ALGORITMA
BABY-STEP GIANT-STEP
DAN
POHLIG-HELLMAN
UNTUK MENYELESAIKAN
MASALAH LOGARITMA DISKRIT
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana
Sains
ETTY WINITA ROISKA SIMBOLON
090803073
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2015
(3)
PERSETUJUAN
Judul
: ANALISIS ALGORITMA
BABY-STEP
GIANT-STEP
DAN
POHLIG-HELLMAN
UNTUK
MENYELESAIKAN MASALAH LOGARITMA
DISKRIT
Kategori
: SKRIPSI
Nama
: ETTY WINITA ROISKA SIMBOLON
Nomor Induk Mahasiswa
: 090803073
Program Studi
: SARJANA (S1) MATEMATIKA
Departemen
: MATEMATIKA
Fakultas
: MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA
UTARA
Disetujui di
Medan, Mei 2015
Komisi Pembimbing
:
Pembimbing II
Pembimbing I
Drs. Marihat Situmorang, M.Kom
Drs. Partano Siagian, M.Sc
NIP. 19631214 198903 1 001
NIP. 19511227 198903 1 001
Diketahui/Disetujui oleh
Departemen Matematika FMIPA USU
Prof. Drs. Tulus, Vordipl.Math., M.Si., Ph.D
NIP. 196209011988031002
(4)
ii
PERNYATAAN
ANALISIS ALGORITMA
BABY-STEP GIANT-STEP
DAN
POHLIG-HELLMAN
UNTUK MENYELESAIKAN MASALAH LOGARITMA DISKRIT
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Mei 2015
ETTY WINITA ROISKA SIMBOLON
090803073
(5)
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Pengasih, dengan
anugerah dan kasih setia-Nya sehingga skripsi ini dapat diselesaikan.
Ucapan terima kasih saya sampaikan kepada:
1.
Bapak Dr. Sutarman, M.Sc selaku Dekan Fakultas Matematika dan Ilmu
Pengetahuan Alam Universitas Sumatera Utara.
2.
Bapak Prof. Dr. Tulus, M.Si dan Ibu Dra. Mardiningsih, M.Si selaku ketua
dan sekretaris Departemen Matematika Fakultas Matematika dan Ilmu
Pengetahuan Alam Universitas Sumatera Utara yang telah memberikan
kesempatan kepada penulis untuk menyelesaikan studi di Departemen
Matematika.
3.
Bapak Drs. Partano Siagian, M.Sc dan Drs. Marihat Situmorang, M.Kom
selaku pembimbing dalam penyelesaian skripsi ini yang telah memberikan
bimbingan dan kepercayaan kepada saya untuk menyempurnakan skripsi ini.
4.
Kedua orangtua saya tercinta yang telah memberikan dukungan, doa dan dana,
juga untuk saudara-saudaraku yang terkasih atas perhatian dan doanya
sehingga penulis dapat menyelesaikan pendidikan S-1.
5.
Sahabat dan teman-teman stambuk 2009 yang telah memberikan masukan
serta dorongan kepada penulis untuk tetap semangat mengerjakan skripsi ini.
Penulis menyadari bahwa tulisan ini jauh dari sempurna, untuk itu
penulis sangat mengharapkan saran dan kriktik untuk kesempurnaan tulisan ini.
(6)
iv
ANALISIS ALGORITMA
BABY-STEP GIANT-STEP
DAN
POHLIG
HELLMAN
UNTUK MENYELESAIKAN MASALAH
LOGARITMA DISKRIT
ABSTRAK
Asumsikan G adalah sebuah grup
cyclic
terbatas dengan
order
p, g adalah
sebuah generator dari G (G = <g>) dan y
G. Logaritma diskrit dari y pada dasar
g, yang disimbolkan dengan loggy adalah integer unik x dan x
Zp sedemikian
sehingga y = g
xmod p. Algoritma yang dapat digunakan untuk menghitung
logaritma diskrit antara lain algoritma
Baby-step giant-step
dan algoritma
Pohlig-Hellman. Proses penyelesaian problema logaritma diskrit ini secara manual
memerlukan waktu yang lama dan perhitungan yang kompleks.
Algoritma
baby-step giant-step
adalah sebuah rangkaian dari langkah yang
terdefinisi dengan baik untuk menghitung logaritma diskrit. Algoritma ini
merupakan modifikasi sederhana dari pengujian perkalian (
trial multiplication
/
metode naïve) untuk menemukan logaritma diskrit. Dalam matematika, algoritma
Pohlig-Hellman adalah sebuah algoritma untuk menghitung logaritma diskrit pada
sebuah grup perkalian dengan order berupa sebuah integer kecil. Proses kerja dari
perangkat lunak dimulai dari proses pengisian data nilai g, y dan p. Setelah itu,
maka perangkat lunak akan menampilkan proses kerja dari algoritma secara
tahapan demi tahapan.
Perangkat lunak mampu mendukung proses pemahaman untuk setiap
prosedur kerja dari algoritma
Baby-Step Giant-Step
dan
Pohlig-Hellman
untuk
menghitung solusi dari problema logaritma diskrit. Selain itu, perangkat lunak
juga menyediakan laporan hasil proses perhitungan sehingga pemakai dapat
melihat kembali hasil proses perhitungan yang telah dilakukan sebelumnya.
Perangkat lunak juga menyediakan tampilan penyelesaian waktu eksekusi antara
kedua algoritma pencarian solusi logaritma diskrit.
Kata kunci: logaritma diskrit, algoritma
Baby-Step Giant-Step
, algoritma
Pohlig-Hellman
(7)
ANALYSIS OF ALGORITHMS BABY-STEP GIANT-STEP AND POHLIG
HELLMAN TO SOLVE THE DISCRETE LOGARITHM PROBLEM
ABSTRACT
Assume G is a finite cyclic group with order p, g is a generator of G (G =
<g>) and y
G. Discrete logarithm from y in base g, which is represented by
log
gy is unique integer x and x Z
pso that y = g
xmod p. Algorithm that could be
used to solve discrete logarithm is Baby-step giant-step and Pohlig-Hellman
algorithm. The process for finding solution of discrete logarithm problem
manually needs a lot of time and the computation process is very complex.
Baby-step giant-step algorithm is a series of steps that are defined well to
compute discrete logarithm. This algorithm is a simple modification of trial
multiplication or naïve method for finding discrete logarithm. In mathematics,
Pohlig-Hellman algorithm is an algorithm for computing discrete logarithm in
multiplication group with order a small integer. The process of software is started
from determining g, y and p value. After that, the software will show the
computation process of the algorithm step by step.
The software could show the process of every procedure from Baby-Step
Giant-Step and Pohlig-Hellman algorithm for finding solution of discrete
logarithm problem. Besides that, the software also provides detail computation
report so that the user could review the computation process that had been done
before. The software also provides execution process of the algorithm.
Keywords: discrete logarithm, Baby-Step Giant-Step algorithm, Pohlig-Hellman
algorithm
(8)
DAFTAR ISI
Halaman
Persetujuan
i
Pernyataan
ii
Penghargaan
iii
Abstrak
iv
Abstract
v
Daftar Isi
vi
Daftar Gambar
viii
Bab 1
Pendahuluan
1.1
Latar Belakang
1
1.2
Perumusan Masalah
2
1.3
Pembatasan Masalah
2
1.4
Kajian Pustaka
3
1.5
Tujuan Penelitian
9
1.6
Manfaat Penelitian
9
1.7
Metode Penelitian
9
1.8
Sistematika Penulisan
10
Bab 2
Landasan Teori
2.1
Sistem Bilangan
11
2.2
Aritmatika Modular
12
2.3
Greatest Common Divisor
14
2.4
Inverse Aritmatika Modular
15
2.5
Fermat’s Little Theorem
16
2.6
The Euler Totient Function
17
2.7
Quadratic Residue
17
2.8
Legendre Symbol
19
2.9
Jacobi Symbol
19
2.10
Metoda Tes Prima
20
2.11
Function (Fungsi)
23
2.12
Field
24
2.13
Group
27
2.14
Chinese Remainder Theorem
(CRT)
27
2.15
Logaritma Diskrit
29
2.15.1
Pengenalan
29
2.15.2
Algoritma Baby-Step Giant-Step
30
2.15.3
Algoritma Pohlig-Hellman
32
2.16
Rekayasa Perangkat Lunak
33
2.17
Model-Model Proses Perangkat Lunak
34
2.17.1
Pengenalan
34
(9)
2.18
Unified Modeling Language
(UML)
37
2.18.1
Class Diagram
38
2.18.2
Use Case Diagram
40
2.18.3
Sequence Diagram
41
2.18.4
Activity Diagram
42
Bab 3
Analisa dan Perancangan
3.1
Analisa
44
3.1.1
Analisa Masalah
44
3.1.2
Analisa Persyaratan
45
3.1.2.1
Analisa Persyaratan Fungsional
45
3.1.2.1.1
Fungsional Baby Step Giant Step
45
3.1.2.1.2
Fungsional Pohlig Hellman
46
3.1.2.2
Analisa Persyaratan Non-Fungsional
46
3.1.2.2.1
Non-Fungsional Baby Step Giant Step 46
3.1.2.2.2
Non-Fungsional Pohlig Hellman
47
3.2
Pemodelan Sistem
48
3.2.1
Flowchart Baby-Step Giant-Step
49
3.2.2
Flowchart Pohlig-Hellman
50
3.3
Perancangan Sistem
50
3.3.1
Sequence Diagram
50
3.3.2
Class Diagram
51
3.3.3
Penggunaan Komponen
52
3.3.4
Perancangan Menu
53
3.3.5
Perancangan Tampilan Antarmuka
54
3.3.5.1
Form ‘Main’
54
3.3.5.2
Form ‘Input Data’
55
3.3.5.3
Form ‘Pemahaman’
56
3.3.5.4
Form ‘Teori’
57
3.3.5.5
Form ‘Hasil Perbandingan’
58
3.3.5.6
Form’Mengenai’
58
Bab 4
Implementasi dan Hasil
4.1
Implementasi
60
4.1.1
Kebutuhan Hardware
60
4.1.2
Kebutuhan Software
60
4.2
Hasil
61
4.2.1
Hasil Pemahaman
61
4.2.2
Hasil Pengujian
64
Bab 5
Kesimpulan dan Saran
5.1
Kesimpulan
67
5.2
Saran
67
(10)
DAFTAR GAMBAR
Gambar 2.1
Sistem Bilangan
12
Gambar 2.2
Siklus Hidup Waterfall
37
Gambar 3.1
Activity Diagram
dari
Baby-Step Giant-Step
49
Gambar 3.2
Activity Diagram
dari
Pohlig-Hellman
50
Gambar 3.3
Sequence Diagram
51
Gambar 3.4
Class Diagram
52
Gambar 3.5
Rancangan Menu Utama
54
Gambar 3.6
Rancangan
Form
‘Main’
55
Gambar 3.7
Rancangan
Form
‘
Input Data
’
55
Gambar 3.8 Rancangan
Form
‘Pemahaman’
56
Gambar 3.9
Rancangan
Form
’
Teori
’
57
Gambar 3.10 Rancangan
Form
’Hasil Perbandingan’
58
Gambar 3.11 Rancangan
Form
’Mengenai’
59
Gambar 4.1
Tampilan
Form Main
Klik Menu
‘Proses Kerja’ >> ‘Input Data’
61
Gambar 4.2
Tampilan
Form Input Data
61
Gambar 4.3
Tampilan
Form Main
Klik Menu
‘Proses Kerja’ >> ‘
Pemahaman
’
>> ‘Baby Step Giant Step’
62
Gambar 4.4
Tampilan
Form
Pemahaman ‘Baby Step Giant Step’
62
Gambar 4.5
Tampilan
Form Main
Klik Menu
‘Proses Kerja’ >> ‘
Pemahaman
’
>>
‘Pohlig Hellman’
63
Gambar 4.6
Tampilan
Form
Pemahaman ‘Pohlig Hellman’
63
Gambar 4.7
Tampilan
Form
Laporan
64
Gambar 4.8
Tampilan
Form Main
Klik Menu
‘Proses Kerja’ >> ‘Tabel
Penyelesaian
’
64
Gambar 4.9
Tampilan
Form Input Data
untuk Pengujian I
65
Gambar 4.10 Tampilan
Form Input Data
untuk Pengujian II
65
Gambar 4.11 Tampilan
Form Input Data
untuk Pengujian III
66
Gambar 4.12 Tampilan
Form
Tabel Penyelesaian
66
(11)
ANALISIS ALGORITMA
BABY-STEP GIANT-STEP
DAN
POHLIG
HELLMAN
UNTUK MENYELESAIKAN MASALAH
LOGARITMA DISKRIT
ABSTRAK
Asumsikan G adalah sebuah grup
cyclic
terbatas dengan
order
p, g adalah
sebuah generator dari G (G = <g>) dan y
G. Logaritma diskrit dari y pada dasar
g, yang disimbolkan dengan loggy adalah integer unik x dan x
Zp sedemikian
sehingga y = g
xmod p. Algoritma yang dapat digunakan untuk menghitung
logaritma diskrit antara lain algoritma
Baby-step giant-step
dan algoritma
Pohlig-Hellman. Proses penyelesaian problema logaritma diskrit ini secara manual
memerlukan waktu yang lama dan perhitungan yang kompleks.
Algoritma
baby-step giant-step
adalah sebuah rangkaian dari langkah yang
terdefinisi dengan baik untuk menghitung logaritma diskrit. Algoritma ini
merupakan modifikasi sederhana dari pengujian perkalian (
trial multiplication
/
metode naïve) untuk menemukan logaritma diskrit. Dalam matematika, algoritma
Pohlig-Hellman adalah sebuah algoritma untuk menghitung logaritma diskrit pada
sebuah grup perkalian dengan order berupa sebuah integer kecil. Proses kerja dari
perangkat lunak dimulai dari proses pengisian data nilai g, y dan p. Setelah itu,
maka perangkat lunak akan menampilkan proses kerja dari algoritma secara
tahapan demi tahapan.
Perangkat lunak mampu mendukung proses pemahaman untuk setiap
prosedur kerja dari algoritma
Baby-Step Giant-Step
dan
Pohlig-Hellman
untuk
menghitung solusi dari problema logaritma diskrit. Selain itu, perangkat lunak
juga menyediakan laporan hasil proses perhitungan sehingga pemakai dapat
melihat kembali hasil proses perhitungan yang telah dilakukan sebelumnya.
Perangkat lunak juga menyediakan tampilan penyelesaian waktu eksekusi antara
kedua algoritma pencarian solusi logaritma diskrit.
Kata kunci: logaritma diskrit, algoritma
Baby-Step Giant-Step
, algoritma
Pohlig-Hellman
(12)
v
ANALYSIS OF ALGORITHMS BABY-STEP GIANT-STEP AND POHLIG
HELLMAN TO SOLVE THE DISCRETE LOGARITHM PROBLEM
ABSTRACT
Assume G is a finite cyclic group with order p, g is a generator of G (G =
<g>) and y
G. Discrete logarithm from y in base g, which is represented by
log
gy is unique integer x and x Z
pso that y = g
xmod p. Algorithm that could be
used to solve discrete logarithm is Baby-step giant-step and Pohlig-Hellman
algorithm. The process for finding solution of discrete logarithm problem
manually needs a lot of time and the computation process is very complex.
Baby-step giant-step algorithm is a series of steps that are defined well to
compute discrete logarithm. This algorithm is a simple modification of trial
multiplication or naïve method for finding discrete logarithm. In mathematics,
Pohlig-Hellman algorithm is an algorithm for computing discrete logarithm in
multiplication group with order a small integer. The process of software is started
from determining g, y and p value. After that, the software will show the
computation process of the algorithm step by step.
The software could show the process of every procedure from Baby-Step
Giant-Step and Pohlig-Hellman algorithm for finding solution of discrete
logarithm problem. Besides that, the software also provides detail computation
report so that the user could review the computation process that had been done
before. The software also provides execution process of the algorithm.
Keywords: discrete logarithm, Baby-Step Giant-Step algorithm, Pohlig-Hellman
algorithm
(13)
BAB I
PENDAHULUAN
1.1 Latar Belakang
Problema logaritma diskrit adalah sebuah fundamental penting untuk proses pembentukan kunci pada berbagai algoritma kriptografi yang digunakan sebagai sekuritas dari algoritma. Problema logaritma diskrit ini dikatakan susah untuk dicari solusinya. Hal ini dikarenakan problema logaritma diskrit ini susah dihitung dan dicari solusinya secara manual. Cara termudah untuk mencari solusi dari problema ini adalah dengan cara brute force. Namun, hal ini akan memakan waktu yang lama.
Dalam literatur matematika, dapat ditemukan berbagai algoritma yang dipublikasikan oleh beberapa ahli yang dapat digunakan untuk menyelesaikan problema logaritma diskrit, diantaranya Baby-step giant-stepdanPohlig-Hellman. Kedua algoritma tersebut dirancang untuk digunakan pada grup bilangan yang berbeda-beda, yaitu Baby-step giant-steppada grup yang berubah-ubah (arbitrary group) dan Pohlig-Hellman untuk grup dengan faktor prima kecil. Pada teori grup, algoritma baby-step giant-step adalah sebuah rangkaian dari langkah yang terdefinisi dengan baik untuk menghitung logaritma diskrit. Algoritma ini merupakan modifikasi dari pengujian perkalian (trial multiplication). Sementara itu, algoritma Pohlig-Hellman adalah sebuah algoritma untuk komputasi dari logaritma diskrit pada grup perkalian dimana order adalah sebuah integer.
Berdasarkan uraian di atas, maka penulis merasa tertarik untuk mempelajari beberapa algoritma perhitungan logaritma diskrit sekaligus
(14)
2 membandingkan proses eksekusi dari beberapa algoritma tersebut dalam mencari solusi dari problema logaritma diskrit. Oleh karena itu, penulis mengambil skripsi yang berjudul “Analisis Algoritma Baby-Step Giant-Step dan Pohlig-Hellman
untuk Menyelesaikan Masalah Logaritma Diskrit”.
1.2 Perumusan Masalah
Berdasarkan latar belakang penelitian, yang menjadi permasalahan dalam skripsi ini adalah:
1. Menentukan algoritma yang lebih baik dari Algoritma Baby-Step Giant-Step
dengan menentukan Algoritma Pohlig-Hellman di dalam menyelesaikan logaritma diskrit.
2. Sulitnya memahami proses kerja penyelesaian logaritma secara manual. 3. Sulitnya memecahkan problema logaritma diskrit secara manual.
1.3 Pembatasan Masalah
Masalah yang akan dibahas dalam skripsi ini mencakup:
1. Bilangan yang digunakan merupakan himpunan bilangan bulat positif dengan batasan nilai antara 10 sampai 9999
2. Bilangan prima yang digunakan akan dibangkitkan dan diuji dengan menggunakan metode Rabin Miller.
3. Perangkat lunak akan menampilkan proses perhitungan dari kedua algoritma secara bertahap.
1.4 Kajian Pustaka
Logaritma Diskrit merupakan invers dari eksponensial diskrit dalam grup cyclic. Jika diasumsikan G adalah sebuah grup cyclic terbatas dengan order n, g adalah
(15)
3 sebuah generator dari G (G = <g>) dan y G. Logaritma diskrit dari y pada dasar g, yang disimbolkan dengan loggy adalah integer unik x dan x Zn sedemikian
sehingga y = gx. (Boris S. Verkhovsky, 2009, 674).
Sedangkan, problema logaritma diskrit dapat dideskripsikan sebagai berikut:
1. Discrete Logarithm Problem(DLP): diberikan sebuah bilangan prima besar p, sebuah generator g dari Zp* dan sebuah elemen y Zp*. Problema logaritma
diskrit adalah untuk menemukan integer Zp* sedemikian sehingga gx = y mod p.
2. Group Discrete Logarithm Problem (GDLP): diberikan sebuah grup cyclic
terbatas G dengan ordern, sebuah generator g G dan sebuah elemen y G, GDLP adalah untuk menemukan integer x sedemikian sehingga gx= y.
Sementara itu, asumsi dari logaritma diskrit dapat dideskripsikan sebagai berikut: (Boris S. Verkhovsky, 2009, 674-675)
Diberikan sebuah bilangan prima besar p yang dipilih secara hati-hati, sedemikian sehingga algoritma diatas tidak bekerja pada DLP. Asumsikan g adalah sebuah generator dari Zp* dan sebuah elemen y Zp*. Maka secara komputasi akan sulit untuk menemukan sebuah integer x sedemikian sehingga y = gxmod p.
Algoritma yang dapat digunakan untuk menghitung logaritma diskrit mencakup:
1. Baby-step giant-step
2. Pohlig-Hellman 3. Efisien kalkulus indeks 4. Function field sieve
(16)
4 1. Algoritma Baby-Step Giant-Step
Pada teori group, sebuah cabang dari matematika, algoritma baby-step giant-step
adalah sebuah rangkaian dari langkah yang terdefinisi dengan baik untuk menghitung logaritma diskrit. Masalah logaritma diskrit adalah merupakan landasan penting pada area kriptografi kunci publik. Kebanyakan dari sistem kriptografi yang paling sering digunakan berdasarkan pada asumsi bahwa logaritma diskrit sangat sulit untuk dihitung, semakin sulit untuk dihitung, maka sekuritasnya dalam transfer data akan semakin tinggi. Salah satu cara untuk meningkatkan kesulitan dari masalah logaritma diskrit adalah dengan mendasarkan kriptosistem pada sebuah groupyang besar. (Andrew V. Sutherland, 2007, 49)
Algoritma baby-step giant-step ini berdasarkan pada sebuah waktu-jarak (space-time tradeoff). Algoritma ini merupakan modifikasi sederhana dari pengujian perkalian (trial multiplication), metode naive untuk menemukan logaritma diskrit.
Diberikan sebuah grup siklis (cyclic group) G dari order n, sebuah generator dari grup dan sebuah elemen grup , masalahnya adalah untuk menemukan sebuah integer x sedemikian sehingga:
x=
Algoritma baby-step giant-step berdasarkan pada penulisan ulang x sebagai x = im + j, dengan m = n dan 0 i < m dan 0 j < m, sehingga diperoleh:
(-m
)i= j
Algoritma ini akan menghitung nilai j untuk beberapa nilai j terlebih dahulu. Kemudian, memilih sebuah nilai m dan mencoba nilai i pada bagian kiri dari kongruen diatas, sesuai dengan proses dari pengujian perkalian. Pengujian ini dilakukan untuk melihat apakah kongruen dipenuhi oleh salah satu nilai dari j, dengan menggunakan nilai j
(17)
5 Rincian dari algoritma ini adalah sebagai berikut: (Andrew V. Sutherland, 2007, 50)
Input : sebuah cyclic group G dari order n, memiliki sebuah generator dan sebuah elemen .
Output : sebuah nilai x yang memenuhi persamaan x= .
1) m←Ceiling(√n) (pembulatan ke atas) 2) Untuk semua nilai jdimana 0 ≤j< m:
Hitung αjdan simpan pasangan nilai (j, αj) pada sebuah tabel. 3) Hitung nilai α−m.
4) γ←β.
5) Untuk i= 0 sampai (m− 1):
a. Cek apakah γ adalah komponen kedua (αj) dari sembarang pasangan pada tabel.
b. Jika ya, maka kembalikan nilai im+ j. c. Jika tidak, maka γ ← γ• α−m.
2. Algoritma Pohlig-Hellman
Dalam matematika, algoritma Pohlig-Hellman adalah sebuah algoritma untuk menghitung logaritma diskrit pada sebuah grup perkalian dengan order berupa sebuah integer kecil. Algoritma ini berdasarkan pada Chinese Remainder Theorem.
Algoritma ini ditemukan oleh Roland Silver, tetapi pertama kali dipublikasikan oleh Stephen Pohlig dan Martin Hellman. Algoritma ini akan dijelaskan dalam grup yang dibentuk dengan mengambil semua elemen dari Zp
yang relatif prima terhadap nilai p.
Input :integerp, g, e.
Output :integerx, sedemikian sehingga e gx(mod p).
1) Tentukan faktorisasi prima dari order dari grup (hitung nilai totient) :
(18)
6 2) Dari Chinese Remainder Theorem, diketahui bahwa x = a1p1+ b1. Sekarang,
cari nilai b1 agar persamaan berikut dipenuhi dengan menggunakan sebuah
algoritma cepat seperti algoritma Baby-step giant-step:
?? ( ? ) ?⁄ ? ≡ (??)? ( ? ) ?⁄ ? (mod p)
≡ ??? ( ? )??????? ( ? ) ?⁄ ? (mod p)
= ??? ( ? ) ?⁄ ???? (mod p) (menggunakan teorema Euler) Perlu dicatat bahwa apabila ?? ( ? ) ?⁄ ? ≡ 1 (mod p) maka order dari g adalah lebih kecil dari ?? ( ? ) ?⁄ ? (mod p) harus sama dengan 1 agar terdapat sebuah solusi. Pada kasus ini, akan terdapat lebih dari satu buah solusi untuk x yang lebih kecil daripada φ(p), tetapi karena tidak diperlukan keseluruhan set, maka dapat diset nilai b1 = 0. Operasi yang sama juga dilakukan untuk p2hingga pn.
Sebuah modifikasi minor diperlukan ketika sebuah bilangan prima diulang. Misalkan ditemukan nilai pisebanyak k+1buah. Maka dapat diketahui bahwa cipada persamaan x = aipik+1+ bipik+ci, dan dapat ditemukan nilai bidengan
cara yang sama seperti sebelumnya.
3) Proses diakhiri dengan kongruen simultan yang cukup sehingga x dapat diselesaikan dengan menggunakan Chinese Remainder Theorem.
3. Chinese Remainder Theorem (CRT)
Pada abad pertama, seorang matematikawan Tiongkok yang bernama Sun Tzu mengajukan pertanyaan sebagai berikut :
“Tentukan sebuah bilangan bulat yang bila dibagi dengan 5 menyisakan 3, bila dibagi 7 menyisakan 5, dan bila dibagi 11 menyisakan 7”.
Pertanyaan Sun Tzu dapat dirumuskan ke dalam sistem kongruen linier : x 3 (mod 5)
x 5 (mod 7) x 7 (mod 11)
Teorema Chinese Remainder berikut akan digunakan untuk menemukan solusi sistem kongruen linier seperti di atas :
(19)
7 Misalkan m1, m2, …, mn adalah bilangan bulat positif sedemikian sehingga
GCD(mi, mj) = 1 untuk i j. Maka sistem kongruen linier x ak (mod mk)
mempunyai sebuah solusi unik dalam modulo m = m1. m2. … . mn.
Proses penyelesaian sebuah sistem kongruen linier dengan menggunakan
Chinese Remainder Theoremdapat dibagi menjadi beberapa 2 tahapan, yaitu: 1) Proses pencarian nilai invers modulo dengan menggunakan algoritma
Extended Euclidean.
2) Proses pencarian hasil dari sistem kongruen linier dengan menggunakan bantuan hasil nilai invers modulo yang diperoleh.
Selain itu, Chinese Remainder Theorem juga menggunakan teknik matematika dasar yang digunakan untuk menyelesaikan sistem persamaan linier, yaitu sistem substitusi persamaan.
Secara garis besar, cara kerja dari Chinese Remainder Theorem ini adalah sebagai berikut :
1) Ubahlah kongruen linier pertama x b1(mod m1) ke dalam hubungan x = b1+
m1.k1.
2) Substitusikan bentuk hubungan kongruen linier pertama tersebut ke dalam kongruen linier kedua, yang dapat dijabarkan seperti berikut :
x b2(mod m2)
b1+ m1.k1 b2(mod m2)
m1.k1 (b2– b1) (mod m2)
Jika bentuk (b2– b1) (mod m2) yang dihasilkan tidak valid, maka ubahlah ke
bentuk valid. Bentuk valid dari kongruen linier harus memenuhi persyaratan bahwa nilai sisa modulo harus lebih kecil daripada nilai bilangan modulo. Dalam hal ini, nilai (b2 – b1) harus lebih kecil daripada nilai m2. Jika tidak valid, maka nilai (b2 – b1) harus di-modulo nilai m2. Hasil modulo
menggantikan nilai (b2 – b1) tersebut. Sehingga, proses dapat dilanjutkan
seperti berikut :
(20)
8
h = (b2– b1) Jika tidak,
h = (b2– b1) mod m2
m1.k1 h (mod m2)
k1 ≡ h (mod m2) . m1-1(mod m2)
Bagian bercetak tebal tersebut dapat dicari dengan menggunakan algoritma
Extended Euclidean. Misalkan m1-1(mod m2) = z, maka :
k1 h . z (mod m2)
Sama seperti proses di atas, jika bentuk h . z (mod m2) yang dihasilkan tidak valid, maka ubahlah ke bentuk valid. Sehingga, proses dapat dilanjutkan seperti berikut :
Jika h . z < m2maka g = h . z Jika tidak,
g = h . z mod m2
k1 g (mod m2) ; atau :
k1 = g + m2.k2
3) Substitusikan hasil yang didapat ke dalam bentuk hubungan kongruen linier pertama, seperti dijabarkan berikut ini :
x = b1+ m1.k1
x = b1+ m1.(g + m2.k2)
x = b1+ m1.g + m1.m2.k2
x = (b1+ m1.g) + (m1.m2).k2
4) Ulangi langkah (2) dan (3) di atas untuk semua kongruen linier lainnya hingga kongruen linier terakhir (misalkan = n), didapatkan :
x = (bn – 1+ mn – 1.g) + (mn – 1.mn).kn
(21)
9
1.5 Tujuan Penelitian
Tujuan penyusunan skripsi ini adalah menentukan algoritma yang lebih baik diantara kedua Algoritma Baby-Step Giant-Step dengan Algoritma Pohlig-Hellman yang diuji dengan cara membuat suatu perangkat lunak yang menerapkan prosedur kerja dari kedua algoritma dalam mencari solusi dalam masalah logaritma diskrit sekaligus membandingkan kecepatan eksekusi dari kedua algoritma tersebut.
1.6 Manfaat Penelitian
Manfaat dari penyusunan skripsi ini, yaitu:
1. Memperoleh hasil analisis mengenai kinerja dari algoritma Baby-step giant-stepdanPohlig-Hellmandalam mencari solusi dari masalah logaritma diskrit. 2. Mengetahui algoritma terbaik dari kedua algoritma yang diuji.
1.7 Metode Penelitian
Tahapan dan langkah-langkah metodologi penelitian dalam tulisan ini adalah sebagai berikut:
1. Studi Kepustakaan
Mengumpulkan dan mempelajari materi yang berhubungan dengan topik dari buku dan internet terutama mengenai proses kerja dari algoritma Baby-step giant-step dan Pohlig-Hellman dalam mencari solusi dari masalah logaritma diskrit.
2. Kajian Teoritis
Menganalisis proses kerja dari setiap algoritma. 3. Analisis
(22)
10 4. Perancangan (Desain)
Merancang tampilan dari perangkat lunak. 5. Implementasi Program
Menggunakan Microsoft Visual Basic 2008. 6. Pengujian Sistem
Menguji perangkat lunak dan memperbaiki kesalahan yang muncul. 7. Penulisan Laporan
Menyusun laporan tugas akhir.
1.8 Sistematika Penulisan
Agar pembahasan lebih sistematika, maka tulisan ini dibuat dalam lima bab, yaitu:
BAB I PENDAHULUAN
Berisi latar belakang pemilihan judul, rumusan masalah, tujuan dan manfaat, batasan masalah dan sistematika penulisan.
BAB II LANDASAN TEORI
Berisi tentang penjelasan singkat mengenai algoritma, logaritma diskrit dan Microsoft Visual Basic.NET.
BAB III ANALISA DAN PERANCANGAN
Berisi tentang pembahasan mengenai proses kerja dan perancangan tampilan antarmuka.
BAB IV IMPLEMENTASI PERANGKAT LUNAK
Berisi tentang algoritma dan implementasi dari perangkat lunak.
BAB V KESIMPULAN DAN SARAN
Berisi tentang kesimpulan dan saran-saran yang diambil penulis setelah menyelesaikan skripsi.
(23)
BAB II
LANDASAN TEORI
2.1 Sistem Bilangan
D i a n t a r a s i s t e m b i l a n g a n , y a n g p a l i n g s e d e r h a n a a d a l a h b i l a n g a n - b i l a n g a n a s l i y a i t u 1 , 2 , 3 , 4 , 5 , … . D e n g a n b i l a n g a n i n i k i t a d a p a t m e n g h i t u n g b u k u - b u k u k i t a , t e m a n - t e m a n k i t a , d a n u a n g k i t a . J i k a k i t a g a n d e n g k a n n e g a t i f n y a d a n n o l , k i t a p e r o l e h b i l a n g a n - b i l a n g a n b u l a t y a i t u … , - 3 , - 2 , - 1 , 0 , 1 , 2 , 3 , … .
B i l a k i t a m e n c o b a m e n g u k u r p a n j a n g , b e r a t a t a u t e g a n g a n l i s t r i k , b i l a n g a n - b i l a n g a n b u l a t t i d a k m e m a d a i . B i l a n g a n i n i t e r l a l u k u r a n g u n t u k m e m b e r i k a n k e t e l i t i a n y a n g c u k u p . K i t a d i t u n t u n u n t u k j u g a m e m p e r t i m b a n g k a n h a s i l b a g i ( r a s i o ) d a r i b i l a n g a n - b i l a n g a n b u l a t y a i t u ¾ , ½ , d a n s e b a g a i n y a . B i l a n g a n - b i l a n g a n y a n g d a p a t d i t u l i s k a n d a l a m b e n t u k m /
n d i m a n a m d a n n a d a l a h
b i l a n g a n - b i l a n g a n b u l a t d e n g a n n ≠ 0 , d i s e b u t b i l a n g a n - b i l a n g a n r a s i o n a l .
B i l a n g a n - b i l a n g a n r a s i o n a l t i d a k b e r f u n g s i u n t u k m e n g u k u r s e m u a p a n j a n g . F a k t a y a n g m e n g e j u t k a n i n i d i t e m u k a n o l e h o r a n g Y u n a n i k u n o b e b e r a p a a b a d s e b e l u m M a s e h i . M e r e k a m e m p e r l i h a t k a n b a h w a m e s k i p u n √2 m e r u p a k a n
p a n j a n g s i s i m i r i n g s e b u a h s e g i t i g a s i k u - s i k u d e n g a n s i s i - s i s i 1 , b i l a n g a n i n i t i d a k d a p a t d i t u l i s k a n s e b a g a i s u a t u h a s i l b a g i d a r i d u a b i l a n g a n b u l a t . J a d i √2 a d a l a h s u a t u b i l a n g a n t a k r a s i o n a l . D e m i k i a n j u g a b e n t u k - b e n t u k a k a r l a i n n y a .
S e k u m p u l a n b i l a n g a n ( r a s i o n a l d a n t a k r a s i o n a l ) y a n g d a p a t m e n g u k u r p a n j a n g , b e r s a m a - s a m a d e n g a n n e g a t i f n y a d a n n o l d i n a m a k a n b i l a n g a n - b i l a n g a n r i i l . B i l a n g a n b i l a n g a n r i i l d a p a t d i p a n d a n g s e b a g a i p e n g e n a l ( l a b e l ) u n t u k t i t i k
(24)
-BAB III
ANALISA DAN PERANCANGAN
3.1 Analisa Masalah
Analisa sistem adalah suatu proses penguraian dari suatu sistem yang utuh ke dalam bagian-bagian komponennya dengan maksud untuk mengidentifikasi dan mengevaluasi permasalahan, kesempatan, hambatan yang terjadi dan kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan.
Problema logaritma diskrit banyak dipelajari pada ilmu matematika. Dalam literatur, banyak ditemui algoritma yang dapat diterapkan untuk menyelesaikan problema logaritma diskrit. Algoritma ini memiliki langkah kerja yang berbeda dalam mencari solusi dari problema logaritma diskrit. Algoritma ini juga memiliki langkah kerja yang kompleks dan panjang, sehingga sangat susah untuk diselesaikan secara manual.
Adapun beberapa masalah yang sering dihadapi dalam mempelajari problema logaritma diskrit ini adalah:
1. Sulitnya memahami proses kerja penyelesaian logaritma secara manual. 2. Sulitnya memecahkan problema logaritma diskrit secara manual.
Adapun beberapa persyaratan fungsional yang harus dipenuhi oleh perangkat lunak adalah sebagai berikut:
a. Bilangan yang digunakan pada bagian pemahaman bertipe data bilangan bulat positif dengan batasan maksimal 2-4 digit dan pada bagian aplikasi bertipe data bilangan bulat positif dengan batasan maksimal 4-8 digit.
(25)
45 b. Bilangan prima yang digunakan akan dibangkitkan dan diuji dengan
menggunakan metode Rabin Miller.
c. Perangkat lunak akan menampilkan proses perhitungan dari ketiga algoritma secara bertahap.
d. Perangkat lunak akan menampilkan perbandingan kecepatan proses dari ketiga algoritma.
e. Perangkat lunak akan menampilkan laporan hasil proses perhitungan yang dapat disimpan ke dalam sebuah fileteks berekstensi *.txt.
Untuk merumuskan persyaratan non-fungsional dari sistem, maka harus dilakukan analisa terhadap kinerja, informasi, ekonomi, keamanan aplikasi, efisiensi, dan pelayanan customer. Panduan ini dikenal dengan analisa PIECES (performance, information, economic, control, eficiency, dan services). Berikut rinciannya:
1. Performance
Perangkat lunak harus dapat menampilkan proses kerja dari setiap algoritma yang dapat digunakan untuk mencari solusi dari problema logaritma diskrit secara tahapan demi tahapan.
2. Information
Perangkat lunak harus mampu menampilkan rincian detail proses perhitungan dari setiap algoritma.
3. Economics
Perangkat lunak tidak memerlukan perangkat dukung tambahan lainnya (baik softwaremaupun hardware) dalam proses eksekusinya.
4. Control
Perangkat lunak akan menampilkan pesan kesalahan apabila data yang di-inputtidak lengkap atau tidak sesuai dengan ketentuan algoritma.
5. Efficiency
Hasil proses perhitungan dari perangkat lunak dapat disimpan ke dalam sebuah fileteks berekstensi *.txt.
(26)
46 6. Service
Perangkat lunak harus dapat menampilkan proses pemahaman dengan menggunakan bantuan animasi sederhana agar proses pemahaman dapat menjadi lebih menarik.
3.2 Perancangan
Perancangan perangkat lunak merupakan penggambaran, perencanaan dan pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah ke dalam satu kesatuan yang utuh dan berfungsi. Tahap perancangan mempunyai dua maksud atau tujuan utama yaitu:
1. Untuk memenuhi kebutuhan kepada pemakai.
2. Untuk memberikan gambaran yang jelas dan rancang bangun yang lengkap kepada pemograman komputer dan ahli-ahli teknik lainnya yang terlibat.
3.2.1 Perancangan UML 3.2.1.1Use Case Diagram
Sistem yang dibuat dapat dimodelkan dengan menggunakan use case diagram seperti terlihat pada gambar berikut:
(27)
47
Gambar 3.1 Use Case Diagram
3.2.1.2Activity Diagram
Algoritma Baby-Step Giant-Step dan Pohlig-Hellman dapat digunakan untuk mencari solusi dari problema logaritma diskrit ini. Setiap algoritma masing-masing memiliki batasan grup tersendiri. Gambaran proses kerja dari kedua algoritma ini dapat dilihat pada gambar activity diagramberikut:
1. Baby-Step Giant-Step
Algoritma baby-step giant-step ini berdasarkan pada sebuah waktu-jarak (space-time tradeoff). Algoritma ini merupakan modifikasi sederhana dari pengujian perkalian (trial multiplication), metode naive untuk menemukan logaritma diskrit. Berikut diberikan gambaran kasar dari proses kerjanya dalam bentuk activity diagram:
(28)
48
Input nilai p, sebuah generator g dan sebuah elemen y.
Untuk semua nilai j dimana 0 ≤j< m : Hitung αj dan simpan pasangan nilai (j, αj) pada sebuah tabel
Hitung nilai α−m
γ←β
Solusi = im+ j
Cek apakah γ adalah komponen kedua (αj) dari sembarang pasangan pada tabel
Ya
γ←γ α−m Tidak i = 0
i = i + 1
i < (m 1) Ya
Tidak
User Sistem
x= Solusi
Gambar 3.2Activity Diagramdari Baby-Step Giant-Step
2. Pohlig-Hellman
Algoritma ini akan dijelaskan dalam grup yang dibentuk dengan mengambil semua elemen dari Zp yang relatif prima terhadap nilai p. Berikut diberikan
(29)
49
Gambar 3.3Activity Diagramdari Pohlig-Hellman
3.2.1.3Sequence Diagram
Rancangan sequence diagramdari sistem yang dibuat dapat digambarkan seperti terlihat pada gambar berikut:
(30)
50
3.2.1.4Class Diaagram
Rancangan class diagram dari sistem yang dibuat dapat digambarkan seperti terlihat pada gambar berikut:
Gambar 3.5 Class Diagram
3.2.2 Penggunaan Komponen
Perangkat lunak penyelesaian logaritma diskrit menggunakan algoritma Baby-Step Giant-Step, Pohlig-Hellman dan Efisien Kalkulus Indeks ini dirancang dengan menggunakan bahasa pemrograman Microsoft Visual Basic 2005 dengan menggunakan beberapa objek dasar seperti :
1. Label, yang digunakan untuk menampilkan keterangan. 2. Button, yang digunakan sebagai tombol eksekusi.
3. Picture box, yang digunakan untuk menampilkan gambar dan sekaligus berfungsi sebagai link yang menghubungkan form-form yang terdapat pada perangkat lunak.
4. Textbox, yang digunakan sebagai tempat pengisian data input.
(31)
51
3.2.3 Perancangan Menu
Selain menggunakan beberapa objek dasar di atas, perangkat lunak ini juga menggunakan objek ‘MenuStrip’ untuk merancang sebuah menu yang digunakan sebagai penghubung (link) ke form-form lainnya yang terdapat pada perangkat lunak, yang dapat dirincikan sebagai berikut:
1. Menu ‘Teori’, yang berfungsi untuk menyediakan pilihan untuk memilih teori pendukung yang ingin ditampilkan. Menu ini memiliki beberapa sub menu yang dapat dirincikan sebagai berikut:
a. Sub menu ‘Baby-Step Giant-Step’, yang berfungsi untuk menampilkan teori Baby-Step Giant-Step.
b. Sub menu ‘Pohlig-Hellman’, yang berfungsi untuk menampilkan teori Pohlig-Hellman.
2. Menu ‘Proses Kerja’ yang berfungsi untuk menampilkan proses pemahaman dari algoritma. Menu ini memiliki beberapa sub menu yang dapat dirincikan sebagai berikut:
a. Sub menu ‘Input Data’, yang berfungsi untuk menyediakan interface untuk pengisian data awal yang diperlukan dalam proses pemahaman dan aplikasi.
b. Menu ‘Pemahaman’ yang berfungsi untuk menampilkan proses kerja dari algoritma yang dipilih. Sub menu ini memiliki beberapa sub menu yang dapat dirincikan sebagai berikut:
i. Sub menu ‘Baby-step Giant-step’ yang berfungsi untuk menampilkan proses kerja dari algoritma baby-step giant-stepuntuk mencari solusi dari problema logaritma diskrit.
ii. Sub menu ‘Pohlig-Hellman’ yang berfungsi untuk menampilkan proses kerja dari algoritma Pohlig-Hellmanuntuk mencari solusi dari problema logaritma diskrit.
c. Sub menu ‘Tabel Perbandingan’ yang berfungsi untuk menampilkan tabel perbandingan waktu eksekusi antara ketiga algoritma.
3. Menu ‘Mengenai’, yang berfungsi untuk menampilkan form ‘About’ yang akan menampilkan data identitas dari pembuat perangkat lunak.
(32)
52 Rancangan menu utama ini dapat dilihat pada gambar 3.6.
Gambar 3.6 Rancangan Menu Utama
3.2.4 Perancangan Tampilan Antarmuka
Rancangan tampilan dari perangkat lunak penyelesaian logaritma diskrit menggunakan algoritma Baby-Step Giant-Step dan Pohlig-Hellman ini dapat dirincikan sebagai berikut:
1. Form‘Main’. 2. Form‘Input Data’. 3. Form ‘Pemahaman’. 4. Form‘Teori’.
5. Form‘Hasil Perbandingan’. 6. Form‘Mengenai’.
3.2.4.1 Form ‘Main’
Formini merupakan formpembuka (awal) dari perangkat lunak dan juga forminti dari perangkat lunak yang berfungsi untuk menghubungkan form-form yang ada pada perangkat lunak. Rancangan tampilan dari form‘Main’ ini dapat dilihat pada gambar 3.7 berikut:
(33)
53
Logaritma Diskrit x
Teori Proses Kerja Mengenai
Gambar 3.7 Rancangan Form‘Main’
Keterangan :
Form’Main’ memiliki enam buah menu yang terdiri dari menu ’Teori’, ’Proses Kerja’ dan ’Mengenai’.
3.2.4.2 Form ‘Input Data’
Form ini berfungsi untuk menyediakan tempat pengisian data kunci yang diperlukan dalam proses pemahaman. Rancangan tampilan dari form‘Input Data’ ini dapat dilihat pada gambar 3.8 berikut:
Gambar 3.8 Rancangan Form‘Input Data’
Keterangan :
Untuk bagian pemahaman, setiap nilai g, y dan p bertipe data bilangan bulat positif sementara itu, untuk bagian aplikasi, setiap nilai g, y dan p bertipe data
(34)
54 bilangan long positif. Untuk menghasilkan bilangan secara acak, maka dapat ditekan tombol ’Acak’. Setelah selesai melakukan pengisian data, maka klik tombol ’Set’.
3.2.4.3 Form ‘Pemahaman’
Form ini berfungsi untuk menampilkan proses perhitungan dari algoritma yang dipilih. Rancangan tampilan dari form‘Pemahaman’ ini dapat dilihat pada gambar 3.9 berikut:
Gambar 3.9 Rancangan Form‘Pemahaman’
Keterangan :
XXX = Nama algoritma
Nomor 1 : Tabel algoritma yang berisi pseudo codedari algoritma.
Nomor 2 : Textbox’Hasil’ yang berisi hasil proses perhitungan dari langkah yang sedang dikerjakan.
(35)
55
3.2.4.4 Form ‘Teori’
Formini berfungsi untuk menampilkan teori-teori pendukung yang berhubungan dengan algoritma untuk menyelesaikan problema logaritma diskrit. Rancangan tampilan dari form‘Teori’ dapat dilihat pada gambar 3.10 berikut ini :
x Teori
Keluar
Halaman Sebelumnya Halaman Selanjutnya
Gambar 3.10 Rancangan Form’Teori’
Keterangan :
Tombol ‘Langkah Sebelumnya’, berfungsi untuk menampilkan halaman teori sebelumnya. Sementara itu, tombol ‘Langkah Selanjutnya’, berfungsi untuk menampilkan halaman teori selanjutnya dan tombol ‘Keluar’, berfungsi untuk menutup formdan kembali ke form’Main’.
(36)
56
3.2.4.5 Form ‘Hasil Perbandingan’
Form ‘Hasil Perbandingan’ berfungsi untuk menampilkan data waktu eksekusi dari proses perhitungan yang telah dilakukan sebelumnya. Data ini tersimpan pada tabel database. Rancangan tampilan dari form ‘Hasil Perbandingan’ dapat dilihat pada gambar 3.11:
Gambar 3.11 Rancangan Form’Hasil Perbandingan’
Keterangan :
Tombol ‘Hapus Data’, berfungsi untuk menghapus data yang dipilih pada tabel.
3.2.4.6 Form ‘Mengenai’
Form ini berfungsi untuk menampilkan data-data pribadi mengenai perancang perangkat lunak (programmer). Rancangan tampilan dari form ‘Mengenai’ dapat dilihat pada gambar 3.12 berikut :
(37)
57
Gambar 3.12 Rancangan Form ’Mengenai’
Keterangan :
Listbox1 berisi data-data pribadi dari pembuat perangkat lunak. Sementara itu, picturebox berfungsi untuk menampilkan logo dari perangkat lunak.
(38)
BAB IV
IMPLEMENTASI DAN HASIL
4.1
Implementasi
4.1.1
Kebutuhan Hardware
Untuk bisa menjalankan sistem ini, maka
hardware
yang direkomendasikan adalah
satu set lengkap perangkat komputer yang memiliki spesifikasi sebagai berikut:
a. Processor Intel(R) Core(TM)2 T7300 @ 1.60 GHz.
b. RAM 1 GB.
c. Harddisk 160 GB.
d. Monitor.
e. Keyboard dan Mouse
4.1.2
Kebutuhan Software
Untuk menjalankan sistem yang dirancang, diperlukan beberapa aplikasi pendukung,
yaitu sebagai berikut :
a. Sistem operasi Windows XP/Vista.
b. Microsoft Visual Basic 2005.
c. Microsoft Access 2003.
(39)
61
4.2
Hasil
4.2.1
Hasil Pemahaman
Perangkat lunak bantu penerapan
Baby-Step Giant-Step
dan
Pohlig-Hellman
untuk
mencari solusi dari problema logaritma diskrit ini memiliki prosedur kerja sebagai
berikut:
1. Tampilan menu ‘Proses Kerja’ >> ‘Input Data’.
Gambar 4.1 Tampilan
Form Main
Klik Menu ‘Proses Kerja’ >> ‘Input Data’
Dengan mengklik menu ‘Input Data’ maka akan muncul tampilan input seperti
terlihat pada gambar berikut:
Gambar 4.2 Tampilan
Form Input Data
Klik tombol ‘Set’ maka data input akan disimpan ke memori sementara. Setelah itu,
untuk menampilkan proses kerja dari algoritma, maka tampilannya adalah sebagai
berikut:
(40)
62
Gambar 4.3 Tampilan
Form Main
Klik Menu ‘Proses Kerja’ >>
‘Pemahaman’ >> ‘Baby Step Giant Step’
(41)
63
Gambar 4.5 Tampilan
Form Main
Klik Menu ‘Proses Kerja’ >>
‘Pemahaman’ >> ‘Pohlig Hellman’
(42)
64
2. Tampilan
form
‘Laporan’, yang dapat dilihat pada gambar 4.7 :
Gambar 4.7 Tampilan
Form
Laporan
4.2.2
Hasil Pengujian
Tampilan proses pemilihan menu ’Tabel Penyelesaian’, yang dapat dilihat pada
gambar 4.8:
Gambar 4.8 Tampilan
Form Main
Klik Menu ‘Proses Kerja’ >> ‘Tabel
Penyelesaian’
(43)
65
Input data yang digunakan untuk melakukan pengujian adalah sebagai berikut:
1. Pengujian I
Gambar 4.9 Tampilan
Form Input Data
untuk Pengujian I
2. Pengujian II
(44)
66
3. Pengujian III
Gambar 4.11 Tampilan
Form Input Data
untuk Pengujian III
Berikut diberikan beberapa hasil pengujian terhadap perangkat lunak:
(45)
BAB V
KESIMPULAN DAN SARAN
5.1
Kesimpulan
Setelah menyelesaikan tugas akhir ini, penulis menarik beberapa kesimpulan sebagai
berikut :
1.
Perangkat lunak mampu mendukung proses pemahaman untuk setiap prosedur
kerja dari algoritma
Baby-Step Giant-Step
dan
Pohlig-Hellman
untuk menghitung
solusi dari problema logaritma diskrit.
2.
Dari hasil pengujian dapat diperoleh kesimpulan bahwa algoritma
Baby-Step
Giant-Step
dapat memperoleh solusi dengan waktu eksekusi yang paling cepat.
5.2
Saran
Penulis ingin memberikan beberapa saran yang mungkin berguna untuk
pengembangan perangkat lunak lebih lanjut, yaitu :
1.
Perangkat lunak dapat dikembangkan lebih lanjut dengan menggunakan bilangan
yang sangat besar dalam proses kerjanya sehingga lebih mendekati kenyataan
(riil).
2.
Perangkat lunak dapat dikembangkan lebih lanjut dengan menambahkan fasilitas
untuk memecahkan kunci dari algoritma.
3.
Proses pemahaman dapat dibuat menjadi lebih menarik dengan menambahkan
efek-efek lainnya seperti efek audio, animasi gambar, dan sebagainya.
(46)
DAFTAR PUSTAKA
Ariyus, D., 2008.
Pengantar Ilmu Kriptografi : Teori, Analisis, dan
Implementasi. Yogyakarta : Penerbit Andi.
Besari, I., Matematika Universitas, Armico, Bandung, 1980.
Munir, R., 2005, Matematika Diskrit, Informatika Bandung.
Roger S. Pressman, Ph.D., 2002,
Rekayasa Perangkat Lunak : Pendekatan
Praktisi (Buku Satu), Mc Graw-Hill Companies, Inc, Penerbit ANDI.
Schneier, B., 1996,
Applied Crytography : Protocols, Algorithm, and Source Code
in C
,
Second Edition
, John Willey and Sons Inc.
Supardi, Y., Microsoft Visual Basic 2005 untuk Segala Tingkat, PT. Elex Media
Komputindo, 2008.
Situs Online:
http://www.math.boun.edu.tr/instructors/karabudak/math483/notes/CRT.pdf
www.iecn.u-nancy.fr/~gaillard/DIVERS/Chinese.Remainder.Theorem/060105.
chinese.remainder.theorem.pdf
www.math.ucsb.edu/~garcias/cv/NumberTheory/NumberTheory.html
(1)
Gambar 4.5 Tampilan Form MainKlik Menu ‘Proses Kerja’ >> ‘Pemahaman’ >> ‘Pohlig Hellman’
(2)
64 2. Tampilan form‘Laporan’, yang dapat dilihat pada gambar 4.7 :
Gambar 4.7 Tampilan Form Laporan
4.2.2 Hasil Pengujian
Tampilan proses pemilihan menu ’Tabel Penyelesaian’, yang dapat dilihat pada gambar 4.8:
Gambar 4.8 Tampilan Form MainKlik Menu ‘Proses Kerja’ >> ‘Tabel Penyelesaian’
(3)
Input data yang digunakan untuk melakukan pengujian adalah sebagai berikut: 1. Pengujian I
Gambar 4.9 Tampilan Form Input Datauntuk Pengujian I
2. Pengujian II
(4)
66 3. Pengujian III
Gambar 4.11 Tampilan Form Input Datauntuk Pengujian III
Berikut diberikan beberapa hasil pengujian terhadap perangkat lunak:
(5)
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Setelah menyelesaikan tugas akhir ini, penulis menarik beberapa kesimpulan sebagai berikut :
1. Perangkat lunak mampu mendukung proses pemahaman untuk setiap prosedur kerja dari algoritma Baby-Step Giant-Step dan Pohlig-Hellman untuk menghitung solusi dari problema logaritma diskrit.
2. Dari hasil pengujian dapat diperoleh kesimpulan bahwa algoritma Baby-Step Giant-Step dapat memperoleh solusi dengan waktu eksekusi yang paling cepat.
5.2 Saran
Penulis ingin memberikan beberapa saran yang mungkin berguna untuk pengembangan perangkat lunak lebih lanjut, yaitu :
1. Perangkat lunak dapat dikembangkan lebih lanjut dengan menggunakan bilangan yang sangat besar dalam proses kerjanya sehingga lebih mendekati kenyataan (riil).
2. Perangkat lunak dapat dikembangkan lebih lanjut dengan menambahkan fasilitas untuk memecahkan kunci dari algoritma.
3. Proses pemahaman dapat dibuat menjadi lebih menarik dengan menambahkan efek-efek lainnya seperti efek audio, animasi gambar, dan sebagainya.
(6)
DAFTAR PUSTAKA
Ariyus, D., 2008. Pengantar Ilmu Kriptografi : Teori, Analisis, dan Implementasi. Yogyakarta : Penerbit Andi.
Besari, I., Matematika Universitas, Armico, Bandung, 1980. Munir, R., 2005, Matematika Diskrit, Informatika Bandung.
Roger S. Pressman, Ph.D., 2002, Rekayasa Perangkat Lunak : Pendekatan Praktisi (Buku Satu), Mc Graw-Hill Companies, Inc, Penerbit ANDI.
Schneier, B., 1996, Applied Crytography : Protocols, Algorithm, and Source Code in C, Second Edition, John Willey and Sons Inc.
Supardi, Y., Microsoft Visual Basic 2005 untuk Segala Tingkat, PT. Elex Media Komputindo, 2008. Situs Online: http://www.math.boun.edu.tr/instructors/karabudak/math483/notes/CRT.pdf www.iecn.u-nancy.fr/~gaillard/DIVERS/Chinese.Remainder.Theorem/060105. chinese.remainder.theorem.pdf www.math.ucsb.edu/~garcias/cv/NumberTheory/NumberTheory.html www.cs.purdue.edu/homes/ninghui/courses/Spring04/lectures/lect11.pdf