Algoritma: Pengertian, Manfaat dan Contohnya
Oleh Daniel Wirajaya (website)
Pengertian Algoritma
Algoritma adalah rangkaian langkah-langkah logis yang terstruktur dan sistematis untuk memecahkan masalah dan mencapai suatu tujuan tertentu.
Secara sederhana, algoritma dapat dianalogikan dengan resep masakan. Ketika kita ingin memasak sesuatu, kita mengikuti sebuah resep untuk menghasilkan masakan yang lezat. Resep itu menjelaskan langkah demi langkah yang perlu diikuti beserta dengan takaran dari setiap bahan yang digunakan.
Dengan mengikuti resep yang ada, sebuah restoran ayam goreng cepat saji, misalnya, dapat menyajikan menu yang sama secara konsisten setiap harinya. Algoritma adalah seperti “resep” itu. Dengan mengikuti algoritma, komputer dapat menyelesaikan tugas tertentu secara konsisten dan efisien.
Algoritma dalam Kehidupan Sehari-hari
Algoritma saat ini digunakan di mana-mana. Pada saat kita membuka aplikasi sosial media, algoritma di aplikasi itu langsung bekerja, untuk menampilkan postingan yang mungkin menarik bagi kita. Ketika kita mulai mencari makan siang untuk dipesan, algoritma memainkan peran penting untuk mencari restoran terdekat yang kita minati. Bahkan ketika kita bergerak dari satu titik ke titik lain sambil membawa handphone, tanpa kita sadari algoritma di handphone tersebut mulai bekerja untuk lebih mengenal siapa diri kita yang sebenarnya. Apalagi sekarang ini kita semakin akrab dengan Kecerdasan Buatan atau AI (Artificial Intelligence) yang memanfaatkan algoritma untuk melakukan berbagai hal yang dulu sulit dilakukan.
Karena fungsinya yang sangat penting tersebut, algoritma adalah “jantung” atau inti dari semua program dan aplikasi yang kita gunakan setiap hari, yang memungkinkan program itu untuk berfungsi sesuai yang kita harapkan. Karena itu, bagi kita yang beraspirasi untuk menjadi seorang programmer handal, menguasai algoritma yang baik adalah fondasi yang sangat penting untuk menghasilkan aplikasi yang handal pula.
Manfaat Algoritma
- Efisiensi: Algoritma yang dirancang dengan baik akan bekerja secara efisien, sehingga memungkinkan aplikasi untuk berjalan secara cepat. Sebaliknya, aplikasi dengan algoritma yang buruk akan menjengkelkan penggunanya, karena akan sering ngelag, hang, dan sebagainya. (Walaupun algoritma yang buruk bukan satu-satunya faktor yang dapat menyebabkan hal-hal tersebut.)
- Akurasi: Algoritma akan memberikan hasil yang tepat secara konsisten. Berbeda dengan manusia, algoritma tidak terpengaruh oleh rasa bosan, kejenuhan, kehilangan konsentrasi, dan hal-hal lainnya yang dapat mengakibatkan human error.
- Inovasi: Algoritma terus berkembang dari tahun ke tahun, sehingga mendorong terciptanya teknologi-teknologi baru yang canggih.
Contoh Algoritma
Sebagai contoh, kita sekarang akan mendiskusikan algoritma untuk mengenali tulisan tangan, khususnya angka.
Gambar di atas menunjukkan sebagian kecil dari dataset berupa angka-angka yang dituliskan oleh banyak orang. Dataset seperti ini dapat digunakan oleh komputer untuk mengenali tulisan tangan penggunanya. Contohnya, ketika seseorang menuliskan angka tertentu di layar hp-nya, algoritma di dalam hp-nya akan bekerja dengan cara membandingkan tulisan tersebut dengan angka-angka yang ada di dataset. Ketika menemukan angka yang paling mirip dengan angka yang dituliskan, maka aplikasi itu memprediksi bahwa angka itulah yang dimaksudkan oleh penggunanya.
Gambar di atas menunjukkan salah satu cara untuk membandingkan tulisan tangan yang dibuat oleh seorang user (di sisi paling kiri) dengan yang ada di dataset (yang di tengah). Perbandingan di antara keduanya secara piksel demi piksel akan menghasilkan gambar ketiga (di sisi kanan). Ketika kedua piksel berwarna putih atau sama-sama hitam, maka yang akan dihasilkan adalah piksel putih. Sebaliknya ketika salah satu piksel berwarna putih dan yang lainnya hitam, maka yang akan dihasilkan adalah piksel hitam. Dari contoh ini, dapat dilihat bahwa tulisan user tersebut paling mirip dengan angka 2 yang ada di dalam dataset (perbedaan hanya 6%). Ketika dibandingkan dengan angka-angka lainnya, seperti angka 9 dalam contoh di atas, perbedaannya lebih besar (21 persen dalam contoh di atas).
Algoritma ini disebut Algoritma Tetangga Terdekat atau Nearest Neighbor Algorithm, di mana kita mengkategorikan sesuatu berdasarkan kemiripannya dengan dataset yang kita miliki.
Algoritma di atas adalah satu satu algoritma tingkat lanjut yang digunakan dalam Machine Learning. Tetapi sebelum melangkah ke algoritma tingkat lanjut lainnya, ada baiknya kita memulai dengan beberapa algoritma klasik, yang akan kita bahas di lain kesempatan:
- Insertion Sort: Algoritma pengurutan sederhana yang intuitif dan efisien untuk data yang kecil jumlahnya.
- Binary Search: Algoritma pencarian yang efisien untuk mencari elemen dalam daftar terurut.
- Faktorial: Algoritma untuk menghitung faktorial dari suatu bilangan, yang bisa dilaksanakan secara rekursif.
Manfaat Mempelajari Algoritma
- Dasar dari Pemrograman: Algoritma adalah fondasi dari pemrograman. Dengan memahami algoritma, kita akan siap untuk merancang solusi yang efektif dan efisien.
- Pemecahan Masalah: Mempelajari algoritma akan melatih untuk berpikir logis dan sistematis dalam menyelesaikan masalah, dan ini merupakan keterampilan yang bermanfaat seumur hidup.
- Karir: Pemahaman yang baik tentang algoritma sangat dibutuhkan untuk bisa mengembangkan karir, seperti di bidang ilmu komputer, data science, komputasi awan (Cloud Computing), kecerdasan buatan atau Artificial Intelligence, dan lain-lain.
Kesimpulan
Menulis algoritma yang baik merupakan dasar dari pemrograman. Karena itulah, kami di Acutis Academy bukan hanya sekedar mengajarkan cara membuat game atau animasi, tetapi kami mendidik para siswa untuk menguasai algoritma, dengan cara-cara yang kreatif dan inovatif, sehingga mudah dipahami. Sebagai hasilnya, siswa kami memiliki fondasi yang kokoh untuk mengembangkan aplikasi lain yang lebih kompleks.