Article @ blog

Algoritma Dulu!

Written by Dali Kewara who lives and works as Backend Developer—building useful and unexpected things—in Indonesia. Interested in #art, #writing, and #journey. His life motto is "Make it simple but Spectacular!".


Article cover image

Jika kita tahu algoritmanya dalam membuat sesuatu, maka kita akan bisa membuat itu, tidak peduli dengan alat apa kita akan membuatnya.

Karena saya bekerja dengan komputer, algoritma adalah yang paling penting bagi saya pada saat mengembangkan sebuah aplikasi. Algoritma adalah hal paling utama yang saya pikirkan terlebih dahulu sebelum saya mulai menyentuh keyboard. Saya tidak mencari teknologi apa, pakai apa, dll. Karena jika saya tidak tahu algoritmanya, saya tidak akan bisa mengerjakannya. Algoritma juga harus logis, artinya, dia harus benar-benar bisa dikerjakan.

Bagaimana dengan tools? functions? modules? Kita bisa pakai itu untuk mengerjakan dan menyelesaikan sesuatu kan?. Ya, tidak ada masalah. Saya bisa belajar tentang itu nanti. Bagi saya, semua itu hanya alat bantu saja. Setelah saya tahu algoritma seperti apa yang saya gunakan, baru saya bisa memakai mereka untuk membantu saya mengerjakan setiap flow yang saya buat. Saya bisa bekerja efektif dengan cara seperti ini. Lagipula, saya tidak bisa sembarangan memilih tools, functions, atau modules. Hal tersebut mungkin akan menimbulkan dampak negatif terhadap hasil pekerjaan kedepannya. Dengan mengetahui algoritma, saya bisa memilih alat bantu mana saja yang tepat untuk digunakan.

Algoritma tidak hanya sekedar tentang langkah kerja, atau IPO (Input-Proses-Output) yang penting bisa jalan. Memikirkan langkah kerja itu mudah, semua orang bisa melakukannya. Namun, tidak semua orang bisa memikirkan langkah kerja yang tepat dan efisien. Mungkin kita bisa membuat algoritma yang benar, artinya hasil pekerjaan dapat berjalan dengan baik. Tapi belum tentu algoritma yang benar itu = algoritma yang tepat. Algoritma yang tepat adalah langkah kerja yang berfikir dampaknya hingga lebih dari 2 langkah kedepan.

Sebagai contoh: algoritma mengolah beberapa proses dari massive data. Daripada menyusun langkah kerja berdasarkan looping sederhana, kita bisa membuat algoritma yang tepat menggunakan looping dengan chunking dan interval. Kenapa dikatakan tepat? karena meskipun looping sederhana benar bisa dilakukan, namun dampak kedepannya bisa jadi buruk terhadap resource hardware. Semakin banyak data yang diproses, semakin berat dan memakan resource. Sementara itu, looping yang menggunakan chunking dan interval relatif stabil sebab metode-metode tersebut dapat membuat pemakaian resource menjadi efisien—dilain sisi, built in function yang dipakai tidak terlalu memakan resource meskipun datanya massive.

Bagi saya, memikirkan algoritma yang tepat itu perlu, namun tidak harus langsung jadi pada saat pertama kali memikirkannya. Pertama, saya akan memikirkan algoritma yang benar terlebih dahulu, baru kemudian melakukan optimasi—menjadikannya tepat. Sebenarnya, hal ini dapat dilatih berdasarkan pengalaman dan eksperimen. Semakin banyak pengalaman dan eksperimen yang kita lakukan, semakin banyak pula kasus-kasus baru yang kita jumpai, sehingga membuat semakin mudah dan cepat bagi kita dalam menyusun langkah kerja. Jadi, biasakan untuk menghadapi tantangan-tantangan baru. Saya sedang berlatih agar terbiasa—saya kadang masih malas jika sedang multitasking.

Mengenai teknologi, tools, bahasa pemrograman, framework, itu urusan nomor dua karena dapat dengan mudah dipelajari. Namun, kita juga harus belajar setidaknya basic-nya dulu. Tidak harus langsung expert belajar, karena expert tidaknya itu tergantung seberapa lama kita bekerja dengan teknologi tersebut. Biasanya, dengan banyak belajar teknologi baru, pengetahuan itu dapat membantu kita dalam menyusun langkah kerja. Yang penting adalah bagaimana kita terbiasa menyusun algoritma yang benar dan tepat sebelum memulai sesuatu.

Oleh karena itu, mari kita terus belajar dan bereksperimen!

Change logs.
  • Sunday 04:07 PM, September 20 2020 | "Update Articles: Blog “algoritma-first”"
  • Sunday 04:07 PM, September 20 2020 | "Update Articles: Blog “algoritma-first”"
  • Sunday 04:06 PM, September 20 2020 | "Update Articles: Blog “algoritma-first”"
  • Sunday 04:05 PM, September 20 2020 | "Update Articles: Blog “algoritma-first”"
  • Sunday 03:57 PM, September 20 2020 | "Update Articles: Blog “algoritma-first”"
Scroll to top