300 likes | 451 Views
Design and Analysis Algorithm. Drs. Achmad Ridok M.Kom Fitra A. Bachtiar, S.T., M. Eng Imam Cholissodin , S. Si ., M.Kom Aryo Pinandito , MT. Pertemuan 05. Algoritma Brute Force 1. Definisi Brute Force. Brute force : pendekatan straight forward untuk memecahkan suatu masalah
E N D
Design and Analysis Algorithm • Drs. AchmadRidokM.Kom • Fitra A. Bachtiar, S.T., M. Eng • ImamCholissodin, S.Si., M.Kom • AryoPinandito, MT Pertemuan05
Definisi Brute Force Brute force : pendekatan straight forward untukmemecahkansuatumasalah Algoritma brute force memecahkanmasalahdengansangatsederhana, langsung, danjelas(obvious way)
Contoh-contoh(Berdasarkanpernyataanmasalah) Mencarielementerbesar(terkecil) Persoalan: Diberikansebuah array yang beranggotakan n buahbilanganbulat(a1, a2, ..., an).Carilahelementerbesardidalam array tersebut. Algoritma brute force: bandingkansetiapelemen array untukmenemukanelementerbesar Kompleksitas O(n)
Contoh-contoh(Berdasarkanpernyataanmasalah) Mencarielementerbesar (terkecil)
Contoh-contoh(Berdasarkanpernyataanmasalah) Pencarianberuntun (Sequential Search) Persoalan: Diberikan array yang berisi n buahbilanganbulat (a1, a2, ..., an). Carilahnilai x didalam array tersebut. Jika x ditemukan, makakeluarannyaadalahindekselemen array, jika x tidakditemukan, makakeluarannyaadalah 0. Algoritma brute force (sequential serach): setiapelemen array dibandingkandengan x. Pencarianselesaijika x ditemukanatauelemen array sudahhabisdiperiksa. Kompleksitas O(n)
Contoh-contoh(Berdasarkanpernyataanmasalah) Pencarianberuntun (sequential search)
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Menghitung an(a > 0, n adalahbilanganbulattak-negatif) Definisi: an= a x a x ... x a (n kali) , jika n>0 = 1, jika n = 0 Algoritma brute force: kalikan 1 dengan a sebanyak n kali Kompleksitas O(n)
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Menghitungpangkat
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Menghitung n! (n bilanganbulattak-negatif) Definisi: n!=1 ×2×3×...×n, jika n>0 = 1, jika n = 0 Algoritma brute force: kalikan n buahbilangan, yaitu 1, 2, 3, ..., n, bersama-sama Kompleksitas O(n)
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Menghitungfaktorial
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Mengalikanduabuahmatriks, A dan B Definisi: Misalkan C = A × B danelemen-elemenmatrikdinyatakansebagaicij, aij, danbij Algoritma brute force: hitungsetiapelemenhasilperkaliansatuper satu, dengancaramengalikanduavektoryang panjangnya n.
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Mengalikanduabuahmatriks
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Menemukansemuafaktordaribilanganbulat n (selaindari1 dan n itusendiri). Definisi: Bilanganbulata adalahfaktordaribilanganbulat b jikaa habismembagi b. Algoritma brute force: bagi n dengansetiap i = 2, 3, ..., n – 1. Jika n habismembagii, maka I adalahfaktordari n.
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Menemukanfaktorbilanganbulat n
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) UjikeprimaanPersoalan: Diberikansebuahbilanganbilanganbulatpositif. Ujilahapakahbilangantersebutmerupakanbilanganprima ataubukan. Definisi: bilangan prima adalahbilanganyang hanyahabisdibagioleh1 dandirinyasendiri. Algoritmabrute force: bagi n dengan2 sampai n–1. Jikasemuanyatidakhabismembagi n, maka n adalahbilangan prima Perbaikan: cukupmembagidengan2 sampai √n saja
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Ujibilangan prima
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) AlgoritmaPengurutan Brute Force, Algoritmaapayang paling lempangdalammemecahkanmasalahpengurutan? Bubble sort dan selection sort! Keduaalgoritmainimemperlihatkanteknikbrute force denganjelassekali.
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Bubble Sort Mulaidarielemenke-n: 1. Jikasn< sn-1, pertukarkan 2. Jika sn-1 < sn-2, pertukarkan ... 3. Jika s2< s1, pertukarkan 1 kali pass Ulangilagiuntukpass ke-i
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Bubble sort
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Selection Sort Pass ke–1: 1.Cari elementerbesarmulaididalams[1..n] 2.Letakkan elementerbesarpadaposisi n (pertukaran) Pass ke-2: 1.Cari elementerbesarmulaididalams[1..n - 1] 2.Letakkan elementerbesarpadaposisi n - 1 (pertukaran) Ulangisampaihanyatersisa1 elemen
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Selection sort
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Mengevaluasipolinom Persoalan: Hitungnilaipolinom p(x)=anxn +an-1xn-1 +...+a1x +a0 untuk x = t. Algoritma brute force: xi dihitungsecarabrute force (sepertiperhitunganan). Kalikannilai xi denganai, lalujumlahkandengansuku-sukulainnya.
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Analisapolinom
Contoh-contoh (Berdasarkandefinisikonsep yang terlibat) Perbaikan (improve)
KarakteristikAlgoritmaBrute Force Algoritma brute force umumnyatidak“cerdas” dantidakcepat, karenaiamembutuhkanjumlahlangkahyang besardalampenyelesaiannya. Kata “force” mengindikasikan “tenaga” ketimbang “otak” Kadang-kadangalgoritmabrute force disebutjugaalgoritmanaif (naïve algorithm).
KarakteristikAlgoritmaBrute Force • Algoritma brute force lebihcocokuntukmasalahyang berukurankecil. • Pertimbangannya: • sederhana, • Implementasinyamudah • Algoritma brute force seringdigunakansebagaibasis pembandingdenganalgoritmayang lebihcepat.
KarakteristikAlgoritmaBrute Force Meskipunbukanmetodeyang cepat, hampirsemuamasalahdapatdiselesaikandenganalgoritma brute force. Sukarmenunjukkanmasalahyang tidakdapatdiselesaikandenganmetodebrute force. Bahkan, adamasalahyang hanyadapatdiselesaikandenganmetodebrute force. Contoh: mencarielementerbesardidalam array.
Tugas Buatlahalgoritmaberikutdengankompleksitasnya Pencocokan String (String Matching) Mencaripasangantitik yang jaraknyaterdekat (Closest pairs) Travelling Salesman Problem (TSP) Knapsack Problem
Thank You ! Click to edit subtitle style