Wednesday, November 23, 2016

FUNGSI

Percobaan
Program 6.1 Fungsi tanpa mengembalikan nilai
#include <stdio.h>

void salam(void);

int main(void) {
// manggil fungsi salam()
salam();
}
// deklarasi fungsi salam()
// bertipe void (tidak mengembalikan nilai)
// tidak memiliki parameter

void salam(void) {
printf("Hello, World\n");
printf("Saya sedang belajar membuat fungsi\n");
}


Program 6.2 Fungsi tanpa mengembalikan nilai
#include <stdio.h>

void halo(char nama[15]);

int main(void) {
// manggil fungsi halo()
halo("John");
}

// deklarasi fungsi halo()
// bertipe void (tidak mengembalikan nilai)
// memiliki parameter

void halo(char nama[15]) {
printf("Hello, %s\n", nama);
printf("Bagaimana kabarmu?\n");
}

Program 6.3 Cek ganjil atau genap
#include <stdio.h>

int ganjil(int n);

int main(void) {
int bil;
while(bil > 0) {
printf("Masukkan bilangan: ");
scanf("%d", &bil);

if(ganjil(bil)) {
printf("%d adalah ganjil\n", bil);
} else {
printf("%d adalah genap\n", bil);
}
}

return 0;
}

/*
 * deklarasi fungsi ganjil() bertipe int,
 * dengan 1 parameter:
 * n bertipe int
 */

int ganjil(int n) {
if(n % 2 == 0) {
// bila genap mengembalikan nilai 0 (false)
return 0;
} else {
// bila tidak genap mengembalikan nilai selain 0 (true)
return 1;
}
}

Program 6.4Nilai min dan max
#include <stdio.h>
#define MAX 1
#define MIN 0

int min(int a, int b, int c);
int max(int a, int b, int c);
int minmax(int a, int b, int c, int f);

int main(void) {
int a, b, c;

printf("Masukkan 3 bilangan: ");
scanf("%d%d%d", &a, &b, &c);

// memanggil fungsi max() untuk mengecek bilangan terbesar
// dan fungsi min() untuk mengecek bilangan terkecil

printf("\nMenggunakan fungsi min() dan max():\n");
printf("Bilangan Terbesar: %d\n", max(a, b, c));
printf("Bilangan Terkecil: %d\n\n", min(a, b, c));

// memanggil fungsi minmax() untuk mengecek bilangan
// terbesar dan terkecil

printf("Menggunakan fungsi minmax():\n");
printf("Bilangan Terbesar: %d\n", minmax(a, b, c, MAX));
printf("Bilangan Terkecil: %d\n", minmax(a, b, c, MIN));

return 0;
}


/*
 * deklarasi fungsi min()
 * tipe kembalian: int
 * parameter:
 * a: int
 * b: int
 * c: int
 */

int min(int a, int b, int c) {
int min = a;

// pengecekan nilai min

if(b < min)
min = b;

if(c < min)
min = c;

// mengembalikan nilai min
return min;
}

/*
 * deklarasi fungsi min()
 * tipe kembalian: int
 * parameter:
 * a: int
 * b: int
 * c: int
 */

int max(int a, int b, int c) {
int max = a;

// pengecekan nilai max

if(b > max)
max = b;

if(c > max)
max = c;

// mengembalikan nilai max
return max;
}

/*
 * deklarasi fungsi minmax()
 * tipe kembalian: int
 * parameter:
 * a: int
 * b: int
 * c: int
 * f: int
 *
 * keterangan
 * a, b, c sebagai bilangan yang dicek nilainya
 *
 * f sebagai penanda pengecekan, apakah max atau min
 */

int minmax(int a, int b, int c, int f) {

// bila f bernilai MAX
if(f == MAX) {

// panggil fungsi max() dan kembalikan nilainya
return max(a, b, c);
} else if(f == MIN) {

// bila f bernilai MIN
// panggil fungsi min() dan kembalikan nilainya
return min(a, b, c);
}
}

Program 5.5 Piramid
#include <stdio.h>

void piramid(int t, char c);

int main(void) {
int t;
char c;

printf("-- Menggambar Piramid --\n");

printf("   karakter: ");
scanf("%c", &c);

printf("   tinggi  : ");
scanf("%d", &t);

printf("\n");

piramid(t, c);

return 0;
}

/*
 * deklarasi fungsi piramid()
 * tipe kembalian: void
 * parameter:
 * t: integer
 * c: char
 *
 * t untuk tinggi piramid
 * c untuk karakter yang akan tuliskan
 */

void piramid(int t, char c) {
int i, j;

for(i = 1; i <= t; i++) {
for(j = t - i; j >= 1; j--) {
printf(" ");
}

for(j = 1; j <= i; j++) {
printf("%c", c);
}

for(j = 2; j <= i; j++) {
printf("%c", c);
}
printf("\n");
}
}

Program 6.6 Faktorial
#include <stdio.h>

int faktorial(int n);

int main(void) {
int n;

printf("Masukkan bilangan: ");
scanf("%d", &n);

printf("Faktorial %d! = %d", n, faktorial(n));
return 0;
}

/*
 * deklarasi fungsi faktorial()
 * tipe kembalian: int
 * parameter:
 * n: int
 *
 * n sebagai bilangan yang dihitung
 */

int faktorial(int n) {
int i, f;

f = 1;

// perhitungan menggunakan struktur perulangan
for(i = n; i >= 1; i--) {
f*=i;
}

return f;
}


No comments:

Post a Comment