TIF 4216 Matematika Diskrit
Any question?
Algoritma
Muḥammad bin Mūsā al-Khawārizmī Kata algoritma berasal dari latinisasi al-Khawārizmī, awalnya menjadi algorisma yang berarti: "aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik" Abad-18, istilah ini berkembang menjadi algoritma, yang berarti: "prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan"
Kondisi AWAL Pemecahan MASALAH Algoritma kumpulan perintah yang kebanyakan memiliki langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan), berupa susunan elemen-elemen berdasarkan baris & kolom yang membentuk satu kesatuan Kondisi AWAL Pemecahan MASALAH
Kondisi AWAL Pemecahan MASALAH Algoritma Memiliki tipe data: Integer, real (floating point), string, dll Tiap tipe data memiliki anggota dengan nilai-nilai tertentu operasi-operasi yang dapat dilakukan pada tiap anggota tipe data Kondisi AWAL Pemecahan MASALAH
Mi goreng instan siap disajikan Contoh: Algoritma memasak mi goreng instan Algoritma Masukkan air ke dalam panci, letakkan panci di atas kompor, hidupkan kompor Buka bungkus mi goreng instan, buka bumbu-bumbunya dan campurkan isinya di dalam piring menggunakan garpu Setelah air mendidih, masukkan mi mentah ke dalam panci Tunggu 3 menit, tiriskan mi yang telah matang dengan tirisan Campurkan mi yang telah ditiriskan bersama bumbunya di dalam piring Kondisi AWAL Pemecahan MASALAH Telah tersedia: Sebungkus mi-goreng instan siap masak beserta bumbu-bumbunya Kompor yang siap digunakan Air 400 mL Panci, piring, garpu dan tirisan Mi goreng instan siap disajikan
Paradigma Algoritma
BIG Divide and Conquer DIVIDE PROBLEM SMALLER PROBLEM SMALLER PROBLEM SMALLER PROBLEM BIG PROBLEM DIVIDE Permasalahan besar dipecah-pecah menjadi beberapa permasalahan yang lebih kecil/ sederhana SMALLER PROBLEM SMALLER PROBLEM SMALLER PROBLEM SMALLER PROBLEM SMALLER PROBLEM SMALLER PROBLEM
Permasalahan-permasalahan kecil dipecahkan secara parsial Divide and Conquer SMALLER PROBLEM SOLVED SMALLER PROBLEM SMALLER PROBLEM SMALLER PROBLEM SOLVED SMALLER PROBLEM SMALLER PROBLEM SOLVED CONQUER Permasalahan-permasalahan kecil dipecahkan secara parsial SMALLER PROBLEM SMALLER PROBLEM SOLVED SMALLER PROBLEM SMALLER PROBLEM SOLVED SMALLER PROBLEM SOLVED SMALLER PROBLEM SMALLER PROBLEM SOLVED SMALLER PROBLEM SMALLER PROBLEM SMALLER PROBLEM SOLVED SMALLER PROBLEM SOLVED SMALLER PROBLEM
Permasalahan terpecahkan Divide and Conquer SMALLER PROBLEM SOLVED SMALLER PROBLEM SOLVED SMALLER PROBLEM SOLVED BIG PROBLEM SOLVED COMBINE Permasalahan terpecahkan SMALLER PROBLEM SOLVED SMALLER PROBLEM SOLVED SMALLER PROBLEM SOLVED SMALLER PROBLEM SOLVED SMALLER PROBLEM SOLVED SMALLER PROBLEM SOLVED
BIG Dynamic Algorithm PROBLEM Sub- struktur Sub- struktur Mirip dengan paradigma sebelumnya, namun ditambahkan beberapa sub-struktur SMALLER PROBLEM SMALLER PROBLEM SMALLER PROBLEM Sub- struktur Sub- struktur
Permasalahan terpecahkan Dynamic Algorithm BIG PROBLEM SOLVED Permasalahan terpecahkan Permasalahan-permasalahan kecil dipecahkan dengan sub-struktur yang telah tersedia SMALLER PROBLEM SMALLER PROBLEM SMALLER PROBLEM Sub- struktur SMALLER PROBLEM SOLVED SMALLER PROBLEM SOLVED Sub- struktur SMALLER PROBLEM SOLVED
Aspek penting ALGORITMA
Bagaimana akhir dari algoritma ini? int a=6; main() { while(a>5) cout<<a; a++; } Bagaimana akhir dari algoritma ini? INFINITE
Algoritma harus berhenti setelah melalui beberapa tahapan (langkah) Finiteness Algoritma harus berhenti setelah melalui beberapa tahapan (langkah)
How could we define the “MIRACLE”?
Definiteness Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan (ambigu)
Sebuah algoritma memiliki nol atau lebih input sebelum dijalankan OUTPUT Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input Sebuah algoritma memiliki nol atau lebih input sebelum dijalankan
Setiap algoritma harus Effectiveness Setiap algoritma harus berdaya-guna (sangkil/ efektif)
Bilangan yang tidak memiliki pecahan desimal INTEGER Z Bilangan yang tidak memiliki pecahan desimal BILANGAN BULAT
Integer Data Type Signed Bertanda (+ / -) Unsigned Bulat positif
Pembagian integer a | b jika b = ac; c Z; a 0 a dan b adalah dua bil. bulat dengan syarat a tidak sama dgn. 0 a habis membagi b (a divides b) Jika terdapat bilangan bulat c Sedemikian hingga b = ac
Pembagian integer Contoh: 4 | 12 ? Ya 5 | 17 ? Tidak
m = nq + r Teorema Euclidian m dan n adalah bilangan bulat dengan n > 0, jika m (dividend) dibagi n (divisor) menghasilkan bilangan bulat q (quotient) dan menyisakan bilangan bulat r (remainder), untuk 0 r < n
Teorema Euclidian m = nq + r q = m div n r = m mod n
Teorema Euclidian Contoh: 34 = 5.6 + 4 6 = 34 div 5 4 = 34 mod 5
Latihan Tunjukkan apakah 19 habis membagi 89 773 8721
Latihan m = 66, n = 11 m = -221, n = 12 m = 3, n = 7 Carilah q dan r sehingga m = nq + r m = 66, n = 11 m = -221, n = 12 m = 3, n = 7
Latihan Perlihatkan bahwa jika p | q dan r | s Maka pr | qs
Matriks Komputasi Array
Matriks Sekumpulan elemen berupa angka/ simbol yang tersusun dalam baris dan kolom p q r s t u v w x
Matriks p q r s t u v w x A i j jumlah baris jumlah kolom
A33 A a11 a12 a13 a21 a22 a23 a31 a32 a33 p q r s t u v w x Matriks a11 a12 a13 a21 a22 a23 a31 a32 a33 p q r s t u v w x A33 A Ordo Matriks: 3 x 3
Matriks Berdasarkan ordonya
Ordo Matriks: n x n Matriks Persegi 1 3 2 1 3 6 9 5 4 7 8 4 7 15 4 8 3 15 4 8 3 12 7 9 10 11 1 16 6 14 5 2 13 1 3 2 6 9 5 8 4 7 1 3 4 7
Matriks Kolom Ordo Matriks: n x 1 1 6 8
Matriks Baris Ordo Matriks: 1 x n 1 6 8
Matriks Tegak Ordo Matriks: m x n Untuk m > n 8 1 6 5 2 7
Matriks Datar Ordo Matriks: m x n Untuk m < n 2 8 1 6 5 7
Berdasarkan elemennya Matriks Berdasarkan elemennya
Matriks Persegi dengan semua elemen bernilai 0 Matriks Diagonal Matriks Persegi dengan semua elemen bernilai 0 Kecuali unsur-unsur pada diagonal utama -1 0 0 0 4 0 0 0 7
Matriks Persegi dengan semua elemen bernilai 0 pada Matriks Segitiga Matriks Persegi dengan semua elemen bernilai 0 pada unsur-unsur di bawah/ di atas diagonal utama -1 5 4 9 0 2 3 -6 0 0 -7 1 0 0 0 8 7 0 0 0 -2 3 0 0 -4 -1 6 0 9 -5 1 8
bernilai sama pada diagonal utama Matriks Skalar Matriks Persegi Dengan semua elemen bernilai sama pada diagonal utama 6 0 0 0 6 0 0 0 6
Matriks Persegi dengan elemen Matriks Simetri Matriks Persegi dengan elemen aij = aji 3 5 -2 5 1 4 -2 4 -6 a32 = a23 a13 = a31 a33 = a33 a12 = a21 a22 = a22 a11 = a11
TRANSPOSE Matriks
Matriks Transpose matriks Aij AT = Aji 2 6 8 5 1 7 2 8 1 6 5 7
Matriks Setangkup ? 3 5 -2 5 1 4 -2 4 -6 A = AT
OPERASI Matriks
Penjumlahan & Pengurangan Matriks Ordo matriks harus sama a11 a12 a13 a21 a22 a23 a31 a32 a33 b11 b12 b13 b21 b22 b23 b31 b32 b33 A= B= A+B : aij+bij A-B : aij-bij
int i,j,m=3,n=3,a[m][n],b[m][n],c[m][n]; main() { for(i=0;i<m;i++) for(j=0;j<n;j++) cin>>a[i][j]; cin>>b[i][j]; c[i][j]=a[i][j]+b[i][j]; }
A’=kA= ka11 ka12 ka13 ka21 ka22 ka23 ka31 ka32 ka33 Perkalian skalar dengan matriks ka11 ka12 ka13 ka21 ka22 ka23 ka31 ka32 ka33 A’=kA=
Perkalian Matriks a11 a12 a21 a22 b11 a31 a32 b21 A32= B21= Aij dengan Bjk menghasilkan matriks Cik a11 a12 a21 a22 a31 a32 b11 b21 A32= B21= a11*b11 + a12*b21 a21*b11 + a22*b21 a31*b11 + a32*b21 C31=
LATIHAN -2 8 10 3 -1 4 6 -5 7 8 1 9 7 -3 5 11 4 -2 A = B = Tentukan: A+BT 2A*B Algoritma 2AT