Minggu, 17 November 2013

Jenis - Jenis Algoritma

Algortima adalah sebuah strategi yang mengandalkan kemampuan berpikir secara logis untuk memecahkan suatu masalah. Dalam algoritma, kita mulai dengan berpikir apa yang kita miliki (kekuatan dan kelemahan), selanjutnya kita atur langkah (aksi) agar tujuan atau sasaran yang kita harapkan dapat terwujud. Begitu juga dalam hal membuat program komputer. Ada keterbatasan statements yang disediakan, namun dengan keterbatasan itu kita siasati langkah-langkah untuk mencapai hasil program yang sesuai dengan keinginan.



Beberapa algoritma yang digunakan dalam memecahkan suatu masalah :
  1. Algoritma Greedy
  2. Algoritma Divide and Conguer
  3. Algoritma Backtracking
  4. Algoritma Branch and Bound
Kelebihan dan kelemahan dari beberapa algoritma di atas, sebagai berikut :
- Algoritma Greedy 
       Kelebihan :
  • Dengan mengambil sisi yang paling kecil terlebih dahulu, membuat solusi sementara yang dibuat menjadi semakin dekat dengan solusi yang paling mangkus.
  • Penerapan algoritma greedy sebagai dasar pemecahan masalah membuat penyelesaian masalah menjadi lebih cepat, karena tidak semua kemungkinan solusi diperiksa.
  • Algoritma dalam pemecahan masalah ini akan lebih mangkus jika permasalahan memiliki banyak solusi, dan satu solusi dapat berhubungan dengan solusi yang lain. algoritma ini juga mangkus untuk masalah untuk masalah sedikit solusinya.

        Kekurangan :
  • Untuk beberapa kasus, algoritma ini tidak mangkus, namun lebih baik dari algoritma greedy secara umum.
Algoritma Divide and Conguer
        Kelebihan :
  • Dapat mengurangi kompleksitas pencarian solusi suatu masalah karena prinsip kerjanya yang membagi-bagi masalah menjadi upamasalah-upamasalah yang lebih kecil. 
        Kekurangan :
  • Terbukti menampilkan hasil yang paling baik dan paling sesuai untuk komputer dengan hirarki memori tinggi serta memiliki cache. 
  • Dapat bekerja secara rekursif sehingga mempersingkat penjabaran. 
  • Mempunyai prinsip membagi masalah menjadi upamasalah yang lebih kecil sehingga menyederhanakan pencarian solusi. 
  • Unsur kebebasan yang diberikan dalam pemecahan masalah sehingga pengguna bebas untuk memilih masalah mana yang akan diselesaikan terlebih dahulu.
- Algoritma Backtracking
Kelebihan :
  • Kerelevanannya untuk diterapkan dalam kehidupan sehari-hari dibandingkan dengan algoritma runut-balik. 
  • Dapat bekerja jauh lebih cepat dari brute force karena jumlah kandidat solusi yang dapat dibuang dengan backtracking cukup besar.
Kekurangan :
  • Hanya bisa diaplikasikan terbatas pada tipe permasalahan yang memiliki solusi yang dapat dicari secara sistematis dan bertahap. Terdapat masalah-masalah yang tidak bisa diselesaikan dengan menggunakan backtracking, misalnya menemukan suatu nilai yang diminta pada tabel yang tidak terurut.
- Algoritma Branch and Bound
Kelebihan :
  • Memiliki tingkat kesalahan yang sedikit. 
  • Merupakan metode pencarian solusi di dalam ruang solusi secara sistematis. 
  • Penyelesaian algoritma ini lebih mangkus jika dibandingkan dengan metode lain, tapi khususnya dibandingkan dengan metode Brute Force.
Kekurangan :
  • Tidak menjamin apakah solusi yang didapat merupakan solusi yang optimal. 
  • Sangat sensitif terhadap pengali Lagrange, sehingga dengan bertambahnya pengali lanrange sulit dicari solusinya.



3 komentar: