Anda di halaman 1dari 17

Pemrograman Pemrograman Dasar I Dasar I

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

Tugas Tugas--tugas tugas


Buatlah fungsi Buatlah fungsi float float suhu(t, s, d) suhu(t, s, d), untuk , untuk
mengkonversikan suhu dari Celsius ke mengkonversikan suhu dari Celsius ke
Fahrenheit, Celsius ke Reamur, Fahrenheit ke Fahrenheit, Celsius ke Reamur, Fahrenheit ke
Celsius, Fahrenheit ke Reamur, Reamur ke Celsius, Fahrenheit ke Reamur, Reamur ke
Celsius, dan Reamur ke Fahrenheit. Dimana Celsius, dan Reamur ke Fahrenheit. Dimana tt
adalah temperatur, adalah temperatur, ss adalah suhu sumber, adalah suhu sumber, dd
adalah suhu konversi, dan adalah suhu konversi, dan suhu() suhu() adalah berisi adalah berisi
nilai balik dari konversi suhu. nilai balik dari konversi suhu. nilai balik dari konversi suhu. nilai balik dari konversi suhu.
Contoh tampilan: Contoh tampilan:
Masukkan suhu sumber = Masukkan suhu sumber = 100 C 100 C
Masukkan suhu tujuan = Masukkan suhu tujuan = RR
Hasil konversi suhu = 80 R Hasil konversi suhu = 80 R
Tugas Tugas--tugas tugas
Buatlah fungsi Buatlah fungsi prima() prima(), yang , yang
memberikan nilai balik 1 bila bilangan memberikan nilai balik 1 bila bilangan
yang dimasukkan adalah prima, dan 0 yang dimasukkan adalah prima, dan 0
bila bukan bilangan prima. bila bukan bilangan prima.
Buatlah program menggunakan dua Buatlah program menggunakan dua
variable variable, satu bertipe , satu bertipe register register dan lainnya dan lainnya variable variable, satu bertipe , satu bertipe register register dan lainnya dan lainnya
bertipe bertipe integer integer, kemudian buatlah dua , kemudian buatlah dua
perulangan menggunakan statement perulangan menggunakan statement
for() for(), untuk membandingkan waktu yang , untuk membandingkan waktu yang
diperlukan untuk masing diperlukan untuk masing--masing tipe masing tipe
variable variable. Gunakan fungsi . Gunakan fungsi gettime() gettime() untuk untuk
menghitung waktu yang diperlukan oleh menghitung waktu yang diperlukan oleh
masing masing--masing perulangan. masing perulangan.
Konversi SUHU Konversi SUHU
double suhu(float t, char s, char d) double suhu(float t, char s, char d)
{{
double k; double k;
switch(s) { switch(s) {
case 'C': case 'C':
if(d=='R') if(d=='R')
k=4./5.*t; break; k=4./5.*t; break;
else else
k=9./5.*t+32; break; k=9./5.*t+32; break;
case 'R': case 'R':
if(d=='C') if(d=='C')
k=5./4.*t; break; k=5./4.*t; break;
else else
void main() void main()
{{
int t; int t;
char s,d,yes='y'; char s,d,yes='y';
while(yes=='y') { while(yes=='y') {
printf("Masukkan suhu printf("Masukkan suhu
(contoh: 100 C) = "); (contoh: 100 C) = ");
scanf("%d %c",&t,&s); scanf("%d %c",&t,&s);
printf("Masukkan satuan printf("Masukkan satuan
tujuan (C, R, F) = "); tujuan (C, R, F) = "); else else
k=9./4.*t+32; break; k=9./4.*t+32; break;
case 'F': case 'F':
if(d=='C') if(d=='C')
k=5./9.*(t k=5./9.*(t--32); break; 32); break;
else else
k=4./9.*(t k=4./9.*(t--32); 32);
}}
return k; return k;
}}
tujuan (C, R, F) = "); tujuan (C, R, F) = ");
scanf("%c",&d); scanf("%c",&d);
scanf("%c",&d); scanf("%c",&d);
printf("Hasil konversi suhu printf("Hasil konversi suhu
= %lf",suhu(t,s,d)); = %lf",suhu(t,s,d));
printf(" printf("\\nCoba lagi? (y/n) nCoba lagi? (y/n)
"); ");
yes=getche(); yes=getche();
puts(" puts("\\nn\\nn\\n"); n");
}}
}}

Anda mungkin juga menyukai