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];
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  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.. harus

disert 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