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
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
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
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
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.
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.
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.
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
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
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
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.
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.
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
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.
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
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
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) :
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
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 :
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
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
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
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 .
-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
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
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
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
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
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:
50
3.2.1.4Class Diaagram
Rancangan class diagram dari sistem yang dibuat dapat digambarkan
[image:30.612.140.498.145.386.2]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.
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
52
[image:32.612.153.519.101.211.2]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
53
Logaritma Diskrit x
[image:33.612.182.460.77.277.2]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
[image:33.612.180.454.481.634.2]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
[image:34.612.132.504.271.533.2]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
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
[image:35.612.155.482.173.504.2]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
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
[image:36.612.133.505.196.363.2]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
57
Gambar 3.12 Rancangan Form ’Mengenai’
Keterangan :
Listbox1 berisi data-data pribadi dari pembuat perangkat lunak. Sementara itu,
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 :
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:
[image:39.612.113.525.234.324.2]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
[image:39.612.196.446.413.581.2]62
Gambar 4.3 Tampilan
Form Main
Klik Menu ‘Proses Kerja’ >>
‘Pemahaman’ >> ‘Baby Step Giant Step’
[image:40.612.124.519.257.545.2]63
Gambar 4.5 Tampilan
Form Main
Klik Menu ‘Proses Kerja’ >>
‘Pemahaman’ >> ‘Pohlig Hellman’
[image:41.612.130.526.257.567.2]64
[image:42.612.120.520.104.397.2]2. Tampilan
form
‘Laporan’, yang dapat dilihat pada gambar 4.7 :
Gambar 4.7 Tampilan
Form
Laporan
4.2.2
Hasil Pengujian
[image:42.612.112.526.556.645.2]Tampilan proses pemilihan menu ’Tabel Penyelesaian’, yang dapat dilihat pada
gambar 4.8:
65
[image:43.612.195.447.128.292.2]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
[image:43.612.197.446.361.528.2]66
[image:44.612.198.446.105.273.2]3. Pengujian III
Gambar 4.11 Tampilan
Form Input Data
untuk Pengujian III
Berikut diberikan beberapa hasil pengujian terhadap perangkat lunak:
[image:44.612.117.527.338.518.2]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.
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