Penggunaan Struct

Bahan untuk Kelas Algo dan Strukdat C++

  • Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel
    yang bernaung dalam satu nama yang sama dan memiliki kaitan satu
    sama lain.
  • Berbeda dengan array hanya berupa kumpulan variabel yang bertipe data
    sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau
    berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau
    struct itu sendiri.
  • Variabel-variabel yang menjadi anggota struct disebut dengan elemen
    struct.

Bentuk umum dari struct:

typedef struct{
   tipe_data <nama_var>;
   tipe_data <nama_var>;
   .... }

Struct bisa diumpamakan sebagai sebuah obyek, misalnya: obyek Mahasiswa. Struct Mahasiswa memiliki property atau atribut atau variabel yang melekat padanya:

  • NIM misal karakter sejumlah 8
  • Nama yaitu karakter
  • IPK yaitu bilangan pecahan

Struct tidak memiliki operasi (method) atau function. Struct dapat digunakan dengan cara membuat variabel yang bertipe struct tersebut.
Misalnya :

  • variabel anton bertipe struct Mahasiswa
  • variabel erick bertipe struct Mahasiswa

Dengan demikian variabel anton dan erick memiliki NIM, Nama, dan IPK masing-masing.

Ada dua cara untuk mendeklarasikan struct pada C yaitu:

Menggunakan keyword typedef:

typedef struct Mahasiswa {
  char NIM[8];
  char nama[50];
  float ipk;
};

//untuk menggunakan struct Mahasiswa dengan membuat variabel mhs dan mhs2
Mahasiswa mhs,mhs2;
//untuk menggunakan struct Mahasiswa dengan membuat variabel array m;
Mahasiswa m[100];

Menggunakan keyword struct:

struct {
  char NIM[8];
  char nama[50];
  float ipk;
} mhs;

Berarti kita sudah mempunyai variabel mhs yang bertipe data struct seperti diatas

Cara penggunaan struct dan pengaksesan elemen-elemennya:

  • Penggunaan/pemakaian tipe data struct dilakukan dengan membuat suatu variabel yang bertipe data struct tersebut
  • Pengaksesan elemen struct dilakukan secara individual dengan menyebutkan nama variabel struct diikuti dengan operator titik (.)
  • Misalnya dengan struct mahasiswa seperti contoh di atas, kita akan akses elemen-elemennya seperti contoh berikut:

Contoh Program 1 (Penggunaan Struct Sederhana) :

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

//Pendeklarasian tipe data baru struct Mahasiswa 
typedef struct Mahasiswa{
         char NIM[9];
         char nama[30];
         float ipk;
 };

void main(){
      //Buat variabel mhs bertipe data Mahasiswa
      Mahasiswa mhs;
      clrscr();

      printf("NIM = ");scanf("%s",mhs.NIM);
      printf("Nama = ");scanf("%s",mhs.nama);
      printf("IPK = ");scanf("%f",&mhs.ipk); 

      printf("Data Anda : \n");
      printf("NIM : %s\n",mhs.NIM);
      printf("Nama : %s\n",mhs.nama);
      printf("IPK : %f\n",mhs.ipk);
      getch();
}

Contoh Program 2 (Penggunaan Struct dalam Struct) :

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

typedef struct Date{
          int dd;
          int mm;
          int yyyy;
}; 

typedef struct Time{
          int h;
          int m;
          int s;
};

typedef struct Login{
          int ID;
          Date tglLogin;
          Time waktuLogin;
}; 

int main(){
     Login user1; 

     printf("USER 1\n");
     printf("ID : ");scanf("%d",&user1.ID);
     printf("Tanggal Login\n");
     printf("Hari : ");scanf("%d",&user1.tglLogin.dd);
     printf("Bulan : ");scanf("%d",&user1.tglLogin.mm);
     printf("Tahun : ");scanf("%d",&user1.tglLogin.yyyy);
     printf("Waktu Login\n");
     printf("Jam : ");scanf("%d",&user1.waktuLogin.h);
     printf("Menit : ");scanf("%d",&user1.waktuLogin.m);
     printf("Detik : ");scanf("%d",&user1.waktuLogin.s);
     printf("Terimakasih\n");
     printf("Data Anda :\n");
     printf("ID : %d\n",user1.ID);
     printf("Date : %d - %d - %d\n",user1.tglLogin.dd,user1.tglLogin.mm,user1.tglLogin.yyyy);
     printf("ID :%d:%d:%d\n",user1.waktuLogin.h,user1.waktuLogin.m,user1.waktuLogin.s);
     getch();
}

Contoh 3 (Penggunaan Array Of Struct)

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

typedef struct Date{
          int dd;
          int mm;
          int yyyy;
        }; 

typedef struct Time{
          int h;
          int m;
          int s;
        }; 

typedef struct Login{
          int ID;
          Date tglLogin;
          Time waktuLogin;
          };

int main(){
     Login user[3]; 

     //3 user 
     for(int i=0;i<3;i++){
         printf("\nUSER ke-%d\n",i+1);
         printf("ID : ");scanf("%d",&user[i].ID);
         printf("Tanggal Login\n");
         printf("Hari : ");scanf("%d",&user[i].tglLogin.dd);
         printf("Bulan : ");scanf("%d",&user[i].tglLogin.mm);
         printf("Tahun : ");scanf("%d",&user[i].tglLogin.yyyy);
         printf("Waktu Login\n");
         printf("Jam : ");scanf("%d",&user[i].waktuLogin.h);
         printf("Menit : ");scanf("%d",&user[i].waktuLogin.m);
         printf("Detik : ");scanf("%d",&user[i].waktuLogin.s);
         printf("Terimakasih Atas Pengisiannya\n");
         printf("\nData User ke-%d:\n",i+1);
         printf("Login ID : %d\n",user[i].ID);
         printf("Login Date : %d - %d - %d\n",user[i].tglLogin.dd,user[i].tglLogin.mm,user[i].tglLogin.yyyy);
         printf("Login Time : %d:%d:%d\n",user[i].waktuLogin.h,user[i].waktuLogin.m,user[i].waktuLogin.s);
      }
      getch();
}

5 thoughts on “Penggunaan Struct

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s