Spt3102 fungsi(0910)

36
FUNGSI FUNGSI SPT 3102 SPT 3102

Transcript of Spt3102 fungsi(0910)

Page 1: Spt3102 fungsi(0910)

FUNGSIFUNGSISPT 3102SPT 3102

Page 2: Spt3102 fungsi(0910)

FUNGSIFUNGSI

Elemen fungsiElemen fungsi Skop pembolehubah dan fungsiSkop pembolehubah dan fungsi Pembolehubah auto dan statikPembolehubah auto dan statik

Page 3: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI Satu entiti dalam aturcara C++ yang mengandungi Satu entiti dalam aturcara C++ yang mengandungi

satu set arahan untuk melakukan tugas.satu set arahan untuk melakukan tugas.

Dua kategori fungsi:Dua kategori fungsi: Fungsi takrifan pengguna – fungsi yang Fungsi takrifan pengguna – fungsi yang

direkabentuk dan ditulis sendiri oleh pengaturcaradirekabentuk dan ditulis sendiri oleh pengaturcara Fungsi piawai perpustakaan - untuk Fungsi piawai perpustakaan - untuk

menggunakan fungsi-fungsi ini, fail kepala perlu menggunakan fungsi-fungsi ini, fail kepala perlu dimasukkan, contoh cout dan cin dengan dimasukkan, contoh cout dan cin dengan memasukkan fail kepala iostreammemasukkan fail kepala iostream

Page 4: Spt3102 fungsi(0910)

Contoh fungsi takrifan pengguna mudah:Contoh fungsi takrifan pengguna mudah:

int luas_segiempat (int panjang, int lebar)int luas_segiempat (int panjang, int lebar)

{{

int luas;int luas;

luas = panjang * lebar;luas = panjang * lebar;

return luas;return luas;

} }

ELEMEN FUNGSIELEMEN FUNGSI

Page 5: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI Contoh fungsi piawai perpustakaanContoh fungsi piawai perpustakaan math.hmath.h

sqrt (16)sqrt (16) ceil (3.5)ceil (3.5)

conio.hconio.h getch( )getch( )

Stdlib.hStdlib.h exit( )exit( ) system( )system( )

time.htime.h ctime( )ctime( )

Page 6: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI

Tiga elemen penting fungsiTiga elemen penting fungsi Takrifan fungsiTakrifan fungsi Memanggil fungsiMemanggil fungsi Prototaip fungsiPrototaip fungsi

Page 7: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI

Takrifan fungsi adalah menggunakan sintaks Takrifan fungsi adalah menggunakan sintaks berikut:berikut:

Jenis_fungsi Nama_fungsi ( Senarai Parameter)Jenis_fungsi Nama_fungsi ( Senarai Parameter)

{{

……badan fungsibadan fungsi

}}

Page 8: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI

Contoh fungsi mudah:Contoh fungsi mudah:

int luas_segiempat (int panjang, int lebar)int luas_segiempat (int panjang, int lebar)

{{

int luas;int luas;

luas = panjang * lebar;luas = panjang * lebar;

return luas;return luas;

} }

Jenis Nama Senarai parameter

Badan fungsi

Page 9: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI Jenis fungsiJenis fungsi

Memulangkan satu nilai kepada pemanggilnya apabila proses pengiraan tamat Memulangkan satu nilai kepada pemanggilnya apabila proses pengiraan tamat dilaksanakan.dilaksanakan.

Jenis fungsi terdiri daripada jenis data asas seperti int, char, float atau double.Jenis fungsi terdiri daripada jenis data asas seperti int, char, float atau double. Void digunakankan apabila tiada nilai dipulangkan oleh fungsi.Void digunakankan apabila tiada nilai dipulangkan oleh fungsi.

Nama fungsiNama fungsi Seperti pembolehubah, nama fungsi perlu unikSeperti pembolehubah, nama fungsi perlu unik Tidak boleh menggunakan kata simpanTidak boleh menggunakan kata simpan Nama fungsi piawai perlu dielakkan penggunaannya (cth: sqrt)Nama fungsi piawai perlu dielakkan penggunaannya (cth: sqrt)

