Struktur (structure) dalam C

Tuesday, October 18th, 2011

Struktur digunakan untuk menyimpan pelbagai pembolehubah dalam satu pembolehubah. Sebagai contoh jika kita mahu menyimpan nama dan umur pekerja dalam hanya satu pembolehubah seperti contoh di bawah. Kita boleh mengakes pembolehubah-pembolehubah di dalam pembolehubah struktur ini dengan menggunakan “.”.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct pekerja {
  char nama[20];
  int umur;     
  int gaji;  
};
 
int main(int argc, char *argv[])
{
  struct pekerja pekerja1;
 
  strcpy(pekerja1.nama, "Karim");
  pekerja1.umur = 23;
  pekerja1.gaji = 5000;
 
  printf("Pekerja bernama %s berumur %d tahun mempunyai gaji sebanyak RM%d\n", 
    pekerja1.nama, pekerja1.umur, pekerja1.gaji);
 
  system("PAUSE");	
  return 0;
}

Dalam tutorial pembolehubah (rujuk di sini), saya ada menceritakan tentang analogi kotak. Ia masih boleh diaplikasi dalam kes ini di mana anda boleh menganggap pembolehubah struktur ini adalah sebuah kotak yang besar yang mengandungi beberapa kotak yang lain.

struktur C

Kod di atas boleh digantikan dengan kod di bawah yang bagi saya lebih senang digunakan.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct pekerja {
  char nama[20];
  int umur;     
  int gaji;  
} pekerja_t;
 
int main(int argc, char *argv[])
{
  pekerja_t pekerja1;
 
  strcpy(pekerja1.nama, "Karim");
  pekerja1.umur = 23;
  pekerja1.gaji = 5000;
 
  printf("Pekerja bernama %s berumur %d tahun mempunyai gaji sebanyak RM%d\n", 
    pekerja1.nama, pekerja1.umur, pekerja1.gaji);
 
  system("PAUSE");	
  return 0;
}

Pointer kepada struktur

Sepertimana pembolehubah lain, kita juga mempunyai pointer struktur.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct pekerja {
  char nama[20];
  int umur;     
  int gaji;  
} pekerja_t;
 
int main(int argc, char *argv[])
{
  pekerja_t pekerja1;
  pekerja_t * ptr = &pekerja1;
 
  strcpy(pekerja1.nama, "Karim");
  pekerja1.umur = 23;
  pekerja1.gaji = 5000;
 
  printf("Pekerja bernama %s berumur %d tahun mempunyai gaji sebanyak RM%d\n", 
    pekerja1.nama, pekerja1.umur, pekerja1.gaji);
 
  printf("Pekerja bernama %s berumur %d tahun mempunyai gaji sebanyak RM%d\n", 
   (*ptr).nama, (*ptr).umur, (*ptr).gaji);
 
  printf("Pekerja bernama %s berumur %d tahun mempunyai gaji sebanyak RM%d\n", 
    ptr->nama, ptr->umur, ptr->gaji);
 
  system("PAUSE");	
  return 0;
}

Kita mempunyai dua cara untuk mengakses data dari pointer struktur iaitu samada menggunakan (*ptr).nama ataupun dengan cara yang lebih mudah ptr->nama.

Share

Selamat mencuba! Jika anda mempunyai soalan mengenai tutorial ini, sila kemukakan di ruangan di bawah. Untuk soalan lain yang berkaitan dengan aturcara web atau jika anda mempunyai pandangan/idea untuk tutorial baru, e-mail saya di wanmohdfairuz@mckk9903.com atau kemukakan pandangan/soalan anda di dalam forum tutorialmelayu di http://www.tutorialmelayu.com/forum.
Daftar percuma di sini.

tagged under:

ABOUT THIS AUTHOR

System Engineer (Texas Instruments France), Masters in Electronics , Embedded System Engineering,

Leave a Reply

Forum Tutorial php,mysql,javascript,css,html bahasa melayu

Tutorial php,mysql,javascript,css,html bahasa melayu