๐ Daftar Isi
Pada artikel sebelumnya kita telah mehami dan mempraktikkan penggunaan tipe data dasar dan array dalam Bahasa Pemrograman C. Pada array, kita dapat menampung kumpulan data yang sejenis. Sebagai contoh, jika sebuah array kita deklarasikan bertipe integer, maka semua data yang ada di dalam array tersebut semuanya harus bertipe integer.
Untuk menampung sejumlah data yang memiliki tipe data yang berbeda, kita dapat menggunakan structure. Pada artikel kali ini, kita akan mencoba mehami dan mempraktikkan penggunaan structure dalam Bahasa Pemrograman C.
Structure (struktur) adalah kumpulan elemen-elemen data yang digabungkan menjadi satu kesatuan. Di dalam beberapa bahasa pemrograman, structure dikenal dengan nama record. Masing-masing elemen data tersebut dikenal juga dengan sebutan field. Elemen data tersebut dapat memiliki tipe data yang sama ataupun berbeda.
Mengapa kita membutuhkan struct? Misalnya kita ingin menyimpan data mahasiswa. Kita bisa saja melakukannya seperti ini:
char name[] = "Belajar";
char address[] = "Rembang";
int age = 22;
Lalu bagaimana apabila terdapat lebih dari satu mahasiswa? Mungkin bisa saja kita buat seperti ini:
char name[] = "Belajar";
char address[] = "Rembang";
int age = 22;
char name2[] = "Statistik";
char address2[] = "Pati";
int age2 = 20;
char name3[] = "www.belajarstatistik.com";
char address3[] = "Kudus";
int age3 = 21;
Untuk tujuan kemudahan dalam operasinya, elemen-elemen tersebut akan lebih baik bila digabungkan menjadi satu, yaitu dengan menggunakan structure. Dengan kata lain, structure merupakan bentuk struktur data yang dapat menyimpan variabel dengan satu nama.
Deklarasi Struktur
Pendeklarasian structure selalu diawali kata baku struct, diikuti nama structure dan deklarasi field-field yang membangun structure di antara pasangan tanda kurung kurawal โ { โ
Penggunaan struktur tanpa typedef
//membuat struct
struct distance
{
int feet;
float inch;
};
void main()
{
//menggunakan struct
struct distance d1, d2;
}
Contoh struktur tanpa typedef
#include <stdio.h>
struct mahasiswa
{
char *name;
char *address;
int age;
};
void main()
{
struct mahasiswa mhs;
//mengisi nilai ke struct
mhs.name = "Belajar";
mhs.address = "Statistik";
mhs.age = 20;
//mencetak isi struct
printf("Mahasiswa\n");
printf("Nama : %s\n", mhs.name);
printf("Alamat : %s\n", mhs.address);
printf("Umur : %d\n, mhs.age);
}
Menggunakan typedef pada struktur
typedef struct distance
{
int feet;
float inch;
} distances;
void main()
{
distances disrt1, dist2, sum;
}
Agar structure dapat digunakan, kita harus membuatkan variabel untuknya. Variabel structure dapat dideklarasikan bersamaan dengan deklarasi structure atau sebagai deklarasi terpisah seperti mendeklarasikan variabel dengan tipe data dasar.
Walaupun elemen-elemen di dalam structure berada dalam satu kesatuan,
masing-masing elemen tersebut tetap dapat diakses secara individual. Untuk mengakses elemen-elemen pada structure, gunakan operator titik (.). Berikut ini adalah contoh dalam mengakses elemen-elemen pada suatu struct.
#include<stdio.h>
struct data_tanggal
{
int tahun;
int bulan;
int tanggal;
}ultah;
int main()
{
//akses dan inisialisasi elemen-elemen struct tanggal
ultah.tanggal = 28; //ganti dengan tanggal lahir Anda
ultah.bulan = 7; //ganti dengan bulan lahir Anda
ultah.tahun = 1998; //ganti dengan tahun lahir Anda
printf ("tanggal = %d, bulan = %d, tahun = %d" ,ultah.tanggal, ultah.bulan, ultah.tahun);
return 0;
}
Berikut ini adalah contoh program menggunakan structure yaitu program yang menerapkan konsep struktur untuk buku yang terdiri dari elemen: judul, pengarang dan id.
#include <stdio.h>
#include <string.h>
struct Buku
{
char judul[50];
char pengarang[50];
int id;
};
int main( )
{
struct Buku Buku1;
struct Buku Buku2;
/* Spesifikasi Buku 1 */
strcpy( Buku1.judul, "C Programming");
strcpy( Buku1.pengarang, "Nuha Ali");
Buku1.id = 6495407;
/* Spesifikasi Buku 2 */
strcpy( Buku2.judul, "Telecom Billing");
strcpy( Buku2.pengarang, "Zara Ali");
Buku2.id = 6495700;
/* Cetak informasi Buku 1 */
printf( "Judul Buku 1 : %s\n", Buku1.judul);
printf( "Pengarang Buku 1 : %s\n", Buku1.pengarang);
printf( "Id Buku 1 : %d\n\n", Buku1.id);
/* Cetak informasi Buku 2 */
printf( "Judul Buku 2 : %s\n", Buku2.judul);
printf( "Pengarang Buku 2 : %s\n", Buku2.pengarang);
printf( "Id Buku 2 : %d\n", Buku2.id);
return 0;
}
Struktur Bersarang
Berikutnya adalah Struct Bersarang. Struct dapat dibuat bersarang (nested), yang artinya ada struct di dalam struct.
struct complex
{
int imag;
float real;
};
struct number
{
struct complex comp;
int integers;
} num1, num2;
Cara menggunakannya adalah seperti berikut:
num1.integers = 12;
num1.comp.real = 44.12;
num2.comp.imag = 11;
Struktur Sebagai Parameter Fungsi
Structure juga 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: ");
gets(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);
}
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Struktur dan Pointer, daftar lengkapnya adalah sebagai berikut.