Senarai parameterSenarai parameter Parameter – merupakan satu kandungan yang terdiri daripada pemalar atau Parameter – merupakan satu kandungan yang terdiri daripada pemalar atau

nilai bagi suatu pembolehubah yang dihantar kepada suatu fungsinilai bagi suatu pembolehubah yang dihantar kepada suatu fungsi Terdapat dua jenis parameterTerdapat dua jenis parameter

Parameter formalParameter formal Merupakan pembolehubah pada fungsi yang dipanggil,Merupakan pembolehubah pada fungsi yang dipanggil, Pembolehubah ini menerima suatu nilai yang dihantar oleh fungsi pemanggilPembolehubah ini menerima suatu nilai yang dihantar oleh fungsi pemanggil Cth: int luas_segiempat(int panjang, int lebar); //panjang dan lebar adalah parameter Cth: int luas_segiempat(int panjang, int lebar); //panjang dan lebar adalah parameter

formalformal

Page 10: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI Parameter sebenar /argumenParameter sebenar /argumen

Ialah nilai yang dihantar oleh suatu pembolehubah pada fungsi Ialah nilai yang dihantar oleh suatu pembolehubah pada fungsi pemanggilpemanggil

Cth: luas_segiempat(4,6) //4 dan 6 adalah parameter sebenarCth: luas_segiempat(4,6) //4 dan 6 adalah parameter sebenar Senarai parameter adalah bilangan parameter yang dihantar Senarai parameter adalah bilangan parameter yang dihantar

daripada fungsi pemanggil pada fungsi yang dipanggildaripada fungsi pemanggil pada fungsi yang dipanggil Bilangan dan jenis parameter daripada fungsi pemanggil Bilangan dan jenis parameter daripada fungsi pemanggil

perlu sama dengan fungsi yang dipanggilperlu sama dengan fungsi yang dipanggil

Badan fungsiBadan fungsi Kod-kod aturcara untuk melaksanakan tugasKod-kod aturcara untuk melaksanakan tugas Dimulakan dengan pembuka blok { dan penutup blok }Dimulakan dengan pembuka blok { dan penutup blok }

Page 11: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI

Memanggil fungsiMemanggil fungsi Untuk melakukan sesuatu tugas, fungsi perlu Untuk melakukan sesuatu tugas, fungsi perlu

dipanggildipanggil Terdapat tiga perkara perlu diketahui sebelum Terdapat tiga perkara perlu diketahui sebelum

fungsi dapat dipanggilfungsi dapat dipanggil Nama fungsiNama fungsi Parameter yang diperlukanParameter yang diperlukan Nilai yang akan dipulangkanNilai yang akan dipulangkan

Page 12: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI

Nama fungsiNama fungsi Fungsi dapat dipanggil dengan menulis kembali Fungsi dapat dipanggil dengan menulis kembali

nama fungsi yang hendak dipanggilnama fungsi yang hendak dipanggil Selepas itu, diikuti dengan bilangan data yang Selepas itu, diikuti dengan bilangan data yang

diperlukan dengan urutan yang betuldiperlukan dengan urutan yang betul Contoh:Contoh:

luas_segiempat (void);luas_segiempat (void); luas_segiempat (4, 4);luas_segiempat (4, 4);

Page 13: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI

Data yang dihantar kepada fungsi perlu terdiri Data yang dihantar kepada fungsi perlu terdiri daripada jenis yang sama seperti yang telah daripada jenis yang sama seperti yang telah ditakrifkan pada senarai fungsiditakrifkan pada senarai fungsi

Bilangan data dan urutan juga perlu sama Bilangan data dan urutan juga perlu sama seperti dalam takrifan fungsiseperti dalam takrifan fungsi

Data-data yang dihantar akan digunakan Data-data yang dihantar akan digunakan sebagai nilai parameter fungsi yang dipanggil sebagai nilai parameter fungsi yang dipanggil

Page 14: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI

Contoh panggilan fungsi luas_segiempat:Contoh panggilan fungsi luas_segiempat:

luas_segiempat ( 4 , 6 )luas_segiempat ( 4 , 6 )

int luas_segiempat (int panjang, int lebar)int luas_segiempat (int panjang, int lebar){{

int luas; int luas; luas = panjang * lebar; luas = panjang * lebar; return luas;return luas;

} }

Page 15: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI Contoh cetakan segiempat ‘*’:Contoh cetakan segiempat ‘*’:

cetak_segiempat ( 4, 5, ‘*’)cetak_segiempat ( 4, 5, ‘*’)

void cetak_segiempat ( int panjang, int lebar, char simbol)void cetak_segiempat ( int panjang, int lebar, char simbol){{

for ( int x = 1; x <= panjang; x++)for ( int x = 1; x <= panjang; x++) {{

cout<<endl;cout<<endl;for (int y=1; y<= lebar; y++)for (int y=1; y<= lebar; y++) cout<<simbol; cout<<simbol;

}}

}}

Page 16: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI Contoh:Contoh:

1. cetak_segiempat (3, 6, ‘*’)1. cetak_segiempat (3, 6, ‘*’)

2. cetak_segiempat (6, 3, ‘*’)2. cetak_segiempat (6, 3, ‘*’)

3. cetak_segiempat (‘*’, 3, 6)3. cetak_segiempat (‘*’, 3, 6)

Output:Output:1. ******

************

2. ******************

3. ?

Page 17: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI

Pemulangan nilai berlaku apabila fungsi bukan Pemulangan nilai berlaku apabila fungsi bukan dari jenis voiddari jenis void

Nilai yang dipulangkan perlu diuruskan Nilai yang dipulangkan perlu diuruskan dengan betul oleh pengaturcaradengan betul oleh pengaturcara MemprosesMemproses MenyimpanMenyimpan MencetakMencetak

Page 18: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI

Contoh pengunaan:Contoh pengunaan: Menyimpan nilaiMenyimpan nilai

luas = luas_segiempat(4, 4);luas = luas_segiempat(4, 4); Mencetak nilaiMencetak nilai

cout<<luas_segiempat(4, 4);cout<<luas_segiempat(4, 4); Memproses nilaiMemproses nilai

if(luas_segiempat(4, 4) = = 0)if(luas_segiempat(4, 4) = = 0)cout<<“Satu titik”;cout<<“Satu titik”;

elseelsecout<<“Segiempat”;cout<<“Segiempat”;

Page 19: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI

Prototaip fungsiPrototaip fungsi Seperti pembolehubah, fungsi perlu diisytiharkan terlebih Seperti pembolehubah, fungsi perlu diisytiharkan terlebih

dahulu sebelum digunakandahulu sebelum digunakan Pengisytiharaan fungsi ini dikenali sebagai prototaip fungsiPengisytiharaan fungsi ini dikenali sebagai prototaip fungsi Digunakan untuk memastikan bilangan dan jenis parameter Digunakan untuk memastikan bilangan dan jenis parameter

yang dihantar oleh fungsi pemanggil adalah sama dengan yang dihantar oleh fungsi pemanggil adalah sama dengan bilangan dan jenis fungsi yang dipanggilbilangan dan jenis fungsi yang dipanggil

Prototaip fungsi perlu dilakukan sekiranya fungsi dipanggil Prototaip fungsi perlu dilakukan sekiranya fungsi dipanggil dalam aturcara utama sebelum takrifan fungsi dibuatdalam aturcara utama sebelum takrifan fungsi dibuat

Page 20: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI

Sintaks prototaip fungsi:Sintaks prototaip fungsi: Jenis_fungsi Nama_fungsi (Jenis parameter);Jenis_fungsi Nama_fungsi (Jenis parameter);

Contoh:Contoh: int luas_segiempat (int, int)int luas_segiempat (int, int) void menu_utama (void)void menu_utama (void) char gred (float)char gred (float)

