SlideShare uma empresa Scribd logo
1 de 24
Perbandingan algoritma brute
force , divide and conquer dan
         decrease and conquer

               Ervin yohannes (0910680055)
Brute force
Penjelasan
• Brute force adalah sebuah pendekatan
  yang sangat jelas(straightforward) untuk
  memecahkan suatu persoalan, biasanya
  didasarkan pada problem statement dan
  definisi konsep yang dilibatkan. Algoritma
  brute force memecahkan masalah dengan
  sangat sederhana, langsung dan dengan
  cara yang jelas.
Contoh
• Contoh algoritma yang menggunakan brute force antara lain :
  buble sort, convex hull, closest pair, travelling salesman
  problem, knapsack, string matching, dan selection sort.
• Contoh-contoh masalah yang dipecahkan secara brute force:
• Menghitung an (a > 0, n adalah bilangan bulat tak-negatif)
•
•       an = a × a × … × a (sebanyak n kali)           , jika n > 0
•          =1                                 , jika n = 0
•
•    Algoritma: kalikan 1 dengan a sebanyak n kali
Pseudocode
•   function pangkat(input a, n : integer) integer
•   { Menghitung an, a > 0 dan n bilangan bulat tak-negatif
•   Masukan: a, n
•   Keluaran: nilai perpangkatan.
•   }
•   Deklarasi
•   k, hasil : integer
•
•   Algoritma:
•   hasil 1
•   for k 1 to n do
•   hasil hasil * a
•   endfor
•   return hasil
•
Cara kerja
• Secara konseptual, brute force bekerja sebagai
  berikut:
• Mula-mula pattern dicocokkan pada awal teks.
• Dengan bergerak dari kiri ke kanan, bandingkan setiap
  karakter di dalam pattern dengan karakter yang
  bersesuaian di dalam teks sampai:
• semua karakter yang dibandingkan cocok atau sama
  (pencarian berhasil), atau
• dijumpai sebuah ketidakcocokan karakter (pencarian
  belum berhasil)
• Bila pattern belum ditemukan kecocokannya dan teks
  belum habis, geser pattern satu karakter ke kanan dan
  ulangi langkah 2.
Keunggulan brute force
• Metode brute force dapat digunakan untuk
  memecahkan hampir sebagian besar masalah (wide
  applicability).
• Metode brute force sederhana dan mudah dimengerti.
• Metode brute force menghasilkan algoritma yang
  layak untuk beberapa masalah penting seperti
  pencarian, pengurutan, pencocokan string, perkalian
  matriks.
• Metode brute force menghasilkan algoritma baku
  (standard) untuk tugas-tugas komputasi seperti
  penjumlahan/perkalian n buah bilangan, menentukan
  elemen minimum atau maksimum di dalam tabel (list).
Kelemahan brute force
• Metode brute force jarang menghasilkan
  algoritma yang mangkus.
• Beberapa algoritma brute force lambat
  sehingga tidak dapat diterima.
• Tidak sekontruktif/sekreatif teknik
  pemecahan masalah lainnya.
Kompleksitas dan running
           time
• Kompleksitas algoritma ini adalah O(n).
• Running time brute force adalah : n-1
  multiplications
Divide and Conquer
Penjelasan
• Strategi Divide dan Conquer memecah
  masalah menjadi submasalah-submasalah
  independen yang lebih kecil sehingga solusi
  submasalah-submasalah dapat diperoleh
  secara mudah, solusi submasalah-
  submasalah digabung menjadi solusi seluruh
  masalah. Contoh algoritma yang
  menggunakan divide and conquer antara lain
  : merge sort, quick sort, binary tree
  transversals, multiplication of large
  integers, dan matrix multiplication : strassen’s
  algorithm.
Skema umum algoritma
    divide and conquer
• Procedure DNC ( i,j : integer )
•    Var K : integer ;
•         If SMALL (i,j) then SOLVE (i,j)
•         Else begin
•               K : = DIVIDE (i,j)
Cara kerja
• SMALL adalah fungsi yang mengirim
  BOOLEAN, menentukan apakah ukuran telah
  cukup kecil sehingga solusi dapat diperoleh.
  Ukuran dinyatakan sebagai telah berukuran
  kecil bergantung masalah.
