Anda di halaman 1dari 32

PROCEDURE DAN FUNGSI

Tujuan dari Procedure dan Fungsi


• Merupakan penerapan konsep modular, yaitu
memecah program menjadi modul-modul atau
subprogram-subprogam yang lebih sederhana.
• Untuk hal-hal yang sering dilakukan berulang-ulang,
cukup dituliskan sekali saja dalam prosedur dan
dapat dipanggil atau dipergunakan sewaktu-waktu
bila diperlukan.
Teknik pemrograman modular :

• Program dipecah menjadi beberapa subprogram yang


lebih kecil.
• Subprogram (modul, routine) kadang independen dari
program utama sehingga dapat dirancang tanpa
mempertimbangkan konteks tempat ia digunakan,
bahkan dapat dirancang orang lain.
Modularisasi memberikan dua keuntungan :
• Untuk aktifitas yang harus dilakukan lebih dari satu kali,
modularisasi menghindari penulisan teks program yang
sama secara berulang kali.
• Kemudahan dalam menulis dan menemukan kesalahan
(debug) program.
PROCEDURE
Pada dasarnya bahasa C++ tidak mengenal istilah
prosedur, C++ hanya mengenal fungsi, prosedur dalam
C++ dianggap sebagai fungsi yang tidak mengembalikan
nilai, sehingga dalam pendeklarasian prosedur cukup
dituliskan dengan kata kunci void dan diikuti dengan
nama prosedur.
Penulisan Procedure
• Penggunaan prosedur selalu diawali dengan kata
Procedure. Struktur umum prosedur adalah sebagai
berikut :
Procedure Nama_Prosedur (param_formal1:tipe_param1,
param_formal2:tipe_param2,…);
{Jika prosedur tidak memiliki parameter, tanda kurung tidak disertakan}
var
{bagian deklarasi prosedur, sifatnya lokal}
begin
statement-1;
statement-2;
…………
Statement-n;
end;
Contoh Program Prosedur
#include<iostream>
using namespace std;
int addition (int a, int b){
int r;
r=a+b;
return (r);
}
void main ()
{
int z;
z = addition (5,3);
cout << "The result is " << z;
}
Gambar 6.6. menunjukkan ada proses utama yang terjadi, dan ada prosedur yang
sebenarnya merupakan bagian dari proses utama ini. Ketika proses utama membutuhkan
suatu tugas tertentu, maka proses utama akan memanggil prosedur tertentu
menyelesaikan tugas tersebut.
DEKLARASI PROSEDUR
1. Mendefinisikan Prosedur
Pada dasarnya struktur prosedur sama dengan stuktur
algoritma yang sudah kita kenal, yaitu ada judul (header),
Deklarasi (keterangan), dan deskripsi (uraian). Hanya saja
Judul (header) ditulis PROCEDURE (bukan lagi program).
• Prosedur dalam Algoritma
– Deklarasi Prosedur:
Procedure nama_prosedur (parameter masukan, parameter hasil)
– Pemanggilan Prosedur, contoh :
nama_prosedur(parameter masukan,parameter hasil)
OUTPUT (parameter_hasil)
Parameter masukan : berupa parameter formal (boleh kosong)
apabila tidak ada data yang diterima oleh fungsi atau prosedur.
Parameter dalam Procedure
• Parameter formal
Variabel yang ada pada daftar parameter dalam definisi
fungsi. Pada fungsi jumlah () program 7-6 misalnya, x dan y
dinamakan sebagai parameter formal.

float jumlah (float x,float y)


{
return (x+y);
}
• Parameter Aktual
Parameter yang dapat berupa variabel atau konstanta
maupun ungkapan yang dipakai dalam pemanggilan
fungsi
main()
{
...
x= jumlah (a,b);
...
}
Contoh Program Parameter formal dan Aktual
#include <stdio.h>

void tukar (int x, int y);

int main()
{
int a,b;
a=99;
b=11;
printf("nilai sebelum pemanggilan fungsi :\n");
printf("nilai a=%d nilai b=%d\n\n",a,b);
tukar (a,b);
printf("nilai sesudah pemnggilan fungsi :\n");
printf("nilai a=%d nilai b =%d\n\n",a,b);

return 0;
}

