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.

Example Java Program Pencari Jumlah Kata dalam sebuah kalimat…

Sebuah program untuk mengecheck jumlah kata tertentu dalam sebuah kalimat..


import java.io.*;

class word{

 private StringBuffer kalimat= new StringBuffer();

 private String cari;

 word(){

 System.out.print("Anda belum memasukan String..");

 }

 word(StringBuffer kalimat,String cari){

 this.kalimat.append(kalimat);

 this.cari=cari;

 }

 int find(){

 int i,jml=0;

 int k=0;

 kalimat.append(' ');

 for(i=0;i<this.kalimat.length();i++){

 if(this.kalimat.charAt(i)==' '){

 if(this.cari.equalsIgnoreCase(this.kalimat.substring(k,i))==true){

 jml+=1;

 }

 k=i+1;

 }

 }

 return jml;

 }

}

class carikata{

 public static void main(String args[])throws IOException{

 String kata;

 StringBuffer kalimat=new StringBuffer();

 word car;

 System.out.print("masukan string : " );

 InputStreamReader kt =new InputStreamReader(System.in);

 BufferedReader br = new BufferedReader(kt);

 kalimat.append(br.readLine());

 System.out.print("\n\nmasukan string yang di cari : ");

 kata=br.readLine();

 car=new word(kalimat,kata);

 System.out.print("Hasilnya adalah :"+ car.find()+"\n\n");

 }

 }

Program Mahasiswa Sederhana dengan Menggunakan di array.

Sebuah program sederhana sebagai contoh implementasi algoritma pencarian biner(binary search)
dan algoritma pengurutan.


program UTS_program_mahassiswa_punya_Hendri;

uses wincrt; {memakai pascal untuk windows}



const m = 14;





type data_mhs = record

 nim : longint;

 nama_mhs : string;

 jur  : string;

 end;

larik = array[1..m] of data_mhs;





var



 pil:integer;

 l:larik;

 x:longint;

 idx:integer;









 procedure judul;

 begin

 writeln('+++Created By Hendri+++');

 writeln('=-=-=-=-=-=-=-=-=-=-=-=');

 writeln('original varsion+*+*                                                   (^_^)7');









 end;







 {.............................................................................procedre pengurutan}

 procedure pengurutan_data(var l : larik; m : integer) ;



 var

 i : integer;

 j : integer;

 x : longint;

 ketemu : boolean;

 begin

 for i:=2 to m do

 begin

 x:=l[i].nim;

 j:=i-1;

 ketemu:=false;

 while (j >= 1) and (not ketemu) do

 begin

 if x < l[j].nim then

 begin

 l[j+1].nim:=l[j].nim;

 j:=j-1;

 end else

 ketemu:=true;

 end;

 l[j+1].nim:=x;

 end;

 end;



 {..............................................................................Procedure pencarian}

 procedure pencarian_data(l : larik; m:integer; x:longint; var idx :integer);





 var

 i,j : integer;

 k : integer;

 ketemu : boolean;



 begin

 i:=1;

 j:=m;

 ketemu:=false;



 while (not ketemu) and (i <= j) do

 begin

 k:=(i+j)div 2;

 if (l[k].nim = x) then

 ketemu:=true

 else



 if (l[k].nim > x) then

 i:=k+1

 else

 j:=k-1;



 end;

 if (ketemu) then

 idx:=k

 else

 idx:=0;





 end;



 {.................................................................................procedure isi data}

 procedure isi_data(var l : larik; m : integer);



 var



 i : integer;

 tanya:char;





 j : integer;

 x : string;

 t : boolean;



 begin

 clrscr;

 judul;

 t:=true;



 i:=1;

 while t do

 begin

 writeln('            ');

 writeln    ('               MENU ISI DATA MAHASISWA       ');

 write('');

 writeln('            ============================');

 write  ('             nim     :');readln(l[i].nim);

 write  ('             Nama    :');readln(l[i].nama_mhs);

 write  ('             Jurusan :');readln(l[i].jur);

 writeln('            ============================');

 i:=i+1;

 if i>m then

 begin

 write('tekan "m" untuk untuk kembali ke menu utama:');readln(tanya);



 exit;

 end;





 writeln('            ****************************');

 write('             mau isi lagikah...???[y/t]');readln(tanya);



 writeln('            ............................');





 if tanya='t'then

 begin

 t:=false

 end;





 end;



 pengurutan_data(l, m) ;









 end;



 {...................................................................................procedure edit data}

 procedure edit_data( m : integer;var l: larik;  idx: integer);





 var

 x : longint;

 t:boolean;

 tanya : char;

 begin



 t:=true;

 while t=true do

 begin

 clrscr;

 judul;

 writeln('                *************MENU EDIT DATA*************');

 writeln('       --------------------------------------------------------');

 writeln('       ========================================================');

 write  ('           masukan nim mahasiswa yang ingin di edit:');readln(x);

 writeln('       ========================================================');

 pengurutan_data(l, m) ;



 pencarian_data(l,m, x,idx);

 if idx=0 then

 begin

 writeln('');

 write('         maaf nomor induk mahasiswa ',x,' balum ada.... silahkan coba lagi') ;

 writeln('') ;

 writeln('')   ;

 writeln('     ========================================================================')

 end

 else

 begin

 writeln('                  nim     :',l[idx].nim);

 writeln('                  nama    :',l[idx].nama_mhs);

 writeln('                  jurusan :',l[idx].jur);

 writeln('                ==============================');

 end;

 write('apakah nim ',x,' mau di isi atau di rubah??[y/t atau ke menu utama(k)]:');readln(tanya);

 if tanya='t' then

 begin

 t:=false;



 end;



 end;

 if tanya='y' then

 begin

 if idx=0 then

 begin

 idx:=idx+1;

 end;

 writeln('          ========================================================');

 l[idx].nim:=x;

 writeln('               nim     :',x);

 write  ('               Nama    :');readln(l[idx].nama_mhs);

 write  ('               Jurusan :');readln(l[idx].jur);

 end

 else if tanya='k' then

 begin

 exit;



 end;

 end;





 {...........................................................................................procedure tempat data}

 procedure tempat_data(idx: integer; var l: larik; m : integer);



 var

 x : longint ;

 tanya:char;

 begin

 tanya:='y';

 while tanya='y' do

 begin

 clrscr;

 judul;

 writeln('');

 writeln('');

 writeln('             PROCEDURE MENCARI TEMPAT DATA');

 writeln('      --------------------------------------------------');

 write('              masukan nim mahasiswa :');readln(x);

 writeln('      ==================================================');

 pengurutan_data(l, m) ;

 pencarian_data(l,m, x,idx);

 writeln('        posisi data ada pada nomor larik :',idx);

 write('        mau cari tempat data lagikah??[y/t] :');readln(tanya);

 end;

 end;





 {..............................................................................................procedure cari data}

 Procedure cari_data( m : integer; var l: larik; idx: integer);



 var

 x : longint;

 tanya : char;

 begin



 tanya:='y';

 while tanya='y' do

 begin

 clrscr;

 judul;

 writeln('              *************MENU MENCARI DATA*************');

 writeln('       ---------------------------------------------------------');

 writeln('       -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-');

 write  ('           masukan nomor induk mahasiswa yang di cari:');readln(x);

 writeln('       TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT');

 writeln('              ');

 pengurutan_data(l, m) ;



 pencarian_data(l,m, x,idx);

 if idx=0 then

 begin

 writeln('');

 write('         maaf nomor induk mahasiswa ',x,' balum ada.... silahkan coba lagi') ;

 writeln('') ;

 writeln('')   ;

 writeln('     ========================================================================')

 end

 else

 begin

 writeln('                  nim     :',l[idx].nim);

 writeln('                  nama    :',l[idx].nama_mhs);

 writeln('                  jurusan :',l[idx].jur);

 writeln('                ==============================');

 end;

 write('              Mau mencoba nomor mahasiswa yang lainkah??[y/t]:');readln(tanya);



 end;



 end;







 Procedure tutup;



 begin

 clrscr;





 writeln('');

 writeln('');

 writeln('');

