FUNGSI (FUNCTION) PADA C++ - Official Site of LILIS...

Preview:

Citation preview

FUNGSI (FUNCTION) PADA C++FUNGSI (FUNCTION) PADA C++FUNGSI (FUNCTION) PADA C++FUNGSI (FUNCTION) PADA C++

KONSEP DASAR

Program komputer yang dibuat untukberukuran sangat besar. Pengalamanterbaik untuk mengembangkan danmenyusunnya menjadi potongan-potongankecil (atau disebut modul) yang lebihdengan program yang terdiri dari banyakconquer.

KONSEP DASAR

untuk menjawab permasalahan umumnyaPengalaman telah menunjukkan bahwa cara

dan menangani program besar adalahpotongan program yang berukuran kecil-lebih mudah untuk ditangani dibandingbanyak sekali baris. Teknik ini disebut

22

Fungsi adalah suatu bagian darimengerjakan suatu tugas tertentu dan letaknyayang menggunakannya.

Program dari bahasa C dibentuk dari kumpulan

• Fungsi utama main()

• Fungsi pustaka (standar) mis: printf

• Fungsi yang dibuat sendiri oleh pemrogram

program yang dipergunakan untukletaknya dipisahkan dari bagian program

kumpulan fungsi, yaitu:

printf(), scanf()

pemrogram

33

Penyebab seringnya penggunaan Fungsi:

1. Fungsi menjadikan program C mempunyaimemisahkan bagian detail dalam fungsipendek, jelas dan mudah dimengerti (

2. Fungsi dapat digunakan untuk menghindariBagian program yang membutuhkannyatersedia, tanpa menulis ulang.

mempunyai struktur yang jelas. Denganfungsi-fungsi, maka fungsi utama akan lebih

(struktur program yang baik).

menghindari penulisan secara berulang-ulang.membutuhkannya cukup memanggil fungsi yang telah

44

FUNGSI STANDARTabel berikut menyajikan daftar sebagiansudah tersedia di dalam pustaka C dan

FUNGSI STANDARsebagian fungsi baku matematika yang

dan siap untuk digunakan.

55

FILE HEADERFILE HEADERSetiap pustaka baku mempunyai file headeruntuk semua fungsi yang ada di dalammaupun konstanta yang diperlukan oleh fungsifile header yang dapat di-include ke dalam

FILE HEADERFILE HEADERheader yang mengandung prototype fungsi

pustaka dan definisi dari tipe-tipe datafungsi tersebut. Berikut dicantumkan daftar

program.

66

77

DEFINISI FUNGSIFungsi secara umum terdiri dari 2 buah komponentubuh fungsi.

• Bentuk umum suatu fungsi:

• Contoh definisi fungsi:

DEFINISI FUNGSIkomponen utama yakni definisi fungsi dan

88

DEKLARASI FUNGSI1. Diawali dengan fungsi utama (Prototype Fungsi

DEKLARASI FUNGSIFungsi)

99

2. Diawali dengan fungsi yang lain

Apakah perbedaan antara ke-2 cara pendeklarasian

>> perlu diingat bahwa prinsip kerjadokumentasiprogram yang baik, maka sebaiknyadideklarasikan terlebih dahulu (cara I).

pendeklarasian tersebut?

program C sekuensial. Untuk alasansebaiknya semua fungsi yang akan dipergunakan

1010

JENIS FUNGSIJENIS FUNGSI

1111

Contoh Penggunaan FungsiFungsi Void & Non-void

1212

Ruang LingkupRuang lingkup / scope variabel adalah batasan

Terdapat 3 jenis scope variabel, yakni:

Variabel Lokal, hanya dikenal di daerah lokalfungsi)

Contoh - 1:

Lingkup Variabelbatasan atau jangkauan suatu variabel di dalam fungsi.

lokal saja (mis: blok statement tertentu, di dalam

1313

Ruang LingkupLingkup Variabel

1414

/* File program : lokal.c */#include <stdio.h>void fung_1(void);main() {

int i = 20;fung_1();printf("nilai i di dalam main() = %d\n", i);

}void fung_1(void){

int i =11; int i 11;printf("nilai i di dalam fung_1() = %d\n", i);

}Contoh eksekusi :nilai i di dalam fung_1() = 11nilai i di dalam main() = 20

