• Tidak ada hasil yang ditemukan

PRAKTIKUM : 14 BAHASA C : BAB FUNGSI SUB-BAB: PARAMETER FORMAL & AKTUAL DWI SETIYA NINGSIH // [COMPANY NAME] [Company address]

N/A
N/A
Protected

Academic year: 2021

Membagikan "PRAKTIKUM : 14 BAHASA C : BAB FUNGSI SUB-BAB: PARAMETER FORMAL & AKTUAL DWI SETIYA NINGSIH // [COMPANY NAME] [Company address]"

Copied!
14
0
0

Teks penuh

(1)

PRAKTIKUM : 14

2016

BAHASA C : BAB FUNGSI SUB-BAB: PARAMETER FORMAL &

AKTUAL

DWI SETIYA NINGSIH // 210 315 70 25

(2)

PRAKTIKUM 14 - > PARAMETER FORMAL & AKTUAL

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:

a) Source code (listing program) #include <stdio.h> 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

(3)

c) Analisis Program

b i l a n g a n g a n j i l a d a l a h b i l a n g a n y a n g a p a b i l a d i b a g i 3 h a s i l 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.

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().

Contoh Input : n = 4

Output : Hasil faktorialnya = 24

Penyelesaian:

a) Source code (listing program) #include <stdio.h>

long faktorial(long bil); main()

{

(4)

printf("\n\t***************************************** *****************\n");

printf("\t\tFUNGSI UNTUK MENAMPILKAN JUMLAH FACTORIAL"); printf("\n\t***************************************** *****************\n"); printf("\nMasukkan bilangan \t: "); scanf("%ld",&bil); Sum = faktorial(bil);

printf("\nJumlah faktorial dari %ld adalah %ld\n\n",bil,Sum);

}

long faktorial(long bil) { int i,sumF = 1; 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 ,

(5)

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 y a n g a k a n d i c a r i f a k t o r i a l n y a d a r i p a r a m e t e r . K e m u d i a n

m e m p r o s e s n y a d e n g a n c a r a m e l a k u k a n p e n g u l a n g a n . S e l a n j u t n y a 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:

a) Source code (listing program) #include <stdio.h> int prima(int bil); 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(); }

int prima(int bil) {

(6)

for(bagi = 1;bagi <= bil;bagi++) { if(bil % bagi == 0) faktor++; } 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

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

(7)

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 Contoh Input : derajat = 90

Output : derajat dalam radian = 0.5

Penyelesaian:

a) Source code (listing program) #include <stdio.h> #define PHI 3.14159f; float radian(float); 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);

printf("Hasil konversi RADIAN :\t %f\n\n",hslRad); getch();

}

float radian(float derajad) {

return (derajad / 180.0f) * PHI; }

(8)

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

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.

Contoh tampilan:

Masukkan suhu sumber = 100 Masukkan satuan asal = C Masukkan satuan tujuan = R Hasil konversi suhu 100 C = 80 R

Penyelesaian:

(9)

#include <stdio.h> 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");

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); getch(); }

float konversi(char sumber, float suhuSumber, char tujuan) { float pembandingSumber,pembandingTujuan,suhuAwalSumber,suhuAw alTujuan,suhuTujuan; switch(sumber) {

case 'C': pembandingSumber = 5; suhuAwalSumber =

0; break;

case 'R': pembandingSumber = 4; suhuAwalSumber =

0; break;

case 'F': pembandingSumber = 9; suhuAwalSumber =

32; break; }

(10)

{

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; }

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 t i t i k b e k u y a n g b u k a n n o l . M a k a d a l a m p r o s e s k o n v e r s i p e r l u 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

(11)

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

7. Dengan menggunakan fungsi, buatlah program yang melakukan validasi terhadap tanggal, bulan dan tahun yang diinputkan. Program juga melakukan pengecekan apakah

(12)

sebuah tahun adalah tahun kabisat atau bukan (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

Penyelesaian:

a) Source code (listing program) #include <stdio.h> 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"); 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"); isValid = cekTanggal(tanggal,bulan,tahun); if(isValid)

printf("Tanggal tersebut VALID\n\n"); else

printf("Tanggal tersebut TIDAK VALID\n\n"); getch();

}

int cekTanggal(int d,int m,int y) {

int jumD,isValid = 0; switch(m)

{

case 1 : case 3 : case 5 : case 7 : case 8 :

(13)

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) { isValid = 1; } return isValid; } b) SS Program

(14)

c) Analisis Program

K E S I M P U L A N :

1. Dalam bahasa C, program terdiri dari fungsi-fungsi yang terstruktur. 2. Setiap fungsi dapat memiliki parameter apabila dibutuhkan.

3. Parameter formal adalah variabel yang ada pada daftar parameter dalam definisi fungsi.

4. Parameter aktual adalah parameter (tidak selalu berupa variabel) yang dipakai dalam pemanggilan fungsi

Referensi

Dokumen terkait

Untuk itu kami meyambut baik kerjasama BPS (Badan Pusat Statistik) dengan Bappeda (Badan Perencanaan Pembangunan Daerah) untuk menerbitkan Publikasi Kecamatan Dalam Angka

Penerapan gaya kepemimpinan dalam organisasi pada dasarnya untuk meningkatkan kinerja bawahan atau karyawan, hal tersebut sesuai dengan hasil penelitian yang dilakukan

Subjek penelitian ini terarah kepada hal-hal yang berkaitan dengan aktivitas siswa dalam proses pembelajaran yang dilaksanakan pada konsep sifat-sifat cahaya dengan

Model yang diperoleh dengan respon status gizi balita cluster pada data set tunggal mampu mengklasifikasikan balita dengan ketepatan sebesar 69.655%, setelah dilakukan

Adapun skala likert digunakan dalam pengukuran tingkat kepercayaan terhadap atribut yang diukur berdasarkan 4 angka dimulai dari skor 5 yaitu sanga baik, skor 4 yaitu baik, skor

Pemerintah menetapkan upah minimum sebagaimana dimaksud pada ayat (3) huruf a berdasarkan kebutuhan hidup layak dan dengan memperhatikan produktivitas dan pertumbuhan

Hasil yang diperoleh dengan adanya pengabdian pada masyarakat adalah terjadinya peningkatan kualitas produksi serundeng ubi, penggunaan kemasan produk yang sesuai