Jenis-jenis Algoritma
Sebelum memasuki jenis-jenis algoritma kita harus mengetahui
apa definisi dari algoritma itu sendiri. Algoritma adalah serangkaian langkah atau
prosedur logis, sistematis, dan terstruktur yang disusun untuk menyelesaikan
masalah tertentu atau mencapai tujuan khusus, baik dalam komputasi maupun kehidupan
sehari-hari. Algoritma harus memiliki instruksi yang jelas, efisien, dan memiliki
titik henti agar menghasilkan output yang tepat dari input yang diberikan.
Jenis-jenis algoritma pemrograman dikelompokkan berdasarkan fungsi dan
pendekatannya, meliputi algoritma dasar (sekuensial, percabangan, perulangan),
algoritma pencarian (Linear, Binary), pengurutan (Bubble, Quick, Merge Sort),
rekursif, greedy, dan dynamic programming. Algoritma ini memecahkan masalah dengan
mengurutkan data, mencari informasi, atau mengoptimalkan solusi, seperti pada AI
dan rute peta.
- Algoritma Sekuensial(Sequential): Langkah-langkah
dijalankan secara urut dari atas ke bawah.
- Algoritma Percabangan(Branching/Selection): Langkah
yang diambil bergantung pada kondisi tertentu .
- Algoritma Perulangan(Iteration): Menjalankan perintah
berulang kali selama kondisi terpenuhi.
- Algoritma Pencarian (Searching): Mencari elemen data.
Contoh: Linear Search (sederhana) dan Binary Search (cepat pada data terurut).
- Algoritma Pengurutan (Sorting): Mengatur data
berurutan. Contoh: Bubble Sort, Merge Sort, Quick Sort.
- Algoritma Graf (Graph): Menemukan rute terpendek atau
hubungan antar data. Contoh: Dijkstra, BFS, DFS.
- Algoritma Kriptografi: Mengamankan data dengan
enkripsi.
- Algoritma Rekursif(Recursive): Fungsi memanggil dirinya
sendiri untuk memecah masalah besar menjadi sub-masalah kecil (Contoh: Faktorial,
Fibonacci).
- Algoritma Greedy: Mengambil keputusan terbaik pada
setiap tahapan (lokal optimal) dengan harapan mencapai solusi terbaik keseluruhan
(global optimal).
- Algoritma Dynamic Programming: Memecah masalah menjadi
sub-masalah, menyimpan hasilnya, dan menghindari perhitungan ulang.
- Algoritma Brute Force: Mencoba semua kemungkinan solusi
sampai menemukan yang tepat.
- Supervised Learning: Belajar dari data berlabel.
- Unsupervised Learning: Menemukan pola dalam data tidak
berlabel.
- Algoritma Sekuensial(Sequential): Langkah-langkah
dijalankan secara urut dari atas ke bawah.
- Algoritma Percabangan(Branching/Selection): Langkah
yang diambil bergantung pada kondisi tertentu .
- Algoritma Perulangan(Iteration): Menjalankan perintah
berulang kali selama kondisi terpenuhi.
- Algoritma Pencarian (Searching): Mencari elemen data.
Contoh: Linear Search (sederhana) dan Binary Search (cepat pada data terurut).
- Algoritma Pengurutan (Sorting): Mengatur data
berurutan. Contoh: Bubble Sort, Merge Sort, Quick Sort.
- Algoritma Graf (Graph): Menemukan rute terpendek atau
hubungan antar data. Contoh: Dijkstra, BFS, DFS.
- Algoritma Kriptografi: Mengamankan data dengan
enkripsi.
- Algoritma Rekursif(Recursive): Fungsi memanggil dirinya
sendiri untuk memecah masalah besar menjadi sub-masalah kecil (Contoh: Faktorial,
Fibonacci).
- Algoritma Greedy: Mengambil keputusan terbaik pada
setiap tahapan (lokal optimal) dengan harapan mencapai solusi terbaik keseluruhan
(global optimal).
- Algoritma Dynamic Programming: Memecah masalah menjadi
sub-masalah, menyimpan hasilnya, dan menghindari perhitungan ulang.
- Algoritma Brute Force: Mencoba semua kemungkinan solusi
sampai menemukan yang tepat.
- Supervised Learning: Belajar dari data berlabel.
- Unsupervised Learning: Menemukan pola dalam data tidak
berlabel.
- Algoritma Sekuensial(Sequential): Langkah-langkah
dijalankan secara urut dari atas ke bawah.
- Algoritma Percabangan(Branching/Selection): Langkah
yang diambil bergantung pada kondisi tertentu .
- Algoritma Perulangan(Iteration): Menjalankan perintah
berulang kali selama kondisi terpenuhi.
- Algoritma Pencarian (Searching): Mencari elemen data.
Contoh: Linear Search (sederhana) dan Binary Search (cepat pada data terurut).
- Algoritma Pengurutan (Sorting): Mengatur data
berurutan. Contoh: Bubble Sort, Merge Sort, Quick Sort.
- Algoritma Graf (Graph): Menemukan rute terpendek atau
hubungan antar data. Contoh: Dijkstra, BFS, DFS.
- Algoritma Kriptografi: Mengamankan data dengan
enkripsi.
- Algoritma Rekursif(Recursive): Fungsi memanggil dirinya
sendiri untuk memecah masalah besar menjadi sub-masalah kecil (Contoh: Faktorial,
Fibonacci).
- Algoritma Greedy: Mengambil keputusan terbaik pada
setiap tahapan (lokal optimal) dengan harapan mencapai solusi terbaik keseluruhan
(global optimal).
- Algoritma Dynamic Programming: Memecah masalah menjadi
sub-masalah, menyimpan hasilnya, dan menghindari perhitungan ulang.
- Algoritma Brute Force: Mencoba semua kemungkinan solusi
sampai menemukan yang tepat.
- Supervised Learning: Belajar dari data berlabel.
- Unsupervised Learning: Menemukan pola dalam data tidak
berlabel.
- Algoritma Sekuensial(Sequential): Langkah-langkah
dijalankan secara urut dari atas ke bawah.
- Algoritma Percabangan(Branching/Selection): Langkah
yang diambil bergantung pada kondisi tertentu .
- Algoritma Perulangan(Iteration): Menjalankan perintah
berulang kali selama kondisi terpenuhi.
- Algoritma Pencarian (Searching): Mencari elemen data.
Contoh: Linear Search (sederhana) dan Binary Search (cepat pada data terurut).
- Algoritma Pengurutan (Sorting): Mengatur data
berurutan. Contoh: Bubble Sort, Merge Sort, Quick Sort.
- Algoritma Graf (Graph): Menemukan rute terpendek atau
hubungan antar data. Contoh: Dijkstra, BFS, DFS.
- Algoritma Kriptografi: Mengamankan data dengan
enkripsi.
- Algoritma Rekursif(Recursive): Fungsi memanggil dirinya
sendiri untuk memecah masalah besar menjadi sub-masalah kecil (Contoh: Faktorial,
Fibonacci).
- Algoritma Greedy: Mengambil keputusan terbaik pada
setiap tahapan (lokal optimal) dengan harapan mencapai solusi terbaik keseluruhan
(global optimal).
- Algoritma Dynamic Programming: Memecah masalah menjadi
sub-masalah, menyimpan hasilnya, dan menghindari perhitungan ulang.
- Algoritma Brute Force: Mencoba semua kemungkinan solusi
sampai menemukan yang tepat.
- Supervised Learning: Belajar dari data berlabel.
- Unsupervised Learning: Menemukan pola dalam data tidak
berlabel.