Anda di halaman 1dari 13

MODUL 5

FUNGSI DAN PROSEDURE

1. Tujuan Pembalajaran
Mahasiswa mengerti perbedaan fungsi dengan prosedur. Dapat membuat fungsi
dan procedure sendir sesuai dengan kebutuhan program.
2. Pertemuan
Pertemuan 10 dan 11
3. Teori Penunjang.
Pengertian fungsi secara umum di C.
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).
• Fungsi Build In
Fungsi build ini adalah fungsi yang tersedia pada kakas pengembang aplikasi.
Misal Standard Library Function clrscr(), printf(), getch() yang terdapat pada
C. Fungsi-fungsi ini telah disediakan oleh C dalam file-file header atau
librarynya. Untuk menggunakan function ini harus dideklarasikan terlebih
dahulu library yang akan digunakan, yaitu dengan menggunakan preprosesor
direktif. Misalnya: #include <conio.h>.
Beberapa fungsi Build In pada C.
Fungsi Matematika
# include <math>
Fungsi Kegunaan Contoh
abs() Untuk menentukan harga absolut x = abs(y), x dan y
integet antara 0 s/d
32767
sqrt() Untuk menentukan akar pangkat dua Y = sqrt(x), x,y double
suatu bilangan dan x harus positip.
pow() Untuk menghitung xy z = pow(x,y) type x,y,z
double.
ceil() Membulatkan keatas y =ceil(x)
floor() Membulatkan kebawah y=floor(x)
fmod() Menghitung sisa hasil bagi dua bilangan z= fmod(x,y)

Fungsi Konversi
#include<stdlib>
Fungsi Kegunaan Contoh
atof() Konversi dari string ke floating point y = atof(x), x string y
float.
atoi() Konversi dari string ke integer y = atoi(x), x string dan
y integer.
atol() Konversi dari string ke long z = atoll(x)
itoa() Konversi dari integer ke string y =itoa(x)
ltoa() Konversi dari long ke string y=ltoa(x)

Fungsi Tanggal
Fungsi Kegunaan Contoh
ctime() Mengubah tanggal dan #include<time>
waktu ke bentuk dengan …………….
format dd mm yy { time_t t;
hh:mm:dt yyyy\n\0 time(&t);
printf("%s\n", ctime(&t));
}
…………...
difftime( Menghitung selisih dua { start = time(NULL)
) waktu. Waktu harus delay(2000);
dideklarasikan dengan type finish=time(NULL)
time()  time_t start, printf("Waktu tempuh : %f
finish seconds\n",difftime(second,first));
}
getdate() Mengambil tanggal dari #include<dos>
system dan fungsi ……….
menggunakan struktur {
date. struct date d; getdate(&d);
printf("Tahun:%d\n", d.da_year);
printf("Hari : %d\n", d.da_day);
printf("bulan: %d\n", d.da_mon);
return 0;
}
gettime() Mengambil waktu dari #include <stdio.h>
system dan menyimpan #include <dos.h>
dalam structure time. int main(void)
{
struct time t;
gettime(&t);
printf(“waktu : %2d:%02d:%02d.
%02d\n",t.ti_hour, t.ti_min, t.ti_sec,
t.ti_hund)
return 0;
}
settime() Mengisi waktu sistem { struct time t;
gettime(&t);
printf("menit : %d\n", t.ti_min);
……………………..;
printf("detik : %d\n", t.ti_sec);
settime(&t);}

Fungsi String

• User Define Function


Fungsi yang diciptakan sendiri oleh pengguna.Format penulisan fungsi .

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
penggunakannya.

Deklarasi fungsi :
Suatu fungsi sebelum digunakan harus dideklarasikan terlebih dahulu. Bentuk
umum pendeklarsian fungsi :

Tipe_data|void nama_fungsi([arguman 1, argument 2,….]);

Contoh 5.1 :
float luaslingkaran(float jari_jari);
float luassegitiga(float alas,float tinggi);

Deklarasi fungsi tidak diperlukan jika fungsi yang akan mengunakan fungsi
tersebut ditulis/diletakan dibawah fungsi.

Bentuk umum fungsi :

tipe_data|void nama_fungsi([arguman 1, argument 2,….])


{
[variable local];
[statement1 ];
……………
[statementn ];
[return value];
}

Argument Fungsi :
Argument dalam sebuah fungsi bersifat opsional artinya argument ini boleh
ada dan boleh tidak. Argumen berfungsi sebagai parameter inputan bagi
fungsi dan harus memiliki tipe data tertentu. Jenis parameter dalam fungsi :
a. Parameter formal: parameter yang ditulis pada deklarasi fungsi.
b. Parameter aktual: parameter yang diinputkan dalam program pemanggil
fungsi tersebut. Dapat berupa variabel atau langsung berupa nilai tertentu
sesuai dengan tipe data yang dideklarasikan untuk masing-masing
parameter fungsi.

Pengiriman Parameter
Secara default pengiriman parameter di dalam C adalah by value.Pengubahan
nilai di dalam fungsi tidak bisa mengubah nilai di luar fungsi. Bentuk lain
pengiriman parameter adalah pengiriman secara acuan (by reference).

Contoh 5.2 :
1) float luassegitita(float alas,float tinggi)
2) {
3) float luas;
4) luas = alas*tinggi*0.5;
5) return luas;
6) }
fungsi luassegitiga mempunyai dua paramater ( alas dan tinggi). Parameter ini
kemudian digunakan oleh fungsi sebagai inputan untuk menghitung luas
segitiga yang ditunjukan pada baris 4. Hasil peruses kemudian dikirim
kembali ke fungsi pemanggil melalui baris 5. Contoh lengkap program diatas
dapat dilihat dari contoh berikut.

