Belajar Membuat Fungsi dalam Bahasa Pemrograman C++ (Disertai Gambar & Video Penjelasan)

Video 1. Pendeklarasian, Pendefenisian, dan Pemanggilan fungsi disertai contoh program.

Setiap program dalam C++ setidaknya memiliki sebuah fungsi. Fungsi tersebut adalah fungsi main(). Selain itu, kita juga dapat mendefenisikan fungsi tambahan sendiri. Fungsi juga dikenal dengan istilah function atau method.

Jadi apa yang dimaksud dengan fungsi?

Fungsi merupakan kumpulan perintah atau statemen yang dikelompokkan ke dalam suatu blok program untuk menyelesaikan suatu tugas khusus tertentu.

Kenapa kita membutuhkan fungsi?

Sebagai contoh perumpamaan. Misalkan kita akan membuat sebuah program untuk menggambar sebuah kotak dan mewarnainya. Maka untuk menyelesaikan kasus tersebut kita dapat membuat dua buah fungsi, yaitu:

  • Fungsi menggambar kotak
  • Fungsi mewarnai kotak

Dalam pemrograman, terdapat beberapa keuntungkan jika kita membuat fungsi dengan tugas spesifik seperti contoh di atas. Berikut 3 diantaranya yaitu:

  • Kode program yang kita buat lebih mudah untuk dipahami. Memecah program menjadi sub-sub fungsi program dengan tugas spesifik tertentu, membuat pemrogram mengetahui dengan cepat alur proses pengolahan data. Selain itu jika terjadi error, dapat diketahui lebih cepat sumber errornya.
  • Fungsi mudah untuk digunakan kembali. Suatu fungsi dapat digunakan kembali. Cukup memanggil fungsi tersebut sesuai nama dan parameternya, maka fungsi tersebut akan menjalankan perintah.
  • Menghemat baris perintah. Programer tidak perlu lagi membuat deretan perintah secara berulang untuk menyelesaikan suatu masalah yang sama. Cukup dengan memanggil fungsi yang sudah ada.

Dalam C++, fungsi dibedakan menjadi dua, yaitu:

  • User-Defined Function
  • Built-In Function

User-Defined Function adalah fungsi yang didefenisikan sendiri.

Built-In Function adalah fungsi siap pakai yang telah disediakan oleh compiler.

Pada postingan kali ini, kita akan khusus berkenalan dengan User-Defined Function.


User-Defined Function

Seperti yang telah dijelaskan di atas, User-Defined Function adalah fungsi yang dibuat sendiri oleh pemrogram. Agar dapat membuat dan menggunakan fungsi dalam sebuah program, terdapat beberapa hal yang harus anda pahami. Pertama, anda harus memahami bagaimana mendeklarasikan dan mendefenisikan sebuah fungsi. Kedua, bagaimana memanggil fungsi tersebut.

Pada dasarnya, fungsi dalam C++ terdiri atas dua bagian penting. Kedua bagian tersebut adalah

  • Pendeklarasian fungsi
  • pendefenisian fungsi

Jika salah satunya tidak dilakukan maka suatu fungsi tidak dapat dipanggil dan atau tidak akan bekerja.


Mendeklarasikan dan Mendefenisikan Fungsi

Agar sebuah fungsi dapat dikenali oleh compiler dan dapat diakses dari fungsi lainnya, maka sebuah fungsi harus dideklarasikan dan didefenisikan.

Pendeklarasian Fungsi

Berikut sintaks untuk mendeklarasikan suatu fungsi.

Sintaks 1

Tipe_nilai_balik nama_fungsi (daftar_parameter);

