Structure adalah kumpulan dari beberapa variabel dalam satu nama. Variabel-variabel yang ada di dalam structure dapat memiliki tipe data yang sama atau berbeda. Dengan menggunakan structure, kita dapat membentuk tipe data baru yang merupakan gabungan dari beberapa variabel. Berikut adalah cara penulisan structure.
struct nama_struct { tipe_data nama_variabel_1; tipe_data nama_variabel_2; tipe_data nama_variabel_3; tipe_data nama_variabel_n; };
Karena struct yang sudah didefinisikan membentuk sebuah tipe data baru (user defined data type), maka cara menggunakannya adalah sebagai berikut.
struct nama_struct nama_variabel_struct;
Cara memanggil variabel-variabel yang ada di dalam struct adalah sebagai berikut.
nama_variabel_struct.nama_variabel_1 nama_variabel_struct.nama_variabel_2
dan seterusnya. Cara menggunakannya sama seperti variabel biasa. Untuk lebih jelas, perhatikan contoh di bawah.
#include <stdio.h> //mendefinisikan sebuah struct dengan nama Pegawai struct Pegawai { char nama[100]; char jabatan[100]; char alamat[100]; char no_telepon[100]; float gaji; }; int main() { //mendeklarasikan sebuah variabel dari struct Pegawai struct Pegawai data; printf("Masukkan nama pegawai: "); gets(data.nama); printf("Masukkan jawaban: "); gets(data.jabatan); printf("Masukkan alamat: "); gets(data.alamat); printf("Masukkan nomor telepon: "); gets(data.no_telepon); printf("Masukkan gaji: "); scanf("%f", &data.gaji); printf("\n\n"); printf("Nama: %s\n", data.nama); printf("Jabatan: %s\n", data.jabatan); printf("Alamat: %s\n", data.alamat); printf("Nomor telepon: %s\n", data.no_telepon); //mencetak gaji dengan dua angka di belakang koma printf("Gaji: %.2f\n", data.gaji); return 0; }
Sebuah struct juga dapat dijadikan array seperti variabel yang dibuat dengan tipe data primitif. Dari contoh source code di atas, misalkan kita ingin menampung 10 buah data pegawai, kita tidak perlu membuat 10 buah variabel dari struct Pegawai. Cukup deklarasi satu buah variabel array dari struct pegawai.
#include <stdio.h> //mendefinisikan sebuah struct dengan nama Pegawai struct Pegawai { char nama[100]; char jabatan[100]; char alamat[100]; char no_telepon[100]; float gaji; }; int main() { //mendeklarasikan sebuah variabel array dari struct Pegawai struct Pegawai data [10]; for(int i = 0; i < 10; ++i) { printf("Masukkan nama pegawai: "); gets(data[i].nama); printf("Masukkan jawaban: "); gets(data[i].jabatan); printf("Masukkan alamat: "); gets(data[i].alamat); printf("Masukkan nomor telepon: "); gets(data[i].no_telepon); printf("Masukkan gaji: "); scanf("%f", &data[i].gaji); while(getchar() != '\n'); // flush buffer } printf("\n\n"); for(int i = 0; i < 10; ++i) { printf("Nama: %s\n", data[i].nama); printf("Jabatan: %s\n", data[i].jabatan); printf("Alamat: %s\n", data[i].alamat); printf("Nomor telepon: %s\n", data[i].no_telepon); printf("Gaji: %.2f\n\n", data[i].gaji); } return 0; }