Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Structures Containing Arrays This type of structure can be declared in C. In other word, each item in array is a structure itself. Example: struct tarikh.

Similar presentations


Presentation on theme: "1 Structures Containing Arrays This type of structure can be declared in C. In other word, each item in array is a structure itself. Example: struct tarikh."— Presentation transcript:

1 1 Structures Containing Arrays This type of structure can be declared in C. In other word, each item in array is a structure itself. Example: struct tarikh cuti[3]; Allocation for 3 dates

2 2 Structures Containing Arrays ??? hari bulan tahun tarikhLahir ??? hari bulan tahun ??? hari bulan tahun ??? hari bulan tahun ??? cuti struct tarikh tarikhLahir; struct tarikh cuti[3];

3 3 Structures Containing Arrays ??? hari bulan tahun ??? hari bulan tahun ??? hari bulan tahun ??? cuti struct tarikh cuti[3]; cuti[0].hari = 1; cuti[0].bulan = 1; cuti[0].tahun = 2004; cuti[1].hari = 1; cuti[1].bulan = 6; cuti[1].tahun = 2004; scanf("%d%d%d", &(cuti[2].hari), &(cuti[2].bulan), &(cuti[2].tahun)); [0] [1] [2]

4 4 Structures Containing Arrays 1 hari bulan tahun 1 2004 ??? hari bulan tahun ??? hari bulan tahun ??? cuti [0] [1] [2] struct tarikh cuti[3]; cuti[0].hari = 1; cuti[0].bulan = 1; cuti[0].tahun = 2004; cuti[1].hari = 1; cuti[1].bulan = 6; cuti[1].tahun = 2004; scanf("%d%d%d", &(cuti[2].hari), &(cuti[2].bulan), &(cuti[2].tahun));

5 5 Structures Containing Arrays 1 hari bulan tahun 1 2004 1 hari bulan tahun 6 2004 ??? hari bulan tahun ??? cuti [0] [1] [2] struct tarikh cuti[3]; cuti[0].hari = 1; cuti[0].bulan = 1; cuti[0].tahun = 2004; cuti[1].hari = 1; cuti[1].bulan = 6; cuti[1].tahun = 2004; scanf("%d%d%d", &(cuti[2].hari), &(cuti[2].bulan), &(cuti[2].tahun));

6 6 Structures Containing Arrays 1 hari bulan tahun 1 2004 1 hari bulan tahun 6 2004 20 hari bulan tahun 3 2004 cuti [0] [1] [2] struct tarikh cuti[3]; cuti[0].hari = 1; cuti[0].bulan = 1; cuti[0].tahun = 2004; cuti[1].hari = 1; cuti[1].bulan = 6; cuti[1].tahun = 2004; scanf("%d%d%d", &(cuti[2].hari), &(cuti[2].bulan), &(cuti[2].tahun)); 20 3 2004 _

7 7 Structures Containing An Item of structure This type of structure is more complex. Example: struct cuti { char nama[15]; struct tarikh trkh; }; Item of trkh is an item of structure

8 8 Example: struct cuti { char nama[15]; struct tarikh trkh; }; struct cuti cuti_am; strcpy(cuti_am.nama, "Tahun Baru"); cuti_am.trkh.hari = 1; cuti_am.trkh.bulan = 1; cuti_am.trkh.tahun = 2004; ??????????????? nama cuti_am ??? hari bulan tahun ??? trkh

9 9 Example: struct cuti { char nama[15]; struct tarikh trkh; }; struct cuti cuti_am; strcpy(cuti_am.nama, "Tahun Baru"); cuti_am.trkh.hari = 1; cuti_am.trkh.bulan = 1; cuti_am.trkh.tahun = 2004; 'T''a''h''u''n'' 'B''a''r''u''\0'???? nama cuti_am ??? hari bulan tahun ??? trkh

10 10 Example: struct cuti { char nama[15]; struct tarikh trkh; }; struct cuti cuti_am; strcpy(cuti_am.nama, "Tahun Baru"); cuti_am.trkh.hari = 1; cuti_am.trkh.bulan = 1; cuti_am.trkh.tahun = 2004; 'T''a''h''u''n'' 'B''a''r''u''\0'???? nama cuti_am 1 hari bulan tahun 1 2004 trkh

