Friday, December 23, 2011

Tutorial C++

C++

SEKILAS TENTANG C++
                C++  tidak bisa dilepaskan dari bahasa C sebagai bahasa pendahulunya. Pencipta C adalah Brian W. Kerninghan dan Dennis M. Ritchie pada sekitar tahun 1972, dan sekitar satu decade diciptakan C++, Bjarne Stroustrup dari Laboraturium Bell, AT&T, pada tahun 1983. Awalnya C++ disebut “a better C”. Nama C++ sendiri diberikan oleh Rick Mascitti pada tahun 1983, yang berhasil dari operator increment pada bahasa C. Keistimewaan yang utama dari C++ adalah karena bahasa ini mendukung pemograman yang berorientasi objek ( OOP / Objek Oriented programming ).
BORLAND C++

Dibandingkan compiler C++ yang lain, Borland C++ memiliki
keunggulan terutama dalam hal kecepatan dan efisiensi kompilasi. Disamping
itu, Borland C++ mendukung beberapa system operasi yaitu DOS, Windows
16bit (Window 3.0) dan windows 32 bit (Windows NT). Meskipun demikian
compiler Borland C++ juga memiliki kelemahan bila dibandingkan compiler
C++ yang lain, misalnya : pemrograman dengan Borland C++ terutama yang
menyangkut tampilan jauh lebih sulit daripada pemrograman dengan
Microsoft Visual C++.

STRUKTUR BAHASA C++

Program C maupun C++ selalu tersusun dari 4 (empat) bagian utama, yaitu :
1. Bagian komentar yang ditandai dengan symbol // dan pasangan /* … */
2. Bagian pengarah compiler yang ditandai dengan symbol #
3. Bagian deklarasi
4. Bagian definisi
PENGENALAN C++
Setiap penulisan bahsa C++ mempunyai bentuk umum seperti  ini:


Penjelasan :
Prepocessor directive (include)

Adalah salah satu pengarah preprocessor directive yang tersedia pada C++ Prepocessor  selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. Contoh:
Bentuk ini tidak diakhiri dengan tanda semicolon, karena bentuk tersebut suatu bentuk pernyataan, tetapi merupakan Prepocessor directive. Baris mengintruksikan kepada compiler menyisipkan file yang berakhiran .h (file header) yang berisi sebagai deklarasi contohnya:

v  # include <iostream.h> :  diperlukan pada program yang  melibatkan objek cout.
v  # include < conio.h> : diperlukan bila melibatkan clrscr(), yaitu perintah untuk membersihkan layar.
v  # include < iomanip.h> : diperlukan bila melibatkan setw() yang  bermanfaat mengatur lebar dari suatu tampilan data
v  # include <math.h> : diperlukan pada program yang menggunakan operasi sqrt() bermanfaat untuk operasi matematika kuadrat.

Fungsi main ()
Program C++ memang tidak akan pernah lepas dari suatu fungsi/function. Hal ini
karena merupakan ciri OOP. Sebuah program C++ minimal memiliki satu fungsi
yaitu main(). Fungsi ini merupakan awal program utama.
Tulisan main() merupakan nama fungsi, sedangkan bagian yang diapit dengan { dan } disebut
blok (tubuh fungsi). Dalam hal ini { merupakan tanda awal blok dan } adalah
tanda akhir blok. Seperti halnya dalam Pascal, { dalam Pascal identik dengan
BEGIN, sedangkan } identik dengan END. Perintah void bermakna bahwa fungsi
main() tidak mengembalikan nilai/value.
Cara penulisan fungsi main() tidak mutlak seperti di atas. Berikut ini cara
penulisan yang lain.





Komentar
Komentar tidak pernah decompile oleh compiler. Dalam C++  terdapat 2 jenis komentar, yaitu:
Ø  Jenis 1:

Ø  jenis 2:

Tanda semicolon

Tanda  semicolon “ ; “ digunakan untuk mengakhiri sebuah pernyataan. Setiap pernyataan harus diakhiri dengan sebuah tanda semicolon .
Cout(dibaca : C out)
Pernyataan cout merupakan sebuah objek di dalam C++, yang digunakan untuk mengarahkan data ke dalam standar output (cetak pada layar) Contoh :
Tanda “ << “ merupakan sebuah operator yang disebut operator penyisipan.


