Apa Itu Algoritma?

Buat kalian yang sudah belajar ngoding tentunya kata "algoritma" cukup sering didengar. Sebenarnya apa sih algoritma itu?

Apa Kata Wikipedia

Dari kamu Merriam-Webster, kata Algoritma berarti "finite sequence of rigorous instructions..." yang bisa kita jabarkan seperti ini:

Finite Sequence

Finite sequence diartikan sebagai urutan yang jumlahnya terbatas, atau bisa kita artikan sebagai tahap-tahap yang jumlahnya terbatas, atau langkah-langkah yang jumlahnya terbatas.

Pada dasarnya sebuah algoritma adalah langkah-langkah yang jumlahnya terbatas. Artinya, harus ada langkah awal dan harus ada langkah akhir. Dengan demikian tidak ada algoritma yang tidak selesai, tidak ada algoritma yang berjalan terus-terusan tanpa henti, harus selalu berakhir.

Rigorous Instruction

Setiap langkah dari algoritma berisi proses atau instruksi yang harus dijalankan. Instruksi ini harus jelas dan bisa dijalankan. Inilah yang dimaksud dengan "rigorous instruction" atau instruksi yang ketat.

Yang dimaksud dengan rigorous disini memang tidak sesederhana kata "ketat". Lebih dari itu, jelas, terbukti, dan dapat dieksekusi. Merriam-Webster sendiri menjelaskan kata rigorous sebagai "mathematical proof" atau terbukti secara matematis. Supaya terbukti secara matematis maka instruksi harus berupa mathematical statement atau pernyataan matematis.

Misalnya, instruksi "naikkan kecepatan" tidak dapat langsung dieksekusi karena pernyataan ini punya banyak arti, ini disebabkan jumlah kenaikan kecepatan tidak jelas apakah dinaikkan 1 atau 2 atau dinamis?

Sedangkan instruksi "kecepatan ditambah 1" dapat langsung dieksekusi tanpa ada kesalahan. Inilah yang dimaksud dengan rigorous instruction.

Tujuan Algoritma

Setiap langkah pasti menuju kepada titik akhir agar tujuan tercapai. Jadi apa tujuan algoritma? Sederhana saja, algoritma pada umumnya untuk menyelesaikan permasalahan. Misalnya: untuk menghitung nilai rata-rata, mencari angka terbesar, menentukan bilangan prima atau bukan, untuk mengurutkan angka dari besar ke kecil dan lain sebagainya.

Namun, perlu dipastikan bahwa tujuan dari sebuah algoritma juga harus jelas dan dapat dibuktikan. Ketika kita ingin mencari angka terbesar, maka hasil akhirnya harus terbukti menghasilkan angka terbesar.

Perlu diingat, tujuan algoritma cukup satu untuk setiap algotima. Ketika kita ingin mengurutkan angka dari kecil ke besar, hasilnya harus berurut dari kecil ke besar saja, tidak perlu ada tambahan lain misalnya membatasi hanya 10 angka terbesar.

Contoh Algoritma Sederhana

Berikut contoh algoritma untuk menentukan bilangan ganjil dan bilangan genap menggunakan Java:

Program Java untuk menentukan bilangan genap dan ganjil

Kesimpulan

Jadi dapat kita simpulkan bahwa algoritma itu adalah "instruksi-instruksi yang berurutan dari awal sampai akhir untuk menyelesaikan sebuah permasalahan".