11 11 Example: struct cuti { char nama[15]; struct tarikh trkh; }; struct cuti cuti_am; strcpy(cuti_am.nama, "Tahun Baru"); scanf("%d%d%d", &(cuti_am.trkh.hari), &(cuti_am.trkh.bulan), &(cuti_am.trkh.tahun)); ??????????????? nama cuti_am ??? hari bulan tahun ??? trkh

12 12 Example: struct cuti { char nama[15]; struct tarikh trkh; }; 'T''a''h''u''n'' 'B''a''r''u''\0'???? nama cuti_am ??? hari bulan tahun ??? trkh struct cuti cuti_am; strcpy(cuti_am.nama, "Tahun Baru"); scanf("%d%d%d", &(cuti_am.trkh.hari), &(cuti_am.trkh.bulan), &(cuti_am.trkh.tahun));

13 13 Contoh: struct cuti { char nama[15]; struct tarikh trkh; }; struct cuti cuti_am; strcpy(cuti_am.nama, "Tahun Baru"); scanf("%d%d%d", &(cuti_am.trkh.hari), &(cuti_am.trkh.bulan), &(cuti_am.trkh.tahun)); 1 1 2004 _ 'T''a''h''u''n'' 'B''a''r''u''\0'???? nama cuti_am 1 hari bulan tahun 1 2004 trkh

14 14 Bear in mind!!! The item of structure cannot be the type of that structure Example : struct cuti { char nama[15]; struct cuti cutilain; }; ERROR!

15 15 Structure and function The structure can also be used with function.

16 16 int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama); } int sama(struct tarikh t1, struct tarikh t2) { if (t1.hari == t2.hari && t1.bulan == t2.bulan && t1.tahun == t2.tahun) return 1; else return 0; } 'T''a''h''u''n'' 'B''a''r''u''\0'???? nama 1 haribulantahun trkh 20041 hari_cuti ??? haribulantahun ??? tkh

17 17 int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama); } int sama(struct tarikh t1, struct tarikh t2) { if (t1.hari == t2.hari && t1.bulan == t2.bulan && t1.tahun == t2.tahun) return 1; else return 0; } 'T''a''h''u''n'' 'B''a''r''u''\0'???? nama 1 haribulantahun trkh 20041 hari_cuti 1 haribulantahun 20043 tkh Contoh: 1 3 2004 _

18 18 int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama); } int sama(struct tarikh t1, struct tarikh t2) { if (t1.hari == t2.hari && t1.bulan == t2.bulan && t1.tahun == t2.tahun) return 1; else return 0; } 'T''a''h''u''n'' 'B''a''r''u''\0'???? nama 1 haribulantahun trkh 20041 hari_cuti 1 haribulantahun 20043 tkh Contoh: 1 3 2004 _

19 19 int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama); } int sama(struct tarikh t1, struct tarikh t2) { if (t1.hari == t2.hari && t1.bulan == t2.bulan && t1.tahun == t2.tahun) return 1; else return 0; } 'T''a''h''u''n'' 'B''a''r''u''\0'???? nama 1 haribulantahun trkh 20041 hari_cuti 1 haribulantahun 20043 tkh Contoh: 1 3 2004 _

20 20 int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama); } int sama(struct tarikh t1, struct tarikh t2) { if (t1.hari == t2.hari && t1.bulan == t2.bulan && t1.tahun == t2.tahun) return 1; else return 0; } 'T''a''h''u''n'' 'B''a''r''u''\0'???? nama 1 haribulantahun trkh 20041 hari_cuti 1 haribulantahun 20043 tkh 1 1 2004 _ 1 haribulantahun 20041 t1 1 haribulantahun 20043 t2

21 21 int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama); } int sama(struct tarikh t1, struct tarikh t2) { if (t1.hari == t2.hari && t1.bulan == t2.bulan && t1.tahun == t2.tahun) return 1; else return 0; } 1 1 2004 _ 1 haribulantahun 20041 t1 1 haribulantahun 20043 t2

