Page 196 - Project Akhir Media Pendidikan
P. 196

/* Mendefinisikan struktur dengan nama SISWA */
                      struct SISWA {
                         char NIM[8];
                         char nama[25];
                         char alamat[40];
                      };

                      /* Mendeklarasikan pointer P ke struktur SISWA */
                      struct SISWA *P;

                      Sebenarnya konsep dari pointer ke struktur sama saja dengan pointer yang menunjuk ke
                      tipe-tipe data lainnya. Walaupun demikian, terdapat sedikit perbedaan yang perlu sekali
                      untuk  diperhatikan,  yaitu  operator  yang  digunakan  pada saat  pengaksesan  nilai  dari
                      anggota-anggota yang terkandung dalam struktur.

                      Apabila kita memiliki variabel yang bertipe struktur, maka untuk mengakses nilai dari
                      anggota-anggota yang terdapat pada struktur tersebut kita akan menggunakan operator
                      titik (.). Namun apabila kita mendeklarasikan pointer ke struktur, maka operator yang
                      digunakan untuk mengakses nilai dari anggota struktur tersebut adalah operator  ->.
                      Berikut ini contoh sintak yang akan menunjukkan perbedaan antara keduanya.


                      /* Mendeklarasikan variabel S bertipe struktur */
                      struct SISWA S;

                      /* Untuk mengakses anggota S digunakan operator titik (.) */
                      S.NIM = “D0D99021”;
                      S.nama = “Arista Destriana”;
                      ...

                      /* Mendeklarasikan pointer P ke tipe struktur */
                      struct SISWA *P;

                      /* Alokasi memori */
                      P = (SISWA*) malloc(sizeof(SISWA));

                      /* Memerintahkan P untuk menunjuk ke alamat S */
                      P = &S;

                      /* Untuk mengakses anggota dengan pointer digunakan
                          operator -> */
                      printf(“NIM \t: %s\n”, P->NIM);
                      printf(“Nama \t: %s\n”, P->nama);
                      ...

                      /* Mendealokasikan memori */
                      free(P);






                                                          192
   191   192   193   194   195   196   197   198   199   200   201