Apa Itu Algoritma Greedy?
Algoritma Greedy, atau Algoritma
Serakah, adalah salah satu pendekatan algoritmik yang paling sederhana dan
intuitif. Prinsip utamanya adalah membuat pilihan terbaik pada setiap
langkah saat itu juga, dengan harapan bahwa serangkaian pilihan lokal yang
optimal akan menghasilkan solusi global yang optimal. Algoritma ini tidak
mempertimbangkan konsekuensi dari setiap pilihan di masa depan, melainkan fokus
pada apa yang paling menguntungkan saat itu.
Contoh:
Masalah Penukaran Uang
Ini adalah contoh klasik yang paling
baik untuk memahami Algoritma Greedy.
Masalah: Tukarkan sejumlah uang dengan koin sesedikit mungkin. Koin
yang Tersedia: Rp 1.000, Rp 500, Rp 200, Rp 100, Rp 50, Rp 25.
Cara Kerja Algoritma:
- Ambil koin dengan nominal terbesar yang bisa Anda
gunakan.
- Ulangi langkah 1 sampai sisa uang habis.
Contoh Kasus: Menukarkan uang sebesar Rp 1.275.
- Langkah 1:
Ambil koin Rp 1.000 (terbesar). Sisa uang: Rp 275.
- Langkah 2:
Ambil koin Rp 200 (terbesar yang tersisa). Sisa uang: Rp 75.
- Langkah 3:
Ambil koin Rp 50. Sisa uang: Rp 25.
- Langkah 4:
Ambil koin Rp 25. Sisa uang: Rp 0.
Hasil Akhir: 1 koin Rp 1.000, 1 koin Rp 200, 1 koin Rp 50, dan 1 koin Rp
25.
Diagram
Alir dan Deskripsinya
Berikut adalah diagram alir yang
memvisualisasikan langkah-langkah di atas, diikuti dengan deskripsi rinci dari
setiap tahap.
Deskripsi
Diagram Alir
Diagram alir di atas menggambarkan
alur kerja algoritma secara rinci:
- Mulai:
Ini adalah titik awal dari algoritma, di mana program mulai dieksekusi.
- Deklarasi Koin & Uang: Pada tahap ini, kita mendefinisikan daftar koin yang
tersedia (diurutkan dari yang terbesar ke terkecil) dan jumlah uang yang
akan ditukar.
- Inisialisasi Hasil:
Variabel untuk menyimpan hasil penukaran (misalnya, dalam bentuk kamus
atau array) diatur menjadi kosong. Ini adalah tempat kita akan
mencatat berapa banyak koin dari setiap nominal yang digunakan.
- Untuk Setiap Koin:
Algoritma memulai perulangan melalui daftar koin, dimulai dari koin dengan
nilai tertinggi (dalam kasus ini, Rp 1.000).
- Apakah Sisa Uang >= Koin?: Ini adalah inti dari "sifat serakah".
Algoritma memeriksa apakah koin saat ini dapat digunakan untuk menukar
sisa uang.
- Ya: Jika
koin bisa digunakan, algoritma melakukan tiga langkah:
- Hitung Jumlah Koin:
Menghitung berapa banyak koin yang bisa diambil.
- Simpan Hasil:
Menambahkan jumlah koin yang diambil ke variabel hasil.
- Kurangi Sisa Uang:
Mengurangi jumlah uang yang akan ditukar dengan nilai koin yang baru saja
diambil.
- Tidak:
Jika koin saat ini tidak bisa digunakan, algoritma akan melangkah ke koin
berikutnya.
- Selesai Perulangan:
Perulangan berhenti setelah semua koin dipertimbangkan.
- Tampilkan Hasil:
Menampilkan jumlah koin yang digunakan untuk setiap nominal.
- Selesai:
Algoritma berakhir.
Melalui diagram ini, kita bisa
melihat bahwa Algoritma Greedy berfokus pada pengambilan keputusan satu per
satu, tanpa pernah melihat ke belakang. Ini membuat algoritma ini sangat
efisien, meskipun tidak selalu memberikan solusi optimal untuk semua jenis masalah.
Tidak ada komentar:
Posting Komentar