22
FUNGSI DALAM BAHASA “CKELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196) OCTAVIANA (5A412139) OKKY MAHENDRA (55411442) UNIVERSITAS GUNADARMA 2012

FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

  • Upload
    docong

  • View
    234

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

FUNGSI DALAM BAHASA “C”

KELOMPOK 6

EKA FITRI YANI (52411343)

M FIRAS AUFAR (54411196)

OCTAVIANA (5A412139)

OKKY MAHENDRA (55411442)

UNIVERSITAS GUNADARMA

2012

Page 2: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

ii

KATA PENGANTAR

Segala puji bagi Tuhan Yang Maha Esa karena berkat rahmat dan hidayah-Nya kami dapat

menyelasaikan makalah ini tepat waktu dan dengan sebaik-baiknya.

Makalah ini disusun agar pembaca dapat memperluas ilmu tentang Fungsi pada Bahasa

Pemrograman C yang kami sajikan berdasarkan pengamatan dari beberapa sumber. Penyusun

sangat berterima kasih kepada semua pihak yang telah membantu menyelesaikan makalah ini.

Semoga makalah ini dapat bermanfaat dan memberikan wawasan yang lebih luas kepada

pembaca. Walaupun makalah ini memiliki kelebihan dan kekurangan, penyusun mohon kepada

pembaca untuk memberi saran dan kritik yang bersifat membangun.

Depok, 19 Desember 2012

Penyusun

Page 3: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

iii

DAFTAR ISI

Kata Pengantar ii

Daftar Isi iii

FUNGSI DALAM BAHASA C

A. Pengertian Fungsi 1

B. Mendefinisikan Fungsi 1

C. Deklarasi Fungsi 2

D. Parameter Formal dan Parameter Aktual 3

E. Ruang Lingkup Variabel 4

a. Variabel Lokal 4

b. Variabel Global 5

c. Variabel Register 6

d. Variabel Statik 7

F. Pengiriman Parameter 7

a. Pengiriman Parameter Secara Nilai (Call by Value) 7

b. Pengiriman parameter secara acuan (Call by reference) 9

c. Pengiriman Parameter Berupa Larik 10

G. Rekursi 11

H. Contoh Program Function 13

Daftar Pustaka 19

Page 4: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

1

FUNGSI DALAM BAHASA “C”

A. PENGERTIAN FUNGSI

Fungsi merupakan suatu bagian dari program yang dimaksudkan untuk mengerjakan

suatu tugas tertentu dan letaknya terpisah dari program yang memanggilnya. Fungsi merupakan

elemen utama dalam bahasa C karena bahasa C sendiri terbentuk dari kumpulan fungsi-fungsi.

Dalam setiap program bahasa C, minimal terdapat satu fungsi yaitu fungsi main(). Fungsi banyak

diterapkan dalam program-program C yang terstruktur. Keuntungan penggunaan fungsi dalam

program yaitu program akan memiliki struktur yang jelas (mempunyai readability yang tinggi)

dan juga akan menghindari penulisan bagian program yang sama. Dalam bahasa C fungsi dapat

dibagi menjadi dua, yaitu fungsi pustaka dan fungsi yang didefinisikan atau dibuat oleh

programmer.

B. MENDEFINISIKAN FUNGSI

Suatu fungsi secara umum mempunyai dua buah komponen utama, yaitu definisi fungsi

dan tubuh fungsi. Definisi fungsi berisi dengan tipe dari fungsi, nama dari fungsi dan argumen-

argumennya jika digunakan. Tubuh fungsi berisi dengan statemen-statemen yang akan

melakukan tugas yang akan diberikan kepada fungsi yang bersangkutan.

Bentuk umum dari fungsi :

tipe_fungsi nama-fungsi(argumen1,argumen2,...) Definisi fungsi

{

..........................................................

.......................................................... Badan fungsi

..........................................................

}

Definisi fungsi ditulis sebelum tubuh fungsi tanpa diakhiri dengan titik koma. Tipe di

definisi fungsi menunjukkan tipe dari fungsi. Tipe dari fungsi tergantung dari tipe data hasil

balik yang akan diberikan oleh fungsi. Misalnya hasil balik dari fungsi berupa nilai numerik

pecahan, maka tipe dari fungsi dapat dibuat float atau double atau long double tergantung pada

Page 5: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

2

ketepatan yang diinginkan. Jika fungsi tidak memberikan nilai balik, maka tipenya adalah void.

Tipe dari fungsi ini tidak dapat ditulis jika tipenya adalah char atau int. Jika suatu fungsi

didefinisikan tanpa menggunakan tipenya, maka akan dianggap bertipe integer.

Contoh definisi fungsi dengan menggunakan argumen atau parameter :

int Fungsi (float A, int B, char C)

Hal-hal yang perlu diperhatikan dalam penggunaan fungsi:

a) Kalau tipe fungsi tidak disebutkan, maka akan dianggap sebagai fungsi dengan nilai

keluaran bertipe integer.

b) Untuk fungsi yang memiliki keluaran bertipe bukan integer, maka diperlukan

pendefinisian penentu tipe fungsi.

c) Untuk fungsi yang tidak mempunyai nilai keluaran maka dimasukkan ke dalam tipe void

d) Pernyataan yang diberikan untuk memberikan nilai akhir fungsi berupa pernyataan

return.

e) Suatu fungsi dapat menghasilkan nilai balik bagi fungsi pemanggilnya.

C. DEKLARASI FUNGSI

Suatu fungsi yang memberikan hasil balik selain tipe integer perlu dideklarasikan

sebelum digunakan. Deklarasi fungsi ditulis sebelum fungsi tersebut digunakan.

Bentuk umum dari deklarasi fungsi :

tipe nama_fungsi( argumen1, argumen2, ... );

Jika bagian dari program yang menggunakan fungsi diletakkan sebelum definisi fungsi,

maka deklarasi fungsi diperlukan. Akan tetapi jika bagian program yang menggunakan fungsi

terletak setelah definisi dari fungsi, maka deklarasi fungsi boleh tidak dapat dituliskan. Jika suatu

fungsi memberikan hasil balik, maka nilai hasil balik yang diberikan oleh fungsi dapat dilakukan

oleh statement return yang diikuti oleh nilai hasil baliknya yang ditulis tanda kurung.

Contoh :

return(F);

Contoh program :

#include <stdio.h>

#include <conio.h>

Page 6: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

3

int faktorial (int N); /*prototype fungsi*/

int main()

{

int N;

int fak;

printf ("berapa faktorial ? ");scanf ("%d", &N);

fak = faktorial (N);

printf ("%d faktorial = %d\n", N, fak);

getch();

}

int faktorial (int N) /*definisi fungsi*/

{

int I;

int F=1;

if (N<=0)

return (0);

for (I=2;I<=N;I++)

F *= I;

return(F);

}

Output :

D. PARAMETER FORMAL DAN PARAMETER AKTUAL

Parameter Formal adalah variabel yang ada pada daftar parameter dalam

definisi fungsi. Parameter Aktual adalah variabel (parameter) yang dipakai dalam

Page 7: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

4

pemanggilan fungsi. Dalam contoh program pertambahan di atas parameter formal terdapat pada

pendefinisian fungsi.

Contoh program :

#include <stdio.h>

#include <conio.h>

int persegi(int s) /* Parameter formal */

{

int L;

L=s*s;

return (L);

}

main()

{

int Luas;

Luas = persegi(5); /* Parameter aktual */

printf ("Luas : %d ", Luas);

getch();

}

E. RUANG LINGKUP VARIABEL

Terdapat tiga macam bentuk variabel yang mempunyai ruang lingkup berbeda, yaitu

variabel lokal, variabel global, variabel register dan variabel statik.

a. Variabel Lokal

Merupakan variabel yang namanya dan nilainya hanya dikenal di suatu blok statemen tertentu

saja atau di dalam suatu fungsi. Variabel lokal akan dihapus dari memori jika proses sudah

