Konsep Pemrograman | Praktikum 14 || Fungsi :
Parameter Fromal & Aktual
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA | D3 PJJ
1
A. Percobaan
1. A. Definisikan sebuah fungsi ganjil() yang
memilliki sebuah parameter bilangan bulat dan
mengembalikan nilai 1 jika parameter yang diberikan
adalah bilangan ganjil dan mengembalikan nilai 0 jika
parameter tsb bukan bilangan ganjil
b. Tulislah prototipe fungsi untuk fungsi tersebut.
c. Buat function main untuk memanggil function
ganjil() yang menerima input sebuah bilangan bulat
yang akan ditentukan ganjil/genapnya. Tampilkan
pesannya (ganjil/genap) dalam main().
Jawab :
#include <stdio.h> main(){ int x; printf("\nULFA OCTA P | 2103157029 \n"); printf("\n---\n"); printf("\nMenentukan bilangan Ganjil & Genap\n"); printf("\n---\n"); printf("Masukkan bilangan : ");scanf("%d",&x); if(x%2==0){
printf("%d adalah bilangan genap\n\n",x); }else{
printf("%d adalah bilangan ganjil\n\n",x); }
ULFA OCTA PRISNANDA 2103157029
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA | D3 PJJ
return 0; }
Output :
Analisa :
Bilangan genap adalah bilangan yang habis di bagi 2 (%2),
bil ganjil adalah tidak habis di bagi 2. Dengan program tsb
kita dapat menentukan bilangan ganjil atau genap.
Jika
bilangan yang dimasukkan ke parameter adalah bilangan
ganjil maka memberikan return value 1 bila tidak maka 0.
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA | D3 PJJ
2. Buatlah program untuk menghitung faktorial dengan
menggunakan 2 fungsi (main() dan faktorial()). Fungsi
faktorial() memberikan return value bertipe long int yang
akan dicetak ke layar dalam fungsi main().
Jawab :
Koding :
#include <stdio.h> long faktorial(long bil); main()
{
long jumFaktorial,bil;
printf("PRAKTIKUM 14 \nULFA OCTA PRISNANDA | 2103157029\n"); printf("\n======================================== \n"); printf("FUNGSI MENAMPILKAN JUMLAH BILANGAN FAKTORIAL"); printf("\n========================================\n"); printf("\nMasukkan bilangan \t= ");
scanf("%ld",&bil);
jumFaktorial = faktorial(bil);
printf("\nJumlah faktorial dari %ld adalah %ld\n\n",bil,jumFaktorial);
}
long faktorial(long bil) {
int i,jum = 1; for(i=bil;i>0;i--) {
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA | D3 PJJ
jum = jum * i; } return jum; }Output :
Analisa :
Dalam program ini menggunakan data long untuk menghitung
factorial dari angka yang diinputkan user. Menggunakan
looping untuk prosesnya, dan ditampilkan ke layar.
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA | D3 PJJ
3. Buatlah fungsi prima(), yang memberikan nilai balik 1 bila
bilangan yang dimasukkan adalah prima, dan 0 bila bukan
bilangan prima.
Jawab :
Koding :
#include <stdio.h> int prima(int bil); main()
{
int bil,isPrima;
printf("PRAKTIKUM 14\nULFA OCTA P | 2103157029\n"); printf("\n======================================== \n\n"); printf("FUNGSI MENGECEK BILANGAN PRIMA \n");
printf("\n======================================== \n"); printf("\nMasukkan bilangan \t= ");
scanf("%d",&bil); isPrima = prima(bil); if(isPrima)
printf("\nBilangan %d adalah bilangan PRIMA\n\n",bil); else
printf("\nBilangan %d bukan bilangan PRIMA\n\n",bil); getchar();
}
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA | D3 PJJ
{
int pembagi,faktornya = 0;
for(pembagi = 1;pembagi <= bil;pembagi++) { if(bil % pembagi == 0) faktornya++; } if(faktornya <= 2) return 1; else return 0; }
Output :
Analisa :
Dengan program ini, user dapat menentukan bilangan prima yang
diinputkan. Bilangan prima adalah bilangan yang habis dibagi 1
dan dirinya sendiri.
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA | D3 PJJ
4. A. Definisikan sebuah fungsi radian() yang berfungsi
untuk mengkonversi besaran sudut dari derajat ke radian
dengan rumus sbb : rad = drjt / 180.0f * PI. Fungsi tersebut
memiliki sebuah parameter yaitu derajat yang akan
dikonversi, dan memiliki sebuah return value berupa hasil
konversi dalam radian.
b. Tulislah prototipe fungsi untuk fungsi tersebut.
c. Buat function main untuk memanggil function radian(),
setelah sebelumnya meminta masukan nilai derajat yang
akan dikonversi.
d. Definisikan PI sebagai sebuah konstanta yang bernilai :
3.14159f
Jawab :
Koding :
#include <stdio.h> #define PHI 3.14159f; float radian(float); main() { float derajad,hslRad;printf("PRAKTIKUM 14\nULFA OCTA P | 2103157029\n"); printf("\n======================================== \n\n"); printf("FUNGSI KONVERSI BESARAN DERAJAD KE RADIAN \n"); printf("\n======================================== \n");
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA | D3 PJJ
printf("\nMasukkan besaran sudut \t= "); scanf("%f",&derajad);
hslRad = radian(derajad);
printf("Hasil konversi ke dalam radian adalah %f\n\n",hslRad); getchar();
}
float radian(float derajad) {
return (derajad / 180.0f) * PHI; }
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA | D3 PJJ
Analisa :
Untuk mengkonversi sudut yang diinputkan, dalam program ini
sudah dilengkapi PHI yang benilai tetap atau konstanta untuk
menghitung sudut.
5. a. Definisikan sebuah fungsi float konversi(suhu, asal, tuj),
untuk mengkonversikan suhu dari Celsius ke Fahrenheit,
Celsius ke Reamur, Fahrenheit ke Celsius, Fahrenheit ke
Reamur, Reamur ke Celsius, dan Reamur ke Fahrenheit.
Dimana suhu adalah suhu sumber, asal adalah satuan awal
suhu yang akan dikonversi dan tuj adalah satuan hasil
konversi.
b. Tulislah prototipe fungsi untuk fungsi tersebut.
c. Buat function main() untuk memanggil function
konversi(), setelah sebelumnya meminta masukan nilai
suhu, satuan asal dan satuan tujuannya.
Jawab :
Koding :
#include <stdio.h> float konversi(char,float,char); main() { char sumber,tujuan; float suhuSumber,suhuTujuan; printf("\n======================================== \n");POLITEKNIK ELEKTRONIKA NEGERI SURABAYA | D3 PJJ
printf("FUNGSI UNTUK MENGKONVERSI SUHU");
printf("\n======================================== \n"); printf("\nMasukkan suhu sumber \t= ");
scanf("%f",&suhuSumber); fflush(stdin);
printf("\nMasukkan satuan asal [C/F/R]\t= "); scanf("%c",&sumber);
fflush(stdin);
printf("\nMasukkan satuan tujuan [C/F/R]\t= "); scanf("%c",&tujuan); suhuTujuan = konversi(sumber,suhuSumber,tujuan); printf("\n%.2f %c = %.2f %c\n\n",suhuSumber,sumber,suhuTujuan,tujuan); getchar(); }
float konversi(char sumber, float suhuSumber, char tujuan) { float pembandingSumber,pembandingTujuan,suhuAwalSumber,suhuAwalTujuan,suhuT ujuan; switch(sumber) {
case 'C': pembandingSumber = 5; suhuAwalSumber = 0; break;
case 'R': pembandingSumber = 4; suhuAwalSumber = 0; break;
case 'F': pembandingSumber = 9; suhuAwalSumber = 32; break;
}
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA | D3 PJJ
{
case 'C': pembandingTujuan = 5; suhuAwalTujuan = 0; break;
case 'R': pembandingTujuan = 4; suhuAwalTujuan = 0; break;
case 'F': pembandingTujuan = 9; suhuAwalTujuan = 32; break;
}
suhuTujuan = (pembandingTujuan / pembandingSumber) * (suhuSumber - suhuAwalSumber) + suhuAwalTujuan ;
return suhuTujuan;
Output :
Analisa :
Setiap satuan memiliki perhitungan masing-masing, kita dapat
mengkonversikan pada program ini dengan rumus fisika yang sudah
diinputkan di dalam program.
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA | D3 PJJ
B. Tugas Tambahan
a. Apa hasil eksekusi dari program berikut :
#include <stdio.h> void ubah(int); main() { int x; printf("Masukkan nilai x : "); scanf("%d", &x); ubah(x); printf("x = %d\n", x); } void ubah(int y) { y = 85; }
Jawab :
Program tersebut akan menampilkan nilai x sesuai yang
diinputkan tanpa ada perubahan walaupun ada fungsi
karena tidak ada return value.
b. Dengan menggunakan fungsi, buatlah program yang
melakukan validasi terhadap tanggal, bulan dan tahun
yang diinputkan. Program juga melakukan pengecekan
apakah sebuah tahun adalah tahun kabisat atau bukan
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA | D3 PJJ
(jika tahun bukan kabisat, bulan yang diinputkan bulan 2
tanggal di atas 28 maka tanggal tidak valid).
Contoh:
Input :
tanggal : 29
bulan : 2
tahun : 1999
Output :
tanggal tidak valid
Jawab :
Koding :
#include <stdio.h> int cekTanggal(int,int,int); main() { int tanggal,bulan,tahun,isValid; printf("\n========================================\n"); printf("MENGECEK VALIDASI TANGGAL");printf("\n========================================\n\n"); printf("Masukkan tanggal\t= "); scanf("%d",&tanggal); printf("Masukkan bulan \t\t= "); scanf("%d",&bulan); printf("Masukkan tahun \t\t= "); scanf("%d",&tahun); printf("\n");
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA | D3 PJJ
isValid = cekTanggal(tanggal,bulan,tahun); if(isValid)
printf("Tanggal tersebut valid\n\n"); else
printf("Tanggal tersebut tidak valid\n\n"); getchar();
}
int cekTanggal(int d,int m,int y) {
int jumD,isValid = 0; switch(m)
{
case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 :
jumD = 31; break;
case 4 : case 6 : case 9 : case 11 : jumD = 31; break; case 2 : if(y % 4 == 0) jumD = 29; else jumD = 28; break; }
if(1 <= m && m >= 12 && 1 <= d && d <= jumD) {