350 likes | 713 Views
BAB V. ALGORITMA DAN BILANGAN BULAT. A. ALGORITMA Sebuah masalah dipecahkan dengan mendekskripsikan langkah-langkah penyelesaiannya . Urutan penyelesaian masalah ini dinamakan Algoritma . Definisi Algoritma :
E N D
BAB V ALGORITMA DAN BILANGAN BULAT
A. ALGORITMA Sebuahmasalahdipecahkandenganmendekskripsikanlangkah-langkahpenyelesaiannya. UrutanpenyelesaianmasalahinidinamakanAlgoritma. DefinisiAlgoritma : Algoritmaadalahurutanlangkah-langkahlogispenyelesaianmasalah yang disusunsecarasistematis.
Contoh : Jika kita akan menuliskan algoritma untuk mencari elemen terbesar (maksimum) dari sebuah himpunan yang beranggotakan n buah bilangan bulat. Bilangan-bilangan bulat tersebut dinyatakan sebagai a1, a2, a3,…an. Elemen terbesar akan disimpan di dalam peubah (variabel) yang bernama maks.
Algoritma cari Elemen terbesar : • Asumsikan a1sebagaielementerbesarsementara. Simpan a1kedalammaks. • Bandingkanmaksdenganelemen a2, jika a2 > maks, makanilaimaksdegantidengan a2 • Ulangilangkahke 2 untukelemen-elemenberikutnya (a3, a4, a5,…an) • Berhentijikatidakadalagielemen yang dibandingkan . Dalamhalinimaksberisinilaielementerbesar.
B. BILANGAN BULAT • Bilanganbulatadalahbilangan yang tidakmempunyaipecahandesimal. SIFAT PEMBAGIAN PADA BILANGAN BULAT • Misalkan a dan b adalah 2 buahbilanganbulatdengansyarat a 0. Kita menyatakanbahwa a habismembagi b jikaterdapatbilanganbulat c sedemikiansehingga b = ac
Dengan kata lain, jika b dibagi dengan a, maka hasil pembagiannya berupa bilangan bulat. • Kadang-kadang pernyataan “a habis membagi b” ditulis juga “b kelipatan a”
TEOREMA EUCLIDEAN • Misalkan m dan n adalah dua buah bilangan bulat dengan syarat n > 0. Jika m dibagi dengan n maka terdapat dua buah bilangan bulat unik q(quotient) dan r(remainder) sedemikian sehingga : m = nq + r dengan 0 r <n
Contoh : • 1987 = 97 . 20 + 47 • 24 = 3. 8 + 0 • -22 = 3 (-8) + 2 Sisapembagiantidakbolehnegatif, jadicontohke 3 tidakdapatditulis : -22 = 3 (-7) – 1 karena r = -1 tidakmemenuhisyarat0 r <n
C. PEMBAGI BERSAMA TERBESAR • Misalkan a dan b adalah dua buah bilangan bulat tidak nol. Pembagi bersama terbesar (PBB) dari a dan b adalah bilangan bulat terbesar d sedemikian sehingga da dan db. Dalam hal ini dinyatakan PBB (a,b) = d
Sifat-sifatdaripembagibersamaterbesardinyatakandenganteorema-teoremaberikut : • Misalkan a, b, dan c adalah bilangan bulat. • Jika c adalah PBB dari a dan b, maka c (a + b ) b. Jika c adalah PBB dari a dan b, maka c (a - b ) c. Jika c a , maka c ab
Misalkan m dan n adalah dua buah bilangan bulat dengan syarat n > 0 sedemikian sehingga : m = nq + r , 0 r <n maka PBB (m,n) = PBB (n,r) Contoh : 80 = 12 . 6 + 8 maka PBB (80,12) = PBB (12,8) = 4
3. ALGORITMA EUCLIDEAN • Jika n = 0, maka m adalah PBB (m,n); stop. Tetapi jika n 0 lanjutkan ke langkah 2. • Bagilah m dengan n dan misalkan r adalah sisanya. • Ganti nilai m dengan n dan nilai n dengan r, lalu ulang kembali ke langkah 1.
D. ARITMETIKA MODULO • Misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0. Operasi a mod m (dibaca a modulo m) memberikan sisa jika a dibagi dengan m. • Dengan kata lain : a mod m = r sedemikian sehingga a = mq + r, dengan 0 r < m
Kongruen Jikaduabuahbilanganbulat a dan b, mempunyaisisa yang samajikadibagidenganbilanganbulatpositif m, maka a dan b kongruendalam modulo m, dandilambangkansebagai : a b (mod m) Jika a tidakkongruendengan b dalam modulus m, makaditulis : a / b (mod m)
Contoh : 38 mod 5 = 3 , dan 13 mod 5 = 3 , maka : • 13 ( mod 5) Definisi dari kongruen : Misalkan a dan b adalah bilangan bulat dan m adalah bilangan > 0 maka a b (mod m) jika m habis membagi a - b
Kekongruenan a b (mod m) dapat pula dituliskan dalam hubungan a = b + km yang dalam hal ini sembarang k adalah bilangan bulat.
Sifat-sifatpengerjaanhitungpadaaritmetika modulo, khususnyaperkaliandanpenjumlahan, dinyatakandalamteorema-teoremaberikut : • Misalkan m adalahbilanganbulatpositif. Jika a b (mod m) dan c adalahsembarangbilanganbulat, maka : (i) (a + c) (b + c)(mod m) (ii) ac bc (mod m) (iii) ap bp(mod m) untuksuatubilanganbulattaknegatif p
Jika a b (mod m) danc d (mod m),maka : (i) (a+c) (b+d) (mod m) (ii) a c bd (mod m) Contoh : 17 + 5 = 2 + 5 (mod 3) 22 = 7 (mod 3) 17 . 5 = 5 . 2 (mod 3) 85 = 10 (mod 3) 17 + 10 = 2 + 4 (mod 3) 27 = 6 (mod 3) 17 . 10 = 2 . 4 (mod 3) 170 = 8 (mod 3)
Balikan Modulo ( Modulo Invers) • Jika a dan m relatif prima dan m > 1, maka dapat ditemukan balikan (invers) dari a modulo m. • Balikan dari a modulo m adalah bilangan bulat a sedemikian sehingga aa 1 (mod m) • Contoh : Tentukan balikan dari 4 (mod 9), 17 (mod 7), dan 18 (mod 10).
Kekongruenan Linear • Kekongruenan linear adalahkongruen yang berbentuk : ax b (mod m) • Dengan m adalahbilanganbulatpositif, a dan b sembarangbilanganbulat, dan x adalahpeubah. • Bentukkongruen linear berartimenentukannilai-nilai x, yang memenuhikokongruenantersebut. • ax b (mod m) dapatditulisdalamhubungan ax = b + km yang dapatdisusunmenjadi :
E. BILANGAN PRIMA • Bilangan bulat positif yang lebih besar dari 1 yang hanya habis dibagi oleh 1 dan dirinya sendiri. • Definisi : • Bilangan bulat positif p (p>1) disebut bilangan prima jika pembaginya hanya 1 dan p • Bilangan selain bilangan prima disebut bilangan komposit.
Teorema Fundamental Aritmetik • Setiapbilanganbulatpositif yang lebihbesaratausamadengan 2 dapatdinyatakansebagaiperkaliansatuataulebihbilangan prima. • Misal : 9 = 3 x 3 ( 2 buahfaktor prima) 100 = 2 x 2 x 5 x 5 ( 4 buahfaktor prima) 13 = 13 X 1 ( 1 buahfaktor prima)
Faktor Prima dari n selalu lebih kecil atau sama dengan n • Misalkan a adalahfaktor prima dari n, dengan 1 < a < n, maka a habismembagi n denganhasilbagi b sedemikiansehingga n = ab. Nilai a dan b haruslah n agar : ab >n . n = n Contoh:Tunjukanapakah 171 dan 199 merupakanbilangan prima ataukomposit ?
F. KRIPTOGRAFI • Aritmetika modulo danbilangan prima mempunyaibanyakaplikasidalamilmukomputer, salahsatuaplikasinya yang terpentingadalahkriptografi. • Kriptografiadalahilmusekaligusseniuntukmenjagakerahasiaanpesan ( data atauinformasi) dengancaramenyamarkanmenjadibentuk yang tidakmempunyaimakna.
Plainteks, Chiperteks, Enkripsi dan Dekripsi. • Plainteks : pesan yang dirahasiakan, artinya teks jelas yang dapat dimengerti. • Chiperteks : pesan hasil penyamaran, artinya teks tersandi. • Enkripsi : Proses penyamaran dari plainteks ke chiperteks. • Dekripsi : Proses pembalikan dari chiperteks ke plainteks.
Kriptografer, Kriptanalis, dan Kriptologi • Kriptografer: orang yang menggunakanenkripsiuntukmerahasiakanpesandanmendeskripsikannyakembali. • Kriptanalis : orang yang mempelajarimetodeenkripsidanchiperteksdengantujuanmenemukanplainteksnya. • Kriptologi : studimengenaikriptografidankriptanalis.
Notasi Matematis Jikachiperteksdilambangkandengan C danplainteksdilambangkandengan P, makafungsienkripsi E memetakan P ke C, E (P) = C Padaproseskebalikannya, fungsideskripsi D memetakan C ke P, D (C) = P Karenaprosesenkripsikemudiandekripsimengembalikanpesankepesanasal, makakesamaanberikutharusbenar , D ( E (P) ) = P
Algoritma Kriptografi ( Chiper) • Algoritma Kriptografi (chiper) adalah fungsi matematika yang digunakan untuk enkripsi dan dekripsi. • Kekuatan suatu algoritma Kriptografi diukur dari banyaknya kerja yang dibutuhkan untuk memecahkan data chiperteks menjadi plainteks. • Kriptografi modern tidak lagi mendasarkan kekuatan pada algoritmanya. Jadi algoritma tidak dirahasiakan. Kekuatan kriptografinya terletak pada kunci, yang berupa deretan karakter atau bilangan bulat yang dijaga kerahasiaannya.
Secaramatematis, padasistemkriptografi yang menggunakankunci K, makafungsienkripsidandekripsimenjadi : EK1 ( P ) = C dan DK2 ( C ) = P Keduafungsiinimemenuhi : DK2 (EK1 ( P )) = P Jika K1 = K2, makaalgoritmakriptografinyadisebutalgoritmasimetri ( kuncipribadi) Jika K1 K2 , makaalgoritmanyadisebutalgoritmanirsimetri ( kuncipublik )
Algoritma RSA(Rivest – Shamir – Adleman) Algoritma RSA mendasarkanprosesenkripsidandekripsinyapadakonsepbilangan prima danaritmetika modulo. Kuncienkripsidandekripsimerupakanbilanganbulat. Kuncienkripsitidakdirahasiakan, tetapikuncidekripsibersifatrahasia. Untukmenemukankuncidekripsiharusmemfaktorkansuatubilangan non prima menjadifaktorprimanya.
Secara ringkas, algoritma RSA adalah sebagai berikut : Pembangkitan Pasangan Kunci • Pilih dua buah bilangan prima sembarang, a dan b, jaga kerahasiaan a dan b. • Hitung n = a x b. Nilai n tidak dirahasiakan. • Hitung m = (a – 1) x (b – 1).Setelah nilai m diketahui, a dan b dapat dihapus. • Pilih sebuah bilangan bulat e untuk kunci publik, dimana e relatif prima terhadap m. • Bangkitkan kunci dekripsi, d dengan kekongruenan ed 1 (mod m)
Enkripsi • Plainteks dinyatakan dalam kode ASCII. • Nyatakan pesan menjadi blok-blok plainteks: p1,p2,p3,… [syarat: nilai pi harus dalam nilai 0,1,2,…,n-1] • Hitung ci dengan persamaan ci = pie mod n yang dalam hal ini e adalah kunci publik.
Dekripsi • Proses dekripsi dilakukan dengan menggunakan persamaan pi = cid mod n yang dalam hal ini d adalah kunci dekripsi.
G. FUNGSI HASH • Data yg disimpan di dlm memori komputer perlu ditempatkan dalam suatu cara sedemikian sehingga pencariannya dapat dilakukan dengan cepat. • Setiap data yang berupa record mempunyai field kunci yang unik yang membedakan suatu record dengan record lainnya. • Fungsi hash digunakan untuk menempatkan suatu record yang mempunyai nilai kunci k.
Fungsi hash yg paling umum berbentuk h(k) = k mod m Yang dalam hal ini m adalah jumlah lokasi memori yang tersedia. Fungsi h diatas menempatkan record dengan kunci k pada lokasi memori yang beralamat h(k).