SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Bab 2 Aljabar Relasional
Bab 2   Aljabar RelasionalBab 2   Aljabar Relasional
Bab 2 Aljabar Relasional
Ratzman III
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
BAIDILAH Baidilah
 
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
 
Logika informatika-8 (1)
Logika informatika-8 (1)Logika informatika-8 (1)
Logika informatika-8 (1)
Jackzid
 

Was ist angesagt? (20)

Analisis Algoritma - Strategi Algoritma Greedy
Analisis Algoritma - Strategi Algoritma GreedyAnalisis Algoritma - Strategi Algoritma Greedy
Analisis Algoritma - Strategi Algoritma Greedy
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)
 
Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsi
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
 
SLIDE KE:5 NFA
SLIDE KE:5 NFASLIDE KE:5 NFA
SLIDE KE:5 NFA
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03
 
Bab 2 Aljabar Relasional
Bab 2   Aljabar RelasionalBab 2   Aljabar Relasional
Bab 2 Aljabar Relasional
 
8 logika predikat
8  logika predikat8  logika predikat
8 logika predikat
 
Algoritma greedy
Algoritma greedyAlgoritma greedy
Algoritma greedy
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
 
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
 
Metode interpolasi linier
Metode  interpolasi linierMetode  interpolasi linier
Metode interpolasi linier
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
 
Beberapa distribusi peluang kontinu
Beberapa distribusi peluang kontinuBeberapa distribusi peluang kontinu
Beberapa distribusi peluang kontinu
 
Logika informatika-8 (1)
Logika informatika-8 (1)Logika informatika-8 (1)
Logika informatika-8 (1)
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
 
Representasi Pengetahuan
Representasi PengetahuanRepresentasi Pengetahuan
Representasi Pengetahuan
 
Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )
 

Ähnlich wie 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
 
Met num1 pendahuluan-new
Met num1 pendahuluan-newMet num1 pendahuluan-new
Met num1 pendahuluan-new
Alen Pepa
 

Ähnlich wie 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
 
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
 
Metode Numerik Hybrid, pertemuan pertama
Metode Numerik Hybrid, pertemuan pertamaMetode Numerik Hybrid, pertemuan pertama
Metode Numerik Hybrid, pertemuan pertama
 
Met num1 pendahuluan-new
Met num1 pendahuluan-newMet num1 pendahuluan-new
Met num1 pendahuluan-new
 

Kürzlich hochgeladen

HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.pptHAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
nabilafarahdiba95
 
Kenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).pptKenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).ppt
novibernadina
 
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
pipinafindraputri1
 
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
 

Kürzlich hochgeladen (20)

RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...
RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...
RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...
 
PPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptxPPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptx
 
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
 
Program Kerja Public Relations - Perencanaan
Program Kerja Public Relations - PerencanaanProgram Kerja Public Relations - Perencanaan
Program Kerja Public Relations - Perencanaan
 
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.pptHAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
 
Konseptual Model Keperawatan Jiwa pada manusia
Konseptual Model Keperawatan Jiwa pada manusiaKonseptual Model Keperawatan Jiwa pada manusia
Konseptual Model Keperawatan Jiwa pada manusia
 
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTXAKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
 
PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...
PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...
PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...
 
Materi Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptxMateri Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptx
 
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
 
Kenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).pptKenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).ppt
 
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
 
Pengenalan Figma, Figma Indtroduction, Figma
Pengenalan Figma, Figma Indtroduction, FigmaPengenalan Figma, Figma Indtroduction, Figma
Pengenalan Figma, Figma Indtroduction, Figma
 
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
 
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
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA.pdf
 
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
 
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptx
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptxTEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptx
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptx
 
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHANTUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
 
PANDUAN PENGEMBANGAN KSP SMA SUMBAR TAHUN 2024 (1).pptx
PANDUAN PENGEMBANGAN KSP SMA SUMBAR TAHUN 2024 (1).pptxPANDUAN PENGEMBANGAN KSP SMA SUMBAR TAHUN 2024 (1).pptx
PANDUAN PENGEMBANGAN KSP SMA SUMBAR TAHUN 2024 (1).pptx
 

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)