void tukar (int px, int py) {


int z;
z=px;
px=py;
py=z;
printf("nilai diakhiri fungsi :\n");
printf("nilai px=%d nilai py=%d\n\n",px,py);
}
Variabel dalam Prosedure
Nilai dalam suatu suatu Prosedur sifatnya hanya lokal, artinya hanya dapat digunakan pada
prosedur yang bersangkutan.
Dengan demikian dalam suatu program yang menggunakan prosedur terdapat dua istilah variabel
local dan variabel global.
1. PROGRAM P1;
VAR x : real;
PROCEDURE pl;
VAR y : integer; daerah y
begin
………………..; daerah x
………………..;
end;
begin
………………..;
………………..;
end.
Var x → variabel global
Var y 􀃆 variabel lokal
Variabel Lokal dan Variabel Global
• Variabel Lokal
– Dideklarasikan dalam subprogram
– Hanya dikenali secara lokal dalam sebuah subprogram
– tidak dapat dipanggil, diakses dan diubah oleh subprogram
yang lain, bahkan oleh program utama
Void gaji (void)
{
Int x variabel lokal
.......
.....
}
• Variabel Global
– Dideklarasikan dalam program utama
– dapat dipanggil, diakses dan diubah oleh subprogram
apapun yang terdapat dalam program tersebut

#include <stdio.h>
int i = 255; variabel global
Void tambah (void)
{
int x
.......
.....
}
• Modul pada bahasa C++ dikenal dengan nama fungsi
(function)
• Bahasa C terdiri dari fungsi-fungsi, baik yang
langsung dideklarasikan dalam program ataupun
dipisah di dalam header file.
• Fungsi yang selalu ada pada program C++ adalah
fungsi main
FUNCTION (FUNGSI)
Fungsi/function adalah suatu kumpulan
instruksi/perintah/program yang dikelompokkan
menjadi satu, letaknya terpisah dari program yang
menggunakan fungsi tersebut, memiliki nama
tertentu yang unik, dan digunakan untuk
mengerjakan suatu tujuan tertentu.
Dalam bahasa pemrograman lain fungsi dapat
disebut sebagai subrutin (basic, VB) atau procedure
(pascal, Delphi).
Struktur Fungsi
• Function NAMA_FUNGSI (daftar parameter formal)  tipe hasil
{Spesifikasi fungsi, berisi penjelasan tentang apa yang dilakukan
dan yang dikembalikan oleh fungsi ini}

• DEKLARASI
{semua nama yang digunakan dalam fungsi dan hanya berlaku
lokal di dalam fungsi didefinisikan di sini}

• DESKRIPSI
{badan fungsi, berisi kumpulan instruksi}

• return hasil {pengembalian nilai yang dihasilkan fungsi}


Kelebihan fungsi
• Dapat melakukan pendekatan top-down dan divide-and conquer:
– Top-down: penelusuran program mudah
– Divide-and-conquer: program besar dapat dipisah menjadi
program-program kecil.
• Kode program menjadi lebih pendek, mudah dibaca, dan mudah
dipahami
• Program dapat dikerjakan oleh beberapa orang sehingga program
cepat selesai dengan koordinasi yang mudah.
• Mudah dalam mencari kesalahan-kesalahan karena alur logika jelas
dan sederhana
• Kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.
• Modifikasi program dapat dilakukan pada suatu modul tertentu saja
tanpa mengganggu program keseluruhan
• Fungsi – fungsi menjadikan program mempunyai struktur yang jelas.
– Dengan memisahkan langkah – langkah detail ke satu atau lebih
fungsi – fungsi, maka fungsi utama (main) akan menjadi lebih
pendek, jelas dan mudah dimengerti.
• Fungsi –fungsi digunakan untuk menghindari penulisan program
yang sama yang ditulis secara berulang – ulang.
• Langkah – langkah tersebut dapat dituliskan sekali saja secara
terpisah dalam bentuk fungsi. Selanjutnya bagian program yang
membutuhkan langkah – langkah ini tidak perlu selalu
menuliskannya, tidak cukup memanggil fungsi tersebut.
• Mempermudah dokumentasi.
• Reusability: Suatu fungsi dapat digunakan kembali oleh program
atau fungsi lain
Jenis fungsi ada 2
Standard Library Function
• Yaitu fungsi-fungsi yang telah disediakan oleh C
dalam file-file header atau librarynya.
• Misalnya: clrscr(), getch()
• Untuk function ini kita harus mendeklarasikan
terlebih dahulu library yang akan digunakan, yaitu
dengan menggunakan preprosesor direktif.
• Misalnya: #include <conio.h>
Programmer-Defined Function

• Adalah function yang dibuat oleh programmer