• DIVIDE adalah fungsi membagi menjadi 2
  bagian pada posisi K. Biasanya bagian
  berukuran sama.
• COMBINE adalah fungsi menggabungkan
  solusi X dan Y submasalah. Solusi diperoleh
  dengan memanggil prosedur rekursif DNC.
Teknik divide and conquer
Keunggulan dan
           kelemahan
• keunggulan:
• -Umumnya meningkatkan pada Brute Force dengan
  satu basis efisiensi kelas
• -Mudah untuk menganalisis menggunakan
  Recurrence Templates
• -Idealnya cocok untuk perhitungan paralel

• kelemahan:
• -Sering membutuhkan rekursi, yang menyebabkan
  overhead
• -Dapat diterapkan dan inferior untuk solusi algoritmik
  yang lebih sederhana
Kompleksitas dan running
           time
• kompleksitas algoritma O(n ²log n).
• Running time algoritma divide and
  conquer
  T(n) = 2*T(n/2) + 1
          = n-1
Decrease and conquer
Penjelasan
• metode desain algoritma dengan
  mereduksi persoalan menjadi beberapa
  sub-persoalan yang lebih kecil, tetapi
  selanjutnya hanya memproses satu sub-
  persoalan saja. Berbeda dengan divide
  and conquer yang memproses semua
  sub-persoalan dan menggabung semua
  solusi setiap sub-persoalan.
Jenis – jenis decrease and
          conquer
• Decrease by a constant
  Ukuran dari sebuah instansi dikurangi oleh
  ketetapan yang sama (biasanya satu) pada
  masing-masing algoritma.
• Decrease by a constant factor
  Ukuran dari sebuah masalah instansi dikurangi
  oleh factor ketetapan yang sama (biasanya 2)
  pada masing-masing iterasi dari algoritma.
• Variable size decrease
  Sebuah ukuran pola pengurangan yang berbeda
  dari satu iterasi ke iterasi lainnya.
Cara kerja
• Decrease: mereduksi persoalan menjadi
  beberapa persoalan yang lebih kecil
  (biasanya dua sub-persoalan).
• Conquer: memproses satu sub-persoalan
  secara rekursif. Tidak ada tahap combine
  dalam decrease and conquer.
Decrease by one and
  decrease by half
Kompleksitas dan running
           time
• Kompleksitas algoritma decrease and
  conquer adalah O(n2)
• Running time algoritma decrease and
  conquer
• Decrease by one
• T(n) = T(n-1) + 1 = n-1
• Decrease by constant factor
• T(n) = T(n/a) + a-1
•       = (a-1)     n
•       =       when a = 2
Kelemahan dan kelebihan
• -Dapat diimplementasikan baik top down
• (rekursif) atau bawah ke atas (tanpa rekursi)
• -Seringkali sangat efisien ( O (log n))
• -Mengarah ke suatu bentuk kuat dari grafik
  traversal
• (Breadth and Depth First Search)

• kelemahan:
• -Kurang berlaku secara luas (terutama penurunan
  oleh
• faktor konstan)
Terima kasih

Mais conteúdo relacionado

Mais procurados

Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Nabil Muhammad Firdaus
 
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAlgoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Ari Septiawan
 

Mais procurados (20)

Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)
 
PPT Matematika Diskrit - POHON
PPT Matematika Diskrit - POHONPPT Matematika Diskrit - POHON
PPT Matematika Diskrit - POHON
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 
Interupsi
InterupsiInterupsi
Interupsi
 
SLIDE KE:5 NFA
SLIDE KE:5 NFASLIDE KE:5 NFA
SLIDE KE:5 NFA
 
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
 
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAlgoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
 
Algoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendekAlgoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendek
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)
 
CFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik KompilasiCFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik Kompilasi
 
Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)
 
Penyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapPenyederhanaan Karnaugh Map
Penyederhanaan Karnaugh Map
 
Matematika Diskrit Relasi Rekursif
Matematika Diskrit Relasi RekursifMatematika Diskrit Relasi Rekursif
Matematika Diskrit Relasi Rekursif
 
Materi 6. perulangan
Materi 6. perulanganMateri 6. perulangan
Materi 6. perulangan
 
2. galat
2. galat2. galat
2. galat
 
Makalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik InformatikaMakalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik Informatika
 
