Menguasai Struct C: Definisi, Variabel, Akses, dan Contoh Lanjutan
Menguasai Struct C
Pelajari cara mendefinisikan, membuat, dan menggunakan struct C dengan contoh yang jelas dan praktik terbaik.
Apa Itu Struct C?
Sebuah struct (singkatan dari structure) adalah tipe data komposit yang mengelompokkan variabel dengan tipe yang berbeda di bawah satu nama. Ini adalah fondasi untuk membuat struktur data kompleks dalam C.
Mendefinisikan Struktur
Sebelum Anda dapat membuat variabel dari tipe struct, Anda harus mendefinisikan tipe tersebut. Kata kunci struct memperkenalkan definisi:
struct structureName { dataType member1; dataType member2; … };
Contoh:
struct Person { char name[50]; int citNo; float salary; };
Ini membuat tipe baru yang disebut struct Person. Anda sekarang dapat mendeklarasikan variabel dari tipe tersebut.
Membuat Variabel Struktur
Mendefinisikan tipe struct tidak mengalokasikan memori. Untuk bekerja dengannya, deklarasikan variabel:
struct Person { // members }; int main() { struct Person person1, person2, p[20]; return 0; }
Atau, gabungkan definisi dan deklarasi variabel:
struct Person { // members } person1, person2, p[20];
person1 dan person2 adalah variabel struct Person tunggal. p adalah array dari 20 instance struct Person.
Mengakses Anggota Struct
Dua operator mengambil anggota:
. – Operator akses anggota. -> – Operator anggota pointer-ke-struct (dicakup dalam tutorial terpisah).
Untuk membaca atau mengubah salary dari person2:
person2.salary
Contoh 1: Menggunakan Struct dalam C
#include <stdio.h> #include <string.h> struct Person { char name[50]; int citNo; float salary; } person1; int main() { strcpy(person1.name, "George Orwell"); person1.citNo = 1984; person1.salary = 2500; printf("Name: %s\n", person1.name); printf("Citizenship No.: %d\n", person1.citNo); printf("Salary: %.2f", person1.salary); return 0; }
Keluaran
Name: George Orwell Citizenship No.: 1984 Salary: 2500.00
Perhatikan bahwa strcpy() menyalin string ke array char berukuran tetap karena operator penugasan tidak dapat digunakan langsung dengan array.
Menggunakan typedef dengan Struct
Kata kunci typedef membuat alias untuk tipe, menyederhanakan deklarasi:
typedef struct Distance { int feet; float inch; } distances; int main() { distances d1, d2; }
Tanpa typedef, Anda akan menulis:
struct Distance d1, d2;
Contoh 2: Alias dalam Praktik
#include <stdio.h> #include <string.h> typedef struct Person { char name[50]; int citNo; float salary; } person; int main() { person p1; strcpy(p1.name, "George Orwell"); p1.citNo = 1984; p1.salary = 2500; printf("Name: %s\n", p1.name); printf("Citizenship No.: %d\n", p1.citNo); printf("Salary: %.2f", p1.salary); return 0; }
Keluaran
Name: George Orwell Citizenship No.: 1984 Salary: 2500.00
Struktur Bersarang
Struct dapat berisi struct lainnya, memungkinkan pemodelan data hierarkis:
struct complex { int imag; float real; }; struct number { struct complex comp; int integers; } num1, num2;
Untuk mengatur imag dari num2 ke 11:
num2.comp.imag = 11;
Contoh 3: Struct Bersarang dalam Aksi
#include <stdio.h> struct complex { int imag; float real; }; struct number { struct complex comp; int integer; } num1; int main() { num1.comp.imag = 11; num1.comp.real = 5.25; num1.integer = 6; printf("Bagian Imaginer: %d\n", num1.comp.imag); printf("Bagian Real: %.2f\n", num1.comp.real); printf("Integer: %d", num1.integer); return 0; }
Keluaran
Bagian Imaginer: 11 Bagian Real: 5.25 Integer: 6
Menggunakan Struct dalam C?
Misalkan Anda perlu menyimpan nama, nomor kewarganegaraan, dan gaji seseorang. Tanpa struct, Anda akan membuat variabel terpisah untuk setiap bidang untuk setiap orang, yang dengan cepat mengakibatkan duplikasi kode dan kebingungan. Struct mengenkapsulasi data yang terkait ke dalam satu unit logis, mempromosikan kode yang lebih bersih dan perawatan yang lebih mudah.
Apa Selanjutnya?
- Struct dan pointer
- Meneruskan struct ke fungsi