1.      VARIABEL & TIPE DATA
A.     Pengertian Variabel
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Untuk memperoleh nilai dari suatu variable digunakan pernyataan penugasan (assignment statement), yang mempunyai sintaks sebagai berikut :
Rounded Rectangle: variable = ekspresi ;
 

                                                                                                                           

Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut :
1.      Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. Bahasa C ++ bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara nim, NIM dan Nim dianggap berbeda.
2.      Tidak boleh mengandung spasi.
3.      Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +, =dsb.
4.      Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.
Contoh penamaan variabel yang benar :
NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb.
Contoh penamaan variable yang salah :
%nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!, dsb.

B.      Deklarasi Variabel
Deklarasi diperlukan bila kita akan menggunakan pengenal (identifier) dalam program. Identifier dapat berupa variable, konstanta dan fungsi. Bentuk umumnya :
Rounded Rectangle: Nama_tipe<spasi>nama_variabel;
 

Contoh :
int x; // Deklarasi x bertipe integer
char y, huruf, nim[10]; // Deklarasi variable bertipe char
float nilai; // Deklarasi variable bertipe float
double beta; // Deklarasi variable bertipe double
int array[5][4]; // Deklarasi array bertipe integer
Contoh :

Hasil Runningnya :


C.      Deklarasi Konstanta
·         Menggunakan keyword const
Contoh : const float PI = 3.14152965;
Berbeda dengan variable, konstanta bernama tidak dapat diubah jika telah diinisialisasi
·         Menggunakan #define
Contoh : #define PI 3.14152965
Keuntungan menggunakan #define apabila dibandingkan dengan const adalah kecepatan kompilasi, karena sebelum kompilasi dilaksanakan, kompiler pertama kali mencari symbol #define (oleh sebab itu mengapa # dikatakan prepocessor directive) dan mengganti semua Phi dengan nilai 3.14152965.
Contoh :
D. Assignment

Proses assignment adalah proses pemberian nilai kepada suatu variabel yang
telah dideklarasikan.

Berikut adalah contoh assignment:
Jumlah = 10;
Harga_satuan = 23.456;
Saya = ‘B’;
Kamu = ‘2’;
Contoh program:
Running:
E. Tipe Data
Tipe-tipe data yang ada pada Bahasa C++ terdiri dari:
int = Integer (Bilangan Bulat)
float = Bilangan Pecahan/Desimal
double = Bilangan pecahan/desimal yang memiliki rentang lebih besar dibandingkan dengan float.
char = Karakter, biasanya dalam penulisan tipe ini, harus diikuti tanda (‘)
string = Gabungan dari beberapa karakter, dalam penulisanyya diikuti oleh tanda (“)
bool = Boolean (Menyimpan nilai salah dan benar).
Tipe data dapat dikelompokkan menjadi atas dua macam :
a)      Tipe Dasar.
b)      Tipe Bentukan.
Berikut penjelasan masing - masing tipe data :
a)      Tipe Dasar
Merupakan tipe yang dapat langsung dipakai, yaitu :
Tipe Dasar

Ukuran
Memori (byte)
Jangkauan Nilai
Jumlah
Digit Presisi
Char
1
-128 hingga +127
-
Int 2

-32768 hingga +32767
-
Long

4
-2.147.438.648 hingga
2.147.438.647
-
Float
4
3,4E-38 hingga 3,4E38
6-7
Double
8
1.7E-308 hingga 1.7E308
15-16
long double
10
3.4E-4932 hingga 1.1E4932
19
NB : Untuk mengetahui ukuran memori dari suatu tipe digunakan fungsi sizeof(tipe) Tipe data dapat diubah ( type cast ), misalkan:
float x = 3.345;
int p = int(x);
        maka nilai p adalah 3 ( terjadi truncating ).
