SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
ANALISIS ALGORITMA
Strategi Algoritma: Brute Force
Pemateri:
Adam Mukharil Bachtiar
adam@email.unikom.ac.id
Setelah memahami kompleksitas
suatu algoritma maka kita bisa
mengusahakan agar kompleksitas
tersebut lebih efisien.
Untuk bisa memahami efisiensi
kompleksitas maka kita harus
memahami strategi algoritma
terlebih dahulu.
Ada beberapa strategi algoritma yang
digunakan pada algoritma dan salah
satunya adalah brute force.
Brute Force:
Sebuah pendekatan yang lempang (straightforward) untuk
memecahkan masalah yang didasarkan pada pernyataan
masalah dan definisi konsep yang dilibatkan.
Karakteristik:
1 Umumnya tidak cerdas dan tidak mangkus (terkadang disebut sebagai
Naïve Algorithm).
2 Seringkali dijadikan landasan untuk mencari strategi lain yang lebih
efisien dan optimal.
3 Mudah untuk diimplementasikan karena kesederhanaannya.
(+):
1 Dapat digunakan untuk memecahkan sebagian besar masalah.
2 Sederhana dan mudah dimengerti.
3 Menghasilkan algoritma yang layak untuk beberapa masalah penting
seperti pencarian, pengurutan, pencocokan string, dan perkalian matriks
3 Menghasilkan algoritma baku untuk tugas-tugas komputasi seperti
penjumlahan/perkalian n buah bilangan, menentukan elemen
minimum/maximum pada suatu list.
(-):
1 Jarang menghasilkan algoritma yang mangkus.
2 Beberapa algoritmanya lambat dan tidak bisa diterima.
3 Tidak sekreatif strategi lainnya.
Untuk bisa melihat strategi algoritma
Brute Force mari kita lihat beberapa
contoh penerapannya.
Untuk bisa melihat strategi algoritma
Brute Force mari kita lihat beberapa
contoh penerapannya.
Kasus 1: Menghitung operasi aritmatika
Problem:
Menghitung !"
(a>0, n adalah bilangan bulat tak negative)
Pola Pikir:
Kalikan 1 dengan a sebanyak n kali
!"
= !. !. !. … . ! (n kali), jika & > 0
= 1, jika & = 0
Problem:
Menghitung !! (n adalah bilangan bulat tak negative)
Pola Pikir:
Kalikan n buah bilangan, yaitu 1, 2, 3, … ,n bersama-sama
!! = 1 % 2 % 3 % … % !, jika ! > 0
= 1, jika ! = 0
Problem:
Menghitung perkalian dua matriks berukuran n x n
Pola Pikir:
Hitung setiap elemen hasil perkalian satu-persatu, dengan cara
mengalikan dua vektor yang panjangnya n
!"# = %"&'&# + %")')# + … + %"+'+#
= ∑-.&
+
%"-'-#
Problem:
Mencari bilangan terbesar pada suatu himpunan bilangan
Pola Pikir:
Anggap bilangan pertama adalah yang terbesar kemudian
bandingkan dengan bilangan lain satu-persatu, apabila lebih
besar bilangan lain maka jadikan bilangan tersebut bilangan
terbesar.
Kasus 2: Sequential Search
Given an array to be processed:
Number
Data that want to be sought : 9
• Number[1] = 9?
• Number[2] = 9?
• Number[3] = 9?
Result: 9 is found in number[3]
5 1 9 4 2
[1] [2] [3] [4] [5]
FOUND ß FALSE
FOUND ß FALSE
FOUND ß TRUE (STOP SEARCH)
Ada yang lebih
mangkus daripada
Brute Force?
Kasus 3: Bubble Sort
Array: 5 3 7 9 2 3 6 4 3 1
L. 1 3 5 7 2 3 6 4 3 1 9
L. 2 3 5 2 3 6 4 3 1 7 9
L. 3 3 2 3 5 4 3 1 6 7 9
L. 4 2 3 3 4 3 1 5 6 7 9
L. 5 2 3 3 3 1 4 5 6 7 9
L. 6 2 3 3 1 3 4 5 6 7 9
L. 7 2 3 1 3 3 4 5 6 7 9
L. 8 2 1 3 3 3 4 5 6 7 9
L. 9 1 2 3 3 3 4 5 6 7 9
Analisis Algoritma - Strategi Algoritma Brute Force

Contenu connexe

Tendances

Metode pencarian heuristik
Metode pencarian heuristikMetode pencarian heuristik
Metode pencarian heuristik
Baguss Chandrass
 
