Anda di halaman 1dari 9

PRAKTIKUM VII

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.

III. LANDASAN TEORI


Fungsi adalah suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu
tugas tertentu dan letaknya dipisahkan dari program utama yang mengunakannya. Pada
program C sebetulnya merupakan kumpulan sejumlah fungsi dan sebuah fungsi akan
melaksanakan suatu “pekerjaan” yang sangat khusus. Diantara fungsi-fungsi itu yang mutlak
harus ada adalah fungsi main() seperti yang kalian pelajari dalam struktur bahasa C.
1. Penulisan fungi dalam C
#include <stdio.h> #include <stdio.h>
//deklarasi fungsi //deklarasi fungsi
fungsi1(); fungsi1()
fungsi2(); {
… //statemen
fungsiN(); }

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>

void cetakUmur(int *umur)


{
printf("Halo, Umur kamu adalah %d tahun", *umur);
}
int main()
{
int angka=20;
cetakUmur(&angka);
getchar();
return 0;
}

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.

2. Fungsi dengan nilai kembalian


Pada fungsi ini nilai massukan dkirim oleh fungsi pemangil kepada fungsi penerima untuk
melakukan operasi-operasi. Fungsi ini biasaya bertipe data selain void dan mempunyai
statement return() di akhir fungsi;

3/9
Pemrograman I

Contoh :
Fungsi tanpa nilai kembalian Fungsi dengan nilai kembalian

#include <stdio.h> #include <stdio.h>


void penjumlahan(int a, int b) int penjumlahan(int a, int b)
{ {
int jumlah = a+b; int jumlah = a+b;
printf (“jumlah %d + %d = %d”, a,b,jumlah); return jumlah; //akan mengembalikan nilai
} jumlah
}
main()
{
int x, y; main()
printf(“masukkan nilai x :”); {
scanf(“%d”, &x); int x, y, hasil_jumlah;
printf(“masukkan nilai y :”); printf(“masukkan nilai x :”);
scanf(“%d”, &y); scanf(“%d”, &x);
printf(“masukkan nilai y :”);
penjumlahan(x,y); scanf(“%d”, &y);
} hasil_jumlah = penjumlahan(x,y);
printf (“jumlah %d + %d = %d”, x, y,
hasil_jumlah);

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>

int penjumlahan(); //deklarasi fungsi


int x, y;//variabel global

main()
{

printf("Program membedakan variabel lokal dan global\n");


printf("masukkan x : "); scanf("%d", &x);
printf("masukkan y : "); scanf("%d", &y);
penjumlahan();

int penjumlahan()
{
int jumlah = x + y ;
printf("penjumlahan variabel global x + y adalah %d + %d = %d \n", x, y, jumlah);
printf("\n");

int a, b; // variabel lokal

printf("masukkan a : "); scanf("%d", &a);


printf("masukkan b : "); scanf("%d", &b);
jumlah = a+b;
printf("\n");
printf("penjumlahan variabel local a + b adalah %d + %d = %d \n", a, b, jumlah);
printf("\n");
return jumlah;
}

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>

void hitung_luas(int pilihan)


{
float panjang, lebar, tinggi, jari_jari;

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;

printf("Program menghitung luas bidang datar\n");


printf("Pilihlah luas yang akan dihitung\n");
printf("1. Luas Segitiga\n");
printf("2. Luas Persegi Panjang\n");
printf("3. Luas Lingkaran\n");
printf("4. Luas Trapesium\n");
printf("0. Exit\n");
printf("\n");

printf("masukkan pilihan : "); scanf("%d", &pilihan);


printf("\n");
hitung_luas(pilihan);
printf("\n");

Program 2 ((fungsi float dengan keluran output float)


#include <stdio.h>
#include <conio.h>

//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;

printf("program kalkulator sederhana\n");


printf("============================\n");
printf("1. Penjumlahan\n");
printf("2. Pengurangan\n");
printf("3. Perkalian\n");
printf("4. Pembagian\n");
printf("0. Exit\n");
printf("\n");
printf("\n");

printf("Pilih operasi yang diinginkan: "); scanf("%d", &pilihan);

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

printf("hasil penjumlahan : %5.2f + %5.2f = %5.2f\n", a,b, hasil);


}
else if (pilihan == 2)
{
printf("Anda memilih operasi pengurangan\n");
printf("Nilai a:"); scanf("%f", &a);
printf("Nilai b:"); scanf("%f", &b);
hasil = pengurangan (a,b);
printf("hasil pengurangan : %5.2f - %5.2f = %5.2f\n", a,b, hasil);
}
else if (pilihan == 3)
{
printf("Anda memilih operasi perkalian\n");
printf("Nilai a:"); scanf("%f", &a);
printf("Nilai b:"); scanf("%f", &b);
hasil = perkalian (a,b);
printf("hasil perkalian : %5.2f * %5.2f = %5.2f\n", a,b, hasil);
}

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();
}

float perkalian(float a, float b)


{
//variabel lokal
float hasil_perkalian = a*b;
return hasil_perkalian;
}

float penjumlahan(float a, float b)


{
//variabel lokal
float hasil_jumlah = a+b;
return hasil_jumlah;
}

float pengurangan (float a, float b)

8/9
Pemrograman I

{
//variabel lokal
float hasil_pengurangan = a-b;
return hasil_pengurangan;
}

float pembagian (float a, float b)


{
//variabel lokal
int hasil_pembagian = a/b;
return hasil_pembagian;
}

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

Anda mungkin juga menyukai