Algoritma Brute Force

dokumen-dokumen yang mirip
Algoritma Brute Force

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

Algoritma Brute Force (lanjutan)

Algoritma Brute Force (lanjutan)

Algoritma Brute Force Oleh: Rinaldi Munir

Algoritma Brute Force (Bagian 2) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Algoritma Brute Force(lanjutan) Lecture 6 CS3024

Strategi Algoritma Penyelesaian Puzzle Hanjie

Kompleksitas Algoritma

Design and Analysis Algorithm

Algoritma Divide and Conquer (Bagian 2)

Kompleksitas Algoritma (1)

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

Algoritma Brute Force

Algoritma Divide and Conquer. (Bagian 2)

Penerapan Algoritma Brute Force pada permainan Countdown Number

AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

Algoritma Brute Force dalam Pattern Matching pada Aplikasi Pendeteksian Potongan Citra

Kompleksitas Algoritma

Algoritma Brute Force

Penerapan Algoritma Brute Force dalam mencari Faktor Prima pada suatu Bilangan

BAB II LANDASAN TEORI

PENGURUTAN (SORTING) 1. Introduction 2. Bubble Sort 3. Selection Sort 4. Insertion Sort

Divide and Conqueradalah strategi militer yang dikenal dengan nama divide ut imperes.

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

MODUL IV PENCARIAN DAN PENGURUTAN

Pengurutan (Sorting) Algoritma Pemrograman

Penerapan Algoritma Brute Force di Permainan Nonogram

Penerapan Algoritma Brute Force pada Permainan Kartu 24 (24 game)

Algoritma Brute Force pada Fluid Particle Engine

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

Design and Analysis of Algorithm

Algoritma Divide and Conquer (Bagian 1)

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

Kompleksitas Algoritma

ALGORITMA DIVIDE AND CONQUER

Matematika Diskrit Kompleksitas Algoritma. Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

Pengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok:

MAKALAH ALGORITMA DIVIDE AND CONQUER

Decrease and Conquer

Penggunaan Algoritma Knuth-Morris-Pratt untuk Pengecekan Ejaan

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

Analisis Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore dalam Proses Pencarian String

Algoritma Exhaustive Search Dalam Permainan Congklak

Kompleksitas Algoritma

Array (Tabel) bagian 2

Menebak Password RAR Menggunakan RAR Password Recovery Magic dengan Algoritma Brute Force

Design and Analysis of Algorithms CNH2G3- Week 6 Brute Force Algorithm Part 1: Design Strategy

Penerapan Algoritma Brute Force pada Teka-teki Magic Square 3 x 3

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 05

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Algoritma Pencarian String dalam Pemilihan Anggota Sebuah Organisasi

Bubble Sort (Pengurutan Gelembung / Pemberatan)

Penggunaan Algoritma Greedy dalam Optimasi Masalah Perkebunan

Pendahuluan. Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi.

Algoritma Pencarian String Knuth-Morris-Pratt Dalam Pengenalan Tulisan Tangan

PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

Implementasi Brute Force dan Greedy dalam Permainan Big Two (Capsa)

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

PENGGUNAAN EXHAUSTIVE SEARCH SEBAGAI SOLUSI PERMAINAN SCRAMBLE

Algoritma Runut-balik (Backtracking) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

BAB II LANDASAN TEORI

Searching [pencarian] Algoritma Pemrograman

ALGORITMA PENGURUTAN & PENCARIAN

Kompleksitas Algoritma

Algoritma Pemrograman

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Design and Analysis of Algorithms CNH2G3- Week 4 Kompleksitas waktu algoritma rekursif part 1

Penerapan Algoritma dan Bilangan Bulat Dalam Kebijakan Migrasi di Pemerintahan Indonesia

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

Teknik Pengurutan Kartu Remi

PERSEGI ANGKA-HURUF VERTIKAL

ALGORITMA RUNUT-BALIK UNTUK MENGGANTIKAN ALGORITMA BRUTE FORCE DALAM PERSOALAN N-RATU

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

PENGGUNAAN ALGORITMA GREEDY PADA MESIN PENCARI

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

BAB VI SEARCHING (PENCARIAN)

Algoritma Runut-balik (Backtracking) Bagian 1

PENGGUNAAN BRUTE FORCE UNTUK MERETAS PASSWORD FILE RAR

Nama : Suseno Rudiansyah NPM : Kelas : X2T Prodi : Teknik Informatika Tugas : Kuis Algoritma 2

CCH1A4 / Dasar Algoritma & Pemrogramanan

Algoritma dan Pemrograman 2 PENGURUTAN

Algoritma Pemrograman

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 07

Penerapan algoritma Greedy dalam penentuan Porter Generic Strategies untuk suatu perusahaan

BAB VII ALGORITMA DIVIDE AND CONQUER

BAB 2 LANDASAN TEORI

Algoritma Pemrograman

Transkripsi:

Algoritma Brute Force

Deskripsi Materi ini membahas tentang algoritma brute force dengan berbagai studi kasus

Definisi Brute Force Straighforward (lempeng) Sederhana dan jelas Lebih mempertimbangkan solusi dari problem Tanpa mempertimbangkan efisiensi Dengan cara meminimumkan jumlah operasi

