Assalamu’alaikum, kali ini saya akan membahas tentang variable struktur. Variable struktur sendiri memiliki kata kunci yaitu kumpulan variable dengan tipe data berbeda. Suatu variable struktur dapat terdiri dari bermacam tipe variable yang ada, semisal dapat berisikan integer, float, char, dan sebagainya.
Berikut ada beberapa contoh dari pengaplikasian variable struktur.
- Program untuk menentukan tanggal berikutnya.
#include<stdio.h>
struct tgl {
int d;
int m;
int y;};
int bulann [13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
struct tgl skrg;
static char *bulan[]={
“salah”,”jnr”,”feb”,”mrt”,”apr”,”mei”,”jun”,”jul”,”ags”,”sep”,”okt”,”nov”,”des”};
void tanggalanbesok(struct tgl bsk,int tambah)
{ bsk.d=bsk.d+1;
while (bsk.d>bulann[bsk.m]){
if (bsk.y%4==0)
bulann[2]=29;
else bulann[2]=28;
bsk.d=bsk.d-bulann[bsk.m];
bsk.m=bsk.m+1;
if (bsk.m>12)
{bsk.m=bsk.m-12;bsk.y=bsk.y+1;}}
printf (“\n%d-%d-%d”,bsk.d,bsk.m,bsk.y);
printf(“\n%d %s %d”,bsk.d,bulan[bsk.m],bsk.y);
}
int main()
{
printf(“Tanggal sekarang adalah “);
int tambah;
mulai:
printf (“masukan tanggal : (dd mm yy)\n”);
scanf(“%d %d %d”,&skrg.d,&skrg.m,&skrg.y);
if(skrg.y%4==0)
bulann[2]=29;
else bulann[2]=28;
if(skrg.d>bulann[skrg.m]||skrg.m>12||skrg.m<1){
printf(“\nForamat salah ulang\n”);
goto mulai;}
printf(“%d %s %d”,skrg.d,bulan[skrg.m],skrg.y);
printf (“\nmasukan berapa jumlah hari berikutnya : “);
scanf(“%d”,&tambah);
tanggalanbesok(skrg,tambah);
}
Hasil
- Program untuk menentukan selisih antara dua waktu.
#include<stdio.h>
struct waktu {
int d;
int m;
int j;};
struct waktu selisih(skrg,nanti)
struct waktu skrg;
struct waktu nanti;
{
struct waktu selisihnya;
if(skrg.d>nanti.d){
nanti.d=nanti.d+60;
nanti.m=nanti.m-1;}
selisihnya.d=nanti.d-skrg.d;
if(skrg.m>nanti.m){
nanti.m=nanti.m+60;
nanti.j=nanti.j-1;}
selisihnya.m=nanti.m-skrg.m;
selisihnya.j=nanti.j-skrg.j;
return(selisihnya);
}
void main()
{
struct waktu now;
struct waktu later;
struct waktu beda;
printf(“Masukan waktu sekarang j:m:d\n”);
scanf(“%2d:%2d:%2d”,&now.j,&now.m,&now.d);
printf(“Masukan waktu nanti j:m:d\n”);
scanf(“%2d:%2d:%2d”,&later.j,&later.m,&later.d);
beda=selisih(now,later);
printf(“Selisih waktunya\n”);
printf(“%2d jam:%2d menit :%2d detik”,beda.j,beda.m,beda.d);
}
Hasil
- Program untuk menentukan selisih antara dua taggal.
#include<stdio.h>
//belum fix
int main()
{
struct tgl {
int d;
int m;
int y;};
int bulann [13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
static char *bulan[]={
“salah”,”jnr”,”feb”,”mrt”,”apr”,”mei”,”jun”,”jul”,”ags”,”sep”,”okt”,”nov”,”des”};
struct tgl skrg;
struct tgl nanti;
int selisih=0;
mulai:
printf (“masukan tanggal sekarang: (dd mm yy)\n”);
scanf(“%d %d %d”,&skrg.d,&skrg.m,&skrg.y);
if(skrg.y%4==0)
bulann[2]=29;
else bulann[2]=28;
if(skrg.d>bulann[skrg.m]||skrg.m>12||skrg.m<1){
printf(“\nForamat salah ulang\n”);
goto mulai;}
printf(“\n%d %s %d”,skrg.d,bulan[skrg.m],skrg.y);
ulang:
printf (“\nmasukan tanggal nanti : (dd mm yy)\n”);
scanf(“%d %d %d”,&nanti.d,&nanti.m,&nanti.y);
if(nanti.y%4==0)
bulann[2]=29;
else bulann[2]=28;
if(nanti.d>bulann[nanti.m]||nanti.m>12||nanti.m<1){
printf(“\nForamat salah ulang\n”);
goto ulang;}
printf(“\n%d %s %d\n”,nanti.d,bulan[nanti.m],nanti.y);
while(skrg.d!=nanti.d||skrg.m!=nanti.m||skrg.y!=nanti.y)
{
if(skrg.y%4==0)
bulann[2]=29;
else bulann[2]=28;
skrg.d=skrg.d+1;
selisih++;
if(skrg.d>bulann[skrg.m]){
skrg.m=skrg.m+1;
skrg.d=1;}
if(skrg.m==13){
skrg.m=skrg.m-12;
skrg.y=skrg.y+1;}
}
printf(“Selisihnya adalah “);
printf(“%d hari “,selisih);
getch();
}
Hasil
Sekian dari saya, Wassalamu’alaikum.
Recent Comments