Tutorial C++ : #13 Fungsi (Function) dalam Bahasa C++

Pengertian Fungsi (Function) dalam Bahasa C++

Secara sederhana, fungsi atau function adalah kode program yang dirancang untuk menyelesaikan sebuah tugas tertentu, dan merupakan bagian dari program utama. Ketika di sadur ke dalam bahasa indonesia, function ini di sebut juga sebagai fungsi.

Berikut adalah ringkasan pengertian ari fungsi :

  • Fungsi merupakan bagian dari program yang punya tugas khusus.
  • Fungsi adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian) dan berguna untuk menjadikan program dapat lebih bersifat modular sehingga akan lebih mudah dipahami dan dapat digunakan kembali
  • Setiap program C++ pasti mempunyai fungsi, minimal satu fungsi, yaitu main(). C/C++ sendiri mempunyai fungsi utama yang disebut fungsi main().
  • Fungsi main() mungkin akan memanggil fungsi lain, demikian juga fungsi lain tersebut, ada kemungkinan memanggil fungsi yang lainnya lagi.

Tujuan Fungsi

Fungsi digunakan pada program  dengan tujuan :

  1. Program menjadi terstruktur, sehingga mudah dipahami dan mudah dikembangkan. Dengan memisahkan langkah-langkah detail ke satu atau lebih fungsi-fungsi, maka fungsi utama (main() ) menjadi lebih pendek, jelas dan mudah dimengerti
  2. Dapat mengurangi pengulangan (duplikasi) kode. Langkah-langkah program yang sama dan dipakai berulang-ulang diprogram dapat dituliskan sekali saja secara terpisah dalam bentuk fungsi-fungsi
  3. Fungsi/prosedur dapat di panggil berulangkali sesuai dengan kebutuhan, bagian program yang membutuhkan langkah-langkah ini tidak perlu selalu menuliskannya, tetapi cukup memanggil fungsifungsi tersebut.

Pada umumnya fungsi atau procedure memerlukan masukan yang disebut parameter atau argument. Parameter atau argument dapat lebih dari satu atau tidak sama sekali, untuk memberi nama pada fungsi atau procedur aturannya sama dengan membuat variable.

Bentuk umum penulisannya adalah :

typeDataFungsi namaFungsi(parameter)
{

    //isi fungsi

}

Ilustrasi Aliran Program (Illustration of flow)

Ketika sebuah program dimulai, fungsi main() dipanggil secara otomatis. Fungsi main mungkin saja memanggil fungsi yang lain, beberapa fungsi lain mungkin memanggil fungsi yang lainnya.

 

Berdasarkan siapa yang membuat, fungsi bisa dibedakan ke dalam 2 kelompok:

  1. Built-In Function 
  2. User Defined Function

Built-In Function adalah sebutan untuk fungsi yang sudah ada secara bawaan dari dalam bahasa pemrograman / fungsi-fungsi yang ‘siap pakai’ yang telah disediakan oleh kompiler, tinggal menyebutkan headernya pada prepocessor include, misalnya prepocessor include <cstdlib> yang digunakan untuk fungsi exit(); . Bahasa C++ menyediakan banyak fungsi bawaan, belum termasuk yang bisa diakses dari berbagai library atau package pihak ketiga. Sebagai contoh, main() adalah function bawaan C++

Sedangkan User Defined Function adalah fungsi yang didefinisikan dan dibuat sendiri oleh user (programmer), disesuaikan dengan kebutuhan user (programmer) yang bersangkutan.

Pada umumnya fungsi memerlukan nilai masukan atau parameter yang disebut sebagai argumen. Nilai masukan ini akan diolah oleh fungsi, hasil akhir fungsi berupa sebuah nilai (disebut sebagai return value atau nilai keluaran fungsi).  Oleh karena itu fungsi sering digambarkan sebagai “kotak gelap” seperti ditunjukkan pada gambar di bawah ini :

Penggambaran sebagai kotak gelap diantaranya menjelaskan bahwa bagian dalam fungsi bersifat pribadi bagi fungsi.  Tak ada suatu pernyataan di luar fungsi yang bisa mengakses bagian dalam fungsi, selain melalui parameter.

 

Deklarasi dan Definisi Fungsi

Menggunakan fungsi dalam program, mengharuskan kita mendeklarasikan fungsi terlebih dahulu dan kemudian mendefinisikan fungsinya

Deklarasi tersebut memberi tahu compiler nama, tipe kembalian, dan parameter fungsi. Deklarasi suatu fungsi disebut prototipe.

Baca Juga  Tutorial C++ : #9 Pengulangan / Looping pada C++

Definisi tersebut memberi tahu compiler bagaimana fungsi tersebut bekerja, tidak ada fungsi yang dapat dipanggil dari fungsi lain yang belum dideklarasikan terlebih dahulu.

