Algoritma: Mengenal Pemahaman dan Jenisnya

marketeers article
Algoritma: Mengenal Pemahaman dan Jenisnya (FOTO:123RF)

Algoritma adalah fenomena yang tumbuh seiring dengan perkembangan teknologi. Teknologi yang kini makin maju mampu mengolah data lebih cepat dan memberikan prediksi yang tepat berkat algoritma.

Kata algoritma sendiri erat kaitannya dengan komputer dan matematika. Maka tidak heran, banyak teknologi di masa sekarang yang memanfaatkan algoritma untuk membuat prediksi yang lebih tepat.

Pengertian Algoritma

Algoritma bukanlah kata dari bahasa Indonesia asli. Kata tersebut merupakan bahasa serapan yang diambil dari kata algorithm yang merupakan bahasa Inggris. Kata algorithm sendiri dari kata dalam bahasa Arab, al-Khwarizmi.

Menurut Kamus Besar Bahasa Indonesia (KBBI), algoritma adalah prosedur sistematis untuk memecahkan masalah matematis dalam langkah-langkah terbatas. Algoritma sendiri menurut KBBI adalah bentuk baku dari algoritme.

Dalam definisi lain, menurut kamus Merriam-Webster, algoritma adalah prosedur untuk memecahkan masalah matematika (seperti menemukan pembagi persekutuan terbesar) dalam sejumlah langkah terbatas yang sering melibatkan pengulangan operasi.

BACA JUGA: Capex: Pengertian hingga Ragam Jenisnya

Menurut Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, dan Clifford Stein dalam bukunya yang berjudul “Introduction To Algorithms,” algoritma adalah prosedur komputasi apa pun yang terstruktur dengan baik yang mengambil nilai, atau beberapa nilai, sebagai input, dan menghasilkan nilai atau beberapa nilai sebagai output.

Jenis-jenis Algoritma

Mengutip dari laman codingninjas, algoritma dibagi menjadi beberapa tipe:

1. Brute Force Algorithm

Algoritma adalah prosedur sistematis dan paling sederhana dapat dirancang untuk memecahkan masalah disebut algoritma brute force. Ini dilakukan dengan memperoleh solusi atau metode penghitungan terlebih dahulu dan kemudian mencoba untuk mengoptimalkannya. Setiap masalah dapat diselesaikan dengan pendekatan brute force meskipun umumnya tidak dengan kompleksitas ruang dan waktu yang cukup besar.

2. Greedy Algorithm

Dalam algoritma ini, diambil keputusan yang baik pada saat itu tanpa mempertimbangkan masa depan. Ini berarti beberapa hasil kemungkinan terbaik dipilih dan dianggap sebagai kemungkinan terbaik secara keseluruhan.

3. Recursive Algorithm

Ini adalah salah satu algoritma yang paling sederhana untuk dirancang karena tidak memerlukan pemikiran khusus tentang setiap submasalah. Artinya hanya perlu memikirkan kasus yang ada dan solusi dari subproblem yang paling sederhana, semua kerumitan lainnya akan ditangani olehnya secara otomatis.

Recursive atau rekursi adalah alat yang sangat ampuh meskipun harus selalu menjaga manajemen memori di sini, karena rekursi bekerja menggunakan tumpukan rekursif yang dipanggil setiap kali fungsi rekursi dipanggil. Rekursi berarti memanggil dirinya sendiri untuk menyelesaikan submasalahnya.

BACA JUGA: Apa dan Bagaimana Metode Layanan Marketplace NFT seperti OpenSea?

4. Backtracking Algorithm

Algoritma ini merupakan peningkatan dari pendekatan brute force. Penghitungan ini dilakukan dengan mengambil satu opsi dari banyak yang tersedia dan mencoba menyelesaikan masalah. Jika opsi tersebut dapat menyelesaikan masalah dengan langkah yang dipilih, maka opsi tersebut akan mencetak solusinya. 

Jika tidak, program akan mundur dan memilih metode penghitungan yang lain dan mencoba menyelesaikannya. Ini adalah bentuk rekursi. Hanya saja ketika opsi yang diberikan tidak dapat memberikan solusi, algoritma mundur ke opsi sebelumnya yang dapat memberikan solusi, dan melanjutkan opsi lainnya.

5. Divide & Conquer Algorithm

Ini adalah salah satu algoritma yang paling banyak digunakan dalam pemrograman. Algoritma ini membagi masalah menjadi submasalah dan kemudian menyelesaikannya masing-masing dan kemudian menggabungkannya untuk membentuk solusi dari masalah yang diberikan.

Demikian arti dan jenis dari algoritma. Kesimpulannya, algoritma memiliki sejarah panjang, baik dalam ilmu matematika atau ilmu komputer. Penggunaannya pun beragam, tergantung dari jenis masalah dan hasil yang diinginkan.

Editor: Ranto Rajagukguk

Related