Dalam pemrograman, fungsi sering digunakan untuk membungkus program menjadi bagian-bagian kecil.
Logika program yang ada di dalam fungsi dapat kita gunakan kembali dengan memanggilnya.
Sehingga tidak perlu menulis ulang.
Pada kesempatan ini, kita akan belajar tentang fungsi pada bahasa pemrograman C.
Mulai dari cara membuat, memanggil, hingga membuat program CRUD sederhana dengan fungsi.
Mari kita mulai…
Apa itu Fungsi?
Fungsi adalah sub-program yang bisa digunakan kembali baik di dalam program itu sendiri, maupun di program yang lain.
Contoh fungsi yang sering kita buat adalah fungsi
main()
.
Fungsi ini memang wajib ada di setiap program C karena akan dieksekusi pertama kali.
Kita juga sebenarnya bisa membuat fungsi yang lain…
Bagaimana caranya?
Silahkan lanjutkan membaca:
Cara Membuat Fungsi pada Bahasa C
Fungsi pada bahasa pemrograman C dapat kita buat dengan cara seperti ini:
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(){
printf("Ini adalah sebuah fungsi\n");
}
Lalu untuk parameter bersifat opsional, nanti akan kita bahas lebih dalam.
Sekarang mari kita coba membaut program C dengan fungsi.
Silahkan buat file baru bernama
contoh_fungsi.c
kemudian isi dengan kode berikut:#include <stdio.h>
// membuat fungsi say_hello()
void say_hello(){
printf("Hello Selamat Datang!\n");
}
void main(){
// memanggil fungsi say_hello()
say_hello();
}
Hasilnya:
Fungsi
say_hello()
dapat kita panggil berulang kali pada fungsi main()
.
Contoh:
#include <stdio.h>
// membuat fungsi say_hello()
void say_hello(){
printf("Hello Selamat Datang!\n");
}
void main(){
// memanggil fungsi say_hello()
say_hello();
say_hello();
say_hello();
}
Maka hasilnya:
Jadi, cukup buat fungsi satu kali. Kita bisa panggil berkali-kali.
Fungsi dengan Parameter
Parameter adalah variabel yang menyimpan nilai untuk diproses di dalam fungsi.
Parameter akan menyimpan nilai yang akan diinputkan ke dalam fungsi.
Contoh:
void say_hello(char name[]){
printf("Hello %s!\n", name);
}
Pada contoh di atas,
name
adalah sebuah parameter berupa array dengan tipe char
. Parameter ini hanya akan dikenali di dalam fungsi.
Lalu, bagaimana cara memanggil fungsi yang memiliki parameter?
Berikut caranya:
say_hello("Petani Kode");
Perhatikan!
"Petani Kode"
adalah nilai yang akan kita berikan ke parameter.
Biar lebih paham… mari kita coba dalam program.
Silahkan buat program baru dengan nama
parameter.c
, kemudian isi dengan kode berikut:#include <stdio.h>
void say_hello(char name[]){
printf("Hello %s!\n", name);
}
void main(){
say_hello("Dian");
say_hello("Petani");
say_hello("Kode");
}
Hasilnya:
Hasil outputnya akan menyesuaikan dengan nilai parameter yang kita berikan ke dalam fungsi.
Lalu bagaimana kalau ada lebih dari satu parameter?
Gampang…
Tinggal ditambahkan dan dipisah dengan tanda koma seperti ini:
void add(int a, int b){
printf("%d + %d = %d\n", a, b, a+b);
}
Mari kita coba…
Buatlah program baru barnama
dua_param.c
, kemudian isi dengan kode berikut:#include <stdio.h>
void add(int a, int b){
printf("%d + %d = %d\n", a, b, a+b);
}
void main(){
add(1, 4);
add(8, 2);
add(3, 2);
}
Hasilnya:
Fungsi yang Mengembalikan Nilai
Pada contoh di atas, kita memberikan nilai masukan ke dalam fungsi berupa integer…
…lalu di dalamnya dilakukan operasi penjumlahan.
void add(int a, int b){
printf("%d + %d = %d\n", a, b, a+b);
}
Fungsi ini tidak akan mengembalikan apa-apa, karena tipe data yang diberikan pada nilai kembalian adalah
void
.
Fungsi kadang harus mengembalikan sebuah nilai agar dapat diproses di tahap berikutnya.
Kita bisa menggunakan kata kunci
return
untuk mengembalikan nilai dari fungsi.
Contoh:
int add(int a, int b){
return a+b;
}
Maka fungsi
add()
akan mengembalikan nilai berupa integer dari hasil penjumlahan nilai a
dan b
.
Mari kita coba contoh yang lain…
Silahkan buat program baru bernama
fungsi_bagi.c
, kemudian isi dengan kode berikut:#include <stdio.h>
float bagi(int a, int b){
float hasil = (float)a / (float)b;
return hasil;
}
void main(){
printf("Hasil 5/2: %.2f\n", bagi(5, 2));
}
Hasilnya:
Fungsi Rekursif pada C
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri.
Maksudnya?
Biasanya kita memanggil fungsi pada fungsi main atau fungsi yang lainnya. Namun, pada fungsi rekursif…
…fungsi itu akan memanggil dirinya sendiri di dalam tubuh fungsi.
Biar lebih jelas!
Coba perhatikan contoh berikut:
#include <stdio.h>
int sum(int n);
void main(){
int number, result;
printf("Enter a positive integer: ");
scanf("%d", &number);
result = sum(number);
printf("sum = %d", result);
}
int sum(int num){
if (num!=0)
return num + sum(num-1); // fungsi sum() memanggil dirinya sendiri
else
return num;
}
Hasilnya:
Mengapa hasilnya bisa
21
?
Karena kita menginputkan nilai
6
, maka akan sama dengan:1 + 2 + 3 + 4 + 5 + 6 = 21
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 <stdio.h>
// membuat variabel global
int nilai = 9;
void main(){
// membuat variabel lokal
int nilai = 7;
// mencetak variabel
printf("Nilai: %d\n", nilai);
}
Pada contoh di atas, kita membuat variabel global bernama
nilai
.
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.
Lalu, berapakah hasil outputnya?
Jawabannya:
7
Mengapa bisa
7
?
Karena variabel
nilai
kita buat ulang di dalam fungsi main.
Sekarang coba hapus variabel lokal yang ada di dalam main, sehingga akan menjadi seperti ini:
#include <stdio.h>
// membuat variabel global
int nilai = 9;
void main(){
// mencetak variabel
printf("Nilai: %d\n", nilai);
}
Maka hasil outputnya akan
9
. Karena variabel yang dipakai adalah variabel global.Pass by Value dan Pass by Reference
Pass by value dan pass by reference adalah cara untuk memberikan nilai pada paramaeter.
Biasanya kita langsung memberikan nilai kepada parameter dengan cara seperti ini:
kali_dua(4);
Ini disebut pass by value, karena di sana kita memberikan nilai
4
.
Nah kalau seperti ini:
kali_dua(&nama_variabel);
Ini disebut pass by reference, karena kita memberikan alamat memori.
Contoh:
#include <stdio.h>
void kali_dua(int *num){
*num = *num * 2;
}
void main(){
int angka = 9;
// memanggil fungsi
kali_dua(&angka);
// mencetak isi variabel
// setelah fungsi dipanggil
printf("isi variabel angka = %d\n", angka);
}
Hasilnya:
Fungsi
kali_dua()
memiliki parameter berupa pointer, artinya kita harus memberikan alamat memori untuk pointer ini.
Pada saat pemanggilan, fungsi
kali_dua()
kita isi parameternya dengan alamat memori dari variabel angka
.
Maka hasilnya nilai variabel angka akan dikalikan dengan
2
berdasarkan rumus pada fungsi yang kita berikan.Apa Selanjutnya?
Fungsi merupakan hal yang wajib dipahami pada pemrograman C, karena dalam pembuatan program yang besar kita akan banyak menggunakan fungsi.
Tulisan ini hanya mengajari dasar-dasar saja. Sebenarnya masih banyak lagi hal yang harus dibahas tentang fungsi.
Kerena itu…
Tunggu saja update berikutnya, .
buat teman-teman semua.. silahkan bertanya jika ada yang belum dimengerti sebelum saya beri penugasan
BalasHapusBagaimna itu yang dimaksud dengan fungsi pada bahasa c?
HapusFungsi dalam C merupakan sekumpulan code yang dibungkus ke dalam sebuah scope untuk menjalankan tugas tertentu... Fungsi memungkinkan kita untuk menghemat penulisan kode yang sering ditulis berulang-ulang, bisa juga dibungkus ke dalam sebuah fungsi dan kita tinggal memanggilnya saja.. bgtu gambaran umumnya tentang fungsi di bahasa C
HapusPayung Al Faruq Hadir kak
BalasHapusAditya Saputra
BalasHapusHadir pak
Fatima Tul Zahra hadir pak..
BalasHapussilahkan baca dlu materinya bru brtnya kalau ad yg mau ditanyakan.. silahkan bertanya d comment section
BalasHapusuntuk tugas seperti biasa silahkan diringkas materinya.. usahakan semua kode/script dicatat... hasilnya silahkan kirim via wa pribadi... jangan lupa sertakan foto saat mengerjakan tgsnya...
BalasHapusIye pak
HapusIye pak
HapusElsa Wulandari Hadir tapi tidak bisa ki komentar hp nya
BalasHapusKalvi Amalia Hadir pak
BalasHapusMaghfira Hadir...
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapusJusmawati Hadir Kak
BalasHapusHadir pak
BalasHapusWandi,,Hadir pak
BalasHapusEgitayani hadir pak
BalasHapusWawan wahyudi hadir
BalasHapusWawan wahyudi hadir
BalasHapusWawan wahyudi hadir
BalasHapusuntuk tugas seperti biasa silahkan diringkas materinya.. usahakan semua kode/script dicatat... hasilnya silahkan kirim via wa pribadi... jangan lupa sertakan foto saat mengerjakan tgsnya...
BalasHapusFathul mursyid hadir pak
HapusSt.nurhalisa hadir
BalasHapusFathul mursyid Hadir
BalasHapusHadir kak Andi fikri
BalasHapus