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

Parameter keluaran (output parameter) : parameter yang menampung keluaran yang dihasilkan oleh prosedur. 3 . Parameter Parameter aktual adalah parameter yang disertakan pada waktu pemanggilan. parameter actual menggantikan parameter formal. Ketika prosedur dipanggil. 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). Berdasarkan penggunaannya terdapat 3 jenis parameter formal. Tiap-tiap parameter aktual berpasangan dengan parameter formal yang bersesuaian. sedangkan parameter formal adalah parameter yang dideklarasikan di dalam bagian header prosedur itu sendiri.3.

4 .

5 .

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

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

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

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

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 . p tf(” ila rin N i } void { e te x rn i+ . ” p tf(” ila rin N i tam bah(). ) i kn ii = %d\n . tam bah(void) i kn ii = %d\n . ) /* 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 . tam bah(void).h> /* v ria e a bl e s rn l k te a i = 23 7. ) i kn ii = %d\n . ” i./* F ile Contoh # clud in e it n void m ain() { e te x rn program : e sen . ” i. i = %d\n . * / in t i /* v ria e . ) * / p tf(” ila rin N i i += 7 . + } Contoh eksekusI : in t i . a bl a a wl e s rn l k te a i. p tf(” ila rin N i tam bah(). ” i.

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

dengan hasil eksekusi pada 4. Pernyataan: i+ . sebab pada fungsi ini I dideklarasikan tanpa kata kunci extern.3. Sifat Kalau variabel statis bersifat internal. I merupakan variabel lokal. + } 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. Namun bagi fungsi tambah'(. maka variabel hanya dikenal oleh 12 . + Pada fungsi tambah'( tidak mempengaruhi nilai I yang ditampilkan pada fungsi maIn'( (bandingkan ekstern2.c). Hal ini terlihat jelas dengan mengamati hasil eksekusi program.{ it n i+ . /* v ria e a bl lo a kl * / Pada program di atas. Variabel Statis Variabel statis dapat berupa variabel internal (didefinisikan di dalam fungsi) maupun variabel variabel ini : • eksternal.

/* F ile Contoh # clud in e v id o m ain() { in t program vr bl a ia e < stdio . p tf(” ila rin N i } void { s tic ta in t y . tempat variabel statis dideklarasikan • Berbeda dengan variabel lokal. fu g y n 5 (). ” y. fung5y(void) y dalam m ain() = %d\n . 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. yaitu saat fungsi dipanggil yang pertama kali.fungsi tempat variabel dideklarasikan • Kalau variabel statis bersifat eksternal.h> : sai . • Inisialisasi akan dilakukan hanya sekali. ) 13 . 0 fu g y n 5 (). t tsc s tis ta * / fu g y o ). Sebagai contoh perhatikan program di bawah ini.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.

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

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

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

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

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

Dalam bentuk diagram. model suatu program C yang terstruktur adalah seperti yang tertera pada bagan berikut ini. Pengenalan Konsep Pemrograman Terstruktur Fungsi sangat bermanfaat untuk membuat program yang terstruktur.8. 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 . Pada C suatu program disusun dari sejumlah fungsi dengan tugas tertentu. menegaskan bahwa dalam program fungsi main'( akan memanggil fungsi_a'( sampai dengan fungsi_n'(.Fungsi terdiri dari fungsi_a'( sampai dengan fungsi_n'(. Pembuatan program dengan cara ini akan memudahkan dalam pencarian kesalahan ataupun dalam hal pengembangan dan tentu saja mudah dipahami/ dipelajari. main'( bahwa pada C semua fungsi sebenarnya berkedudukan sederajat. Namun sekali lagi perlu diketahui. Selanjutnya masing masing fungsi dipecah-pecah lagi menjadi fungsi yang lebih kecil.

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

Sign up to vote on this title
UsefulNot useful