Strategi merupakan seuatu rencana yang cermat seputar kegiatan untuk mencapai sasaran tertentu. Sedangkan algoritma merupakan urutan langkah ketika memecahkan sebuah masalah.
Strategi algoritma merupakan suatu pendekatan umum supaya bisa memecahkan permasalahan secara algoritmis yang bisa diterapkan pada berbagai bidang komputasi.
strategi algoritmis sendiri merupakan gabungan metode yang dinyatakan dalam suatu urutan langkah-langkah penyelesaian dalam memecahkan masalah guna mencapai tujuan yang ditentukan.
Terdapat berbagai klasifikasi strategi algoritma. Tiap-tiap klasifikasi memiliki alasan tersendiri. Salah satu cara untuk melakukan klasifikasi beragam jenis strategi algoritma yaitu dengan memperhatikan paradigma dan metode yang dipakai untuk mendesak agar ritme tertentu.
Sebagian paradigma yang dipakai ketika menyusun suatu algoritma bisa dipaparkan di bagian ini. Tiap-tiap paradigma bisa dipakai dalam banyak algoritma yang berbeda.
Biasanya, strategi pemecahan masalah algoritma dibagi menjadi:
Baca Juga : Penjelasan rekayasa Perangkat Lunak
1. Algoritma Brute Force
Algoritma jenis ini merupakan sebuah pendekatan yang lempang untuk memecahkan suatu masalah. Umumnya masalah didasarkan pada pernyataan dan definisi konsep yang dilibatkan.
Beberapa prinsip algoritma brute force untuk menyelesaikan persoalan Integer Knapsack adalah:
- Mengenal membersihkan keseluruhan himpunan bagian dari solusi.
- Mengevaluasi jumlah keuntungan dari tiap himpunan bagian dari langkah pertama.
- Memilih himpunan bagian yang memiliki jumlah keuntungan terbesar.
2. Algoritma Greedy
Jika diartikan secara harfiah, greedy mempunyai arti rakus atau tamak. Algoritma greedy ini adalah algoritma sederhana dan lurus yang paling terkenal guna pemecahan masalah optimasi yaitu minimum atau maksimum.
Setidaknya terdapat tiga pendekatan dalam menyelesaikan masalah Integer Knapsack dengan algoritma greedy, yaitu:
Greedy by profit
Di setiap langkahnya, knapsack diisi dengan suatu objek yang memiliki keuntungan terbesar. Strategi yang satu ini memilih objek yang paling menguntungkan terlebih dahulu karena mencoba untuk memaksimalkan keuntungan.
Greedy by weight
Di setiap langkahnya, kenapa kemudian diisi dengan suatu objek yang memiliki berat paling ringan.
Strategis yang satu ini mencoba untuk memaksimalkan keuntungan dengan cara memasukkan sebanyak mungkin objek kedalam knapsack.
Greedy by density
Di setiap langkahnya, knapsack kemudian diisi dengan suatu objek yang memiliki identitas, pi / wi yang terbesar.
Strategi yang satu ini mencoba memaksimalkan keuntungan dengan cara memilih objek yang memiliki keuntungan per unit berat terbesar.
3. Branch and Bound
Strategi branch and bound merupakan sebuah teknik algoritma yang secara khusus mempelajari mengenai bagaimana memperkecil pohon pencarian menjadi sekecil mungkin.
Metode ini terdiri dari dua langkah seperti namanya, yaitu:
- Branch yang memiliki arti membangun semua cabang pohon yang mungkin menuju ke arah solusi.
- Bounce memiliki arti menghitung node mana yang termasuk aktif node (E-Node) serta pada mana yang termasuk dead node (D-node) dengan memakai syarat batas constraint atau kendala.
4. Algoritma Pseudo-Code
Algoritma yang satu ini adalah algoritma yang sangat mendekati bahasa pemrograman dan yang yang paling mudah untuk dipakai secara langsung pada bahasa pemrograman.
Algoritma pseudo-code merupakan penulisan cara-cara penyelesaian masalah yang paling mendekati bahasa pemrograman sehingga memudahkan pembahasan.
5. Dynamic Programming
Paradigma dynamic programming akan sesuai apabila dipakai pada suatu masalah yang mengandung substruktur yang optimal, serta mengandung sebagian permasalahan yang tumpang tindih.
Paradigma yang satu ini jika dilihat sekilas serupa dengan paradigma Divide and Conquer yang sama-sama mencoba untuk membagi permasalahan menjadi isu permasalahan yang lebih kecil lagi.
Namun secara instrinsik terdapat perbedaan dari karakter permasalahan yang sedang dihadapi.
Demikianlah penjelasan mengenai strategi algoritma. Semoga bermanfaat!