Anda di halaman 1dari 14

MAKALAH

ALGORITMA DEVIDE & CONQUER


“ Peranc. & Analisis Algoritma”

Kelompok 10 (3IA23) :
Raehan Muh. Fauzin (55418742)
Nur Handrian Cahyadi (55418413)

UNIVERSITAS GUNADARMA-J
TEKNIK INFORMATIKA
2020
DAFTAR ISI
Definisi Algoritma Devide and Conquer......................................................................................3
Problem Yang Bisa Diselesaikan Algoritma Devide and Conquer ...........................................3
MinMaks ......................................................................................................................................4
Sorting ..........................................................................................................................................6
Closest Pair .................................................................................................................................11
Perpangkatan ..............................................................................................................................12
Kesimpulan ...................................................................................................................................13
Daftar Pustaka .............................................................................................................................14
Definisi Algoritma Devide and Conquer
Divide and Conquer dulunya adalah strategi militer yang dikenal dengan nama divide ut
imperes. Sekarang strategi tersebut menjadi strategi fundamental di dalam ilmu komputer dengan
nama Divide and Conquer.
Divide membagi persoalan menjadi beberapa sub-masalah yang memiliki kemiripan
dengan persoalan semula namun berukuran lebih kecil (idealnya berukuran hampir sama),
Conquer (solve) menyelesaikan masing-masing sub-masalah (secara langsung atau secara
rekursif). Combine mengabungkan solusi masing-masing sub-masalah sehingga membentuk
solusi persoalan semula.
Obyek persoalan yang dibagi menjadi masukan (input) atau instances persoalan yang
berukuran n seperti :
- tabel (larik)
- matriks
- eksponen,
- dll, bergantung persoalannya.
Tiap-tiap sub-masalah mempunyai karakteristik yang sama (bertipe sama) dengan
karakteristik masalah asal sehingga metode Divide and Conquer lebih natural diungkapkan
dengan skema rekursif.
Skema Umum Algoritma Divide and Conquer

Problem Yang Bisa Diselesaikan Algoritma Devide and Conquer


Masalah yang bisa diselesaikan algoritma devide and conquer adalah :
- Mencari minmaks
- Mencari pasangan titik yang jaraknya terdekat (Closest Pair)
- Pengurutan (Sorting)
- Perpangkatan
MinMaks Problem
Algoritma Pengurutan Secara Devide and Conquer (Sorting)
A. Merge Short
Ide dari merge short

Algoritma untuk kasus n = 1, maka tabel A sudah terurut dengan sendirinya (langkah SOLVE).
Untuk kasus n > 1, maka :
- DIVIDE: bagi tabel A menjadi dua bagian, bagian kiri dan bagian kanan, masing-masing
bagian berukuran n/2 elemen.
- CONQUER: Secara rekursif, terapkan algoritma D-and-C pada masing-masing bagian.
- MERGE: gabung hasil pengurutan kedua bagiaehingga diperoleh tabel A yang terurut.
Contoh 4.3. misalkan tabel A berisi elemen-elemen berikut :
4 12 23 9 21 1 5 2
DIVIDE,CONQUER dan SOLVE:
4 12 23 9 21 1 5 2
4 12 23 9 21 1 5 2
4 12 23 9 21 1 5 2
4 12 23 9 21 1 5 2

MERGE:
4 12 9 23 1 21 2 5
4 9 12 23 1 2 5 21
1 2 3 5 9 12 21 23

Proses merge :
B. Insertion sort
Selain menggunakan orosedur Mergeyang sama seperti pada Merge Sort, kita dapat
mengganti Merge dengan prosedur penyisipan sebuah elemen pada table yang sudah
terurut
Contoh 4.4. Misalkan tabel A berisi elemen-elemen berikut:
4 12 23 9 21 1 5 2
DIVIDE, CONQUER, dan SOLVE:
4 12 3 9 1 21 5 2
4 12 3 9 1 21 5 2
4 12 3 9 1 21 5 2
4 12 3 9 1 21 5 2
4 12 3 9 1 21 5 2
4 12 3 9 1 21 5 2
4 12 3 9 1 21 5 2
4 12 3 9 1 21 5 2
4 12 3 9 1 21 5 2

MERGE:
4 12 3 9 1 21 2 5
4 12 3 9 1 2 5 21
4 12 3 9 1 2 5 21
4 12 3 1 2 5 9 21
4 12 1 2 3 5 9 21
4 1 2 3 5 9 12 21
1 2 3 4 5 9 12 21
C. Quick Short
Ditemukan oleh Tony Hoare tahun 1959 dan dipublikasikan tahun 1962. Termasuk pada
pendekatan sulit membagi, mudah menggabung (hard split/easy join).
Tabel A dibagi (istilahnya: dipartisi) menjadi A1 dan A2 sedemikian sehingga elemen-
elemen A1 elemen-elemen A2.

Partisi: 4 2 3 1 A1 A2 9 21 5 12

