Menghitung Konversi Detik jadi Jam-Menit-Detik

Sebuah sumbangan soal lg dari teman saya.. hehe.. tentang logika konversi nilai detik menjadi Jam-Menit-Detik..

Misalkan input yang di masukan adalah 7898 detik, maka output yang di inginkan adalah :

Jam : 2

Menit : 11

Detik : 38

nah seperti itu.. sebenarnya logikanya sama seperti yang ada pada algoritma menghitung pecahan uang dari sejumlah nilai yang seblumnya sudah saya postingkan. logikanya seperti ini :

kita mengambil nilai misal detiknya = 7898 detik

maka :

  1. Membagi hasil bilangan bulat untuk jam = 7898 div (division) 3600 (1 jam=3600 detik), maka akan menghasilkan = 2. kenapa tida ada nilai dibelakang koma?? karena operator div berfungsi mencari hasil bagi dengan hasil bilangan bulat.
  2. Mengurangi jumlah jam yg tadinya berjumlah 7898 menjadi = 7898 – (jumlah jam yang tadi dihasilkan = 2 lalu dikonversikan dalam detik) == 7898 – (2 * 3600). maka hasilnya adalah 698 detik.
  3. Mengambil nilai menit dari sisa pengurangan detik tadi (698 detik). Cara mengambil menit dari nilai tersebut sama seperti pada jam, menit= 698 div 60 (1 menit = 60 detik).
  4. Mengurangi jumlah detik sekarang dengan jumlah menit yang sudah kita dapatkan tadi, detik = 698 – ( 11 * 60).
  5. Lalu yang tersisa tinggal detiknya, yang kurang untuk mencapai nilai 1 dalam satuan menit, sehingga kita tinggal mengeluarkan hasilnya.

Begitulah singkat cerita tentang algoritma yang dipakai untuk mengkonversi nilai detik ke jam-menit-detik dan sama seperti halnya yang terjadi pada konversi pecahan uang.

jika kita menerjemahkannya dalam bahasa C adalah sebagai berikut :

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

main(){
 int sec,jam,menit,detik ;

 printf("Masukan jumlah detik yang mau dihitung : "); scanf("%d",&sec);

jam=sec / (60*60);
sec= sec-((60*60)*jam);
menit=sec / 60;
sec= sec - (60*menit);
printf("\n===============================================");
 printf("\nmaka waktunya adalah :  ");
 printf("\n Jam   : %d \n Menit : %d \n Detik : %d ",jam,menit,sec);

 getch();

 }

seperti biasa .. Ada banyak jalan menuju ROMA…

bisa juga algoritmanya dengan perulangan

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

main()

{
int sec,i,jml[2],waktu[2]={3600,60};

 printf("Masukan jumlah detik yang mau dihitung : "); scanf("%d",&sec);
 printf("\n===============================================");
 printf("\n maka waktunya adalah :  ");
for(i=0;i<=1;i++)
{
jml[i]=sec / waktu[i];
sec= sec-(waktu[i]*jml[i]);
}
printf("\n Jam   : %d  \n Menit : %d \n Detik : %d ",jml[0],jml[1],sec);

getch();

}

Semoga bermanfaat.. aminn…

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.

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.