ALGORITMA DAN BILANGAN BULAT BAB V ALGORITMA DAN BILANGAN BULAT
A. ALGORITMA Sebuah masalah dipecahkan dengan mendekskripsikan langkah-langkah penyelesaiannya. Urutan penyelesaian masalah ini dinamakan Algoritma. Definisi Algoritma : Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
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 a1 sebagai elemen terbesar sementara. Simpan a1 ke dalam maks. Bandingkan maks dengan elemen a2, jika a2 > maks, maka nilai maks deganti dengan a2 Ulangi langkah ke 2 untuk elemen- elemen berikutnya (a3, a4, a5,…an) Berhenti jika tidak ada lagi elemen yang dibandingkan . Dalam hal ini maks berisi nilai elemen terbesar.
B. BILANGAN BULAT Bilangan bulat adalah bilangan yang tidak mempunyai pecahan desimal. SIFAT PEMBAGIAN PADA BILANGAN BULAT Misalkan a dan b adalah 2 buah bilangan bulat dengan syarat a 0. Kita menyatakan bahwa a habis membagi b jika terdapat bilangan bulat c sedemikian sehingga 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 Sisa pembagian tidak boleh negatif, jadi contoh ke 3 tidak dapat ditulis : -22 = 3 (-7) – 1 karena r = -1 tidak memenuhi syarat 0 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-sifat dari pembagi bersama terbesar dinyatakan dengan teorema-teorema berikut : 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 Jika dua buah bilangan bulat a dan b, mempunyai sisa yang sama jika dibagi dengan bilangan bulat positif m, maka a dan b kongruen dalam modulo m, dan dilambangkan sebagai : a b (mod m) Jika a tidak kongruen dengan b dalam modulus m, maka ditulis : 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-sifat pengerjaan hitung pada aritmetika modulo, khususnya perkalian dan penjumlahan, dinyatakan dalam teorema-teorema berikut : Misalkan m adalah bilangan bulat positif. Jika a b (mod m) dan c adalah sembarang bilangan bulat, maka : (i) (a + c) (b + c)(mod m) (ii) ac bc (mod m) (iii) ap bp(mod m) untuk suatu bilangan bulat tak negatif p
Jika a b (mod m) dan c 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 adalah kongruen yang berbentuk : ax b (mod m) Dengan m adalah bilangan bulat positif, a dan b sembarang bilangan bulat, dan x adalah peubah. Bentuk kongruen linear berarti menentukan nilai- nilai x, yang memenuhi kokongruenan tersebut. ax b (mod m) dapat ditulis dalam hubungan ax = b + km yang dapat disusun menjadi :
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 Setiap bilangan bulat positif yang lebih besar atau sama dengan 2 dapat dinyatakan sebagai perkalian satu atau lebih bilangan prima. Misal : 9 = 3 x 3 ( 2 buah faktor prima) 100 = 2 x 2 x 5 x 5 ( 4 buah faktor prima) 13 = 13 X 1 ( 1 buah faktor prima)
Faktor Prima dari n selalu lebih kecil atau sama dengan n Misalkan a adalah faktor prima dari n, dengan 1 < a < n, maka a habis membagi n dengan hasil bagi b sedemikian sehingga n = ab. Nilai a dan b haruslah n agar : ab >n . n = n Contoh: Tunjukan apakah 171 dan 199 merupakan bilangan prima atau komposit ?
F. KRIPTOGRAFI Aritmetika modulo dan bilangan prima mempunyai banyak aplikasi dalam ilmu komputer, salah satu aplikasinya yang terpenting adalah kriptografi. Kriptografi adalah ilmu sekaligus seni untuk menjaga kerahasiaan pesan ( data atau informasi) dengan cara menyamarkan menjadi bentuk yang tidak mempunyai makna.
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 menggunakan enkripsi untuk merahasiakan pesan dan mendeskripsikannya kembali. Kriptanalis : orang yang mempelajari metode enkripsi dan chiperteks dengan tujuan menemukan plainteksnya. Kriptologi : studi mengenai kriptografi dan kriptanalis.
Notasi Matematis Jika chiperteks dilambangkan dengan C dan plainteks dilambangkan dengan P, maka fungsi enkripsi E memetakan P ke C, E (P) = C Pada proses kebalikannya, fungsi deskripsi D memetakan C ke P, D (C) = P Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan asal, maka kesamaan berikut harus benar , 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.
EK1 ( P ) = C dan DK2 ( C ) = P Kedua fungsi ini memenuhi : Secara matematis, pada sistem kriptografi yang menggunakan kunci K, maka fungsi enkripsi dan dekripsi menjadi : EK1 ( P ) = C dan DK2 ( C ) = P Kedua fungsi ini memenuhi : DK2 (EK1 ( P )) = P Jika K1 = K2, maka algoritma kriptografinya disebut algoritma simetri ( kunci pribadi) Jika K1 K2 , maka algoritmanya disebut algoritma nirsimetri ( kunci publik )
Algoritma RSA (Rivest – Shamir – Adleman) Algoritma RSA mendasarkan proses enkripsi dan dekripsinya pada konsep bilangan prima dan aritmetika modulo. Kunci enkripsi dan dekripsi merupakan bilangan bulat. Kunci enkripsi tidak dirahasiakan, tetapi kunci dekripsi bersifat rahasia. Untuk menemukan kunci dekripsi harus memfaktorkan suatu bilangan non prima menjadi faktor primanya.
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).