FUNGSI
I. TUJUAN
Mempelajari fungsi dalam program C
II. SASARAN
Memahami struktur program C yang terdiri atas sejumlah fungsi
Dapat memahami jenis-jenis fungsi.
Dapat memahami arti parameter fungsi.
Memahami sifat variabel dalam program yang terdisri atas sejumlah fungsi.
Dapat membuat beberapa program dengan mengunakan bentuk fungsi.
main() fungsi2()
{ {
//pemanggilan fungsi //statemen
fungsi1(); }
fungsi2();
} fungsiN()
{
fungsi1() //statemen
{ }
//statemen
} main()
{
fungsi2() //pemanggilan fungsi
{ fungsi1();
//statemen fungsi2();
} }
Pemrograman I
2. Struktur fungsi :
tipe_data nama_fungsi(parameter)
{
//statement
}
a. Tipe Data
Sama halnya dengan variabel, setiap fungsi juga ada tipe datanya. Tipe data sendiri
ada yang namanya int, float, double, char dan ada juga void. Void artinya tidak
bertipe data sehingga tidak memerlukan nilai return. Itulah sebabnya kenapa jika kita
menggunakan int main(){} maka kita wajib melakukan return 0; di paling bawah
fungsi.
b. Nama Fungsi
Nama fungsi merupakan nama alias yang akan kita gunakan saat pemanggilan. Jika
nama fungsinya adalah belajarfungsi maka saat pemanggilan kita akan menulis
seperti ini : belajarfungsi();
c. Parameter
Parameter merupakan nilai yang akan dijadikan acuan saat menjalankan program.
Bisa dikatakan juga parameter adalah pelengkap saat menjalankan fungsi tertentu.
Parameter disini dapat dijabarkan menjadi 2 jenis fungsi yakni :
1. Pass by Value
Pass by Value artinya kita akan mempassing value sebagai parameter dalam fungsi
yang kita buat, contohnya adalah sebagai berikut :
#include <stdio.h>
void cetakUmur(int umur)
{
printf("Halo, Umur kamu adalah %d tahun", umur);
}
int main(){
cetakUmur(20);
getchar();
return 0;
}
2/9
Pemrograman I
2. Pass by Address
Pass by Address berarti kita akan menggunakan pointer untuk mengakses atau bisa
juga mengubah value dari sebuah alamat. Contohnya adalah sebagai berikut :
#include <stdio.h>
Mengapa kita mengunakan fungsi untuk program yang kompleks, tidak akan luput dari
pengunakan fungsi ini dimaksudkan untuk memudahkan pengecekan jika terjadi kesalahan
baik kesalah logika maupun syntax. Selain itu pengunaanya akan sangat efektif untuk
menghindari pengunaan suatu kelompok statemen yang sering digunakan (berulang-ulang).
Jenis/sifat Fungsi
1. Fungsi tanpa nilai kembalian
Seperti telah dijelaskan diatas umumnya sebuah fungsi memiliki nilai masukan dan
keluaran,tetapi ada kalanya sebuah fungsi yang dibuat tidak memiliki nilai keluaran yang
akan dikirim ke fungsi pemangil. Biasanya tipe data fungsinya void dan tidak mempunyai
statement return() di akhir fungsi.
3/9
Pemrograman I
Contoh :
Fungsi tanpa nilai kembalian Fungsi dengan nilai kembalian
Jenis Variabel
Jenis variabel dikelompokkan berdasarkan tempat penyimpanannya seperti dibawah ini.
1. Variabel lokal
Variabel yang hanya diakses oleh satu fungsi. Variabel ini tidak bisa diakses oleh
fungsi lainnya. Biasanya terletak di dalam fungsi.
2. Variabel global
Variabel yang dapat diakses oleh banyak fungsi dan selalu hidup selama variable
tersebut belum diganti. Biasanya terletak di luar fungsi.
4/9
Pemrograman I
Contoh :
#include <stdio.h>
#include <conio.h>
main()
{
int penjumlahan()
{
int jumlah = x + y ;
printf("penjumlahan variabel global x + y adalah %d + %d = %d \n", x, y, jumlah);
printf("\n");
Dari contoh di atas, variable x dan y adalah variable global yang dapat diakses oleh
fungsi main dan fungsi penjumlahan. Tetapi variable a dan b adalah variable local
yang hanya diakses oleh fungsi penjumlahan
5/9
Pemrograman I
IV. PRAKTIKUM
Program 1 (fungsi void (fungsi tanpa keluaran) untuk menghitung luas benda datar)
#include <stdio.h>
#include <conio.h>
if (pilihan == 1)
{
printf("Menghitung luas segitiga\n");
printf("Panjang = "); scanf("%f", &panjang);
printf("Lebar = "); scanf("%f", &lebar);
float Luas = (panjang * lebar) / 2 ;
printf("Luas segitiga = %5.2f\n", Luas);
}
else if (pilihan == 2)
{
printf("Menghitung persegi panjang\n");
printf("Panjang = "); scanf("%f", &panjang);
printf("Lebar = "); scanf("%f", &lebar);
float Luas = panjang * lebar ;
printf("Luas persegi panjang = %5.2f\n", Luas);
}
else if (pilihan == 3)
{
printf("Menghitung luas Lingkaran\n");
printf("Jari-jari = "); scanf("%f", &jari_jari);
float Luas = 3.14 * jari_jari * jari_jari ;
printf("Luas segitiga = %5.2f\n", Luas);
}
else if (pilihan == 4)
{
printf("Menghitung trapesium\n");
printf("Panjang = "); scanf("%f", &panjang);
printf("Lebar = "); scanf("%f", &lebar);
printf("Tinggi = "); scanf("%f", &tinggi);
float Luas = (panjang + lebar) * tinggi /2 ;
printf("Luas segitiga = %5.2f\n", Luas);
}
else
printf ("pilihan tidak ada\n");
}
6/9
Pemrograman I
main()
{
int pilihan;
//deklarasi fungsi
float perkalian(float a, float b);
float penjumlahan(float a, float b);
float pengurangan (float a, float b);
float pembagian (float a, float b);
main()
{
int pilihan;
float a, b;
float hasil;
if(pilihan ==1)
{
printf("Anda memilih operasi penjumlahan\n");
printf("Nilai a:"); scanf("%f", &a);
printf("Nilai b:"); scanf("%f", &b);
hasil = penjumlahan(a,b);
7/9
Pemrograman I
else if (pilihan == 4)
{
printf("Anda memilih operasi pembagian\n");
printf("Nilai a:"); scanf("%f", &a);
printf("Nilai b:"); scanf("%f", &b);
hasil = pembagian (a,b);
printf("hasil pembagian : %5.2f / %5.2f = %5.2f\n", a,b, hasil);
}
else
{
printf("pilihan tidak ada\n");
getch();
return(0);
}
getch();
}
8/9
Pemrograman I
{
//variabel lokal
float hasil_pengurangan = a-b;
return hasil_pengurangan;
}
V. TUGAS
1. Tambahkan fungsi menghitung volume benda ke program no 1. Volume benda yang
dihitung adalah :
a. Vbalok = p*l*t
b. Vkubus = s*s*s
c. Vbola = 4/3 *(phi *r*r*r)
2. Tambahkan fungsi ke program no 2 :
a. Fungsi akar dengan menggunakan sqrt(), misal : akar (4) = sqrt(4), akar(5) =sqrt(5).
b. Fungsi pangkat, misal : 52 = 5*5, 34 = 3*3*3*3 dst
3. Buat program menggunakan fungsi untuk mencari bilangan yang terbesar (maks) dan
bilangan yang terkecil (min) dari 10 bilangan.
4. Buat program menggunakan fungsi untuk mencari
a. hasil jumlah dari 10 bilangan pertama, misal : 2+3+4+5+9+23+45+12+15+42
b. hasil kali dari 5 bilangan pertama yang bukan nol. Misal : 3*4 *8*9*5
9/9