Page 21: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI Contoh aturcara-Takrifan fungsi dibuat di bawah fungsi utama:Contoh aturcara-Takrifan fungsi dibuat di bawah fungsi utama:

1.1. #include <iostream.h> //fail kepala untuk cout dan cin#include <iostream.h> //fail kepala untuk cout dan cinvoid main( )void main( ) //fungsi utama tanpa pemulangan nilai//fungsi utama tanpa pemulangan nilai{{int luas_segiempat (int, int); //pengisytiharaan fungsiint luas_segiempat (int, int); //pengisytiharaan fungsicout<<“Luas segiempat sama dengan sisi 4 adalah ”; //mesej bagi luas segiempatcout<<“Luas segiempat sama dengan sisi 4 adalah ”; //mesej bagi luas segiempatcout<<luas_segiempat(4,4); //pemangillan fungsi luas segiempatcout<<luas_segiempat(4,4); //pemangillan fungsi luas segiempatcout<<endl; //cetakan baris barucout<<endl; //cetakan baris baru}}

int luas_segiempat (int panjang, int lebar) //takrifan fungsi luas segiempatint luas_segiempat (int panjang, int lebar) //takrifan fungsi luas segiempat{{

int luas; //pengisytiharaan pembolehubahint luas; //pengisytiharaan pembolehubahluas = panjang * lebar; //proses pengiraan luasluas = panjang * lebar; //proses pengiraan luasreturn luas; //pemulangan nilai intreturn luas; //pemulangan nilai int

} }

Page 22: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI Contoh aturcara-Takrifan fungsi dibuat di bawah fungsi utama:Contoh aturcara-Takrifan fungsi dibuat di bawah fungsi utama:

2.2. #include <iostream.h> //fail kepala untuk cout dan cin#include <iostream.h> //fail kepala untuk cout dan cin

int luas_segiempat (int, int); //pengisytiharaan fungsiint luas_segiempat (int, int); //pengisytiharaan fungsi

void main( )void main( ) //fungsi utama tanpa pemulangan nilai//fungsi utama tanpa pemulangan nilai{{cout<<“Luas segiempat sama dengan sisi 4 adalah ”; //mesej bagi luas segiempatcout<<“Luas segiempat sama dengan sisi 4 adalah ”; //mesej bagi luas segiempatcout<<luas_segiempat(4,4); //pemangilan fungsi luas segiempatcout<<luas_segiempat(4,4); //pemangilan fungsi luas segiempatcout<<endl; //cetakan baris barucout<<endl; //cetakan baris baru}}

int luas_segiempat (int panjang, int lebar) //takrifan fungsi luas segiempatint luas_segiempat (int panjang, int lebar) //takrifan fungsi luas segiempat{{

int luas; //pengisytiharaan pembolehubahint luas; //pengisytiharaan pembolehubahluas = panjang * lebar; //proses pengiraan luasluas = panjang * lebar; //proses pengiraan luasreturn luas; //pemulangan nilai intreturn luas; //pemulangan nilai int

} }

Page 23: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI Contoh aturcara-Takrifan fungsi dibuat di atas fungsi utama:Contoh aturcara-Takrifan fungsi dibuat di atas fungsi utama:

3.3. #include <iostream.h> //fail kepala untuk cout dan cin#include <iostream.h> //fail kepala untuk cout dan cin

int luas_segiempat (int panjang, int lebar) //takrifan fungsi luas segiempatint luas_segiempat (int panjang, int lebar) //takrifan fungsi luas segiempat{{

int luas; //pengisytiharaan pembolehubahint luas; //pengisytiharaan pembolehubahluas = panjang * lebar; //proses pengiraan luasluas = panjang * lebar; //proses pengiraan luasreturn luas; //pemulangan nilai intreturn luas; //pemulangan nilai int

} }

void main( )void main( ) //fungsi utama tanpa pemulangan nilai//fungsi utama tanpa pemulangan nilai{{cout<<“Luas segiempat sama dengan sisi 4 adalah ”; //mesej bagi luas segiempatcout<<“Luas segiempat sama dengan sisi 4 adalah ”; //mesej bagi luas segiempatcout<<luas_segiempat(4,4); //pemangillan fungsi luas segiempatcout<<luas_segiempat(4,4); //pemangillan fungsi luas segiempatcout<<endl; //cetakan baris barucout<<endl; //cetakan baris baru}}

