• Tidak ada hasil yang ditemukan

DESAIN and ANALISIS ALGORITMA ALGORITM

N/A
N/A
Protected

Academic year: 2018

Membagikan "DESAIN and ANALISIS ALGORITMA ALGORITM"

Copied!
14
0
0

Teks penuh

(1)

DESAIN & ANALISIS

ALGORITMA

PERTEMUAN 5 : ALGORITMA NON-REKURSIF (1)

(2)

2 2

Analisis Algoritma Non-rekursif:

1. Algoritma MaxElement

 Berikut adalah algoritma untuk mencari elemen terbesar dari

sekumpulan n bilangan:

ALGORITHM MaxElement (A[0..n-1])

//Input: Array A[0..n-1] dari bilangan real

//Output: Nilai dari elemen terbesar pada array A //Output: Nilai dari elemen terbesar pada array A max  A[0]

for i1 to n-1 do

if A[i] > max

max  A[i]

return max

 Ukuran input dari algoritma ini adalah jumlah elemen pada array,

yaitu n.

(3)

3

Algoritma MaxElement (lanjutan)

 Ada 2 operasi dalam loop: perbandingan A[i] >

max dan assignment max  A[i].

 Karena operasi perbandingan dieksekusi pada tiap

iterasi (dan operasi assignment tidak), maka

3

iterasi (dan operasi assignment tidak), maka

perbandingan dijadikan sebagai operasi dasar.

 Jumlah perbandingan pun tetap sama untuk semua

variasi input array berukuran n, sehingga tidak

(4)

4

Algoritma MaxElement (lanjutan)

 Misal C(n) adalah jumlah eksekusi operasi

perbandingan. Dalam tiap loop, terjadi 1 kali perbandingan. Ini dieksekusi sebanyak (n-1) kali. Sehingga, C(n) berjumlah:

)

(

1

)

(

1

)

(

1

1

n

n

n

C

n

C

n

i

(5)

5

Langkah Analisis Algoritma

Non-rekursif

 Tentukan parameter yang mengindikasikan ukuran input

 Tentukan operasi dasar algoritma (Petunjuk: biasanya ada

dalam loop terdalam)

 Periksa apakah jumlah eksekusi operasi dasar hanya

bergantung pada ukuran input. Jika tidak (artinya juga

bergantung pada faktor lain), maka perlu dilakukan analisis bergantung pada faktor lain), maka perlu dilakukan analisis worst case, average case, dan best case.

 Tentukan sebuah persamaan jumlah dari eksekusi operasi

dasar algoritma.

 Dengan menggunakan rumus standar dan aturan manipulasi

(6)

6

2. Algoritma Pengecekan Keunikan

Element

 Algoritma ini mengecek apakah semua elemen

pada sebuah array adalah distinct (berbeda

antara elemen yang satu dengan yang lain). Berikut algoritmanya:

ALGORITHM UniqueElement(A[0..n-1])

ALGORITHM UniqueElement(A[0..n-1])

//Input: Array A[0..n-1]

//Output: “true” jika semua elemen pada A adalah //unik/distinct atau “false” jika sebaliknya

for i0 to n-2 do

for ji+1 to n-1 do

if A[i] = A[j] return false

(7)

7

Algoritma Pengecekan Keunikan

Element (lanjutan)

 Ukuran input: jumlah elemen pada array, yaitu n.

 Karena loop terdalam hanya memiliki satu operasi (yaitu

perbandingan 2 elemen), maka itu adalah operasi dasar algoritma.

 Algoritma ini memiliki worst case dan best case. Worst

case- Algoritma ini memiliki worst case dan best case. Worst

case-nya adalah ketika terjadi jumlah perbandingan yang paling banyak di antara berbagai kombinasi input berukuran n.

 Ada 2 jenis input worst case:

 Input yang tidak memiliki elemen yang sama (artinya semua elemen unik)

(8)

8

Algoritma Pengecekan Keunikan

Element (lanjutan)

 Pada kasus worst case, operasi dasar akan

dieksekusi sebanyak looping j (mulai i+1 s.d. n-1), sedangkan looping j sendiri dieksekusi sebanyak

looping i (mulai 0 s.d. n-2), sehingga Cworstworst(n):

(9)

9

Algoritma Pengecekan Keunikan

Element (lanjutan)

 Nilai juga dapat dihitung lebih cepat

dengan cara sebagai berikut:

2  

 Dapat disimpulkan bahwa dalam worst case,

algoritma ini akan membandingkan n(n-1)/2

(10)

10

3. Algoritma Pencarian Digit Biner dari

Bilangan Desimal

 Algoritma berikut mencari jumlah digit biner dari

bilangan integer desimal positif:

ALGORITHM Binary(n)

//Input: Integer desimal positif n

//Output: Jumlah digit biner dari bilangan n

count  1

while n > 1 do

count  count + 1 n 

(11)

11

Algoritma Pencarian Digit Biner dari

Bilangan Desimal (lanjutan)

 Operasi yang paling banyak dieksekusi bukan

terletak di dalam loop while, tetapi pada

perbandingan n > 1, yang menentukan apakah isi loop akan dieksekusi atau tidak.

 Karena nilai n berkurang sekitar separuhnya pada

tiap iterasi, maka jumlah eksekusi operasi dasar

adalah sekitar log2 n.

 Rumus tepatnya untuk jumlah perbandingan tersebut

adalah

(12)

12

Latihan

1. Hitunglah deret berikut:

a) 1 + 3 + 5 + 7 + … + 999

b) F

1

3

1 n

i

1

n

c) F

d) F

1 3

n

i

i

n i

n

j

ij

(13)

13

Latihan (lanjutan)

2. Carilah derajat pertumbuhan dari deret berikut:

a) F

b) F

1 

0

2 2

) 1 (

n

i

i

1 1 (  ) n i

j i

b) F

c) F

i0 j0

1 2

2

lg

n

i

(14)

14

Latihan (lanjutan)

3. ALGORITHM Mystery(n)

//Input: Integer non-negatif n

S  0

for i1 to n do S  S + i * i

return S return S

a. Apa yang dihitung oleh algoritma ini?

b. Apa operasi dasarnya dan berapa kali operasi dasar tersebut dilakukan?

Referensi

Dokumen terkait

Pada remaja wanita dengan rata-rata asupan besi 10-14 mg/hari, nampaknya dengan asupan tersebut sudah dapat memenuhi kebutuhan zat besi agar tidak terjadi deplesi, meskipun

Tekanan kedelai impor terhadap industri atau UMKM (usaha mikro kecil dan menengah) sktor tempe dan tahu mulai terjadi ketika pemerintah menghapus tata niaga kedelai yang

Hasil penelitian menunjukkan dari uji regresi linear sederhana berasal dari 1 variabel bebas yaitu Budaya Organisasi terhadap Kinerja Pegawai di Dinas Pekerjaan Umum Dan

Didalam menganalisis pelaksanaan musyawarah Perencanaan Partisipatif Pembangunan Masyarakat Desa penulis menggunakan metode ZOPP dalam menentukan dan mengukur parameter dalam

nasabah yang dilakukan melalui bank. Dilihat dari sisi debitur maka adanya ketentuan ini sebenarnya dapat mewujudkan keseimbangan posisi tawar diantara para pihak

menunjukkan bahwa perlakuan dengan menggunakan bibit IV dengan komposisi lumpur yang berasal dari lumpur selokan tahu 50%, lumpur RPH 25 % dan lumpur sungai Badung 25 %

Hasil tugas dikumpulkan tepat pada waktunya, uraian materi sedikit kurang lengkap, menguraikan tentang perangkat lunak untuk mengakses internet, mengidentifikasi content dari

Pusat Kegiatan Lokal (PKL) yang merupakan kawasan kabupaten yang fungsinya melayani kegiatan skala kabupaten/kota atau beberapa kecamatan.Terdapatnya dua Kecamatan di