PP66
Oleh Oleh
Sigit Wasista Sigit Wasista
PENS PENS--ITS ITS
MENGEMBANGKAN MENGEMBANGKAN
FUNGSI FUNGSI--FUNGSI SENDIRI FUNGSI SENDIRI
TUJUAN TUJUAN:: Mempelajari Mempelajari
pembuatan fungsi pembuatan fungsi--fungsi diluar fungsi diluar
fungsi fungsi--fungsi yang ada, serta fungsi yang ada, serta
mempelajari penggunaan mempelajari penggunaan mempelajari penggunaan mempelajari penggunaan
variable global, lokal, variable global, lokal,
eksternal, otomatis, statis dan eksternal, otomatis, statis dan
register. register.
Black Box Black Box
fs
Contoh fungsi standar Contoh fungsi standar
X=sqrt(16); X=sqrt(16);
Y=pow(5,3); Y=pow(5,3);
fungsi fungsi cetak_pesan() cetak_pesan()
void cetak_pesan(void); void cetak_pesan(void);
void main() void main()
{{
int i; int i;
for(i=1; i<=5; i++) { for(i=1; i<=5; i++) {
printf(Pesan ke printf(Pesan ke--%d : ,i); %d : ,i);
cetak_pesan(); cetak_pesan();
Deklarasi fungsi
Memanggil fungsi
cetak_pesan(); cetak_pesan();
}}
getch(); getch();
}}
void cetak_pesan() void cetak_pesan()
{{
printf("Ini dulu! baru itu! printf("Ini dulu! baru itu!\\nn\\n"); n");
}}
Fungsi baru
Memanggil fungsi
Fungsi hitung_triangular() Fungsi hitung_triangular()
void hitung_triangular(int n) void hitung_triangular(int n)
{{
int i, jumlah=0; int i, jumlah=0;
for (i=1, i<=n; ++i) for (i=1, i<=n; ++i)
jumlah=jumlah + i; jumlah=jumlah + i;
printf("Jumlah triangular %d adalah %d printf("Jumlah triangular %d adalah %d\\n", n, jumlah); n", n, jumlah);
}}
Fungsi diletakkan
diatas fungsi main
Shg tidak memerlukan
deklarasi
}}
void main() void main()
{{
hitung_triangular(10); hitung_triangular(10);
hitung_triangular(20); hitung_triangular(20);
hitung_triangular(50); hitung_triangular(50);
}}
Flowchart FPB Flowchart FPB
start
U = ?
V = ?
U = V
V = 0
Tampung = u % v
U = V
V = Tampung
stop
No
Yes
Fungsi fpb() Fungsi fpb()
void void fpb fpb((int int,, int int); );
void main() void main()
{{
fpb fpb(150, 35); (150, 35);
fpb fpb(1026, 405); (1026, 405);
fpb fpb(83, 240); (83, 240);
}}
void void fpb fpb((int int u, u, int int v) v)
{{
int int tampung tampung;;
printf printf("FPB ("FPB dari dari %d %d dan dan %d %d adalah adalah ", u, v); ", u, v);
while(v != 0) { while(v != 0) {
tampung tampung = u % v; = u % v;
u = v; u = v;
v = v = tampung tampung;;
}}
printf printf("%d ("%d\\n", u); n", u);
}}
return value return value
#include < #include <stdio.h stdio.h>>
#include < #include <conio.h conio.h>>
int int fpb fpb((int int,, int int); );
void main() void main()
{{
int int hasil hasil;;
hasil hasil == fpb fpb(150, 35); (150, 35);
printf printf("FPB ("FPB dari dari 150 150 dan dan 35 35 adalah adalah %d %d\\n", n", hasil hasil); );
hasil hasil == fpb fpb(1026, 405); (1026, 405);
printf printf("FPB ("FPB dari dari 1026 1026 dan dan 405 405 adalah adalah %d %d\\n", n", hasil hasil); ); printf printf("FPB ("FPB dari dari 1026 1026 dan dan 405 405 adalah adalah %d %d\\n", n", hasil hasil); );
printf printf("FPB ("FPB dari dari 83 83 dan dan 240 240 adalah adalah %d %d\\n", n", fpb fpb(83, 240)); (83, 240));
}}
int int fpb fpb((int int u, u, int int v) v)
{{
int int tampung tampung;;
while(v != 0) { while(v != 0) {
tampung tampung = u % v; = u % v;
u = v; u = v;
v = v = tampung tampung;;
}}
return(u); return(u);
}}
Fungsi minimum() Fungsi minimum()
float minimum(float x, float y) float minimum(float x, float y)
{{
if (x < y) if (x < y)
return(x); return(x);
else else
return(y); return(y);
}}
void main() void main()
{{
float a, b; float a, b;
printf printf(" ("Masukkan Masukkan nilai nilai a : "); a : "); scanf scanf("%f", &a); ("%f", &a);
printf printf(" ("Masukkan Masukkan nilai nilai b : "); b : "); scanf scanf("%f", &b); ("%f", &b);
printf printf(" ("\\nBilangan nBilangan terkecil terkecil antara antara %g %g dan dan %g %g
adalah adalah ); );
printf printf(%g (%g\\nn\\n", a, b, minimum(a, b)); n", a, b, minimum(a, b));
}}
#include <conio.h> #include <conio.h>
#include <stdio.h> #include <stdio.h>
float absolut(float x) float absolut(float x)
{{
if (x < 0) if (x < 0)
x = x = --x; x;
return (x); return (x);
}}
float akar(float x) float akar(float x)
{{
float epsilon = .00001; float epsilon = .00001;
float guess = 1.0; float guess = 1.0;
Fungsi memanggil fungsi
if (x < 0) { if (x < 0) {
printf("Argumen negatif! printf("Argumen negatif!\\n"); n");
return ( return (--1.0); 1.0);
}}
while (absolut(guess * guess while (absolut(guess * guess -- x) >= epsilon) x) >= epsilon)
guess = (x / guess + guess) / 2.0; guess = (x / guess + guess) / 2.0;
return (guess); return (guess);
}}
void main() void main()
{{
printf("akar (4.0) = %f printf("akar (4.0) = %f\\n", akar(4.0)); n", akar(4.0));
printf("akar (625.0) = %f printf("akar (625.0) = %f\\n", akar(625.0)); n", akar(625.0));
printf("akar ( printf("akar (--39.5) = %f 39.5) = %f\\n", akar( n", akar(--39.5)); 39.5));
}}
Variabel Statis dan Otomatis Variabel Statis dan Otomatis
void demo(void) void demo(void)
{{
auto auto int int var_auto var_auto = 0; = 0;
static static int int var_static var_static = 0; = 0;
printf printf("auto = %d, static = %d ("auto = %d, static = %d\\n", n", var_auto var_auto,,
var_static var_static); );
++ ++var_auto var_auto;; ++ ++var_auto var_auto;;
++ ++var_static var_static;;
}}
main() main()
{{
int int ii=0; =0;
while( while(ii < 3) { < 3) {
demo(); demo();
ii++; ++;
}}
}}
Tugas Tugas--Tugas Tugas
Buatlah fungsi Buatlah fungsi kabisat() kabisat() yang yang
akan memberikan nilai balik 1 bila akan memberikan nilai balik 1 bila
tahun adalah kabisat, dan 0 bila tahun adalah kabisat, dan 0 bila
tahun bukan kabisat. tahun bukan kabisat.
factorial() factorial() Buatlah fungsi Buatlah fungsi factorial() factorial() untuk untuk
menghitung nilai factorial, Fungsi menghitung nilai factorial, Fungsi
faktorial() faktorial() memberikan nilai balik memberikan nilai balik
bertipe bertipe long int long int yang akan yang akan
dicetak ke layar dalam fungsi dicetak ke layar dalam fungsi
main() main()..
Tugas Tugas--tugas tugas
Buatlah suatu fungsi Buatlah suatu fungsi
permutasi() permutasi() dan dan kombinasi() kombinasi()
untuk menghitung permutasi untuk menghitung permutasi
dan kombinasi dari suatu dan kombinasi dari suatu dan kombinasi dari suatu dan kombinasi dari suatu
pasangan bilangan, yang pasangan bilangan, yang
dinyatakan dengan formula: dinyatakan dengan formula:
Permutasi Permutasi : Kombinasi : Kombinasi ::
)! (
!
) , (
r n
n
r n P
)! ( !
!
) , (
r n r
n
r n C