Logika dan Pembuktian
Logika dan PembuktianLogika dan Pembuktian
Logika dan Pembuktian
 
Makalah Algoritma kruskal
Makalah Algoritma kruskalMakalah Algoritma kruskal
Makalah Algoritma kruskal
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
 

Semelhante a Perbandingan algoritma brute force , divide and conquer

pemrograman-dasar-cpp_03-ekspresi.pdf
pemrograman-dasar-cpp_03-ekspresi.pdfpemrograman-dasar-cpp_03-ekspresi.pdf
pemrograman-dasar-cpp_03-ekspresi.pdf
TriAgus18
 
01. Dasar-dasar Algoritma Pemrograman menggunakan Visual Basic
01. Dasar-dasar Algoritma Pemrograman menggunakan  Visual Basic01. Dasar-dasar Algoritma Pemrograman menggunakan  Visual Basic
01. Dasar-dasar Algoritma Pemrograman menggunakan Visual Basic
ArriWidyanto1
 
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
RadenMuhammadArfanFa
 
konsep & struktur algoritma
konsep & struktur algoritmakonsep & struktur algoritma
konsep & struktur algoritma
Rohwiyanto Oi
 

Semelhante a Perbandingan algoritma brute force , divide and conquer (20)

Analisis algoritma
Analisis algoritmaAnalisis algoritma
Analisis algoritma
 
Analisis Algoritma - Strategi Algoritma Brute Force
Analisis Algoritma - Strategi Algoritma Brute ForceAnalisis Algoritma - Strategi Algoritma Brute Force
Analisis Algoritma - Strategi Algoritma Brute Force
 
Pengenalan Analisis Algoritma.pdf
Pengenalan Analisis Algoritma.pdfPengenalan Analisis Algoritma.pdf
Pengenalan Analisis Algoritma.pdf
 
pemrograman-dasar-cpp_03-ekspresi.pdf
pemrograman-dasar-cpp_03-ekspresi.pdfpemrograman-dasar-cpp_03-ekspresi.pdf
pemrograman-dasar-cpp_03-ekspresi.pdf
 
Pk 1 kimia algo and flowchart
Pk 1 kimia algo and flowchartPk 1 kimia algo and flowchart
Pk 1 kimia algo and flowchart
 
Pk 1 kimia algo and flowchart
Pk 1 kimia algo and flowchartPk 1 kimia algo and flowchart
Pk 1 kimia algo and flowchart
 
1. Pengantar Strategi Algoritma.pptx
1. Pengantar Strategi Algoritma.pptx1. Pengantar Strategi Algoritma.pptx
1. Pengantar Strategi Algoritma.pptx
 
Algoritma Brute Force 12345678901112.ppt
Algoritma Brute Force 12345678901112.pptAlgoritma Brute Force 12345678901112.ppt
Algoritma Brute Force 12345678901112.ppt
 
Mathasm,sdcsl.pptx
Mathasm,sdcsl.pptxMathasm,sdcsl.pptx
Mathasm,sdcsl.pptx
 
informatika 2.pptx
informatika 2.pptxinformatika 2.pptx
informatika 2.pptx
 
BAB I . Pengenalan Algoritma.ppt
BAB I . Pengenalan Algoritma.pptBAB I . Pengenalan Algoritma.ppt
BAB I . Pengenalan Algoritma.ppt
 
01. Dasar-dasar Algoritma Pemrograman menggunakan Visual Basic
01. Dasar-dasar Algoritma Pemrograman menggunakan  Visual Basic01. Dasar-dasar Algoritma Pemrograman menggunakan  Visual Basic
01. Dasar-dasar Algoritma Pemrograman menggunakan Visual Basic
 
Decrease and Conquer in analysis of algorithms.pptx
Decrease and Conquer in analysis of algorithms.pptxDecrease and Conquer in analysis of algorithms.pptx
Decrease and Conquer in analysis of algorithms.pptx
 
Recursive pertemuan 5
Recursive pertemuan 5Recursive pertemuan 5
Recursive pertemuan 5
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
 
Algoritma greedy
Algoritma greedyAlgoritma greedy
Algoritma greedy
 
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
4 jna jgnodh5lp0cdaaykzgqjvmqseyyopejhq62g
 
