Tugas 3 Prosedur Dan Fungsi

28
TUGAS 3 PROSEDUR DAN FUNGSI TUJUAN : 1. Kita mengenal dan mengetahui berbagai proses tentang fungsi dalam bahasa C++. 2. Kita dapat mengenal dan mengetahui teknik pembuatan prosedur dan makro. TEORI DASAR PROSEDURE DAN FUNGSI MANFAAT DAN FUNGSI Program besar dapat dipisah menjadi program- program kecil Dapat dikerjakan oleh beberapa orang Kemudahan dalam pembetulan jika terjadi kesalahan- kesalahn dan kesalahan dapat dialokasi dalam suatu modul tertentu saja Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa mengganngu program keseluruhan Mempermudah dokumentasi Reusability : utau fungsi dapat digunakan kembali oleh program atau fungsi lain SIFAT – SIFAT MODUL ATAU FUNGSI YANG BAIK NOVIATUS SOLEKHAH TT /1-C (121130020) Page 1

Transcript of Tugas 3 Prosedur Dan Fungsi

Page 1: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

TUJUAN :

1. Kita mengenal dan mengetahui berbagai proses tentang fungsi dalam bahasa C++.

2. Kita dapat mengenal dan mengetahui teknik pembuatan prosedur dan makro.

TEORI DASAR

PROSEDURE DAN FUNGSI

MANFAAT DAN FUNGSI

Program besar dapat dipisah menjadi program-program kecil

Dapat dikerjakan oleh beberapa orang

Kemudahan dalam pembetulan jika terjadi kesalahan-kesalahn dan

kesalahan dapat dialokasi dalam suatu modul tertentu saja

Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa

mengganngu program keseluruhan

Mempermudah dokumentasi

Reusability : utau fungsi dapat digunakan kembali oleh program atau

fungsi lain

SIFAT – SIFAT MODUL ATAU FUNGSI YANG BAIK

Nilai fan tinggi artinya semakin sering suatu modul di panggil oleh

pengguna semakin tinggi nilai fan-in

Fan- out rendah artinya semakin spesifik fungsi suatu modul akan

semakin rendah nilai fan-out

Self-contained tinngi artinya kemampuan untuk memenuhi kebutuhan

sendiri

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 1

Page 2: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

KATEGORI FUNTION DALAM C

Standard library function

Ex: clrscr ()

Programmer defined function

CONTOH FUNGSI

#include<stdio.h>

#include<conio.h>

void main ()

{ int A,B,T;

A=5; B=2;T=0;

T= HITUNG(A,B);

printf("\n %d",T);

getch ();

}

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 2

int HITUNG (int A,int B)

{ int T;

A=A*2;

B=B*2;

T=A+B;

return(T);

}

program utama ditandai dengan

main ()

Ada intruksi untuk memanggil fungsi lain HITUNG (A,B);

Bagian fungsi yang dibuat , fungsi bertipe int dapat diletakkan sebelum / sesudah program utama

Page 3: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

STRUKTUR FUNCTION

1. Deklarasi fungsi (function prototype declaration)

Terdiri atas judul fungsi dan tipe data yang akan dikembalikan

dapat berupa tipe data tertentu atau bersifat void tanpa adanya kode

implementasi function tersebut.

2. Tubuh function (definisi function atau function definition)

Terdiri atas functin prototype yang disertai dengan kode

implementasi dari function tersebut

Berisikan statemment yang akan melakukan tugas yang diberikan

oleh fungsi tersebut

Tubuh function dapat berupa segala perintah yang dikenal oleh C

pada dasarnya tubuh fungsi sama dengan program seperti biasa.

Return adalah keyword pengembalian nilai dari fungsi saat keluar

fungsi

Return wajib jika fungsi tersebut mengembalikan nilai berupa type

data tertentu sedangkan return tidak wajib ada jika fungsi tersebut

berupa void.

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 3

Page 4: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

BENTUK UMUM FUNCTION DEFINITION

Tipe data/void main_fungsi ([arguman 1,

argument 2,..............])//function prototype

{ //bagian ini merupakan tubuh fungsi ;

[variabel_lokal; ]

[statement_1; ]

[statement_2; ]

............

[statement_3 ; ]

[return (variabel) ];

}

BENTUK UMUM FUNCTION PROTOTYPE

Tipe_data/void nama_fungsi (arguman 1 ,arguman 2)

Tipe_data dapat berupa segala tipe data yang dikenal C, namun tipe data

dapat juga juga tidak ada dan di gantikan dengan void yang berarti fungsi

tersebut tidak mengembalikan nilai apapun.

