laporan resmi 13-16 konsep pemrograman [function]

29
8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function] http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 1/29 PRAKTIKUM 13 Fungsi : Dasar Fungsi A. Dasar Teori 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 : a. rogram menjadi terstruktur, sehingga mudah dipahami dan mudah dikembangkan. !engan memisahkan langkah-langkah detail ke satu atau lebih fungsi -fungsi, maka fungsi utama (main()) menjadi lebih pendek, jelas dan mudah dimengerti.  b. dapat mengurangi pengulangan (duplikasi) kode. "angkah -langkah program yang sama dan dipakai berulang-ulang di program dapat dituliskan sekali saja secara terpisah dalam bentuk fungsi-fungsi. #elanjutnya bagian program yang membutuhkan langkah- langkah ini tidak perlu selalu menuliskannya, tetapi cukup memanggil fungsi-fungsi tersebut. Dasar Fungsi Fungsi standar C yang mengemban tugas khusus contohnya adalah $ a. printf() , yaitu untuk menampilkan informasi atau data ke layar.  b. scanf() , yaitu untuk membaca kode tombol yang diinputkan ada umumnya fungsi memerlukan nilai masukan atau parameter yang disebut sebagai argumen. %ilai masukan ini akan diolah oleh fungsi. &asil akhir fungsi berupa sebuah nilai (disebut sebagai return 'alue atau nilai keluaran fungsi). leh karena itu fungsi sering digambarkan sebagai kotak gelap seperti ditunjukkan pada gambar di ba*ah ini.  enggambaran sebagai kotak gelap pada gambar +.+ menjelaskan bah*a bagian dalam fungsi bersifat pribadi bagi fungsi. ak ada suatu pernyataan di luar fungsi yang bisa mengakses  bagian dalam fungsi, selain melalui parameter (atau 'ariabel eksternal yang akan dibahas  belakangan). isalnya melakukan goto dari pernyataan di luar fungsi ke pernyataan dalam fungsi adalah tidak diperkenankan./entuk umum dari definisi sebuah fungsi adalah sebagai  berikut : tipe-keluaran-fungsi nama-fungsi (deklarasi argumen) { tubuh fungsi } 0eterangan : tipe-keluaran-fungsi , dapat berupa salah satu tipe data C, misalnya char atau int . 0alau penentu tipe tidak disebutkan maka dianggap bertipe int (secara default). tubu fungsi berisi deklarasi 'ariabel (kalau ada) dan statemen-statemen yang akan melakukan tugas yang akan diberikan kepada fungsi yang bersangkutan. ubuh fungsi ini ditulis di dalam tanda kurung kura*al buka dan kurung kura*al tutup. Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama [2110131036] 1

Upload: rendra-budi-hutama

Post on 07-Aug-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 1/29

PRAKTIKUM 13Fungsi : Dasar Fungsi

A. Dasar Teori

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 :

a. rogram menjadi terstruktur, sehingga mudah dipahami dan mudah dikembangkan. !engan

memisahkan langkah-langkah detail ke satu atau lebih fungsi -fungsi, maka fungsi

utama (main()) menjadi lebih pendek, jelas dan mudah dimengerti. b. dapat mengurangi pengulangan (duplikasi) kode. "angkah -langkah program yang sama

dan dipakai berulang-ulang di program dapat dituliskan sekali saja secara terpisah

dalam bentuk fungsi-fungsi. #elanjutnya bagian program yang membutuhkan langkah-langkah ini tidak perlu selalu menuliskannya, tetapi cukup memanggil fungsi-fungsi

tersebut.

Dasar Fungsi

Fungsi standar C yang mengemban tugas khusus contohnya adalah $a. printf() , yaitu untuk menampilkan informasi atau data ke layar.

 b. scanf() , yaitu untuk membaca kode tombol yang diinputkan

ada umumnya fungsi memerlukan nilai masukan atau parameter yang disebut

sebagai argumen. %ilai masukan ini akan diolah oleh fungsi. &asil akhir fungsi berupa sebuah

nilai (disebut sebagai return 'alue atau nilai keluaran fungsi). leh karena itu fungsisering digambarkan sebagai kotak gelap seperti ditunjukkan pada gambar di ba*ah ini.

 

enggambaran sebagai kotak gelap pada gambar +.+ menjelaskan bah*a bagian dalamfungsi bersifat pribadi bagi fungsi. ak ada suatu pernyataan di luar fungsi yang bisa mengakses

 bagian dalam fungsi, selain melalui parameter (atau 'ariabel eksternal yang akan dibahas

 belakangan). isalnya melakukan goto dari pernyataan di luar fungsi ke pernyataan dalam

fungsi adalah tidak diperkenankan./entuk umum dari definisi sebuah fungsi adalah sebagai

 berikut :

tipe-keluaran-fungsi nama-fungsi (deklarasi argumen){tubuh fungsi}

0eterangan :• tipe-keluaran-fungsi, dapat berupa salah satu tipe data C, misalnya char atau int .

0alau penentu tipe tidak disebutkan maka dianggap bertipe int (secara default).

• tubu fungsi  berisi deklarasi 'ariabel (kalau ada) dan statemen-statemen yang akan

melakukan tugas yang akan diberikan kepada fungsi yang bersangkutan. ubuh fungsi

ini ditulis di dalam tanda kurung kura*al buka dan kurung kura*al tutup.

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  1

Page 2: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 2/29

Me!berikan "ilai Keluaran Fungsi

#uatu fungsi dibuat untuk maksud menyelesaikan tugas tertentu. #uatu fungsi dapat

hanya melakukan suatu tugas saja tanpa memberikan suatu hasil keluaran atau melakukan

suatu tugas dan kemudian memberikan hasil keluaran. Fungsi yang hanya melakukan

suatu tugas saja tanpa memberikan hasil keluaran misalnya adalah fungsi untuk 

menampilkan hasil di layar. !alam tubuh fungsi, pernyataan yang digunakan untuk 

memberikan nilai keluaran fungsi berupa return.

Prototipe Fungsi

rototipe fungsi digunakan untuk menjelaskan kepada kompiler mengenai :

• tipe keluaran fungsi

•  jumlah parameter

• tipe dari masing-masing parameter.

/agi kompiler, informasi dalam prototipe akan dipakai untuk memeriksa keabsahan

('aliditas) parameter dalam pemanggilan fungsi. #alah satu keuntungannya adalah,

kompiler akan melakukan kon'ersi seandainya antara tipe parameter dalam fungsi dan

 parameter saat pemanggilan fungsi tidak sama, atau akan menunjukan kesalahan bila jumlah parameter dalam definisi dan saat pemanggilan berbeda.

Contoh prototipe fungsi$float jumlah (float x, float y);

ataufloat jumlah (float, float);

#. Tugas Pen$auluan

%&oal 1' 

Algorit!a !ena!pilkan !enu berulang $engan fungsi.

!eklarasikan i dan n sebagai bilangan bulat, dan fungi menu() dengan tipe data void . 1nisiasi

nilai i dengan angka 2.

+. asukkan jumlah pengulangan(n).

3. 4ika nilai i kurang dari n maka lakukan langkah dan seterusnya, bila tidak langsung ke

langkah 5.. anggil fungsi menu().

6. ambahkan i dengan + dan simpan hasilnya di i kembali.

5. #elesai.

Algorit!a fungsi !enu()

+. ampilkan pilihan menu yang ada.

%&oal *'

Algorit!a !ena!pilkan bilangan triangular $engan fungsi

!eklarasikan bil sebagai bilangan bulat dan fungsi triangular sebagai void.

+. asukkan bilangan(bil).

3. anggil fungsi triangular dengan menyertakan bil sebagai parameter.. #elesai.

Algorit!a fungsi triangular()

erima nilai bil sebagai bilangan bulat. !eklarasikan nilai i dan +u! sebagai bilangan bulat.

+. /erikan nilai bil ke i

3. 4ika nilai i lebih dari 2 lakukan langkah 3 bila tidak langsung ke langkah 7.

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  2

Page 3: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 3/29

. ampilkan nilai i

6. 4ika nilai i tidak sama dengan +, maka tampilkan karakter 89.

5. ambahkan jum dengan i, simpan hasilnya di +u! kembali.

;. 0urangi nilai i dengan +, simpan hasilnya di i kembali, 0embali ke langkah 3.7. ampilkan nilai +u!

<. #elesai.

%&oal 3'Algorit!a !ena!pilkan asil kua$rat $ari bilangan !enggunakan fungsi

!eklarasikan bil,asilKua$rat dan fungsi kua$ratkan() sebagai bilangan bulat.

1. asukkan nilai bil

*. anggil fungsi kuadratkan() dengan menyertakan bil  sebagai parameter. #impan hasil

 pemanggilan fungsi di asilKua$rat.

3. ampilkan nilai asilKua$rat.

,. #elesai

Algorit!a fungsi kua$ratkan()

erima nilai bil sebagai bilInput dengan tipe data bilangan bulat.

1. 0alikan bilInput dengan bilInput dan kembalikan hasilnya ke fungsi pemanggil

%&oal ,'

Algorit!a !ena!pilkan asil peritungan $engan fungsi

!eklarasikan bil,asiln/ asil&n/fungsi fnn()/fungsi&n() sebagai bilangan pecahan.

1. asukkan nilai bil*. anggil fungsi fn=Cn() dengan menyertakan bil  sebagai parameter. #impan hasil

 pemanggilan fungsi di asiln.

3. anggil fungsi fn=#n() dengan menyertakan bil  sebagai parameter. #impan hasil

 pemanggilan fungsi di asil&n.

,. ampilkan asiln ke layar 

0. ampilkan asil&n ke layar 

. #elesai

Algorit!a fungsi asiln()

erima nilai bil sebagai angka dengan tipe data bilangan bulat. !eklarasikan i dan asilsebagai bilangan pecahan. 1nisiasi nilai hasil dengan angka +

1. 4ika nilai i kurang dari nilai angka maka lakukan langkah 3 bila tidak langsung ke langkah 6

*. 0alikan nilai asil dengan * kemudian tambahkan dengan 1 dan simpan hasilnya di asil 

kembali

3. 0embalikan nilai asil ke fungsi pemanggil.

Algorit!a fungsi asil&n()erima nilai bil sebagai angka dengan tipe data bilangan bulat. !eklarasikan i dan asil

sebagai bilangan pecahan. 1nisiasi nilai hasil dengan angka +

1. 4ika nilai i kurang dari nilai angka maka lakukan langkah 3 bila tidak langsung ke langkah 6

*. ambahkan nilai asil dengan angka kemudian kurangi dengan 1 dan simpan hasilnya di

asil kembali

3. 0embalikan nilai asil ke fungsi pemanggil.Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  3

Page 4: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 4/29

. Per2obaan

&oal 1

a. /uatlah sebuah fungsi yang berfungsi untuk menampilkan sebuah string (di layar) >

8ilihan enu (misalkan nama fungsinya > menu). Fungsi tersebut tidak memiliki nilai

kembalian (return 'alue) dan juga tidak menerima parameter masukan apapun.

 b. ulislah prototipe fungsi untuk fungsi tersebut.c. /uat function main untuk memanggil function menu() secara berulang-ulang, dengan

 jumlah perulangan yang merupakan input dari user.

a4ab

a. "isting rogram#include stdio!h"

oid menu();

main(){

int n,i;

printf($%&'*+ . /0'1 2n&345&' 6 78.8.9 6 5:*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);printf($34'%*1'4 34+ 3&+1'4= 534='4 >+4=/*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);

printf($asukkan jumlah pengulangan2t ? $);scanf($@d$,An);for(i<8;in;iBB)

menu();}

oid menu(){

puts($%ilihan menu$);

puts($! 4asi =oreng$);puts($7! 4asi &endang$);puts($.! 4asi +duk$);puts($$);

}

 b. Capture rogram

c. ?nalisis rogram

ada program ini digunakan fungsi yang tidak memerlukan keluaran atau return  value

sehingga dalam  prototype fungsi, fungsi ini didefinisikan bertipe void . idak memerlukan

return 'alue karena tugas fungsi hanyalah untuk menampilkan tulisan di layar. ?gar jumlah

tulisan yang tampil sesuai jumlah yang diinginkan maka fungsi dipanggil secara berulang

dengan cara pengulangan @ loop.

&oal *

a. /uatlah sebuah fungsi untuk menghitung jumlah triangular n (misal nama fungsinya >

triangular). Fungsi tersebut memiliki sebuah parameter berupa bilangan int (n) yang

akan dicari triangularnya serta tidak memiliki nilai kembalian (return 'alue)

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  4

Page 5: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 5/29

 b. ulislah prototipe fungsi untuk fungsi tersebut.c. /uat function main untuk memanggil function triangular() tersebut dengan nilai n yang

merupakan input dari user.

a4ab

a. "isting rogram#include stdio!h"

oid triangular(int bil);

main(){

int n,bil;

printf($%&'*+ . /0'1 72n&345&' 6 78.8.9 6 5:*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);printf($>+4=/* 34'%*1'4 *1'4='4 &*'4=+1'&$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);

printf($2nasukkan bilangan ? $);scanf($@d$,Abil);

triangular(bil);}

oid triangular(int bil){

int i,jum < 8;

printf($2nCasil pengulangan ? $);for(i<bil;i"8;i--){

printf($@d $,i);jum < jum B i;if(i D< )

printf($B $);}

printf($< @d 2n$,jum);}

b. Capture rogram

2. ?nalisis rogram

#ama dengan soal no +, pada program ini menggunakan fungsi dengan tipe 'oid karena tidak 

ada return value  atau nilai kembaliannya. /edanya, pada program ini sudah terdapat

 parameter aktual yang bertipe integer(int). %ilai parameter aktual tersebut selanjutnya akan

diterima oleh parameter formal di dalam fungsi dan nilainya akan dijadikan sebagai acuan

dalam mengerjakan tugas pada fungsi tersebut.

 

&oal 3

a. /uatlah sebuah fungsi untuk menghitung nilai bilangan kuadrat (misal nama fungsinya

> kuadrat). Fungsi tersebut memiliki sebuah parameter bertipe float, yaitu bilangan yang

akan dikuadratkan serta memiliki sebuah return 'alue bertipe float, yaitu hasil kuadratnya

 b. ulislah prototipe fungsi untuk fungsi tersebut.

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  5

Page 6: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 6/29

2. /uat function main untuk memanggil function kuadrat() tersebut dengan bilangan A

yang akan dicari kuadratnya merupakan input dari user.

a4ab :

a. "isting rogram#include stdio!h"

float kuadratkan(float);

main(){float bil,hasiluadrat;

printf($%&'*+ . /0'1 .2n&345&' 6 78.8.9 6 5:*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);printf($>+4=/* 34'%*1'4 C'/*1 +'5&' *1'4='4$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);

printf($2nasukkan bilangan2t<2t$);scanf($@f$,Abil);hasiluadrat < kuadratkan(bil);printf($2nCasil kuadrat 2t2t<2t@g$,hasiluadrat);

}

float kuadratkan(float bil*nput){

return bil*nput E bil*nput;}

 b. Capture rogram

c. ?nalisis rogramada program ini terdapat sebuah fungsi yang memiliki return 'alue @ nilai kembalian yaitu

fungsi kuadratkan() dengan tipe data float. Fungsi tersebut mendapatkan sebuah parameter 

dari fungsi main yang berupa bilangan pecahan float juga kemudian mengembalikan hasil

 pengolahan parameter tadi kembali ke main() yang akhirnya akan ditampilkan ke layar 

sebagai sebuah output.

&oal ,

!engan menggunakan fungsi, buatlah program untuk mendapatkan keluaran dari

fungsi di ba*ah ini, dimana inputnya berupa bilangan untuk n

 B Cn > 3 Cn-+ 9 + jika C2 > +

 B #n > #n-+9 n B + jika #+ > 2

a4ab :

a. "isting rogram#include stdio!h"

int fnFGn(int);int fnF/n(int);

main(){

int bil,hasilFGn,hasilF/n;printf($%&'*+ . /0'1 :2n&345&' 6 78.8.9 6 5:*$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);

printf($2nasukkan bilangan2t<2t$);scanf($@d$,Abil);

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  6

Page 7: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 7/29

hasilFGn < fnFGn(bil);hasilF/n < fnF/n(bil);

printf($2nCasil Gn @d$,hasilFGn);printf($2n2nCasil /n @d$,hasilF/n);

}

int fnFGn(int angka){

int i,hasil<;for(i < 8;iangka;iBB){

hasil < 7 E hasil B ;}return hasil;

}

int fnF/n(int angka){

int i,hasil<;for(i < 8;iangka;iBB){

hasil < hasil B angka -;}

return hasil;}

 b. Capture rogram

c. ?nalisis rogram

!alam bahasa C, suatu program tersusun dari berbagai fungsi yang terstruktur dan

 berhubungan antara satu dengan yang lain. Contohnya adalah pada program ini yang

memiliki fungsi buatan sebanyak 3 fungsi kecuali fungsi main(). #etiap fungsi menjalankan

tugasnya masing-masing sesuai dengan perintah dan pernyataan yang telah ditentukan.

D. Kesi!pulan

+. Fungsi adalah suatu bagian dari program yang dirancang untuk melaksanakan tugas

tertentu dan letaknya dipisahkan dari program yang menggunakannya.

3. Fungsi membuat suatu program lebih terstruktur dan mengurangi duplikasi dalam

 penulisan kode program.. #uatu fungsi dapat memiliki parameter  dan@atau return value sesuai kebutuhan.

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  7

Page 8: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 8/29

PRAKTIKUM 1,Fungsi : Para!eter For!al 5 Aktual

A. Dasar TeoriPara!eter For!al $an Para!eter Aktual

arameter formal adalah 'ariabel yang ada pada daftar parameter dalam definisi fungsi. ada

contoh program di atas misalnya, maka dalam fungsi jumlah() 'ariabel A dan y dinamakan

sebagai parameter formal. ?dapun parameter aktual adalah parameter (tidak selalu berupa

'ariabel) yang dipakai dalam pemanggilan fungsi.

erbedaan antara arameter Formal dan ?ktual ditunjukkan pada gambar +6.+.

ada pernyataan :x < jumlah(a, b);y < jumlah(78!, :H!9);

a dan b merupakan parameter aktual dari fungsi jumlah() dalam hal ini parameter berupa 'ariabel.

!emikian juga 32.+ dan 65.; adalah parameter aktual, dalam hal ini berupa konstanta.

/ahkan bisa juga parameter aktual berupa ungkapan yang melibatkan operator, misalnya :

#. Tugas Pen$auluan%&oal 1' 

Algorit!a !en2ari nilai bilangan terbesar $ari $ua bilangan $engan fungsi.

!eklarasikan bil, isanjil dan fungsi cekanjil() sebagai bilangan bulat.

+. asukkan bilangan(bil)3. anggil fungsi cekanjil() dengan parameter bil. #impan hasil pemanggilan fungsi di

isanjil. 4ika nilai isanjil sama dengan + maka tampilkan 8bilangan ganjil, bila tidak maka

tampilkan 8bilangan genap6. #elesai.

Algorit!a fungsi 2ek6an+il()

erima nilai bil sebagai bilangan bulat pada 7g$i2ek 

+. 0embalikan nilai 7g$i2ek 8 *

%&oal *' 

Algorit!a !en2ari +u!la faktorial $ari suatu bilangan $engan fungsi.

!eklarasikan bil, jumFaktorial dan fungsi faktorial() sebagai bilangan pecahan.

+. asukkan bilangan(bil)

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  8

Page 9: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 9/29

3. anggil fungsi faktorial() dengan parameter bil. #impan hasil pemanggilan fungsi di

 jumFaktorial

. ampilkan nilai jumFaktorial6. #elesai.

Algorit!a fungsi faktorial()

erima nilai bil sebagai bilangan pecahan. !eklarasikan nilai i dan jum. 1nisiasi nilai jum

dengan angka +.

+. 4ika i lebih besar daripada 2 maka lanjutkan langkah selanjutnya, bila tidak langsung ke

langkah 6

3. &itung nilai jum dengan mengalikan jum dengan i dan simpan hasilnya di jum kembali

. 0urangi nilai i dengan + dan simpan hasilnya di i kembali. #elanjutnya kembali ke langkah +6. 0embalikan nilai jum ke fungsi pemanggil.

%&oal 3' 

Algorit!a !en2ari bilangan pri!a $engan fungsi.

!eklarasikan bil, isrima dan fungsi cekrima() sebagai bilangan bulat.

+. asukkan bilangan(bil)

3. anggil fungsi cekrima() dengan parameter bil. #impan hasil pemanggilan fungsi di

isPri!a

. 4ika nilai isrima sama dengan + maka tampilkan 8/ilangan rima bila tidak maka

tampilkan 8/ukan /ilangan rima

6. #elesai.

Algorit!a fungsi 2ekPri!a()

erima nilai bil sebagai bilangan bulat. !eklarasikan nilai i,pe!bagi dan faktorn7a. 1nisiasi

nilai pe!bagi dengan + dan faktorn7a dengan angka 2.

+. 4ika pe!bagi kurang dari sama dengan bil maka lanjutkan langkah selanjutnya, bila tidak

langsung ke langkah

3. 4ika bil dimodulus pe!bagi sama dengan nol maka naikkan nilai faktornya dengan angka +.

0emudian kembali ke langkah +. 4ika faktorn7a sama dengan 3 maka kembalikan nilai + ke fungsi pemanggil, bila tidak

kembalikan nilai 2.

6. #elesai

%&oal ,' 

Algorit!a !engkon9ersi $era+a$ ke ra$ian.

!eklarasikan &1 sebagai konstanta dengan nilai 3.1,10f , $era+a$, slRa$  dan fungsi

ra$ian() sebagai bilangan pecahan.

+. asukkan bilangan(bil)

*. anggil fungsi radian() dengan parameter bil. #impan hasil pemanggilan fungsi di slRa$

. ampilkan nilai slRa$

6. #elesai.

Algorit!a fungsi ra$ian()

1. &itung nilai sudut dalam radian dengan membagi sudut dengan +<2 lalu dikalikan dengan&1

*. 0embalikan nilai sudut dalam radian ke fungsi pemanggil

%&oal 0'

Algorit!a !engkon9ersi suu.

!eklarasikan su!ber  dan tu+uan  sebagai char, suu&u!ber  dan suuTu+uan  dan fungsi

kon9ersi() sebagai bilangan pecahan.Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  9

Page 10: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 10/29

+. asukkan nilai suhu sumber(su!ber)

3. asukkan nilai suhu tujuan(tu+uan)

. asukkan kode suu&u!ber

6. asukkan kode suuTu+uan

0. anggil fungsi kon'ersi() dengan parameter su!ber/ suu&u!ber dan  suuTu+uan.

#impan hasil pemanggilan fungsi di tu+uan

;. ampilkan nilai tu+uan7. #elesai.

Algorit!a fungsi ra$ian()

1. #eleksi jenis suhu a*al untuk menentukan suhu a*al dan pembanding sumber 

*. #eleksi jenis suhu akhir untuk menentukan suhu a*al dan pembanding sumber 

3. &itung suhutujuan dengan rumus

(pembandingTujuan / pembandingSumber) * (suhuSumber suhu!"a#Sumber) $ suhu!"a#Tujuan

,. 0embalikan hasil perhitungan ke fungsi pemanggil

. Per2obaan

&oal 1

a. !efinisikan sebuah fungsi ganjil() yang memilliki sebuah parameter bilangan bulat dan

mengembalikan nilai + jika parameter yang diberikan adalah bilangan ganjil dan

mengembalikan nilai 2 jika parameter tsb bukan bilangan ganjil

 b. ulislah prototipe fungsi untuk fungsi tersebut.

2. /uat function main untuk memanggil function ganjil() yang menerima input sebuah

 bilangan bulat yang akan ditentukan ganjil@genapnya. ampilkan pesannya (ganjil@genap)

dalam main().

a4ab :

a. "isting rogram#include stdio!h"

int ganjil(int);

main(){

int bil,is=anjil;

printf($%&'*+ : /0'1 2n&345&' 6 78.8.9 6 5:*2n$);

printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<2n$);printf($34=3G3 *1'4='4 ='4I*1 =34'% 534='4 >+4=/*$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<2n$);

printf($asukkan bilangan2t?2t$);scanf($@d$,Abil);printf($2n$);

is=anjil < ganjil(bil);

if(is=anjil)printf($ilangan @d adalah bilangan ='4I*1$,bil);

elseprintf($ilangan @d adalah bilangan =34'%$,bil);

}

int ganjil(ygdicek){

return ygdicek @ 7;}

 b. Capture rogram

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  10

Page 11: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 11/29

c. ?nalisis rogram

/ilangan ganjil adalah bilangan yang apabila dibagi 3 hasil baginya 2. !engan konsep

tersebut maka dibuatlah fungsi untuk mengecek suatu bilangan ganjil atau tidak. Fungsi

tersebut bertipe integer yang apabila bilangan yang dimasukkan ke parameter adalah bilangan

ganjil maka memberikan return 'alue + bila tidak maka 2. &asil return 'alue tadi diseleksi

kembali menggunakan pernyataan in di fungsi pemanggil.

&oal *

/uatlah program untuk menghitung faktorial dengan menggunakan 3 fungsi (main()dan faktorial()). Fungsi faktorial() memberikan return 'alue bertipe long int yang akan

dicetak ke layar dalam fungsi main().

a4ab :

a. "isting rogram

#include stdio!h"

long faktorial(long bil);

main()

{long jum>aktorial,bil;

printf($%&'*+ : /0'1 72n&345&' 6 78.8.9 6 5:*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);printf($>+4=/* 34'%*1'4 I+1'C *1'4='4 >'0&*'1$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<2n$);

printf($2nasukkan bilangan 2t< $);scanf($@ld$,Abil);

jum>aktorial < faktorial(bil);

printf($2nIumlah faktorial dari @ld adalah @ld$,bil,jum>aktorial);}

long faktorial(long bil){

int i,jum < ;

for(i<bil;i"8;i--){

jum < jum E i;}return jum;

}

 b. Capture rogram

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  11

Page 12: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 12/29

c. ?nalisis rogram

Faktorial merupakan hasil kali seluruh bilangan mulai dari + hingga bilangan itu sendiri.

0arena pasti hasil factorial tidak sedikit, maka digunakan tipe data long yang bisa

menyimpan lebih banyak digit bilangan. ada program ini, fungsi akan menerima bilangan

yang akan dicari faktorialnya dari parameter. 0emudian memprosesnya dengan cara

melakukan pengulangan. #elanjutnya jumlah dari factorial tadi dikembalikan ke fungsi

 pemangil untuk ditampilkan ke layar.

&oal 3

/uatlah fungsi prima(), yang memberikan nilai balik + bila bilangan yang

dimasukkan adalah prima, dan 2 bila bukan bilangan prima.

a4ab :

a. "isting rogram

#include stdio!h"

int prina(int bil);

main(){

int bil,is%rima;

printf($%&'*+ : /0'1 .2n&345&' 6 78.8.9 6 5:*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n2n$);printf($>+4=/* 34=3G3 *1'4='4 %&*' 2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);

printf($2nasukkan bilangan 2t< $);scanf($@d$,Abil);

is%rima < prima(bil);

if(is%rima)printf($2nilangan @d adalah bilangan %&*'$,bil);

elseprintf($2nilangan @d bukan bilangan %&*'$,bil);

getch();}

int prima(int bil){

int pembagi,faktornya < 8;

for(pembagi < ;pembagi < bil;pembagiBB){

if(bil @ pembagi << 8)faktornyaBB;

}

if(faktornya < 7)return ;

elsereturn 8;

}

 b. Capture rogram

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  12

Page 13: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 13/29

c. ?nalisis rogram/ilangan rima hanyalah bilangan yang hanya mempunyai 3 faktor yaitu bilangan + dan

 bilangan itu sendiri. aka dari itu pada program kali ini fungsi melakukan looping untuk 

mengeck apakah faktor dari bilangan tersebut kurang dari atau sama dengan 3 atau tidak. /ila

iya maka me-return + yang berarti bilangan rima, bila tidak maka me-return 2 yang berarti

 bukan bilangan prima.

&oal ,

a. !efinisikan sebuah fungsi radian() yang berfungsi untuk mengkon'ersi besaran sudut

dari derajat ke radian dengan rumus sbb : rad > drjt @ +<2.2f D 1. Fungsi tersebut memiliki

sebuah parameter yaitu derajat yang akan dikon'ersi, dan memiliki sebuah return 'alue

 berupa hasil kon'ersi dalam radian. b. ulislah prototipe fungsi untuk fungsi tersebut.

c. /uat function main untuk memanggil function radian(), setelah sebelumnya meminta

masukan nilai derajat yang akan dikon'ersi.

d. !efinisikan 1 sebagai sebuah konstanta yang bernilai : .+6+5f 

a4ab :

a. "isting rogram

#include stdio!h"#define %C* .!:HJf;

float radian(float);

main(){

float derajad,hsl&ad;

printf($%&'*+ : /0'1 :2n&345&' 6 78.8.9 6 5:*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n2n$);printf($>+4=/* 04K3&/* 3/'&'4 53&'I'5 3 &'5*'4 2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);

printf($2nasukkan besaran sudut 2t< $);scanf($@f$,Aderajad);

hsl&ad < radian(derajad);

printf($Casil konersi ke dalam radian adalah @f$,hsl&ad);

getch();}

float radian(float derajad)

{ return (derajad L M8!8f) E %C*;}

 b. Capture rogram

c. ?nalisis rogram

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  13

Page 14: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 14/29

ntuk mengkon'ersi nilai sudut dari derajad ke radian, yang diperlukan hanyalah fungsi

yang membagi nilai sudut dalam derajat tadi dengan +<2 kemudian dikali dengan nilai &1.

 %ilai &1 sendiri karena tidak pernah berubah maka dideklarasikan sebagai konstanta.

&oal 0

a. !efinisikan sebuah fungsi float kon'ersi(suhu, asal, tuj), untuk mengkon'ersikan suhu dari

Celsius ke Fahrenheit, Celsius ke Geamur, Fahrenheit ke Celsius, Fahrenheit ke Geamur,

Geamur ke Celsius, dan Geamur ke Fahrenheit. !imana suhu adalah suhu sumber, asal adalah

satuan a*al suhu yang akan dikon'ersi dan tuj adalah satuan hasil kon'ersi

 b. ulislah prototipe fungsi untuk fungsi tersebut.

c. /uat function main() untuk memanggil function kon'ersi(), setelah sebelumnya meminta

masukan nilai suhu, satuan asal dan satuan tujuannya.

a4ab :

a. "isting rogram

#include stdio!h"

float konersi(char,float,char);

main(){

char sumber,tujuan;float suhu/umber,suhuujuan;

printf($%&'*+ : /0'1 H2n&345&' 6 78.8.9 6 5:*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);printf($>+4=/* +4+ 34=04K3&/* /+C+$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);

printf($2nasukkan suhu sumber 2t< $);scanf($@f$,Asuhu/umber);fflush(stdin);

printf($2nasukkan satuan asal NGL>L&O2t< $);scanf($@c$,Asumber);fflush(stdin);printf($2nasukkan satuan tujuan NGL>L&O2t< $);scanf($@c$,Atujuan);

suhuujuan < konersi(sumber,suhu/umber,tujuan);

printf($2n@!7f @c < @!7f @c$,suhu/umber,sumber,suhuujuan,tujuan);

getch();}

float konersi(char sumber, float suhu/umber, char tujuan)

{ float

pembanding/umber,pembandingujuan,suhu'Pal/umber,suhu'Palujuan,suhuujuan;

sPitch(sumber){

case QGQ? pembanding/umber < H; suhu'Pal/umber < 8; break;case Q&Q? pembanding/umber < :; suhu'Pal/umber < 8; break;case Q>Q? pembanding/umber < J; suhu'Pal/umber < .7; break;

}

sPitch(tujuan){

case QGQ? pembandingujuan < H; suhu'Palujuan < 8; break;case Q&Q? pembandingujuan < :; suhu'Palujuan < 8; break;

case Q>Q? pembandingujuan < J; suhu'Palujuan < .7; break;}

suhuujuan < (pembandingujuan L pembanding/umber) E (suhu/umber -

suhu'Pal/umber) B suhu'Palujuan ;

return suhuujuan;}

 b. Capture rogram

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  14

Page 15: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 15/29

c. ?nalisis rogram

#etiap satuan suhu memiliki karakteristik masing-masing. isalnya pada nilai pembanding,

titik didih dan titik bekunya. ertama kita perlu mendefiniskan masing-masing hal tersebut.

0emudian dengan acuan tersebut kita bisa melakukan proses perhitungan fisika sesuai rumus

yang ada. #alah satu hal yang perlu diperhatikan disini adalah ketika satuan suhu memiliki

titik beku yang bukan nol. aka dalam proses kon'ersi perlu proses penambahan atau

 pengurangan agar hasil yang direturn fungsi tersebut benar.

D. Tugas Ta!baan b. ?pa hasil eksekusi dari program berikut :

#include stdio!h"oid ubah(int);main(){

int x;printf($asukkan nilai x ? $);scanf($@d$, Ax);ubah(x);

printf($x < @d2n$, x);}

oid ubah(int y){

y < MH;}

a4ab :

rogram tersebut akan menampilkan nilai A sesuai yang diinputkan user tanpa ada perubahan

*alaupun ada fungsi. &al tersebut terjadi karena pada fungsi tidak memberikan return 'alue

sama sekali.

c. !engan menggunakan fungsi, buatlah program yang melakukan 'alidasi terhadap tanggal,

 bulan dan tahun yang diinputkan. rogram juga melakukan pengecekan apakah sebuah tahun

adalah tahun kabisat atau bukan (jika tahun bukan kabisat, bulan yang diinputkan bulan 3

tanggal di atas 3< maka tanggal tidak 'alid).

Contoh:

1nput :tanggal : 3

 bulan : 3

tahun : +

utput :tanggal tidak 'alid

a4ab :

a. "isting programHinclude Istdio.hJ

int cekanggal(int,int,int)$

main()

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  15

Page 16: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 16/29

K

int tanggal,bulan,tahun,isLalid$

 printf(G?010 +6 #?" ambahanMnGE%!G? N 3++2++2; N +!61/Mn)$

 printf(Mn>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Mn)$ printf(E%ECE0 L?"1!?#1 ?%?")$

 printf(Mn>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>MnMn)$

 printf(asukkan tanggalMt> )$

scanf(Od,Ptanggal)$ printf(asukkan bulan MtMt> )$

scanf(Od,Pbulan)$

 printf(asukkan tahun MtMt> )$scanf(Od,Ptahun)$

 printf(Mn)$

isLalid > cekanggal(tanggal,bulan,tahun)$

if(isLalid)

 printf(anggal tersebut 'alid)$

else printf(anggal tersebut tidak 'alid)$

getch()$

Q

int cekanggal(int d,int m,int y)

K

int jum!,isLalid > 2$

s*itch(m)

K

case + : case : case 5 : case 7 : case < : case +2 : case +3 : jum! > +$ break$

case 6 : case ; : case : case ++ :

 jum! > +$ break$

case 3 :if(y O 6 >> 2)

 jum! > 3$

else

 jum! > 3<$ break$

Q

if(+ I> m PP m J> +3 PP + I> d PP d I> jum!)K

isLalid > +$

Q

return isLalid$Q

 b. Capture rogram

;. Kesi!pulan

+. !alam bahasa C, program terdiri dari fungsi-fungsi yang terstruktur.

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  16

Page 17: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 17/29

3. #etiap fungsi dapat memiliki parameter apabila dibutuhkan.. arameter formal adalah 'ariabel yang ada pada daftar parameter dalam definisi fungsi.

6. arameter  aktual adalah parameter (tidak selalu berupa 'ariabel) yang dipakai dalam

 pemanggilan fungsi.

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  17

Page 18: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 18/29

PRAKTIKUM 10Fungsi : Passing Para!eter b7 <alue 5 b7 Referen2e

A. Dasar Teoriemanggilan dengan nilai merupakan cara yang dipakai untuk seluruh fungsi buatan

yang telah dibahas pada praktikum sebelumnya. ada pemanggilan dengan nilai, nilai dari

 parameter aktual akan disalin ke parameter formal. !engan cara ini nilai parameter aktual

tidak bisa dirubah sekalipun nilai parameter formal berubah. ntuk lebih jelasnya lihat pada

fungsi tukar() pada contoh berikut ini.

#include stdio!h"oid tukar (int, int);main(){

int a < MM, b < RR;printf($4ilai sebelum pemanggilan fungsi2n$);printf($a < @d b < @d2n$, a, b);tukar(a,b);printf($2n4ilai setelah pemanggilan fungsi2n$);printf($a < @d b < @d2n$, a, b);}

oid tukar(int x, int y)

{

int S; S < x; x < y; y < S;printf($2n4ilai di akhir fungsi tukar()2n$);printf($x < @d y < @d2n$, x, y);

}

ampak bah*a sekeluarnya dari pemanggilan fungsi tukar(), 'ariabel a dan b (yang

dile*atkan ke fungsi tukar() tidak berubah, *alaupun pada fungsi tukar() telah terjadi

 penukaran antara parameter A dan y . engapa hal ini bisa terjadi R #ebab A hanyalah salinan

dari a dan y adalah salinan dari b ("ihat gambar +5.+). ada saat pemanggilan fungsi, maka : A bernilai << (nilai a)

 y bernilai 77 (nilai b)

#esudah pernyataan-pernyataan berikut dijalankan, maka :

S > A$ A > y$ y > S$ A akan bernilai 77 dan y bernilai <<.

ambar tersebut menjelaskan bah*a a dan b tidak berubah. Tang berubah hanyalah

 parameter A dan y.

emanggilan dengan referensi (call by reference) merupakan upaya untuk mele*atkan

alamat dari suatu 'ariabel ke dalam fungsi. Cara ini dapat dipakai untuk mengubah isi

suatu 'ariabel di luar fungsi dengan pelaksanaan pengubahan dilakukan di dalam fungsi. #ebagai

contoh perhatikan program tukar3.c yang merupakan modifikasi dari tukar+.c. erubahan yang

 pertama terletak dalam definisi fungsi, yang kini berupa

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  18

Page 19: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 19/29

oid tukar(int Epx, int Epy)

{

int S;

S < Epx;

Epx < Epy;

Epy < S;

printf($2n4ilai di akhir fungsi tukar()2n$);

printf($x < @d y < @d2n$, Epx, Epy);

}

?dapun perubahan dalam parameter aktualnya menjadi :

tukar(Aa,Ab); LLalamat a dan alamat b

!alam deklarasi parameter 

int Epx, int Epy

menyatakan bah*a pA dan py adalah suatu 'ariabel pointer. Tang dimaksudkan sebagai 'ariabel pointer adalah suatu 'ariabel yang menunjuk ke 'ariabel lain. "ebih jelasnya, 'ariabel pointer 

 berisi alamat dari 'ariabel lain.

?dapun pada pemanggilan fungsi, Pa dan Pb masing-masing berarti alamat a dan alamat

 b. !engan pemanggilan seperti ini, hubungan antara 'ariabel pointer pA dan py dengan 'ariabel

a dan b adalah seperti ditunjukkan pada gambar di ba*ah ini !alam hal ini, pA dikatakan

menunjuk 'ariabel a dan py menunjuk 'ariabel b. 1lustrasi penempatan di memory untuk 

masing-masing 'ariabel ditunjukkan pada gambar +5.3.

#. Tugas Pen$auluan

%&oal 1' 

Algorit!a !en2ari nilai bilangan terbesar $ari $ua bilangan.

!eklarasikan bil+, bil3, maA dan fungi carierbesar() sebagai bilangan bulat.

5. asukkan bilangan pertama(bil1);. asukkan bilangan kedua(bil*)

7. anggil fungsi carierbesar() dengan parameter bil1 dan bil*. #impan hasil pemanggilanfungsi di maA.

<. ampilkan nilai maA.

. #elesai.

Algorit!a fungsi !enu()

erima nilai bil1 dan bil* sebagai bilangan bulat pada input1 dan input*

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  19

Page 20: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 20/29

+. 4ika input1 lebih kecil daripada input* maka kembalikan nilai input* jika tidak

kembalikan nilai input+

%&oal *'

!eklarasikan fungsi per!utasi, ko!binasi  dan faktorial  sebagai fungsi dengan return value

 bilangan bulat.

!eklarasikan n, r, hslermutasi,hsl0ombinasi sebagai bilangan bulat.

+. asukkan nilai n

3. asukkan nilai r

. anggil fungsi permutasi() dengan parameter n dan r. #impan hasil pemanggilan fungsi di

slPer!utasi

6. anggil fungsi kombinasi() dengan parameter n dan r. #impan hasil pemanggilan fungsi di

slKo!binasi

5. ampilkan slPer!utasi ke layar ;. ampilkan slKo!binasi ke layar

Algorit!a fungsi faktorial()

erima nilai bil sebagai bilangan pecahan. !eklarasikan nilai i dan jum. 1nisiasi nilai jum dengan

angka +.

5. 4ika i lebih besar daripada 2 maka lanjutkan langkah selanjutnya, bila tidak langsung ke

langkah 6;. &itung nilai jum dengan mengalikan jum dengan i dan simpan hasilnya di jum kembali

7. 0urangi nilai i dengan + dan simpan hasilnya di i kembali. #elanjutnya kembali ke langkah +

<. #elesai

Algorit!a fungsi per!utasi()

erima nilai bil1 dan bil* sebagai bilangan bulat pada fnn dan fnr

+. &itung nilai permutasi yaitu dengan rumus faktorial fnn dibagi faktorial dari fnn =fnr.

unakan fungsi faktorial untuk mencari nilai faktorial tersebut.

3. 0embalikan hasil perhitungan ke fungsi pemanggil

Algorit!a fungsi ko!binasi()

erima nilai bil1 dan bil* sebagai bilangan bulat pada fnn dan fnr

3 &itung nilai kombinasi yaitu dengan rumus faktorial fnn dibagi faktorial dari fnn

dikalikan faktorial fnn =fnr . unakan fungsi faktorial untuk mencari nilai factorial

tersebut.

3. 0embalikan hasil perhitungan ke fungsi pemanggil

%&oal 3'

Ti$ak 4a+ib $iker+akan

%&oal ,'Algorit!a !en2ari pan+ang sisi # !enggunakan fungsi

!eklarasikan &1 dengan .+6, fungsi cari/C() dan radian() sebagai bilangan pecahan float.

!eklarasikan sudut/?C,sisi?/ dan sisi/C sebagai bilangan pecahan float.

+. asukkan besaran sudut /?C

3. asukkan panjang sisi ?/

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  20

Page 21: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 21/29

. anggil fungsi cari/C() dengan parameter bil1 dan bil*. #impan hasil pemanggilan fungsi di

maA.

6. ampilkan panjang sisi /C.

Algorit!a fungsi 2ari#()

+. &itung /C dengan cara mengalikan tangen /?C dengan sisi ?/, namun sudut /?C harus

diubah ke radian dulu dengan memanggil fungsi radian()

3. 0embalikan nilai /C ke fungsi pemanggil

Algorit!a fungsi ra$ian()

0. &itung nilai sudut dalam radian dengan membagi sudut dengan +<2 lalu dikalikan dengan

&1

. 0embalikan nilai sudut dalam radian ke fungsi pemanggil

. Per2obaan

&oal 1

a. !efinisikanlah function untuk menentukan bilangan terbesar dari 3 bilangan yang

diinputkan di main(). Function mempunyai parameter berupa 3 buah bilangan yangakan dibandingkan dan memberikan return 'alue berupa bilangan yang terbesar.

#ertakan pula prototype function tsb.

 b. ulislah prototipe fungsi untuk fungsi tersebut.

c. /uat function main() untuk memanggil function kon'ersi(), setelah sebelumnya meminta

masukan nilai suhu, satuan asal dan satuan tujuannya.

a4ab :

a. "isting rogram

#include stdio!h"

int carierbesar(int,int);main(){

int bil,bil7,max;

printf($%&'*+ H /0'1 2n&345&' 6 78.8.9 6 5:*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);printf($encari ilangan erbesar dari 7 ilangan$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);

printf($2nasukkan bilangan pertama 2t < $);scanf($@d$, Abil);

printf($2nasukkan bilangan kedua 2t < $);

scanf($@d$, Abil7);

max < carierbesar(bil,bil7);

printf($2nilangan @d adalah bilangan yang lebih besar$,max);}

int carierbesar(int input,int input7){

if(input input7)return input7;

elsereturn input;

}

 b. Capture rogram

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  21

Page 22: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 22/29

c. ?nalisis rogramada program ini, parameter dile*atkan ke fungsi dengan pass parameter by value sehingga

 perubahan pada 'ariabel parameter formal tidak berpengaruh terhadap 'ariable di fungsi

 pemanggil. Fungsi menerima 3 buah input yang kemudian masing-masing dibandingkan

mana yang terbesar. #lanjutnya nilai yang lebih besar akan direturn atau dikembalikan ke

fungsi pemanggil.

&oal *

/uatlah suatu fungsi permutasi() dan kombinasi() untuk menghitung permutasi dan

kombinasi dari suatu pasangan bilangan, yang dinyatakan dengan formula:

a4ab :

a. "isting rogram#include stdio!h"

int permutasi(int,int);int kombinasi(int, int);int faktorial(int);

main(){

int n,r,hsl%ermutasi,hslombinasi;

printf($%&'*+ H /0'1 72n&345&' 6 78.8.9 6 5:*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);printf($encari Casil %ermutasi dan ombinasi$);

printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);

printf($2nasukkan n 2t < $);scanf($@d$, An);printf($2nasukkan r 2t < $);scanf($@d$, Ar);

hsl%ermutasi < permutasi(n,r);hslombinasi < kombinasi(n,r);

printf($2nCasil permutasi dari @d dan @d adalah @d$,n,r,hsl%ermutasi);printf($2nCasil kombinasi dari @d dan @d adalah @d$,n,r,hslombinasi);

}

int faktorial(int bil){

int i,jum < ;

for(i<bil;i"8;i--)jum < jum E i;

return jum;}

int permutasi(int fnFn,int fnFr)

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  22

Page 23: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 23/29

{return faktorial(fnFn) L faktorial(fnFn-fnFr);

}

int kombinasi(int fnFn,int fnFr){

return faktorial(fnFn) L ( faktorial(fnFr) E faktorial(fnFn-fnFr) );}

 b. Capture rogram

c. ?nalisis rogram

ada program ini terdapat beberapa fungsi. Fungsi yang sering dipanggil adalah fungsi

faktorial karena fungsi tersebut digunakan dalam setiap perhitungan permutasi dan

kombinasi. !isini tampak jelas bah*asannya sebuah fungsi bisa dipanggil oleh fungsi buatan

user lainnya tidak hanya bisa dipanggil di fungsi main().

&oal 3

/uatlah sebuah fungsi untuk mengubah dua bilangan masukan, masing-masing dinaikkan

dengan 3. asukan dilakukan di main(). #elanjutnya tampilkan hasil akhir bilangan

setelah dirubah di main(). unakan pass by reference U

a4ab :

a. "isting rogram

#include stdio!h"

int naikkan(int,int);main(){

int bil,bil7,max;

printf($%&'*+ H /0'1 .2n&345&' 6 78.8.9 6 5:*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n2n$);printf($%ass by &eference untuk enaikkan ilangan2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);

printf($2nasukkan bilangan pertama 2t < $);scanf($@d$, Abil);printf($2nasukkan bilangan kedua 2t < $);scanf($@d$, Abil7);

printf($/ebelum menjalankan fungsi,2nilangan pertama < @d dan bilangan kedua

< @d$,bil,bil7);

naikkan(Abil,Abil7);

printf($2n2n/etelah menjalankan fungsi,2nilangan pertama < @d dan bilangankedua < @d$,bil,bil7);}

int naikkan(int Einput,int Einput7){

EinputB< 7;Einput7B<7;

}

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  23

Page 24: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 24/29

 b. Capture rogram

c. ?nalisis rogram

Fungsi pada program ini menggunakan pass by reference. !engan cara tersebut maka pada

 parameter aktual yang dikirimkan adalah alamat dari 'ariable tersebut yaitu dengan cara

menambahkan tanda P sebelum nama 'ariable. erbedaannya dengan pass by value adalah

 perubahan pada 'ariable di fungsi akan mempengaruhi nilai pada fungsi pemanggil.

&oal ,

erhatikan gambar segitiga ?/C di samping ini, dengan sudut

?/C adalah siku-siku. /uatlah sebuah program yang menerima input berupa :

 besar sudut /?C (dalam besaran derajat), dan panjang sisi ?/ (dalam

meter). rogram tersebut bisa menampilkan output berupa panjang

sisi /C (dalam meter).

a4ab :

a. "isting rogram

#include stdio!h"#include math!h"

#define %C* .!:7MHRf;

float cariG(float,float);float radian(float);

main(){

float sudut'G,sisi',sisiG;

printf($%&'*+ H /0'1 :2n&345&' 6 78.8.9 6 5:*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n2n$);printf($enghitung sisi G dari segitiga$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);

printf($2nasukkan besaran sudut 'G (derajat) 2t < $);scanf($@f$, Asudut'G);

printf($2nasukkan panjang sisi ' (meter) 2t < $);scanf($@f$, Asisi');

sisiG < cariG(sudut'G,sisi');printf($2n%anjang sisi G adalah @!7f meter$,sisiG);

getch();}

float cariG(float fnFsudut'G,float fnFsisi'){

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  24

Page 25: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 25/29

return tan(radian(fnFsudut'G)) E fnFsisi';}

float radian(float derajat){

return (derajat L M8!8f) E %C*;}

 b. Capture rogram

c. ?nalisis rogram?gar panjang sisi /C dapat dihitung maka hal pertama yang harus kita lakukan adalah

mengkon'ersi nilai sudut yang berupa derajad ke radian terlebih dahulu denan menggunakan

fungsi kon'ersi derajad ke radian(radian()). #etelah dikon'ersi baru bisa dihitung panjang

/C dengan memanggil fungsi cari/C().

D. Tugas Ta!baan

4elaskan perbedaan antara pass by 'alue dengan pass by reference U

/erikan contoh function call dan definisi fungsinya U

a4ab :

ada pass by 'alue, nilai dari parameter aktual akan disalin ke parameter formal. !engan

cara ini nilai parameter aktual tidak bisa dirubah sekalipun nilai parameter formal berubah.

#edangkan pada pass by reference merupakan upaya untuk mele*atkan alamat dari suatu

'ariabel ke dalam fungsi. Cara ini dapat dipakai untuk mengubah isi suatu 'ariabel di luar 

fungsi dengan pelaksanaan pengubahan dilakukan di dalam fungsi.

erbedaan Function call !efinisi fungsi

ass by 'alue kalikan(a,b); int kalikan(int x, int y){

  LLpernyataan}

ass by reference kalikan(Aa,Ab); int kalikan(int Ex,int Ey){  LLpernyataan}

;. Kesi!pulan+. !alam bahasa C, program terdiri dari fungsi-fungsi yang terstruktur.

3. #etiap fungsi dapat memiliki parameter apabila dibutuhkan.. arameter dapat dikirim pada fungsi dengan pass by value dan pass by reference.

ass by 'alue hanya mengirimkan nilai dari 'ariable dikirimkan.

ass by reference mengirim alamat dari 'ariable yang dikirimkan.

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  25

Page 26: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 26/29

PRAKTIKUM 1Fungsi : Penggolongan <ariabel 5Pe!rogra!an Terstruktur

A. Dasar Teori

#uatu 'ariabel, di samping dapat digolongkan berdasarkan jenis@tipe data juga dapatdiklasifikasikan berdasarkan kelas penyimpanan (storage class). enggolongan berdasarkan

kelas penyimpanan berupa : 'ariabel lokal, 'ariabel eksternal, 'ariabel statis dan 'ariabel

register.

<ariabel >okal

• Lariabel lokal adalah 'ariabel yang dideklarasikan dalam fungsi, dengan sifat :

• #ecara otomatis diciptakan ketika fungsi dipanggil dan akan sirna (lenyap) ketika

eksekusi terhadap fungsi berakhir.

• &anya dikenal oleh fungsi tempat 'ariabel tersebut dideklarasikan

• idak ada inisialisasi secara otomatis (saat 'ariabel diciptakan, nilainya tak menentu).

<ariabel ;ksternal

Lariabel eksternal merupakan 'ariabel yang dideklarasikan di luar fungsi, dengan sifat :

• dapat diakses oleh semua fungsi

• kalau tak diberi nilai, secara otomatis diinisialisasi dengan nilai sama dengan nol.

<ariabel &tatis

Lariabel statis dapat berupa 'ariabel internal (didefinisikan di dalam fungsi) maupun

'ariabel eksternal. #ifat 'ariabel ini :

• 0alau 'ariabel statis bersifat internal, maka 'ariabel hanya dikenal oleh fungsi tempat 'ariabeldideklarasikan

• 0alau 'ariabel statis bersifat eksternal, maka 'ariabel dapat dipergunakan oleh semua fungsi

yang terletak pada file yang sama, tempat 'ariabel statis dideklarasikan

• /erbeda dengan 'ariabel lokal, 'ariabel statis tidak akan hilang sekeluarnya dari fungsi

(nilai pada 'ariabel akan tetap diingat).

• 1nisialisasi akan dilakukan hanya sekali, yaitu saat fungsi dipanggil yang pertama kali. 0alau

tak ada inisialisasi oleh pemrogram secara otomatis akan diberi nilai a*al nol

<ariabel Register

Lariabel register adalah 'ariabel yang nilainya disimpan dalam register dan bukan dalammemori G?. Lariabel yang seperti ini hanya bisa diterapkan pada 'ariabel yang lokal atau

 parameter formal, yang bertipe char atau int.

Pengenalan Konsep Pe!rogra!an Terstruktur

Fungsi sangat bermanfaat untuk membuat program yang terstruktur.

#uatu program yang terstruktur dikembangkan dengan menggunakan

8top-do*n design (rancang atas ba*ah). ada C suatu program disusun dari

sejumlah fungsi dengan tugas tertentu. #elanjutnya masing masing fungsi

dipecah -pecah lagi menjadi fungsi yang lebih kecil.

embuatan program dengan cara ini akan memudahkandalam pencarian kesalahan ataupun dalam hal pengembangan dan tentu saja

mudah dipahami@ dipelajari.

#. Per2obaan+. ?dakah sesuatu yang salah pada sebuah fungsi yang tidak mempunyai return 'alue R

4elaskan analisismu tentang sebuah fungsi yang tidak memiliki return 'alueU

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  26

Page 27: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 27/29

a. #ource CodeHinclude Istdio.hJ

oid tanpa&eturn(int);

main(){

oid penampung;

printf($%&'*+ 9 /0'1 2n&345&' 6 78.8.9 6 5:*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);

printf($'nalisis >ungsi tanpa &eturn$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n2n$);

 tanpa&eturn(7H);

}

oid tanpa&eturn(int angka){

printf($>ungsi ini tidak memiliki return alue!$);}

 b. Capture rogram

c. ?nalisis rogramada dasarnya tidak ada yang salah pada sebuah fungsi yang tidak memiliki return 'alue atau

nilai kembalian. 0arena di bahasa C sendiri, sudah disediakan tipe data 'oid yang digunakan

untuk mendeklarasikan fungsi yang tidak memiliki return 'alue.

 %amun hasil fungsi yang tidak memiliki return 'alue tersebut tentu saja tidak bisa diassign ke

'ariable lain. &al tersebut disebabkan beberapa hal, pertama tentu saja karena fungsi tersebut

tidak memiliki return 'alue dan yang kedua kita ketahui sendiri bah*asannya 'ariable dengan

tipe data 'oid tidak ada, sehinga tidak ada 'ariable yang bisa menampung hasil yang 'oid tadi.

#eperti pada gambar di ba*ah ini, tidak bisa sebuah 'ariable bertipe 'oid.

#ehingga tidak bisa mengassign ke hasil fungsi ke 'ariable

?kibatnya agar proram tetap berjalan, maka tidak diperlukan lagi sebuah 'ariable penamung,

dan dalam fungsi tersebut langsung melakukan tugasnya seperti printf saja tanpa memberikan

nilai kembalian

3. ?pakah yang terjadi jika sebuah fungsi memberikan return 'alue tetapi tidak diassign

ke 'ariabel apapun R

a. #ource Code#include stdio!h"

int tambahkan(int, int);

main()

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  27

Page 28: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 28/29

{int bil,bil7;

printf($%&'*+ 9 /0'1 72n&345&' 6 78.8.9 6 5:*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);printf($'nalisis >ungsi dengan &eturn tanpa %enampung$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n2n$);

 printf($asukkan bilangan 2t<$);scanf($@d$,Abil);printf($asukkan bilangan 72t<$);

scanf($@d$,Abil7);

tambahkan(bil,bil7); LLidak diassign ke ariabel apapun}

int tambahkan(int angka, int angka7){

return angka B angka7;}

 b. Capture rogram

c. ?nalisis rogram#ebenarnya, jika sebuah fungsi memberikan return 'alue namun tidak diassign ke 'ariable

manapun tidak akan terjadi error maupun *arning sedikitpun, namun yang terjadi adalah

hasil return 'alue tersebut tidak bisa diperoleh atau diolah kembali di fungsi pemanggil

sehingga pemanggilan fungsi tersebut bisa kita katakana sia-sia. &asil dari fungsi hanya

 berlaku di fungsi tersebut tanpa berpengaruh ke bagian program yang lainnya.

. ?pakah yang terjadi jika sebuah fungsi diassign ke sebuah 'ariabel padahal fungsi

tersebut tidak memiliki return 'alueR

a. #ource Code#include stdio!h"

int tambahkan(int, int);

main(){

int bil,bil7,hasil;

printf($%&'*+ 9 /0'1 .2n&345&' 6 78.8.9 6 5:*2n$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n$);printf($'nalisis >ungsi tanpa &eturn tapi 5itampung$);printf($2n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2n2n$);

 printf($asukkan bilangan 2t<$);scanf($@d$,Abil);printf($asukkan bilangan 72t<$);scanf($@d$,Abil7);

hasil < tambahkan(bil,bil7); LLidak memiliki return alue tapi diassign

printf($Casil penjumlahan 2t<@d$,hasil);

getch();}

int tambahkan(int angka, int angka7){

int jum < angka B angka7;int lainnya < 7.;

}

 b. Capture rogram

Laporan Resmi Praktikum Konsep Pemrograman : Fungsi | Rendra Budi Hutama

[2110131036]  28

Page 29: Laporan Resmi 13-16  Konsep Pemrograman [Function]

8/20/2019 Laporan Resmi 13-16 Konsep Pemrograman [Function]

http://slidepdf.com/reader/full/laporan-resmi-13-16-konsep-pemrograman-function 29/29

c. ?nalisis rogram

Fungsi yang tidak memiliki return 'alue seharusnya bertipe 'oid seperti pada soal nomor 

+, sehingga apabila dijalankan fungsi yang tanpa return 'alue namun harus diassign pasti

akan error. ?kan tetapi pada percobaan kali ini fungsi yang dicoba adalah bertipe integer.

?nehnya, pada percobaan menggunakan tipe data int(integer) pada fungsi, *alaupun tanpa

return 'alue, program tetap menjalankan fungsi terebut dangan hasil @ return 'alue otomatis

yaitu hasil proses terakhir di fungsi yang melibatkan parameter formal. &al tersebut

ditunjukkan pada capture program diatas.

. Kesi!pulan

+. Lariabel dapat digolongkan berdasarkan kelas penyimpanan yaitu berupa : 'ariabel lokal,

'ariabel eksternal, 'ariabel statis dan 'ariabel register.

3. asing-masing kelas penyimpanan memiliki karakteristik sendiri.

a. Lariabel "okal : &anya dapat diakses dalam fungsi tempat dia dideklarasikan.

 b. Lariabel Eksternal : !apat diakses di fungsi mana saja di dalam program.c. Lariabel #tatis : %ilainya disimpan dan dapat diakses ketika fungsi dijalankan lagi

d. Lariabel Gegister : Lariabel yang nilainya disimpan dalam register bukan di G?

. ada C suatu program disusun dari sejumlah fungsi dengan tugas tertentu. #elanjutnya masingmasing fungsi dipecah -pecah lagi menjadi fungsi yang lebih kecil.