writeln('             ##############################################################');delay;

writeln('             #************************************************************#');delay;

writeln('             #*                                                      *****#');delay;

writeln('             #*    DI BUAT OLEH :                                   ******#');delay;

writeln('             #*                      HENDRI KARISMA                *******#');delay;

writeln('             #*                         10107352                 *********#');delay;

writeln('             #*********            -==================-        ***********#');delay;

writeln('             #********                                                   *#');delay;

writeln('             #******                TEKNIK INFORMATIKA                   *#');delay;

writeln('             #*****           --------------------------------           *#');delay;

writeln('             #****             UNIVERSITAS KOMPUTER INDONESIA            *#');delay;

writeln('             #***                         2008                           *#');delay;

writeln('             #************************************************************#');delay;

writeln('             ##############################################################');delay;



 exit;



 end;







 { ================================================================================================procedure menu}

 procedure menu_utama(pil:integer);



 var

 i:integer;

 x:longint;



 begin



 while (pil<>5) do

 begin

 clrscr;

 judul;

 writeln('');

 writeln('');

 writeln('             (====================================)') ; delay;

 writeln('             ( M  E  N  U    P  R  O  G  R  A  M  )'); delay;

 writeln('             (====================================)');delay;

 writeln('             (Data Mahasiswa                      )'); delay;

 writeln('             (--------------                      ) ');delay;

 WRITELN('             (      1. Isi Data Mahsiswa          )'); delay;

 writeln('             (      2. Edit Data Mahasiswa        )'); delay;

 writeln('             (      3. Cari Data Mahasiswa        )'); delay;

 writeln('             (      4. Mencari Tempat Data        )'); delay;

 writeln('             (                                    )'); delay;

 writeln('             (      5. Keluar                     )'); delay;

 writeln('             (                                    ) ');delay;



 writeln('             ====================================== ');delay;

 gotoxy(1,20);writeln('             ====================================== '); delay;

 gotoxy(1,19);write  ('                masukan pilihan menu :');readln(pil);writeln('  = ');delay;





 writeln('');

 writeln('');

 writeln('');



 writeln('');

 writeln('');



 if pil=1 then

 begin

 isi_data(l,m);

 end

 else if pil=2 then

 begin

 edit_data(m,l,idx);

 end

 else if pil=3 then

 begin



 cari_data(m,l,idx);

 end





 else if pil=4 then

 begin

 tempat_data(idx,l, m);



 end





 else if (pil>5) or (pil<=0) then

 begin

 write('maaf pilihan hanya 1-5.... silahkan pilih kembali');

 end;



 end;



 tutup;

 end;





 { =============================================================================================================algo utama}



