:: STRUCT :: DEFINISI o User defined data type o Berisi beberapa variabel yang bisa berbeda tipenya masing-masing disebut elemen o Mempunyai nama yang sama o Mirip representasi sebuah object beserta properties-nya. Contoh: struct MHS setidaknya punya elemen untuk NPM, Nama dan Alamat. DEFINISI DAN DEKLARASI Syntax: struct nama_struct { tipe_data_1 nama_var_1; tipe_data_2 nama_var_2; tipe_data_3 nama_var_3; …… };
Var_1
struct
Var_2 Var_3
CARA PENGAKSESAN Untuk mengakses tiap elemen di dalam sebuah struct digunakan operator titik (.) Syntax:
nama_var_struct
.
nama_var_elemen;
Contoh: # include “stdio.h” struct lingkaran { // definisi struct dibuat global int jari_jari; float keliling; float luas; }; main() { struct lingkaran L; // deklarasi variable struct printf(“\nMasukkan jari-jari lingkaran = “); scanf(“%i”, &L.jari_jari); // input L.keliling = 2 * 3.14 * L.jari_jari; // proses L.luas = 3.14 * L.jari_jari * L.jari_jari; // proses printf(“\nKelilingnya = %f“, L.keliling); // output printf(“\nLuasnya = %f“, L.luas); // output } NESTED STRUCT Sebuah kondisi dimana di dalam sebuah struct terdapat tipe data berupa struct lagi.
struct struct Contoh:
main() { struct karyawan kar; scanf(”%i”, &kar.tgl_masuk.tahun); printf(“Tahun = %i”, kar.tgl_masuk.tahun);
struct tanggal { unsigned int hari; unsigned int bulan; unsigned int tahun; }; struct karyawan { char NIP [10]; char nama [20]; struct tanggal tgl_masuk; float gaji; };
STRUCT OF ARRAY Sebuah struct yang di dalamnya terdapat variable/ elemen yang bertipe array.
struct
array
Contoh: struct data { char kode [10]; char nama [20]; char alamat [30]; ……… } ARRAY OF STRUCT Sebuah array yang setiap data elemennya bertipe struct. Umumnya dipakai untuk menyimpan object data yang terstruktur, misal: data mahasiswa, karyawan, buku, barang, dsb.
struct
Indeks :
0
struct
1
struct
2
struct
3
struct
4
#include "stdio.h" #include "string.h" #include "conio.h" typedef struct mhs { char npm [10]; char nama [20]; char alamat [30]; unsigned angkatan; float ipk; }; main() { mhs student[100]; // deklarasi var, menyiapkan 100 data mhs char lagi = 'y'; int i; for( i = 0; lagi == 'y'; i++) { printf("\nNPM = "); gets(student[i].npm); printf("Nama = "); gets(student[i].nama); printf("Alamat = "); gets(student[i].alamat); printf("Angkatan = "); scanf("%i", &student[i].angkatan); printf("IPK = "); scanf("%f", &student[i].ipk); printf("\nMasukkan Lagi (y/t) ? "); lagi = getche(); flushall(); } printf("\n\nData yang sudah dimasukkan adalah:\n"); for( int j = 0; j < i; j++) { printf("\nNPM : %s", student[j].npm); printf("\nNama : %s", student[j].nama); printf("\nAlamat : %s", student[j].alamat); printf("\nAngkatan : %i", student[j].angkatan); printf("\nIPK : %f \n", student[j].ipk); }
}