P. 1
FUNGSI (Bahasa C)

FUNGSI (Bahasa C)

|Views: 380|Likes:
Published by Junaedi Purbaya

More info:

Published by: Junaedi Purbaya on Oct 16, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

03/03/2013

pdf

text

original

PRAKTIKUM PEMROGRAMAN KOMPUTER BAHASA PEMRORAMAN C (FUNGSI/SUBPROGRAM

)

Disusun Oleh: Nama : I MADE JUNAEDI PURBAYA NIM : 0908605040

Program Studi Teknik Informatika Jurusan Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Udayana

1

LANDASAN TEORI 1. Pengertian. Fungsi adalah suatu bagian dari program yang dirancang untuk melaksanakan tugas tertentu dan letaknya dipisahkan dari program yang menggunakannya. Elemen utama dari program bahasa C berupa fungsi-fungsi, dalam hal ini program dari bahasa C dibentuk dari kumpulan fungsi pustaka (standar) dan fungsi yang dibuat sendiri oleh pemrogram. Fungsi banyak digunakan pada program C dengan tujuan : • Program menjadi terstruktur, sehingga mudah dipahami dan mudah dikembangkan. Dengan memisahkan langkah-langkah detail ke satu atau lebih fungsi-fungsi, maka fungsi utama (main()) menjadi lebih pendek, jelas dan mudah dimengerti. • dapat mengurangi pengulangan (duplikasi) kode. Langkah-langkah program yang sama dan dipakai berulang-ulang di program dapat dituliskan sekali saja secara terpisah dalam bentuk fungsi-fungsi. Selanjutnya bagian program yang membutuhkan langkah-langkah ini tidak perlu selalu menuliskannya, tetapi cukup memanggil fungsi-fungsi tersebut. 2. Nama Global dan Lokal Nama-nama (konstanta, peubah, tipe dan lain-lain) yang dideklarasikan bersangkutan dalam (bersifat utama lokal). Sedangkan nama-nama yang dideklarasikan bersifat global (nama-nama global di di

dalam deklarasi prosedur hanya "dikenal" di dalam badan prosedur yang program dikatakan dapat

digunakan di bagian manapun di dalam program, baik di dalam program utama maupun di dalam prosedur).

2

Tiap-tiap parameter aktual berpasangan dengan parameter formal yang bersesuaian.3. sedangkan parameter formal adalah parameter yang dideklarasikan di dalam bagian header prosedur itu sendiri. Berdasarkan penggunaannya terdapat 3 jenis parameter formal. Ketika prosedur dipanggil. 3 . parameter actual menggantikan parameter formal. Parameter Parameter aktual adalah parameter yang disertakan pada waktu pemanggilan. II-4 Parameter masukan/keluaran (input/output parameter) : parameter yang berfungsi sebagai masukan sekaligus keluaran bagi prosedur tersebut (parameter keluaran dan parameter masukan/keluaran sering dinamakan parameter acuan – parameter by reference). yaitu : • • • Parameter masukan (input parameter) : parameter yang nilainya berlaku sebagai masukan untuk prosedur (sering disebut parameter nilai – parameter by value). Parameter keluaran (output parameter) : parameter yang menampung keluaran yang dihasilkan oleh prosedur.

4 .

5 .

biasanya 6 . • Tidak ada inisialisasi secara otomatis (saat variabel diciptakan. Penggolongan Variabel Penyimpanan berdasarkan Kelas Suatu variabel. di samping dapat digolongkan berdasarkan jenis/tipe data juga dapat diklasifikasikan berdasarkan kelas penyimpanan (storage eksternal. Kata kunci ini bersifat opsionai. Penggolongan berdasarkan kelas penyimpanan berupa : variabel lokal. Daiam banyak iiteratur. variabei iokai disebut juga dengan variabei otomatis. Variabel Lokal Variabel lokal adalah variabel yang dideklarasikan dalam fungsi. • Hanya dikenal oleh fungsi tempat variabel tersebut dideklarasikan. dengan sifat : • secara otomatis diciptakan ketika fungsi dipanggil dan akan sirna (lenyap) class).1.variabel register. Variabei yang termasuk daiam goiongan ini bisa didekiarasikan dengan menambahkan kata kuci auto di depan tipe-data variabei. 4. variabel ketika eksekusi terhadap fungsi berakhir . variabel statis. nilainya tak menentu).4.

