Transcript Fungsi

Fungsi
Fungsi (Sub Program) :
• Beberapa statements digabungkan dalam suatu modul
(fungsi atau sub program) untuk menyelesaikan suatu
tugas tertentu,
• Merupakan sekumpulan instruksi Yang membentuk satu
unit serta memiliki nama,
• Modul diperlukan bila sekumpulan statements tersebut
sering digunakan pada tempat lain di dalam program,
• Digunakan untuk membantu organisasi program dan
mengurangi besar (size) program.
Keuntungan menggunakan modul (fungsi):
1. Rancangan Top - down dengan teknik Sub goal, program
besar dapat dibagi menjadi modul-modul yang lebih kecil.
2. Dapat dikerjakan oleh lebih dari satu orang dengan
koordinasi yang relatif mudah.
3. Mencari kesalahan relatif lebih mudah karena alur logika
lebih jelas, dan kesa-lahan dapat dilokalisir dalam satu
modul.
4. Modifikasi dapat dilakukan, tanpa meng-gangu program
secara keseluruhan.
5. Mempermudah dokumentasi.
• Bahasa C melengkapi fasilitas modular dengan
menggunakan fungsi pada setiap SubProgram.
• Contoh pembagian program menjadi beberapa subprogram:
Program Utama
SubProgram SubProgram
SubProgram
SubProgram
SubProgram
Sifat-sifat modul yang baik adalah :
 Fan-In yang tinggi, yaitu makin sering suatu modul dipanggil oleh
pengguna, makin tinggi nilai fan-in.
 Fan-Out yang rendah, makin sedikit tugas yang dilakukan oleh suatu
modul makin rendah nilai fan-out. Dengan demikian, makin spesifik
tugas yang dikerjakan oleh modul tersebut.
 Self-Contained, atau memenuhi kebutu-hannya sendiri.
Format Deklarasi Fungsi Secara Umum:
type function_name(<argument_list>)
{
<statement_list>
}
Dimana:
• type  tipe data dari return value.
• function_name  nama fungsi sesuai C++
• argument_list  variable input
• statement_list  kumpulan instruksi
Argument (Function Parameter)
Argument merupakan data yang dikirim dari program ke
fungsi dan sebaliknya. Arguments dipergunakan untuk
mengirim data yang akan diproses.
Ada 2 jenis cara untuk mengirimkan argumen yaitu:
1. Passing by Value
- Pada metode ini yang dikirimkan adalah nilai (value) dari variable
yang dikirim sebagai argumen.
- Perubahan terhadap argumen yang terjadi di dalam fungsi, tidak
akan mempengaruhi nilai dari variable tersebut dari fungsi
pemanggil ( hanya 1 arah, masuk ke fungsi ).
Contoh Program:
#include <stdio.h>
/* deklarasi fungsi (function declaration) */
void print (int num);
void main(){
int num = 7007;
print(num); /* nilai variable ‘num’ tetap 7007 */
}
/* definisi fungsi (function definition) */
void print (int num)
{
cout << “ Nilai bilangan : “ << num++ << endl;
}
2. Passing by Reference
1. Pada cara ini yang dikirimkan adalah reference (pointer) dari
variable yang dikirim sebagai argumen.
2. Perubahan argumen di dalam fungsi, akan mempengaruhi nilai
variable pada pemanggil. Karena yang dikirimkan adalah pointer.
3. Jenis data yang dikirim sebagai argumen harus berupa variable,
tidak dapat berupa bilangan konstan.
4. Pada C++ diperkenalkan reference parameter untuk menghindari
penggunaan pointer untuk melakukan passing by Reference.
/* Program C Hitung Luas Segi Tiga Tanpa Modul */
#include <stdio.h>
void main()
{
/* Deklarasi Variabel */
float Alas, Tinggi, Luas;
/* Memasukkan Data */
printf (“Masukkan Alas = “);
scanf( “%f”, &Alas);
printf (“Masukkan Tinggi = “);
scanf( “%f”, &Alas);
/* Menghitung Luas */
Luas = 0.5 * Alas * Tinggi;
/* Menampilkan Hasil */
printf (“Luas Segi Tiga = %f \n”, Luas);
}
Program tersebut di atas akan dimodifikasi dengan
menggunakan beberapa modul (fungsi), antara lain:
• Fungsi Memasukkan Data
• Fungsi Menghitung Luas Segi Tiga
• Fungsi Menampilkan Hasil Luas
• Fungsi Utama (yang mengontrol tiga fungsi di atas).
/* Program C Hitung Luas Segi Tiga Menggunakan Modul */
#include <stdio.h>
void Masuk_Data ( float &Alas, float &Tinggi )
{
printf (“Masukkan Alas = “);
scanf( “%f”, &Alas);
printf (“Masukkan Tinggi = “);
scanf( “%f”, &Alas);
}
float Hitung_Luas ( float Alas, float Tinggi )
{
float Luas;
Luas = 0.5 * Alas * Tinggi;
return Luas;
}
void Tampil_Data ( float Luas )
{
printf ( “Luas Segi Tiga = %f \n”, Luas );
}
void main() {
float Alas, Tinggi, Luas;
/* Pemanggilan Fungsi */
Masuk_Data ( Alas, Tinggi );
Luas = Hitung_Luas ( Alas, Tinggi );
Tampil_Data ( Luas );
}
Default Argumen
C++ mempunyai fasilitas default argument, yaitu suatu
nilai tertentu yang akan dipakai sebagai argumen bila
fungsi tidak dipanggil dengan argumen lengkap.
Contoh Program:
#include <stdio.h>
void printMsg (char* msg =””, FILE* stream = stdout );
void main()
{
/* print “Write Error” to standard output (stdout)
using default argument at parameter 2 */
printMsg( “ Write Error ! ” ) ;
/* print message to printer
call printMsg with complete argument */
printMsg(“Process completed.”, stdprn);
/* using default argumen1 1 and 2
print “ Message : “ to standard output */
printMsg();
}
void printMsg( char * msg, FILE * stream )
{
fprintf(stream, “ Message: %s \n ”, msg ) ;
}
Return Value
Satu fungsi setelah melaksanakan pekerjaan, maka
akan mengirimkan hasil, hasil dari fungsi dikembalikan
dengan statement return.
Contoh program:
/* Program C menghasilkan return value */
#include <stdio.h>
float lbsTokg( float );
/* function declaration */
void main()
{
float lbs, kgs;
printf (“ Enter your weight in pounds : “);
scanf( “%f”, &lbs );
kgs = lbsTokg( lbs ); /* calling function */
printf (“ Your weight in Kilograms is %f ”, kgs);
}
/* lbsTokg () function definition */
float lbsTokg ( float pounds )
{
float kilograms = 0.453592 * pounds;
return kilograms;
}