fungsi ii - BLOGdetik

advertisement
FUNGSI II
Variabel Statis

Sifat variabel statis:




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;
1
Contoh - 73
Fungsi …….. Contoh 73
PSEUDOCODE :
Algoritma fungsi variabel Global
KAMUS/DEKLARASI VARIABEL FUNCTION
x,y : int
FUNCTION Percobaan3
static x=22
y=66
x ++
y++
print(x)
print(y)
KAMUS/DEKLARASI VARIABEL
ALGORITMA/DESKRIPSI
Percobaan3() ; Percobaan3() ; Percobaan3()
2
Contoh : 73 - Algoritma
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Membuat function Percobaan3()
Static x  22
y  66
x++
y++
Mencetak/menampilkan nilai x
Mencetak/menampilkan nilai y
Memanggil function Percobaan3()
Memanggil function Percobaan3()
Memanggil function Percobaan3()
Selesai
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
Contoh:
void garis(char karakter, int jumlah)
{
…
}
3
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);
Contoh - 74
4
Fungsi …….. Contoh 74
PSEUDOCODE :
Algoritma fungsi dengan nilai argumen bawaan
KAMUS/DEKLARASI VARIABEL FUNCTION
x,y, jumlah : int
karakter : char
FUNCTION Grafik
for(i=1; ijumlah; i++)
print(karakter)
KAMUS/DEKLARASI VARIABEL
ALGORITMA/DESKRIPSI
Grafik() ; Grafik(‘+’) ; Grafik(‘-’,15) ;
Grafik(‘+’,15) ; Grafik()
Algoritma .....?????
5
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; }
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
6
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
Contoh -75
7
Algoritma .....?????
Pseudocode ...?????
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
8
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!
3! = 3 x 2 x 1!
4! = 4 x 3 x 2 x 1!
…
n! = n x (n-1)!
Contoh - 76
9
Algoritma .....?????
Pseudocode ...?????
Contoh - 77
10
Algoritma .....?????
Pseudocode ...?????
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);
11
String Sebagai Argumen
Fungsi
Argumen string dinyatakan
sebagai pointer yang menunjuk
ke tipe char
 Akan dibahas pada bagian
pointer

Latihan
1.
2.
3.
4.
5.
6.
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
12
Latihan
7.
8.
9.
10.
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
13
Download