Lompat ke konten Lompat ke sidebar Lompat ke footer

Struct Bahasa C dan Penjelasannya

Struct pada Bahasa C merupakan sebuah keyword yang digunakan untuk menciptakan tipe data definisi user pada Bahasa C. Sebuah struct akan menciptakan tipe data yang dapat digunakan untuk mengelompokkan item dari berbagai tipe data yang berbeda menjadi sebuah tipe data tunggal.

Struct Bahasa C dan Penjelasannya
Struct Bahasa C

Sebelum memahami lebih dalam materi tentang Struct Bahasa C dan Penjelasannya, terlebih dahulu pelajari materi tentang: Enum Bahasa C dan Penjelasannya [klik], Pointer Ke Array Bahasa C dan Penjelasannya [klik], dan Perbedaan Antara const char *p, char * const p, dan const char * const p Bahasa C [klik].

Cara Membuat Struct
Keyword 'struct' merupakan keyword yang digunakan untuk menciptakan sebuah struct pada bahasa C.

struct address
{
char name[50];
char street[100];
char city[50];
char state[20];
int pin;
};


Cara Mendeklarasikan Variabel Struct
Variabel struct dapat dideklarasikan menggunakan struct deklarasi atau sebagai sebuah deklarasi terpisah seperti halnya tipe data dasar.

// Sebuah deklarasi variabel dengan deklarasi struct.
struct Point
{int x, y;} 
p1; // Variabel p1 dideklarasikan dengan 'Point'

// Sebuah deklarasi variabel seperti tipe data dasar
struct Point
{int x, y;};


int main()
{struct Point p1; 
/* Variabel p1 dideklarasikan seperti sebuah variabel normal. */}

Catatan: pada Bahasa C++, keyword struct adalah bersifat opsional sebelum dideklarasikan pada sebuah variabel, namun pada Bahasa C keyword struct adalah bersifat wajib untuk dideklarasikan pada struct.

Cara Inisialisasi Anggota Struct
Anggota Struct tidak dapat diinisialisasi dengan nilai deklarasinya. Contoh, program berikut akan mengalami kegagalan ketika dikompilasi menggunakan Bahasa C.

struct Point
{
// tidak dapat dilakukan inisialisasi anggota
// COMPILER ERROR: 
int x = 0; 

// tidak dapat dilakukan inisialisasi anggota
// COMPILER ERROR:

Alasan kenapa program akan mengalami error ketika dikompilasi, adalah ketika sebuah tipe data tertentu dideklarasikan, maka tidak ada nilai memori apapun yang akan dialokasikan untuk nilai tersebut. Anggota struct hanya dapat diinisialisasi dengan menggunakan tanda kurung '{}'. Contoh, inisialisasi struct bernilai valid.

struct Point
{int x, y;};

int main()
{
// Inisialisasi bernilai valid. Anggota x mendapatkan nilai 0 dan y mendapatkan nilai 1.
// Urutan deklarasi adalah sebagai berikut.
struct Point p1 = {0, 1};
}


Cara Mengakses Elemen Struct
Anggota struct dapat diakses dengan menggunakan operator dot (.).

Contoh:

#include<stdio.h>


struct Point

{int x, y;};


int main()

{

struct Point p1 = {0, 1};


// Mengakses anggota dari

// titik p1

p1.x = 20;


printf ("x = %d, y = %d",

p1.x, p1.y);


return 0;

}

Output:
x = 20, y = 1

Penunjukkan Inisialisasi Struct
Designated Initialization atau penunjukkan inisialisasi pada struct, memungkinkan anggota struct untuk dinisialisasi dalam urutan apapun. Fitur ini telah ditambahkan pada standar C99 dan versi terbarunya dari bahasa C.

Contoh:

#include<stdio.h>


struct Point

{int x, y, z;};


int main()

{


// Contoh inisialisasi

// penggunaan designated

// initialization pada 

// Bahasa C

struct Point p1 = {.y = 0, .z = 1, .x = 2};


struct Point p2 = {.x = 20};


printf ("x = %d, y = %d, z = %d\n", p1.x, p1.y, p1.z);


printf ("x = %d", p2.x);


return 0;

}

Output:
x = 2, y = 0, z = 1
x = 20

Fitur ini tidak tersedia pada Bahasa C++ dan hanya dapat bekerja pada Bahasa C.

Array Struct
Sama seperti halnya tipe data primitif pada bahasa C, dapat pula diciptakan tipe data struct dalam bentuk array atau yang dikenal dengan istilah array struct.

Contoh:

#include<stdio.h>


struct Point

{int x, y;};


int main()

{

// Membuat array

// struct Bahasa C

struct Point arr[10];


// Mengakses anggota array

arr[0].x = 10;

arr[0].y = 20;


printf("%d %d", arr[0].x, arr[0].y);


return 0;

}

Output:
10 20

Pointer Struct
Seperti halnya tipe data primitif yang terdapat pada Bahasa C, dapat pula diciptakan pointer yang mengarah ke sebuah struct. Jika ingin menciptakan pointer ke struct, maka dapat dilakukan akses ke dalam anggota struct dengan menggunakan operator panah (->).

Contoh:

#include<stdio.h>


struct Point

{int x, y;};


int main()

{

struct Point p1 = {1, 2};


// p2 adalah sebuah pointer ke

// struct p1

struct Point *p2 = &p1;


// Mengakses anggota struct

// menggunakan pointer struct.

printf("%d %d", p2->x, p2->y);


return 0;

}

Output:
1 2

Batasan Struct Bahasa C
Pada bahasa C, struct menyediakan sebuah method untuk melakukan pembungkusan secara bersamma dari berbagai tipe data yang berbeda. Sebuah struct sangat membantu menangani proses pengelompokkan suatu logika yang berkaitan dengan item data tertentu. Namun, struct pada bahasa C juga memiliki beberapa keterbatasan, yaitu:

  • Struct Bahasa C tidak dapat menggunakan operator seperti +,-, dan lain sebagainya pada variabel struct. Contoh, perhatikan kode program berikut:

Contoh:

struct number

{float x;};


int main()

{

struct number n1,n2,n3;


n1.x=4;

n2.x=3;

n3=n1+n2;


return 0;

}

Output:
prog.c: In function 'main':
prog.c:10:7: error:
invalid operands to binary + (have 'struct number' and 'struct number')
n3=n1+n2;


  • Tidak terdapat data hiding. Struct bahasa C tidak memperbolehkan penggunaan data hiding. Anggota struct pada bahasa C dapat diakses dengan menggunakan fungsi apapun, dimanapun pada scope dari struct itu sendiri.
  • Struct pada Bahasa C tidak memperbolehkan penggunaan fungsi dalam struct.
  • Struct Bahasa C tidak memiliki anggota tipe data static yang terdapat pada bagian tubuh struct.
  • Pada Bahasa Pemrograman C tidak didukung penggunaan akses modifier, sehingga akses modifier sudah pasti juga tidak bisa digunakan pada struct bahasa C.
  • Struct pada Bahasa C tidak memiliki konstruktor yang terdapat di dalam struct itu sendiri.

Artikel ini didedikasikan kepada: Ana Sofiana, Anggreani Eka Lestari, Cuwi Nurti Ningrum, David Aldi Ramadhani, dan Diska Choirunnisa.

5 komentar untuk "Struct Bahasa C dan Penjelasannya"

  1. Apa yang dimaksud dengan struct pada bahasa C?

    BalasHapus
    Balasan
    1. Structure atau struct pada bahasa C merupakan cara untuk mengelompokkan beberapa variabel yang saling berkaitan ke dalam suatu lokasi atau tempat yang sama, dimana setiap variabel dalam struktur tersebut dikenal sebagai anggota struktur atau struct.

      Hapus
  2. Bagaimana cara struct didefinisikan pada Bahasa C?

    BalasHapus
    Balasan
    1. Struct bahasa C dapat didefinisikan sebagai suatu entitas tunggal yang menyimpan variabel dari tipe data yang berbeda secara logis yang berkaitan satu sama lain.

      Hapus
    2. Semua anggota data yang terdapat di dalam struct dapat diakses oleh suatu fungsi yang didefinisikan di luar struct pada Bahasa C.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -