---
description: 'Penulis: Sayed'
---

# Fungsi

Seperti dikatakan pada bab [Struktur Program](struktur-program), `int main()` adalah suatu fungsi, tetapi apa itu suatu fungsi? Sederhananya, fungsi adalah suatu kumpulan code yang akan dieksekusi apabila dipanggil dan secara bersama akan mengerjakan suatu tugas tertentu. Tujuan utama suatu fungsi adalah untuk merapikan program. Fungsi dapat mengambil sesuatu yang disebut dengan _parameter_ atau argumen. Kita dapat memberikan informasi kepada suatu fungsi dan fungsi akan memproses informasi yang telah kita berikan, dan pada fungsi jenis tertentu, memberikan Anda hasil prosesnya. Seperti jika Anda membuat suatu fungsi yang dapat menjumlahkan dua buah bilangan `x` dan `y`, dan setelah fungsi memprosesnya, fungsi akan mengembalikan kepada Anda bilangan `x` + `y`.  Fungsi juga dapat digunakan berkali-kali sehingga program menjadi lebih singkat seperti apabila Anda ingin menulis suatu perumusan Fisika, tentunya Anda tidak ingin menuliskannya berkali-kali pada program, Anda dapat menuliskannya sekali pada suatu fungsi dan apabila dibutuhkan Anda dapat memanggilnya.

Sebelum Anda mendeklarasikan suatu fungsi, Anda harus menentukan jenis dari fungsi, terdapat empat buah jenis fungsi yang ditulis di bawah. Untuk mendeklarasikan suatu fungsi Anda ingin menuliskan tipe data yang akan dikembalikan oleh fungsi (atau menulis `void` apabila fungsi tidak mengebalikan apapun) lalu namanya disertai dengan parameternya yang ditulis di dalam tanda kurung (atau mengosongkan tanda kurung apabila fungsi tidak mengambil argumen). Fungsi biasanya dideklarasikan secara global.

Di bawah ini merupakan contoh dari fungsi menurut jenisnya

**Tidak mengambil argumen dan tidak mengebalikan nilai**

Sebagai contoh kita dapat menuliskan fungsi dengan kasus uji menjadi lebih rapi seperti program berikut:

```cpp
#include <iostream>
using namespace std;

void solved(){
    //Code Anda di sini
}

int main(){
    int t;
    cin >> t;
    while(t--){
         solved();
    }
}
```

**Tidak mengambil argumen tetapi mengebalikan nilai**

Sebagai contoh kita dapat menuliskan fungsi yang mengebalikan jumlah dari bilangan pada interval 1 hingga 10.

```cpp
#include <iostream>
using namespace std;

int fungsi(){
  ret = 0;
  for(int i = 1; i <= 10; ++i){
       ret += i;
  } 
  return ret;
}

int main(){
    cout << fungsi();
}
```

**Mengambil argumen dan tidak mengebalikan nilai**&#x20;

Sebagai contoh kita dapat membuat fungsi yang dapat mengeluarkan 10 buah '\*' dengan menuliskan code seperti di bawah ini:

```cpp
#include <iostream>
using namespace std;

void cetak(int n){
  for(int i = 1; i <= n; ++i){
    cout << '*';
  }
}

int main(){
    int x = 10;
    cetak(x);
}
```

**Mengambil argumen dan mengebalikan nilai**

Sebagai contoh kita dapat membuat fungsi yang dapat menjumlahkan dua buah bilangan dan mengembalikan jumlahnya.

```cpp
#include <iostream>
using namespace std;

int cetak(int x, int y){
  return (x + y);
}

int main(){
    int a = 5;
    int b = 12;
    cout << cetak(a, b);
}
```

### Fungsi Bawaan

Pada C++, terdapat juga fungsi bawaan yang mana kita tidak perlu lagi menuliskannya sendiri. Beberapa fungsi bawaan mengharuskan kita untuk men-_include_ library yang terpisah dari `iostream`. Di bawah ini adalah fungsi bawaan yang umum dipakai

<table><thead><tr><th width="199">Nama Fungsi</th><th width="307">Fungsi</th><th width="231">Library</th></tr></thead><tbody><tr><td><code>pow()</code></td><td>Mengembalikan hasil pangkat sebuah bilangan dengan bilangan yang lain.</td><td><code>cmath</code></td></tr><tr><td><code>sqrt()</code></td><td>Mengembalikan akar dua suatu bilangan</td><td><code>cmath</code></td></tr><tr><td><code>min()</code></td><td>Mengembalikan bilangan terkecil di antara dua buah bilangan</td><td><code>algorithm</code></td></tr><tr><td><code>max()</code></td><td>Mengembalikan bilangan terbesar di antara dua buah bilangan</td><td><code>algorithm</code></td></tr><tr><td><code>floor()</code></td><td>Mengambalikan nilai bilangan bulat kebawah dari suatu bilangan berkoma</td><td><code>cmath</code></td></tr><tr><td><code>ceil()</code></td><td>Mengambalikan nilai bilangan bulat kebawah dari suatu bilangan berkoma</td><td><code>cmath</code></td></tr><tr><td><code>gcd()</code></td><td>Mengembalikan Faktor Persekutuan Terkecil (FPB) dan suatu bilangan.</td><td><code>numeric</code></td></tr></tbody></table>

Dan lain sebagainya.
