teknik informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/struktur.pdf · 3 struktur...

53
Struktur Tim ALPRO Teknik Informatika

Upload: vutuyen

Post on 18-Aug-2019

241 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Struktur

Tim ALPRO

Teknik Informatika

Page 2: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Overview

• STRUCTURE

• TYPEDEF

• ARRAY OF STRUCTURE

• POINTER & STUCTURES

• STRUCTURE & FUNCTION

Page 3: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

3

Struktur

• Abstract Data Type

• Kumpulan variabel yang berelasi di bawah satunama besar /aggregate dan sering digunakanuntuk mendefinisikan object – orang, tempat / record dalam database / file.

• Dapat berisi berbagai macam variabel dengantipe data yang berbeda.

Page 4: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Cara Menggunakan Struktur

1. Definisi Struktur

2. Deklarasi/Inisialisasi instanStruktur

3. Mengakses Anggota dari instanStruktur

Page 5: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Mendefinisikan Struktur

• Proses awal dalam membuat struktur adalahmendefinisikannya menggunakan struct

• Keyword struct untuk mendefinisikan koleksivariabel dari bermacam type

• Dalam penulisan program, keyword structdiikuti oleh brace (“{ }”) dengan variabelindividual didalamnya (member)

struct hitung{

int x,y;

};

Page 6: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

6

Latihan Definisi Struktur

Lunchbox

Definisikan struktur dg nama“Lunchbox” yg mempunyaibagian/compartments:

• fruit compartment (jumlah)

• sandwich compartment (jenis)

• drink compartment (liter)

• Struktur adalah sebuah blueprint

• Contoh:

Page 7: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

7

Contoh Definisi Struktur

• Anggota yg ditentukan terdiri dari variabel yang berbeda dari struct

• Contoh:

struct LunchBox

{

int fruit;

float drink;

char sandwich[MAXN];

};Lunchbox

Page 8: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Deklarasi Variabel Struktur

• Ketika mendefinisikan struktur menggunakan struct, memory belum dialokasikan untuk struktur, sampaideklarasi variabel dibuat.

• Deklarasi variabel

TipeDataStruct NamaVariabel

• Contoh : struct hitung{

int x,y;

};

struct hitung Jumlah;

Variabel Jumlah dengan type data struct hitung

Page 9: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

9

Variabel Struktur

• Instan Struktur: urutan actual yg berdekatandalam penyimpanan di lokasi memori

struct LunchBox kyle;

struct LunchBox stan, cartman, kenny;

struct LunchBox kids[5];

Page 10: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

10

Inisialisasi variabel struct

struct LunchBox kyle = { 1, 370.0, “ham”};

Page 11: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

11

struct LunchBox kids[5] =

{

{1, 370.0, “ham” },

{2, 100.0, “roast”},

{0, 0.0, “muffin”},

{1, 300.0, “salad”},

{0, 0.0, “”}

};

0 1 2 3 4

Inisialisasi variabel struct

Page 12: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Mengakses Struktur Member

• Akses pada member memudahkan dalam inisialisasi nilai

• Prosedurnya adalah nama variable instan struktur diikutioleh operator dot ( . ) dan nama member

• Contoh :

struct hitung{

int x;

int y;

};

struct hitung Jumlah;

Jumlah.x=10;

Jumlah.y=20;

Page 13: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

13

Anggota variabel struct

struct LunchBox stan, kenny;

stan.drink = 0.0;

stan.fruit = 0;

strcpy(stan.sandwich,“fruit cake”);

kenny.fruit = 1;

strcpy(kenny.sandwich, “muffin”);

kenny.drink = 300.0;

Page 14: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

14

Anggota variabel struct

struct LunchBox kids[3];

int index = 1;

kids[0].drink = 370.0;

kids[0].fruit = 1;

strcpy(kids[2].sandwich, “ham”);

kids[index].fruit = 2;

0

1

2

Page 15: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

15

Input/Output struct

• Library functions printf() dan scanf() tidak memilikiformat conversion specifiers untuk struct

• Input/Output hanya untuk anggota saja

struct LunchBox cartman;

scanf(“%d”, &(cartman.fruit));