Pertemuan 2-pemecahan-masalah-ai
Pertemuan 2-pemecahan-masalah-aiPertemuan 2-pemecahan-masalah-ai
Pertemuan 2-pemecahan-masalah-ai
willyhayon
 
Makalah n-queen problem
Makalah n-queen problemMakalah n-queen problem
Makalah n-queen problem
Eghan Jaya
 
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
 
Metode numerik untuk menyelesaikan sistem persamaan linier
Metode numerik untuk menyelesaikan sistem persamaan linierMetode numerik untuk menyelesaikan sistem persamaan linier
Metode numerik untuk menyelesaikan sistem persamaan linier
ahmad puji ardi
 

Tendances (20)

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
 
Analisis Algoritma - Pengantar Analisis Algoritma
Analisis Algoritma - Pengantar Analisis AlgoritmaAnalisis Algoritma - Pengantar Analisis Algoritma
Analisis Algoritma - Pengantar Analisis Algoritma
 
Metode interpolasi linier
Metode  interpolasi linierMetode  interpolasi linier
Metode interpolasi linier
 
Metode pencarian heuristik
Metode pencarian heuristikMetode pencarian heuristik
Metode pencarian heuristik
 
Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)
 
Pertemuan 05 Teknik Pencarian (Search) -lanjutan
Pertemuan 05 Teknik Pencarian (Search) -lanjutanPertemuan 05 Teknik Pencarian (Search) -lanjutan
Pertemuan 05 Teknik Pencarian (Search) -lanjutan
 
Pertemuan 2-pemecahan-masalah-ai
Pertemuan 2-pemecahan-masalah-aiPertemuan 2-pemecahan-masalah-ai
Pertemuan 2-pemecahan-masalah-ai
 
Algoritma Greedy
Algoritma GreedyAlgoritma Greedy
Algoritma Greedy
 
Metode numerik persamaan non linier
Metode numerik persamaan non linierMetode numerik persamaan non linier
Metode numerik persamaan non linier
 
PPT Matematika Diskrit - POHON
PPT Matematika Diskrit - POHONPPT Matematika Diskrit - POHON
PPT Matematika Diskrit - POHON
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
 
Makalah n-queen problem
Makalah n-queen problemMakalah n-queen problem
Makalah n-queen problem
 
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
 
Program dan Flowchart Perkalian Matriks
Program dan Flowchart Perkalian MatriksProgram dan Flowchart Perkalian Matriks
Program dan Flowchart Perkalian Matriks
 
Metode numerik untuk menyelesaikan sistem persamaan linier
Metode numerik untuk menyelesaikan sistem persamaan linierMetode numerik untuk menyelesaikan sistem persamaan linier
Metode numerik untuk menyelesaikan sistem persamaan linier
 
Modul 3 kongruensi
Modul 3   kongruensiModul 3   kongruensi
Modul 3 kongruensi
 
Metode numerik pertemuan 7 (interpolasi lagrange)
Metode numerik pertemuan 7 (interpolasi lagrange)Metode numerik pertemuan 7 (interpolasi lagrange)
Metode numerik pertemuan 7 (interpolasi lagrange)
 
Bab 2 perhitungan galat
Bab 2  perhitungan galatBab 2  perhitungan galat
Bab 2 perhitungan galat
 

Similaire à Analisis Algoritma - Strategi Algoritma Brute Force

Similaire à Analisis Algoritma - Strategi Algoritma Brute Force (20)

Analisis algoritma
Analisis algoritmaAnalisis algoritma
Analisis algoritma
 
Analisis Algoritma - Langkah Desain Algoritma
Analisis Algoritma - Langkah Desain AlgoritmaAnalisis Algoritma - Langkah Desain Algoritma
Analisis Algoritma - Langkah Desain Algoritma
 
informatika 2.pptx
informatika 2.pptxinformatika 2.pptx
informatika 2.pptx
 
Algoritma
AlgoritmaAlgoritma
Algoritma
 
Desain dan analisis algoritma
Desain dan analisis algoritmaDesain dan analisis algoritma
Desain dan analisis algoritma
 
Cepat mahir dengan matlab
Cepat mahir dengan matlabCepat mahir dengan matlab
Cepat mahir dengan matlab
 
Diktat Panduan Matlab
Diktat Panduan MatlabDiktat Panduan Matlab
Diktat Panduan Matlab
 
Dasar Dasar MATLAB
Dasar Dasar MATLABDasar Dasar MATLAB
Dasar Dasar MATLAB
 
Tutorial Matlab
Tutorial MatlabTutorial Matlab
Tutorial Matlab
 
Dasar dasar matlab
Dasar dasar matlabDasar dasar matlab
Dasar dasar matlab
 
