Anda di halaman 1dari 31

FUNCTION

achmatim@gmail.com
FUNCTION adalah sejumlah instruksi
yang dikelompokkan menjadi satu,
berdiri sendiri, membentuk suatu
subprogram yang sering juga disebut
subroutine.

achmatim@gmail.com
 BAHASA C terdiri dari kumpulan function
 FUNCTION yang harus ada dalam sebuah
program bahasa C adalah fungsi main()
 Pertama kali program dijalankan, komputer
akan mencari fungsi main() dan
melaksanakan instruksi-instruksi di
dalamnya.

achmatim@gmail.com
#include <stdio.h>
int hitung(int a, int b); Deklarasi Fungsi hitung()
void main()
{
int a,b,t;
a = 5; b = 2; t = 0;
t = hitung(a,b);
printf(“\n%d”, t);
}
int hitung(int a, int b)
{
int tot;
tot = a + b;
return (tot);
}
achmatim@gmail.com
#include <stdio.h>
int hitung(int a, int b);
void main() Bagian ini disebut main program atau
{ program induk atau fungsi induk atau
main function.
int a,b,t;
a = 5; b = 2; t = 0;
t = hitung(a,b); Pemanggilan fungsi hitung()
printf(“\n%d”, t);
}
int hitung(int a, int b)
{
int tot;
tot = a + b;
return (tot);
}
achmatim@gmail.com
#include <stdio.h>
int hitung(int a, int b);
void main()
{
int a,b,t;
a = 5; b = 2; t = 0;
t = hitung(a,b);
printf(“\n%d”, t);
}
int hitung(int a, int b) Pendefinisian fungsi hitung() dimana
{ di bagian ini memuat urutan atau
int tot; bagaimana fungsi bekerja/berjalan.
tot = a + b;
return (tot);
}
achmatim@gmail.com
DEKLARASI FUNGSI
Bentuk umum :

type nama_fungsi (argumen1, argumen2, …);

Tipe fungsi
Sama seperti tipe data (variabel)
Bisa berupa char, int, float, double, dan void

achmatim@gmail.com
DEKLARASI FUNGSI
Bentuk umum :

type nama_fungsi (argumen1, argumen2, …);

Nama Fungsi
Penamaan fungsi sama seperti penamaan
variabel biasa.

achmatim@gmail.com
DEKLARASI FUNGSI
Bentuk umum :

type nama_fungsi (argumen1, argumen2, …);

Argumen atau Parameter Fungsi


Argument fungsi merupakan masukan yang
diperlukan oleh fungsi. Sebuah fungsi boleh tidak
memiliki argument. Bentuk penulisan argument
sama seperti pendeklarasian sebuah variabel

achmatim@gmail.com
DEKLARASI FUNGSI
Bentuk umum :

type nama_fungsi (argumen1, argumen2, …);

Titik Koma (;)


Jangan lupakan akhiri pendeklarasian fungsi dengan titik
koma (;)

achmatim@gmail.com
DEKLARASI FUNGSI
Bentuk umum :

type nama_fungsi (argumen1, argumen2, …);

Contoh:
int hitung (int a, int b);
void tampil(float nilai);
void menu();

Letak deklarasi fungsi HARUS berada sebelum fungsi main()

achmatim@gmail.com
PENDEFINISIAN FUNGSI
Bentuk umum :

type nama_fungsi (argumen1, argumen2, …)


{
….. proses di sini ….
return value;
}

 Pada pendefinisian sebuah fungsi, type, nama dan


argument fungsi harus SAMA dengan
pendeklarasian fungsi.
 Setelah argument fungsi TIDAK diakhiri dengan titik
koma (;)
 Proses fungsi berada di antara { dan }
achmatim@gmail.com
PENDEFINISIAN FUNGSI
Bentuk umum :

type nama_fungsi (argumen1, argumen2, …)


{
….. proses di sini ….
return value;
}
 Return value diberikan sesuai dengan type
fungsinya.
 Fungsi dengan tipe void, TIDAK memerlukan Return
Value
 Letak pendefinisian fungsi bisa sebelum atau
sesudah fungsi main, tetapi harus setelah deklarasi
fungsi.
achmatim@gmail.com
PENDEFINISIAN FUNGSI
Bentuk umum :

type nama_fungsi (argumen1, argumen2, …)


{
….. proses di sini ….
return value;
}
 Pendefinisian fungsi bisa digabung dengan
pendeklarasian fungsi, tetapi letaknya HARUS
sebelum fungsi main

achmatim@gmail.com
VARIABEL LOKAL DAN GLOBAL

 Semua variabel yang dibuat dalam suatu function,


akan bersifat LOKAL
 Variabel LOKAL hanya dikenal di dalam function
yang bersangkutan dan tidak dikenal (tidak dapat
diakses) di luar function tersebut.

 Variabel GLOBAL harus dideklarasikan di luar


semua function.
 Variabel GLOBAL dikenal (dapat diakses) dari
semua function dalam program

achmatim@gmail.com
VARIABEL LOKAL DAN GLOBAL

#include <stdio.h>
void tambah(int a, int b);
int t; t adalah variabel GLOBAL
void main()
{
int a, b;
a = 5; b = 2;
tambah(a, b);
printf(“%d”, t);
}
void tambah(int a, int b)
{
t = a + b;
}
achmatim@gmail.com
VARIABEL LOKAL DAN GLOBAL

