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 paling 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!”.
– 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 perlu 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 optimum. Persoalan optimasi ada dua macam: Maksimasi (maximization) dan Minimasi (minimization) Solusi optimum (terbaik) adalah solusi yang bernilai minimum atau maksimum dari sekumpulan alternatif solusi yang mungkin. Elemen persoalan optimasi: kendala (constraints) danfungsi objektif(atau fungsi optiamsi)
Solusi yang memenuhi semua kendala disebut solusi layak (feasible solution). Solusi layak yang mengoptimumkan fungsi optimasi disebut solusi optimum. Untuk LA kali 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.
Keep your knowledge by sharing to everyone
Pengertian Metode Greedy Dan Algoritma Greedy
Algoritma adalah sebuah prosedur atau formula matematis yang digunakan untuk memecahkan suatu masalah. Ada berbagai macam jenis algoritma, salah satunya adalah Algoritma Greedy.
Dalam artikel ini, kita akan belajar tentang konsep, karakteristik, aplikasi, contoh, implementasi dan perbandingannya.
Kelebihan dan Kekurangan
Berikut adalah beberapa kelebihan dan kekurangan dari algoritma Greedy:
Huffman Coding Algorithm
Huffman Coding Algorithm digunakan dalam proses kompresi data. Algoritma ini bekerja dengan mengganti setiap simbol dalam data dengan kode biner yang lebih pendek, sehingga mengurangi jumlah bit yang diperlukan untuk menyimpan data.
Dijkstra’s Algorithm digunakan untuk mencari jarak terpendek pada sebuah grafik. Algoritma ini memilih simpul dengan jarak terpendek pada setiap tahap, sehingga mencapai solusi terbaik pada akhirnya.
Kruskal’s Algorithm digunakan dalam proses pengelompokan dan pengurutan data. Algoritma ini bekerja dengan memilih simpul dengan bobot terkecil pada setiap tahap, sehingga menghasilkan solusi terbaik pada akhirnya.
Apa Itu Algoritma Greedy?
Sebelum membahas tentang Algoritma ini, perlu diketahui terlebih dahulu apa itu algoritma. Algoritma adalah serangkaian instruksi atau aturan logis yang mengarahkan komputer untuk menyelesaikan tugas tertentu. Sedangkan Algoritma Greedy adalah salah satu jenis algoritma yang memilih langkah terbaik pada setiap tahap, dengan harapan akan mencapai solusi akhir yang optimal. Algoritma ini sangat umum digunakan dalam pemrograman.
Kekurangan Algoritma Greedy
Contoh Algoritma Greedy
Berikut ini adalah beberapa contoh penggunaan:
Karakteristik Algoritma Greedy
Algoritma Greedy memiliki karakteristik yang unik, yaitu selalu memilih opsi terbaik yang tersedia pada setiap tahap. Hal ini berarti bahwa algoritma ini tidak mempertimbangkan keputusan di masa depan, melainkan hanya memilih opsi yang terbaik pada saat itu.
Secara umum terdapat dua jenis Algoritma ini, yaitu Greedy Terikat (Bound Greedy) dan Greedy Tidak Terikat (Unbound Greedy). Pada Greedy Terikat, mempertimbangkan batasan pada setiap tahap. Sedangkan pada Greedy Tidak Terikat, tidak mempertimbangkan batasan pada setiap tahap.
a. Perbandingan dengan Dynamic Programming
Jika dibandingkan dengan Dynamic Programming, Greedy lebih sederhana dan cepat dalam proses pengambilan keputusan. Namun, Dynamic Programming lebih efektif dalam memecahkan masalah dengan ukuran yang lebih besar.
Perbandingan Algoritma Greedy dengan Algoritma Lainnya
Algoritma ini memiliki kelebihan dan kelemahan jika dibandingkan dengan algoritma lainnya, seperti: