SlideShare a Scribd company logo
1 of 21
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 dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection SortAlgoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection SortKuliahKita
 
6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data6 Algoritma Pengurutan Data
6 Algoritma Pengurutan DataSimon Patabang
 
Persamaan linear dan matriks
Persamaan linear dan matriksPersamaan linear dan matriks
Persamaan linear dan matriksyulika usman
 
6. organisasi multi key
6. organisasi multi key6. organisasi multi key
6. organisasi multi keyRenol Doang
 
Pengertian Logika Informatika
Pengertian Logika InformatikaPengertian Logika Informatika
Pengertian Logika InformatikaZezen Wahyudin
 
Sorting selection-sort
Sorting   selection-sortSorting   selection-sort
Sorting selection-sortFajar Zain
 
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAlgoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAri Septiawan
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerohohervin
 
Pertemuan 4-metode-pencarian-dan-pelacakan
Pertemuan 4-metode-pencarian-dan-pelacakanPertemuan 4-metode-pencarian-dan-pelacakan
Pertemuan 4-metode-pencarian-dan-pelacakanwillyhayon
 
Kaidah Pencacahan
Kaidah PencacahanKaidah Pencacahan
Kaidah PencacahanSofi Afwani
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanCliquerz Javaneze
 
Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )Kelinci Coklat
 
Materi Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan NormalisasiMateri Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan NormalisasiDerina Ellya R
 
Pertemuan 2-pemecahan-masalah-ai
Pertemuan 2-pemecahan-masalah-aiPertemuan 2-pemecahan-masalah-ai
Pertemuan 2-pemecahan-masalah-aiwillyhayon
 
ARSITEKTUR MODEL BASIS DATA
ARSITEKTUR MODEL BASIS DATAARSITEKTUR MODEL BASIS DATA
ARSITEKTUR MODEL BASIS DATAEDIS BLOG
 
Metode Simpleks
Metode SimpleksMetode Simpleks
Metode Simplekshazhiyah
 
Makalah etika profesi teknologi informasi
Makalah etika profesi teknologi informasiMakalah etika profesi teknologi informasi
Makalah etika profesi teknologi informasiadeoktav
 
Algoritma Divide and Conquer
Algoritma Divide and ConquerAlgoritma Divide and Conquer
Algoritma Divide and ConquerEdho Pratama
 

What's hot (20)

Algoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection SortAlgoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection Sort
 
6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data
 
Persamaan linear dan matriks
Persamaan linear dan matriksPersamaan linear dan matriks
Persamaan linear dan matriks
 
6. organisasi multi key
6. organisasi multi key6. organisasi multi key
6. organisasi multi key
 
Logika mat-simpel
Logika mat-simpelLogika mat-simpel
Logika mat-simpel
 
Pengertian Logika Informatika
Pengertian Logika InformatikaPengertian Logika Informatika
Pengertian Logika Informatika
 
Sorting selection-sort
Sorting   selection-sortSorting   selection-sort
Sorting selection-sort
 
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAlgoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquer
 
Pertemuan 4-metode-pencarian-dan-pelacakan
Pertemuan 4-metode-pencarian-dan-pelacakanPertemuan 4-metode-pencarian-dan-pelacakan
Pertemuan 4-metode-pencarian-dan-pelacakan
 
Kaidah Pencacahan
Kaidah PencacahanKaidah Pencacahan
Kaidah Pencacahan
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi boolean
 
Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )
 
Materi Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan NormalisasiMateri Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan Normalisasi
 
Pertemuan 2-pemecahan-masalah-ai
Pertemuan 2-pemecahan-masalah-aiPertemuan 2-pemecahan-masalah-ai
Pertemuan 2-pemecahan-masalah-ai
 
Teknik Searching
Teknik SearchingTeknik Searching
Teknik Searching
 
ARSITEKTUR MODEL BASIS DATA
ARSITEKTUR MODEL BASIS DATAARSITEKTUR MODEL BASIS DATA
ARSITEKTUR MODEL BASIS DATA
 
Metode Simpleks
Metode SimpleksMetode Simpleks
Metode Simpleks
 
Makalah etika profesi teknologi informasi
Makalah etika profesi teknologi informasiMakalah etika profesi teknologi informasi
Makalah etika profesi teknologi informasi
 
Algoritma Divide and Conquer
Algoritma Divide and ConquerAlgoritma Divide and Conquer
Algoritma Divide and Conquer
 

Similar to Algoritma Divide and Conquer (Sorting & Searching)

Binary Search pada Java
Binary Search pada JavaBinary Search pada Java
Binary Search pada JavaPutra Andry
 
Buku struktur data Sorting
Buku struktur data SortingBuku struktur data Sorting
Buku struktur data SortingBintangWijaya5
 
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 MedianShofura Kamal
 
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62gRadenMuhammadArfanFa
 
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
 
Analisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingAnalisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingDea Rokhmatun Iradewa
 
Metode sorting dan aplikasinya2
Metode sorting dan aplikasinya2Metode sorting dan aplikasinya2
Metode sorting dan aplikasinya2maidah .
 
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
 
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)
 
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptxBerpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
 

More from Ajeng Savitri

Software Testing Documentation
Software Testing DocumentationSoftware Testing Documentation
Software Testing DocumentationAjeng Savitri
 
Software Productivity Measurement
Software Productivity MeasurementSoftware Productivity Measurement
Software Productivity MeasurementAjeng 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 StrategyAjeng Savitri
 
Object Oriented Testing
Object Oriented TestingObject Oriented Testing
Object Oriented TestingAjeng Savitri
 
Testing Technique (Part 2)
Testing Technique (Part 2)Testing Technique (Part 2)
Testing Technique (Part 2)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 QualityAjeng Savitri
 
Computer Evolution and Performance
Computer Evolution and PerformanceComputer Evolution and Performance
Computer Evolution and PerformanceAjeng Savitri
 
Software Testing - Introduction
Software Testing - IntroductionSoftware Testing - Introduction
Software Testing - IntroductionAjeng Savitri
 
Requirement Gathering
Requirement GatheringRequirement Gathering
Requirement GatheringAjeng 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