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 Pertemuan 05
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 Bubble sort average case, worst case, best case Pilih algoritma, hitung average, worst, best
Thank You ! Click to edit subtitle style