Algoritma dan Bilangan Bulat

advertisement
Algoritma dan
Bilangan Bulat
Matematika Diskret (TKE132107)
Program Studi Teknik Elektro, Unsoed
Iwan Setiawan <stwn at unsoed.ac.id>
Tahun Ajaran 2013/2014
Algoritma
Masalah.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Kemiripan substansi masalah.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Pengurutan, pencarian, perutean, ...
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Masalah memiliki parameter.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Instance of a problem.
(pemberian nilai untuk semua parameter masalah)
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Ide.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Solusi.
(pemecahan masalah)
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Urutan langkah-langkah untuk
memecahkan masalah.
(dengan metode tertentu)
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Proses: menjalankan sepeda motor.
Algoritma: panduan menjalankan sepeda motor.
Langkah-langkah:
1. siapkan sepeda motor,
2. naiklah ke tempat duduknya,
3. kembalikan penyangga,
4. masukkan kunci kontak,
5. putar kunci kontak ke posisi on,
6. tekan tombol starter,
7. ...
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Berikan 1 contoh algoritma!
Membuat kue, menanak
nasi, percobaan kimia, ...
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Algoritma Program Penjumlahan
1. Deklarasikan variabel a, b, dan c.
2. Baca variabel a dan b dari masukan.
3. Jumlahkan variabel a dan b, kemudian simpan
hasilnya ke variabel c.
4. Tampilkan isi variabel c ke layar.
Ada sebagian orang yang memulai algoritma dengan kata “mulai” dan diakhiri dengan
“selesai” untuk menandai bahwa langkah-langkah dalam sebuah algoritma dimulai atau
telah selesai.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Setiap langkah algoritma harus diikuti.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Bagaimana jika tidak?
Notasi Algoritma
Kalimat deskriptif.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
PROGRAM Penjumlahan
Diberikan dua buah bilangan positif a dan b.
Algoritma penjumlahan akan menjumlahkan
kedua bilangan tersebut dan menyimpan hasilnya
ke dalam sebuah variabel.
ALGORITMA
1. Deklarasikan variabel a, b, dan c.
2. Baca variabel a dan b dari masukan.
3. Jumlahkan variabel a dan b, kemudian simpan
hasilnya ke variabel c.
4. Tampilkan isi variabel c ke layar.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Apa yang dapat kita simpulkan
dari konsep algoritma yang
sudah dibahas?
Menggunakan kata kerja, aktif.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Bagaimana dengan
pernyataan bersyarat?
Jika …, (maka) ...
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Diagram alir?
Algoritma dalam bentuk diagram,
dengan simbol-simbol standar.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Mulai atau
Selesai
Pengambilan
Keputusan
Masukan atau
Keluaran
Proses
Terdefinisi
Penghubung
Proses
Aliran Langkah
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Mulai
Deklarasi a, b, c
Baca a dan b
c=a+b
Tampilkan c
Selesai
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
?
?
https://en.wikipedia.org/wiki/File:Euclid_flowchart_1.png
?
?
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Relatif susah digunakan untuk program
dengan algoritma yang panjang dan rumit.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Pseudocode?
Semu.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Kode informal sebuah (algoritma) program.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Lebih dekat ke kode pemrograman, tapi tidak
spesifik ke bahasa pemrograman tertentu.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Tidak ada standar baku.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Gunakan kata kunci pemrograman.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
set, read, get, print, write, compute, run,
if-then, else-if, while, do-while, for, goto, ...
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
declare variabel a, b
get a, b
if (b tidak sama dengan nol) then
compute c = a / b
print c
else
print “Nilai b tidak boleh nol.”
return status sukses
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
PROGRAM FahrenheitCelcius
{ Program untuk mencetak tabel konversi Fahrenheit ke Celcius dari x
sampai y dengan kenaikan sebesar step.
Masukan: suhu awal, suhu akhir, step.
Keluaran: tabel konversi suhu dalam Celcius (C) dan Fahrenheit (F).
}
DEKLARASI
fahr, celc: real
x, y, step: integer
ALGORITMA
read (x, y, step)
fahr ← x
while fahr ≤ y do
celc = 5/9 * (fahr – 32)
write(fahr,celc)
fahr ← fahr + step
endwhile
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Buatlah algoritma dengan kalimat
deskriptif untuk mencari elemen
terbesar dari sebuah himpunan
yang berisi n buah elemen
bilangan bulat!
a1, a2, a3, a4, …, an
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Algoritma dengan Kalimat Deskriptif
maks
a1, a2, a3, a4, …, an
maks = a1
1) Asumsikan a1 sebagai elemen terbesar sementara.
Simpan a1 ke dalam variabel maks.
2) Bandingkan maks dengan elemen a 2. Jika a2 lebih
besar dari maks, maka nilai maks diganti dengan a 2.
3) Ulangi langkah kedua untuk elemen-elemen
berikutnya (a3, a4, a5, ..., an) .
4) Berhenti jika sudah tidak ada lagi elemen yang
dibandingkan. Jadi, variabel maks berisi nilai dari
elemen terbesar.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Algoritma dengan Kalimat Deskriptif
a2 > maks?
a1, a2, a3, a4, …, an
maks = a1
1) Asumsikan a1 sebagai elemen terbesar sementara.
Simpan a1 ke dalam variabel maks.
2) Bandingkan maks dengan elemen a 2. Jika a2 lebih
besar dari maks, maka nilai maks diganti dengan a 2.
3) Ulangi langkah kedua untuk elemen-elemen
berikutnya (a3, a4, a5, ..., an) .
4) Berhenti jika sudah tidak ada lagi elemen yang
dibandingkan. Jadi, variabel maks berisi nilai dari
elemen terbesar.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Algoritma dengan Kalimat Deskriptif
a2 > maks? Jika ya
a1, a2, a3, a4, …, an
maks
maks = a
= a21
1) Asumsikan a1 sebagai elemen terbesar sementara.
Simpan a1 ke dalam variabel maks.
2) Bandingkan maks dengan elemen a 2. Jika a2 lebih
besar dari maks, maka nilai maks diganti dengan a 2.
3) Ulangi langkah kedua untuk elemen-elemen
berikutnya (a3, a4, a5, ..., an) .
4) Berhenti jika sudah tidak ada lagi elemen yang
dibandingkan. Jadi, variabel maks berisi nilai dari
elemen terbesar.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Algoritma dengan Kalimat Deskriptif
a2 > maks? Jika ya
a1, a2, a3, a4, …, an
maks
maks = a
= a21
1) Asumsikan a1 sebagai elemen terbesar sementara.
Simpan a1 ke dalam variabel maks.
2) Bandingkan maks dengan elemen a 2. Jika a2 lebih
besar dari maks, maka nilai maks diganti dengan a 2.
3) Ulangi langkah kedua untuk elemen-elemen
berikutnya (a3, a4, a5, ..., an) .
4) Berhenti jika sudah tidak ada lagi elemen yang
dibandingkan. Jadi, variabel maks berisi nilai dari
elemen terbesar.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
PROGRAM CariElemenTerbesar
{ Program untuk mencari elemen terbesar dari sebuah himpunan
bilangan bulat a1, a2, …, an. Elemen terbesar akan disimpan di dalam
variabel maks.
Masukan: a1, a2, …, an.
Keluaran: maks.
}
DEKLARASI
i: integer
maks: integer
ALGORITMA
maks ← a
for i ← 2 to n do
if ai > maks then
maks ← ai
endif
endfor
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
procedure CariElemenTerbesar (input: a1, a2, …, an: integer, output maks:
integer)
{ Prosedur mencari elemen terbesar dari sebuah himpunan bilangan
bulat a1, a2, …, an. Elemen terbesar akan disimpan di dalam variabel
maks.
Masukan: a1, a2, …, an.
Keluaran: maks.
}
Deklarasi
i: integer
Algoritma
maks ← a
for i ← 2 to n do
if ai > maks then
maks ← ai
endif
endfor
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Tajuk, deklarasi, algoritma.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Intinya adalah memudahkan deskripsi algoritma
dalam bentuk terstruktur, dan memudahkan pula
saat melakukan penulisan kode yang spesifik
ke bahasa pemrograman.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Beberapa Contoh
Algoritma
Buatlah algoritma dalam kalimat
deskriptif dan pseudocode untuk
algoritma berikut.
1) Algoritma mempertukarkan nilai
dari 2 buah variabel.
2) Algoritma mencari nilai tertentu di
dalam himpunan elemen.
Algoritma pengurutan.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Bilangan Bulat
(Integer)
Bilangan yang bulat :-)
(bukan pecahan, positif dan negatif)
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Diskret atau kontinyu?
Bilangan bulat banyak
dibahas pada Teori Bilangan.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Sifat pembagian bilangan bulat melahirkan
konsep bilangan prima, aritmatika modulo,
dan algoritma Euclidean.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Sifat Pembagian
pada Bilangan Bulat
Salah satu konsep yang berguna.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Bilangan prima.
(bilangan yang hanya habis dibagi oleh 1 dan dirinya sendiri)
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Sembarang bilangan bulat positif
dapat dinyatakan sebagai hasil
perkalian satu atau lebih
bilangan prima?
Definisi sifat pembagian:
misal a dan b adalah 2 buah bilangan bulat
dengan syarat a ≠ 0. Kita dapat menyatakan
bahwa a habis membagi b jika terdapat
bilangan bulat c sedemikian sehingga
b = ac.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Notasi: a|b jika b = ac, c ∈ Z dan a ≠ 0.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Jika b dibagi dengan a, maka hasil
pembagiannya berupa bilangan bulat.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Pernyataan “a habis membagi b”
dapat ditulis dengan “b kelipatan a”.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
4|12 karena 12/4 = 3
Bulat, tak bersisa.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
12 = 4x3
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Apakah 4|13?
Hasil Pembagian Bilangan Bulat
Jika hasil pembagian bilangan bulat dinyatakan
sebagai bilangan bulat pula, maka sembarang
bilangan bulat bila dibagi dengan sebuah
bilangan bulat positif akan selalu terdapat:
1) hasil bagi,
2) sisa pembagian.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
13 dibagi dengan 4, akan memberikan
hasil bagi 3, dan sisa (hasil bagi) 1.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Pada kasus 4|12, sisa hasil baginya adalah 0.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Sisa hasil pembagian selalu lebih besar
atau sama dengan nol, tetapi lebih
kecil dari pembaginya.
0≤r<n
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Teorema Euclidean
Misal m dan n adalah 2 buah bilangan bulat
dengan syarat n > 0. Jika m dibagi dengan n
maka terdapat 2 buah bilangan bulat unik q
(quotinent) dan r (remainder), sedemikian
sehingga:
pembagi/divisor
m = nq + r
q disebut hasil bagi/quotinent
r disebut sisa/remainder
yang dibagi/divident
dengan 0 ≤ r < n.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Notasi yang digunakan untuk mengekspresikan hasil bagi dan sisa adalah dengan
menggunakan operator div dan mod.
q = m div n, r = m mod n
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Berapa hasil bagi dan sisa
jika 1987 dibagi dengan 97?
Hasil bagi 20, sisa 47.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Tuliskan dalam ekspresi
Teorema Euclidean!
1987 = 97 . 20 + 47
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Tulis dengan operator
div dan mod!
1987 div 97 = 20
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
1987 mod 97 = 47
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Sisa pembagian tak boleh negatif.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Pembagi Bersama
terBesar (PBB)
Dua buah bilangan bulat dapat
memiliki faktor pembagi yang sama.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Faktor pembagi bersama yang penting adalah
faktor Pembagi Bersama terBesar (PBB).
(greatest common divisor, gcd atau faktor persekutuan terbesar, FPB)
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Bilangan 45 dan 36 memiliki
faktor pembagi berapa saja?
Faktor pembagi 45: 1, 3, 5, 9, 15, 45
Faktor pembagi 36: 1, 2, 3, 4, 9, 12, 18, 36
Faktor pembagi bersama: 1, 3, 9
Jadi, PBB(45,36) = 9
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
terbesar: 9
Definisi Pembagi Bersama Terbesar
Misal a dan b adalah 2 buah bilangan bulat tidak
nol. Pembagi bersama terbesar (PBB) dari a dan
b adalah bilangan bulat terbesar d, sedemikian
sehingga d|a dan d|b.
Jadi, dapat kita nyatakan bahwa PBB(a,b) = d.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Sifat-sifat PBB dapat dinyatakan dengan
Teorema 5.2. Baca pada buku referensi.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Teorema PBB(m,n) = PBB(n,r)
Misal m dan n adalah 2 buah bilangan bulat
dengan syarat n > 0 sedemikian sehingga:
m = nq + r, 0 ≤ r < n
maka PBB(m,n) = PBB(n,r).
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Algoritma Euclidean
Mencari PBB dari 2 Buah Bilangan
Untuk mencari PBB dari 2 buah bilangan bulat m
dan n adalah dengan:
1) mendaftar semua pembagi dari
masing-masing bilangan m dan n,
2) memilih pembagi persekutuan yang
mempunyai nilai terbesar.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Terdapat algoritma yang mangkus/efektif
untuk mencari PBB, yaitu dengan
Algoritma Euclidean.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Didasarkan pada
“Teorema PBB(m,n) = PBB(n,r)”
yang dilakukan berturut-turut.
(sampai kita temukan sisa nol)
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Algoritma Euclidean
1) Jika n = 0,
m adalah PBB(m,n);
selesai.
Catatan: jika m < n, maka tukar
dulu nilai m dan n.
tetapi jika n ≠ 0,
lanjutkan ke langkah 2.
2) Bagilah m dengan n dengan sisa r.
3) Ganti nilai m dengan nilai n, dan nilai n
dengan nilai r, lalu ulang kembali langkah 1.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
?
?
https://en.wikipedia.org/wiki/File:Euclid_flowchart_1.png
?
?
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
PBB(80,12)?
Algoritma Euclidean (1)
1) Jika n = 0,
m adalah PBB(m,n);
m = 80, n = 12
selesai.
tetapi jika n ≠ 0,
lanjutkan ke langkah 2.
2) Bagilah m dengan n dengan sisa r.
80 dibagi 12, sisa 8 (r)
3) Ganti nilai m dengan nilai n, dan nilai n
dengan nilai r, lalu ulang kembali langkah 1.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
m = 12, n = 8
Algoritma Euclidean (2)
1) Jika n = 0,
m adalah PBB(m,n);
m = 12, n = 8
selesai.
tetapi jika n ≠ 0,
lanjutkan ke langkah 2.
2) Bagilah m dengan n dengan sisa r.
12 dibagi 8, sisa 4 (r)
3) Ganti nilai m dengan nilai n, dan nilai n
dengan nilai r, lalu ulang kembali langkah 1.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
m = 8, n = 4
Algoritma Euclidean (3)
1) Jika n = 0,
m adalah PBB(m,n);
m = 8, n = 4
selesai.
tetapi jika n ≠ 0,
lanjutkan ke langkah 2.
2) Bagilah m dengan n dengan sisa r.
8 dibagi 4, sisa 0 (r)
3) Ganti nilai m dengan nilai n, dan nilai n
dengan nilai r, lalu ulang kembali langkah 1.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
m = 4, n = 0
Algoritma Euclidean (4)
1) Jika n = 0,
m adalah PBB(m,n);
selesai.
m = 4, n = 0
Selesai!
tetapi jika n ≠ 0,
lanjutkan ke langkah 2.
PBB(80,12)=4
2) Bagilah m dengan n dengan sisa r.
3) Ganti nilai m dengan nilai n, dan nilai n
dengan nilai r, lalu ulang kembali langkah 1.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Notasi pseudocode untuk Algoritma
Euclidean dapat dilihat pada buku
referensi, halaman 189.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Teorema Kombinasi Lanjar
Misal a dan b adalah 2 buah bilangan bulat
positif, maka terdapat bilangan bulat m dan n
sedemikian sehingga PBB(a,b) = ma + nb.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
PBB(80,12) = 4
m.80 + n.12 = 4
(-1).80 + 7.12 = 4
m = -1 dan n = 7
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Untuk menemukan kombinasi lanjar a dan b
pada PBB(a,b) adalah dengan melakukan
pembagian secara mundur pada
Algoritma Euclidean.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Definisi Relatif Prima
Dua buah bilangan bulat a dan b dikatakan
relatif prima jika PBB(a,b) = 1.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Apakah bilangan 7 dan
11 relatif prima?
Jika a dan b relatif prima maka dengan teorema
kombinasi lanjar dapat dinyatakan:
PBB(a,b) = ma + nb
1 = ma + nb
ma + nb = 1
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Aritmatika Modulo
Operator yang digunakan adalah mod.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Hasil bagi dan sisa.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Definisi Operator mod
Misal a adalah bilangan bulat dan m adalah
bilangan bulat > 0. Operasi a mod m memberikan sisa jika a dibagi dengan m.
Dengan kata lain, a mod m = r, sedemikian
sehingga a = mq + r, dengan 0 ≤ r < m.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
modulus atau modulo
Notasi: a mod m = r, sedemikian sehingga
a = mq + r, dengan 0 ≤ r < m.
Hasil aritmatika modulo m terletak di dalam
himpunan {0, 1, 2, ..., m-1}.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Bilangan a dan b kongruen dalam modulo m
jika kedua bilangan tersebut mempunyai sisa (r)
yang sama jika dibagi dengan bilangan bulat
positif m.
a mod m = r
b mod m = r
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
a ≡ b (mod m)
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
a ≡/ b (mod m)
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Definisi Kekongruenan
Misal a dan b adalah bilangan bulat, dan m
adalah bilangan > 0, maka a ≡ b (mod m)
jika m habis membagi a – b.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Apakah 17 dan 2 kongruen
dalam modulo 3?
Dengan definisi operator mod, maka
a mod m = r dapat ditulis a ≡ r (mod m).
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Terdapat sifat-sifat pengerjaan hitung pada
aritmatika modulo, baca Teorema 5.5 pada
buku referensi, halaman 193.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Inversi Modulo.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Kekongruenan lanjar, ax ≡ b (mod m).
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Chinese remainder problem.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Bilangan Prima
Bilangan bulat positif p (p > 1) disebut
bilangan prima jika pembaginya 1 dan p.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, ...
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Bilangan selain prima
disebut komposit (composite).
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Teori fundamental aritmatik:
Setiap bilangan bulat positif yang lebih besar
atau sama dengan 2 dapat dinyatakan sebagai
perkalian satu atau lebih bilangan prima.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Bilangan prima dan komposit dapat
dinyatakan sebagai perkalian dari
satu atau lebih faktor prima.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Faktor prima dari sebuah bilangan selalu lebih
kecil atau sama dengan akar kuadrat
dari bilangan tersebut.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Misal 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 harus ≤ n agar
ab > √n . √n = n
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Faktor prima dari n selalu lebih
kecil atau sama dengan √n.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Teorema bilangan komposit:
jika n adalah bilangan komposit, maka n
mempunyai faktor prima yang lebih
kecil atau sama dengan √n.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Apakah 199 merupakan
bilangan prima atau komposit?
Teorema bilangan komposit:
jika n adalah bilangan komposit, maka n
mempunyai faktor prima yang lebih
kecil atau sama dengan √n.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
√199 = … ?
Bilangan prima yang ≤ √199?
Karena 199 tidak habis dibagi 2, 3, 5, 7, 11,
dan 13, maka 199 adalah bilangan prima.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Kriptografi
Aritmatika modulo dan bilangan prima.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
“secret writing”
Onkel Tuca, CC BY-SA, http://en.wikipedia.org/wiki/File:Parthenon.JPG
Ilmu dan seni untuk menjaga
keamanan pesan. – Bruce Schneier
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Untuk menjaga kerahasiaan.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
plainteks versus chiperteks
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
plainteks: ambil hatinya, jangan dompetnya
chiperteks: e|}{!%@$#87)+32ihkdsf+_)+-12
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
practicalowl, CC BY-NC-SA, https://secure.flickr.com/photos/practicalowl/256628505/
Munir, 2011.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
1) Pengiriman data melalui jalur komunikasi
2) Penyimpanan data di media penyimpan
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Plainteks (plain.txt):
Ketika saya berjalan-jalan di pantai,
saya menemukan banyak sekali kepiting
yang merangkak menuju laut. Mereka
adalah anak-anak kepiting yang baru
menetas dari dalam pasir. Naluri
mereka mengatakan bahwa laut adalah
tempat kehidupan mereka.
Ztâxzp/épêp/qtüyp{p}<yp{p}/sx/p}âpx;
épêp/|t}t|äzp}/qp}êpz/étzp{x/zt xâx
}vêp}v/|tüp}vzpz/|t}äyä/{päâ=/ \tütz
ppsp{pw/p}pz<p}pz/zt xâx}v/êp}
v/qpüä|t}tâpé/spüx/sp{p|/ péxü=/]
p{äüx|ttüzp/|t}vpâpzp}/qpwåp/{pä â
/psp{pwât| pâ/ztwxsäp}/|tützp=
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Munir, 2011.
Cipherteks (cipher.txt):
Nomor PIN, siaran televisi melalui parabola, ...
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Sparta, 400 SM
Onkel Tuca, CC BY-SA, http://en.wikipedia.org/wiki/File:Parthenon.JPG
in
Lur
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
,
gen
B
CC
A,
Y-S
wi
en.
/
/
:
s
http
kip
rg
a.o
edi
ki
/ wi
a
ky t
e :S
l
i
F
/
scytale
ng
le.p
E(P) = C
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
D(C) = P
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
D(E(P)) = P
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Algoritma tertutup/restricted dan terbuka.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
practicalowl, CC BY-NC-SA, https://secure.flickr.com/photos/practicalowl/256628505/
otorisasi versus enkripsi-dekripsi
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Caesar Chiper
●
●
Algoritma enkripsi sederhana pada masa raja Julius
Caesar
Tiap huruf alfabet digeser 3 huruf ke kanan secara
wrapping
Munir, 2011.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Misalkan setiap huruf dikodekan dengan angka:
A = 0, B = 1, C = 2, …, Z = 25
maka secara matematis enkripsi dan dekripsi
pada Caesar Cipher dirumuskan sebagai berikut:
Enkripsi: ci = E(pi) = (pi + 3) mod 26
Dekripsi: pi = D(ci) = (ci – 3) mod 26
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Contoh:
Plainteks: AWASI ASTERIX DAN TEMANNYA OBELIX
Cipherteks: DZDVL DVWHULA GDQ WHPDQQBA REHOLA
p1 = ‘A’ = 0
p2 = ‘W’ = 22
p3 = ‘A’ = 0
p4 = ‘S’ = 18
dst…
 c1 = E(0) = (0 + 3) mod 26 = 3 = ‘D’
 c2 = E(22) = (22 + 3) mod 26 = 25 = ‘Z’
 c3 = E(0) = (0 + 3) mod 26 = 3 = ‘D’
 c4 = E(18) = (18 + 3) mod 26 = 21 = ‘V’
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Jika pergeseran huruf sejauh k, maka:
Enkripsi: ci = E(pi) = (pi + k) mod 26
Dekripsi: pi = D(ci) = (ci – k) mod 26
k = kunci rahasia
Pada Caesar Cipher, k = 3, untuk alfabet ASCII 256
karakter,
Enkripsi: ci = E(pi) = (pi + k) mod 256
Dekripsi: pi = D(ci) = (ci – k) mod 256
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Munir, 2011.
Sistem Kriptografi
Munir, 2011.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
✔ K1 = K2, sistem kriptografi kunci simetri,
contoh: Data Encryption Standard (DES)
✔ K1 ≠ K2, sistem kriptografi kunci asimetri,
contoh: RSA. Melibatkan kunci pribadi dan
kunci publik.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Rivest-Shamir-Adleman (RSA)
●
●
●
Dibuat oleh tiga peneliti dari Massachussets
Institute of Technology (MIT), yaitu Ron Rivest,
Adi Shamir, dan Len Adleman, pada tahun
1976.
Termasuk algoritma kriptografi asimetri.
Asimetri: kunci untuk proses enkripsi berbeda
dengan kunci untuk proses dekripsi.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
RSA
●
Setiap pengguna memiliki sepasang kunci:
1. Kunci publik, e: untuk enkripsi pesan
2. Kunci privat, d: untuk dekripsi pesan
●
Kunci publik tidak rahasia, kunci privat rahasia
Kunci publik, e
Plainteks, m
Enkripsi
Ee (m) = c
Kunci privat, d
Cipherteks, c
Dekripsi
Dd (c) = m
Munir, 2011.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Plainteks, m
Pembangkitan Pasangan Kunci
●
Pilih 2 bilangan prima sembarang, a dan b
yang bersifat rahasia
●
Hitung n = a b. Nilai n tidak perlu dirahasiakan
●
Hitung m = (a – 1)(b – 1); Hapus kunci a dan b
●
●
Pilih sebuah bilangan bulat untuk kunci publik,
e, yang relatif prima terhadap m
Hitung kunci dekripsi, d, melalui kekongruenan
ed ≡ 1 (mod m)
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Contoh. Misalkan a = 47 dan b = 71 (keduanya prima),
maka dapat dihitung
n = a . b = 3337
m = (a – 1) (b – 1) = 3220.
Pilih kunci publik e = 79 (yang relatif prima dengan
3220.)
Nilai e dan n dapat dipublikasikan.
Catatan: Dalam praktik, nilai a dan b adalah bilangan yang sangat
besar, disarankan masing-masing 100 digit.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Selanjutnya dihitung kunci dekripsi d dengan
kekongruenan:
e × d ≡ 1 (mod m)
1 + ( k × 3220)
d=
79
Diperoleh nilai d = 1019. Ini adalah kunci dekripsi.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Algoritma enkripsi-dekripsi:
Enkripsi: ci = pie mod n
Dekripsi: pi = cid mod n,
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Misalkan plainteks: ‘HARI INI’ atau dalam desimal ASCII:
7265827332737873
Pecah pesan menjadi blok yang lebih kecil (misal 3 digit):
p1 = 726
p2 = 582
p3 = 733
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
p4 = 273
p5 = 787
p6 = 003
Enkripsi setiap blok:
c1 = 72679 mod 3337 = 215
c2 = 58279 mod 3337 = 776
dst. untuk sisa blok lainnya
Keluaran: chiperteks C = 215 776 1743 933 1731 158.
Dekripsi (menggunakan kunci privat d = 1019)
p1 = 2151019 mod 3337 = 726
p2 = 7761019 mod 3337 = 582
dst. untuk sisi blok lainnya
Keluaran: plainteks = 7265827332737873
atau dalam kode ASCII karakternya adalah HARI INI.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Daftar Bacaan
●
●
●
●
●
Daviduck, B. 2000. Introduction to Programming in
C++: Algorithms, Flowcharts and Pseudocode.
Kusuma, E.D. 2009. Pemrograman Dasar:
Pendahuluan, Presentasi.
Munir, R. 2009. Algoritma dan Pemrograman
dalam Bahasa Pascal dan C, Penerbit Informatika.
Munir, R. 2010. Matematika Diskrit, Revisi
Keempat, Penerbit Informatika.
Munir, R. 2011. Teori Bilangan, presentasi.
Matematika Diskret (TKE132107) - Program Studi Teknik Elektro, Unsoed
Download