Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

FUNGSI.

Presentasi serupa


Presentasi berjudul: "FUNGSI."— Transcript presentasi:

1 FUNGSI

2 Pengantar Fungsi Fungsi merupakan sekumpulan pernyataan yang dikemas dalam sebuah nama Fungsi dapat dipanggil beberapa kali dari tempat yang berbeda dalam program Tujuan pembuatan fungsi : Memudahkan dalam pengembangan program Menghemat ukuran program Bagian fungsi yang menerima masukan disebut argumen atau parameter Nilai yang dihasilkan oleh fungsi disebut dengan nilai balik atau return value

3 Prototipe Fungsi Deklarasi fungsi disebut dengan prototipe fungsi
Sintaks : tipe_nilai_balik nama_fungsi (tipe_arg1 arg1, tipe arg2 arg2, …) Contoh : Float kel_lingk(float r); Int terbesar(int a, int b); Void isiarray(); Void adalah tipe nilai balik yang digunakan pada fungsi tanpa nilai balik Digunakan pada fungsi yang hanya menampilkan keterangan Prototipe fungsi dituliskan sebelum fungsi main()

4 Definisi Fungsi Setiap fungsi yang dipanggil dalam program harus didefinisikan terlebih dulu Kalau definisi fungsi diletakkan sebelum fungsi main(), maka tidak perlu prototipe fungsi Prototipe fungsi hanya diperlukan jika definisi fungsi diletakkan setelah fungsi main() Untuk memberikan nilai balik, digunakan pernyataan return Penulisan return : - return(ungkapan) - return ungkapan

5 Contoh 1. Program tanpa prototipe fungsi. Fungsi tanpa nilai balik dan tanpa parameter (fungsi1.cpp) #include <constrea.h> void halo() { cout << "Halo"; } void main() clrscr(); halo(); getch();

6 Contoh 2. Program dengan prototipe fungsi. Fungsi mempunyai nilai balik dan parameter (fungsi2.cpp) #include <constrea.h> int jumlah(int a, int b); void main(){ clrscr(); cout << “Hasil penjumlahan : “ << jumlah(5,8); getch();} int jumlah(int a, int b) { return(a + b); }

7 Lingkup Variabel Macam variabel berdasar lingkupnya:
Variabel otomatis (lokal) Variabel eksternal (global) Variabel statis

8 Variabel Otomatis (Lokal)
Variabel yang didefinisikan didalam suatu fungsi dan berlaku sebagai variabel lokal bagi fungsi Variabel hanya dikenal di dalam fungsi dimana variabel itu didefinsikan dan tidak dikenal oleh fungsi lain Sifat variabel otomatis: Hanya diciptakan saat fungsi dipanggil Saat fungsi berakhir, variabel otomatis akan dihapus Hanya dapat diakses didalam fungsi yang mendefinisikannya Selang waktu antara penciptaan dan penghapusan variabel disebut sebagai lifetime atau waktu hidup

9 Contoh 3. Variabel otomatis / lokal (varlokal.cpp)
#include <constrea.h> void contoh(); void main(){ clrscr(); int x = 10; cout << "x pada main() : " << x << endl; contoh(); getch();} void contoh(){ int x = 15; cout << "x pada contoh() : " << x;}

10 Variabel Eksternal (Global)
Variabel yang didefinisikan di luar fungsi manapun sehingga dikenal oleh semua fungsi Variabel eksternal mempunyai lifetime selama program dieksekusi Variabel eksternal sebaiknya digunakan sesedikit mungkin atau bahkan tidak digunakan sama sekali

11 Contoh 4. Variabel eksternal / global (vargloba.cpp)
#include <constrea.h> int x = 10; void contoh(); void main(){ clrscr(); contoh(); cout << x; getch();} void contoh() { x++; }

12 Variabel Statis Sifat variabel statis: Sintaks:
Variabel hanya dapat diakses pada fungsi yang mendefinisikannya Variabel tidak hilang setelah eksekusi berakhir. Nilainya akan tetap dipertahankan sehingga akan dikenali pada pemanggilan fungsi untuk tahap berikutnya Inisialisasi oleh pemrogram hanya dilakukan sekali saja selama program dijalankan. Jika tidak ada inisialisasi secara eksplisit, maka variabel diisi dengan nilai nol Sintaks: static tipe_data nama_variabel; Contoh: static int angka;

13 Contoh 5. Variabel statis dan bukan statis (varstati.cpp)
#include <constrea.h> void contoh(); void main(){ contoh(); contoh(); contoh(); getch();} void contoh(){ static int x = 10; int y = 20; x++; y++; cout << "Harga x : " << x << " (variabel statis) " << endl; cout << "Harga y : " << y << " (bukan variabel statis) " << endl; cout << endl;}

14 Nilai Bawaan Argumen Fungsi
Fungsi yang mempunyai nilai bawaan (default) dapat dipanggil tanpa menyertakan argumen Nilai argumen akan diambil dari nilai bawaan Inisialisasi nilai bawaan dilakukan pada prototipe fungsi Contoh: void garis(char karakter = ‘-’, int jumlah = 30); Pada definisi fungsi tidak perlu mencantumkan nilai bawaan void garis(char karakter, int jumlah) { }

15 Nilai Bawaan Argumen Fungsi
Pemanggilan: Garis(); Garis(‘+’); Garis(‘-’,15); Garis(‘+’,15); Aturan: Argumen-argumen yang terletak disebelah kanan argumen yang diberi nilai bawan harus juga mempunyai nilai bawaan Sehingga pernyataan berikut ini akan menyebabkan kesalahan : void garis(char karakter = ‘-’, int jumlah);

