BAB I - BAB IX Struct
AMAN I )
DIK uluan
IX ECORD
BAB I UCT (RE t
IF
F
Pe
Struct
//untuk typedef { long char char }data_do
nd c .Kom.
PEMROGRA
ah record pendeklaras h t ipe dat a ikelom pokk t ruct adalah bor la n d c t r ia be l_ 1 ; r ia be l_ 2 ; r ia be l_ n ; r ia be l_ 1 ; r ia be l_ 2 ; r ia be l_ n ; t yang m e erikut :
t a y ang berbeda ulannya. t a yang n m aka
adalah kum sian, st ruct unt uk set kan m em ili h sebagai b c engandung
dev-c++ struct int nip nama[31 alamat[ osen;
m pulan dat t sangat b t iap kum pu ki t ipe dat berikut : dat a dose
A KULIAH P
engan ist ila Secara p i sat u buah ng ingin di k larasian st t u r bo da n m a _ st r uct da t a _ 1 v a r da t a _ 2 v a r da t a _ n va r de v- c+ + st r u ct da t a _ 1 v a r da t a _ 2 v a r da t a _ n va r st r u ct ; m buat st ruct sebagai be
& borlan osen ip; 31]; t[51]; ACHTIAR, S.
DISU
7 USUN OLEH
m em den St ru berb st ru
1
2
3
4
5
6
endahu St ruct m iliki t ipe ngan array uct digunak beda. Bent
/ / u nt u k t st r u ct na { t ipe _ d t ipe _ d t ipe _ d } ; / / u nt u k d t ype de f s { t ipe _ d t ipe _ d t ipe _ d } n a m a _ s unt uk m em eklarasikan
Sebaga uct t ersebut
//untuk struct { long char char }
H : ADAM MU
at au lebih dat a yang yang hany k an apabila uk um um d ai cont oh u t akan dide
k turbo data_do g int ni r nama[3 r alamat
UKHARIL BA KTAT MATA STRU
dikenal de g ber beda. ya m em ilik i a dat a yan dari pendek
- + p; 1]; [51];
Deklarasi di at as berart i ada suat u t ipe dat a yang bernam a dat a_dosen di m ana set iap dat a yang ak an dideklarasikan m enggunak an t ipe dat a dat a_dosen akan m em punyau field nip, nam a, dan alam at . Unt uk dapat m enggunak an t ipe dat a t ersebut sebuah variabel harus dideklarasikan m enggunakan nam a st ruct nya. Bent uk um um pendeklarasian variabel st ruct nya adalah sebagai berikut : na m a _ st r u ct va r ia be l_ 1 ,va r ia be l_ 2 ,…,va r ia be l_ n ;
Adapun cont ohnya sebagai berikut :
1 data_dosen dosen1,dosen2;
Deklarasi dua variabel di at as berart i ada variabel bernam a dosen1 dan dosen2 di m ana t iap variabel t ersebut m em punyai field sesuai dengan dat a_dosen. Apabila digam barkan m aka st rukt ur dosen1 dan dosen2 akan sepert i pada gam bar di baw ah ini: dosen1 dosen2 nip nam a alam at nip nam a alam at
Gam bar 9.1 St rukt ur dosen1 dan dosen2 Selain deklarasi variabelny a ada hal y ang harus diperhat ikan j uga yait u cara unt uk m engisi dan m em anggil nilai yang ada di dalam sebuah st ruct . Cara pengisian nilai dan pem anggilan nilainya adalah sebagai berikut :
/ / un t u k pe n gisia n nila i va r ia be l_ st r u ct .fie ld_ st r uct = n ila i; / / un t u k pe m a n ggila n n ya gu na k a n pe r in t a h pr in t f a t a u cou t la lu gu n a k a n for m a t va r ia be l_ st r u ct .fie ld_ st r uct u n t u k m e m a n ggil n ila in ya Sebagai cont oh unt uk m engisi nilai pada st ruct dat a_dosen di at as dan m em anggil nilainy a adalah sebagai berikut :
1 //untuk mengisi nilai 2 dosen1.nip=41277006024; 3 dosen1.nama=”adam mukharil b” 4 dosen1.alamat=”bandung”; 5 atau 6 scanf(“%li”,&dosen1.nip); //dst
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
26
18
19
20
21
22
23
24
25
27
16
28
29
30
31
32
33
34
35
36
17
15
7
3
8
9
10
11
12
13 atau cin>>dosen1.nip;//dst //untuk memanggil nilai printf(“%li\n”,dosen1.nip);//dst atau cout<<dosen1.nip<<endl;
Unt uk lebih j elasny a buat lah program berik ut ini:
1
2
4
14
5
6
7
8
9
10
11
12
13
37 /* Program 9.1 Nama File : Lat-9.1.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> typedef struct //deklarasi struct { long int nip; char nama[31]; char alamat[51]; }data_dosen; data_dosen dosen1,dosen2;//deklarasi variabel struct int main(int argc, char *argv[]) { //input printf("Data Dosen Pertama\n"); printf("------------------\n"); printf("NIP : ");scanf("%li",&dosen1.nip); printf("Nama : ");fflush(stdin);gets(dosen1.nama); printf("Alamat : ");fflush(stdin);gets(dosen1.alamat); printf("\n\n"); printf("Data Dosen Kedua\n"); printf("------------------\n"); printf("NIP : ");scanf("%li",&dosen2.nip); printf("Nama : ");fflush(stdin);gets(dosen2.nama); printf("Alamat : ");fflush(stdin);gets(dosen2.alamat); printf("\n\n"); //output printf("Data Dosen Pertama\n"); printf("------------------\n"); printf("NIP : %li\n",dosen1.nip);
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
21
13
14
15
16
17
18
19
20
22
11
23
24
25
26
27
28
29
30
31
12
10
38
47
39
40
41
42
43
44
45
46
48
9
49 printf("Nama : %s\n",dosen1.nama); printf("Alamat : %s\n",dosen1.alamat); printf("\n\n"); printf("Data Dosen Kedua\n"); printf("------------------\n"); printf("NIP : %li\n",dosen2.nip); printf("Nama : %s\n",dosen2.nama); printf("Alamat : %s\n",dosen2.alamat); printf("\n\n"); system("PAUSE"); return 0; }
1
2
3
4
5
6
7
8
32 /* Program 9.1 Nama File : Lat-9.1.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> using namespace std; typedef struct //deklarasi struct { long int nip; char nama[31]; char alamat[51]; }data_dosen; data_dosen dosen1,dosen2;//deklarasi variabel struct int main(int argc, char *argv[]) { //input cout<<"Data Dosen Pertama\n"; cout<<"------------------\n"; cout<<"NIP : ";cin>>dosen1.nip; cout<<"Nama : ";fflush(stdin); cin.get(dosen1.nama,30); cout<<"Alamat : ";fflush(stdin); cin.get(dosen1.alamat,50); cout<<endl<<endl; cout<<"Data Dosen Kedua\n"; cout<<"------------------\n"; cout<<"NIP : ";cin>>dosen2.nip;
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
43
51 cout<<"Nama : ";fflush(stdin); cin.get(dosen2.nama,30); cout<<"Alamat : ";fflush(stdin); cin.get(dosen2.alamat,50); cout<<endl<<endl; //output cout<<"Data Dosen Pertama\n"; cout<<"------------------\n"; cout<<"NIP : "<<dosen1.nip<<endl; cout<<"Nama : "<<dosen1.nama<<endl; cout<<"Alamat : "<<dosen1.alamat<<endl; cout<<endl<<endl; cout<<"Data Dosen Kedua\n"; cout<<"------------------\n"; cout<<"NIP : "<<dosen2.nip<<endl; cout<<"Nama : "<<dosen2.nama<<endl; cout<<"Alamat : "<<dosen2.alamat<<endl; cout<<endl<<endl; system("PAUSE"); return EXIT_SUCCESS; }
50
49
48
47
46
45
44
42
33
41
40
39
38
37
36
35
34
Hasil eksekusi:
Gam bar 9.2 Hasil eksekusi program Lat 9.1
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
Struct di Dalam Struct
Suat u st ruct dapat m engandung st ruct lainny a unt uk dij adik an field di
dalam nya. Sebagai gam baran st ruct dat a_dosen m em punyai sebuah field st ruct
t anggal lahir yang berisi field t anggal, bulan, dan t ahun. Bent uk um um
pendeklarasiannya adalah sebagai berikut :/ / st r uct 1 t ype de f st r u ct { t ipe _ da t a _ 1 v a r ia be l_ 1 ; t ipe _ da t a _ 2 v a r ia be l_ 2 ; t ipe _ da t a _ n va r ia be l_ n; } n a m a _ st r u ct 1 ; / / st r uct da la m st r uct t ype de f st r u ct { t ipe _ da t a _ 1 v a r ia be l_ 1 ; t ipe _ da t a _ 2 v a r ia be l_ 2 ; n a m a _ st r uct 1 na m a _ v a r ia be l_ st r u ct _ 1 ; } n a m a _ st r u ct _ 2 ; Sebagai cont oh unt uk kasus dat a_dosen adalah sebagai berikut :
1 //struct pertama 2 typedef struct 3 { 4 int tanggal; 5 int bulan; 6 int tahun; 7 }data_tanggal;
8 9 //struct dalam struct 10 typedef struct 11 { 12 long int nip; 13 char nama[31]; 14 char alamat[51]; 15 data_tanggal tanggal_lahir; 16 }data_dosen;
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom. Unt uk lebih j elasny a buat lah program berik ut ini:
31
24
25
26
27
28
29
30
32
22
33
34
35
36
37
38
39
40
23
21
1
10
2
3
4
5
6
7
8
9
11
20
12
13
14
15
16
17
18
19
41 /* Program 9.2 Nama File : Lat-9.2.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> //struct pertama typedef struct { int tanggal; int bulan; int tahun; }data_tanggal; //struct dalam struct typedef struct { long int nip; char nama[31]; char alamat[51]; data_tanggal tanggal_lahir; }data_dosen; data_dosen dosen; int main(int argc, char *argv[]) { printf("NIP : ");scanf("%li",&dosen.nip); printf("Nama : ");fflush(stdin); gets(dosen.nama); printf("Alamat : ");fflush(stdin); gets(dosen.alamat); printf("Tanggal lahir : "); scanf("%i",&dosen.tanggal_lahir.tanggal); printf("Bulan lahir : "); scanf("%i",&dosen.tanggal_lahir.bulan); printf("Tahun lahir : "); scanf("%i",&dosen.tanggal_lahir.tahun); printf("\n\n"); printf("NIP = %li\n",dosen.nip); printf("Nama = %s\n",dosen.nama); printf("Alamat = %s\n",dosen.alamat); printf("Tanggal lahir = %i\n",
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
25
18
19
20
21
22
23
24
26
16
27
28
29
30
31
32
33
34
17
15
42
4
43
44
45
46
47 dosen.tanggal_lahir.tanggal); printf("Bulan lahir = %i\n", dosen.tanggal_lahir.bulan); printf("Tahun lahir = %i\n", dosen.tanggal_lahir.tahun); printf("\n\n"); system("PAUSE"); return 0; }
1
2
3
5
14
6
7
8
9
10
11
12
13
35 /* Program 9.2 Nama File : Lat-9.2.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> using namespace std; //struct pertama typedef struct { int tanggal; int bulan; int tahun; }data_tanggal; //struct dalam struct typedef struct { long int nip; char nama[31]; char alamat[51]; data_tanggal tanggal_lahir; }data_dosen; data_dosen dosen; int main(int argc, char *argv[]) { cout<<"NIP : ";cin>>dosen.nip; cout<<"Nama : ";fflush(stdin); cin.get(dosen.nama,30); cout<<"Alamat : ";fflush(stdin); cin.get(dosen.alamat,50);
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
36
37
38
39
40
41
42
43
44
45
46
47
48
49 cout<<"Tanggal lahir : "; cin>>dosen.tanggal_lahir.tanggal; cout<<"Bulan lahir : "; cin>>dosen.tanggal_lahir.bulan; cout<<"Tahun lahir : "; cin>>dosen.tanggal_lahir.tahun; cout<<endl<<endl; cout<<"NIP = "<<dosen.nip<<endl; cout<<"Nama = "<<dosen.nama<<endl; cout<<"Alamat = "<<dosen.alamat<<endl; cout<<"Tanggal lahir = " <<dosen.tanggal_lahir.tanggal<<endl; cout<<"Bulan lahir = " <<dosen.tanggal_lahir.bulan<<endl; cout<<"Tahun lahir = " <<dosen.tanggal_lahir.tahun<<endl; cout<<endl<<endl; system("PAUSE"); return EXIT_SUCCESS; }
Hasil eksekusi:
Gam bar 9.3 Hasil eksekusi program Lat 9.2
Cat at an Apabila ingin m enggunakan st ruct dalam st ruct m aka st ruct yang akan dipanggil di dalam st ruct nya harus sudah t erdefinisi t erlebih dahulu ( let aknya harus lebih dahulu dibandingkan st ruct yang akan m em anggil) .DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
Array Dari Struct (Array of Record)
Cont oh kasusnya adalah sebuah st r uct yang m enam pung 100 dat a dosen.
Unt uk m em ecahkannya buat lah st ruct dat a_dosen yang nant inya akan digunakan
unt uk m endeklarasikan variabel dosen yang bert ipe array. Unt uk lebih j elasnya
buat lah program berikut ini:17
30 /* Program 9.3 Nama File : Lat-9.3.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> #define maks 100 //maksimal array typedef struct { long int nip; char nama[31]; char alamat[51]; }data_dosen; data_dosen dosen[maks];//array of struct int main(int argc, char *argv[]) { int i,j; printf("Berapa data dosen? ");scanf("%i",&j); printf("\n"); for(i=0;i<j;i++) { printf("Data dosen ke-%i\n",i+1); printf("-----------------\n"); printf("NIP : ");scanf("%li",&dosen[i].nip);
29
28
27
26
25
24
23
22
21
20
19
18
16
1
Pada sub bab sebelum ny a t elah dipelaj ari bagaim ana cara unt uk
m endeklarasikan sebuah variabel dengan t ipe dat a st ruct y ang t elah dibuat . Tapi dari
cara pendeklarasian t ersebut t im bul suat u perm asalahan yait u bagaim ana kalau
deklarasi variabel st ruct nya sangat banyak? Perm asalahan t ersebut dapat
dipecahkan dengan cara m endeklarasikan variabel st ruct nya m enggunakan variabel
bert ipe array. Cara sepert i it u sering disebut sebagai array of st ruct .14
13
12
11
10
9
8
7
6
5
4
3
2
15
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
16
8
9
10
11
12
13
14
15
17
6
18
19
20
21
22
23
24
25
7
5
31
40
32
33
34
35
36
37
38
39
41
4
42
43
44
45
46 printf("Nama : ");fflush(stdin); gets(dosen[i].nama); printf("Alamat : ");fflush(stdin); gets(dosen[i].alamat); printf("\n\n"); } for(i=0;i<j;i++) { printf("Data dosen ke-%i\n",i+1); printf("-----------------\n"); printf("NIP = %li\n",dosen[i].nip); printf("Nama = %s\n",dosen[i].nama); printf("Alamat = %s\n",dosen[i].alamat); printf("\n\n"); } system("PAUSE"); return 0; }
1
2
3
26 /* Program 9.3 Nama File : Lat-9.3.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> #define maks 100 //maksimal array using namespace std; typedef struct { long int nip; char nama[31]; char alamat[51]; }data_dosen; data_dosen dosen[maks];//array of struct int main(int argc, char *argv[]) { int i,j; cout<<"Berapa data dosen? ";cin>>j;
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
39
48 cout<<endl; for(i=0;i<j;i++) { cout<<"Data dosen ke-"<<i+1<<endl; cout<<"-----------------"<<endl; cout<<"NIP : ";cin>>dosen[i].nip; cout<<"Nama : ";fflush(stdin); cin.get(dosen[i].nama,30); cout<<"Alamat : ";fflush(stdin); cin.get(dosen[i].alamat,50); cout<<endl<<endl; } for(i=0;i<j;i++) { cout<<"Data dosen ke-"<<i+1<<endl; cout<<"-----------------"<<endl; cout<<"NIP = "<<dosen[i].nip<<endl; cout<<"Nama = "<<dosen[i].nama<<endl; cout<<"Alamat = "<<dosen[i].alamat<<endl; cout<<endl<<endl; } system("PAUSE"); return EXIT_SUCCESS; }
47
46
45
44
43
42
41
40
38
27
37
36
35
34
33
32
31
30
29
28
Hasil eksekusi:
Gam bar 9.4 Hasil eksekusi program Lat 9.3
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
Struct Sebagai Parameter Fungsi
1
18
32 /* Program 9.4 Nama File : Lat-9.4.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> typedef struct { int bil1; int bil2; }data_bilangan; void tampil_bilangan(data_bilangan bilangan) { printf("Bilangan pertama = %i\n",bilangan.bil1); printf("Bilangan kedua = %i\n",bilangan.bil2); } int main(int argc, char *argv[]) { data_bilangan bilangan; printf("Masukkan bilangan pertama : "); scanf("%i",&bilangan.bil1); printf("Masukkan bilangan kedua : "); scanf("%i",&bilangan.bil2); printf("\n"); tampil_bilangan(bilangan); printf("\n"); system("PAUSE"); return 0; }
31
30
29
28
27
26
25
24
23
22
21
20
19
17
2
St ruct j uga dapat digunakan sebagai param et er fungsi. Supaya
pendeklarasian v ariabel st ruct nya t idak berulang kali dan t idak t epat , disarankan
unt uk m endeklarasikan variabelnya secara lokal ( hanya unt uk fungsi yang
m em but uhkannya saj a) . Unt uk lebih j elasnya buat lah program berikut ini:15
14
13
12
11
10
9
8
7
6
5
4
3
16
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
26
20
21
22
23
24
25
27
18
28
29
30
31
32
33
19
17
1
8
2
3
4
5
6
7
9
16
10
11
12
13
14
15
34 /* Program 9.4 Nama File : Lat-9.4.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> using namespace std; typedef struct { int bil1; int bil2; }data_bilangan; void tampil_bilangan(data_bilangan bilangan) { cout<<"Bilangan pertama = "<<bilangan.bil1<<endl; cout<<"Bilangan kedua = "<<bilangan.bil2<<endl; } int main(int argc, char *argv[]) { data_bilangan bilangan; cout<<"Masukkan bilangan pertama : "; cin>>bilangan.bil1; cout<<"Masukkan bilangan kedua : "; cin>>bilangan.bil2; cout<<endl; tampil_bilangan(bilangan); cout<<endl; system("PAUSE"); return EXIT_SUCCESS; }
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom. Hasil eksekusi:
Gam bar 9.5 Hasil eksekusi program Lat 9.4
St ruct j uga bisa digunakan sebagai param et er m asukan dan keluaran. Program nya
sebagai berikut :1 /*
2 Program 9.5
3 Nama File : Lat-9.5.c 4 Programmer : Adam Mukharil Bachtiar, S.Kom. 5 */
6 7 #include <stdio.h> 8 #include <stdlib.h>
9 10 typedef struct 11 { 12 int bil1; 13 int bil2; 14 }data_bilangan;
15 16 void jumlah_bilangan(data_bilangan *bilangan) 17 { 18 (*bilangan).bil1=(*bilangan).bil1+1; 19 (*bilangan).bil2=(*bilangan).bil2+2; 20 }
21 22 int main(int argc, char *argv[]) 23 { 24 data_bilangan bilangan;
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
20
13
14
15
16
17
18
19
21
11
22
23
24
25
26
27
28
29
12
10
25
33
26
27
28
29
30
31
32
34 printf("Masukkan bilangan pertama : "); scanf("%i",&bilangan.bil1); printf("Masukkan bilangan kedua : "); scanf("%i",&bilangan.bil2); printf("\n"); jumlah_bilangan(&bilangan); printf("Bilangan pertama ditambah satu = %i\n" ,bilangan.bil1); printf("Bilangan kedua ditambah dua = %i\n" ,bilangan.bil2); printf("\n"); system("PAUSE"); return 0; }
9
1
2
3
4
5
6
7
8
30 /* Program 9.5 Nama File : Lat-9.5.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> using namespace std; typedef struct { int bil1; int bil2; }data_bilangan; void jumlah_bilangan(data_bilangan *bilangan) { (*bilangan).bil1=(*bilangan).bil1+1; (*bilangan).bil2=(*bilangan).bil2+2; } int main(int argc, char *argv[]) { data_bilangan bilangan; cout<<"Masukkan bilangan pertama : "; cin>>bilangan.bil1; cout<<"Masukkan bilangan kedua : "; cin>>bilangan.bil2; cout<<endl; jumlah_bilangan(&bilangan);
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
31 cout<<"Bilangan pertama ditambah satu = " <<bilangan.bil1<<endl; 32 cout<<"Bilangan kedua ditambah dua = " <<bilangan.bil2<<endl; 33 cout<<endl; 34 system("PAUSE"); 35 return EXIT_SUCCESS; 36 }
Hasil eksekusi:
Gam bar 9.6 Hasil eksekusi program Lat 9.5
Tanda kurung yang digunakan unt uk penulisan ( * bila n ga n ) .bil.. harusdisert akan karena operat or t it ik m em punyai pr ior it as lebih t inggi dibandingkan
operat or * sehingga bisa m enyebabkan kesalahan penunj ukkan. Sebenarnya
penulisan ( * bila n ga n) .bil.. dapat digant i m enj adi bila n ga n - > bil.. ( operat or panah)
unt uk lebih j elasnya buat lah program berikut ini:1 /*
2 Program 9.6
3 Nama File : Lat-9.6.c 4 Programmer : Adam Mukharil Bachtiar, S.Kom. 5 */
6 7 #include <stdio.h> 8 #include <stdlib.h>
9
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
7
33
34 typedef struct { int bil1; int bil2; }data_bilangan; void jumlah_bilangan(data_bilangan *bilangan) { bilangan->bil1=bilangan->bil1+1; bilangan->bil2=bilangan->bil2+2; } int main(int argc, char *argv[]) { data_bilangan bilangan; printf("Masukkan bilangan pertama : "); scanf("%i",&bilangan.bil1); printf("Masukkan bilangan kedua : "); scanf("%i",&bilangan.bil2); printf("\n"); jumlah_bilangan(&bilangan); printf("Bilangan pertama ditambah satu = %i\n" ,bilangan.bil1); printf("Bilangan kedua ditambah dua = %i\n" ,bilangan.bil2); printf("\n"); system("PAUSE"); return 0; }
1
2
3
4
5
6
8
31
9
10
11
12
13
14
15
16
32
30
10
19
11
12
13
14
15
16
17
18
20
29
21
22
23
24
25
26
27
28
17 /* Program 9.5 Nama File : Lat-9.5.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> using namespace std; typedef struct { int bil1; int bil2; }data_bilangan;
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
28
36 void jumlah_bilangan(data_bilangan *bilangan) { bilangan->bil1=bilangan->bil1+1; bilangan->bil2=bilangan->bil2+2; } int main(int argc, char *argv[]) { data_bilangan bilangan; cout<<"Masukkan bilangan pertama : "; cin>>bilangan.bil1; cout<<"Masukkan bilangan kedua : "; cin>>bilangan.bil2; cout<<endl; jumlah_bilangan(&bilangan); cout<<"Bilangan pertama ditambah satu = " <<bilangan.bil1<<endl; cout<<"Bilangan kedua ditambah dua = " <<bilangan.bil2<<endl; cout<<endl; system("PAUSE"); return EXIT_SUCCESS; }
35
34
33
32
31
30
29
27
18
26
25
24
23
22
21
20
19
Hasil eksekusi:
Gam bar 9.7 Hasil eksekusi program Lat 9.6
Selain sebagai param et er fungsi, st ruct dapat digunakan j uga sebagai nilai balik suat u fungsi. Sebagai cont oh buat lah program berikut ini:DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
1
26
27
28
29
30
31
32
33 /* Program 9.7 Nama File : Lat-9.7.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> typedef struct { int tahun; int bulan; int tanggal; }data_tanggal; data_tanggal tanggal_lahir() { data_tanggal tgl; tgl.tahun=1986; tgl.bulan=6; tgl.tanggal=5; return tgl; } int main(int argc, char *argv[]) { data_tanggal tanggal; tanggal=tanggal_lahir(); printf("Tanggal Lahir = %i-%i-%i\n\n" ,tanggal.tanggal,tanggal.bulan,tanggal.tahun); system("PAUSE"); return 0; }
2
24
3
4
5
6
7
8
9
10
11
25
23
1
11
2
3
4
5
6
7
8
9
10
12
22
13
14
15
16
17
18
19
20
21
12 /* Program 9.7 Nama File : Lat-9.7.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> using namespace std; typedef struct
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
25
35 { int tahun; int bulan; int tanggal; }data_tanggal; data_tanggal tanggal_lahir() { data_tanggal tgl; tgl.tahun=1986; tgl.bulan=6; tgl.tanggal=5; return tgl; } int main(int argc, char *argv[]) { data_tanggal tanggal; tanggal=tanggal_lahir(); cout<<"Tanggal Lahir = "<<tanggal.tanggal<<"-" <<tanggal.bulan<<"-"<<tanggal.tahun<<endl<<endl; system("PAUSE"); return EXIT_SUCCESS; }
34
33
32
31
30
29
28
27
26
24
13
23
22
21
20
19
18
17
16
15
14
Hasil eksekusi:
Gam bar 9.8 Hasil eksekusi program Lat 9.7