Mudahnya mari kita berandai-andai seperti demikian :
Misal kita ingin meminum segelas air yang ada di dispenser. Maka algoritma yang sering kita terapkan mungkin mendekati seperti ini :
1. Ambil gelas di rak yang berada di dapurLihat, kegiatan yang sepele namun kita gunakan algoritma untuk memecahkannya. Setiap orang memiliki pola pikir yang berbeda, demikian juga dengan algoritma, tiap orang tidak akan mungkin sama. Yang ada hanya mirip antara satu sama lain. Algoritma diatas bisa juga dikembangkan, bagaimana jika air tidak keluar dari keran dispenser? Maka bisa saja berkembang seperti berikut :
2. Bawa gelas tersebut dan letakkan dibawah keran dispenser.
3. Tekan kenop keran hingga air mengisi gelas
4. Tunggu hingga gelas penuh terisi air atau sesuai jumlah air yang diinginkan, hentikan kenop keran
5. Angkat gelas dari bawah keran
6. Selesai
1. Ambil gelas di rak yang berada di dapurDari algoritma diatas, apakah masih bisa dikembangkan lagi? Tentu saja. Lihat poin nomor 6, mengganti galon air tentu saja ada algoritmanya tersendiri. Nah kemudian bagaimana kira2 algoritma jika kita ingin air minum hangat?
2. Bawa gelas tersebut dan letakkan dibawah keran dispenser.
3. Tekan kenop keran hingga air mengisi gelas
4. Jika :
- air tidak keluar dari keran, jalankan langkah nomor 5.
- air keluar, jalankan langkah nomor 7.
5. Cek apakah galon masih berisi air :
- jika tidak, jalankan langkah nomor 6
- jika ya, periksa keran dispenser, ulangi langkah nomor 3
6. Ganti galon kosong dengan galon yang masih berisi air, kemudian ulangi langkah nomor 3
7. Tunggu hingga gelas penuh terisi air atau sesuai jumlah air yang diinginkan, hentikan kenop keran
8. Angkat gelas dari bawah keran
9. Selesai
Oh ya, tidak ada algoritma yang benar maupun salah. Asal tujuan tercapai, maka algoritma tersebut dinilai tepat dan dapat digunakan. Tentu saja, algoritma yang paling baik adalah yang paling efisien dan tidak merugikan atau menimbulkan masalah lain. Algoritma juga tidak boleh buntu, alias tidak ada pemecahannya, atau bahkan algoritma yang berputar-putar tanpa henti (infinite loop) coba amati algoritma berikut :
1. Ambil gagang teleponAlgoritma apakah diatas? Ya benar, algoritma untuk melakukan komunikasi melalui telepon. Namun coba lihat poin nomor 4, pilihan yang kedua :
2. Tekan nomor telepon yang akan dituju
3. Tunggu hingga terdengar nada sambung
4. Jika :
- panggilan dijawab, jalankan langkah nomor 5
- panggilan tidak dijawab, ulangi langkah nomor 2
5. Mulai berbicara
6. Selesai berbicara, letakkan gagang telepon di tempat semula
7. Selesai.
- Jika panggilan tidak dijawab, ulangi langkah nomor 2
Sekilas nampak masuk akal. Namun apa yang terjadi jika panggilan tidak juga dijawab? Kita akan terus menerus mengulang langkah nomor 2 -> 3 -> 4 -> 2 -> 3 -> 4 -> … tanpa henti. Itulah yang disebut infinite loop. Sebagai manusia yang berakal tidak mungkin kita akan melakukannya. Kecuali emang lagi pengen iseng ngga ada kerjaan lain
Lalu bagaimana sebaiknya?
1. Ambil gagang teleponNah, tidak hanya programmer dan matematikawan yang selalu bergelut dengan algoritma. Otak kita yang canggih selalu memikirkan algoritma-algoritma kompleks tanpa kita sadari. Algoritma tiap orang dipengaruhi juga oleh pengalaman, wawasan dan bahkan gaya hidup. Belajar pemrograman bisa membuat kita berpikir secara sistematis dan efisien, karena dalam dunia pemrograman komputer, setiap perintah atau baris-baris kode harus didasarkan pada algoritma-algoritma. Kita dihadapkan pada sesuatu yang maya, yang tak nampak, oleh karena itu otak kita dibiasakan menyusun algoritma baru dengan pertimbangan-pertimbangan yang kritis. Mengapa kritis? karena selain maya, komputer tak mengenal kompromi. Salah dalam menetapkan langkah, maka kita tidak akan mendapatkan hasil yang diinginkan. Banyak programmer yang pintar menghapal dan mengingat kode-kode program, namun seringkali salah dalam menerapkan algoritma.
2. Tekan nomor telepon yang akan dituju
3. Tunggu hingga terdengar nada sambung
4. Jika :
- panggilan dijawab, jalankan langkah nomor 6
- panggilan tidak dijawab, jalankan langkah nomor 5
5. Jika :
- masih ingin mencoba melakukan panggilan ulang, jalankan langkah nomor 2
- tidak ingin mencoba melakukan panggilan ulang, jalankan langkah nomor 7
6. Lakukan percakapan hingga selesai
7. Letakkan gagang telepon di tempat semula
8. Selesai.
Apakah pemrograman menakutkan? Justru disitu tantangannya. Mengasyikkan bermain-main dengan algoritma dan logika, apalagi kita berkuasa penuh atas komputer yang kita “kendalikan”. Sekali kita berhasil menyelesaikan suatu masalah, maka tak ada lain selain kepuasan yang akan kita dapatkan.
Wah jadi ngelantur nih…hehehe…yah..tulisan ini bukan buat ngajak semua orang buat jadi programmer kok
Tidak ada komentar:
Posting Komentar