Program mengkonversikan waktu kedalam jam,menit dan detik

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

Jam : 2

Menit : 11

Detik : 38

Langkahnya adalah sbb:

  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. Atau algoritmanya seperti di bawah ini:

Algoritma

DeklarasiJam,menit,detik,sekon : int

Deskripsi :

Masukkan waktu;

jam=sekon/3600;

menit=(sekon-(3600*(sekon/3600)))/60;

detik=((sekon-(3600*(sekon/3600)))-(((sekon-(3600*(sekon/3600)))/60)*(60)));

tulis konversi waktu;

end;

Program dalam C++

#include <iostream.h>
#include <conio.h>
class Konversi{
      friend istream& operator>>(istream&, Konversi&);
      friend ostream& operator<<(ostream&, Konversi&);
public:
       Konversi(){};
       int j();
       int m();
       int d();
private:
        int jam;
        int menit;
        int detik;
        int sekon;
};
        int Konversi :: j(){
        jam=sekon/3600;
        return jam;
        }

        int Konversi :: m(){
        menit=(sekon-(3600*(sekon/3600)))/60;
        return menit;
        }

        int Konversi :: d(){
        detik=((sekon-(3600*(sekon/3600)))-(((sekon-(3600*(sekon/3600)))/60)*(60)));
        return detik;
        }

istream& operator>>(istream& in,Konversi& masukan){
         cout<<"*********************************************************"<<endl;
         cout<<endl;
         cout<<"* PROGRAM KONVERSI detik MENJADI FORMAT jam:menit:detik *"<<endl;
         cout<<endl;
         cout<<"*********************************************************"<<endl;
         cout<<endl;
         cout<<"masukkan waktu dalam detik: ";
         in>>masukan.sekon;
         cout<<endl;
         return in;
        }
ostream& operator<<(ostream& out,Konversi& keluaran){
        out<<keluaran.j()<<"jam : ";
        out<<keluaran.m()<<"menit : ";
        out<<keluaran.d()<<"detik";
        return out;
        }
int main(){
Konversi X;
cin>>X;
cout<<X;
cout<<endl;
cout<<endl;

    system("PAUSE");
    system("cls");
    return main();

}

Hasil Compile:

About these ads

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s