Program Penghitung Selisih Waktu yang menerapkan Struktur/ Struct C++

Berikut beberapa point penting tentang fungsi dari Struct / Struktur dalam C++ agar lebih mudah memahami program berikut yaitu program penghitungan selisih waktu yang di dalam source code terdapat contoh implementasi struct pada program tersebut.

  • Cara  mendeklarasikan  struktur  adalah  dengan  menggunakan  kata  kunci  struct.
  • Struktur  yaitu  pengelompokan dari variabel-variabel atau  sejumlah  data  dengan  tipe yang  berlainan dan bernaung  dalam  satu  nama  yang  sama.
  • Anggota struktur dapat diakses menggunakan bentuk deklarasi sebagai berikut variable_struktur.nama_anggota
  • Nama struktur dapat digunakan sebagai tipe data suatu variabel yang mana dinamakan tipe data abstrak.
  • Suatu struktur bisa mengandung struktur yang lain.
  • Bila menggunakan “typedef”, maka suatu struktur didefinisikan kembali dengan nama baru tanpa menggunakan kata “struct” di awal nama baru tersebut.

Deskripsi Program: Program ini merupakan program untuk menampilkan selisih waktu dengan struct. Cara kerja program ini terlebih dahulu mendeklarasikan fungsi main dan struct. Kemudian membuat data struktur dan membuat suatu pengkondisian pada fungsi main. Lalu dilakukan akses struct ke dalam fungsi main tersebut. Pemasukan waktu awal dilakukan dengan menuliskan format jam-menit-detik, pemasukan waktu akhir juga sama seperti contoh tersebut. Setelah dimasukan, maka pengkondisian akan dijalankan sesuai dengan kondisi yang dibuat dan dilakukan pemanggilan struct ke dalam pengkondisian. Sehingga hasil selisih waktu dapat ditampilkan berdasar masukan waktu awal dan akhir tadi. Tipe data yang digunakan dalam program ini adalah integer dan float, sedangkan header yang digunakan iostream, stdio dan conio.


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


struct
{
int jam;
int menit;
int detik;
} awal, akhir, selisih;

int main()
{
int awal2, akhir2;


cout <<"***********************************"<<endl;
cout <<"*******PROGRAM SELISIH WAKTU*******"<<endl;
cout <<"***********************************"<<endl;
cout <<"==================================="<<endl;
cout <<"Masukan waktu pertama" <<endl;
printf("Format Masukan:");
printf("\nJam-Menit-Detik -> ");
scanf("%i-%i-%i", &awal.jam,&awal.menit,&awal.detik);
awal2 = awal.jam*3600 + awal.menit*60 + awal.detik;

cout <<"\n==================================="<<endl;
cout <<"Masukan waktu kedua" <<endl;
printf("Format Masukan:");
printf("\nJam-Menit-Detik -> ");
scanf("%i-%i-%i", &akhir.jam, &akhir.menit, &akhir.detik);
akhir2 = akhir.jam*3600 + akhir.menit*60 + akhir.detik;

if(awal2<akhir2)
{
if ((akhir.detik - awal.detik) < 0)
{
selisih.detik = (60 + akhir.detik) - awal.detik;
akhir.menit;
}
else
{
selisih.detik = akhir.detik - awal.detik;
}
if ((akhir.menit - awal.menit) < 0)
{
selisih.menit= (60 + akhir.menit) - awal.menit;
akhir.jam;
}
else
{
selisih.menit = akhir.menit - awal.menit;
}

selisih.jam = akhir.jam - awal.jam;
}

else if(awal2>akhir2)
{
if ((awal.detik - akhir.detik) < 0)
{
selisih.detik = (60 + awal.detik) - akhir.detik;
awal.menit;
}
else
{
selisih.detik = awal.detik - akhir.detik;
}
if ((awal.menit - akhir.menit) < 0)
{
selisih.menit= (60 + awal.menit) - akhir.menit;
awal.jam;
}
else
{
selisih.menit = awal.menit - akhir.menit;
}
selisih.jam = awal.jam - akhir.jam;
}

else if(awal2=akhir2)
{
selisih.detik = 0;
selisih.menit = 0;
selisih.jam = 0;
}

cout <<"\n==================================="<<endl;
cout <<"Selisih dalam Jam = " << (selisih.jam*3600 + selisih.menit*60 + selisih.detik)/3600 <<endl;
cout <<"Selisih dalam Menit = " << (selisih.jam*3600 + selisih.menit*60 + selisih.detik)/60 <<endl;
cout <<"Selisih dalam Detik = " << selisih.jam*3600 + selisih.menit*60 + selisih.detik <<endl;
cout <<"==================================="<<endl;
cout <<"Selisih waktu tersebut"<<endl;
cout<<"Jam-Menit-Detik -> "<<selisih.jam<<"-"<<selisih.menit<<"-"<<selisih.detik<<endl<<endl;
cout <<"==================================="<<endl;
return 0;
getch();
}

Ez Area

Tidak ada komentar:

Posting Komentar

Selalu gunakan bahasa yg baik dan santun dalam berkomentar. Jika ada pertanyaan lainnya silahkan kirim via email info.ezrafel@gmail.com