FUNGSI DALAM BAHASA C

dokumen-dokumen yang mirip
FUNGSI DALAM BAHASA C

BAB 6 FUNGSI TUJUAN PRAKTIKUM

Sedangkan bentuk umum pendefinisian fungsi adalah : Tipe_fungsi nama_fungsi(parameter_fungsi) { statement statement... }

Mengenal Subroutine pada Pemrograman C Dian Wirdasari

2 BEBERAPA FUNGSI PUSTAKA DALAM BAHASA C

Algoritma Pemrograman 2B (Pemrograman C++)

Fungsi, Parameter, Rekursi

BAB V FUNGSI Tujuan : 5.1 Dasar Fungsi

/* File program : tukar1.c Untuk melihat pengaruh pemanggilan nilai pada fungsi untuk penukaran dua data */

Fungsi 2 DASAR PEMROGRAMAN

KONSEP DASAR. menyusunnya menjadi potongan-potongan mudah untuk ditangani dibanding. conquer.

Scope Variable. Sebuah variabel di dalam sebuah fungsi memiliki jangkauan tertentu. Skop variabel terdiri dari:

FUNGSI & PROSEDUR. Pertemuan ke-12 dan 13

A. TUJUAN 1. Memecah program dalam fungsi fungsi yang sederhana. 2. Menjelaskan tentang pemrograman terstruktur.

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

IT234 ALGORITMA DAN STRUKTUR DATA FUNGSI

Fungsi DASAR PEMROGRAMAN

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

Konsep Pemrograman. Bab 8. Fungsi 2. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

Fungsi DASAR PEMROGRAMAN

MAKALAH POINTER PADA BAHASA C

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET BAHASA PEMROGRAMAN Fungsi : Passing Parameter by Value & Semester 3

# SEVEN PROCUDURE & FUNCTION

# Finally: ELEVEN Function Parameter by Value and by Reference

MODUL 5 SUBPROGRAM / FUNGSI

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Pointer & Function. Alfa Faridh Suni, S.T., M.T. PTIK

Function nama dipisahkan

Fungsi : Dasar Fungsi

MODUL 10 Fungsi 10.1 Kompetensi 10.2 Alat Dan Bahan: 10.3 Ulasan Teori: Dasar Fungsi Deklarasi Fungsi

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

Kurikulum Qt. { Basic OOP } Chapter 4. Function

BAB 6. FUNGSI. Tujuan penggunaan fungsi : 1. Program menjadi terstruktur 2. Dapat mengurangi pengulangan kode program.

A. TUJUAN 1. Menjelaskan tentang prinsip dasar fungsi. 2. Menjelaskan tentang.parameter formal dan parameter aktual

Program menjadi terstruktur Dapat mengurangi pengulangan kode program. Fungsi dapat diimplementasikan dalam tiga bentuk :

Fungsi 1 DASAR PEMROGRAMAN

Bahasa C melengkapi fasilitas modular dengan menggunakan fungsi pada setiap SubProgram. Contoh pembagian program menjadi beberapa subprogram.

PRAKTIKUM 7 FUNGSI 1

Fungsi Lanjut DASAR PEMROGRAMAN

Algoritma & Pemrograman #8. by antonius rachmat c, s.kom, m.cs

Tipe Data, Variabel, Input/Output

FUNGSI II. Variabel Statis. Sifat variabel statis: Sintaks: static tipe_data nama_variabel; Contoh: static int angka;

FUNGSI. tipe Tipe nilai yang dihasilkan oleh fungsi. Jika tidak dinyatakan, hasil fungsi dianggap bilangan bulat (int)

Achmad Solichin.

Konsep Pemrograman. Bab 7. Fungsi1. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

BAHASA PEMROGRAMAN C LANGUAGE

Pemrograman Dasar C. Minggu 6

Fungsi (II) Parameter pada fungsi Jenis variabel pada fungsi

Algoritme dan Pemrograman

Kurikulum Qt. Chapter 4 Function. Fungsi

