LINGKUP VARIABEL FUNGSI
Lingkup variabel menentukan keberadaan suatu variabel
tertentu didalam fungsi. Ada variabel yang hanya dikenal disuatu fungsi dan
tidak dikenal pada fungsi lain. Namun ada juga variabel yang dapat diakses
oleh semua fungsi. Pada C terdapat jenis-jenis variabel berdasarkan kelas
penyimpanannya, yang berkaitan dengan lingkup variabel, yaitu :
a. Variabel Otomatis / Lokal Variabel yang didefinisikan
didalam suatu fungsi. Fungsi ini berlaku sebagai variabel lokal bagi fungsi.
Artinya : variabel tersebut hanya dikenal di dalam fungsi tempat variabel itu
didefinisikan.
b. Variabel Eksternal / Global Variabel yang
didefinisikan di luar fungsi manapun. Variabel ini dikenal sebagai variabel global. Artinya : variabel ini
dikenal di semua fungsi.
c. Variabel statis Variabel lokal yang dideklarasikan
didalam fungsi mempunyai sifat, data yang tersimpan atau yang ada padanya
akan hilang (terhapus) setelah fungsi itu selesai dikerjakan. Dengan demikian data
yang terdapat pada variabel lokal tersebut tidak dapat dipakai pada pengolahan
berikutnya.
C mengijinkan agar variabel lokal bersifat statis,
artinya : variabel ini tidak akan dihapus setelah selesai pemanggilan fungsi
ini. Variabel statis biasanya diberi nilai awal. Pemberian nilai awal hanya
dilakukan sekali pada
saat pemanggilan pertama kali.
Argument fungsi
Dalam c++, diketahui bahwa dalam pemanggilan
fungsi ada 5 cara, yaitu,
1. pemanggilan fungsi tanpa
argumen,
2. dengan argumen (by value),
3. dengan referensi ( by reference),
4. dengan pointer (by pointer)
5. dan dengan nilai balik
2. dengan argumen (by value),
3. dengan referensi ( by reference),
4. dengan pointer (by pointer)
5. dan dengan nilai balik
contoh program . Kita
menggunakan c++ dalam latihan pembuatan fungsi.
#include
#include
#include
Void coba()
{
cout<<"Hello dari fungsi";
}
{
cout<<"Hello dari fungsi";
}
void main()
{
coba ();
cout<<"Helo dari program utama";
coba ();
getch();
}
{
coba ();
cout<<"Helo dari program utama";
coba ();
getch();
}
Fungsi di deklarasikan sebelum
fungsi utama, seperti dalam deskripsi secara garis besar dari fungsi, fungsi
merupakan sebuah potongan program. Contoh program diatas, fungsi coba
dideklarasikan menggunakan void, void tidak memberikan nilai balik dalam fungsi
coba. didalam void coba( ), tanda kurung tidak diberikan sebuah isi, disinilah
letak dari argumen dalam fungsi. Fungsi coba diatas hanya mengandung pernyataan
Hello dari fungsi. Fungsi coba diatas dipanggil 2 kali dalam fungsi utama (
void main( ) ) berarti fungsi dapat dipanggil beberapa kali sesuai dengan
kebutuhan.
Meskipun
Anda sudah belajar tentang fungsi dasar di c + +, ada lebih: fungsi inline.Fungsi
inline tidak selalu penting, tapi itu baik untuk memahami mereka. Ide
dasarnya adalah untuk menghemat waktu dengan biaya di luar angkasa. Fungsi
inline banyak seperti placeholder. Setelah
Anda mendefinisikan fungsi inline, menggunakan 'inline' kata kunci, setiap kali
Anda memanggil fungsi kompilator akan menggantikan fungsi panggilan dengan kode
aktual dari fungsi.
INLINE FUNCTION
INLINE FUNCTION
Fungsi digunakan di dalam program diantaranya adalah untuk
membentuk program yang terstruktur. Namun pemakaian fungsi kadang-kadang harus
di bayar mahal. Sebab argumen-argumen fungsi harus diletakkan di dalam stack
pada saat pemanggilan fungsi. Pada saat fungsi berakhir, argumen-argumen yg ada
pada stack perlu diosongkan lagi. Sebagai akibatnya akan memperlambat eksekusi,
terutama kalau fungsi sering dipanggil.
Masalah seperti itu diatasi oleh C++ dengan menggunakan
inline function. Sebuah inline function dibentuk dengan cukup menyisipkan kata
kunci inline di depan tipe nilai balik fungsi dalam pendefinisian fungsi.
inline jumlah(int x, int y)
{
return(x+y);
}
Contoh diatas hanya dimasudkan untuk menggambarkan tentang
inline function. Pada kenyataannya, jika Anda bermaksud membuat operasi
penjumlahan seperti itu tidalah perlu menggunakan fungsi. Inline function
disarankan dipakai pada fungsi yang sering dipanggil dan ukurannya kecil,
terutama jika dilibatkan pada pernyaan pengulangan proses (while, for dan do-while).
Misalnya pada bentuk seperti berikut:
for (int i=1; <100;>
cout<<i<<”.”<</i<<”.”<
jika fungsi jumlah() tidak dituliskan sebagai inline
function, proses tersebut akan menjadi relatif akan menjadi relatif lambat.
Contoh :
#include
<iostream>
using namespace std;
inline void hello()
{
cout<<"hello";
}
int main()
{
hello(); //Call it like a normal function...
cin.get();
}
Nilai Bawaan Untuk Nilai Fungsi
Salah satu keistimewaan C++ yang sangat bermanfaat dalam dalam pemrogramam adalah adanya kemampuan untuk menyetel nilai bawaan argumen fungsi. Argumen2 yg mempunyai nilai bawaan nantinya dapat tidak disertakan di dalam pemanggilan fungsi dan dengan sendirinya C++ akan menggunakan nilai bawaan dari argumen yang tidak disertakan. Untuk lebih jelasnya simak contoh berikut:
void tulis_cplus (int
jum)
{
for (int
i=0;i<jum;i++)</jum;i++)
cout<<”C++”<<endl;</endl;
cout<<”Selesai”;
}
Fungsi diatas akan
menampilkan tulisan C++ sebanyak jum kali. Setelah menampilkan tulisan
tersebut, fungsi akan menampilkan tulisan “Selesai”. Jika mau menampilkan
tulisan C++ sepuluh kali, pemanggilamnya berupa:
tulis_cplus(10);
Kalau hanya mau
menampilkan sebuah tulisan C++, pemanggilanya berupa:
tulis_cplus(1);
clrscr();
tulis_cplus(1); // Untuk menuliskan sebuah tulisan C++
}
void tulis_cplus(int jum);
{
for (int i = 0; i < jum; i ++)
cout << “ C++ “ << endl;
cout << “ Seleseai “ << endl;
}
ARGUMEN BY VALUE
Saya menggunakan C + + for Dummies
dan saya berlari di beberapa bagian yang bisa membantu Anda. Nikmati dan
saya harap ini membantu.
Pertama dia mengatakan tentang "Memahami Rincian Fungsi"
Sebuah fungsi secara logis dipisahkan blok C + + kode. Fungsi konstruk memiliki bentuk sebagai berikut:
<return Nama data> (<arguments ke function> ini)
{
/ / ...
kembali <ekspresi>;
}
Argumen ke fungsi adalah nilai-nilai yang dapat dikirimkan ke fungsi yang akan digunakan sebagai informasi masukan. 'Nilai return' adalah nilai yang kembali fungsi. Misalnya, dalam panggilan ke fungsi persegi (10), nilai 10 adalah argumen untuk fungsi persegi (). Nilai yang dikembalikan adalah 100.
Kedua, ia mengatakan tentang "Mengakses argumen untuk main ():"
Argumen pertama yang main () adalah array dari pointer ke null dihentikan string karakter. String ini berisi argumen untuk program. Argumen untuk program adalah string yang muncul dengan nama program ketika Anda memulai. Argumen ini juga dikenal sebagai parameter. Sebagai contoh, anggaplah bahwa saya memasuki perintah berikut pada prompt MS-DOS:
Pertama dia mengatakan tentang "Memahami Rincian Fungsi"
Sebuah fungsi secara logis dipisahkan blok C + + kode. Fungsi konstruk memiliki bentuk sebagai berikut:
<return Nama data> (<arguments ke function> ini)
{
/ / ...
kembali <ekspresi>;
}
Argumen ke fungsi adalah nilai-nilai yang dapat dikirimkan ke fungsi yang akan digunakan sebagai informasi masukan. 'Nilai return' adalah nilai yang kembali fungsi. Misalnya, dalam panggilan ke fungsi persegi (10), nilai 10 adalah argumen untuk fungsi persegi (). Nilai yang dikembalikan adalah 100.
Kedua, ia mengatakan tentang "Mengakses argumen untuk main ():"
Argumen pertama yang main () adalah array dari pointer ke null dihentikan string karakter. String ini berisi argumen untuk program. Argumen untuk program adalah string yang muncul dengan nama program ketika Anda memulai. Argumen ini juga dikenal sebagai parameter. Sebagai contoh, anggaplah bahwa saya memasuki perintah berikut pada prompt MS-DOS:
FUNCTION OVER
Anda overload suatu nama fungsi f dengan mendeklarasikan lebih dari satu fungsi dengan nama f dalam lingkup yang sama. Deklarasi f harus berbeda satu sama lain oleh jenis dan / atau jumlah argumen dalam daftar argumen. Ketika Anda memanggil fungsi overload bernama f, fungsi yang benar dipilih dengan membandingkan daftar argumen dari fungsi panggilan dengan daftar parameter dari masing-masing fungsi calon kelebihan beban dengan nama f. Sebuah fungsi kandidat adalah fungsi yang dapat dipanggil berdasarkan konteks panggilan nama fungsi kelebihan beban.
Function overloding atau overloding terhadapt fungsi
merupakan kemampuan C++ yg memungkinkan sebuah fungsi dapat menerima
bermacam-macam tipe dan memberikan nilai balik yang bervariasi pula. Kemampuan
ini tidak ada pada bahasa pendahuluannya C.
Pertimbangkan fungsi cetak, yang menampilkan sebuah int. Seperti ditunjukkan dalam contoh berikut, Anda dapat membebani fungsi cetak untuk menampilkan jenis lain, misalnya, ganda dan char *. Anda dapat memiliki tiga fungsi dengan nama yang sama, masing-masing melakukan operasi serupa pada jenis data yang berbeda:
Pertimbangkan fungsi cetak, yang menampilkan sebuah int. Seperti ditunjukkan dalam contoh berikut, Anda dapat membebani fungsi cetak untuk menampilkan jenis lain, misalnya, ganda dan char *. Anda dapat memiliki tiga fungsi dengan nama yang sama, masing-masing melakukan operasi serupa pada jenis data yang berbeda:
Contoh :
#include <iostream>
using namespace std;
void print(int i) {
cout << " Here is int " << i << endl;
}
void print(double f) {
cout << " Here is float " << f << endl;
}
void print(char* c) {
cout << " Here is char* " << c << endl;
}
int main() {
print(10);
print(10.10);
print("ten");
}
Rekursi
adalah
Rekursi
adalah suatu proses dari fungi yang memanggil dirinya sendiri.fungsi seperti
ini disebut fungsi rekursi ( Rekursivee function.dalam sebuah rekursi
pemanggilan dapaat terjadi berulang kali.karena ada proses yang berulang ulang
maka harus ada suatu kondisi yanag mengakhirinya prosesnya. Jika tidak,maka proses
tidak akana perna berhenti sampai memori yang kita gunakan tidak dapat
menampung lagi. Pemechan masalah dengan pendekatan rekurtif dapat di lakukan
jika masalah tersebut dapat di definisikan secara rekursif.
Pada C++ referensi
digunakan untuk memberikan nama alias dari variabel. Bentuk pendeklarasian:
int &ref=nama_variabel;
tanda & mengawali
nama referensi.
Setelah
pendeklarisian seperti, ref menjadi nama alias dari nama_variabel. Pengubahan
nilai terdapat nama_variabel dapat dilakukan melalui nama_variabel itu sendiri
ataupun melalui referensi ref
Di
bawa ini adalah contoh programnya :
void main()
{
int x,y;
int x,y;
cout<<”Menghitung x pangkat y “<<endl;
cout<<”X : “;
cin >> x;
cout<<”Y : “;
cin >> y;
cout<<x<<”Pangkat”<<y<<”=”<<Pangkat(x,y)<<endl;
}