Contoh deklarasi fungsi / prototype fungsi :

Contoh definisi fungsi :

COntoh sintak program fungsi :

Berikut format dasar cara penulisan fungsi dalam bahasa C++:

tipeDataKembalian namaFunction() 
{
    // Isi function disini...
    // Isi function disini...
    return nilai;
}

Bagian tipeDataKembalian diisi dengan tipe data nilai yang dikembalikan sebuah fungsi, misal int, double atau string.

Penulisan namaFunction boleh bebas, tidak ada standar penamaan tertentu untuk fungsi bahasa C++ selama mengikuti aturan penulisan identifier, yakni tidak boleh diawali angka dan tidak boleh mengandung spasi, untuk aturan penulisan identifier bisa dibaca di sini.

Beberapa ada yang menyukai menulis dalam snake_case, dimana nama fungsi ditulis dalam huruf kecil semua dan setiap kata dipisah dengan underscore ” _ “, contohnya seperti cari_nama_mahasiswa(), proses_form_input() atau tampilkan_harga_barang().

Beberapa ada yang menyukai gaya camelCase,dimana karakter pertama nama fungsi ditulis dengan huruf kecil, kemudian setiap karakter pertama kata berikutnya dalam huruf besar. Antar kata tidak boleh mengandung spasi. Contohnya seperti cariNamaMahasiswa(), prosesFormInput() atau tampilkanHargaBarang().

Setelah penulisan namaFunction, terdapat tanda kurung ” ( ) “. Nantinya tanda kurung ini bisa diisi dengan parameter atau argumen .

Isi dari function berada dalam tanda kurung kurawal yang bisa terdiri dari 1 sampai ribuan baris kode program tergantung kompleksitas aplikasi yang dibuat. Jika fungsi tersebut mengembalikan nilai, maka jalankan perintah return.

Pendefinisian User Defined Function harus ditulis di luar function main() seperti format berikut :

#include <iostream>
using namespace std;

tipeDataKembalian namaFunction() 
{
   // Isi function disini...
   // Isi function disini...
   return nilai;
}

int main()
{
   // Jalankan function
   namaFunction()
   return 0;
}

Dalam contoh format di atas, pendefinisian function ada di baris 4-6. Ketika sebuah function di definisikan, function tersebut belum berjalan. Disini hanya memberitahu compiler bahwa sebuah function sudah disiapkan.

Agar bisa berjalan, sebuah function harus “dipanggil” dengan cara menulis nama fungsi tersebut di dalam method main(), pada baris 11.

Fungsi biasanya akan mengembalikan sebuah nilai dari hasil prosesnya. Karena itu, kita harus menentukan tipe data untuk nilai yang akan dikembalikan. Apabila fungsi tersebut tidak memiliki nilai kembalian, maka kita harus menggunakan tipe void untuk menyatakan kalau fungsi tersebut tidak akan mengembalikan nilai apa-apa.

Contoh:

void nama_fungsi(){

    cout << "Ini adalah sebuah fungsi\n";

}

Lalu untuk parameter bersifat opsional, boleh ada boleh tidak, tergantung dari fungsi yang dibuat, jika fungsi itu membutuhkan input, maka kita harus membuatkan paramter, tapi kalau tidak menerima input apapun, tidak perlu dibuat. Fungsi yang tidak menerima input/nilai balik, disebut juga dengan prosedur.

Contoh Fungsi dalam C++ :

Dalam kode program berikut ini dibuat sebuah fungsiHello() yang ketika dijalankan akan menampilkan teks “Hello World”:

#include <iostream>
using namespace std;

void fungsiHello() 
{
  cout << "Hello World" << endl;
}

int main()
{
  fungsiHello();
  fungsiHello();
  fungsiHello();
  return 0;
}

Fungsi fungsiHello() dapat kita panggil berulang kali pada fungsi main(), jadi, cukup buat fungsi satu kali kita bisa panggil berkali-kali.

Hello World
Hello World
Hello World

Function fungsiHello() tidak mengembalikan nilai, sehingga tipe data kembalian diisi dengan keyword void. Isi dari fungsi fungsiHello() sendiri hanya 1 perintah, yakni cout << “Hello World” << endl; .

Pada contoh di atas kita membuat fungsi dengan cara mendefinisikan langsung fungsinya, kita juga bisa membuatnya dengan deklarasi.

Baca Juga  Tutorial Python #14 : Fungsi dengan Lambda Expression di Python

Contoh:

#include <iostream>
using namespace std;

// deklarasi fungsi
void fungsiHello();

int main(){
    // memanggil fungsi fungsiHello()
    fungsiHello();
    fungsiHello();
    fungsiHello();
    return 0;
}

