Contoh Program Menggunakan Algoritma Greedy

melanjutkan postingan sebelumnya yaitu Pengertian Algoritma Greedy, kali ini akan dibahas tentang program yang menggunakan algoritma tersebut.
Untuk programnya tentang pengambilan koin, yang menggunakan algoritma greedy. Bahasa pemrograman yang saya gunakan adalah bahasa C++, dan software yang digunakan adalah borland C.

Berikut kode sumbernya :

#include<stdio.h>
#include<conio.h>
#define size 99
void sort(int[], int);
main(){
            int x[size],i,uang,n,hasil[size];
            printf("\n Banyak Koin : ");
            scanf("%d", &n);
            printf("\n \n Masukan Jenis Koin : \n");
            for (i=1;i<=n;i++)
                        {
                                    scanf("\n %d", &x[i]);
                        }
            sort(x,n);
            printf("\n Koin yang tersedia : \n");
            for (i=1;i<=n;i++)
                        {
                                    printf("%d",x[i]);
                                    printf("\n");
                        }
            printf("\n");
            printf("\n Masukan Nilai yang dipecah : ");
            scanf("%d", &uang);
            printf("\n");
            for (i=1;i<=n;i++)
                        {
                                    hasil[i]=uang/x[i];
                                    uang=uang%x[i];
                        }
            for (i=1;i<=n;i++)
                        {
                                    printf("Keping %d", x[i]);
                                    printf("-an sebanyak : %d", hasil[i]);
                                    printf("\n \n");
                        }
            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;
                                                }
                                    }
            }
}

Berikut ini logika programnya

1.      Buka Borland C setelah itu pilih new -> text edit atau bias juga dengan text editor lain seperti noetepad ++.
2.      Masukan kode sumber yang sudah di benarkan , lalu save dengan ekstensi .cpp, untuk namanya terserah tapi disini saya memberi nama dengan greedy.cpp
3.      Seperti yang kita tahu bahwa bahas c terdiri dari library input – output. Oleh karena itu kita harus selalu mendeklarasikan jika ingin menggunaknnya. Selain library juga kita harus mendeklarasikan input-nya dapat berupa string atau interger
#include<stdio.h>       = deklarasi standard input output .    
#include<conio.h>      = deklarasi input-output seperti perintah  getch,getche .
#define size 99            = mendefinisikan bahwa input hanya berupa interger
4.      Selanjutnya ada perintah
void sort(int[], int);                      => dekalrasi fungsi sort yang bernilai void, dan berparameter array interger.
5.      Lalu terdapat blok programselanjutnya berfunggsi untuk mengimput banyak koin yang ingin di masukkan.
Contoh Program menggunakan Algoritma Greedy
int x[size],i,uang,n,hasil[size];  => deklarasi variable  x berparameter size dengan tipe data I                                                             integer.
printf("\n Banyak koin : ");        => mencetak string “Banyak koin :”
scanf("%d", &n);                     =>untuk mengambil input dari keyboard, dengan tipe integer.

Contoh Program menggunakan Algoritma Greedy

Pada baris selanjutnya kita di minta untuk memasukkan jenis koin yang kita punya. Disini terjadi perulangan denga perintah for.

printf("\n \n Masukan jenis koin : \n");            => untuk mencetak  “Masukan jenis koin”.
for (i=1;i<=n;i++)                                => disini terjadi iterasi dan increment,dengan nilai awal I =1
{                                                         
            scanf("\n %d", &x[i]);             = > memasukkan inputan pada variable x pada index ke i
           
6.   Setelah prose iterasi yang ada di atas masuk lagi kebagian sorting/ pengurutan
Contoh Program menggunakan Algoritma Greedy
sort(x,n);          => mengurtkan dari variable x ke n
printf("\n Koin yang tersedia : \n");.
for (i=1;i<=n;i++)=> terjadi perulangan lagi dengan nilai awal i=1 dan I  lebih kecil sama dengan n, lalu i increment
     {printf("%d",x[i]);       = >mencetak isi dari variable x index ke i
                 printf("\n");      => baris baru.  }
printf("\n");                  => mencetak baris baru.

printf("\n Masukan nilai yang dipecah : ");                      => disini menanyakan untuk nilai yang ingin di pecah dengan uang koin.
scanf("%d", &uang);    = > membaca inputan dan di masukkan ke variable uang dengan tipe integer.
printf("\n");                                   = baris baru.
for (i=1;i<=n;i++)                => perulangn seperti diaatas
     {
hasil[i]=uang/x[i];                                => memberi nilai variable hasil dengan rumus uang di bagi x indeks ke i
uang=uang%x[i];                                 => lalu memberikan nilai uang dari variable uang modulus x indeks ke i
     }        



7. Pada bagian ini akan di hasilkan berapa koin yang di butuhkan untuk memecah uang yang di input .
Contoh Program menggunakan Algoritma Greedy
for (i=1;i<=n;i++)                                                 => perulangan penambahan nilai i dengan
1 mulai dari 1 hingga kurang dari sama dengan nilai n.
     {
printf("Keping %d", x[i]);                   = > mencetak nilai keeping dengan nilai x indeks ke i.
printf("-an sebanyak : %d", hasil[i]);                           =mencetak berapa koin yang akan di pakai
                 printf("\n \n");
     }
getch();    =>menampilkan output.
return 0;    => mengembalikan nilai menjadi 0.
}
void sort (int a[], int siz)                                      = >disini deklarsi fungsi sort dengan pareameter a array , siz
{
int pass, hold,j;                                                     = >deklarasi variable pass,hold,dan j
for (pass=1;pass<=siz-1;pass++){                        = >iterasi selama pass dengan nilai awal 1 lebih kecil sama dengan siz lalu increment pass.
for (j=0;j<=siz-2;j++){                                    = >iterasi j dengan nilai awal j=0 dan lebih kecil sama dengan variable siz-2 dan j increment.
if (a[j+1]<a[j+2]){                               => iterasi pada a indeks ke j+1 lebih kecil dari a indeks j+2
hold = a[j+1];                          => memberi nilai pada hold
a[j+1]=a[j+2];                          = > deklarasi bahwa a indeks j+1 sama dengan array a indeks j+2
a[j+2]=hold;                            => array a indeks j+2 sama nilainya dengan hold
}}}}


8.      Maka setelah di jalankan dan benar program akan mengeluarkan output seperti ini :

Contoh Program menggunakan Algoritma Greedy
Disini saya mencoba memasukkan 3 koin,koin yang pertama 100 ,50 dan 200. Proses pertama adalah sorting karena ini algoritma greedy maka koin dengan angka terbesar terletak pada posisi awal sehingga akan tersusun seperti di atas yaitu
200
100
50

Setelah itu kita masukkan nilai uang yang akan di pecah , disini saya beri nilai 250. Maka cara paling efektif untuk mendapatkan nilia 250 adalah dengan 1 koin 200-an dengan 1 koin 50-an.


Bagikan :





Artikel Terkait

5 Responses to "Contoh Program Menggunakan Algoritma Greedy"

  1. Wah saya sudah lupa dengan pemrograman, hehehehe :D

    BalasHapus
    Balasan
    1. mending gausah diinget gan bikin pusing

      Hapus
  2. algoritma greedy nya terdapat dimana pada source di atas bang...?

    BalasHapus
  3. waaahhhh... mantap min
    ada penjelasannya jugaa... jarang jarang ketemu yg dijelasin kek gini

    BalasHapus
  4. mantap gan padat penjelasanya jadi inget lagi algorithm greedy

    BalasHapus