Anda di halaman 1dari 11

Nama ABEDNEGO ZEBUA Kode Asisten WN

NPM 2306161883 Jenis Tugas TP Modul 6 - Function

PENGANTAR FUNCTION (20 poin)


Program 1
#include <stdio.h>
int main(void){
int a, b, hasil;
printf("Masukkan angka pertama: "); scanf("%d", &a);
printf("Masukkan angka kedua: "); scanf("%d", &b);
hasil = a+b;
printf("Jumlah angka: "); printf("%d", hasil);
return 0;
}
1. Apa yang dilakukan oleh kode tersebut? (10 poin)
Jawab :
Kode tersebut meminta 2 input nilai integer dari user kemudian mencetak hasil penjumlahan berupa
integer dari kedua angka tersebut.

Program 2
#include <stdio.h>
int penjumlahan(int a, int b){
return a + b;
}

int main(void){
int a, b, hasil;
printf("Masukkan angka pertama: ");
scanf("%d", &a);
printf("Masukkan angka kedua: ");
scanf("%d", &b);
hasil = penjumlahan(a, b);
printf("Jumlah angka: ");
printf("%d", hasil);
return 0;
}
2. Coba modifikasi program 2, dengan menambahkan function perkalian(int a, int b). Hasil dari
function tersebut di print dalam main. Source code di copas. (10 poin)
Jawab :
#include <stdio.h>

int penjumlahan(int a, int b){


return a + b;
}

int perkalian(int a, int b){


return a * b;
}

int main(void){

int a, b, hasil;
printf("Masukkan angka pertama: ");
scanf("%d", &a);
printf("Masukkan angka kedua: ");
scanf("%d", &b);
hasil = penjumlahan(a, b); //assign nilai penjumlahan kedalam hasil
printf("Jumlah angka: ");
printf("%d", hasil);
hasil = perkalian(a,b); //ganti nilai dalam hasil dengan hasil perkalian
printf("\nHasil perkalian: ");
printf("%d", hasil);

return 0;
}

Output
VOID FUNCTION (20 poin)
Program 3
#include <stdio.h>
int main(void){
int a, b;
printf("Masukkan nilai a: "); scanf("%d", &a);
printf("Masukkan nilai b: "); scanf("%d", &b);
if (a > b){ printf("a lebih besar daripada b"); }
else if (a < b){ printf("a lebih kecil daripada b"); }
else { printf("a sama dengan b"); }
return 0;
}
3. Apa yang dilakukan oleh kode tersebut? (10 poin)
Jawab : Kode tersebut meminta 2 input angka dari user, lalu membandingkan kedua nilai input, dan
mencetak teks sesuai kondisi. Jika a>b maka ditampilkan : a lebih besar daripada b, jika a<b maka
ditampilkan : a lebih kecil daripada b, dan untuk kasus lain ditampilkan : a sama dengan b.

4. Sekarang coba buat program baru yang akan menampilkan output penjelasan tentang diri anda
sendiri. Penjelasan dapat berupa nama, tempat tanggal lahir, hobi, aslab favorit, cita-cita, dsb.
Gunakan function void untuk menampilkan teks. (10 poin)
Jawab :
#include <stdio.h>
void selfdata(void){
printf("Nama : Abednego Zebua\n");
printf("Tempat,tgl lahir : Bumi, Hari-Bulan-Tahun\n");
//data pribadi bersifat rentan hehe
printf("Hobi : Tidur dan menunda tugas\n");
printf("Aslab Favorit : Waduh. Saya memilih jalan diplomatis untuk
tidak memfavoritkan siapapun \n");
printf(" (Bang EZ,WN,GIO,ED lopyu)\n");
printf("Cita-cita : Hidup nyaman sebelum 30\n");
}

int main(void){
selfdata();
return 0;
}
THEORY (Gunakan Referensi) (20 poin)
5. Jelaskan apa itu function dalam bahasa C dan tujuan penggunaannya! (10 poin)
Jawab :
Fungsi (Function) adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai
sub-program (modul program) yang merupakan sebuah program kecil untuk memproses sebagian
dari pekerjaan program utama[1]. Dalam C, fungsi didefinisikan dengan syntax sebagai berikut :
return_type function_name (para1_type para1_name, para2_type para2_name)
{
// body of the function
}

Terdapat beberapa bagian yang perlu dipahami dalam pendefinisian fungsi seperti pada syntax
diatas.
a. Return Type
Return type adalah nilai yang diharapkan dikembalikan oleh fungsi kepada system setelah
dijalankan. Return type dapat berupa int, float, pointer, maupun void. Yang umum
digunakan adalah int dan void. Perbedaannya adalah, return type selain void
mengembalikan nilai sesuai type data yang dituliskan. Sedangkan void tidak
mengembalikan apa-apa. Void akan mengeksekusi perintah didalam fungsi kemudiana
menjalankannya tanpa mengembalikan nilai apapun.

b. Nama Fungsi
Nama fungsi dalam C memiliki aturan yang sebenarnya cukup mirip dengan penamaan
variabel. Penamaan fungsi sebaiknya dilakukan dengan jelas, deskriptif dan spesific.
Awamnya, fungsi utama diberi nama main.

c. Parameter
Parameter merupakan salah satu hal paling krusial dalam pendefinisian fungsi. Parameter
adalah variabel yang didefinisikan dalam deklarasi fungsi[3]. Parameter berupa variabel
dan type data bernilai kosong yang merupakan protoype untuk fungsi. Nilai pada
parameter nantinya akan digantikan oleh nilai dari variabel lain ketika fungsi dipanggil.
Parameter ini disebut juga formal parameter[2]. Parameter ini akan digantikan oleh actual
parameter[2] yang diisi oleh variabel dalam fungsi pemanggil . Proses ini disebut passing
parameter[2].
Contohnya :
void perkalian (int a, int b){
printf(“%d”,a*b);
}
int main (void) {
int angka1=3, angka2=4
perkalian(angka1,angka2); //lihat bahwa nilai pada parameter
perkalian digantikan oleh nilai lain, namun dalam bentuk type data
yang sama.
}

Ada beberapa jenis parameter yang awam digunakan :


• Parameter type data.
Parameter seperti ini digunakan ketika kita ingin sebuah fungsi menjalankan
proses berdasarkan data yang diinginkan. Artinya fungsi tersebut membutuhkan
nilai spesifik untuk berjalan spesifik dalam hal type data dan nilai.
Contoh :
void perkalian(int a, int b){//dua parameter
printf(“%d”,a*b);
}
void pangkat 2(int a){//satu parameter
printf(“%d”,a*a);
}
void volume(int a, int b, int c){//tiga parameter
printf(“%d”,a*b*c);
}

Banyaknya parameter tidaak ditentukan, tergantung banyaknya data yang


diperlukan fungsi untuk berjalan ketika dipanggil.

• Parameter kosong
Parameter kosong mengindikasikan bahwa fungsi tidak perlu dan tidak
mengambil data apapun untuk diproses ketika dipanggil. Dalam C, ini bukan cara
yang disarankan. Dalam C disarankan menggunakan parameter Void. Syntax ini
lebih awam digunakan dalam C++.
Contoh:
void selfdata(){
printf("Nama : Abednego Zebua\n");
}
int main (void){
selfdata();
}

• Parameter void
Fungsinya sama dengan parameter kosong, namun merupakan bentuk yang
disarankan untuk penulisan syntax dalam C. Dalam C, fungsi dengan parameter
kosong berarti fungsi dengan jumlah parameter yang tidak diketahui, bukan
kosong. Sehingga lebih disarankan menggunakan void, yang merupakan
parameter yang dianggap benar-benar kosong oleh C. Meski begitu
pemanggilannya tidak perlu menyertakan penulisan void dalam kotak
parameternya
Contoh :
void selfdata(void){//parameter void = kosong
printf("Nama : Abednego Zebua\n");
}
int main (void){
selfdata(); //pemanggilan tidak menyertakan penulisan void
}

Referensi :
• [1] Modul 6 : Functions, Modul Pemrograman Dasar dan Praktikum, Program Studi Teknik
Komputer, FT UI.
● [2] “C - Functions,” GeeksforGeeks, Oct. 09, 2022. https://www.geeksforgeeks.org/c-functions/
● [3] “Difference between Argument and Parameter in C/C++ with Examples,” GeeksforGeeks,
Nov. 25, 2019. https://www.geeksforgeeks.org/difference-between-argument-and-parameter-in-
c-c-with-examples/
● [4] “Why add void to method parameter list,” Stack Overflow.
https://stackoverflow.com/questions/7412274/why-add-void-to-method-parameter-list (accessed
Oct. 09, 2023).
6. Sebutkan dan jelaskan macam-macam variabel bedasarkan tempat dideklarasikannya (global
variable dan local variable) ! (10 poin)
Jawab :
Variables dalam Bahasa C adalah lokasi memori yang difungsikan untuk menyimpan beberapa
bentuk data dan dapat dipanggil kembali Ketika dibutuhkan[1]. Dalam C terdapat beberapa tipe
variable yaitu[1] :
a. Local Variables
Variabel lokal adalah variabel yang dideklarasikan didalam sebuah fungsi atau sebuah bagian
code[1]. Variabel ini hanya dideklarasikan di dalam function tertentu, sehingga tidak dapat
diakses oleh function lain. Bila dua variabel lokal bernama sama dideklarasikan di dalam dua
function berbeda, keduanya tidak saling berhubungan maupun mempengaruhi, sehingga
memperkecil kemungkinan bug atau error pada program. Keberadaannya hanya valid didalam
sebuah fungsi atau sebuah bagian dalam code misalnya didalam sebuah loop atau conditional
statement. Contohnya sebagai berikut :
void utama()
{
int a; //variabel lokal didalam fungsi
if (a>1){
int dup = a*2 //variabel lokal dalam conditional statement
printf("%d", dup);
}
}

