Struct Bahasa C dan Penjelasannya
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.
{int x, y;}
// Sebuah deklarasi variabel seperti tipe data dasar
{int x, y;};
int main()
{struct Point p1;
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
struct Point
{int x, y;};
int main()
{
// Inisialisasi bernilai valid. Anggota x mendapatkan nilai 0 dan y mendapatkan nilai 1.
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.
- 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.
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;
- Bit Fields Bahasa C Beserta Penjelasannya
- Anggota Array Fleksibel Struct Pada Bahasa C
- Perbedaan Antara Struct dan Union pada Bahasa C
- Perbedaan Struct Bahasa C dan C++
- Anonimus Union dan Struct Bahasa C dan Penjelasannya
- Compound Literals Bahasa C Beserta Penjelasannya
- Pengurutan Struct Bahasa C Beserta Contoh Programnya
5 komentar untuk "Struct Bahasa C dan Penjelasannya"
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 -
Apa yang dimaksud dengan struct pada bahasa C?
BalasHapusStructure 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.
HapusBagaimana cara struct didefinisikan pada Bahasa C?
BalasHapusStruct bahasa C dapat didefinisikan sebagai suatu entitas tunggal yang menyimpan variabel dari tipe data yang berbeda secara logis yang berkaitan satu sama lain.
HapusSemua anggota data yang terdapat di dalam struct dapat diakses oleh suatu fungsi yang didefinisikan di luar struct pada Bahasa C.
Hapus