// Definisi fungsi
void fungsiHello()
{
    cout << "Hello World\n";
}

Perbedaan dengan fungsi sebelumnya yaitu, jika kita membuat fungsi secara definisi, kita harus membuat deklarasi fungsinya di atas fungsi main, jika dibuat di bawah fungsi main() maka program akan error, karena program C++ dieksekusi dari atas ke bawah.

 

Fungsi berdasarkan nilai balik

Berdasarkan nilai baliknya, fungsi terbagi menjadi dua :

  1. Fungsi dengan nilai balik
  2. Fungsi tanpa nilai balik

Fungsi dengan nilai balik mempunyai ciri :

  • Ada nama tipe data di depan nama fungsi, kecuali jika nilai balik (return value) nya integer, karena merupakan tipe default boleh tidak ditulis
  • Ada statement return di dalam body fungsi

Untuk melakukan hal ini dalam C++, maka kita harus membuat suatu fungsi dengan tipe void, yang berarti tidak memiliki nilai balik.

Bentuk umum penulisan deklarasi  :

void nama_fungsi (parameter1, parameter2, … )
{
   statement_yang_akan_dilakukan;
}

Bentuk umum untuk pemanggilan fungsi :

nama_fungsi (nilai_parameter1, nilai_parameter2,…);

Contoh :

#include <iostream>
using namespace std;


//Fungsi menampilkan kalimat 5 kali
void Tampil_5_Kali()
{
  for(int i=0;i<5;i++)
  {
    cout<<"I Love C++ programming"<<endl;
  }
}

//Fungsi Utama dalam C++
int main()
{
  Tampil_5_Kali(); //Memanggil fungsi Tampil_5_Kali() untuk dieksekusi
  cout<<endl;
  cout<<"Selesai"<<endl;
  
  system ("pause");
  return 0;
}

Hasil :

Fungsi tanpa nilai balik mempunyai ciri :

  • Ada Tipe void di depan nama fungsi
  • Tidak ada statement return di dalam body fungsi

Nilai yang dikembalikan fungsi disebut return value, dalam membuat fungsi ini kita harus mendefiniskan tipe data yang akan dikembalikan.

Bentuk umum :

tipe_data  nama_fungsi (parameter1, parameter2, … )
{
    statement_yang_akan_dilakukan;
    …
    return nilai_yang_akan_dikembalikan;
}

Bentuk umum untuk pemanggilan fungsi dengan nilai balik sama saja dengan fungsi tanpa nilai balik :

nama_fungsi (nilai_parameter1, nilai_parameter2,…);

Contoh :

#include <iostream>
using namespace std;


//Fungsi dengan nilai balik bertipe double
double FungsiBilangan()
{
  return (3.14*2);
}

//Fungsi Utama dalam C++
int main()
{
  cout<<"Nilai yang terdapat dalam fungsi = "<<FungsiBilangan()<<endl;
  cout<<endl;
  
  system ("pause");
  return 0;
}

Hasil :

 

Parameter pada Fungsi C++

Parameter adalah tempat penyimpanan (variabel) di dalam fungsi (function), yang digunakan untuk melakukan pemberian data/nilai dari pemanggil ke dalam function. Parameter terletak di dalam tanda kurung ( ) setelah identitas dari fungsi. Sebuah fungsi dapat memiliki beberapa parameter yang dipisahkan dengan tanda koma. Parameter berfungsi untuk menyimpan nilai yang akan diinputkan ke fungsi.

Fungsi biasanya membutuhkan data untuk beroperasi, yang biasa kita lalukan dalam mendapatkan data adalah dengan memanggil variabel, tapi  harus diingat dengan peraturan variabel lokal dalam ruang lingkup (scope), kita tidak bisa dengan mudah mendapatkan data dari scope lain.

Hal tersebut merupakan satu alasan kenapa parameter itu ada dalam Bahasa pemrograman. Jika kita tidak bisa mendapatkan data dari scope lain secara langsung, kita bisa memberikan data tersebut saat pemanggilan function dengan perantara yaitu parameter.

Jika kita mempunyai variabel int a dalam fungsi utama dan fungsi kustom dengan satu parameter int b, ketika kita memberikan nilai dari variabel int a ke dalam function kustom. Kita dapat menggunakan parameter int b untuk perantara sekaligus tempat yang akan menjadi variabel lokal dalam fungsi kustom. apa yang terjadi adalah Data dari int a akan di salin ke variabel int b, dengan hal itu fungsi kustom kita akan memiliki data dari scope luar (scope pemanggil) dan juga data tersebut akan sampai ke tujuan dengan aman.

Baca Juga  Tutorial Java #6 : Jenis-jenis Operator dalam Bahasa Java