Tipe data yang berhubungan dengan bilangan bulat adalah char, int, long. Sedangkan lainnya berhubungan dengan bilangan pecahan.
Contoh program:
Output:
b)     Tipe Bentukan
Merupakan tipe yang dibentuk dari tipe dasar. Seperti Tipe Struktur (struct). Tipe struktur merupakan suatu tipe data yang merupakan kumpulan dari tipe data lainnya. Struktur terdiri dari data yang disebut field. Field – field tersebut digabungkan menjadi satu tujuan untuk kemudahan dalam operasi.
Bentuk umumnya :
Rounded Rectangle: tyedef struct{  tipe nama_field1;
tipe nama_field2;
tipe nama_field3;
. . . .
         }nama_variabel;
 




Contoh :
Output:

Perhatikan bahwa pada akhir dari typedef struct diberi tanda semicolon.
F. Karakter dan String Literal
String adalah gabungan dari karakter
Contoh :   “ Belajar “       à Literal String
“ B “                à Karakter
Panjang String
strlen() à nama fungsi untuk menghitung panjang string
Fungsi strlen() dideklarasikan dalam file string.h. Jadi bila kita ingin menggunakan fungsi strlen(), maka prepocessor directive #include<string.h> harus dimasukkan dalam program diatas main(), contoh :
Output:
Perhatikan, bahwa disetiap akhir baris pernyataan diakhiri dengan tanda titik – koma (semicolon) “ ; “.
Perhatikan, bahwa :
·         ‘ \n ‘ dihitung satu karakter. \n disebut newline karakter
·         Endl juga merupakan newline karakter ( sama kegunaannya seperti \n ).
Dalam C++, selain \n terdapat juga beberapa karakter khusus yang biasa disebut escape sequence characters, yaitu :
Karakter
Keterangan
\0
Karakteeer ber-ASCII nol ( karakter null )
\a
Karakter bell
\b
Karakter backspace
\f
Karakter ganti halaman ( formfeed )
\n
Karakter baris baru ( newline )
\r
Karakter carriage return ( ke awal baris )
\t
Karakter tab horizontal
\v
Karakter tab vertika
\\
Karakter \
\’
Karakter ‘
\”
Karakter “
\?
Karakter ?
\ooo
Karakter yang nilai oktalnya adalah ooo ( 3 digit octal )
\xhh
Karakter yang nilai heksadesimalnya hh (2 digit heksadesimal )




G. Keyword dan Identifier
Dalam bahasa pemrograman, suatu program dibuat dari elemen-elemen sintaks individual yang disebut token, yang memuat nama variable, konstanta, keyword, operator dan tanda baca. Contoh :
Output :
Program diatas memperlihatkan 14 token, yaitu main, (, ), {, int, n, =, 13, ;, cout, <<, endl, getch dan }
·         Token n adalah suatu variable
·         Token 13 adalah suatu konstanta
·         Token int, getch dan endl adalah suatu keyword
·         Token = dan << adalah operator
·         Token(, ), {, ;, dan } adalah tanda baca
Baris pertama dan kedua berisi suatu prepocessor directive yang bukan bagian sebenarnya dari program
Contoh 1:
Output:
 Contoh 2:
                 
                 Output:

Contoh 3:
Output:
2.      OPERATOR DAN STATEMEN INPUT OUTPUT
A.     Operator
Operator adalah symbol yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi.
A.1.   Operator Penugasan
Operator Penugasan (Assignment operator) dalam bahasa C++ berupa tanda sama dengan (“=”). Contoh :
nilai = 80;
A = x * y;
Penjelasan :
variable “nilai” diisi dengan 80 dan
variable “A” diisi dengan hasil perkalian antara x dan y.
A.2.   Operator Aritmatika
Operator
Deskripsi
Contoh
+
Penjumlahan ( Add )
m + n
-
Pengurangan ( Substract )
m – n
*
Perkalian ( Multiply )
m * n
/
Pembagian ( Divide )
m / n
%
Sisa Pembagian Integer ( Modulus )
m % n
-
Negasi ( Negate )
-m
NB : Operator seperti operator negasi (-) disebut unary operator, karena membutuhkan hanya satu buah operand. Operator % (modulus) digunakan untuk mencari sisa pembagian antara dua bilangan. Misalnya : 9 % 2 = 1, 9 % 3 = 0
Contoh 1 :
Outputnya :


