introduksi
Gw bukanlah seorang programmer kelas berat. Gw gak make SQL Query untuk mencari kunci motor gw yang nyelip di atas meja. Gw juga gak pernah nulis program yang jumlah barisnya lebih banyak dari bulu anjing. Gw cuman programmer wannabie, programmer yang lagi belajar. Emang sih, gw udah gak belajar nulis “Hello World” lagi ( dalam beberapa bahasa tertentu ).
Implikasinya adalah, tulisan ini sama sekali tidak mempunyai basis ilmiah dan akademik yang kuat. Tulisan ini hanyalah sebuah opini pribadi yang muncul dari pengalaman singkat gw selama mrogram. So, silahkan perbaiki jika ada yang salah.
Algoritma ?
Beberapa orang pernah bilang ke gw, algoritma dan pemrograman serta turunan-turunannya adalah mata kuliah nomber dua paling penting dari semua mata kuliah yang diberikan di jurusan ilmu komputer. Gw emang belum ngerasain mata kuliah di CS. Tapi gw bisa ngebayangin, betapa sulitnya hidup sebagai programmer jika tidak mengerti algoritma sama sekali.
Pada dasarnya, algoritma adalah langkah demi langkah yang harus di ambil untuk menyelesaikan suatu masalah. Langkah ini sifatnya eksak karena komputer tidak bisa berfikir sendiri. Anda harus menginstruksikan dengan benar apa yang mesti komputer lakukan. Jika instruksi yang anda berikan salah atau tidak efisien, komputer tidak akan memperbaikinya sendiri. Andalah yang harus memperbaikinya.
Seberapa Penting ?
Mempelajari algoritma berarti anda mempelajari bagaimana menyusun langkah-langkah penyelesaian masalah. Sebuah masalah tidak hanya bisa diselesaikan dengan satu solusi. Ada beberapa solusi yang menghasilkan jawaban yang benar. Masing-masing solusi cocok untuk kondisi tertentu atau kadang ada satu solusi yang menjadi solusi terbaik dalam keadaan apapun. Mempelajari algoritma berarti anda mempelajari bagaimana memilih solusi yang paling tepat untuk masalah yang sedang anda hadapi.
Salah memilih solusi ( meskipun hasilnya benar ) akan berdampak buruk pada performace. Ada bisa saja memotong sosis menggunakan obeng. Tapi jelas prosesnya akan lebih lama dan hasilnya tidak akan sebagus saat anda menggunakan pisau. Contoh lain, saat anda harus memindahkan air, ya – air. Saat anda harus memindahkan air dari drum satu ke drum yang lain, menggunakan gayung mandi adalah pilihan yang baik. Namun saat air ada di sebuah truk tangki yang besar dan hendak digunakan untuk memadamkan api, menggunakan gayung mandi hanya akan menambah jumlah korban. Itulah gambaran sederhana mengenai pentingnya algoritma.
Semakin canggih suatu solusi maka akan semakin kompleks algoritmanya. Saat anda hendak menyambungkan kabel ke papan PCB, ada beberapa pilihan yang tersedia. Anda bisa menggunakan solder atau bisa juga menggunakan isolasi. Meyambung kabel menggunakan solder hasilnya akan lebih baik dibandingkan menggunakan isolasi. Namun menyambung kabel menggunakan solder butuh keterampilan yang harus dipelajari dan dilatih terlebih dahulu sebelumnya.
Menggunakan solder tanpa pengetahuan yang cukup bisa berakibat buruk. Tentu anda tidak ingin mengambil resiko dan pada akhirnya lebih memilih isolasi. Begitu juga dengan algoritma. Jumlah solusi yang anda pilih sangat bergantung dari seberapa tinggi pengatahuan dan pengalaman anda dalam menyelesaikan persoalan.
Mempelajarinya ?
Belajar algoritma berbeda dengan belajar PPKN - baca, hapalkan, pahami, hayati, dan aplikasikan. Belajar Algoritma mirip seperti belajar persamaan diferensial – pahami konsepnya lalu berlatihlah dengan cara menerapkan ilmu yang didapat di berbagai persoalan. Untuk bisa menyelesaikan persamaan diferensial, tentu anda harus memahami integral dan teknik penintegralan. Begitu juga dengan algoritma, untuk bisa mencari pohon rentang minimum dengan algoritma prim, anda harus mengetahui konsep graph sebelumnya.
Dalam kasus-kasus dasar, kebanyakan algoritma bisa dipelajari langsung tanpa modal ilmu apapun kecuali otak yang sehat. Kabar baiknya adalah, sampai level tertentu ( tergantung kepada orangnya ), anda bisa mempelajari algoritma sendiri tanpa harus dibimbing oleh seseorang. Cukup cari buku yang bagus, lalu mulailah belajar.
Kesimpulan
Algoritma dan pemrograman adalah kemampuan paling penting nomer dua yang harus diasah oleh orang IT pada umumnya dan programmer pada khususnya. Tentu anda tidak memerlukan penguasaan algoritma yang mumpuni jika cita-cita anda hanya jadi pengamat pornomatika.
Btw, apa pelajaran paling penting nomer satu di jurusan ilmu komputer ? Jelas jawabannya adalah “Mengetik lanjutan” .