algoritma_greedy.ppt
algoritma_greedy.pptalgoritma_greedy.ppt
algoritma_greedy.ppt
 
Pertemuan 1 Pendahuluan.pdf
Pertemuan 1 Pendahuluan.pdfPertemuan 1 Pendahuluan.pdf
Pertemuan 1 Pendahuluan.pdf
 
konsep & struktur algoritma
konsep & struktur algoritmakonsep & struktur algoritma
konsep & struktur algoritma
 

Último

Kisi kisi Ujian sekolah mata pelajaran IPA 2024.docx
Kisi kisi Ujian sekolah mata pelajaran IPA 2024.docxKisi kisi Ujian sekolah mata pelajaran IPA 2024.docx
Kisi kisi Ujian sekolah mata pelajaran IPA 2024.docx
FitriaSarmida1
 
Contoh PPT Seminar Proposal Teknik Informatika.pptx
Contoh PPT Seminar Proposal Teknik Informatika.pptxContoh PPT Seminar Proposal Teknik Informatika.pptx
Contoh PPT Seminar Proposal Teknik Informatika.pptx
IvvatulAini
 
KISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docx
KISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docxKISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docx
KISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docx
DewiUmbar
 

Último (20)

Konseptual Model Keperawatan Jiwa pada manusia
Konseptual Model Keperawatan Jiwa pada manusiaKonseptual Model Keperawatan Jiwa pada manusia
Konseptual Model Keperawatan Jiwa pada manusia
 
RENCANA + Link2 MATERI Training _"SISTEM MANAJEMEN MUTU (ISO 9001_2015)".
RENCANA + Link2 MATERI Training _"SISTEM MANAJEMEN MUTU (ISO 9001_2015)".RENCANA + Link2 MATERI Training _"SISTEM MANAJEMEN MUTU (ISO 9001_2015)".
RENCANA + Link2 MATERI Training _"SISTEM MANAJEMEN MUTU (ISO 9001_2015)".
 
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdfMODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
 
contoh-kisi-kisi-bahasa-inggris-kelas-9.docx
contoh-kisi-kisi-bahasa-inggris-kelas-9.docxcontoh-kisi-kisi-bahasa-inggris-kelas-9.docx
contoh-kisi-kisi-bahasa-inggris-kelas-9.docx
 
Skenario Lokakarya 2 Pendidikan Guru Penggerak
Skenario Lokakarya 2 Pendidikan Guru PenggerakSkenario Lokakarya 2 Pendidikan Guru Penggerak
Skenario Lokakarya 2 Pendidikan Guru Penggerak
 
Kisi kisi Ujian sekolah mata pelajaran IPA 2024.docx
Kisi kisi Ujian sekolah mata pelajaran IPA 2024.docxKisi kisi Ujian sekolah mata pelajaran IPA 2024.docx
Kisi kisi Ujian sekolah mata pelajaran IPA 2024.docx
 
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMKAksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
 
Topik 4_Eksplorasi Konsep LK Kelompok_Pendidikan Berkelanjutan
Topik 4_Eksplorasi Konsep LK Kelompok_Pendidikan BerkelanjutanTopik 4_Eksplorasi Konsep LK Kelompok_Pendidikan Berkelanjutan
Topik 4_Eksplorasi Konsep LK Kelompok_Pendidikan Berkelanjutan
 
Materi Modul 1.4_Fitriani Program guru penggerak
Materi Modul 1.4_Fitriani Program guru penggerakMateri Modul 1.4_Fitriani Program guru penggerak
Materi Modul 1.4_Fitriani Program guru penggerak
 
Contoh PPT Seminar Proposal Teknik Informatika.pptx
Contoh PPT Seminar Proposal Teknik Informatika.pptxContoh PPT Seminar Proposal Teknik Informatika.pptx
Contoh PPT Seminar Proposal Teknik Informatika.pptx
 
KISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docx
KISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docxKISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docx
KISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docx
 
Memperkasakan Dialog Prestasi Sekolah.pptx
Memperkasakan Dialog Prestasi Sekolah.pptxMemperkasakan Dialog Prestasi Sekolah.pptx
Memperkasakan Dialog Prestasi Sekolah.pptx
 
