, ,

Pilih Belajar C++ #8 : Fungsi

Halo sobat informatics! Selamat datang dalam perjalanan baru kita ke dalam dunia fungsionalitas dalam pemrograman. Hari ini, kita akan menggali lebih dalam konsep yang sangat penting, yaitu “function” atau fungsi. Fungsi memberikan kemampuan kepada kita untuk mengorganisir dan merapikan kode, serta membuatnya lebih mudah dimengerti dan dapat digunakan kembali.

Bersiaplah untuk memahami berbagai aspek menarik, mulai dari contoh fungsi yang sederhana, penggunaan function overloading untuk kelas fungsi yang lebih kompleks, hingga konsep default parameter, variabel lokal dan global, serta merambah ke dalam keajaiban rekursi. Mari kita mulai petualangan kita dalam memahami kekuatan dan fleksibilitas fungsi dalam pemrograman!

a) Fungsi

Dalam merancang kode program, terkadang kita sering membuat kode untuk melakukan tugas yang sama secara berulang-ulang. Tugas yang sama ini akan jauh lebih efektif jika dipecah dari program utama dan dijadikan sebuah function.

Function atau fungsi merupakan kode program yang dirancang untuk menyelesaikan sebuah tugas tertentu dan merupakan bagian dari program utama. Function diperlukan untuk memecah alur program yang besar menjadi beberapa kode program kecil agar mudah untuk dikelola.

Deklarasi fungsi:

Copied!
returnType nama_fungsi(parameter1, parameter2, ...) { // body }

Parameter dan Argumen:

Parameter adalah sebutan untuk inputan fungsi pada saat pendefinisian fungsi tersebut. Sedangkan argument adalah sebutan untuk inputan fungsi pada saat pemanggilan fungsi.

Return:

Agar lebih fleksibel, sebuah function seharusnya mengembalikan nilai, bukan langsung menampilkan nilai dengan menggunakan perintah cout. Perintah return berfungsi untuk mengembalikan nilai yang ada di dalam function dan jangan lupa ketika kita menggunakan return kita harus menentukan tipe data apa yang akan dikembalikan oleh function tersebut.

Contoh 1:

#include <iostream>
using namespace std;

void salam()
{
    cout << "Selamat Pagi!";
}

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

Output:

Copied!
Selamat Pagi!

Contoh 2:

#include <iostream>
using namespace std;

void cekBilangan(int bilangan)
{
    if ((bilangan % 2) == 0)
    {
        cout << bilangan << " Merupakan bilangan genap";
    }
    else
    {
        cout << bilangan << " Merupakan bilangan ganjil";
    }
}

int main()
{
    int bil;

    cout << "Masukkan bilangan: ";
    cin >> bil;

    cekBilangan(bil);
    return 0;
}

Output:

Copied!
Masukkan bilangan: 3 3 Merupakan bilangan ganjil

Contoh 3:

#include <iostream>
using namespace std;

int penjumlahan(int bil1, int bil2)
{
    return (bil1 + bil2);
}

int pengurangan(int bil1, int bil2)
{
    return (bil1 - bil2);
}

int perkalian(int bil1, int bil2)
{
    return (bil1 * bil2);
}

int pembagian(int bil1, int bil2)
{
    return (bil1 / bil2);
}

int main()
{
    int bil1, bil2;

    cout << "Masukkan 2 bilangan: ";
    cin >> bil1 >> bil2;

    cout << "Hasil penjumlahan: " << penjumlahan(bil1, bil2) << endl;
    cout << "Hasil pengurangan: " << pengurangan(bil1, bil2) << endl;
    cout << "Hasil perkalian: " << perkalian(bil1, bil2) << endl;
    cout << "Hasil pembagian: " << pembagian(bil1, bil2) << endl;
    return 0;
}

Output:

Copied!
Masukkan 2 bilangan: 8 4 Hasil penjumlahan: 12 Hasil pengurangan: 4 Hasil perkalian: 32 Hasil pembagian: 2

b) Function Overloading

Function overloading adalah function yang memiliki nama yang sama tetapi memiliki parameter yang berbeda. Function dapat memiliki nama yang sama jika jumlah atau jenis parameter yang dibuat berbeda.

Contoh 4:

#include <iostream>
using namespace std;

int penjumlahan(int, int);
int penjumlahan(int, int, int);
double penjumlahan(double, double);

int main()
{
    cout << "Hasil penjumlahan: " << penjumlahan(2, 4) << endl;
    cout << "Hasil penjumlahan: " << penjumlahan(2, 4, 6) << endl;
    cout << "Hasil penjumlahan: " << penjumlahan(5.5, 2.4) << endl;
    return 0;
}

