Algoritma adalah pendekatan logis yang dilakukan secara bertahap. Algoritma dapat
didefinisikan sebagai pendekatan sistematis dalam pemecahan masalah tertentu. Pemahaman
tentang algoritma dalam pemrograman sangat penting bagi programmer untuk melakukan
tugasnya secara lebih efisien. Seorang programmer perlu memahami perbedaan antara algoritma
dan program sebagai upaya mengoptimalkan program sesuai dengan sumber daya yang tersedia.
Cara Penyajian Algoritma
Algoritma menyediakan langkah-langkah abstrak dalam memproses satu urutan informasi terkait
menjadi urutan informasi turunan yang berbeda. Konstituen suatu program bisa jadi tidak terkait
secara konseptual yang ditulis menggunakan bahasa Inggris dan dapat dipahami oleh mereka
yang memiliki latar belakang non-pemrograman.
Pendekatan yang digunakan pada algoritma ini sifatnya lempang atau straight forward dalam
memecahkan masalah. Karakteristik umum dari algoritma ini antara lain:
Tidak cerdas karena dalam penyelesaiannya membutuhkan langkah yang besar. Bahkan
kadang disebut algoritma naïf.
Jarang disukai karena sisi tidak mangkusnya. Meski begitu, algoritma ini kadang akan
membantu kita menemukan algoritma yang lebih cerdas dan lebih mangkus.
Algoritma ini lebih mudah diimplementasikan pada algoritma yang lebih canggih.
Algoritma Recursive
Algoritma ini merupakan metode pemecahan yang solusinya adalah memecahkan kasus yang
lebih kecil sehingga masalah terpecahkan setelah dibuat sub-masalah hingga semakin mengecil
dan tercapailah kasus dasar yang menjadi solusi penentuan masalah. Nantinya, beberapa sub
masalah kecil tersebut digabungkan untuk menyelesaikan masalah awal.
Namun, ketika mengaplikasikan algoritma ini, kamu perlu memperhatikan beberapa hal.
Pertama, hindari jika terjadi fungsi recursive yang tumpang tindih sehingga mengarah ke
kompleksitas eksponensial. Sedang yang kedua, ingat, pengulangan kode bisa dicapai dengan
rekursi.
Algoritma Randomized
Algoritma ini juga disebut algoritma acak, di mana algoritma ini menggunakan keacakan dalam
pemecahan masalah. Algoritma ini didesain untuk menghasilkan solusi acak yang dekat dengan
solusi optimal meski belum tentu dapat menemukan solusi optimal yang diharapkan. Salah satu
contoh algoritma ini adalah pemanfaatan nomor random yang keluar ketika penentuan pivot.
Algoritma Sorting
Pada algoritma ini, elemen ditempatkan pada urutan numerikal dan lexicographical. Sangat
sesuai dengan namanya. Artinya jenis logika yang digunakan berdasarkan dari urutan tertentu.
Misal dari A ke Z, atau dari angka kecil ke besar. Jenis algoritma sorting sangat efisien dalam
optimalisasi penggunaan algoritma lain. Jenis ini sering dimanfaatkan untuk kanonikalisasi data
dalam menghasilkan output yang dapat dibaca pengguna.
Contoh penggunaan algoritma sorting adalah insertion sort, bubble sort, merge sort, dan
sebagainya.
Algoritma Searching
Algoritma searching mengambil informasi yang tersimpan dalam suatu struktur data melalui
nilai kontinu atau diskrit. Sesuai namanya, algoritma ini akan mencari data
berdasarkan query yang spesifik baik pada data yang telah disortir atau belum.
Algoritma ini merupakan metode mendasar dalam operasi komputasi. Algoritma Searching yang
tepat dapat menentukan apakah aplikasi berjalan cepat atau lambat. Contoh dari algoritma ini
adalah pencarian angka biner atau linier.
Algoritma Hashing
Algoritma Hashing merupakan program satu arah, di mana programmer lain tidak dapat
mengacak dan mengkodekan. Hashing melindungi data di mana tidak ada yang bisa mengakses
server meski ada yang mendapatkan akses tersebut. Hanya programmer yang dapat
menyelesaikan penyesuaian atau pengubahan data.
Dalam pemrograman, algoritma bekerja dengan mengandalkan pada tiga aspek utama dalam
membangun programnya. Tiga aspek tersebut yakni input – proses – output. Artinya, ketika kita
memasukkan sebuah perintah, maka perangkat akan mulai memprosesnya sesuai dengan
algoritma yang digunakan hingga akhirnya keluar hasil atau output sesuai dengan yang
diharapkan.
Programmer dapat menulis program komputer dalam bahasa komputer. Nantinya, kompiler atau
juru bahasa menerjemahkannya ke dalam bahasa yang dimengerti oleh sistem komputer apapun.
Intinya Algoritma dapat dieksekusi oleh programmer sedangkan program selalu dieksekusi oleh
komputer. Yang terpenting, algoritma memiliki peranan penting membuat program bisa berjalan
dengan lancar dan memberikan output atau hasil sesuai dengan yang diharapkan.
Ingin jadi programmer handal? Saatnya kamu bergabung menjadi salah satu mahasiswa jurusan
S1 Computer Science Binus @Malang. Dapatkan pendidikan terbaik di bidang in-demand yang
akan membawamu ke karir yang cemerlang.
Sumber: https://binus.ac.id/malang/2023/08/algoritma-dan-pemrograman-fondasi-kesuksesan-dalam-
dunia-teknologi/