Subscribe
Add to Technorati Favourites
Add to del.icio.us

jumlah pengunjung hari ini

Rabu, Januari 14, 2009

FUNGSI DI TURBO C++

FUNGSI

Function adalah sebuah blok di dalam Turbo C++

Bentuk umum :

tipe nama_function (deklarasi parameter)

{

pernyataan;

pernyataan;

{

tipe

Tipe nilai yang dihasilkan oleh function. Jika tidak dinyatakan, hasil function dianggap bilangan bulat (int)

deklarasi parameter

Daftar tipe dan nama variabel yang akan menerima nilai pada saat function tersebut dipanggil. Setiap parameter dipisahkan oleh tanda koma. Jika function tidak mempunyai parameter daftar ini akan kosong. Jadi hanya tanda kurung saja.

Deklarasi parameter agak berebda dengan deklarasi variabel. Pada deklarasi variabel, Anda dapat menyatakan sebuah tipe untuk beberapa variabel yang tipenya sama. Contoh :

int a,b,c;

Tetapi pada deklarasi parameter Anda harus menyatakan setiap tipe dari parameter.

Bentuk umum :

f (tipe nama_var1, tipe nama_var2, …, tipe nama_varn);

Contoh : f (int a, int b, int c);

Pernyataan Return

Pernyataan return menyatakan dua hal :

1. Return mengakhiri jalannya function dan kembali ke program pemanggil

2. Menghasilkan sebuah nilai

Ada dua cara untuk kembali ke program pemanggil :

1. Pada saat pernyataan terakhir dari function dijumpai (dijumpai tanda akhir function “}” )

Contoh :

main()

{

clrscr();

hai();

}

hai()

{

printf("Hai.. Apa kabar..?");

getch();

}

2. Dengan menggunakan pernyataan return. Pernyataan return juga dapat dipakai tanpa menghasilkan sebuah nilai.

Contoh :

main()

{

clrscr();

hai();

}

hai()

{

printf("Hai.. Apa kabar..?");

return;

printf("\nBaik-baik saja kannn..?");

getch();

}

Pernyataan return pada program di atas akan mengakhiri function hai() sehingga program di bawahnya tidak dikerjakan

Function hai() pada program di atas hanya dapat mencetak Hai.. Apa kabar..?. Jika kita menginginkan function tersebut dapat mencetak pesan yang berlainan, kita harus mengubahnya menjadi seperti berikut :

main()

{

clrscr();

hai("Haloo...!");

hai("Siapa nama kamu..?");

}

hai(char pesan[20])

{

printf("%s \n",pesan);

getch();

}

Pada contoh di atas pemanggilan function hai() menggunakan argumen, yaitu Haloo...! dan Siapa nama kamu..?. Di dalam function hai() harus ada variabel yang menerima argumen tersebut. Dalam hal ini adalah pesan (dinamakan parameter). Sifat-sifat parameter sama seperti variabel lokal yang ada di dalam function. Tipe parameter harus sama dengan tipe argumen.

Untuk menghasilkan sebuah nilai, Anda harus menyatakan return beserta nilai yang dihasilkannya.

Contoh :

main()

{

int a,b,c;

clrscr();

printf("Masukkan nilai A : "); scanf("%d",&a);

printf("Masukkan nilai B : "); scanf("%d",&b);

c=jumlah(a,b);

printf("\n\nJumlah kedua bilangan tersebut adalah %4d",c);

getch();

}

jumlah(int x, int y)

{

return x+y;

}

Function jumlah() pada program di atas mempunyai 2 parameter yaitu :

· jumlah(a,b)

· jumlah(int x, int y)

Isi variabel a dan b dikirimkan ke function jumlah() dan diterima oleh x dan y. Namanya tidak harus sama, tetapi tipenya harus sama. Dalam hal ini semua bertipe int.

Perhatikan program :

c=jumlah(a,b)

return x+y

Function jumlah() menghasilkan x+y dan hasilnya dimasukkan ke variabel c. Yang penting, variabel penerima dan hasil function harus bertipe sama. Jika tipe tidak dinyatakan secara eksplisit, function tersebut menghasilkan nilai yang bertipe int.

Misalnya kita akan mengubah hasil function menjadi float, maka ada dua cara yang harus diperhatikan :

1. Function harus diberi tipe secara eksplisit

2. Sebelum function dipanggil untuk pertama kali, compiler harus diberitahu tipe function tersebut.

Cara mendeklarasikan function dengan suatu tipe, sama dengan deklarasi variabel, yaitu tipe mendahului nama function.

Contoh :

float jumlah(float x, float y);

main()

{

float a,b,c;

clrscr();

printf("Masukkan nilai A : "); scanf("%f",&a);

printf("Masukkan nilai B : "); scanf("%f",&b);

c=jumlah(a,b);

printf("\n\nJumlah kedua bilangan tersebut adalah %4.1f",c);

getch();

}

float jumlah(float x, float y)

{

return x+y;

}

PROTOTIPE FUNCTION

Prototipe function menyatakan 2 hal :

1. Tipe dari nilai yang dihasilkan function, agar compiler dapat menghasilkan kode yang benar untuk tipe nilai yang dihasilkan

2. Tipe dan banyaknya argumen yang dipakai oleh function.

Bentuk umum :

Tipe nama_function(daftar parameter)

Biasanya prototipe diletakkan di awal program, dan harus ditemukan sebelum function tersebut dipanggil untuk pertama kalinya. Perhatikan baris 1 pada program di atas. Pernyataan tersebut adalah prototipe function. Pemanggilan function jumlah() ada di program c=jumlah(a,b) , jadi prototipe berada sebelum pemanggilannya.

FUNCTION DENGAN TIPE VOID

Function yang tidak menghasilkan nilai dapat dideklarasikan sebagai tipe void. Hal ini dapat mencegah kesalahan yang tidak disengaja.

Contoh :

void hai();

main()

{

clrscr();

hai();

getch();

}

void hai()

{

printf("Hai... Apa kabar?");

}

Jika Anda tidak menyatakan tipe void, Turbo C++ menganggap function tersebut menghasilkan nilai bilangan bulat.

VARIABEL LOKAL

Variabel yang dideklarasikan di dalam function dinamakan variabel lokal. Di dalam Turbo C++, sebuah variabel bersifat lokal terhadap sebuah blok, jadi lebih sempit dibandingkan dengan sebuah function. Sebenarnya sebuah function juga merupakan sebuah blok dan blok tersebut dapat memiliki blok yang lebih kecil lagi.

Variabel lokal hanya dapat dipakai di dalam blok dimana variabel tersebut di deklarasikan. Sebuah blok dimulai dengan tanda { dan diakhiri dengan tanda }. Variabel lokal dibuat pada saat blok tempat deklarasi variabel tersebut dijalankan. Jika blok tersebut sudah selesai dikerjakan, variabel lokal akan dibuang.

Contoh :

#include

float akar (float x);

main()

{

float a,b;

clrscr();

printf("Masukkan sebuah bilangan : "); scanf("%f",&a);

b=akar(a);

printf("\n\nAkar dari bilangan tersebut adalah %6.2f",b);

getch();

}

float akar(float x)

{

float y;

if (x>=0)

{

y=sqrt(x);

return y;

}

else return 0;

}

VARIABEL GLOBAL

Variabel global dikenal di setiap bagian program. Variabel global akan menyimpan nilai yang ada di dalamnya, selama program dijalankan. Variabel global di deklarasikan di luar semua function.

Contoh :

#include

int a;

void f1(void);

main()

{

clrscr();

printf("Masukkan nilai A adalah "); scanf("%d",&a);

f1();

printf("\n\nNilai A sesudah pemanggilan function adalah %3d",a);

getch();

}

void f1(void)

{

printf("\n\nNilai A di dalam function sebelum dijumlah adalah %3d",a);

a+=5;

printf("\n\nNilai A di dalam function sesudah dijumlah adalah %3d",a);

}

perhatikan baris 2, variabel a di deklarasikan sebelum function main(). Sebenarnya variabel global boleh diletakkan disetiap tempat, sebelum pemakainnya yang pertama. Variabel global sebaiknya diletakkan di awal program.

REKURSI

Fungsi dalam Bahasa C dapat dipakai secara rekursi, dalam artian suatu fungsi dapat memanggil dirinya sendiri. Rekursi jarang dipakai, diantaranya disebabkan :

· Membuat fungsi sulit untuk dipahami

· Hanya cocok untuk persoalan tertentu saja

· Memerlukan stack dengan ukuran yang lebih besar.

Contoh :

#include

int faktorial(int);

main()

{

clrscr();

int x;

puts("Mencari Nilai Faktorial");

printf("Masukkan sebuah bilangan bulat positif : ");

scanf("%d",&x);

printf("Nilai faktorial dari %d = %d\n", x, faktorial (x));

getch();

}

int faktorial(int m)

{

if (m==1)

return(1);

else

return(m*faktorial(m-1));

}
LATIHAN

1. . Buat program untuk menghitung gaji harian PT. JAYA dengan ketentuan :

§ Gaji pokok karyawan Rp. 2000/jam

§ Bila karyawan bekerja lebih dari 7 jam/hari maka kelebihannya dihitung lembur yang besarnya 1.5 dari gaji pokok

§ Untuk karyawan yang bekerja 8 jam/hari atau lebih akan mendapat tambahan uang makan sebesar Rp. 3500

§ Karyawan yang bekerja 9 jam/hari atau lebih akan mendapat uang transport lembur sebesar Rp. 4000

Program ini akan terdiri dari 5 buah fungsi : main(), pokok(), lembur(), makan() dan jasa()

Input : NIP, Nama, Jumlah jam kerja

Output : NIP, Nama, Gaji pokok, Lembur, Uang makan, Transport lembur