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
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.
input
output
algoritma
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. If ada=False
Contoh
A = {31,41 ,26,41 } key =26
1. Indeks=1 2. Ada= false
3. While 1 ≤ 4 and ada=False ( T and T) 1. If A[1]=26 (F)
2. Indeks=1+1=2
4. While 2 ≤ 4 and ada=False ( T and T) a. If A[2]=26 (F)
b. Indeks=2+1=3
5. While 3 ≤ 4 and ada=False ( T and T) c. If A[3]=26 (T)
i. Ada=true d. Indeks=3+1=4
6. While 4≤ 4 and ada=False ( 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
*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) (T and F) (1>0 ¿ 27>41)
d. A[2]=key=41
27 41 20 38
2. For j=3
a. Key=A[3]=20 b. i=j-1=3-1=2
c. while (i>0 ¿ A[2]>key) (T and T) (2>0 ¿ 41>20)
i. A[3]=A[2]=41 ii. i=2-1=1
d. while (i>0 ¿
A[1]>key) (T and T) (1>0 ¿ 27>20)
i. A[2]=A[1]=27 ii. i=1-1=0
e. while (i>0 ¿ A[0]>key) (F and F) (0>0 ¿ - >20)
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) (T and T) (3>0 ¿ 41>38)
i. A[4]=A[3]=41 ii. i=3-1=2
d. while (i>0 ¿
A[2]>key) (T and T) (2>0 ¿ 27>41)
27 41 41 38
27 27 41 38
20 27 41 38
e. A[3]=key= 38
Sehingga didapatkan urutan sebagai berikut
20 27 38 41
Kasus terburuk (