Dosen Pengampu:
Widya Darwin,
S.Pd,.M.Pd.T.
Segala puji syukur kami panjatkan kepada Tuhan Yang Maha Esa. Atas rahmat dan
karunia- Nya, kami dapat menyelesaikan tugas penulisan makalah mata kuliah Peranc. & Analisa
Algoritma tepat waktu. Tidak lupa shalawat serta salam tercurah kepada Rasulullah SAW yang
syafa'atnya kita nantikan kelak.
Penulisan makalah berjudul “Algoritma Brute Force” dapat diselesaikan karena
bantuan banyak pihak. Kami berharap makalah ini dapat menjadi referensi bagi pihak yang tertarik
pada bidang pemrograman. Selain itu, kami juga berharap agar pembaca mendapatkan sudut
pandang baru setelah membaca makalah ini.
Penulis menyadari makalah ini masih memerlukan penyempurnaan, terutama pada bagian
isi. Kami menerima segala bentuk kritik dan saran pembaca demi penyempurnaan makalah. Apabila
terdapat banyak kesalahan pada makalah ini, kami memohon maaf.
Demikian yang dapat kami sampaikan. Akhir kata, semoga makalah kelompok
kami ini dapat bermanfaat.
Penulis
ii
DAFTAR ISI
KATA PENGANTAR........................................................................................................................ii
DAFTAR ISI......................................................................................................................................iii
BAB I PENDAHULUAN..................................................................................................................iv
1.1 Latar Belakang........................................................................................................................iv
1.2 Rumusan Masalah...................................................................................................................iv
1.3 Tujuan Penulisan.....................................................................................................................iv
BAB II PEMBAHASAN...................................................................................................................5
2.1 Pengertian Algoritma Brute Force.........................................................................................5
2.2 Kelebihan dan Kelemahan Algoritma Brute Force...............................................................5
2.3 Karakteristik Algoritma Brute Force.....................................................................................6
2.4 Menyelesaikan Exhaustive Search dengan Brute Force.......................................................7
2.5 Cara Kerja Algoritma Brute Force........................................................................................9
2.6 Contoh Penerapan Algoritma Brute Force..........................................................................10
BAB III PENUTUP..........................................................................................................................13
3.1 Kesimpulan.............................................................................................................................13
3.2 Saran........................................................................................................................................13
DAFTAR PUSTAKA.......................................................................................................................14
iii
BAB I PENDAHULUAN
iv
BAB II PEMBAHASAN
Brute Force (Rinaldi Munir, 2004, p. 2) adalah sebuah pendekatan langsung (straight forward)
untuk memecahkan suatu masalah, yang biasanya didasarkan pada pernyataan masalah (problem
statement) dan definisi konsep yang dilibatkan. Pada dasarnya algoritma Brute Force adalah alur
penyelesaian suatu permasalahan dengan cara berpikir yang sederhana dan tidak membutuhkan
suatu permikiran yang lama.
Sebenarnya, algoritma Brute Force merupakan algoritma yang muncul karena pada dasarnya
alur pikir manusia adalah Brute Force (langsung/to the point). Jadi, Algoritma Brute Force
merupakan algoritma pencocokan string yang ditulis tanpa memikirkan peningkatan performa.
Algoritma ini sangat jarang dipakai dalam praktik, namun berguna dalam studi pembanding dan
studi-studi lainnya.
Banyak yang mengatakan bahwa algoritma brute force merupakan jenis algoritma yang
sifatnya straight, lurus atau bisa juga disebut sebagai algoritma yang lempeng. Algoritma brute
force merupakan bentuk algoritma yang sangat kompleks, karena untuk dapat menyelesaikan
masalah dengan teknik straight forward atau lempeng ini, dibutuhkan banyak masukan dan juga
pertimbangan secara logis, sehingga dapat diperoleh sebuah keputusan pemecahan masalah yang
langsung mengacu atau menuju kepada hasil yang diinginkan.
Karena merupakan sebuah algoritma yang memecahkan masalah secara jelas, dan
melalui banyak opini atau pilihan, maka algoritma brute force merupakan sebuah metode
pemecahan masalah logis yang memiliki kemampuan untuk memperoleh pemecahan masalah
dengan baik. Dengan mempertimbangan banyak opsi, metode algoritma brute force mampu
untuk menyaring satu dari sekian banyak solusi atau opsi
yang ditawarkan, sehingga proses pemecahan masalah yang dilakukan akan menjadi lebih baik
dan juga lebih optimal. Hampir semua masalah yang dipecahkan dengan menggunakan metode
5
algoritma brute force ini berjalan dengan baik.
6
2.2.2 Kelemahan Algoritma Brute Force
7
Dalam beberapa kasus tertentu algoritma Brute Force hampir sama dengan Exhaustive Search.
Exhaustive Search yang merupakan teknik pencarian solusi secara Brute Force pada masalah
yang melibatkan pencarian elemen dengan sifat khusus.
Exhaustive Search adalah teknik pencarian solusi secara Brute Force untuk masalah yang
melibatkan pencarian elemen dengan sifat khusus. Biasanya elemen tersebut berada di antara objek-
objek kombinatorik seperti permutasi, kombinasi, atau himpunan bagian dari sebuah himpunan.
Berdasarkan definisi ini, maka dapat ditarik kesimpulan bahwa Exhaustive Search adalah Brute
Force juga. Oleh karena itu Exhaustive Search adalah salah satu implementasi dari Brute Force
dalam kasus pencarian. Masalah-masalah dalam Exhaustive Search dengan penerapan algoritma
Brute Force dapat dirumuskan langkah - langkahnya sebagai berikut:
b. Evaluasi setiap kemungkinan solusi yang ditemukan satu per satu, meskipun terdapat
beberapa kemungkinan ditemukannya solusi yang tidak layak atau bahkan terdapat
kemungkinan„kemungkinan solusi terbaik yang telah ditemukan dan dievaluasi.
c. Bila pencarian sudah sampai pada tujuan, maka pilih solusi yang terbaik.
Jika diamati, langkah-langkah algoritma ini mirip dengan metode pencarian Generate and Test.
Generate and Test akan memeriksa satu per satu seluruh solusi yang mungkin kemudian
menentukan solusi mana yang terbaik. Kelemahan metode ini adalah besarnya cost dan time yang
diperlukan untuk data kompleks.
Kali ini, pembahasan bukan pada teori algoritma exhautive search. Langsung fokus ke
implementasi algoritma exhautive search untuk rekomendasi jadwal rapat. Sebagai studi kasus,
dilakukan pencarian rekomendasi jadwal rapat untuk dosen. Hal ini menarik karena algoritma harus
menentukan solusi terbaik jadwal rapat yang tidak bentrok dengan jadwal mengajar dosen. Atau jika
bentrok dengan jadwal mengajar dosen, sistem harus mencari solusi terbaik dengan tingkat bentrok
8
yang paling minimum. Mengapa harus menggunakan sistem untuk atur jadwal rapat dosen? Coba
bayangkan, seandainya di suatu prodi hanya ada 6 dosen dan puluhan jadwal mengajar, mungkin
saja mampu menentukan jadwal rapat secara manual. Bagaimana jika sebaliknya, ada puluhan
dosen dan ratusan jadwal mengajar. Apa kaprodinya tidak pusing menentukan jadwal rapat
9
2.5 Cara Kerja Algoritma Brute Force
Secara sistematis, langkah-langkah yang dilakukan algoritma brute force pada saat
mencocokkan string adalah:
10
Jadi secara keselurhuan cara kerjanya yaitu:
• Enumerasi (list) setiap solusi yang mungkin dengan cara yang sistematis.
• Evaluasi setiap kemungkinan solusi satu per satu dan simpan solusi terbaik yang ditemukan
sampai sejauh ini (the best solusi found so far).
• Bila pencarian solusi berakhir, umumkan solusi terbaik (the winner).
Berikut ini adalah contoh-contoh penerapan algoritma Brute Force pada perhitungan matematika
biasa.
1. Menghitung an (a > 0, n adalah bilangan bulat tak-negatif)
11
Menghitung n! (n bilangan bulat tak-negatif)
n! = 1 × 2 × 3 × … × n , jika n > 0
=1 , jika n = 0
Misalkan C = A × B dan elemen-elemen matrik dinyatakan sebagai cij, aij, dan bij. Algoritma:
hitung setiap elemen hasil perkalian satu per satu, dengan cara mengalikan dua vektor baris dan
kolom yang panjangnya n.
3. Menemukan semua faktor dari bilangan bulat n selain dari 1 dan n itu sendiri.
Definisi: Bilangan bulat a adalah faktor dari bilangan bulat b jika a habis membagi
b.
Diberikan sebuah himpunan yang beranggotakan n buah bilangan bulat. Bilanganbilangan bulat
tersebut dinyatakan sebagai al, a2, …, an. Carilah elemen terbesar di dalam himpunan tersebut.
5. Sequential Search
Diberikan n buah bilangan bulat yang dinyatakan sebagai al, a2, …, an. 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.
6. Bubble Sort
Algoritma Bubble Sort mengimplementasikan teknik Brute Force dengan jelas sekali. Karena
algoritma tersebut yang paling simple, baik dalam hal pengertian maupun penerapannya. Ide
dari algoritma ini adalah mengulang proses pembanding antara tiap — tiap elemen array dan
menukarnya apabila urutannya salah. Pembandingan elemen — elemen ini akan terus diulang
hingga tidak perlu dilakukan penukaran lagi. Algoritma ini termasuk dalam golongan algoritma
comparison sort, karena menggunakan perbandingan dalam operasi antar elemennya. Berikut ini
12
adalah gambaran
13
dari algoritma bubble sort. Misalkan kita mempunyai sebuah array dengan elemen “4 2 8 3 ;”. Proses
yang akan terjadi apabila menggunakan algoritma bubble sort adalah sebagai berikut.
Algoritma Brute Force pada penyelesaian masalah @napsack dilakukan dengan menghitung
satu per satu keuntungan yang diperoleh dari semua kemungkinan pemilihan barang yang ada.
Banyaknya kemungkinan pemilihan barang tersebut dapat dirumuskan sebagai: 1n.
Adapun n adalah jumlah dari barang yang akan dikirim. Jadi, seandainya banyak barang yang
akan dikirm 5 buah, maka untuk mencari solusi optimal diperlukan 2 5 = 32 kemungkinan.
Memang, akan didapatkan hasil yang sangat optimal mengingat akan ditelusuri satu per satu
kemungkinan yang ada, tetapi akan sangat membutuhkan waktu yang sangat lama (perhitungan
manual) dan memori yang besar (jika menggunakan program komputer) untuk jumlah barang
yang ada sangat banyak
14
BAB III PENUTUP
3.1 Kesimpulan
Algoritma merupakan langkah atau cara untuk menyelesaikan suatu masalah. Algoritma juga
sangat dekat dengan kehidupan sehari — hari manusia. Pada kasus ini yang dibahas adalah
Algoritma Brute Force dimana algoritma ini merupakan alur penyelesaian suatu permasalahan
dengan cara berpikir yang sederhana dan tidak membutuhkan suatu pemikiran yang lama. Dan
Algoritma Brute Force ini juga banyak memiliki jenis algoritma yang berbeda — beda sesuai dengan
masalah yang dihadapi program atau yang dibutuhkan untuk menyelesaikan sebuah masalah dengan
program. Algoritma Brute Force cocok untuk menyelesaikan permasalahan pencarian tingkat
kemiripan. Untuk ukuran citra yang lebih besar, proses penentuan tingkat kemiripan akan lebih
lambat,sehingga diperlukan algoritma yang lebih efektif.
3.2 Saran
Diperlukan penelitian lebih lanjut dengan menggunakan algoritma lainnya sehingga proses dapat
lebih efektif lagi.
15
DAFTAR PUSTAKA
Afif, N., 2018. Implementasi Algoritma Brute Force Dalam Perancangan Aplikasi Penelusuran
Skripsi. Jurnal INSTEK, Volume 3, p. 10.
Aryo Pinandito, S. M., 2017. Chisiki No Yama. [Online]
Available at: http://aryo.lecture.ub.ac.id/files/2013/03/DAA-III-Brute-Force.pptx [Accessed 05 10
2020].
Budiasa, R. M., 2009. Aplikasi Sederhana Pattern Matching dengan Algoritma Brute Force. Volume
1.
Butarbutar, R. V., 2014. Penerapan Algoritma Brute Force pada perancangan Aplikasi Kamusta
Bahasa Indonesia - Inggris berbasis Android, Medan: s.n.
Munir, R., 2004. Makalah Algoritma Brute Force Departmen Teknik Informatika,
s.l.: Institusi Teknologi Bandung.
16