22 22 int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama); } int sama(struct tarikh t1, struct tarikh t2) { if (t1.hari == t2.hari && t1.bulan == t2.bulan && t1.tahun == t2.tahun) return 1; else return 0; } 1 1 2004 _ 1 haribulantahun 20041 t1 1 haribulantahun 20043 t2

23 23 int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama); } int sama(struct tarikh t1, struct tarikh t2) { if (t1.hari == t2.hari && t1.bulan == t2.bulan && t1.tahun == t2.tahun) return 1; else return 0; } 1 1 2004 _ 1 haribulantahun 20041 t1 1 haribulantahun 20043 t2

24 24 int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama); } int sama(struct tarikh t1, struct tarikh t2) { if (t1.hari == t2.hari && t1.bulan == t2.bulan && t1.tahun == t2.tahun) return 1; else return 0; } 0 'T''a''h''u''n'' 'B''a''r''u''\0'???? nama 1 haribulantahun trkh 20041 hari_cuti 1 haribulantahun 20043 tkh

25 25 int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama); } int sama(struct tarikh t1, struct tarikh t2) { if (t1.hari == t2.hari && t1.bulan == t2.bulan && t1.tahun == t2.tahun) return 1; else return 0; } 'T''a''h''u''n'' 'B''a''r''u''\0'???? nama 1 haribulantahun trkh 20041 hari_cuti 1 haribulantahun 20043 tkh 1 3 2004 _

26 26 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 8 haribulantahun tkh1 311957??? haribulantahun tkh2 ??? 2 haribulantahun 12000 3 haribulantahun sen 22000

27 27 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 8 haribulantahun tkh1 311957??? haribulantahun tkh2 ??? 2 haribulantahun 12000 3 haribulantahun sen 22000

28 28 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 8 haribulantahun tkh1 311957??? haribulantahun tkh2 ??? 2 haribulantahun 12000 3 haribulantahun sen 22000 ??? haribulantahun t1 ??? haribulantahun t2 ??? s_tbil ???

29 29 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 8 haribulantahun tkh1 311957??? haribulantahun tkh2 ??? 2 haribulantahun 12000 3 haribulantahun sen 22000 8 haribulantahun t1 311957??? haribulantahun t2 ??? 2 s_tbil

30 30 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 2 haribulantahun 12000 3 haribulantahun sen 22000 8 haribulantahun t1 311957??? haribulantahun t2 ??? 2 s_tbil i ???

31 31 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 2 haribulantahun 12000 3 haribulantahun sen 22000 8 haribulantahun t1 3119578 haribulantahun t2 311957 2 s_tbil i ???

32 32 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 2 haribulantahun 12000 3 haribulantahun sen 22000 8 haribulantahun t1 3119578 haribulantahun t2 311957 2 s_tbil i ???

33 33 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 2 haribulantahun 12000 3 haribulantahun sen 22000 8 haribulantahun t1 3119578 haribulantahun t2 311957 2 s_tbil i 0

34 34 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 2 haribulantahun 12000 3 haribulantahun sen 22000 8 haribulantahun t1 3119578 haribulantahun t2 311957 2 s_tbil i 0

35 35 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 8 haribulantahun 311957 3 haribulantahun sen 22000 8 haribulantahun t1 3119578 haribulantahun t2 311957 2 s_tbil i 0

36 36 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 8 haribulantahun 311957 3 haribulantahun sen 22000 8 haribulantahun t1 3119578 haribulantahun t2 311957 2 s_tbil i 1

37 37 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 8 haribulantahun 311957 3 haribulantahun sen 22000 8 haribulantahun t1 3119578 haribulantahun t2 311957 2 s_tbil i 1

38 38 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 8 haribulantahun 311957 8 haribulantahun sen 311957 8 haribulantahun t1 3119578 haribulantahun t2 311957 2 s_tbil i 1

39 39 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 8 haribulantahun 311957 8 haribulantahun sen 311957 8 haribulantahun t1 3119578 haribulantahun t2 311957 2 s_tbil i 2