Contoh 2:
Output:
Karena tipe datanya adalah int, maka 82/26=3, supaya dapat merepresentasikan nilai yang sebenarnya, gunakan tipe data float. Cara lain penulisan dengan menggunakan operator aritmatika :
m = m + n  m += n
m = m - n  m -= n
m = m * n  m *= n
m = m / n  m /= n
m = m % n  m %= n

A.3.   Operator Hubungan (Perbandingan)
Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah operand (sebuah nilai atau variable). Operator hubungan dalam bahasa C++ yaitu :
Operator
Arti
Contoh
= =
Sama dengan / bukan assignment
x= =y
Apakah x sama dengan y
!=
Tidak sama dengan
x != y
Apakah x tidak sama
dengan y
> 
Lebih besar
x > y
Apakah x lebih besar
dari y
< 
Lebih kecil
x < y
Apakah x lebih kecil
dari y
>=
Lebih besar atau sama dengan
x >= y
Apakah x lebih dari
sama dengan y
<=
Lebih kecil atau sama dengan
x <= y
Apakah x kurang dari
sama dengan y

A.4.   Operator Naik dan Turun ( Increment dan Decrement )
Operator increment à ++
Operator decrement à --
Contoh :
Outputnya :
Pada saat dijalankan, terlihat bahwa operator pre-increment dan post-increment memiliki akibat yang sama, yaitu manambah nilai satu pada m dan memasukkan nilai tersebut kembali ke m (m=m+1). Hal yang sama juga terjadi pada operator pre-decrement dan post-decrement yang memberikan akibat yang sama, yaitu mengurangi nilai satu dari n ( n = n - 1). Tetapi bila digunakan sebagai sub-ekspresi, operator post-increment dan preincrement menunjukkan hasil yang berbeda, contohnya :
Outputnya :
Dalam penugasan yang pertama, m adalah pre-increment, menaikkan nilainya menjadi 67, yang selanjutnya dimasukkan ke n. Dalam penugasan kedua, m adalah post-increment, sehingga 67 dimasukkan dahulu ke n baru kemudian nilai m-nya dinaikkan, itu sebabnya mengapa nilai m = 68 dan n = 67. Dalam penugasan ketiga, m adalah post-increment, sehingga nilai m ( = 68 ) ditampilkan dahulu ( ke layar ) baru kemudian nilai m dinaikkan menjadi 69. Dalam penugasan keempat, m adalah pre-increment, sehingga nilai m dinaikkan dahulu menjadi 70 baru kemudian ditampilkan ke layar.

A.5.   Operator Bitwise
Operator
Deskripsi
Contoh
<< 
Geser n bit ke kiri ( left shift )
m << n
>> 
Geser n bit ke kanan ( right shift )
m >> n
&
Bitwise AND
m & n
|
Bitwise OR
m | n
^
Bitwise XOR
m ^ n
~
Bitwise NOT m
~

A.6.   Operator Logika
Operator logika digunakan untuk menghubungkan dua atau lebih ungkapan menjadi sebuah ungkapan berkondisi.
Operator
Deskripsi
Contoh
&&
logic AND
m && n
||
logic OR
m ||n
!
logic NOT
!m

Hasil keluaran dari operator logika adalah 0 dan 1.
0 jika keluarannya salah dan 1 jika keluarannya benar.

A.7.   Operator Kondisi
Operator kondisi digunakan untuk memperoleh nilai dari dua kemungkinan
ungkapan1 ? ungkapan2 : ungkapan3
Bila nilai ungkapan1 benar, maka nilainya sama dengan ungkapan2, bila tidak maka nilainya sama dengan ungkapan3
Contoh :

