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
   157   158   159   160   161   162   163   164   165   166   167