Fungsi dan Prosedur
Modul ini ngajak kita mecahin program kita jadi kecil-kecil
Fungsi dan Prosedur pada C++
Ketika program yang kita buat semakin kompleks, akan sulit tuk dibaca. Kodingan yang semakin menjorok ke dalam, akan bikin kita kesulitan tuk mahamin alur program. Cemtulah, kita perlu pecah program kita jadi bagian-bagian yang lebih kecil biar gak numpuk di program utama.
Disinilah fungsi dan prosedur diperlukan. Keduanya punya perbedaan sebagai berikut:
Fungsi | Prosedur |
Mengembalikan nilai | Tidak mengembalikan nilai |
Deklarasi dengan tipe data | Deklarasi dengan void |
Fungsi
Fungsi adalah blok kode yang berfungsi mengembalikan nilai. Fungsi dideklarasikan dengan tipe data yang akan dikembalikan.
Struktur fungsi:
tipe_data nama_fungsi(tipe_data parameter) { // parameter opsional tapi biasanya ada untuk fungsi
// kode
return nilai;
}
Contoh:
#include <iostream>
using namespace std;
// fungsi dengan prototype
int kurang(int a, int b);
// fungsi tanpa prototype
int tambah(int a, int b) {
return a + b;
}
int main() {
int hasilTambah = tambah(2, 3); // memanggil fungsi tambah
int hasilKurang = kurang(5, 2); // memanggil fungsi kurang
cout << "Hasil tambah: " << hasilTambah << endl;
cout << "Hasil kurang: " << hasilKurang << endl;
return 0;
}
int kurang(int a, int b) {
return a - b;
}
Output:
Hasil tambah: 5
Hasil kurang: 3
Prosedur
Prosedur adalah blok kode yang tidak mengembalikan nilai. Prosedur dideklarasikan dengan void.
Struktur prosedur:
void nama_prosedur(tipe_data parameter) {
// kode
}
Contoh:
#include <iostream>
using namespace std;
// prosedur dengan prototype
void sapa(string nama);
// prosedur tanpa prototype
void perkenalan(string nama) {
cout << "Halo, nama saya " << nama << endl;
}
int main() {
sapa("Raana"); // memanggil prosedur sapa
perkenalan("Syifai"); // memanggil prosedur perkenalan
return 0;
}
void sapa(string nama) {
cout << "Halo, " << nama << endl;
}
Output:
Halo, Raana
Halo, nama saya Syifai
Parameter Fungsi
Parameter adalah variabel yang digunakan untuk menerima nilai dari luar fungsi atau prosedur. Parameter bisa lebih dari satu.
Nasihat: Jangan terlalu banyak parameter, saran maksimal 3 parameter je. Karena nanti susah tuk di-maintain.
Contoh:
#include <iostream>
using namespace std;
int tambah(int a, int b) { // parameter a dan b
return a + b; // ketika masih di dalam fungsi, a dan b disebut sebagai parameter
}
int main() {
int hasil = tambah(2, 3); // memanggil fungsi tambah
cout << "Hasil: " << hasil << endl; // ketika fungsi dipanggil, a dan b disebut sebagai argumen
return 0;
}
Output:
Hasil: 5
Variabel Global dan Lokal
Variabel global adalah variabel yang dideklarasikan di luar fungsi atau prosedur. Variabel global bisa diakses di seluruh program.
Variabel lokal adalah variabel yang dideklarasikan di dalam fungsi atau prosedur. Variabel lokal hanya bisa diakses di dalam fungsi atau prosedur tersebut.
Contoh:
#include <iostream>
using namespace std;
// variabel global
int angka = 10;
int ambikA() {
// variabel lokal
int a = 5;
return a;
}
int main() {
cout << "Angka global: " << angka << endl;
cout << "Angka lokal: " << ambikA() << endl;
return 0;
}
Output:
Angka global: 10
Angka lokal: 5
Fungsi Overloading
Fungsi overloading, namanya sama, tapi parameter beda. Gimana tuh?
Contoh:
#include <iostream>
using namespace std;
void display(int a) {
cout << "Fungsi display 1 parameter" << endl;
cout << "Nilai a: " << a << endl;
}
void display(int a, int b) {
cout << "Fungsi display 2 parameter" << endl;
cout << "Nilai a: " << a << endl;
cout << "Nilai b: " << b << endl;
}
int main() {
display(5);
cout << endl;
display(2, 3);
return 0;
}
Output:
Fungsi display 1 parameter
Nilai a: 5
Fungsi display 2 parameter
Nilai a: 2
Nilai b: 3
Source: