Algoritma & Pemograman 2 (C++) Joko Trianto Joko_Unpam@yahoo.com REF : - Eman SJ - Rhenaldi munir
Chapter 1 Fungsi (Function)
Fungsi (Function) Sekumpulan perintah operasi program yang dapat menerima input dan dapat memberikan hasil/output berupa nilai ataupun sebuah hasil operasi. Kegunaan Fungsi : Mengurangi pengulangan penulisan program yang sama. Program menjadi lebih terstruktur, sehingga mudah dipahami dan lebih dapat dikembangkan.
Gambaran Fungsi (Function Visualization) 1 fn_kesatu(); { } main() { } statement1; ....... statementN; statement1; fn_kesatu(); fn_kedua(); { } statement2; statement1; fn_kedua(); ....... fn_ketiga(); statementN; statement3; statement4; fn_ketiga(); { } statement1; ....... statementN;
Gambaran Fungsi (Function Visualization) 2 fn_kesatu(); { } main() { } statement1; ....... statementN; statement1; fn_kesatu(); fn_kedua(); { } statement2; statement1; fn_kedua(); ....... fn_ketiga(); statementN; statement3; statement4; fn_ketiga(); { } fn_kesatu(); statement1; ....... Dapat dipanggil/digunakan lebih dari satu kali. statementN;
Gambaran Fungsi (Function Visualization) 3 fn_kesatu(); { } Fungsi dapat memanggil fungsi yang lainnya. main() { } statement1; ....... statementN; statement1; fn_kesatu(); fn_kedua(); { } statement2; statement1; fn_kedua(); ....... fn_ketiga(); statementN; statement3; statement4; fn_ketiga(); { } statement1; ....... statementN; fn_kedua();
Gambaran Fungsi (Function Visualization) 4 fn_kesatu(); { } main() { } statement1; ....... statementN; statement1; fn_kesatu(); Fungsi dapat memanggil dirinya sendiri (yang dinamakan rekursif). fn_kedua(); { } statement2; statement1; fn_kedua(); ....... fn_ketiga(); statementN; statement3; statement4; fn_ketiga(); { } statement1; ....... statementN; fn_ketiga();
Fungsi/Function : Contoh <fungsi_garis.cpp> 1 #include <iostream.h> #include <conio.h> void garis() { cout <<"---------------------" <<endl; } void main() garis(); cout <<"Welcome to the jungle" <<endl; cout <<"Selamat belajar C++" <<endl; cout <<"Enjoy your life" <<endl; getch(); Fungsi dapat dipanggil/digunakan lebih dari satu kali.
Fungsi/Function : Contoh <fungsi_fungsipanggilfungsilain.cpp> 2 #include <iostream.h> #include <conio.h> void pindahbaris() { cout <<endl <<endl; } void garis() cout <<"---------------------" <<endl; pindahbaris(); void main() garis(); cout <<"Welcome to the jungle" <<endl; cout <<"Selamat belajar C++" <<endl; cout <<"Enjoy your life" <<endl; getch(); Fungsi dapat memanggil fungsi yang lainnya.
Struktur Fungsi Kepala Fungsi / Deklarasi Fungsi / Inisialisasi Fungsi Bentuk umum dari struktur fungsi ditulis dengan bentuk sebagai berikut; <tipe_nilai_balik> nm_fungsi(<tipe parameter1> <, tipe parameter2> <, ....>) { perintah/statement; } Keterangan: tipe_nilai_balik : Tipe data dari fungsi (digunakan untuk fungsi dengan nilai balik) Optional (boleh ditulis atau tidak). nama_fungsi() : Nama dari fungsi. tipe : Tipe data dari parameter. Optional (boleh ditulis atau tidak, jika tidak ada parameter). parameter : Argumen, boleh diisi atau dibiarkan kosong. Badan Fungsi
Ditulis sebelum fungsi main Prototipe Fungsi Prototipe merupakan uraian dari blok fungsi yang dapat digunakan untuk mendeklarasikan ke kompiler mengenai uraiannya. Sebuah fungsi tidak dapat dipanggil kecuali sudah dideklarasikan, deklarasi fungsi dikenal dengan sebutan prototipe. Prototipe fungsi berupa: <tipe_nilai_balik> nm_fungsi(<tipe parameter1> <, tipe parameter2> <, ....>) ; Keterangan: tipe_nilai_balik : Tipe data dari fungsi (digunakan untuk fungsi dengan nilai balik) Optional (boleh ditulis atau tidak). nama_fungsi() : Nama dari fungsi. tipe : Tipe data dari parameter. Optional (boleh ditulis atau tidak, jika tidak ada parameter). Parameter : Argumen, boleh diisi atau dibiarkan kosong. ; : Titik koma. Ditulis sebelum fungsi main Titik Koma
Fungsi Tanpa Nilai Balik 1 Fungsi Tanpa Nilai Balik = sebuah Prosedur Dalam bahasa C++, fungsi = fungsi dan prosedur = fungsi Fungsi tanpa nilai balik, pada bagian tipe_nilai_balik fungsinya ditulis void (void berarti tanpa nilai balik) Sebuah program yang besar biasanya disusun atas sejumlah bagian yang lebih kecil yang dinamakan subrutin atau subprogram Dalam beberapa bahasa pemograman Subroutine Function Procedure Subrutin yang menghasilkan nilai balik ketika subrutin dipanggil Subrutin yang tidak menghasilkan nilai balik ketika subrutin dipanggil
Fungsi Tanpa Nilai Balik : Contoh <fungsi_garis.cpp> 2 #include <iostream> using namespace std; void garis() { cout <<"---------------------" <<endl; } int main() { garis(); cout <<"Belajar Fungsi" <<endl; cout <<"Selamat belajar Fungsi C++ ya le " <<endl; cout <<"Enjoy your life" <<endl; return 0;
Fungsi Dengan Nilai Balik 1 Fungsi dengan nilai balik, pada bagian tipe_nilai_balik fungsinya dituliskan dengan tipe data (seperti : int, char[], float, double, dll.) Apabila tidak dituliskan tipe data untuk nilai balik dari fungsi tersebut, maka akan dikenal sebagai tipe data int (integer) oleh kompiler, karena default-nya adalah int (integer). Fungsi nilai balik menggunakan statement return u/ mengisi sebuah nilai ke fungsinya. int umurKu() { perintah/statement; } umurKu() { perintah/statement; } default : int (integer)
Fungsi Dengan Nilai Balik : Contoh <fungsi_nilaibalik.cpp> 2 #include <iostream> using namespace std; int umurKu() { return 19; } int main() int umurGUE; cout <<"Namaku : Dulkepret" <<endl; umurGUE = umurKu(); cout <<"Umurku : " <<umurGUE <<" tahun" <<endl; return 0;
Apa itu Parameter ....! int tambah( int nilai1, int nilai2 ) Suatu pendefinisan nilai-nilai dari objek-objek yang dideklarasikan pada bagian argumen di fungsi. Nilai-nilai dari objek tersebut didapat dari variabel-variabel yang berada pada program utama. Parameter bisa disebut juga dengan Variabel. Atau gini .... Parameter merupakan Variabel yang berada dalam baris argumen pada sebuah fungsi. int tambah( int nilai1, int nilai2 ) Parameter ke-1 Parameter ke-2 Nama fungsi argumen
Parameter fungsi ada 2 macam .... Parameter Formal Variabel yang terdapat pada daftar parameter (argumen) yang berada dalam definisi fungsi. Parameter Aktual Variabel yang digunakan pada pemanggilan suatu fungsi. int tambah(int nilai1, int nilai2) { return (nilai1 + nilai2); } Parameter Formal void main() { int a = 5, b = 10, c ; c = tambah(a, b); cout <<a <<“ + “ <<b <<“ = “ <<c ; } Parameter Aktual
Parameter Fungsi : Contoh <fungsi_parameter.cpp> #include <iostream> using namespace std; int tambah(int nilai1, int nilai2) { return (nilai1 + nilai2); } int main() int a, b, c; a = 5 ; b = 10 ; c = tambah(a, b); cout <<a <<" + " <<b <<" = " <<c ; return 0;
Parameter Fungsi Tambah lagi niy ....! Sudah kenal kan dengan Fungsi ....? (struktur/bentuk umum, prototipe, dll) Sudah kenal kan dengan Fungsi dengan nilai balik (fungsi/function) ....? Sudah kenal kan dengan Fungsi tanpa nilai balik (prosedur/procedure) ....? Sudah kenal kan dengan Parameter ...? Sudah kenal kan dengan Parameter Formal ...? Sudah kenal kan dengan Parameter Aktual ...? Tambah lagi niy ....! Parameter (Parameter Formal) yang bisa dan tidak mengembalikan nilai balik ke variabel pemanggilnya (Parameter Aktual)
Pemanggilan Parameter Fungsi Parameter tanpa nilai balik Call by Value (pemanggilan dengan nilai) Parameter dengan nilai balik Call by Reference (pemanggilan dengan referensi)
Call by Value (pemanggilan dengan nilai) Parameter Aktual akan dimasukkan ke Parameter Formal Parameter Aktual tidak dapat berubah, walaupun nilai dari Parameter Formal berubah.
Call by Value : Contoh <fungsi_param_value.cpp> #include <iostream> using namespace std; int tambah( int x,int y) { cout<<"Nilai dalam fungsi"<<endl; x = 20; y = 25; cout <<" x = " <<x <<" y = " <<y; cout <<endl <<endl; } int main() { int a, b; a = 5 ; b = 10 ; cout <<"Nilai sebelum fungsi" <<endl; cout <<"a = " <<a <<" b = " <<b; cout <<endl <<endl; tambah(a, b); cout <<"Nilai setelah fungsi" <<endl; return 0; } Page 1 Page 2
Call by Reference (pemanggilan dengan referensi) Parameter Aktual akan dimasukkan ke Parameter Formal Parameter Aktual akan berubah mengikuti perubahan nilai dari Parameter Formal. Parameter dalam definisi fungsi ditulis dengan awalan tanda &.
Call by Reference : Contoh <fungsi_param_ref.cpp> #include <iostream> using namespace std; int tambah( int &x,int &y) { cout<<"Nilai dalam fungsi"<<endl; x = 20; y = 25; cout <<" x = " <<x <<" y = " <<y; cout <<endl <<endl; } int main() { int a, b; a = 5 ; b = 10 ; cout <<"Nilai sebelum fungsi" <<endl; cout <<"a = " <<a <<" b = " <<b; cout <<endl <<endl; tambah(a, b); cout <<"Nilai setelah fungsi" <<endl; return 0; } Page 1 Page 2
Jenis Variabel Variabel Lokal Variabel Global/Eksternal Jenis Variabel Variabel Statis
Variabel Lokal Dideklarasikan di dalam fungsi Hanya dikenal oleh fungsi yang bersangkutan
Variabel Lokal : Contoh <variabel_lokal.cpp> #include <iostream> using namespace std; void lokal() { int x; x = 10; cout<<"x dalam fungsi lokal()= " <<x; } int main() { int x; x = 15; cout<<"x dalam fungsi main()= " <<x; cout <<endl <<endl; lokal(); cout <<"x dalam fungsi main()= " <<x; return 0; } Page 1 Page 2
Variabel Global Dideklarasikan di luar fungsi Dapat digunakan bersama-sama, tanpa harus deklarasi ulang
Variabel Global : Contoh <variabel_global.cpp> #include <iostream> using namespace std; int x = 5; void lokal() { x = x + 10; } int main() cout <<"Nilai x di dalam fungsi main() = " <<x ; cout <<endl <<endl; lokal(); cout <<"Nilai x setelah panggil fungsi lokal() = " <<x ; return 0;
Variabel Statis Hanya dikenal oleh fungsi yang bersangkutan, Kalau dideklarasikan di dalam fungsi secara lokal Dapat digunakan bersama-sama, Kalau dideklarasikan di luar fungsi secara global Pakai kata kunci static di depannya nama variabel ketika dideklarasikan
Variabel Statis : Contoh <variabel_statis.cpp> #include <iostream> using namespace std; void lokal() { static int x=6; x = x + 5; cout<<"x dalam fungsi lokal()= " <<x; cout <<endl; } int main() { int x = 99; lokal(); cout <<"x dalam fungsi main()= " <<x; cout <<endl; return 0; } Page 1 Page 2
Sekian