40 40 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 8 haribulantahun 311957 8 haribulantahun sen 311957 8 haribulantahun t1 3119578 haribulantahun t2 311957 2 s_tbil i 2

41 41 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 8 haribulantahun 311957 8 haribulantahun sen 311957 8 haribulantahun tkh1 311957??? haribulantahun tkh2 ???

42 42 int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2); } int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1; } 8 haribulantahun 311957 8 haribulantahun sen 311957 8 haribulantahun tkh1 311957??? haribulantahun tkh2 ???

43 43 Function can be used to return a structure. That’s mean, function can be initialized as structure type

44 44 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } ??? haribulantahun tarikhLahir ??? haribulantahun ??? tarikhMasuk

45 45 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } ??? haribulantahun tarikhLahir ??? haribulantahun ??? tarikhMasuk

46 46 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } ??? haribulantahun tarikhLahir ??? haribulantahun ??? tarikhMasuk

47 47 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } ??? haribulantahun ??? t

48 48 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } ??? haribulantahun 28??? t Contoh: Hari: 28 _

49 49 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } 4 haribulantahun 28??? t Contoh: Hari: 28 Bulan: 4 _

50 50 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } 4 haribulantahun 282002 t Contoh: Hari: 28 Bulan: 4 Tahun: 2002 _

51 51 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } 4 haribulantahun 282002 t Contoh: Hari: 28 Bulan: 4 Tahun: 2002 _ { 28, 4, 2002 }

52 52 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } Contoh: Hari: 28 Bulan: 4 Tahun: 2002 _ 4 haribulantahun tarikhLahir 282002??? haribulantahun ??? tarikhMasuk

53 53 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } 4 haribulantahun tarikhLahir 282002??? haribulantahun ??? tarikhMasuk Contoh: Hari: 28 Bulan: 4 Tahun: 2002 _

54 54 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } 4 haribulantahun tarikhLahir 282002??? haribulantahun ??? tarikhMasuk Contoh: Hari: 28 Bulan: 4 Tahun: 2002 _

55 55 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } ??? haribulantahun ??? t Contoh: Hari: 28 Bulan: 4 Tahun: 2002 _

56 56 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } ??? haribulantahun 20??? t Contoh: Hari: 28 Bulan: 4 Tahun: 2002 Hari: 20 _

57 57 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } 10 haribulantahun 20??? t Contoh: Bulan: 4 Tahun: 2002 Hari: 20 Bulan: 10 _

58 58 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } 10 haribulantahun 201999 t Contoh: Tahun: 2002 Hari: 20 Bulan: 10 Tahun: 1999 _

59 59 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } 10 haribulantahun 201999 t { 20, 10, 1999 } Contoh: Tahun: 2002 Hari: 20 Bulan: 10 Tahun: 1999 _

60 60 int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh(); } struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t; } 4 haribulantahun tarikhLahir 28200210 haribulantahun 201999 tarikhMasuk Contoh: Tahun: 2002 Hari: 20 Bulan: 10 Tahun: 1999 _

61 61 Type-defined structure (typedef) typedef is the most powerful tools to declare a structure. Note that the typedef name is all UPPERCASE. Example : typedef float METER; METER lebar, tinggi;

62 62 Example: struct pelajar { char nama[15]; struct tarikh tarikhMasuk; }; typedef struct pelajar PELAJAR; int main() { PELAJAR pelajar; gets(pelajar.nama); scanf("%d%d%d", &pelajar.tarikhMasuk.hari, &pelajar.tarikhMasuk.bulan, &pelajar.tarikhMasuk.tahun);... }

63 63 Example: typedef struct pelajar { char nama[15]; struct tarikh tarikhMasuk; } PELAJAR; int main() { PELAJAR pelajar; gets(pelajar.nama); scanf("%d%d%d", &pelajar.tarikhMasuk.hari, &pelajar.tarikhMasuk.bulan, &pelajar.tarikhMasuk.tahun);... }

64 64 An example of using structure Problem : Write a program that can receive a date and produce the number of days from 1 st January to the specific date.