Contoh 5.3 :

1) #include <iostream.h>
2) float luassgt(float alas,float tinggi);

3) float main()
4) {
5) float alas,tinggi, luas;
6) cout<<“Alas”;cin>>alas
7) cout<<“Tinggi;cin>>tinggi;
8) luas = luassgt(alas,tinggi);
9) cout<<” Luas segitiga : “<<luas;
10) }

11) float luassgt(float alas,float tinggi)


12) {
13) return ( alas*tinggi*0.5);
14) }

Deklarasi fungsi ada pada baris ke 2 dengan float alas dan float tinggi sebagai
parameter formal. Fungsi kemudian dipanggil oleh program utama ( fungsi
main ) dari baris ke 8 dengan mengirimkan parameter aktual yaitu nilai alas
dan tinggi. Parameter actual yang dikirim kemudian ditangkap oleh argument
alas dan tinggi pada fungsi luassgt(). Hasil proses fungsi dikirim kembali ke
fungsi pemangggil dan diterima oleh variable luas pada baris ke 8. Pada
contoh diatas, deklarasi fungsi dapat dihilangkan. Jika fungsi luassgt( ..,.. )
diletakan diatas fungsi main().

Fungsi tanpa parameter :


Parameter dalam suatu fungsi bersifat opsional. Cara pendeklarasian dan
penulisan fungsi tanpa parameter adalah sama dengan fungsi yang memiliki
parameter. Contoh :

1) #include <iostream>
2) #include<conio>
3) void cetak();
4) float luas;
5) void main()
6) {
7) int alas,tinggi;
8) cout<<“Alas”;cin>>alas
9) cout<<“Tinggi;cin>>tinggi;
10) luas = alas*tinggi*0.5;
11) cout<<” Menuju ke fungsi cetak : “;
12) cetak();
13) cout<<” Kembali ke fungsi main() “;
14) }
15) void cetak()
16) {
17) Cout<<” Sekarang kita berada di fungsi cetak”;
18) cout<<“luas “<<luas;
19) getche();
20) }

Fungsi tanpa argument dideklarasikan pada baris 3 .Fungsi kemudian dipanggil


oleh program utama ( fungsi main ) dari baris ke 12 tanpa pegiriman parameter
aktual. Setelah fungsi cetak selesai dieksekusi program kembali ke fungsi main().
contoh :
Listing program berikut adalah program yang digunakan untuk menjalankan
beberapa operasi aritmatik. Proses pengurangan,penjumlahan,perkalian dan
pembagian diletakan pada fungsi. Pemanggilan fungsi dilakukan dari fungsi
utama. Untuk contoh ini fungsi dibuat untuk dua jenis yaitu berbentuk void dan
non void, dengan dan tanpa parameter.
Contoh 5.4.

