• Tidak ada hasil yang ditemukan

12 algoritma brute force

N/A
N/A
Presiden RI

Academic year: 2024

Membagikan "12 algoritma brute force "

Copied!
38
0
0

Teks penuh

(1)

BRUTE FORCE

Mata Kuliah Desain Algoritma 2

Joko Iskandar, M.Kom.

(2)

Capaian Pembelajaran

 Setelah mengikuti kuliah ini, mahasiswa dapat memahami tentang brute force

 Setelah mengikuti kuliah ini, mahasiswa dapat mengimplementasikannya algoritma brute force

(3)

3

Introduction

Brute force : pendekatan yang lempang (straightforward) untuk memecahkan suatu persoalan

Biasanya didasarkan pada:

pernyataan pada persoalan (problem statement) definisi konsep yang dilibatkan.

Algoritma brute force memecahkan persoalan dengan sangat sederhana,

langsung,

jelas (obvious way).

Just do it! atau Just Solve it!

(4)

Contoh-contoh

(Berdasarkan pernyataan persoalan)

1. Mencari elemen terbesar (terkecil)

Persoalan: Diberikan sebuah senarai yang

beranggotakan n buah bilangan bulat (a1, a2, …, an). Carilah elemen terbesar di dalam senarai tersebut.

(5)

5

procedure CariElemenTerbesar(input a1, a2, ..., an : integer, output maks : integer)

{ Mencari elemen terbesar di antara elemen a1, a2, ..., an. Elemen terbesar akan disimpan di dalam maks.

Masukan: a1, a2, ..., an

Keluaran: maks }Deklarasi

k : integer Algoritma:

maksa1

for k2 to n do if ak > maks then

maksak

endif

endfor Jumlah operasi perbandingan elemen: n – 1 Kompleksitas waktu algoritma: O(n).

(6)

2. Pencarian beruntun (Sequential Search)

Persoalan: Diberikan senarai yang berisi n buah bilangan bulat (a1, a2, …, an). Carilah nilai x di dalam senara tersebut. Jika x ditemukan, maka keluarannya adalah indeks elemen senarai, jika x tidak

ditemukan, maka keluarannya adalah -1.

Algoritma brute force (sequential search): setiap elemen senarai

(7)

7

Jumlah perbandingan elemen: n

Kompleksitas waktu algoritma: O(n).

Adakah algoritma pencarian elemen yang lebih mangkus daripada brute force?

(8)
(9)

Jumlah operasi kali: n

Kompleksitas waktu algoritma: O(n).

Adakah algoritma perpangkatan yang lebih mangkus daripada brute force?

(10)
(11)

11

function faktorial(n : integer)  integer { Menghitung n! }

Deklarasi

i : integer fak : real Algoritma:

fak 

for i 1 1 to n do fak  fak * i

end

return fak

Jumlah operasi kali: n

Kompleksitas waktu algoritma: O(n).

(12)
(13)

13

(14)

4. Tes Bilangan Prima

Persoalan: Diberikan sebuah bilangan bilangan bulat positif. Ujilah apakah bilangan tersebut merupakan bilangan prima atau bukan.

Definisi: bilangan prima adalah bilangan yang hanya habis dibagi oleh 1 dan dirinya sendiri.

Algoritma brute force: bagi n dengan 2 sampai n.

(15)

15

(16)

5. Algoritma Pengurutan Brute Force

• Algoritma apa yang memecahkan masalah pengurutan secara brute force?

Bubble sort dan selection sort!

(17)

17

Persoalan: Hitung nilai polinom

p(x) = anxn + an-1xn-1 + … + a1x

+ a0

untuk x = t.

Algoritma brute force: xi dihitung

secara brute force (seperti perhitungan an). Kalikan nilai xi dengan ai, lalu jumlahkan dengan suku-suku lainnya.

6. Mengevaluasi polinom

(18)
(19)

19

(20)

Karakteristik Algoritma Brute Force

(21)

21

(22)
(23)

23

(24)

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)

Algoritma brute force:

(25)

25

(26)
(27)

27

(28)
(29)

29

(30)
(31)

31

(32)
(33)

33

(34)
(35)

35

(36)
(37)

37 37

TUGAS INDIVIDU

• Misalkan kita menempuh perjalanan sejauh 100 km, dimulai dari titik 0 dan berakhir pada

kilometer 100. Di sepanjang jalan terdapat

SPBU pada jarak 10, 25, 30, 40, 50, 75, dan 80 km dari titik awal. Tangki bensin pada awalnya hanya cukup untuk berjalan sejauh 30 km.

Bagaimana kita menempuh tempat

pemberhentian agar kita berhenti sesedikit mungkin?

• Bagaimana penyelesaian dengan algoritma Brute Force? Jelaskan!

(38)

Thanks!

Referensi

Dokumen terkait

sehingga Robot Light Follower dapat bergerak mengikuti perbedaan intensitas cahaya pada ke tiga sensor kiri, tengah, kanan.. Apabila robot berbelok kiri, maka motor kanan

Pada implementasi algoritma brute force dalam aplikasi kamus istilah kesehatan ‘pattern’ memiliki fungsi sama dengan ‘Cari’ yang dilambangkan sebagai kata yang ingin

Abstraksi —Pada makalah ini akan dijelaskan penggunaan algoritma brute force untuk menentukan apakah kedua string yang dibandingkan adalah anagram atau

Berdasarkan penelitian yang dilakukan oleh penulis, penerapan algoritma Brute Force dapat bekerja di dalam aplikasi teks prediksi pesan.Teks prediksi pesan mampu memberikan

Kasus 2 Boyer-Moore, misal i adalah indeks pada teks dan j adalah indeks pada pattern, terjadi ketika T[i] dan P[j] tidak cocok dan tidak ada karakter sebelum indeks ke-j pada

Fungsi yang di gunakan untuk mengambil bagian kiri dari data teks sebanyak karakter tertentu adalah.... mengambil bagian bagian kanan dari data teks sebanyak

dilakukan dari kanan ke kiri seperti yang ditunjukkan pada gambar 2.5. Gambar 2.4 Pencocokan pada pattern y2 dimulai dari karakter

Pada contoh diatas, dengan melakukan pencocokan dari posisi paling akhir/kanan pattern dapat dilihat bahwa karakter “O” pada pattern “SUNTORO” tidak cocok