Think Different Materi ASD (SISKOM)

Algoritma dan Struktur Data
Pointer Pada Struct

Definition — Structure
• Beberapa variabel (dapat berbeda tipe)
yang dikelompokkan menjadi satu dengan
sebuah nama baru

Syntax:
struct nama_struct {
tipe_data_1
nama_var_1;
tipe_data_2
nama_var_2;
tipe_data_3
nama_var_3;
……
};

3


struct
• Penting untuk implementasi ADT /
membuat tipe data baru
• E.g.,
struct motor {
float volts;
//voltage of the motor
float amps;
//amperage of the motor
int phases;
//# of phases of the motor
float rpm;
//rotational speed of motor
};
typedef struct motor motor;

struct
• E.g.,

t

f
o
e
m
a
N

pe
y
t
he

struct motor {
float volts;
float amps;
int phases;
float rpm;
};
typedef struct motor motor;


struct
• E.g.,
struct motor {
float volts;
Members of the
float amps;
struct
int phases;
float rpm;
};
typedef struct motor motor;

struct
• Mendefinisikan tipe data baru
• E.g.,
struct motor {
si
a
r
float volts;

a
kl
e
d
at
an
a
float amps;
g
s
n
da up de ja
a
p
r
a
k
s
a
int phases;

u
g
r
c
o
A
l
t
e
o
b
m
a
float rpm;
vari anggil
mem
};
typedef struct motor motor;

Menggunakan tipe data baru

motor p, q, r;
• Mendefinisikan tiga variable – p, q, dan r – masing
masing bertipe data motor

motor M[25];
• Mendeklarasikan array M berisi 25 data bertipe
motor

motor *m;
• Mendeklarasikan variabel pointer yang menyimpan
alamat slot memori yang berisi data bertipe motor

Mengakses anggota struct
• Deklarasi

nama_var_struct . nama_var_elemen;

motor p;
motor q[10];


• Maka
p.volts
— is the voltage
p.amps — is the amperage
p.phases
— is the number of phases
p.rpm
— is the rotational speed
q[i].volts
q[i].rpm

— is the voltage of the ith motor
— is the speed of the ith motor

10

• Sebuah kondisi dimana di dalam sebuah struct terdapat tipe data
berupa struct lagi.

11


• Contoh (Ubah ke C++)

12

• Sebuah array yang setiap data elemennya bertipe struct.
Umumnya dipakai untuk menyimpan object data yang terstruktur,
misal: data mahasiswa, karyawan, buku, barang, dsb.

13

14

Mengakses elemen struct
menggunakan pointer
• Deklarasi
motor *p;




i ()
a
k
ma

?

e
m
a
Maka
ap
g
n
Me
(*p).volts — is the voltage of the motor pointed
to by p
(*p).phases — is the number of phases of the
motor pointed to by p


Mengakses elemen struct
menggunakan pointer
• Notasi (*p).member kurang nyaman
dipakai
• Cara yang lebih singkat
– p->member, di mana p merupakan variabel

pointer

Contoh sebelumnya menjadi …
• Deklarasi
motor *p;

• Maka
— is the voltage of the motor pointed
to by p
p -> phases — is the number of phases of the
motor pointed to by p
p -> volts


contoh
struct motor {
float volts;
float amps;
};
typedef struct motor motor;
int main()
{
motor m1;
motor *pm1;
m1.volts = 100;
m1.amps = 110;
pm1 = &m1;
cout