Keterangan:

  • Tipe_nilai_balik : Sebuah fungsi mungkin saja mengembalikan suatu nilai. Tipe nilai balik adalah tipe data dari nilai yang dikembalikan oleh fungsi berdasarkan hasil pengolahannya. Pada beberapa kasus, fungsi bisa jadi juga tidak memiliki nilai balik. Jika tidak memiliki nilai balik maka tipe nilai balik diisi dengan void.
  • nama_fungsi : Bagian ini merupakan nama dari fungsi. Compiler dapat mengenali sebuah fungsi yang dioanggil berdasarkan nama dan parameternya.
  • daftar_parameter : Pada bagian ini diisi dengan parameter dari fungsi. Parameter akan menerima nilai argumen dari perintah pemanggil. Namun suatu fungsi juga boleh tidak memiliki parameter.

Penjelasan pendukung mengenai sintaks 1 dapat anda lihat pada gambar 1 berikut ini.

Gambar 1. Sintaks pendeklarasian fungsi

Agar dapat memahami bagaimana penggunaan sintaks 1, perhatikan contoh pada gambar 2 berikut ini.

Gambar 2. Contoh penggunaan sintaks pendeklarasian fungsi (sintaks 1).

Berdasarkan contoh pada gambar 2, dapat diketahui bahwa telah dideklarasikan sebuah fungsi dengan nama penjumlahan. Tipe nilai balik fungsi tersebut adalah integer. Adapun parameter fungsi ini ada dua, yaitu a dan b yang masing-masing bertipe integer.

Pendeklarasian seperti sintaks 1 hanya dilakukan jika fungsi yang kita buat pendefenisiannya dilakukan di bawah blok fungsi main().

Pendefenisian Fungsi

Tidak cukup hanya mendeklarasikan nama dan parameter fungsi. Agar dapat digunakan maka suatu badan fungsi juga harus didefenisikan. Berikut sintaks untuk mendefenisikan suatu fungsi.

Sintaks 2

Tipe_nilai_balik nama_fungsi (daftar_parameter){
//Badan fungsi;
}

Keterangan:

  • badan_fungsi : Bagian ini berisi statemen atau perintah-printah yang akan dieksekusi. Perintah ini saling bekerjasama sehingga menghasilkan suatu nilai tertentu berdasarkan tugas spesifiknya.

Agar dapat lebih mudah memahami, perhatikan gambar 3 berikut.

Gambar 3. Sintaks pendefenisian fungsi

Jika melihat sintaks 2 di atas, maka kita dapat mengetahui bahwa pada sintaks pendefenisian juga terdapat bagian pendeklarasian.

Agar dapat lebih memahami sintaks 2, berikut contoh penerapannya. Perhatikan gambar 4.

Gambar 4. Contoh penggunaan sintaks pendefenisian fungsi (sintaks 2).

Berdasarkan contoh pada gambar 4, dapat diketahui bahwa terdapat sebuah fungsi yang dideklarasikan dengan nama penjumlahan. Fungsi ini bertipe integer karena nilai output dari fungsi bertipe integer dan akan dikembalikan ke perintah pemanggilnya. Selain itu fungsi tersebut di atas memiliki 2 parameter bertipe integer yaitu a dan b.

Kemudian didefenisikan pula badan fungsi dari fungsi penjumlahan() tersebut. Pada badan fungsi terdapat perintah yang menjumlahkan isi variabel a dan b. Lalu kemudian hasil penjumlahan tersebut disimpan di variabel c yang bertipe integer. Selanjutnya, nilai c dikembalikan menggunakan perintah return c. Nilainya dikembalikan ke perintah pemangil fungsi.

Variabel lokal dan global

Pemanggilan Fungsi

Sampai pada bagian ini anda sudah memahami cara pendeklarasian dan pendefenisian suatu fungsi. Namun, suatu fungsi tidak dapat tidak dapat bekerja jika tidak dipanggil. Maka perlu untuk mengetahui sintaks pemanggilan suatu fungsi.

Sintaks 3

nama_fungsi (daftar_argumen);

Keterangan:

  • nama_fungsi : Bagian ini merupakan nama dari fungsi yang akan dipanggil. Compiler dapat mengenali sebuah fungsi yang dipanggil berdasarkan nama dan argumen yang dikirimkan.
  • daftar_argumen: Bagian ini berisi nilai yang akan dikirim ke parameter dari suatu fungsi. Nilai akan diterima oleh parameter berdasarkan urutannya. Jika suatu fungsi tidak memiliki parameter, maka pada perintah pemanggil bagian ini dikosongkan.

