Fungsi 1 DASAR PEMROGRAMAN
DEFINISI Fungsi adalah suatu bagian dari program yang dirancang untuk melaksanakan tugas tertentu dan letaknya dipisahkan dari program yang menggunakannya. Tujuan pemakaian fungsi: Program menjadi terstruktur Dapat mengurangi pengulangan (duplikasi) kode. Dasar Fungsi Fungsi standar C yang mengemban tugas khusus contohnya adalah ; printf(), untuk menampilkan informasi atau data ke layar. scanf(), untuk membaca kode tombol yang diinputkan. 2
Pada umumnya fungsi memerlukan nilai masukan atau parameter yang disebut sebagai argumen. Nilai masukan ini akan diolah oleh fungsi. Hasil akhir fungsi berupa sebuah nilai (disebut sebagai return value atau nilai keluaran fungsi). Parameter Keluaran Fungsi FUNGSI 3
Bentuk umum dari definisi sebuah fungsi adalah sebagai berikut ; tipe-keluaran-fungsi tubuh fungsi nama-fungsi (deklarasi argumen) Keterangan : tipe-keluaran-fungsi, dapat berupa salah satu tipe data C, misalnya char atau int. Kalau penentu tipe tidak disebutkan maka dianggap bertipe int (secara default). tubuh fungsi berisi deklarasi variabel (kalau ada) dan statemen-statemen yang akan melakukan tugas yang akan diberikan kepada fungsi yang bersangkutan. Tubuh fungsi ini ditulis di dalam tanda kurung kurawal buka dan kurung kurawal tutup. 4
5 Contoh : inisialisasi() return(0); Nama fungsi Sepasang tanda kurung, tanpa argumen Tak ada tanda titik koma Awal fungsi Tubuh fungsi Akhir fungsi return() merupakan pernyataan untuk memberikan nilai akhir dari fungsi Pada fungsi inisialisasi() di atas, nilai akhir dari fungsi adalah nol
6 Proses Pemanggilan Fungsi main() int x, y; x = inisialisasi(); printf("x = %d\n", x); y = inisialisasi(); printf("y = %d\n", y); int inisialisasi() return(0); definisi fungsi pemanggilan fungsi Hasil Eksekusi : x=0 y=0
7 //contoh fungsi dengan nilai akhir #include<stdio.h> main() int hasil; int a=20; int b=44; hasil=minimum(a,b); printf("nilai minimum= %d\n",hasil); printf("nilai minimum= %d\n",minimum(12,15)); int minimum(int x,int y) if(x<y) return(x); else return(y); Hasl eksekusi : Nilai minimum = 20 Nilai minimum=12
8 Fungsi dengan Nilai Keluaran bertipe bukan Integer 1. Fungsi harus dideklarasikan di awal program (sebelum digunakan) 2. Fungsi didefinisikan dengan diawali penentu tipe fungsi (di depan nama fungsi) float minimum(float x,float y);... float minimum(float x, float y) if (x < y) return(x); else return(y); Deklarasi fungsi (di awal program) Diakhiri dengan titik koma Definisi fungsi Tanpa titik koma
//contoh fungsi bertipe bukan integer (misal : float) #include<stdio.h> float minimum(float x,float y); main() float hasil; float a=20.5, b=44.5; hasil=minimum(a,b); printf("nilai minimum= %g\n",hasil); printf("nilai minimum= %g\n",minimum(3.5,2.5)); float minimum(float x,float y) if(x<y) return(x); else return(y); Hasil eksekusi : Nilai minimum = 20.5 Nilai minimum=2.5 9
//Contoh fungsi bertipe void (tanpa nilai keluaran) #include<stdio.h> void sekilas_info(); main() printf("panggil sekilas info..\n"); sekilas_info(); void sekilas_info() printf("ini program percobaan\n"); printf("membuat fungsi tanpa nilai keluaran\n"); Hasil eksekusi : Panggil sekilas info.. Ini program percobaan Membuat fungsi tanpa nilai keluaran 10
11 Prototipe Fungsi Prototipe fungsi digunakan untuk menjelaskan kepada kompiler mengenai : tipe keluaran fungsi jumlah parameter tipe dari masing-masing parameter. Bagi kompiler, informasi dalam prototipe akan dipakai untuk memeriksa keabsahan (validitas) parameter dalam pemanggilan fungsi. Salah satu keuntungannya adalah, kompiler akan melakukan konversi seandainya antara tipe parameter dalam fungsi dan parameter saat pemanggilan fungsi tidak sama, atau akan menunjukan kesalahan bila jumlah parameter dalam definisi dan saat pemanggilan berbeda.
12 Contoh prototipe fungsi; float jumlah (float x, float y); atau float jumlah (float, float); float jumlah (float, float); Nama fungsi Diakhiri dengan titik koma Tipe parameter kedua Tipe parameter pertama Tipe keluaran fungsi
//contoh pemakaian prototipe fungsi #include<stdio.h> float jumlah(float,float); //prototipe fungsi main() int a=6; int b=3; float c; c=jumlah(a,b); printf("c=a+b= %g\n",c); printf("hasl penjumlahan = %g\n",jumlah(20.1,0.9)); float jumlah(float x,float y) return(x+y); Hasil eksekusi : c=a+b=9 Hasl penjumlahan = 21.00 13
Parameter Formal dan Parameter Aktual Parameter formal variabel yang ada pada daftar parameter dalam definisi fungsi. Parameter aktual parameter (tidak selalu berupa variabel) yang dipakai dalam pemanggilan fungsi. parameter formal main()... x = jumlah(a,b);... float jumlah(float x,float y) return(x,y); parameter aktual 14
15 Parameter aktual tidak selalu berupa variabel. Contoh : x = jumlah (20.5, 4); x = jumlah (2+4, 4/2 );
//contoh program menggunakan parameter formal dan aktual //menentukan apakah bilangan yang diinputkan ganjil atau genap #include<stdio.h> int ganjil(int); main() int a,hasil; printf("masukkan sembarang bilangan bulat : "); scanf("%d",&a); hasil=ganjil(a); if(hasil==0) printf("bilangan tersebut tidak ganjil\n"); else if(hasil==1) printf("bilangan tersebut ganjil\n"); int ganjil(int x) if(x%2 == 0) return(0); else return(1); Hasil eksekusi : Masukkan sembarang bilangan bulat : 5 Bilangan tersebut ganjil 16
Latihan 1. a. Buatlah sebuah fungsi yang berfungsi untuk menampilkan sebuah string (di layar) = Pilihan Menu (misalkan nama fungsinya = menu). Fungsi tersebut tidak memiliki nilai kembalian (return value) dan juga tidak menerima parameter masukan apapun. b. Tulislah prototipe fungsi untuk fungsi tersebut. c. Buat function main untuk memanggil function menu() secara berulang-ulang, dengan jumlah perulangan yang merupakan input dari user. 2. Buat sebuah fungsi yang menghitung jumlah dari bilangan bulat 1 s/d 10. Hasilnya dikembalikan kepada function main untuk dicetak. 17