BAB II
METODE BRUTE FORCE
Pengertian
Brute force adalah
sebuah pendekatan yang sangat jelas
(straightforward) untuk memecahkan suatu persoalan, biasanya
didasarkan pada problem statement dan definisi konsep yang
dilibatkan.
Algoritma brute
force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara
yang jelas .
Cara kerja Algoritma Brute Force
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)
Karakteristik Algoritma Brute Force
Algoritma brute
force sebenarnya bukanlah algoritma yang “cerdas” dan mangkus(efisien),
karena ia membutuhkan jumlah langkah yang besar/banyak dalam penyelesaiannya
dan tentu saja membutuhkan waktu yang berbanding lurus dengan jumlah langkah
penyelesaiannya. Kadang-kadang algoritma brute force disebut juga
algoritma naif (naïve algorithm).
Algoritma brute
force seringkali merupakan pilihan yang kurang disukai karena
ketidakmangkusannya itu, tapi kalau mencari pola2 dasar, keteraturan, atau
trik-trik khusus, biasanya dapat membantu membantu untuk menemukan algoritma
yang lebih cerdas dan lebih mangkus lagi.
Untuk persoalan yang
kecil, kesederhanaan brute force lebih diperhitungkan daripada
ketidakmangkusannya. Algoritma brute force sering digunakan sebagai
basis bila membandingkan beberapa alternatif algoritma yang mangkus.
Meskipun brute
force bukan merupakan teknik pemecahan masalah yang mangkus, namun
teknik brute force dapat diterapkan pada sebagian besar persoalan.
Bayangkan..,sangat sulit menemukan masalah yang tidak dapat dipecahkan dengan
teknik brute force, tapi ada masalah yang hanya dapat dipecahkan
secara brute force.
Kelebihan Algoritma Brute Force
1. Algoritma
Brute Force dapat digunakan untuk memecahkan hampir sebagian besar masalah
(wide applicability).
2. Algoritma
Brute Force mudah dimengerti.
3. Algoritma
Brute Force menghasilkan algoritma yang layak untuk beberapa masalah
penting seperti pencarian, pengurutan, pencocokan
string, perkalian matriks.
4. Algoritma
Brute Force menghasilkan algoritma baku (standard) untuk tugas-tugas komputasi,
seperti penjumlahan/perkalian
buah bilangan, menentukan elemen minimum atau maksimum di dalam
tabel (list).
Kekurangan Algoritma Brute Force
1. Algoritma Brute Force jarang
menghasilkan algoritma yang efisien.
2 Beberapa Algoritma Brute
Force lambat sehingga tidak dapat diterima.
3. Algoritma Brute Force Tidak
sekontruktif/sekreatif teknik pemecahan masalah lainnya.
STRAWBERRY PROLOG
Strawberry Prolog
dihasilkan oleh Institut Matematika dan Informatika pada Akademi Ilmu
Pengetahuan Bulgaria . Versi pertama dirilis pada tahun
1996. Pemimpin tim Strawberry Dimiter Dobrev.
Strawberry Prolog
adalah dialek dari bahasa pemrograman Prolog. Sintaks-nya adalah sangat dekat
dengan ISO-Prolog tetapi memiliki banyak ekstensi yang bukan bagian dari
standar. Gagasan utama dari Strawberry Prolog adalah sangat mudah digunakan.
Prolog adalah bahasa
pemrograman logika atau disebut juga bahasa non prosedural. Prolog
disebut sebagai object oriented language atau declarative language. Dalam
prolog tidak terdapat prosedur, tetapi hanya tampilan data-data object (fakta)
yang akan diolah dengan relasi antar object yang membentuk suatu aturan.
Aturan-aturan ini disebut heuristikdan diperlukan dalam mencari suatu
jawaban, dengan kata lain, prolog dalam prolog adalah database.
JENIS PROLOG
1. Strawberry Prolog
Strawberry Prolog adalah dialek dari bahasa pemrograman Prolog.
Sintaksnya sangat dekat dengan ISO-Prolog tetapi memiliki banyak ekstensi yang
bukan bagian dari standar. Gagasan utama dari Strawberry Prolog sangat mudah
digunakan dan oleh karena itu beberapa universitas menggunakan prolog untuk
kursus .
2. Visual Prolog
Visual
prolog sebelumnya dikenal sebagai PDC prolog dan turbo prolog merupakan bahasa
pemrograman prolog yang berorientasi objek. Sebagai turbo prolog dipasarkan
oleh Borland, tetapi sekarang dikembangkan dan dipasarkan oleh perusahaan
Denmark Pusat Pengembangan Prolog (PDC). Visual Prolog dapat membangun
Microsoft Windows GUI-aplikasi, aplikasi konsol, DLL (Dynamic Link Libraries).
3. SWI Prolog
SWI
Prolog merupakan open source implementasi bahasa pemrograman Prolog, biasanya
digunakan untuk pengajaran dan semantic web aplikasi. Memiliki seperangkat kaya
fitur, perpustakaan untuk logika pemrograman kendala, multithreading, Unit
testing, GUI, dll. SWI Prolog berjalan pada UNIX, Windows, dan Machintosh.
link anggota kelompok :