1-intro strategi algoritmik
DESCRIPTION
stragoTRANSCRIPT
![Page 1: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/1.jpg)
1
INTRODUKSI STRATEGI
ALGORITMIKS1 Teknik Informatika
Universitas Kristen Maranatha
![Page 2: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/2.jpg)
2
STRATEGI ALGORITMIK kumpulan metode atau teknik untuk
memecahkan masalah guna mencapai tujuan yang ditentukan
deskripsi metode atau teknik tsb dinyatakan dalam suatu urutan langkah-langkah penyelesaian (ALGORITMA) [1]
![Page 3: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/3.jpg)
3
INTRODUCTION Strategi pemecahan masalah
Tujuan : mendapatkan algoritma yang efisien dalam memecahkan suatu masalah
Notasi Big OAlat untuk membandingkan beberapa
algoritma Efisiensi berdasarkan waktu proses
![Page 4: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/4.jpg)
4
STRATEGI PEMECAHAN MASALAH Strategi solusi langsung (direct solution strategies)
Algoritma Brute force Algoritma Greedy
![Page 5: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/5.jpg)
5
STRATEGI PEMECAHAN MASALAH Strategi solusi langsung
Algoritma Brute force Exhaustive search/ generate and test Enumerasi semua kemungkinan solusi Combinatorial explosion
Contoh : mencari bilangan prima antara 1 s.d N Mis. N adalah 20, maka bil. prima : 2, 3, 5, 7, 11, 13, 17, 19
![Page 6: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/6.jpg)
6
CONTOH BRUTE FORCE: CARI BILANGAN PRIMA (1/2)
[2]
![Page 7: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/7.jpg)
7
CONTOH BRUTE FORCE: CARI BILANGAN PRIMA (2/2)
Komputer: AMD Turion 64 1.9 GHz dengan 2 GB RAM, 160 GB HDD dan Windows Vista.
![Page 8: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/8.jpg)
8
STRATEGI PEMECAHAN MASALAH Strategi solusi langsung
Algoritma Greedy Pencarian solusi yang optimum
Contoh : Mencari jalur tersingkat dari kota A ke B Menghitung koin/lembaran uang kembalian/
gajian pegawai Mis. 3600 : 3 lembar ribuan, 1 koin 500, 1 koin
100
![Page 9: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/9.jpg)
9
STRATEGI PEMECAHAN MASALAH Strategi berbasis pencarian pada
ruang status (state-space base strategies)Algoritma Backtracking Algoritma Branch and Bound
![Page 10: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/10.jpg)
10
STRATEGI PEMECAHAN MASALAH Strategi berbasis pencarian pada
ruang statusAlgoritma Backtracking
Enumerasi set of partial candidates Dalam bentuk search tree Memakai Depth First Search Lebih cepat dari Brute Force
Contoh : perwarnaan peta (map coloring)
![Page 11: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/11.jpg)
11
STRATEGI PEMECAHAN MASALAH Strategi berbasis pencarian pada
ruang status Algoritma Branch and Bound
Menemukan solusi optimal Memakai strategi Best First Search
Contoh : Traveling Salesman Problem
![Page 12: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/12.jpg)
12
STRATEGI PEMECAHAN MASALAH Strategi solusi atas-bawah (top-down solution strategies)
Algoritma Divide and Conquer
Strategi solusi bawah-atas (bottom-up solution strategies)
Dynamic Programming
![Page 13: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/13.jpg)
13
STRATEGI PEMECAHAN MASALAH Strategi solusi atas-bawah (top-down solution strategies)
Algoritma Divide and Conquer Dekomposisi masalah Pemecahan sub masalah Penggabungan solusi
Contoh : Quick sort Merge sort
![Page 14: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/14.jpg)
14
STRATEGI PEMECAHAN MASALAH Strategi solusi bawah-atas (bottom-up solution strategies)
Dynamic Programming pemecahan masalah dengan cara menguraikan
solusi menjadi sekumpulan langkah (step) /tahapan (stage)
solusi dari persoalan dapat dipandang dari serangkaian keputusan yang saling berkaitan
Contoh : Knapsack 0/1 problem
![Page 15: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/15.jpg)
15
LANGKAH DASAR ALGORITMA Sederhanakan masalah Membangun rencana penyelesaian
secara matematis Merancang algoritma Menguji kebenaran algoritma Implementasi dengan suatu bahasa
pemrograman yang dimengerti Dokumentasi Analisis kompleksitas algoritma
![Page 16: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/16.jpg)
16
WAKTU PROSES ALGORITMA (1/2) Waktu proses algoritma
lamanya waktu yang diperlukan komputer untuk menjalankan sebuah algoritma.
Karena kecepatan komputer yang biasa kita gunakan sangat tinggi, maka biasanya waktu proses itu tidak terlalu kita perhatikan.
Tidak semua algoritma dapat selesai diproses dalam waktu kurang dari satu detik.
![Page 17: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/17.jpg)
17
WAKTU PROSES ALGORITMA (2/2) Algoritma yang kompleks dapat
memerlukan waktu beberapa menit hingga berhari-hari untuk menyelesaikan prosesnya.
Hal ini berlaku bahkan di komputer paling canggih sekalipun.
Sejumlah algoritma dengan kompleksitas sangat tinggi bahkan ada yang memakan waktu lebih dari satu tahun untuk mengeluarkan hasil.
Dalam hal merancang algoritma yang cukup kompleks, sangat penting bagi kita untuk menghitung waktu proses algoritma.
![Page 18: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/18.jpg)
18
VARIASI WAKTU PROSES (1/2) Algoritma bekerja berdasarkan input
yang dimasukkan user.
Setiap input memiliki ukuran. Misalnya kita hendak mengurutkan sejumlah bilangan, banyaknya bilangan yang perlu diurutkan merupakan ukuran besarnya input
Makin besar ukuran input yang dimasukkan, pada umumnya waktu proses akan semakin lama.
![Page 19: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/19.jpg)
19
VARIASI WAKTU PROSES (2/2) Tergantung pada isi input, waktu proses
dapat bervariasi :Keadaan terbaik (best case)
Dilambangkan dengan notasi (...) dibaca Theta
Keadaan rata-rata (average case) Dilambangkan dengan notasi (...)
dibaca OmegaKeadaan terburuk (worst case)
Dilambangkan dengan notasi O(...) dibaca Big-O
Kinerja sebuah algoritma biasanya diukur dengan menggunakan patokan keadaan terburuk (worst case) yang dinyatakan dengan Big-O
![Page 20: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/20.jpg)
20
NOTASI BIG O Big-Oh
Deskripsi umum dari algoritmaCompare algorithms in the limit
Mis. 20N hours vs N2 microseconds which is better?
![Page 21: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/21.jpg)
21
CONTOHy = 3x
y = 6x-2
y = 15x + 44
Family O(n)
Kurva garis lurus Double input → double
time
y = x2
y = x2-6x+9
y = 3x2+4x
Family O(n2)
Kurva parabolaDouble input → quadruple time
![Page 22: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/22.jpg)
22
DEFINISI FORMAL O-notation is an upper-bound, this
means that N is O(N), but it is also O(N2); we try to provide tight bounds. Formally:A function g(N) is O(f(N)) if there exist
constants c and n such that g(N) < cf(N) for all N > n cf(N)
g(N)
x = n
![Page 23: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/23.jpg)
23
BIG-OH CALCULATIONS FROM CODE Search for element in array:
What is complexity (using O-notation)? A adalah array yang memiliki indeks 0, ..., n-1
Algoritma mencari posisi x di dalam array A return posisi x (idx) indeks 0 while (indeks < n) and (Aindeks x) do
indeks indeks + 1 endwhile
{ indeks < n } if indeks < n then { x ditemukan } idx indeks else idx -1 { x tidak ditemukan } endif
Best case? Average case? Worst case?
![Page 24: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/24.jpg)
24
MEASURES OF COMPLEXITY
Worst caseGood upper-bound on behaviorNever get worse than this
Average caseWhat does average mean? Averaged over all inputs? Assuming uniformly
distributed random data?
![Page 25: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/25.jpg)
25
MEMBACA BIG-OH O(1) artinya algoritma konstan O(log n) contohnya pada full balanced
Binary Search Tree O(n) artinya algoritma linear O(n log n) contohnya algoritma merge sort O(n2) artinya algoritma quadratic O(n3) artinya algoritma qubic O(nm) artinya algoritma eksponensial Notasi Big-O bisa berisi kombinasi dari
contoh di atas
![Page 26: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/26.jpg)
26
ALGORITMA ITU PENTING (1/2) Komputer A yang cepat (109 instruksi
per detik) melakukan insertion sort melawan komputer B yang lebih lambat (107 instruksi per detik) melakukan merge sort. Manakah yang lebih cepat? [3]
Masing2 komputer hendak mengurutkan 1.000.000 bilangan.
Insertion sort 2n2 instruksi untuk mengurutkan n bilangan.
![Page 27: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/27.jpg)
27
ALGORITMA ITU PENTING (2/2) Merge sort 50n log n instruksi untuk
mengurutkan 1.000.000 bilangan.
Untuk mengurutkan 1.000.000 bilangan, komputer A membutuhkan
Komputer B membutuhkan
![Page 28: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/28.jpg)
28
106 INSTRUCTIONS/SEC, RUNTIMES
N O(log N)
O(N) O(N log N)
O(N2)
10 0.000003 0.00001 0.000033 0.0001
100 0.000007 0.00010 0.000664 0.1000
1,000 0.000010 0.00100 0.010000 1.0
10,000 0.000013 0.01000 0.132900 1.7 min
100,000 0.000017 0.10000 1.661000 2.78 hr
1,000,000 0.000020 1.0 19.9 11.6 day
1,000,000,000
0.000030 16.7 min 18.3 hr 318 centuries
![Page 29: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/29.jpg)
29
LATIHAN Buatlah algoritma untuk mencari suatu
nilai dalam suatu matriks A berukuran n x n.
Bagaimana kompleksitas algoritma tersebut jika dituliskan dengan notasi big O ?
Best case ? Average case ? Worst case ?
![Page 30: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/30.jpg)
30
BUAT RANGKUMAN Buat rangkuman untuk membantu
pemahaman saudara:Bab 2.1 dan Tabel di halaman 59 dari bukuIntroduction to The Design and Analysis of Algorithms 2nd edition oleh Anany Levitin.
Buat rangkuman dengan tulisan tangan. Dikumpulkan besok (8 Januari 2013)
sebelum perkuliahan dimulai.
![Page 31: 1-Intro Strategi Algoritmik](https://reader035.vdocuments.net/reader035/viewer/2022081421/55721402497959fc0b938a5e/html5/thumbnails/31.jpg)
31
REFERENSI[1] Materi kuliah IF 2251 Strategi Algoritmik :
http://kur2003.if.itb.ac.id/ Mata kuliah IF 2251 Strategi Algoritmik (sem.4)
[2] Efficient Prime Number Generating Algorithmshttps://en.wikibooks.org/wiki/Efficient_Prime_Number_Generating_Algorithms
[3] Cormen, T.H., Leiserson, C. E., Rivest, R.L., dan Stein, C. (2007) Introduction to Algorithms 2nd edition. The MIT Press.