MENGENAL ALGORITMA
Algoritma Dalam Kehidupan
Dalam sehari-hari kita tentu sering melakukan sebuah aktiviatas. Sejumlah langkah kita lakukan untuk menyelesaikan aktivitas tersebut. Dan uniknya, dua orang melakukan tujuan yang sama belum tentu melakukan cara yang sama.
Misalnya ada dua orang (A dan B) yang membuat mie. Berikut langkah-langkah yang mereka lakukan:
Yang A lakukan:
- Rebus mie di air mendidih selama 3 menit sambil diaduk
- Sementara mie direbus, campurkan bumbu bubuk dan minyak kedalam mangkuk
- Tuangkan mi ke mangkok.
- Taburkan mie dengan bawang goreng
- Mie siap dihidangkan
Yang B lakukan:
- Rebus mie di air mendidih selama 3 menit sambil diaduk
- Tuangkan mi ke mangkok
- Campurkan bumbu bubuk dan minyak kedalam mangkok
- Taburkan mie dengan bawang goreng
- Mie siap dihidangkan.
Sekilas yang dilakukan A dan B terlihat sama. Hanya pada urutan ke-2 dan 3 yang berbeda. Akan tetapi kedua langkah ini menghasilkan tujuan yang sama. Yang dilakukan A adalah menuangkan mie matang ke dalam mangkuk yang sudah berisi bumbu, sementara si B menaburkan bumbu setelah mie dituangkan ke dalam mangkuk.
Demikian gambaran sederhana tentang algoritma memasak mie. Terdapat target yang hendak dicapai (masak mie), terdapat input (mie dan bumbu), terdapat sarana (kompor dan panci) dan semuanya menghasilkan output yang sama (mie matang).
Algoritma di Pemrograman
Jadi apa itu algoritma? Secara bahasa dapat dikatakan bahwa algoritma adalah sejumlah langkah untuk menyelesaikan suatu pekerjaan. Lalu apa itu algoritma di dunia pemrograman? Di dalam ilmu komputer, algoritma adalah sejumlah langkah bagi komputer untuk menyelesaikan suatu tugas. Banyak solusi bagi permasalahan mulai dari yang sederhana hingga yang kompleks dapat diselesaikan oleh komputer dengan algoritma yang tepat. Tidak seperti algoritma memasak mie di atas yang relatif sederhana, ada banyak algoritma yang sudah ditemukan yang dapat digunakan untuk menyelesaikan suatu tugas dengan optimal. Selain itu dengan menggunakan komputer yang dapat memproses sesuatu dengan lebih cepat dibanding tanpa komputer, banyak tugas yang jenuh bila dilakukan secara manual dapat diselesaikan dengan cepat oleh komputer.
Contoh kasus adalah mencari jarak terpendek. Misalkan Kamu hendak ke kota Semarang dari kota Bandung dengan kendaraan pribadi. Ada banyak jalur yang dapat kita gunakan untuk sampai di tujuan. Tetapi kita akan ingin mencapai tujuan dengan jalur yang paling cepat. Kamu akan gunakan aplikasi Google Maps dengan fitur direction untuk menemukan jalur tercepat untuk sampai ke kota tujuan. Lalu bagaimana Google menemukan jalur tercepat tersebut? Mereka menerapkan algoritma Dijkstra atau algoritma pencarian jalur terpendek. Algoritma ini mencari jarak terpendek antar node pada sebuah graph, yang dalam kasus ini adalah graph jaringan jalan. Bila kita hendak membuat aplikasi serupa, kita dapat menerapkan algoritma serupa.
Ada banyak algoritma yang sudah ditemukan orang-orang terdahulu yang dapat kita gunakan untuk menyelesaikan suatu tugas, beberapa contohnya seperti algoritma pencarian, algoritma pengurutan, algoritma rekursif, dan algoritma graph. Setiap jenis algoritma pun memiliki banyak implementasi yang beragam. Contohnya pada algoritma pengurutan (sorting) terdapat banyak variasi implementasi, diantaranya bubble sort, selection sort, insertion sort, shell short, merge sort, quick sort, dan heap sort.
Jadi ketika kita mendengar seorang programmer sedang membuat program komputer, sebenarnya yang dia lakukan adalah merancang sejumlah proses berdasarkan satu atau lebih algoritma, dan menulisnya ke dalam bahasa pemrograman. Ketika program dijalankan, komputer akan melakukan langkah-langkah persis yang dituliskan oleh programmer tersebut.
Algoritma yang Baik dan Benar
Setelah memahami tentang algoritma, berapa algoritma yang dibutuhkan untuk memecahkan masalah? Bervariasi, tetapi banyak sekali algoritma yang diciptakan untuk memecahkan satu masalah tertentu.
Sebuah algoritma dikatakan benar jika algoritma menghasilkan output yang benar untuk semua kemungkinan input.
Dalam perkembangannya, algoritma yang benar saja seringkali tidak cukup. Tetapi juga dibutuhkan algoritma yang baik.
Sebuah algoritma dikatakan BAIK apabila seluruh proses didalamnya efisien untuk menghasilkan solusi dalam waktu sesingkat-singkatnya dengan mengunakan resource seminal mungkin.
Sumber : https://www.codepolitan.com/mengenal-algoritma-589a699a5e8bd