Anda di halaman 1dari 3

Forum 5 – Greedy Methods

https://www.slideshare.net/EndangRetnoningsih/pertemuan-12-algoritma-greedy-92307781

https://ichi.pro/id/algoritma-greedy-264542167975051

Selamat Pagi Pak, 

Terima kasih atas penjelasan mengenai Algoritma Greedy. Algoritma Greedy adalah Algoritma yang
memecahkan masalah langkah demi langkah.

Berikut penyelesaian tentang bagaimana cara penukaran yang optimum sehingga semua uang 41
sen dapat ditukar dengan koin secara tepat dan optimal.

Strategi Greedy:

Pada setiap Langkah, pilihlah koin dengan nilai terbesar dari himpunan koin yang tersisa.

Diketahui:
Jumlah uang yang akan ditukar = 41 sen
Koin yang tersedia = 25 sen, 10 sen, 4 sen

Langkah 1: pilih 1 buah koin 25 sen (Total = 25 sen)


Langkah 2: pilih 4 buah koin 4 sen (Total 25 sen + 16 sen = 41 sen)

Solusi Optimal Banyaknya koin minimum = 5 koin


Solusi Optimal Jumlah Uang yang ditukar = 41 sen

Koin 10 sen tidak digunakan karena tidak dapat menghasilkan solusi optimal dalam melakukan
penukaran uang.

Program Mengurutkan Nominal Pecahan Uang (dari yang terbesar hingga yang terkecil) dan Tukar
Nilai Uang dengan Menggunakan Algoritma Greedy

Diberikan Uang Pecahan dengan Nominal (50,100,300,500,1000). Nilai Uang yang akan ditukar
adalah sebesar 6550, dengan algoritma Greedy dapat ditentukan Pengurutan Nominal Pecahan uang
(dari yang terbesar hingga yang terkecil) dan nilai tukar uang dengan nominal yang tersedia.

Berikut Program Code nya, Compiler yang digunakan: DevC++


#include<stdio.h>
#include<conio.h>
#define size 99
void sort(int[], int);
main()
{
int x[size],i,uang,n,k,hasil[size];
printf("\n Masukkan Banyak Uang : ");
scanf("%d", &n);
printf("\n \n Masukan Jenis Uang : \n");
for (i=1;i<=n;i++)
{
scanf("\n %d", &x[i]);
}
sort(x,n);
printf("\n Pengurutan Uang yang tersedia : \n");
for (i=1;i<=n;i++)
{
printf("%d",x[i]);
printf("\n");
}
printf("\n");
printf("\n Masukan Nilai yang akan ditukar : ");
scanf("%d", &uang);
printf("\n");
for (i=1;i<=n;i++)
{
hasil[i]=uang/x[i];
uang=uang%x[i];
k=uang%x[i];
}
for (i=1;i<=n;i++)
{
printf("Keping Uang %d", x[i]);
printf("-an sebanyak : %d", hasil[i]);
printf("\n \n");
}
printf("sisanya adalah %d",k);
getch();
return 0;
}
void sort (int a[], int siz)
{
int pass, hold,j;
for (pass=1;pass<=siz-1;pass++){
for (j=0;j<=siz-2;j++){
if (a[j+1]<a[j+2]){
hold = a[j+1];
a[j+1]=a[j+2];
a[j+2]=hold;
}}}}

Hasil Compile Program

Anda mungkin juga menyukai