n 5 (v id fu g 1 n 5 (). antara variabei i daiam fungsi main'( dan fung31'( tidak ada kaitannya. pin ( n i r tf ” ila } void { it n i = 1. ” i.h> : lo a k l. 0 program < stdio . ) fu ng51(void) i di dalam m ain() = %d\n . ) pin ( n i r tf ” ila } Contoh eksekusI : nl i ia i di dalam fung51() = 11 nl i ia i di dalam m ain() = 20 7 . ” i.disertakan sebagai penjeias saja. sebab masingmasing merupakan variabel lokal. /* F ile # clud in e v id o m ain() { it n i = 2. 1 i di dalam fung51() = %d\n . Penerapan variabei iokai yaitu biia variabei hanya dipakai oieh suatu fungsi (tidak dimaksudkan untuk dipakai oieh fungsi yang iain). Pada contoh berikut.c * / fu g 1 o ).

tam bah(void).4. Nilai dari variabel I selanjutnya dapat diubah oleh fungsi tambah'( maupun maIn'(. ) 8 . dengan sifat : • • dapat diakses oleh semua fungsi kalau tak diberi nilai.2. ” i.c yaitu berupa variabel I. Setiap fungsi tambah'( dipanggil maka nilai I akan bertambah satu.c kt r 1 dengan v ria e a bl e s rn l k te a * / < io. Pada pendeklarasian it n i = 273. Variabel Eksternal Variabel eksternal merupakan variabel yang dideklarasikan di luar fungsi. secara otomatis diinisialisasi dengan nilai sama dengan nol. menyatakan bahwa I merupakan variabel eksternal dan diberi nilai awal sama denan 273. Contoh variabel eksternal ada pda program ekstern1. a a wl i = %d\n .h std > /* v ria e a bl e s rn l k te a * / i = 23 7. p tf(” ila rin N i i += 7 . /* F ile Contoh # inclu e d it n void m ain() { program program : e sen .

variabel eksternal haruslah dideklarasikan sebelum definisi fungsi yang akan mempergunakannya. ) tam bah(void) i = 273 = 280 = 281 = 282 Pada contoh di atas. program ekstern1. 9 . \ ” = %d\n .p tf(” ila rin N i tam bah(). ) i. ” i. Sebagai contoh. ) i.c. Untuk memperjelas bahwa suatu variabel dalam fungsi merupakan variabel eksternal. Oleh karena I merupakan variabel eksternal maka dapat digunakan oleh kedua fungsi tsb. terlihat bahwa I hanya dideklarasikan di bagian atas program. ” = %d n . p tf(” ila rin N i } void { i+ . + } Contoh eksekusI : N ilai N i ila N i ila N i ila aw al i kn ii i kn ii i kn ii i kn ii i kn ii i kn ii = %d\n .c ditulis kembali menjadi seperti pada ekstern2. dan tak dideklarasikan lagi dalam fungsi maIn'( maupun tambah'(. p tf(” ila rin N i tam bah(). di dalam fungsi yang menggunakannya dapat mendeklarasikan variabel itu kembali dengan menambahkan kata kunci extern di depan tipe data variabel. Namun ada satu hal yang perlu diketahui.

) i kn ii = %d\n ./* F ile Contoh # clud in e it n void m ain() { e te x rn program : e sen . ) * / p tf(” ila rin N i i += 7 .c kt r 2 ek stern al program yang menggun akan v ariabel d an memakai k ta k n i e te a uc x rn * / < stdio . ) i kn ii = %d\n . ” i. a bl a a wl e s rn l k te a i. + } Contoh eksekusI : in t i . ” i. ) /* v ria e a bl e s rn l k te a * / N ilai N i ila N i ila aw al i kn ii i kn ii i = 273 = 280 = 281 10 . p tf(” ila rin N i } void { e te x rn i+ . ” p tf(” ila rin N i tam bah(). i = %d\n . ” i.h> /* v ria e a bl e s rn l k te a i = 23 7. tam bah(void). * / in t i /* v ria e . p tf(” ila rin N i tam bah(). tam bah(void) i kn ii = %d\n .

” i. p tf(” ila rin N i tam bah(). ” i. p tf(” ila rin N i tam bah(). /* F ile Contoh program : e sen . ) i kn ii = %d\n .h> it n void i = 23 7. ) e s rn l k te a * / p tf(” ila rin N i i += 7 .N i ila i kn ii = 282 Kalau dalam suatu program terdapat suatu variabel eksternal. ) i kn ii = %d\n . p tf(” ila rin N i } void tam bah(void) i kn ii = %d\n .c kt r 3 program yang menggun akan v ariabel ek stern al d an v ria e a bl lo a k l dengan nama yang sama * / # clud in e < stdio . ) 11 . ” i. ” i. a a wl /* v ria e a bl i = %d\n . Untuk lebih jelasnya perhatikan contoh program di bawah ini. namun diperlakukan sebagai variabel lokal. /* v ria e a bl e s rn l k te a * / m ain() { e te x rn in t i . suatu fungsi bisa saja menggunakan nama variabel yang sama dengan variabel eksternal. tam bah(void).

maka variabel hanya dikenal oleh 12 . Hal ini terlihat jelas dengan mengamati hasil eksekusi program. sebab pada fungsi ini I dideklarasikan tanpa kata kunci extern. + } Contoh eksekusI : N ilai N i ila N i ila N i ila aw al i kn ii i kn ii i kn ii i = 273 = 280 = 280 = 280 i . bagi fungsi maIn'( I adalah variabel eksternal. Pernyataan: i+ . Variabel Statis Variabel statis dapat berupa variabel internal (didefinisikan di dalam fungsi) maupun variabel variabel ini : • eksternal. /* v ria e a bl lo a kl * / Pada program di atas. dengan hasil eksekusi pada 4.c). Sifat Kalau variabel statis bersifat internal. Namun bagi fungsi tambah'(. + Pada fungsi tambah'( tidak mempengaruhi nilai I yang ditampilkan pada fungsi maIn'( (bandingkan ekstern2.3.{ it n i+ . I merupakan variabel lokal.

Kalau tak ada inisialisasi oleh pemrogram secara otomatis akan diberi nilai awal nol Variabel statis diperoleh dengan menambahkan kata kunci static di depan tipe data variabel. fu g y n 5 ().fungsi tempat variabel dideklarasikan • Kalau variabel statis bersifat eksternal. p tf(” ila rin N i } void { s tic ta in t y . Sebagai contoh perhatikan program di bawah ini. /* F ile Contoh # clud in e v id o m ain() { in t program vr bl a ia e < stdio . t tsc s tis ta * / fu g y o ). tempat variabel statis dideklarasikan • Berbeda dengan variabel lokal. • Inisialisasi akan dilakukan hanya sekali. ) 13 . ” y.h> : sai . yaitu saat fungsi dipanggil yang pertama kali. variabel statis tidak akan hilang sekeluarnya dari fungsi(nilai pada variabel akan tetap diingat). maka variabel dapat dipergunakan oleh semua fungsi yang terletak pada file yang sama. n 5 (v id y = 2. fung5y(void) y dalam m ain() = %d\n . 0 fu g y n 5 ().

Variabel yang seperti ini hanya bisa diterapkan pada variabel yang lokal atau parameter formal. Tujuannya untuk mempercepat proses dalam loop. 14 . ) N i ila N i ila N i ila y dalam fung5y() y dalam fung5y() y dalam m ain() = 1 = 2 = 20 4. Variabel register biasa diterapkan pada variabel yang digunakan sebagai pengendali loop.y++ . . /* v ria e a bl re is r g te * / program v ria e a bl < stdio . Sebab variabel yang dioperasikan pada register memiliki kecepatan yang jauh lebih tinggi daripada variabel yang diletakkan pada RAM. Contoh pemakaiannya bisa dilihat pada program di bawah ini.4. p tf(” ila rin N i } Contoh eksekusi : y dalam fung5y() = %d\n . Variabel Register Variabel register adalah variabel yang nilainya disimpan dalam register dan bukan dalam memori RAM.c re is r g te * / = 0 . /* F ile Contoh # clud in e m ain() { r gse eit r in t f ri o( ju la mh it n i . yang bertipe char atau int. ” y. i+ ) + = 1 i <= 100.h> : var5reg .

” jum lah). main() } 15 . Dalam membuat fungsi ini harus didefinisikan tipe data dari nilai yang akan dikembalikan.. + 100 = %d\n ... Return nilai_balik. return L.h> HitungLuasBujurSangkar(int sisi) { int L. L = sisi * sisi.) { Statemen_yang_akan_dieksekusi. parameter2. + 100 = 5050 5. = jum lah + i .. Adapun cara pendefinisiannya adalah dengan menuliskan tipe data dari nilai yang akan dikembalikan didepan nama fungsi. } Contoh program: #include<stdio. . Fungsi ini digunakan untuk melakukan prosesproses yang berhubunga dengan nilai. . Bentuk umum pendefinisian fungsi dengan nilai balik adalah sebagai berikut: Tipe_data nama_fungsi(parameter1. Fungsi Dengan Nilai Balik Fungsi dengan nilai balik berguna untuk melakukan suatu proses yang dapat mengembalikan sebuah nilai. + 2 + 3 + . .jum lah p tf(” rin 1 } contoh eksekusi : + 2 + 3 + ...

parameter2.. s. Contoh program: #include<stdio.. proses pengesetan nilai ataupun yang akan lainnya.. fungsi semacam ini tipe dari kembaliannya void. diisi Dalam dengan bahasa nilai C.{ int s.proses yang tidak menghasilkan nilai.) { Statemen_yang_akan_dieksekusi. Bentuk umum pendefinisian fungsi tanpa nilai balik adalah sebagai berikut: Void_nama_fungsi(parameter1.). seperti melakukan pengulangan. scanf("%d".h> 16 . . printf("Masukkan nilai sisi : "). &s).. Luas. return 0... } hasil eksekusi: Masukkan nilai sisi : 10 Luas Bujur Sangkar adalah : 100 6. printf("Luas Bujur Sangkar adalah %d". Tanpa Nilai Balik Fungsi tanpa nilai balik adalah fungsi yang tidak memiliki nilai balik (return value). Pada umumnya fungsi ini digunakan untuk melakukan proses.. parameter2. Luas). } Dan bentuk umum pemanggilan sebuah fungsi yang sebelumnya telah didefinisikan adalah sebagai berikut: nama_fungsi (parameter1. Luas=HitungLuasBujurSangkar(s).

Solusi dari persoalan ini dapat berupa : • • Jika n = 1.j++) { printf("buat tugas!\n").j<5. Rekursi Fungsi dalam C dapat dipakai secara rekursi. } } main(void) { Tulis5kali(). for (j=0. Sebagai contoh penerapan fungsi menghitung nilai xn dengan n berupa bilagnan bulat positif. dalam artian suatu fungsi dapat memanggil dirinya sendiri. maka xn = x Selain itu maka xn = x * xn—1 rekursi yaitu untuk Misalnya x = 2 dan n = 3. proses pemecahannya seperti diuraikan pada gambar berikut: 17 .Void tulis5kali(vaoid) { int j. return 0. } Hasil eksekusi: buat tugas! buat tugas! buat tugas! buat tugas! buat tugas! 7.

akan lebih mudah dipahami kalau ditulis menjadi : in t { it n i . Untuk fungsi rekursi pada program faktor. di antaranya disebabkan : • Biasanya rekursi akan menjadikan fungsi sulit dimengerti. + fak = fak * i . 18 .Gambar Pemecahan secara rekursi Rekursi jarang dipakai. fk a. f ri o( = 1 i <= m. } Memerlukan stack dengan ukuran yang lebih besar. re rn k tu (fa ). Sebab setiap kali fungsi dipanggil. Hanya cocok untuk persoalan tertentu saja (misalnya pada binary tree atau pohon biner). i+ ) . variabel lokal dan parameter formal akan ditempatkan ke stack dan adakalanya akan menyebabkan stack tak cukup lagi (stack overflow). f k r l( t a toia in m) fak = 1 .c di atas misalnya.

main'( bahwa pada C semua fungsi sebenarnya berkedudukan sederajat. Dalam bentuk diagram. Pembuatan program dengan cara ini akan memudahkan dalam pencarian kesalahan ataupun dalam hal pengembangan dan tentu saja mudah dipahami/ dipelajari. Namun sekali lagi perlu diketahui.Fungsi terdiri dari fungsi_a'( sampai dengan fungsi_n'(. Pengenalan Konsep Pemrograman Terstruktur Fungsi sangat bermanfaat untuk membuat program yang terstruktur. Selanjutnya masing masing fungsi dipecah-pecah lagi menjadi fungsi yang lebih kecil. Pada C suatu program disusun dari sejumlah fungsi dengan tugas tertentu. model suatu program C yang terstruktur adalah seperti yang tertera pada bagan berikut ini. menegaskan bahwa dalam program fungsi main'( akan memanggil fungsi_a'( sampai dengan fungsi_n'(. Adapun fungsi-fungsi fungsi-fungsi yang lain. Suatu program yang terstruktur dikembangkan dengan menggunakan “top-down design” (rancang atas bawah). yang dipanggil oleh fungsi main'( juga bisa memanggil 19 .8.

edu/ ~ tessy / lecturenotes/prakkp1/ prak2. Tanggal akses: 11 Mei 2010. Tanggal akses 10 Mei 2010.15 wita. Pukul 20.00 wita.wordpress.com/2007/12/29/fungsi-dalam-bahasa-c.15 wita. Pukul 20.files. Pukul 20.its. Praktikum 2.pdf Tanggal akses 10 Mei 2010. eepis. Pukul 20. Pukul 21.pdf).com/2008/02/10/fungsi-fungsi-dasardalam-bahasa-c/ Tanggal akses 10 Mei 2010. akses 10 Mei 2010.00 wita. Pengenalan bahasa C (http://lecturer.00 wita.pdf). http://www. Pukul 20.com/doc/29380745/Modul-Algoritma-Pemrograman-BahasaC-Fungsi-Dan-Rekursi.com › C / C++ Tanggal akses 10 Mei 2010.id/07114099/chuaching/pemrograman%20C/solichin-bahasac03. Pemrograman bahasa C dengan turbo (http://mhs. Tanggal akses 10 Mei 2010. • • • • • • Praktikum 2.wordpress.00 wita. dhamidin.its. (http://mhs. Pukul 20.id/07114099/chuaching/pemrograman%20C/solichin-bahasac03.eepis. Pukul 21.stiki.00 wita.scribd.ac. Pemrograman bahasa C dengan turbo.00 wita.edu/~tessy/lecturenotes/ prakkp1/ prak2.nusinau.blogsome. tanggal www. Pukul 21. Pengenalan bahasa C ( http:// lecturer.stiki. http://tikuslistrik. Tanggal akses 11 Mei 2010.ac. 20 .15 wita.com/2008/01/modul-ii.pdf). Tanggal akses: 11 Mei 2010.DAFTAR PUSTAKA • • • • • http://tutorialpemrograman. Pdf ).

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->