meninggalkan blok statemen letak variabel lokalnya.

Sifat-sifat variabel lokal :

a) Secara otomatis akan diciptakan ketika fungsi dipanggil dan akan lenyap ketika proses

eksekusi terhadap fungsi berakhir.

Page 8: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

5

b) Hanya dikenal oleh fungsi tempat variabel dideklarasikan

c) Tidak ada inisialisasi secara otomatis (saat variabel diciptakan nilainya random).

d) Dideklarasikan dengan menambahkan kata “auto” (opsional).

b. Variabel Global

Variabel global (eksternal) adalah variabel yang dideklarasikan di luar fungsi.

Sifat-sifat variabel global :

a) Dikenal (dapat diakses) oleh semua fungsi.

b) Jika tidak diberi nilai awal secara otomatis berisi nilai nol.

c) Dideklarasikan dengan menambahkan kata “extern” (opsional).

Contoh program :

#include <stdio.h>

#include <conio.h>

int a = 10; /* Variabel Global */

int b = 20;

int c = 30;

void lokal(int a,int b,int c);

main()

{

int d;

printf("ini adalah variabel global\n a=%d\n b=%d\n c=%d\n", a,b,c);

d = a+b;

printf("nilai d: %d\n", d);

lokal(a,b,c);

getch();

}

void lokal (int a,int b,int c)

{

Page 9: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

6

a=1; /* Variabel Lokal */

b=2;

c=3;

int d= a+b;

printf("ini adalah variabel lokal\n a=%d\n b=%d\n c=%d\n", a,b,c);

printf ("nilai d = %d", d);

getch();

}

Output :

c. Variabel Register

Variabel Register adalah variabel yang nilainya disimpan dalam register dan bukan dalam

memori RAM.

Sifat-sifat variabel register :

a) Hanya dapat diterapkan pada variabel lokal yang bertipe int dan char.

b) Digunakan untuk mengendalikan proses perulangan (looping).

c) Proses perulangan akan lebih cepat karena variabel register memiliki kecepatan yang

lebih tinggi dibandingkan variabel biasa.

d) Dideklarasikan dengan menambahkan kata “register”.

Contoh Program :

#include <stdio.h>

int pangkat(register int a, register int b){

register int hasil;

hasil = 1;

for (;b;b–){

hasil *=a;

Page 10: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

7

}

return hasil;

}

main(){

printf(“2^6 = %d\n”,pangkat(2,6));

return 0;

}

Output :

d. Variabel Statik

Variabel statis adalah variabel yang nilainya tetap dan bisa berupa variabel lokal

(internal) dan variabel global (eksternal).

Sifat-sifat variabel statis :

a) Jika bersifat internal (lokal), maka variabel hanya dikenal oleh fungsi tempat variabel

dideklarasikan.

b) Jika bersifat eksternal (global), maka variabel dapat dipergunakan oleh semua fungsi

yang terletak pada program yang sama.

c) Nilai variabel statis tidak akan hilang walau eksekusi terhadap fungsi telah berakhir.

d) Inisialisasi hanya perlu dilakukan sekali saja, yaitu pada saat fungsi dipanggil pertama

kali.

e) Jika tidak diberi nilai awal secara otomatis berisi nilai nol.

f) Dideklarasikan dengan menambahkan kata “static”.

F. PENGIRIMAN PARAMETER

a. Pengiriman Parameter Secara Nilai (Call by Value)

Yang dikirim adalah nilai dari datanya, bukan alamat memori letak datanya. Perubahan

nilai di fungsi tidak akan merubah nilai asli di bagian program yang memanggil fungsi walaupun

Page 11: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

8

keduanya menggunakan nama variabel yang sama. Merupakan pengiriman searah, yaitu dari

bagian program yang memanggil fungsi ke fungsi yang dipanggil.

Contoh program :

#include <stdio.h>

void Secara_Nilai(float A, float B, char C);

main()

{

char C='a';

float A = 25, *Alamat_A;

Alamat_A=&A;

Secara_Nilai(A,A/3,C);

printf(“Di fungsi utama setelah memanggil fungsi Secara_Nilai:\n”);

printf(“Nilai A adalah %f di alamat %p\n”, A, Alamat_A);

printf(“Nilai A/3 adalah %f\n”, A/3);

printf(“Nilai karakter C adalah %c\n”, C);

}

void Secara_Nilai(float A, float B, char C);

{

float *Alamat_A;

Alamat_A=&A;

A=7;

printf(“Di fungsi Secara_Nilai:\n”);

printf(“Nilai A adalah 5f di alamat %p\n”,A,Alamat_A);

printf(“Nilai B adalah %f\n”,B);

printf(“Nilai karakter C adalah %c\n\n”,C);

}

Output :

Di fungsi Secara_Nilai:

Nilai A adalah 7.000000 di alamat FFCA

Nilai B adalah 8.333333

Page 12: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

9

Nilai karakter C adalah a. Di fungsi utama setelah memanggil Secara_Nilai;, Nilai A adalah

25.000000 di alamat FFD8, Nilai A/3 adalah 8.333333, Nilai karakter C adalah a

Keterangan :

Parameter-parameter nyata yang dikirimkan adalah datanya, yaitu untuk variabel A, A/3,

dan C sebagai berikut : Secara_Nilai(A, A/3, C);

Variabel A dan C menempati memori yang berbeda untuk fungsi utama yang memanggil

fungsi dan yang digunakan di fungsi Secara_Nilai(). Untuk fungsi utama, variabel A

disimpan di alamat FFD8, sedangkan di fungsi Secara_Nilai() nilai variabel A disimpan

dalam alamat memori FFCA.

Perubahan nilai variabel A di fungsi Secara_Nilai() menjadi bernilai 7 tidak merubah

nilai variabel A ini di fungsi utama yang akan tetap bernilai 25.

Pengiriman suatu nilai merupakan pengiriman satu arah sebagai berikut : Secara_Nilai(A,

A/3, C); void Secara_Nilai(float A,float B, Char C)

Pengiriman secara nilai dapat mengirimkan suatu ungkapan, yaitu A/3.

b. Pengiriman parameter secara acuan (Call by reference)

Yang dikirim adalah alamat memori letak datanya, bukan nilai dari datanya. Perubahan

nilai di fungsi akan merubah nilai asli di bagian program yang memanggil fungsi. Merupakan

pengiriman dua arah, yaitu dari bagian program yang memanggil fungsi ke fungsi yang dipanggil

dan sebaliknya. Contoh di bawah ini akan menunjukkan bahwa perubahan nilai di fungsi untuk

parameter yang dikirimkan secara acuan akan merubah juga nilai di bagian program yang

memanggilnya. Karena sifat dua arah ini, maka pengiriman parameter secara acuan dapat juga

dipakai sebagai pengganti hasil balik dari fungsi. Di contoh ini, parameter nyata C akan

mengirimkan alamatnya ke fungsi Tambah( ). Setelah proses di Tambah( ) selesai, alamat ini

akan berisi dengan hasil proses fungsi, sehingga dapat digunakan dibagian program yang

memanggilnya sebagai hasil yang diperoleh dari fungsi yang dipanggil.

Contoh program :

#include “stdio.h”

#include “conio.h”

void tukar(int *px, int *py);

void main()

Page 13: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

10

{ int a,b;

clrscr();

a = 15;

b = 10;

printf(“Nilai sebelum pemanggilan fungsi\n”);

printf(“a = %i b = %i\n\n”, a, b);

tukar(&a,&b); /* parameter alamat a dan alamat b */

printf(“Nilai setelah pemanggilan fungsi\n”);

printf(“a = %i b = %i\n\n”, a, b);

getch();

}

void tukar(int *px, int *py)

{ int z; /* variabel sementara */

z = *px;

*px = *py;

*py = z;

printf(“Nilai di akhir fungsi tukar()\n”);

printf(“*px = %i *py = %i\n\n”, *px, *py);

}

Output :

c. Pengiriman Parameter Berupa Larik