Nama fungsi adalah nama yang baik

Argumen dapat dipisahkan dengan menggunakan tanda koma.

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 4

Page 5: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

CONTOH FUNGSI

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 5

#include<stdio.h>

#include<conio.h>

void CETAK();

void main()

{

CETAK ();

getch();}

void CETAK ()

{

printf("Jakarta");

}

Fungsi CETAK di deklarasikan terlebih dahulu sebelum main ()perhatikan pakai tanda “;” (titik koma ) kalau tidak pakai tanda “:” dianggap mendefinisikan fungsi.

Intruksi mengCALL fungsi CETAK

Tulisan ini disebut men -DEFINISIKAN fungsi

Fungsi yang dibuat sendiri

Nama : CETAK

Tipe : void (artinya tanpa tipe )

Dalam fungsi ini ada intruksi untuk mencetak perkataan “jakarta”

Page 6: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

FUNGSI YANG NON VOID

Fungsi yang void sering disebut juga procedure

Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai

keluaran yang didapat dari hasil proses fungsi tersebut

Ciri-ciri :

Tidak adanya keyword return

Tidak adanya tipe data di dalam deklarasi fungsi

Menggunakan keyword void

Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu

sehingga dapat langsung ditampilkan hasilnya.

Contoh : sin () , sart ()

FUNCTION YANG VOID

Fungsi yang void disebut juga prosedure

Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai

keluaran yang didapat dari hasil proses fungsi tersebut.

Ciri-ciri :

o Tidak adanya keyword return

o Tidak adnya tipe data di dalam deklrasi fungsi

o Menggunakan keyword void

o Tidak dapa langsung ditampilkan hasilnya

Contoh :

o Clrscr ()

o Print ()

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 6

Page 7: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

CONTOH FUNCTION VOID

void main ()

{ int a,b ,t;

a=5; b=2;

t=jumlah (a,b);

printf("%d",t);

}

o Keyword void juga digunakan jika suatu function tidak mengandung suatu

parameter apapun.

o Contoh penggunaan parameter void.

Void printf_error (void)

{

Printf (“error : unexpected error accured ! “);

}

CONTOH FUNCTION YANG NON VOID

int jumlah (int x,int y)

{

int H;

H=x+y;

return(H);

}

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 7

Page 8: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

CONTOH LAIN

# include <stdio.h>

# include <conio.h>

int faktorial (int N) ; /*prortype fungsi factorial

void main ()

{ int H,fak ;

printf ("berapa factorial :"); scantf ("%d" , &N);

fak = faktorial (N);

printf ("%d faktorial = %d \n",N,fak );

getch ();

}

/*----- berfungsi untuk menghitung nilai N faktorial-----*/

int faktorial (int N) /*definisi fungsi */

