SlideShare a Scribd company logo
13
Most read
15
Most read
16
Most read
Ajeng Savitri P, M.Kom
Analysis & Strategy
of Algorithm
Pertemuan 12
OBJECTIVE
 To learn How Divide & Conquer Algorithm solve
problem
Algoritma Pengurutan dengan
Metode Divide and Conquer
Dua pendekatan (approach) pengurutan:
 Mudah membagi, sulit menggabung (easy split/hard join).
Algoritma pengurutan yang termasuk jenis ini:
a. urut-gabung (Merge Sort)
b. urut-sisip (Insertion Sort)
 Sulit membagi, mudah menggabung (hard split/easy join).
Algoritma pengurutan yang termasuk jenis ini:
a. urut-cepat (Quick Sort)
b. urut-seleksi (Selection Sort)
Easy Split/Hard Join
 Tabel A dibagi dua berdasarkan posisi elemen:
Hard Split/Easy Join
 Tabel A dibagi dua berdasarkan nilai elemennya.
Misalkan elemen-elemen A1  elemen-elemen A2
Merge Sort
 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 ma
sing-masing bagian.
 MERGE: gabung hasil pengurutan kedua bagian sehingga
diperoleh tabel A yang terurut.
Contoh Masalah
Persoalan :
Misalkan tabel A berisi elemen-elemen berikut:
4 12 23 9 21 1 5 2
Penyelesaian
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
Penyelesaian (2)
MERGE :
4 12 9 23 1 21 2 5
4 9 12 23 1 2 5 21
1 2 4 5 9 12 21 23
Kompleksitas Waktu
 Asumsi: n = 2k
 T(n) = jumlah perbandingan pada pengurutan dua buah upa-tabel
+ jumlah perbandingan pada prosedur Merge






1,)2/(2
1,
)(
ncnnT
na
nT
Kompleksitas Waktu (lanjutan)
 Penyelesaian persaman rekurens: T(n) = 2T(n/2) + cn
= 2(2T(n/4) + cn/2) + cn = 4T(n/4) + 2c
n
= 4(2T(n/8) + cn/4) + 2cn = 8T(n/8) +
3cn
= ...
= 2k T(n/2k) +kcn
 Berhenti jika ukuran tabel terkecil, n = 1: n/2k = 1  k = 2log n
sehingga T(n) = nT(1) + cn 2log n
= na + cn 2log n
= O(n 2log n)
Algoritma Pencarian dengan
Metode Divide and Conquer
 Binary Search : salah satu contoh dari algoritme divide and conquer
(atau lebih khusus algoritme decrease and conquer) dan sebuah
pencarian dikotomi
 Binary Search (Pencarian Biner) dapat dilakukan jika data sudah
dalam keadaan urut. Dengan kata lain, apabila data belum dalam
keadaan urut, pencarian biner tidak dapat dilakukan.
 Dalam kehidupan sehari-hari, sebenarnya kita juga sering menggun
akan pencarian biner. Misalnya saat ingin mencari suatu kata dalam
kamus.
Prinsip Pencarian Biner
1. Mula-mula diambil posisi awal = 1 dan posisi akhir = N
2. Cari posisi data tengah dengan rumus (posisi awal + posisi akhir) /
2
3. Data yang dicari dibandingkan dengan data tengah.
4. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir diangg
apsama dengan posisi tengah – 1.
5. Jika lebih besar, proses dilakukan kembali tetapi posisi awal diangg
apsama dengan posisi tengah + 1.
6. Demikian seterusnya sampai data tengah sama dengan yang dicari.
Contoh Masalah
 Misalkan kita ingin mencari 17 pada sekumpulan dat
a berikut :
3 9 1 1 1 2 1 5 1 7 2 3 3 1 3 5
Iterasi 1
1. Mula–mula dicari data tengah, dengan rumus (1+ 9) / 2 = 5.
2. Berarti data tengah adalah data ke-5, yaitu 15.
3. Data yang dicari, yaitu 17, bandingkan dengan data tengah ini.
4. Karena 17 > 15, berarti proses dilanjutkan tetapi kali ini posisi awa
l
dianggap sama dengan posisi tengah + 1 atau 6 (data 17).
Iterasi 2
1. Data tengah yang baru didapat dengan rumus (6 + 9) / 2 = 7. Berar
ti data tengah yang baru adalah data ke-7, yaitu 23.
2. Data yang dicari, yaitu 17 dibandingkan dengan data tengah ini.
3. Karena 17 < 23, berarti proses dilanjutkan tetapi kali ini posisi akhi
r dianggap sama dengan posisi tengah – 1 atau 6 (data 17).
Iterasi 3
1. Data tengah yang baru didapat dengan rumus (6 + 6) / 2 = 6. Berar
ti data tengah yang baru adalah data ke-6, yaitu 17.
2. Data yang dicari dibandingkan dengan data tengah ini dan ternyata
sama. Jadi data ditemukan pada indeks ke-6.
Diskusi
Bagaimana jika data yang dicari tidak ada, misalnya 16?
 Pencarian biner ini akan berakhir jika data ditemukan atau
posisi awal lebih besar dari posisi akhir. Jika posisi awal
sudah lebih besar daripada posisi akhir berarti data tidak
ditemukan.
Penyelesaian
 Untuk lebih jelasnya perhatikan proses pencarian 16 pada data di at
as. Prosesnya hampir sama dengan pencarian 17. Tetapi setelah posi
si
awal = posisi akhir = 6, proses masih dilanjutkan lagi dengan posisi
awal = 6 dan posisi akhir = 5
 Disini dapat dilihat bahwa posisi awal lebih besar daripada posisi
akhir, yang artinya data tidak ditemukan.
REFFERENCE
 Munir, Rinaldi. Diktat Kuliah “Kompleksitas Algoritma”, Departemen T
eknik Informatika ITB
 Levitin, Anany. 2012. Introduction to the Design and Analysis of A
lgorithms, 3rd Edition.Addison Wesley
Terima Kasih
ajeng.savitri@teknokrat.ac.id
https://teknokrat.ac.id/en/
https://spada.teknokrat.ac.id/

More Related Content

PPTX
Algoritma pencarian lintasan jalur terpendek
PPTX
8 logika predikat
DOCX
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
DOCX
Bab 5 komputer sederhana sap-1
PPTX
Perbandingan algoritma brute force , divide and conquer
PPT
Array dan Contoh
PPTX
Graf ( Matematika Diskrit)
PPT
03 limit dan kekontinuan
Algoritma pencarian lintasan jalur terpendek
8 logika predikat
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Bab 5 komputer sederhana sap-1
Perbandingan algoritma brute force , divide and conquer
Array dan Contoh
Graf ( Matematika Diskrit)
03 limit dan kekontinuan

What's hot (20)

PPTX
Kelompok 3 X MIA 1
PPT
Desain arsitektur
PDF
Proposisi Logika Informatika
PDF
Algoritma dan Struktur Data - Rekursif
PDF
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
PDF
Analisis Algoritma - Langkah Desain Algoritma
PDF
Analisis Algoritma - Pengantar Analisis Algoritma
DOCX
Matriks, relasi dan fungsi
PPTX
Counting 1
DOC
Dasar dasar matematika teknik optimasi (matrix hessian)
PPTX
Determinan Matriks ( Aljabar Linear Elementer )
PPTX
Transformasi Linear ( Aljabar Linear Elementer )
PPTX
Integral tak tentu dan integral tentu
PPT
Turunan
PPT
Desain Top Down
DOCX
MAKALAH STACK (TUMPUKAN )
DOCX
PDF
Matematika Diskrit - 11 kompleksitas algoritma - 03
PPT
Pertemuan 02 teori dasar himpunan
PDF
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Kelompok 3 X MIA 1
Desain arsitektur
Proposisi Logika Informatika
Algoritma dan Struktur Data - Rekursif
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Analisis Algoritma - Langkah Desain Algoritma
Analisis Algoritma - Pengantar Analisis Algoritma
Matriks, relasi dan fungsi
Counting 1
Dasar dasar matematika teknik optimasi (matrix hessian)
Determinan Matriks ( Aljabar Linear Elementer )
Transformasi Linear ( Aljabar Linear Elementer )
Integral tak tentu dan integral tentu
Turunan
Desain Top Down
MAKALAH STACK (TUMPUKAN )
Matematika Diskrit - 11 kompleksitas algoritma - 03
Pertemuan 02 teori dasar himpunan
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Ad

Similar to Algoritma Divide and Conquer (Sorting & Searching) (20)

PPTX
Binary Search pada Java
PPTX
MATERI SEARCHING adalah materi komputasional thinking.pptx
PPTX
Tiga macam titik ALGORITMA PENCARIAN.pptx
PDF
7 Metode Pencarian Data Array
PPTX
Algoritma divide-and-conquer mesti bener aku garap dewe.pptx
PPTX
PPTX
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
PPTX
Decrease and Conquer in analysis of algorithms.pptx
PPTX
Algoritma
PPT
Algoritma Divide and Conquer
PPTX
TUGAS TIK.pptx
PDF
Algoritma Searching Sorting Stack dan Queue Kelas 10
PPTX
Algoritma pencarian (searching algorithm)
PDF
Algoritma dan Struktur Data - Binary Search
PDF
Sorting insert binary
PPTX
Modul pembelajaran Searching Algorithm.pptx
PPTX
7. Algoritma.pptx
PDF
Struktur data chapter_14
PDF
ALPRO SEARCHING K.4.pdf
PDF
Teknik Searching
Binary Search pada Java
MATERI SEARCHING adalah materi komputasional thinking.pptx
Tiga macam titik ALGORITMA PENCARIAN.pptx
7 Metode Pencarian Data Array
Algoritma divide-and-conquer mesti bener aku garap dewe.pptx
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
Decrease and Conquer in analysis of algorithms.pptx
Algoritma
Algoritma Divide and Conquer
TUGAS TIK.pptx
Algoritma Searching Sorting Stack dan Queue Kelas 10
Algoritma pencarian (searching algorithm)
Algoritma dan Struktur Data - Binary Search
Sorting insert binary
Modul pembelajaran Searching Algorithm.pptx
7. Algoritma.pptx
Struktur data chapter_14
ALPRO SEARCHING K.4.pdf
Teknik Searching
Ad

More from Ajeng Savitri (20)

PPTX
Software Testing Documentation
PPTX
Software Productivity Measurement
PPTX
Debugging (Part 2)
PPTX
Debugging
PPTX
Software Testing Strategy (Part 2)
PPTX
Software Testing Strategy
PPTX
Object Oriented Testing
PPTX
Testing Technique (Part 2)
PPTX
Testing Technique
PPTX
Testing Plan
PPTX
Methodology Selection Strategy
PPTX
Software Testing - Software Quality (Part 2)
PPTX
Software Testing - Software Quality
PPTX
Computer Evolution and Performance
PPTX
Software Testing - Introduction
PPTX
Sequence Diagram
PPTX
Activity Diagram
PPTX
Use Case Diagram
PPTX
Requirement Gathering
PPTX
Business Value
Software Testing Documentation
Software Productivity Measurement
Debugging (Part 2)
Debugging
Software Testing Strategy (Part 2)
Software Testing Strategy
Object Oriented Testing
Testing Technique (Part 2)
Testing Technique
Testing Plan
Methodology Selection Strategy
Software Testing - Software Quality (Part 2)
Software Testing - Software Quality
Computer Evolution and Performance
Software Testing - Introduction
Sequence Diagram
Activity Diagram
Use Case Diagram
Requirement Gathering
Business Value

Algoritma Divide and Conquer (Sorting & Searching)

  • 1. Ajeng Savitri P, M.Kom Analysis & Strategy of Algorithm Pertemuan 12
  • 2. OBJECTIVE  To learn How Divide & Conquer Algorithm solve problem
  • 3. Algoritma Pengurutan dengan Metode Divide and Conquer Dua pendekatan (approach) pengurutan:  Mudah membagi, sulit menggabung (easy split/hard join). Algoritma pengurutan yang termasuk jenis ini: a. urut-gabung (Merge Sort) b. urut-sisip (Insertion Sort)  Sulit membagi, mudah menggabung (hard split/easy join). Algoritma pengurutan yang termasuk jenis ini: a. urut-cepat (Quick Sort) b. urut-seleksi (Selection Sort)
  • 4. Easy Split/Hard Join  Tabel A dibagi dua berdasarkan posisi elemen:
  • 5. Hard Split/Easy Join  Tabel A dibagi dua berdasarkan nilai elemennya. Misalkan elemen-elemen A1  elemen-elemen A2
  • 6. Merge Sort  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 ma sing-masing bagian.  MERGE: gabung hasil pengurutan kedua bagian sehingga diperoleh tabel A yang terurut.
  • 7. Contoh Masalah Persoalan : Misalkan tabel A berisi elemen-elemen berikut: 4 12 23 9 21 1 5 2
  • 8. Penyelesaian 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
  • 9. Penyelesaian (2) MERGE : 4 12 9 23 1 21 2 5 4 9 12 23 1 2 5 21 1 2 4 5 9 12 21 23
  • 10. Kompleksitas Waktu  Asumsi: n = 2k  T(n) = jumlah perbandingan pada pengurutan dua buah upa-tabel + jumlah perbandingan pada prosedur Merge       1,)2/(2 1, )( ncnnT na nT
  • 11. Kompleksitas Waktu (lanjutan)  Penyelesaian persaman rekurens: T(n) = 2T(n/2) + cn = 2(2T(n/4) + cn/2) + cn = 4T(n/4) + 2c n = 4(2T(n/8) + cn/4) + 2cn = 8T(n/8) + 3cn = ... = 2k T(n/2k) +kcn  Berhenti jika ukuran tabel terkecil, n = 1: n/2k = 1  k = 2log n sehingga T(n) = nT(1) + cn 2log n = na + cn 2log n = O(n 2log n)
  • 12. Algoritma Pencarian dengan Metode Divide and Conquer  Binary Search : salah satu contoh dari algoritme divide and conquer (atau lebih khusus algoritme decrease and conquer) dan sebuah pencarian dikotomi  Binary Search (Pencarian Biner) dapat dilakukan jika data sudah dalam keadaan urut. Dengan kata lain, apabila data belum dalam keadaan urut, pencarian biner tidak dapat dilakukan.  Dalam kehidupan sehari-hari, sebenarnya kita juga sering menggun akan pencarian biner. Misalnya saat ingin mencari suatu kata dalam kamus.
  • 13. Prinsip Pencarian Biner 1. Mula-mula diambil posisi awal = 1 dan posisi akhir = N 2. Cari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2 3. Data yang dicari dibandingkan dengan data tengah. 4. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir diangg apsama dengan posisi tengah – 1. 5. Jika lebih besar, proses dilakukan kembali tetapi posisi awal diangg apsama dengan posisi tengah + 1. 6. Demikian seterusnya sampai data tengah sama dengan yang dicari.
  • 14. Contoh Masalah  Misalkan kita ingin mencari 17 pada sekumpulan dat a berikut : 3 9 1 1 1 2 1 5 1 7 2 3 3 1 3 5
  • 15. Iterasi 1 1. Mula–mula dicari data tengah, dengan rumus (1+ 9) / 2 = 5. 2. Berarti data tengah adalah data ke-5, yaitu 15. 3. Data yang dicari, yaitu 17, bandingkan dengan data tengah ini. 4. Karena 17 > 15, berarti proses dilanjutkan tetapi kali ini posisi awa l dianggap sama dengan posisi tengah + 1 atau 6 (data 17).
  • 16. Iterasi 2 1. Data tengah yang baru didapat dengan rumus (6 + 9) / 2 = 7. Berar ti data tengah yang baru adalah data ke-7, yaitu 23. 2. Data yang dicari, yaitu 17 dibandingkan dengan data tengah ini. 3. Karena 17 < 23, berarti proses dilanjutkan tetapi kali ini posisi akhi r dianggap sama dengan posisi tengah – 1 atau 6 (data 17).
  • 17. Iterasi 3 1. Data tengah yang baru didapat dengan rumus (6 + 6) / 2 = 6. Berar ti data tengah yang baru adalah data ke-6, yaitu 17. 2. Data yang dicari dibandingkan dengan data tengah ini dan ternyata sama. Jadi data ditemukan pada indeks ke-6.
  • 18. Diskusi Bagaimana jika data yang dicari tidak ada, misalnya 16?  Pencarian biner ini akan berakhir jika data ditemukan atau posisi awal lebih besar dari posisi akhir. Jika posisi awal sudah lebih besar daripada posisi akhir berarti data tidak ditemukan.
  • 19. Penyelesaian  Untuk lebih jelasnya perhatikan proses pencarian 16 pada data di at as. Prosesnya hampir sama dengan pencarian 17. Tetapi setelah posi si awal = posisi akhir = 6, proses masih dilanjutkan lagi dengan posisi awal = 6 dan posisi akhir = 5  Disini dapat dilihat bahwa posisi awal lebih besar daripada posisi akhir, yang artinya data tidak ditemukan.
  • 20. REFFERENCE  Munir, Rinaldi. Diktat Kuliah “Kompleksitas Algoritma”, Departemen T eknik Informatika ITB  Levitin, Anany. 2012. Introduction to the Design and Analysis of A lgorithms, 3rd Edition.Addison Wesley