• Tidak ada hasil yang ditemukan

Algoritma uji komposit berdasarkan teorema kongruensi fermat dan teorema strong pseudoprime

N/A
N/A
Protected

Academic year: 2017

Membagikan "Algoritma uji komposit berdasarkan teorema kongruensi fermat dan teorema strong pseudoprime"

Copied!
32
0
0

Teks penuh

(1)

ALGORITMA UJI KOMPOSIT BERDASARKAN

TEOREMA KONGRUENSI FERMAT DAN

TEOREMA STRONG PSEUDOPRIME

Oleh:

BANGUN JATI KUSUMO

G54101045

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(2)

ALGORITMA UJI KOMPOSIT BERDASARKAN

TEOREMA KONGRUENSI FERMAT DAN

TEOREMA STRONG PSEUDOPRIME

Skripsi

Sebagai salah satu syarat untuk memperoleh gelar Sarjana Sains

Pada Fakultas Matematika dan Ilmu Pengetahuan Alam

Institut Pertanian Bogor

Oleh :

BANGUN JATI KUSUMO

G54101045

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(3)

RINGKASAN

BANGUN JATI KUSUMO. Algoritma Uji Komposit Berdasarkan Teorema Kongruensi Fermat dan Teorema Strong Pseudoprime. Dibimbing oleh SUGI GURITMAN dan SISWANDI.

Dalam menentukan apakah suatu bilangan bulat positif ganjil m merupakan bilangan komposit atau bukan, diperlukan suatu uji. Uji tersebut dinamakan uji komposit.

Uji Komposit I adalah uji yang didasarkan pada Teorema Kongruensi Fermat. Input dari uji ini adalah bilangan bulat m dan a sebagai basis. Jika uji berhasil maka m dapat dikatakan sebagai bilangan komposit. Jika tidak, maka m dikatakan bilangan diduga prima berbasis a, dimana a

adalah anggota dari himpunan bilangan-bilangan bulat modulo m yang relatif prima dengan m. Uji Komposit II adalah uji yang didasarkan pada Teorema Strong Pseudoprime. Input dari uji ini adalah bilangan yang tidak dapat ditentukan kekompositannya menggunakan Uji Komposit II, yaitu bilangan diduga prima berbasis a. Jika uji berhasil maka m merupakan bilangan komposit dan disebut bilangan prima semu berbasis a. Jika tidak, maka m dikatakan bilangan diduga kuat prima berbasis a.

Uji Carmichael adalah uji untuk menentukan apakah suatu bilangan merupakan bilangan Carmichael atau bukan. Input dari uji ini adalah m bilangan prima semu berbasis a. Jika uji berhasil maka bilangan tersebut merupakan bilangan Carmichael. Jika tidak, maka bilangan tersebut merupakan bilangan prima semu berbasis a.

Uji komposit III adalah Uji Diduga Kuat Prima dengan basis a yang telah ditentukan, yaitu: 2, 3, 5, dan 7. Input dari Uji ini adalah bilangan diduga kuat prima berbasis a. Jika uji berhasil maka

(4)

Judul

: Algoritma Uji Komposit Berdasarkan Teorema Kongruensi Fermat

dan Teorema

Strong Pseudoprime

.

Nama

: Bangun Jati Kusumo

NRP

: G54101045

Menyetujui,

Mengetahui,

Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam

Institut Pertanian Bogor

Tanggal Lulus : ………..

Pembimbing II

Drs. Siswandi, M. Si

NIP. 131 957 320

Pembimbing I

Dr. Sugi Guritman

NIP. 131 999 582

(5)

RIWAYAT HIDUP

Penulis dilahirkan di Jakarta pada tanggal 1 Juni 1982 sebagai anak pertama dari tiga bersaudara. Ayah bernama Nurhadi (almarhum) dan Ibu bernama Pudji Rahayu.

Penulis menyelesaikan pendidikan Sekolah Dasar pada tahun 1994 di SD Negeri Mangunsari 1 Magelang, Sekolah Lanjutan Tingkat Pertama Negeri 7 Magelang tahun 1997, Sekolah Menengah Umum Negeri 1 Muntilan tahun 2000, dan masuk Institut Pertanian Bogor melalui jalur UMPTN pada tahun 2001.

(6)

PRAKATA

Puji syukur penulis panjatkan kepada Allah SWT. yang selalu menjadi pusat tujuan hidup dan rasa syukur yang mendalam kepada Sang Guru Sejatiku, Muhammad SAW yang selalu ada memberikan pepadang, tuntunan, dan lindungan, sehingga penulis dapat menyelesaikan karya ilmiah ini.

Keterbatasan dan ketidaksempurnaan membuat penulis membutuhkan bantuan, dukungan dan semangat dari orang-orang secara langsung ataupun tidak langsung berkontribusi besar dalam pembuatan karya ilmiah ini. Oleh karena itu penulis ingin mengucapkan rasa terima kasih yang sebesar-besarnya kepada ibu yang selalu ada memberikan kasih sayang, semangat dan doa. Almarhum Bapak Nurhadi atas petuah-petuah bijaknya waktu itu. Bapak Sugi Guritman dan Bapak Siswandi yang dengan sabar telah membimbing dan mengarahkan selama penulisan karya ilmiah ini. Dwicandra Ekastrya yang telah memberi masukan dan semangat. Wanda yang telah memberi dukungan dan doa. Seluruh Dosen Departemen Matematika atas segala ilmu yang telah diberikan tanpa lelah. Staf dan karyawan TU Matematika IPB: Mas Yono, Mas Deni, Ibu Susi, Ibu Ade, Mas Bono, Ibu Marisi, Pak Juanda dan Mbak Yanti yang senantiasa direpotkan. Matematika angkatan 38 atas persahabatannya yang semoga tidak akan berakhir. Serta seluruh pihak-pihak yang tidak dapat penulis sebutkan satu per satu.

Semoga karya ilmiah ini dapat bermanfaat.

Bogor, Agustus 2006

(7)

DAFTAR ISI

Halaman

DAFTAR BAGAN DAN GRAFIK ... vii

DAFTAR LAMPIRAN ... vii

PENDAHULUAN ... 1

1.1. Latar Belakang ... 1

1.2. Tujuan penulisan ... 1

LANDASAN TEORI ... 1

2.1 Keterbagian, ... 1

2.2 Teorema Fermat dan Teorema Strong Pseudoprime ... 2

UJI KOMPOSIT I ... 4

3.1 Penentuan bilangan bulat m ... 4

3.2 Penentuan bilangan bulat a ... 4

3.4 Bilangan diduga prima berbasis a... 4

UJI KOMPOSIT II ... 5

4.1 Menentukanbilangan bulat x... 5

4.3 Bilangan diduga kuat prima berbasis a ... 5

4.4 Bilangan prima semu berbasis a ... 6

UJI CARMICHAEL ... 7

5.1 Definisi bilangan Carmichael ... 7

5.2 Algoritma Uji Carmichael ... 7

UJI DIDUGA KUAT PRIMA ... 8

6.1 Algoritma Uji Diduga Kuat Prima ... 8

UJI KOMPOSIT III ... 9

7.1 Algoritma Uji Komposit III ... 10

7.3 Bilangan diduga kuat prima berbasis 2, 3, 5, dan 7 ... 10

PENENTUAN BILANGAN ... 10

8.2 Bilangan prima semu kuat berbasis a ... 10

SIMPULAN DAN SARAN ... 12

9.1 Simpulan ... 12

9.2 Saran ... 13

9.3 DAFTAR PUSTAKA ... 13

(8)

DAFTAR BAGAN DAN GRAFIK

Halaman

Bagan 1 : Klasifikasi Uji Komposit I ... 5

Bagan 2 : Klasifikasi Uji Komposit II ... 7

Bagan 3 : Himpunan bilangan komposit, prima semu, dan diduga kuat berbasis a ... 7

Bagan 4 : Letak bilangan Carmichael ... 8

Bagan 5 : Penentuan bilangan menjadi lima macam ... 11