1515

Ruang Lingkup• Variabel Global dikenal di seluruh daerah

di luar fungsi).

Lingkup Variabeldaerah dalam program (baik di dalam ataupun

1616

Contoh :

1717

/* File program : ekstern1.cContoh program dengan variabel eksternal */#include <stdio.h>

int i = 273; /* variabel eksternal */void tambah(void); main() {

printf("Nilai awal i = %d\n", i);i += 7;printf("Nilai i kini = %d\n", i);tambah();printf("Nilai i kini=%d\n",i); tambah();printf("Nilai i kini = %d\n", i);

}void tambah(void){ i++; } 1818

Contoh eksekusi :Nilai awal i = 273Nilai i kini = 280Nilai i kini = 281Nilai i kini = 282

• Variabel Statik

o Variabel yang nilainya tetap dipertahankankeluar dari bloknya.

o Variabel statik dibuat denganstatic

o Variabel statik merupakan modifiersehingga variabel statik dapat bersifat(tergantung dari letak deklarasinya

dipertahankan walaupun proses telah

menggunakan modifier (pengubah)

modifier dari variabel lokal atau global,bersifat statik lokal atau statik global

deklarasinya)

1919

• Contoh

2020

ArgumenArgumen

• Disebut juga Parameter

• Sebuah fungsi dapat mempunyai

opsionalbisa ada atau tidak

• argument-argument berfungsi sebagaivariabel-variabel bagi fungsi tersebutdideklarasikan lagi)

• argument harus bertipe data tertentu

ArgumenArgumen FungsiFungsi

mempunyai argument-argument yang bersifat