#include <stdio.h>
void tambah(int a, int b);
int t;
void main()
{
int a, b; a dan b adalah variabel LOKAL
a = 5; b = 2;
tambah(a, b);
printf(“%d”, t);
}
void tambah(int a, int b)
{
t = a + b;
}
achmatim@gmail.com
VARIABEL LOKAL DAN GLOBAL

#include <stdio.h>
void tambah(int a, int b);
int t;
void main()
{
int a, b;
a = 5; b = 2;
tambah(a, b);
printf(“%d”, t);
}
void tambah(int a, int b)
{ A dan b di sini bersifat LOKAL dan
t = a + b; tidak ada hubungannya dengan
} variabel a dan b di fungsi main()
achmatim@gmail.com
VARIABEL LOKAL DAN GLOBAL

#include <stdio.h>
void tambah(int a, int b);
int t;
void main()
{
int a, b;
a = 5; b = 2;
tambah(a, b);
printf(“%d”, t);
} Variabel t sudah dikenal di semua
void tambah(int a, int b) fungsi baik di fungsi main()
maupun di fungsi tambah() tanpa
{
perlu dideklarasikan dulu.
t = a + b;
}
achmatim@gmail.com
PASSING VARIABLE
(PENGIRIMAN PARAMETER)

• Passing by Value
• Passing by Reference

achmatim@gmail.com
PASSING BY VALUE

#include <stdio.h>
Fungsi hitung() memiliki 2 argument
int hitung(int a, int b);
(masukan) bertipe integer
void main()
{
int a,b,t;
a = 5; b = 2;
t = hitung(a,b);
printf(“\n%d”, t);
}
int hitung(int a, int b)
{
int tot;
tot = a + b;
return (tot);
}
achmatim@gmail.com
PASSING BY VALUE

#include <stdio.h>
int hitung(int a, int b);
void main()
{
int a,b,t;
a = 5; b = 2; Saat pemanggilan fungsi hitung(),
diperlukan 2 parameter (masukan)
t = hitung(a,b);
yang bertipe integer (dalam hal ini a
printf(“\n%d”, t); dan b)
}
int hitung(int a, int b)
{
int tot;
tot = a + b;
return (tot);
}
achmatim@gmail.com
PASSING BY VALUE

#include <stdio.h>
int hitung(int a, int b);
void main()
{
int a,b,t;
a = 5; b = 2;
t = hitung(a,b);
5 2
printf(“\n%d”, t); Nilai variabel a dan b yaitu 5 dan 2
} akan dikirimkan ke fungsi hitung.
int hitung(int a, int b)
{
int tot;
tot = a + b;
return (tot);
}
achmatim@gmail.com
PASSING BY VALUE

#include <stdio.h>
int hitung(int a, int b);
void main()
{
int a,b,t;
a = 5; b = 2;
t = hitung(a,b);
printf(“\n%d”, t);
}
int hitung(int a, int b)
{
int tot;
Isi variabel a dan b yaitu 5 dan 2
tot = a + b; dijumlahkan, dan disimpan ke
return (tot); variabel tot
}
achmatim@gmail.com
PASSING BY VALUE

#include <stdio.h>
int hitung(int a, int b);
void main()
{
int a,b,t;
a = 5; b = 2;
t = hitung(a,b);
printf(“\n%d”, t);
}
int hitung(int a, int b)
{
int tot;
tot = a + b; Nilai variabel tot yaitu 7 akan
return (tot); dikembalikan (return) ke fungsi
} hitung() di fungsi main()
achmatim@gmail.com
PASSING BY VALUE

#include <stdio.h>
int hitung(int a, int b);
void main()
{
int a,b,t;
a = 5; b = 2;
t = hitung(a,b);
printf(“\n%d”, t);
}
int hitung(int a, int b)
{
int tot;
Isi variabel a dan b yaitu 5 dan 2
tot = a + b; dijumlahkan, dan disimpan ke
return (tot); variabel tot
7
}
achmatim@gmail.com
PASSING BY VALUE

#include <stdio.h>
int hitung(int a, int b);
void main()
{
int a,b,t;
a = 5; b = 2;
t = hitung(a,b);
Variabel t bernilai 7 dan akan
printf(“\n%d”, t); tercetak 7 di layar
}
int hitung(int a, int b)
{
int tot;
tot = a + b;
return (tot);
}
achmatim@gmail.com
Halaman ini tidak benar-benar kosong

achmatim@gmail.com
PASSING BY REFERENCE

#include <stdio.h>
int CETAK(int *Q);
void main()
{
int A, *P;
A = 5;
P = &A;
Parameter yang dikirim bukan data
CETAK(P); tapi berupa nilai POINTER (alamat)
}
int CETAK(int *Q)
{
printf(“%d”, *Q);
}

achmatim@gmail.com
PASSING BY REFERENCE

#include <stdio.h>
int CETAK(int *Q);
void main()
{
int A, *P;
A = 5;
P = &A;
CETAK(P);
} Untuk menerima nilai pointer,
int CETAK(int *Q) argumen fungsi juga harus berupa
{ variabel POINTER
printf(“%d”, *Q);
}

achmatim@gmail.com
Sampai jumpa lagi…….

achmatim@gmail.com