1. Pengertian Fungsi ( function )
Function/fungsi adalah satu blok kode yang melakukan tugas tertentu atau satu blok instruksi yang di eksekusi ketika dipanggil dari bagian lain dalam suatu program.
2. A. Call by Value
Fungsi yang void sering disebut juga prosedur. Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut.
Ciri-ciri dari jenis fungsi Void adalah sebagai berikut:
Tidak adanya keyword return.
Tidak adanya tipe data di dalam deklarasi fungsi.
Menggunakan keyword void.
Tidak dapat langsung ditampilkan hasilnya.
Tidak memiliki nilai kembalian fungsi
Keyword void juga digunakan jika suatu function tidak mengandung suatu parameter apapun.
Void : void tampilkan_jml (int a, int b)
{
int jml; jml = a + b; cout<
}
Contoh fungsi void :
#include <iostream.h> #include <conio.h>
void volume(int &vol, int p, int l, int t) { vol = p*l*t; }
main(){
int pj,lb,tg, hsl;
cout<<"Panjang = ";cin>>pj; cout<<"Lebar = ";cin>>lb; cout<<"Tinggi = ";cin>>tg; volume(hsl,pj,lb,tg);
cout<<"\nVolume = "<<hsl; getch();
}
Hasilnya :
B. Call by reference(Fungsi dengan nilai balik)
Fungsi non-void disebut juga function. Disebut non-void karena mengembalikan nilai kembalian yang berasal dari keluaran hasil proses function tersebut .
Ciri-ciri dari jenis fungsi non void adalah sebagai berikut:
Ada tipe data yang mengawali fungsi
Tidak ada keyword void
Memiliki nilai kembalian .
Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu
Sehingga dapat langsung ditampilkan hasilnya
Non-void : int jumlah (int a, int b)
Contoh fungsi call by reference : #include <iostream.h> #include <conio.h>
int volume(int p, int l, int t) { int vol;
vol = p*l*t; return vol; } main(){
int pj,lb,hsl,tg;
cout<<"Panjang = ";cin>>pj; cout<<"Lebar = ";cin>>lb; cout<<"Tinggi = ";cin>>tg; hsl=volume(pj,lb,tg);
cout<<"\nLuasnya = "<<hsl; getch();
}
Hasilnya :
3.
Variabel Otomatis
Adalah variabel yang didefinisikan di dalam suatu fungsi dan berlaku sebagai variabel lokal bagi fungsi tersebut, artinya variabel tersebut hanya dikenal di dalam fungsi tempat variable tersebut di definisikan. Sifat variabel otomatis adalah :
Variabel akan diciptakan saat variabel dipanggil dan variabel akan hilang saat fungsi berakhir
Variabel hanya dikenal di dalam fungsi yang mendefinisikannya.
Inisialisasi oleh pemrogram akan dikerjakan setiap kali fungsi dipanggil, contoh :
Variabel Otomatis
Program
#include <iostream.h> #include <conio.h>
/**
*gatewan.com *Wawan Beneran *Variabel Otomatis */
void coba(); // prototipe fungsi atau pendeklarasian fungsi
void main() {
cout<<"copyright 2014 www.gatewan.com"<<endl<<endl;
int x = 22; //salah satu contoh variabel lokal pada fungsi main()
double y =2.22; clrscr();
cout<<"copyright 2014 www.gatewan.com"<<endl<<endl; cout<<"Pada fungsi main() : x = " << x << " y = " << y << endl;
coba(); // memanggil fungsi alpha yang telah didefinisikan bagian bawah fungsi main()
cout<<"Pada fungsi main() : x = " << x << " y = " << y << endl; getch();
}
void coba() //definisi fungsi alpha
{
int x = 20; //variabel lokal pada fungsi coba()
double y = 3.14;
cout<<"Pada fungsi coba() : x = " << x << " y = " << y << endl; }
Variabel Eksternal
Variabel eksternal adalah variabel yang didefinisikan di luar fungsi manapun, Variabel ini dikenal juga dengan istilah variabel global, sebab variabel ini dikenal oleh semua fungsi, contoh;
View
Variabel Eksternal
Program :
#include <iostream.h> #include <conio.h>
/**
*Variabel External */
int nilai = 50; // Variabel eksternal
void tambah(); // prototipe fungsi
void main() {
clrscr();
cout <<"www.gatewan.com -> "<<nilai << endl; tambah();
cout <<"www.gatewan.com -> "<<nilai << endl; tambah();
cout <<"www.gatewan.com -> "<<nilai << endl; getch();
}
void tambah() // Definisi fungsi
{
nilai ++ ; // variabel eksternal dinaikkan
}
Atau bisa juga seperti ini,
Program :
*Variabel External dengan Keyword Extern */
int nilai = 50; // Variabel eksternal
void tambah(); // prototipe fungsi
void main() {
clrscr();
cout <<"www.gatewan.com -> "<<nilai << endl; tambah();
cout <<"www.gatewan.com -> "<<nilai << endl; tambah();
cout <<"www.gatewan.com -> "<<nilai << endl; getch();
}
void tambah() // Definisi fungsi
{
extern nilai; //kata kunci extern ini menunjukan bahwa variabel dapat di akses secara global di dalam program
nilai ++ ; // variabel eksternal dinaikkan
}
Variabel Statis
Variabel eksternal maupun otomatis dapat berkedudukan sebagai variabel statis. Suatu variabel statis memiliki sifat seperti ini :
* Jika variabel lokal berdiri sebagai variabel statis, maka :
Variabel hanya dapat diakses di dalam fungsi yang mendefinisikannya
Variabel tidak hilang saat eksekusi fungsi berakhir
* Jika variabel eksternal dijadikan sebagai variabel statis, maka variabel ini dapat diakses oleh semua file yang
void saya_ingat(); //Prototipe fungsi atau pendeklarasian fungsi
void main()
cout<<"main() : mana = "<<mana<<endl; getch();
}
//Pada fungsi di bawah ini, mana didefinisikan sebagai variabel statis
void saya_ingat() {
static int mana = 77; //variabel statis
mana++; //naikkan sebesar 1
cout<<"gatewan_ingat() : mana = " <<mana<<endl; }
4.
Buat lah program sederhana dengan menggunakan fu
ngsi
#include <iostream>
cout<<endl<<endl;
x1=(b+sqrt(b*b-4*a*c))/2*a*c;
x2=(b-sqrt(b*b-4*a*c))/2*a*c;
getch (); }
TUGAS AKHIR
1. Buatlah program dengan menggunakan kombinasi antar fungsi dan pointer
#include <stdio.h> #include <iostream> #include <windows.h> using namespace std;
int hitung(const char *); main()
{
char string[80]; system("COLOR F0");
cout<<"PROGRAM FUNGSI DENGAN POINTER"<<endl;
cout<<"\nMenghitung banyaknya karakter yang di input menggunakan fungsi dan pointer"<<endl;
cout<<"\nKetikkan Kata / Kalimat : "; cin.getline(string,80);
cout<<"\nJumlah Karakter : "<<hitung(string)<<" Karakter";
return 0; }
int hitung(const char *s) {
int x=0;
for(;*s!='\0'; s++) ++x;