Program Sederhana Menghitung Pecahan Uang

Nah kali ini ada sedikit sample program bahasa C.. yaa  sederhana sih.. sedikit sumbangan soal dari temen..

mudah-mudahan sedikit banyak bermanfaat.

kali ini soalnya, program sederhana untuk menghitung pecahan dari mata uang.

misalkan kita menginputkan nilai mata uang 152000, maka akan menghasilkan :

Output
100000 : 1
50000 : 1
20000 : 1
10000 : 0
5000 : 0
2000 : 1
1000 : 0

Nah ada 2 cara.

Cara yang pertama dengan hanya menggunakan Switch() {} ya tapi masalahnya agak panjang source codenya ,    ini dia nih :

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

main(){

long int uang,temp;//mendeklarasikan var uang sebagai input pertama.
int i,jml;//jml sebagai penghitung jumlah pecahan mata uang.

printf("\nMasukan Jumlah Uang : ");scanf("%li",&uang);
printf("\n========================================");

temp=uang;//inisialisasi var temp dengan nilai dari variabel uang

printf("\nOutput Pecahan Uang : ");
for(i=1;i<=7;i++){//mengulang proses mengulang untuk mengecheck jumlah uang.

switch (i) {

case 1 : jml = temp / 100000; /*membagi(division) temp dengan jenis pecahan sehingga
sehingga mendapatkan jumlah pecahan*/
temp = temp - (100000*jml); /*mengurangi temp dengan jumlah pecahan dikali pecahan
mata uang*/
printf("\n%d) 100000 :",i); //mengeluarkan jenis pecahan
break;

case 2 : jml = temp / 50000;
temp = temp - (50000*jml);
printf("\n%d) 50000 :",i,temp);
break;

case 3 : jml = temp / 20000;
temp = temp - (20000*jml);
printf("\n%d) 20000 :",i,temp);
break;

case 4 : jml = temp / 10000;
temp = temp - (10000*jml);
printf("\n%d) 10000 :",i,temp);
break;

case 5 : jml = temp / 5000;
temp = temp - (5000*jml);
printf("\n%d) 5000 :",i,temp);
break;

case 6 : jml = temp / 2000;
temp = temp - (2000*jml);
printf("\n%d) 2000 :",i,temp);
break;

case 7 : jml = temp / 1000;
temp = temp - (1000*jml);
printf("\n%d) 1000 :",i,temp);
break;
}

printf(" %d",jml);//output jumlah pecahan
}

getch();

}

proses pertama adalah menginputkan data banyak uang yang mau dihitung. Lalu dilakuakn inisialisasi untuk var temp, sebagai tempat penyimapanan nilai sementara. Lalu masuk ke perulangan dengan for(){} lalu dilakukan pengkondisian, sesuai dengan banyak pecahan yang ingin dikeluarkan. lalu output dapat dikeluarkan sesuai dengan kebutuhan.

Akan tetapi code diatas terlalu panjang, lihat saja sampai berbaris2 hehehe, nah sebenarnya bisa diperpendek agar lebih efisien. Yaitu dengan menggunakan array seperti pada Cara ke-2. Silahkan lihat source codenya :

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

main(){

long int uang,temp,data[7]={100000,50000,20000,10000,5000,2000,1000};
int i,jml;

printf("\nMasukan Jumlah Uang : ");scanf("%li",&uang);
printf("\n========================================");

temp=uang;
printf("\nOutput Pecahan Uang : ");
for(i=0;i<=6;i++){
jml = temp / data[i];
temp = temp - (data[i]*jml);

printf("\n%d) %li : %d",i,data[i],jml);
}

getch();

}

Nah kan lebih pendek dari yang sebelumnya, padahal output yang dikeluarkan sama.
Dalam cara ke 2 kita menggunakan array sebagai tempat penyimpanan data pecahan yang akan dipakai.

Disana ada 7 pecahan mata uang sehingga kita dapat membuat array dengan banyak data 7 buah,setelah itu sebenarnya algoritma yang digunakan sama. Yang berbeda saat didalam statement perulangan/looping. Kita tidak perlu melakukan pengkondisian, Cukup menulis rumus, misal : jml= temp / 100000, namun karena kita telah menulis semua data pecahan di dalam array, jadi kita hanya tinggal menggunakan index dalam array untuk memanggil nilai pecahan yang ingin kita gunakan, misalkan ingin mencari jumlah mata uang pecahan 100000, maka kita cukup menulis : jml = temp / data[1]; , artinya kita memanggil data nilai pecahan yang ada pada index pertama dengan begitu kita dapat memasukan nilai iterasi sebagai pengganti konstanta yang kita pakai untuk menentukan index yang ingin kita pakai nilainya. misalkan :  jml = temp / data[i]; , maka dia akan mengeluarkan nilai pecahan sesuai dengan index yang dimasukan ketika nilai ke-i. begitulah sekilas tentang logika program sederhana tersebutttt……

Semoga dapat bermanfaat.

Advertisements

3 thoughts on “Program Sederhana Menghitung Pecahan Uang

  1. adi May 14, 2011 / 8:34 am

    mantab gan,

    Gan, Mnt tLg gimana caranya menghitung nilai rata – rata, 10 nilai pecahan yang disimpan di dalam suatu array, Aq Lg bngUng Ni Gan..
    MhOn dibantu ya…

    • situkangsayur May 15, 2011 / 7:57 am

      wew…

      main(){
      int n=10;
      float pecahan[n]={2.4,22,1.3, 1 , 2 , 3 , 4 , 5 , 9 , 5 . 6};
      float rata=0;

      for(int i=0;i<n;i++){
      rata=rata+pecahan[i];
      }
      rata=rata/n;
      printf("rata2 : %d",rata);
      return 0;
      }

      semoga membantu gan…

  2. kang October 31, 2011 / 10:48 pm

    tolong dong program pke bahasa pascal menghitung nilai pecahan uang versi array.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s