Page 24: Spt3102 fungsi(0910)

ELEMEN FUNGSIELEMEN FUNGSI

Penghantaran nilai kepada fungsiPenghantaran nilai kepada fungsi Penghantaran nilai sebenarPenghantaran nilai sebenar Penghantaran alamat nilaiPenghantaran alamat nilai

Penghantaran nilai sebenarPenghantaran nilai sebenar PemalarPemalar cth: luas_segiempat(2, 2)cth: luas_segiempat(2, 2) PembolehubahPembolehubah cth: luas_segiempat( x, y)cth: luas_segiempat( x, y) UngkapanUngkapan cth: luas_segiempat((x-2), (y-4))cth: luas_segiempat((x-2), (y-4))

Page 25: Spt3102 fungsi(0910)

SKOP PEMBOLEHUBAH DAN FUNGSISKOP PEMBOLEHUBAH DAN FUNGSI

Menentukan kawasan di mana sesuatu pembolehubah Menentukan kawasan di mana sesuatu pembolehubah boleh digunakanboleh digunakan

Konsep ini penting untuk menentukan perkongsian Konsep ini penting untuk menentukan perkongsian pembolehubahpembolehubah

Skop pembolehubah dan fungsi ditentukan oleh Skop pembolehubah dan fungsi ditentukan oleh tempat dimana pembolehubah dan fungsi beradatempat dimana pembolehubah dan fungsi berada

Terdapat dua jenis skop:Terdapat dua jenis skop: SetempatSetempat SejagatSejagat

Page 26: Spt3102 fungsi(0910)

SKOP PEMBOLEHUBAH DAN FUNGSISKOP PEMBOLEHUBAH DAN FUNGSI

Pembolehubah sejagatPembolehubah sejagat Boleh dicapai oleh semua fungsi yang berada Boleh dicapai oleh semua fungsi yang berada

dalam aturcara yang samadalam aturcara yang sama Hayat pembolehubah sejagat adalah sepanjang Hayat pembolehubah sejagat adalah sepanjang

perlaksanaan aturcaraperlaksanaan aturcara Lokasi pembolehubah sejagat adalah di luar fungsi Lokasi pembolehubah sejagat adalah di luar fungsi

mainmain

Page 27: Spt3102 fungsi(0910)

SKOP PEMBOLEHUBAH DAN FUNGSISKOP PEMBOLEHUBAH DAN FUNGSI

Contoh pembolehubah sejagat:Contoh pembolehubah sejagat:#include<iostream.h>#include<iostream.h>int x, y;int x, y; //pembolehubah sejagat//pembolehubah sejagat

void main( )void main( ){{

int hasil;int hasil;x = 2; y = 4;x = 2; y = 4; //capai dan ubah pembolehubah sejagat//capai dan ubah pembolehubah sejagathasil = x * y;hasil = x * y;cout<<“Hasil darab dua nombor ”<<x<<“ dan ” <<y;cout<<“Hasil darab dua nombor ”<<x<<“ dan ” <<y;cout<<“ adalah ”<< hasil; cout<<“ adalah ”<< hasil;

}}

Page 28: Spt3102 fungsi(0910)

SKOP PEMBOLEHUBAH DAN FUNGSISKOP PEMBOLEHUBAH DAN FUNGSI

Pembolehubah setempatPembolehubah setempat Hanya dapat dicapai oleh fungsi yang mempunyai Hanya dapat dicapai oleh fungsi yang mempunyai

pembolehubah jenis inipembolehubah jenis ini Lokasi pembolehubah jenis ini adalah di dalam Lokasi pembolehubah jenis ini adalah di dalam

sesuatu fungsisesuatu fungsi Hayat pemboleubah jenis ini berakhir apabila Hayat pemboleubah jenis ini berakhir apabila

