Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehIndra Tanuwidjaja Telah diubah "6 tahun yang lalu
1
As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com
Function (Fungsi) As’ad Djamalilleil
2
Analogi Kegunaan Function
Amir, Budi dan Cici mendapat tugas oleh Ibu mereka untuk membersihkan rumah. Si Ibu kemudian membagi tugas tersebut agar lebih mudah dan cepat diselesaikan. Amir mendapat tugas mengepel lantai. Budi bertugas mengatur barang-barang di dalam rumah. Cici bertugas mengecat dinding rumah. Si Ibu dapat dengan mudah mengetahui sumber kesalahan apabila terjadi.
3
Apabila lantai masih terlihat kotor, tentunya kesalahan tersebut dilakukan oleh Amir. Apabila barang-barang masih terlihat berantakan, maka Budi-lah biang keroknya. Sedangkan bila dinding terlihat masih kusam, maka tentunya Cici yang melakukan kesalahan. Ibu dapat dengan mudah mengontrol kegiatan tersebut hingga selesai dengan benar.
4
Si Ibu dapat kita anggap sebagai diri kita sendiri (programmer), sedangkan pekerjaan yang ingin diselesaikan adalah program yang ingin kita buat. Amir, Budi, dan Cici dapat dianggap sebagai function (fungsi), dimana setiap function diberikan tugas yang tertentu sehingga bila terjadi kesalahan dalam logika pemrograman, maka dapat dengan mudah dilacak letak kesalahannya untuk kemudian diperbaiki.
5
Proses atau tugas dikerjakan oleh prosesor
Proses atau tugas dikerjakan oleh prosesor. Prosesor dikendalikan oleh program. Program yang kita buat dapat diselesaikan dengan cepat dan mudah apabila program tersebut kita pecah menjadi sub-sub program (program-program kecil) yang lebih dikenal di C++ dengan istilah function (fungsi).Setiap sub-program atau fungsi memiliki sifat seperti program pada umumnya, yaitu dapat menerima input dan memberikan output. Program utama (main-program) atau fungsi utama dapat memanggil sub-sub program yang lain. Begitu pula dengan sub-program, dapat memanggil sub-sub program yang lain tetapi lewat kendali main-program.
6
Gambaran Penggunaan Fungsi
input output proses (program) main program sub Keterangan: function call (pemanggil fungsi), memberikan input ke fungsi function return (kembalian fungsi), mengeluarkan output
7
Definisi Fungsi tipeFungsi namaFungsi (daftar parameter) { …………………
return ekspresi; } tipeFungsi tipe dari ekpresi yang di-return oleh fungsi. Bila kita tidak menginginkan fungsi mengembalikan nilai apapun, maka kita dapat mengganti tipeFungsi dengan keyword “void” serta menghilangkan pernyataan return ekspresi. Apabila tipeFungsi tidak disertakan maka secara otomatis C++ menganggap fungsi tersebut bertipe “int”.
8
namaFungsi nama dari fungsi yang dibuat.
daftar parameter deklarasi variabel-variabel yang digunakan nantinya untuk menerima nilai yang dikirim dari pemanggil fungsi. Variabel yang dideklarasikan di bagian parameter akan dianggap sebagai variabel lokal sehingga hanya dikenali di dalam fungsi itu saja. Siklus hidup variabel lokal dimulai pada saat fungsi tersebut dijalankan sampai fungsi tersebut selesai dijalankan. return ekpresi disertakan hanya bila fungsi bukan bertipe “void”. Bagian ekspresi ini diisi dengan apa yang ingin dikembalikan oleh fungsi tersebut ke pemanggil fungsi. Bagian ekpresi biasanya berupa hasil proses dari fungsi tersebut.
9
Contoh: void garis(){ cout << "-------------------------\n"; }
void main(){ garis(); cout << “Muhammad Rasulullah\n"; garis(); contoh pemanggil fungsi
10
Contoh lain: void garis(){ int i; variabel lokal
for(i = 1; i <= 25; i++) cout << "-"; cout << endl; } void main(){ garis(); cout << “Muhammad Rasulullah\n";
11
Deklarasi Fungsi Deklarasi fungsi biasa dikenal juga dengan istilah proto-type fungsi. Deklarasi fungsi hanya diperlukan bila definisi fungsi-fungsi lain ditulis di bawah penulisan fungsi main/utama. Deklarasi fungsi ditulis di atas fungsi main. tipeFungsi namaFungsi(daftar tipe param);
12
Contoh: void garis(); deklarasi fungsi void main(){ garis();
cout << “Muhammad Rasulullah\n"; } void garis(){ cout << " \n"; definisi fungsi garis() terletak di bawah fungsi main(), oleh karena itu dibutuhkan deklarasi fungsi di atas fungsi main()
13
Input dan Output Fungsi
Fungsi seperti halnya program pada umumnya, dapat menerima input dan memberikan output. Input dapat diberikan dengan penggunaan parameter (parameter passing) dengan dua cara, yaitu: Passing By Value Passing By Reference Sedangkan output dapat diberikan lewat penggunaan statement return.
14
Passing By Value Pada teknik passing-by-value, parameter fungsi menangkap nilai (value) dari argumen yang dikirim dan disimpan ke dalam variabel yang berbeda lokasi memori-nya. Dikarenakan lokasi memori yang berbeda, perubahan nilai yang terjadi pada variabel tersebut tidak mempengaruhi nilai pada variabel yang dikirimkan sebagai argumen pada pemanggil fungsi.
15
void nilai(int a){ a = 10; } main(){ int a = 5; cout << "Nilai awal :" << a << endl; nilai(a); passing by value cout << "Nilai akhir:" << a << endl;
16
Passing By Reference Pada teknik passing-by-reference, parameter fungsi menangkap alamat memori dari argumen yang dikirim ke dalam variabel. Segala perubahan yang mengacu (refer) pada lokasi memori dari variabel yang dijadikan sebagai argumen pada pemanggil fungsi tentu saja akan langsung merubah nilainya, karena menggunakan lokasi memori yang sama.
17
void nilai(int &a){ passing by a = 10; reference
} main(){ int a = 5; cout << "Nilai awal :" << a << endl; nilai(a); cout << "Nilai akhir:" << a << endl;
18
---- atau ---- void nilai(int *a){ *a = 10; } main(){ int a = 5; cout << "Nilai awal :" << a << endl; nilai(&a); cout << "Nilai akhir:" << a << endl;
19
Contoh lain: long kuadrat(long l){
return l * l; penggunaan statement return } void main(){ long bil; cout << "Input sebuah bilangan : "; cin >> bil; cout << "Hasil kuadratnya = " << kuadrat(bil);
20
Variabel Global Variabel global adalah variabel yang dideklarasikan di luar fungsi. Variabel global dapat diakses (dikenali) di semua fungsi yang didefinisikan di dalam program.
21
int total; variabel global
lain(){ total *= 3; } main(){ total = 2; total++; lain(); cout << total;
22
Variabel Lokal Variabel lokal adalah variabel yang dideklarasikan di dalam definisi fungsi. Variabel lokal hanya dikenali di dalam fungsi itu saja. Siklus hidup variabel lokal dimulai pada saat fungsi tersebut dijalankan sampai fungsi tersebut selesai dijalankan. Parameter fungsi juga merupakan variabel lokal. Bila ada variabel global dan variabel lokal yang memiliki nama yang sama, maka variabel lokal-lah yang digunakan, kecuali menggunakan “operator scope resolution”
23
lain(){ int total = 1; total *= 5; cout << "total pada lain() = " << total << endl; } main(){ int total = 2; total++; lain(); cout << "total pada main() = " << total << endl;
24
Operator Scope Resolution
Operator ini berguna untuk mengakses variabel yang berada pada fungsi lain maupun variabel global yang memiliki nama yang sama dengan variabel lokal. Operator ini berbentuk dua titik-ganda (::)
25
int total; main(){ int total = 5; cout << "total lokal = " << total << endl; ::total = 7; contoh penggunaan operator scope resolution cout << "total global = " << ::total; getch(); }
26
Variabel Static Variabel static adalah variabel lokal yang memiliki nilai yang tetap/statis. Variabel ini tidak akan dihapus dari memory mulai dari saat diciptakan sampai program berhenti.
27
lain(){ static int total = 0; total++; cout << "Nilai total = " << total << endl; } main(){ lain();
28
Default Parameter Value
Parameter fungsi dapat memiliki nilai default, sehingga apabila pemanggilan fungsi tidak disertakan argumen, maka nilai default yang akan digunakan. Apabila pada pemanggilan fungsi turut disertakan pula argumen, maka nilai default parameter akan diabaikan.
29
lain(int angka = 5){ cout << angka << endl; } main(){ lain(23); lain(); lain(56);
30
Function Overloading Beberapa buah fungsi dapat memiliki nama yang sama, tetapi berbeda dari segi jumlah atau tipe parameternya. Teknik ini dikenal dengan function overloading. C++ akan memilih untuk menjalankan fungsi yang paling tepat digunakan berdasarkan jumlah argumen atau tipe argumen yang nantinya dicocokkan dengan fungsi-fungsi yang ada.
31
int lain(int angka){ return angka; } double lain(double angka){ float lain(int angka, float bil){ return (angka + bil); main(){ cout << lain(34.66) << endl; cout << lain(23,12.5) << endl; cout << lain(76) << endl;
32
Fungsi Rekursif Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Fungsi rekursif dapat diganti dengan fungsi yang berisi penggunaan statement iteratif, sehingga jauh lebih sederhana logika pengerjaannya dibandingkan dengan fungsi rekursif.
33
Contoh penggunaan fungsi rekursif untuk menghitung nilai faktorial dari sebuah bilangan bulat.
int faktorial(int a){ if(a <= 1) return 1; else return (a * faktorial(a - 1)); } main(){ cout << faktorial(4);
34
Contoh lain dengan menggunakan statement for.
int faktorial(int a){ int i, hasil = 1; for(i = a; i >= 1; i--) hasil *= i; return hasil; } main(){ cout << faktorial(4);
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.