( int F

int F = 1 ;

if (N<=0 , return (0);

for (f=2 ;1<=N/1++) f+= 1;

return (f)

}

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 8

Page 9: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

SCOPE VARIABLE

Sebuah variable di dalam sebuah program memiliki skop rangkain variable

tertentu

Skop variable terdiri atas :

Variabel lokal

Variabel global

Variabel lokal

Variabel yang hanya dikenai di daerah yang lokal saja misalnya

didalam sebuah fungsi atau prosedure tertentu saja dan tidak

dikenal didaerah lainnya

Harus dideklarasikan didalam blok yang bersangkutan

Variabel lokal akan dihapus dari memory bila proses sudah

meninngalkan blok statement letak variabel lokalnya .

CONTOH

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 9

Page 10: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

CONTOH

#include<stdio.h>

#include<conio.h>

int TAMBAH (int A,int B);

int main ()

{

int hasil;

hasil = TAMBAH(2,3);

printf("hasil= %d", hasil);

getch ();

}

int TAMBAH(int A, int B)

{ int c;

c=A+B;

{float c;

c=100;

}

return(c);

}

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 10

Page 11: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

Variabel global

Variabel yang dikenal diseluruh daerah di dalam program dan

diluar fungsi.

Di deklarasikan diluar suatu blok statement atau diluar fungsi-

fungsi yang menggunakannya.

CONTOH SKOP VARIABEL 1

#include<stdio.h>

#include<conio.h>

int d=3,e=1;

void coba_lokal(int a,int b)

{ int c=0;

int d=10;

int e;

e =(a+b)*(c+d);

printf("lokal a= %d\n",a);

printf("lokal b= %d\n",b);

printf("lokal c= %d\n",c);

printf("lokal d= %d\n",d);

printf("lokal e= %d\n",e);

}

void main ()

{ int a=2;

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 11

Page 12: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

int b;

b=4;

int c=0;

printf("global a= %d\n",a);

printf("global b= %d\n",b);

coba_lokal (a,b);

printf("main c= %d\n",c);

printf("global d= %d\n",d);

printf("global e= %d\n",e);

getch();

}

HASIL EKSEKUSI

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 12

Jika dalam sebuah fungsi terdapat variabel a dan didalam program utama juga terdapat variabel a juga (nama sama ) maka variabel yang dipakai tergantung dari skop pengaksesnya.

Jika yang mengakses adalah fungsi , maka variabel yang dipakai adalah variabel lokal jiak yang mengakses adalah program utama , maka yang dipakai adalah variabel dalam program utama.

Page 13: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

CONTOH SKOP VARIABEL 2

#include<stdio.h>

#include<conio.h>

int c=4;

int m=3;

void lokal ()

{ int a =3;

int b=a+2;

printf("lokal a= %d\n",a);

printf("lokal b= %d\n",b);

printf("global c= %d\n",c);

}

void main ()

{ int a=1;

int b=2;

int c=3;

lokal();

printf("main a= %d \n",a);

printf("main b= %d \n",b);

printf("main c= %d \n",c);

printf("global m= %d \n",m);

getch ();

}

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 13

Page 14: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

HASIL EKSEKUSI

Variabel static

Adalah variabel yang memiliki sifat statis , artinya nilai dari variabel tersebut

akan tetap diingat oleh program . sehingga dapat digunakan untuk menyimpan

state pada saat pemanggilan nilai variabel tersebut berikutnya . nilai variabel statis

akan bernilai sama dengan nilai terakhirnya.

CONTOH VARIABEL STATIC

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 14

Variabel global akan membuat fungsi menjadi tidak berfungsi sebagaimana mestinya kurang robust dan sulit untuk digunakan kembali.

Page 15: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

#include<stdio.h>

#include<conio.h>

void coba_static(int a)

{ static int b=3;

int c=1;

printf("b awal : %d\n",b);

b+=a;

printf ("b akhir: %d\n",b);

printf ("c awal : %d\n",c);

c+=a;

printf("c akhir: %d\n",c);

ARGUMENT ATAU PARAMETER FUNCTION

Sebuah fungsi bisa memiliki argumen-argumen yang bersifat

opsional

Argumen berfungsi sebagai parameter masukan yang berupa

variabel-variabel bagi fungsi tersebut (bersifat lokal )

Argumen harus berupa data tertentu

Terdapat 2 jenis parameter

o Parameter formal : parameter yang ditulis pada

deklarasi fungsi

o Parameter aktual : parameter yang dimasukkan ke

dalam program pemanggil fungsi tersebut . dapat

berupa variabel / langsung berupa nilai tertentu sesuai

dengan tipe data yang dideklarasikan untuk masing-

masing parameter fungsi

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 15

}

void main()

{ int a=2;

coba_static(a);

a=3;

coba_static(a);

getch ();

}

Page 16: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

CONTOH

HAL- HAL PENTING

o Nilai variabel dalam fungsi tidak dapat mengubah nilai dalam

function main.

o Sebuah fungsi dapat memanggil fungsi lain.

o Dua/lebih fungsi dapat saling memanggil

o Secara default sifat pemanggilan fungsi dalam C bersifat calling by

value . artinya :

Yang dikirimkan ke fungsi adalah datanya bukan alamat

memorinya.

Fungsi menerima data ini dan akan menyimpannya dalam

alamat memorinya yang berbeda dari alamat aslinya.

Kerena itulah pengubahan nilai di fungsi tidak akan

mengakibatkan perubahan pada nilai aslinya.

Karena itulah pengubahan nilai dari fungsi tidak akan

mengakibatkan perubahan pada nilai aslinya.

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 16

Page 17: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

Pengiriman by value adalah pengiriman searah dari

program yang memanggil fungsi ke fungsi yang dipanggil.

FLOWCHART DAN SKRIPT

Buatlah flowchart dan program untuk menghitung luas dan volume suatu bidang

dengan masukkan panjang sisi / jari-jari , menggunakan menu pilihan dan

prosedure

Contoh tampilan :

1.) Luas lingkaran

2.) Volume bola

3.) Luas bujur sangkar

4.) Volume kubus

5.) Luas kulit bola

6.) Luas keliling kubus

7.) Kembali ke awal

8.) Exit

Pilihan anda : 1

Luas lingkaran : 314

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 17

Page 18: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 18

#include <iostream.h>

#include <conio.h>

void main()

