Lompat ke konten Lompat ke sidebar Lompat ke footer

9 Jenis Algoritma Pemrograman yang Wajib Diketahui Programmer

Sebelumnya kita telah membahas mengenai pengertian dan karakteristik algoritma. Di kesempatan ini kita akan membahas mengenai jenis-jenis algoritma yang penting untuk dipelajari.

Seperti yang kita tahu, algoritma adalah sebuah prosedur langkah demi langkah untuk memecahkan masalah. Sebuah algoritma yang baik harus dioptimalkan dari segi waktu dan ruang. Masalah yang berbeda biasanya memerlukan jenis algoritma yang berbeda untuk diselesaikan dengan cara yang paling optimal. 

Jenis-Jenis Algoritma yang Wajib Diketahui

Ada banyak sekali jenis algoritma tetapi pada artikel ini kita hanya akan membahas jenis-jenis algoritma yang umum digunakan berdasarkan fungsi dan kegunaanya. 

Daftar Isi

Jenis Jenis Algoritma

Berdasarkan fungsi dan tujuannya, algoritma dapat dikelompokkan ke dalam 9 jenis, yakni:

1. Algoritma Brute Force

Algoritma Brute Force merupakan jenis algoritma yang paling dasar dan paling sederhana. Algoritma ini menggunakan pendekatan yang sama seperti pikiran kita saat melihat masalah. Secara teknis, algoritma ini seperti mengulangi setiap kemungkinan yang tersedia untuk menyelesaikan masalah itu.

Contoh: Jika ada kunci PIN 4 digit. Digit yang akan dipilih dari 0-9 maka brute force akan mencoba semua kemungkinan kombinasi satu persatu seperti 0001, 0002, 0003, 0004, dan seterusnya sampai kita mendapatkan PIN yang tepat. Dalam kasus terburuk, dibutuhkan 10.000 percobaan untuk menemukan kombinasi yang tepat.

2. Algoritma Recursive

Jenis algoritma ini didasarkan pada rekursi. Dalam rekursi, suatu masalah diselesaikan dengan memecahnya menjadi submasalah dengan tipe yang sama dan memanggil diri sendiri berulang-ulang sampai masalah diselesaikan dengan bantuan kondisi dasar.

Beberapa masalah yang dapat diselesaikan menggunakan algoritma recursive adalah bilangan faktorial dan deret Fibonacci.

3. Algoritma Divide and Conquer

Tujuan algoritma Divide and Conquer adalah untuk memecahkan masalah dalam dua bagian, yakni:

  1. Membagi masalah menjadi submasalah dengan jenis yang sama.
  2. Menyelesaikan masalah yang lebih kecil secara mandiri dan kemudian menambahkan hasil gabungan untuk menghasilkan jawaban akhir untuk masalah tersebut.

Contoh dari algoritma Divide and Conquer adalah Binary Search, Merge Sort, Quick Sort, dan Strassen’s Matrix Multiplication.

4. Algoritma Dynamic Programming

Jenis algoritma ini juga dikenal sebagai teknik memoisasi karena menyimpan hasil yang dihitung sebelumnya untuk menghindari penghitungan berulang kali. Dalam Dynamic Programming, masalah yang kompleks dibagi menjadi masalah yang lebih kecil dan menyimpan hasilnya untuk penggunaan di masa mendatang.

Contoh algoritma Dynamic Programming di antaranya Knapsack Problem, Weighted Job Scheduling, Algoritma Floyd Warshall, dll.

5. Algoritma Greedy

Dalam algoritma greedy, solusi dibangun bagian demi bagian. Keputusan untuk memilih bagian selanjutnya dilakukan atas dasar bahwa hal itu memberikan manfaat langsung. Algoritma Greedy tidak pernah mempertimbangkan pilihan yang telah diambil sebelumnya.

Beberapa contoh dari algoritma Greedy adalah algoritma jalur terpendek Dijkstra, algoritma Prim, algoritma Kruskal, Huffman Coding, dsb.

6. Algoritma Backtracking

Algoritma backtracking adalah jenis algoritma yang masalahnya diselesaikan dengan cara inkremental. Teknik inkremental berarti memecahkan masalah secara rekursif dengan mencoba membangun solusi secara bertahap satu per satu dan juga menghapus solusi yang gagal.

Beberapa algoritma backtracking adalah Hamiltonian Cycle, M-Coloring Problem, N Queen Problem, dan Rat in Maze Problem.

7. Algoritma Sorting

Algoritma sorting digunakan untuk mengurutkan data baik dalam urutan ascending ataupun descending (urutan naik atau menurun). Algoritma jenis ini juga digunakan untuk mengatur data dengan cara yang efisien dan bermanfaat.

Contoh algoritma sorting adalah Bubble Sort, Insertion Sort, Merge Sort, Selection Sort, dan Quick Sort.

8. Algoritma Searching

Algoritma searching adalah algoritma yang digunakan untuk mencari kunci tertentu pada kumpulan data. 

Beberapa contoh algoritma searching adalah Binary Search dan Linier Search.

9. Algoritma Hashing

Algoritma hashing bekerja layaknya algoritma searching tetapi menggunakan indeks dengan ID kunci. Dalam hashing, kita menetapkan kunci untuk data tertentu.

Contoh masalah yang dapat diselesaikan melalui algoritma Hashing adalah verifikasi kata sandi.

Penutup

Demikianlah penjelasan mengenai jenis-jenis algoritma. Semoga bermanfaat.

Jika Anda tertarik dengan artikel serupa, Anda bisa mengunjungi artikel sebelumnya yang membahas mengenai “Pengertian dan Jenis-jenis Struktur Data”.

Salam!

Sumberhttps://www.geeksforgeeks.org/most-important-type-of-algorithms

Trivusi
Trivusi Ikatlah ilmu dengan menulis. Menebar manfaat dengan berbagi :)

Posting Komentar untuk "9 Jenis Algoritma Pemrograman yang Wajib Diketahui Programmer"