Algoritma Pemrograman
A. Pengertian algoritma
Apa itu algoritma?
Di dalam konteks matematika dan ilmu komputer, algoritma berarti tahapan langkah suatu instruksi, umumnya digunakan untuk penyelesaian suatu masalah atau untuk melakukan komputasi.
Sebagai contoh, berikut adalah algoritma untuk menghitung luas lingkaran:
- Siapkan nilai radius lingkaran, simpan ke variabel
r
- Gunakan variabel tersebut ke dalam rumus
- Hasil dari perhitungan adalah luas lingkaran
Contoh lain bisa dilihat pada algoritma untuk penentuan bilangan ganjil/genap berikut:
- Siapkan variabel
n
untuk menampung suatu nilai numerik - Lakukan operasi modulus (pencarian sisa hasil bagi) pada variabel
n
menggunakan angka2
:- Jika
n % 2
hasilnya0
, maka bilangann
adalah genap - Jika
n % 2
hasilnya 1, maka bilangann
adalah ganjil
- Jika
Dua contoh algoritm di atas merupakan salah satu bentuk penulisan algoritma yaitu menggunakan narasi deskriptif (atau natural language).
Pada kasus komputasi yang lebih kompleks, penerapan algoritma sangat penting karena dengannya akan lebih mudah untuk memastikan apakah komputasi sudah benar atau tidak.
- Jika komputasi menghasilkan hasil yang salah, bisa jadi karena implementasinya tidak sesuai dengan algoritm
- Jika sudah dirasa sesuai dengan algoritma tetapi hasil komputasi tetap salah, mungkin ada kesalahan pada algoritmany
B. Kapan algoritma digunakan?
Algoritma penerapannya ada di sebelum dan saat pembuatan program. Di luar itu, dianjurkan agar selalu mendokumentasikan algoritma untuk keperluan dokumentasi.
Sebelum pembuatan program: algoritma dibuat dalam perencanaan pembuatan program, sekaligus untuk mempermudah proses pembuatannya nanti. Terutama untuk program yang isinya komputasi kompleks, berisi banyak tahapan dan rumus, maka catatan algoritma penting untuk ada agar program dibuat sesuai spesifikasi.
Saat penulisan kode program: pada saat pembuatan program, penulisan kode (atau coding) pasti mengacu ke algoritma, baik itu tertulis ataupun tidak. Biasanya untuk programmer yang sudah berpengalaman, algoritma suatu kasus sudah otomatis terhafal di kepal
Setelah program selesai dibuat: catatan algoritma penting untuk ada sebagai dokumentasi kode program. Dengan adanya dokumentasi, program akan lebih mudah dipahami dan dipelajari. Manfaatnya sangat terasa saat ada programmer baru yang akan meneruskan pengembangan kode tersebut, proses onboarding bisa lebih cepat dengan adanya dokumentasi.
C. Metode penulisan algoritma
Ada beberapa metode yang bisa dipergunakan untuk merepresentasikan algoritma, diantaranya:
- Natural language atau bahasa natural seperti bahasa Indonesia, bahasa Inggris atau lainny Umumnya metode penulisan ini lebih mudah dipahami oleh semua kalangan.
- Pseudocode adalah metode penulisan algoritma yang lebih ringkas, terstruktur, tidak terlalu bertele-tele, lebih mendekati program tapi masih bisa dipahami oleh manusi
- Flowchart adalah metode penulisan algoritma dalam bentuk bagan/diagram. Tiap-tiap proses dibungkus dengan suatu bagan sesuai dengan jenisnya (apakah untuk inputan, proses, atau lainnya). Setiap bagan memiliki relasi yang digambarkan dengan arah panah.
D. Pseudocode
Seperti yang sudah sedikit disinggung di atas, bahwa pseudocode adalah metode representasi algoritma yang lebih ringkas dan mendekati penulisan kode program, tapi masih bisa dipahami manusi
Sebagai contoh, 2 contoh algoritma yang sudah dibahas jika dituliskan dalam bentuk pseudocode menjadi seperti berikut.
program start
var r
scan r
var pi = 22/7
var area = pi * r * r
print area
program finish
program start
var n
scan n
if n % == 0
print "genap"
else
print "ganjil"
program finish
Tidak ada aturan yang baku dalam penulisan algoritma dalam bentuk pseudocode. Selama bisa dipahami oleh programmer, bentuk penulisannya seperti apapun tidak masalah.
E. Flowchart
Flowchart adalah salah satu jenis diagram yang digunakan untuk menggambarkan suatu proses atau workflow. Pada konteks software engineering, flowchart biasa dipakai untuk pencatatan algoritma dalam bentuk visual.
Pada penerapannya, setiap langkah proses/algoritma digambarkan dengan suatu blok sesuai dengan jenisnya (apakah itu sebuah inputan, operasi komputasi, atau lainnya), dan blok-blok tersebut dihubungkan menggunakan arah panah.
Sebagai contoh, 2 algoritma yang telah disiapkan diatas, jika direpresentasikan menggunakan flowchart kurang lebih hasilnya seperti berikut:
menghitung luas lingkaran
penentuan bilangan ganjil/genap
Lebih detailnya mengenai flowchart dibahas secara terpisah pada topik Flowchart.