You are on page 1of 8

#include <conio.h> #include <stdio.

h> #define size 99 void sort(int[],int); main (){ clrscr(); int x[size],i,n,uang,hasil[size]; printf("\n Banyaknya Jenis koin: "); scanf("%d",&n); printf("\n Masukkan Jenis koin :\n"); for(i=1;i<=n;i++) { sc anf("%d",&x[i]); } sort(x,n); printf("\n Jenis Koin Yang Tersedia: "); for(i=n;i >=1;i--) { printf("%d \t ",x[i]);} printf("\n Masukkan nilai Yang Ingin diPecah: "); scanf("%d",&uang); printf("\n \n Hasil Algoritma Greeedy nya adalah: \n" ); for(i=1;i<=n;i++) {hasil[i]=uang/x[i]; uang=uang%x[i]; } for(i=1;i<=n;i++) { pr intf("\a keping%d" , x[i]); printf("-an sebanyak : %d keping", hasil[i]); printf ("\n"); } printf("\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]) { hold=a[j+1]; a[j+1]=a[j+2]; a[j+2]=hold; } } } } OUTPUT

Logika Program

Pada pertemuan pertama praktikum PAA, kita membahas mengenai aplikasi algoritma Greedy pada system penukaran koin. Sebelumnya, pengertian dari Algoritma greedy adalah algoritma yang digunakan untuk memecahkan suatu masalah dengan menyeleksi suatu kondisi tertentu. Algoritma ini biasanya berjalan berdasarkan seleksi inp ut yang terbesar atau yang terkecil, sehingga akan didapatkan suatu solusi yang baik, namun bukan yang terbaik, karena algoritma ini akan berhenti jika sudah me nemui satu solusi yang berhasil ditemukan. Program yang kita buat ini menggunaka n bahasa C. pada program ini, pertama kita akan diminta untuk menginput berapa j enis koin yang kita punya. Lalu, kita akan diminta menginput nilai pecahan koin tersebut. Nilai pecahan koin tersebut akan kita urutkan (sort) dari yang paling besar ke yang paling kecil. Kemudian kita diminta untuk menginput nilai yang aka n kita pecah. Program akan memberikan hasil dari pecahan uang yang kita input ta di berdasarkan jenis koin yang kita punya. Untuk penjelasan listingnya yaitu sebagai berikut : #include <stdio.h> #include <conio.h> #define size 99 Pernyataan yang diawali dengan tanda (#) merupakan pernyataan untuk menyertakan preprocessor. Pernyataan ini bukan untuk dieksekusi. #include <stdio.h> berarti memerintahkan kompiler untuk menyertakan file header stdio.h. Dalam file header ini, terdapat beberapa fungsi standar yang dipakai dalam proses output dan input . Pernyataan Define berguna untuk mendefinisikan suatu konstanta variabel size y ang bernilai 99. Setelah itu kita akan membahas tentang listing dari implementas i algoritma greedy yaitu void sort(int[],int); //stamen seperti ini yaitu untuk membuat suatu bentuk strtatment yang berfungsi untuk pengurutan yang di dalam ya teradapat array 1 dimensi. int x[size],i,n,uang,hasil[size]; stament ini untuk pembacaan nama variable yang dapat kita panggil saat2 tertentu. for(i=1;i<=n;i++ ) { scanf("%d",&x[i]); } sort(x,n); printf("\n Jenis Koin Yang Tersedia: "); for (i=n;i>=1;i--) statement ini untuk melakukan perulangan yang akan di

gunakan dalam algoritma greedy.dan dalam kasus ini kita akan melihat ptongan koi n apa saja yang akan di ambil. void sort(int[], int); main() { clrscr(); int x[s ize],i,n,uang,hasil[size]; printf("\n Banyak Koin :"); scanf("%d", &n); printf(" \n \n Masukkan Jenis Koin : \n"); for(i=1;i<=n;i++) { scanf("%d", &x[i]); } void sort(int[], int); kita gunakan untuk membuat prototype dari fungsi sort yan g kita deklarasikan sendiri (user-defined). Fungsi sort yang kita buat bertipe d ata array yang bertipe integer dan yang kedua bertipe data integer. Prototype fu ngsi ini nantinya bisa kita panggil pada listing selanjutnya. Ini merupakan prog ram utama yang pertama. Fungsi main() menandakan bahwa nantinya program akan men gembalikan nilai, maka kita harus menambahkan statement return di akhir blok pro gramnya. Fungsi clrscr() kita gunakan untuk membersihkan layar dari tampilan seb elumnya. Sehingga ketika kita menjalankan programnya kembali, layar akan bersih dari tampilan pertama. Disini juga dideklarasikan beberapa variabel seperti vari able x dan hasil dengan tipe data array dan lainnya bertipe integer. Selanjutnya akan tercetak permintaan input untuk memasukkan banyaknya koin. Dengan perintah scanf, maka hasil input akan dimasukkan ke variable n sebagai nilai integer. Di program ini juga ada statement perulangan untuk memasukkan jenis koin. Dari hasi l input banyaknya koin tadi, maka jenis koin yang kita masukan akan berulang seb anyak jumlah koin yang telah kita input lebih dulu. Misalkan kita masukan banyak nya koin adalah 10, maka jenis koin yang akan kita masukan sebanyak 10 jenis yan g

berbeda. Sesuai dengan kondisi perulangannya. Selanjutnya, tiap jenis koin yang kita input akan dibaca sebagai decimal dan disimpan dalam variable array x sesua i dengan urutan saat menginput (x[i]). LAPORAN AKHIR PRAKTIKUM ata Praktikum Algoritma (PAA) Kelas Praktikum Ke Tanggal Materi NPM Nama Ketua A sisten Nama Asisten Paraf Asisten Jumlah Lembar : : 7 Lembar : 3IA05 : 1 : 27 No vember 2010 : Algoritma Greedy : 50408282 : Dimas Nugeroho : : : Perancangan dan Analisis

LABORATORIUM INFORMATIKA UNIVERSITAS GUNADARMA 2010

You might also like