ALGORITMA yang baik mutlak dimiliki oleh seorang programmer. Algoritma, bab yang dibahas pada hari pertama saya masuk kuliah. Waktu pertama mendengar kata itu, saya cuma bisa plonga plongo, tengok kiri tengok kanan. Jujur walaupun saya masuk perguruan tinggi jurusan Teknik Informatika (Computer Science), saya benar-benar belum punya background tentang programming.
Ok back to topic. Walaupun agak asing didengar tapi ternyata algoritma sangat dekat dengan kehidupan kita sehari-hari. ALGORITMA itu sendiri artinya adalah urutan / langkah-langkah yang logis untuk menyelesaikan suatu masalah. Kata algoritma diambil dari nama seorang ilmuwan Persia Abu Ja’far Mohammed Ibn Musa Al-Khawarizmi, yang menulis buku Al Jabr w’al-muqabala sekitar tahun 825.
Bagaimana Algoritma menelepon di telepon umum :
1. Mengangkat gagang telepon
2. Memasukkan koin
3. Menekan tombol yang dituju
4. Berbicara dengan orang yang kita telepon
5. Meletakkan kembali gagang telepon
Coba kita cermati algoritma di atas. Apakah benar setelah mengangkat gagang telepon kita langsung memasukkan koin? Belum tentu. Kita seharusnya mendengar apakah ada nada sambung pada telepon. Jika telepon tersebut rusak atau kabelnya putus tentu anda tidak akan memasukkan koin bukan? Apakah setelah memasukkan koin kita langsung menekan tombol yang dituju? Bagaimana jika koin bergulir keluar dari kotak telepon?
Apa kesimpulan kita terhadap banyaknya pertanyaan yang timbul? Ternyata algoritma tidak hanya terdiri atas langkah menyelesaikan masalah secara berurutan, melainkan juga melibatkan langkah yang berhubungan dengan pemilihan proses berdasarkan kondisi (misal : Jika ada nada sambung maka kita masukkan koin) dan langkah yang berhubungan dengan perulangan (misal : Ulangi memekan tombol sampai telepon diangkat).
Di dalam buku yang saya pelajari, algoritma dibagi menjadi 3 kelompok proses :
1. Sequence process : Proses secara berurutan
2. Selection process : Proses pemilihan
3. Iteration process : Proses perulangan
Syarat algoritma yang baik :
1. Finiteness : Algoritma harus berakhir setelah melakukan sejumlah proses.
2. Definiteness : Tidak ambigu, maknanya harus tepat.
3. Input : Tiap algoritma punya masukan untuk diolah.
4. Output : Tiap algoritma memberikan hasil atau output.
5. Effectiveness : Langkah-langkah algoritma dikerjakan dalam waktu yang wajar.
Tidak ada komentar:
Posting Komentar