Bagan 6 : Posisi bilangan-bilangan hasil Penentuan Bilangan ... 11

Bagan 7 : Semua uji yang telah dilakukan ... 12

Grafik 1 : Banyaknya bilangan komposit pada setiap selang satu juta ... 20

Grafik 2 : Banyaknya bilangan prima semu berbasis a pada setiap selang satu juta ... 20

Grafik 3 : Banyaknya bilangan prima semu kuat berbasis a pada setiap selang satu juta 21

Grafik 4 : Banyaknya bilangan Carmichael pada setiap selang satu juta ... 21

Grafik 5 : Banyaknya bilangan diduga kuat prima berbasis 2, 3, 5, dan 7 ... 21

Grafik 6 : Persentase banyaknya bilangan ganjil antara 9-20000000 ... 21

DAFTAR LAMPIRAN

Halaman Lampiran A : Algoritma Kongruensi Bilangan Pangkat dan implementasinya ... 15

Lampiran B : Algoritma dengan bantuan perangkat lunak Matematica 5.1 ... 17

Lampiran C : Tabel dan grafik hasil uji komposit ... 20

(9)

BAB I

PENDAHULUAN

Latar Belakang

Dalam menentukan apakah suatu bilangan bulat positif m merupakan bilangan komposit atau bukan, diperlukan suatu uji. Uji tersebut dinamakan uji komposit. Teorema Fermat dan Teorema Strong Pseudoprime [SPP] akan digunakan sebagai landasan teori pada beberapa uji komposit yang akan dilakukan.

Bilangan bulat positif m dikatakan komposit jika memenuhi kontraposisi dari Teorema Fermat terhadap basis a, dimana a

adalah anggota dari himpunan bilangan-bilangan bulat modulo m yang relatif prima dengan m. Jika m tidak memenuhi kontraposisi Teorema Fermat maka m

disebut bilangan diduga prima berbasis a. Kemudian bilangan yang telah diketahui diduga prima berbasis a dapat ditentukan kekompositannya menggunakan Teorema SPP. Jika m memenuhi kontraposisi Teorema SPP maka m adalah bilangan komposit. Jika tidak, maka m disebut bilangan diduga kuat prima berbasis a. Selanjutnya bilangan diduga kuat prima berbasis a akan ditentukan kekompositannya dengan cara mengganti basisnya dengan bilangan-bilangan yang telah ditentukan, yaitu 2, 3, 5, dan 7. Bilangan diduga kuat prima berbasis 2, 3, 5, dan 7 adalah hasil akhir dari tulisan ini.

Bilangan prima semu mutlak m adalah bilangan komposit yang tidak dapat ditentukan kekompositannya hanya menggunakan Teorema Fermat terhadap setiap basisnya yang relatif prima dengan m. Bilangan prima semu mutlak dibicarakan

pertama kali oleh Korslet pada tahun 1899 namun Korslet tidak dapat memberikan contohnya. Hingga pada tahun 1910 Robert Daniel Carmichael pertama kali menemukan bilangan prima semu mutlak pertama dan terkecil yaitu 561 dan diberi nama bilangan Carmichael.

Dalam sejarah perkembangan bilangan Carmichael, Paul Erdos pernah memberikan argumen bahwa seharusnya bilangan Carmichael memiliki tak hingga jumlahnya. Pada 1994, William Alford, Andrew Granville dan Carl Pomerance menunjukkan bahwa ada tak hingga bilangan Carmichael.

Hingga saat ini sudah diketahui ada 585355

Bilangan Carmichael antara 1-1017. Bilangan Carmichael dapat juga digunakan dalam proses pembuatan data enkripsi untuk membangun sebuah kunci dan dapat digunakan pula pada aplikasi graf.

[Wikipedia, 2006]

1.2 Tujuan

Tujuan dari penulisan ini adalah:

1. Mengkaji beberapa teorema yang berkaitan dengan penentuan apakah bilangan bulat positf ganjil adalah komposit atau bukan.

2. Mempelajari algoritma-algoritma yang digunakan untuk menentukan bilangan komposit, bilangan prima semu berbasis a, bilangan prima semu kuat berbasis a, bilangan diduga kuat prima berbasis 2, 3, 5, dan 7 serta bilangan Carmichael.

BAB II

LANDASAN TEORI

Dalam tulisan ini secara khusus akan dibicarakan bilangan bulat. Himpunan bilangan bulat dinotasikan dengan Z. Berikut adalah aspek teoritis yang menjadi landasan teori bagi penulisan tugas akhir ini.

2.1 Keterbagian, Bilangan Prima, Modulo, Pembagi Bersama Terbesar, Relatif Prima, dan Kongruensi.

Definisi 1.1 (Keterbagian)

Bilangan bulat b dikatakan terbagi oleh bilangan bulat a(a 0), jika ada bilangan

bulat x sedemikian sehingga b ax dan ditulis a|b. Apabila b tidak terbagi oleh a,

maka ditulis a b.

[Niven,1991]

Definisi 1.2 (Bilangan Prima)

Sebuah bilangan bulat p (p 2

)

dikatakan sebagai bilangan prima jika p hanya terbagi oleh satu dan dirinya sendiri. Selainnya, disebut bilangan komposit.
(10)

Definisi 1.3 (Himpunan Bilangan Bulat Modulo m)

Himpunan bilangan bulat modulo m,

dinotasikan Zm, merupakan suatu himpunan dari bilangan-bilangan bulat {0,1,2,3,…,m-1}.

[Menezes,1997]

Operasi pada penjumlahan, pengurangan, dan perkalian bilangan bulat modulo m bersifat

tertutup dalam Zm. Contoh

Untuk m 3.

1. Himpunan bulat modulo tiga adalah

3 {0,1, 2}

Z .

2. Operasi penjumlahan yang berlaku: 0 1 1,

1 2 0,

2 2 1.

Operasi pengurangan yang berlaku: 2 1 1,

1 2 2.

Operasi perkalian yang berlaku: 1.2 2,

2.2 1, 1.1 1.

Definisi 1.4 (Pembagi Bersama)

Suatu bilangan bulat c disebut pembagi bersama dari bilangan a dan bilangan b jika

c|a dan c|b.

[Niven,1991]

Definisi 1.5 (Pembagi Bersama Terbesar) Suatu bilangan bulat tak negatif d dikatakan pembagi bersama terbesar dari bilangan bulat

a dan b, jika :

1. d adalah pembagi bersama dari a dan b, dan

2. Jika c Zdimana c|a dan c|b, maka

c|d.

Biasanya pembagi bersama terbesar dari a

dan b dinotasikan dengand ( , )a b

.

[Menezes,1997]

Definisi 1.6 (Relatif Prima)

Bilangan a dan b dikatakan relatif prima jika ( , )a b 1dan bilangan-bilangan a a1, 2,...,an dikatakan relatif prima jika ( ,a a1 2,...,an) 1. Bilangan-bilangan a a1, 2,...,an dikatakan relatif prima berpasangan jika ( ,a ai j) 1

untuk setiap i 1, 2, 3...,n dan j 1, 2, 3...,n

dengan i j. [Niven,1991]

Definisi 1.7 (Kongruensi)

Misalkan a, b dan m bilangan bulat, dengan 0

m . Bilangan a dikatakan kongruen terhadap b modulo m, dinotasikan dengan

(mod )

a b m , jika m membagi (a b). Bilangan bulat m disebut modulus dari kongruensi.

[Menezes,1997]

Definisi 1.8 (Sistem Residu Lengkap Modulo m)

Jika x y(mod )m , maka y dikatakan residu

dari x modulo m. Himpunan x1,x2,x3, ...,xm

disebut sistem residu lengkap modulo m jika untuk setiap bilangan bulat y ada satu dan

hanya satu xj sedemikian sehingga

(mod ) j

y x m , dengan j = 1,2,3,…,m. [Niven,1991]

Definisi 1.9 (Sistem Residu Tereduksi Modulo m)

Suatu sistem residu tereduksi modulo m

