Structure adalah tipe data yang digunakan untuk menyimpan data dengan berbagai tipe data lainnya
Komponen structure disebut sebagai member/field/element, sifatnya heterogen (karena dapat menyimpan berbagai tipe data) dan dalam bahasa pemograman lain structure disebut sebagai record
Syntax :
struct nama_structure {
TipeData_Nama_field1;
TipeData_Nama_field2;
....
};
Cara mengakses structure
struct identitasMahasiswa
{
char nim [10];
char nama [100];
float gpa;
};
int main ()
{
struct identitasMahasiswa budi;
float gpaInput;
scanf("%[^\n]", &budi.nama); /*scan nama si budi kemudian disimpan di structure identitas_mahasiswa*/
scanf("%s", &budi.nim); //scan nim si budi lalu disimpan di structure identitas_mahasiswa
scanf("%f", &gpaInput); //scan gpa
budi.gpa = gpaInput; // gpa disimpan di structure identitas_mahasiswa
printf("%s %s %.2f",budi.nama,budi.nim,budi.gpa); //lalu di print
return 0;
}
Nah structure identitas_mahasiswa yang dicontohkan termasuk Nested Structure yaitu Structure yang menyimpan beberapa tipe data yang berbeda misalkan dalam satu struct menyimpan data berupa integer /int , char , float.
Typedef : alias atau nama lain
Digunakan untuk mempersingkat nama dalam structure
misalkan
typedef struct MahasiswaBinus
{
char nama[100];
int nim;
float gpa;
}mhs;
mhs adalah nama lain dari struct MahasiswaBinus dan fungsinya untuk tipe data baru
untuk menentukan variabel dari structure gunakan :
mhs budi, cici;
Bit Field : sebuah struct yang elemen atau anggotanya menetapkan jumlah bit tertentu
Syntax :
nama_structure{
type field1: jumlah_bit;
type field2: jumlah_bit;
...
};
Type : hanya bisa menggunakan tipe data unsigned int, signed int, atau int
Union : digunakan untuk memory-join , lokasi memori dapat ditetapkan dengan tipe data yang berbeda dan kapasitas memori yang digunakan adalah kapasitas terbesar yang digunakan oleh elemen atau anggota yang ada di Union tersebut
Syntax :
union nama_union{
typedata1 nama_variable1;
typedata2 nama_variable2;
...
}nama_variabel_union;
Enumeration : tipe data yang jumlah datanya udah ditentuin
Syntax :
enum tipe_data {
const1 , const2 , const3 , ... ,const_n
}nama_variabel;
Static Keyword : bisa digunakan sebagai tipe variabel atau mengembalikan suatu fungsi
biasanya dialokasikan pada saat program berjalan dan tidak di alokasikan pada akhir program
Default value = 0
Ruang lingkupnya hanya di dalam variabel itu didefinisikan
syntax :
static type nama_variabel ;
contoh
static int input;
Memory Allocation : menggunakan beberapa ruang memory (RAM) yang dikelola oleh OS (Operating System) untuk digunakan oleh program
Memory de-allocation : melepas beberapa ruang memory (RAM) ke OS (Operating System)
Memory Allocation sebagai penyimpanan data :
A. Statis
1. Bisa diberi nama variabelnya
2. Dialokasikan saat program di compile
3. Disimpan di local memory
4. Tidak berubah saat program dijalankan
5. Tidak dialokasikan saat program berakhir
B. Dinamis
1. Dapat diberi nama
2. Dialokasikan saan di-run
3. Disimpan di heap memory
4. Dapat dialokasikan kapan saja
Tidak ada komentar:
Posting Komentar