Page 181 - Project Akhir Media Pendidikan
P. 181

#include <stdio.h>

                      struct TANGGAL {
                         char *tanggal;
                         char *bulan;
                         char *tahun;
                      } tgl_lahir = {"21","03","1978"};

                      int main(void) {
                         printf("Tanggal lahir : %s-%s-%s",
                                  tgl_lahir.tanggal,
                                  tgl_lahir.bulan,
                                  tgl_lahir.tahun);
                         return 0;
                      }

                      8.2.3.  Ukuran Struktur dalam Memori

                      Hal  yang  perlu  diketahui  oleh  para  programmer  dalam  bekerja  dengan  struktur  adalah
                      masalah ruang (ukuran) memori yang dibutuhkan untuk mendefinisikan sebuah struktur.
                      Ukuran  memori  yang  dibutuhkan  tentunya  berbeda-beda  tergantung  dari  tipe  data  dan
                      banyaknya  field  yang  terdapat  dalam  struktur  yang  bersangkutan.  Kita  dapat
                      mendapatkan  ukuran  dari sebuah struktur  dengan  menggunakan  kata  kunci sizeof.

                      Perhatikan pendefinisan struktur di bawah ini.


                      struct STRUKTUR1 {
                         char a;
                         char b;
                      };


                      Kita  tahu  bahwa  ukuran  dari  tipe  data  char  adalah  1  byte,  maka  tipe  dari  struktur
                      STRUKTUR1 di atas adalah 2 byte, karena di dalamnya terdapat pendeklarasian dua buah
                      variabel yang bertipe char. Namun perhatikan kembali pendefinisan struktur di bawah  ini.



                      struct STRUKTUR2 {
                         int a;
                         char b;
                      };



                      Ukuran dari struktur STRUKTUR2 di atas bukan 5 byte (tipe int 4 byte ditambah tipe char
                      1  byte),  melainkan  8  byte  (tipe  int  4  byte  dikali  2).  Hal  ini  disebabkan  oleh  adanya
                      proses  perentangan  (alignment)  terhadap  tipe  data  char  yang  disesuaikan  dengan  tipe




                                                          177
   176   177   178   179   180   181   182   183   184   185   186