Desain dan Analisis Algoritma

Slides:



Advertisements
Presentasi serupa
Algoritma Pencarian String (String Matching)
Advertisements

STRUKTUR DATA (3) sorting array
Sorting (Pengurutan).
Pengantar Strategi Algoritma
Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir
STRUKTUR DATA (3) sorting array
SORTING.
Algoritma & Struktur Data Sorting Evangs Mailoa.
Algoritma Brute Force Oleh: Rinaldi Munir
Source: Sorting Algorithms source:
STRUKTUR DATA (4) Sorting dan Searching Array
Algoritma Pencarian String (String Matching)
Desain dan Analisis Algoritma
Design and Analysis Algorithm
Algoritma Brute Force Oleh: Rinaldi Munir
Design and Analysis Algorithm
Algoritma Brute Force (lanjutan)
Algoritma Brute Force Oleh: Rinaldi Munir
Pengurutan (Sorting) Diperlukan untuk mempercepat pencaharian suatu target dalam suatu daftar (list). Jenis Pengurutan:  Ascending Pengurutan dilakukan.
Algoritma Divide and Conquer (Bagian 1) Wahyul Wahidah Maulida, ST., M.Eng.
12-CRS-0106 REVISED 8 FEB 2013 CSG523/ Desain dan Analisis Algoritma Divide and Conquer Intelligence, Computing, Multimedia (ICM)
Algoritma Brute Force Oleh: Muhammad Musta’in ( )
Sorting Algorithm Norma Amalia, ST, M.Eng.
Algoritma dan Pemrograman – Pertemuan 3 & 4 Sorting (Pengurutan)
Algoritma Brute Force.
MATERI PERKULIAHAN ANALISIS ALGORITMA
Algoritma Bruteforce Team Fasilkom.
KUG1A3 Algoritma& Pemrograman
CSG3F3/ Desain dan Analisis Algoritma
LANJUTAN DARI SHORTING
Bahan Kuliah IF2211 Strategi Algoritma Oleh: Rinaldi Munir
Algoritma dan Struktur Data
MATERI PERKULIAHAN ANALISIS ALGORITMA
Algoritma dan Struktur Data 1 pertemuan 12
Algoritma Divide and Conquer
Algoritma Bruteforce (disarikan dari diktat Strategi Algoritma, Rinaldi Munir) Team Fasilkom.
SORTING (Lanjut).
Sorting.
Sistem Berkas – Sesi 12 dan 13
Metode pemecahan masalah
Pengenalan Analisis Algoritma
STRUKTUR DATA sorting array
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
Desain dan Analisis Algoritma
Dasar – dasar Pemrograman
Shorting (Pengurutan)
Bubble sort.
Sorting.
ALGORITMA BRUTE FORCE Pertemuan 3.
Algoritma Brute Force.
STRUKTUR DATA (3) sorting array
SORTING ARRAY SESI 2.
Algoritma Divide and Conquer
Algoritma Divide and Conquer
Algoritma Divide and Conquer
Algoritma Divide and Conquer
Pertemuan 4 Sorting (1) jual [Valdo] Lunatik Chubby Stylus.
IT234 Algoritma dan Struktur Data
Algoritma Divide and Conquer
Sorting Dasar Pemrograman
PEMROGRAMAN Belajar memrogram : belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi yang mudah dipahami Belajar bahasa.
Algoritma Brute Force.
Struktur Data Oleh: Suhendro
Pengantar Strategi Algoritma
IT234 Algoritma dan Struktur Data
Pengurutan (sorting).
IT234 Algoritma dan Struktur Data
Defri Kurniawan SORTING Defri Kurniawan
SORTING.
Transcript presentasi:

Desain dan Analisis Algoritma Pertemuan 5 Brute Force

Salah satu teknik desain algoritma Brute Force Salah satu teknik desain algoritma Brute force adalah sebuah pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah, biasanya didasarkan pada pernyataan masalah (problem statement) dan definisi konsep yang dilibatkan.   Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas (obvious way).

Example 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

Example 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

Brute Force Sorting Apa sorting itu? A0 ≤ A1 ≤ A2 ≤ … An-1 ≤ An Perhatikan bahwa setelah sorting : A0 merupakan elemen dengan nilai terkecil A1 merupakan elemen dengan nilai terkecil setelah A0 … An merupakan elemen dengan nilai terbesar

Brute Force Sorting Dengan definisi di atas, susunlah algoritma brute force untuk mensorting A[0..n-1]

Brute Force Sorting

Selection Sort

Selection Sort Analisalah kompleksitas waktu selection sort Ө(n2)

Alternative Brute Force Sorting Apa sorting itu? A0 ≤ A1 ≤ A2 ≤ … An-1 ≤ An Perhatikan bahwa setelah sorting : A0 ≤ A1 A1 ≤ A2 A2 ≤ A3 …

Bubble Sort Algorithm bubbleSort(A[0..n-1]) //mensorting array A menggunakan bubble sort //input : array A[0..n-1] //output : array A[0..n-1] dalam keadaan terurut naik for i ← 0 to n – 2 do for j ← 0 to n – 2 – i do if A[j + 1] < A[j] swap A[j] and A[j + 1]

Bubble Sort Analisalah kompleksitas waktu bubble sort Ө(n2)

Karakteristik Brute Force Algoritma brute force umumnya tidak “cerdas” dan tidak mangkus, karena ia membutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kata “force” mengindikasikan “tenaga” ketimbang “otak” Kadang-kadang algoritma brute force disebut juga algoritma naif (naïve algorithm).

Karakteristik Brute Force 2. Algoritma brute force lebih cocok untuk masalah yang berukuran kecil. Pertimbangannya: - sederhana, - implementasinya mudah Algoritma brute force sering digunakan sebagai basis pembanding dengan algoritma yang lebih mangkus.

Karakteristik Brute Force 3. Meskipun bukan metode yang mangkus, hampir semua masalah dapat diselesaikan dengan algoritma brute force. Sukar menunjukkan masalah yang tidak dapat diselesaikan dengan metode brute force. Bahkan, ada masalah yang hanya dapat diselesaikan dengan metode brute force. Contoh: mencari elemen terbesar di dalam senarai. Contoh lainnya?

Contoh-contoh lain Pencocokan String (String Matching) Persoalan: Diberikan a. teks (text), yaitu (long) string dengan panjang n karakter b. pattern, yaitu string dengan panjang m karakter (asumsi: m < n) Carilah lokasi pertama di dalam teks yang bersesuaian dengan pattern.

Algoritma brute force: 1. Mula-mula pattern dicocokkan pada awal teks. 2. 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) 3. Bila pattern belum ditemukan kecocokannya dan teks belum habis, geser pattern satu karakter ke kanan dan ulangi langkah 2.

Contoh Mencari Pasangan Titik yang Jaraknya Terdekat (Closest Pairs) Persoalan: Diberikan n buah titik (2-D atau 3- D), tentukan dua buah titik yang terdekat satu sama lain.

Jarak dua buah titik, p1 = (x1, y1) dan p2 = (x2, y2) dihitung dengan rumus Euclidean: Algoritma brute force: 1. Hitung jarak setiap pasang titik. 2. Pasangan titik yang mempunyai jarak terpendek itulah jawabannya. • Algoritma brute force akan menghitung sebanyak C(n, 2) = n(n – 1)/2 pasangan titik dan memilih pasangan titik yang mempunyai jarak terkecil. Kompleksitas algoritma adalah O(n2).

Kekuatan dan Kelemahan Metode Brute Force Kekuatan: 1. Metode brute force dapat digunakan untuk memecahkan hampir sebagian besar masalah (wide applicability). 2. Metode brute force sederhana dan mudah dimengerti. 3. Metode brute force menghasilkan algoritma yang layak untuk beberapa masalah penting seperti pencarian, pengurutan, pencocokan string, perkalian matriks. 4. 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: 1. Metode brute force jarang menghasilkan algoritma yang mangkus. 2. Beberapa algoritma brute force lambat sehingga tidak dapat diterima. 3. Tidak sekontruktif/sekreatif teknik pemecahanmasalah lainnya.