{

top:

int pilih;

float LLingkaran, VBola, LBujurSangkar, VKubus, LKBola, KKubus, LPKubus, n;

char ulang;

do

{

clrscr();

cout<<"Masukkan Jari-jari/Panjang Sisi : ";

cin>>n;

cout<<"Menu Utama"<<endl;

cout<<"1. Menghitung Luas Lingkaran"<<endl;

cout<<"2. Menghitung Volume Bola"<<endl;

cout<<"3. Menghitung Luas Bujur Sangkar"<<endl;

cout<<"4. Menghitung Volume Kubus"<<endl;

cout<<"5. Menghitung Luas Kulit Bola"<<endl;

cout<<"6. Menghitung Luas Permukaan Kubus dan Keliling Kubus"<<endl;

cout<<"7. Kembali ke Awal"<<endl;

cout<<"8. Exit"<<endl;

cout<<endl<<endl;

cout<<"Pilihan anda : ";cin>>pilih;

switch (pilih)

{

case 1 :

LLingkaran = 3.14*n*n;

cout<<"Luas Lingkaran adalah : "<<LLingkaran<<endl;

break;

case 2 :

VBola = 3.14*n*n*n;

cout<<"Volume Bola adalah : "<<VBola<<endl;

break;

case 3 :

LBujurSangkar = n*n;

cout<<"Luas Bujur Sangkar adalah : "<<LBujurSangkar<<endl;

break;

case 4 :

VKubus = n*n*n;

cout<<"Volume Kubus adalah : "<<VKubus<<endl;

Page 19: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 19

break;

case 5 :

LKBola = 0.667*3.14*n*n;

cout<<"Luas Kulit Bola adalah : "<<LKBola<<endl;

break;

case 6 :

LPKubus = 6*n*n;

KKubus = 12*n;

cout<<"Luas Permukaan Kubus adalah : "<<LPKubus<<endl;

cout<<"Keliling Kubus adalah : "<<KKubus<<endl;

break;

case 7 :

goto top;

break;

case 8 :

cout<<"Press Enter to Exit... "<<endl;

break;

default:

cout<<"Pilihan tidak tersedia"<<endl;

break;

}

cout<<"Kembali ke Menu Utama (y/n)?";cin>>ulang;

}while(ulang == 'y');

getch();

}

Page 20: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

FLOWCHART

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 20

Page 21: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

HASIL DAN PEMBAHASAN

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 21

Page 22: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

Potongan program diatas merupakan simulasi atau hasil eksekusi dari skript

diatas. Program ini merupakan contoh dari prosedur dan fungsi , kita ketahui

bahwa Fungsi merupakan bagian dari kode program yang terpisah dari program

utama. Pada program tersebut didalamnya terdapat beberapa program yaitu luas

lingkaran , volume bola , luas bujur sangkar , volume kubus , luas kulit bola , dan

luas keliling kubus. Seperti pada teori , ciri dari prosedur salah satunya adalah

program besar dapat dipisah menjadi program-progrsm kecil . program diatas

adalah kumpulan dari beberapa program yang dijadikan satu dan sebenarnya

program tersebut juga dapat dipisahkan kembali .

Cara kerja program tersebut adalah kita memasukan bilangan pada kolom

“masukkan jari-jari / panjang sisi : “. Misal masukkan bilangan 3 . enter dan akan

keluar beberapa pilihan yaitu :

1.) Luas lingkaran

2.) Volume bola

3.) Luas bujur sangkar

4.) Volume kubus

5.) Luas kulit bola

6.) Luas keliling kubus

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 22

Page 23: Tugas 3 Prosedur Dan Fungsi

TUGAS 3 PROSEDUR DAN FUNGSI

7.) Kembali ke awal

8.) Exit

Misalnya masukkan angka 1 pada perintah “ pilihan anda :“ maka yang terjadi

program akan menjalankan keinginan anda sehinnga yang keluar speperti pada

hasil eksekusi diatas yaitu “luas lingkaran adalah 28,26”. Setelah itu anda

diharuskan memilih untuk meneruskan program ataukah menutup program

dengan memasukkan “y/n” seperti yang ada dibawah ini :

KESIMPULAN

Berdasarkan hasil eksekusi program diatas kita dapat mengetahui bahwa

prosedur dan fungsi mempunyai banyak kelebihan yaitu program besar dapat

dipisah menjadi satu , dapat dikerjakan oleh beberapa orang , kemudahan dalam

pembetulan jika terjadi kesalahan , modifikasi program dapat dilakukan pada

suatu modal tertentu saja tanpa mengganggu program keseluruhan.

NOVIATUS SOLEKHAH TT /1-C (121130020)Page 23