Selasa, 07 Maret 2017

Membuat Fungsi


Pada dasarnya C++ terdiri dari fungsi-fungsi. Bahkan bentuk dasar dari program C++ Builder di bawah ini adalah fungsi juga yang menghasilkan keluaran berubah 0.

int _tmain(int argc, _TCHAR* argv[]) {
       return 0;
}


Dalam pemrograman yang panjang. Programmer sering membagi-bagi kelompok kodenya dalam fungsi-fungsi agar program lebih mudah dibaca atau lebih memudahkan manajemen source code, misalkan untuk pengurangan atau penambahan software.

Membuat fungsi di C++ sangat sederhana. Pertama-tama, harus diketahui, bahwa fungsi mempunyai tipe, nama fungsi dan hasil dari fungsi.

#pragma hdrstop
#include <tchar.h>
#include <iostream.h>
#include <conio.h>
#pragma argsused

int luas_persegipanjang(int p, int l) {
return p * l;
}


void judulprogram() {
   cout << "Program Menghitung Luas Persegi Panjang\n"
        << "Dengan Panjang = 5 dan Lebar = 2\n\n"
        << "=========================================\n\n";


inline void perpisahan() {
      cout << "\n\n=========================================\n\n";
      cout << "Tekan sembarang tombol untuk mengakhiri....";
 }


int _tmain(int argc, _TCHAR* argv[]) {   
   int panjang, lebar, hasil;
   panjang = 5;
   lebar = 2;
   hasil = luas_persegipanjang(panjang, lebar);

   judulprogram();
   cout << "Luas Persegi Panjang: " << hasil;
   perpisahan();

    getch();
    return 0;
}


Pada kode diatas. Nama fungsi adalah luas_persegipanjang, judulprogram dan perpisahan. fungsi luas_persegipanjang menerima dua parameter bertipe integer: p dan l dari parameter kiriman panjang dan lebar di badan fungsi utama. Perhatikan bahwa panjang dan lebar dideklarasikan sebagai integer. Sama dengan penerimanya yang juga integer, yaitu p dan l.

fungsi tersebut menghasilkan nilai dari perkalian p dan l yang dikembalikan oleh return keluar dari fungsi. Karena tipe keluaran adalah integer, maka variabel hasil juga harus bertipe integer.

Fungsi judulprogram hanya mencetak judul program, sehingga tidak menghasilkan keluaran untuk dipakai di fungsi utama. Untuk keperluan ini, kita harus memberikan void di depan fungsinya untuk menyatakan "TIDAK ADA TIPE".

Saat program memanggil sebuah fungsi, ia akan meloncat ke bagian memori yang memuat fungsi itu. Dengan pernyataan inline, kompiler C++ akan mengopi fungsi tersebut pada tiap pemanggilnya, sehingga program tidak perlu meloncat pada tempat memori fungsi itu.

Anda mungkin bertanya-tanya, pada program diatas, "Kenapa fungsi diletakkan di bagian deklarasi" (di atas fungsi utama). Apakah tidak boleh jika diletakkan sesudah fungsi utama. Jawabannya: Bisa saja. Tetapi yang harus kita ketahui, fungsi harus di deklarasikan. Jika fungsi diletakkan di bagian akhir fungsi utama, maka bagian deklarasinya harus tetap diatas fungsi utama. Sekarang saya akan mengubah program diatas agar fungsi-fungsi diletakkan di bagian akhir fungsi utama.

/* Deklarasi Fungsi */
int luas_persegipanjang(int p, int l);
void judulprogram();
inline void perpisahan();

/* Fungsi Utama*/
int _tmain(int argc, _TCHAR* argv[]) {
    int panjang, lebar, hasil;
    panjang = 5;
    lebar = 2;
    hasil = luas_persegipanjang(panjang, lebar);
    judulprogram();
    cout << "Luas Persegi Panjang: " << hasil;
    perpisahan();

    getch();
    return 0;
}

/*Isi dari fungsi*/

int luas_persegipanjang(int p, int l) {
return p * l;
}

void judulprogram() {
   cout << "Program Menghitung Luas Persegi Panjang\n"
        << "Dengan Panjang = 5 dan Lebar = 2\n\n"
        << "=========================================\n\n";
}

inline void perpisahan() {
      cout << "\n\n=========================================\n\n";
      cout << "Tekan sembarang tombol untuk mengakhiri....";
 }

Ada dua jenis parameter yang dilewatkan pada fungsi: by value dan   by reference.  Isi dari parameter By Value hanya berlaku di fungsi tersebut dan tidak berlaku di fungsi pemanggil. Sedangkan dengan by reference, pengubahan isi parameter di fungsi akan mengubah juga variabel di fungsi pemanggil.

Contoh:

void isi_panjang(int& p);
void isi_lebar(int& l);
int luas_persegipanjang(int p, int l, int hasil);

int _tmain(int argc, _TCHAR* argv[]) {

    int p, l, hasil = 0;
    isi_panjang(p);
    isi_lebar(l);
    cout << "Isi Panjang: " << p << endl;
    cout << "Isi Lebar: " << l << endl;
    cout << "=========================" << endl;
    cout << "Luas Persegi Panjang: "
         << luas_persegipanjang(p, l, hasil)
         << "\n\n";
    cout << "Isi Hasil: " << hasil;
    getch();
    return 0;
}

int luas_persegipanjang(int p, int l, int hasil ) {
  hasil = p * l;
  return hasil;
}

void isi_panjang(int& p) { p = 5;}

void isi_lebar(int& l) { l = 2;}


Gambar hasil eksekusi:

  
Pada contoh program diatas, saya mendeklarasikan tiga variabel bertipe integer: p,. l dan hasil. Khusus untuk variabel hasil saya beri nilai permulaan 0. Saya mengisi nilai p dan l masing-masing di fungsi isi_panjang dan isi_lebar. Anda lihat, bahwa parameter di ke dua fungsi tersebut saya beri tanda &. Ini berarti pengubahan nilai p dan l di fungsi akan mengubah juga nilai variabel tersebut di fungsi pemanggil. Sehingga ketika saya mencetak di monitor isi variabel tersebut dengan perintah dibawah ini, isi p dan l mengikuti isian dari fungsi:

cout << "Isi Panjang: " << p << endl;
cout << "Isi Lebar: " << l << endl;

tetapi variabel fungsi penerima variabel hasil tidak saya beri tanda &, sehingga pengubahan nilai variabel hasil dengan kode program berikut

     cout << "Luas Persegi Panjang: "
            << luas_persegipanjang(p, l, hasil)


tidak mempengaruhi isi dari variabel hasil di fungsi utama. Ini dibuktikan, ketika saya mencetak nilai hasil, isinya tetap nol.

Membuat Fungsi Rating: 4.5 Diposkan Oleh: Yohanes Octa

0 komentar:

Posting Komentar

Diberdayakan oleh Blogger.