SlideShare a Scribd company logo
ANALISIS ALGORITMA
Strategi Algoritma: Divide and Conquer
Pemateri:
Adam Mukharil Bachtiar
adam@email.unikom.ac.id
Setelah mempelajari Greedy dengan
konsep “Take what you can get now”,
ada strategi lain bernama
Divide and Conquer.
Pada awalnya, strategi ini dikenal
sebagai strategi militer yang
dikenal dengan nama
“divide ut imperes”
Ada tiga langkah utama dalam
strategi ini, yaitu:
Divide, Conquer, dan Combine.
Divide:
Membagi masalah menjadi beberapa upa-masalah yang
memiliki kemiripan dengan masalah semula namun
berukuran lebih kecil (idealnya berukuran hampir sama).
Conquer:
Memecahkan (menyelesaikan) masing-masing upa-
masalah (secara rekursif).
Combine:
Mengabungkan solusi masing-masing upa-masalah
sehingga membentuk solusi masalah semula.
Skema Umum
Divide and Conquer
Problem 1: Mencari nilai maksimum
dan minimum
Problem/Kasus:
Misalkan diberikan tabel A yang berukuran n elemen dan sudah berisi
nilai integer. Carilah nilai minimum dan nilai maksimum sekaligus di
dalam tabel tersebut.
Solusi
Brute Force
DIVIDE
CONQUER
COMBINE
Min: 4
Maks: 23
Min: 1
Maks: 35
Min: 1
Maks: 35
Ukuran tabel ketika divide dapat
dibuat lebih kecil agar pencarian maks
dan min menjadi lebih mudah.
MinMaks (A, n, min, maks)
Algoritma:
1. Untuk kasus n = 1 atau n = 2,
SOLVE: Jika n = 1, maka min = maks = A[n]
Jika n = 2, maka bandingkan kedua elemen untukmenentukan min dan maks.
2. Untuk kasus n > 2,
(a) DIVIDE: Bagi dua tabel A menjadi dua bagian yang sama, A1 dan A2
(b) CONQUER: MinMaks(A1, n/2, min1, maks1)
MInMaks(A2, n/2, min2, maks2)
(c) COMBINE: if min1 <min2 then min <- min1 else min <- min2
if maks1 <maks2 then maks <- maks2 else maks <- maks1
DIVIDE
CONQUER
&
COMBINE
Min: 4
Maks: 12
Min: 9
Maks: 23
Min: 1
Maks: 21
Min: 35
Maks: 35
Min: 2
Maks: 24
Min: 4
Maks: 12
Min: 9
Maks: 23
Min: 1
Maks: 21
Min: 2
Maks: 35
Min: 4
Maks: 9
Min: 1
Maks: 35Min: 1
Maks: 35
Solusi
Divide & Conquer
! " =
0 , " = 1
1 , " = 2
2!
"
2
+ 2 , " > 2
Problem 2: Mencari pasangan titik
terdekat (Closest Pair)
Problem/Kasus:
Diberikan himpunan titik, P, yang terdiri dari n buah titik, (xi, yi), pada
bidang 2-D. Tentukan jarak terdekat antara dua buah titik di dalam
himpunan P.
p1
p2
p3
p4
p5
p6
p7
p8
x
y
Jarak dua buah titik p1 = (x1, y1) dan p2 = (x2, y2):
2
21
2
21
)()( yyxxd -+-=
Penyelesaian dengan Brute Force:
1
Hitung jarak setiap pasang titik. Hal ini dilakukan sebanyak ! ", $ =
"(" − ()/$ pasangan titik.
2 Pilih pasangan titik yang memiliki jarak terkecil.
3 Kompleksitas algoritma adalah +("$).
Penyelesaian dengan Divide and Conquer:
1
Asumsi: ! = #$ dan titik-titik diurutkan berdasarkan absis (X).
SOLVE: jika ! = # maka jarak kedua titik dihitung langsung dengan rumus
ecludian.
Algoritma Closest Pair:
2
DIVIDE: Bagi himpunan titik ke dalam dua bagian, Pleft dan Pright, setiap
bagian mempunyai jumlah titik yang sama.
p1
p2
p3
p4
p5
p6
p7
p8
x
y
L
PLeft
PRight
3
CONQUER: Secara rekursif, terapkan algoritma Divide and Conquer
pada masing-masing bagian.
4 Pasangan titik yang terdekat ada 3 kemungkinan, yaitu:
• Pasangan titik terdekat pada bagian PLeft.
• Pasangan titik terdekar pada bagian PRight.
• Pasangan titik terdekat yang dipisahkan oleh garis batas L, yaitu satu
titik pada bagian PLeft dan satu titik pada bagian PRight.
Jika kasusnya adalah yang ketiga maka lakukan tahap COMBINE untuk
mendapatkan jarak dua titik terdekat sebagai solusi persoalan semula.
Solusi
Divide & Conquer
•
•
•
•
x
y
L
•
L
DD
strip-D
Lakukan langkah
COMBINE
Jika terdapat pasangan titik PLeft dan PRight
yang jaraknya lebih kecil dari delta
Oleh karena itu, implementasi tahap COMBINE sebagai berikut:
Temukan semua titik di PLeft yang memiliki absis x minimal xn/2 – delta.
Temukan semua titik di PRight yang memiliki absis x maksimal x n/2+ delta.
Sebut semua titik-titik yang ditemukan pada langkah (i) dan (ii) tersebut sebagai
himpunan Pstrip yang berisi s buah titik. Urut titik-titik tersebut dalam urutan absis
y yang menaik. Misalkan q1, q2 , ..., qs menyatakan hasil pengurutan.
1
2
Kompleksitas Algoritma:
î
í
ì
=
>+
=
2,
2,)2/(2
)(
na
ncnnT
nT
Solusi dari persamaan di atas adalah T(n) = O(n log n).

More Related Content

PDF
Analisis Algoritma - Strategi Algoritma Greedy
PDF
Analisis Algoritma - Penerapan Strategi Algoritma Brute Force
PDF
Analisis Algoritma - Teorema Notasi Asimptotik
PDF
Analisis Algoritma - Strategi Algoritma Brute Force
PDF
Analisis Algoritma - Strategi Algoritma Dynamic Programming
PPTX
Perbandingan algoritma brute force , divide and conquer
PDF
Analisis Algoritma - Pengantar Kompleksitas Algoritma
PPT
Algoritma brute force
Analisis Algoritma - Strategi Algoritma Greedy
Analisis Algoritma - Penerapan Strategi Algoritma Brute Force
Analisis Algoritma - Teorema Notasi Asimptotik
Analisis Algoritma - Strategi Algoritma Brute Force
Analisis Algoritma - Strategi Algoritma Dynamic Programming
Perbandingan algoritma brute force , divide and conquer
Analisis Algoritma - Pengantar Kompleksitas Algoritma
Algoritma brute force

What's hot (20)

PPT
Metode pencarian heuristik
PPT
Metode numerik persamaan non linier
PDF
Mini Google Design Sprint
DOCX
Metode Simplek Minimasi
PPTX
Algoritma Branch and Bound
PPTX
Ragam Dialog :: Interaksi Manusia dan Komputer
PDF
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
PDF
Pertemuan 12 Algoritma Greedy
PDF
Soal uas imk bsi
PPTX
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
PDF
pemetaan erd
PPTX
metode simpleks maksimum (Program linear)
PPT
Analisis leksikal tugas
PDF
Pertemuan 04 Teknik Pencarian (Search)
PDF
5. Doubly Linked List (Struktur Data)
PPTX
Prinsip usability
PPT
Modul 3 pencarian heuristik
PDF
Teori bahasa-dan-otomata
PDF
Makalah n-queen problem
PPT
linear programming metode simplex
Metode pencarian heuristik
Metode numerik persamaan non linier
Mini Google Design Sprint
Metode Simplek Minimasi
Algoritma Branch and Bound
Ragam Dialog :: Interaksi Manusia dan Komputer
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Pertemuan 12 Algoritma Greedy
Soal uas imk bsi
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
pemetaan erd
metode simpleks maksimum (Program linear)
Analisis leksikal tugas
Pertemuan 04 Teknik Pencarian (Search)
5. Doubly Linked List (Struktur Data)
Prinsip usability
Modul 3 pencarian heuristik
Teori bahasa-dan-otomata
Makalah n-queen problem
linear programming metode simplex
Ad

Similar to Analisis Algoritma - Strategi Algoritma Divide and Conquer (7)

PDF
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
PDF
Algoritma-Divide-and-Conquer-(2021)-Bagian1.pdf
PPTX
Algoritma Devide and Conquer
PPT
Algoritma Divide and Conquer
PPT
Algoritma divide and conquer (lanjutan)
PPTX
BAB 5.pptx
PPTX
Algoritma Divide and Conquer (Sorting & Searching)
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
Algoritma-Divide-and-Conquer-(2021)-Bagian1.pdf
Algoritma Devide and Conquer
Algoritma Divide and Conquer
Algoritma divide and conquer (lanjutan)
BAB 5.pptx
Algoritma Divide and Conquer (Sorting & Searching)
Ad

More from Adam Mukharil Bachtiar (20)

PDF
Materi 8 - Data Mining Association Rule.pdf
PDF
Clean Code - Formatting Code
PDF
Clean Code - Clean Comments
PDF
PDF
Clean Code and Design Pattern - Meaningful Names
PDF
Model Driven Software Development
PDF
Scrum: How to Implement
PDF
Pengujian Perangkat Lunak
PDF
Data Mining Clustering
PPTX
Data Mining Klasifikasi (Updated 30 Desember 2020)
PDF
Analisis Algoritma - Notasi Asimptotik
PDF
Activity Diagram
PDF
UML dan Use Case View
PDF
Analisis Algoritma - Langkah Desain Algoritma
PDF
Validasi ide Menggunakan Javelin Board (Idea Validation)
PDF
Analisis Algoritma - Pengantar Analisis Algoritma
PDF
Scrum: How to Implements (Update)
PDF
Business Model Canvas: Cara Pengisian
PDF
SCRUM: How to implements
PDF
Tugas Besar RPL 1
Materi 8 - Data Mining Association Rule.pdf
Clean Code - Formatting Code
Clean Code - Clean Comments
Clean Code and Design Pattern - Meaningful Names
Model Driven Software Development
Scrum: How to Implement
Pengujian Perangkat Lunak
Data Mining Clustering
Data Mining Klasifikasi (Updated 30 Desember 2020)
Analisis Algoritma - Notasi Asimptotik
Activity Diagram
UML dan Use Case View
Analisis Algoritma - Langkah Desain Algoritma
Validasi ide Menggunakan Javelin Board (Idea Validation)
Analisis Algoritma - Pengantar Analisis Algoritma
Scrum: How to Implements (Update)
Business Model Canvas: Cara Pengisian
SCRUM: How to implements
Tugas Besar RPL 1

Analisis Algoritma - Strategi Algoritma Divide and Conquer