Anda di halaman 1dari 5

Program Algoritma Greedy dengan persoalan maksimasi dan minimasi untul mencari

cara paling efektif pengambilan koin


Roky Agung Darmawan
Tehnik Informatika, Ilmu Komputer, Stmik Bani saleh Bekasi
E-mail: rokyagungd@gmail.com
Npm; 43A87006150234

ABSTRAK
Algoritma greedy merupakan salah satu dari sekian banyak algoritma yang sering di pakai dalam implementasi sebuah
system atau program yang menyangkut mengenai pencarian optimasi. Pendekatan yang digunakan di dalam
algoritma greedy adalah membuat pilihan yang tampaknya memberikan perolehan terbaik yaitu dengan membuat
pilihan optimum lokal (local optimum) pada setiap langkah dengan harapan bahwa sisanya mengarah ke solusi
optimum global (global optimm).

dan Minimasi dalam mencari solusi


optimasi.

1. PENDAHULUAN
I.
Latar belakang
Metode greedy adalah metode yang digunakan
untuk memecahkan persoalan optimasi, ada 2 macam
persoalan optimasi, yaitu maksimasi dan minimasi,
artinya dengan metode greedy kita bemaksud mencari
solusi terbaik, yaitu solusi yang benilai minimum atau
maksimum dari sekumpulan alternatif solusi yang ada.
Arti kata greedy sendiri adalah RAKUS, namun
maksud dari metode grredy adalah kita melihat solusi
optimal lokal, atau solusi optimal yang tampak didepan
mata, dengan harapan mendapatkan solusi optimal
secara global atau secara keseluruhan
II.
Rumusan Masalah
Dengan memperhatikan latar belakang yang terjadi,
maka saya aka membahas tentang masalah berikut ini:
Mencari sebuah solusi (optimasi) algoritma
greedy dengan persoalan Maksimasi
(Maxizimation)
Mencari sebuah solusi (optimasi) algoritma
greedy dengan persoalan Minimasi
(Minimization)
III.

Tujuan dibuatnya makalah ini untuk ;

2.

IV.

2. METODE PENILITITAN
Dalam metode penilitian saya melihat solusi optimal
lokal, atau solusi optimal yang tampak didepan mata,
dengan harapan mendapatkan solusi optimal secara
global atau secara keseluruhan

3. HASIL DAN PEMBAHASAN


I. Analisis

1.
2.
3.

Tujuan
1.

Dengan program menggunakan metode greedy maka


dapat memilih pecahan terbesar terlebih dahulu.

Mengambil pilihan yang terbaik yang dapat


diperoleh pada saat itu tanpa memperhatikan
konsekuensi ke depan.
Mengetahui bahwa dengan memilih optimum
lokal pada setiap langkah akan berakhir
dengan optimum global

Landasan Teori
Mengimplementasikan algoritma
greedy dengan persoalan Maksimasi

4.

Dalam pembuatan program perhitungan ini


terdapat langkah-langkah proses penghitungan yang
akan dijalankan sehingga mendapatkan hasil yang
diinginkan dan memungkinkan tidak terjadinya
kesalahan dalam perhitungan.
Berikut langkah-langkah proses program yang dibuat;
Setelah program muncul anda akan di minta untuk
memasukan banyaknya koin
Jika sudah memasukan banyaknya koin maka andan
akan dimanta memasukan jenis koin
Kemudian program akan menampilkan jenis koin yang
tersedia
Lalu anda tinggal memasukan nilai yang ingin di pecah
kemudian keluar tampilan hasil jenis keeping koin dan
berapa banyaknya

1. HASIL DAN PEMBAHASAN


I.

Source Code Algoritma Pada


Program

#include<stdio.h>
#include<conio.h>
#define size 99
void sort(int[], int);
main(){
printf("\t Nama : Roky Agung
Darmawan");
printf("\n");
printf("\t NPM
:
43A87006150234");
printf("\n");
printf("\t Kelas : TI 3B MALAM");
int x[size],i,uang,n,hasil[size];
printf("\n");
printf("\n");
printf("\n Masukan 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 Jenis Koin Yang
Tersedia : \n");
for (i=1;i<=n;i++)
{
printf("%d",x[i]);
printf("\n");
}
printf("\n");

printf("\n Masukan Nilai Yang Ingin


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;
}
}
}
}

II. Mendeklarasikan Dan


Menjelaskan Logika Program
1.
#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
2. Ada Perintah
void sort(int[], int);
=> dekalrasi fungsi sort yang bernilai void, dan
berparameter array interger.
3. Data Diri Saya
printf("\t Nama : Roky Agung Darmawan");
printf("\n");
printf("\t NPM : 43A87006150234");
printf("\n");
printf("\t Kelas : TI 3B MALAM");

4. Lalu terdapat blok programselanjutnya


berfunggsi untuk mengimput banyak koin yang
ingin di masukkan.

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.

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
5. Setelah prose iterasi yang ada di atas masuk
lagi kebagian sorting/ pengurutan

sort(x,n);
=> mengurtkan dari variable x ke n
printf("\n Jenis 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 Masukan Nilai Yang Ingin 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.
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
Pada bagian ini akan di hasilkan berapa koin
yang di butuhkan untuk memecah uang yang di
input.
6.

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
getch();
=>menampilkan output.
return 0; => mengembalikan nilai menjadi 0.

void sort (int a[], int siz)


= >disini deklarsi fungsi sort dengan pareameter
a array , size
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

adalah dengan 5 koin 2000-an, 1 koin 1000-an


dan 1 koin 100-an.

III. Design Program

8. setelah di

jalankan dan benar program akan


mengeluarkan output seperti ini :

IV. Flowchart
9. Disini saya mencoba memasukkan 4 koin, koin
yang pertama 100, 500, 1000 dan 2000. Proses
pertama adalah sorting karena ini algoritma
greedy maka koin dengan angka terbesar terletak
pada posisi awal sehingga akan tersusun seperti di
atas yaitu :
2000
1000
500
100
Setelah itu kita masukkan nilai uang yang akan di
pecah , disini saya beri nilai 11100. Maka cara
paling efektif untuk mendapatkan nilia 11100

Dari keseluruhan pembahasan program algoritma


greedy ini di harapkan dapat bermanfaat serta berguna
dalam kehidupan sehari-hari tentunya bagi pembuat
program dan untuk pembaca..Kesimpulan dari program
diharapkan dapat :

1.Penggunaan algoritma greedy dapat


diterapkan dalam berbagai hal dalam
kehidupan terutama yang berhubungan
dengan pemilihan kombinasi objek
dengan hasil optimum
2.Dalam permasalahan pemilihan
spesifikasi computer, variasi algoritma
greedy dapat dipakai untuk memilih
spesifikasi computer yang sesuai
dengan kebutuhan dan budget yang
disediakan
3. Kombinasi algoritma greedy dapat
memberikan pilihan terbaik untuk
berbagai permasalahan, karena banyak
hal yang akan menentukan nilai terbaik
suatu
kombinasi produk dalam hal ini.a

DAFTAR PUSTAKA
Algoritma Greedy

https://www.google.co.id/search?
q=algoritma+greedy&oq=algoritma+greedy&sour
ceid=chrome&ie=UTF-8
https://bertzzie.com/knowledge/analisisalgoritma/Greedy.html
https://docs.google.com/presentation/d/11wGEFT
8DiW7BmaLT0luHH46ctPL4oNs2XWgcc_OQHQ/edit#slide=id.g11
94021294_2_232

2. KESIMPULAN

Anda mungkin juga menyukai