Seorang teman saya pernah meminta referensi mengenai buku Algorithma yang bagus. Awalnya saya bingung karena saya sendiri lupa-lupa ingat tentang buku algoritma yang dulu saya baca pas masa kuliah, ketambahan lagi pas dicari-cari bukunya gak ketemu.
Yang paling saya ingat dari kuliah algoritma adalah algoritma pertama yang diajarkan oleh dosen saya. Beliau memberikan sebuah contoh yang sederhana, bagaimana menelpon dengan menggunakan telpon koin. Pada masa itu, di akhir tahun 90-an, telpon koin adalah salah satu barang yang paling dicari dan diminati, apalagi yang letaknya di pojok jalan dan agak jauh dari keramaian. Telpon ini banyak digunakan oleh para mahasiswa untuk menelpon gebetan atau pacar karena paling terjangkau, cukup dengan 500 atau 1000 rupiah bisa puas bertelpon ria. Duh jadi ngelantur gini. hehe.
Kalo kita tulis, atau gambarkan, urutan menelpon itu seperti ini:
- Angkat gagang telpon
- Masukkan koin
- Tekan nomor telpon yang dituju
- Apabila nadanya sibuk, tutup telpon dan ambil kembali koin
- Jika tidak sibuk, tunggu hingga ada jawaban
- Jika ada jawaban, mulailah bertelpon hingga selesai, lalu tutup gagang telpon setelah selesai
- Jika tidak ada jawaban, tutup gagang telpon dan ambil kembali koin
Kira-kira seperti itu urutannya, dan urutan langkah demi langkah tadi disebut algortima menelpon. Pada saat itu saya menyadari bahwa algoritma sebetulnya merupakan step-by-step yang harus kita lakukan pada saat ingin mengerjakan sesuatu. Dengan mengetahui step-by-step-nya, tentu proses pemecahan sebuah masalah, penulisan sebuah stored procedure, atau pembuatan sebuah SSIS package akan menjadi mudah. Dan dalam algoritma tidak ada cara yang benar dan salah apabila jawabannya benar. Yang ada adalah cara yang singkat/cepat dan cara yang berputar-putar. Itulah sebabnya pada saat interview kita sering diminta untuk menyelesaikan soal algoritma. Pada dasarnya si pewawancara ingin mengetahui cara berpikir orang yang diwawancara. Dan dengan mengetahui cara berpikir orang tersebut, akan dapat membantu si pewawancara menentukan apakah orang tersebut layak diterima bekerja atau tidak.
Seperti yang dibilang orang bijak, Practice makes perfect. Tidak ada cara lain untuk mempelajari algoritma selain dengan banyak berlatih. Dengan banyak berlatih, dan melihat contoh algoritma yang sudah ada kita akan belajar membuat algoritma yang baik dan benar.