Agar dapat lebih mudah memahami, perhatikan gambar 5 berikut.

Gambar 5. Sintaks perintah pemanggilan fungsi.

Berdasarkan sintaks 3 di atas, dapat kita ketahui bahwa untuk memanggil suatu fungsi harus menuliskan nama fungsi dan argumennya. Nama fungsi harus sama persis dengan fungsi yang dimaksud. Argumennya harus sesuai dengan parameter dari fungsi yang dimaksud. Jika suatu fungsi memiliki 3 parameter, maka perintah pemanggilnya mengirimkan 3 argumen.

Contoh penggunaan sintaks di atas dapat dilihat pada gambar 6 berikut ini.

Gambar 6. Contoh penggunaan sintaks pemanggilan fungsi (sintaks 3).

Berdasarkan contoh pada gambar 6 di atas, dapat kita ketahui bahwa fungsi yang dipanggil bernama fungsi penjumlahan(). Adapun nilai argumen yang dikirim adalah 5 dan 10. Nilai 5 akan diterima oleh parameter pertama (a) dan 10 diterima oleh parameter kedua (b). Argumen yang dikirim bertipe integer karena parameter penerima bertipe integer.

Bagaimana penerapannya dalam program? baca penjelasannya pada bagian berikut.


Contoh Program Sederhana

Pada dasarnya terdapat 2 cara untuk menambahkan fungsi ke dalam program yang anda buat. Anda dapat menambahkannya di atas blok fungsi main() atau di bawah blok fungsi main(). Apa perbedaan antara kedua cara tersebut? berikut penjelasannya.

Fungsi di bawah blok fungsi main()

Pastikan anda mendeklarasikan fungsi tersebut terlebih dahulu di atas blok fungsi main() jika anda menambahkannya di bawah blok fungsi main(). Perhatikan contoh program berikut.

#include <iostream>
using namespace std;

int penjumlahan (int a, int b);

int main() {  
    int x, y, z;
    x=5;
    y=10;
    
    z = penjumlahan(x,y);
              
    cout<<"hasil penjumlahan "<<x<< " dan "<<y<<" adalah ";
    cout<<z<<endl;
    return 0;
}

int penjumlahan (int a, int b){
    int c = a + b;
    return c;
}

Output:

hasil penjumlahan 5 dan 10 adalah 15

Program 1 di atas adalah program sederhana untuk menjumlahkan dua buah nilai dengan menggunakan suatu fungsi. Hasil penjumlahan kemudian ditampilkan sebagai output.

Pada contoh program, terdapat 2 fungsi yaitu fungsi main() dan fungsi penjumlahan(). Fungsi penjumlahan bertugas untuk menjumlahkan dua buah nilai lalu mengembalikan hasilnya ke perintah pemanggilnya.

Pada baris 4 terdapat pendeklarasian fungsi penjumlahan. Pendeklarasian dilakukan karena pendefenisian fungsi penjumlahan dilakukan di bawah blok fungsi main(). Kemudian di dalam fungsi main() baris 7 dideklarasikan variabel x, y, z bertipe data integer. Pada baris 8 dan 9, nilai 5 dan 10 ditugaskan untuk masuk ke variabel x dan y.

Pada baris 11, fungsi penjumlahan dipanggil menggunakan perintah penjumlahan(x,y);. Perintah pemanggilan ini disertai dengan pengiriman argumen yaitu nilai x dan nilai y. Nilai x akan diterima oleh variabel a pada parameter fungsi penjumlahan(). Begitupun nilai y akan diterima oleh variabel b. Variabel parameter a dan b dapat dilihat pada baris 18. Hasil penjumlahan yang dilakukan oleh fungsi akan dikembalikan ke perintah pemanggil kemudian disimpan di variabel z.

