# Struktur Data Struktur data adalah grup dari elemen-elemen data yang dikelompokkan dengan sebuah nama. Elemen-elemen data ini disebut sebagai *member*, dapat mempunyai tipe-tipe berbeda dan panjang-panjang berbeda. Struktur data dideklarasikan dalam C++ menggunakan syntax berikut: ```cpp struct nama_tipe { tipe_member1 nama_member1; tipe_member2 nama_member2; tipe_member3 nama_member3; tipe_member4 nama_member4; ... } ``` Dimana `nama_tipe` adalah nama dari tipe struktur, `nama_object` dapat ditentukan sebagai indentifier valid untuk object dan object-object dapat mempunyai tipe struktur ini. Dalam kurung kurawal `{}`, terdapat sebuah daftar dari member-meber data, masing-masing dijelaskan dengan sebuah tipe dan identifier valid sebagai namanya. Sebagai contoh: ```cpp struct produk { int berat; double harga; }; product apel; product pisang, melon; ``` Kode di atas mendeklatasikan sebuah tipe struktur, disebuty `produk` dan didefinisikan dengan dua member: `berat` dan `harga`, masing-masing mempunyai tipe dasar berbeda. Deklarasi ini membuat sebuat tipe baru (`produk`) yang pada baris berikutnya digunakan untuk mendeklarasikan tiga object (variabel) dari tipe ini: `apel`, `pisang`, dan `melon`. Perhatikan setelah `produk` dideklarasikan, ia digunakan sperti tipe-tipe data biasanya. ## 3.1 Pointer ke Struktur Seperti tipe-tipe data lainnya, struktur dapat di-point oleh pointer dengan tipe dirinya sebndiri: ```cpp struct film_t { string judul; int tahun; }; film_t afilm; film_t * pfilm; ``` Disini `afilm` adlaah sebuah obejct dari tipe struktur `film_t`, dan `pfilm` adlah pointer yang merujuk ke object dari tipe struktur `film_t`. Maka, kode berikut juga valid: ```cpp pfilm = &afilm; ``` Nilai dari pointer `pfilm` akan ditugaskan dengan alamat dari object `afilm`.