adalah himpunan dari bilangan-bilangan bulat

1 2 { , ,..., r}

T x x x , dengan r msedemikian sehingga berlaku:

i. ( xi T m x)( , )i 1,

ii. Jika i j maka xi xj(mod )m , dan iii. Jika x Z dan ( , )x m 1, maka

( !xi T) xi x(mod )m .

[Niven,1991]

2.2 Teorema Fermat dan Teorema SPP

Teorema 2.1 (Sistem Residu Tereduksi dan Lengkap Modulo m)

Misalkan ( , )a m 1 dan misalkan

1, 2, 3, ..., n

r r r r adalah sistem residu lengkap modulo m atau sistem residu tereduksi modulo

m maka ar ar1, 2,ar3, ...,arn adalah juga sistem residu lengkap atau sistem residu tereduksi modulo m

.

[Niven,1991]

Teorema 2.2 (Sifat Kongruensi)

Misalkan a, b, c, d adalah bilangan bulat, maka:

1. Ketiga pernyataan berikut ekuivalen : i. a b(mod )m ,

(11)

2. Jika a b(mod )m dan b c(mod )m

maka a c(mod )m .

3. Jika a b(mod )m dan c d(mod )m

maka a c(mod )m b d(mod )m . 4. Jika a b(mod )m dan c d(mod )m

maka ac bd(mod )m .

5. Jika a b(mod )m dan d m| , d 0

maka a b(mod )d .

6. Jikaa b(mod )m maka ac bc(mod )m

untuk setiap bilangan bulat positif c. [Niven,1991]

Teorema 2.3 (Kongruensi Pembagian) Misalkan a, x, y adalah bilangan-bilangan bulat, jika ax ay(modm) dan (a,m)=1 maka x y(modm).

[Niven,1991]

Teorema 2.4 (Generalisasi Euler dari Teorema Fermat.)

Jika (a,m)=1 maka a ( )m 1(modm), dengan (m) adalah bilangan bulat positif kurang atau sama dengan m yang relatif prima dengan m.

[Niven,1991]

Bukti.

Misalkan r r1 2, ,r3, ...,r ( )

m adalah sistem

residu tereduksi modulo m, maka dengan

Teorema 2.1, ar ar1, 2,ar3, ...,ar ( ) m adalah

juga sistem residu tereduksi modulo m.

Dengan demikian korespondensi setiapr i

adalah satu dan hanya satu arj yang

sedemikian sehingga ri arj(modm).

Selanjutnya ri yang berbeda akan

mendapatkan korespondensi berbeda dariarj.

Ini berarti bahwa bilangan

, , , ...,

1 2 3 ( )

ar ar ar ar m hanya merupakan

residu modulo m dari r r1 2, ,r3, ...,r ( )m .

Dengan menggunakan Teorema 2.2 bagian 4, dapat diperoleh:

( ) ( )

1 1

( ) (mod ).

m m

j i

j i

ar r m

Selanjutnya:

( ) ( )

( )

1 1

( ) (mod )

m m

m

j j

j j

a r r m .

Sekarang (rj,m)=1. Dengan demikian dapat

digunakan Teorema 2.3 bagian 2 untuk

menghilangkan rj. Dari sini diperoleh bahwa

( )

1(mod ) m

a m .

Dari Teorema 2.4 dapat diperoleh teorema berikut.

Teorema 2.5 (Kongruensi Fermat).

Jika p merupakan bilangan prima maka

a Z yang memenuhi (a,p)=1, berlaku

1

1(mod ) p

a p .

[Niven,1991] Bukti Teorema Fermat.

Diketahui ( , )a p 1, oleh karena itu menurut

Teorema 2.4 didapat a (p) 1(modp). Semua bilangan bulat 1,2,3,…,p-1 adalah relatif prima dengan p. Jadi kita mendapatkan bahwa ( )p p 1.

Teorema 2.6 (Faktor Pembagi)

Jika p|ab, dengan p adalah prima, maka

|

p a atau p b| . Umumnya, jika

| , , ,..., 1 2 3

p a a a a

n maka p membagi sedikitnya

satu faktor dari ai.

[Niven,1991]

Teorema 2.7 (Teorema Strong Pseudoprime (SPP))

Jika p suatu bilangan prima, maka berlaku 2

1(mod ) 1(mod )

x p x p , dengan x

adalah bilangan bulat.

[Niven,1991]

Bukti Teorema SPP.

Bentuk kongruensi pangkat di atas dapat diekspresikan 2

1 0(mod )

x p . Bentuk tersebut setara dengan bentuk

(x 1)(x 1) 0(mod )p . Dari bentuk terakhir dapat dikatakan bahwa

| ( 1)( 1)

p x x . Berdasarkan Teorema 2.6, p | (x 1)(x 1) dapat ditulis

(12)

1(mod )

x p . Sebaliknya, jika salah satu dari bentuk dua kongruensi terakhir benar, dengan menggunakan Teorema 2.2 bagian 4 maka didapat bahwa 2

1(mod )

x p .

Kontraposisi Teorema SPP digunakan sebagai landasan teori uji komposit pada pembahasan.

BAB III

PEMBAHASAN

Uji Komposit I

Berdasarkan Teorema 2.5 (Kongruensi Fermat) diperoleh kontraposisinya, yaitu:

Teorema 3.1 (Uji Komposit I):

Jika a Z memenuhi ( , )a m 1 dan

berlaku m 1

a 1(modm) maka m adalah bilangan komposit.

Teorema 3.1 akan digunakan sebagai alat untuk menguji kekompositan dari suatu bilangan bulat positif m.

Berdasarkan Definisi 1.2 (bilangan prima) maka uji hanya akan dilakukan pada bilangan bulat positif lebih besar 2 (m 2). Karena telah diketahui bahwa bilangan prima genap hanya satu yaitu 2 maka uji hanya akan dilakukan pada bilangan ganjil. Pelaksanaan Uji Komposit I ada beberapa tahap, yaitu:

i. Menentukan bilangan bulat a yang diambil dari anggota bilangan-bilangan bulat modulo m, jadi a [0,m 1]. Selanjutnya a disebut basis dari m. ii. Bilangan bulat a harus relatif prima

dengan m ( (a,m)=1). Jika a 0maka a

dapat diabaikan karena 0 dipangkatkan berapapun akan menghasilkan 0, tidak menghasilkan kesimpulan. Jika a 1 maka a juga dapat diabaikan karena 1 dipangkatkan berapapun akan tetap sama dengan 1. Jika a m 1maka a

juga dapat diabaikan karena m 1setara dengan -1 pada bilangan modulo m dan

1

m merupakan bilangan genap karena

m adalah bilangan ganjil, sehingga -1 pangkat bilangan genap akan menjadi 1. Jadi, jikaa {0,1,m 1}maka kita tidak akan memperoleh hasil apapun pada Uji Komposit I ini. Jadi a {0,1,m 1}

tidak digunakan sebagai alat uji. Dengan demikian a [2,m 2]. iii. Menguji apakah 1

1(mod ) m

a m

.

Jika uji berhasil maka m merupakan bilangan komposit. Jika tidak (berarti

1

1(mod ) m

a m ), maka tidak dapat diambil kesimpulan apapun dari uji

komposit I dan m disebut bilangan diduga prima berbasis a.

Untuk menentukan apakah 1

1(mod ) m

a m

digunakan AKBP (lihat Lampiran A).

Contoh 1.

Misalkan m 1763, apakah m adalah bilangan komposit ?

Cara penyelesaiannya adalah sebagai berikut: 1. Ambil a 2 [2,1761].

2. (2,1763) 1.

3. 21762 742 mod 1763, ditentukan menggunakan AKBP.

Jadi 1763 adalah bilangan komposit. Tidak selamanya Uji Komposit I ini berhasil.

Contoh 2.

Misalkan m 1387, apakah m adalah bilangan komposit ?

Cara penyelesaiannya adalah sebagai berikut: 1. Ambil a 2 [2,1385].

2. (2,1387) 1.

3. 21386 1(mod 1387), ditentukan menggunakan AKBP.

Jadi 1387 merupakan bilangan diduga prima berbasis 2.

Sejauh ini bilangan bulat ganjil m 2 telah dapat ditentukan menjadi dua macam yaitu bilangan komposit dan bilangan diduga prima berbasis a (lihat Bagan 1).

Jika pada Uji Komposit I didapat hasil bahwa m merupakan bilangan diduga prima berbasis a maka ada dua cara yang dapat dilakukan selanjutnya untuk menentukan kekompositannya. Pertama, adalah dengan mengganti basisnya hingga didapat bahwa m

(13)

Bagan 1. Klasifikasi uji komposit I.

Uji Komposit II

Berdasarkan Teorema 2.7 (SPP) diperoleh kontraposisinya, yaitu:

Kontraposisi Teorema 2.7: Jika ( 2

1(mod )

x m x 1(modm)) atau (x2 1(mod )m x 1(mod )m ), maka m

adalah komposit.

Untuk kepentingan Uji Komposit II maka kontraposisi Teorema 2.7 (SPP) hanya akan digunakan sebagian.

Teorema 3.2 (Uji Komposit II). Jika 2

1(mod )

x m dan x 1(modm)

maka m adalah bilangan komposit.

Uji Komposit II merupakan kelanjutan dari Uji Komposit I, sehingga input dari uji ini adalah bilangan diduga prima berbasis a

yang diperoleh dari Uji Komposit I.

Jadi kita memiliki bilangan m

sedemikian sehingga ada bilangan bulat [2, 2]

a m yang memenuhi ( , )a m 1

dan berlaku 1

1(mod ) m

a m .

Selanjutnya nilai x yang memenuhi Teorema 3.2 ditentukan dari m 1

a yang nilai pangkatnya dibagi 2 secara berulang hingga didapat x yang diinginkan atau hingga pangkatnya tidak dapat dibagi lagi

(

1

1 1

1 2 4

{ , , ,..., } m m m

m n

x a a a a , dan m 1

n

adalah bilangan ganjil). Jika tidak didapat x

yang diinginkan maka m disebut bilangan diduga kuat prima berbasis a.

Untuk menentukan apakah ada x yang memenuhi Teorema 3.2 digunakan AKBP (lihat Lampiran A).

Ilustrasi : Langkah 1.

Misalkan 2 1

1 1(mod ) m

x a m sehingga 1

2 1

m

x a dan

1 2

1 (mod ) m

x a m dihitung menggunakan AKBP.

Ada 3 kemungkinan dari nilai x1, yaitu: a.

Jikax1 1(modm)maka ada nilai x

yang memenuhi Teorema 3.2, yaitu 1

2 m

x a . Jadi m adalah bilangan komposit.

b. Jika x1 1(mod )m , maka m adalah bilangan diduga kuat prima karena tidak ada x yang memenuhi Teorema 3.2. Pencarian nilai x dihentikan.

c. Jika x1 1(mod )m , maka kita belum mendapat kesimpulan apapun dan perhitungan dilanjutkan ke langkah 2.

Langkah 2.

Dari langkah sebelumnya telah diketahui bahwa

1 1(mod )

x m .

Misalkan

1

2 4

1 2 2

m

x x x a . Hitung nilai 1

4

2 (mod ) m

x a m dengan AKBP. Ada 3 kemungkinan dari nilai x2, yaitu:

a.

Jika x2 1(modm) maka ada nilai x yang memenuhi Teorema 3.2, yaitu

1 4 m

x a . Jadi m adalah bilangan komposit.

b. x2 1(mod )m , maka m adalah bilangan diduga kuat prima karena tidak ada x yang memenuhi Teorema 3.2. Pencarian nilai x

dihentikan.

c. x2 1(modm), maka kita belum mendapat kesimpulan apapun.

Langkah-langkah selanjutnya adalah sama seperti langkah kedua (dengan mengganti

2, 3, 4, 5..., i

x x i n), jika selalu diperoleh hasil adalah bagian c. Langkah dihentikan ketika pangkat dari a adalah ganjil sehingga tidak dapat dibagi 2 lagi. Pada langkah tersebut hanya ada 2 kemungkinan.

Langkah n.

Dari langkah sebelumnya telah diketahui bahwa

1 1(mod ) n

(14)

Misalkan 1 2 1 m n

n n n

x x x a , dengan 1

m

n adalah bilangan ganjil. Hitung nilai 1

(mod ) m

n n

x a m dengan AKBP. Ada dua kemungkinan dari nilai xn, yaitu:

a.

Jikaxn 1(modm)maka ada nilai x

yang memenuhi Teorema 3.2, yaitu 1

m n

x a . m adalah bilangan komposit.

b. xn 1(mod )m , maka m adalah bilangan diduga kuat prima karena tidak ada x yang memenuhi Teorema 3.2. Pencarian nilai x dihentikan. Untuk lebih jelasnya diberikan beberapa contoh kasus.

Contoh 3.

Misalkan m=1387, apakah m adalah bilangan komposit ?

1.Uji Komposit I. Dari hasil pada Contoh 2, didapat bahwa 1387 adalah bilangan diduga prima berbasis 2.

2.Misalkan 2 1386

1 2 1(mod1387)

x .

3. 693

1 2 512(mod1387)

x .

1 1(mod )

x m

,

maka ada x dengan 693

2

x yang memenuhi Teorema 3.2. Jadi m merupakan bilangan komposit. Contoh di atas hanya membutuhkan satu kali perhitungan.

Contoh 4.

Misalkan m=1905, apakah m adalah bilangan komposit ?

1. Uji Komposit I. Ambil a 2 [2,1903], (2,1905)=1. 21904 1(mod1905)

.

2. 1904

1 2 1(mod1905)

x .

3. Misalkan 2 1 2

x x maka nilai dari 952

2 2 1(mod1905)

x . Perhitungan dilanjutkan.

4. Misalkan 2 2 3

x x maka nilai dari 476

3 2 1(mod1905)

x . Perhitungan dilanjutkan.

5. Misalkan 2 3 4

x x maka nilai dari 238

4 2 1144(mod1905)

x . Karena ada

x dengan 238

2

x yang memenuhi Teorema 3.2, maka 1905 adalah bilangan komposit.

Contoh di atas membutuhkan beberapa kali perhitungan.

Contoh 5.

Misalkan m=341, apakah m adalah bilangan komposit ?

1.Uji Komposit I. Ambil a 2 [2, 339], (2,341)=1. 340

2 1(mod 341)

.

2. 340

1 2 1(mod 341)

x .

3.Misalkan 2 1 2

x x maka nilai dari 170

2 2 1(mod 341)

x . Perhitungan

dilanjutkan. 4.Misalkan 2

2 3

x x maka nilai dari 85

3 2 32(mod 341)

x . Karena ada x

dengan 85

2

x yang memenuhi Teorema 3.2. Jadi 341 adalah bilangan komposit. Contoh di atas membutuhkan beberapa kali perhitungan.

Contoh 6.

Misalkan m 2047, apakah m adalah bilangan komposit ?

1.Uji Komposit I. Ambil a 2 [2, 2045], (2,2047)=1. 2046

2 1(mod 2047) .

2. 2046

1 2 1(mod 2047)

x .

3.Misalkan 2 1 2

x x maka nilai dari 1023

2 2 1(mod 2047)

x . Karena tidak ada x

yang memenuhi Teorema 3.2 maka langkah dihentikan dan m adalah bilangan diduga kuat prima berbasis 2.

Contoh di atas hanya membutuhkan satu kali perhitungan.

Uji Komposit II menghasilkan dua klasifikasi bilangan yaitu bilangan komposit dan bilangan diduga kuat prima berbasis a. Bilangan komposit dan bilangan diduga prima berbasis a disebut bilangan prima semu berbasis

a. Karena input dari Uji Komposit II merupakan bilangan diduga prima berbasis a maka contoh-contoh bilangan pada Uji Komposit II di atas yang merupakan bilangan komposit (341, 1905, 1387) adalah contoh bilangan prima semu. Sampai Uji Komposit II ini bilangan bulat ganjil telah dapat ditentukan menjadi tiga macam yaitu bilangan komposit, bilangan prima semu berbasis a dan bilangan diduga kuat prima berbasis a (bagan 2).

Letak dari bilangan komposit, prima semu berbasis a dan diduga kuat prima berbasis a digambarkan pada bagan 3 di bawah. Bilangan diduga kuat prima berbasis a akan ditentukan kemudian menggunakan Uji Komposit III.

(15)

1. 121,703 adalah bilangan prima semu kuat berbasis 3.

2. 341 adalah bilangan prima semu kuat berbasis 4.

3. 781 adalah bilangan prima semu kuat berbasis 5.

4. 481, 217 adalah bilangan prima semu kuat berbasis 6.

5. 25, 325, 703 adalah bilangan prima semu kuat berbasis 7.

6. 9, 65, 481, 511 adalah bilangan prima semu kuat berbasis 8.

7. 91, 121, 671, 703 adalah bilangan prima semu kuat berbasis 9.

8. 9, 91 adalah bilangan prima semu kuat berbasis 10.

Bagan 2. Klasifikasi uji komposit II.

Bagan 3. A = Himpunan bilangan diduga prima berbasis a,

A-B = Himpunan bilangan diduga kuat prima berbasis a,

A B = Himpunan bilangan prima semu berbasis a,

B = Bilangan komposit.

Uji Carmichael

Definisi Bilangan Carmichael: Misalkan m adalah komposit.

Jika a [2,m 2] yang memenuhi (a,m)=1 berlaku 1

1(mod ) m

a m , maka m adalah bilangan Carmichael.

[Menezes,1997]

Input dari Uji Carmichael adalah bilangan-bilangan prima semu berbasis a yang ditentukan dari hasil uji komposit II. Berdasarkan Definisi Bilangan Carmichael akan dibuat algoritma uji Carmichael.

Algoritma Uji Carmichael :

Input : m (m adalah bilangan prima semu). Output : m adalah bilangan Carmichael atau

bukan. 1. a 2.

2. Selama a m 1, lakukan: 1.1. Jika ( , )a m 1 maka

1

1(mod ) m

a m

,

1.2. Jika pernyataan di atas bernilai benar maka a a 1,

1.3. Jika pernyataan di atas bernilai salah maka m adalah bilangan prima semu berbasis a saja. Berhenti.

3. Jika langkah kedua tidak berhenti hingga didapata m 2 1(mod )m maka m adalah bilangan Carmichael.

Jika m adalah bilangan Carmichael maka bilangan ini memiliki sifat yang unik karena meskipun merupakan bilangan komposit, namun benar-benar tidak dapat ditentukan hanya menggunakan Uji Komposit I pada semua basis yang relatif prima dengan m.

Contoh kecil bilangan Carmichael pertama : 561, 1105, 1729, 2465, 2821, 6601, 8911. 561 adalah bilangan Carmichael terkecil dan memiliki tiga faktor. Dan contoh bilangan Carmichael pertama dengan k=3,4,5,6,7,8,9 (k

adalah banyak faktor dari bilangan Carmichael).

k

3. 4. 5. 6.

7.

8.

561 = 3 . 11 . 17 41041 = 7 . 11 . 13 . 41 825265 = 5 . 7 . 17 . 19 . 73 321197185 = 5 . 19 . 23 . 29 . 37 .

137

5394826801 = 7 . 13 . 17 . 23 . 31 . 67 . 73

(16)

9. 9746347772161 = 7 . 11 . 13 . 17 . 19 . 31 . 37 . 41 . 641

[Wikipedia, 2006]

Bagan 4. Letak bilangan Carmichael.

A = Himpunan bilangan diduga prima berbasis a,

A-B = Himpunan bilangan diduga kuat prima berbasis a,

A B = Himpunan bilangan prima semu berbasis a,

B = Bilangan komposit, dan

C = Bilangan Carmichael. Bilangan Carmichael mengambil tempat pada bagian bilangan prima semu berbasis a.

Disertakan hasil Uji Carmichael (pada Lampiran D) untuk bilangan bulat antara satu hingga dua puluh juta.

Uji Diduga Kuat Prima

Uji ini dibangun berdasarkan Teorema 3.1 dan Teorema 3.2. Pada prinsipnya uji ini hampir sama dengan Uji Komposit II hanya berbeda pada teknik penentuan x yang memenuhi Teorema 3.2. Pada uji ini digunakan teknik terbalik yang dimulai dari

d

a , dengan d adalah bilangan ganjil. Agar lebih jelas, perhatikan ilustrasi berikut:

x ditentukan dari am 1(modm) hingga 1

m n

a (modm) dengan m 1dibagi 2 secara berulang hingga tidak dapat dibagi lagi dan

1

m d

n dengan d adalah bilangan ganjil

.

1

m

a (modm) 2jd

a (modm)

1 2 m

a (modm)

1 2j d

a (modm)

1 4 m

a (modm)

2 2j d

a (modm)

1 m

n

a (modm)

d

a (modm)

Jadi dengan teknik terbalik, x akan ditentukan dari bilangan-bilangan:

2 4 2

, , ,..., (mod ) j

d d d d

a a a a m , dengan j

adalah bilangan bulat.

Dimulai dari ad dan menggunakan Teorema 2.2 (Sifat Kongruensi) bagian 4:

Jika a b (mod m) maka a2 2

b (mod m). Kita dapat mengkonstruksi algoritma diduga kuat prima.

Algoritma Diduga Kuat Prima:

Input : Bilangan bulat m 3 dan [2, 2]

a m .

Output : m adalah bilangan komposit atau diduga kuat prima berbasis a. 1. Cari nilai j dan d dengan d adalah bilangan

ganjil, sedemikian sehingga memiliki

bentuk m 1 2jd.

2. Cari nilai residu dari ad(modm) dengan

AKBP. Jika ad 1(modm) maka m

adalah bilangan diduga kuat prima berbasis

a, berhenti.

3. Kuadratkan admenjadia2d , cari reduksi

nilai dari a2 (mod )d m menggunakan AKBP.

Jika a2d 1(modm) maka m adalah bilangan komposit, berhenti.

Jika a2d 1(modm)maka m adalah bilangan diduga kuat prima berbasis a. Berhenti.

4. Ulangi langkah tiga dengan mengganti nilai

2d a dengan

1

4 8 16 2

, , , ..., j

d d d d

a a a a .

5. Jika langkah di atas telah dilakukan dan tidak mendapatkan hasil maka m adalah bilangan komposit.

[Niven,1991]

Ilustrasi algoritma diduga kuat prima: Langkah 1.

1.1 Jika pada perhitungan awal didapat

1(mod )

d

a m maka m adalah bilangan diduga kuat prima berbasis a, berhenti. Sebab tidak ada nilai x dimana

2 4 2

{ , , , ..., }

j

d d d d

x a a a a yang

memenuhi Teorema 3.2. Ilustrasi Langkah 1.1:

(17)

… 2 1(mod ) jd a m 1 1(mod ) m

a m .

1.2 Jika langkah 1.1 tidak berhasil maka lanjutkan ke langkah 2.

Langkah 2.

Selama

1 2j d

x a , lakukan:

Dengan asumsi bahwa perhitungan

sebelumnya didapat 2 1

1(mod )

j d

a m

,

(1 i j), maka hitung 2 (mod ) i

d

a m .

2.1 Jika didapat 2 1(mod ) id

a m maka

m adalah bilangan komposit, berhenti. Ilustrasi langkah 2.1:

1(mod ) d

a m

… 1

2i d

a 1(modm)

2

1(mod ) i

d

a m , (1 i j). 1 2 1(mod ) i d a m … 2 1(mod ) j d a m 1 1(mod ) m

a m .

Artinya ada x dengan x = 1

2i d a yang memenuhi Teorema 3.2. Jadi m adalah bilangan komposit.

