Page 162 - Project Akhir Media Pendidikan
P. 162
#include <stdio.h>
/* Mendeklarasikan pointer pF untuk menunjuk ke alamat fungsi
yang tidak memiliki parameter */
int (*pF) (int);
/* Mendefinisikan fungsi untuk menghitung nilai faktorial dari
sebuah bilangan bulat */
int Faktorial(int x) {
if (x == 0) {
return 1;
} else {
return x * Faktorial(x-1);
}
}
int main(void) {
/* Memerintahkan pointer pF untuk menunjuk ke alamat dari
fungsi Faktorial() */
pF = &Faktorial; /* dapat ditulis dengan pF = Faktorial; */
int n;
printf(“Masukkan nilai yang akan dihitung : ”);
scanf(“%d”, &n);
/* Menampilkan nilai faktorial melalui pointer pF */
printf(“%d! = %d”, n, pF(n));
return 0;
}
Contoh hasil yang akan diberikan dari program di atas adalah sebagai berikut.
Masukkan nilai yang akan dihitung : 5
5! = 120
Perhatikan kembali sintak di atas secara teliti, kita dapat menunjuk alamat dari fungsi
Faktorial() dengan pointer pF, sehingga kita dapat melakukan proses yang terdapat
dalam fungsi Faktorial() melalui pointer pF. Dalam contoh di atas, kita melakukan
pemanggilan fungsi tersebut dengan cara menuliskan statemen pF(5).
Sebagai bahan perbandingan dengan contoh sebelumnya, di sini kita akan menuliskan
program lainnya yang sama-sama menggunakan pointer untuk mengakses sebuah
fungsi. Adapun sintak programnya adalah sebagai berikut.
#include <stdio.h>
158