Professional Documents
Culture Documents
9.1 Fungsi
Apabila program yang Anda buat sudah terlalu panjang, Anda akan
kesulitan membaca dan mengerti jalannya program tersebut. Untuk
itu ada baiknya Anda memecahnya menjadi beberapa bagian
(modul) yang tentunya akan lebih memudahkan Anda untuk mencari
kesalahan program dan memperbaikinya serta membuat
dokumentasinya. Untuk membuat modul, C++ menyediakan fungsi.
Fungsi berguna untuk mengumpulkan statement yang dapat
dijalankan menjadi satu dalam suatu blok dan menjalankannya
kembali hanya dengan menuliskan nama fungsi yang
menampungnya.
Selain itu, fungsi juga banyak dipakai untuk menampung baris-baris
perintah yang sering dipakai dalam sebuah program.
Deklarasi fungsi dapat dilakukan dengan dua cara, yaitu:
Header fungsi tanpa parameter.
Header fungsi dengan parameter.
97
9.1.1 Header Fungsi Tanpa Parameter
Bentuk umum:
tipeData namaFungsi()
Contoh:
int JumlahIsi()
double Random()
char* Nama()
void Clear()
Contoh Soal:
prg0901.cpp Output:
x = 1
1 #include <iostream> y = 2
2 using namespace std; x+y = 3
3
xy = 2
4 int x;
5 int y;
6
98
7 int Tambah()
8 {
9 return x + y;
10 };
11
12 int Kali()
13 {
14 return x * y;
15 };
16
17 int main()
18 {
19 cout << "x = ";
20 cin >> x;
21 cout << "y = ";
22 cin >> y;
23
24 cout << "x+y = " << Tambah() << endl;
25 cout << "xy = " << Kali() << endl;
26
27 return 0;
28 };
Bentuk umum:
tipeData namaFungsi ( <Daftar_parameter> )
Contoh:
int Jumlahkan(int a, int b)
double ArcCos(double x)
void List(int n, char* header)
99
Gambar 9.2 Struktur blok fungsi dengan parameter
Contoh Soal:
prg0902.cpp Output:
x = 1
1 #include <iostream> y = 2
2 using namespace std; x+y = 3
3 xy = 2
4 int Tambah(int a, int b)
5 {
6 return a + b;
7 };
8
9 int Kali(int a, int b)
10 {
11 return a * b;
12 };
13
14 int main()
15 {
16 int x, y;
17
18 cout << "x = ";
19 cin >> x;
20 cout << "y = ";
21 cin >> y;
22
23 cout << "x+y = " << Tambah(x, y) << endl;
24 cout << "xy = " << Kali(x, y) << endl;
25
26 return 0;
27 };
100
parameter yang terdapat pada baris perintah pemanggil fungsi
tersebut disebut sebagai parameter aktual.
Untuk lebih jelasnya, perhatikan penjelasan di bawah ini.
101
mode ini, terjadi aliran 1 arah, yaitu dari pemanggil procedure ke
procedure itu.
Contoh Soal:
prg0903.cpp Output:
x = 1
1 #include <iostream> y = 2
(1, 2)
2 using namespace std;
3
4
5 void Tampil(int a, int b)
6 {
7 cout << "(" << a << ", " << b << ")" << endl;
8 };
9
10 int main()
11 {
12 int x, y;
13
14 cout << "x = ";
15 cin >> x;
16 cout << "y = ";
17 cin >> y;
18
19 Tampil(x, y);
20
21
22 return 0;
23 };
Contoh Soal:
prg0904.cpp
1 #include <iostream>
2 using namespace std;
102
3
4 void Tukar(int &a, int &b) Output:
5 { x = 1
6 int temp; y = 2
7 Sekarang x = 2
8 temp = a; Sekarang y = 1
9 a = b;
10 b = temp;
11 };
12
13 int main()
14 {
15 int x, y;
16
17 cout << "x = ";
18 cin >> x;
19 cout << "y = ";
20 cin >> y;
21
22 Tukar(x, y);
23
24
25 cout << "Sekarang x = " << x << endl;
26 cout << "Sekarang y = " << y << endl;
27
28 return 0;
29 };
Contoh Soal:
prg0905.cpp
Output:
1 #include <iostream> 15 bilangan Fibonacci pertama:
2 using namespace std; 0, 1, 1, 2, 3, 5, 8, 13, 21,
3
34, 55, 89, 144, 233, 377
103
4
5
6 int Fibo(unsigned int n)
7 {
8 switch (n)
9 {
10 case 0:
11 return 0;
12 case 1:
13 return 1;
14 default:
15 return Fibo(n - 1) + Fibo(n - 2);
16 };
17 };
18
19 int main()
20 {
21 int i;
22
23 cout << "15 bilangan fibonacci pertama: " << endl;
24
25 for (i = 0; i < 15; i++)
26 {
27 if (i > 0)
28 cout << ", ";
29 cout << Fibo(i);
30 };
31
32 cout << endl;
33
34 return 0;
35 };
Bilangan[0] = 41
Bilangan[1] = 22
Bilangan[2] = 72
Bilangan[3] = 44
104
E:\> tprima 7
7 bilangan prima pertama:
2 3 5 7 11 13 17
fibo(0) = 0
fibo(1) = 1
fibo(5) = 5
fibo(9) = 34
fibo(11) = 89
E:\> geom
O
E:\> bintang 4
*
* *
* *
***** *****
* *
* *
* *
* *
* *
***** *****
* *
* *
*
105
6. Buatlah program untuk membuat piramida angka seperti pada
contoh di bawah. Tinggi piramida diberikan lewat parameter
program (batasi bilangan dari 0 hingga 9) (pirangka.cpp).
E:\> pirangka 7
1
121
12321
1234321
123454321
12345654321
1234567654321
E:\> pascal 3
1
1 1
1 2 1
1 3 3 1
kombinasi(“abcd”, 2, 0) = “ab”
kombinasi(“abcd”, 2, 1) = “ac”
kombinasi(“abcd”, 2, 2) = “ad”
kombinasi(“abcd”, 3, 3) = “bcd”
106