begin

//pembuka;//sebenernya ada prosedur pembuka tp takut pusing liatnya...

 menu_utama(pil);





 gotoxy(32,20);write('BYE..........BYE........');



end.

sebenarnya kode ini belum lengkap hehehe...

Program Sederhana Menghitung Bunga dengan Bahasa C

Kali ini contoh program sederhana menghitung bunga dengan C.. (Procedural)

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>







double f_sisa(long int s,double a);

float f_angsuran(double a,float b,long int s);

 



main(){

 long int pinjaman,sisa;

 float angsuran;

 int kali,i,bunga;

 

 system("cls");

 

 printf("Masukan Besaran Pinjaman : "); scanf("%ld",&pinjaman);

 printf("Masukan besar bunga      : "); scanf("%d",&bunga);

 printf("Banyak bunga Angsuran    : "); scanf("%d",&kali);

 

 printf("\n %d \n=--------------------------------------------=\n\n",pinjaman);

 

 sisa=pinjaman;

 

 printf("|=============================================|\n");

 printf("| Angsuran Ke-   | Besar Angsuran |    Sisa   |\n");

 printf("|=============================================|");

 for(i=1;i<=kali;i++){

 

 sisa=f_sisa(sisa,(pinjaman/kali));

 

 angsuran=f_angsuran(pinjaman/kali,bunga,sisa);

 printf("\n|        %d       |   Rp. %6.2f | Rp. %ld |",i,angsuran,sisa);

 

 

 }

 

 printf("\n=================================================");

 getch();



}



double f_sisa(long int s,double a){

 

 return s-a;

 }

float f_angsuran(double a,float b,long int s){

 

 return a+(((float)b/100)*s);

 }

Program dengan function terlihat sedikit lebih rumit padahal sederhana.
ini bisa menjadi pembanding untuk dapat melihat perbedaan prosedural programming dengan pemrogramman berbasis objek.
untuk Sorce Code dengan Object Oriented Programmingnya dapat dilihat di program menghitung bunga sederhan dengan java.

Program Menghitung Bunga Sederhana dgn Java

ini contoh source code untuk membuat program menghitung yang sangat sederhana..
ketika menginputkan jumlah pinjaman, bunga , serta jumlah cicilan makan program akan menghitungkan angsuran yang harus dibayar selama masa penyicilan tersebut..

/* by hendri karisma
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pinjaman;

import java.util.Scanner;

/**
 *
 * @author karisma
 */
class Pinjaman{
 long Pinjam,Sisa;
 float Angsuran;
 int Kali,i,Bunga;

 public void setPinjam(long Pinjam) {
 this.Pinjam = Pinjam;
 }

 public void setBunga(int Bunga) {
 this.Bunga = Bunga;
 }

 public void setKali(int Kali) {
 this.Kali = Kali;
 }

 public void inSisa(){

 Sisa=Pinjam;
 }

 public void setSisa(){
 Sisa=Sisa-(Pinjam/Kali);
 }
 public void setAngsuran(){

 Angsuran=(Pinjam/Kali)+(((float) Bunga/100)*Sisa);

 }

 public void PrintScr(){

 System.out.println("\n======================" +
 "===========================");
 System.out.println("| Angsuran ke- |  Besar Angsuran  |     Sisa    |");
 System.out.println("=================================================");
 inSisa();
 for(i=1;i<=Kali;i++){

 setAngsuran();
 setSisa();
 System.out.println("|      "+i+"       |   Rp. "+Angsuran+"  | " +
 "Rp.  "+Sisa+" |");
 System.out.println("==================================================");

 }
 }

}

<pre>
<pre>
</pre>
</pre>
public class Main {

 /**
 * @param args the command line arguments
 */
 public static void main(String[] args) {
 // TODO code application logic here
 Pinjaman rent = new Pinjaman();
 Scanner sn= new Scanner(System.in);

 System.out.print("Masukan Besar Pinjaman : ");
 rent.setPinjam(sn.nextLong());
 System.out.print("Masukan Besar Bunga    : ");
 rent.setBunga(sn.nextInt());
 System.out.print("Masukan Banyak Angsuran: ");
 rent.setKali(sn.nextInt());

 rent.PrintScr();

 }

}

Code dia atas hanya terdiri dari 2 kelas yang berada dalam satu package.