Bab 15 Struktur
Pengenalan Suatu himpunan data yang ditakrifkan sendiri oleh pengguna Membenarkan sekumpulan data yang berkaitan dengan satu sama lain dirujuk dan dimanipulasi sebagai satu unit (rekod) struktur Berbeza dengan tatasusunan, satu struktur boleh terdiri dari gabungan beberapa jenis data (medan) Contohnya, data yang berkaitan dengan seorang pelajar: Nama - rentetan 30 aksara No kad pengenalan - rentetan 15 aksara / tatasusunan integer No matrik - rentetan 7 aksara Tahun kemasukan - integer Pengenalan
Menakrifkan Struktur Berbeza dengan jenis data yang lain seperti integer, struktur perlu ditakrifkan sendiri oleh pengguna menggunakan struct Sintaksis penakrifan struktur : struct nama_struktur { pengisytiharan_data_1; pengisytiharan_data_2; : pengisytiharan_data_n; } Contoh: struct pelajar { char nama[30]; char kadPengenalan[15]; char matrik[7]; int thnMasuk;
Pengisytiharan Struktur Selepas ditakrifkan, pengisytiharan suatu pembolehubah berjenis struktur yang telah ditakrifkan perlu dibuat lokasi bagi pembolehubah tersebut diumpukkan dalam ruang ingatan Sintaksis pengisytiharan : struct nama_struktur pembolehubah; Contoh: struct pelajar pjr; nama kadPengenalan pjr matrik thnMasuk
Pengisytiharan Struktur Seperti jenis data yang lain, lebih dari satu pembolehubah boleh diisytiharkan Contoh: struct pelajar pjr1, pjr2, pjr3; Penakrifan dan pengisytiharan boleh dilakukan sekaligus struct pelajar { char nama[30]; char kadPengenalan[15]; char matrik[7]; int thnMasuk; } pjr1, pjr2, pjr3;
Pengumpukan Nilai Awal Pengumpukan nilai awal kepada suatu pembolehubah berjenis struktur boleh dilakukan semasa pengisytiharan Contoh: struct pelajar pjr = {“Nadiah”, “880409-13-5555”, “A11000”, 1998}; Contoh lain: struct tarikh { int hari; int bulan; int tahun; } struct tarikh hari_lahir = {1, 1, 1982}; 1 hari hari_lahir 1 bulan 1982 tahun
Unsur Struktur Setiap data yang terkandung dalam takrifan suatu struktur dirujuk menggunakan sistaksis berikut: pembolehubah_struktur.pembolehubah_data Contoh: pjr.nama = “Nadiah”; pjr.thnmasuk = 1998; strcpy(pjr.nama, “Nadiah”); pjr1 = pjr2; printf(“%s %s %s %d\n”, pjr.nama, pjr.kadPengenalan, pjr.matrik, pjr.thnMasuk); scanf(“%s %s %s %s”, &(pjr.nama), &(pjr.kadPengenalan), &(pjr.Matrik), &(pjr.thnMasuk) );
Tatasusunan Berjenis Struktur Seperti jenis data yang lain, data berjenis struktur yang sama boleh dihimpun dalam satu tatasusunan Contoh: struct tarikh { int hari; int bulan; int tahun; } struct tarikh cuti[3]; Cara merujuk berasaskan cara yang sama dengan tatasusunan jenis data lain cuti[0].tahun = 2002
Struktur Dalam Struktur Suatu struktur boleh mengandungi takrifan struktur yang lain Contohnya, data yang beritan dengan seorang pelajar: Nama No matrik Tarikh lahir Maklumat ini bleh ditakrifkan menggunakan struktur struct tarikh { int hari; int bulan; int tahun; } struct pelajar { char nama[30]; char matrik[7]; struct tarikh t_lahir; struct pelajar pjr;