Kompleksitas Algoritma
|
|
- Hendri Susanto
- 6 tahun lalu
- Tontonan:
Transkripsi
1 Kompleksitas Algoritma Bahan Kuliah IF2120 Matematika Disktit Rinaldi M/IF2120 Matdis 1
2 Rinaldi M/IF2120 Matdis 2
3 Pendahuluan Sebuah masalah dapat mempunyai banyak algoritma penyelesaian. Contoh: masalah pengurutan (sort), ada puluhan algoritma pengurutan Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus (efficient). Kemangkusan algoritma diukur dari waktu (time) eksekusi algoritma dan kebutuhan ruang (space) memori. Rinaldi M/IF2120 Matdis 3
4 Algoritma yang mangkus ialah algoritma yang meminimumkan kebutuhan waktu dan ruang. Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan (n), yang menyatakan jumlah data yang diproses. Kemangkusan algoritma dapat digunakan untuk menilai algoritma yang bagus dari sejumlah algoritma penyelesaian masalah. Rinaldi M/IF2120 Matdis 4
5 Mengapa kita memerlukan algoritma yang mangkus? Lihat grafik di bawah ini x 2 n Waktu komputasi (dalam detik) hari 1 jam 1 detik 1 menit 10-6 x 2 n 10-4 x n x n Ukuran masukan Rinaldi M/IF2120 Matdis 5
6 Model Perhitungan Kebutuhan Waktu Menghitung kebutuhan waktu algoritma dengan mengukur waktu sesungguhnya (dalam satuan detik) ketika algoritma dieksekusi oleh komputer bukan cara yang tepat. Alasan: 1. Setiap komputer dengan arsitektur berbeda mempunyai bahasa mesin yang berbeda waktu setiap operasi antara satu komputer dengan komputer lain tidak sama. 2. Compiler bahasa pemrograman yang berbeda menghasilkan kode mesin yang berbeda waktu setiap operasi antara compiler dengan compiler lain tidak sama. Rinaldi M/IF2120 Matdis 6
7 Model abstrak pengukuran waktu/ruang harus independen dari pertimbangan mesin dan compiler apapun. Besaran yang dipakai untuk menerangkan model abstrak pengukuran waktu/ruang ini adalah kompleksitas algoritma. Ada dua macam kompleksitas algoritma, yaitu: kompleksitas waktu dan kompleksitas ruang. Rinaldi M/IF2120 Matdis 7
8 Kompleksitas waktu, T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n. Kompleksitas ruang, S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n. Dengan menggunakan besaran kompleksitas waktu/ruang algoritma, kita dapat menentukan laju peningkatan waktu (ruang) yang diperlukan algoritma dengan meningkatnya ukuran masukan n. Rinaldi M/IF2120 Matdis 8
9 Ukuran masukan (n): jumlah data yang diproses oleh sebuah algoritma. Contoh: algoritma pengurutan 1000 elemen larik, maka n = Contoh: algoritma TSP pada sebuah graf lengkap dengan 100 simpul, maka n = 100. Contoh: algoritma perkalian 2 buah matriks berukuran 50 x 50, maka n = 50. Dalam praktek perhitungan kompleksitas, ukuran masukan dinyatakan sebagai variabel n saja. Rinaldi M/IF2120 Matdis 9
10 Kompleksitas Waktu Jumlah tahapan komputasi dihitung dari berapa kali suatu operasi dilaksanakan di dalam sebuah algoritma sebagai fungsi ukuran masukan (n).. Di dalam sebuah algoritma terdapat bermacam jenis operasi: Operasi baca/tulis Operasi aritmetika (+, -, *, /) Operasi pengisian nilai (assignment) Operasi pengakasesan elemen larik Operasi pemanggilan fungsi/prosedur dll Dalam praktek, kita hanya menghitung jumlah operasi khas (tipikal) yang mendasari suatu algoritma. Rinaldi M/IF2120 Matdis 10
11 Contoh operasi khas di dalam algoritma Algoritma pencarian di dalam larik Operasi khas: perbandingan elemen larik Algoritma pengurutan Operasi khas: perbandingan elemen, pertukaran elemen Algoritma penjumlahan 2 buah matriks Operasi khas: penjumlahan Algoritma perkalian 2 buah matriks Operasi khas: perkalian dan penjumlahan Rinaldi M/IF2120 Matdis 11
12 Contoh 1. Tinjau algoritma menghitung rerata sebuah larik (array). sum 0 for i 1 to n do sum sum + a[i] endfor rata_rata sum/n Operasi yang mendasar pada algoritma tersebut adalah operasi penjumlahan elemen-elemen a i (yaitu sum sum+a[i]) yang dilakukan sebanyak n kali. Kompleksitas waktu: T(n) = n. Rinaldi M/IF2120 Matdis 12
13 Contoh 2. Algoritma untuk mencari elemen terbesar di dalam sebuah larik (array) yang berukuran n elemen. procedure CariElemenTerbesar(input a 1, a 2,..., a n : integer, output maks : integer) { Mencari elemen terbesar dari sekumpulan elemen larik integer a 1, a 2,..., a n. Elemen terbesar akan disimpan di dalam maks. Masukan: a 1, a 2,..., a n Keluaran: maks (nilai terbesar) } Deklarasi k : integer Algoritma maks a 1 k 2 while k n do if a k > maks then maks a k endif i i+1 endwhile { k > n } Kompleksitas waktu algoritma dihitung berdasarkan jumlah operasi perbandingan elemen larik (A[i] > maks). Kompleksitas waktu CariElemenTerbesar : T(n) = n 1. Rinaldi M/IF2120 Matdis 13
14 Kompleksitas waktu dibedakan atas tiga macam : 1. T max (n) : kompleksitas waktu untuk kasus terburuk (worst case), kebutuhan waktu maksimum. 2. T min (n) : kompleksitas waktu untuk kasus terbaik (best case), kebutuhan waktu minimum. 3. T avg (n): kompleksitas waktu untuk kasus rata-rata (average case) kebutuhan waktu secara rata-rata Rinaldi M/IF2120 Matdis 14
15 Contoh 3. Algoritma sequential search. procedure PencarianBeruntun(input a 1, a 2,..., a n : integer, x : integer, output idx : integer) Deklarasi k : integer ketemu : boolean { bernilai true jika x ditemukan atau false jika x tidak ditemukan } Algoritma: k 1 ketemu false while (k n) and (not ketemu) do if a k = x then ketemu true else k k + 1 endif endwhile { k > n or ketemu } if ketemu then { x ditemukan } idx k else idx 0 { x tidak ditemukan } endif Rinaldi M/IF2120 Matdis 15
16 Jumlah operasi perbandingan elemen tabel: 1. Kasus terbaik: ini terjadi bila a 1 = x. T min (n) = 1 2. Kasus terburuk: bila a n = x atau x tidak ditemukan. T max (n) = n 3. Kasus rata-rata: Jika x ditemukan pada posisi ke-j, maka operasi perbandingan (a k = x)akan dieksekusi sebanyak j kali. 1 n(1 n) ( n) ( 1) T avg (n) = 2 n n n 2 Rinaldi M/IF2120 Matdis 16
17 Rinaldi M/IF2120 Matdis 17 Cara lain: asumsikan bahwa P(a j = x) = 1/n. Jika a j = x maka T j yang dibutuhkan adalah T j = j. Jumlah perbandingan elemen larik rata-rata: T avg (n) = n j j n j j n j j T n n T X j A P T ) ] [ ( = n j j n 1 1 = 2 1 ) 2 1) ( ( 1 n n n n
18 Contoh 4. Algoritma pencarian biner (bynary search). procedure PencarianBiner(input a 1, a 2,..., a n : integer, x : integer, output idx : integer) Deklarasi i, j, mid : integer ketemu : boolean Algoritma i 1 j n ketemu false while (not ketemu) and ( i j) do mid (i+j) div 2 if a mid = x then ketemu true else if a mid < x then { cari di belahan kanan } i mid + 1 else { cari di belahan kiri } j mid - 1; endif endif endwhile {ketemu or i > j } if ketemu then idx mid else idx 0 endif Rinaldi M/IF2120 Matdis 18
19 1. Kasus terbaik T min (n) = 1 2. Kasus terburuk: T max (n) = 2 log n + 1 Rinaldi M/IF2120 Matdis 19
20 Contoh 5. Algoritma pengurutan seleksi (selection sort). procedure Urut(input/output a 1, a 2,..., a n : integer) Deklarasi i, j, imaks, temp : integer Algoritma for i n downto 2 do { pass sebanyak n 1 kali } imaks 1 for j 2 to i do if a j > a imaks then imaks j endif endfor { pertukarkan a imaks dengan a i } temp a i a i a imaks a imaks temp endfor Rinaldi M/IF2120 Matdis 20
21 (i) Jumlah operasi perbandingan elemen Untuk setiap pass ke-i, i = n jumlah perbandingan = n 1 i = n 1 jumlah perbandingan = n 2 i = n 2 jumlah perbandingan = n 3 i = 2 jumlah perbandingan = 1 Jumlah seluruh operasi perbandingan elemen-elemen larik adalah T(n) = (n 1) + (n 2) = i n 1 n k n( n 1) 1 2 Ini adalah kompleksitas waktu untuk kasus terbaik dan terburuk, karena algoritma Urut tidak bergantung pada batasan apakah data masukannya sudah terurut atau acak. Rinaldi M/IF2120 Matdis 21
22 (ii) Jumlah operasi pertukaran Untuk setiap i dari 1 sampai n 1, terjadi satu kali pertukaran elemen, sehingga jumlah operasi pertukaran seluruhnya adalah T(n) = n 1. Jadi, algoritma pengurutan seleksi membutuhkan n(n 1 )/2 buah operasi perbandingan elemen dan n 1 buah operasi pertukaran. Rinaldi M/IF2120 Matdis 22
23 Latihan Contoh 6. Hitung kompleksitas waktu algoritma berikut berdasarkan jumlah operasi kali. procedure Kali(input x:integer, n:integer, output jumlah : integer) {Mengalikan x dengan i = 1, 2,, j, yang dalam hal ini j = n, n/2, n/4,,1 Masukan: x dan n (n adalah perpangakatan dua). Keluaran: hasil perkalian (disimpan di dalam peubah jumlah). } Deklarasi i, j, k : integer Algoritma j n while j 1 do for i 1 to j do x x * i endfor j d div 2 endwhile { j > 1 } jumlah x Rinaldi M/IF2120 Matdis 23
24 Untuk Jawaban j = n, jumlah operasi perkalian = n j = n/2, jumlah operasi perkalian = n/2 j = n/4, jumlah operasi perkalian = n/4 j = 1, jumlah operasi perkalian = 1 Jumlah operasi perkalian seluruhnya adalah = n + n/2 + n/ deret geometri 2 log n 1 n(1 2 ) = 2( n 1) Rinaldi M/IF2120 Matdis 24
25 Kompleksitas Waktu Asimptotik Tinjau T(n) = 2n 2 + 6n + 1 Perbandingan pertumbuhan T(n) dengan n 2 n T(n) = 2n 2 + 6n + 1 n Untuk n yang besar, pertumbuhan T(n) sebanding dengan n 2. Pada kasus ini, T(n) tumbuh seperti n 2 tumbuh. T(n) tumbuh seperti n 2 tumbuh saat n bertambah. Kita katakan bahwa T(n) berorde n 2 dan kita tuliskan T(n) = O(n 2 ) Rinaldi M/IF2120 Matdis 25
26 Notasi O disebut notasi O-Besar (Big-O) yang merupakan notasi kompleksitas waktu asimptotik. DEFINISI. T(n) = O(f(n)) (dibaca T(n) adalah O(f(n) yang artinya T(n) berorde paling besar f(n) ) bila terdapat konstanta C dan n 0 sedemikian sehingga untuk n n 0. T(n) C(f (n)) f(n) adalah batas lebih atas (upper bound) dari T(n) untuk n yang besar. Rinaldi M/IF2120 Matdis 26
27 Cf(n) T(n) n 0 n Rinaldi M/IF2120 Matdis 27
28 Contoh 7. Tunjukkan bahwa T(n) = 2n 2 + 6n + 1 = O(n 2 ). Penyelesaian: 2n 2 + 6n + 1 = O(n 2 ) karena 2n 2 + 6n + 1 2n 2 + 6n 2 + n 2 = 9n 2 untuk semua n 1 (C =9 dan n 0 = 1). atau karena 2n 2 + 6n + 1 n 2 + n 2 + n 2 = 3n 2 untuk semua n 6 (C =3 dan n 0 = 6). Rinaldi M/IF2120 Matdis 28
29 Contoh 8. Tunjukkan bahwa T(n) = 3n + 2 = O(n). Penyelesaian: 3n + 2 = O(n) karena 3n + 2 3n + 2n = 5n untuk semua n 1 (C = 5 dan n 0 = 1). Rinaldi M/IF2120 Matdis 29
30 Contoh-contoh Lain 1. Tunjukkan bahwa T(n) = 5 = O(1). Penyelesaian: 5 = O(1) karena untuk n 1. (C = 6 dan n 0 = 1) Kita juga dapat memperlihatkan bahwa 5 = O(1) karena untuk n 1 Rinaldi M/IF2120 Matdis 30
31 2. Tunjukkan bahwa kompleksitas waktu algoritma pengurutan seleksi (selection sort) adalah T(n) = n(n 1)/2 =O (n 2 ). Penyelesaian: n(n 1)/2 =O (n 2 ) karena n(n 1)/2 n 2 /2 + n 2 /2 = n 2 untuk semua n 1 (C = 1 dan n 0 = 1). Rinaldi M/IF2120 Matdis 31
32 3. Tunjukkan T(n) = 6*2 n + 2n 2 = O(2 n ) Penyelesaian: 6*2 n + 2n 2 = O(2 n ) karena 6*2 n + 2n 2 6*2 n + 2*2 n = 8*2 n untuk semua n 1 (C = 8 dan n 0 = 1). Rinaldi M/IF2120 Matdis 32
33 4. Tunjukkan T(n) = n = O(n 2 ) Penyelesaian: n n + n + + n = n 2 untuk n 1 5. Tunjukkan T(n) = n! = O(n n ) Penyelesaian: n! = n n. n.. n =n n untuk n 1 Rinaldi M/IF2120 Matdis 33
34 Teorema: Bila T(n) = a m n m + a m-1 n m a 1 n+ a 0 adalah polinom derajat m maka T(n) = O(n m ). Jadi, cukup melihat suku (term) yang mempunyai pangkat terbesar. Contoh: T(n) = 5 = 5n 0 = O(n 0 ) = O(1) T(n) = n(n 1)/2 = n 2 /2 n/2 = O(n 2 ) T(n) = 3n 3 + 2n = O(n 3 ) Rinaldi M/IF2120 Matdis 34
35 Teorema tersebut digeneralisasi untuk suku dominan lainnya: 1. Eksponensial mendominasi sembarang perpangkatan (yaitu, y n > n p, y > 1) 2. Perpangkatan mendominasi ln n (yaitu n p > ln n) 3. Semua logaritma tumbuh pada laju yang sama (yaitu a log(n) = b log(n) 4. n log n tumbuh lebih cepat daripada n tetapi lebih lambat daripada n 2 Contoh: T(n) = 2 n + 2n 2 = O(2 n ). T(n) = 2n log(n) + 3n = O(n log(n)) T(n) = log(n 3 ) = 3 log(n) = O(log(n)) T(n) = 2n log(n) + 3n 2 = O(n 2 ) Rinaldi M/IF2120 Matdis 35
36 Perhatikan.(1) Tunjukkan bahwa T(n) = 5n 2 = O(n 3 ), tetapi T(n) = n 3 O(n 2 ). Penyelesaian: 5n 2 = O(n 3 ) karena 5n 2 n 3 untuk semua n 5. Tetapi, T(n) = n 3 O(n 2 ) karena tidak ada konstanta C dan n 0 sedemikian sehingga n 3 Cn 2 n C untuk semua n 0 karena n dapat berupa sembarang bilangan yang besar. Rinaldi M/IF2120 Matdis 36
37 Perhatikan (2) Defenisi: T(n) = O(f(n) jika terdapat C dan n 0 sedemikian sehingga T(n) C.f(n) untuk n n 0 tidak menyiratkan seberapa atas fungsi f itu. Jadi, menyatakan bahwa T(n) = 2n 2 = O(n 2 ) benar T(n) = 2n 2 = O(n 3 ) juga benar T(n) = 2n 2 = O(n 4 ) juga benar Namun, untuk alasan praktis kita memilih fungsi yang sekecil mungkin agar O(f(n)) memiliki makna Jadi, kita menulis 2n 2 = O(n 2 ), bukan O(n 3 ) atau O(n 4 ) Rinaldi M/IF2120 Matdis 37
38 TEOREMA. Misalkan T 1 (n) = O(f(n)) dan T 2 (n) = O(g(n)), maka (a) T 1 (n) + T 2 (n) = O(f(n)) + O(g(n)) = O(max(f(n), g(n)) (b) T 1 (n)t 2 (n) = O(f(n))O(g(n)) = O(f(n)g(n)) (c) O(cf(n)) = O(f(n)), c adalah konstanta (d) f(n) = O(f(n)) Contoh 9. Misalkan T 1 (n) = O(n) dan T 2 (n) = O(n 2 ), maka (a) T 1 (n) + T 2 (n) = O(max(n, n 2 )) = O(n 2 ) (b) T 1 (n)t 2 (n) = O(n.n 2 ) = O(n 3 ) Contoh 10. O(5n 2 ) = O(n 2 ) n 2 = O(n 2 ) Rinaldi M/IF2120 Matdis 38
39 Pengelompokan Algoritma Berdasarkan Notasi O-Besar Kelompok Algoritma Nama O(1) konstan O(log n) logaritmik O(n) lanjar O(n log n) n log n O(n 2 ) kuadratik O(n 3 ) kubik O(2 n ) eksponensial O(n!) faktorial Urutan spektrum kompleksitas waktu algoritma adalah : O(1) O(log n) O( n) O( n log n) O( n ) O( n )... O( 2 n ) O( n!) 2 3 algoritma polinomial algoritma eksponensial Rinaldi M/IF2120 Matdis 39
40 Penjelasan masing-masing kelompok algoritma adalah sebagai berikut: O(1) Kompleksitas O(1) berarti waktu pelaksanaan algoritma adalah tetap, tidak bergantung pada ukuran masukan. Contohnya prosedur tukar di bawah ini: procedure tukar(var a:integer; var b:integer); var temp:integer; begin temp:=a; a:=b; b:=temp; end; Di sini jumlah operasi penugasan (assignment) ada tiga buah dan tiap operasi dilakukan satu kali. Jadi, T(n) = 3 = O(1). Rinaldi M/IF2120 Matdis 40
41 O(log n) Kompleksitas waktu logaritmik berarti laju pertumbuhan waktunya berjalan lebih lambat daripada pertumbuhan n. Algoritma yang termasuk kelompok ini adalah algoritma yang memecahkan persoalan besar dengan mentransformasikannya menjadi beberapa persoalan yang lebih kecil yang berukuran sama (misalnya algoritma pencarian_biner). Di sini basis algoritma tidak terlalu penting sebab bila n dinaikkan dua kali semula, misalnya, log n meningkat sebesar sejumlah tetapan. Rinaldi M/IF2120 Matdis 41
42 O(n) Algoritma yang waktu pelaksanaannya lanjar umumnya terdapat pada kasus yang setiap elemen masukannya dikenai proses yang sama, misalnya algoritma pencarian_beruntun. Bila n dijadikan dua kali semula, maka waktu pelaksanaan algoritma juga dua kali semula. Rinaldi M/IF2120 Matdis 42
43 O(n log n) Waktu pelaksanaan yang n log n terdapat pada algoritma yang memecahkan persoalan menjadi beberapa persoalan yang lebih kecil, menyelesaikan tiap persoalan secara independen, dan menggabung solusi masingmasing persoalan. Algoritma yang diselesaikan dengan teknik bagi dan gabung mempunyai kompleksitas asimptotik jenis ini. Bila n = 1000, maka n log n mungkin Bila n dijadikan dua kali semual, maka n log n menjadi dua kali semula (tetapi tidak terlalu banyak) Rinaldi M/IF2120 Matdis 43
44 O(n 2 ) Algoritma yang waktu pelaksanaannya kuadratik hanya praktis digunakan untuk persoalana yang berukuran kecil. Umumnya algoritma yang termasuk kelompok ini memproses setiap masukan dalam dua buah kalang bersarang, misalnya pada algoritma urut_maks. Bila n = 1000, maka waktu pelaksanaan algoritma adalah Bila n dinaikkan menjadi dua kali semula, maka waktu pelaksanaan algoritma meningkat menjadi empat kali semula. Rinaldi M/IF2120 Matdis 44
45 O(n 3 ) Seperti halnya algoritma kuadratik, algoritma kubik memproses setiap masukan dalam tiga buah kalang bersarang, misalnya algoritma perkalian matriks. Bila n = 100, maka waktu pelaksanaan algoritma adalah Bila n dinaikkan menjadi dua kali semula, waktu pelaksanan algoritma meningkat menjadi delapan kali semula. Rinaldi M/IF2120 Matdis 45
46 O(2 n ) Algoritma yang tergolong kelompok ini mencari solusi persoalan secara "brute force", misalnya pada algoritma mencari sirkuit Hamilton (lihat Bab 9). Bila n = 20, waktu pelaksanaan algoritma adalah Bila n dijadikan dua kali semula, waktu pelaksanaan menjadi kuadrat kali semula! Rinaldi M/IF2120 Matdis 46
47 O(n!) Seperti halnya pada algoritma eksponensial, algoritma jenis ini memproses setiap masukan dan menghubungkannya dengan n - 1 masukan lainnya, misalnya algoritma Persoalan Pedagang Keliling (Travelling Salesperson Problem - lihat bab 9). Bila n = 5, maka waktu pelaksanaan algoritma adalah 120. Bila n dijadikan dua kali semula, maka waktu pelaksanaan algoritma menjadi faktorial dari 2n. Rinaldi M/IF2120 Matdis 47
48 Nilai masing-masing fungsi untuk setiap bermacam-macam nilai n log n n n log n n 2 n 3 2 n n! (terlalu besar ) Rinaldi M/IF2120 Matdis 48
49 Rinaldi M/IF2120 Matdis 49
50 Kegunaan Notasi Big-Oh Notasi Big-Oh berguna untuk membandingkan beberapa algoritma dari untuk persoalan yang sama menentukan yang terbaik. Contoh: masalah pengurutan memiliki banyak algoritma penyelesaian, Selection sort, insertion sort T(n) = O(n 2 ) Quicksort T(n) = O(n log n) Karena n log n < n 2 untuk n yang besar, maka algoritma quicksort lebih cepat (lebih baik, lebih mangkus) daripada algoritma selection sort dan insertion sort. Rinaldi M/IF2120 Matdis 50
51 Rinaldi M/IF2120 Matdis 51
52 Notasi Omega-Besar dan Tetha-Besar Definisi -Besar adalah: T(n) = (g(n)) (dibaca T(n) adalah Omega (g(n) yang artinya T(n) berorde paling kecil g(n) ) bila terdapat tetapan C dan n 0 sedemikian sehingga untuk n n 0. Definisi -Besar, T(n) C g(n) T(n) = (h(n)) (dibaca T(n) adalah tetha h(n) yang artinya T(n) berorde sama dengan h(n) jika T(n) = O(h(n)) dan T(n) = (h(n)). Rinaldi M/IF2120 Matdis 52
53 Contoh: Tentukan notasi dan untuk T(n) = 2n 2 + 6n + 1. Jawab: Karena 2n 2 + 6n + 1 2n 2 untuk n 1, maka dengan C = 2 kita memperoleh 2n 2 + 6n + 1 = (n 2 ) Karena 2n 2 + 5n + 1 = O(n 2 ) dan 2n 2 + 6n + 1 = (n 2 ), maka 2n 2 + 6n + 1 = (n 2 ). Rinaldi M/IF2120 Matdis 53
54 Contoh: Tentukan notasi notasi O, dan untuk T(n) = 5n 3 + 6n 2 log n. Jawab: Karena 0 6n 2 log n 6n 3, maka 5n 3 + 6n 2 log n 11n 3 untuk n 1. Dengan mengambil C = 11, maka 5n 3 + 6n 2 log n = O(n 3 ) Karena 5n 3 + 6n 2 log n 5n 3 untuk n 1, maka maka dengan mengambil C = 5 kita memperoleh 5n 3 + 6n 2 log n = (n 3 ) Karena 5n 3 + 6n 2 log n = O(n 3 ) dan 5n 3 + 6n 2 log n = (n 3 ), maka 5n 3 + 6n 2 log n = (n 3 ) Rinaldi M/IF2120 Matdis 54
55 Contoh: Tentukan notasi notasi O, dan untuk T(n) = n. Jawab: n = O(n 2 ) karena n n + n + + n = n 2 untuk n n = (n) karena n = n untuk n n n/2 + + (n 1) + n n/2 + + n/2 + n/2 = (n + 1)/2 n/2 (n/2)(n/2) = n 2 /4 Kita menyimpulkan bahwa n = (n 2 ) Oleh karena itu, n = (n 2 ) Rinaldi M/IF2120 Matdis 55
56 Latihan Tentukan kompleksitas waktu dari algoritma dibawah ini jika melihat banyaknya operasi a a+1 for i 1 to n do for j 1 to i do for k j to n do a a + 1 endfor endfor endfor Tentukan pula nilai O-besar, Ω-besar, dan Θ-besar dari algoritma diatas (harus penjelasan) Rinaldi M/IF2120 Matdis 56
57 Jawaban Untuk i = 1, Untuk j = 1, jumlah perhitungan = n kali Untuk i = 2, Untuk j = 1, jumlah perhitungan = n kali Untuk j = 2, jumlah perhitungan = n 1 kali... Untuk i = n, Untuk j = 1, jumlah perhitungan = n kali Untuk j = 2, jumlah perhitungan = n 1 kali... Untuk j = n, jumlah perhitungan = 1 kali. Jadi jumlah perhitungan = T(n) = n 2 + (n 1) 2 + (n 2) Rinaldi M/IF2120 Matdis 57
58 T(n) = O(n 3 ) = Ω(n 3 ) = Θ(n 3 ). Salah satu cara penjelasan: T(n) = n 2 + (n 1) 2 + (n 2) = n(n + 1)(2n + 1)/6 = 2n 3 + 3n Diperoleh T(n) 3n 3 untuk n 4 dan T(n) 2n 3 untuk n 1. Rinaldi M/IF2120 Matdis 58
59 TEOREMA. Bila T(n) = a m n m + a m-1 n m a 1 n+ a 0 adalah polinom derajat m maka T(n) adalah berorde n m. Rinaldi M/IF2120 Matdis 59
60 Latihan Soal Di bawah ini adalah algoritma (dalam notasi Pascal-like) untuk menguji apakah dua buah matriks, A dan B, yang masing-masing berukuran n n, sama. function samamatriks(a, B : matriks; n : integer) boolean { true jika A dan B sama; sebaliknya false jika A B } Deklarasi i, j : integer Algoritma: for i 1 to n do for j 1 to n do if A i,j B i,j then return false endif endfor endfor return true (a) Apa kasus terbaik dan terburuk untuk algoritma di atas? (b) Tentukan kompleksitas waktu terbaik dan terburuk dalam notasi O. Rinaldi M/IF2120 Matdis 60
61 2. Berapa kali instruksi assignment pada potongan program dalam notas Bahasa Pascal di bawah ini dieksekusi? Tentukan juga notasi O-besar. for i := 1 to n do for j := 1 to n do for k := 1 to j do x := x + 1; Jawaban: T(n) = n( n) = n(n(n+1)/2)= (n 3 + n 2 )/2 = O(n 3 ) Rinaldi M/IF2120 Matdis 61
62 3. Untuk soal (a) dan (b) berikut, tentukan C, f (n), n 0, dan notasi O-besar sedemikian sehingga T(n) = O(f(n)) jika T(n) C f(n) untuk semua n n 0 : (a) T(n) = n (b) T(n) = (n + 1)(n + 3)/(n + 2) Jawaban: (a) n = 2( n) 2(n + n + n + + n) untuk n 1 = 2n 2 = O(n 2 ) (b) (n + 1)(n + 3)/(n + 2) =(n 2 + 4n + 3)/(n + 2) 8n untuk n 1 = O(n) Rinaldi M/IF2120 Matdis 62
63 4. Algoritma di bawah ini menghitung nilai polinom: p(x) = a 0 + a 1 x + a 2 x a n x n function p(input x:real) real { Mengembalikan nilai p(x)} Deklarasi j, k : integer jumlah, suku : real Algoritma jumlah a 0 for j 1 to n do { hitung a j x j } suku a j for k 1 to j do suku suku * x endfor jumlah jumlah + suku endfor return jumlah Hitunglah berapa operasi perkalian dan berapa operasi penjumlahan yang dilakukan oleh algoritma di atas? Jumlahkan kedua hitungan tersebut, lalu tentukan juga kompleksitas waktu asimptotik algoritma tersebut dalam notasi O-Besar. Rinaldi M/IF2120 Matdis 63
64 Jawab: Operasi penjumlahan: n kali (loop for j 1 to n) Operasi perkalian: n = n(n +1)/2 Operasi penjumlahan + operasi perkalian = n + n(n+1)/2 = O(n 2 ) Rinaldi M/IF2120 Matdis 64
65 Algoritma mengevaluasi polinom yang lebih baik dapat dibuat dengan metode Horner berikut: p(x) = a 0 + x(a 1 + x(a 2 + x(a x(a n-1 + a n x))) )) function p2(input x:real) real { Mengembalikan nilai p(x) dengan metode Horner} Deklarasi k : integer b 1, b 2,..., b n : real Algoritma b n a n for k n-1 downto 0 do b k a k + b k+1 * x endfor return b 0 Hitunglah berapa operasi perkalian dan berapa operasi penjumlahan yang dilakukan oleh algoritma di atas? Jumlahkan kedua hitungan tersebut, lalu tentukan juga kompleksitas waktu asimptotik algoritma tersebut dalam notasi O-Besar. Manakah yang terbaik, algoritma p atau p2? Rinaldi M/IF2120 Matdis 65
66 Jawab: Operasi penjumlahan: n kali (loop for k n-1 downto 0) Operasi perkalian: n kali Operasi penjumlahan + operasi perkalian = n + n = 2n = O(n) Karena O(n) < O(n 2 ), maka algoritma yang terbaik adalah p2 Rinaldi M/IF2120 Matdis 66
Matematika Diskrit Kompleksitas Algoritma. Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.
Matematika Diskrit Kompleksitas Algoritma Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs. Pendahuluan Sebuah masalah dapat mempunyai banyak algoritma penyelesaian. Contoh: masalah pengurutan (sort), ada
Lebih terperinciKompleksitas Algoritma
Kompleksitas Algoritma Pendahuluan Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus. Kemangkusan algoritma diukur dari berapa
Lebih terperinciPendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.
Pendahuluan Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien. Algoritma yang efektif diukur dari berapa jumlah waktu dan
Lebih terperinciKompleksitas Algoritma
Kompleksitas Algoritma Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus. Kemangkusan algoritma diukur dari berapa jumlah
Lebih terperinciKompleksitas Algoritma
Kompleksitas Algoritma 1 Pendahuluan Sebuah masalah dapat mempunyai banyak algoritma penyelesaian. Contoh: masalah pengurutan (sort), ada puluhan algoritma pengurutan Sebuah algoritma tidak saja harus
Lebih terperinciAlgoritma dan Kompleksitas Algoritma
Algoritma dan Kompleksitas Algoritma Algoritma Algoritma adalah urutan logis langkah-langkah penyelesaian masalah yang ditinjau secara sistematis. Asal Usul Algoritma Kata ini tidak muncul dalam kamus
Lebih terperinciKompleksitas Algoritma
Kompleksitas Algoritma Pendahuluan Mengapa kita memerlukan algoritma yang mangkus? Waktu komputasi (dalam detik) 10 5 10 4 10 3 10 2 1 0 1 10-1 1 hari 1 jam 1 detik 1 menit 5 1 0 1 5 2 0 10-4 x 2 n 10-6
Lebih terperinciAturan Untuk Menentukan Kompleksitas Waktu Asimptotik. Penjelasannya adalah sebagai berikut: T(n) = (n + 2) log(n 2 + 1) + 5n 2
Aturan Untuk Menentukan Kompleksitas Waktu Asimptotik 1. Jika kompleksitas waktu T(n) dari algoritma diketahui, Contoh: (i) pada algoritma cari_maksimum T(n) = n 1 = O(n) (ii) pada algoritma pencarian_beruntun
Lebih terperinciKompleksitas Algoritma (1)
Kompleksitas Algoritma (1) Pendahuluan Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien Algoritma yang bagus adalah algoritma yang efisien. Kebutuhan waktu dan ruang suatu algoritma bergantung
Lebih terperinciSebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.
Waktu komputasi (dalam detik) Kompleksitas Algoritma Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus. Kemangkusan algoritma
Lebih terperinciAnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case
AnalisisFramework Review Tujuan analisa : mengukur efesiensi algoritma Efisiensi diukur dari diukur dari: waktu (time) dan memori(space). Dua besaran yang digunakan: kompleksitas algoritma 1. Kompleksitas
Lebih terperinciPERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN
PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN Yudhistira NIM 13508105 Mahasiswa Program Studi Teknik Informatika ITB Jalan Ganesha No.10 Bandung e-mail: if18105@students.if.itb.ac.id
Lebih terperinciPendahuluan. Ukuran input (input s size)
Kompleksitas Algoritma Sesi 14 Pendahuluan Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang mangkus ialah algoritma yang meminimumkan kebutuhan waktu dan ruang.
Lebih terperinciANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM
ANALISIS ALGORITMA Analisis Masalah dan Running Time Disusun Oleh: Adam Mukharil Bachtiar Teknik Informatika UNIKOM adfbipotter@gmail.com AGENDA PERKULIAHAN DEFINISI MASALAH f x = a 0 + a n cos nπx +
Lebih terperinciAlgoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir
Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik 1 Definisi Brute Force Brute force : pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah
Lebih terperinciAlgoritma Brute Force
Algoritma Brute Force Definisi Brute Force Brute force adalah sebuah pendekatan yang lempang (straightforward( straightforward) ) untuk memecahkan suatu masalah, biasanya didasarkan pada pernyataan masalah
Lebih terperinciAlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)
AlgoritmaBrute Force Desain dan Analisis Algoritma (CS3024) Definisi Brute Force Brute forceadalah sebuah pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah, biasanya didasarkan pada
Lebih terperinciKompleksitas Algoritma dalam menentukan Solvabilitas Sliding N-Puzzle
Kompleksitas Algoritma dalam menentukan Solvabilitas Sliding N-Puzzle Audry Nyonata, 13515087 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha
Lebih terperinciDesign and Analysis of Algorithm
Design and Analysis of Algorithm Week 3: Notasi Asymptotic dan Kelas Dasar Efisiensi Dr. Putu Harry Gunawan 1 1 Department of Computational Science School of Computing Telkom University Dr. Putu Harry
Lebih terperinciSTRATEGI DIVIDE AND CONQUER
Pemrogram bertanggung jawab atas implementasi solusi. Pembuatan program akan menjadi lebih sederhana jika masalah dapat dipecah menjadi sub masalah - sub masalah yang dapat dikelola. Penyelesaian masalah
Lebih terperinciAlgoritma dan Struktur Data
Algoritma dan Struktur Data Click to edit Master subtitle style Pertemuan 3 Pengantar Analisis Efisiensi Algoritma Analisa efisiensi algoritma bertujuan mengestimasi waktu dan memori yang dibutuhkan untuk
Lebih terperinciAlgoritma dan Struktur Data. Performansi Algoritma
Algoritma dan Struktur Data Performansi Algoritma Teknik Informatika Universitas Muhammadiyah Malang 2016 Mana yang lebih baik? pilihan 1 : Algoritma biasa dengan komputer yang cepat. pilihan 2 : Menggunakan
Lebih terperinciPROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id
PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id Kinerja yang perlu ditelaah pada algoritma: beban komputasi efisiensi penggunaan memori Yang perlu
Lebih terperinciBAB III ANALISIS KOMPLEKSITAS ALGORITMA
BAB III ANALISIS KOMPLEKSITAS ALGORITMA 3.1 Kompleksitas Algoritma Suatu masalah dapat mempunyai banyak algoritma penyelesaian. Algoritma yang digunakan tidak saja harus benar, namun juga harus efisien.
Lebih terperinciAlgoritma Divide and Conquer (Bagian 2)
Algoritma Divide and Conquer (Bagian 2) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir 1 (c) Quick Sort Termasuk pada pendekatan sulit membagi, mudah menggabung (hard split/easy join) Tabel
Lebih terperinciKompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort
Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort Setia Negara B. Tjaru (13508054) Program Studi Teknik Informatika ITB Bandung e-mail: if18054@students.if.itb.ac.id ABSTRAK Makalah ini
Lebih terperinciAlgoritma Brute Force Oleh: Rinaldi Munir
Algoritma Brute Force Oleh: Rinaldi Munir Bahan Kuliah IF3051 Strategi Algoritma 1 ?? 2 Definisi Brute Force Brute force : pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah Biasanya
Lebih terperinciAnalisis Kecepatan Sorting Dengan Notasi Big O
Analisis Kecepatan Sorting Dengan Notasi Big O Rama Aulia NIM : 13506023 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung E-mail : ramaaulia@yahoo.co.id Abstrak Sorting
Lebih terperinciAlgoritma Divide and Conquer. (Bagian 2)
Algoritma Divide and Conquer (Bagian 2) (c) Quick Sort Termasuk pada pendekatan sulit membagi, mudah menggabung (hard split/easy join) Tabel A dibagi (istilahnya: dipartisi) menjadi A1 dan A2 sedemikian
Lebih terperinciDecrease and Conquer
Decrease and Conquer Bahan Kuliah IF2211 Strategi Algoritma Oleh: Rinaldi Munir Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika ITB 1 Decrease and conquer: metode desain algoritma
Lebih terperinciANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT
ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT Disusun untuk memenuhi tugas UTS mata kuliah : Analisis Algoritma Oleh : Eka Risky Firmansyah 1110091000043 Program Studi Teknik Informatika
Lebih terperinciAlgoritma Brute Force (lanjutan)
Algoritma Brute Force (lanjutan) Contoh-contoh lain 1. Pencocokan String (String Matching) Persoalan: Diberikan a. teks (text), yaitu (long) string yang panjangnya n karakter b. pattern, yaitu string dengan
Lebih terperinciBAB 2 LANDASAN TEORI
BAB 2 LANDASAN TEORI 2.1. Algoritma Secara informal, sebuah algoritma adalah prosedur komputasi yang didefinisikan dengan baik yang mengambil beberapa nilai, atau seperangkat nilai sebagai input dan menghasilkan
Lebih terperinciALGORITMA PENGURUTAN & PENCARIAN
Materi kuliah ALGORITMA PENGURUTAN & PENCARIAN Ir. Roedi Goernida, MT. (roedig@yahoo.com) Program Studi Sistem Informasi Fakultas Rekayasa Industri Institut Teknologi Telkom Bandung 2011 1 Pengelompokan
Lebih terperinciKompleksitas Algoritma Quick Sort
Komleksitas Algoritma Quick Sort Fachrie Lantera NIM: 130099 Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Jln. Ganesha 10, Bandung E-mail : if099@students.if.itb.ac.id
Lebih terperinciKompleksitas Algoritma untuk Penyelesaian Persoalan Penukaran Koin dengan Algoritma Greedy
Kompleksitas Algoritma untuk Penyelesaian Persoalan Penukaran Koin dengan Algoritma Greedy Dita Anindhika 13509023 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi
Lebih terperinciYaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :
PENGURUTAN Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi : 1. Ascending / menaik Syarat : L[1] L[2] L[3] L[N] 2. Descending / menurun
Lebih terperinciBAB II TINJAUAN PUSTAKA
6 BAB II TINJAUAN PUSTAKA 2.1. Algoritma Algortima adalah jantung ilmu komputer atau informatika. Banyak cabang dari ilmu komputer yang diacu dalam terminologi algoritma, misalnya algoritma perutean (routing)
Lebih terperinciPengurutan (Sorting) Algoritma Pemrograman
Pengurutan (Sorting) Algoritma Pemrograman mas.anto72@gmail.com 1 Definisi Sorting /pengurutan proses mengatur sekumpulan obyek menurut urutan atau susunan tertentu. Bentuk susunan/urutan : Ascending menaik/membesar
Lebih terperinciAnalisis Algoritma Bubble Sort
Analisis Algoritma Bubble Sort Ryan Rheinadi NIM : 13508005 Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung Jalan Ganesha 10, Bandung e-mail: if18005@students.if.itb.ac.id
Lebih terperinciKompleksitas Komputasi
Kompleksitas Komputasi Big O Notation O(f(n)) Kompleksitas komputasi pada sebuah algoritma dibagi menjadi dua bagian, yaitu Kompleksitas Waktu T(n) Kompleksitas Ruang S(n) Kompleksitas Waktu diukur dari
Lebih terperinciAlgoritma Brute Force(lanjutan) Lecture 6 CS3024
Algoritma Brute Force(lanjutan) Lecture 6 CS3024 String Matching Persoalan: Diberikan a. teks (text), yaitu (long) stringyang panjangnya n karakter b. pattern, yaitu string dengan panjang m karakter (m
Lebih terperinciDesign and Analysis Algorithm
Design and Analysis Algorithm Pertemuan 02 Drs. Achmad Ridok M.Kom Fitra A. Bachtiar, S.T., M. Eng Imam Cholissodin, S.Si., M.Kom Aryo Pinandito, MT Contents 31 2 Analisis Algoritma Analisis Efisiensi
Lebih terperinciDivide and Conqueradalah strategi militer yang dikenal dengan nama divide ut imperes.
Divide and Conquer Divide and Conqueradalah strategi militer yang dikenal dengan nama divide ut imperes. Strategi tersebut menjadi strategi fundamental di dalam ilmu komputer dengan nama Divide and Conquer.
Lebih terperinciPengantar Strategi Algoritmik. Oleh: Rinaldi Munir
Pengantar Strategi Algoritmik Oleh: Rinaldi Munir 1 Masalah (Problem) Masalah atau persoalan: pertanyaan atau tugas yang kita cari jawabannya. Contoh-contoh masalah: 1. [Masalah pengurutan] Diberikan senarai
Lebih terperinciBAB VII ALGORITMA DIVIDE AND CONQUER
BAB VII ALGORITMA DIVIDE AND CONQUER Pemrogram bertanggung jawab atas implementasi solusi. Pembuatan program akan menjadi lebih sederhana jika masalah dapat dipecah menjadi sub masalah - sub masalah yang
Lebih terperinciAlgoritma Brute Force
Algoritma Brute Force Deskripsi Materi ini membahas tentang algoritma brute force dengan berbagai studi kasus Definisi Brute Force Straighforward (lempeng) Sederhana dan jelas Lebih mempertimbangkan solusi
Lebih terperinciAlgoritma Brute Force (lanjutan)
Algoritma Brute Force (lanjutan) Contoh lain Mencari Pasangan Titik yang Jaraknya Terdekat Persoalan: Diberikan n buah titik (2-D atau 3- D), tentukan dua buah titik yang terdekat satu sama lain. y p 5
Lebih terperinciDesign and Analysis of Algorithms CNH2G3- Week 4 Kompleksitas waktu algoritma rekursif part 1
Design and Analysis of Algorithms CNH2G3- Week 4 Kompleksitas waktu algoritma rekursif part 1 Dr. Putu Harry Gunawan (PHN) Quiz I 1. Tentukan operasi dasar, c op dan C(n) untung masing-masing algoritma
Lebih terperinciAlgoritma Brute Force (Bagian 2) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik
Algoritma Brute Force (Bagian 2) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik 1 Contoh-contoh lain 1. Pencocokan String (String Matching) Persoalan: Diberikan a. teks (text), yaitu (long)
Lebih terperinciBAB VI SEARCHING (PENCARIAN)
BAB VI SEARCHING (PENCARIAN) 7. 1 Pencarian Beruntun (Sequential Search) Prinsip kerja pencarian beruntun adalah membandingkan setiap elemen larik satu per satu secara beruntun, mulai dari elemen pertama
Lebih terperinciBAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya
BAB II TINJAUAN PUSTAKA 2.1 Kriptografi Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya secret (rahasia), sedangkan gráphein artinya writing (tulisan), jadi kriptografi berarti secret
Lebih terperinciMODUL IV PENCARIAN DAN PENGURUTAN
MODUL IV PENCARIAN DAN PENGURUTAN 4.1 Tujuan Tujuan modul IV ini, adalah: Praktikan bisa membuat beberapa program pencarian berdasarkan metode algoritma pencarian Praktikan bisa membuat beberapa program
Lebih terperinciBAB 2 LANDASAN TEORI
BAB 2 LANDASAN TEORI 2.1 Pengolahan Citra Digital Citra digital dapat didefinisikan sebagai fungsi dua variabel yaitu f(x,y), dimana x dan y adalah koordinat spasial dan nilai f(x,y) adalah intensitas
Lebih terperinciPengantar Analisa Algoritma
Pengantar Analisa Algoritma Pendahuluan Suatu permasalahan memungkinkan untuk diselesaikan dengan lebih dari satu algoritma (pendekatan) Bagaimana kita memilih satu diantara beberapa algoritma tersebut.
Lebih terperinciAnalisis Algoritm. Fundamentals of the Anlysis of Algorithm Efficiency
Analisis Algoritm Fundamentals of the Anlysis of Algorithm Efficiency Hendri Karisma Program Studi Teknik Informatika Universitas Komputer Indonesia 2013 Review An algorithm is a sequence of unambiguous
Lebih terperinciAnalisis Algoritma. Jimmy Tirtawangsa. Universitas Telkom 2014
Analisis Algoritma Jimmy Tirtawangsa Universitas Telkom 2014 Daftar Isi (1) Motivasi (2) Kompleksitas dan Optimalitas (3) Struktur data (4) Teknik 2 analisis algoritma (5) Struktur graf (6) Problem Sulit/Intraktabel
Lebih terperinciAlgoritma Divide and Conquer (Bagian 1)
Algoritma Divide and Conquer (Bagian 1) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir 1 Divide and Conquer dulunya adalah strategi militer yang dikenal dengan nama divide ut imperes. Sekarang
Lebih terperinciKomparasi Algoritma Mergesort dengan Quicksort pada Pengurutan Data Integer
Komparasi Algoritma Mergesort dengan Quicksort pada Pengurutan Data Integer Atika Azzahra Akbar 13514077 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,
Lebih terperinciKemangkusan Algoritma Pada Beberapa Variasi Quick Sort
Kemangkusan Algoritma Pada Beberapa Variasi Quick Sort Alifa Nurani Putri (13511074) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung
Lebih terperinciBAB 2 LANDASAN TEORI
5 BAB 2 LANDASAN TEORI 2.1. Pengertian Algoritma Algoritma adalah prosedur komputasi yang didefinisikan dengan baik yang mengambil beberapa nilai yaitu seperangkat nilai sebagai input dan output yang menghasilkan
Lebih terperinciAplikasi OBE Untuk Mengurangi Kompleksitas Algoritma Program Penghitung Determinan Matriks Persegi
Aplikasi OBE Untuk Mengurangi Kompleksitas Algoritma Program Penghitung Determinan Matriks Persegi Alif Bhaskoro / 13514016 Program Studi Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi
Lebih terperinciPenerapan Rekursif dan Analisa Kompleksitas Algoritma Pada Brute Force Login
Penerapan Rekursif dan Analisa Kompleksitas Algoritma Pada Brute Force Login Aryya Dwisatya Widigdha/13512043 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi
Lebih terperinciAlgoritma Brute Force
Algoritma Brute Force Oleh: Rinaldi Munir Bahan Kuliah IF2211 Strategi Algoritma Program Studi Informatika Sekolah teknik Elektro dan Informatika, ITB, 2014 1 2 Definisi Brute Force Brute force : pendekatan
Lebih terperinciSoal dan Jawaban Materi Graf, Pohon, dan Kompleksitas Algoritma
Soal dan Jawaban Materi Graf, Pohon, dan Kompleksitas Algoritma POHON 1. Ubahlah graf berikut ini dengan menggunakan algoritma prim agar menjadi pohon merentang minimum dan tentukan bobot nya! 2. Diberikan
Lebih terperinciKompleksitas Algoritma Euclidean dan Stein(FPB Biner)
Kompleksitas Algoritma Euclidean dan Stein(FPB Biner) Okharyadi Saputra (13510072) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung
Lebih terperinciKompleksitas Algoritma Sorting yang Populer Dipakai
Kompleksitas Algoritma Sorting yang Populer Dipakai Wahyu Fahmy Wisudawan 1) 1) Program Studi Teknik Informatika ITB, Bandung 40135, email: mailto:al_izzatusysyifa@students.itb.ac.id Abstract Makalah ini
Lebih terperinciKOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)
KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM) Andi Kurniawan Dwi Putranto / 3508028 Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Jln. Ganesha
Lebih terperinci1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.
Semester : 4 Pengenalan Algoritma dan Program 200 menit No. : LST/EKA/EKA259/01 Revisi : 01 Tgl. : 10-2-2014 Hal. 1 dari 2 hal. 1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada. 2.
Lebih terperinciPENGGUNAAN BIG O NOTATION UNTUK MENGANALISA EFISIENSI ALGORITMA
PENGGUNAAN BIG O NOTATION UNTUK MENGANALISA EFISIENSI ALGORITMA Ikhsan Fanani NIM : 13505123 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung E-mail : ikhsan_fanani@yahoo.com
Lebih terperinciTELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST
TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST Andhika Hendra Estrada S. Sekolah Teknik Elektro dan Informatika INSTITUT
Lebih terperinciAlgoritma Pemrograman
Algoritma Pemrograman Pertemuan Ke-2 (Teks Algoritma) Noor Ifada noor.ifada@if.trunojoyo.ac.id S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Judul Algoritma Deklarasi Deskripsi Translasi
Lebih terperinciPENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)
PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING) a. Introduction b. Tanpa Boolean c. Dengan Boolean d. Penggunaan dalam Fungsi INTRODUCTION Merupakan algoritma pencarian yang paling sederhana. Proses Membandingkan
Lebih terperinciPenentuan Hubungan Kompleksitas Algoritma dengan Waktu Eksekusi pada Operasi Perkalian
Penentuan Hubungan Kompleksitas Algoritma dengan Waktu Eksekusi pada Operasi Perkalian Raymond Lukanta 13510063 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi
Lebih terperinciLogika dan Algoritma Yuni Dwi Astuti, ST 2
ALGORITMA Istilah algoritma pertama kali diperkenalkan oleh seorang ahli matematika yaitu Abu Ja far Muhammad Ibnu Musa Al Khawarizmi. Yang dimaksud dengan algoritma adalah : Urutan dari barisan instruksi
Lebih terperinciKuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)
Kuliah ke : 4 Algoritma & Stuktur Data Pengurutan (Sorting) Pengurutan adalah proses mengatur sekumpulan obyek menurut urutan atau susunan tertentu. Urutan obyek tersebut dapat menaik atau menurun. Bila
Lebih terperinciStudi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya
Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya Ronny - 13506092 Jurusan Teknik Informatika Institut Teknologi Bandung Email : if16092@students.if.itb.ac.id 1. Abstract
Lebih terperinciPENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER
PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER Danang Arief Setyawan NIM : 3559 Program Studi Teknik Informatika Institut Teknologi Bandung e-mail: das_centauri@yahoo.com
Lebih terperinciAplikasi Divide and Conquer pada Perkalian Large Integer untuk Menghitung Jumlah Rute TSP Brute Force
Aplikasi Divide and Conquer pada Perkalian Large Integer untuk Menghitung Jumlah Rute TSP Brute Force Martin Lutta Putra - 13515121 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika
Lebih terperinciMAKALAH ALGORITMA DIVIDE AND CONQUER
MAKALAH ALGORITMA DIVIDE AND CONQUER Galih Pranowo Jurusan Matematika Ilmu Komputer FAKULTAS SAINS TERAPAN INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA 1. Pengertian Algoritma Divide and Conquer merupakan
Lebih terperinciPenerapan Algoritma Runut-balik pada Permainan Math Maze
Penerapan Algoritma Runut-balik pada Permainan Math Maze Angela Lynn - 13513032 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung
Lebih terperinciSetelah mempelajari topik Analisis Algoritma di kuliah SDA, ada beberapa kompetensi yang perlu Anda kuasai:
Setelah mempelajari topik Analisis Algoritma di kuliah SDA, ada beberapa kompetensi yang perlu Anda kuasai: Menentukan kompleksitas waktu (Big-Oh) dari beberapa algoritma (logaritmik, linier, kuadratik,
Lebih terperinciAlgoritma Brute Force
Algoritma Brute Force Oleh: Rinaldi Munir Bahan Kuliah IF2211 Strategi Algoritma Program Studi Informatika Sekolah teknik Elektro dan Informatika, ITB, 2014 1 2 Definisi Brute Force Brute force : pendekatan
Lebih terperinciOptimalisasi Algoritma Pencarian Data Memanfaatkan Pohon Biner Terurut
Optimalisasi Algoritma Pencarian Data Memanfaatkan Pohon Biner Terurut Mohammad Rizky Adrian 1) 1) Jurusan Teknik Informatika ITB, Bandung 40132, email: if17108@students.if.itb.ac.id Abstract Makalah ini
Lebih terperinciSieve of Eratosthenes, Algoritma Bilangan Prima
Sieve of Eratosthenes, Bilangan Prima M. R. Al-ghazali NIM. 13509068 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia
Lebih terperinci1 Pencarian. 1.1 Tinjauan Singkat Larik
1 Pencarian P encarian (searching) merupakan proses yang fundamental dalam pengolahan data. Proses pencarian adalah menemukan nilai (data) tertentu di dalam sekumpulan data yang bertipe sama (baik bertipe
Lebih terperinciJARINGAN UNTUK MERGING
SORTING - Merging Definisi: A = {a 1, a 2,..., a r } B = {b 1, b 2,..., b s } merupakan dua deret angka yang terurut naik; merge A dan B merupakan deret C = {c 1, c 2,..., c r+s } yang juga terurut naik,
Lebih terperinciPengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok:
Pengurutan (Sorting) Pengurutan adalah proses mengatur sekumpulan obyek menurut urutan atau susunan tertentu. Urutan obyek tersebut dapat menaik atau menurun. Bila N obyek disimpan dalam larik L, maka
Lebih terperinci1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.
LAB SHEET ALGORITMA DAN STRUKTUR DATA Semester : 4 Percabangan Komplek dan case of 200 menit No. : LST/EKA/EKA 305/03 Revisi : Tgl. : Hal. 1 dari 3 hal. 1. Kompetensi Mengenal dan memahami algoritma percabangan
Lebih terperinciAlgoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung
Algoritma Heap Sort Paul Gunawan Hariyanto 1, Dendy Duta Narendra 2, Ade Gunawan 3 Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung
Lebih terperinciSORTING. Brigida Arie Minartiningtyas, M.Kom
SORTING Brigida Arie Minartiningtyas, M.Kom Sorting Suatu proses pengurutan data yang sebelumnya disusun secara acak sehingga menjadi tersusun secara teratur menurut suatu aturan tertentu. Sorting diterapkan
Lebih terperinciAnalisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 1: 9 Mei 2016
Analisa dan Perancangan Algoritma Ahmad Sabri, Dr Sesi 1: 9 Mei 2016 Apakah algoritma itu? Asal istilah: Al Khwarizmi (± 800 M), matematikawan dan astronomer Persia. Pengertian umum: "suatu urutan langkah-langkah
Lebih terperinciDesign and Analysis Algorithm
Design and Analysis Algorithm Pertemuan 05 Drs. Achmad Ridok M.Kom Imam Cholissodin, S.Si., M.Kom M. Ali Fauzi, S.Kom., M.Kom. Ratih Kartika Dewi, ST, M.Kom 1 Contents 31 1.1 Algoritma Brute Force Exhaustive
Lebih terperinciPSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR
1 PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR Siti Mukaromah, S.Kom TEKNIK PENYAJIAN ALGORITMA Teknik Tulisan Structure English Pseudocode Teknik Gambar Structure Chart HIPO Flowchart 2 PSEUDOCODE Kode
Lebih terperinciBAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).
BAB II TINJAUAN PUSTAKA 2.1 Kriptografi Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message). Kata cryptography berasal dari kata Yunani yaitu kryptos yang artinya tersembunyi
Lebih terperinciAlgoritma Pemrograman
Algoritma Pemrograman Pertemuan Ke-2 (Teks Algoritma) :: Noor Ifada :: S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Judul Algoritma Deklarasi Deskripsi Translasi Teks Algoritma ke dalam
Lebih terperinciALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA
ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA I. Pendahuluan Algoritma dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami. Algoritma dapat ditulis dalam bahasa natural/bahasa
Lebih terperinciSEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut
Tujuan Searching & Sorting Pertemuan 9-10 Dosen Pembina Danang Junaedi TUJUAN MATERI Setelah mengikuti materi pertemuan ini, mahasiswa diharapkan dapat 1. Menjelaskan dan menggunakan metode pencarian dalam
Lebih terperinciALGORITMA DIVIDE AND CONQUER
ALGORITMA DIVIDE AND CONQUER By Gapra. Email : ga_pra_27@yahoo.co.id 1. Pengertian Algoritma Divide and Conquer merupakan algoritma yang sangat populer di dunia Ilmu Komputer. Divide and Conquer merupakan
Lebih terperinciDesign and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 07
Design and Analysis Algorithm Ahmad Afif Supianto, S.Si., M.Kom Pertemuan 07 Contents 31 2 3 4 35 Divide and Conguer MinMax Problem Closest Pair Sorting Problem Perpangkatan 2 Algoritma divide and conquer
Lebih terperinci