Algoritma dan Struktur Data Pointer Pada Struct Definition

  • Slides: 21
Download presentation
Algoritma dan Struktur Data Pointer Pada Struct

Algoritma dan Struktur Data Pointer Pada Struct

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

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

Definisi dan deklarasi Struct Syntax: struct nama_struct { tipe_data_1 nama_var_1; tipe_data_2 nama_var_2; tipe_data_3 nama_var_3;

Definisi dan deklarasi Struct 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 • 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;

struct pe y t he t f o e Nam struct motor { float

struct pe y t he t f o e Nam struct motor { float volts; float amps; int phases; float rpm; }; typedef struct motor; • E. g. ,

struct • E. g. , struct motor { float volts; Members of the float

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

struct • Mendefinisikan tipe data baru • E. g. , struct motor { si

struct • Mendefinisikan tipe data baru • E. g. , struct motor { si float volts; a r a kl e d n float amps; at a a g s a en a d d a p int phases; r p cuku or saj a g t A l o e b m float rpm; a vari anggil }; mem typedef struct motor;

Menggunakan tipe data baru motor p, q, r; • Mendefinisikan tiga variable – p,

Menggunakan tipe data baru motor p, q, r; • Mendefinisikan tiga variable – p, q, dan r – masing bertipe data motor M[25]; • Mendeklarasikan array M berisi 25 data bertipe motor *m; • Mendeklarasikan variabel pointer yang menyimpan alamat slot memori yang berisi data bertipe motor

Mengakses anggota struct • Deklarasi motor p; motor q[10]; nama_var_struct. nama_var_elemen; • Maka p.

Mengakses anggota struct • Deklarasi motor p; motor q[10]; nama_var_struct. nama_var_elemen; • Maka p. volts p. amps p. phases p. rpm — is the voltage — is the amperage — is the number of phases — is the rotational speed q[i]. volts q[i]. rpm — is the voltage of the ith motor — is the speed of the ith motor

Contoh (Ubah menjadi c++) 10

Contoh (Ubah menjadi c++) 10

Nested Struct • Sebuah kondisi dimana di dalam sebuah struct terdapat tipe data berupa

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

Nested Struct • Contoh (Ubah ke C++) 12

Nested Struct • Contoh (Ubah ke C++) 12

Array of Struct • Sebuah array yang setiap data elemennya bertipe struct. Umumnya dipakai

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

Array of Struct 14

Array of Struct 14

Mengakses elemen struct menggunakan pointer • Deklarasi motor *p; • Maka em m pa

Mengakses elemen struct menggunakan pointer • Deklarasi motor *p; • Maka em m pa ? ) ( i aka ga n e M (*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

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

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; int main()

contoh struct motor { float volts; float amps; }; typedef struct motor; int main() { motor m 1; motor *pm 1; m 1. volts = 100; m 1. amps = 110; pm 1 = &m 1; cout << “voltase motor m 1 : “ << m 1. volts; cout << “namps motor m 1 : “ << m 1. amps; cout << “nvoltase motor m 1 : “ << pm 1 ->volts; cout << “namps motor m 1 : “ << pm 1 ->amps; getch(); }

Hasil eksekusi program

Hasil eksekusi program

Operasi pada struct • Copy/assign struct motor p, q; p = q; • Get

Operasi pada struct • Copy/assign struct motor p, q; p = q; • Get address struct motor p; struct motor *s s = &p; • Access members p. volts; s -> amps;

Example ! l a g s le i s struct item { i h

Example ! l a g s le i s struct item { i h T ! s e char *s; Y struct item *next; } • • Sebuah item dapat berisi alamat item lain… … yang dapat menunjuk item lain … yang juga dapat menunjuk item yang lain lagi … etc. Dengan demikian membentuk rangkaian item!!!