B.      Statemen Input / Output
Pada C++ terdapat 2 jenis I/O dasar, yaitu:
·         Statemen Input adalah Statemen / fungsi yang digunakan untuk membaca data dari inputing device (keyboard/mouse), contoh : cout (character out)
·         Statemen Output adalah Statemen yang digunakan untuk menuliskan data ke layar monitor, contoh : cin (character in)
Contoh 1:
Contoh 2 :
Output:
Contoh 3 :
Output:
3.      SELEKSI
Suatu Struktur dasar algoritma yang memiliki satu atau lebih kondisi tertentu dimana sebuah instruksi dilaksanakan jika sebuah kondisi / persyaratan terpenuhi. Ada beberapa bentuk struktur dasar percabangan ini :
a.      Seleksi dengan IF
Sebuah pernyataan yang dapat dipakai muntuk mengambil keputusan berdasarkan suatu kondisi. Bentuk pernyataan ini ada dua macam :
·          if saja, dan
·         else
Rounded Rectangle: if (kondisi)
pernyataan ;
Bentuk umum dengan satu kasus :


Pernyataan dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi, jika tidak program tidak memberikan hasil apa-apa.
Contoh :
Dalam program diatas akan terlihat bahwa kalau usia yang dimasukkan lebih dari atau sama dengan 17, program tidak menghasilkan apa-apa, tetapi jika dimasukkan angka dibawah 17 akan menghasilkan tulisan.

Bentuk umum dengan dua kasus :
Rounded Rectangle: if (kondisi)
pernyataan1 ;
else
pernyataan2;
 




Pernyataan1 dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi,
jika tidak, lakukan pernyataan2. Jika Kita tidak mempergunakan pernyataan else program tidak akan error, namun jika kita mempergunakan pernyataan else tanpa didahului pernyataan if, maka program akan error.
Jika pernyataan1 atau pernyataan2 hanya terdiri dari satu baris, maka tanda { }
tidak diperlukan, namun jika lebih maka diperlukan.
Bentuk umum dengan banyak kasus :




Rounded Rectangle: if (kondisi)
{
pernyataan1;
pernyataan1a;
pernyataan1b;
}
else if
{
pernyataan2;
pernyataan2a;
pernyataan2b;
}
 





Contoh :
Contoh tersebut sama dengan dibawah ini :
Contoh diatas disebut juga nested conditional
b.      Seleksi dengan Switch
Pernyataan swich adalah pernyataan yang digunakan untuk menjalankan salah satu pernyataan dari beberapa kemungkinan pernyataan, berdasarkan nilai dari sebuah ungkapan dan nilai penyeleksian. Pernyataan if…else if jamak dapat dibangun dengan pernyataan switch.


Rounded Rectangle: switch (ekspresi)
{
case konstanta1 :
pernyataan1 ;
break ;
case konstanta2 :
pernyataan2 ;
break ;
case konstanta3 :
pernyataan3 ;
break ;
:
:
case konstantaN :
pernyataanN ;
break ;
default :
pernyataanlain;
}
 









Hal – hal yang perlu diperhatikan adalah :
·         Dibelakang keyword case harus diikuti oleh sebuah konstanta, tidak boleh diikuti oleh ekspresi ataupun variable.
·         Konstanta yang digunakan bertipe int atau char.
·         Jika bentuknya seperti diatas maka apabila ekspresi sesuai dengan konstanta 2 maka pernyataan 2, pernyataan 3 sampai dengan pernyataan lain dieksekusi. Untuk mencegah hal tersebut, gunakan keyword break;. Jika keyword break digunakan maka setelah pernyataan 2 dieksekusi program langsung keluar dari pernyataan switch. Selain digunakan dalam switch, keyword break banyak digunakan untuk keluar dari pernyataan yang berulang ( looping ).
·         Pernyataan lain dieksekusi jika konstanta1 sampai konstantaN tidak ada yang memenuhi ekspresi.
Contoh :
4.      PERULANGAN
Sebuah / kelompok instruksi diulang untuk jumlah pengulangan tertentu. Baik yang terdifinisikan sebelumnya ataupun tidak. Struktur pengulangan terdiri atas dua bagian :
a.      Kondisi pengulangan yaitu ekspresi boolean yang harus dipenuhi untuk melaksanakan pengulangan.
b.      Isi atau badan pengulangan yaitu satu atau lebih pernyataan (aksi) yang akan diulang.
Perintah atau notasi dalam struktur pengulangan adalah :
1. Pernyataan while
2. Pernyataan do..while
3. Pernyataan for
4. Pernyataan continue dan break
5. Pernyataan go to
6.1       Pernyataan while
Pernyataan while merupakan salah satu pernyataan yang berguna untuk memproses suatu pernyataan atau beberapa pernyataan beberapa kali. Pernyataan while memungkinkan statemen-statemen yang ada didalamnya tidak diakukan sama sekali.
Bentuk Umumnya :
Rounded Rectangle: while (kondisi)
{
Pernyataan ;
}
 



Contoh :
 

6.2       Pernyataan do..while
Pernyataan do…while mirip seperti pernyataan while, hanya saja pada do…while
pernyataan yang terdapat didalamnya minimal akan sekali dieksekusi.
Bentuk Umumnya :
Rounded Rectangle: do
{
     pernyatan ;
} while(kondisi);
 






Contoh :
Contoh:




Output:
6.3       Pernyataan for
Pernyataan for digunakan untuk menghasilkan pengulangan(looping) beberapa kali tanpa penggunaan kondisi apapun. Pada umumnya looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya. Pernyataan for digunakan untuk melakukan looping. Pada umumnya looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya. Selama kondisi terpenuhi, maka pernyataan akan terus dieksekusi.
Bentuk Umumnya :
Rounded Rectangle: for (inisialisasi ; kondisi ; perubahan)
{
   Statement;
}
 




Contoh :
Pernyataan for dapat berada di dalam pernyataan for lainnya yang biasa disebut nested for  Contoh :
Contoh:
Output:

6.4       Pernyataan continue & break
Pernyataan break akan selalu terlihat digunakan bila menggunakan pernyataan switch. Pernyataan ini juga digunakan dalam loop. Bila pernyataan ini dieksekusi, maka akan mengakhiri loop dan akan menghentikan itrasi pada saat tersebut. Pernyataan continue digunakan untuk pergi ke bagian awal dari blok loop untuk memulai iterasi berikutnya. Contoh :
Penjelasan :
Dari program diatas, dapat dilihat perulangan dari suatu bilangan sebanyak 10 kali. Tetapi, pada perulangan i=4, ada perintah continue. Dengan perintah ini, maka program langsung meloncat ke loop berikutnya dan ketika sampai perulangan i = 6, ada perintah break. Otomatis program akan berhenti dan tidak sampai ke i=10. Dan program akan mencetak bilangan 0, bilangan 1, bilangan 2, bilangan 3, bilangan 5, bilangan 6.

6.5       Pernyataan go to
Pernyataan goto, diperlukan untuk melakukan suatu lompatan ke suatu pernyataan berlabel yang ditandai dengan tanda “ : “.
Bentuk Umumnya :
Rounded Rectangle: goto bawah;
pernyataan1;
pernyataan2;
bawah : pernyataan 3;
 




Keterangan : bawah merupakan label yang berfungsi sebagai label yang dipanggil.
Pada contoh tersebut, pada saat goto ditemukan maka program akan melompat pernyataan berlabel bawah dan melakukan pernyataan 3.
Contoh :



5.      FUNGSI
Fungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat memberikan hasil output yang dapat berupa nilai ataupun sebuah hasil operasi. Hasil akhir fungsi akan berupa sebuah nilai balik (return). Nama fungsi yang didefinisikan sendiri oleh programmer tidak boleh sama dengan nama build-in function pada compiler C++. Fungsi digunakan agar programmer dapat menghindari penulisan bagian program (kode) berulang-ulang, dapat menyusun kode program agar terlihat lebih rapi dan kemudahan dalam debugging program. Parameter adalah nama-nama peubah yang dideklarsikan pada bagian header fungsi. Programmer dapat membuat fungsi yang didefinisikan sendiri olehnya.
Bentuk umumnya :
Rounded Rectangle: Deklarasi parameter
{
    Isi fungsi
}
 




7.1       Prototipe Fungsi
Sebuah fungsi tidak dapat dipanggil kecuali sudah dideklarasikan, deklarasi fungsi dikenal dengan sebutan prototipe fungsi. Prototipe fungsi berupa :
1. Nama Fungsi
2. Tipe nilai fungsi
3. Jumlah dan tipe argumen
Dan diakhiri dengan titik koma, sebagaimana pada pendeklarasian variabel. Sebagai contoh:
1.      long kuadrat (long k) ;
Pada contoh pertama, fungsi kuadrat ( ) mempunyai argumen bertipe long dan nilai balik bertipe long dengan nama argumen k.