scanf(“%f”, &(cartman.drink));

scanf(“%s”, cartman.sandwich);

printf(“%d, %f\n”,

cartman.fruit, cartman.drink);

printf(“%s\n”, cartman.sandwich);

Page 16: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

16

Input/Output dr struct

struct LunchBox kids[3];

int i = 0;

for (i=0; i < 3; i++)

{

scanf(“%d %f %s”,

&(kids[i].fruit),&(kids[i].drink),

kids[i].sandwich);

}

for (i=0; i < 3; i++)

{

printf(“%d, %f, %s\n”,

kids[i].fruit, kids[i].drink,

kids[i].sandwich);

}

0

1

2

Page 17: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Catatan Struct

• Kesalahan Umum

struct hitung{

int x,y;

};

Semicolon disini

jangan lupa

Page 18: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

18

Catatan struct

• Inisialisasi vs. Assignment

struct StudentRec studA = {“Fermat”, 90};

struct StudentRec studA;

studA = {“Fermat”, 90};

Page 19: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

19

Catatan struct

• Var struct tidak dapat di bandingkan

• Kita hanya dapat membandingkan anggotanya saja

if (studA == studB)

{

printf(“Duplikasi data.\n”);

}

if (strcmp(studA.lastname, studB.lastname) == 0

&& (studA.Nilai == studB.Nilai) )

{

printf(“Duplikasi data.\n”);

}

Page 20: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

20

Catatan struct

struct StudentRec

{

char lastname[MAXLEN];

float Nilai;

} studA, studB, class[MAXN];

• Kita dapat mendefinisikan struct, dan mendeklarasikan instan utk struktur tsb

Instan

Page 21: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Typedef

• Statement typedef membuat identifer sama

dengan tipe yg ditentukan

• Dalam deklarasi variable dari sebuah structure, harus menyertakan keyword struct.

• Typedef merupakan alternative dalam deklarasivariable tanpa harus menyertakan struct

struct hitung{

int x,y;

};

struct hitung Jumlah;

struct hitung Kali;

struct hitung{

int x,y;

};

typedef struct hitung operasi;

operasi Jumlah;

operasi Kali;

Page 22: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Prosedur Penggunaan Typedef

• Letakkan typedef pada awal definisi structure

• Pada akhir definisi structure, letakkan nama alias untuk melengkapi pendefinisian menggunakantypedef

typedef struct hitung operasi

Definisi structure Nama aliastypedef

type data operasi

Page 23: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Array of Structure

• Proses pembuatan dan kerja array of structure prinsipnya sama dengan kerja array yang didalamnya terdapat tipe data seperti integer, character, float

• Proses pembuatan array of structure menentukanjumlah elemen array yang diletakkan setelahdefinisi structure

• Contoh : typedef struct pekerja{

int id;

char nama[20];

}emp;

emp data[2];

Page 24: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Contoh

typedef struct pekerja{

int id;

char nama[20];

}emp;

main(){

emp data[2];

strcpy(data[0].nama, “Maxidena”);

data[0].id = 0001;

strcpy(data[1].nama, “Rhyne”);

data[1].id = 0002;

int x;

for(x=0;x<3;x++){

printf(“%d %c”, data[x].id,data[x].nama);

}

}

Page 25: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Fungsi Operator Structure

• Setelah mendeklarasikan sebuah Structure, yang tidak kalahpentingnya adalah membuat fungsi operator (fungsi untukmengoperasikan struct).

• Fungsi operator bisa dikategorikan menjadi 4 macam:• Fungsi Constructor : untuk membentuk struct

• Fungsi Selector : untuk mendapatkan nilai elemen/nilai tertentu dari struct

• Fungsi Validator : untuk memvalidasi komponen struct

• Fungsi Manipulator : untuk melakukan operasi-operasi tambahan pada struct

• Contoh:time make_time(int j, int m, int d);

int get_minutes(time waktu);

int time_valid(time waktu);

time add_time(time waktu1, time waktu2);

Page 26: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Fungsi Operator Structure

void print_time(time waktu){

printf("%d:%d:%d\n",

waktu.j, waktu.m, waktu.d);

}

