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. waniwatining
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. waniwatining
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. waniwatining
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 waniwatining
Kadang-kadang pernyataan “a habis membagi b” ditulis juga 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” waniwatining
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 waniwatining
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 waniwatining
2. 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 waniwatining
Misalkan a, b, dan c adalah bilangan bulat. 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 waniwatining
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 : waniwatining
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. waniwatining
4. 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 waniwatining
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) waniwatining
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 waniwatining
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 : waniwatining
Misalkan m adalah bilangan bulat positif. 1. 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 waniwatining
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) waniwatining
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). waniwatining
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 : waniwatining
5. 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. waniwatining
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 ( 2 buah faktor prima) waniwatining
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 bilanngan prima atau komposit ? waniwatining
6. 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. waniwatining
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. waniwatining
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. waniwatining
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 waniwatining
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. waniwatining
Kedua fungsi ini memenuhi : DK2 (EK1 ( P )) = P 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 ) waniwatining
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. waniwatining
Secara ringkas, algoritma RSA adalah sebagai berikut : 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) Proses dekripsi dilakukan dengan menggunakan persamaan pi = cid mod n, yang dalam hal ini d adalah kunci dekripsi. waniwatining