Algoritma adalah langkah dalam mencari solusi atas sebuah masalah. Banyak sekali algoritma yang dapat kita gunakan dalam membangun sebuah program, salah satunya adalah algoritma greedy.
Algoritma greedy merupakan metode yang sangat populer untuk memecahkan persoalan optimasi. Greedy sendiri diambil dari bahasa inggris yang artinya rakus, tamak atau serakah. Prinsip algoritma greedy adalah: “take what you can get now!”.
Contoh masalah tiap hari yang menggunakan prinsip greedy:
– Memilih beberapa jenis investasi (penanaman modal)
– Mencari jalur tersingkat dari Bandung ke Surabaya
– Memilih jurusan di Perguruan Tinggi
– Bermain kartu remi
Algoritma greedy membentuk solusi langkah per langkah (step by step). Terdapat banyak pilihan yang mesti dieksplorasi pada setiap langkah solusi. Oleh karena itu, pada setiap langkah harus dibuat keputusan yang terbaik dalam menentukan pilihan. Keputusan yang telah diambil pada suatu langkah tidak dapat diubah lagi pada langkah selanjutnya.
Persoalan optimasi (optimization problems): persoalan yang menuntut pencarian solusi maksimal. Persoalan optimasi ada dua macam, yaitu Maksimasi (maximization) dan Minimasi (minimization).
Solusi maksimal (terbaik) adalah solusi yang bernilai minimal atau maksimum dari sekumpulan alternatif solusi yang bisa jadi.
Elemen persoalan optimasi: kendala (constraints) dan fungsi objektif (atau fungsi optimasi).
Solusi yang memenuhi semua kendala disebut solusi layak (feasible solution). Solusi layak yang mengoptimumkan fungsi optimasi disebut solusi maksimal. Untuk LA sekarang ini saya akan menjelaskan program pengambilan koin, yang menggunakan algoritma greedy. Bahasa pemrograman yang saya gunakan adalah bahasa C++, dan software yang digunakan adalah borland C.