Fungsi Tanpa Nilai Balik (Procedure)

  DISU USUN OLEH H : ADAM MU UKHARIL BA ACHTIAR, S. .Kom.

  

DIK KTAT MATA A KULIAH P PEMROGRA AMAN I

BAB V VII FUNC CTION (F FUNGSI I) IF F Pe endahu uluan Fungs si Dalam pem rogram m an C/ C+ + + program m m erupakan n kum pulan dari fungs si- fungsi

  

baik k yang dide efinisikan la angsung da alam progra am m aupun n yang disim m pan di da alam file

hea der. Sebel um nya j ug a ada sebu uah fungsi yang past i digunakan n di dalam bahasa

C/ C C+ + yait u f ungsi m ain n. Fungsi m m ain ini haru us ada di s et iap progr ram dalam bahasa

C/ C C+ + karena a fungsi inil ah yang ak kan dij alank kan oleh co om piler.

  Fungsi m erupak kan blok dari kod e program m yang dirancang unt uk

m el aksanakan t ugas kh husus. Se buah fung gsi ber isi sej um lah pernyat aan n yang

dike em as dalam m sebuah n nam a. Nant t inya, nam a ini y ang ak an dipan nggil dalam m fungsi

m ai n. Tuj uan p pem buat an n fungsi ada alah sebaga ai berikut :

  1. Mem ud dahk an dala am m engem m bangkan p program .

  2. Menghe em at ukura an program m .

  3. Program m m enj adi lebih t erst r rukt ur.

  4. Dapat m m engurang gi pengulan gan kode.

