PRAKTIKUM : 14
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().
Penyelesaian:
int ganjil(int);
main()
{
int bil,bilGanjil;
printf("\n\t*******************************************
***************\n");
printf("\t\tCHECK BILANGAN GANJIL GENAP DENGAN
FUNGSI");
printf("\n\t*******************************************
***************\n");
printf("Masukkan bilangan\t:");
scanf("%d",&bil);
printf("\n");
bilGanjil = ganjil(bil);
if(bilGanjil)
printf("Bilangan %d adalah bilangan GANJIL\n\n",bil);
else
printf("Bilangan %d adalah bilangan GENAP\n\n",bil);
}
int ganjil(checking)
{
return checking % 2;
}
b) SS Program
c) Analisis Program
bilangan ganjil adalah bilangan yang apabila dibagi 3 hasil
b a g i n y a 2 . d e n g a n k o n s e p tersebut maka dibuatlah fungsi untuk
mengecek suatu bilangan ganjil atau bukan. Fungsi tersebut bertipe integer
yang apabila bilangan yang dimasukkan ke parameter adalah bilangan ganjil maka
memberikan return value 1 bila tidak maka 0. Hasil return value tadi
diseleksi kembali menggunakan pernyataan bilGanjil di fungsi pemanggil.
main()
{
long Sum,bil;
printf("\n\t*****************************************
*****************\n");
printf("\t\tFUNGSI UNTUK MENAMPILKAN JUMLAH
FACTORIAL");
printf("\n\t*****************************************
*****************\n");
Sum = faktorial(bil);
for(i=bil;i>0;i--)
{
sumF = sumF * i;
}
return sumF;
}
b) SS Program
c) Analisis Program
Faktorial merupakan hasil kali seluruh bilangan mulai dari 1 hingga
bilangan itu sendiri, k a r e n a p a s t i h a s i l f a c t o r i a l t i d a k s e d i k i t ,
m a k a d i g u n a k a n t i p e d a t a l o n g y a n g b i a s menyimpan lebih
banyak digit bilangan. Pada program ini, fungsi akan menerima bilangan
yang akan dicari faktorialnya dari parameter. Kemudian
memprosesnya dengan cara melakukan pengulangan. Selanjutnya
j u m l a h d a r i f a c t o r i a l t a d i d i k e m b a l i k a n k e f u n g s i pemangil untuk
ditampilkan ke layar.
3. Buatlah fungsi prima(), yang memberikan nilai balik 1 bila bilangan yang dimasukkan
adalah prima, dan 0 bila bukan bilangan prima.
Contoh Input : n = 23
Output : 23 adalah bilangan prima ungkapan
Penyelesaian:
main()
{
int bil,cekPrima;
printf("\n\t*****************************************
*****************\n");
printf("\t\tPENGECEKAN BILANGAN PRIMA MENGGUNAKAN
FUNGSI");
printf("\n\t*****************************************
*****************\n");
printf("\nMasukkan bilangan \t= ");
scanf("%d",&bil);
cekPrima = prima(bil);
if(cekPrima)
printf("\n %d adalah bilangan PRIMA\n\n",bil);
else
printf("\n %d BUKAN bilangan PRIMA\n\n",bil);
getch();
}
if(faktor <= 2)
return 1;
else
return 0;
}
b) SS Program
c) Analisis Program
Bilangan Prima hanyalah bilangan yang hanya mempunyai 3 faktor
yaitu bilangan 1 dan bilangan itu sendiri. Maka dari itu pada program kali ini
fungsi melakukan looping untuk mengecheck apakah faktor dari bilangan
tersebut kurang dari atau sama dengan 3 atau tidak. Bila iya maka me-return 1
yang berarti bilangan Prima, bila tidak maka me-return 0 yang berarti bukan
bilangan prima
main()
{
float derajad,hslRad;
printf("\n\t*****************************************
*****************\n");
printf("\t\tKONVERSI BESARAN SUDUT MENGGUNAKAN
FUNGSI");
printf("\n\t*****************************************
*****************\n");
printf("\n\t\tKonversi dari besaran sudut Derajat ke
Radian\n\n\n");
printf("\nTuliskan nilai Derajat \t= ");
scanf("%f",&derajad);
hslRad = radian(derajad);
getch();
}
b) SS Program
c) Analisis Program
Untuk mengkonversi nilai sudut dari derajad ke radian, yang
diperlukan hanyalah fungsiyang membagi nilai sudut dalam derajat
tadi dengan 180 kemudian dikali dengan nilai PHI. Nilai PHI sendiri
karena tidak pernah berubah maka dideklarasikan sebagai konstanta
float konversi(char,float,char);
main()
{
char sumber,tujuan;
float suhuSumber,suhuTujuan;
printf("\n\t*****************************************
*****************\n");
printf("\t\tKONVERSI BESARAN SUHU MENGGUNAKAN
FUNGSI");
printf("\n\t*****************************************
*****************\n");
suhuTujuan = konversi(sumber,suhuSumber,tujuan);
printf("\n%.2f %c = %.2f
%c\n\n",suhuSumber,sumber,suhuTujuan,tujuan);
getch();
}
switch(sumber)
{
case 'C': pembandingSumber = 5; suhuAwalSumber =
0; break;
case 'R': pembandingSumber = 4; suhuAwalSumber =
0; break;
case 'F': pembandingSumber = 9; suhuAwalSumber =
32; break;
}
switch(tujuan)
{
case 'C': pembandingTujuan = 5; suhuAwalTujuan =
0; break;
case 'R': pembandingTujuan = 4; suhuAwalTujuan =
0; break;
case 'F': pembandingTujuan = 9; suhuAwalTujuan =
32; break;
}
return suhuTujuan;
}
b) SS Program
c) Kesimpulan
Setiap satuan suhu memiliki karakteristik masing-masing. Misalnya pada nilai
pembanding, titik didih dan titik bekunya. Pertama kita perlu mendefiniskan
masing-masing hal tersebut. Kemudian dengan acuan tersebut kita bisa
melakukan proses perhitungan fisika sesuai rumus yang ada. Salah satu
hal yang perlu diperhatikan disini adalah ketika satuan suhu memiliki
titik beku yang bukan nol. Maka dalam proses konversi perlu
p r o s e s p e n a m b a h a n a t a u pengurangan agar hasil yang direturn fungsi
tersebut benar
6.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;
}
Penyelesaian:
a) SS Program
b) Analisis Program
Program tersebut akan menampilkan nilai X sesuai yang diinputkan user tanpa ada perubahan
walaupun ada fungsi. Hal tersebut terjadi karena pada fungsi tidak memberikan return value
sama sekali
Penyelesaian:
int cekTanggal(int,int,int);
main()
{
int tanggal,bulan,tahun,isValid;
printf("\n\t*****************************************
*****************\n");
printf("\t\tPENGECEKAN VALIDASI TANGGAL-BULAN-TAHU");
printf("\n\t*****************************************
*****************\n");
isValid = cekTanggal(tanggal,bulan,tahun);
if(isValid)
printf("Tanggal tersebut VALID\n\n");
else
printf("Tanggal tersebut TIDAK VALID\n\n");
getch();
}
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;
}
return isValid;
}
b) SS Program
c) Analisis Program
KESIMPULAN: