ALGORITMA DALAM KEHIDUPAN SEHARI-HARI
Proses
semacam algoritma sebenarnya dijumpai dalam sehari-hari. Jika Anda membaca
resep makanan, selain bahan-bahan digunakan, Anda juga akan melihat prosedur
untuk membuat masakan. Prosedur dalam resep seperti itu sebenarnya menyatakan
semacam algoritma. Dengan mengikuti langkah-langkah yang diberikan itu maka
Anda akan dapat membuat masakan itu. Dalam pengertian sekarang, algoritma
mempunyai kesamaan tidak hanya dengan resep makanan, tetapi juga dengan proses
metode, atau prosedur. Sebagai contoh, Gambar 3.1 memperlihatkan suatu prosedur
untuk memanaskan makanan ke dalam oven microwave.
1.
Taruhlah makanan dalam wadah yang aman untuk microwave.
2.
Tutuplah pintu microwave dengan
rapat.
3.
Tancapkan steker ke stop kontak.
4.
Putarlah knop ke posisi 5 menit.
5.
Tunggu sampai lampu mati dan ada bunyi ‘ting’.
6.
Lepaskan steker dari stop kontak.
7.
Bukalah pintu oven microwave dan keluarkan wadah yang berisi makanan tersebut.
Gambar 3.1 Contoh suatu prosedur
Prosedur itu merupakan suatu urutan yang
memandu orang untuk melakukan suatu proses.
Namun, ada perbedaan antara algoritma dan
prosedur. Prosedur biasanya bersifat global dengan mengasumsikan bahwa manusia
telah mengetahui rincian langkah-langkah tertentu. Sebagai contoh, perhatikan
prosedur berikut :
1. Ambil 5 buah kartu.
2. Urutkan kartu
tersebut.
Pada langkah kedua, manusia bisa
mengurutkan kartu tersebut dengan mudah tanpa harus diberi tahu caranya. Namun
hal seperti itu tidak bisa diterapkan pada computer. Jika komputer mengenal
lima buah data dan kita mengharapkan komputer untuk mengurutkannya, kita harus
member tahu secara detail bagaimana cara mengurutkannya. Itulah sebabnya di
dalam ilmu komputer terdapat berbagai algoritma yang ditujukan untuk
mengurutkan data, seperti bubble sort,
insertion sort, dan quick sort.
Algoritma-algoritma ini menjamin bahwa setiap langkah akan dapat dikerjakan
oleh komputer.
3.2 DASAR PENYUSUNAN ALGORITMA
Sejauh ini tidak ada standarisasi
tentang bagaimana menyusun algoritma. Secara prinsip, Anda mempunyai kebebasan
untuk menyusun bentuk suatu algoritma. Anda bisa menggunakan kata-kata dalam
bahasa manusia,pseukode atau bahkan diagram alir untuk mewujudkan suatu
algoritma.
Walaupun begitu ada beberapa hal yang
perlu diperhatikan dalam menyusun suatu algoritma. Menurut Knuth (1973, hal. 4)
dan juga Horowitz dkk (1999, hal. 1), ada lima cirri penting yang harus
dimiliki sebuah algoritma yaitu berupa finiteness,
definitiness, masukan, keluaran, dan efektivitas.
1.
Finitiness. Finitiness menyatakan bahwa suatu algoritma harus
berakhir untuk semua kondisi setelah memproses sejumlah langkah.
2.
Definitiness. Definitiness menyatakan
bahwa setiap langkah harus dinyatakan dengan jelas (tidak rancu atau
mendua-arti).
3.
Masukan. Setiap algoritma bisa tidak
memiliki masukan atau mempunyai satu atau beberapa masukan. Masukan merupakan
suatu besaran yang diberikan di awal sebelum algoritma diproses.
4.
Keluaran. Setiap algoritma memiliki
keluaran, entah hanya sebuah atau banyak keluaran. Keluaran merupakan besaran
yang mempunyai kaitan atau hubungan dengan masukan.
5.
Efektivitas. Setiap algoritma
diharapkan bersifat efektif, dalam arti semua operasi yang dilaksanakan oleh
algoritma haruslah sederhana dan dapat dikerjakan dalam waktu yang terbatas.
Secara prinsip, setiap instruksi dalam algoritma dapat dikerjakan oleh orang
dengan hanya menggunakan kertas dan pensil.
Menurut Cormen, dkk. (1994, hal. 2),
sebuah algoritma dikatakan benar, untuk berbagai ragam masukan, jika algoritma
berakhir dengan keluaran yang benar. Pada keadaan seperti ini, algoritma
menyelesaikan masalah komputasi yang diberikan.
Selain ketentuan-ketentuan yang telah
disebutkan, patut pula ditekankan disini untuk selalu menghindari langkah yang
merujuk ke langkah lain. Contoh perujukan ke langkah lain ditunjukkan pada
contoh berikut, yang membahas algoritma Euclid yang dijelaskan oleh Knuth
(1973, hal 2.).
0 komentar:
Posting Komentar