---LESSON_INFO--- **Learning Objectives:** - Memahami konsep fungsi dalam bahasa C - Belajar mendeklarasikan dan mendefinisikan fungsi - Mengenal parameter dan nilai kembali dalam fungsi - Memahami cara menggunakan fungsi dalam program **Prerequisites:** - Pemahaman tentang variabel dan tipe data - Pemahaman dasar tentang struktur program C ---END_LESSON_INFO--- # Fungsi dalam C Fungsi-fungsi dalam C cukup sederhana, tetapi karena cara kerja C, kekuatan fungsi agak terbatas. * Fungsi menerima argumen dalam jumlah tetap atau variabel. * Fungsi hanya bisa mengembalikan satu nilai, atau tidak mengembalikan nilai sama sekali. Dalam C, argumen disalin berdasarkan nilai ke fungsi, yang berarti kita tidak bisa mengubah argumen untuk mempengaruhi nilainya di luar fungsi. Untuk melakukannya, kita harus menggunakan pointer, yang diajarkan nanti. Fungsi didefinisikan menggunakan sintaks berikut: ```c int foo(int bar) { /* lakukan sesuatu */ return bar * 2; } int main() { foo(1); } ``` Fungsi `foo` yang kita definisikan menerima satu argumen, yaitu `bar`. Fungsi menerima sebuah integer, mengalikannya dengan dua, dan mengembalikan hasilnya. Untuk mengeksekusi fungsi `foo` dengan 1 sebagai argumen `bar`, kita menggunakan sintaks berikut: ```c foo(1); ``` Dalam C, fungsi harus didefinisikan terlebih dahulu sebelum digunakan dalam kode. Mereka bisa dideklarasikan terlebih dahulu lalu diimplementasikan nanti menggunakan file header atau di awal file C, atau bisa diimplementasikan dalam urutan yang digunakan (lebih disukai). Cara yang benar untuk menggunakan fungsi adalah sebagai berikut: ```c /* deklarasi fungsi */ int foo(int bar); int main() { /* memanggil foo dari main */ printf("Nilai dari foo adalah %d", foo(1)); } int foo(int bar) { return bar + 1; } ``` Kita juga bisa membuat fungsi yang tidak mengembalikan nilai dengan menggunakan kata kunci `void`: ```c void moo() { /* lakukan sesuatu dan jangan kembalikan nilai */ } int main() { moo(); } ``` --- ## Tabel Komponen Fungsi dalam C | Komponen | Deskripsi | Contoh | |----------|-----------|--------| | Tipe Kembali | Tipe data yang dikembalikan oleh fungsi | `int`, `void`, `float` | | Nama Fungsi | Identifier untuk fungsi | `myFunction` | | Parameter | Nilai yang diterima oleh fungsi | `(int x, int y)` | | Tubuh Fungsi | Kode yang dijalankan dalam fungsi | `{ ... }` | ---EXERCISE--- # Latihan: Fungsi untuk Mencetak Nilai Besar Tulislah fungsi bernama `print_big` yang menerima satu argumen (sebuah integer) dan mencetak baris `x is big` (di mana x adalah argumen) jika argumen yang diberikan ke fungsi adalah angka lebih besar dari 10. * **Penting**: Jangan lupa menambahkan karakter baris baru `\n` di akhir string printf. **Requirements:** - Buat fungsi print_big yang menerima integer - Fungsi hanya mencetak jika nilai lebih besar dari 10 - Tambahkan karakter baris baru di akhir **Expected Output:** ``` 11 is big 22 is big 33 is big ``` Try writing your solution in the code editor below! ---KEY_TEXT--- void print_big int number if(number > 10) printf ---END_KEY_TEXT--- ---EXPECTED_OUTPUT--- 11 is big 22 is big 33 is big ---END_EXPECTED_OUTPUT--- ---INITIAL_CODE--- #include /* deklarasi fungsi */ void print_big(int number); int main() { int array[] = { 1, 11, 2, 22, 3, 33 }; int i; for (i = 0; i < 6; i++) { print_big(array[i]); } return 0; } /* tulis fungsi Anda di sini */ ---END_INITIAL_CODE--- ---SOLUTION_CODE--- #include /* deklarasi fungsi */ void print_big(int number); int main() { int array[] = { 1, 11, 2, 22, 3, 33 }; int i; for (i = 0; i < 6; i++) { print_big(array[i]); } return 0; } void print_big(int number){ if(number > 10){ printf("%d is big\\n",number); } } ---END_SOLUTION_CODE---