Contoh-contoh Brute Force Menghitung a n (a > 0, n adalah bilangan bulat taknegatif) a n = a x a x x a (n kali), jika n > 0 = 1, jika n = 0 Algoritma: kalikan 1 dengan a sebanyak n kali

Menghitung n! (n bilangan bulat tak-negatif) n! = 1 2 3 n, jika n > 0 = 1, jika n = 0 Algoritma: kalikan n buah bilangan, yaitu 1, 2, 3,, n, bersama-sama

Mengalikan dua buah matrik yang berukuran n n. Misalkan C = A B dan elemen-elemen matrik dinyatakan sebagai c ij, a ij, dan b ij c ij a b a b i1 1 j i 2 2 j a in b nj n k 1 a ik b kj Algoritma: hitung setiap elemen hasil perkalian satu per satu, dengan cara mengalikan dua vektor yang panjangnya n.

Algoritma Perkalian Matriks procedure PerkalianMatriks(input A, B : Matriks, input n : integer, output C : Matriks) 1 2 3 4 5 6 7 8 for i1 to n do for j1 to n do C[i,j]0 { inisialisasi penjumlah } for k 1 to n do C[i,j]C[i,j] + A[i,k]*B[k,j] endfor endfor endfor

Mencari elemen terbesar (atau terkecil) Persoalan: Diberikan sebuah himpunan yang beranggotakan n buah bilangan bulat. Bilanganbilangan bulat tersebut dinyatakan sebagai a 1, a 2,, a n. Carilah elemen terbesar di dalam himpunan tersebut.

Algoritma Cari Elemen Terbesar procedure CariElemenTerbesar (input a1, a2,..., an : integer, output maks : integer) 1 2 maksa 1 for k2 to n do 3 if a k > maks then 4 5 6 endif endfor maksa k

Sequential Search Persoalan: Diberikan n buah bilangan bulat yang dinyatakan sebagai a 1, a 2,, a n. Carilah apakah x terdapat di dalam himpunan bilangan bulat tersebut. Jika x ditemukan, maka lokasi (indeks) elemen yang bernilai x disimpan di dalam peubah idx. Jika x tidak terdapat di dalam himpunan tersebut, maka idx diisi dengan nilai 0.

Algoritma Pencarian Beruntun procedure PencarianBeruntun (input a1, a2,..., an : integer, x : integer, output idx : integer) 1 k1 2 while (k < n) and (a k x) do 3 k k + 1 4 endwhile 5 { k = n or a k = x } 6 if a k = x then { x ditemukan } 7 idxk 8 else 9 idx 0 { x tidak ditemukan } 10 endif

Bubble Sort Apa metode yang paling lempang dalam memecahkan masalah pengurutan? Jawabnya adalah algoritma pengurutan bubble sort. Algoritma bubble sort mengimplementasikan teknik brute force dengan jelas sekali.

Algoritma Bubble Sort procedure BubbleSort (input/output L : TabelInt, input n : integer) 1 for i 1 to n - 1 do 2 for k n downto i + 1 do 3 if L[k] < L[k-1] then 4 {pertukarkan L[k] dengan L[k-1]} 5 temp L[k] 6 L[k] L[k-1] 7 L[k-1] temp 8 endif 9 endfor 10 endfor

Karakteristik Algoritma Brute Force Mudah diimplementasikan Tidak cerdas dan tidak efektif Butuh jumlah langkah yang besar Naïve algorithm. Kata force mengindikasikan tenaga ketimbang otak Seringkali bukan pilihan yang disukai Dapat ditemukan algoritma yang lebih cerdas dan efektif Dengan mencari pola-pola yang mendasar, keteraturan, atau trik-trik khusus Kadang brute force lebih tepat daripada algoritma lain, ditinjau dari implementasinya Hampir semua permasalahan dapat diselesaikan dengan brute force Malah, ada beberapa masalah yang hanya bisa diselesaikan dengan brute force

Kekuatan Metode Brute Force Digunakan untuk memecahkan hampir sebagian besar masalah (wide applicability). Sederhana dan mudah dimengerti. Menghasilkan algoritma yang layak untuk beberapa masalah penting seperti pencarian, pengurutan, pencocokan string, perkalian matriks. Menghasilkan algoritma baku (standard) untuk tugas-tugas komputasi seperti penjumlahan/perkalian n buah bilangan, menentukan elemen minimum atau maksimum di dalam tabel (list).

Kelemahan Metode Brute Force Metode brute force jarang menghasilkan algoritma yang efektif Beberapa algoritma brute force lambat sehingga tidak dapat diterima Tidak sekontruktif/sekreatif teknik pemecahan masalah lainnya Ken Thompson (salah seorang penemu Unix) mengatakan: When in doubt, use brute force, faktanya kernel Unix yang asli lebih menyukai algoritma yang sederhana dan kuat (robust) daripada algoritma yang cerdas tapi rapuh

Latihan Buatlah suatu algoritma brute force untuk pencocokan string. Persoalan: Diberikan a. teks (text), yaitu (long) string yang panjangnya n karakter b. pattern, yaitu string dengan panjang m karakter (m < n) yang akan dicari di dalam teks. Carilah lokasi pertama di dalam teks yang bersesuaian dengan pattern. Jika pattern/sub-string ditemukan maka return valuenya berupa posisi substring tersebut. Jika sub-string tidak ditemukan maka return valuenya bernilai -1