160 likes | 343 Views
Pertemuan 2 Data Komposit Structure. Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Mahasiswa dapat menghasilkan program modular yang menggunakan structure of structure. Outline Materi.
E N D
Pertemuan 2Data Komposit Structure Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Mahasiswa dapat menghasilkan program modular yang menggunakan structure of structure.
Outline Materi • Deklarasi Structure • Akses data elemen struct • array of struct • Structure of structure • struct sebagai parameter fungsi • contoh program dengan struct
Definisi Structure • Elemen array : heterogen • Elemen struct disebut field • Akses elemen array : random melalui nama_struct.nama_field • Penempatan field dalam memory : berurutan, secara logikal dan fisikal • Jumlah dan tipe field menentukan jumlah memori
FIELD FILE/TABLE Matakuliah KodeMTK NamaMTK SKS T0026 Struktur Data 6 STRUCTURE/RECORD A0102 Pancasila 2 ME351 Kalkulus 4 Contoh Structure Hubungan antara file-structure-field:
Pendeklarasian Structure Syntax Pada C : struct <struct_name>{ <type> <elemen_name1>; <type> <elemen_name2>; - } <structure_variable>; Contoh (1) : struct Matakuliah{ char KodeMTK[6]; char NamaMTK[40] int SKS; }; Variabel X dg tipe struct Matakuliah didefinisikan : struct Matakuliah X; Contoh (2) : struct Matakuliah{ char KodeMTK[6]; char NamaMTK[40] int SKS; } X, Y; Contoh (3): struct { char KodeMTK[6]; char NamaMTK[40] int SKS; } X;
Deklarasi struct struct person { char name[10]; int age; }; Address person.name = a Address person.age = a + 10 Jumlah memory = sizeof (name) + sizeof (int) = 12
Addressing pada Struct • Address suatu field = base address + ofset (field) • Ofset (field) : jarak antara base address ke awal field
Operasi pada Struct Nama struct • Create • Retrive • Store struct person { char name[10]; int age; }; person p1, *p2; x = p1.age ; y = p2->age; p1.name = “Andi”; p2->name = “Ani”; Nama variabel
Akses Struct complex c1; complex *pc; pc = (complex*) malloc(sizeof(complex)); atau pc = &c1; printf (“…”, &c1.re, c1.re, &c1.im, c1.im); printf (“…”, &pc->re, pc->re, &pc->im, pc->im);
Passing Parameter(1) struct complex{ float re; float im; }; complex add (complex cc1, complex cc2) { complex z; z.re = cc1.re + cc2.re; z.im = cc1.im + cc2.im; return (z); }
Passing Parameter(2) void init (complex *px, float r, float i){ px->re = r; px->im = i; } void main() { complex c1, c2, c, *pc; init (&c1, 5., 7.); init (&c2, 10., 13.); c = add (c1, c2);
Array of struct (1) struct person{ char name[10]; int age; address addr; }; person p[80], *pp; Array p adalah array 1 dimensi. Sizeof(person) = 12 Address p[50].name dan p[50].age ? • struct address{ • char street[10]; • int number • };
Cara mengakses field dgn pointer Array of struct (2) pp = &p; //pointer to struct hrs dialokasikan (*pp).name pp->name pp++ //geser ke structure berikutnya
Struct of struct struct person{ char name[10]; int age; address addr; }; person p[80], *pp; struct address{ char street[10]; int number }; Cara akses field struct of struct : p[i].addr.number pp->addr.number