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.
Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda.
Berikut ini adalah beberapa rumpun algoritma yang terkenal, yaitu:
- Metode Greedy.
- Dynamic Programming.
- Kompresi data.
- Backtracking.
- Branch and Bound.
- Divide and Conquer
Masing-masing algoritma diatas memiliki keunggulan dan tentunya juga memiliki kelemahan.
- Divide and Conquer yaitu paradigma untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.
- Dynamic programming adalah paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal (, dan mengandung beberapa bagian permasalahan yang tumpang tindih . Paradigma ini sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.
- Metode greedy merupakan sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap; dan menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat itu.
- Kompresi Data adalah sebuah cara untuk memadatakan data sehingga hanya memerlukan ruangan penyimpanan lebih kecil sehingga lebih efisien dalam menyimpannya atau mempersingkat waktu pertukaran data tersebut.
- Backtracking merupakan perbaikan dari pendekatan kekerasan, yang secara sistematis mencari solusi untuk masalah di antara semua pilihan yang tersedia.
- Branch and Bround (B&B) juga merupakan metode pencarian di dalam ruang solusi secara sistematis. Branch and Bround digunakan untuk mencari solusi optimal dari berbagai optimasi masalah, terutama dalam diskrit dan optimasi kombinatorial. Ini terdiri dari pencacahan sistematis semua solusi kandidat, dimana himpunan bagian besar calon sia-sia dibuang secara massal, dengan menggunakan perkiraan batas bawah dan atas kuantitas yang sedang dioptimalkan.
Referensi :
http://id.wikipedia.org/wiki/Algoritma
http://belajar-sendiri.com/2009/12/jenis-jenis-permasalahan-algoritma/
thx sob atas materinya..
BalasHapus