1 ALGORITMA UJI KOMPOSIT BERDASARKAN TEOREMA

advertisement
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
2006
1
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
2006
2
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
m dapat dikatakan sebagai bilangan komposit. Jika tidak, maka m disebut bilangan diduga kuat
prima berbasis 2, 3, 5, dan 7 yang merupakan hasil akhir dari tulisan ini. Bilangan komposit dan
diduga kuat prima berbasis a disebut bilangan prima semu kuat berbasis a. Jadi bilangan komposit
dari Uji Komposit III merupakan bilangan prima semu kuat berbasis a.
3
Judul
Nama
NRP
: Algoritma Uji Komposit Berdasarkan Teorema Kongruensi Fermat
dan Teorema Strong Pseudoprime.
: Bangun Jati Kusumo
: G54101045
Menyetujui,
Pembimbing I
Pembimbing II
Dr. Sugi Guritman
NIP. 131 999 582
Drs. Siswandi, M. Si
NIP. 131 957 320
Mengetahui,
Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor
Prof. Dr. Ir. Yonny Koesmaryono, MS.
NIP. 131 473 999
Tanggal Lulus : …………………..
4
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.
Penulis pernah menjadi anggota aktif dalam himpunan profesi Gugus Mahasiswa
Matematika IPB sebagai ketua departemen humaniora pada tahun 2003.
5
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
Bangun Jati Kusumo
6
DAFTAR ISI
Halaman
DAFTAR BAGAN DAN GRAFIK ............................................................................... vii
DAFTAR LAMPIRAN .................................................................................................. vii
PENDAHULUAN .........................................................................................................
1.1. Latar Belakang ...............................................................................................
1.2. Tujuan penulisan ............................................................................................
1
1
1
LANDASAN TEORI .....................................................................................................
2.1 Keterbagian, .....................................................................................................
2.2 Teorema Fermat dan Teorema Strong Pseudoprime ......................................
1
1
2
UJI KOMPOSIT I ..........................................................................................................
3.1 Penentuan bilangan bulat m .............................................................................
3.2 Penentuan bilangan bulat a .............................................................................
3.4 Bilangan diduga prima berbasis a ......................................................................
4
4
4
4
UJI KOMPOSIT II .........................................................................................................
4.1 Menentukan bilangan bulat x .............................................................................
4.3 Bilangan diduga kuat prima berbasis a ..........................................................
4.4 Bilangan prima semu berbasis a .....................................................................
5
5
5
6
UJI CARMICHAEL ......................................................................................................
5.1 Definisi bilangan Carmichael ..........................................................................
5.2 Algoritma Uji Carmichael ...............................................................................
7
7
7
UJI DIDUGA KUAT PRIMA .......................................................................................
6.1 Algoritma Uji Diduga Kuat Prima ..................................................................
8
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 ..............................................................................................
9.1 Simpulan .............................................................................................................
9.2 Saran ...................................................................................................................
9.3
DAFTAR PUSTAKA ....................................................................................................
12
12
13
13
LAMPIRAN ................................................................................................................... 14
7
DAFTAR BAGAN DAN GRAFIK
Halaman
Bagan 1 : Klasifikasi Uji Komposit I .............................................................................
Bagan 2 : Klasifikasi Uji Komposit II ............................................................................
Bagan 3 : Himpunan bilangan komposit, prima semu, dan diduga kuat berbasis a .......
Bagan 4 : Letak bilangan Carmichael ............................................................................
Bagan 5 : Penentuan bilangan menjadi lima macam .......................................................
Bagan 6 : Posisi bilangan-bilangan hasil Penentuan Bilangan .......................................
Bagan 7 : Semua uji yang telah dilakukan .....................................................................
Grafik 1 : Banyaknya bilangan komposit pada setiap selang satu juta ...........................
Grafik 2 : Banyaknya bilangan prima semu berbasis a pada setiap selang satu juta ......
Grafik 3 : Banyaknya bilangan prima semu kuat berbasis a pada setiap selang satu juta
Grafik 4 : Banyaknya bilangan Carmichael pada setiap selang satu juta .......................
Grafik 5 : Banyaknya bilangan diduga kuat prima berbasis 2, 3, 5, dan 7 ........................
Grafik 6 : Persentase banyaknya bilangan ganjil antara 9-20000000 ............................
5
7
7
8
11
11
12
20
20
21
21
21
21
DAFTAR LAMPIRAN
Halaman
Lampiran A : Algoritma Kongruensi Bilangan Pangkat dan implementasinya .............
Lampiran B : Algoritma dengan bantuan perangkat lunak Matematica 5.1 ....................
Lampiran C : Tabel dan grafik hasil uji komposit ...........................................................
Lampiran D : Beberapa bilangan Carmichael dan prima semu kuat berbasis 2 ..............
8
15
17
20
22
BAB I
PENDAHULUAN
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
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 bilanganbilangan 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
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
bulat x sedemikian sehingga b = ax dan
ditulis a|b. Apabila b tidak terbagi oleh a,
maka ditulis aFb.
[Niven,1991]
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.
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.
[Menezes,1997]
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
9
Definisi 1.3 (Himpunan Bilangan Bulat
Modulo m)
Himpunan bilangan bulat modulo m,
Definisi 1.7 (Kongruensi)
Misalkan a, b dan m bilangan bulat, dengan
m > 0 . Bilangan a dikatakan kongruen
terhadap b modulo m, dinotasikan dengan
a ≡ b(mod m) , jika m membagi (a − b) .
Bilangan bulat m disebut modulus dari
kongruensi.
[Menezes,1997]
dinotasikan Z m , 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
Definisi 1.8 (Sistem Residu Lengkap
Modulo m)
Jika x ≡ y (mod m) , maka y dikatakan residu
tertutup dalam Z m .
Contoh
Untuk m = 3 .
1. Himpunan bulat modulo tiga adalah
Z 3 = {0,1, 2} .
2. Operasi penjumlahan yang berlaku:
0 + 1 = 1,
1 + 2 = 0,
dari x modulo m. Himpunan x1 , x 2 , x3 , ..., x m
disebut sistem residu lengkap modulo m jika
untuk setiap bilangan bulat y ada satu dan
hanya satu
xj
sedemikian sehingga
y ≡ x j (mod m) , dengan j = 1,2,3,…,m.
[Niven,1991]
2 + 2 = 1.
Operasi pengurangan yang berlaku:
2 −1 = 1,
Definisi 1.9 (Sistem Residu Tereduksi
Modulo m)
Suatu sistem residu tereduksi modulo m
adalah himpunan dari bilangan-bilangan bulat
T = { x1 , x2 ,..., xr } , dengan r ≤ m sedemikian
sehingga berlaku:
i. ( ∀xi ∈ T )(m, xi ) = 1 ,
ii. Jika i ≠ j maka xi T x j (mod m) , dan
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]
iii. Jika
x∈Z
dan
( x, m) = 1 , maka
(∃! xi ∈ T ) ∋ xi ≡ x(mod m) .
[Niven,1991]
2.2 Teorema Fermat dan Teorema SPP
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 ∈ Z dimana c|a dan c|b, maka
c|d.
Biasanya pembagi bersama terbesar dari a
dan b dinotasikan dengan d = (a, b) .
[Menezes,1997]
Teorema 2.1 (Sistem Residu Tereduksi dan
Lengkap Modulo m)
Misalkan
dan
misalkan
( a , m) = 1
r1 , r2 , r3 , ..., rn adalah sistem residu lengkap
modulo m atau sistem residu tereduksi modulo
m maka
ar1 , ar2 , ar3 , ..., arn
adalah juga
sistem residu lengkap atau sistem residu
tereduksi modulo m.
[Niven,1991]
Definisi 1.6 (Relatif Prima)
Bilangan a dan b dikatakan relatif prima jika
(a, b) = 1 dan bilangan-bilangan a1 , a2 ,..., an
dikatakan relatif prima jika (a1 , a2 ,..., an ) = 1 .
Teorema 2.2 (Sifat Kongruensi)
Misalkan a, b, c, d adalah bilangan bulat,
maka:
1. Ketiga pernyataan berikut ekuivalen :
i. a ≡ b(mod m) ,
dikatakan
Bilangan-bilangan
a1 , a2 ,..., an
relatif prima berpasangan jika (ai , a j ) = 1
ii. b ≡ a(mod m) , dan
iii. a − b ≡ 0(mod m) .
untuk setiap i = 1, 2,3..., n dan j = 1, 2,3..., n
dengan i ≠ j .
[Niven,1991]
10
2.
3.
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 ) .
Jika a ≡ b(mod m) maka ac ≡ bc (mod m)
untuk setiap bilangan bulat positif c.
[Niven,1991]
6.
Selanjutnya:
Jika a ≡ b(mod m) dan b ≡ c(mod m)
maka a ≡ c(mod m) .
Jika a ≡ b(mod m) dan c ≡ d (mod m)
maka a + c(mod m) ≡ b + d (mod m) .
a
φ(m)
φ(m)
∏
φ(m)
( rj ) ≡
j =1
∏ rj (mod m ) .
j =1
Sekarang ( r j ,m)=1. Dengan demikian dapat
digunakan Teorema 2.3 bagian 2 untuk
menghilangkan r j . Dari sini diperoleh bahwa
a
φ(m)
≡ 1(mod m ) .
Dari Teorema 2.4 dapat diperoleh teorema
berikut.
Teorema 2.3 (Kongruensi Pembagian)
Misalkan a, x, y adalah bilangan-bilangan
bulat, jika ax ≡ ay (mod m ) dan (a,m)=1
maka x ≡ y (mod m ) .
[Niven,1991]
Teorema 2.5 (Kongruensi Fermat).
Jika p merupakan bilangan prima maka
∀a ∈ Z yang memenuhi (a,p)=1, berlaku
p−1
≡ 1(mod p ) .
a
[Niven,1991]
Bukti Teorema Fermat.
Diketahui (a, p) = 1 , oleh karena itu menurut
Teorema 2.4 (Generalisasi Euler dari
Teorema Fermat.)
Jika (a,m)=1 maka
aφ ( m ) ≡1(mod m ) ,
φ( p)
≡ 1(mod p ) .
Teorema 2.4 didapat a
Semua bilangan bulat 1,2,3,…,p-1 adalah
relatif prima dengan p. Jadi kita mendapatkan
bahwa φ ( p ) = p −1 .
dengan φ ( m ) adalah bilangan bulat positif
kurang atau sama dengan m yang relatif prima
dengan m.
[Niven,1991]
Teorema 2.6 (Faktor Pembagi)
Jika p|ab, dengan p adalah prima, maka
atau
Umumnya,
jika
p|a
p|b.
p | a , a , a ,..., a maka p membagi sedikitnya
Bukti.
Misalkan r1 , r2 , r3 , ..., rφ ( m ) adalah sistem
residu tereduksi modulo m, maka dengan
1 2 3
n
Teorema 2.1, ar1 , ar2 , ar3 , ..., arφ ( m ) adalah
juga sistem residu tereduksi modulo m.
satu faktor dari ai .
Dengan demikian korespondensi setiap ri
Teorema 2.7 (Teorema Strong Pseudoprime
(SPP))
Jika p suatu bilangan prima, maka berlaku
x 2 ≡ 1(mod p) ↔ x ≡ ±1(mod p ) , dengan x
adalah bilangan bulat.
[Niven,1991]
adalah satu dan hanya satu
sedemikian
Selanjutnya
yang
ri ≡ arj (mod m ) .
sehingga
ri
arj
[Niven,1991]
yang
berbeda
akan
Bukti Teorema SPP.
Bentuk kongruensi pangkat di atas dapat
diekspresikan x 2 −1 ≡ 0(mod p ) . Bentuk
tersebut
setara
dengan
bentuk
Dari
bentuk
( x + 1)( x −1) ≡ 0(mod p) .
terakhir
dapat
dikatakan
bahwa
p | ( x + 1)( x − 1) . Berdasarkan Teorema
2.6, p | ( x + 1)( x − 1) dapat ditulis
mendapatkan korespondensi berbeda dari arj .
Ini
berarti
bahwa
ar1 , ar2 , ar3 , ..., arφ ( m )
hanya
bilangan
merupakan
residu modulo m dari r1 , r2 , r3 , ..., rφ ( m ) .
Dengan menggunakan Teorema 2.2 bagian 4,
dapat diperoleh:
φ(m)
φ(m)
sebagai p | ( x + 1) atau p | ( x − 1) ,
sama artinya dengan x ≡ 1(mod p ) atau
∏ ( arj ) ≡ ∏ ri (mod m ).
j =1
i=1
11
Kontraposisi Teorema SPP digunakan sebagai
landasan teori uji komposit pada pembahasan.
x ≡ −1(mod p ) . Sebaliknya, jika salah
satu dari bentuk dua kongruensi terakhir
benar, dengan menggunakan Teorema 2.2
bagian 4 maka didapat bahwa x 2 ≡ 1(mod p ) .
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
m −1
berlaku a T1(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 = 0 maka 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 −1 maka a
juga dapat diabaikan karena m −1 setara
dengan -1 pada bilangan modulo m dan
m −1 merupakan bilangan genap karena
m adalah bilangan ganjil, sehingga -1
pangkat bilangan genap akan menjadi 1.
Jadi, jika a = {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] .
komposit I dan m disebut bilangan diduga
prima berbasis a.
Untuk menentukan apakah a m−1 T 1(mod 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 .
1762
ditentukan
2
≡ 742 mod 1763 ,
menggunakan AKBP.
Jadi 1763 adalah bilangan komposit.
Tidak selamanya Uji Komposit I ini berhasil.
3.
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 .
1386
ditentukan
≡ 1(mod 1387) ,
2
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
adalah bilangan komposit, namun cara ini tidak
efisien untuk bilangan m yang besar. Kedua,
dengan melakukan uji komposit yang lain, yaitu
Uji Komposit II.
3.
iii. Menguji apakah a m−1 T 1(mod m) . Jika
uji berhasil maka m merupakan
bilangan komposit. Jika tidak (berarti
a m−1 ≡ 1(mod m) ), maka tidak dapat
diambil kesimpulan apapun dari uji
12
Untuk menentukan apakah ada x yang
memenuhi Teorema 3.2 digunakan AKBP (lihat
Lampiran A).
Ilustrasi :
Langkah 1.
Misalkan
x12 = a m−1 ≡ 1(mod m)
m−1
2
sehingga
m−1
2
dan x1 = a (mod m)
dihitung
x1 = a
menggunakan AKBP.
Ada 3 kemungkinan dari nilai x1 , yaitu:
a. Jika x1 T ±1(mod m) maka ada nilai x
yang memenuhi Teorema 3.2, yaitu
m−1
b.
Bagan 1. Klasifikasi uji komposit I.
Uji Komposit II
c.
Berdasarkan Teorema 2.7 (SPP) diperoleh
kontraposisinya, yaitu:
Kontraposisi Teorema 2.7:
Jika ( x 2 ≡ 1(mod m) ∧ x T ±1(mod m) ) atau
( x 2 T 1(mod m) ⁄xª ±1(mod m) ), maka m
adalah komposit.
x = a 2 . Jadi m adalah bilangan
komposit.
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.
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
x1 ≡ 1(mod m) .
Misalkan x1 = x2 2 ⇒ x2 = a
Untuk kepentingan Uji Komposit II
maka kontraposisi Teorema 2.7 (SPP) hanya
akan digunakan sebagian.
Teorema 3.2 (Uji Komposit II).
Jika x 2 ≡ 1(mod m) dan x T ±1(mod m)
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
a ∈ [2, m − 2] yang memenuhi (a, m) = 1
dan berlaku a m−1 ≡ 1(mod m) .
Selanjutnya nilai x yang memenuhi
Teorema 3.2 ditentukan dari a m−1 yang nilai
pangkatnya dibagi 2 secara berulang hingga
didapat x yang diinginkan atau hingga
pangkatnya tidak dapat dibagi lagi
( x ∈ {a m−1 , a
m−1
2
,a
m−1
4
,..., a
m −1
n
} , dan
m −1
n
adalah bilangan ganjil). Jika tidak didapat x
yang diinginkan maka m disebut bilangan
diduga kuat prima berbasis a.
m−1
4
m−1
4
. Hitung nilai
x2 = a (mod m) dengan AKBP.
kemungkinan dari nilai x2 , yaitu:
a.
Ada
3
Jika x2 T ±1(mod m) maka ada nilai x
yang memenuhi Teorema 3.2, yaitu
m−1
b.
c.
x = a 4 . Jadi m adalah bilangan
komposit.
x2 ≡ −1(mod m) , maka m adalah bilangan
diduga kuat prima karena tidak ada x yang
memenuhi Teorema 3.2. Pencarian nilai x
dihentikan.
x2 ≡ 1(mod m) , maka kita belum mendapat
kesimpulan apapun.
Langkah-langkah selanjutnya adalah sama
seperti langkah kedua (dengan mengganti
xi = x2 , i = 3, 4,5..., 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
xn−1 ≡ 1(mod m) .
13
Misalkan xn−1 = xn 2 ⇒ xn = a
m −1
n
m −1
n
,
dengan
adalah bilangan ganjil. Hitung nilai
m −1
xn = a n (mod m) dengan AKBP. Ada dua
kemungkinan dari nilai xn , yaitu:
a. Jika xn T ±1(mod m) maka ada nilai x
yang memenuhi Teorema 3.2, yaitu
Contoh 5.
Misalkan m=341, apakah m adalah bilangan
komposit ?
1. Uji Komposit I. Ambil a = 2 ∈ [2,339] ,
(2,341)=1. 2340 ≡ 1(mod 341) .
2. x1 = 2340 ≡ 1(mod 341) .
3. Misalkan
x1 = x2 2
maka
170
m−1
n
m
adalah
bilangan
x=a .
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.
x2 = 2 ≡ 1(mod 341) .
dilanjutkan.
4. Misalkan
maka
x2 = x3 2
85
x3 = 2 ≡ 32(mod 341) .
nilai
dari
Perhitungan
nilai
Karena
ada
dari
x
85
dengan x = 2 yang memenuhi Teorema
3.2. Jadi 341 adalah bilangan komposit.
Contoh di atas membutuhkan beberapa kali
perhitungan.
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 x12 = 21386 ≡ 1(mod1387) .
Contoh 6.
Misalkan m = 2047 , apakah m adalah bilangan
komposit ?
1. Uji Komposit I. Ambil a = 2 ∈ [2, 2045] ,
3. x1 = 2693 ≡ 512(mod1387) .
3. Misalkan
x1 T ±1(mod m) , maka ada x dengan
693
x = 2 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. x1 = 21904 ≡ 1(mod1905) .
3. Misalkan
x1 = x2 2
maka
nilai
dari
952
Perhitungan
x2 = 2 ≡ 1(mod1905) .
dilanjutkan.
4. Misalkan x2 = x3 2 maka nilai dari
x3 = 2476 ≡ 1(mod1905) .
Perhitungan
dilanjutkan.
5. Misalkan x3 = x4 2 maka nilai dari
x4 = 2238 ≡ 1144(mod1905) . Karena ada
x dengan x = 2 238 yang memenuhi
Teorema 3.2, maka 1905 adalah bilangan
komposit.
Contoh di atas membutuhkan beberapa kali
perhitungan.
(2,2047)=1. 2 2046 ≡ 1(mod 2047) .
2. x1 = 22046 ≡ 1(mod 2047) .
x1 = x2 2
maka
nilai
dari
1023
x2 = 2 ≡ 1(mod 2047) . 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 contohcontoh 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.
Contoh bilangan-bilangan prima semu kuat
dengan beberapa basis berbeda di bawah 1000:
14
1.
2.
3.
4.
5.
6.
7.
8.
121,703 adalah bilangan prima semu
kuat berbasis 3.
341 adalah bilangan prima semu kuat
berbasis 4.
781 adalah bilangan prima semu kuat
berbasis 5.
481, 217 adalah bilangan prima semu
kuat berbasis 6.
25, 325, 703 adalah bilangan prima
semu kuat berbasis 7.
9, 65, 481, 511 adalah bilangan prima
semu kuat berbasis 8.
91, 121, 671, 703 adalah bilangan prima
semu kuat berbasis 9.
9, 91 adalah bilangan prima semu kuat
berbasis 10.
Uji Carmichael
Definisi Bilangan Carmichael:
Misalkan m adalah komposit.
Jika ∀a ∈ [2, m − 2] yang memenuhi (a,m)=1
berlaku a m−1 ≡ 1(mod m) , maka m adalah
bilangan Carmichael.
[Menezes,1997]
Input dari Uji Carmichael adalah bilanganbilangan 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
a m−1 ≡ 1(mod 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
didapat a = m − 2 ≡ 1(mod m) maka m adalah
bilangan Carmichael.
Bagan 2. Klasifikasi uji komposit II.
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).
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.
k
3.
4.
5.
6.
7.
8.
15
561
41041
825265
321197185
= 3 . 11 . 17
= 7 . 11 . 13 . 41
= 5 . 7 . 17 . 19 . 73
= 5 . 19 . 23 . 29 . 37 .
137
5394826801
= 7 . 13 . 17 . 23 . 31 .
67 . 73
232250619601 = 7 . 11 . 13 . 17 . 31 .
37 . 73 . 163
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.
j
dengan
j
a d ,a 2 d ,a 4 d ,...,a 2 d (mod m ) ,
adalah bilangan bulat.
d
Dimulai dari a dan menggunakan Teorema
2.2 (Sifat Kongruensi) bagian 4:
Jika a ≡ b (mod m) maka a 2 ≡ b 2 (mod m).
Kita dapat mengkonstruksi algoritma diduga
kuat prima.
Algoritma Diduga Kuat Prima:
Input
: Bilangan
bulat
dan
m≥3
a ∈ [2, m − 2] .
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
j
bentuk m − 1 = 2 d .
2. Cari nilai residu dari a d (mod m ) dengan
3.
nilai dari a 2 d (mod m ) menggunakan
AKBP.
Jika a 2 d ≡1(mod m ) maka m adalah
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
a d , dengan d adalah bilangan ganjil. Agar
lebih jelas, perhatikan ilustrasi berikut:
x ditentukan dari a m−1 (modm) hingga
bilangan komposit, berhenti.
Jika a 2 d ≡−1(mod m ) maka
4.
a
a
m −1
2
m −1
4
…
(modm)
(modm)
a2
j−1
d
(modm)
a2
j−2
d
(modm)
5.
8d
16 d
2 j−1 d
.
a 2d dengan a , a , a , ..., a
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
a d ≡ ±1(mod m) maka m adalah bilangan
diduga kuat prima berbasis a, berhenti.
Sebab tidak ada nilai x dimana
2jd
d 2d 4d
yang
x ∈ {a , a , a
, ..., a
}
memenuhi Teorema 3.2.
Ilustrasi Langkah 1.1:
d
a ≡ ±1(mod m )
…
m −1
n
a d (modm)
a (modm)
Jadi dengan teknik terbalik, x
ditentukan dari bilangan-bilangan:
m adalah
bilangan diduga kuat prima berbasis a.
Berhenti.
Ulangi langkah tiga dengan mengganti nilai
4d
m −1
a n (modm) dengan m −1 dibagi 2 secara
berulang hingga tidak dapat dibagi lagi dan
m −1
d=
dengan d adalah bilangan ganjil.
n
j
a m−1 (modm)
a 2 d (modm)
AKBP. Jika a d ≡±1(mod m ) maka m
adalah bilangan diduga kuat prima berbasis
a, berhenti.
Kuadratkan a d menjadi a 2d , cari reduksi
akan
a
16
2d
≡ 1(mod m )
…
2jd
a
≡ 1(mod m )
m−1
≡ 1(mod m ) .
a
1.2 Jika langkah 1.1 tidak berhasil maka
lanjutkan ke langkah 2.
Langkah 2.
j −1
d , lakukan:
Selama x ≤ a 2
Dengan
asumsi
bahwa
perhitungan
sebelumnya didapat
a2
(1 ≤ i ≤ j ) , maka hitung a
j−1
d
T ±1(mod m) ,
2i d
(mod m ) .
i
2d
2.1 Jika didapat a
≡ 1(mod m ) maka
m adalah bilangan komposit, berhenti.
Ilustrasi langkah 2.1:
d
a ≡ ±1(mod m )
…
2i−1 d
T≤ 1(mod m )
a
a
a
2i d
2
i +1
m−1
≡ 1(mod m ) .
a
Artinya tidak ada x sedemikian sehingga
2
x ≡ 1(mod p ) ∧ x T ±1(mod p ) .
2.3 Jika langkah 2.1 dan 2.2 tidak berhasil maka
i = i +1 .
Langkah-langkah
selanjutnya
mengikuti
langkah 2 jika selalu didapatkan hasil 2.3.
Langkah n.
Jika
a
2jd
2.
≡ 1(mod m )
2i d
2.2 Jika didapat a
≡ −1(mod m ) maka
m adalah bilangan diduga kuat prima
berbasis a, berhenti.
Ilustrasi 2.2:
d
a ≡ ±1(mod m )
…
2i−1 d
T≤ 1(mod m )
a
2i d
2
a
…
a
i +1
2jd
tidak
2 j−1 d
Teorema 3.2 ada x= a
sedemikian
sehingga
x
memenuhi
2
x ≡ 1(mod p ) ∧ x T ±1(mod p ) . Jadi
m dapat dikatakan bilangan komposit
2j d
Jika a
T 1(mod m ) setara dengan
m−1
T 1(mod m ) dan menurut Teorema
a
3.1 maka dapat dikatakan bahwa m
adalah bilangan komposit.
≡ 1(mod m ) .
2i−1 d
Artinya ada x dengan x = a
yang
memenuhi Teorema 3.2. Jadi m adalah
bilangan komposit.
a
2 j−1 d
2j d
dari a
dapat ditunjukkan bahwa m adalah
bilangan komposit.
2jd
1. Jika a
≡ 1(mod m ) maka menurut
≡ 1(mod m )
m−1
a
2 d
mendapat hasil ( a
T≤1(mod m)), maka m
adalah bilangan komposit. Karena apapun hasil
…
a
perhitungan
j−1
≡ 1(mod m ) , (1 ≤ i ≤ j).
d
hingga
≡ −1(mod m ) , (1 ≤ i ≤ j).
d
≡ 1(mod m )
≡ 1(mod m )
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
m > 7 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
tidak relatif prima dengan ai , yang artinya
( ai ,m)= ai . Jika ( ai ,m)= ai maka ai |m. Artinya
17
m adalah komposit karena dapat dibagi oleh
ai 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.
2.
3.
j
Bentuk,
sedemikian
m −1 = 2 d
sehingga d adalah bilangan ganjil.
i=1
Selama i ≤ 4 , ikuti langkah berikut:
3.1 ai ∈ A = {2,3,5, 7} .
j
3.2 Hitung nilai
y = ai (mod m)
dengan AKBP.
3.3 Jika y ≠ 1 dan y ≠ m −1 maka
ikuti langkah berikut:
j =1.
Selama j ≤ d −1 dan y ≠ m −1
lakukan langkah berikut:
Hitung y ← y 2 (mod m) .
Jika y = 1 maka m adalah
bilangan komposit, berhenti.
j = j +1 .
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.
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 ≠
3.215.031.751 maka bilangan diduga kuat
prima berbasis 2, 3, 5, dan 7 dapat dinyatakan
prima.
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
x ∋ x ≡ 1 mod p ∧ x T ±1 mod p maka
a m−1 ≡ 1(mod m) . Dari algoritma diduga
prima
yang menghasilkan komposit
18
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,
D
= Bilangan prima semu kuat
berbasis a .
19
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
20
Selesai
bagian dari bilangan prima semu berbasis
a, namun bilangan ini bukan merupakan
prima semu kuat berbasis a. Pada
penentuan bilangan Carmichael benarbenar 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.
Hardy, G. H. Wright, E. M. 1997. An
Intoduction to The Theory of Numbers,
Oxford University Press.
21
LAMPIRAN
22
Lampiran A. Algoritma Kongruensi Bilangan Pangkat dan Implementasinya.
Kongruensi bilangan pangkat.
Bilangan berpangkat (a k ) cenderung memiliki nilai yang besar untuk dihitung atau
diketahui nilai bilangan pangkat satunya sebelum direduksi dengan m sebagai modulo bilangan
pembaginya, a k (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: 999179 mod1763
999179 mod1763
89
≡ 9992
(999) mod1763
(
)
44
( ) (9992 )(999) mod1763
22
≡ (9998 ) (9992 )(999) mod1763
11
≡ (99916 ) (9992 )(999) mod1763
5
≡ (99932 ) (99916 )(9992 )(999) mod1763
2
≡ (99964 ) (99932 )(99916 )(9992 )(999) mod1763
≡ (999128 ) (99932 )(99916 )(9992 )(999) mod1763
≡ 9994
Lalu nilai diatas direduksi dengan modulo bilangan pembaginya.
9992 ≡ 143( mod1763)
( )
(9994 ) ≡ 1432 ≡ 1056(mod1763)
(9998 ) ≡ 10562 ≡ 920(mod1763)
(99916 ) ≡ 9202 ≡ 160(mod1763)
(99932 ) ≡ 1602 ≡ 918(mod1763)
(99964 ) ≡ 9182 ≡ 10(mod1763)
(999128 ) ≡ 102 ≡ 100(mod1763)
lalu substitusi bilangan pangkat yang besar dengan bilangan hasil reduksi modulo di atas.
(
≡ 999128
) (99932 )(99916 )(9992 )(999) mod1763
≡ 100 918 160 143 999 (mod 1763).
≡ 1219 (mod 1763).
Dengan cara yang hampir sama dapat dibangun sebuah algoritma untuk menyelesaikan masalah di
atas, yaitu algoritma kongruensi bilangan pangkat.
23
AKBP:
Input
k
: a (mod m )
k
Output : x (residu dari a (mod m ) )
1. Bentuk x=1.
2. Selama k>0, ulangi langkah-langkah berikut:
k
a. e = k − 2[ ] . (nilai e = 0 atau e = 1 tergantung dari nilai k apakah ganjil atau genap).
2
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 a 2 . Dan reduksi nilai tersebut dengan modulo m.
k −e
d. Gantikan nilai k dengan
.
2
3. Jika langkah satu dan dua telah selesai maka dapat kita lihat bahwa x≡a k mod m .
[Niven,1991]
Ilustrasi: Input: 35 (mod 5) , a=3, k=5, m=5.
k=
a.
b.
c.
5>0
x=1 a=3
5>0
e=5-2.[5/2]=1
x=3 a=4
2>0
e=2-2.[2/2]=0
x=3 a=1
1>0
e=2-2.[1/2]=1
x=3 a=1
berhenti
ku0
Jadi x=3 sehingga 35 ≡ 3(mod 5) .
d.
k=5
k=2
k=1
k=0
Implementasi AKBP dengan bantuan perangkat lunak Matematica 5.1.
Algoritma kongruensi bilangan pangkat.
Input
: a k (mod m) .
: y sebagai hasil reduksi a k (mod m) .
Output
AKBP[aa_Integer, kk_Integer, mm_Integer]:=
Module[{x=1, a=aa, k = kk, m=mm},
While[k>0, e=k-2 Floor[
k
];
2
If[e = = 1,
x = a x;
x = mod[x,m]
];
a= a 2 ;
a=Mod[a,m];
k=
k −e
2
];
x
]
Contoh:
Input
: AKBP[234,12345,12346]
Output : 234
Input
: AKBP[2,560,561]
Output : 1
24
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
]
2.
Contoh :
Input
Output
: UjiCarmichael[341]
: 5 ( 341 bukan bilangan Carmichael).
Input
Output
: UjiCarmichael[561]
: 3 (561 adalah bilangan Carmichael).
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[
m
m
m
m
] || IntegerQ[ ] || IntegerQ[ ] || IntegerQ[ ], 0,1]
2
3
5
7
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],
r
;s++];
2
For[i=1, i≤4,
25
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=
y
;j++];
2
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],
1, x=UjiCarmichael[m]; Break[],
26
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]
Output : 25005457493 adalah bilangan diduga kuat prima berbasis 2, 3, 5 dan, 7.
27
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.
Selang
Bilangan bulat ganjil
Banyaknya bilangan-bilangan bulat yang
Diduga kuat prima
Prima semu
Prima semu
Carmichael
berbasis 2, 3, 5, dan 7
kuat berbasis a
berbasis a
421257
161
46
38
78494
429456
71
27
11
70435
432033
58
18
8
67883
433620
34
11
5
66330
434577
42
10
4
65367
435615
30
14
5
64336
436155
30
9
7
63799
436837
23
8
3
63129
437251
23
7
7
62712
437870
22
12
6
62090
438020
28
8
6
61938
438434
13
6
4
61543
438781
21
2
4
61192
439146
17
9
3
60825
439349
16
5
3
60627
439543
16
12
3
60426
439790
15
9
2
60184
439924
11
7
5
60053
440292
15
7
3
59683
440427
10
4
2
59557
8728377
656
231
129
1270603
9999996
87.283 %
0.006 %
0.002 %
0.001 %
12.603
%
Komposit
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
9
1000001
2000001
3000001
4000001
5000001
6000001
7000001
8000001
9000001
10000001
11000001
12000001
13000001
14000001
15000001
16000001
17000001
18000001
19000001
1000000
2000000
3000000
4000000
5000000
6000000
7000000
8000000
9000000
10000000
11000000
12000000
13000000
14000000
15000000
16000000
17000000
18000000
19000000
20000000
Jumlah
Jumlah total
Persentase
-
440000
430000
420000
410000
1
2 3
4 5
6
7 8
9 10 11 12 13 14 15 16 17 18 19 20
Grafik 1. Banyaknya bilangan komposit pada setiap selang satu juta.
28
(Selang ke-)
150
125
100
75
50
25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
(Selang ke-)
Grafik 2. Banyaknya bilangan prima semu berbasis a pada setiap selang satu juta.
40
30
20
10
(Selang ke-)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Grafik 3. Banyaknya bilangan prima semu kuat berbasis a pada setiap selang satu juta.
35
30
25
20
15
10
5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
(Selang ke-)
Grafik 4. Banyaknya bilangan Carmichael pada setiap selang satu juta.
75000
70000
65000
60000
55000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
(Selang ke-)
Grafik 5. Banyaknya bilangan diduga kuat prima berbasis 2, 3, 5, dan 7 pada setiap selang satu
juta.
29
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
5. Bilangandiduga kuat prima berbasis 2, 3, 5, dan 7.
30
Lampiran D. Beberapa bilangan Carmichael dan prima semu kuat berbasis 2.
Bilangan prima semu kuat berbasis 2.
2047
1016801
3277
1023121
4033
1082401
4681
1145257
8321
1194649
15841
1207361
29341
1251949
42799
1252697
49141
1302451
52633
1325843
65281
1357441
74665
1373653
80581
1397419
85489
1441091
88357
1493857
90751
1507963
104653
1509709
130561
1530787
196093
1678541
220729
1730977
233017
1811573
252601
1876393
253241
1907851
256999
1909001
271951
1969417
280601
1987021
314821
2004403
2081713
357761
2181961
390937
2205967
458989
2264369
476971
2269093
486737
2284453
489997
2304167
514447
2387797
580337
2419385
635401
2510569
647089
2746477
741751
2748023
800605
2757241
818201
2811271
838861
2909197
873181
2953711
877099
2976487
916327
3090091
976873
3116107
983401
3125281
1004653
3375041
3400013
3429037
3539101
3567481
3581761
3605429
3898129
4181921
4188889
4335241
4360621
4469471
4502485
4513841
4682833
4835209
4863127
5016191
5044033
5049001
5173169
5173601
5256091
5310721
5444489
5489641
5590621
5599765
5672041
5681809
5919187
6140161
6226193
6233977
6334351
6368689
6386993
6787327
6836233
6952037
7177105
7306261
7306561
7462001
7674967
7759937
31
7820201
7883731
8036033
8095447
8384513
8388607
8534233
8725753
8727391
9006401
9056501
9069229
9073513
9371251
9564169
9567673
9588151
9729301
9774181
9863461
9995671
10323769
10386241
10425511
10610063
10655905
10712857
10763653
10974881
11081459
11335501
11473885
11541307
11585293
11777599
12263131
12327121
13057787
13216141
13338371
13421773
13446253
13500313
13635289
13694761
13747361
14179537
14324473
14709241
14794081
14865121
15101893
15139199
15188557
15220951
15247621
15479777
15510041
15603391
15698431
15802681
15976747
15978007
16070429
16132321
16324001
16360381
16705021
16773121
16822081
16853077
16879501
17116837
17134043
17208601
17327773
17375249
17509501
17585969
18073817
18366937
18443701
18454921
18535177
18653353
18740971
19328653
19404139
19471033
19607561
20261251
Bilangan Carmichael.
561
1105
1729
2465
2821
6601
8911
10585
41041
46657
62745
63973
75361
101101
115921
126217
162401
172081
188461
278545
294409
334153
340561
399001
410041
449065
488881
512461
530881
552721
656601
658801
670033
748657
825265
838201
852841
997633
1024651
1033669
1050985
1082809
1152271
1193221
1461241
1569457
1615681
1773289
1857241
2100901
2113921
2433601
2455921
2508013
2531845
2628073
2704801
3057601
3146221
3224065
3664585
3828001
4463641
4767841
4903921
4909177
5031181
5148001
5481451
5632705
5968873
6049681
6054985
6189121
6313681
6733693
6840001
6868261
32
7207201
7519441
7995169
8134561
8341201
8355841
8719309
8719921
8830801
8927101
9439201
9494101
9582145
9585541
9613297
9890881
10024561
10267951
10402561
10606681
10837321
10877581
11119105
11205601
11921001
11972017
12261061
12262321
12490201
12945745
13187665
13696033
13992265
14469841
14676481
14913991
15403285
15829633
15888313
16046641
16778881
17098369
17236801
17316001
17586361
17812081
18162001
18307381
18900973
19384289
19683001
20964961
Download