Struct

Kalian bisa menyimpan beberapa nilai dalam satu variabel. Nilai-nilai tersebut bisa memiliki tipe data yang berbeda-beda. Variabel yang menyimpan beberapa nilai dan memiliki beberapa anggota dengan tipe data yang berbeda-beda bisa digabungkan dengan menggunakan tipe data struct. Syntax penulisan struct adalah seperti di bawah ini.

struct nama_struct{
    tipe_data member_1;
    tipe_data member_2;
    //....
    tipe_data member_n;
} nama_variabel;

nama_struct variabel;

Struct akan sangat berguna saat kalian sudah mempelajari function dan pointer. Struct juga akan sedikit mempermudah kalian mempelajari class dalam OOP. Contoh penggunaan struct dalam kode program bisa kalian lihat di bawah ini.

#include <iostream>

using namespace std;

struct data_siswa{
    string nama;
    string alamat;
    int id;
};

data_siswa siswa, siswa_lain;

int main(){
    cout << "Nama : ";cin >> siswa.nama;
    cout << "Alamat : ";cin >> siswa.alamat;
	
    cout << siswa.nama << " tinggal di " << siswa.alamat;
    return 0;
}
Contoh Program :
Nama : Geri
Alamat : Saribumi
Geri tinggal di Saribumi
Kalian tidak memerlukan typedef saat menggunakan struct karena deklarasi struct seperti pembuatan tipe data baru. Nama struct bisa digunakan sebagai nama tipe data dari variabel. Kode program di atas juga bisa ditulis dengan cara seperti di bawah ini.
#include <iostream>

using namespace std;

struct data_siswa{
    string nama;
    string alamat;
    int id;
}siswa, siswa_lain;

int main(){
    cout << "Nama : ";cin >> siswa.nama;
    cout << "Alamat : ";cin >> siswa.alamat;
	
    cout << siswa.nama << " tinggal di " << siswa.alamat;
    return 0;
}

Penulisan struct seperti contoh di atas lebih singkat, tapi hasilnya sama dengan contoh sebelumnya. Variabel di dalam struct disebut dengan anggota atau member. Saat digunakan, nama variabel struct dan membernya dipisahkan dengan tanda titik (.) seperti "siswa.nama", "siswa.alamat", dll.

Bit Field

Bit Field adalah struct atau union yang dibatasi hak akses bit dari tiap membernya. Kalian bisa menentukan jumlah bit yang digunakan setiap membernya. Sintaks penulisan bit field untuk struct adalah seperti di bawah ini.

struct nama_bitfield{

    tipe_data member_1:jumlah_bit;

    tipe_data member_2:jumlah_bit;

    //....

    tipe_data member_n;

} nama_variabel;

nama_bitfield nama_variabel;

kalau kalian menggunakan union, ganti saja "struct" dengan union.