Professional Documents
Culture Documents
Tugas 1
ALGORITMA
Algoritma dibuat dengan tujuan agar dicapai penyelesaian masalah yang efektif
dan efisien. Efisiensi suatu algoritma dapat diketahui dengan menghitung running time,
T(n). Pendekatan yang digunakan adalah dengan cara menghitung banyaknya operasi
dasar dari suatu algoritma yang terjadi selama running time. Contoh kasus berikut ini
dapat memberi gambaran singkat bagaimana suatu algoritma bekerja untuk mencari
suatu solusi.
Masalah :
Terdapat susunan angka sebagai berikut .
8 4 12 2 6 10 14 1 3 5 7 9 11 13 15
Kemudian diberikan suatu angka, misalnya 5, untuk dicari pada susunan angka tersebut.
Pencarian dilakukan dengan metode sekuensial, metode binary, dan metode binary
tree.
1. Metode sekuensial
Algoritma pencarian sekuensial memiliki langkah-langkah sebagai berikut :
//input : data=(8,4,12,2,6,10,14,1,3,5,7,9,11,13,15) dan x
x←5
i←1
while i<=n and x≠data[i] do
i←i+1
Desain dan Analisis Algoritma 1-2
Tugas 1
const
data:array[1..15] of byte=(8,4,12,2,6,10,14,1,3,5,7,9,11,13,15);
begin
write('Masukkan angka yang ingin dicari : '); readln(x);
while (i<=15) and (x<>data[i]) do
i := i + 1;
if i<=15 then writeln (x,' ditemukan pada posisi ',i)
else writeln(x,' tidak ditemukan');
readln;
end.
Simulasi program
iterasi 1
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Data 8 4 12 2 6 10 14 1 3 5 7 9 11 13 15
x=5
iterasi 2
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Data 8 4 12 2 6 10 14 1 3 5 7 9 11 13 15
x=5
iterasi 3
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Data 8 4 12 2 6 10 14 1 3 5 7 9 11 13 15
x=5
iterasi 8
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Data 8 4 12 2 6 10 14 1 3 5 7 9 11 13 15
iterasi 9 x=5
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Desain dan Analisis Algoritma 1-3
Tugas 1
Data 8 4 12 2 6 10 14 1 3 5 7 9 11 13 15
x=5
iterasi 10
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Data 8 4 12 2 6 10 14 1 3 5 7 9 11 13 15
x=5
Analisis algoritmanya :
Pada metode sekuensial, dilakukan pencarian dari satu arah secara menyeluruh
sampai diperoleh data yang sama dengan x. Best case dari algoritma ini adalah ketika x
yang dicari terletak pada posisi pertama dari susunan angka. Maka Tbest(n) = 1.
Sedangkan worst case terjadi ketika x yang dicari terletak pada posisi terakhir dari
susunan angka. Maka Tworst(n) = n.
2. Metode binary
Algoritma pencarian binary memiliki langkah-langkah sebagai berikut :
//input : data=(8,4,12,2,6,10,14,1,3,5,7,9,11,13,15) dan x
x ← a
m ← (1+n)/2
i ← 1
while i<=m and (x≠data[i] or x≠data[n-i+1]) do
i←i+1
if i<=m then ‘x ditemukan’
else ‘tidak ditemukan’
//output : hasil pencarian x dalam data, ditemukan atau tidak
begin
write('Masukkan angka yang ingin dicari : '); readln(x);
m:=(1+n) div 2;
while (i<=m) and ((x<>data[i]) and (x<>data[n-i+1])) do
i := i + 1;
if i<=m then writeln (x,' ditemukan')
Desain dan Analisis Algoritma 1-4
Tugas 1
Simulasi program
iterasi 1
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Data 8 4 12 2 6 10 14 1 3 5 7 9 11 13 15
x=5 x=5
iterasi 2
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Data 8 4 12 2 6 10 14 1 3 5 7 9 11 13 15
x=5 x=5
iterasi 3
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Data 8 4 12 2 6 10 14 1 3 5 7 9 11 13 15
x=5 x=5
iterasi 4
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Data 8 4 12 2 6 10 14 1 3 5 7 9 11 13 15
x=5 x=5
iterasi 5
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Data 8 4 12 2 6 10 14 1 3 5 7 9 11 13 15
x=5 x=5
iterasi 6
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Data 8 4 12 2 6 10 14 1 3 5 7 9 11 13 15
Analisis algoritmanya :
Pada metode binary, dilakukan pencarian dari dua arah secara menyeluruh
sampai diperoleh data yang sama dengan x. Best case adalah ketika x yang dicari
terletak pada posisi pertama atau terakhir dari susunan angka. Maka Tbest(n) = 1.
Desain dan Analisis Algoritma 1-5
Tugas 1
Sedangkan worst case terjadi ketika x yang dicari terletak pada posisi paling tengah dari
susunan angka. Maka Tworst(n) = n/2.
Simulasi Program
iterasi 1 x=5
iterasi 3
8 8
4 12 4 12
x=5
2 6 10 14 2 6 10 14
1 3 5 7 9 11 13 15 1 3 5 7 9 11 13 15
iterasi 2
iterasi 4
8
8
x=5
4 12
4 12
2 6 10 14
2 6 10 14
1 3 5 7 9 11 13 15
1 3 5 7 9 11 13 15
x=5
Desain dan Analisis Algoritma 1-7
Tugas 1
A. Kesimpulan
1. Dari ketiga metode di atas, metode yang memiliki running time terbaik dalam
pencarian solusi adalah metode binary tree, karena memiliki Tworst(n)=log 2(n), yang
merupakan Tworst terkecil dari ketiga algoritma yang dibandingkan. Sehingga
metode binary tree adalah metode yang paling efisien.
2. Namun, pada metode binary tree, terlebih dahulu harus dilakukan pembuatan tree,
sehingga metode ini menggunakan memori yang jauh lebih besar jika dibandingkan
dengan metode sekuensial dan binary.