MODUL VI
FUNGSI
Tujuan : Mahasiswa dapat membuat FUNGSI dengan keluaran dan void function melakukan pemanggilan FUNGSI dari program utama.
Waktu : 2 x 50 menit
Metode : Penugasan memodifikasi contoh program (lab) dan
mengalisa program (rumah)
Sebuah fungsi pada C++ pada umumnya berisi sejumlah pernyataan C++ yang dikemas dalam sebuah nama, dan nama ini dapat dipanggil beberapa kali dalam suatu kode C++.
Dalam suatu program sering kali lebih mudah kalau dipecah menjadi beberapa fungsi yang masing-masing fungsi melakukan satu/tugas tertentu saja. Fungsi yang telah dibuat dapat dipakai berulang-ulang bahkan oleh programmer lain yang tidak mengerti cara kerjanya tapi tahu cara pakainya saja, jadi detil detil yang rumit, yang merupakan bagian operasi dari program, dapat disembunyikan (prinsip ini dikenal dengan information hiding). Dengan dipecah menjadi beberapa fungsi maka pembuatan program menjadi lebih mudah karena kesalahan-kesalahan yang terjadi terlokalisir dalam masing-masing fungsi. Juga organisasi program menjadi lebih baik karena tugas dari fungsi utama main() menjadi sangat sederhana yaitu melakukan pemanggilan dari fungsi-fungsi ini mengikuti urutan yang dikehendaki. Masing-masing fungsi melakukan tugasnya, setelah selesai lalu kembali ke main(). Pemecahan program menjadi fungsi-fungsi ini dikenal sebagai modular programming atau pemrograman tersetruktur.
Fungsi-fungsi dalam C++ pada umumnya mempunyai sifat-sifat sebagai berikut:
Masing-masing fungsi mempunyai nama, aturan penamaan fungsi sama seperti penamaan variabel. Nama fungsi ini diikuti sepasang tanda kurung yang oleh C++ dipakai untuk membedakan fungsi dengan variabel. Dalam tanda kurung ini dapat berisi argumen-argumen fungsi tersebut. Jika fungsi ini tidak memerlukan argumen maka dalam tanda kurung ini tidak berisi apa-apa. Jika fungsi memerlukan argumen maka argumen-argumennya dapat berupa variabel-variabel dari berbagai tipe, antara argumen yang satu dengan argumen yang lain dipisahkan dengan koma.
Badan dari masing-masing fungsi, mulai segera setelah tanda kurung tutup dari nama fungsi, harus dimulai dengan tanda kurung { dan diakhiri dengan tanda kurung }. Badan dari fungsi ini berisi deklarasi variabel-variabel dan penyataan-pernyataan.
Fungsi secara umum akan dibagi menjadi dua yaitu fungsi yang tidak memiliki keluaran formal (void function) dan fungsi yang memiliki keluaran formal. Void function ini pengertiannya sama dengan prosedur di bahasa pemrograman pascal dan clipper.
C++ memperbolehkan pemanggilan fungsi oleh kode program yang ditulis sebelum fungsi yang dipanggil di buat. Untuk pemanggilan fungsi seperti ini maka fungsi tersebut harus memiliki prototipe. Prototipe diletakan di bagian awal program sehingga walaupun fungsi tersebut belum ditulis tetapi namanya sudah dikenal terlebih dahulu.
Sebelum digunakan (dipanggil), suatu fungsi harus dideklarasikan terlebih dahulu. Pendeklarasiannya yaitu :
Tipe_fungsi nama_fungsi(parameter_fungsi)
{
statement
statement
}
Hal-hal yang perlu diperhatikan dalam penggunaan fungsi :
1. Kalau tipe fungsi tidak disebutkan, maka akan dianggap sebagai fungsi dengan nilai keluaran bertipe integer.
2. Untuk fungsi yang memiliki keluaran bertipe bukan integer, maka diperlukan pendefinisian penentu tipe fungsi.
3. Untuk fungsi yang tidak mempunyai nilai keluaran maka dimasukkan ke dalam tipe void
4. Pernyataan yang diberikan untuk memberikan nilai akhir fungsi berupa pernyataan return.
5. Suatu fungsi dapat menghasilkan nilai balik bagi fungsi pemanggilnya.
Contoh fungsi tanpa keluaran untuk mengkuadratkan bilangan-bilangan bulat adalah sebagai berikut:
void hitung_pangkat3(int n)
{
int pangkat3= 0;
kuadrat = n * n;
cout << "pangkat 3 dari " << n << " adalah "<< pangkat3<< "\n";
return;
}
Dalam C++, argumen-argumen dari fungsi dapat mempunyai harga default. Jika pada saat fungsi yang mempunyai default argumen ini dipanggil namun argumennya dihilangkan maka kompiler otomatis akan memakai nilai default dari argumen yang dihilangkan tersebut. Jika pada saat dipanggil argumennya diisi maka isi ini yang dipakai. Default argumen ini membuat program menjadi lebih fleksibel, argumen-argumen yang nilai defaultnya tidak perlu diubah tidak perlu diisi namun ada aturan yang perlu diperhatikan.
Bila kita menghilangkan argumen yang pertama maka argumen-argumen selanjutnya juga harus dihilangkan. Kita dapat menghilangkan argumen yang kedua dan mengisi argumen yang pertama. Aturan ini tidak terikat padajumlah argumen. Secara umum aturannya adalah kalau kita menghilangkan suatu argumen maka kita harus menghilangkan semua argumen dikanannya. Contoh program berikut ini memperjelas konsep di atas.
// C1_5.CPP
#include <iostream.h>
// Output program ini adalah :
// pertama = 1, kedua = 2.3, ketiga = 4
// pertama = 5, kedua = 2.3, ketiga = 4
// pertama =6, kedua = 7.8, ketiga =4
// pertama = 9, kedua = 10.11, ketiga =12
//Prototipedari fungsi
void tampilkan(int-l, float=2.3, long=4);
main ()
{
tampilkan(); // semua default
tampilkan(5); // isi argumen pertama
tampilkan(6, 7.8); // isi pertama dan kedua
tampilkan(9, 10.11, 12L); // isi ketiganya
return 0;
}
void tampilkan(int pertama, float kedua, long ketiga)
{
cout << "\npertama = " << pertama;
cout << ", kedua ==" << kedua;
cout << ", ketiga = " << ketiga;
return;
}
Perhatikan bahwa untuk memanggil fungsi cukup dengan menulis namanya, termasuk tanda kurung dan argumen-argumennya dan diakhiri dengan titik koma (;).
// C1_6.CPP
#include <stdio.h>
#include <conio.h>
float tambah(float x, float y);//pendeklarasian fungsi tambah(),ada titik koma
void main()
{ float a, b, c;
clrscr();
printf("A = "); scanf("%f", &a);
printf("B = "); scanf("%f", &b);
c = tambah(a, b); // pemanggilan fungsi tambah()
printf("A + B = %.2f", c);
getch();
}
float tambah(float x, float y) // Definisi fungsi , tanpa titik koma
{
return (x+y); // Nilai balik fungsi
}
// C1_7.CPP
#include <stdio.h>
#include <conio.h>
void tukar(int x, int y); // pendeklarasian fungsi
void main()
{ int a,b;
clrscr();
a = 15; b = 10;
printf("Nilai sebelum pemanggilan fungsi\n");
printf("a = %i b = %i\n\n", a, b); // a dan b sebelum pemanggilan fungsi
tukar(a,b); // pemanggilan fungsi tukar()
printf("Nilai setelah pemanggilan fungsi\n");
printf("a = %i b = %i\n\n", a, b); // a dan b setelah pemanggilan fungsi
getch();
}
void tukar(int x, int y) // Pendefinisian fungsi tukar()
{ int z; // variabel sementara
z = x;
x = y;
y = z;
printf("Nilai di akhir fungsi tukar()\n");
printf("x = %i y = %i\n\n", x, y);
}
0 komentar:
Posting Komentar