DAFTAR LABEL POPULER PENELITIAN.ID
DAFTAR LABEL POPULER PENELITIAN.ID
PENELITIAN.ID
DAFTAR ARSIP POSTING PENELITIAN.ID
DAFTAR ARSIP POSTING PENELITIAN.ID
Struct Bahasa C dan Penjelasannya
- Dapatkan link
- Aplikasi Lainnya
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;
};
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. 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.
- Bit Fields Bahasa C Beserta Penjelasannya [klik]
- Anggota Array Fleksibel Struct Pada Bahasa C [klik]
- Perbedaan Antara Struct dan Union pada Bahasa C [klik]
- Perbedaan Struct Bahasa C dan C++ [klik]
- Anonimus Union dan Struct Bahasa C dan Penjelasannya [klik]
- Compound Literals Bahasa C Beserta Penjelasannya [klik]
- Pengurutan Struct Bahasa C Beserta Contoh Programnya [klik]
- Dapatkan link
- Aplikasi Lainnya
Komentar
Posting Komentar
Hubungi admin melalui Wa : +62-896-2514-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 ~
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