FUNGSI
Deklarasi dan definisi fungsi
Baik data maupun fungsi harus dideklarasikan. Data perlu dideklarasikan agar compiler tahu berapa byte memori yang harus disediakan untuk data yang bersangkutan, sedangkan fungsi perlu dideklarasikan agar compiler dapat memeriksa ketepatan pemanggilan fungsi yang bersangkutan. Deklarasi dan definisi adalah langkah awal dalam setiap penulisan program tidakterkecuali dalam bahasa C++.
Parameter fungsi
adalah variabel yang menyertai fungsi tersebut baik saat deklarasi maupun saat pemanggilan fungsi. Dalam bahasa C dikenal dua jenis parameter, yaitu parameter formal dan aktual. Parameter formal adalah parameter yang berupa variabel yang ada dalam definisi fungsi saat dideklarasikan. Sedangkan parameter aktual adalah parameter yang bisa berupa variabel atau konstanta yang dipakai saat pemanggilan fungsi.
Nilai balik
Pada pembahasan ini, akan diberikan contoh program tentang Fungsi Dengan nilai balik dan tanpa nilai balik. Dalam contoh terdapat 2 buah variable x dan y akan diinput kemudian dikalikan. Proses input dilakukan dalam fungsi main() dan proses perkalian dilakukan dalam fungsi kali.Diberikan 2 macam contoh untuk memperlihatkan bagaimana perbedaan antara Fungsi tanpa nilai balik dengan fungsi yang memberikan nilai balik. Kedua contoh memberikan hasil yang sama.
Contoh Fungsi Tanpa Nilai Balik:
Penjelasan :
Fungsi kali dipanggil dan mengirim nilai variable x dan y dari program utama ke dalam fungsi kali. Nilai tersebut kemudian diterima oleh variable a dan b. Perhatikan bahwa variable x, y, a, dan b harus memiliki tipe yang sama. Dalam fungsi kali, nilai a dan b kemudian dikalikan. Karena fungsi kali bertipe void (tidak dapat memberikan nilai balik) maka hasil kali langsung dicetak dalam fungsi itu sendiri.
Fungsi rekursif
Fungsi rekursif umumnya dipakai untuk permasalahan yang memiliki langkah penyelesaian yang terpola atau langkah-langkah yang teratur. Bila kita memiliki suatu permasalahan dan kita mengetahui algoritma penyelesaiannya, kadang-kadang fungsi rekursif menjadi pilihan kita bila memang memungkinkan untuk dipergunakan.
Pointer ke fungsi
Suatu fungsi dalam C mempunyai bentuk:
tipe_keluaran nama_fungsi ( tipe_parameter_1
parameter_fungsi_1,
tipe_parameter_2
parameter_fungsi_2,
.....
tipe_parameter_n
parameter_fungsi_n )
contoh fungsi main yang biasa dipakai:
int main(int argc, char argv[][])
{
return 0;
}
Pada fungsi main diatas, keluaran fungsi berupa integer (int), nama fungsi main, parameter1 bertipe integer, parameter 2 bertipe char. Instruksi return akan mengembalikan keluaran fungsi ini, keluaran fungsi ini adalah 0.
parameter2 fungsi main diatas adalah array dua dimensi, maka seperti yang telah kita pelajari diatas, maka fungsi main diatas dapat ditulis ulang dengan pointer seperti berikut:
int main(int argc, char **argv)
{
return 0;
}
suatu fungsi pertukaran nilai X dan nilai Y dituliskan sebagai berikut:
#include
int hasilY;
int tukar(int X,int Y)
{
int Z;
Z = X;
X = Y;
Y = Z;
hasilY = Y;
return X;
}
int main()
{
int X,Y,Z
X=10;
Y=20;
printf("sebelum ditukar:\n");
printf("X = %d\n",X);
printf("Y = %d\n",Y);
Z = tukar(X,Y);
printf("setelah ditukar:\n");
printf("X = %d\n",Z);
printf("Y = %d\n",hasilY);
}
Program diatas melibatkan variabel global hasilY, sebagai parameter penyimpan nilai Y setelah ditukar. Sedangkan nilai X setelah ditukar digunakan sebagai keluar fungsi tukar. Program seperti ini mempunyai kekurangan karena menggunakan variabel global, selain memboroskan memori, ada kemungkinan kesamaan dalam penamaan antara variabel satu dengan variabel yang lain.
Maka program diatas diubah menjadi:
#include
void tukar(int *X,int *Y)
{
int Z;
Z = *X;
*X = *Y;
*Y = Z;
}
int main()
{
int A,B;
A=10;
B=20;
printf("sebelum ditukar:\n");
printf("A = %d\n",A);
printf("B = %d\n",B);
tukar(&A,&B);
printf("setelah ditukar:\n");
printf("A = %d\n", A);
printf("B = %d\n", B);
}
Bagaimana cara kerja fungsi tukar diatas?
1. Parameter fungsi diinisialisasi sebagai pointer *X dan *Y.
2. Saat pemanggilan fungsi tukar:
tukar(&A, &B);
Maka terjadi penunjukan alamat A dan B oleh pointer *X dan *Y.
3. Karena penunjukan oleh pointer ini, maka perubahan nilai A dan B sesuai dengan perubahan pada pointer *X dan *Y, demikian pula perubahan nilai pointer *X dan *Y maka nilai A dan B juga berubah.
Modularisasi kode program
Modularisasi digunakan bila ada suatu permasalahan yang kompleks, sehingga langkah pertama adalah mengidentifikasikan tugas utama, setelah itu baru di bagi kedalam tugas yang lebih rinci.
Proses Modularisasi dapat disebut juga sebagai “Top-Down Design”.
1. Ease of understanding : Mudah untuk dipahami karena prosesnya adalah membagi modul yang kompleks menjadi modul-modul kecil yang lebih mudah dipahami secara rinci.
2. Reusable code : Kode dapat digunakan kembali.
3. Elimination of redudancy : Menghapus jumlah berlebihan yang tidak dibutuhkan.
4. Efficiency of maintenance : Pemeliharaan / Perawatan menjadi lebih efisien.
– Berikut adalah 6 langkah dari Modularisasi :
1. Definisi Masalah
– (Klasifikasikan masalah ke dalam Input, Proses, dan Output)
2. Pengelompokkan Kegiatan dalam Modul
– (Definisikan kegiatan dari modul-modul yang ada secara garis besar)
3. Hierarchy Chart
– (Membuat bagan susun untuk menjelaskan hirarki dan hubungan antara modul / kegiatannya)
4. Logika Main Program
– (Buat logika dari Main Program dengan pseudocode, utamakan apa saja yang dikerjakan oleh program terlebih dahulu)
5. Merancang Pseudocode bagi Modul
– (Buat logika untuk tiap-tiap modul dengan pseudocode-nya)
6. Desk Checking Algoritma
– (Mengecek kebenaran algoritma dengan data yang tersedia, minimal 2 data untuk desk checking)
baca juga
Post a Comment