ASSALAMUALAIKUM SOBAT REDAKSI

Kembali lagi dengan saya Dery si manusia C 🙂
Pada kesempatan kali ini, saya akan melanjutkan pembahasan dari artikel yang sudah saya bahas sebelumnya. Pembahasan kali ini yaitu tentang VARIABEL STRUKTUR.

Sebelum masuk pada pembahasan, Tujuan dari pembahasan kali ini yaitu Mempelajari penggunaan variabel struktur dimana dipadukan dengan variabel yang pernah dibaca sebelumnya, yaitu meliputi pointer dan array serta dipadukan dengan fungsi. Bagaimana mendeklarasi, mengidentifikasi, dan mengakses dari suatu struktur.

Struktur adalah salah satu fitur bahasa pemrograman C/C++, merupakan keyword yang memungkinkan kita untuk membuat sebuah deklarasi untuk membuat pengelompokan variabel dengan tipe data yang berbeda.

Nah, setelah mengetahui tentang Variabel Struktur kali ini mari mencoba membuat sebuah program dengan memberikan Variabel Struktur.

  • Program menggunakan struktur tanggal, yang digunakan untuk menentukan tanggal berikutnya (besok), dengan memasukkan dari keyboard berupa tanggal hari ini (tanggal sekarang).
    Ketiklah program dibawah ini :

    #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+tambah;
    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);
    }

    Coba Jalankan programnya, maka outputnya akan terlihat seperti gambar dibawah :

    • Facebook
    • Twitter
    • Google+
    • Pinterest
  • Program untuk menentukan selisih antara dua waktu yang berbeda, dimana kedua waktu tersebut dimasukkan melalui keyboard.
    Ketiklah program dibawah ini :

    #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(“%d%d%d”,&now.j,&now.m,&now.d);
    printf(“Masukan waktu nanti j:m:d\n”);
    scanf(“%d%d%d”,&later.j,&later.m,&later.d);
    beda=selisih(now,later);
    printf(“Selisih waktunya\n”);
    printf(“%d jam:%d menit :%d detik”,beda.j,beda.m,beda.d);
    }

    Coba Jalankan programnya, maka outputnya akan terlihat seperti gambar dibawah :

    • Facebook
    • Twitter
    • Google+
    • Pinterest
  • Program untuk menentukan selisih antara dua tanggal yang berbeda, dimana kedua tanggal tersebut dimasukkan melalui keyboard.
    Ketiklah program dibawah ini :

    #include<stdio.h>

    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();
    }

    Coba Jalankan programnya, maka outputnya akan terlihat seperti gambar dibawah :

    • Facebook
    • Twitter
    • Google+
    • Pinterest

Nah, Bagaimana sobat redaksi. Belajar bahasa C itu tidak mudah, namun menyenangkan.
Sekian dari saya, sampai jumpa di pembahasan selanjutnya 🙂

WASSALAMUALAIKUM WR. WB