Pengiriman parameter berupa larik (yang dibahas larik dimensi satu) sebenarnya

merupakan pengiriman secara acuan, karena sebenarnya yang dikirimkan adalah alamat dari

elemen pertama lariknya, bukan seluruh nilai- nilai elemennya. Alamat elemen pertama dari larik

dapat ditunjukkan oleh nama lariknya yang tidak ditulis dalam indeksnya. Bentuk ini akan

tampak sebagai argumen di parameter nyata untuk bagian yang memanggil fungsi.

Page 14: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

11

Contoh program :

#include<stdio.h>

void Cetak_Mundur(char S[]);

main()

{

char S[]=”Ini string”;

Cetak_Mundur(S);

}

void Cetak_Mundur(char S[])

{

int I,N;

for(N=0; S[N];N++);

for (I=N-1;I>=0;I--) printf(“%c”,S[I]);

printf(“\n”);

}

Output :

gnirtS inI

G. REKURSI

Rekursi adalah suatu proses dari fungsi yang memanggil dirinya sendiri secaraberulang-

ulang.

Contoh program :

#include < stdio.h >

long int Fak_Rekursif ( int N );/* prototype fungsi */

main()

{

int N ;

N = 5;

printf(“%d faktorial = %ld\n”, N, Fak_Rekursif(N));

}

Page 15: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

12

long int Fak_Rekursif ( int N )/* definisi fungsi */

{

long int F;

if ( N <= 1 ) return( 1 ) ;

else

{

F = N * Fak_Rekursif( N – 1);

return(F);

}

}

Output :

5 faktorial = 120

Penjelasan :

Fungsi utama memanggil fungsi Fak_Rekursif dengan mengirimkan nilai 5 untuk

parameter nyata N, yang maksudnya akan dilakukan perhitungan sebanyak 5 faktorial.

Jika nilai dari N pertama kali yang diberikan oleh fungsi utama bernilai kurang atau sama

dengan satu, maka hasil faktorial yang akan diberikan adalah bernilai 1.

Jika N pertama kali yang diberikan oleh fungsi utama lebih besar dari 1,maka proses

rekursi akan dilakukan. Misalnya nilai N adalah 5, maka proses rekursi yang pertama

adalah : F=5*Fak_Rekursif(4); Proses ini akan memanggil kembali fungsi dirinya sendiri

dengan mengirimkan nilai 4 sebagai nilai N yang baru. Karena nilai N masih lebih besar

dari 1, maka proses rekursi yang kedua akan dilakukan dengan hasil adalah

4*Fak_Rekursif(3). Begitu selanjutnya sampai nilai N adalah 1. Untuk nilai N =1 ini,

statemen return(1) akan mengembalikan proses ke bagian yang memanggilnya, yaitu

statemen setelah statemen F=5*Fak_Rekursif(N-1). Statemen return(F) kemudian baru

akan mengembalikan proses ke fungsi utama.

Page 16: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

13

H. CONTOH PROGRAM FUNCTION

Contoh Program ke-1 :

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

int jumlah;

void bakso()

{

int b;

printf("masukkan jumlah pesanan anda : ");scanf("%d",&b);

jumlah = b*7000;

printf("total harga bakso pesanan anda = %d ", jumlah);

}

void mie_ayam()

{

int my;

printf("masukkan jumlah pesanan anda : ");scanf("%d",&my);

jumlah = my*6000;

printf("total harga mie ayam pesanan anda = %d ", jumlah);

}

void soto_ayam()

{

int soto;

printf("masukkan jumlah pesanan anda : ");scanf("%d",&soto);

jumlah = soto*8000;

printf("total harga soto ayam pesanan anda = %d ", jumlah);

}

void menu_makan()

{

int x;

printf("Pilih Makanan\n");

Page 17: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

14

printf(" 1. BAKSO\n 2. MIE AYAM\n 3. SOTO AYAM\n");

printf("Masukkan Pilihan Anda : "); scanf("%d", &x);

if (x==1){bakso();}

else if (x==2) {mie_ayam();}

else if (x==3) {soto_ayam();}

else {printf("Anda memasukkan yg tidak ada di pilihan");}

}