int time_valid(time waktu){

return ((waktu.j < 24) && waktu.j > 0) &&

(waktu.m < 60) && waktu.m > 0) &&

(waktu.d < 60) && waktu.d > 0))

}

time make_time(int j,int m,int d)

{

time waktu;

waktu.j = j;

waktu.m = m;

waktu.d = d;

if(time_valid(waktu)){

return waktu;

} else {

return make_time(0, 0, 0);

}

}

int time_to_seconds(time waktu){

return (waktu.j * 3600) +

(waktu.m * 60) + waktu.d;

}

int get_minutes(time waktu){

return waktu.m;

}

Page 27: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Structure & Functions

• Melewatkan sebuah struktur untukmenjadi parameter sebuah fungsi dapatdilakukan sama dengan pengirimanparameter berupa variabel biasa.

• Pengiriman dapat dilakukan baik secaranilai (pass by value) maupun secara acuan(pass by reference).

Page 28: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

28

Mengirim struct ke Function

• Seperti biasa, parameter formal di copy ke aktual parameter

void printRecord ( Student item )

{

printf("Nama: %s\n", item.lastname);

printf(“Nilai: %.1f\n\n", item.Nilai);

}

main()

{

Student studentA = {“Gauss”, 99.0};

printRecord(studentA);

}

Page 29: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

29

Function yg mengembalikansuatu struct

• “paket” yg berisi beberapa nilai

main()

{

Student studentA;

studentA = readRecord();

}

Student readRecord ( void )

{

Student newStudent;

printf("Masukan nama dan nilai ");

scanf("%s %f",

newStudent.lastname,&(newStudent.Nilai));

return newStudent;

} Version 1

Page 30: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

30

Function yg mengembalikan suatu struct

Student readRecord ( Student newStudent )

{

printf("Masukan nama dan nilai ");

scanf("%s %f",

newStudent.lastname,&(newStudent.Nilai));

return newStudent;

}

main()

{

Student studentA;

studentA = readRecord(studentA);

}

Version 2

• “paket” yg berisi beberapa nilai

Page 31: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Pointer & Structure

• Sama seperti fungsi pointer umumnya, penggunaan pointer pada structure digunakanuntuk mengakses alamat yang ada padastructure

• Pointer pdata menyimpan alamat dari jumlah

hitung jumlah={10,20,30};

pdata = &jumlah;

Page 32: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

32

int main()

{

Student studentA;

studentA = readRecord(studentA);

return 0;

}

Student readRecord ( Student newStudent )

{

printf("Masukan nama dan nilai: ");

scanf("%s %f", newStudent.lastname,

&(newStudent.Nilai) );

return newStudent;

}

Mengirim variabel struct

Mengirim seluruhelemen struct

Page 33: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

33

Bagaimanajika structbesar ?

Mengirim variabel struct

Student readRecord ( Student newStudent )

{

printf("Masukan nama dan nilai: ");

scanf("%s %f", newStudent.lastname,

&(newStudent.Nilai) );

return newStudent;

}

int main()

{

Student studentA;

studentA = readRecord(StudentA);

return 0;

}

Page 34: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

34

Mengirim pointer struct

Mengirim pointerke variabel struct !

lastname:

Nilai:

studentA:

studentPtr:

Page 35: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

35

void readRecord ( Student *studentPtr )

{

/* De-reference pointer disini. */

}

int main()

{

Student studentA;

readRecord( &(studentA) );

return 0;

}

Mengirim pointer struct

lastname:

Nilai:

studentA:

studentPtr:

lastname:

Page 36: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

36

utk de-reference pointer kestruct variable:

Style 1: Pakai operator *

void readRecord ( Student *studentPtr )

{

printf("Masukan nama dan nilai: ");

scanf("%s %f", (*studentPtr).lastname,

&((*studentPtr).Nilai) );}

Nilais4b.c

Mengirim pointer struct

studentPtr:

Nilai:

studentA:

lastname:

Page 37: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

37

utk de-reference pointer ke struct

variable:

Style 2: Pakai operator ->

void readRecord ( Student *studentPtr )

{

printf("Masukan nama dan nilai: ");

scanf("%s %f", studentPtr->lastname,

&(studentPtr->Nilai) );

}

Nilais4c.c

Mengirim pointer struct

studentPtr:

Nilai:

studentA:

lastname:

Page 38: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Contoh

typedef struct pekerja{

int id;

char nama[20];

}emp;

main(){

emp data={0,0};

emp *pdata; //create a pointer of structure type

pdata=&data; //assign address to pointer of structure type

strcpy(pdata->nama, “Maxidena”);

pdata->id = 0001;

printf(“%d %s”, pdata->id,pdata->nama)

}

Operator ->

digunakan untuk

mengakses member

dalam structure

Page 39: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

39

Structs Dalam Structs

• Struct dapat menjadi anggota struct lainnya

• Contoh:

– Student record berisi Nama, Nilai (ID Number, alamat dll)

– Daftar Class adalah kumpulan record student (jumlah students, subject code, dll)

– Departmental database adalah kumpulan daftarkelas (department name, jumlah subjects, dsb)

Page 40: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

40

Contoh: Student Record

lastname:

Nilai:

struct StudentRec

{

char lastname[MAXLEN];

float Nilai;

};

typedef struct StudentRec Student;

Page 41: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

41

class:

lastname:

Nilai:

lastname:

Nilai:

lastname:

Nilai:

Student class[MAXN];

struct StudentRec

{

char lastname[MAXLEN];

float Nilai;

};

typedef struct StudentRec Student;

Contoh: Class Record

Page 42: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

42

Informasi yg diperlukan utk mengeloladaftar kelas:• Jumlah students dalam kelas

(<= MAXN)• Subject code

class:

lastname:

Nilai:

lastname:

Nilai:

lastname:

Nilai:

Student class[MAXN];

Contoh: Class Record (lanj)

Page 43: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

43

Informasi yg diperlukan utkmengelola daftar kelas:• Jumlah students dalam kelas

(<= MAXN)• Subject code

char subjCode[MAXLEN];

int count;

Student class[MAXN];

count:

class:

lastname:

Nilai:

lastname:

Nilai:

lastname:

Nilai:

subjCode:

Contoh: Class Record (lanj)

Page 44: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

44

struct ClassRec

{

char subjCode[MAXLEN];

int count;

Student class[MAXN];

};

typedef struct ClassRec ClassList;

Contoh: Class Record (lanj)

count:

class:

lastname:

Nilai:

lastname:

Nilai:

lastname:

Nilai:

subjCode:“Encapsulates” data

yg diperlukan utk

mengelola daftar

kelas

Page 45: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

45

ClassList subject[MAXSUBJ];

Contoh: Department Database

subject:

Page 46: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

46

char deptName[MAXLEN];

int count;

ClassList subject[MAXSUBJ];

Contoh: Department Database (lanj)

subject:

deptName:

count:

Page 47: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

47

Contoh: Department Database (lanj)

subject:

deptName:

count:

struct DatabaseRec

{

char deptName[MAXLEN];

int count;

ClassList subject[MAXSUBJ];

};

typedef struct DatabaseRec Database;

“Encapsulates” data

yg diperlukan utk

mengelola daftar

kelas

Page 48: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

48

Mengakses anggota struct

subject:

deptName:

count:

Bagaiman memasukan nilai 97.5 disana?

Database

finalNilais;

Misal kita deklarasikan

var struct :

Page 49: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

49

Mengakses anggota struct

finalNilais

subject:

deptName:

count:

finalNilais:

Page 50: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

50

Mengakses anggota struct

finalNilais.subject[1]

subject:

deptName:

count:

finalNilais:

Page 51: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

51

Mengakses anggota struct

finalNilais.subject[1].class[0]

subject:

deptName:

count:

finalNilais:

Page 52: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

52

Mengakses anggota struct

finalNilais.subject[1].class[0].Nilai = 97.5;

subject:

deptName:

count:

finalNilais:

Page 53: Teknik Informatika - dinus.ac.iddinus.ac.id/repository/docs/ajar/Struktur.pdf · 3 Struktur •Abstract Data Type •Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate

Terimakasih