Page 178 - PEMROGRAMAN DASAR MENGGUNAKAN C
P. 178

#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
   173   174   175   176   177   178   179   180   181   182   183