Structure adalah suatu data tipe buatan user yang digunakan untuk menyimpan sekumpulan data yang berkaitan secara bersama-sama, sedangkan array hanya dapat menyimpan informasi atau data dengan tipe yang sama. Data-data didalam struktur dapat memiliki tipe data yang berbeda.
Cara Membuat Structure :
struct nama_struct
{
tipe_data variable_pertama;
tipe_data variable_kedua;
// dan seterusnya
};
Contoh :
struct Mahasiswa
{
char nim[11];
char nama[101];
};
Untuk membuat variable dengan tipe data struct yang dibuat user, kita membuatnya seperti membuat variable biasa.
Contoh :
struct Mahasiswa mhs;
atau Kita Bisa Mendeklarasikan struct dan sekaligus membuat variablenya.
Contoh :
struct Mahasiswa
{
char nim[11];
char nama[101];
} mhs;
Untuk mengakses variable yang terdapat didalam sebuah struct, kita menggunakan symbol “.” (dot).
Contoh :
strcpy(mhs.nama, “Ivan”); // Memberikan nilai
printf(“%s”, mhs.nama); // Mengakses nilai
Nested Structure
Kita dapat membuat struct di dalam struct.
Contoh :
struct Gamer
{
char nama[101];
int level;
};
struct Mahasiswa
{
char nim[11];
char nama[101];
Gamer gamer;
} mhs;
Kita juga bisa membuat Array of Structure
Contoh :
struct Mahasiswa mhs[100];
Dynamic Memory Allocation
Kita dapat mengalokasikan memory dinamis saat runtime. Caranya adalah dengan menggunakan fungsi malloc(). Untuk menghapus memory yang sudah dialokasikan, kita gunakan fungsi free()
Contoh :
int *p = (int*) malloc(sizeof(int)); // Allocate
free(p); // Deallocate
Perkenalan Linked List
Linked List adalah suatu struktur data yang terdiri dari deretan data dimana setiap data mempunyai suatu field / variable yang digunakan untuk mengakses data sebelahnya. Setiap data didalam linked list disebut Node. Linked List yang hanya memiliki 1 variable penghubung ke node lain disebut Single Linked List.
Array VS Linked List
Array :
– Sekumpulan element
– Menyimpan nilai di lokasi memory yang berurutan
– Dapat diakses secara random
Linked List :
– Sekumpulan node
– Tidak menyimpan node di memory yang berurutan
– Hanya dapat diakses secara berurutan