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…

About these ads

19 responses to “Menghitung Konversi Detik jadi Jam-Menit-Detik

  1. Ijin membenahi untuk syntax :
    jam=sec / (60*60);
    _sec= sec-((60*60)*jam);
    menit=sec / 60;
    _sec= sec – (60*menit);
    Pada bagian yang saya garis bawahi itu apakah betul seperti itu? perhitungan seken koq ada dua?

  2. di ijinkan :))…

    hmm… betul..
    saya mengisi ulang nilai variable sec yg berisi nilai detik…

    sebenarnya bisa saja saya buat variable temporary detik… hanya saja klo menurut saya akan lebih hemat memmory kalo hanya pakai satu variable seperti diatas… jadi seperti membuat decrement var sec…

    var sec sebenernya cuman satu… cuman saya mengisi ulang yg misalnya sec = 4000 detik
    maka sec = 4000/ 3600 (1 jam = 3600 detik) == 1 jam ..
    maka kondisi sec harusnya berkurang karena sudah diambil 1 jam…
    sec masih bernilai 4000 ..
    sec = 4000 – (1×3600) == 400;
    atau sama dengan sec= sec – (1x 3600)==400 , sekarang nilai sec = 400…
    nah untuk mendapatkan menit maka menit= sec/60 == 6 menit ..
    maka nilai sec harus berkurang karena sudah di ambil 60 menit.. (sec masih bernilai 400)
    sec = 400 – (6x 60) = 40 detik atau sec = sec – (6×60) = 40 detik jg .. :D/ begitulah..
    kecuali mau di satu kan di akhir.. jg bs.. tp takutnya terlihat ribet kelihatannya krna jd :

    jam=sec/(60*60);
    menit=(sec-(jam * 3600))/(60);
    sec=sec-((jam * 3600) + (menit * 60));

    nah ,, banyak jalan menuju roma hehhe…

  3. saya mao nny donk cara buat ngehitung jam + jam , menit + menit , detik + detik dengan program nested loop pada bahasa C.
    misalnya kita input :
    masukan jam = 10
    masukan menit = 30
    masukan detik = 40

    masukan jam = 12
    masukan menit = 20
    masukan detik = 20

    output nya :
    jam sekarang adalah = 22
    Menit sekarang adalah = 51
    detik sekarang adalah = 0

    kira2 gimana yah
    struktur dasar nya ??
    saya cmn pengen tao yg detik nya aja..
    soalnya kalo pada saat saya menambahkan 40 + 30 output nya adalah 70 bukannya 10 dan 60 nya di input menjadi menit
    mohon bantuannya yah mas :)

    • pake conditional aja , misalnya untuk mengisi nilai menit ketika detik sudah lebih dari 60 detik atau ketika menit sudah lebih dari 60 menit jadi jam nya bertambah:

      misal:
      if(detik > 59){
      detik=0;
      menit+=1;
      }

      if(menit > 59){
      menit = 0;
      jam+=1;
      }

      nah kaya gitu misalnya…

  4. ijin mw bertanya saya masih blm paham cara penghitungan detik menjadi jam, jam ke menit, menit ke detik. bagimana ya cara penghitungannya? contoh : 2034 detik=……. jam=…….menit=…..detik
    mohon bantuannya ya mas terima kasih

  5. Maaf, saya kurang mengerti bagian yg ini
    printf(“\n===============================================”);
    itu dibuat apa ya? terima kasih

  6. MAU TANYA DONG, INI SOALNYA
    BUATLAH ALGORITMA UNTUK MENGHITUNG KONVERSI JUMLAH DETIK KE DALAM JUMLAH JAM, JUMLAH MENIT, SISANYA DETIK, ASUMSINYA
    1 MENIT = 60 DETIK
    1 JAM = 3600 DETIK.
    BUATLAH ALGORITMANYA……????

  7. gan salam kenal sebelumnya ada pertanyaan ini gan mohon bantuanya:
    1. masalah saya adalah menghitung jam,menit,detik+1detik,
    contoh tampilan : inputkan
    11: 10 : 45 (enter)= 11 : 10 : 46,
    11 : 10 : 59 (enter) = 11 : 11 : 0
    dst sesuai dengan aturan jam.

    2. adalah sama seperti diatas tetapi dengan judul kalender dan pada bulan 2 mengikuti tahun kabisat. contoh tampilan :

    10/4/2012(enter) = 11/4/2012
    30/4/2012(enter) = 1/5/2012
    31/5/2012(enter) = 1/6/2012
    31/12/2012(enter) = 1/1/2013
    28/02/2012(enter) = 1/3/2012 = kalau bisa mengikuti tahun kabisat.

    tersebut diatas adalah tabel kemungkinan,,dan saya yakin mas henri pasti bisa,.,
    mohon bantuanya.,.,,.salam kenal.,.sudah dicari diinternet tidak ada yang post susah carinya,.,thanks.

  8. Makasih bgt nih Kang Admin,
    Posting nya bermanfaat bgt.
    Ane dapet tugas bikin konversi waktu, udah coba bikin sendiri tapi error terus.. Maklum lah newbie..
    Hehehe…

  9. saya mau tanya dunk, saya baru belajar IT dan program yang saya punya adalah programmer’s notepad, apakah aplikasi yang ada di atas bisa di pakai di program saya? thanks

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