Tutorial Melayu

Struktur (structure) dalam C

Introduction

user

Fairuz

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


LATEST POSTS

Nota: git alias yang biasa digunakan 05th December, 2013

Nota: Android .gitignore 23rd February, 2013

C/C++

Struktur (structure) dalam C

Posted on .

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 
#include 
#include 

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 
#include 
#include 

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 
#include 
#include 

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.

profile

Fairuz

http://www.tutorialmelayu.com

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

Comments

Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

View Comments (1) ...
Navigation