Fungsi dan Array · Pelajaran 6 dari 12

Fungsi dan prototipe

9 menit baca · BelajarCode

C
1#include <stdio.h>23double luas_lingkaran(double r);4int faktorial(int n);56int main(void) {7    printf("Luas lingkaran r=7: %.2f\n", luas_lingkaran(7));8    printf("5! = %d\n", faktorial(5));9    return 0;10}1112double luas_lingkaran(double r) {13    return 3.14159 * r * r;14}1516int faktorial(int n) {17    if (n <= 1) return 1;18    return n * faktorial(n - 1);19}
Keluaran
Luas lingkaran r=7: 153.94
5! = 120
  • Baris double luas_lingkaran(double r); di atas main adalah prototipe. Prototipe memberi tahu kompiler nama, tipe kembalian, dan parameter fungsi sebelum definisinya ditemukan.
  • Fungsi yang tidak mengembalikan nilai bertipe void.
  • Fungsi boleh memanggil dirinya sendiri (rekursi), seperti faktorial.

Pass by value

Di C, argumen dikirim sebagai salinan. Mengubah parameter di dalam fungsi tidak mengubah variabel milik pemanggil.

C
1#include <stdio.h>23void coba_ubah(int x) {4    x = 100;5    printf("Di dalam fungsi: x = %d\n", x);6}78int main(void) {9    int angka = 5;10    coba_ubah(angka);11    printf("Di main: angka = %d\n", angka);12    return 0;13}
Keluaran
Di dalam fungsi: x = 100
Di main: angka = 5

Untuk mengubah variabel pemanggil, fungsi membutuhkan alamat variabel itu, yaitu pointer. Ini dibahas di bab Memori.

Berkas header

Pada proyek besar, prototipe dikumpulkan di berkas header (.h), lalu definisinya di berkas .c. Berkas lain cukup menulis #include "matematika.h" untuk memakai fungsinya. Inilah cara pustaka standar seperti stdio.h bekerja.

Cek pemahaman

Kenapa prototipe fungsi diperlukan jika definisi fungsi ditulis setelah main?

Latihan

FPB dan KPK

Tulis fungsi fpb(a, b) dengan algoritma Euclid dan fungsi kpk(a, b) yang memakai rumus a / fpb(a, b) × b. Baca dua bilangan, lalu tampilkan FPB dan KPK-nya.

Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler C online.

Tandai pelajaran ini selesai

Masuk ke aplikasi untuk mencatat kemajuan, lalu lanjutkan ke pelajaran berikutnya dari perangkat mana pun.

Buka di aplikasi