16 Contoh 6. Fungsi dengan nilai argumen bawaan
#include <constrea.h> void garis(char karakter = '-', int jumlah = 30); void main(){ garis(); garis('+'); garis('-',15); garis('+',15); getch();} void garis(char karakter, int jumlah){ for (int i = 1; i <= jumlah; i++) cout << karakter; cout << endl;}

17 Passing Parameter Parameter formal dan parameter aktual
void contoh(int x); void main() { int y = 10; contoh(y); --- parameter aktual getch(); } void contoh(int x) --- parameter formal cout << x;

18 Passing Parameter by Value
Yang dikirimkan adalah nilai parameter Lokasi memori antara parameter aktual dan parameter formal berbeda Dideklarasikan tanpa tanda ‘&’ didepan parameter Saat parameter dikirimkan, yang terjadi adalah pengkopian nilai parameter aktual ke parameter formal Perubahan pada parameter formal tidak akan mempengaruhi parameter aktual

19 Passing Parameter by Reference
Yang dikirimkan adalah alamat memori Lokasi memori antara parameter aktual dan parameter formal sama Dideklarasikan dengan tanda ‘&’ didepan parameter Setelah parameter dikirimkan, yang terjadi adalah parameter aktual dan parameter formal menunjuk ke lokasi memori yang sama Perubahan pada parameter formal akan mempengaruhi parameter aktual

20 Contoh 7. Passing parameter by value dan by reference (byvalref.cpp)
#include <constrea.h> void contoh(int val, int &ref); void main(){ int v = 10, r = 20; contoh(v,r); cout << "Nilai v : " << v << endl; cout << "Nilai r : " << r; getch();} void contoh(int val, int &ref){ val++; ref++; cout << "Nilai val : " << val << endl; cout << "Nilai ref : " << ref << endl;}

21 Function Overloading Beberapa fungsi dengan nama sama yang mempunyai jumlah dan tipe argumen yang berbeda serta nilai balik yang berbeda pula Contoh: int kuadrat(int i) {return(i * i);} long kuadrat(long l) {return(l * l);} double kuadrat(double d) {return(d * d);} C++ akan memilih fungsi yang tepat dengan memeriksa tipe argumen Pembedaan fungsi dalam overloading jangan hanya menggunakan tipe nilai balik saja karena akan menimbulkan kerancuan

22 Rekursi Rekursi berarti fungsi yang memanggil dirinya sendiri
Contoh yang umum dari fungsi rekursi adalah fungsi faktorial 0! = 1 1! = 1 x 0! 2! = 2 x 1! n! = n x (n-1)!

23 Contoh 8. Faktorial dengan rekursi (faktor_re.cpp)
#include <constrea.h> long int faktorial(int x); void main(){ int a; cout << "masukkan sebuah bilangan : "; cin >> a; cout << a << "! adalah : " << faktorial(a); getch();} long int faktorial(int x){ if (x == 0) return(1); else return(x * faktorial(x - 1));}

24 Contoh 9. Faktorial dengan iterasi (fakto_it.cpp)
#include <constrea.h> void main(){ clrscr(); int i,x; long int fakto=1; cout << "Masukkan bilangan : "; cin >> x; for (i=1;i<=x;i++) { fakto = fakto * i; cout << i << "! = " << fakto << endl; } cout << "Faktorial dari " << x << " atau " << x << "! adalah : " << fakto; getch();}

25 Array Sebagai Argumen Fungsi
Penulisan array dimensi 1 sebagai parameter - void isi_array(int array[10], int &jumlah); - void isi_array(int array[], int &jumlah); Penulisan array dimensi 2 sebagai parameter - void isi_matrik(int matrik[10][10], int &bar, int &kol); - void isi_matrik(int matrik[][10], int &bar, int &kol);

26 String Sebagai Argumen Fungsi
Argumen string dinyatakan sebagai pointer yang menunjuk ke tipe char Akan dibahas pada bagian pointer

27 Latihan Buatlah program untuk merubah sudut derajat menjadi sudut radian dengan tipe nilai balik float Buatlah program untuk menghitung jarak peluru yang ditembakkan dari suatu lokasi dengan sudut penembakan (θ) dan kecepatan (V). Rumus : X = 2 x V02 x sin(θ) x cos(θ) /g. Tipe nilai balik float Buatlah program untuk menghitung luas dan keliling lingkaran dengan tipe nilai balik float Buatlah program yang berisi menu-menu untuk menghitung luas dan keliling dari berbagai bangun lainnya Buatlah program untuk menghitung akar suatu bilangan dengan tipe nilai balik float dan menghitung pangkat suatu bilangan dengan tipe nilai balik double Buatlah program gabungan macam-macam operasi matematika seperti penjumlahan, pengurangan, dsb

28 Latihan Buatlah program menebak angka dimana angka yang akan ditebak di acak terlebih dulu. Setelah user menebak maka program kemudian menentukan apakah tebakan benar atau salah Buatlah program untuk mencari pangkat sebuah bilangan dengan rekursi Buatlah program untuk menampilkan bilangan fibonacci dengan rekursi Buatlah program untuk menampilkan bilangan fibonacci dengan iterasi biasa


Download ppt "FUNGSI."

Presentasi serupa


Iklan oleh Google