2.      void garis ( );
Pada contoh kedua, fungsi garis ( ) tidak memiliki argumen dan nilai baliknya tidak ada (void).
3.      double maks (double x, double y)
Pada contoh ketiga, fungsi maks( ) mempunyai dua buah argumen, dengan masing masing argumen bertipe double.
Contoh :
           
Contoh 2:
Output:
1! adalah 1
2! adalah 2
3! adalah 6
4! adalah 24
5! adalah 120

Penjelasan :
Fungsi yang didefinisikan oleh pemrogram terdiri atas dua bagian, yaitu judul (header) dan isi (body). Judul dari sebuah fungsi terdiri dari tipe return (double), nama fungsi (hasil) dan list parameter ( int A, int B). Jadi, judul untuk fungsi hasil adalah
double hasil (int A, int B).
Isi dari sebuah fungsi adalah blok kode yang mengikuti judulnya. Berisi kode yang menjalankan aksi dari fungsi, termasuk pernyataan return yang memuat nilai fungsi yang akan dikembalikan ke yang memanggilnya, Isi dari fungsi hasil() adalah
{ return A * B; }
Biasanya isi dari fungsi cukup besar. Meskipun demikian, judulnya tetap hanya berada dalam satu baris. Isi dari sebuah fungsi dapat memanggil fungsi itu sendiri (disebut rekursif) atau memanggil fungsi lainnya. Pernyataan return dari sebuah fungsi mempunyai dua manfaat, yaitu akan mengakhiri fungsi dan mengembalikan nilainya ke program pemanggil. Bentuk umum pernyataan return adalah :
Rounded Rectangle: return ekspresi;
 


Dengan ekspresi adalah sebuah ekspresi yang nilainya dinyatakan untuk sebuah variable yang tipenya sama seperti tipe return. Ada juga fungsi yang tidak memberikan nilai balik atau tipe returnnya void.

7.2       Variabel Lokal dan Variabel Eksternal
Variabel lokal adalah variabel yang didefinisikan dalam suatu fungsi tertentu, sehingga hanya dikenal dalam fungsi tersebut. Dalam hal ini artinya suatu fungsi tidak akan mengenal variabel lokal dan fungsi lain. Suatu fungsi hanya akan mengenal variabel yang didefinisikan dalam fungsi yang bersangkutan.
Variabel eksternal adalah variabel yang bersifat global yang dapat dikenali oleh seluruh fungsi yang terdapat dalam program tersebut. Seluruh fungsi akan mengenal variabel yang bersifat eksternal ini. Variabel eksternal dideklarasikan diluar fungsi dan sejajar dengan prototipe fungsi serta pengarah kompiler.
Contoh :

Penjelasan :
Dalam pemograman tersebut terdapat variabel lokal dan variabel eksternal yang namanya sama yaitu data. Dalam fungsi main() dan fungsi_satu() terdapat variabel lokal dengan nama sama tetapi sebetulnya lokasi penyimpanannya dalam memori berbeda, sehingga dua variabel itu berbeda dan tidak saling mengenal. Fungsi_satu() sebetulnya mengenal variabel eksternal data yang nilainya 100, tetapi karena dalam fungsi tersebut tedapat variabel lokal data yang bernilai 300, maka yang diprioritaskan untuk diproses dalam fungsi tersebut adalah variabel lokalnya. Jika dalam fungsi terdapat variabel lokal dan variabel eksternal yang sama, maka diprioritaskan untuk diproses variabel lokal. Dalam fungsi_dua() tidak terdapat variabel lokal sehingga yang diproses pada fungsi tersebut adalah variabel eksternalnya.