2.2 Jika didapat 2 1(mod ) i

d

a m maka

m adalah bilangan diduga kuat prima berbasis a, berhenti.

Ilustrasi 2.2: 1(mod ) d a m … 1

2i d

a 1(modm)

2

1(mod ) i

d

a m , (1 i j). 1 2 1(mod ) i d a m … 2 1(mod ) jd a m 1 1(mod ) m

a m .

Artinya tidak ada x sedemikian sehingga

2

1(mod )

x p x 1(mod p).

2.3 Jika langkah 2.1 dan 2.2 tidak berhasil maka 1

i i .

Langkah-langkah selanjutnya mengikuti langkah 2 jika selalu didapatkan hasil 2.3.

Langkah n.

Jika hingga perhitungan

1

2j d a tidak

mendapat hasil ( 1

2j d

a 1(mod m)), maka m

adalah bilangan komposit. Karena apapun hasil

dari 2

jd

a dapat ditunjukkan bahwa m adalah bilangan komposit.

1. Jika 2 1(mod ) jd

a m maka menurut

Teorema 3.2 ada x= 1

2j d

a sedemikian sehingga x memenuhi

2

1(mod )

x p x 1(modp). Jadi

m dapat dikatakan bilangan komposit

2. Jika 2

jd

a 1(modm) setara dengan

1 m

a 1(modm) dan menurut Teorema 3.1 maka dapat dikatakan bahwa m

adalah bilangan komposit.

Uji Komposit III

Uji komposit III adalah Uji Diduga Kuat Prima dengan menggunakan beberapa basis yang berbeda. Dalam tulisan ini akan digunakan empat bilangan pertama yang telah kita ketahui prima,yaitu 2, 3, 5, dan 7.

Karena telah diketahui bahwa keempat bilangan tersebut adalah prima dan bilangan bulat selain bilangan prima di atas yang kurang dari tujuh (m 7) adalah komposit maka Uji Komposit III ini akan mengambil input m 7. Pertama karena telah diketahui bahwa keempat bilangan tersebut adalah prima maka keempat bilangan tersebut hanya dapat dibagi oleh dirinya dan 1. Jadi untuk mengetahui apakah

7

m relatif prima dengan setiap anggota dari himpunan A={2,3,5,7} atau tidak, adalah cukup dengan mencari adakah ai A, dimana ( 1 i 4 ) yang membagi m. Jika ada maka m

(18)

m adalah komposit karena dapat dibagi oleh

i

a dimana ai 1 dan ai m (m 7). Jika

m relatif prima dengan setiap anggota A

maka langkah selanjutnya adalah melakukan algoritma diduga kuat prima dengan setiap anggota A sebagai basisnya.

Algoritma Uji Komposit III:

Input : m 7, dengan m adalah bilangan bulat ganjil.

Output : m adalah bilangan diduga kuat prima berbasis 2, 3, 5 dan 7 atau m

adalah bilangan komposit.

1. Bentuk, m 1 2jd sedemikian sehingga d adalah bilangan ganjil. 2. i=1

3. Selama i 4, ikuti langkah berikut: 3.1 ai A {2, 3, 5, 7}.

3.2 Hitung nilai y aij(mod )m

dengan AKBP.

3.3 Jika y 1 dan y m 1maka ikuti langkah berikut:

1

j .

Selama j d 1 dan y m 1

lakukan langkah berikut: Hitung 2

(mod )

y y m .

Jika y 1 maka m adalah bilangan komposit, berhenti.

1

j j .

Jika y m-1 maka m adalah bilangan komposit, berhenti. 3.4 i i 1

4. Jika langkah 3 tidak berhasil maka m

adalah bilangan diduga kuat prima berbasis 2, 3, 5 dan7.

Hasil dari Uji Komposit III ini adalah bilangan komposit atau bilangan diduga kuat prima berbasis 2, 3, 5 dan 7 yang merupakan hasil akhir dari tulisan ini. Uji ini digunakan untuk membantu penentuan bilangan bulat.

Penentuan Bilangan Bulat

Penentuan bilangan bulat dilakukan berdasarkan algoritma diduga kuat prima. Bilangan yang diketahui bilangan komposit menggunakan Teorema 3.1 adalah bilangan komposit biasa. Bilangan-bilangan yang diketahui komposit menggunakan Teorema 3.2 disebut bilangan prima semu, oleh karena jika ada suatu bilangan bulat

2

1 mod

x x p x 1 modp maka

1

1(mod ) m

a m . Dari algoritma diduga prima yang menghasilkan komposit

menggunakan Teorema 3.2 akan dilanjutkan Uji Carmichael karena input dari Uji Carmichael adalah bilangan-bilangan prima semu. Jika Uji Carmichael menentukan bahwa bilangan m

adalah bilangan komposit maka m adalah hanya bilangan prima semu berbasis a dan jika uji berhasil maka kita mendapatkan bahwa m

adalah bilangan Carmichael. Pada penentuan yang menghasilkan bilangan diduga kuat prima berbasis a akan dilanjutkan dengan Uji Komposit III yang merupakan bahasan selanjutnya tulisan ini. Jika menggunakan Uji Komposit III didapat hasil bahwa suatu bilangan adalah bilangan komposit maka bilangan tersebut disebut bilangan prima semu kuat berbasis a.

Penentuan Bilangan digunakan untuk menentukan suatu bilangan ganjil menjadi lima macam, yaitu: bilangan komposit, bilangan prima semu, bilangan prima semu kuat, bilangan Carmichael dan bilangan diduga kuat prima berbasis a. Jika Penentuan Bilangan menentukan bahwa suatu bilangan bulat m

adalah bilangan diduga kuat prima berbasis 2, 3, 5, dan 7 maka kita belum dapat menentukan bahwa m adalah benar-benar prima (lihat bagan 5).

Berdasarkan [Niven,1991] telah diuji bahwa bilangan-bilangan diduga kuat prima berbasis 2, 3, 5, dan 7 dapat dinyatakan prima jika m 3.215.031.751 dan m 25.000.000.000. Dengan bantuan perangkat lunak Matematica 5.1 hasil dari Niven dapat dilanjutkan untuk bilangan-bilangan yang ditentukan diduga kuat prima berbasis 2, 3, 5, dan 7. Hasil uji adalah hingga bilangan 25.006.229.057 tidak ditemukan bilangan prima semu kuat berbasis 2, 3, 5, dan 7, selain m = 3.215.031.751. Dengan demikian selama m 25.006.229.057 dan m

(19)

Bagan 5. Penentuan bilangan menjadi lima macam.

Bagan 6. Posisi bilangan-bilangan hasil Penentuan Bilangan :

A = Himpunan bilangan diduga prima berbasis a,

A-B = Himpunan bilangan diduga kuat prima berbasis

A={2,3,5,7},

A B = Himpunan bilangan prima semu berbasis a,

B = Bilangan komposit,

C = Bilangan Carmichael,

(20)

Bagan 7. Semua uji yang telah dilakukan.

BAB IV

SIMPULAN DAN SARAN

8.1 Simpulan

Pada uji prima kali ini didapat beberapa hasil sebagai berikut:

1.Teorema 2.5 (Kongruensi Fermat) menjadi landasan teori pada Uji Komposit I, Uji Komposit III, Penentuan Bilangan dan Uji Carmichael. Di lain pihak Teorema 2.7 (SPP) menjadi landasan teori pada Uji Komposit II, Uji Komposit III dan Penentuan Bilangan.

2.Algoritma penentuan bilangan dibantu dengan AKBP, Uji Komposit III dan Uji Carmichael adalah algoritma yang menentukan bilangan bulat positif ganjil menjadi lima macam, yaitu : bilangan komposit, bilangan prima semu berbasis

a, bilangan Carmichael, bilangan prima semu kuat berbasis a dan bilangan diduga kuat prima berbasis 2, 3, 5, dan 7.

3.Karena pada uji komposit kali ini menggunakan perhitungan bilangan berpangkat maka uji komposit kali ini

