Bagi kalian yang kuliah di Teknik Informatika atau Ilmu Komputer pasti sudah mengenal istilah Algorithm / Algoritma, atau Algoritme (menurut KBBI). Yang gak kuliah tapi jadi software developer apakah tau juga? menurut saya pasti tau karena disebutkan juga hampir disetiap buku pemrograman.
Intro
Seberapa dalam pengetahuan kalian tentang algoritma? mungkin bagi beberapa orang akan terkejut atau terkesima ketika mengetahui bahwa topik algoritma ini sangatlah luas dan dalam. Memang ketika kita bekerja belum tentu semua teori atau konsepnya cocok untuk dipakai, tapi memahami fundamental akan membuat pola pikir yang benar ketika mencoba memahami masalah dan mencari solusinya.
Salah satu buku favorit saya adalah buku The Algorithm Design Manual karya Steven Skiena. Tapi bagian yang paling favorit adalah Chapter 13 How to Design Algorithms.
Harga bukunya memang tidak murah jika kita beli dari Indonesia, jika kamu punya kesempatan beli di US akan jauh lebih murah. Di US harganya mulai dari $51 USD, kalau di rupiahkan saat ini sekitar 800 ribuan dan sudah dapat versi Hardcover.
Alternatifnya kamu bisa beli versi ebook di springer.com yang harganya jauh lebih terjangkau, gak sampai 300 ribu. Hargai penulisnya dengan membeli yang original dengan cara yang legal. Jika 300 ribu masih terasa berat, patungan dengan teman-teman, kumpulkan 10 orang maka masing-masing 30 ribu rupiah.
Pesan Utama
Di Chapter 13 ini membahas pentingnya desain algoritma dan pemecahan masalah dalam menciptakan solusi yang efektif. Bagian ini menekankan perlunya pendekatan strategis dan memberikan rangkaian pertanyaan untuk membimbing proses desain algoritma.
Merancang algoritma yang tepat untuk aplikasi tertentu adalah tindakan kreatif yang memerlukan kemampuan untuk menghasilkan solusi dari ide yang tampaknya tidak ada. Pilihan dalam desain algoritma sangat banyak, sehingga membutuhkan pertimbangan matang agar tidak membuat kesalahan. Buku ini menyediakan teknik-teknik dan katalog masalah untuk membantu dalam desain algoritma dan pemodelan masalah.
Pendekatan pemecahan masalah yang tepat melibatkan mengajukan pertanyaan-pertanyaan untuk membimbing proses berpikir. Perbedaan antara strategi dan taktik sangat penting dalam proses desain. Bagian ini memberikan rangkaian pertanyaan untuk memandu pencarian algoritma yang tepat. Bagian ini menekankan pentingnya mengartikulasikan alasan dengan jelas dan bekerja melalui jawaban dengan hati-hati. Bagian ini mendorong pembelajaran dan eksplorasi berkelanjutan dalam desain algoritma dan pemecahan masalah.
Bacalah berulang kali rangkaian pertanyaan yang diberikan sampai kita benar-benar memahami maksud dari pertanyaan dan dapat menjawabnya. Dibutuhkan praktik yang berulang kali agar menjadi suatu kebiasaan dan pola pikir sehari-hari.
Photo by Markus Spiske on Unsplash