--> Skip to main content

Tipe Data Struct (Struktur) dalam Bahasa C


Tutorial Bahasa C kali ini akan membahas tentang data struct (struktur) yang ditentukan pengguna dalam C / C ++.

Jika pada array kita dapat menampung kumpulan data yang sejenis, misal : kalau data integer maka harus data integer semua, kalau data double maka harus data double semua. Maka berbeda halnya dengan struct dimana kita dapat menampung sejumlah data yang memiliki tipe data yang berbeda.

Jadi dengan kata lain dapat kita katakan bahwa struct mengakomodir kekurangan array dalam hal penampungan data.

Fokus dari pembelajaran struct kali ini adalah agar kita :
  • Dapat memahami atau menyebutkan pengertian dari struct
  • Dapat mendeklarasikan struct
  • Dapat mengakses elemen-elemen struct
Disamping itu bagian diakhir tutorial ini, kita akan menemukan contoh program struct sederhana.

Pengertian Struct


Struktur adalah merupakan tipe data yang dapat didefinisikan sendiri isinya di mana merupakan gabungan beberapa tempat penampung (variabel) data yang dapat berbeda tipe datanya.

Tujuan Struct


Struktur bermanfaat untuk mengelompokkan sejumlah data dengan tipe yang berlainan.

Cara Deklarasi Struct


Kata kunci ‘struct’ digunakan untuk membuat struktur :
struct nama_stuktur
{
    tipe data1; //elemen_1
    tipe data2; //elemen_2
    tipe data3; //elemen_3
};

Berikut ini adalah contohnya :
struct mahasiswa 
{ 
   char nama[50]; 
   char alamat[100]; 
   int  nim; 
};

Struktur di atas bernama mahasiswa, yang tersusun atas 3 unit penyusunnya yaitu nama, alamat, dan nim (no induk mahasiswa).

Bagaimana cara mendeklarasikan variabel struktur?


Variabel struktur dapat dideklarasikan dengan deklarasi struktur atau sebagai deklarasi terpisah seperti tipe dasar.

Berikut ini adalah contohnya :
struct orang
{
 char nama[31];
 int berat;
 int tinggi;
};
struct orang var;


atau dapat ditulis juga seperti berikut ini :
struct orang
{
 char nama[31];
 int berat;
 int tinggi;
} var;

Ataupun kita dapat mendeklarasikan variabel struktur dalam fungsi main seperti :
struct orang
{
 char nama[31];
 int berat;
 int tinggi;
};

int main() 
{ 
   struct orang var;  
}


Menginisialisai nilai elemen struktur


Elemen-elemen pada Struct tidak dapat diinisialisasi bersamaan dengan deklarasi. Misalnya program C berikut gagal dalam kompilasi.
struct data_tanggal
{
 int tahun;   // COMPILER ERROR:  cannot initialize members here 
 int bulan;   // COMPILER ERROR:  cannot initialize members here 
 int tanggal; // COMPILER ERROR:  cannot initialize members here 
};

Alasan untuk kesalahan di atas adalah sederhana, ketika datatype dideklarasikan, tidak ada memori yang dialokasikan untuk itu. Memori hanya dialokasikan ketika variabel dibuat.

Anggota struktur dapat diinisialisasi dengan menggunakan kurung kurawal ‘{}’. Berikut inia adalah contoh inisialisasi yang valid.
struct data_tanggal
{
 int tahun;
 int bulan;
 int tanggal;
} today = {28, 7, 1998};

Atau dapat ditulis dengan model berikut :
struct data_tanggal
{
 int tahun;
 int bulan;
 int tanggal;
}; 
struct data_tanggal today = {28, 7, 1998}; 

Ataupun kita dapat menginisialiasinya nilai-nilai elemenya dalam fungsi main seperti contoh berikut ini:
struct data_tanggal
{
 int tahun;
 int bulan;
 int tanggal;
}; 
  
int main() 
{
  
   // A valid initialization. 
   struct data_tanggal today = {28, 7, 1998}; 
   
   return 0; 
}


Bagaimana cara mengakses elemen struktur?


Untuk mengakses elemen-elemen pada Struct digunakan 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() 
{
  
   ultah.tanggal = 28; // akses elemen tanggal
   ultah.bulan = 7;   // akses elemen bulan
   ultah.tahun = 1998; // akses elemen tahun
   
   printf ("tanggal = %d, bulan = %d, tahun = %d" 
           ,ultah.tanggal, ultah.bulan, ultah.tahun); 
   return 0; 
}

Outputnya adalah :
tanggal = 27, bulan = 8, tahun = 1998



Contoh Program menggunakan Struct


Berikut ini adalah contoh program yang menerapakn 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 1 */
   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;
}

Output program di atas adalah :
Judul Buku 1  : C Programming
Pengarang Buku 1  : Nuha Ali
Id Buku 1 : 6495407

Judul Buku 2  : Telecom Billing
Pengarang Buku 2  : Zara Ali
Id Buku 2 : 6495700
Comment Policy: Silahkan tuliskan komentar Anda yang sesuai dengan topik postingan halaman ini. Komentar yang berisi tautan tidak akan ditampilkan sebelum disetujui.
Buka Komentar
Tutup Komentar