hanya terbatas pada bilangan-bilangan yang memiliki digit yang kecil. Semakin besar nilai bilangan bulat ganjil yang akan diuji maka akan semakin panjang perhitungan yang harus dilakukan sehingga semakin lama waktu yang dibutuhkan untuk mendapatkan hasil dari perhitungan.

4.Hasil akhir dari tulisan ini adalah bilangan diduga kuat prima berbasis 2, 3, 5 dan, 7. 5.Bilangan Carmichael merupakan bilangan

komposit yang dihasilkan dari Uji Komposit II dan memenuhi Uji Carmichael. Meskipun merupakan bilangan komposit, bilangan Carmichael tidak dapat ditentukan kekompositannya hanya menggunakan Uji Komposit I pada setiap basis yang relatif prima dengan bilangan tersebut. Bilangan Carmichael memiliki letak tersendiri (lihat bagan 6), bilangan Carmichael merupakan

(21)

bagian dari bilangan prima semu berbasis

a, namun bilangan ini bukan merupakan prima semu kuat berbasis a. Pada penentuan bilangan Carmichael benar-benar akan membuat perhitungan semakin lebih besar sehingga akan memakan waktu semakin lama karena kita harus menghitung setiap basis yang relatif prima dengan m terhadap Teorema 3.1. Semakin besar bilangan yang diuji semakin lama waktu perhitungan.

6. Pada tulisan ini suatu bilangan bulat dapat diuji apakah merupakan bilangan komposit atau bukan komposit (diduga prima berbasis 2, 3, 5, dan 7). Untuk bilangan bulat yang bukan komposit belum dapat dikatakan sebagai bilangan prima. Jadi pada tulisan ini, menentukan apakah suatu bilangan adalah bilangan komposit lebih mudah daripada menentukan apakah suatu bilangan adalah bilangan prima.

7. Hingga bilangan 20000000, banyaknya bilangan komposit memiliki kecenderungan meningkat pada setiap selang 1000000. Sedangkan banyaknya bilangan prima semu berbasis a, prima semu kuat berbasis a, Carmichael, dan bilangan diduga kuat prima berbasis 2, 3, 5, dan 7 memiliki kecenderungan menurun pada setiap selang yang sama (lihat Lampiran C).

8.2 Saran

Tema dalam karya ilmiah ini dapat diteruskan bagi yang berminat, salah satunya adalah menentukan kekompositan bilangan diduga kuat prima berbasis 2, 3, 5, dan 7 menggunakan faktorisasi prima.

DAFTAR PUSTAKA

Niven, I. Zuckerman, H. S. dan Montgomery, L. H. 1991. An Introduction to The Theory of Numbers. John Wiley & Sons. Inc: New York. Menezes, A. J. Oorschot, P. C. V. dan S.

Vanstone. 1997. Handbook of Applied Cryptography. CRC Press, Inc: New York.

Wikipedia. 2006. Carmichael Number. In Wikipedia, The Free Encyclopedia. The Wikipedia.

http://en.wikipedia.org/wiki/Carmichael _number.

Buchmann, J. Muller, V. 1992. Primality Testing. Germany.

Elledge, S. Glenn, H. 2005. An Application of Graph Pebbling to Zero-Sum Sequences in Abelian Groups.

Department of Mathematics and Statistics, Arizona State University: Arizona.

Higgins, B. C. 2006. The Rabin-Miller Probabilistic Primality Test: Some Result on The Number of No-Witnesses to compositness. Penn State Erie-The Behrend College.

(22)
(23)

Lampiran A. Algoritma Kongruensi Bilangan Pangkat dan Implementasinya.

Kongruensi bilangan pangkat.

Bilangan berpangkat (ak)cenderung memiliki nilai yang besar untuk dihitung atau diketahui nilai bilangan pangkat satunya sebelum direduksi dengan m sebagai modulo bilangan

pembaginya, ak(mod )m . Dengan demikian untuk memudahkannya k dibagi dua secara berulang hingga didapat bahwa nilai k sama dengan satu, dengan nilai a dikuadratkan secara bersamaan. Lalu bilangan hasil pembagian yang memiliki pangkat lebih kecil dapat direduksi oleh modulo bilangan pembaginya (m) dengan lebih mudah.

Ilustrasi.

Mencari nilai: 999179mod1763 179

999 mod1763 89 2

999 999 mod1763

44 2

4 999 999 mod1763 999

22 2

8 999 999 mod1763 999

11 2

16 999 999 mod1763 999

5 16 2

32 999 999 999 mod1763 999

2 32 16 2

64 999 999 999 999 mod1763 999

32 16 2

128 999 999 999 999 mod1763 999

Lalu nilai diatas direduksi dengan modulo bilangan pembaginya. 2

999 143 mod1763

4 2

999 143 1056 mod1763

8 2

999 1056 920 mod1763

16 2

999 920 160 mod1763

32 2

999 160 918 mod1763

64 2

999 918 10 mod1763

128 2

999 10 100 mod1763

lalu substitusi bilangan pangkat yang besar dengan bilangan hasil reduksi modulo di atas.

32 16 2

128 999 999 999 999 mod1763 999

100 918 160 143 999 (mod 1763). 1219 (mod 1763).

(24)

AKBP:

Input : ak(modm)

Output : x (residu dari ak(modm)) 1. Bentuk x=1.

2. Selama k>0, ulangi langkah-langkah berikut:

a. 2[ ] 2

k

e k

.

(nilai e = 0 atau e = 1 tergantung dari nilai k apakah ganjil atau genap). b.Jika e=1 maka gantikan nilai x dengan ax. Dan reduksi nilai tersebut dengan modulo m. Jika e=0 maka tidak dilakukan apapun (x x).

c.Gantikan nilai a dengan 2

a . Dan reduksi nilai tersebut dengan modulo m.

d.Gantikan nilai k dengan 2

k e

.

3. Jika langkah satu dan dua telah selesai maka dapat kita lihat bahwa x akmodm. [Niven,1991] Ilustrasi: Input: 5

3 (mod 5) , a=3, k=5, m=5.

k= 5>0

a. b.

x=1

c.

a=3

d. k=5 5>0 e=5-2.[5/2]=1 x=3 a=4 k=2 2>0 e=2-2.[2/2]=0 x=3 a=1 k=1 1>0 e=2-2.[1/2]=1 x=3 a=1 k=0

k 0 berhenti Jadi x=3 sehingga 5

3 3(mod 5) .

Implementasi AKBP dengan bantuan perangkat lunak Matematica 5.1. Algoritma kongruensi bilangan pangkat.

Input : ak(mod )m .

Output : y sebagai hasil reduksi k(mod )

a m .

AKBP[aa_Integer, kk_Integer, mm_Integer]:= Module[{x=1, a=aa, k = kk, m=mm},

While[k>0, e=k-2 Floor[ 2

k

];

If[e = = 1,

x = ax;

x = mod[x,m] ];

a= a2;

a=Mod[a,m];

k= 2

k e

]; x

]

Contoh:

Input : AKBP[234,12345,12346]

Output : 234

Input : AKBP[2,560,561]

(25)

Lampiran B. Algoritma dengan bantuan perangkat lunak Matematica 5.1.

1. Algoritma Uji Carmichael.

Input : m adalah bilangan prima semu berbasis a.

Output : menentukan apakah m merupakan bilangan Carmichael (Uji Carmichael=3) atau bukan(Uji Carmichael=5).

UjiCarmichael[nn_Integer]:= Module[{i=2, n=nn, c, xx}, While[i<n-1,

c=i;

If[GCD[c,n] = = 1 AKBP[c,n-1,n] = = 1, i++;

If[i+1= =n, xx=3;Break[] ],

xx=5;Break[] ]

]; xx ]

Contoh :

Input : UjiCarmichael[341]

Output : 5 ( 341 bukan bilangan Carmichael).

Input : UjiCarmichael[561]

Output : 3 (561 adalah bilangan Carmichael).

2. Algoritma Uji Komposit III.

2.1 Algoritma uji relatif prima bilangan bulat m dengan setiap anggota dari A.