b. Global Variables
Variabel global adalah yang dideklarasikan diluar fungsi atau sebuah bagian code.
Jangkauannya mencakup seluruh program sehingga dapat diakses oleh function apapun didalam
program[1]. Penggunaannya tidak disarankan, karena riskan terhadap bug, error, perubahan nilai,
dsb. Contohnya sebagai berikut :
#include <stdio.h>

int x = 20; //variabel global

void fungsi1() {
printf("Fungsi 1: %d\n", x);
}

void fungsi2() {
printf("Fungsi 2: %d\n", x);
}
int main()
{
fungsi1();
fungsi2();
return 0;
}

Referensi :
• [1] “Variables in C++ - GeeksforGeeks,” GeeksforGeeks, Jul. 08, 2019.
https://www.geeksforgeeks.org/variables-in-c/ (accessed Oct. 08, 2023).
• [2] Modul 6 : Functions, Modul Pemrograman Dasar dan Praktikum, Program Studi Teknik
Komputer, FT UI.
PRACTICE (40 poin)
7. Masih ingatkah kalian dengan soal post test Modul 5 “Kalkulator Sederhana” ? Sekarang coba
implementasikan function untuk setiap pilihan operasi yang ada. Tampilan menu juga dapat
menggunakan function void. Kode program dapat di copas.
Jawab :
#include <stdio.h>
#include <math.h>
//Kalkulator sederhana_Abednego Zebua
//TP_PROGDAS6_AbednegoZebua_2306161883
//printf("\e[1;1H\e[2J"); untuk clear console
void menu(){
//menampilkan pilihan menu
printf("|===========================|\n");
printf("| Menu Calculator Sederhana |\n");
printf("|===========================|\n");
printf("| 1. Penjumlahan |\n");
printf("| 2. Pengurangan |\n");
printf("| 3. Perkalian |\n");
printf("| 4. Pembagian |\n");
printf("| 5. Pangkat |\n");
printf("| 6. Akar |\n");
printf("| 7. Exit Program |\n");
printf("|===========================|\n");
printf("Masukkan pilihan (1 - 7): ");
}

void process(int x){


//proses kalkulasi dengan menggunakan input pilihan menu
//input angka diduluankan agar tidak menduplikasi syntax pada switch-case
double num1,num2;
printf("Masukkan angka pertama: ");
scanf("%lf", &num1);
printf("Masukkan angka kedua: ");
scanf("%lf", &num2);
switch(x){
case 1: printf("Hasil = %.2lf\n", num1+num2);
break;
case 2: printf("Hasil = %.2lf\n", num1-num2);
break;
case 3: printf("Hasil = %.2lf\n", num1*num2);
break;
case 4: printf("Hasil = %.2lf\n", num1/num2);
break;
case 5: printf("Hasil = %.2lf\n", pow(num1,num2));
break;
case 6: printf("Hasil = %.2lf\n", pow(num1,1/num2));
break;
default: break;
}
}

int main (void){


//program utama
//infinite-loop dengan angka sentinel '7'
int x;
do{
menu();
scanf("%d", &x);
if (x>=1 && x<7){
process(x); //memanggil proses untuk input 1-6
}
else if (x>7 || x<1) {
printf("--------Invalid Menu!--------\n");
//jika bukan 1-7 cetak 'menu tidak valid'
}
printf("Press any key to continue . . .");
getch();
printf("\e[1;1H\e[2J");//regex untuk clear console
}while(x!=7);
//selagi bukan input 7, program berulang
//ketika input 7, maka program exit
return 0;
}
ADDITIONAL INFORMATION (Gunakan Referensi) (10 poin)
8. Jelaskan apa itu recursive function! Coba cari salah satu contoh program dan jelaskan apa yang
dilakukan oleh program tersebut. (10 poin)
Jawab :
Secara sederhana recursive function atau fungsi rekursif adalah fungsi yang memanggil dirinya
sendiri didalam fungsi itu sendiri, dengan parameter yang dimodifikasi. Perlu diperhatikan
penulisan dan pengkondisian parameter agar fungsinya tidak melakukan infinity loop.
Salah satu aplikasinya adalah dalam algoritma untuk menghasilkan bilangan Fibonacci.
Contoh kode :
#include <stdio.h>

int fibonacci(int i) {

if(i == 0) {
return 0;
}

if(i == 1) {
return 1;
}
return fibonacci(i-1) + fibonacci(i-2);
}

int main() {

int i;

for (i = 0; i < 10; i++) {


printf("%d\t\n", fibonacci(i));
}

return 0;
}

Referensi :
• [1] “C - Recursion - Tutorialspoint,” www.tutorialspoint.com.
https://www.tutorialspoint.com/cprogramming/c_recursion.htm
● [2] “Recursive Functions,” GeeksforGeeks, Nov. 18, 2010.
https://www.geeksforgeeks.org/recursive-functions/

Anda mungkin juga menyukai