Anda di halaman 1dari 2

FARIHUL ROUF .

F
→buat file dengan perintah nano waktu.h
#include <time.h>
#define true 0 /*mendifiniskan type Bollean dengan o bernilai benat */
#define false 1 /*salah bernilai salah*/
typedef struct{ /*mendifinisikan type data jam*/
int j;
int m;
int d;
}times;
struct tm *tm_ptr;
time_t the_time;
void baca(times k); /prosedur baca*/
void tulis(times x); /*prosedur tulis*/
int valid(times k); /*fungsi validasi yang akan mengembalikan nilai salah ddan benar*/
void setTime(times l); /mengeset waktu untuk menunjuk pointer ke waktu yang telah berjalan di processor*/
int konversi(times x, times y); /*mengkonversi data jam ke dalam total detik*/
void selisih(int k); /*menampilkan selisih antara jamn yang sedang berjalan dengan waktu yang telah di inputkan*/
void jam_sekarang(); /*menampilkan waktu yang sedang berjalan dalam komputer*/

→ simpan file nano.h CTRL+X dan pilih Y.


→buat filelagi dengan nama waktu.c dengan printah nano waktu.c

#include <stdio.h>
#include "waktu.h" /*memasukan header waktu.h yang telah di buat sebelumnya*/
void baca(times k){
do{
printf("JAM : "); scanf("%d",&k->j); /*masukan jam*/
printf("MENIT : "); scanf("%d",&k->m); /*masukan menit*/
printf("DETIK : "); scanf("%d",&k->d); /*masukan detik*/
}while(valid(*k)!=true); /*mengecek date tajm yang telah di inputkan sampai benar dengan cara memangil fungs
valid*/
}
void tulis(times x){ /*prosedur untuk menulis jam yang telah di inputkan dengan parameter masukan time x*/
if(x.j>=12){ /*keadaan di lakukan jika jam>=12*/
printf(" %d : %d : %d PM\n",x.j%12,x.m,x.d); /*melakukan print-out jika keadaan >=12 benar*/
}
else{
printf("%d : %d : %d AM\n",x.j,x.m,x.d); /*print-out jika sebaliknya*/
}
}
int valid(times k){ /*validasi waktu dengan tipe parameter masikan time k*/
int valid;
if(k.j>=24 || k.m>59 || k.d>59){ /*jika jam atau menit atau detik lebih besar dari yang di tetapkan*/
valid=false; /*nilai 1*/
}
else{
valid=true; /*nilai 0*/
}
return valid; /*mengembalikan nilai 1 atau 0 tergantung dari pengecekan*/
}
void setTime(times *l){ / * prosedur untuk mengeset sebuah nilai agar meunjuk jam yang ada di procesor*/
time(&the_time);
tm_ptr=localtime(&the_time); /*memanggil fungsi yang berada dalam time.h */
l->j=tm_ptr->tm_hour; /*mengeset nilai jam=jam yang berjalan*/
l->m=tm_ptr->tm_min; /*mengeset nilai menit=menit yang berjalan*/
l->d=tm_ptr->tm_sec; /*mengeset nilai detik=detik yang sedang berjalan*/
}
int konversi(times x, times y){ /*fungsi untuk mengkonveri waktu ke total detik dengan parameter data jam berjalan
dan data jam masukan*/
int total=0; /*inisialisai total = 0 */
total=((x.j*3600)+(x.m*60)+x.d)-((y.j*3600)+(y.m*60)+y.d); /*melakukan konversi jam-menit-detik ke total
detik*/
if(total<0){ /*jika kondisi total < 0 atau minus maka total akan di tambah 24x3600*/
total=total+(24*3600);
}
selisih(total); /*memanggil fungsi selisih untuk mengkonversi total ke dalam bentuk jam : menit : detik*/
return total; /*mengembalikan nilai total*/
}
void selisih(int y){ /* prosedur untuk mengkonversi total detik ke format jam : menit : detik */
times x; /*mendeklarasikan x lokal */
int temp; /*memyediakan variabel bantu untuk menampung sisi */
x.j=y/3600; /*mendapatkan jam */
temp=y%3600;
x.m=temp/60; /*mendapatkan menit*/
x.d=temp%60;
printf(" selisih %d : %d : %d \n",x.j,x.m,x.d); /*mencetak selisih antara jam masukan dengan jam berjalan ke
dalam format jam : menit : detik */
}
void jam_sekarang(){ /*fungsi ini untuk menampikan waktu yang sefang berjalan di komputer */
char buf[7];
time(&the_time);
tm_ptr=localtime(&the_time);
strftime(buf,7,"%p",tm_ptr);
printf("JAM SEKARANG %02d : %02d : %02d %s \n",tm_ptr->tm_hour,tm_ptr->tm_min,tm_ptr-
>tm_sec,buf); /*mencetak jam yang sedang berjalan di komputer */
}

→Simpan File waktu.c


→Buat file dengan nama file_utama.c dengan perintah nano file_utama.c
→Simpan file_utama.c

#include <stdio.h>
#include "waktu.h"
main(){ /*fungsi utama */
times k,y; /*mendklarasikan tipe data bentukan */
setTime(&k); /*memanggil fungsi setTime untuk melakukan pengesetan terghadatp nilai jam yang sedang berjalan
di proseseor*/
jam_sekarang(); /*memanggil prosediur jam sekaran*/
baca(&y); /* memanggil fungsi untuk melakukan pembacaan waktu*/
tulis(y); /*memanggil prosedur fungsi untuk mencetak waktu yang telah di masukan */
printf("%d Total Detik \n",konversi(y,k)); /*mencetak total detik */

}
→Langkah terakhir lakukan kompilasi
→gcc -c waktu.c
→gcc -c file_utama.c
→ jika keadaan di atas di ada yang error dalam komplilas maka akan terbentuk waktu.o dan file_utama.o
→kompilasi semua dengan perintah gcc waktu.o file_utama.o -o jam
→jalankan atau eksekusi program dengan perintah ./jam

Anda mungkin juga menyukai