FUNCTION 6.3 & 7.3 NESTED LOOP
FUNCTION ( FUNGSI )
13.01 BAB 15 FUNCTION
main function Program dalam bahasa C, 13.02 Program dalam bahasa C, merupakan kumpulan fungsi-fungsi, dan minimal terdiri dari satu fungsi yaitu main function #include<stdio.h> main() { - } main function atau fungsi induk atau fungsi utama
#include<stdio.h> int HITUNG(int A, int B); main() { int A,B,T; 13.01 #include<stdio.h> int HITUNG(int A, int B); main() { int A,B,T; A=5; B=2;T=0; T = HITUNG(A,B); printf(“\n %d”, T); } int HITUNG(int A, int B) { int T; A = A * 2; B = B * 2; T= A+B; return(T); main program main Function Function : Nama : HITUNG Tipe : int
#include<stdio.h> main() { printf(“Jakarta”); } 13.02 Contoh-01 A. #include<stdio.h> main() { printf(“Jakarta”); } Program ini tidak menggunakan Funtion selain fungsi main Akan tercetak : Jakarta printf (……) merupakan sebuah Fungsi Pustaka (Library Function)
LIBRARY FUNCTION (Fungsi Pustaka) 13.02 LIBRARY FUNCTION (Fungsi Pustaka) #include<stdio.h> main() { printf(“Jakarta”); } void scanf(…….) ada 33 fungsi dalam file stdio.h void printf(…….) void gets(…….) void xxxxx(…….)
#include<stdio.h> #include<conio.h> main() { clrscr(); 13.02 #include<stdio.h> #include<conio.h> main() { clrscr(); printf(“Jakarta”); } void scanf(…….) ada 33 fungsi dalam file stdio.h void printf(…….) void gets(…….) void clrscr(…….) ada 6 fungsi dalam file conio.h void clrscr(…….)
#include<math.h> - int A,B; A=25; B = sqrt(B); 13.02 #include<……> #include<math.h> - int A,B; A=25; B = sqrt(B); xxx sqrt(…….) ada 23 fungsi dalam file math.h xxx pow(…….)
untuk mencetak “Jakarta” 13.02 Contoh-01 A. #include<stdio.h> main() { printf(“Jakarta”); } Program ini tidak menggunakan Funtion Akan tercetak : Jakarta #include<stdio.h> void CETAK(void); main() { CETAK(); } void CETAK(void) printf(“Jakarta”); Menggunakan fungsi CETAK untuk mencetak “Jakarta” B. Akan tercetak : Jakarta
#include<stdio.h> 13.02 #include<stdio.h> main() { } Fungsi fungsi-fungsi yang dibuat sendiri Fungsi Fungsi main atau Fungsi induk atau Fungsi Utama Fungsi fungsi-fungsi yang dibuat sendiri Fungsi Fungsi
Program ini tidak #include<stdio.h> main() menggunakan Funtion { Contoh-01 13.02 A. #include<stdio.h> main() { printf(“Jakarta”); } Program ini tidak menggunakan Funtion Akan tercetak : Jakarta #include<stdio.h> void CETAK(void); main() { CETAK(); } void CETAK(void) printf(“Jakarta”); B. men-DEKLARASI-kan Fungsi Men DEFINISI kan Fungsi Akan tercetak : Jakarta
Error #include<stdio.h> main() { CETAK(); } void CETAK(void) 13.03 Function yang tidak dideklarasikan terlebih dahulu, akan menyebabkan error #include<stdio.h> main() { CETAK(); } void CETAK(void) printf(“Jakarta”); Error C.
#include<stdio.h> void CETAK(void); main() { CETAK(); } 13.03 Contoh-02 Semua variabel yang dibuat dalam suatu Function, akan bersifat variabel LOKAL A. #include<stdio.h> void CETAK(void); main() { CETAK(); } void CETAK(void) int A,B,T; A=5; B=2; T = A+B; printf(“%d”, T); 5 2 7 B A T Akan tercetak : 7
error #include<stdio.h> void CETAK(void); main() { int A,B,T; 13.04 Variabel LOKAL dan variabel GLOBAL, dan CALLING Funtion dan CALLED Function 13.04 Contoh-03 #include<stdio.h> void CETAK(void); main() { int A,B,T; A=5; B=2; T=A+B; CETAK(); } void CETAK(void) { printf(“%d”, T); A. variabel LOKAL dalam program induk 5 2 7 A B T error
#include<stdio.h> void CETAK(void); int T; main() { int A,B; 13.04 B. #include<stdio.h> void CETAK(void); int T; main() { int A,B; A=5; B=2; T=A+B; CETAK(); } void CETAK(void) { printf(“%d”, T); variabel GLAOBAL 7 T variabel LOKAL dalam program induk 5 2 A B Tercetak : 7
#include<stdio.h> void CETAK(void); int T; main() { int A,B,T; 13.04 B. #include<stdio.h> void CETAK(void); int T; main() { int A,B,T; A=5; B=2; T=A+B; CETAK(); } void CETAK(void) { printf(“%d”, T); variabel GLAOBAL T variabel LOKAL dalam program induk 5 2 A B T Tercetak : ?
#include<stdio.h> void CETAK(void); int T; main() { int A,B; 13.04 B. #include<stdio.h> void CETAK(void); int T; main() { int A,B; A=5; B=2; T=A+B; CETAK(); } void CETAK(void) { int T; printf(“%d”, T); variabel GLAOBAL 7 T Lokal dalam fungsi main 5 2 A B Lokal dalam fungsi CETAK T Tercetak : ?
#include<stdio.h> void TAMBAH(void); int A,B,T; main() 13.05 C. #include<stdio.h> void TAMBAH(void); int A,B,T; main() { A=5; B=2; TAMBAH(); printf(“%d”,T); } void TAMBAH(void) { T = A + B; Semua variabel (A,B,T) dibuat GLOBAL Tercetak : 7
D. Tercetak : 7 #include<stdio.h> void TAMBAH(void); 13.05 #include<stdio.h> void TAMBAH(void); void CETAK(void); int A,B,T; main() { A=5; B=2; TAMBAH(); CETAK(); } void TAMBAH(void) { T = A + B; } void CETAK(void) { printf(“%d”, T ); } Semua variabel (A,B,T) dibuat GLOBAL Tercetak : 7
#include<stdio.h> void CETAK(int T); main() { int A,B,T; 13.05 Passing Variable. Variabel Parameter dan variabel Argument 13.06 Contoh-04 A. #include<stdio.h> void CETAK(int T); main() { int A,B,T; A=5; B=2; T=A+B; CETAK(T); } void CETAK(int T) { printf(“%d”, T);} 5 2 7 T disini disebut A B T PARAMETER 7 T disini disebut T ARGUMENT Tercetak 7
#include<stdio.h> void CETAK(int T); main() { int A,B,T; 13.05 Passing Variable. Variabel Parameter dan variabel Argument 13.06 Contoh-04 A. #include<stdio.h> void CETAK(int T); main() { int A,B,T; A=5; B=2; T=A+B; CETAK(T); } void CETAK(int X) { printf(“%d”, X);} 5 2 7 T disini disebut A B T PARAMETER 7 X disini disebut X ARGUMENT Tercetak 7
#include<stdio.h> void CETAK(int T); main() { int A,B,T; 13.06 Contoh-04 C. #include<stdio.h> void CETAK(int T); main() { int A,B,T; A=5; B=2; T=A+B; CETAK(T); } void CETAK(int X) { int Y; Y = X * 2; printf(“%d”, Y);} 5 2 7 A B T 7 14 X Y Tercetak 14
#include<stdio.h> int JUMLAH(int A, int B); main() { int A,B,T; 13.06 Nilai yang dihitung oleh Called Function dapat dikembalikan (return) ke Calling Funtion 13.08 Contoh-05 A. #include<stdio.h> int JUMLAH(int A, int B); main() { int A,B,T; A=5; B=2; T = JUMLAH(A,B); printf(“%d”, T); } int JUMLAH(int A, int B) { int T; T = A+B; return(T); Variabel dalam fungsi main( ) 5 2 7 A B T return(T); 5 2 7 A B T Variabel dalam fungsi JUMLAH Tercetak 7
#include<stdio.h> int JUMLAH(int A, int B); main() { int A,B,T; 13.08 #include<stdio.h> int JUMLAH(int A, int B); main() { int A,B,T; A=5; B=2; T = JUMLAH(A,B); printf(“%d”, T); } int JUMLAH(int X, int Y) { int Z; Z = X + Y; return(Z); B. Variabel dalam fungsi main( ) 5 2 7 A B T return(Z); 5 2 7 X Y Z Variabel dalam fungsi JUMLAH Tercetak 7
#include<stdio.h> int JUMLAH(int A, int B); main() { int A,B,T; 13.08 #include<stdio.h> int JUMLAH(int A, int B); main() { int A,B,T; A=5; B=2; T = JUMLAH(A,B); printf(“%d”, T); } int JUMLAH(int X, int Y) { int Z; Z = X + Y; B. 5 2 7 A B T return(Z); 5 2 7 X Y Z Tercetak 7 Kalau tak ada instruksi return( ), maka yang di return adalah hasil perhitungan terakhir
#include<stdio.h> int JUMLAH(int A, int B); main() { int A,B,T; 13.11 #include<stdio.h> int JUMLAH(int A, int B); main() { int A,B,T; A=5; B=2; T = JUMLAH(A,B); printf(“%d”, T); } int JUMLAH(int X, int Y) { int Z,U; Z = X+Y; U = X * Y; return(Z) D. Yang direturn adalah nilai Z Tercetak 7
#include<stdio.h> int JUMLAH(int A, int B); main() { int A,B,T; 13.11 #include<stdio.h> int JUMLAH(int A, int B); main() { int A,B,T; A=5; B=2; T = JUMLAH(A,B); printf(“%d”, T); } int JUMLAH(int X, int Y) { int Z,U; Z = X+Y; U = X * Y; E. return nilai U Tercetak 10
#include<stdio.h> int JUMLAH(int X, int Y); main() { int A,B; 13.07 Nilai yang dicetak oleh instruksi printf, dapat merupakan nilai yang diRETURN oleh suatu Function 13.12 Contoh-06 #include<stdio.h> int JUMLAH(int X, int Y); main() { int A,B; A=5; B=2; printf(“%d”, JUMLAH(A,B); } int JUMLAH(int X, int Y) { int Z; Z = X+Y; return(Z); A. bandingkan dengan fungsi pustaka printf( “%d”, sqrt(X) ); Tercetak 7
#include<stdio.h> int JUMLAH(int X, int Y) { int Z; Z = X+Y; 13.08 Sebuah Function dapat ditulis diatas (sebelum) function main( ) 13.13 Contoh-07 A. #include<stdio.h> int JUMLAH(int X, int Y) { int Z; Z = X+Y; return(Z); } main() { int A,B, T; A=5; B=2; T = JUMLAH(A,B); printf(“%d”, T); Tidak perlu men- DEKLARASI-kan fungsi Tercetak : 7
#include<stdio.h> int JUMLAH(int A, int B); main() { int A,B,T; 13.13 #include<stdio.h> int JUMLAH(int A, int B); main() { int A,B,T; A=5; B=2; T = JUMLAH(A,B); printf(“%d”, T); } int JUMLAH(int X, int Y) { int Z; Z = X + Y; return(Z); #include<stdio.h> int JUMLAH(int X, int Y) { int Z; Z = X+Y; return(Z); } main() { int A,B, T; A=5; B=2; T = JUMLAH(A,B); printf(“%d”, T);
#include<stdio.h> int JUMLAH(int X, int Y) { int Z; Z = X+Y; 13.13 B. #include<stdio.h> int JUMLAH(int X, int Y) { int Z; Z = X+Y; return(Z); } main() { int A,B; A=5; B=2; printf(“%d”, JUMLAH(A,B); Tercetak : 7
#include<stdio.h> int ROBAH(int A, int B); main() { int A,B; 13.09 Nilai variabel dalam program main( ) tidak dapat dirubah oleh suatu Function 13.14 Contoh-08 #include<stdio.h> int ROBAH(int A, int B); main() { int A,B; A=5; B=2; ROBAH(A,B); printf(“\n% A = %d B = %d “ , A, B); } int ROBAH(int A, int B) { A = A * 2; B = B * 2; C. Tercetak : A = ? B = ?
#include<stdio.h> int ROBAH(int A, int B); main() { int A,B; 13.09 Nilai variabel dalam program main( ) tidak dapat dirubah oleh suatu Function 13.14 Contoh-08 #include<stdio.h> int ROBAH(int A, int B); main() { int A,B; A=5; B=2; ROBAH(A,B); printf(“\n% A = %d B = %d “ , A, B); } int ROBAH(int A, int B) { A = A * 2; B = B * 2; C. Tercetak : A = 5 B = 2
#include<stdio.h> int HITUNG(int A, int B); main() { int A,B,T; T = HITUNG(A,B); printf(“Nilai A = %d Nilai B = %d “ , A, B); printf(“\nTotal A + B = %d”, T); } int HITUNG(int A, int B) { int T; A = A * 2; B = B * 2; T= A+B; return(T); 13.14 D. Nilai A = ? Nilai B = ? Total A + B = ? Tercetak :
#include<stdio.h> int HITUNG(int A, int B); main() { int A,B,T; T = HITUNG(A,B); printf(“Nilai A = %d Nilai B = %d “ , A, B); printf(“\nTotal A + B = %d”, T); } int HITUNG(int A, int B) { int T; A = A * 2; B = B * 2; T= A+B; return(T); 13.14 D. Nilai A = 5 Nilai B = 2 Total A + B = 14 Tercetak :
13.10 Sebuah Function dapat mengCALL Function lain 13.15 Contoh -09 #include<stdio.h> int HITUNG(int C, int D); int TAMBAH( int X, int Y); main() { int A,B, T; A=5; B=2; T = HITUNG(A,B); printf(“\n%d “, T ); } int HITUNG (int C, int D) { int E; C = C * 2; D = D * 2; E = TAMBAH(C,D); return(E); int TAMBAH(int X, int Y) { int Z; Z = X + Y; return(Z); A. 5 2 A B T C D E X Y Z Tercetak : ?
13.10 Sebuah Function dapat mengCALL Function lain 13.15 Contoh -09 #include<stdio.h> int HITUNG(int C, int D); int TAMBAH( int X, int Y); main() { int A,B, T; A=5; B=2; T = HITUNG(A,B); printf(“\n%d “, T ); } int HITUNG (int C, int D) { int E; C = C * 2; D = D * 2; E = TAMBAH(C,D); return(E); int TAMBAH(int X, int Y) { int Z; Z = X + Y; return(Z); A. 5 2 A B T 10 4 C D E 10 4 14 X Y Z Tercetak : 14
13.11 Dua buah Function dapat saling mengCALL 13.16 #include<stdio.h> int HITUNG(int C, int D); int TAMBAH( int X, int Y); main() { int A,B, T; A=5; B=2; T = HITUNG(A,B); printf(“\n%d “, T ); } int HITUNG (int C, int D) int E; C = C * 2; D = D * 2; E = TAMBAH(C,D); return(E); int TAMBAH(int X, int Y) int Z; Z = X + Y; while ( Z < 50) {X=X+2; Y=Y+2; Z=HITUNG(X,Y); return(Z); Contoh -10 A B T 5 2 80 C D C D C D E 5 10 2 4 12 24 6 12 26 52 14 28 80 X Y Z X Y Z X Y Z 10 12 4 6 14 24 26 12 14 36 52 28 80 Tercetak : 80
#include<stdio.h> int TAMBAH(); main() { int i, T; 13.12 Variabel Static 13.17 Contoh -11 #include<stdio.h> int TAMBAH(); main() { int i, T; for (i=1; i<=5; i++) { T = TAMBAH()); printf(“\n%d “,T ); } int TAMBAH() { int X=5; X = X + 2; return(X); A. Tercetak : ?
#include<stdio.h> int TAMBAH(); main() { int i, T; 13.12 Variabel Static 13.17 Contoh -11 #include<stdio.h> int TAMBAH(); main() { int i, T; for (i=1; i<=5; i++) { T = TAMBAH()); printf(“\n%d “,T ); } int TAMBAH() { int X=5; X = X + 2; return(X); A. Tercetak : 7
#include<stdio.h> int TAMBAH(); main() { int i, T; 13.12 Variabel Static 13.17 B. #include<stdio.h> int TAMBAH(); main() { int i, T; for (i = 1; i <=5; i++) { T = TAMBAH()); printf(“\n%d “, T ); } int TAMBAH() { static int X=5; X = X + 2; return(X); Tercetak : 7 9 11 13 15
#include<stdio.h> int TAMBAH(); main() { int i, T; 13.17 #include<stdio.h> int TAMBAH(); main() { int i, T; for (i=1; i<=5; i++) {T = TAMBAH()); printf(“\n%d “,T ); } int TAMBAH() { int X=5; X = X + 2; return(X); #include<stdio.h> int TAMBAH(); main() { int i, T; for (i=1; i<=5; i++) {T = TAMBAH()); printf(“\n%d “,T ); } int TAMBAH() { static int X=5; X = X + 2; return(X); Tercetak : 7 Tercetak : 7 9 11 13 15
#include<stdio.h> int TAMBAH(); main() { int i, T; 13.17 #include<stdio.h> int TAMBAH(); main() { int i, T; for (i = 1; i <=5; i++) { T = TAMBAH()); printf(“\n%d “, T ); } T = TAMBAH(); printf(“\n\n%i”, T); int TAMBAH() { static int X=5; X = X + 2; return(X); Tercetak : 7 9 11 13 15 17
Proses array menggunakan function #include<stdio.h> void CETAK(int B[5]); main() { int A[5]={12,7,5,15,17}; CETAK(A); } void CETAK(int B[5]) { int I; for(I=0;I<=4; I++) printf(“\n%d”, B[I]); A. A 12 7 5 15 17 B 12 7 5 15 17 Tercetak : 12 7 5 15 17
Proses array menggunakan function 13.17b #include<stdio.h> int TOTAL(int B[5]); main() { int T, A[5]={12,7,5,15,17}; T = TOTAL(A); printf(“%i”, T); } int TOTAL(int B[5]) { int I, TOT=0; for(I=0;I<=4; I++) TOT = TOT + B[I]); retrun TOT; B. A 12 7 5 15 17 B 12 7 5 15 17 Tercetak : 79
5 5 A A 5 X 13.13 Calling By Reference Pendahuluan 13.18 Pendahuluan #include<stdio.h> void CETAK(void); main() { int A; A=5; CETAK(); } void CETAK(void) {printf(“%d”, A); #include<stdio.h> void CETAK(int X); main() { int A; A=5; CETAK(A); } void CETAK(int X) { printf(“%d”, X); 5 5 A A 5 X Tercetak: ? Tercetak: ?
#include<stdio.h> void CETAK(void); main() { int A,*P; A=5; 13.13 Calling By Reference 13.18 Pendahuluan #include<stdio.h> void CETAK(void); main() { int A,*P; A=5; P = &A; CETAK(); } void CETAK(void) { printf(“%d”, *P); } variabel dalam main( ) 5 21CD A P 21CD Tercetak: ?
#include<stdio.h> void CETAK(int *Q); main() { int A,*P; A=5; 13.13 Calling By Reference 13.18 Contoh 12 #include<stdio.h> void CETAK(int *Q); main() { int A,*P; A=5; P = &A; CETAK(P); } void CETAK(int *Q) { printf(“%d”, *Q); } A. variabel dalam main( ) 5 21CD A P 21CD variabel dalam Function CETAK 21CD Tercetak: 5 Q
Calling By Reference untuk array 13.19 Calling By Reference untuk array #include<stdio.h> void CETAK(int *Q); main() { int A[5]={12,7,5,15,17}; int *P; P = A; CETAK(P); } void CETAK(int *Q) { int I; for(I=1;I<=5; I++) printf(“\n%d”, *Q++); B. Tercetak : 12 7 5 15 17 variabel dalam main( ) A 12 7 5 15 17 21CD 21CD P A 12 7 5 15 17 variabel dalam Function CETAK P Q 21CD Q
Calling By Reference untuk array 13.19 Calling By Reference untuk array #include<stdio.h> void CETAK(int *Q); main() { int A[5]={12,7,5,15,17}; int *P; P = A; CETAK(P); } void CETAK(int *Q) { int I; for(I=1;I<=5; I++) printf(“\n%d”, *Q++); B. Tercetak : 12 7 5 15 17 variabel dalam main( ) A 12 7 5 15 17 21CD 21CD P A 12 7 5 15 17 variabel dalam Function CETAK P Q 21CD Q
Calling By Reference untuk array 13.19 Calling By Reference untuk array #include<stdio.h> void CETAK(int *Q); main() { int A[5]={12,7,5,15,17}; int *P; P = A; CETAK(P); } void CETAK(int *Q) { int I; for(I=1;I<=5; I++) printf(“\n%d”, *Q++); B. Tercetak : 12 7 5 15 17 variabel dalam main( ) A 12 7 5 15 17 21CD 21CD P A 12 7 5 15 17 variabel dalam Function CETAK P Q 21CD Q
Calling By Passing value untuk array 13.20 Bandingkan dengan Calling By Passing value untuk array #include<stdio.h> void CETAK(int B[5]); main() { int A[5]={12,7,5,15,17}; CETAK(A); } void CETAK(int B[5]) { int I; for(I=0;I<=4; I++) printf(“\n%d”, B[I]); Tercetak : 12 7 5 15 17 variabel dalam main( ) A 12 7 5 15 17 variabel dalam Function CETAK B 12 7 5 15 17 I