pertemuan 10 algoritma dan hubungan rekurensi_nuri_bag2013 [compatibility mode]

16
Pertemuan 10 Algoritma dan Hubungan Rekurensi

Upload: arif-budiman

Post on 24-Oct-2015

40 views

Category:

Documents


3 download

DESCRIPTION

pertemuan 10

TRANSCRIPT

Page 1: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

Pertemuan 10Algoritma dan Hubungan Rekurensi

Page 2: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

Algoritmaadalah suatu langkah-langkah logis untuk menyelesaikanmasalah. Bedanya kalau algoritma setiap langkahdifokuskan pada sistem komputer dan data.

Beberapa hal yang harus dipahami dalam mencari algoritmaantara lain:

� Masalah seperti apa yang hendak diselesaikan?� Gagasan apa yang ada pada algoritma tersebut?� Gagasan apa yang ada pada algoritma tersebut?� Berapa lama yang diperlukan untuk menyelesaikan

masalah?� Berapa jumlah data yang dapat ditangani oleh algoritma

tersebut?Untuk mengetahui seberapa besar kualitas suatu algoritma,

dinyatakan dengan notasi-O besar ( big O-notation) untukmenyatakan tingakat kekomplekan suatu algoritma.

Page 3: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

Notasi O-besarMenyatakan kelompok kompleksitas suatu algoritma ataujumlah operasi yang dilakukan oleh algoritma.Tabel Kompleksitas denganNotasi O-besar Contoh:

Kelompok Algoritma Nama Jenis Algoritma KompleksitasKelompok Algoritma Nama

O(1)

O(log n)

O(n)

O(nlogn)

O(n2)

O(n3)

O(2n)

O(n!)

Konstan

Logaritmik

Linier

N log n

Kuadratik

Kubik

Eksponensial

Faktorial

Jenis Algoritma Kompleksitas

Linier search

Binary search

Bubble sort

Selection sort

Insertion sort

Merge sort

Quick sort

Heap sort

O(n)

O(log n)

O(n2)

O(n2)

O(n2)

O(n log n)

O(n log n)

O(n log n)

Page 4: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

Definisi:T(n) = O(f(n)) ( T(n) adalah O(f(n)) yang artinya T(n) berordepaling besar f(n)) bila terdapat C dan n0 sedemikian hingga:

T(n) ≤ C(f(n))

Untuk n ≥ n0, artinya jika sebuah algoritma mempunyai waktuasimtotik O(f(n)), maka jika n dibuat semakin besar waktu yangdibutuhkan tidak akan pernah melebihi suatu tetapan C dikalif(n). Jadi f(n) adalah batas atas dari T(n) untuk n yang besar.T(n) dikatakan berorde paling besar f(n).

Page 5: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

Penjelasan masing-masing kelompok algoritma sebagaiberikut:O(1) berarti waktu untuk menjalankan adalah konstan, artinya

tidak bergantung pada ukuran data masukan n. Ini berartiwaktu tetap sama meskipun n menjadi dua kali semula ataulebih.

O(log n) berarti perubahan waktu akan lebih kecil dariO(log n) berarti perubahan waktu akan lebih kecil dariperubahan masukan n. Algoritma yang masuk dalamkelompok ini adalah algoritma yang memecahkan persoalanbesar dengan membagi masalah besar menjadi masalahyang kecil yang berukuran sama. Cont: Binary search. Disini bilangan pokok/basis log tidak terlalu penting karenasemua fungsi algoritmik meningkat 2 kali semula jika ndinaikkan menjadi n2.

Page 6: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

O(n) algoritma yang waktu bergantung kepada n secara linier, artinyajika n dinaikkan sebesar x kali maka waktu menjalankan algoritmaitu juga naik sebesar x kali. Umumnya algoritma pencarianberuntun

O(n log n) Waktu pelaksanaan n log n terdapat pada algoritma yangmemecahkan masalah menjadi beberapa bagian yang lebih kecildimana setiap persoalan diselesaikan secara independen danakhirnya solusi masing-masing digabung. Cont teknik bagi dan.akhirnya solusi masing-masing digabung. Cont teknik bagi dan.Bila n dinaikkan menjadi 2 kali maka n log n meningkat tidaksampai dua kalinya, tetapi kalau n dinaikkan lebih dari 10 kalimaka n log n naik lebih cepat dari kenaikkan n

algoritma ini akan berjalan lebih lambat dari algoritma liniermaupun logaritmik, sehingga hanya praktis untuk persoalan yangberukuran kecil. Bila n dinaikkan dua kali maka waktupelaksanaan algoritma meningkat menjadi empat kali karenaprose setiap masukkannya dalam dua buah kalang bersarang.

Page 7: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

memproses setiap masukkan dalam tiga buah kalangbersarang, misal perkalian matrik. Algoritma ini akanmenjadi lebih lambat dari algoritma kuadratik meskipun nkecil atau besar. Bila n dinaikkan dua kali maka waktupelaksanaan algoritma meningkat menjadi delapan kali.

O(2n) algoritma ini berjalan lebih lambat dari semua algoritmasebelumnya, khususnya untuk n besar. Bila n dinaikkan duakali, waktu pelaksanaan menjadi kuadrat kali tetapi jika n=kali, waktu pelaksanaan menjadi kuadrat kali tetapi jika n=100, maka waktu pelaksanaannya adalah 1000000 samadengan algoritma .

O(n!) jenis ini memproses setiap masukkan danmenghubungkannya dengan n-1 masukkan lainnya, misalalgoritma persoalan pedagang keliling. Bila n = 5 makawaktu pelaksanaan algoritma 120. Bila n dinaikkan dua kali,maka waktu pelaksanaan menjadi 2n!

Page 8: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

Algoritma Pencarian1. Pencarian beruntun (sequential search)2. Pencarian Biner (binary search)

Pencarian beruntun pada array yang tidak terurutProses dimulai dari data pertama sampai data terakhir / data ke-nBerikut ini algoritmanya:Input ( cari) { meminta data nilai yang akan dicari}Input ( cari) { meminta data nilai yang akan dicari}

I=1 { indeks array dimulai dari 1}while (I<n) and (A[I] ≠ cari) do

I = I+1end whileif A[I] = cari then

output (‘Data berada di index nomor’, I)else output (‘Data tidak ditemukan’)endif

Page 9: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

Pencarian beruntun pada Array yang sudah TerurutKasus terburuk dari pencarian beruntun kalau data tidak ditemukan

atau terletak paling akhir. Kalau data sudah terurut maka akanlebih baik kalau proses pencarian dihentikan apabila nilai datayang dibandingkan sudah lebih besar dari nilai data yang dicari.

Berikut ini algoritmanya:Input ( cari) { meminta data nilai yang akan dicari}Input ( cari) { meminta data nilai yang akan dicari}

I=1 { indeks array dimulai dari 1}while (I<n) and (A[I] < cari) do

I = I+1end whileif A[I] = cari then

output (‘Data berada di index nomor’, I)else output (‘Data tidak ditemukan’)endif

Page 10: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

Pencarian BinerDilakukan untuk memperkecil jumlah operasi perbandingan yang harus dilakukanantara data yang dicari dengan data yang ada di dalam tabel, khususnya untuk datayang besar.Prinsip dasarnya membagi 2 data sampai data ditemuakan.Algoritmanya:Input (cari) {meminta niali data yang akan dicari}Batasatas = 1 {indeks array dimulai dari 1}Batasbawah = nKetemu = falseKetemu = falseWhile (batasatas < batasbawah) and (not ketemu) doTengah = (batasatas+batasbawah)div2If A[tengah] = cari then ketemu = trueelse if (A[tengah] <cari) then { cari dibagian kanan}

batasatas = tengah + 1else batasbawah = tengah-1 {cari dibagian kiri}endifendif

endwhile

Page 11: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

if (ketemu) thenoutput (‘ data berada di index nomor’, tengah)

else output (‘data tidak ditemukan’)endif

Algoritma PengurutanYang akan dibahas meliputi bubble sort, selection sort, daninsertion sort1. Bubble Sort

menggunakan prinsip kerja gelembung udara

Page 12: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

Algoritma Bubble sortFor I = 1 to (n-1) do

for J = N downto (I+1) doif data [J] < data [J-1] then

Bubble = data [J]data [J] = data [J-1]data [J] = data [J-1]data [J-1] = bubble

endifendfor

endfor

Page 13: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

2. Selection Sortsalah satu metode pengurutan berdasarkan prioritas antrian.

Algoritma Selection SortFor I = 1 to (n-1) do

for J = (I+1) to N doif data [J] < data [kecil] then

kecil = Jkecil = Jendif

endforsementara = data[I]

data[I] = data[kecil]data[kecil] = sementara

endfor

Page 14: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

3. Insertion SortMetode ini dilakukan dengan penyisipan nilai data untuk suatu aarayA yang tidak terurut ke dalam suatu tempat kosong C danmemastikan nilai data C selalu dalam keadaan terurut.

Algoritma Insertion sortFor I = 2 to N do

sementara = data[I]j = I – 1

while (sementara < data[J]) and (J>1) dodata [J+1] = data [J]data [J+1] = data [J]J = J – 1

endwhileif sementara ≥ data[J] then

data[J+1] = sementaraelse data [J+1] = data [J]

data [J] = sementaraendif

endfor

Page 15: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

Hubungan RekurensiSebuah hubungan rekurensi untuk urutan a0, a1,…adalahsebuah persamaan yang menghubungkan a0 dengan sukutertentu pendahulunya a0,a1,…,an-1. Kondisi awal untukurutan a0,a1,… secara eksplisit memberikan nilai kepadasejumlah suku-suku tertentu dalam urutan itu.Rekurensi adalah proses perulangan yaitu memanggildirinya sendiri (fungsi/prosedur) dengan parameter yangdirinya sendiri (fungsi/prosedur) dengan parameter yangberbeda, sampai pengulangan berhenti.Cara lain menyelesaikan rekurensi adalah:1. Memecahkan masalah yang besar menjadi dua

submasalah.2. Submasalah tersebut diselesaikan dengan cara yang

sama untuk memecahkan masalah yang besartersebut.

Page 16: Pertemuan 10 Algoritma Dan Hubungan Rekurensi_NURI_BAG2013 [Compatibility Mode]

Permasalahan yang menggunakan metode rekurendiantaranya:

1. Faktorial2. Fibonanci3. Menara Hanoi