void estehmanis();

void jusjeruk();

void jusalpukat();

void menu_minum()

{

int y;

printf("\n\nPilih Minuman\n");

printf(" 1. ES TEH MANIS\n 2. JUS JERUK\n 3. JUS ALPUKAT\n");

printf("Masukkan Pilihan Anda : "); scanf("%d", &y);

if (y==1){estehmanis();}

else if (y==2) {jusjeruk();}

else if (y==3) {jusalpukat();}

else {printf("Anda memasukkan yang tidak ada di pilihan");}

}

void estehmanis()

{

int stm;

printf("masukkan jumlah pesanan anda : ");scanf("%d",&stm);

jumlah = stm*2000;

printf("total harga es teh manis pesanan anda = %d ", jumlah);

}

void jusjeruk()

{

int jusjer;

Page 18: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

15

printf("masukkan jumlah pesanan anda : ");scanf("%d",&jusjer);

jumlah = jusjer*3000;

printf("total harga jus jeruk pesanan anda = %d ", jumlah);

}

void jusalpukat()

{

int alpukat;

printf("masukkan jumlah pesanan anda : ");scanf("%d",&alpukat);

jumlah = alpukat*5000;

printf("total harga jus alpukat pesanan anda = %d ", jumlah);

}

main()

{

menu_makan();

menu_minum();

getch();

}

Output

Page 19: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

16

Contoh Program ke-2 :

#include "stdio.h"

#include "conio.h"

long int Fak_Rekursif ( int N )/* definisi fungsi */

{ long int F;

if ( N <= 1 ) return( 1 ) ;

else

{ F = N * Fak_Rekursif( N - 1);

return(F); }

}

int dectobin(int n){

if (n>0){

dectobin(n/2);

printf("%d", n & 1);

} return n; }

void Cetak_Mundur(char S[])

{ int I,N;

for(N=0; S[N];N++);

for (I=N-1;I>=0;I--) printf("%c",S[I]);

printf("\n"); }

int pil; int N; int fak; int n;

char S[40]; char x;

void main()

{ x='y';

do {

clrscr();

printf ("======== Menu =========\n");

printf ("1. Faktorial\n");

printf ("2. Konversi Desimal Ke Biner\n");

printf ("3. String Terbalik\n");

Page 20: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

17

printf ("Masukkan pilihan Anda : "); scanf ("%d",&pil);

switch (pil)

{ case 1:

{

printf ("\nMasukkan nilai N : "); scanf ("%d", &N);

fak = Fak_Rekursif(N);

printf("\n%d faktorial = %ld\n", N, fak);}

printf ("\nIngin kembali ke menu awal (y/t)?");

x = getch();

break;

case 2:

{

printf ("\nMasukkan bilangan desimal : "); scanf ("%d", &n);

printf ("\nBiner dari %d adalah ",n);

dectobin(n); }

printf ("\n\nIngin kembali ke menu awal (y/t)?");

x = getch();

break;

case 3:

{

printf ("\nMasukkan Nilai String : "); scanf ("%s",&S);

printf ("\nString terbalik dari %s adalah ",S);

Cetak_Mundur(S); }

printf ("\nIngin kembali ke menu awal (y/t)?");

x = getch();

break;

}

}

while(x=='y');

}

Page 21: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

18

Output

Page 22: FUNGSI DALAM BAHASA “C - Gunadarma Universityrogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DALAM... · KELOMPOK 6 EKA FITRI YANI (52411343) M FIRAS AUFAR (54411196)

19

DAFTAR PUSTAKA

Rachmat, Antonius.2010."Algoritma dan Pemrograman dengan Bahasa C".Yogyakarta : ANDI.

http://www.ilab.gunadarma.ac.id/modul/NewPTA2011-2012/AP3%20Cobol&C/m6.pdf

http://blog.sunan-ampel.ac.id/ahmadlubab/files/2012/06/solichin-bahasac-07.pdf