Belajar Pemrograman C #13: Mengenal Tipe Data Struct
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.
Biar tidak membuat banyak variabel seperti ini, maka kita bisa gunakan struct.
Cara Membuat Struct
Struct dapat kita buat dengan kata kunci struct
kemudian diikuti dengan nama struct dan isinya.
Contoh:
struct Mahasiswa
{
char *name;
char *address;
int age;
};
Catatan: kita menggunakan pointer
*
untuk data string
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 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:
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.