MODUL AJAR BAHASA INGGRIS KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INGGRIS KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INGGRIS KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INGGRIS KELAS 6 KURIKULUM MERDEKA.pdf
 
PPT BAHASA INDONESIA KELAS 1 SEKOLAH DASAR
PPT BAHASA INDONESIA KELAS 1 SEKOLAH DASARPPT BAHASA INDONESIA KELAS 1 SEKOLAH DASAR
PPT BAHASA INDONESIA KELAS 1 SEKOLAH DASAR
 
Webinar 1_Pendidikan Berjenjang Pendidikan Inklusif.pdf
Webinar 1_Pendidikan Berjenjang Pendidikan Inklusif.pdfWebinar 1_Pendidikan Berjenjang Pendidikan Inklusif.pdf
Webinar 1_Pendidikan Berjenjang Pendidikan Inklusif.pdf
 
Teks Debat Bahasa Indonesia Yang tegas dan lugas
Teks Debat Bahasa Indonesia Yang tegas dan lugasTeks Debat Bahasa Indonesia Yang tegas dan lugas
Teks Debat Bahasa Indonesia Yang tegas dan lugas
 
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptxBab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
 
Panduan Memahami Data Rapor Pendidikan 2024
Panduan Memahami Data Rapor Pendidikan 2024Panduan Memahami Data Rapor Pendidikan 2024
Panduan Memahami Data Rapor Pendidikan 2024
 
AKSI NYATA Numerasi Meningkatkan Kompetensi Murid_compressed (1) (1).pptx
AKSI NYATA  Numerasi  Meningkatkan Kompetensi Murid_compressed (1) (1).pptxAKSI NYATA  Numerasi  Meningkatkan Kompetensi Murid_compressed (1) (1).pptx
AKSI NYATA Numerasi Meningkatkan Kompetensi Murid_compressed (1) (1).pptx
 
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
 

