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