sebagai parameter inputan yang berupatersebut(bersifat lokal, sehingga tidak perlu

tertentu

2121

Terdapat 2 jenis parameter, yaitu:

• Parameter Formal

→ parameter yang ditulis pada deklarasi

• Parameter Aktual

→ parameter yang berlaku sebagaifungsi

→ Dapat berupa variabel atau nilai

deklarasi fungsi

sebagai inputan dalam pemanggilan suatu

nilai tertentu atau suatu statement

2222

Berdasarkan penjelasan di atas, maka komunikasisaling bertukar data, dengan cara:

• hasil balik dari suatu fungsi (return)

• dengan menggunakan variabel Global (

• parameter aktual yang dikirimkan ke parameter formal

komunikasi antar fungsi dilakukan dengan

Global (bersifat global)

parameter aktual yang dikirimkan ke parameter formal2323

PEMANGGILAN FUNGSI : BY VALUE / BY REFERENCE

• Ada dua cara pemrosesan fungsi dalampemanggilan nilai (call by value) danyang keduanya mempunyai karakteristik

• Metode pemanggilan nilai terjadipemanggilnya adalah berupa nilai, dantertulis di dalam argument pemanggilnya

• Sedangkan metode pemanggilan referensiberupa referensi (alamat) dan diterimavariable penerima ini akan mempengaruhimemanggilnya.

PEMANGGILAN FUNGSI : BY VALUE / BY REFERENCE

dalam berbagai bahasa pemrograman, yaitupemanggilan referensi (call by reference),

karakteristik berbeda.

jika yang dikirimkan ke fungsi olehdan tidak berpengaruh pada variable yang

pemanggilnya argument pemanggilnya.

referensi terjadi jika yang dikirimkan ke fungsioleh fungsi sehingga perubahan terhadap

mempengaruhi variable argument yang

2424

• Secara default pengiriman parameter di dalam

• Karakteristik dari pengiriman parameter

1. Yang dikirimkan ke fungsi adalah nilainya

2. Fungsi yang menerima kiriman nilaiterpisah dari nilai aslinya yang digunakanfungsi tersebut

3. Karena alasan no.2 di atas, maka perubahan(tidak mempengaruhi) pada nilai asliwalaupun keduanya menggunakan nama

4. Pengiriman secara nilai adalah pengirimanyang memanggil fungsi ke fungsi yang

5. Pengiriman suatu nilai dapat dilakukanuntuk sebuah variabel atau array atau

dalam adalah pass by value

secara nilai adalah:

nilainya, bukan alamat memori dari datanya

nilai ini akan menyimpannya di alamat yangdigunakan oleh bagian program yang memanggil

perubahan nilai difungsi tidak akan merubahasli di bagian program yang memanggil fungsinama variabel yang sama

pengiriman searah, yaitu dari bagian programyang dipanggil

dilakukan untuk suatu statement, tidak hanyaatau konstanta saja

2525

• Contoh:

2626

PenjelasanPenjelasan

Berdasarkan contoh di atas, maka pengiriman secara nilai1. Parameter aktual yang dikirimkan adalah berupa

dan data3; dalam statement: secaraNilai(data1,data2. Variabel data1 dan data3 menempati memori

secaraNilai()• Fungsi main(), nilai variabel data1 disimpan pada• Fungsi secaraNilai(), nilai variabel data1 disimpan

3. Perubahan nilai variabel data1 pada fungsi secaraNilaivariabel data1 ini dalam fungsi main() yang akan

PenjelasanPenjelasan ContohContoh

nilai dapat dijelaskan sebagai berikut:berupa nilai datanya, yaitu untuk variabel data1, data1/5,

,data1/5,data3);memori yang berbeda untuk fungsi main() dan fungsi

pada alamat = 24A0disimpan pada alamat = 24AEsecaraNilai() menjadi bernilai = 100 tidak merubah nilaiakan tetap bernilai = 20

2727

4. Pengiriman suatu nilai merupakan pengiriman

5. Pengiriman secara nilai dapat mengirimkan

pengiriman satu arah sebagai berikut:

mengirimkan suatu statement, yaitu data1/52828

FUNGSI REKURSIF• Fungsi yang telah dibahas sebelumnya dipanggil

yang bersangkutan. Fungsi rekursif adalahartinya fungsi tersebut dipanggil di dalam

• Fungsi factorial, yang menghitung nilaimerupakan pokok bahasan yang memudahkan

• Berikut adalah fungsi factorial yang diselesaikanInt factorial(int n) {

Int counter hasil=1; InFor (counter = n; counter >=

counter--)Hasil *=counter;

Return hasil; }

FUNGSI REKURSIFdipanggil dari bagian lain di luar tubuh fungsi

adalah suatu fungsi yang memanggil dirinya sendiritubuh fungsi itu sendiri.factorial dari suatu bilangan bulat positif

memudahkan pemahaman fungsi rekursif.diselesaikan dengan cara biasa:

>= 1;

2929

• Fungsi di atas menunjukkan bahwa nilaisehingga melakukan proses sebagai berikut

Hasil = 1;

Hasil = hasil * n; artinya hasil = n;

Hasil = hasil * (n-1) artinya hasil = n x (n

Demikian seterusnya sampain bernilai 1, atau

Factorial = n! = n x (n-1) x (n-2) …. X 1;

Fungsi ini dapat dituliskan dalam bentuk :

Factorial (n) = n ! = n x (n-1)!;

nilai faktorial dihitung menggunakan looping berikut:

= n x (n-1);

atau jika dituliskan sekaligus menjadi :

2) …. X 1;

3030

Yang menunjukkan sifat rekursif dari suatufungsi factorial yang telah ditulis dalamkembali dalam bentuk rekursif sbb :

Int factorial(int n) {

If (n == 0)

Return 1;

Else

Return (n * factorial(n-1));

}

suatu fungsi, yaitu (n-1)!. Oleh karena itu,dalam program C sebelumnya, dapat ditulis

3131

Contoh lain adalah menghitung jumlah dari suatudidefinisikan sebagai:

Fibonacci(0)= 0

Fibonacci(1) = 1

Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n

Sehingga fungsi dalam program C dapat dibuat

Long Fibonacci(long n) {

If(n==0|| n==1)

Return n;

Else

Return Fibonacci(n-1) + Fibonacci(n-2);

}

suatu deret fibonnaci, dimana deret tersebut

1) + Fibonacci(n-2)

dibuat sbb:

3232

….SEE YOU NEXT WEEK….SEE YOU NEXT WEEK

Lilis Setyowati

3333

Recommended