Sort: A1 1 2 3 4 A2 5 9 12 21

Combine: 1 2 3 4 4 9 12 21 A
Terdapat beberapa varian Algoritma Quicksort. Versi orisinal adalah dari Hoare seperti di
bawah ini:
i. Teknik mem-partisi tabel:(i) pilih x{ A[1], A[2], ..., A[n] } sebagai pivot
ii. pindai tabel dari kiri sampai ditemukan A[p] x
iii. pindai tabel dari kanan sampai ditemukan A[q] x
iv. pertukarkan A[p] A[q]
v. ulangi (ii), dari posisi p + 1, dan (iii), dari posisi q–1 , sampai kedua pemindaian
bertemu di tengah tabel (pq)
D. Selection Short
Teknik pengurutan ( dari nilai terkecil sampai dengan nilai terbesar ) dengan cara
memilih emelen terkecil, lalu membandingkan & menukarnya dengan elemen data
awal,seterusnya hingga terurut. Contoh
Closest Pair
Persoalan (problem): Diberikanhimpunantitik, P, yang terdiridarin buahtitik, (xi, yi),
padabidang2-D. Tentukan jarak terdekat antara dua buah titik di dalam himpunan P.

- Hitung jarak setiap pasang titik. Ada sebanyak C (n, 2) = n(n –1)/2 pasangan titik.
- Pilih pasangan titik yang mempunyai jarak terkecil.
- Kompleksitas algoritma adalah O(n2).
Asumsi: n = 2k dan titik-titik diurut berdasarkan absis (x). AlgoritmaClosest Pair:
1. SOLVE: jikan = 2, maka jarak kedua titik dihitung langsung dengan rumus Euclidean.
2. DIVIDE: Bagi himpunan titik kedalam dua bagian, Pleft dan Pright, setiap bagian
mempunyai jumlah titik yang sama.
3. CONQUER: Secararekursif, terapkan algoritma D-and-C pada masing-masing bagian.
4. Pasangan titik yang jarak nya terdekat ada tiga kemungkinan letaknya :
a. Pasangan titik terdekat terdapat di bagian PLeft.
b. Pasangan titik terdekat terdapat di bagian PRight
c. Pasangan titik terdekat dipisahkan oleh garis batas L, yaitu satu titik di PLeft dan satu
titik di PRight
Jika kasusnya adalah (c), maka lakukan tahap COMBINE untuk mendapatkan jarak
dua titik terdekat sebagai solusi persoalan semula.
Perpangkatan
Perpangkatan an. Misalkan a ∈ R dan n adalah bilangan bulat tidak negatif: a n =
a×a×...×a (nkali), jika n>0 = 1, jika n = 0
Penyelesaian dengan Divide and Conquer Algoritma menghitung a n:
1. Untuk kasus n=0,maka an =1
2. Untuk kasus n > 0, bedakan menjadi dua kasus lagi: (i) jika n genap, maka a n = an/2 ⋅ a n/2
(ii) jika n ganjil, maka a n = an/2 ⋅ a n/2 ⋅ a
Menghitung 316 dengan metode Divide and Conquer:
316 =38 ⋅38
=(38 ) 2
= ((34 )2 ) 2
= (((32 ) 2 ) 2 ) 2
= ((((31 ) 2 ))2 ) 2 ) 2
= ((((30 ) 2 ⋅ 3)2 ) 2 ) 2 ) 2
= ((((1)2 ⋅ 3)2 ) 2 ) 2 ) 2
= ((((3)2 ))2 ) 2 ) 2
= (((9)2 ) 2 ) 2
= (81) 2 ) 2
= (6561)2
= 43046721
Kesimpulan

Algoritma devide and qonquer di adaptasi dari strategi perang yang kini sudah menjadi
strategi di fundamental dalam ilmu computer.
Algoritma ini dibagi menjadi 3 tahap yaitu pertama devide ( membagi ) kedua qonquer (
mengatasi ) dan combine ( menggabungkan ).
Algoritma devide and qonuer itu memecahkan masalah dengan membagi menjadi beberapa
bagian atau di bagi menjadi beberapa sub bagian.
Algoritma devide and qonquer bisa memecahkan masalah seperti minmaks, sorting,
perpangkatan dan juga closest pair.
DAFTAR PUSTAKA
Munir, Renaldi.2018.”Algoritama devide and
conquer.https://informatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2017-2018/Algoritma-Divide-and-
Conquer-(2018). pdf (diakses pada 29 September 2020)
Maukar.2018.http://maukar.staff.gunadarma.ac.id/Downloads/files/45644/Algoritma+Divide+an
d+Conquer.ppt-1.ppt (diaskes pada 29 September 2020)
Malifauzi. 2018.http://malifauzi.lecture.ub.ac.id/files/2016/02/Pertemuan-9.pdf (diakses pada 29
September 2020)

Anda mungkin juga menyukai