Pada fungsi penjumlahan() baris 18 dapat kita lihat bahwa tipe nilai balik fungsi penjumlahan() adalah bertipe integer. Tipe nilai baliknya bertipe integer karena nilai output fungsi dalam hal ini variabel juga bertipe integer. Variabel c dianggap sebagai variabel yang menyimpan nilai output fungsi karena pada baris 20 variabel c di beri keyword return. Isi variabel c adalah hasil penjumlahan variabel a dan b. Variabel a dan b mendapatkan nilai dari argumen x dan y yang dikirim dari baris 11.

Mengapa pada contoh program 1 fungsi perlu dideklarasikan?

Berikut ilustrasi posisi fungsi di bawah blok fungsi main() seperti yang dicontohkan pada program 1 di atas. Perhatikan gambar 7.

Gambar 7. Ilustrasi fungsi di bawah blok fungsi main().

Berdasarkan contoh program 1 dan gambar ilustrasinya, diketahui bahwa fungsi penjumlahan() ditambahkan di bawah fungsi main(). Oleh karena fungsi (pendefenisian fungsi) berada di di bawah main(), maka perlu dideklarasikan fungsinya di atas blok fungsi main(). Jika tidak, maka akan terjadi error.

Error terjadi sebab compiler tidak dapat mengenali fungsi yang dimaksud pada saat perintah pemanggilnya dieksekusi. Fungsi main() adalah bagian yang pertama kali akan dieksekusi. Jadi, secara logika, jika fungsi belum dideklarasikan artinya fungsi dianggap belum ada.

Sama seperti pada menggunaan variabel. Variabel dapat digunakan jika telah dideklarasikan terlebih dahulu. Begitupun sebuah fungsi.

Fungsi di atas blok fungsi main()

Jika anda menambahkan fungsi di atas blok fungsi main(). Maka anda tidak perlu mendeklarasiknnya secara khusus. Langsung saja gunakan sintaks 2 yang telah di jelaskan di atas. Perhatikan contoh program berikut.

#include <iostream>
using namespace std;

int penjumlahan (int a, int b){
    int c = a + b;
    return c;
}

int main() {  
    int x, y, z;
    x=5;
    y=10;
    
    z = penjumlahan(x,y);
              
    cout<<"hasil penjumlahan "<<x<< " dan "<<y<<" adalah ";
    cout<<z<<endl;
    return 0;
}

Output:

hasil penjumlahan 5 dan 10 adalah 15

Contoh program di atas sama dengan contoh program 1. Perbedaannya hanya pada peletakan fungsi. Pada contoh program 2, fungsi ditambahkan diawal / di atas blok fungsi main(). Oleh karena itu, pendeklarasian fungsi secara khusus tidak perlu dilakukan.

Mengapa pada contoh program 2 fungsi tidak perlu perlu dideklarasikan secara terpisah?

Berikut ilustrasi posisi fungsi di atas blok fungsi main() seperti yang dicontohkan pada program 2 di atas. Perhatikan gambar 8.

Gambar 8. Ilustrasi dungsi di atas blok fungsi main.

Pada dasarnya pendeklarasian dilakukan agar compiler dapat mengetahui fungsi yang dimaksud. Pada contoh program 2 tidak dilakukan pendeklarasian secara khusus seperti pada contoh program 1. Hal tersebut disebabkan karena fungsi yang ditambahkan berada di atas blok fungsi main(). Selain itu, pada fungsi yang ditambahkan sebenarnya juga telah ada pendeklarasian yang dilakukan, yaitu int penjumlahan (int a, int b) {...}. Jadi, secara otomatis, compiler sudah dapat mengenali fungsi yang dimaksud.

Semoga dapat menambah wawasan teman-teman yang masih baru dalam dunia pemrograman. Semoga bermanfaat.

Jika ingin mendengarkan penjelasan secara lisan, jangan sungkan untuk mengunjungi channel youtube kami “PAKKODING“.

Oh iya, share halaman ini agar orang-orang yang baru belajar pemrograman dapat terbantu.

Salam hangat dari tim pakkoding.id.

 3,416 total views,  3 views today

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *