Functions, parameters, and return values · Fungsi, parameter, dan nilai pengembalian
Why functions
- A function is a named piece of work. You write it once and call it whenever you need it.
- Functions keep programs short and clear, and let you build big jobs from small ones.
- You have already used
printf— a function from<stdio.h>. Now you write your own.
Mengapa functions
- Sebuah function adalah bagian kerja bernama. Anda menulisnya sekali dan call kapan pun Anda membutuhkannya.
- Functions menjaga program pendek dan jelas, dan memungkinkan Anda membangun pekerjaan besar dari yang kecil.
- Anda telah menggunakan
printf— sebuah function dari<stdio.h>. Sekarang Anda menulis sendiri.
Parameters and return values
- The values you pass in are the parameters. The value you hand back is the return value.
int max2(int a, int b)takes twointparameters and returns oneint.return x;ends the function right away and givesxback to the caller.
Parameters dan return values
- Nilai yang Anda kirim masuk adalah parameters. Nilai yang Anda kembalikan adalah return value.
int max2(int a, int b)menerima duaintparameters dan mengembalikan satuint.return x;mengakhiri function segera dan memberikanxkembali ke Caller.
void functions, and building big from small
- A function that returns nothing has the return type
void. It does work but hands back no value. - One function can call another.
max3can callmax2twice to do its job. - Small functions that each do one thing are easier to read and to fix.
fungsi void, dan membangun besar dari yang kecil
- Fungsi yang tidak mengembalikan apa pun memiliki tipe pengembalian
void. Ia tetap bekerja tetapi tidak mengembalikan nilai. - Satu fungsi dapat memanggil fungsi lain.
max3dapat memanggilmax2dua kali untuk melakukan tugasnya. - Fungsi-fungsi kecil yang masing-masing melakukan satu hal lebih mudah dibaca dan diperbaiki.
C copies your arguments
- When you call a function, C gives it a copy of each argument.
- So changing a parameter inside the function does not change the caller's variable.
- Keep this in mind — in a later lesson, pointers let a function reach the original.
C menyalin argumen Anda
- Saat Anda memanggil sebuah fungsi, C memberikan salinan dari setiap argumen kepadanya.
- Jadi mengubah parameter di dalam fungsi tidak mengubah variabel pemanggil.
- Ingatlah hal ini — pada pelajaran berikutnya, penunjuk (pointer) memungkinkan fungsi mengakses data aslinya.
#include <stdio.h>
void try_double(int x) {
x = x * 2; // changes only the COPY
}
int main(void) {
int n = 5;
try_double(n);
printf("%d\n", n); // still 5 — the original did not change
return 0;
}
Common mistakes
- A function used before it is defined needs a prototype above
main. - Arguments pass by value — pass a pointer to change the caller's variable.
Kesalahan umum
- Fungsi yang digunakan sebelum didefinisikan memerlukan prototipe di atas
main. - Argumen diteruskan secara nilai — teruskan penunjuk untuk mengubah variabel pemanggil.
Now you try
- Write each function with the exact name and parameters shown, and
returnthe right value. - You may call one of your functions from another.
- Do not write a
main— the checker provides one.
Sekarang Anda coba
- Tulis setiap fungsi dengan nama dan parameter yang tepat seperti yang ditunjukkan, lalu
returnnilai yang benar. - Anda dapat memanggil salah satu fungsi Anda dari fungsi lain.
- Jangan tulis
main— checker menyediakannya.
Functions: call and return · Fungsi: pemanggilan dan pengembalian
A call pushes a frame with its parameters; return pops it. · Sebuah pemanggilan mendorong frame dengan parameternya; return mengeluarkannya.
Write int max2(int a, int b) returning the larger of two numbers, and int max3(int a, int b, int c) returning the largest of three. Make max3 call max2. Do not write a main. · Tulis int max2(int a, int b) yang mengembalikan angka terbesar dari dua angka, dan int max3(int a, int b, int c) yang mengembalikan angka terbesar dari tiga angka. Buat max3 memanggil max2. Jangan tulis main.
Click Run to see the output here. · Klik Jalankan untuk melihat output di sini.
Complete int power(int base, int exp) so it returns base raised to exp (assume exp >= 0). Use a loop. power(2, 10) is 1024. Do not write a main. · Lengkapi int power(int base, int exp) agar mengembalikan base dipangkatkan exp (asumsikan exp >= 0). Gunakan perulangan. power(2, 10) bernilai 1024. Jangan tulis main.
Click Run to see the output here. · Klik Jalankan untuk melihat output di sini.
Complete int clamp(int x, int lo, int hi) so it keeps x within [lo, hi]: return lo if x is below lo, hi if x is above hi, otherwise x. Do not write a main. · Lengkapi int clamp(int x, int lo, int hi) agar menjaga x tetap dalam batas [lo, hi]: kembalikan lo jika x di bawah lo, hi jika x di atas hi, atau kembalikan x jika tidak. Jangan tulis main.
Click Run to see the output here. · Klik Jalankan untuk melihat output di sini.