• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2016

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

Copied!
46
0
0

Teks penuh

(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

(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

(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

(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

(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.

(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.

(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.

(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

(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.

(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.

(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

(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.

(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

(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

(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 .

(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

(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

(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

(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

(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

[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.

(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

(32)

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

(33)

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]
(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

[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

(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

[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

(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

[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

(37)
[image:37.612.143.493.79.251.2]

57

Gambar 3.12 Rancangan Form ’Mengenai’

Keterangan :

Listbox1 berisi data-data pribadi dari pembuat perangkat lunak. Sementara itu,

(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 :

(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:

[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]
(40)
[image:40.612.114.529.88.185.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]
(41)
[image:41.612.113.529.88.186.2]

63

Gambar 4.5 Tampilan

Form Main

Klik Menu ‘Proses Kerja’ >>

‘Pemahaman’ >> ‘Pohlig Hellman’

[image:41.612.130.526.257.567.2]
(42)

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:

(43)

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]
(44)

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]
(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.

(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

Gambar

Gambar 3.1 Use Case Diagram
Gambar 3.2 Activity Diagram dari Baby-Step Giant-Step
Gambar 3.4 Sequence Diagram
Gambar 3.5 Class Diagram
+7

Referensi

Dokumen terkait

[r]

1) Menciptakan keadaan dimana setiap keluarga dapat menempati rumah yang layak dalam lingkungan yang sehat dan teratur. Suatu kondisi yang memenuhi persyaratan kelayakan dalam

Terdapat lima rekomendasi yang diberikan IACHR terkait femicide yaitu: (1) negara seharusnya bertindak tegas terhadap pelaku femicide dan tidak menggangap apa

Korelasi antara antara pH tanah, C-organik tanah, dan N-total tanah dengan respirasi tanah akibat pemberian kombinasi biomassa azolla dan pupuk urea

Berdasarkan hasil penelitian mengenai hubungan dukungan suami dengan kelengkapan kunjungan Antenatal Care (ANC) pada ibu hamil trimester III di Puskesmas Mergangsan

Hasil penelitian untuk aspek kognitif yang diukur dengan tes mengalami peningkatan dari siklus 1 (77,42%) ke siklus 2 (87,50%) akan tetapi menurun pada siklus 3 (56,25%),

Secara sederhana cara kerja dioda pada saat diberi bias maju adalah sebagai berikut, pada saat dioda diberi bias maju, maka electron akan bergerak dari terminal negative batere

Menurut peneliti dimana demensia akan terjadi seiring bertambahnya usia seseorang dan seluruh organ akan mengalami penurunan salah satunya lansia akan susah untuk