1) #include <iostream >


2) #include <conio>
3) int tambah(int nilai1,int nilai2);
4) void kurang();
5) int kali(int nilai1,int nilai2);
6) void kali(int nilai1,nilai2);
7) float bagi();
8) void inputnilai()
9) {
10) cout<<" Nilai pertama : ";cin>>nilai1;
11) cout<<" Nilai kedua : ";cin>>nilai2;
12) }
13) int nilai1,nilai2;
14) float hasil;
15) int main()
16) {
17) int pilihan = 1;
18) while (pilihan <= 4)
19) {
20) cout <<"Operasi Aritmatika \n";
21) cout <<"-------------------\n";
22) cout<<" 1. Tambah \n";
23) cout<<" 2. Kurang \n";
24) cout<<" 3. Kali \n";
25) cout<<" 4. Bagi \n";
26) cout<<" 5. Selesai \n";
27) cout <<"Pilih 1/2/3/4/5 : ";cin>>pilihan;
28) switch(pilihan)
29) {
30) case 1 :
31) cout<<"Operasi tambah ";
32) inputnilai();
33) tambah(nilai1,nilai2);
34) break;
35) case 2 :
36) cout<<"Operasi kurang";
37) kurang();
38) break;
39) case 3 :
40) cout<<"Operasi kali ";
41) inputnilai();
42) kali(nilai1,nilai2);
43) break;
44) case 4 :
45) cout<<"operasi bagi, ";
46) bagi();
47) break;
48) default :
49) cout <<"Selesai " ;
50) break ;
51) }
52) getche();
53) clrscr();
54) }
55) }
56) void tambah(int nilai1,int nilai2)
57) {
58) int hasil;
59) hasil = nilai1+nilai2;
60) cout<<” hasil penjumlahan : “<<hasil;
61) }
62) void kurang()
63) {
64) inputdata();
65) hasil = nilai1+nilai2;
66) cout<<” Hasil pengurangan : “<<hasil;
67) }
68) void kali(int a, int b)
69) {
70) hasil = a+b;
71) cout<<” Hasil perkalian : “<<hasil;
72) }
73) float bagi()
74) {
75) inputdata();
76) hasil = nilai1/nilai2;
77) cout<<”hasil pembagian : “<<hasil;
78) }

• Procedure
Pengertian Prosedure secara Umum
Prosedure/procedure adalah suatu kumpulan instruksi/perintah/program yang
dikelompokkan menjadi satu, letaknya terpisah dari program yang menggunakan
prosedure tersebut, memiliki nama tertentu yang unik, dan digunakan untuk
mengerjakan suatu tujuan tertentu. Prosedure sebagai satu blok perintah secara
umum sama denagan fungsi. Perbedaan procedure dengan fungsi adalah
procedure tidak mengirimkan hasil/nilai hasil eksekusi. Dalam aplikasinya
prosedure dan fungsi dapat saling dipertukarkan.
Contoh 5.5.
1) #include<iostream>
2) void tampil();
3) int pilih;
4) void main()
5) {
6) tampil();
7) switch(pilih);
8) {
9) case 1 :
10) cout<<” Pilih 1 “;
11) break;
12) ……………;
13) ……………;
14) }

15) void tampil()


16) {
17) cout<<”1. Pilih satu “;
18) cout<<”2. Pilih dua “;
19) cout<<”3. Pilih tiga “;
20) cout<<”4. Selesai “;
21) cout<<” Pilih [1/2/3/4] : “;
22) cin>> pilih;
23) }

Pada C prosedure dideklarasikan sebagaimana pendeklarasian suatu fungsi.


Prosedure tampil() pada contoh diatas dideklarasikan pada baris 2 dengan type
void. Selesai proses prosedure tidak mengembalikan nilai/hasil ke fungsi
pemanggil.
4. Peralatan Penunjang
Software : Sistem Operasi, C++
Hardware : PC Pentium
5. Latihan Soal
1. Diketahui fungsi

10

y= £(x+2i)
i=1

Buat untuk menghitung nilai y untuk sembarang nilai x yang diinputkan