fungsi tamat melakukan tugasfungsi tamat melakukan tugas

Page 29: Spt3102 fungsi(0910)

SKOP PEMBOLEHUBAH DAN FUNGSISKOP PEMBOLEHUBAH DAN FUNGSI

Contoh pembolehubah setempat:Contoh pembolehubah setempat:#include<iostream.h>#include<iostream.h>int x, y;int x, y;

void main( )void main( ){{

int hasil; //pembolehubah setempatint hasil; //pembolehubah setempatx = 2; y = 4;x = 2; y = 4;

hasil = x * y; //capai dan guna pembolehubah setempathasil = x * y; //capai dan guna pembolehubah setempat

cout<<“Hasil darab dua nombor ”<<x<<“ dan ” <<y;cout<<“Hasil darab dua nombor ”<<x<<“ dan ” <<y;cout<<“ adalah ”<< hasil; cout<<“ adalah ”<< hasil;

}}

Page 30: Spt3102 fungsi(0910)

SKOP PEMBOLEHUBAH DAN FUNGSISKOP PEMBOLEHUBAH DAN FUNGSI

Skop fungsi terdiri daripada:Skop fungsi terdiri daripada: Prototaip sejagatPrototaip sejagat Prototaip setempatPrototaip setempat

Prototaip sejagatPrototaip sejagat Diisytiharkan diluar fungsi mainDiisytiharkan diluar fungsi main Skop panggilan fungsi bermula daripada ianya Skop panggilan fungsi bermula daripada ianya

diisytiharkan sehingga tamat aturcaradiisytiharkan sehingga tamat aturcara

Page 31: Spt3102 fungsi(0910)

SKOP PEMBOLEHUBAH DAN FUNGSISKOP PEMBOLEHUBAH DAN FUNGSI

Prototaip setempatPrototaip setempat Diisytiharkan di dalam sesuatu fungsiDiisytiharkan di dalam sesuatu fungsi Skop panggilan fungsi hanya tertumpu pada blok Skop panggilan fungsi hanya tertumpu pada blok

fungsi tersebutfungsi tersebut

Page 32: Spt3102 fungsi(0910)

SKOP PEMBOLEHUBAH DAN FUNGSISKOP PEMBOLEHUBAH DAN FUNGSI

1.1. #include <iostream.h> //fail kepala untuk cout dan cin#include <iostream.h> //fail kepala untuk cout dan cin

int luas_segiempat (int, int); //pengisytiharaan prototaip fungsi sejagatint luas_segiempat (int, int); //pengisytiharaan prototaip fungsi sejagat

void main( )void main( ) //fungsi utama tanpa pemulangan nilai//fungsi utama tanpa pemulangan nilai{{cout<<“Luas segiempat sama dengan sisi 4 adalah ”; //mesej bagi luas segiempatcout<<“Luas segiempat sama dengan sisi 4 adalah ”; //mesej bagi luas segiempatcout<<luas_segiempat(4,4); //pemangilan fungsi luas segiempatcout<<luas_segiempat(4,4); //pemangilan fungsi luas segiempatcout<<endl; //cetakan baris barucout<<endl; //cetakan baris baru}}

int luas_segiempat (int panjang, int lebar) //takrifan fungsi luas segiempatint luas_segiempat (int panjang, int lebar) //takrifan fungsi luas segiempat{{

int luas; //pengisytiharaan pembolehubahint luas; //pengisytiharaan pembolehubahluas = panjang * lebar; //proses pengiraan luasluas = panjang * lebar; //proses pengiraan luasreturn luas; //pemulangan nilai intreturn luas; //pemulangan nilai int

} }

Page 33: Spt3102 fungsi(0910)

SKOP PEMBOLEHUBAH DAN FUNGSISKOP PEMBOLEHUBAH DAN FUNGSI