Input : m adalah bilangan bulat ganjil.

Output : m relatif prima (RelatifP=1) atau tidak relatif prima dengan setiap anggota dari himpunan A(RelatifP=0).

ClearAll[]

RelatifP[m_Integer]:=

If[IntegerQ[ 2

m

] || IntegerQ[ 3

m

] || IntegerQ[ 5

m

] || IntegerQ[ 7

m

], 0,1]

Contoh:

Input : RelatifP[561]

Output : 0 (561 tidak relatif prima dengan salah satu anggota A, yaitu 3).

Input : RelatifP[1237]

Output : 1 (1237 relatif prima dengan setiap anggota dari A).

2.2 Algoritma Uji Komposit III.

Input : m adalah bilangan bulat ganjil.

Output : m adalah komposit (DidugaKP=4) atau diduga kuat berbasis A (DidugaKP=2).

Selama m 3.215.031.751 dan m 25.006.229.057maka m dapat dinyatakan prima.

DidugaKP[m_Integer]:=

Module[{s=0, x, r=m-1, a, j, v, A={2,3,5,7}, i, y}, If[RelatifP[m] = = 0, x=4,

While[EvenQ[r], 2

r

;s++];

(26)

a=A[[i]];

y=AKBP[a,r,m]; If[ y 1 && y m-1,

j=1;

While[j s-1&&y m-1,

y=AKBP[y,2,m]; If[y= =1,

x=4;

Goto[selesai]; ];

j++; ]; If[y m-1,

x=4;

Goto[selesai]; ];

];

i++];

x=2;

Label[selesai]; ];

x

] Contoh :

Input : DidugaKP[234567].

Output : 4(m adalah komposit).

Input : DidugaKP[3.215.031.751]

Output : 2 (m adalah diduga kuat prima, dan telah diuji prima bahwa m adalah komposit. Jadi m adalah prima semu kuat berbasis 2, 3, 5 dan 7).

3. Algoritma Penentuan Bilangan. Terdiri dari dua fungsi a. Algoritma Penentuan Bilangan:

Input : m bilangan bulat yang akan diuji dan a sebagai basis dari m.

Output : menentukan m menjadi lima macam, yaitu :

m=1(Bilangan Komposit),

m=2(Bilangan Prima),

m=3(Bilangan Carmichael),

m=4(Bilangan Prima Semu Kuat),

m=5(Bilangan Prima Semu).

Penentuan[mm_Integer, aa_Integer]:= Module[{m=mm, a=aa, j=0, y=m-1, d, x},

While[EvenQ[y], y= 2

y

;j++];

d=y;

If[AKBP[a,d,m] = =1 || AKBP[a,d,m] = = -1,

x=DidugaKP[m], While[d<m,

If[d==m-1,

If[AKBP[a,d,m] 1, x=1;

Break[], x=UjiCarmichael[m];Break[] ],

d=2 d;

Switch[AKBP[a,d,m],

(27)

m-1, x=DidugaKP[m];Break[] ]

] ] ];

X

]

Contoh:

Input : Seleksi[2047]

Output : 4.

Input : Seleksi[561]

Output : 3.

b. Algoritma bantuan untuk algoritma penentuan bilangan.

Input : m bilangan bulat yang akan diuji dan a sebagai basis dari m.

Output : menentukan m menjadi lima macam, yaitu : bilangan komposit, bilangan prima ( m 3.215.031.751 dan m 25.006.229.057 ), bilangan prima semu berbasis a, bilangan prima semu kuat berbasis a dan bilangan Carmichael.

Fseleksi[mm_Integer, aa_Integer]:=Module[{m=mm,a=aa}, x=If [GCD[a,m] = = 1,Penentuan[m,a],x=6];

Switch[x,

1,Print[m];Print["adalah bilangan komposit"],

2,Print[m];Print["adalah bilangan diduga kuat prima berbasis 2, 3, 5 dan 7"], 3,Print[m];Print["adalah bilangan Carmichael"],

4,Print[m];Print["adalah bilangan prima semu kuat berbasis a"], 5,Print[m];Print["adalah bilangan prima semu berbasis a"], 6,Print[m];Print["a dan m tidak relatif prima"]

] ]

Contoh:

Input :Fseleksi[41041,2]

Output :41041 Bilangan Carmichael.

Input :Fseleksi[703,9]

Output :703 adalah bilangan prima semu kuat berbasis a"],.

Input :Fseleksi[341,2]

Output :341 adalah bilangan prima semu berbasis a.

Input :Fseleksi[99,2]

Output :99 adalah bilangan komposit.

Input :Fseleksi[25005457493,2]

(28)

Lampiran C. Tabel dan grafik banyaknya bilangan-bilangan komposit, prima semu berbasis a, prima semu kuat berbasis a, Carmichael dan diduga kuat prima berbasis 2, 3, 5, dan 7.

Banyaknya bilangan-bilangan bulat yang Selang Bilangan bulat ganjil

Komposit Prima semu berbasis a

Prima semu kuat berbasis a

Carmichael Diduga kuat prima berbasis 2, 3, 5, dan 7 1. 9

-

1000000 421257 161 46 38 78494 2. 1000001

-

2000000 429456 71 27 11 70435 3. 2000001

-

3000000 432033 58 18 8 67883 4. 3000001

-

4000000 433620 34 11 5 66330 5. 4000001

-

5000000 434577 42 10 4 65367 6. 5000001

-

6000000 435615 30 14 5 64336 7. 6000001

-

7000000 436155 30 9 7 63799 8. 7000001

-

8000000 436837 23 8 3 63129 9. 8000001

-

9000000 437251 23 7 7 62712 10. 9000001

-

10000000 437870 22 12 6 62090 11. 10000001

-

11000000 438020 28 8 6 61938 12. 11000001

-

12000000 438434 13 6 4 61543 13. 12000001

-

13000000 438781 21 2 4 61192 14. 13000001

-

14000000 439146 17 9 3 60825 15. 14000001

-

15000000 439349 16 5 3 60627 16. 15000001

-

16000000 439543 16 12 3 60426 17. 16000001

-

17000000 439790 15 9 2 60184 18. 17000001

-

18000000 439924 11 7 5 60053 19. 18000001

-

19000000 440292 15 7 3 59683 20. 19000001

-

20000000 440427 10 4 2 59557 Jumlah 8728377 656 231 129 1270603

Jumlah total 9999996

Persentase 87.283 % 0.006 % 0.002 % 0.001 % 12.603 %

Grafik 1. Banyaknya bilangan komposit pada setiap selang satu juta.

1 2 3 4 5 6 7 8 9 10 111213 14151617181920 440000

430000

420000

410000

(29)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 25

50 75 100 125 150

Grafik 2. Banyaknya bilangan prima semu berbasis a pada setiap selang satu juta.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 10

20 30 40

Grafik 3. Banyaknya bilangan prima semu kuat berbasis a pada setiap selang satu juta.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 5

10 15 20 25 30 35

Grafik 4. Banyaknya bilangan Carmichael pada setiap selang satu juta.

Grafik 5. Banyaknya bilangan diduga kuat prima berbasis 2, 3, 5, dan 7 pada setiap selang satu juta.

1 2 3 4 5 6 7 8 91011121314151617 181920 55000

60000 65000 70000 75000

(Selang ke-)

(Selang ke-) (Selang ke-)

(30)

1

2

3

4

5

Grafik 6. Persentase banyaknya bilangan ganjil antara 9-20000000, yang berupa : 1. Bilangan komposit,

2. Bilangan prima semu berbasis a, 3. Bilangan prima semu kuat berbasis a, 4. Bilangan Carmichael, dan

(31)

Lampiran D. Beberapa bilangan Carmichaeldan prima semu kuat berbasis 2.

(32)

Gambar

Grafik 1. Banyaknya bilangan komposit pada setiap selang satu juta.
Grafik 2. Banyaknya bilangan prima semu berbasis  a pada setiap selang satu juta.

Referensi

Dokumen terkait