7.3       Parameter
Parameter adalah sarana komunikasi antar fungsi. Pengertian antar fungsi adalah antara fungsi dengan fungsi lain termasuk antara fungsi dengan fungsi utama. Dalam pemograman yang melibatkan fungsi, diusahakan agar fumgsi bersifat independen artinya
tidak tergantung pada fungsi lain. Setiap fungsi hanya mengerjakan satu tugas tertentu. Antar fungsi saling berkomunikasi menggunakan parameter.
Terdapat dua macam bentuk parameter dalam hubungannya dengan penggunan fungsi
dalam program yaitu :
·         Parameter Formal : parameter yang diberi nilai. Parameter formal merupakan parameter yang terdapat dalam daftar parameter fungsi.
·         Parameter Aktual : parameter yang memberi nilai. Parameter fungsi dan digunakan untuk memberi nilai pada parameter formal.
Dalam contoh program perkalian di atas (sub bab prototipe fungsi), parameter formal terdapat pada pendefinisan fungsi :
Sedangkan parameter aktual terdapat pada pemanggilan fungsi :

Cara Melewatkan Parameter
Cara melewatkan suatu parameter dalam Bahasa C++ ada dua cara yaitu :
                                I.            Pemanggilan Secara Nilai (Call by Value)
a.      Call by value akan menyalin nilai dari parameter aktual ke parameter formal.
b.      Yang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori letak dari datanya.
c.       Fungsi yang menerima kiriman nilai akan menyimpannya di alamat terpisah dari nilai aslinya yang digunakan oleh bagian program yang memanggil fungsi.
d.      Perubahan nilai di fungsi (parameter formal) tidak akan merubah nilai asli di bagian program yang memanggilnya.
e.      Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian program yang memanggil fungsi ke fungsi yang dipanggil.
f.        Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuk sebuah variabel, elemen array atau konstanta saja.
Contoh :
                              II.            Pemanggilan Secara Referensi (Call by Reference)
a.      Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat dari suatu variabel ke dalam fungsi.
b.      Yang dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan nilai datanya.
c.       Fungsi yang menerima kiriman alamat ini maka menggunakan alamat yang sama untuk mendapatkan nilai datanya.
d.      Perubahan nilai di fungsi akan merubah nilai asli di bagian program yang memanggil fungsi.
e.      Pengiriman parameter secara referensi adalah pengiriman dua arah, yaitu dari fungsi pemanggil ke fungsi yang dipanggil dan juga sebaliknya.
f.        Pengiriman secara acuan tidak dapat dilakukan untuk suatu ungkapan.
Contoh :


7.4       Nilai Bawaan Untuk Argumen Fungsi
Salah satu keistimewaan C++ yang sangat bermanfaat dalam pemrograman adalah adanya kemampuan untuk menyetel nilai default Argumen fungsi. Argumen-argumen yang mempunyai nilai bawaan nantinya dapat tidak disertakan di dalam pemanggilan fungsi dan dengan sendirinya C++ akan menggunakan nilai bawaan dari argumen yang tidak disertakan. Contoh :


Penjelasan :
Jika pada program, argumen sayHello tidak diberikan, maka program akan menampilkan
Sebanyak satu kali, namun jika argumen pada fungsi sayHello diberikan, misalkan sayHello(4), maka program akan menampilkan 4 kali. Itulah yang disebut dengan nilai default pada fungsi.

7.5       Rekursi
Merupakan suatu fungsi dapat memanggil fungsi yang merupakan dirinya sendiri.
Penerapan rekursi diantaranya untuk menghitung nilai : xn
Contohnya :


7.6       Fungsi-Fungsi Bawaan C++
Kita dapat menggunakan fungsi-fungsi bawaan C++, misalkan fungsi-fungsi matematika, pengolah kata dan banyak lagi. Sebenarnya (mungkin tidak terasa bagi kita) main juga adalah fungsi, jadi tanpa kita sadari sebenarnya kita telah menggunakan fungsi. Untuk dapat menggunakan fungsi-fungsi tersebut kita harus meng-include file dimana fungsi tersebut didefinisikan
Misalkan :
·         Fungsi – fungsi matematika, kita harus meng-include file math.h
·         Fungsi – fungsi pengolah string dan karakter, kita harus meng-include file string.h
·         Fungsi clrscr(), getch(), getche() dalam file conio.h