SlideShare a Scribd company logo
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

What's hot

Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
Rakhmi Khalida, M.M.S.I
 
Analisis Algoritma - Strategi Algoritma Dynamic Programming
Analisis Algoritma - Strategi Algoritma Dynamic ProgrammingAnalisis Algoritma - Strategi Algoritma Dynamic Programming
Analisis Algoritma - Strategi Algoritma Dynamic Programming
Adam Mukharil Bachtiar
 
2. galat
2. galat2. galat
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanCliquerz Javaneze
 
Relasi Rekursi : Definisi, Contoh, Jenis Relasi Rekursi
Relasi Rekursi : Definisi, Contoh, Jenis Relasi RekursiRelasi Rekursi : Definisi, Contoh, Jenis Relasi Rekursi
Relasi Rekursi : Definisi, Contoh, Jenis Relasi RekursiOnggo Wiryawan
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
Siti Khotijah
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
Siti Khotijah
 
Database rumah sakit
Database rumah sakitDatabase rumah sakit
Database rumah sakit
Siswanti Jufri
 
Contoh soal uts struktur data
Contoh soal uts struktur dataContoh soal uts struktur data
Contoh soal uts struktur data
Bina Sarana Informatika
 
Graf Pohon
Graf PohonGraf Pohon
Graf Pohon
Septi Ratnasari
 
Tugas 2 individu tentang dbms
Tugas 2 individu tentang dbmsTugas 2 individu tentang dbms
Tugas 2 individu tentang dbms
Elma Fiana
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
Banta Cut
 
Makalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksMakalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleks
Nila Aulia
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Fatma Qolbi
 
Pengantar Sistem Berkas (Lanjutan)
Pengantar Sistem Berkas (Lanjutan)Pengantar Sistem Berkas (Lanjutan)
Pengantar Sistem Berkas (Lanjutan)
formatik
 
Aljabar 3-struktur-aljabar
Aljabar 3-struktur-aljabarAljabar 3-struktur-aljabar
Aljabar 3-struktur-aljabar
maman wijaya
 
Pertemuan 4-5-6 Metode Pelacakan dan Pencarian
Pertemuan 4-5-6 Metode Pelacakan dan PencarianPertemuan 4-5-6 Metode Pelacakan dan Pencarian
Pertemuan 4-5-6 Metode Pelacakan dan Pencarian
Endang Retnoningsih
 
Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02
KuliahKita
 
Matematika 2 - Slide week 10 - Teori Laplace dan Cramer
Matematika 2 - Slide week 10 - Teori Laplace dan CramerMatematika 2 - Slide week 10 - Teori Laplace dan Cramer
Matematika 2 - Slide week 10 - Teori Laplace dan CramerBeny Nugraha
 

What's hot (20)

Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Analisis Algoritma - Strategi Algoritma Dynamic Programming
Analisis Algoritma - Strategi Algoritma Dynamic ProgrammingAnalisis Algoritma - Strategi Algoritma Dynamic Programming
Analisis Algoritma - Strategi Algoritma Dynamic Programming
 
2. galat
2. galat2. galat
2. galat
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi boolean
 
Relasi Rekursi : Definisi, Contoh, Jenis Relasi Rekursi
Relasi Rekursi : Definisi, Contoh, Jenis Relasi RekursiRelasi Rekursi : Definisi, Contoh, Jenis Relasi Rekursi
Relasi Rekursi : Definisi, Contoh, Jenis Relasi Rekursi
 
Pertemuan 10
Pertemuan 10Pertemuan 10
Pertemuan 10
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
 
Database rumah sakit
Database rumah sakitDatabase rumah sakit
Database rumah sakit
 
Contoh soal uts struktur data
Contoh soal uts struktur dataContoh soal uts struktur data
Contoh soal uts struktur data
 
Graf Pohon
Graf PohonGraf Pohon
Graf Pohon
 
Tugas 2 individu tentang dbms
Tugas 2 individu tentang dbmsTugas 2 individu tentang dbms
Tugas 2 individu tentang dbms
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
 
Makalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksMakalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleks
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
 
Pengantar Sistem Berkas (Lanjutan)
Pengantar Sistem Berkas (Lanjutan)Pengantar Sistem Berkas (Lanjutan)
Pengantar Sistem Berkas (Lanjutan)
 
Aljabar 3-struktur-aljabar
Aljabar 3-struktur-aljabarAljabar 3-struktur-aljabar
Aljabar 3-struktur-aljabar
 
Pertemuan 4-5-6 Metode Pelacakan dan Pencarian
Pertemuan 4-5-6 Metode Pelacakan dan PencarianPertemuan 4-5-6 Metode Pelacakan dan Pencarian
Pertemuan 4-5-6 Metode Pelacakan dan Pencarian
 
Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02
 
Matematika 2 - Slide week 10 - Teori Laplace dan Cramer
Matematika 2 - Slide week 10 - Teori Laplace dan CramerMatematika 2 - Slide week 10 - Teori Laplace dan Cramer
Matematika 2 - Slide week 10 - Teori Laplace dan Cramer
 

Similar to Algoritma Divide and Conquer (Sorting & Searching)

Binary Search pada Java
Binary Search pada JavaBinary Search pada Java
Binary Search pada Java
Putra Andry
 
Buku struktur data Sorting
Buku struktur data SortingBuku struktur data Sorting
Buku struktur data Sorting
BintangWijaya5
 
Algoritma Divide and Conquer
Algoritma Divide and ConquerAlgoritma Divide and Conquer
Algoritma Divide and Conquer
Edho Pratama
 
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung MedianLaporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
Shofura Kamal
 
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
RadenMuhammadArfanFa
 
Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania
Mutia Rahmadania
 
Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadaniaTugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadaniaMutia Rahmadania
 
tugas algoritma
tugas algoritmatugas algoritma
tugas algoritma
SITI MUTIAH NURMALA DEWI
 
Analisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingAnalisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingDea Rokhmatun Iradewa
 
Esai
EsaiEsai
Metode sorting dan aplikasinya2
Metode sorting dan aplikasinya2Metode sorting dan aplikasinya2
Metode sorting dan aplikasinya2
maidah .
 
Pertemuan 10 Tehnik Sorting
Pertemuan 10  Tehnik SortingPertemuan 10  Tehnik Sorting
Pertemuan 10 Tehnik Sorting
Endang Retnoningsih
 
Tria opita
Tria opitaTria opita
Tria opita
tria opita
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)muissyahril
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)
biedoen
 

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

Binary Search pada Java
Binary Search pada JavaBinary Search pada Java
Binary Search pada Java
 
Buku struktur data Sorting
Buku struktur data SortingBuku struktur data Sorting
Buku struktur data Sorting
 
Ni luh dewi pradnyawati
Ni luh dewi pradnyawatiNi luh dewi pradnyawati
Ni luh dewi pradnyawati
 
Ni luh dewi pradnyawati
Ni luh dewi pradnyawatiNi luh dewi pradnyawati
Ni luh dewi pradnyawati
 
Algoritma Divide and Conquer
Algoritma Divide and ConquerAlgoritma Divide and Conquer
Algoritma Divide and Conquer
 
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung MedianLaporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
 
Pengurutan (Sorting)
Pengurutan (Sorting)Pengurutan (Sorting)
Pengurutan (Sorting)
 
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
 
Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania
 
Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadaniaTugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania
 
Siti rohmatul khoiriah
Siti rohmatul khoiriahSiti rohmatul khoiriah
Siti rohmatul khoiriah
 
tugas algoritma
tugas algoritmatugas algoritma
tugas algoritma
 
Analisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingAnalisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah Sorting
 
Esai
EsaiEsai
Esai
 
Metode sorting dan aplikasinya2
Metode sorting dan aplikasinya2Metode sorting dan aplikasinya2
Metode sorting dan aplikasinya2
 
Pertemuan 10 Tehnik Sorting
Pertemuan 10  Tehnik SortingPertemuan 10  Tehnik Sorting
Pertemuan 10 Tehnik Sorting
 
Tria opita
Tria opitaTria opita
Tria opita
 
Array statis if
Array statis ifArray statis if
Array statis if
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)
 

More from Ajeng Savitri

Software Testing Documentation
Software Testing DocumentationSoftware Testing Documentation
Software Testing Documentation
Ajeng Savitri
 
Software Productivity Measurement
Software Productivity MeasurementSoftware Productivity Measurement
Software Productivity Measurement
Ajeng Savitri
 
Debugging (Part 2)
Debugging (Part 2)Debugging (Part 2)
Debugging (Part 2)
Ajeng Savitri
 
Debugging
DebuggingDebugging
Debugging
Ajeng Savitri
 
Software Testing Strategy (Part 2)
Software Testing Strategy (Part 2)Software Testing Strategy (Part 2)
Software Testing Strategy (Part 2)
Ajeng Savitri
 
Software Testing Strategy
Software Testing StrategySoftware Testing Strategy
Software Testing Strategy
Ajeng Savitri
 
Object Oriented Testing
Object Oriented TestingObject Oriented Testing
Object Oriented Testing
Ajeng Savitri
 
Testing Technique (Part 2)
Testing Technique (Part 2)Testing Technique (Part 2)
Testing Technique (Part 2)
Ajeng Savitri
 
Testing Technique
Testing TechniqueTesting Technique
Testing Technique
Ajeng Savitri
 
Testing Plan
Testing PlanTesting Plan
Testing Plan
Ajeng Savitri
 
Methodology Selection Strategy
Methodology Selection Strategy Methodology Selection Strategy
Methodology Selection Strategy
Ajeng Savitri
 
Software Testing - Software Quality (Part 2)
Software Testing - Software Quality (Part 2)Software Testing - Software Quality (Part 2)
Software Testing - Software Quality (Part 2)
Ajeng Savitri
 
Software Testing - Software Quality
Software Testing - Software QualitySoftware Testing - Software Quality
Software Testing - Software Quality
Ajeng Savitri
 
Computer Evolution and Performance
Computer Evolution and PerformanceComputer Evolution and Performance
Computer Evolution and Performance
Ajeng Savitri
 
Software Testing - Introduction
Software Testing - IntroductionSoftware Testing - Introduction
Software Testing - Introduction
Ajeng Savitri
 
Sequence Diagram
Sequence DiagramSequence Diagram
Sequence Diagram
Ajeng Savitri
 
Activity Diagram
Activity DiagramActivity Diagram
Activity Diagram
Ajeng Savitri
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
Ajeng Savitri
 
Requirement Gathering
Requirement GatheringRequirement Gathering
Requirement Gathering
Ajeng Savitri
 
Business Value
Business ValueBusiness Value
Business Value
Ajeng Savitri
 

More from Ajeng Savitri (20)

Software Testing Documentation
Software Testing DocumentationSoftware Testing Documentation
Software Testing Documentation
 
Software Productivity Measurement
Software Productivity MeasurementSoftware Productivity Measurement
Software Productivity Measurement
 
Debugging (Part 2)
Debugging (Part 2)Debugging (Part 2)
Debugging (Part 2)
 
Debugging
DebuggingDebugging
Debugging
 
Software Testing Strategy (Part 2)
Software Testing Strategy (Part 2)Software Testing Strategy (Part 2)
Software Testing Strategy (Part 2)
 
Software Testing Strategy
Software Testing StrategySoftware Testing Strategy
Software Testing Strategy
 
Object Oriented Testing
Object Oriented TestingObject Oriented Testing
Object Oriented Testing
 
Testing Technique (Part 2)
Testing Technique (Part 2)Testing Technique (Part 2)
Testing Technique (Part 2)
 
Testing Technique
Testing TechniqueTesting Technique
Testing Technique
 
Testing Plan
Testing PlanTesting Plan
Testing Plan
 
Methodology Selection Strategy
Methodology Selection Strategy Methodology Selection Strategy
Methodology Selection Strategy
 
Software Testing - Software Quality (Part 2)
Software Testing - Software Quality (Part 2)Software Testing - Software Quality (Part 2)
Software Testing - Software Quality (Part 2)
 
Software Testing - Software Quality
Software Testing - Software QualitySoftware Testing - Software Quality
Software Testing - Software Quality
 
Computer Evolution and Performance
Computer Evolution and PerformanceComputer Evolution and Performance
Computer Evolution and Performance
 
Software Testing - Introduction
Software Testing - IntroductionSoftware Testing - Introduction
Software Testing - Introduction
 
Sequence Diagram
Sequence DiagramSequence Diagram
Sequence Diagram
 
Activity Diagram
Activity DiagramActivity Diagram
Activity Diagram
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Requirement Gathering
Requirement GatheringRequirement Gathering
Requirement Gathering
 
Business Value
Business ValueBusiness Value
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