Anda di halaman 1dari 32

FUNGSI

C/C++
Fungsi
Program merupakan kumpulan dari fungsi-fungsi baik yang didefinisikan
langsung maupun yang disimpan dalam file header. Dalam program C++
selalu terdapat fungsi utama yang disebut fungsi main ( ). Kompiler
akan menjalankan perintah yang terdapat dalam fungsi main ( ) ini.
Ilustrasi keberadaan fungsi dalam sebuah program:

Program

Int main ( ) {
…..
Fungsi1( );
Fungsi1
statement1;
….. …..
Fungsi2( ); return
statement2;
… Fungsi2 Fungsi3
return0;
} ….. …..
return return
Fungsi merupakan subprogram (modular) yang bisa digunakan kembali oleh
program itu maupun oleh program lain yang memerlukan.

Dalam C++ fungsi ada 2, yaitu user defined function (didefinisikan sendiri) dan built-in
function (telah disediakan oleh kompiler).

Fungsi tanpa nilai umpan balik

Suatu proses yang tidak mengembalikan nilai, untuk itu fungsi yang dibuat bertipe void
yang berarti tidak mempunyai nilai balik (RETURN VALUE)
Adapun bentuk umumnya adalah:

void nama_fungsi (parameter1, parameter2, …..) {


statement_ yang_akan_dilakukan;
……...

Bentuk umum untuk pemanggilan:

nama_fungsi(nilai_parameter1, nilai_parameter2, ….);


Contoh Program 1:

#include <iostream>
using namespace std;

//membuat fungsi dengan nama Tulis10kali


void Tulis10kali ( ) {
for (int c=0; c<10; c++) {
cout<<“ Aku menyukai C++”<<endl;
}
}
// Fungsi utama dalam program c++

int main ( ) {
// Memanggil fungsi Tulis10kali untuk dieksekusi
Tulis10kali ( );

return 0;
}
Fungsi dengan nilai balik

Fungsi ini melakukan proses yang dapat mengembalikan sebuah nilai.


Definisikan tipe data dari nilai yang akan dikembalikan terlebih dulu.
Bentuk umum fungsi ini:
Tipe_data nama_fungsi (parameter1, parameter2, …) {
statement_yang_akan_dilakukan ;
…..
Return nilai_yang_akan_dikembalikan;
}
Contoh 2 fungsi yang mengembalikan tipe bilangan

# include <iostream>
using namespace std;

// membuat fungsi sederhana mengembalikan bilangan


double TestFungsiBilangan ( ) {
return (3.14*2);
}

// fungsi utama

int main ( ) {
// memanggil dan menampilkan hasil fungsi
cout<<“ Nilai yang terdapat dalam fungsi : “;
cout<<TestFungsiBilangan( );

return 0;
}
Contoh 3 fungsi yang mengembalikan tipe string

# include <iostream>
using namespace std;

// membuat fungsi sederhana mengembalikan string


char* TestFungsiString ( ) {
return “ini adalah nilai dari fungsi”;
}

// fungsi utama

int main ( ) {
// memanggil dan menampilkan hasil fungsi
cout<<TestFungsiString( );
return 0;
}
Fungsi dengan Parameter
Hasil yang diperoleh bersifat dinamis tergantung dari nilai parameter yang dimasukkan

Jenis parameter
a. Parameter masukan
Parameter ini akan dipergunakan sebagai masukan dalam sebuah fungsi

b. Parameter keluaran
Parameter ini dipergunakan untuk menampung nilai yang dihasilkan
dari
proses didalam fungsi
Digunakan didalam fungsi void
Berguna sebagai nilai keluaran sebuah fungsi
Dilewatkan berdasarkan alamat atau referensinya

c. Parameter masukan/keluaran
Digunakan sebagai masukan dan keluaran artinya mula-mula sebagai
masukan kemudian diolah dalam fungsi dan hasilnya sebagai
nilai keluaran.
Contoh fungsi dengan parameter bertype masukan

#include <iostream>
using namespace std;

// Membuat fungsi dengan parameter bertipe masukan

int TambahSatu (int X) {


int hasil;
hasil=X+1;
return hasil;
}

int main ( ) {
int Bilangan, HASIL;
cout<<“ Masukkan sebuah bilangan bulat : “;
cin>>Bilangan;
HASIL=TambahSatu(Bilangan);

cout<<“ Nilai akhir : “<<HASIL;

return 0;
}
Contoh fungsi dengan parameter bertipe keluaran

#include <iostream>
using namespace std;

// parameter X sbg masukan


// parameter hasil sbg keluaran

void TambahSatu (int X, int *hasil) {


*hasil=X+1;
}

int main ( ) {
int Bilangan, HASIL;
cout<<“ Masukkan sebuah bilangan bulat : “;
cin>>Bilangan;

cout<<“ Nilai akhir : “<<TambahSatu(Bilangan, &HASIL);

return 0;
}
Contoh fungsi dengan parameter bertipe masukan/keluaran

#include <iostream>
using namespace std;

// parameter X sbg masukan dan juga sbg keluaran

void TambahSatu (int X) {


*X=*X+1;
}

int main ( ) {
int Bilangan;
cout<<“ Masukkan sebuah bilangan bulat : “;
cin<<Bilangan;

cout<<“ Nilai akhir : “<<TambahSatu(&Bilangan);

return 0;
}
Melewatkan Parameter Berdasarkan Nilai (pass by value)

#include <iostream>
using namespace std;

// membuat fungsi dengan melewatkan nilai X didalamnya

void Kali2 (int X) {


X=X*2;
cout<<“ Nilai didalam fungsi : “<<X<<endl;
}
// Fungsi utama
int main ( ) {
int Bilangan;
cout<<“ Masukkan sebuah bilangan bulat : “;
cin<<Bilangan;

cout<<“ Nilai awal : “<<Bilangan<<endl;

// memanggil fungsi Kali2


Kali2(Bilangan);
cout<<“Nilai Akhir : “<<Bilangan<<endl;

return 0;
}
Hasil dari program tersebut:
Memasukkan sebuah bilangan bulat : 10
Nilai awal : 10
Nilai didalam fungsi : 20
Nilai akhir : 10
Contoh pengiriman parameter dengan berdasarkan nilai
(menukar dua buah bilangan)

#include <iostream>
using namespace std;

// mendefinisikan fungsi menukar bilangan

void TukarBilangan (int X, int Y) {


int X=X;
X=Y;
Y=Z;

// Menampilkan bilangan yg terdpt di dlm fungsi


cout<<“ Di dalam fungsi “<<endl;
cout<<“ Bilangan ke I : “<<X<<endl;
cout<<“ Bilangan ke 2 : “<<Y<<endl;
cout<<endl;
}

NEXT …...
// Fungsi utama

int main ( ) {
int Bilangan1, Bilangan2;
cout<<“ Masukkan bilangan pertama : “ ; cin>>Bilangan1;
cout<<“ Masukkan bilangan kedua : “ ; cin>>Bilangan2;

// menampilkan nilai awal


cout<<“ Keadaan awal”<<endl;
cout<<“ Bilangan ke 1 : “<<Bilangan1<<endl;
cout<<“ Bilangan ke 2 : “<<Bilangan2<<endl;
cout<<endl;

// memanggil fungsi TukarBilangan


TukarBilangan(Bilangan1,Bilangan2);

// menampilkan nilai akhir


cout<<“ Keadaan akhir”<<endl;
cout<<“ Bilangan ke 1 : “<<Bilangan1<<endl;
cout<<“ Bilangan ke 2 : “<<Bilangan2<<endl;
cout<<endl;

return 0;
}
Melewatkan Parameter Berdasarkan Alamat (Pass by
Reference)

adalah melewatkan parameter sebuah fungsi berdasarkan alamatnya.


Jika kita membuat alias dari sebuah variabel, alamat dari variabel dan alias
tersebut adalah sama.
Contoh Program pelewatan parameter berdasrkan alamat (pass by reference)

#include <iostream>
use namespace std;
// mendefinisikan fungsi yang melewatkan parameternya berdasarkan alamat
void Kali2(int& X){
X=X*2
cout<<“ Nilai di dlm fungsi : “<<X<<endl;
}

int main( ) {
int Bilangan;
cout<,” Masukkan sebuah bilangan bulat : “; cin>>Bilangan;
cout<<endl;

// Menampilkan nilai awal


cout<<Bilangan<<endl;
Kali2 (Bilangan);

// Menampilkan nilai akhir


cout<< Bilangan <<endl;

return 0;
}
Masukkan sebuah bilangan bulat : 10

Nilai awal : 10
Nilai di dalam fungsi : 20
Nilai akhir : 20
Contoh Program yang menggambarkan penggunaan pass by reference

#include <iostream>
using namespace std;

// mendefinisikan fungsi menukar bilangan

void TukarBilangan(int& X,int& Y) {


int X=X;
X=Y;
Y=Z;

// Menampilkan bilangan yg terdpt di dlm fungsi


cout<<“ Di dalam fungsi “<<endl;
cout<<“ Bilangan ke I : “<<X<<endl;
cout<<“ Bilangan ke 2 : “<<Y<<endl;
cout<<endl;
}

NEXT …...
// Fungsi utama

int main ( ) {
int Bilangan1, Bilangan2;
cout<<“ Masukkan bilangan pertama : “ ; cin>>Bilangan1;
cout<<“ Masukkan bilangan kedua : “ ; cin>>Bilangan2;

// menampilkan nilai awal


cout<<“ Keadaan awal”<<endl;
cout<<“ Bilangan ke 1 : “<<Bilangan1<<endl;
cout<<“ Bilangan ke 2 : “<<Bilangan2<<endl;
cout<<endl;

// memanggil fungsi TukarBilangan


TukarBilangan(Bilangan1,Bilangan2);

// menampilkan nilai akhir


cout<<“ Keadaan akhir”<<endl;
cout<<“ Bilangan ke 1 : “<<Bilangan1<<endl;
cout<<“ Bilangan ke 2 : “<<Bilangan2<<endl;
cout<<endl;

return 0;
}
Modifikasi program dg mempergunakan parameter bertipe pointer

#include <iostream>
using namespace std;

// mendefinisikan fungsi dg parameter bertipe pointer

void TukarBilangan(int *X,int *Y) {


int X= *X;
*X = Y;
*Y = Z;

// Menampilkan blangan yg terdpt di dlm fungsi


cout<<“ Di dalam fungsi “<<endl;
cout<<“ Bilangan ke I : “<<*X<<endl;
cout<<“ Bilangan ke 2 : “<<*Y<<endl;
cout<<endl;
}

NEXT …...
// Fungsi utama

int main ( ) {
int Bilangan1, Bilangan2;
cout<<“ Masukkan bilangan pertama : “ ; cin>>Bilangan1;
cout<<“ Masukkan bilangan kedua : “ ; cin>>Bilangan2;

// menampilkan nilai awal


cout<<“ Keadaan awal”<<endl;
cout<<“ Bilangan ke 1 : “<<Bilangan1<<endl;
cout<<“ Bilangan ke 2 : “<<Bilangan2<<endl;
cout<<endl;

// memanggil fungsi TukarBilangan


// ingat pergunakanlah operator &
TukarBilangan ( &Bilangan1, &Bilangan2);

// menampilkan nilai akhir


cout<<“ Keadaan akhir”<<endl;
cout<<“ Bilangan ke 1 : “<<Bilangan1<<endl;
cout<<“ Bilangan ke 2 : “<<Bilangan2<<endl;
cout<<endl;

return 0;
}
Melewatkan Parameter Bertipe Array

Contoh Program dg parameter bertipe array

#include <iostream>
using namespace std;

// mendefinisikan fungsi untuk proses input array


void InputArray(int A[], int N) {
for (int C=0; C<N; C++) {
cout<<“ Masukkan nilai A[“ <<C<< “] : “; cin>>A[C];
}
}

// mendefinisikan fungsi untuk menghitung jumlah elemen array


long Jumlah(int A[ ], int N) {
long jml=0;
for(int C=0; C<N; C++) {
jml += A[C]
}
return jml
}
// Fungsi utama
int main ( ) {
int X[100];
int BanyakElemen;
long HASIL;

cout<<“Masukkan banyaknya elemenyang diinginkan : “ ;


cin>>BanyakElemen;
cout<<endl;

// memanggil fungsi InputArray


InputArray(X, BanyakElemen);

// memanggil fungsi jumlah dan menampung hasilnya ke variabel HASIL


HASIL = Jumlah (X, BanyakElemen);

// Menampilkan hasil
cout<<“Hasilnya = “<<HASIL;

return 0;
}
Dalam program C++ parameter yang bertipe array
sering diganti dg parameter bertipe pointer
Melewatkan Parameter Bertipe Pointer

Contoh Program dg parameter bertipe pointer

#include <iostream>
using namespace std;

// mendefinisikan fungsi untuk proses input array dg A bertipe pointer

void InputArray (int *A, int N) {


for (int C=0; C<N; C++) {
cout<<“ Masukkan nilai A[“ <<C<< “] : “; cin>>A[C];
}
}

// mendefinisikan fungsi untuk menghitung jumlah elemen array


long Jumlah(int *A, int N) {
long jml=0;
for(int C=0; C<N; C++) {
jml += A[C]
}
return jml
}
// Fungsi utama
int main ( ) {
int X[100];
int BanyakElemen;
long HASIL;

cout<<“Masukkan banyaknya elemenyang diinginkan : “ ;


cin>>BanyakElemen;
cout<<endl;

// memanggil fungsi InputArray


InputArray (X, BanyakElemen);

// memanggil fungsi jumlah dan menampung hasilnya ke variabel HASIL


HASIL = Jumlah (X, BanyakElemen);

// Menampilkan hasil
cout<<“Hasilnya = “<<HASIL;

return 0;
}
Melewatkan parameter konstan
include <iostream>
using namespace std;
// mendefinisikan fungsi untuk menghitung keliling lingkaran
double KelilingLingkaran(const float PI, int jari_jari) {
return (2*PI*jari_jari);
}

// fungsi utama
int main ( ) {
int R;
double HASIL;
cout<<“Masukkan panjang jari-jari : “; cin>>R;

// memanggil fungsi keilling lingkaran


HASIL=KelilingLingkaran(3.14, R);

cout<<“Kelilingnya = “<<HASIL;
return 0;
}
Mengeset Parameter dengan Nilai Default
Nilai parameter dalam sebuah fungsidapat diset dengan nilai default. Artinya, jika kita
tidak mendefinisikan pd saat pemanggilan, nilai yang akan digunakan adalah nilai default.
Bentuk umum:

Tipe_data nama_fungsi ( tipe_data parameter1 = nilai_default, …..)


{
........
return nilai_kembalian;
}
Contoh fungsi dengan nilai default
#include <iostream>
using namespace std;
// mendefinisikan fungsi menghitung volum balok
long VolumeBalok(int panjang, int lebar=20, int tinggi=5) {
return (panjang * lebar * tinggi);
}

int main ( ) {
int P=50;
int L=10; Hasilnya adalah:
int T=2;
long HASIL; Volume Balok = 1000
// memanggil fungsidg 3 parameter Volume Balok = 2500
HASIL=VolumeBalok(P,L,T);
Volume Balok = 5000
cout<<“Volume Balok = “<<HASIL<<endl;

// memanggil fungsidg 2 parameter


HASIL=VolumeBalok(P,L);
cout<<“Volume Balok = “<<HASIL<<endl;

// memanggil fungsidg 1 parameter


HASIL=VolumeBalok(P);
cout<<“Volume Balok = “<<HASIL<<endl;
return 0;
}
Contoh Program dengan Struktur Fungsi

#include<stdio.h> void fungsi_menu()


#include<conio.h> {
#include<stdlib.h> printf("pilihan\n");
void fungsi_1(); printf("1. pilihan\n");
void fungsi_2(); printf("2. pilihan\n");
void fungsi_menu();
}
main(void)
{ void fungsi_1()
int pilihan; {
fungsi_menu(); printf("Ini fungsi 1");
scanf("%d", &pilihan); }

switch(pilihan) void fungsi_2()


{ {
case 1 :
printf("ini fungsi 2");
fungsi_1();break;
}
case 2 :
fungsi_2();break;
default:
printf("keluar");
exit(1);
}
getche();
}
Tugas Teori Algo
Gabungkan program C/C++ yang telah dibuat sebelumnya dengan menggunakan fungsi dan switch case.
Jika program dieksekusi, tampilan awalnya akan seperti berikut:

PILIH SALAH SATU MENU!


1.Menghitung Luas Lingkaran
2.Mengkonversi suhu Celcius => Fahrenheit
3.Mendeteksi Input untuk Bilangan Ganjil atau Genap
4.Keluar

Anda mungkin juga menyukai