Struct
Definisi
Struct
Definisi
Struktur (struct) sendiri adalah kumpulan dari variabel yang dinyatakan dengan
sebuah nama , dengan sifat setiap variabel dapat memiliki tipe yang berlainan.
Struct digunakan untuk mengelompokkan sejumlah data yang mempunyai tipe dan
ukuran yang berbeda.
Dalam
pemrograman C++, jika kita membuat suatu program yang memerlukan berbagai tipe
data yang akan digunakan. Tentunya dengan nama variable yang banyak pula. Dalam
program yang sederhana, jika kita manggunakan sedikit variable tentu tidak jadi
masalah. Akan tetapi jika kita akan membuat sebuah program yang lebih kompleks,
dengan berbagai macam nama dan tipe variable dalam pendeklarasianya. Dengan
struct, kita bisa mengelompokkan berbagai nama dan tipe variable tersebut
sesuai dengan kelompoknya. Hal ini tentunya bisa berguna untuk memudahkan dalam
mengelompokkan sebuah variable. Sebagai contoh umum, ada terdapat berbagai nama
variable : nama, npm, alamat, dll. Variabel – variable tersebut dapat kita
kelompokkan menjadi satu dengan nama data_mahasiswa. Kemudian jika terdapat
variable mata_kuliah, nilai, sks, kelas, dll dapat kita kelompokkan menjadi
satu dengan nama krs. Itulah sebagian gambaran umum tentang struct.
Dalam
mendeklarasikan struct, ada beberapa cara penulisan yang biasa digunakan.
Pertama
:
struct
nama_struct {
tipe_data_1
nama_var_1;
tipe_data_2
nama_var_2;
tipe_data_3
nama_var_3;
……
};
Yang
kedua adalah dengan deklarasi menggunakan typedef.
typedef
struct {
tipe_data_1
nama_var_1;
..
.
tipe_data_n
nama_var_n;
}
nama_struct;
Kemudian
untuk mendeklarasikan sebuah variable dengan tipe data struct yang telah dibuat
sebelumnya adalah :
struct
tipe_struct nama_variabel;
Jika
pendeklarasian struct sebelumnya menggunakan typedef, maka untuk
mendeklarasikan sebuah variable dengan tipe data struct adalah :
tipe_struct
nama_variabel;
Dan
untuk mengakses sebuah struct adalah dengan menggunakan operator titik (.) nama_var_struct
. nama_var_elemen;
Nested Struct
Di
dalam sebuah struct dapat dimungkinkan terdapat sebuah struct lagi. Jadi hal
ini dapat diartikan struct di dalam struct. Hampir mirip nested loop, yaitu for
di dalam for.
POINTER
Pengertian
Pointer
Pointer
(variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu
variabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya variabel
lain) di dalam memori. Contoh, jika sebuah variabel berisi alamat dari variabel
lain, variabel pertama dikatakan menunjuk ke variabel kedua.
Operator
Pointer :
Ada
2 operator pointer yang dikenal secara luas, yaitu “operator &” dan
“operator *”.
1.
Operator &
Operator
& merupakan operator alamat. Pada saat pendeklarasian variable, user tidak
diharuskan menentukan lokasi sesungguhnya pada memory, hal ini akan dilakukan
secara otomatis oleh kompiler dan operating sysem pada saat run-time. Jika
ingin mengetahui dimana suatu variable akan disimpan, dapat dilakukan dengan
memberikan tanda ampersand (&) didepan variable , yang berarti
"address of".
Contoh
:
ted
= &andy;
Penulisan
tersebut berarti akan memberikan variable ted alamat dari variable andy. Karena
variabel andy diberi awalan karakter ampersand (&), maka yang menjadi pokok
disini adalah alamat dalam memory, bukan isi variable. Misalkan andy diletakkan
pada alamat 1776 kemudian dituliskan instruksi sbb :
andy
= 25;
fred
= andy;
ted
= &andy;
2.
Operator *
Operator
* merupakan operator reference. Dengan menggunakan pointer, kita dapat
mengakses nilai yang tersimpan secara langsung dengan memberikan awalan
operator asterisk (*) pada identifier pointer, yang berarti "value pointed
by".
Contoh :
beth
= *ted;
(dapat
dikatakan:"beth sama dengan nilai yang ditunjuk oleh ted") beth = 25,
karena ted dialamat 1776, dan nilai yang berada pada alamat 1776 adalah 25.
Ekspresi
dibawah ini semuanya benar, perhatikan :
andy
= 25;
&andy
= 1776;
ted
= 1776;
*ted
= 25;
Ekspresi
pertama merupakan assignation bahwa andy = 25;. Kedua, menggunakan operator
alamat (address/derefence operator (&)), sehingga akan mengembalikan alamat
dari variabel andy. Ketiga bernilai benar karena assignation untuk ted adalah
ted = &andy;. Keempat menggunakan reference operator (*) yang berarti nilai
yang ada pada alamat yang ditunjuk oleh ted, yaitu 25. Maka ekspresi dibawah
ini pun akan bernilai benar :
*ted
= andy;
Deklarasi
Pointer
Seperti halnya
variabel lain, variabel pointer juga harus dideklarasikan terlebih dahulu
sebelum digunakan. Bentuk umum deklarasi pointer adalah : Dimana Tipe_data
merupakan tipe dari data yang ditunjuk, bukan tipe dari pointer-nya