Semua Artikel
Diposting pada 01 April 2024

Pengertian Algoritma: Ciri, Fungsi, dan Jenisnya

By Khafid Ilham
Penulis

Pengertian Algoritma

Algoritma adalah seperangkat instruksi atau prosedur yang ditata dengan baik dan digunakan untuk menyelesaikan suatu masalah atau tugas tertentu. Dalam dunia komputer, algoritma merujuk pada serangkaian langkah yang terstruktur dan jelas yang dijalankan untuk mencapai hasil tertentu. Algoritma tidak hanya terbatas pada komputer, tetapi juga dapat digunakan dalam situasi sehari-hari yang memerlukan proses atau langkah-langkah tertentu.

 

Ciri - Ciri Algoritma

1. Input: merupakan masalah yang dihadapi dan hendak dicari solusinya. Algoritma bisa memiliki nol atau lebih masukan. Masukan adalah nilai-nilai yang diberikan kepada algoritma sebelum mulai bekerja. Dalam konteks lain, input bisa dianggap sebagai perencanaan awal.

2. Proses: adalah langkah-langkah atau rencana yang akan dilakukan untuk mencapai tujuan akhir setelah nilai atau perencanaan awal dibuat. Langkah-langkah tersebut harus dibuat secara detail dan berurutan.

3. Output: adalah solusi atau tampilan akhir yang akan diperoleh. Output atau keluaran merupakan nilai-nilai yang memiliki hubungan dengan masukan (input). Keluaran tersebut tentunya harus berupa solusi atau penyelesaian dari suatu masalah.

4. Instruksi yang Jelas: artinya instruksi dalam algoritma tidak boleh memiliki arti ganda agar tidak terjadi kesalahan dalam output yang dihasilkan.

5. Memiliki Tujuan Akhir yang Dicapai: suatu algoritma baru akan berhenti saat tujuan akhir dicapai. Jika algoritma terus bekerja berulang-ulang, maka terjadi kesalahan dalam instruksi yang diberikan. Algoritma harus bersifat terbatas, yaitu harus berakhir setelah waktu, proses, atau operasi tertentu.

 

Fungsi Algoritma

1. Menyelesaikan masalah secara sistematis menggunakan logika.

2. Memudahkan pembuatan program untuk menyelesaikan masalah.

3. Dapat dipakai berulang kali untuk menyelesaikan masalah serupa.

4. Dapat menyederhanakan program yang rumit dan besar.

5. Mengatasi masalah yang ada secara hierarkis atau berurutan.

6. Dapat mengotomatiskan solusi permasalahan yang ingin diselesaikan program.

7. Menyederhanakan alur kerja dan logika program untuk memudahkan programmer menulis kode.

8. Meminimalisir penulisan program yang berulang-ulang.

9. Membuat program yang ada menjadi lebih terstruktur dengan rapi sehingga dapat lebih mudah untuk dipahami ataupun dikembangkan.

10. Memastikan keakuratan dan efisiensi, optimalisasi penggunaan sumber daya dan waktu, serta meminimalisir kesalahan.

 

Jenis - Jenis Algoritma

1.  Algoritma Brute Force: Algoritma ini mencoba semua kemungkinan solusi secara sistematis untuk masalah yang diberikan. Ini berarti tidak menggunakan pengetahuan khusus tentang masalah tersebut untuk mengurangi jumlah solusi yang harus diuji. Contoh dari algoritma ini dapat terlihat pada saat mencoba semua kombinasi kata sandi yang mungkin sampai menemukan kata sandi yang benar.

2. Algoritma Rekursif: Algoritma ini menggunakan metode pemecahan masalah yang membagi masalah besar menjadi masalah yang lebih kecil yang mirip, serta mengulangi proses yang sama pada masalah-masalah yang lebih kecil tersebut sampai mencapai suatu kondisi dasar atau terminasi. Contoh algoritma ini dapat digunakan untuk menyelesaikan faktorial angka, deret Fibonacci, menara Hanoi, DFS untuk grafik, dan lainnya.

3. Algoritma Enkripsi: Algoritma enkripsi adalah proses mengubah data atau informasi dalam bentuk aslinya menjadi bentuk yang tidak dapat dibaca atau dimengerti secara langsung (biasanya dalam bentuk kode rahasia) untuk melindungi kerahasiaan atau keamanannya. Enkripsi sering digunakan dalam komunikasi yang melibatkan data sensitif, seperti pesan rahasia, transaksi keuangan, dan data pribadi.

4. Algoritma Sekuensial: Algoritma ini adalah proses yang langkah-langkahnya dijalankan secara berurutan dari awal hingga akhir. Setiap langkah diselesaikan satu per satu dari atas ke bawah. Algoritma ini sering digunakan dalam proses yang memerlukan urutan tertentu, seperti dalam pemrograman dan analisis data.

5. Algoritma Perulangan: Algoritma ini adalah proses yang melakukan iterasi atau pengulangan atas suatu proses. Algoritma ini sering digunakan dalam situasi yang memerlukan tindakan berulang, seperti dalam perulangan dalam pemrograman.

6. Algoritma Pencarian: Algoritma ini merupakan proses yang digunakan untuk mencari elemen tertentu dalam struktur data seperti tumpukan atau array. Algoritma ini bekerja dengan memeriksa setiap elemen dalam struktur data tersebut hingga menemukan elemen yang dicari. Contoh dari algoritma ini adalah Binary Search dan Linear Search. Binary Search bekerja dengan membagi data menjadi dua bagian dan hanya mencari pada bagian yang mungkin mengandung elemen yang dicari, sedangkan Linear Search bekerja dengan mencari elemen satu per satu dari awal hingga akhir. 

7. Algoritma Pengurutan: Algoritma ini merupakan proses yang digunakan untuk mengatur kumpulan data menjadi urutan tertentu. Algoritma ini bekerja dengan membandingkan elemen data dan mengubah posisinya hingga seluruh data tersusun sesuai urutan yang diinginkan. Contoh dari algoritma ini adalah Bubble Sort, Quick Sort, dan Merge Sort. 

8. Algoritma Backtracking: Algoritma ini merupakan proses yang mencoba semua kemungkinan solusi untuk suatu masalah hingga menemukan solusi yang memenuhi semua batasan atau kondisi yang ditentukan. Algoritma ini bekerja dengan cara “mencoba dan mengembalikan”, yaitu mencoba solusi dan jika solusi tersebut tidak memenuhi kondisi, maka akan “mengembalikan” atau membatalkan langkah sebelumnya dan mencoba solusi lain.

9. Algoritma Greedy: Algoritma ini adalah proses yang selalu memilih solusi terbaik pada setiap tahap dengan tujuan untuk menemukan solusi global terbaik. Contoh algoritma ini adalah Kruskal's Algorithm yang digunakan untuk mencari pohon rentang minimum dalam graf, dan Huffman Coding yang digunakan untuk kompresi data.

10. Algoritma Dinamis: Algoritma ini adalah proses yang memecahkan masalah dengan cara membaginya menjadi submasalah yang lebih kecil dan menyimpan hasil dari submasalah tersebut untuk digunakan kembali. Dengan cara ini, algoritma ini menghindari pengulangan perhitungan yang sama, sehingga meningkatkan efisiensi.