Integer (Bilangan Bulat) “Learning is not child's play, we cannot learn without pain.” –Aristotle Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 1 Tipe Data Integer Pada Bahasa Pemrograman • Signed (bertanda +/-­‐) • Unsigned (bulat non-­‐negaDf) Contoh: Misal suatu Dpe data integer berukuran 16-­‐bit: 1. Jika signed, maka berisi: −32768 s/d 32767 2. Jika unsigned, maka berisi: 0 s/d 65535 Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 2 Pembagian Bilangan Bulat a | b jika b = ac; c ∈ Z; a ≠ 0 Contoh: a habis membagi b 3 | 18 5 | 95 7 | 63 Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 3 Teorema Sisa Pembagian (Quo:ent-­‐remainder theorem) Diberikan sembarang bilangan bulat n dan bilangan bulat posiDf d, maka ada bilangan bulat unik q dan r dimana: n = dq + r dan 0 < r < d LaDhan: Cari nilai bilangan bulat q dan r jika diketahui: a. n = 54, d = 4 b. n = -­‐54, d = 4 Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 4 div dan mod Diberikan bilangan bulat n dan bilangan bulat posiDf d, maka: n div d = q dan n mod d = r ⇔ n = dq + r dimana q dan r adalah bilangan bulat dan 0 < r < d Contoh: 9 div 4 = 2; 9 mod 4 = 1 Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 5 Greatest Common Divisor (1) Misal a dan b adalah bilangan bulat bukan nol, maka gcd(a,b), yaitu d, adalah: 1. d adalah common divisor untuk a dan b. Dengan kata lain: d | a dan d | b 2. Untuk semua bilangan bulat c, jika c adalah common divisor untuk semua a dan b, maka c lebih kecil atau sama dengan d. Dengan kata lain: Untuk semua bilangan bulat c, jika c | a dan c | b, maka c < d Contoh: GCD(45,36) = 9; GCD(80,12) = 4; GCD(12,8) = 4 Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 6 Greatest Common Divisor (2) Lemma: 1. Jika r adalah bilangan bulat posiDf, maka gcd(r,0) = r 2. Jika a dan b adalah bilangan bulat bukan nol, jika q dan r adalah bilangan bulat dimana a = bq + r, maka gcd(a,b) = gcd(b,r) Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 7 Algoritma Euclidean Bagaimana cara efisien dalam mencari GCD? Gunakan algoritma Euclidean. 1. Misal A dan B adalah bilangan bulat dimana A > B > 0. 2. Untuk mencari gcd dari A dan B, pertama cek apakah B = 0. Jika ya, maka gcd (A,B) = A (lihat lemma 1 pada slide sebelumnya). Jika Ddak, gunakan teorema quoDent-­‐ remainder untuk mencari quoDent q dan remainder r. Merujuk lemma 2 pada slide sebelumnya, maka gcd(A,B) = gcd(B, r). 3. Ulangi langkah nomor 2 sampai ditemukan hasil akhir. Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 8 Kongruensi Modulo n Ekivalensi modular: Misal a, b, c adalah sembarang bilangan bulat, dimana n > 1. Pernyataan berikut ini semuanya adalah ekivalen: 1. 2. 3. 4. n | (a – b) a ≡ b(mod n) a = b + kn, dimana k adalah suatu bilangan bulat a dan b memiliki sisa (non negaDf) yang sama jika dibagi dengan n 5. a mod n = b mod n Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 9 AritmeDka Modular Misal a, b, c, d, dan n adalah bilangan bulat dengan n > 1 dan ditentukan bahwa a ≡ c(mod n) dan b ≡ d(mod n) Maka: 1. (a + b) ≡ (c + d)(mod n) 2. (a – b) ≡ (c – d)(mod n) 3. ab ≡ cd(mod n) 4. am ≡ cm(mod n) untuk semua bilangan bulat m Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 10 Kombinasi Linier Suatu bilangan bulat d dikatakan sebagai kombinasi linier dari bilangan bulat a dan b, jika dan hanya jika ada bilangan bulat s dan t dimana as + bt = d. Menulis gcd dalam bentuk kombinasi linier: Untuk semua bilangan bulat a dan b bukan nol, jika d = gcd(a,b), maka ada bilangan bulat s dan t dimana as + bt = d. LaDhan: Nyatakan gcd(330,156) sebagai kombinasi linier dari 330 dan 156. Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 11 RelaDf Prima (Coprime) GCD(a, b) = 1 Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 12 Keberadaan Inverse Modulo n Untuk semua bilangan bulat a dan n, jika gcd(a,n) = 1, maka ada bilangan bulat s dimana as ≡ 1(mod n). Bilangan bulat s tersebut disebut inverse dari a modulo n. Contoh: 1. Tentukan inverse dari 43 modulo 660. (Dengan kata lain, tentukan bilangan bulat s dimana 43s ≡ 1(mod 660). 2. Tentukan inverse posiDf dari 3 modulo 40. (Dengan kata lain, tentukan bilangan bulat posiDf s dimana 3s ≡ 1(mod 40). Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 13 Keberadaan Inverse Modulo n Untuk semua bilangan bulat a dan n, jika gcd(a,n) = 1, maka ada bilangan bulat s dimana as ≡ 1(mod n). Bilangan bulat s tersebut disebut inverse dari a modulo n. Contoh: 1. Tentukan inverse dari 43 modulo 660. (Dengan kata lain, tentukan bilangan bulat s dimana 43s ≡ 1(mod 660). Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 14 Konsep Dasar Kriptografi Kriptografi adalah ilmu yang mempelajari pengiriman pesan rahasia. decryp(on 2 plaintext encryp(on chipertext 1 Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 15 Caesar Chiper A 01 B 02 C 03 D 04 E 05 F 06 G 07 H 08 I 09 J 10 K 11 L 12 M 13 N 14 O 15 P 16 Q 17 R 18 S 19 T 20 U 21 V 22 W 23 X 24 Y 25 Z 26 LaDhan: Gunakan Caesar chiper untuk mengenkripsi teks berikut: AYAS NAKAM OGES Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 16 RSA Cryptography Silahkan baca referensi dari buku teks masing – masing secara mandiri. Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 17 Referensi Susanna S .Epp. Discrete Mathema4cs with Applica4ons 4th Ed. Kenneth H. Rosen. Discrete Mathema4cs and Its Applica4ons 7th Ed. Rinaldi Munir. Matema4ka Diskrit edisi ke4ga. Matema(ka Komputasi -­‐ Integer Agi Putra Kharisma, ST., MT. 18