Parameter dalam Bahasa pemrograman  memiliki 2 jenis, yaitu :

  • Parameter Formal / Function Parametrer (Formal Parameter) : parameter yang terdapat pada pendefinisian sebuah fungsi
  • Parameter Aktual / Argument (Actual Parameter) : parameter yang terdapat pada saat pemanggilan disebut parameter aktual.

 

Parameter Formal / Function Parametrer (Formal Parameter)

Function Parameter atau juga disebut sebagai Parameter Formal, adalah variabel lokal yang ada di dalam deklarasi fungsi (bukan definisi), yang merupakan tempat penyimpanan nilai dari argument yang diberikan saat pemanggilan function.

Bentuk Umum Penulisan :

tipebalik namafungsi (ParameterFormal)
{
    //…definisi…
}

Parameter Formal/Function parameter berada di dalam deklarasi fungsi, di dalam tanda (  ) setelah identitas dari fungsi, di dalam tanda kurung tersebut kita bisa membuat banyak parameter, dan masing-masing dipisahkan dengan tanda koma.

Contoh :

int myFunction(int a) 
{ 
    ... 
}
double myFunction(double a, double b) 
{ 
    … 
}
void functionNoReturn(int a, char b, double c) 
{ 
    … 
}

Parameter Aktual / Argument

Argument adalah parameter yang menyertai pemanggilan fungsi, merupakan tempat dimana kita bisa memberikan data untuk digunakan di dalam fungsi yang dipanggil dan diberikan saat pemanggilanfungsi tersebut.

Pemberian data ke dalam fungsi kustom dapat berupa data langsung, data dari suatu variabel, data dari konstanta, data dari pengembalian fungsi atau merupakan hasil dari operasi. Pemberian data ke dalam fungsi harus mengikuti aturan yang telah ditetapkan oleh parameter formal.

Bentuk Umum Penulisan :

nama(arguments);

Jika lebih dari 1 argument, masing-masing argument akan dipisahkan dengan tanda koma, pemberian arguments harus sesuai dengan parameter.

Contoh :

myFunction(2) ;
myFuntion(a+b, a+4) ;
myFunction(“Arguments”, ‘A’, variabel) ;

Contoh Program :

#include <iostream>
using namespace std;

void myFunction(int a, int b, int c=20) // Parameter Formal atau Function Parameter
{ 
    cout<<a<<endl;
    cout<<b<<endl;
    cout<<c<<endl;
}

int main()
{
    myFunction(40,50,60); //Arguments atau Parameter Actual
    
    system ("pause");
    return 0;
}

Hasilnya :

Syarat antara kedua parameter formal dan parameter aktual adalah :

  1. Tipe data harus sama
  2. Jumlahnya sama
  3. Urutannya harus sama (contoh :  int, char yang menangkap jg int char)
  4. Nama sebaiknya berbeda

 

 

Variabel Lokal dan Variabel Global

Variabel lokal dan variabel global akan sering kita temukan dalam pembuatan fungsi,. Variabel global adalah variabel yang bisa diakses dari semua fungsi, sedangkan variabel lokal adalah variabel yang hanya bisa diakses dari dalam fungsi itu sendiri.

Contoh :

#include <iostream>
using namespace std;

// membuat variabel global
int nilai = 9;

int main()
{
  // membuat variabel lokal
  int nilai = 7;

  // mencetak variabel
  cout<<"Nilai = "<<nilai<<endl;

  return 0;
}

Pada contoh di atas kita membuat variabel global bernama nilai, variable tersebut berada di luar fungsi main. Lalu di dalam fungsi main(), kita membuat variabel lagi bernama nilai dengan nilai yang berbeda. Variabel yang ada di dalam fungsi main() adalah variabel lokal.

Ketika program tersebut dijalankan, akan menghasilkan output :

Nilai = 7

Program tidak menghasilkan output Nilai = 9, karena variabel nilai kita buat ulang di dalam fungsi main. Sekarang coba hapus variabel lokal yang ada di dalam main, menjadi seperti ini :

#include <iostream>
using namespace std;

// membuat variabel global
int nilai = 9;

int main()
{
  // membuat variabel lokal
  int nilai = 7;

  // mencetak variabel
  cout<<"Nilai = "<<nilai<<endl;

  return 0;
}

Maka hasil outputnya adalah Nilai = 9, karena variabel yang dipakai adalah variabel global.

  • https://www.petanikode.com/topik/c++/page/2/
  • https://www.duniailkom.com/tutorial-belajar-c-plus-plus-cara-membuat-fungsi-bahasa-c-plus-plus/
  • https://www.belajarcpp.com/tutorial/cpp/parameter/

Related Post

Be the first to comment

Leave a Reply

Your email address will not be published.


*


error: Ga bisa dicopy