int penjumlahan(int bil1, int bil2)
{
    return (bil1 + bil2);
}
int penjumlahan(int bil1, int bil2, int bil3)
{
    return (bil1 + bil2 + bil3);
}
double penjumlahan(double bil1, double bil2)
{
    return (bil1 + bil2);
}

Output:

Copied!
Hasil penjumlahan: 6 Hasil penjumlahan: 12 Hasil penjumlahan: 7.9

c) Default Parameter

Dalam membuat sebuah function yang memiliki parameter kita bisa memberikan nilai default untuk parameter. Jika sebuah function yang dibuat dengan argument default dipanggil tanpa meneruskan argument, maka parameter default akan digunakan.

Contoh 5:

#include <iostream>
using namespace std;

void display(char = '*', int = 3);

int main()
{
    int count = 5;
    cout << "Tidak ada argumen: ";
    display();

    cout << "Hanya argumen pertama: ";
    display('#');

    cout << "Dua argumen diisi: ";
    display('$', count);

    return 0;
}

void display(char c, int count)
{
    for (int i = 1; i <= count; ++i)
    {
        cout << c;
    }
    cout << endl;
}

Output:

Copied!
Tidak ada argumen: *** Hanya argumen pertama: ### Dua argumen diisi: $$$$$

d) Variabel Lokal dan Global

Variabel yang didefinisikan didalam function disebut sebagai variabel local. Cakupannya hanya terbatas pada function dimana ia didefinisikan. Sederhananya, variabel local ada dan hanya dapat diakses di dalam suatu function. Sedangkan variabel global adalah jika suatu variabel didefinisikan diluar function, ruang lingkup global adalah keseluruhan program artinya ia dapat digunakan dan diubah di bagian mana pun dari program setelah deklarasi.

Contoh 6:

#include <iostream>
using namespace std;
void test();

int main()
{
    int var = 5;
    test();
    var1 = 9;
}

void test()
{
    int var1;
    var1 = 6;
    cout << var;
}

Contoh 7:

#include <iostream>
using namespace std;
int c = 5;

void test();

int main()
{
    c++;
    cout << c << endl;
    test();
    return 0;
}

void test()
{
    c++;
    cout << c;
}

Output:

Copied!
6 7

Variabel statis hanya ada di dalam function yang dideklarasikan (mirip dengan variabel local) tetapi masa penggunaanya dimulai saat function dipanggil dan berakhir hanya saat program berakhir. Perbedaan utama antara variabel lokal dan variabel statis adalah, nilai variabel statis tetap ada di akhir program.

Contoh 8:

#include <iostream>
using namespace std;

void test()
{
    static int a = 0;
    a += 1;
    cout << "Ini adalah pemanggilan fungsi ke-" << a << endl;
}

int main()
{

    test();
    test();

    return 0;
}

Output:

Copied!
Ini adalah pemanggilan fungsi ke-1 Ini adalah pemanggilan fungsi ke-2

e) Fungsi Rekursi

Sebuah function yang memanggil dirinya sendiri dikenal sebagai fungsi rekursif. Dan, teknik ini dikenal sebagai rekursi.

Contoh 9:

#include <iostream>
using namespace std;

int factorial(int);

int main()
{
    int bil, hasil;
    cout << "Masukkan bilangan: ";
    cin >> bil;
    hasil = factorial(bil);
    cout << "Faktorial dari " << bil << " = " << hasil;
    return 0;
}

int factorial(int bil)
{
    if (bil > 1)
    {
        return bil * factorial(bil - 1);
    }
    else
    {
        return 1;
    }
}

Output:

Copied!
Masukkan bilangan: 5 Faktorial dari 5 = 120


Jadi itu yang bisa kita bahas pada artikel kali ini, dengan ini, kita menutup bab menarik kita mengenai fungsi dalam pemrograman. Telah kita bahas berbagai aspek menarik, mulai dari contoh fungsi sederhana yang merapikan kode, hingga konsep lebih lanjut seperti function overloading, default parameter, dan perbedaan antara variabel lokal dan global. Kita juga menjelajahi keindahan rekursi, di mana sebuah fungsi dapat memanggil dirinya sendiri untuk menyelesaikan tugas yang lebih kompleks.

Semoga perjalanan kita dalam menggali konsep fungsi membawa pemahaman yang lebih mendalam, serta membuka pintu untuk pengembangan program yang lebih terstruktur dan efisien. Teruslah berlatih dan eksplorasi, karena dunia pemrograman senantiasa menawarkan peluang baru untuk dipelajari. Sampai jumpa di bab berikutnya, sobat informatics!

Leave a Reply

Your email address will not be published. Required fields are marked *