Perbandingan algoritma brute force , divide and conquer

  • 1. Perbandingan algoritma brute force , divide and conquer dan decrease and conquer Ervin yohannes (0910680055)
  • 3. Penjelasan • Brute force adalah sebuah pendekatan yang sangat jelas(straightforward) untuk memecahkan suatu persoalan, biasanya didasarkan pada problem statement dan definisi konsep yang dilibatkan. Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas.
  • 4. Contoh • Contoh algoritma yang menggunakan brute force antara lain : buble sort, convex hull, closest pair, travelling salesman problem, knapsack, string matching, dan selection sort. • Contoh-contoh masalah yang dipecahkan secara brute force: • Menghitung an (a > 0, n adalah bilangan bulat tak-negatif) • • an = a × a × … × a (sebanyak n kali) , jika n > 0 • =1 , jika n = 0 • • Algoritma: kalikan 1 dengan a sebanyak n kali
  • 5. Pseudocode • function pangkat(input a, n : integer) integer • { Menghitung an, a > 0 dan n bilangan bulat tak-negatif • Masukan: a, n • Keluaran: nilai perpangkatan. • } • Deklarasi • k, hasil : integer • • Algoritma: • hasil 1 • for k 1 to n do • hasil hasil * a • endfor • return hasil •
  • 6. Cara kerja • Secara konseptual, brute force bekerja sebagai berikut: • Mula-mula pattern dicocokkan pada awal teks. • Dengan bergerak dari kiri ke kanan, bandingkan setiap karakter di dalam pattern dengan karakter yang bersesuaian di dalam teks sampai: • semua karakter yang dibandingkan cocok atau sama (pencarian berhasil), atau • dijumpai sebuah ketidakcocokan karakter (pencarian belum berhasil) • Bila pattern belum ditemukan kecocokannya dan teks belum habis, geser pattern satu karakter ke kanan dan ulangi langkah 2.
  • 7. Keunggulan brute force • Metode brute force dapat digunakan untuk memecahkan hampir sebagian besar masalah (wide applicability). • Metode brute force sederhana dan mudah dimengerti. • Metode brute force menghasilkan algoritma yang layak untuk beberapa masalah penting seperti pencarian, pengurutan, pencocokan string, perkalian matriks. • Metode brute force menghasilkan algoritma baku (standard) untuk tugas-tugas komputasi seperti penjumlahan/perkalian n buah bilangan, menentukan elemen minimum atau maksimum di dalam tabel (list).
  • 8. Kelemahan brute force • Metode brute force jarang menghasilkan algoritma yang mangkus. • Beberapa algoritma brute force lambat sehingga tidak dapat diterima. • Tidak sekontruktif/sekreatif teknik pemecahan masalah lainnya.
  • 9. Kompleksitas dan running time • Kompleksitas algoritma ini adalah O(n). • Running time brute force adalah : n-1 multiplications
  • 11. Penjelasan • Strategi Divide dan Conquer memecah masalah menjadi submasalah-submasalah independen yang lebih kecil sehingga solusi submasalah-submasalah dapat diperoleh secara mudah, solusi submasalah- submasalah digabung menjadi solusi seluruh masalah. Contoh algoritma yang menggunakan divide and conquer antara lain : merge sort, quick sort, binary tree transversals, multiplication of large integers, dan matrix multiplication : strassen’s algorithm.
  • 12. Skema umum algoritma divide and conquer • Procedure DNC ( i,j : integer ) • Var K : integer ; • If SMALL (i,j) then SOLVE (i,j) • Else begin • K : = DIVIDE (i,j)
  • 13. Cara kerja • SMALL adalah fungsi yang mengirim BOOLEAN, menentukan apakah ukuran telah cukup kecil sehingga solusi dapat diperoleh. Ukuran dinyatakan sebagai telah berukuran kecil bergantung masalah. • DIVIDE adalah fungsi membagi menjadi 2 bagian pada posisi K. Biasanya bagian berukuran sama. • COMBINE adalah fungsi menggabungkan solusi X dan Y submasalah. Solusi diperoleh dengan memanggil prosedur rekursif DNC.
  • 14. Teknik divide and conquer
  • 15. Keunggulan dan kelemahan • keunggulan: • -Umumnya meningkatkan pada Brute Force dengan satu basis efisiensi kelas • -Mudah untuk menganalisis menggunakan Recurrence Templates • -Idealnya cocok untuk perhitungan paralel • kelemahan: • -Sering membutuhkan rekursi, yang menyebabkan overhead • -Dapat diterapkan dan inferior untuk solusi algoritmik yang lebih sederhana
  • 16. Kompleksitas dan running time • kompleksitas algoritma O(n ²log n). • Running time algoritma divide and conquer T(n) = 2*T(n/2) + 1 = n-1
  • 18. Penjelasan • metode desain algoritma dengan mereduksi persoalan menjadi beberapa sub-persoalan yang lebih kecil, tetapi selanjutnya hanya memproses satu sub- persoalan saja. Berbeda dengan divide and conquer yang memproses semua sub-persoalan dan menggabung semua solusi setiap sub-persoalan.
  • 19. Jenis – jenis decrease and conquer • Decrease by a constant Ukuran dari sebuah instansi dikurangi oleh ketetapan yang sama (biasanya satu) pada masing-masing algoritma. • Decrease by a constant factor Ukuran dari sebuah masalah instansi dikurangi oleh factor ketetapan yang sama (biasanya 2) pada masing-masing iterasi dari algoritma. • Variable size decrease Sebuah ukuran pola pengurangan yang berbeda dari satu iterasi ke iterasi lainnya.
  • 20. Cara kerja • Decrease: mereduksi persoalan menjadi beberapa persoalan yang lebih kecil (biasanya dua sub-persoalan). • Conquer: memproses satu sub-persoalan secara rekursif. Tidak ada tahap combine dalam decrease and conquer.
  • 21. Decrease by one and decrease by half
  • 22. Kompleksitas dan running time • Kompleksitas algoritma decrease and conquer adalah O(n2) • Running time algoritma decrease and conquer • Decrease by one • T(n) = T(n-1) + 1 = n-1 • Decrease by constant factor • T(n) = T(n/a) + a-1 • = (a-1) n • = when a = 2
  • 23. Kelemahan dan kelebihan • -Dapat diimplementasikan baik top down • (rekursif) atau bawah ke atas (tanpa rekursi) • -Seringkali sangat efisien ( O (log n)) • -Mengarah ke suatu bentuk kuat dari grafik traversal • (Breadth and Depth First Search) • kelemahan: • -Kurang berlaku secara luas (terutama penurunan oleh • faktor konstan)