- 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.
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
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:
#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(); }
Posting Komentar