ALGORITMA DAN PEMROGRAMAN III MATERI Analisa Algoritma Algoritma
- Slides: 23
ALGORITMA DAN PEMROGRAMAN III
MATERI � Analisa Algoritma � Algoritma Greedy � Exploring Graph � Algoritma Probabilistic
PENILAIAN � Kuliah 50% � Praktikum 50% ◦ Tugas 20% ◦ UTS 30% ◦ UAS 50%
ANALISA ALGORITMA � Algoritma membantu kita memahami skalabilitas program kita � Analisa algoritma memberi gambaran informasi tentang ‘perilaku program’ kita � Mempelajari bagaimana menerapkan algoritma yang baik untuk kasus tertentu membedakan profesi system analyst dan programmer
Prinsip Perbandingan Algoritma Apa yang membuat sebuah algoritma dikatakan LEBIH BAIK dari algoritma yang lain? � Kompleksitas waktu (Time Complexity) � Kompleksitas ruang (Space Complexity) Kecenderungan saat ini: � ruang (hard disk) semakin murah � kapasitas data yang diproses semakin besar � waktu pemrosesan harus semakin cepat Kompleksitas waktu menjadi variabel yang sangat penting
Ukuran Efisiensi Waktu � Efisiensi suatu algoritma tidak dapat diukur dengan satuan waktu (detik, milidetik dsb), karena waktu tempuh algoritma sangat tergantung pada : ◦ ◦ ◦ Banyaknya data Spesifikasi komputer Hardware Compiler software Tegangan listrik Lain-lain
Efisiensi Waktu � Efisiensi waktu dalam algoritma diukur dengan satuan n (problem size) � 4 langkah untuk menentukan ukuran efisiensi waktu antara lain : ◦ ◦ Menentukan problem size (n) operasi dominan fungsi langkah g(n) kompleksitas waktu O(f(n)) Big Oh
Problem size
Menentukan Operasi Dominan � Operasi dominan merupakan operasi yang paling banyak dilakukan untuk memecahkan suatu permasalahan. � Operasi dominan ini sangat tergantung pada permasalahan dan operasi yang dilakukan yang banyaknya tergantung pada n
Contoh � Pada algoritma menentukan max/min operasi dominannya adalah operasi perbandingan “<“ atau “>” � Pda algoritma searching operasi dominannya adalah operasi “=“
Menentukan fungsi langkah g(n) � g(n) = banyak kali operasi dominan dilakukan dalam (n)
Menentukan kompleksitas waktu O(f(n)) � Suatu algoritma dengan fungsi langkah g(n) dikatakan mempunyai kompleksitas waktu O(f(n)) jika terdapat konstanta c>0 sedemikian hingga : g(n) ≤ c. f(n) untuk n > n 0 ◦ Algoritma Max. Min g(n)= 2 n-2 O(n) ◦ Algoritma Bubblesort g(n) = n 2/2 -n/2 O(n 2)
Efisiensi Algoritma � Faktor-faktor yang menentukan banyak langkah antara lain : 1. Banyaknya operator dasar yang digunakan 2. Assigment (konstanta c) 3. Function Call 4. Struktur Program - Sekuensial - Percabangan - Kalang (loop)
SEKUENSIAL � Misalkan dalam algoritma terdapat blok statement, masing-masing mempunyai banyak langkah : S 1 banyak langkah P 1 S 2 banyak langkah P 2 S 3 banyak langkah P 3 Sn banyak langkah Pn Total banyak langkah blok-blok statement tersebut adalah
Contoh Sekuensial �x x*y operasi 1 =1 � y a * sin(x) operasi 1, procedure 1 = 2 � Readln(b) assigment 1 =1 � Writeln (x+y+b) assigment 1 operasi 2 =3 Banyak langkah =7
Soal � Hitung banyak langkah dari algoritma berikut : read(panjang) read(lebar) luas panjang * lebar keliling 2 * (panjang + lebar) write(luas) write(keliling)
Percabangan Bentuk IF k THEN S 1 ELSE S 2 k = kondisi dengan banyak langkah c S 1 , S 2 = blok statement dengan banyak langkah P 1, P 2
Percabangan � Kasus terbaik mempunyai banyak langkah c + min (P 1, P 2) � Kasus terburuk mempunyai banyak langkah c + max (P 1, P 2) Operator dasar logika : AND, OR, NOT dihitung 1 langkah
Percabangan C=1 P 1 = 2 P 2 = 1 Kasus terburuk = c + max (P 1, P 2) = 1 + max(2, 1) = 3
Perulangan (Loop) � Yang dianalisa hanya For Loop � Bentuk umum For variable nilai awal To nilai akhir Step S
Perulangan (Loop) � Kasus I Statement S mempunyai banyak langkah yang tidak tergantung nilai counter For counter : awal To akhir S Counter ≤ Akhir S dieksekusi sebanyak akhir – awal + 2 kali Counter = counter + 1 S dieksekusi sebanyak akhir – awal + 1 kali
Perulangan (Loop) Banyak Langkah = (akhir – awal + 2) + (akhir – awal + 1) (p + 1) Contoh : For i = 1 to n x: =x+5 y: =y+x
Perulangan (Loop) � Kasus II Banyak langkah S bergantung nilai Counter Contoh : For i : = 1 To n x : = x + y For j : = i To n y : = i + j
- Contoh pemrograman konvensional
- Apa yang dimaksud dengan pemrograman konvensional?
- Bahasa pemrograman konvensional
- Contoh pemrograman konvensional
- Algoritma dan pemrograman
- Apa yang dimaksud dengan algoritma pemrograman
- Algoritma dan pemrograman menggunakan python
- Scopes programming language
- Hamlet act iii scene ii
- Contoh laporan analisa dan evaluasi
- Penyusunan dari laporan sumber dan penggunaan kas adalah
- Rangkaian logika kombinasi
- Analisa dan desain rangkaian sekuensial
- Algoritma pemrograman 2
- Konsep dualitas
- Kurva expansion path
- Tulang ikan udinus
- Analisa numerik teknik sipil
- Apa yang dimaksud analisis titrimetri
- Korelasi adalah
- Rumus analisis pearls
- Analisa persoalan adalah
- Analisa usaha tani padi 2021
- Gred spm 2015