Wirman algoritma
Wirman algoritmaWirman algoritma
Wirman algoritma
 
Praktik matlab
Praktik matlabPraktik matlab
Praktik matlab
 
Kelompok 1 Brute Force - PPT.pptx
Kelompok 1 Brute Force - PPT.pptxKelompok 1 Brute Force - PPT.pptx
Kelompok 1 Brute Force - PPT.pptx
 
Tutorial Praktis Belajar Matlab Teguh W
Tutorial Praktis Belajar Matlab Teguh WTutorial Praktis Belajar Matlab Teguh W
Tutorial Praktis Belajar Matlab Teguh W
 
BERPIKIR KOMPUTESIONAL 3.ppt
BERPIKIR KOMPUTESIONAL 3.pptBERPIKIR KOMPUTESIONAL 3.ppt
BERPIKIR KOMPUTESIONAL 3.ppt
 
1. Pengantar Strategi Algoritma.pptx
1. Pengantar Strategi Algoritma.pptx1. Pengantar Strategi Algoritma.pptx
1. Pengantar Strategi Algoritma.pptx
 
Panduan matlab
Panduan matlabPanduan matlab
Panduan matlab
 
Mat lab
Mat labMat lab
Mat lab
 
Matlab
MatlabMatlab
Matlab
 
Praktik dengan matlab
Praktik dengan matlabPraktik dengan matlab
Praktik dengan matlab
 

Plus de Adam Mukharil Bachtiar

Plus de Adam Mukharil Bachtiar (20)

Materi 8 - Data Mining Association Rule.pdf
Materi 8 - Data Mining Association Rule.pdfMateri 8 - Data Mining Association Rule.pdf
Materi 8 - Data Mining Association Rule.pdf
 
Clean Code - Formatting Code
Clean Code - Formatting CodeClean Code - Formatting Code
Clean Code - Formatting Code
 
Clean Code - Clean Comments
Clean Code - Clean CommentsClean Code - Clean Comments
Clean Code - Clean Comments
 
Clean Method
Clean MethodClean Method
Clean Method
 
Clean Code and Design Pattern - Meaningful Names
Clean Code and Design Pattern - Meaningful NamesClean Code and Design Pattern - Meaningful Names
Clean Code and Design Pattern - Meaningful Names
 
Model Driven Software Development
Model Driven Software DevelopmentModel Driven Software Development
Model Driven Software Development
 
Scrum: How to Implement
Scrum: How to ImplementScrum: How to Implement
Scrum: How to Implement
 
Pengujian Perangkat Lunak
Pengujian Perangkat LunakPengujian Perangkat Lunak
Pengujian Perangkat Lunak
 
Data Mining Clustering
Data Mining ClusteringData Mining Clustering
Data Mining Clustering
 
Data Mining Klasifikasi (Updated 30 Desember 2020)
Data Mining Klasifikasi (Updated 30 Desember 2020)Data Mining Klasifikasi (Updated 30 Desember 2020)
Data Mining Klasifikasi (Updated 30 Desember 2020)
 
Activity Diagram
Activity DiagramActivity Diagram
Activity Diagram
 
UML dan Use Case View
UML dan Use Case ViewUML dan Use Case View
UML dan Use Case View
 
Validasi ide Menggunakan Javelin Board (Idea Validation)
Validasi ide Menggunakan Javelin Board (Idea Validation)Validasi ide Menggunakan Javelin Board (Idea Validation)
Validasi ide Menggunakan Javelin Board (Idea Validation)
 
Mini Google Design Sprint
Mini Google Design SprintMini Google Design Sprint
Mini Google Design Sprint
 
Scrum: How to Implements (Update)
Scrum: How to Implements (Update)Scrum: How to Implements (Update)
Scrum: How to Implements (Update)
 
Business Model Canvas: Cara Pengisian
Business Model Canvas: Cara PengisianBusiness Model Canvas: Cara Pengisian
Business Model Canvas: Cara Pengisian
 
SCRUM: How to implements
SCRUM: How to implementsSCRUM: How to implements
SCRUM: How to implements
 
Tugas Besar RPL 1
Tugas Besar RPL 1Tugas Besar RPL 1
Tugas Besar RPL 1
 
RPL 1 (Lama) - Pengujian Perangkat Lunak
RPL 1 (Lama) - Pengujian Perangkat LunakRPL 1 (Lama) - Pengujian Perangkat Lunak
RPL 1 (Lama) - Pengujian Perangkat Lunak
 
