FUNGSI
(BAGIAN 1)
9
Tujuan Instruksi Umum (TIU):
Mampu memahami konsep pemrograman modular dan mengetahui fungsi-fungsi standar yang disediakan oleh bahasa C sehingga mampu mengimplementasikannya dalam pembuatan program dengan menggunkan bahasa C untuk permasalahan yang cukup kompleks.
Tujuan Instruksi Khusus (TIK):
• Memahami kosep modular programming (sub program) dalam pemrograman • Mengetahui konsep fungsi dalam C dan penggunaannya dalam program • Mengetahui fungsi-fungsi standar yang telah disediakan oleh bahasa C
• Mampu membuat program yang memiliki fungsi-fungsi yang didefinisikan sendiri
Pembahasan Materi:
• Konsep dasar sub program
• Katagori fungsi dalam bahasa C • Standard Library Function
• Deklarasi dan pendefinisian fungsi • Prototype Fungsi • Hasil balik Fungsi
9.1. Konsep Dasar Sub Program
Salah satu metode perancangan program yang baik adalah menggunakan konsep modular atau sering disebut dengan pemrograman modular. Dengan metode ini suatu masalah dipecah menjadi beberapa masalah yang lebih kecil (ke dalam modul-modul). Dengan membagi masalah menjadi beberapa modul, maka masalah tersebut akan menjadi lebih sederhana, sehingga program dapat lebih mudah disusun dan dipahami. Dalam bahasa C modul direalisasi dengan fungsi, dalam bahasa Pascal sub program terbagi dua jenis yaitu prosedur dan fungsi.
Manfaat lain dari pemrograman modular adalah software reusabilty . Fungsi yang dibuat satu kali diharapkan dapat digunakan oleh program lain, sehingga penulisan program (proses coding)lebih efektif.
Keuntungan menggunakan modul:
1. Rancangan top-down dengan pendekatan divide-and-conquer , program besar dapat dibagi menjadi modul-
modul yang lebih kecil;
2. Dapat dikerjakan oleh beberapa orang dengan koordinasi yang lebih mudah;
75
-----------------------------------------------------Page 1-----------------------------------------------------
3. Mencari kesalahan relatif lebih mudah karena alur logika lebih jelas, dan kesalahan dapat dilokalisasi dalam
satu modul;
4. Modifikasi dapat dilakukan tanpa mengganggu program secara keseluruhan; 5. Mempermudah dokumentasi.
Sifat-sifat modul yang baik adalah:
• •
•
Fan-in yang tinggi: makin sering suatu modul dipanggil oleh pengguna makin tinggi nilai fan-in .
Fan-out yang rendah: makin sedikit (spesifik) tugas yang dilakukan oleh suatu modul, makin rendah nilai fen- out .
Self-contained : kemampuan memenuhi kebutuhannya sendiri.
9.2. Kategori Fungsi
Suatu fungsi adalah suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya dipisahkan dari bagian program yang menggunakannya. Fungsi-fungsi merupakan elemen utama dari program bahasa C. program dari bahasa C dibentuk dari kumpulan fungsi, mulai dari fungsi utama dengan nama main() , fungsi-fungsi pustaka (standar) dan fungsi-fungsi yang dibuat sendiri oleh pembuat program.
Fungsi pada bahasa C terbagi dua:
1. Standard library function . Standard library function adalah fungsi-fungsi yang telah disediakan compiler C, tinggal digunakan.Untuk menggunakan Standard library function maka header file tempat fungsi tersebut didefinisikan harus dipanggil. Misalnya instruksi-instruksi yang berhubungan dengan posisi cursor gotoxy ( ) , wherex ( ) , wherey ( ) , dan pembersihan layar clrscr ( ) , clreol ( ) adalah fungsi standar yang prototipe fungsinya didefinisikan di header file conio.h. untuk menggunakan gotoxy ( ) misalnya maka harus disertakan preprocessor directive # include <conio.h> pada awal agar copiler tahu bagaimana melaksanakan gotoxy ( ) . Yang disebut dengan prototipe fungsi adalah judul fungsi beserta deklarasi jumlah dan tipe data parameter formal (data apa yang harus diberikan kepada fungsi ini untuk diolah).
2. Programmer-defined function . Programmer-defined function adalah fungsi-fungsi yang dibuat pemrogram untuk digunakan alm program. Fungsi yang dibuat dapat digunakan dalam satu program saja atau dijadikan satu library yang berisi kumpulan fungsi-fungsi sejenis.
9.3. Standard Library Function
Bahasa C menyediakan cukup banyak perpustakaan fungsi. Fungsi – fungsi tersebut dikelompokkan dan
deklarasi function-prototype -nya disimpan dalam beberapa header file (.h).
Beberapa standard function yang berhubungan dengan perhitungan matematika dapat dilihat pada tabel 9.1. Waktu penggunaan fungsi tersebut harus menggunakan processor directive #include <math.h>.
76
-----------------------------------------------------Page 2-----------------------------------------------------
Tabel 9.1 Fungsi Standar Matematika
Function
Deskripsi
Contoh
int abs (int x)
Absolute bilangan bulat
abs (-5)
5
double sqrt (double x) double exp (double x)
Akar positif pangkat dua
x
sqrt (900.0) exp(1.0)
30.0
2.718282
double log (double x)
e
log x
log (2.718282)
1.0
double log 10 (double x)
10
log x
log 10 (100.0)
2.0
double fabs (double x) double ceil (double x)
double floor(double x)
Abs bilangan pecahan
Membulatkan x ke bilangan bulat terkecil yang tidak kurang dari x
Membulatkan x ke bilangan bulat terbesar yang tidak lebih dari x
fabs(-5.6) ceil(9.2) ceil(-9.8) floor(9.2) floor(-9.8)
5.6
10.0
-9.0
9.0
- 10.0
double pow (double x, double y)
x
y
pow(3,4)
81
double fmod(double x, double y)
Bilangan pecah sisa bagi x/y
fmod (12.35,5)
2.35
double sin (double x) double cos (double x) double tan (double x)
Sinus dari x dalam radian Cosinus dari x dalam radian Tangen dari x dalam radian
sin(0.0) - cos (0.0) tan (0.0)
0.0 1.0 0.0
9.4. Deklarasi dan Pendefinisian Fungsi
Selain fungsi standar, bahasa C juga memungkinkan sebuah program mempunyai fungsi-fungsi yang
dibuat oleh pembuat program. Fungsi ini disebut programmer-defined function .
Dalam merancang fungsi harus ditentukan:
1. Data apa yang ditentukan fungsi sebagai masukan untuk diolah, 2. Informasi apa yang dihasilkan (dikembalikan) fungsi kepada pemanggil,
3. Algoritma yang digunakan untuk mengolah data masukan menjadi informasi keluaran, beserta variabel lokal.
Penulisan sebuah fungsi dibagi atas prototipe fungsi (pendeklarasian fungsi) dan pendefinisian fungsi.
Pendeklarasian Fungsi (function prototype)
Tipe_nilai_balik nama_fungsi(daftar_argumen);
-
-
Function Prototype adalah kepala (judul) fungsi. Deklarasi ini digunakan oleh compiler dan pemrogram. Oleh compiler digunakan untuk memeriksa apakah pemanggilan terhadap suatu fungsi sudah sesuai baik masukannya (jumlah dan tipe data) maupun keluarannya. Oleh pemrogram digunakan untuk mengetahui argumen (actual parameter) apa yang perlu dikirim kepada fungsi dan jenis data hasil proses.
Pembuatan prototype biasanya dilakukan jika pendefinisian fungsi diletakkan atau dituliskan setelah penulisan program utama. Supaya kompiler mengetahui fungsi yang dipanggil dalam fungsi utama maka sebelumya fungsi yang dipanggil tersebut harus dituliskan prototype sebelum penulisan fungsi utama dan penulisan definisi fungsi dapat dituliskan setelah fungsi utama.
77
e
-----------------------------------------------------Page 3-----------------------------------------------------
Pendefinisian Fungsi ( function definition )
Tipe_nilai_balik nama_fungsi(daftar_argumen) {
deklarasi_variabel_lokal; instruksi_1; instruksi_2; ...
instruksi_n;
return(value);
}
function definition mendefinisikan fungsi secara lengkap. Tipe_nilai_balik menyatakan data jenis apa yang akan dikembalikan oleh fungsi sebagai hasil proses. nama_fungsi harus mengikuti ketentuan penulisan identifier. daftar_argumen terdiri nol, satu atau beberapa parameter. Parameter (disebut juga formal parameter) merupakan data yang harus dikirim kepada fungsi untuk diolah. Instruksi return digunakan untuk mengembalikan hasil proses kepada pemanggil.
Contoh program fungsi dapat dilihat pada listing program 9.1.
Listing Program 9.1 Fungsi Absolut
#include <stdio.h>
double Absolut(double x);
// Prototype fungsi Absolut
void main(void) {
float nilai;
printf("Masukkan bilangan sembarang : "); scanf("%f", &nilai);
printf("\nNilai mutlak untuk bilangan tersebut : %.2f", Absolut(nilai));
}
double Absolut(double x)
// Pendefinisian fungsi Absolut
{
if(x<0) x= -x; return x;
}
Hasil Program:
Masukkan bilangan sembarang : -32.23
Nilai mutlak untuk bilangan tersebut : 32.23
Masukkan bilangan sembarang : 25
Nilai mutlak untuk bilangan tersebut : 25.00
78
-----------------------------------------------------Page 4-----------------------------------------------------
9.5. Hasil Balik Fungsi
Sebuah fungsi dapat tanpa instruksi return (tidak mengembalikan nilai hasil proses), mempunyai sebuah instruksi return atau memiliki beberapa instruksi return (lebih dari satu). Untuk fungsi yang tidak mengembalikan nilai maka return_type -nya dapat ditulis void .
Letak instruksi return disesuaikan dengan kebutuhan. Saat diproses instruksi return memindahkan kontrol proses dari fungsi yang sedang aktif, kembali kepada fungsi pemanggil. Jika setelah instruksi return ada instruksi lagi maka instruksi tersebut tidak akan dikerjakan.
Contoh sebuah fungsi yang memiliki dua instruksi return tanpa kondisi:
float hitung(float n1, float n2) {
float kurang, tambah; tambah = n1 + n2; kurang= n1-n2; return tambah;
return kurang; // instruksi ini tidak akan dikerjakan
}
Contoh sebuah fungsi yang memiliki dua instruksi return tanpa kondisi:
float hitung(float n1, float n2) {
float kurang, tambah; tambah = n1 + n2; kurang= n1-n2;
if (n1< n2) return tambah; //n1 + n2 jika n1 < n2 else return kurang; // n2 - n2 jika n1 > n2
}
Sebuah fungsi dapat pula tidak mempunyai parameter dengan cara mengosongkan daftar parameter atau dapat pula dengan menuliskan statemen void . Untuk lebih jelasnya dapat dilihat pada contoh di bawah ini:
void footer()
{
printf(“Program ini dibuat oleh Nurani 2006“);
printf(“\n“);
}
atau:
int header(void)
{
printf(“Algoritma Pemrograman 1\n“);
printf(“
dengan Bahasa C“);
}
79
-----------------------------------------------------Page 5-----------------------------------------------------
Contoh-contoh Program Fungsi
1. Buatlah program yang mempunyai fungsi untuk operasi aritmatika: penjumlahan, pengurangan, perkalian, dan
pembagian dua buah bilangan bulat.
#include <stdio.h> #include <ctype.h>
float tambah(float x,float y){ return(x+y);}
float kurang(float x, float y){return(x-y);}
float kali(float x, float y){return(x*y);}
float bagi(float x, float y){
if(y != 0) return(x/y); else return 0;
}
void main(void)
{ float bil1, bil2, hasil;
char op, pil; do{
printf("Masukkan Bilangan 1 : "); scanf("%f",&bil1); printf("Masukkan Bilangan 2 : "); scanf("%f",&bil2);
printf("Masukkan Operator(+, -, *, /) : "); scanf("%s",&op);
switch (op){
case '+': hasil = tambah(bil1,bil2); break; case '-': hasil = kurang(bil1,bil2); break; case '*': hasil = kali(bil1,bil2); break; case '/': hasil = bagi(bil1,bil2); break;
default: printf("\nMaaf operator tidak dikenal!\n");
}
printf("\nHasil = %.2f\n", hasil);
printf("Anda ingin menghitung lagi(y/t)? "); scanf("%s",&pil);
}
while(toupper(pil)== 'Y');
}
Hasil Program:
Gambar 9.1 Hasil Running Program Fungsi Aritmatika
80
-----------------------------------------------------Page 6-----------------------------------------------------
2. Buatlah program yang mempunyai 2 fungsi, yaitu fungsi pangkat dan fungsi akar, untuk mencari hasil
pemangkatan dan akar dapat menggunakan fungsi matematika pow() dan sqrt().
#include <stdio.h> #include <math.h>
double pangkat(float x, float y); double akar(float bil);
void main(void) {
float x, y;
printf("Masukkan x : "); scanf("%f", &x); printf("Masukkan y : "); scanf("%f", &y);
printf("\n%.2f printf("\n%.2f printf("\n"); printf("\n%.2f printf("\n%.2f
Pangkat %.2f = %.2f", x, y, pangkat(x,y)); Pangkat %.2f = %.2f", y, x, pangkat(y,x));
akar dua = %.4f",x, akar(x)); akar dua = %.4f",y, akar(y));
}
double pangkat(float x, float y) {
return pow(x,y);
}
double akar(float bil) {
return sqrt(bil);
}
Hasil Program:
Gambar 9.2 Hasil Running Program Fungsi Pangkat dan Akar
==============
81
-----------------------------------------------------Page 7-----------------------------------------------------
Latihan:
1. Apakah keuntungan penggunaan fungsi dalam sebuah program? 2. Apa yang dimaksud dengan function prototype ? 3. Apa yang dimaksud dengan nilai balik fungsi?
4. Dapatkah sebuah fungsi tidak mempunyai instruksi return ?
5. Berapa banyak instruksi return boleh terdapat dalam sebuah fungsi?
6. Instruksi yang digunakan untuk mengirimkan nilai dari sebuah fungsi kepada fungsi pemanggil adalah? 7. Keyword yang digunakan oleh fungsi untuk mengindikasikan bahwa fungsi tersebut tidak mengembalikan nilai,
atau fungsi tidak memiliki parameter adalah?
Tugas Mandiri:
Buatlah program Lingkaran, dimana program memiliki fungsi untuk mencari luas lingkaran, fungsi menghitung keliling lingkaran, dan fungsi menampilkan atau mencetak nilai-nilai dari luas dan keliling lingkaran.
===========
Referensi:
Cheltenham Computer Training, C Programming , www.cctglobal.com , United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition , Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa C , Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C , Salemba Teknika, Jakarta, 2004
☺☺☺
82
-----------------------------------------------------Page 8-----------------------------------------------------
(BAGIAN 1)
9
Tujuan Instruksi Umum (TIU):
Mampu memahami konsep pemrograman modular dan mengetahui fungsi-fungsi standar yang disediakan oleh bahasa C sehingga mampu mengimplementasikannya dalam pembuatan program dengan menggunkan bahasa C untuk permasalahan yang cukup kompleks.
Tujuan Instruksi Khusus (TIK):
• Memahami kosep modular programming (sub program) dalam pemrograman • Mengetahui konsep fungsi dalam C dan penggunaannya dalam program • Mengetahui fungsi-fungsi standar yang telah disediakan oleh bahasa C
• Mampu membuat program yang memiliki fungsi-fungsi yang didefinisikan sendiri
Pembahasan Materi:
• Konsep dasar sub program
• Katagori fungsi dalam bahasa C • Standard Library Function
• Deklarasi dan pendefinisian fungsi • Prototype Fungsi • Hasil balik Fungsi
9.1. Konsep Dasar Sub Program
Salah satu metode perancangan program yang baik adalah menggunakan konsep modular atau sering disebut dengan pemrograman modular. Dengan metode ini suatu masalah dipecah menjadi beberapa masalah yang lebih kecil (ke dalam modul-modul). Dengan membagi masalah menjadi beberapa modul, maka masalah tersebut akan menjadi lebih sederhana, sehingga program dapat lebih mudah disusun dan dipahami. Dalam bahasa C modul direalisasi dengan fungsi, dalam bahasa Pascal sub program terbagi dua jenis yaitu prosedur dan fungsi.
Manfaat lain dari pemrograman modular adalah software reusabilty . Fungsi yang dibuat satu kali diharapkan dapat digunakan oleh program lain, sehingga penulisan program (proses coding)lebih efektif.
Keuntungan menggunakan modul:
1. Rancangan top-down dengan pendekatan divide-and-conquer , program besar dapat dibagi menjadi modul-
modul yang lebih kecil;
2. Dapat dikerjakan oleh beberapa orang dengan koordinasi yang lebih mudah;
75
-----------------------------------------------------Page 1-----------------------------------------------------
3. Mencari kesalahan relatif lebih mudah karena alur logika lebih jelas, dan kesalahan dapat dilokalisasi dalam
satu modul;
4. Modifikasi dapat dilakukan tanpa mengganggu program secara keseluruhan; 5. Mempermudah dokumentasi.
Sifat-sifat modul yang baik adalah:
• •
•
Fan-in yang tinggi: makin sering suatu modul dipanggil oleh pengguna makin tinggi nilai fan-in .
Fan-out yang rendah: makin sedikit (spesifik) tugas yang dilakukan oleh suatu modul, makin rendah nilai fen- out .
Self-contained : kemampuan memenuhi kebutuhannya sendiri.
9.2. Kategori Fungsi
Suatu fungsi adalah suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya dipisahkan dari bagian program yang menggunakannya. Fungsi-fungsi merupakan elemen utama dari program bahasa C. program dari bahasa C dibentuk dari kumpulan fungsi, mulai dari fungsi utama dengan nama main() , fungsi-fungsi pustaka (standar) dan fungsi-fungsi yang dibuat sendiri oleh pembuat program.
Fungsi pada bahasa C terbagi dua:
1. Standard library function . Standard library function adalah fungsi-fungsi yang telah disediakan compiler C, tinggal digunakan.Untuk menggunakan Standard library function maka header file tempat fungsi tersebut didefinisikan harus dipanggil. Misalnya instruksi-instruksi yang berhubungan dengan posisi cursor gotoxy ( ) , wherex ( ) , wherey ( ) , dan pembersihan layar clrscr ( ) , clreol ( ) adalah fungsi standar yang prototipe fungsinya didefinisikan di header file conio.h. untuk menggunakan gotoxy ( ) misalnya maka harus disertakan preprocessor directive # include <conio.h> pada awal agar copiler tahu bagaimana melaksanakan gotoxy ( ) . Yang disebut dengan prototipe fungsi adalah judul fungsi beserta deklarasi jumlah dan tipe data parameter formal (data apa yang harus diberikan kepada fungsi ini untuk diolah).
2. Programmer-defined function . Programmer-defined function adalah fungsi-fungsi yang dibuat pemrogram untuk digunakan alm program. Fungsi yang dibuat dapat digunakan dalam satu program saja atau dijadikan satu library yang berisi kumpulan fungsi-fungsi sejenis.
9.3. Standard Library Function
Bahasa C menyediakan cukup banyak perpustakaan fungsi. Fungsi – fungsi tersebut dikelompokkan dan
deklarasi function-prototype -nya disimpan dalam beberapa header file (.h).
Beberapa standard function yang berhubungan dengan perhitungan matematika dapat dilihat pada tabel 9.1. Waktu penggunaan fungsi tersebut harus menggunakan processor directive #include <math.h>.
76
-----------------------------------------------------Page 2-----------------------------------------------------
Tabel 9.1 Fungsi Standar Matematika
Function
Deskripsi
Contoh
int abs (int x)
Absolute bilangan bulat
abs (-5)
5
double sqrt (double x) double exp (double x)
Akar positif pangkat dua
x
sqrt (900.0) exp(1.0)
30.0
2.718282
double log (double x)
e
log x
log (2.718282)
1.0
double log 10 (double x)
10
log x
log 10 (100.0)
2.0
double fabs (double x) double ceil (double x)
double floor(double x)
Abs bilangan pecahan
Membulatkan x ke bilangan bulat terkecil yang tidak kurang dari x
Membulatkan x ke bilangan bulat terbesar yang tidak lebih dari x
fabs(-5.6) ceil(9.2) ceil(-9.8) floor(9.2) floor(-9.8)
5.6
10.0
-9.0
9.0
- 10.0
double pow (double x, double y)
x
y
pow(3,4)
81
double fmod(double x, double y)
Bilangan pecah sisa bagi x/y
fmod (12.35,5)
2.35
double sin (double x) double cos (double x) double tan (double x)
Sinus dari x dalam radian Cosinus dari x dalam radian Tangen dari x dalam radian
sin(0.0) - cos (0.0) tan (0.0)
0.0 1.0 0.0
9.4. Deklarasi dan Pendefinisian Fungsi
Selain fungsi standar, bahasa C juga memungkinkan sebuah program mempunyai fungsi-fungsi yang
dibuat oleh pembuat program. Fungsi ini disebut programmer-defined function .
Dalam merancang fungsi harus ditentukan:
1. Data apa yang ditentukan fungsi sebagai masukan untuk diolah, 2. Informasi apa yang dihasilkan (dikembalikan) fungsi kepada pemanggil,
3. Algoritma yang digunakan untuk mengolah data masukan menjadi informasi keluaran, beserta variabel lokal.
Penulisan sebuah fungsi dibagi atas prototipe fungsi (pendeklarasian fungsi) dan pendefinisian fungsi.
Pendeklarasian Fungsi (function prototype)
Tipe_nilai_balik nama_fungsi(daftar_argumen);
-
-
Function Prototype adalah kepala (judul) fungsi. Deklarasi ini digunakan oleh compiler dan pemrogram. Oleh compiler digunakan untuk memeriksa apakah pemanggilan terhadap suatu fungsi sudah sesuai baik masukannya (jumlah dan tipe data) maupun keluarannya. Oleh pemrogram digunakan untuk mengetahui argumen (actual parameter) apa yang perlu dikirim kepada fungsi dan jenis data hasil proses.
Pembuatan prototype biasanya dilakukan jika pendefinisian fungsi diletakkan atau dituliskan setelah penulisan program utama. Supaya kompiler mengetahui fungsi yang dipanggil dalam fungsi utama maka sebelumya fungsi yang dipanggil tersebut harus dituliskan prototype sebelum penulisan fungsi utama dan penulisan definisi fungsi dapat dituliskan setelah fungsi utama.
77
e
-----------------------------------------------------Page 3-----------------------------------------------------
Pendefinisian Fungsi ( function definition )
Tipe_nilai_balik nama_fungsi(daftar_argumen) {
deklarasi_variabel_lokal; instruksi_1; instruksi_2; ...
instruksi_n;
return(value);
}
function definition mendefinisikan fungsi secara lengkap. Tipe_nilai_balik menyatakan data jenis apa yang akan dikembalikan oleh fungsi sebagai hasil proses. nama_fungsi harus mengikuti ketentuan penulisan identifier. daftar_argumen terdiri nol, satu atau beberapa parameter. Parameter (disebut juga formal parameter) merupakan data yang harus dikirim kepada fungsi untuk diolah. Instruksi return digunakan untuk mengembalikan hasil proses kepada pemanggil.
Contoh program fungsi dapat dilihat pada listing program 9.1.
Listing Program 9.1 Fungsi Absolut
#include <stdio.h>
double Absolut(double x);
// Prototype fungsi Absolut
void main(void) {
float nilai;
printf("Masukkan bilangan sembarang : "); scanf("%f", &nilai);
printf("\nNilai mutlak untuk bilangan tersebut : %.2f", Absolut(nilai));
}
double Absolut(double x)
// Pendefinisian fungsi Absolut
{
if(x<0) x= -x; return x;
}
Hasil Program:
Masukkan bilangan sembarang : -32.23
Nilai mutlak untuk bilangan tersebut : 32.23
Masukkan bilangan sembarang : 25
Nilai mutlak untuk bilangan tersebut : 25.00
78
-----------------------------------------------------Page 4-----------------------------------------------------
9.5. Hasil Balik Fungsi
Sebuah fungsi dapat tanpa instruksi return (tidak mengembalikan nilai hasil proses), mempunyai sebuah instruksi return atau memiliki beberapa instruksi return (lebih dari satu). Untuk fungsi yang tidak mengembalikan nilai maka return_type -nya dapat ditulis void .
Letak instruksi return disesuaikan dengan kebutuhan. Saat diproses instruksi return memindahkan kontrol proses dari fungsi yang sedang aktif, kembali kepada fungsi pemanggil. Jika setelah instruksi return ada instruksi lagi maka instruksi tersebut tidak akan dikerjakan.
Contoh sebuah fungsi yang memiliki dua instruksi return tanpa kondisi:
float hitung(float n1, float n2) {
float kurang, tambah; tambah = n1 + n2; kurang= n1-n2; return tambah;
return kurang; // instruksi ini tidak akan dikerjakan
}
Contoh sebuah fungsi yang memiliki dua instruksi return tanpa kondisi:
float hitung(float n1, float n2) {
float kurang, tambah; tambah = n1 + n2; kurang= n1-n2;
if (n1< n2) return tambah; //n1 + n2 jika n1 < n2 else return kurang; // n2 - n2 jika n1 > n2
}
Sebuah fungsi dapat pula tidak mempunyai parameter dengan cara mengosongkan daftar parameter atau dapat pula dengan menuliskan statemen void . Untuk lebih jelasnya dapat dilihat pada contoh di bawah ini:
void footer()
{
printf(“Program ini dibuat oleh Nurani 2006“);
printf(“\n“);
}
atau:
int header(void)
{
printf(“Algoritma Pemrograman 1\n“);
printf(“
dengan Bahasa C“);
}
79
-----------------------------------------------------Page 5-----------------------------------------------------
Contoh-contoh Program Fungsi
1. Buatlah program yang mempunyai fungsi untuk operasi aritmatika: penjumlahan, pengurangan, perkalian, dan
pembagian dua buah bilangan bulat.
#include <stdio.h> #include <ctype.h>
float tambah(float x,float y){ return(x+y);}
float kurang(float x, float y){return(x-y);}
float kali(float x, float y){return(x*y);}
float bagi(float x, float y){
if(y != 0) return(x/y); else return 0;
}
void main(void)
{ float bil1, bil2, hasil;
char op, pil; do{
printf("Masukkan Bilangan 1 : "); scanf("%f",&bil1); printf("Masukkan Bilangan 2 : "); scanf("%f",&bil2);
printf("Masukkan Operator(+, -, *, /) : "); scanf("%s",&op);
switch (op){
case '+': hasil = tambah(bil1,bil2); break; case '-': hasil = kurang(bil1,bil2); break; case '*': hasil = kali(bil1,bil2); break; case '/': hasil = bagi(bil1,bil2); break;
default: printf("\nMaaf operator tidak dikenal!\n");
}
printf("\nHasil = %.2f\n", hasil);
printf("Anda ingin menghitung lagi(y/t)? "); scanf("%s",&pil);
}
while(toupper(pil)== 'Y');
}
Hasil Program:
Gambar 9.1 Hasil Running Program Fungsi Aritmatika
80
-----------------------------------------------------Page 6-----------------------------------------------------
2. Buatlah program yang mempunyai 2 fungsi, yaitu fungsi pangkat dan fungsi akar, untuk mencari hasil
pemangkatan dan akar dapat menggunakan fungsi matematika pow() dan sqrt().
#include <stdio.h> #include <math.h>
double pangkat(float x, float y); double akar(float bil);
void main(void) {
float x, y;
printf("Masukkan x : "); scanf("%f", &x); printf("Masukkan y : "); scanf("%f", &y);
printf("\n%.2f printf("\n%.2f printf("\n"); printf("\n%.2f printf("\n%.2f
Pangkat %.2f = %.2f", x, y, pangkat(x,y)); Pangkat %.2f = %.2f", y, x, pangkat(y,x));
akar dua = %.4f",x, akar(x)); akar dua = %.4f",y, akar(y));
}
double pangkat(float x, float y) {
return pow(x,y);
}
double akar(float bil) {
return sqrt(bil);
}
Hasil Program:
Gambar 9.2 Hasil Running Program Fungsi Pangkat dan Akar
==============
81
-----------------------------------------------------Page 7-----------------------------------------------------
Latihan:
1. Apakah keuntungan penggunaan fungsi dalam sebuah program? 2. Apa yang dimaksud dengan function prototype ? 3. Apa yang dimaksud dengan nilai balik fungsi?
4. Dapatkah sebuah fungsi tidak mempunyai instruksi return ?
5. Berapa banyak instruksi return boleh terdapat dalam sebuah fungsi?
6. Instruksi yang digunakan untuk mengirimkan nilai dari sebuah fungsi kepada fungsi pemanggil adalah? 7. Keyword yang digunakan oleh fungsi untuk mengindikasikan bahwa fungsi tersebut tidak mengembalikan nilai,
atau fungsi tidak memiliki parameter adalah?
Tugas Mandiri:
Buatlah program Lingkaran, dimana program memiliki fungsi untuk mencari luas lingkaran, fungsi menghitung keliling lingkaran, dan fungsi menampilkan atau mencetak nilai-nilai dari luas dan keliling lingkaran.
===========
Referensi:
Cheltenham Computer Training, C Programming , www.cctglobal.com , United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition , Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa C , Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C , Salemba Teknika, Jakarta, 2004
☺☺☺
82
-----------------------------------------------------Page 8-----------------------------------------------------
0 Response to "FUNGSI (BAGIAN 1)"
Post a Comment