Yan ng harus d ipaham i, s ebuah fung gsi harus m em punya ai sat u nila ai balikan ( ( r e t u r n

va lu ue ) oleh k karena it u fungsi har rus m em pu unyai t ipe dat a. Ben nt uk um um m fungsi

ada lah sebaga ai berikut : t ip pe _ da t a na a m a _ fu n g si( pa r a m e e t e r ) { / / ba da n _ _ fu n gsi r e t u r n n i la i_ r e t u r n n }

  Di d dalam pem r rogram an C C/ C+ + ada dua m acam m fungsi ya ait u:

  1. User- de efined func t ion Fungsi- - fungsi y an g didefinisi kan sendir i oleh seora ang progra m m er.

  2. Built - in funct ion Fungsi- - fungsi “sia a p pa k a i” yang t elah disediakan n oleh com p piler. DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom. Fungsi j uga bisa dibedak an berdasarkan nilai balik yait u:

Prototipe Fungsi

  

Ada dua cara m enggunakan sebuah fungsi di dalam suat u program yait u:

  1. Menggunakan fungsi t anpa m enyert akan prot ot ipe fungsinya Cara yang pert am a ini bisa digunakan dengan syarat fungsi yang dibuat harus dilet akkan di at as fungsi m ain. Apabila fungsi yang dibuat dilet ak kan set elah fungsi m ain m aka fungsi t ersebut dianggap t idak t erdefinisi. Bent uk um um nya adalah sebagai berikut : t ipe _ da t a n a m a _ fu n gsi( pa r a m e t e r ) { / / ba da n_ fu n gsi r e t u r n nila i_ r e t u r n } m a in ( ) { n a m a _ fu n gsi( pa r a m e t e r ) ; r e t u r n 0 ; }

  2. Menggunakan fungsi dengan m eny ert akan prot ot ipe fungsinya Prot ot ipe fungsi adalah k ode program yang digunakan unt uk m endeklarasikan sebuah fungsi yang dibuat oleh program m er. Dengan m enggunakan cara yang kedua ini m aka seorang program m er dapat m elet akkan fungsi yang dibuat di m anapun. Bent uk um um nya adalah sebagai berikut : DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  / / pr ot ot ipe fu n gsi t ipe _ da t a n a m a _ fu n gsi1 ( pa r a m e t e r ) ; t ipe _ da t a n a m a _ fu n gsi2 ( pa r a m e t e r ) ; t ipe _ da t a n a m a _ fu n gsi1 ( pa r a m e t e r ) { / / ba da n _ fu n gsi r e t u r n n ila i_ r e t u r n } m a in ( ) { na m a _ fu n gsi1 ( pa r a m e t e r ) ; na m a _ fu n gsi2 ( pa r a m e t e r ) ; r e t u r n 0 ; } t ipe _ da t a n a m a _ fu n gsi2 ( pa r a m e t e r ) { / / ba da n _ fu n gsi r e t u r n n ila i_ r e t u r n } Fungsi Tanpa Nilai Balik (Procedure)

Pem rogram an C/ C+ + t ida k m engenal ist ilah pr ose du r sepert i yang

dipelaj ari di algorit m a. Lalu bagaim ana kalau seorang program m er ingin m em buat

sebuah fungsi yang t idak m engem balikan suat u nilai? Fungsi seper t i ini dalam

pem rogram an C/ C+ + dikenal dengan fungsi yang bert ipe void. Berart i dalam hal ini

fungsi t ersebut t idak m em iliki nilai balik. Bent uk um um dari fungsi ini adalah sebagai berikut : DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  / / pr ot ot ipe fu n gsi void n a m a _ fu n gsi( pa r a m e t e r 1 ,pa r a m e t e r 2 ) ; void n a m a _ fu n gsi( pa r a m e t e r 1 ,pa r a m e t e r 2 ) { / / ba da n _ fu n gsi } m a in ( ) { / / Pe m a n ggila n fu n gsi

n a m a _ fun gsi( n ila i_ pa r a m e t e r 1 ,n ila i_ pa r a m e t e r 2 ) ;

r e t ur n 0 ; }

  

Param et er pada fungsi ini bukanlah suat u harga m at i m aksudnya fungsi void ini t idak

harus selalu m enggunakan par am et er . Tet api alangkah lebih baiknya apabila dalam

pem buat an dan pem anggilan sebuah fungsi disert ai dengan param et ernya agar

m em perj elas v ariabel y ang akan diolah di dalam fungsi t ersebut . Sebagai cont oh

buat lah program dengan sint aks sepert i di bawah ini:

  1 /*

  2 Program 7.1

  3 Nama File : Lat-7.1.c 4 Programmer : Adam Mukharil Bachtiar, S.Kom. 5 */

  6 7 #include <stdio.h> 8 #include <stdlib.h>

  9 10 //prototipe fungsi 11 void tampil_nama();

  12 13 void tampil_nama() 14 { 15 int nim; 16 char nama[31],alamat[51]; 17 printf("Masukkan NIM : ");scanf("%i",&nim); 18 printf("Masukkan Nama : ");fflush(stdin); gets(nama);

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  17

  10

  11

  12

  13

  14

  15

  16

  18

  8

  19

  20

  21

  22

  23

  24

  25

  26

  9

  7

  20

  28

  21

  22

  23

  24

  25

  26

  27

  29

  6

  30

  31

  32 printf("Masukkan Alamat : ");fflush(stdin); gets(alamat); printf("\n"); printf("NIM anda = %i\n\a",nim); printf("Nama anda = %s\n\a",nama); printf("Alamat anda = %s\n\n\a",alamat); } int main(int argc, char *argv[]) { tampil_nama(); system("PAUSE"); return 0; }

  1

  2

  3

  4

  5

  27 /* Program 7.1 Nama File : Lat-7.1.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> using namespace std; //prototipe fungsi void tampil_nama(); void tampil_nama() { int nim; char nama[31],alamat[51]; cout<<"Masukkan NIM : ";cin>>nim; cout<<"Masukkan Nama : ";fflush(stdin); cin.get(nama,30); cout<<"Masukkan Alamat : ";fflush(stdin); cin.get(alamat,50); cout<<endl; cout<<"NIM anda = "<<nim<<endl<<"\a"; cout<<"Nama anda = "<<nama<<endl<<"\a"; cout<<"Alamat anda = "<<alamat <<endl<<endl<<"\a"; }

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  7

  17

  16

  15

  14

  13

  12

  11

  10

  9

  8

  6

  28

  5

  4

  3

  2

  1

  Hasil eksekusi:

Gam bar 7.1 Hasil eksekusi program Lat 7.1

  33 int main(int argc, char *argv[]) { tampil_nama(); system("PAUSE"); return EXIT_SUCCESS; }

  32

  31

  30

  29

  18 #include <stdio.h> #include <stdlib.h> //prototipe fungsi void tampil_nama(int nim,char nama[31],char alamat[51]); void tampil_nama(int nim,char nama[31],char alamat[51]) { printf("NIM anda = %i\n\a",nim); printf("Nama anda = %s\n\a",nama); printf("Alamat anda = %s\n\n\a",alamat); } int main(int argc, char *argv[]) { int nim_isi; char nama_isi[31],alamat_isi[51]; printf("Masukkan NIM : ");scanf("%i",&nim_isi);

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  23

  16

  17

  18

  19

  20

  21

  22

  24

  14

  25

  26

  27

  28

  29

  30

  31

  32

  15

  13

  19

  2

  20

  21

  22

  23

  24

  25 printf("Masukkan Nama : ");fflush(stdin); gets(nama_isi); printf("Masukkan Alamat : ");fflush(stdin); gets(alamat_isi); printf("\n"); tampil_nama(nim_isi,nama_isi,alamat_isi); system("PAUSE"); return 0; }

  1

  3

  12

  4

  5

  6

  7

  8

  9

  10

  11

  33 /* Program 7.2 Nama File : Lat-7.2.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> using namespace std; //prototipe fungsi void tampil_nama(int nim,char nama[31],char alamat[51]); void tampil_nama(int nim,char nama[31],char alamat[51]) { cout<<"NIM anda = "<<nim<<endl<<"\a"; cout<<"Nama anda = "<<nama<<endl<<"\a"; cout<<"Alamat anda = "<<alamat <<endl<<endl<<"\a"; } int main(int argc, char *argv[]) { int nim_isi; char nama_isi[31],alamat_isi[51]; cout<<"Masukkan NIM : ";cin>>nim_isi; cout<<"Masukkan Nama : ";fflush(stdin); cin.get(nama_isi,30); cout<<"Masukkan Alamat : ";fflush(stdin); cin.get(alamat_isi,50); cout<<endl; tampil_nama(nim_isi,nama_isi,alamat_isi); system("PAUSE"); return EXIT_SUCCESS; }

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom. Hasil eksekusi:

  11

  19

  18

  17

  16

  15

  14

  13

  12

  10

  

Gam bar 7.2 Hasil eksekusi program Lat 7.2

Cont oh lain unt uk fungsi bert ipe v oid adalah fungsi unt uk m em buat kot ak yang

sint aksnya sebagai berikut :

  9

  8

  7

  6

  5

  4

  3

  2

  1

  20 /* Program 7.3 Nama File : Lat-7.3.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> #include <conio2.h> //prototipe fungsi void Kotak(int X1,int Y1, int X2,int Y2,int Bingkai, int Latar); void Kotak(int X1,int Y1, int X2,int Y2,int Bingkai, int Latar) { int i; textcolor(Bingkai); textbackground(Latar); gotoxy(X1,Y1);printf("Ú");//untuk simbol Ú cari di simbol M.Word dengan Character Code 218 from ASCII(Decimal) lalu copy-kan gotoxy(X1,Y2);printf("%c",192);//ASCII Decimal 192

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  6

  45

  46

  47 gotoxy(X2,Y1);printf("%c",191); gotoxy(X2,Y2);printf("%c",217); for (i=X1+1;i<=X2-1;i++) { gotoxy(i,Y1);printf("%c",196); gotoxy(i,Y2);printf("%c",196); } for(i=Y1+1;i<=Y2-1;i++) { gotoxy(X1,i);printf("%c",179); gotoxy(X2,i);printf("%c",179); } } int main(int argc, char *argv[]) { //warna background textbackground(WHITE); clrscr(); Kotak(1,1,80,24,WHITE,BLUE); Kotak(2,2,15,23,WHITE,RED); textbackground(WHITE); textcolor(BLACK); gotoxy(1,25);system("PAUSE"); return 0; }

  1

  2

  3

  4

  5

  7

  43

  8

  9

  10

  11

  12

  13

  14

  15

  44

  42

  21

  30

  22

  23

  24

  25

  26

  27

  28

  29

  31

  41

  32

  33

  34

  35

  36

  37

  38

  39

  40

  16 /* Program 7.3 Nama File : Lat-7.3.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> #include <conio2.h> using namespace std; //prototipe fungsi void Kotak(int X1,int Y1, int X2,int Y2,int Bingkai, int Latar); void Kotak(int X1,int Y1, int X2,int Y2,int Bingkai,

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  34

  48

  47

  46

  45

  44

  43

  42

  41

  40

  39

  38

  37

  36

  35

  33

  17

  24

  18

  19

  20

  21

  22

  23

  25

  32

  26

  27

  28

  29

  30

  31

  49 int Latar) { int i; textcolor(Bingkai); textbackground(Latar); gotoxy(X1,Y1);cout<<"Ú";//untuk simbol Ú cari di simbol M.Word dengan Character Code 218 from ASCII(Decimal) lalu copy-kan gotoxy(X1,Y2);cout<<"\xC0"; gotoxy(X2,Y1);cout<<"\xBF"; gotoxy(X2,Y2);cout<<"\xD9"; for (i=X1+1;i<=X2-1;i++) { gotoxy(i,Y1);cout<<"\xC4"; gotoxy(i,Y2);cout<<"\xC4"; } for(i=Y1+1;i<=Y2-1;i++) { gotoxy(X1,i);cout<<"\xB3"; gotoxy(X2,i);cout<<"\xB3"; } } int main(int argc, char *argv[]) { //warna background textbackground(WHITE); clrscr(); Kotak(1,1,80,24,WHITE,BLUE); Kotak(2,2,15,23,WHITE,RED); textbackground(WHITE); textcolor(BLACK); gotoxy(1,25);system("PAUSE"); return EXIT_SUCCESS; }

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom. Hasil eksekusi:

  

Gam bar 7.3 Hasil eksekusi program Lat 7.3

Void kot ak m erupakan sebuah fungsi yang ak an m em buat kot ak di lay ar sesuai

dengan koordinat y ang diberikan di bagian param et er. Koordinat t ersebut adalah

koordinat kiri at as ( X1,Y1) dan koordinat t it ik kanan bawah ( X2,Y2) . Selain it u ada

param et er Bingkai yang berfungsi unt uk m enent ukan w arna bingkai sert a param et er

Layar unt uk m enent ukan w arna lat ar belakang kot ak yang dibuat .

  Cat at an Param et er dalam sebuah fungsi m em ang buka sebuah harga m at i akan t et api sangat disarankan penggunaan param et er dalam pem buat an dan pem anggilan fungsi unt uk m em perj elas penggunaan variabel dari sebuah fungsi. Unt uk param et er t et ap ada yang bersifat globa l m aupun lok a l sepert i yang dij elaskan di Bab I I I .

Fungsi dengan Nilai Balik

  Berbeda dengan fungsi yang bert ipe void, fungsi ini berguna unt uk

m elakukan suat u proses yang dapat m engem balikan suat u nilai. Dalam m em buat

fungsi ini kit a perlu unt uk m em ilih t ipe dat a yang akan m enj adi t ipe dat a unt uk nilai balik dari fungsi yang dibuat . Bent uk um um fungsi t ersebut adalah sebagai berikut : DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  / / pr ot ot ipe fu n gsi t ipe _ da t a na m a _ fu n gsi( pa r a m e t e r 1 ,pa r a m e t e r 2 ) ; t ipe _ da t a na m a _ fu n gsi( pa r a m e t e r 1 ,pa r a m e t e r 2 ) { / / ba da n _ fu n gsi r e t ur n n ila i_ ya n g_ dik e m ba lik a n ; } m a in ( ) { / / pe m a n ggila n fu n gsi

n a m a _ fun gsi( n ila i_ pa r a m e t e r 1 ,n ila i_ pa r a m e t e r 2 ) ;

r e t ur n 0 ; } Fungsi yang Mengembalikan Tipe String

  Berikut ini adalah cont oh sebuah fungsi yang m engem balikan dat a bert ipe st ring.

  1 /*

  2 Program 7.4

  3 Nama File : Lat-7.4.c 4 Programmer : Adam Mukharil Bachtiar, S.Kom. 5 */

  6 7 #include <stdio.h> 8 #include <stdlib.h>

  9 10 char *nama();

  11 12 char *nama() 13 { 14 return "Fungsi string dipanggil!"; 15 }

  16 17 int main(int argc, char *argv[]) 18 { 19 printf("%s\n\n",nama());

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  12

  24 /* Program 7.4 Nama File : Lat-7.4.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> using namespace std; char *nama(); char *nama() { return "Fungsi string dipanggil!"; } int main(int argc, char *argv[]) { cout<<nama()<<endl<<endl; system("PAUSE"); return EXIT_SUCCESS; }

  23

  22

  21

  20

  19

  18

  17

  16

  15

  14

  13

  11

  20

  10

  9

  8

  7

  6

  5

  4

  3

  2

  1

  22 system("PAUSE"); return 0; }

  21

  Hasil eksekusi:

Gam bar 7.4 Hasil eksekusi program Lat 7.4

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

Fungsi yang Mengembalikan Tipe Bilangan

  1

  9

  2

  3

  4

  5

  6

  7

  8

  10

  22 /* Program 7.5 Nama File : Lat-7.5.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> float luas_lingkaran(); float luas_lingkaran() { return(3.14*10*10);//jari2 = 10 } int main(int argc, char *argv[]) { printf("%f\n\n",luas_lingkaran()); system("PAUSE"); return 0; }

  11

  12

  13

  14

  15

  16

  17

  18 /* Program 7.5 Nama File : Lat-7.5.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> using namespace std; float luas_lingkaran(); float luas_lingkaran() { return(3.14*10*10);//jari2 = 10 }

  1

  21

  2

  10

  3

  4

  5

  6

  7

  8

  9

  11

  Berikut ini adalah cont oh sebuah fungsi yang m engem balikan dat a bert ipe bilangan.

  12

  13

  14

  15

  16

  17

  18

  19

  20

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  19 int main(int argc, char *argv[]) 20 { 21 cout<<luas_lingkaran()<<endl<<endl; 22 system("PAUSE"); 23 return EXIT_SUCCESS; 24 }

  Hasil eksekusi:

Gam bar 7.5 Hasil eksekusi program Lat 7.5 dalam bahasa C dan C+ +

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

Fungsi Bertipe dengan Parameter

  Kedua buah fungsi sebelum sub bab ini adalah cont oh dari fungsi bert ipe

t anpa param et er. Dalam sub bab ini akan dibuat fungsi bert ipe dengam

m enggunakan param et er t et api sebelum it u ada t iga j enis param et er yang bisa

digunak an di dalam pem buat an fungsi, yait u:

  1. Param et er m asuk an

  2. Param et er keluaran 3. Param et er m asukan/ keluaran.

Parameter Masukan

  2

  16

  Sesuai dengan nam anya, param et er ini digunakan sebagai nilai m asukan

dalam sebuah fungsi. Nilai t ersebut kem udian akan diproses oleh fungsi unt uk

m enghasilkan sebuah nilai balik. Unt uk lebih j elasnya buat lah program dengan

sint aks di bawah ini:

  25 /* Program 7.6 Nama File : Lat-7.6.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> float kecepatan(float s, float t); float kecepatan(float s, float t) { float v; v=s/t; return v; } int main(int argc, char *argv[]) { float s_isi,t_isi,v; printf("Masukkan jarak (KM) : ");scanf("%f",&s_isi); printf("Masukkan waktu (S) : ");scanf("%f",&t_isi); v=kecepatan(s_isi,t_isi); printf("\nKecepatan = %.2f KM/Jam\n\n",v);

  24

  23

  22

  21

  20

  19

  18

  17

  15

  3

  14

  13

  1

  11

  10

  9

  8

  7

  6

  5

  4

  12

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  24

  18

  19

  20

  21

  22

  23

  25

  16

  26

  27

  28

  29

  30

  31

  32

  17

  15

  26

  5

  27

  28 system("PAUSE"); return 0; }

  1

  2

  3

  4

  6

  14

  7

  8

  9

  10

  11

  12

  13

  33 /* Program 7.6 Nama File : Lat-7.6.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> #include <iomanip> using namespace std; float kecepatan(float s, float t); float kecepatan(float s, float t) { float v; v=s/t; return v; } int main(int argc, char *argv[]) { float s_isi,t_isi,v; cout<<"Masukkan jarak (KM) : ";cin>>s_isi; cout<<"Masukkan waktu (S) : ";cin>>t_isi; v=kecepatan(s_isi,t_isi); cout<<endl; cout<<setiosflags(ios::fixed); cout<<"Kecepatan = "<<setprecision(2) <<v<<" KM/Jam"<<endl<<endl; system("PAUSE"); return 0; }

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom. Hasil eksekusi:

  

Gam bar 7.6 Hasil eksekusi program Lat 7.6

Variabel s dan v ariabel t pada fungsi kecepat an ber fungsi sebagai param et er

m asuk an.

Parameter Keluaran

  Param et er keluaran adalah param et er yang berfungsi unt uk m enam pung nilai

yang dihasilkan dari proses di dalam fungsi. Param et er ini harus dilew at kan

berdasarkan alam at at au referensinya buk an nilainy a. Param et er keluaran biasanya

digunakan unt uk fungsi bert ipe void. Unt uk lebih j elasnya buat lah program dengan

sint aks di bawah ini:

  1 /*

  2 Program 7.7

  3 Nama File : Lat-7.7.c 4 Programmer : Adam Mukharil Bachtiar, S.Kom. 5 */

  6 7 #include <stdio.h> 8 #include <stdlib.h>

  9 10 void jumlah_deret(int batas, int *jumlah);

  11

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  16

  7

  8

  9

  10

  11

  12

  13

  14

  15

  17

  5

  18

  19

  20

  21

  22

  23

  24

  25

  26

  6

  4

  12

  22

  13

  14

  15

  16

  17

  18

  19

  20

  21

  23

  3

  24

  25

  26

  27

  28

  29

  30 void jumlah_deret(int batas,int *jumlah) { int x; *jumlah=0; for(x=1;x<=batas;x++) { *jumlah=*jumlah+x; } } int main(int argc, char *argv[]) { int batas,jumlah; printf("Masukkan batas deret : ");scanf("%i",&batas); jumlah_deret(batas,&jumlah); printf("%i\n\n",jumlah); system("PAUSE"); return 0; }

  1

  2

  27 /* Program 7.7 Nama File : Lat-7.7.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> using namespace std; void jumlah_deret(int batas, int *jumlah); void jumlah_deret(int batas,int *jumlah) { int x; *jumlah=0; for(x=1;x<=batas;x++) { *jumlah=*jumlah+x; } } int main(int argc, char *argv[]) { int batas,jumlah; cout<<"Masukkan batas deret : ";cin>>batas;

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  28 jumlah_deret(batas,&jumlah); 29 cout<<endl; 30 cout<<"Jumlah Deret = "<<jumlah <<endl<<endl; 31 system("PAUSE"); 32 return EXIT_SUCCESS; 33 }

  Hasil eksekusi:

Gam bar 7.7 Hasil eksekusi program Lat 7.7

Param et er j um lah yang ada di dalam fungsi j um lah_deret adalah param et er

keluar an. Apabila lebih diperhat ikan lagi ket ik a pem anggilan fungsi j um lah_deret ,

param et er yang diisikan unt uk posisi int * j um lah berisikan variabel yang diaw ali

dengan t anda & . Hal it u digunakan unt uk m engakses alam at dari suat u var iabel

yang m enyim pan nilai( akan dipelaj ari lebih lanj ut di Bab Point e r ) .

Parameter Masukan/Keluaran

  Param et er ini bisa digunakan sebagai param et er m asuk an at aupun param et er

keluar an. Art inya param et er ini akan digunak an sebagai m asukan unt uk proses di

dalam fungsi dan set elah proses t ersebut selesai hasilnya akan disim pan kem bali ke

dalam param et er t ersebut sebagai nilai keluaran. Unt uk lebih j elasnya buat pr ogram dengan sint aks di baw ah ini: DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  1

  10

  2

  3

  4

  5

  6

  7

  8

  9

  11

  25 /* Program 7.8 Nama File : Lat-7.8.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> #include <math.h> void pangkat_dua(float *bil); void pangkat_dua(float *bil) { *bil=pow(*bil,2); } int main(int argc, char *argv[]) { float bilangan; printf("Masukkan bilangan : ");scanf("%f",&bilangan); pangkat_dua(&bilangan); printf("pangkat dua = %.0f\n\n",bilangan); system("PAUSE"); return 0; }

  12

  13

  14

  15

  16

  17

  18

  19

  20

  1

  24

  2

  12

  3

  4

  5

  6

  7

  8

  9

  10

  11

  13

  23

  14

  15

  16

  17

  18

  19

  20

  21

  22

  21 /* Program 7.8 Nama File : Lat-7.8.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> #include <math.h> #include <iomanip> using namespace std; void pangkat_dua(float *bil); void pangkat_dua(float *bil) { *bil=pow(*bil,2); } int main(int argc, char *argv[])

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  22 { 23 float bilangan; 24 cout<<"Masukkan bilangan : ";cin>>bilangan; 25 pangkat_dua(&bilangan); 26 cout<<setiosflags(ios::fixed); 27 cout<<"pangkat dua = "<<setprecision(0) <<bilangan<<endl<<endl; 28 system("PAUSE"); 29 return EXIT_SUCCESS; 30 }

  Hasil eksekusi:

Gam bar 7.8 Hasil eksekusi program Lat 7.8

Parameter Formal dan Aktual

  Jenis- j enis Param et er t erbagi m enj adi dua yait u:

  1. Param et er Form al Param et er yang dideklarasikan pada saat pem buat an sebuah prot ot ipe fungsi at au fungsi. Param et er inilah yang akan diisi dengan nilai, variabel, at au alam at ket ika pem anggilan fungsinya.

  Penam aan v ariabel unt uk param et er ini bisa sam a dengan nam a variabel DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom. param et er form alny a at au boleh j uga berbeda dengan nam a variabel param et er form alnya.

  Unt uk lebih j elasny a buat pr ogram dengan sint ak s di baw ah ini:

  5

  23

  24

  25 /* Program 7.9 Nama File : Lat-7.9.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> #include <math.h> float akar_pangkat(int bil); float akar_pangkat(int bil)//bil di sini parameter formal { return (sqrt(bil)); } int main(int argc, char *argv[]) { int bil; printf("Masukkan bilangan : ");scanf("%i",&bil); printf("Akar pangkat dua = %.2f\n\n" ,akar_pangkat(bil));//bil di sini parameter aktual system("PAUSE"); return 0; }

  1

  2

  3

  4

  6

  21

  7

  8

  9

  10

  11

  12

  13

  22

  20

  1

  9

  2

  3

  4

  5

  6

  7

  8

  10

  19

  11

  12

  13

  14

  15

  16

  17

  18

  14 /* Program 7.9 Nama File : Lat-7.9.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> #include <math.h> #include <iomanip> using namespace std; float akar_pangkat(int bil);

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  24

  1. Var iabel bil yang ada di pr ot ot ipe fungsi dan pem buat an fungsi akar akar_pangkat m erupakan param et er form al.

  Hasil eksekusi:

Gam bar 7.9 Hasil eksekusi program Lat 7.9

Ket erangan:

  29 float akar_pangkat(int bil)//bil di sini parameter formal { return (sqrt(bil)); } int main(int argc, char *argv[]) { int bil; cout<<"Masukkan bilangan : ";cin>>bil; cout<<setiosflags(ios::fixed); cout<<"Akar pangkat dua = "<<setprecision(2) <<akar_pangkat(bil)<<endl<<endl; //bil di sini parameter aktual system("PAUSE"); return EXIT_SUCCESS; }

  28

  27

  26

  25

  23

  15

  22

  21

  20

  19

  18

  17

  16

  2. Var iabel bil y ang ada di fungsi m ain ket ika pem anggilan fungsi akar_pangkat m erupakan param et er ak t ual. DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

Melewatkan Parameter Di Fungsi

  14

  26 /* Program 7.10 Nama File : Lat-7.10.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> void perkalian_lima(int bil); int main(int argc, char *argv[]) { int bil_isi; printf("Masukkan bilangan : "); scanf("%i",&bil_isi); perkalian_lima(bil_isi); printf("Bilangan input : %i\n\n",bil_isi); system("PAUSE"); return 0; } void perkalian_lima(int bil) { bil=bil*5; printf("Hasil perkalian lima : %i\n",bil); }

  25

  24

  23

  22

  21

  20

  19

  18

  17

  16

  15

  Param et er bisa dilew at kan di dalam sebuah fungsi dengan dua cara y ait u:

  1. Ber dasarkan nilai ( pass by value) Nilai yang dihasilkan oleh suat u fungsi t idak ak an m em pengaruhi nilai di dalam program ( di luar fungsi t ersebut ) . Hal ini disebabk an k arena dalam pem anggilan fungsi, com piler hanya m em buat salinan dari nilai yang ada di param et er akt ual ke param et er form al. Unt uk lebih j elasny a buat pr ogram dengan sint aks di bawah ini.

  12

  11

  10

  9

  8

  7

  6

  5

  4

  3

  2

  1

  13

  DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.

  16

  28 /* Program 7.10 Nama File : Lat-7.10.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> using namespace std; void perkalian_lima(int bil); int main(int argc, char *argv[]) { int bil_isi; cout<<"Masukkan bilangan : ";cin>>bil_isi; perkalian_lima(bil_isi); cout<<"Bilangan input : "<<bil_isi <<endl<<endl; system("PAUSE"); return EXIT_SUCCESS; } void perkalian_lima(int bil) { bil=bil*5; cout<<"Hasil perkalian lima : "<<bil<<endl; }

  27

  26

  25

  24