RPL 1 (Lama) - Template Dokumen Perancangan Perangkat Lunak
RPL 1 (Lama) - Template Dokumen Perancangan Perangkat LunakRPL 1 (Lama) - Template Dokumen Perancangan Perangkat Lunak
RPL 1 (Lama) - Template Dokumen Perancangan Perangkat Lunak
 

Analisis Algoritma - Strategi Algoritma Brute Force

  • 1. ANALISIS ALGORITMA Strategi Algoritma: Brute Force Pemateri: Adam Mukharil Bachtiar adam@email.unikom.ac.id
  • 2. Setelah memahami kompleksitas suatu algoritma maka kita bisa mengusahakan agar kompleksitas tersebut lebih efisien.
  • 3. Untuk bisa memahami efisiensi kompleksitas maka kita harus memahami strategi algoritma terlebih dahulu.
  • 4. Ada beberapa strategi algoritma yang digunakan pada algoritma dan salah satunya adalah brute force.
  • 5. Brute Force: Sebuah pendekatan yang lempang (straightforward) untuk memecahkan masalah yang didasarkan pada pernyataan masalah dan definisi konsep yang dilibatkan.
  • 6. Karakteristik: 1 Umumnya tidak cerdas dan tidak mangkus (terkadang disebut sebagai Naïve Algorithm). 2 Seringkali dijadikan landasan untuk mencari strategi lain yang lebih efisien dan optimal. 3 Mudah untuk diimplementasikan karena kesederhanaannya.
  • 7. (+): 1 Dapat digunakan untuk memecahkan sebagian besar masalah. 2 Sederhana dan mudah dimengerti. 3 Menghasilkan algoritma yang layak untuk beberapa masalah penting seperti pencarian, pengurutan, pencocokan string, dan perkalian matriks 3 Menghasilkan algoritma baku untuk tugas-tugas komputasi seperti penjumlahan/perkalian n buah bilangan, menentukan elemen minimum/maximum pada suatu list.
  • 8. (-): 1 Jarang menghasilkan algoritma yang mangkus. 2 Beberapa algoritmanya lambat dan tidak bisa diterima. 3 Tidak sekreatif strategi lainnya.
  • 9. Untuk bisa melihat strategi algoritma Brute Force mari kita lihat beberapa contoh penerapannya. Untuk bisa melihat strategi algoritma Brute Force mari kita lihat beberapa contoh penerapannya.
  • 10. Kasus 1: Menghitung operasi aritmatika
  • 11. Problem: Menghitung !" (a>0, n adalah bilangan bulat tak negative) Pola Pikir: Kalikan 1 dengan a sebanyak n kali !" = !. !. !. … . ! (n kali), jika & > 0 = 1, jika & = 0
  • 12. Problem: Menghitung !! (n adalah bilangan bulat tak negative) Pola Pikir: Kalikan n buah bilangan, yaitu 1, 2, 3, … ,n bersama-sama !! = 1 % 2 % 3 % … % !, jika ! > 0 = 1, jika ! = 0
  • 13. Problem: Menghitung perkalian dua matriks berukuran n x n Pola Pikir: Hitung setiap elemen hasil perkalian satu-persatu, dengan cara mengalikan dua vektor yang panjangnya n !"# = %"&'&# + %")')# + … + %"+'+# = ∑-.& + %"-'-#
  • 14.
  • 15. Problem: Mencari bilangan terbesar pada suatu himpunan bilangan Pola Pikir: Anggap bilangan pertama adalah yang terbesar kemudian bandingkan dengan bilangan lain satu-persatu, apabila lebih besar bilangan lain maka jadikan bilangan tersebut bilangan terbesar.
  • 16.
  • 18. Given an array to be processed: Number Data that want to be sought : 9 • Number[1] = 9? • Number[2] = 9? • Number[3] = 9? Result: 9 is found in number[3] 5 1 9 4 2 [1] [2] [3] [4] [5] FOUND ß FALSE FOUND ß FALSE FOUND ß TRUE (STOP SEARCH)
  • 19. Ada yang lebih mangkus daripada Brute Force?
  • 21. Array: 5 3 7 9 2 3 6 4 3 1 L. 1 3 5 7 2 3 6 4 3 1 9 L. 2 3 5 2 3 6 4 3 1 7 9 L. 3 3 2 3 5 4 3 1 6 7 9 L. 4 2 3 3 4 3 1 5 6 7 9 L. 5 2 3 3 3 1 4 5 6 7 9 L. 6 2 3 3 1 3 4 5 6 7 9 L. 7 2 3 1 3 3 4 5 6 7 9 L. 8 2 1 3 3 3 4 5 6 7 9 L. 9 1 2 3 3 3 4 5 6 7 9