2.2. #include <iostream.h> //fail kepala untuk cout dan cin#include <iostream.h> //fail kepala untuk cout dan cinvoid main( )void main( ) //fungsi utama tanpa pemulangan nilai//fungsi utama tanpa pemulangan nilai{{int luas_segiempat (int, int); //pengisytiharaan prototaip fungsi setempatint luas_segiempat (int, int); //pengisytiharaan prototaip fungsi setempatcout<<“Luas segiempat sama dengan sisi 4 adalah ”; //mesej bagi luas segiempatcout<<“Luas segiempat sama dengan sisi 4 adalah ”; //mesej bagi luas segiempatcout<<luas_segiempat(4,4); //pemangillan fungsi luas segiempatcout<<luas_segiempat(4,4); //pemangillan fungsi luas segiempatcout<<endl; //cetakan baris barucout<<endl; //cetakan baris baru}}

int luas_segiempat (int panjang, int lebar) //takrifan fungsi luas segiempatint luas_segiempat (int panjang, int lebar) //takrifan fungsi luas segiempat{{

int luas; //pengisytiharaan pembolehubahint luas; //pengisytiharaan pembolehubahluas = panjang * lebar; //proses pengiraan luasluas = panjang * lebar; //proses pengiraan luasreturn luas; //pemulangan nilai intreturn luas; //pemulangan nilai int

} }

Page 34: Spt3102 fungsi(0910)

PEMBOLEHUBAH AUTO DAN STATICPEMBOLEHUBAH AUTO DAN STATIC

Pembolehubah automatikPembolehubah automatik Secara defaultnya, semua pembolehubah yang Secara defaultnya, semua pembolehubah yang

digunakan adalah automatikdigunakan adalah automatik Menerangkan hayat pembolehubah setempatMenerangkan hayat pembolehubah setempat Pembolehubah automatik, hayatnya hanya Pembolehubah automatik, hayatnya hanya

sepanjang fungsi dilaksanakan.sepanjang fungsi dilaksanakan. Apabila fungsi tamat, pembolehubah akan Apabila fungsi tamat, pembolehubah akan

dihapuskandihapuskan

Page 35: Spt3102 fungsi(0910)

PEMBOLEHUBAH AUTO DAN STATICPEMBOLEHUBAH AUTO DAN STATIC

Pembolehubah staticPembolehubah static Nilai pembolehubah kekal setelah fungsi tamatNilai pembolehubah kekal setelah fungsi tamat Arahan pengisytiharaan pembolehubah static dilaksanakan Arahan pengisytiharaan pembolehubah static dilaksanakan

sekali sahajasekali sahaja Apabila fungsi tamat pembolehubah static masih wujud Apabila fungsi tamat pembolehubah static masih wujud

dengan nilai yang sedia ada dari panggilan yang lepasdengan nilai yang sedia ada dari panggilan yang lepas Semua pembolehubah sejagat adalah static manakala Semua pembolehubah sejagat adalah static manakala

pembolehubah setempat perlu diisytiharkan static jika pembolehubah setempat perlu diisytiharkan static jika ianya mahu digunakan sebagai staticianya mahu digunakan sebagai static

Page 36: Spt3102 fungsi(0910)

PEMBOLEHUBAH AUTO DAN STATICPEMBOLEHUBAH AUTO DAN STATIC Perbezaan pembolehubah auto dan staticPerbezaan pembolehubah auto dan static1. #include<iostream.h>1. #include<iostream.h>

void tambah (void);void tambah (void);void main ( )void main ( ){{

tambah ( );tambah ( );tambah ( );tambah ( );

}}void tambah ( void)void tambah ( void){{

int num = 10;int num = 10;int hasil = 0;int hasil = 0;hasil += num;hasil += num;cout<<hasil;cout<<hasil;cout<<endl;cout<<endl;

} }

2. #include<iostream.h>2. #include<iostream.h>void tambah (void);void tambah (void);void main ( )void main ( ){{

tambah ( );tambah ( );tambah ( );tambah ( );

}}void tambah ( void)void tambah ( void){{

int num = 10;int num = 10;static int hasil = 0;static int hasil = 0;hasil +=num;hasil +=num;cout<<hasil;cout<<hasil;cout<<endl;cout<<endl;

} } Output:1010

Output:1020