12/29/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Address and Pointers. Pointer

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

2. Uraian Materi. a. Pengertian Fungsi

Bahasa C-M6 By Jamilah, Skom 1

Chapter 1 KONSEP DASAR C

Algoritma Pemrograman. Fery Updi,M.Kom

10.1 DASAR FUNGSI PADA BAHASA C

Konsep Pemrograman. Bab 13. Pointer 3. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

OPERASI PERNYATAAN KONDISI

Minggu ke-11 Fungsi (Function)

Algoritme dan Pemrograman

Tipe Data dan Operator

FUNCTIONS. Function adalah satu blok instruksi yang akan dieksekusi ketika dipanggil dari bagian lain dalam suatu program.

ALUR PROGRAM. SELEKSI KONDISI Statement If a. Bentuk If tunggal sederhana Sintaks : if ( kondisi ) statement ;

FUNCTION (FUNGSI) LOGO. Pendidikan Teknik Elektronika FT UNY. Muh. Izzuddin Mahali, M.Cs.

Algoritma Pemrograman. Fery Updi,M.Kom

POINTER DASAR PEMROGRAMAN

Pertemuan 06. Dasar Pemrograman Komputer [TKL-4002] 2010

Struktur Program Bahasa C

Algoritme dan Pemrograman

Pemgrograman Modular. Keuntungan:

Algoritma & Pemrograman #9. by antonius rachmat c, s.kom, m.cs

Praktikum 6. Konsep Rekursi Perbandingan Perulangan biasa dan Rekursi Implementasi Rekursi dalam Bahasa C

Fungsi (Function) Pendahuluan. Objektif. Bahan Bacaan

Proses Perulangan (Looping) DASAR PROGRAMMING 1

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1

Kisi- kisi UTS- P. Kisi- kisi UTS- T

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET BAHASA PEMROGRAMAN Fungsi Penggolongan Variabel dan Semester 3

IT234 - Algoritma dan Struktur Data. Ramos Somya

12/29/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Fungsi. Fungsi. y = f (x) = x m = jumlah ( a, b ) = a + b

P 4 Bab 3 : Dasar Pemrograman C

Struktur Dasar Bahasa C Tipe Data Dalam bahasa C terdapat lima tipe data dasar, yaitu :

Pendahuluan Pemrograman Mikrokontroler

Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :

A. TUJUAN 1. Mengetahui perbedaan antara variabel lokal, eksternal, statis dan register

STRUKTUR KENDALI PERCABANGAN

BAB 4 PENGENALAN BAHASA C

PEMROGRAMAN BERORIENTASI OBJEK

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

8.1 FUNGSI, DEKLARASI DAN DEFINISI NYA

MODUL 7 FUNGSI A. Tujuan. B. Petunjuk. C. Dasar Teori

PENGENALAN BAHASA C DAN C++

Pengertian Fungsi bagian dari program mengerjakan suatu tugas letaknya terpisah dari program yang memanggilnya

BAB I. LARIK (ARRAY) Array (larik) ialah penampung sejumlah data sejenis (homogen) yang menggunakan satu identifier (pengenal).

Array LOGO. Pendidikan Teknik Elektronika FT UNY. Muh. Izzuddin Mahali, M.Cs.

IT234 - Algoritma dan Struktur Data. Ramos Somya

xxxx alamat Praktikum 11 POINTER

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

Function. Contoh function 1 : // function example #include <stdio.h> int addition (int a, int b){ int r; r=a+b; return (r); }

Transkripsi:

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

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 ii

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 iii

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 argumenargumennya 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 1

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> 2

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) int I; int F=1; if (N<=0) return (0); for (I=2;I<=N;I++) F *= I; return(f); Output : /*definisi fungsi*/ 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 3

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. 4

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) 5

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; 6

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 7

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 8

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() 9

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. 10

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 secaraberulangulang. 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)); 11

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. 12

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"); 13

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; 14

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 15

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"); 16

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'); 17

Output 18

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 19