sendiri.
• Function ini memiliki nama tertentu yang unik
dalam program, letaknya terpisah dari program
utama, dan bisa dijadikan satu ke dalam suatu
library buatan programmer itu sendiri yang
kemudian juga di-includekan jika ingin
menggunakannya.
Rancangan pembuatan fungsi
Dalam membuat fungsi, perlu diperhatikan:
• Data yang diperlukan sebagai inputan
• Informasi apa yang harus diberikan oleh fungsi yang
dibuat ke pemanggilnya
• Algoritma apa yang harus digunakan untuk
mengolah data menjadi informasi
Contoh deklarasi dan definisi fungsi
Fungsi CETAK di-DEKLARASI-kan
lebih dahulu, sebelum fungsi
#include <iostream.h> main().
void CETAK(); Perhatikan pakai tanda ‘;’ (titik
koma)
void main () Kalau tidak pakai titik koma
{ dianggap men-DEFINISI-kan
CETAK(); fungsi

} Instruksi memanggil fungsi


void CETAK() CETAK
{
cout<<"BELAJAR C++"; Tulisan ini disebut:
Men-DEFINISI-kan fungsi
}
Kapan menggunakan deklarasi dan definisi fungsi ?

Karena prinsip kerja program C sekuensial, maka


• Jika bagian dari program yang menggunakan fungsi
diletakkan sebelum definisi dari fungsi, maka
deklarasi dari fungsi diperlukan.
• Akan tetapi jika bagian dari program yang
menggunakan fungsi terletak setelah definisi dari
fungsi, maka deklarasi dari fungsi dapat tidak
dituliskan.
Jenis fungsi di C++ :
• Fungsi yang tidak mengembalikan nilai (void)
• Fungsi yang mengembalikan nilai (nonvoid)
Fungsi void
• Fungsi yang void sering disebut juga prosedur
• Disebuta void karena fungsi tersebut tidak
mengembalikan suatu nilai keluaran yang didapat dari
hasil proses fungsi tersebut.
• Ciri: - tidak adanya keyword return.
- tidak adanya tipe data di dalam deklarasi
fungsi.
- menggunakan keyword void.
• Tidak dapat langsung ditampilkan hasilnya
• Tidak memiliki nilai kembalian fungsi
• Keyword void juga digunakan jika suatu function tidak
mengandung suatu parameter apapun.
Fungsi non void
• Fungsi non-void disebut juga function
• Disebut non-void karena mengembalikan nilai kembalian
yang berasal dari keluaran hasil proses function tersebut
• Ciri:
- ada keyword return
- ada tipe data yang mengawali deklarasi fungsi
- tidak ada keyword void
• Memiliki nilai kembalian
• Dapat dianalogikan sebagai suatu variabel yang memiliki
tipe data tertentu sehingga dapat langsung ditampilkan
hasilnya
Contoh :
• Void : void tampilkan_jml (int a, int b)
{ int jml;
jml = a + b;
cout<<jml;}

• Non-void : int jumlah (int a, int b)


{ int jml;
jml = a + b;
return jml; }
Contoh fungsi void :
#include <iostream>
using namespace std;
void luas(int &ls, int p, int l)
{ ls = p*l; }
main()
{
int pj,lb, hsl;
cout<<"Panjang = ";cin>>pj;
cout<<"Lebar = ";cin>>lb;
luas(hsl,pj,lb);
cout<<"\nLuasnya = "<<hsl;
}
Contoh fungsi non void :
#include <iostream>
using namespace std;
int luas(int p, int l)
{return (p*l); }
main()
{
int pj,lb;
cout<<"Panjang = ";cin>>pj;
cout<<"Lebar = ";cin>>lb;
cout<<"\nLuasnya = "<<luas(pj,lb);
}
Perbedaan Procedure dan Fungsi
• Pada fungsi, nilai yang dikirimkan balik terdapat
pada nama fungsinya ( kalau pada prosedur pada
parameter yang dikirimkan secara acuan).
• Karena nilai balik berada di nama fungsi tersebut,
maka fungsi tersebut dapat langsung digunakan
untuk dicetak hasilnya. Atau nilai fungsi tersebut
dapat juga langsung dipindahkan ke pengenal
variable yang lainnya.
• Pada prosedur, nama prosedur tidak dapat
digunakan lagsung, yang dapat langsung digunakan
adalah parameternya yang mengandung nilai balik.
Daftar Pustaka
Kadir, Abdul, Pemrograman Dasar Turbo untuk IBM PC, Penerbit: Andi Yogyakarta

Kristanto, Andri, Struktur Data dengan C++, Penerbit: Graha Ilmu

Anda mungkin juga menyukai