LOGIKA ALGORITMA
Dini Sundani, ST., MMSI
ALGORITMA
Definisi
barisan langkah-langkah atau instruksi untuk menyelesaikan suatu
masalah
flowchart, diagram alur dan bahasa semu.
Diagram Penyelesaian Masalah yang baik
Masalah
Model
Algoritma
Program Data
Eksekusi
Hasil
Kriteria Algoritma yang Baik
1. Ada output solusi dari masalah yang sedang diselesaikan
2. Efektif dan efisien menghasilkan solusi dan berhubungan
dengan kompleksitas waktu
3. Jumlah langkah berhingga masalah yang dihadapi selesai
4. Berakhir ada/tidak ada solusi, proses tetap berhenti
5. Terstruktur ada input, proses, output
Semi Algoritma : prosedur yang hanya akan berhenti jika mempunyai
masalah
Contoh :
Semi Algoritma
(1) Baca bilangan bulat positif y
(2) Nyatakan nilai q = 0
(3) Hitung p = q*q
(4) Jika p = y maka q adalah akarnya, stop
(5) q ditambah 1
(6) kembali ke langkah (3)
1
LOGIKA ALGORITMA
Dini Sundani, ST., MMSI
Prosedur diatas dirubah menjadi algoritma dengan menambahkan
perintah pada langkah (4), yaitu :
(4) Jika p = y maka q adalah akarnya, stop
(5) Jika p > y maka y tidak punya akar, stop
Studi Tentang Algoritma
1. Bagaimana merencanakannya
merupakan sustu studi tentang teknik variasi design (model)
2. Bagaimana menyatakannya
menyatakan dengan singkat. Dibuat dalam bahasa
pemrograman yang terstruktur
3. Bagaimana validitasnya
memenuhi kebutuhan yang diinginkan
perhitungan solusinya selalu benar untuk semua kemungkinan
input yang mungkin
4. Bagaimana menganalisanya
perbandingan dari waktu perhitungan dan banyaknya storage/
memori yang digunakan
5. Bagaimana menguji suatu program
fase debugging : proses eksekusi program yang mengkoreksi
kesalahan dalam bahasa pemrograman (logic dan syntax)
fase profiling : program sudah benar dan mengukur waktu
tempuh serta storage
Analisis Algoritma
Efisiensi
1. Waktu tempuh (running time), dipengaruhi oleh :
Banyaknya langkah
Besar dan jenis input data
Jenis operasi
Komputer dan kompilator
2. Jumlah memori yang digunakan
Kompleksitas waktu (Time complexity)
Sebuah fungsi F(N) yang diberikan untuk waktu tempuh dan atau
kebutuhan memori (storage) dengan ukuran N input data
2
LOGIKA ALGORITMA
Dini Sundani, ST., MMSI
Teorema
Jika f(n) = amnm + am-1nm-1+ ....+ a1n + a0 adalah polinomial tingkat m,
maka f(n) = O(nm)
f(n) merupakan “BIG OH” dari g(n) dengan notasi f(n) = O(g(n)) jika
dan hanya jika terdapat dua buah konstanta bilangan bulat C dan n0
sedemikian sehingga |f(n)| ≤ |g(n)| untuk setiap n ≥ n0
Contoh 1 :
1. f(n) = 3n5 + 4n4 + 10n2 , maka O(n5)
2. f(n) = 9n7 + 5n6 + 56 , maka O(n7)
3. f(n) = 8n9 , maka O(n9)
4. f(n) = n6 + 19 , maka O(n6)
5. f(n) = 25 , maka O(n0) = O(1)
Urutan dari Big Oh :
O(1) < O(log n) < O(n) < O(n log n) < O(n2) < O(n3) < O(2n)
Contoh 2 :
(1) ca+b
(2) for i 1 to n do
c a+b
(3) for i 1 to n do
for j 1 to n do
c a+b
repeat
repeat
Banyaknya Operasi + f(n) Big Oh
(1) 1 kali f(n) = 1 O(1)
(2) n kali f(n) = n O(n)
(3) n2 kali f(n) = n2 O(n2)
Contoh :
Algoritma penjumlahan 2 buah matriks berordo nxn
Set A[i,j], B[i,j], C[i,j] real
Untuk i 1 sampai n kerjakan
Untuk j1 sampai n kerjakan
C[i,j] A[i,j] + B[i,j]
Akhir j
Akhir i
3
LOGIKA ALGORITMA
Dini Sundani, ST., MMSI
Analisis :
1. Waktu tempuh
Jenis operasi yang digunakan : +
Banyaknya operasi : n2
2. Jumlah memori : 3 x 4n2 = 12n2
Asumsi : 1 elemen membutuhkan 4 byte
Total = 13n2
f(n) = 13n2
O(n2)
Keadaan Kompleksitas Waktu Algoritma
1. Worst case
Nilai maksimum dari f(n) untuk setiap input yang mungkin
2. Best case
Nilai minimum dari f(n) untuk setiap input yang mungkin
3. Average case
Nilai ekspektasi dari f(n)
Contoh :
Algoritma menentukan lokasi dari suatu elemen
(1) Set k:= 1; loc := 0
(2) Repeat langkah 3 dan 4 while loc := 0 dan k≤n
(3) If item := data(k) then set loc := k
(4) k := k+1
(5) If loc := 0 then write elemen tidak ada di array data
else write loc adalah lokasi dari item
(6) Exit
Analisis :
1. Bila elemen (item) yang dicari merupakan elemen terakhir dari
array atau tidak terdapat dalam array maka kompleksitas waktu
adalah worst case, f(n) = n, O(n)
2. Bila elemen (item) yang dicari merupakan elemen pertama dari
array maka kompleksitas waktu adalah best case, f(n) = 1, O(1)
3. Bila elemen yang dicari berada diantara elemen pertama dan
terakhir maka kompleksitas waktu adalah average case, banyak
elemen dalam array = n, maka probabilitas masing-masing elemen
= (n+1)/2, O(n)
Teknik Iteratif dan Teknik Rekursif
Teknik Iteratif
Teknik pembuatan algoritma dengan pemanggilan prosedur
beberapa kali atau hingga suatu kondisi tertentu terpenuhi
4
LOGIKA ALGORITMA
Dini Sundani, ST., MMSI
Teknik rekursif
Salah satu cara pembuatan algoritma dengan pemanggilan
dengan pemanggilan prosedur atau function yang sama
Perbedaan teknik iteratif dengan teknik rekursif
Teknik iteratif
Tidak ada variabel lokal baru
Program tidak sederhana
Teknik rekursif
Ada variabel lokal baru
Program nenjadi lebih sederhana
Contoh :
Function fak(n:integer) : integer
If n := 0 then fak := 1
else fak := n*fa(n-1)
Jika diberikan input = 6, maka
fak(6) = 6*fak(5)
fak(5) = 5*fak(4)
fak(4) = 4*fak(3)
fak(3) = 3*fak(2)
fak(2) = 2*fak(1)
fak(1) = 1*fak(0)
nilai awal
5