C - Arrays of Structures

Hai teman-teman yang sedang belajar pemrograman! Hari ini, kita akan mengemban sebuah perjalanan yang menarik ke dunia pemrograman C, khususnya untuk meng eksplorasi Arrays of Structures. Jangan khawatir jika Anda baru belajar pemrograman; saya akan memandu Anda di setiap langkah dengan kesabaran dan kesungguhan yang saya gunakan di kelas selama tahun tahun. Ayo masuk ke dalamnya!

C - Arrays of Structures

apa itu Structures dan Arrays?

Sebelum kita melompat ke arrays of structures, mari kita ingat kembali apa itu structures dan arrays secara individual.

Structures

Sebuah structure dalam C seperti sebuah wadah yang dapat menahan jenis data yang berbeda. Bayangkan sebuah tas punggung tempat Anda dapat menyimpan berbagai macam item - itu adalah structure Anda! Sebagai contoh:

struct Student {
char name[50];
int age;
float gpa;
};

Di sini, structure Student kita dapat menahan sebuah nama, umur, dan GPA. Bagus kan?

Arrays

Sebaliknya, sebuah array adalah sebuah koleksi item yang sama jenis. Bayangkan itu seperti sebuah baris lemari yang identik, masing-masing menyimpan jenis item yang sama. Sebagai contoh:

int numbers[5] = {1, 2, 3, 4, 5};

Array ini bernama numbers dapat menahan 5 integer.

Apa punjika kita gabungkan kedua konsep ini? Itu tempat magisnya terjadi!

Arrays of Structures

Sebuah array of structures adalah seperti yang namanya - sebuah array tempat setiap elemen adalah sebuah structure. Itu seperti memiliki sebuah kelas penuh murid, masing-masing dengan kumpulan karakteristik mereka sendiri.

Ayo jelajahi bagaimana bekerja dengan konstraksi kuat ini!

Mendeklarasikan Array Struct

Untuk mendeklarasikan sebuah array of structures, pertama kita tentukan structure kita, kemudian membuat sebuah array dari jenis structure itu. Berikut adalah penampilannya:

struct Student {
char name[50];
int age;
float gpa;
};

struct Student class[30];

Dalam contoh ini, kita telah membuat sebuah array bernama class yang dapat menahan informasi untuk 30 murid. Itu seperti memiliki 30 kartu murid, masing-masing berisi nama, umur, dan GPA.

Inisialisasi Array Struct

Sekarang kita telah mendeklarasikan array kita, mari kita isi dengan beberapa data. Kita dapat melakukan ini dengan dua cara:

  1. Inisialisasi saat deklarasi:
struct Student class[3] = {
{"Alice", 20, 3.8},
{"Bob", 22, 3.5},
{"Charlie", 21, 3.9}
};
  1. Inisialisasi setelah deklarasi:
strcpy(class[0].name, "Alice");
class[0].age = 20;
class[0].gpa = 3.8;

strcpy(class[1].name, "Bob");
class[1].age = 22;
class[1].gpa = 3.5;

// ... dan seterusnya

Ingat, saat bekerja dengan string dalam C, kita gunakan strcpy untuk memberikan nilai ke array char.

Membaca Array Struct

Membaca dari sebuah array struct adalah mudah. Kita dapat mengakses elemen individual menggunakan indeks array dan notasi titik untuk anggota structure:

printf("Nama Murid: %s\n", class[0].name);
printf("Umur Murid: %d\n", class[0].age);
printf("GPA Murid: %.2f\n", class[0].gpa);

Kita juga dapat menggunakan loop untuk membaca seluruh array:

for (int i = 0; i < 3; i++) {
printf("Murid %d:\n", i+1);
printf("Nama: %s\n", class[i].name);
printf("Umur: %d\n", class[i].age);
printf("GPA: %.2f\n\n", class[i].gpa);
}

Kode ini akan mencetak informasi untuk semua tiga murid dalam array class kita.

Mensortir Array Struct

Mengurutkan sebuah array of structures sedikit lebih kompleks, tapi jangan khawatir - kita akan membongkar langkah demi langkah. Ayo katakan kita ingin mengurutkan murid kita berdasarkan GPA dalam urutan menurun:

#include <string.h>

void swap(struct Student *a, struct Student *b) {
struct Student temp = *a;
*a = *b;
*b = temp;
}

void sortByGPA(struct Student arr[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j].gpa < arr[j+1].gpa) {
swap(&arr[j], &arr[j+1]);
}
}
}
}

// Penggunaan:
sortByGPA(class, 3);

Kode ini menggunakan algoritma bubble sort untuk mengatur murid kita berdasarkan GPA. Setelah memanggil sortByGPA, array class kita akan disusun dengan GPA tertinggi pertama.

Mendeklarasikan Pointer ke Array Struct

Pointer adalah alat yang kuat dalam C, dan kita juga dapat menggunakannya dengan array struct kita. Berikut adalah cara mendeklarasikan pointer ke array struct:

struct Student *classPtr = class;

Sekarang, classPtr menunjuk ke elemen pertama array class. Kita dapat menggunakan pointer ini untuk mengakses elemen:

printf("Nama murid pertama: %s\n", classPtr->name);
printf("Umur murid kedua: %d\n", (classPtr+1)->age);

Perhatikan penggunaan operator panah (->) saat bekerja dengan pointer ke structure.

Kesimpulan

Selamat! Anda telah membuat langkah besar di dalam perjalanan pemrograman C Anda. Arrays of structures sangat berguna dalam konteks pemrograman dunia nyata. Bayangkan mengelola basis data sekolah, mengatur katalog perpustakaan, atau mengawasi inventori toko - semua tugas ini menjadi lebih mudah dengan arrays of structures.

Ingat, latihan membuat sempurna. Cobalah membuat array struct Anda sendiri, isi mereka dengan data, urutkan mereka, dan eksperimen dengan berbagai cara untuk memanipulasi data. Sebelum Anda tahu, Anda akan menstrukturkan kode Anda seperti seorang ahli!

Selamat pemrograman, dan semoga array Anda selalu diindeks dengan benar!

Credits: Image by storyset