65 65 #include typedef struct tarikh { int hari, bulan, tahun; } TARIKH; TARIKH bacaTarikh(); int kiraHari(TARIKH); void outputHasil(TARIKH, int); int jumHari(int, int); int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil); } ??? haribulantahun ??? tkh bil ???

66 66 #include typedef struct tarikh { int hari, bulan, tahun; } TARIKH; TARIKH bacaTarikh(); int kiraHari(TARIKH); void outputHasil(TARIKH, int); int jumHari(int, int); int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil); } ??? haribulantahun ??? tkh bil ???

67 67 TARIKH bacaTarikh() { struct tarikh t; printf("Masukkan tarikh: "); scanf("%d%d%d", &t.hari, &t.bulan, &t.tahun); return t; } void outputHasil(TARIKH t, int bilHari) { printf("%d/%d/%d adalah hari ke-%d dalam tahun %d\n", t.hari, t.bulan, t.tahun, bilHari, t.tahun); } ??? haribulantahun ??? t

68 68 TARIKH bacaTarikh() { struct tarikh t; printf("Masukkan tarikh: "); scanf("%d%d%d", &t.hari, &t.bulan, &t.tahun); return t; } void outputHasil(TARIKH t, int bilHari) { printf("%d/%d/%d adalah hari ke-%d dalam tahun %d\n", t.hari, t.bulan, t.tahun, bilHari, t.tahun); } 2 haribulantahun 42004 t Contoh: Masukkan tarikh: 4 2 2004 _

69 69 TARIKH bacaTarikh() { struct tarikh t; printf("Masukkan tarikh: "); scanf("%d%d%d", &t.hari, &t.bulan, &t.tahun); return t; } void outputHasil(TARIKH t, int bilHari) { printf("%d/%d/%d adalah hari ke-%d dalam tahun %d\n", t.hari, t.bulan, t.tahun, bilHari, t.tahun); } 2 haribulantahun 42004 t Contoh: Masukkan tarikh: 4 2 2004 _ { 4, 2, 2004 }

70 70 #include typedef struct tarikh { int hari, bulan, tahun; } TARIKH; TARIKH bacaTarikh(); int kiraHari(TARIKH); void outputHasil(TARIKH, int); int jumHari(int, int); int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil); } 2 haribulantahun 42004 tkh bil ??? Contoh: Masukkan tarikh: 4 2 2004 _

71 71 #include typedef struct tarikh { int hari, bulan, tahun; } TARIKH; TARIKH bacaTarikh(); int kiraHari(TARIKH); void outputHasil(TARIKH, int); int jumHari(int, int); int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil); } 2 haribulantahun 42004 tkh bil ??? Contoh: Masukkan tarikh: 4 2 2004 _

72 72 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } 2 haribulantahun 42004 t Contoh: Masukkan tarikh: 4 2 2004 _

73 73 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } 2 haribulantahun 42004 t jumlah ??? bulan ??? Contoh: Masukkan tarikh: 4 2 2004 _

74 74 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } 2 haribulantahun 42004 t jumlah 0 bulan ??? Contoh: Masukkan tarikh: 4 2 2004 _

75 75 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } 2 haribulantahun 42004 t jumlah 0 bulan ??? Contoh: Masukkan tarikh: 4 2 2004 _

76 76 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } 2 haribulantahun 42004 t jumlah 0 bulan 1 Contoh: Masukkan tarikh: 4 2 2004 _

77 77 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } 2 haribulantahun 42004 t jumlah 0 bulan 1 Contoh: Masukkan tarikh: 4 2 2004 _

78 78 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } 2 haribulantahun 42004 t jumlah 0 bulan 1 Contoh: Masukkan tarikh: 4 2 2004 _

79 79 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } 2 haribulantahun 42004 t jumlah 0 bulan 1 Contoh: Masukkan tarikh: 4 2 2004 _ bulan 1 tahun 2004

80 80 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } Contoh: Masukkan tarikh: 4 2 2004 _ bulan 1 tahun 2004

81 81 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } Contoh: Masukkan tarikh: 4 2 2004 _ bulan 1 tahun 2004

82 82 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } Contoh: Masukkan tarikh: 4 2 2004 _ bulan 1 tahun 2004 31

