MODUL 3
FUNGSI
A. Tujuan
1. Mahasiswa mengenal function dalam bahasa C / C++.
2. Mahasiswa bisa membuat program procedural dengan bahasa C / C++.
B. Dasar Teori
Fungsi
Pada pemrograman C++ selalu terdapat sebuah fungsi utama atau
sub-program yakni “
void main()”. Penamaan modul memiliki karakteristik yang
sama dengan penamaan variabel dengan fungsi program akan menjadi lebih
efisien dan fleksibel. Fungsi adalah suatu blok kode yang melakukan tugas
tertentu atau suatu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain
dalam suatu program.
Pada umumnya fungsi memerlukan masukan yang dinamakan argument
atau parameter. Hasil akhir dari fungsi akan berupa sebuah nilai.
Berikut bagan konsep sebuah fungsi :
Gambar 3.1 Bagan konsep sebuah fungsi
Berikut source code dari suatu fungsi :
Penentuan_tipe nama_fungsi (daftar parameter) Deklarasi parameter {
Isi fungsi }
Fungsi main()
Fungsi a() Fungsi b() Fungsi c()
Fungsi
saja. Khusus untuk fungsi yang disediakan di system, definisinya sebenarnya ada dalam
pustaka, yang akan digabungkan dengan program sewaktu proses linking.
Deklarasi Fungsi
Deklarasi fungsi atau sering disebut dengan prototype fungsi dimaksudkan untuk
mendeklarasikan fungsi agar dapat dipanggil. Deklarasi fungsi berupa :
1)
Tipe nilai balik.
2)
Nama fungsi.
3)
Jumlah dan tipe argument.
Dan diakhiri dengan titik koma, sebagaimana pendeklarasian variabel.
Sebagai contoh :
long kuadrat(long);
Pada contoh ini fungsi “kuadrat()” mempunyai argument bertipe long dan nilai
balik bertipe long.
int maks(int a,intb);
Pada contoh ini fungsi “maks()” mempunyai dua argument bertipe integer
dan nilai balik bertipe integer juga.
void garis();
Pada contoh ini fungsi “garis()” tidak memiliki argument dan nilai baliknya
tidak ada (“
void”).
Penggolongan Variabel
Variabel lokal atau Local variable adalah sebuah variabel sederhana yang
dideklarasikan di dalam sebuah blok program. Ini bisa diakses hanya dari dalam blok
itu sendiri. Karena bagian dari fungsi itu sendiri adalah blok, variabel dideklarasikan
ke dalam sebuah fungsi yang local di fungsi itu. Mereka ada hanya ketika fungsi itu
sedang dieksekusi. Sebuah formal parameter (argument) dari fungsi akan menjadi
lokal di fungsi itu. Variabel global memiliki ruang lingkup sepanjang semua program
dijalankan maka variabel global akan tetap dikenali dimanapun bagian atau blok
dalam bagian kode program dijalankan.
Contoh :
int factorial() {
if (n < 0) return 0; f = 1;
while (n > 1) f *= n--; return f;
Parameter
Parameter fungsi digunakan untuk mengirimkan parameter (nilai) ke suatu fungsi.
Parameter berbeda dengan argumen. Parameter digunakan untuk memasukkan
input
pada sebuah tubuh fungsi yang ditulis di luar fungsi main , sedangkan argumen
merupakan masukan pada sebuah fungsi ketika fungsi tersebut dipanggil pada sebuah
fungsi main. Parameter fungsi harus bertipe data tertentu.
[1]Terdapat 2 jenis parameter,
yaitu:
1. Parameter formal: Parameter yang ditulis pada deklarasi fungsi.
2. Parameter aktual: Parameter yang dimasukkan dalam program pemanggil fungsi
tersebut, sering disebut dengan argumen.
Pengiriman parameter ke suatu fungsi dapat dilakukan dengan dua cara, yaitu
pengiriman secara nilai (by value) dan pengiriman secara acuan (by reference).
1. Pengiriman Parameter Secara Nilai (By Value)
Pengiriman parameter secara nilai mempunyai karakteristik sebagai berikut:
Nilai parameter yang dikirim ke fungsi tidak mempengaruhi nilai parameter pada
bagian program yang memanggil fungsi tersebut.
Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian
program yang memanggil fungsi ke fungsi yang dipanggil.
Pengiriman parameter secara nilai dapat dilakukan untuk suatu ungkapan,
variabel, elemen array atau konstanta.
2. Pengiriman Parameter Secara Acuan (by reference)
bagian program yang memanggil fungsi tersebut.
b) Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian
program yang memanggil fungsi ke fungsi yang dipanggil.
c) Pengiriman parameter secara nilai dapat dilakukan untuk suatu ungkapan, variabel,
elemen array atau konstanta.
Fungsi tanpa nilai balik
Fungsi tanpa nilai balik adalah fungsi yang dimana untuk menampilkan
suatu keterangan saja. Penggunaan fungsi tanpa nilai balik salah satunya
menggunakan void.
Fungsi dengan nilai balik
Fungsi dengan tanda balik adalah suatu fungsi yang dapat
mengembalikan suatu nilai ke dalam fungsi utama. Dalam membuat fungsi,
harus didefinisikan tipe data dari nilai yang akan dikembalikan.
Contoh Program Fungsi pada C++ :
// Menampilkan pesan #include <iostream> #include <conio> void printmessage () {
cout << "I'm a function!"; }
void main () {
printmessage (); getch();
}
#include<iostream.h> #include<conio.h>
int addition (int a, int b){ int r;
r=a+b; return (r); }
{
int z;
z = addition (5,3);
cout << "The result is " << z; getch();
C. Permasalahan
Buatlah dengan metode fungsi yaitu
1. Luas Segitiga
Flowchart :
Source Code :
#include <iostream.h>
cout<<"Masukkan nilai alas : "; cin>>al;
cout<<"Masukkan nilai tinggi : "; cin>>ti;
lse=al*ti/2;
cout<<"Luas segitiga : "<<lse; cout<<endl;
cout<<"Masukkan nilai panjang : "; cin>>pa;
cout<<"Masukkan nilai lebar : "; cin>>le;
cout<<"Masukkan nilai tinggi : "; cin>>ti;
vb=pa*le*ti;
cout<<"Volume Balok : "<<vb; cout<<endl;
cout<<"\tLuas Persegi\n";
cout<<"Masukkan nilai sisi : "; cin>>si;
lp=si*si;
cout<<"Luas Persegi : "<<lp; cout<<endl;
cout<<"============================\n"; cout<<endl;
void layang() {
cout<<"\tLuas Layang-layang\n";
cout<<"Masukkan nilai diagonal 1 : "; cin>>d1;
cout<<"Masukkan nilai diagonal 2 : "; cin>>d2;
ll=d1*d2/2;
cout<<"Luas Layang-layang : "<<ll; cout<<endl;
cout<<"=========================\n"; cout<<"\tMenu Pilihan\n\n";
cout<<"1. Luas Segitiga\n"; cout<<"2. Volume balok\n"; cout<<"3. Luas Persegi\n";
cout<<"4. Luas Layang-layang\n\n"; cout<<"=========================\n"; cin>>pilih;
clrscr();
cout<<"============================\n"; cout<<"\|\tPilihan Anda |\n"; cout<<"============================\n"; switch(pilih)
{
case'1': segitiga();
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
break; case'2': balok();
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
break; case'3': persegi();
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
break; default:
cout<<"Pilihan tidak ada\n";
cout<<"Anda ingin Mengulang![y/n]"; cin>>y;
cin>>n>>"silahkan exit program"; clrscr();
} }
while(y=='y'||y=='Y'||n=='n'||n=='N'); cout<<"Silahkan exit program !!!\n\n"; system("pause");
}
D. Analisa Data
1. #include <iostream.h> #include <stdlib.h> #include <conio.h>
Script program diatas merupakan bagian header yakin berperan sebagai
library dari statement yang ada di dalam program, supaya statement yang digunakan
pada program dapat di kenal.
#include <iostream.h>merupakan file header program yang
mendeklarasikan satement
“cout”dan
“cin”yakni statement yang
bertugas sebagai statement input output (I/O) pada program.
#include <stdlib.h>merupakan file header yang berfungsi untuk
operasi pembanding dan operasi konversi.
#include <conio.h>merupakan file header yang berfungsi untuk
menampilkan hasil antarmuka kepada pengguna.
2
. void segitiga()void balok() void persegi() void layang() void main()
Script program diatas merupakan bagian dari pendeklarasian fungs-fungsi
yang akan di gunakan dalam dalam program.
void main()Script di atas merupakan bagian dari pendeklarasian fungsi utama.
Fungsi utama ini berisi kode-kode atau statement yang akan digunakan
untuk menyelesaikan masalah tertentu. Fungsi utama ini diawali dengan
tanda kurung kurawal buka “ { “ dan diakhiri dengan tanda kurung kurawal
tutup “ } ”, yang dimana pada disela-sela tanda tersebut berisikan
kode-kode atau statement yang akan dieksekusi dan merupakan bagian tubuh
dari fungsi utama.
void segitiga()
Merupakan script pendeklarasian sebuah fungsi yang bernama fungsi
segitiga. Cara penulisan dan cara kerja fungsi ini sama dengan fungsi
utama di atas.
fungsi balok. Cara penulisan dan cara kerja fungsi ini sama dengan
fungsi utama di atas.
void persegi()
Merupakan script pendeklarasian sebuah fungsi yang bernama
fungsi persegi. Cara penulisan dan cara kerja fungsi ini sama dengan
fungsi utama di atas.
void layang()
Merupakan script pendeklarasian sebuah fungsi yang bernama
fungsi layang dan bertipe
float. cara penulisan dan cara kerja fungsi
ini sama dengan fungsi utama di atas..
3
. int al, ti, lp, pa, le,vb, lse, si, ll, d1,d2; char pilih; char y;
char n;
Script program diatas merupakan bagian dari pendeklarasian variable yang
bertipe
intdan
charyang dapat di gunakan pada seluruh bagian program.
4
. switch(pilih){case'1':segitiga();break; case'2':balok();break; case'3':persegi();break; case'4':layang();break;
default:cout<<"Pilihan tidak ada\n";}
Script program diatas merupakan instruksi yang digunakan untuk memilih
fungsi yang akan di tuju. Saat
pilihbernilai 1 maka program akan menunjuk fungsi
yang bernama segitiga, saat
pilihbernilai 2 maka program akan menunjuk fungsi
yang bernama balok,dan begitu seterusnya sampai sampai nilai
masuktidak terdapat
dalam
casemaka akan langsung mengeksekusi statement pada bagian
default.
5
dan menuju ke menu pilihan, dan jika menekan huruf “ n “ pada
keyboard maka
muncul notifikasi untuk menutup program.
6
. cout<<"\tMenu Pilihan\n\n"; cout<<"1. Luas Segitiga\n"; cout<<"2. Volume balok\n"; cout<<"3. Luas Persegi\n";
cout<<"4. Luas Layang-layang\n\n"; cin>>pilih;
Perintah “
cout“ di atas merupakan perintah yang digunakan untuk
menampilkan masukkan pada layar,
sedangkan
perintah “
cin“ merupakan perintah
yang digunakan untuk memberi masukkan variable dari keyboard, yang akan di
tampilkan pada layar.
7
. system("pause");getch();
Fungsi “
system("pause")” dalam program ini adalah untuk menghentikan
program untuk sementara dan menampilkan pesan “ Press any to continue … ”.
Fungsi
” getch()”dalam program ini adalah untuk menahan tampilan layar saat
1.
Fungsi adalah suatu blok kode yang melakukan tugas tertentu atau suatu blok
instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program.
2.
Fungsi dapat memisahkan langkah-langkah dari satu atau lebih fungsi, maka
fungsi utama menjadi lebih pendek, jelas dan mudah dimengerti. Fungsi harus
memiliki nama dan parameter sebagai pembeda antara fungsi yang satu dengan
fungsi yang lain.
3.
Program procedural merupakan program yang terstruktur dengan rapi. Terdapat
dua cara dalam penulisan fungsi, yang pertama kita menuliskan fungsi di atas
fungsi utama(“
main”). Yang kedua kita menuliskan fungsi dibawah fungsi
utama(“
main”), namun harus dikenalkan dulu di awal program menggunakan
prototype atau menggunakan deklarasi global dari fungsi tersebut agar fungsi
tersebut dapat dikenali oleh fungsi utama (“
main”) dan bahkan dapat dikenali
se-tiap fungsi.
4.
Dalam fungsi utama dapat digunakan proses perulangan maupun control untuk
mengenali fungsi dinamis yang banyak.
Tugas Pendahuluan
1. Buatlah sebuah program biodata mahasiswa dgn menggunakan "fungsi" dan ketentuan
in-putannya sbb:
cout<<"Halbat Akmaral Aziad"<<endl; } void ttl ()
{
cout<<"Sakra, 30 Agustus 1996"<<endl; } void univ ()
{
cout<<"Universitas Mataram"<<endl; } void fpro ()
{
cout<<"Teknik/Teknik Elektro"<<endl; } void smt () cout<<"Tempat, tanggal lahir : ";ttl (); cout<<"Universitas : ";univ (); cout<<"Fakultas/Prodi : ";fpro (); cout<<"Semester : ";smt (); getch ();
}
Buatlah program function untuk menampilkan macam-macam pekerjaan.
Source code :
#include <iostream.h> #include <conio.h> #include <stdlib.h> void polisi()
{
cout<<"1. Memelihara keamanan dan ketertiban masyarakat\n"; cout<<"2. Menegakkan hukum\n";
cout<<"3. Memberikan perlindunga, pengayoman, dan pelayanan kepada masyarakat\n";
cout<<endl; }
void pedagang() {
cout<<"Menjual barang / kebutuhan masyarakat"; cout<<endl;
}
void nelayan() {
cout<<"Menangkap dan menjual ikan"; cout<<endl;
}
void dokter() {
cout<<"1. Memeriksa Pasien\n"; cout<<"2. Memberi resep obat\n"; cout<<endl;
}
void pilot() {
cout<<"1. Menerbangkan pesawat\n";
cout<<"2. Menjaga keselamatan para penumpang\n"; cout<<endl;
}
void pramugari() {
cout<<"1. Memberi pengarahan kepada penumpang\n"; cout<<"2. Melayani para penumpang\n";
cout<<endl; }
void peragawan() {
cout<<"Memamerkan baju hasil rancangan desainer di atas pang-gung";
void sekretaris() {
cout<<"1. Membantu pemimpin perusahaan dalam melaksanakan tu-gas\n";
cout<<"2. Mengatur jadwal pertemuan\n"; cout<<"3. Memberikan ide-ide\n";
cout<<"dan lain-lain\n"; cout<<endl;
}
void eva() {
cout<<"Membuat es krim"; cout<<endl;
cout<<"=========================\n"; cout<<"\tMenu Pekerjaan\n\n";
cout<<"1. Polisi\n"; cout<<"2. Pedagang\n"; cout<<"3. Nelayan\n"; cout<<"4. Dokter\n"; cout<<"5. Pilot\n"; cout<<"6. Pramugari\n"; cout<<"7. Peragawan\n"; cout<<"8. Sektretaris\n"; cout<<"9. Eva\n";
cout<<"10. Albat\n"; cout<<"11. Akbar\n";
cout<<"=========================\n"; cin>>pilih;
clrscr();
cout<<"========================================\n"; cout<<"\|\t\tPilihan Anda |\n";
case'1': polisi();
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
break; case'2': pedagang();
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
break; case'3': nelayan();
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
break; case'4': dokter();
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
break; case'5': pilot();
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
break; case'6': pramugari();
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
break; case'7': peragawan();
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
break; case'8': sekretaris();
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
break; case'9': eva();
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
break; case'10': albat();
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
break; case'11': akbar();
cout<<"Anda ingin Mengulang![y/n] "; cin>>y;
break; default:
cout<<"Pilihan tidak ada\n";
cout<<"Anda ingin Mengulang![y/n]"; cin>>y;
cin>>n>>"silahkan exit program"; clrscr();
} }
while(y=='y'||y=='Y'||n=='n'||n=='N'); cout<<"Silahkan exit program !!!\n\n"; system("pause");
}
getch();