Posts Tagged ‘algoritma’

h1

Hidup dengan Algoritma

September 25, 2008

Sebagian dari kita mungkin sedikit asing dengan kata ini. Apa itu algoritma? Tanpa kita sadari, sebenarnya kita selalu menerapkan algoritma untuk melakukan suatu kegiatan dalam kehidupan sehari-hari. Bahkan kegiatan sekecil apapun kita tidak akan pernah lepas dari algoritma. Singkatnya, algoritma adalah suatu urutan atau langkah dalam menyelesaikan suatu permasalahan.

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 dapur
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

Lihat, 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 :

1. Ambil gelas di rak yang berada di dapur
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

Dari 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? 🙂

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 telepon
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.

Algoritma apakah diatas? Ya benar, algoritma untuk melakukan komunikasi melalui telepon. Namun coba lihat poin nomor 4, pilihan yang kedua :
– 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 telepon
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.

Nah, 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.

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 😀 Hanya agar kita tahu bahwa hidup ini tak pernah lepas dari algoritma. Saking pentingnya bahkan jadi mata kuliah tersendiri di banyak jurusan teknik, ex : Teknik Informatika, Teknik Elektro, dan lain-lain. Mungkin perlu juga dimasukkan dalam kurikulum sekolah 🙂