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 :
- 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.
- 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.
- 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).
- Mengurangi jumlah detik sekarang dengan jumlah menit yang sudah kita dapatkan tadi, detik = 698 – ( 11 * 60).
- 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…