Anda di halaman 1dari 8

LAPORAN RESMI

PRAKTIKUM 16
KONSEP PEMROGRAMAN

Nama : Erlangga Aitya


NRP : 2110191060
Kelas : D4 Teknik Informatika B
TUJUAN PEMBELAJARAN
1. Mengetahui perbedaan antara variabel lokal, eksternal, statis dan register
2. Memahami komunikasi antar sejunlah fungsi
3. Mengenal Konsep Pemrograman Terstruktur
SOAL
1. Adakah sesuatu yang salah pada sebuah fungsi yang tidak mempunyai return value ? Jelaskan
analisismu tentang sebuah fungsi yang tidak memiliki return value!
Jawab: Tidak. Setiap fungsi tidak harus memiliki return value. Hanya fungsi yang digunakan
kembali dalam fungsi main() atau fungsi lain sebagai suatu nilai output yang harus memiliki
return value.

2. Apakah yang terjadi jika sebuah fungsi memberikan return value tetapi tidak diassign ke
variabel apapun ?
Jawab: Tidak terjadi apa-apa. Fungsi tetap menjalankan proses di dalamnya. Tetapi, hasil
dari proses itu tidak bisa digunakan dalam fungsi main() atau fungsi lain.

3. Apakah yang terjadi jika sebuah fungsi diassign ke sebuah variabel padahal fungsi tersebut
tidak memiliki return value ?
Jawab: selama tipe data fungsi tersebut bukan void, fungsi tetap bisa memberi return value
tanpa deklarasi return pada fungsi secara eksplisit. Dengan syarat ada suatu variable dalam
fungsi itu yang bertipe data sama dengan return fungsi tersebut dalam deklarasinya.

4. Trace secara manual semua program di bawah ini baris per barisnya, dan tampilkan nilai
semua variabel pada setiap baris prosesnya. Selain itu, tebaklah tampilkan keluaran
programnya

int OddEvenTest(int);
main() a hasil b
{
int a, hasil; tak tentu tak tentu undefined
tak tentu tak tentu undefined
a = 5; 5 tak tentu undefined
hasil = OddEvenTest(a); 5 1 undefined
printf("a=%d; hasil=%d\n",a,hasil); 5 1 undefined
} undefined undefined undefined
undefined undefined undefined
OddEvenTest(int b) undefined undefined 5
{ undefined undefined 5
int a; tak tentu undefined 5
a = b % 2; 1 undefined 5
return a; 1 undefined 5
} undefined undefined undefined
void fung_a(void); x
void fung_b(void); 20
20
int x = 20; 20
20
main() 22
{ 6 dan 21
x += 2; 7 dan 20
fung_a(); 20
fung_a(); 20
printf("\nNilai x dalam main()=%d\n\n",x); 20
} 20
20
void fung_a(void) 5
{ 5
static x = 5; 6
6
x++; 22
printf("Nilai x dalam fung_a() = %d\n", x); 22
fung_b(); 22
} 22
22
void fung_b(void) 21
{ 21
x--; 21
printf("Nilai x dalam fung_b() = %d\n", x);
}
void demo(void); i var_auto var_stactic
0 undefined undefined
main() 0 undefined undefined
{ 0 1 1
int i=0; 1 undefined undefined
while(i < 3) { 1 undefined undefined
demo(); undefined undefined undefined
i++; undefined undefined undefined
} undefined undefined undefined
} undefined undefined undefined
undefined 0 undefined
void demo(void) undefined 0 0
{ undefined 0 0
auto int var_auto = 0; undefined 0 0
static int var_static = 0; undefined 0 0
undefined 1 0
printf("auto = %d, static = %d\n", undefined 1 1
var_auto, var_static); undefined undefined undefined
++var_auto;
++var_static;
}

5. Definisikanlah fungsi main(), masukan() dan average(), sebagai berikut :


- Fungsi masukan() menerima satu parameter berupa jumlah data yang akan dimasukkan dan
memberikan return value berupa nilai total dari seluruh data yang dimasukkan. Fungsi ini
bertugas menerima masukan data sebanyak n kali dan sekaligus menghitung total nilai seluruh
data.
- Fungsi average() menerima dua parameter berupa jumlah data yang telah dimasukkan dan
nilai total seluruh data. Fungsi ini memberikan return value berupa nilai rata-rata dari seluruh
data yang dimasukkan.
- Pada fungsi main()mintalah masukan jumlah data yang akan diinputkan. Selanjutnya lakukan
pemanggilan fungsi masukan() dan average(), kemudian tampilkan nilai rata-rata dari seluruh
datanya.

#include<stdio.h>
#include<stdlib.h>

int masukan(int);
int average(int, int);

int main()
{
int banyak_nilai, total_nilai, rata;
printf("masukan banyak nilai: ");
scanf("%d", &banyak_nilai);
total_nilai = masukan(banyak_nilai);
rata = average(total_nilai, banyak_nilai);
printf("total nilai: %d\nrata-rata: %d", total_nilai, rata);
return 0;
}

int masukan(int n){


int nilai, total = 0;
for (int i = 1; i <= n; i++)
{
printf("masukan nilai %d: ", i);
scanf("%d", &nilai);
fflush(stdin);
total += nilai;
}
return total;
}

int average(int total_nilai, int banyak_nilai){


return total_nilai / banyak_nilai;
}
6. Definisikanlah fungsi-fungsi sebagai berikut :
- Fungsi f_to_i() untuk mengubah ukuran dari satuan kaki (feet) ke inci
- Fungsi i_to_cm() untuk mengubah ukuran dari satuan inci ke centimeter
- Fungsi c_to_m()untuk mengubah ukuran dari satuan centimeter ke meter
Dalam main() mintalah masukan ukuran dalam satuan kaki (feet) kemudian lakukan konversi
sampai mendapatkan keluaran berupa ukuran dalam meter. Tentukan jumlah dan tipe parameter
dan return value yang dibutuhkan. Keterangan : 1 kaki = 12 inchi, 1 inchi = 2.54 cm, 100 cm =
1 meter

#include<stdio.h>
#include<stdlib.h>

float f_to_i(float);
float i_to_cm(float);
float cm_to_m(float);

int main()
{
float feet, inchi, centi, meter;
printf("masukan nilai(feet): ");
scanf("%f", &feet);
inchi = f_to_i(feet);
centi = i_to_cm(inchi);
meter = cm_to_m(centi);
printf("dalam meter: %g", meter);
return 0;
}

float f_to_i(float feet){


return feet * 12;
}

float i_to_cm(float inchi){


return inchi * 2.54;
}

float cm_to_m(float centi){


return centi / 100;
}

Anda mungkin juga menyukai