Tugas Resume Analisis Algoritma
Tugas Resume Analisis Algoritma
(Muhammad ammar)
Apa itu algoritma?
Prosedur komputasional yang terdefinisi dengan baik yang membutuhkan nilai (himpunan nilai)
sebagai input dan menghasilkan nilai (himpunan nilai) sebagai output
Alat bantu (tools) menyelesaikan masalah koputasional yang terdefinisi dengan baik (well
defined composesional problem)
Metode penyelesaian yang logis dan wajib benar (correctness) sesuai keinginan masalah (desired
solution)
Algoritma adalah prosedur atau alat bantu yang harus logis. Sifatnya step by step.
Pseudocode : Code untuk memudahkan pemahaman algoritma yang dapat di transformasikan
kedalam berbagai bahasa pemrograman.
Kompleksitas algoritma : analisis kebutuhan dari algoritma khususnya waktu komputasi dan
kapasitas memori
algoritma
input
masalah
output
Contoh masalah komputasional
masalah pencarian data
Input : Barisan n bilangan Asli (a1,a2,…,an) dalam larik A dan sebuah bilangan key yang ingin
di cari.
Output : lokasi key dalam A. Jika key tidak di temukan maka tambahkan key sebagai unsur
terakhir.
Contoh :
Input : Barisan bilangan A = {31,41,59,26,41,58} key =26
Output : indeks dari posisi key. Untuk kasus ini key=26
Algoritma pencarian mengembalikan nilai(unsur) dari indeks posisi key adalah 4
Masalah pencarian data (searching problem)
Input : barisan n bilangan asli (a1, a2 ,… ,an ) dalam larik A dan sebuah bilangan key yang dicari
Output : lokasi key dalam A. jika key tidak ditemukan dalam A . tambahkan key sebagai unsure
tersebut.
ALGORITMA LINEAR SEARCHING (NAÏVE)
a.
Telusuri seluruh indeks A untuk membandingkan apakah unsure dalam indeks yang di
telusuri sama dengan key
b.
Jika key= unsur dalam indeks, algorima berhenti. Jika key tidak di temukan maka indeks
terakhir dari A, tambahkan key sebagai unsure terkahir dari indeks terkahir
c.
Algoritma berhenti dan kembalikan nilai indeks dari A
LINEAR SEARCH(A, key)
1.
Indeks ← 1;
2.
Ada ← False;
3.
Mengecek key dalam A[1…length[A]]
4.
While indeks ≤ length[A] and ada=False
5.
If [indeks] = key
6.
Then ada=true;
7.
Indeks ← indeks+1;
8.
9.
If ada=False
Then indeks ← length[A] + 1;
10. Return indeks-1
Contoh
A = {31,41 ,26,41 } key =26
1. Indeks=1
2. Ada= false
3. While 1 ≤ 4 and ada=False
1. If A[1]=26 (F)
2. Indeks=1+1=2
4. While 2 ≤ 4 and ada=False
a. If A[2]=26 (F)
b. Indeks=2+1=3
5. While 3 ≤ 4 and ada=False
c. If A[3]=26 (T)
i. Ada=true
d. Indeks=3+1=4
6. While 4≤ 4 and ada=False
( T and T)
( T and T)
( T and T)
( T and F)
7. If ada=false (F)
Return 3
Kesipulannya berdasarkan data yang ada dalam A key=26 terdapat diindeks 3
ALGORITMA INSENTION-SORT
Insention sort (A)
1. For J ← 2 to length [A]
2. Key ← 2 [j]
3. Sisipkan A[j] kedalam barisan terurut A[1…j-1]
4. I ← j – 1
5. While (i > 0 Λ A[i] > key)
6. A [ i + 1] ← A [i]
7. i ← i – 1
8. A [ i+ 1] ← key
*while di lakukan maksimal sebanyak j ( j=jumlah deret) untuk mengontrol perbandingannya
masih ada atau tidak.
Contoh
A = {27,41 ,20,38 }
1. For j=2
a. Key=A[2]=41
b. i=j-1=2-1=1
c. while (i>0 ¿ A[1]>key)
d. A[2]=key=41
27
41
2. For j=3
a. Key=A[3]=20
b. i=j-1=3-1=2
c. while (i>0 ¿ A[2]>key)
i.
A[3]=A[2]=41
ii.
i=2-1=1
d. while (i>0
(T and F)
(2>0
27
¿
41>20)
41
41
38
¿
e. while (i>0 ¿ A[0]>key)
f. A[1]=key=20
3. For j=4
a. Key=A[4]=38
b. i=j-1=4-1=3
c. while (i>0 ¿ A[3]>key)
i.
A[4]=A[3]=41
ii.
i=3-1=2
A[2]>key)
27>41)
38
(T and T)
(1>0
¿
27
d. while (i>0
¿
20
A[1]>key)
(T and T)
i.
A[2]=A[1]=27
i=1-1=0
ii.
(1>0
27
(F and F)
(T and T)
41
(0>0
20
¿
27
(T and T)
27
(2>0
¿
27>41)
¿
38
- >20)
41
(3>0
20
¿
27>20)
38
41>38)
41
41
e. A[3]=key= 38
Sehingga didapatkan urutan sebagai berikut
20
27
n
n
j=1
j=1
n
38
T ( j)=n+3(n−1)+ ∑ t j +2 ∑ t j −1
n
=n+3( n−1)+ ∑ t j +2
j=1
(∑
j=2
t j −( n−1)
)
n
=2 n+3 ∑ t j−1
j=1
tj
Kasus terbaik (
=1 terjadi satu kali perulangan)
n
T ( j)=2 n+3 ∑ 1−1
j=1
=5n−4
Kasus terburuk (
tj
=j
terjadi perulangan sebanyak j)
n
T ( j)=2 n+3 ∑ j−1
j=1
=2n+3
(n(2 n+1) )−1
3 n2 3 n
=2 n+
+ −1
2
2
2
3n 7n
=
+ −1
2
2
41
(Muhammad ammar)
Apa itu algoritma?
Prosedur komputasional yang terdefinisi dengan baik yang membutuhkan nilai (himpunan nilai)
sebagai input dan menghasilkan nilai (himpunan nilai) sebagai output
Alat bantu (tools) menyelesaikan masalah koputasional yang terdefinisi dengan baik (well
defined composesional problem)
Metode penyelesaian yang logis dan wajib benar (correctness) sesuai keinginan masalah (desired
solution)
Algoritma adalah prosedur atau alat bantu yang harus logis. Sifatnya step by step.
Pseudocode : Code untuk memudahkan pemahaman algoritma yang dapat di transformasikan
kedalam berbagai bahasa pemrograman.
Kompleksitas algoritma : analisis kebutuhan dari algoritma khususnya waktu komputasi dan
kapasitas memori
algoritma
input
masalah
output
Contoh masalah komputasional
masalah pencarian data
Input : Barisan n bilangan Asli (a1,a2,…,an) dalam larik A dan sebuah bilangan key yang ingin
di cari.
Output : lokasi key dalam A. Jika key tidak di temukan maka tambahkan key sebagai unsur
terakhir.
Contoh :
Input : Barisan bilangan A = {31,41,59,26,41,58} key =26
Output : indeks dari posisi key. Untuk kasus ini key=26
Algoritma pencarian mengembalikan nilai(unsur) dari indeks posisi key adalah 4
Masalah pencarian data (searching problem)
Input : barisan n bilangan asli (a1, a2 ,… ,an ) dalam larik A dan sebuah bilangan key yang dicari
Output : lokasi key dalam A. jika key tidak ditemukan dalam A . tambahkan key sebagai unsure
tersebut.
ALGORITMA LINEAR SEARCHING (NAÏVE)
a.
Telusuri seluruh indeks A untuk membandingkan apakah unsure dalam indeks yang di
telusuri sama dengan key
b.
Jika key= unsur dalam indeks, algorima berhenti. Jika key tidak di temukan maka indeks
terakhir dari A, tambahkan key sebagai unsure terkahir dari indeks terkahir
c.
Algoritma berhenti dan kembalikan nilai indeks dari A
LINEAR SEARCH(A, key)
1.
Indeks ← 1;
2.
Ada ← False;
3.
Mengecek key dalam A[1…length[A]]
4.
While indeks ≤ length[A] and ada=False
5.
If [indeks] = key
6.
Then ada=true;
7.
Indeks ← indeks+1;
8.
9.
If ada=False
Then indeks ← length[A] + 1;
10. Return indeks-1
Contoh
A = {31,41 ,26,41 } key =26
1. Indeks=1
2. Ada= false
3. While 1 ≤ 4 and ada=False
1. If A[1]=26 (F)
2. Indeks=1+1=2
4. While 2 ≤ 4 and ada=False
a. If A[2]=26 (F)
b. Indeks=2+1=3
5. While 3 ≤ 4 and ada=False
c. If A[3]=26 (T)
i. Ada=true
d. Indeks=3+1=4
6. While 4≤ 4 and ada=False
( T and T)
( T and T)
( T and T)
( T and F)
7. If ada=false (F)
Return 3
Kesipulannya berdasarkan data yang ada dalam A key=26 terdapat diindeks 3
ALGORITMA INSENTION-SORT
Insention sort (A)
1. For J ← 2 to length [A]
2. Key ← 2 [j]
3. Sisipkan A[j] kedalam barisan terurut A[1…j-1]
4. I ← j – 1
5. While (i > 0 Λ A[i] > key)
6. A [ i + 1] ← A [i]
7. i ← i – 1
8. A [ i+ 1] ← key
*while di lakukan maksimal sebanyak j ( j=jumlah deret) untuk mengontrol perbandingannya
masih ada atau tidak.
Contoh
A = {27,41 ,20,38 }
1. For j=2
a. Key=A[2]=41
b. i=j-1=2-1=1
c. while (i>0 ¿ A[1]>key)
d. A[2]=key=41
27
41
2. For j=3
a. Key=A[3]=20
b. i=j-1=3-1=2
c. while (i>0 ¿ A[2]>key)
i.
A[3]=A[2]=41
ii.
i=2-1=1
d. while (i>0
(T and F)
(2>0
27
¿
41>20)
41
41
38
¿
e. while (i>0 ¿ A[0]>key)
f. A[1]=key=20
3. For j=4
a. Key=A[4]=38
b. i=j-1=4-1=3
c. while (i>0 ¿ A[3]>key)
i.
A[4]=A[3]=41
ii.
i=3-1=2
A[2]>key)
27>41)
38
(T and T)
(1>0
¿
27
d. while (i>0
¿
20
A[1]>key)
(T and T)
i.
A[2]=A[1]=27
i=1-1=0
ii.
(1>0
27
(F and F)
(T and T)
41
(0>0
20
¿
27
(T and T)
27
(2>0
¿
27>41)
¿
38
- >20)
41
(3>0
20
¿
27>20)
38
41>38)
41
41
e. A[3]=key= 38
Sehingga didapatkan urutan sebagai berikut
20
27
n
n
j=1
j=1
n
38
T ( j)=n+3(n−1)+ ∑ t j +2 ∑ t j −1
n
=n+3( n−1)+ ∑ t j +2
j=1
(∑
j=2
t j −( n−1)
)
n
=2 n+3 ∑ t j−1
j=1
tj
Kasus terbaik (
=1 terjadi satu kali perulangan)
n
T ( j)=2 n+3 ∑ 1−1
j=1
=5n−4
Kasus terburuk (
tj
=j
terjadi perulangan sebanyak j)
n
T ( j)=2 n+3 ∑ j−1
j=1
=2n+3
(n(2 n+1) )−1
3 n2 3 n
=2 n+
+ −1
2
2
2
3n 7n
=
+ −1
2
2
41