Pe endahu uluan Struct BAB I t IX

advertisement
DISU
USUN OLEH
H : ADAM MU
UKHARIL BA
ACHTIAR, S..Kom.
DIK
KTAT MATA
A KULIAH PEMROGRA
P
AMAN I
BAB IIX
STRU
UCT (RE
ECORD)
IF
F
Pe
endahu
uluan Structt
engan istila
ah record adalah kum
mpulan datta yang
Struct atau lebih dikenal de
miliki tipe data yang
g berbeda. Secara p
pendeklaras
sian, structt sangat berbeda
b
mem
den
ngan array yang hany
ya memilikii satu buah
h tipe data untuk settiap kumpu
ulannya.
Stru
uct digunak
kan apabila
a data yan
ng ingin diikelompokk
kan memiliki tipe datta yang
berb
beda. Bentuk umum dari
d
pendek
klarasian sttruct adalah
h sebagai b
berikut:
//untuk turbo
t
dan borland c
struct nama_structt
{
tipe_d
data_1 varriabel_1;
tipe_d
data_2 varriabel_2;
tipe_d
data_n varriabel_n;
};
//untuk dev-c++
d
typedef struct
s
{
tipe_d
data_1 varriabel_1;
tipe_d
data_2 varriabel_2;
tipe_d
data_n varriabel_n;
}nama_s
struct;
ai contoh untuk
u
mem
mbuat structt yang me
engandung data dosen maka
Sebaga
stru
uct tersebutt akan dide
eklarasikan sebagai be
erikut:
1
2
3
4
5
6
7
//untuk
k turbo & borlan
nd c
struct data_do
osen
{
long
g int ni
ip;
char
r nama[3
31];
char
r alamat
t[51];
}
DIK
KTAT PEMR
ROGRAMAN I
//untuk dev-c++
+
typedef struct
{
long int nip
p;
char nama[31
1];
char alamat[
[51];
}data_do
osen;
HAL 1
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
Deklarasi di atas berarti ada suatu tipe data yang bernama data_dosen di
mana setiap data yang akan dideklarasikan menggunakan tipe data data_dosen akan
mempunyau field nip, nama, dan alamat. Untuk dapat menggunakan tipe data
tersebut sebuah variabel harus dideklarasikan menggunakan nama structnya. Bentuk
umum pendeklarasian variabel structnya adalah sebagai berikut:
nama_struct variabel_1,variabel_2,…,variabel_n;
Adapun contohnya sebagai berikut:
1
data_dosen dosen1,dosen2;
Deklarasi dua variabel di atas berarti ada variabel bernama dosen1 dan
dosen2 di mana tiap variabel tersebut mempunyai field sesuai dengan data_dosen.
Apabila digambarkan maka struktur dosen1 dan dosen2 akan seperti pada gambar di
bawah ini:
dosen1
nip
nama
dosen2
alamat
nip
nama
alamat
Gambar 9.1 Struktur dosen1 dan dosen2
Selain deklarasi variabelnya ada hal yang harus diperhatikan juga yaitu cara
untuk mengisi dan memanggil nilai yang ada di dalam sebuah struct. Cara pengisian
nilai dan pemanggilan nilainya adalah sebagai berikut:
//untuk pengisian nilai
variabel_struct.field_struct=nilai;
//untuk pemanggilannya
gunakan perintah printf atau cout lalu gunakan
format variabel_struct.field_struct untuk
memanggil nilainya
Sebagai contoh untuk mengisi nilai pada struct data_dosen di atas dan memanggil
nilainya adalah sebagai berikut:
1
2
3
4
5
6
//untuk mengisi nilai
dosen1.nip=41277006024;
dosen1.nama=”adam mukharil b”
dosen1.alamat=”bandung”;
atau
scanf(“%li”,&dosen1.nip); //dst
DIKTAT PEMROGRAMAN I
HAL 2
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
7
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;
Untuk lebih jelasnya buatlah program berikut ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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);
DIKTAT PEMROGRAMAN I
HAL 3
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
38
39
40
41
42
43
44
45
46
47
48
49
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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;
}
/*
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;
DIKTAT PEMROGRAMAN I
HAL 4
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
33
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;
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
}
Hasil eksekusi:
Gambar 9.2 Hasil eksekusi program Lat 9.1
DIKTAT PEMROGRAMAN I
HAL 5
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
Struct di Dalam Struct
Suatu struct dapat mengandung struct lainnya untuk dijadikan field di
dalamnya. Sebagai gambaran struct data_dosen mempunyai sebuah field struct
tanggal
lahir
yang
berisi
field
tanggal,
bulan,
dan
tahun.
Bentuk
umum
pendeklarasiannya adalah sebagai berikut:
//struct 1
typedef struct
{
tipe_data_1 variabel_1;
tipe_data_2 variabel_2;
tipe_data_n variabel_n;
}nama_struct1;
//struct dalam struct
typedef struct
{
tipe_data_1 variabel_1;
tipe_data_2 variabel_2;
nama_struct1 nama_variabel_struct_1;
}nama_struct_2;
Sebagai contoh untuk kasus data_dosen adalah sebagai berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//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;
DIKTAT PEMROGRAMAN I
HAL 6
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
Untuk lebih jelasnya buatlah program berikut ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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",
DIKTAT PEMROGRAMAN I
HAL 7
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
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;
42
43
44
45
46
47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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);
DIKTAT PEMROGRAMAN I
HAL 8
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
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;
36
37
38
39
40
41
42
43
44
45
46
47
48
49
}
Hasil eksekusi:
Gambar 9.3 Hasil eksekusi program Lat 9.2
Catatan
Apabila ingin menggunakan struct dalam struct maka struct yang
akan dipanggil di dalam structnya harus sudah terdefinisi terlebih
dahulu (letaknya harus lebih dahulu dibandingkan struct yang akan
memanggil).
DIKTAT PEMROGRAMAN I
HAL 9
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
Array Dari Struct (Array of Record)
Pada
sub
bab
sebelumnya
telah
dipelajari
bagaimana
cara
untuk
mendeklarasikan sebuah variabel dengan tipe data struct yang telah dibuat. Tapi dari
cara pendeklarasian tersebut timbul suatu permasalahan yaitu bagaimana kalau
deklarasi
variabel
structnya
sangat
banyak?
Permasalahan
tersebut
dapat
dipecahkan dengan cara mendeklarasikan variabel structnya menggunakan variabel
bertipe array. Cara seperti itu sering disebut sebagai array of struct.
Contoh kasusnya adalah sebuah struct yang menampung 100 data dosen.
Untuk memecahkannya buatlah struct data_dosen yang nantinya akan digunakan
untuk mendeklarasikan variabel dosen yang bertipe array. Untuk lebih jelasnya
buatlah program berikut ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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);
DIKTAT PEMROGRAMAN I
HAL 10
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
31
printf("Nama
: ");fflush(stdin);
gets(dosen[i].nama);
printf("Alamat : ");fflush(stdin);
gets(dosen[i].alamat);
printf("\n\n");
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
}
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;
}
/*
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;
DIKTAT PEMROGRAMAN I
HAL 11
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
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;
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
}
Hasil eksekusi:
Gambar 9.4 Hasil eksekusi program Lat 9.3
DIKTAT PEMROGRAMAN I
HAL 12
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
Struct Sebagai Parameter Fungsi
Struct
juga
dapat
digunakan
sebagai
parameter
fungsi.
Supaya
pendeklarasian variabel structnya tidak berulang kali dan tidak tepat, disarankan
untuk
mendeklarasikan
variabelnya
secara
lokal
(hanya
untuk
fungsi
yang
membutuhkannya saja). Untuk lebih jelasnya buatlah program berikut ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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;
}
DIKTAT PEMROGRAMAN I
HAL 13
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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;
}
DIKTAT PEMROGRAMAN I
HAL 14
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
Hasil eksekusi:
Gambar 9.5 Hasil eksekusi program Lat 9.4
Struct juga bisa digunakan sebagai parameter masukan dan keluaran. Programnya
sebagai berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
Program 9.5
Nama File : Lat-9.5.c
Programmer : Adam Mukharil Bachtiar, S.Kom.
*/
#include <stdio.h>
#include <stdlib.h>
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;
DIKTAT PEMROGRAMAN I
HAL 15
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
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;
25
26
27
28
29
30
31
32
33
34
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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);
DIKTAT PEMROGRAMAN I
HAL 16
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
cout<<"Bilangan pertama ditambah satu = "
<<bilangan.bil1<<endl;
cout<<"Bilangan kedua ditambah dua
= "
<<bilangan.bil2<<endl;
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
31
32
33
34
35
36
}
Hasil eksekusi:
Gambar 9.6 Hasil eksekusi program Lat 9.5
Tanda kurung yang digunakan untuk penulisan (*bilangan).bil.. harus
disertakan karena operator titik mempunyai prioritas lebih tinggi dibandingkan
operator * sehingga bisa menyebabkan kesalahan penunjukkan. Sebenarnya
penulisan (*bilangan).bil.. dapat diganti menjadi bilangan->bil.. (operator panah)
untuk lebih jelasnya buatlah program berikut ini:
1
2
3
4
5
6
7
8
9
/*
Program 9.6
Nama File : Lat-9.6.c
Programmer : Adam Mukharil Bachtiar, S.Kom.
*/
#include <stdio.h>
#include <stdlib.h>
DIKTAT PEMROGRAMAN I
HAL 17
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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;
}
/*
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;
DIKTAT PEMROGRAMAN I
HAL 18
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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;
}
Hasil eksekusi:
Gambar 9.7 Hasil eksekusi program Lat 9.6
Selain sebagai parameter fungsi, struct dapat digunakan juga sebagai nilai
balik suatu fungsi. Sebagai contoh buatlah program berikut ini:
DIKTAT PEMROGRAMAN I
HAL 19
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
1
2
3
4
5
6
7
8
9
10
11
12
/*
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;
}
/*
Program 9.7
Nama File : Lat-9.7.cpp
Programmer : Adam Mukharil Bachtiar, S.Kom.
*/
#include <cstdlib>
#include <iostream>
using namespace std;
typedef struct
DIKTAT PEMROGRAMAN I
HAL 20
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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;
}
Hasil eksekusi:
Gambar 9.8 Hasil eksekusi program Lat 9.7
DIKTAT PEMROGRAMAN I
HAL 21
Download