Analisis Algoritma Baby-Step Giant-Step dan Pohlig-Hellman untuk Menyelesaikan Masalah Logaritma Diskrit

(1)

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

x

mod 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

g

y is unique integer x and x  Z

p

so that y = g

x

mod 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

x

mod 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

g

y is unique integer x and x  Z

p

so that y = g

x

mod 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) mCeiling(√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