Anda di halaman 1dari 4

FUNGSI

Ada 2 tipe fungsi : 1. void Fungsi tanpa return value. 2. bukan void (int, float, char dll ..) Fungsi dengan return value. Petunjuk membuat fungsi: 1. Agar lebih mudah anggap bahwa membuat fungsi sama dengan membuat program. 2. Tentukan variable input dan variable outputnya. 3. Jika jumlah variable output sama dengan satu maka kita bisa buat dalam fungsi yang tipenya void maupun bukan void. else tipe fungsi harus void Fungsi tipenya bukan void : a. tipe fungsi sama dengan tipe output b. parameter formal (parameter value) fungsi adalah variable outputnya. c. Instruksi fungsi = instruksi program dengan menghilangkan instruksi untuk menginputkan data pada variable input, dan instruksi untuk menampilkan hasil dari variable output. d. Diakhiri dengan instruksi : return var_output; Fungsi yang tipenya void: a. tipe fungsinya void b. Parameter formal fungsi: parameter value, adalah variable inputnya. Parameter reference/address, adalah variable outputnya c. Instruksi fungsi = instruksi program dengan menghilangkan instruksi untuk menginputkan data pada variable input, dan instruksi untuk menampilkan hasil dari variable output. a. Cth: Fungsi mencari luas persegi panjang. Input : p, l int Output: ls int Karena outputnya ada 1 variabel maka dapat dibuat fungsi dengan return value maupun tanpa return value. Fungsi dengan return value (tipenya = tipe output = int) Contoh 1: #include <iostream.h> #include <conio.h> int luas(int p, int l) { int ls; ls = p*l; return ls; } main(){ int pj,lb,hsl; cout<<"Panjang = ";cin>>pj; cout<<"Lebar = ";cin>>lb; hsl=luas(pj,lb); cout<<"\nLuasnya = "<<hsl; getch(); }

Program diatas dapat juga dituliskan seperti berikut: Contoh 2: #include <iostream.h> #include <conio.h> 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); getch(); } Fungsi tanpa return value (tipenya void) Contoh 3: #include <iostream.h> #include <conio.h> 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; getch(); } b. Fungsi mencari luas dan keliling persegi panjang (dalam satu fungsi). Input : p, l int Output: ls,kl int Karena outputnya ada 2 variabel maka hanya dapat dibuat fungsi tanpa return value, tipenya void, sebagai berikut: Contoh 4: #include <iostream.h> #include <conio.h> void luas(int &ls, int &kl, int p, int l) { ls = p*l; kl = 2*(p+l); } main(){ int pj,lb, hsl1,hsl2; cout<<"Panjang = ";cin>>pj; cout<<"Lebar = ";cin>>lb; luas(hsl1,hsl2,pj,lb); cout<<"\nLuasnya = "<<hsl1; cout<<"\nKelilingnya = "<<hsl2; getch(); } c. Fungsi menampilkan tulisan dilayar.

Input : tdk ada Output: tdk ada Karena outputnya tdk ada maka hanya dapat dibuat fungsi tanpa return value, tipenya void. Misalnya fungsi tersebut dimasukkan ke dalam contoh program 4, maka menjadi sebagai berikut: Contoh 5: #include <iostream.h> #include <conio.h> void luas(int &ls, int &kl, int p, int l) { ls = p*l; kl = 2*(p+l); } void cetak() {cout<<"MENCARI LUAS DAN KELILING PERSEGI PANJANG\n\n";} main(){ cetak(); int pj,lb, hsl1,hsl2; cout<<"Panjang = ";cin>>pj; cout<<"Lebar = ";cin>>lb; luas(hsl1,hsl2,pj,lb); cout<<"\nLuasnya = "<<hsl1; cout<<"\nKelilingnya = "<<hsl2; getch(); } Letak fungsi: Semua fungsi bisa diletakkan sebelum main maupun setelah main. Namun jika fungsi diletakkan setelah main, sebelum main harus dituliskan prototype fungsinya. Contoh 6: #include <iostream.h> #include <conio.h> void luas(int &ls, int &kl, int p, int l); void cetak(); main(){ cetak(); int pj,lb, hsl1,hsl2; cout<<"Panjang = ";cin>>pj; cout<<"Lebar = ";cin>>lb; luas(hsl1,hsl2,pj,lb); cout<<"\nLuasnya = "<<hsl1; cout<<"\nKelilingnya = "<<hsl2; getch(); } void luas(int &ls, int &kl, int p, int l) { ls = p*l; kl = 2*(p+l); } void cetak() {cout<<"MENCARI LUAS DAN KELILING PERSEGI PANJANG\n\n";} Langkah Kerja Praktikum: 1. Cobalah contoh 1 dan contoh 2: Perhatikan perbedaan penulisan fungsinya dan penulisan instruksi untuk memanggil fungsi tersebut di dalam main().

2. Cobalah contoh 3. Bandingkan contoh 3 dengan contoh 2. Perhatikan : a. penulisan fungsinya. Semula tipenya int menjadi void. Pada fungsi yang tipenya int: parameter fungsinya : int p, int l Pada fungsi yang tipenya void : parameter fungsinya : int &ls, int p, int l int &l : adalah parameter address int p, int l : parameter value b. pemanggilan fungsinya. Pada fungsi yang tipenya int untuk memanggil memerlukan variable yang akan menampung nilai kembalian (return value), sedangkan untuk fungsi yang tipenya void tidak perlu. Untuk memanggil fungsi langsung tulis nama fungsinya. Parameter aktual (untuk memanggil fungsi), ada perbedaan karena banyaknya parameter fungsi pada contoh 3 dan contoh 2 berbeda. 3. Cobalah contoh 4. int &l , int &kl : adalah parameter address int p, int l : parameter value Hilangkan tanda & pada parameter int &l , int &kl. Jalankan program. Apa perbedaan output dengan contoh semula? Note: Jika tanda & dihilangkan maka akan dianggap sebagai parameter value, akibatnya nilai yang didapat pada fungsi tidak diberikan ke parameter aktualnya, sehingga outputnya tidak sesuai dengan yang seharusnya. 4. Cobalah contoh 4 dan contoh 5. Pada contoh 5 hilangkan prototype fungsinya. Jalankan program. Mengapa pesan kesalahan tersebut muncul? Note: Fungsi diletakkan setelah main, sehingga pada saat ada instruksi yang memanggil fungsi tersebut didalam main maka fungsi tersebut tidak dikenali. Agar dikenali maka harus ada prototype fungsi. 5. Untuk contoh 2, contoh 3 dan contoh 4, ubah letak fungsi sehingga menjadi setelah main. 6. Buat program untuk menghitung rata-rata dua nilai. Untuk mencari jumlah nilainya buat dalam bentuk fungsi. 7. Hasil pekerjaan anda no 5 dan 6 letakkan dalam sebuah file dokumen, simpan dengan nama 4 digit no mhs anda, KUMPULKAN di direktori TUGAS PBO di komputer MASTER.

Anda mungkin juga menyukai