oleh pengguna. Program terdiri dari dua fungsi yaitu main() dan hitung().
Nilai x yang diinputkan diletakan pada fungsi main(). Proses perhitungan
dan pecetakan diletakan pada fungsi hitung().
2. Buat program untuk menentukan apakah suatu bilangan habis dibagi 2, 4
dan 8 atau tidak dengan menggunakan fungsi. Bilangan yang akan diuji
diinputkan dari fungsi main() yang kemudian diteruskan ke fungsi
bilangan() untuk diproses dan dicetak hasilnya. Output program
ditentukan sebagai berikut.

Bilangan yang diinputkan : 99999


Bilanga habis dibagi dua ? : ya/tidak
Bilangan habis dibagi empat ? : ya/tidak
Bilangan habis dibagi delapan? : ya/tidak

3. Buat program untuk menghitung besarnya discount yang diberikan atas


sejumlah pembelian, bila berlaku ketentuan berikut.
 Belanja di bawah Rp. 100.000,- tidak mendapat discount
 Belanja mulai dari Rp 100.000 keatas mendapat discount 10%
 Belanja di atas Rp. 500.000,- mendapat discount 15%.
Program yang dirancang harus terdiri dari 2 fungsi yaitu fungsi main() dan
potong(). Nilai belanja diinputkan dari fungsi main(). Kemudian data ini
diteruskan ke fungsi potong(). Hasil proses fungsi potong dikembalikan
fungsi main. Output program ditentukan sebagai berikut.

DenMasHarso Mart
------------------------
Belanja : Rp. 999.999,-
Discount : Rp. 99.999,-
--------------------------(+)
Jumlah dibayar : Rp. 999.999,-

4. Buat program untuk menghitung akar persamaan kuadrat. Program terdiri


dari 3 fungsi yaitu fungsi main(), fungsi hitung determinan hitder() dan
cariakar(). Nilai a,b,c persamaan kuadrat diinput dari fungsi main().
Fungsi hitder() dipanggil dari fungsi main() dan menerima 3 inputan yaitu
nilai a,b dan c. Hasil proses fungsi dikembalikan ke fungsi main() untuk
diproses dan diteruskan kembali ke fungsi cariakar().
5. Buat program operasi aritmatika jumlah,kurang,kali,bagi dari dua bilangan
yang diinputkan oleh pengguna. Program terdiri dari 6 fungsi yaitu fungsi
tampil() untuk menampilkan pilihan menu sebagai berikut.

Operasi Aritmatika
1. Penjumlahan
2. Pengurangan
3. Perkalian
4. Pembagian
5. Selesai
Pilih [1/2/3/4/5] :
Fungsi lainnya adalah fungsi main() yang menampung inputan bilangan1
bilangan 2 yang nantinya akan diteruskan ke 4 fungsi lainnya yaitu :
kurang(),jumlah(),kali() dan fungsi bagi().

6. Berikut adalah program konversi suhu dari celcius ke bentuk laiinya.


#include<iostream>
#include <conio>
void main ()
{
float x,y,C,Fahreintheit,Reamur,Kelvin;
cout<<’Masukkan suhu Celcius :’;
cin>>C;
x=((9*C)/5);
y=((4*C)/9);
Fahreintheit=-x+32 ;
Reamur=(y+32);
Kelvin=273+C;
cout<<endl;
cout<<"Fahreintheit :<<Fahreintheit<<endl;
cout<<Reamur :"<<Reamur<<endl;
cout<<"Kelvin :"<<Kelvin<<endl;
getche();
}

Modifikasi program diatas ke bentuk modular yang terdiri dari 4 fungsi,


yaitu fungsi main() untuk input suhu dalam celcius. Data ini kemudaian
diteruskan ke fungsi laiinnya yaitu fungsi fahreinheit(),reamur() dan
kelvin() untuk menghitung konversinya. Hasil proses fungsi dikembalikan
ke fungsi main untuk dicetak dengan bentuk output.

Konversi Suhu Dari Celcius


---------------------------------
Suhu dalam Fahreinheit : 999.999
Suhu dalam Reamur : 999.999
Suhu dalam Kelvin : 999.999
----------------------------------

Anda mungkin juga menyukai