Belajar pemrograman C: Mengenal Struct dan Contohnya

Apa itu Struct?

Structure atau struct adalah kumpulan dari beberapa variabel dengan beragam tipe data yang dibungkus dalam satu varabel.

Struct juga dikenal dengan records dalam bahasa pemrograman lain seperti Pascal.

Mengapa kita membutuhkan struct?

Sekarang coba pikirkan…

Misalnya kita ingin menyimpan data mahasiswa. Kita bisa saja melakukannya seperti ini:

char name[] = "Dian";
char address[] = "Mataram";
int age = 22;

Lalu bagaimana kalau ada lebih dari satu mahasiswa?

Mungkin bisa saja kita buat seperti ini:

char name[] = "Dian";
char address[] = "Mataram";
int age = 22;

char name2[] = "Bambang";
char address2[] = "Surabaya";
int age2 = 23;

char name3[] = "Bimo";
char address3[] = "Jakarta";
int age3 = 23;

Ugh! terlihat kurang bagus.

Cara terbaik adalah menyimpan data ini adalah menggunakan struct struct.

Cara Membuat Struct

Struct dapat kita buat dengan kata kunci struct kemudian diikuti dengan nama struct dan isinya.

Cara membuat struct

Contoh:

struct Mahasiswa
{
    char name[50];
    char address[50];
    int age;
};

Kita sudah tahu cara membuat struct, lalu bagaimana cara menggunakannya?

Cara Menggunakan Struct

Agar struct dapat digunakan, kita harus membuat variabel untuknya.

Contoh:

Buatlah program baru dengan nama contoh_struct.c kemudian isi dengan kode berikut.

#include <stdio.h>

// membuat struct
struct Mahasiswa {
    char *name;
    char *address;
    int age;
};

void main(){

    // menggunakan struct
    struct Mahasiswa mhs1, mhs2;

    // mengisi nilai ke struct
    mhs1.name = "Dian";
    mhs1.address = "Mataram";
    mhs1.age = 22;

    mhs2.name = "Bambang";
    mhs2.address = "Surabaya";
    mhs2.age = 23;

    // mencetak isi struct
    printf("## Mahasiswa 1 ##\n");
    printf("Nama: %s\n", mhs1.name);
    printf("Alamat: %s\n", mhs1.address);
    printf("Umur: %d\n", mhs1.age);

    printf("## Mahasiswa 2 ##\n");
    printf("Nama: %s\n", mhs2.name);
    printf("Alamat: %s\n", mhs2.address);
    printf("Umur: %d\n", mhs2.age);

}

Hasilnya:

Menggunakan Struct dalam program C

Menggunakan typedef pada Struct

Kata kunci typedef adalah kata kunci untuk mendefinisikan tipe data baru.

Kita bisa menggunakan kata kunci ini di depan struct untuk menyatakannya sebagai tipe data baru.

Contoh:

Tanpa typedef kita akan menggunakan struct seperti ini.

// membuat struct
struct Distance{
    int feet;
    float inch;
};

void main() {
    // menggunakan struct
    struct Distance d1, d2;
}

Nah, kalau menggunakan typedef akan menjadi seperti ini:

// membuat struct dengan typedef
typedef struct Distance{
    int feet;
    float inch;
} distances;

void main() {
    // menggunakan struct
    distances dist1, dist2, sum;
}

Struct Bersarang

Struct dapat dibuat bersarang (nested). Bersarang artinya ada struct di dalam struct.

Contoh:

struct complex
{
 int imag;
 float real;
};

struct number
{
   struct complex comp;
   int integers;
} num1, num2;

Lalu cara menggunanya akan seperti ini:

num1.integer = 12;
num1.comp.real = 44.12;
num2.comp.imag = 11;

Passing Struct ke dalam Fungsi

Struct dapat kita buat sebagai parameter untuk fungsi.

Contoh:

#include <stdio.h>
struct student
{
    char name[50];
    int age;
};

void main() {
    struct student s1;

    printf("Enter name: ");
    scanf("%[^\n]%*c", s1.name);

    printf("Enter age: ");
    scanf("%d", &s1.age);

    display(s1);   // passing structure as an argument
}

// membuat fungsi dengan struct sebagai parameter
void display(struct student s) {
  printf("\nDisplaying information\n");
  printf("Name: %s", s.name);
  printf("\nRoll: %d", s.age);
}

Hasilnya:

Struct sebagai parameter pada fungsi

Akhir Kata…

Kita sudah memperlajari dasar-dasr penggunaan Struct pada bahasa C. Selanjutnya silahkan berlatih dengan contoh program yang lain agar semakin paham.

Akhir kata…

Selamat belajar bahasa C.