Algoritma adalah suatu urutan dari beberapa langkah logis dan sistematis yang digunakan untuk menyelesaikan masalah tertentu. Algoritma juga erat kaitannya dengan pemograman komputer.
Orang-orang yang diharuskan memahami konsep algoritma salah satunya yaitu programmer, sebab pekerjaannya berhubungan dengan coding dan algoritma pada komputer.
Pengertian Algoritma
Algoritma adalah logika, metode dan tahapan “urutan” sistematis yang digunakan untuk memecahkan suatu permasalahan.
Algoritma dapat juga diartikan sebagai urutan langkag secara sistematis dan logis. Dalam perkembangannya, algoritma banyak dipakai di bidang komputer.
Secara spesifik, pengertian algoritma adalah suatu metode khusus yang tepat dan terdiri dari serangkaian langkah yang terstruktur dan dituliskan secara matematis yang akan dikerjakan untuk menyelesaikan suatu masalah dengan bantuan komputer.
Berikut tiga bentuk dasar algoritma:
- Algoritma sekuensial (Sequence Algorithm), yaitu sebuah perintah yang dapat tersusun dengan sistematis dan berurutan yang nantinya muncul beberapa instruksi.
- Algoritma perulangan (Looping Algorithm), yaitu sebuah perintah yang dapat digunakan untuk mengulang beberapa banyak perintah dengan memperhitungkan syarat-syarat tertentu.
- Algoritma percabangan atau bersyarat (Conditional Algorithm), yaitu suatu perintah yang dapat digunakan untuk memilih salah satu dari beberapa pilihan yang ada.
Ciri-ciri Algoritma
Adapun ciri algoritma sebagai berikut:
- Ada Input
- Ada proses
- Ada Output
- Memiliki Instruksi-Instruksi yang jelas dan tidak Ambigu
- Harus mempunyai Stoping Role
Jenis-Jenis Algoritma
Berikut jenis-jenis algoritma, diantaranya yaitu:
1. Algoritma Divide and Conquer
Algoritma divide and conquer yaitu algoritma yang membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Algoritma ini terdiri dari dua bagian, yaitu;
- Memecah masalah menjadi beberapa sub-masalah independen yang lebih kecil dari jenis yang sama.
- Menemukan solusi akhir dari masalah asli setelah menyelesaikan masalah yang lebih kecil ini secara terpisah.
Menggabungkan pengurutan dan pengurutan cepat dapat dilakukan dengan algoritma divide and conquer.
2. Algoritma Rekursi
Algoritma rekursi (Recursive Algorithm) yaitu algoritma yang memanggil dirinya sendiri secara berulang-ulang hingga masalah terpecahkan.
3. Algoritma Dynamic Programming
Algoritma pemrograman dinamis memecahkan masalah kompleks dengan memecahnya menjadi beberapa sub masalah sederhana, kemudian memecahkannya masing-masing satu kali lalu menyimpannya untuk digunakan di masa mendatang.
4. Algoritma Greedy
Algoritma ini digunakan untuk menyelesaikan masalah optimisasi. Dalam algoritma ini, kita akan menemukan solusi optimal secara lokal (tanpa memperhatikan konsekuensi apa pun di masa mendatang) dan berharap menemukan solusi optimal di tingkat global.
Algoritma ini memiliki 5 komponen:
- Kumpulan kandidat yang kita coba cari solusinya.
- Fungsi pemilihan yang membantu memilih kandidat terbaik.
- Fungsi kelayakan yang membantu dalam menentukan apakah kandidat dapat digunakan untuk menemukan solusi.
- Fungsi obyektif yang memberikan nilai pada solusi yang mungkin atau solusi parsial.
- Fungsi solusi yang memberi tahu kapan kita telah menemukan solusi untuk masalah tersebut.
5. Algoritma Brute Force
Algoritma ini merupakan salah satu algortima yang memiliki konsep yang paling sederhana.
Algoritma brute force akan mengiterasi semua solusi yang mungkin untuk mencari satu atau lebih dari satu solusi yang dapat menyelesaikan suatu masalah.
Berikut adalah contoh pencarian Sekuensial yang dilakukan dengan menggunakan brute force:
6. Algoritma Backtracking
Algoritma Backtracking yaitu teknik untuk memecahkan masalah secara rekursif dan mencoba untuk mendapatkan solusi masalah dengan menyelesaikan satu bagian masalah pada saat yang bersamaan.
Jika salah satu solusi gagal, maka menghapusnya dan mundur untuk menemukan solusi lain.
Fungsi dan Manfaat Algoritma
Fungsi utama dari algoritma yaitu untuk memecahkan suatu masalah. Berikut beberapa fungsi dan manfaat algoritma, yaitu:
- Untuk membantu menyederhanakan suatu program yang rumit dan besar.
- Algoritma dapat digunakan berkali-kali untuk menyelesaikan suatu permasalahan.
- Membantu memecahkan suatu permasalahan dengan logika dan sistematis.
- Agar dapat melakukan pendekatan top-down dan divide and conquer.
- Untuk memudahkan membuat program yang lebih rapih dan terstruktur sehingga lebih mudah dipahami dan dikembangkan.
- Memudahkan proses modifikasi pada program karena bisa dilakukan hanya pada satu modul tanpa harus mengubah modiul lainnya.
- Ketika terjadi kesalahan, algoritma dapat membantu menemukannya karena alur kerja yang jelas.
- Memudahkan proses dokumentasi.
Contoh Algoritma
Pada dasarnya algoritma tidak hanya dalam ilmu komputer dan matematika saja, tetapi dapat juga diimplementasikan dalam berbagai kegiatan manusia sehari-hari. Contohnya sebagai berikut.
Membuat Kopi Instan
Contoh algortima membuat kopi instan
- Buka kemasan kopi sachet.
- Tuangkan kopi ke dalam gelas.
- Siapkan air panas.
- Tuangkan air panas ke dalam gelas berisi kopi.
- Aduk kopi hingga merata.
- Kopi instan siap untuk diminum.
- Membuat Mie Instan
Algoritmenya sebagai berikut:
- Siapkan 400 ml air (2 gelas), 1 bungkus mie instan, panci, mangkuk, garpu dan sendok
- Kemudian memasukkan air ke dalam panci
- Masak air di keadaan kompor menggunakan api sedang
- Tunggu hingga air mendidih
- Masukkan mie tersebut pada air yang mendidih
- Aduk-aduk perlahan sekitar 3 menit
- Saat mie matang, masukkan bumbunya
- Aduk kembali mie sampai bumbu merata
- Mie instan siap untuk disajikan
Itulah beberapa informasi tentang algoritma yang dapat kamu ketahui. Semoga bermanfaat!