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 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 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 Structures Containing Arrays 1 hari bulan tahun ??? 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 Structures Containing Arrays 1 hari bulan tahun 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));
6 Structures Containing Arrays 1 hari bulan tahun 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)); _
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 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 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 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 trkh
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 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 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)); _ 'T''a''h''u''n'' 'B''a''r''u''\0'???? nama cuti_am 1 hari bulan tahun trkh
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 Structure and function The structure can also be used with function.
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 hari_cuti ??? haribulantahun ??? tkh
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 hari_cuti 1 haribulantahun tkh Contoh: _
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 hari_cuti 1 haribulantahun tkh Contoh: _
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 hari_cuti 1 haribulantahun tkh Contoh: _
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 hari_cuti 1 haribulantahun tkh _ 1 haribulantahun t1 1 haribulantahun t2
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 haribulantahun t1 1 haribulantahun t2
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 haribulantahun t1 1 haribulantahun t2
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 haribulantahun t1 1 haribulantahun t2
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 hari_cuti 1 haribulantahun tkh
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 hari_cuti 1 haribulantahun tkh _
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 tkh ??? haribulantahun tkh2 ??? 2 haribulantahun haribulantahun sen 22000
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 tkh ??? haribulantahun tkh2 ??? 2 haribulantahun haribulantahun sen 22000
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 tkh ??? haribulantahun tkh2 ??? 2 haribulantahun haribulantahun sen ??? haribulantahun t1 ??? haribulantahun t2 ??? s_tbil ???
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 tkh ??? haribulantahun tkh2 ??? 2 haribulantahun haribulantahun sen haribulantahun t ??? haribulantahun t2 ??? 2 s_tbil
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 haribulantahun sen haribulantahun t ??? haribulantahun t2 ??? 2 s_tbil i ???
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 haribulantahun sen haribulantahun t haribulantahun t s_tbil i ???
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 haribulantahun sen haribulantahun t haribulantahun t s_tbil i ???
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 haribulantahun sen haribulantahun t haribulantahun t s_tbil i 0
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 haribulantahun sen haribulantahun t haribulantahun t s_tbil i 0
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 haribulantahun sen haribulantahun t haribulantahun t s_tbil i 0
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 haribulantahun sen haribulantahun t haribulantahun t s_tbil i 1
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 haribulantahun sen haribulantahun t haribulantahun t s_tbil i 1
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 haribulantahun sen haribulantahun t haribulantahun t s_tbil i 1
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 haribulantahun sen haribulantahun t haribulantahun t s_tbil i 2
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 haribulantahun sen haribulantahun t haribulantahun t s_tbil i 2
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 haribulantahun sen haribulantahun tkh ??? haribulantahun tkh2 ???
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 haribulantahun sen haribulantahun tkh ??? haribulantahun tkh2 ???
43 Function can be used to return a structure. That’s mean, function can be initialized as structure type
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 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 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 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 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 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 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 t Contoh: Hari: 28 Bulan: 4 Tahun: 2002 _
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 t Contoh: Hari: 28 Bulan: 4 Tahun: 2002 _ { 28, 4, 2002 }
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 ??? haribulantahun ??? tarikhMasuk
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 ??? haribulantahun ??? tarikhMasuk Contoh: Hari: 28 Bulan: 4 Tahun: 2002 _
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 ??? haribulantahun ??? tarikhMasuk Contoh: Hari: 28 Bulan: 4 Tahun: 2002 _
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 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 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 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 t Contoh: Tahun: 2002 Hari: 20 Bulan: 10 Tahun: 1999 _
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 t { 20, 10, 1999 } Contoh: Tahun: 2002 Hari: 20 Bulan: 10 Tahun: 1999 _
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 haribulantahun tarikhMasuk Contoh: Tahun: 2002 Hari: 20 Bulan: 10 Tahun: 1999 _
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 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 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 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 #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 #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 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 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 t Contoh: Masukkan tarikh: _
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 t Contoh: Masukkan tarikh: _ { 4, 2, 2004 }
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 tkh bil ??? Contoh: Masukkan tarikh: _
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 tkh bil ??? Contoh: Masukkan tarikh: _
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 t Contoh: Masukkan tarikh: _
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 t jumlah ??? bulan ??? Contoh: Masukkan tarikh: _
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 t jumlah 0 bulan ??? Contoh: Masukkan tarikh: _
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 t jumlah 0 bulan ??? Contoh: Masukkan tarikh: _
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 t jumlah 0 bulan 1 Contoh: Masukkan tarikh: _
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 t jumlah 0 bulan 1 Contoh: Masukkan tarikh: _
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 t jumlah 0 bulan 1 Contoh: Masukkan tarikh: _
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 t jumlah 0 bulan 1 Contoh: Masukkan tarikh: _ bulan 1 tahun 2004
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: _ bulan 1 tahun 2004
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: _ bulan 1 tahun 2004
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: _ bulan 1 tahun
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: _ 2 haribulantahun t jumlah 31 bulan 1
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: _ 2 haribulantahun t jumlah 31 bulan 2
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: _ 2 haribulantahun t jumlah 31 bulan 2
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: _ 2 haribulantahun t jumlah 35 bulan 2
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: _ 2 haribulantahun t jumlah 35 bulan 2 35
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 tkh bil 35 Contoh: Masukkan tarikh: _
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 tkh bil 35 Contoh: Masukkan tarikh: _
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 t bilHari 35 Contoh: Masukkan tarikh: _
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 t bilHari 35 Contoh: Masukkan tarikh: /2/2004 adalah hari ke-35 dalam tahun 2004 _
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 t bilHari 35 Contoh: Masukkan tarikh: /2/2004 adalah hari ke-35 dalam tahun 2004 _
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 tkh bil 35 Contoh: Masukkan tarikh: /2/2004 adalah hari ke-35 dalam tahun 2004 _
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 tkh bil 35 Contoh: Masukkan tarikh: /2/2004 adalah hari ke-35 dalam tahun 2004 _