Kamis, 12 Januari 2017

TEKNOLOGI "BRUTE FORCE"

BRUTE FORCE

1. Definisi Brute Force
Brute Force : Pendekatan yang lempang (straightforward) untuk memacahkan suatu masalah. Biasanya didasarkan pada :

  • Pernyataan masalah (problem statement)
  • definisi konsep yang dilibatkan
Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung, jelas (obvious way). 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. Algoritma brute force seringkali lebih mudah diimplementasikan daripada algoritma yang lebih canggih, dan karena kesederhanaannya, kadang-kadang algoritma brute force dapat lebih mangkus (ditinjau dari segi implementasi).



2. 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 untuk menemukan algoritma yang lebih cerdas dan lebih mangkus lagi.
  • Untuk persoalan2 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.
  • Algoritma brute force umumnya tidak “cerdas” dan tidak mangkus, karena ia membutuhkan jumlah langkah yang besar dalam 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, tetapi dengan mencari pola-pola yang mendasar, keteraturan, atau trik-trik khusus, biasanya akan membantu kita menemukan algoritma yang lebih cerdas dan lebih mangkus.
  • Untuk masalah yang ukurannya kecil, kesederhanaan brute force biasanya lebih diperhitungkan daripada ketidakmangkusannya
  • Algoritma brute force sering digunakan sebagai basis bila membandingkan beberapa alternatif algoritma yang mangkus.
  • Algoritma brute force seringkali lebih mudah diimplementasikan daripada algoritma yang lebih canggih, dan karena kesederhanaannya, kadang-kadang algoritma brute force dapat lebih mangkus (ditinjau dari segi implementasi)



3. 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)
Secara sistematis, langkah-langkah yang dilakukan algoritma brute force pada saat mencocokkan string adalah:
  • Algoritma brute force mulai mencocokkan pattern pada awal teks.
  • Dari kiri ke kanan, algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi:
    1. Karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch).
    2. Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan penemuan di posisi ini.
Algoritma kemudian terus menggeser pattern sebesar satu ke kanan, dan mengulangi langkah ke-2 sampai pattern berada di ujung teks.




4. Kelebihan Algoritma Brute Force


  • Algoritma Brute Force dapat digunakan untuk memecahkan hampir sebagian besar masalah (wide applicability).
  • Algoritma Brute Force mudah dimengerti.
  • Algoritma Brute Force menghasilkan algoritma yang layak untuk beberapa masalah penting seperti pencarian, pengurutan, pencocokan string, perkalian matriks.
  • Algoritma Brute Force menghasilkan algoritma baku (standard) untuk tugas-tugas komputasi, seperti penjumlahan/perkalian n buah bilangan, menentukan elemen minimum atau maksimum di dalam tabel (list)


5. Kekurangan Algoritma Brute Force
  • Algoritma Brute Force jarang menghasilkan algoritma yang efisien.
  • Beberapa Algoritma Brute Force lambat sehingga tidak dapat diterima.
  • Algoritma Brute Force Tidak sekontruktif/sekreatif teknik pemecahan masalah lainnya

Tidak ada komentar:

Posting Komentar