83 83 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } Contoh: Masukkan tarikh: 4 2 2004 _ 2 haribulantahun 42004 t jumlah 31 bulan 1

84 84 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } Contoh: Masukkan tarikh: 4 2 2004 _ 2 haribulantahun 42004 t jumlah 31 bulan 2

85 85 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } Contoh: Masukkan tarikh: 4 2 2004 _ 2 haribulantahun 42004 t jumlah 31 bulan 2

86 86 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } Contoh: Masukkan tarikh: 4 2 2004 _ 2 haribulantahun 42004 t jumlah 35 bulan 2

87 87 int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; } int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } Contoh: Masukkan tarikh: 4 2 2004 _ 2 haribulantahun 42004 t jumlah 35 bulan 2 35

88 88 #include typedef struct tarikh { int hari, bulan, tahun; } TARIKH; TARIKH bacaTarikh(); int kiraHari(TARIKH); void outputHasil(TARIKH, int); int jumHari(int, int); int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil); } 2 haribulantahun 42004 tkh bil 35 Contoh: Masukkan tarikh: 4 2 2004 _

89 89 #include typedef struct tarikh { int hari, bulan, tahun; } TARIKH; TARIKH bacaTarikh(); int kiraHari(TARIKH); void outputHasil(TARIKH, int); int jumHari(int, int); int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil); } 2 haribulantahun 42004 tkh bil 35 Contoh: Masukkan tarikh: 4 2 2004 _

90 90 TARIKH bacaTarikh() { struct tarikh t; printf("Masukkan tarikh: "); scanf("%d%d%d", &t.hari, &t.bulan, &t.tahun); return t; } void outputHasil(TARIKH t, int bilHari) { printf("%d/%d/%d adalah hari ke-%d dalam tahun %d\n", t.hari, t.bulan, t.tahun, bilHari, t.tahun); } 2 haribulantahun 42004 t bilHari 35 Contoh: Masukkan tarikh: 4 2 2004 _

91 91 TARIKH bacaTarikh() { struct tarikh t; printf("Masukkan tarikh: "); scanf("%d%d%d", &t.hari, &t.bulan, &t.tahun); return t; } void outputHasil(TARIKH t, int bilHari) { printf("%d/%d/%d adalah hari ke-%d dalam tahun %d\n", t.hari, t.bulan, t.tahun, bilHari, t.tahun); } 2 haribulantahun 42004 t bilHari 35 Contoh: Masukkan tarikh: 4 2 2004 4/2/2004 adalah hari ke-35 dalam tahun 2004 _

92 92 TARIKH bacaTarikh() { struct tarikh t; printf("Masukkan tarikh: "); scanf("%d%d%d", &t.hari, &t.bulan, &t.tahun); return t; } void outputHasil(TARIKH t, int bilHari) { printf("%d/%d/%d adalah hari ke-%d dalam tahun %d\n", t.hari, t.bulan, t.tahun, bilHari, t.tahun); } 2 haribulantahun 42004 t bilHari 35 Contoh: Masukkan tarikh: 4 2 2004 4/2/2004 adalah hari ke-35 dalam tahun 2004 _

93 93 #include typedef struct tarikh { int hari, bulan, tahun; } TARIKH; TARIKH bacaTarikh(); int kiraHari(TARIKH); void outputHasil(TARIKH, int); int jumHari(int, int); int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil); } 2 haribulantahun 42004 tkh bil 35 Contoh: Masukkan tarikh: 4 2 2004 4/2/2004 adalah hari ke-35 dalam tahun 2004 _

94 94 #include typedef struct tarikh { int hari, bulan, tahun; } TARIKH; TARIKH bacaTarikh(); int kiraHari(TARIKH); void outputHasil(TARIKH, int); int jumHari(int, int); int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil); } 2 haribulantahun 42004 tkh bil 35 Contoh: Masukkan tarikh: 4 2 2004 4/2/2004 adalah hari ke-35 dalam tahun 2004 _


Download ppt "1 Structures Containing Arrays This type of structure can be declared in C. In other word, each item in array is a structure itself. Example: struct tarikh."

Similar presentations


Ads by Google