MAKALAH
ALGORITMA DAN DASAR PEMPROGRAMAN
FUNGSI & REKURSI
DOSEN PEMBIMBING
Muhammad Hasbi, ST.MT
DISUSUN OLEH
Nova Atur Rojab
NIM : 3201716092
POLITEKNIK NEGRI PONTIANAK
JURUSAN TEKNIK ELEKTRO
PRODI TEKNNIK INFORMATIKA
2017/2018
i
KATA PENGANTAR
Dengan menyebut nama Allah SWT yang Maha Pengasih dan Penyayang atas berkat
limpahan Rahmat-nya saya dapat menyelesaikan makalah tentang struktur keputusan.
Makalah ini saya susun sendiri dengan semaksimal mungkin untuk memenuhi tugas
dari dosen pembimbng saya pada mata kuliah Algoritma dan Dasar Pemprograman. Saya
menyadari bahwa makalah ini masih banyak kekurangan, karena saya sendiri belum pandai
dalam menyusun makalah dan harap dimaklumi. Akan tetapi saya sudah berusaha
semaksimal mungkin agar makalah ini dapat disusun dengan rapi dan jelas.
Akhir kata saya sampaikan semoga makalah ini dapat membawa manfaat bagi kita
semua. Karena keterbatasan kemampuan saya, saya menerima kritik dan saran dari para
pembaca agar dapat menyempurnakan makalah ini.
Pontianak, 08 Januari 2018
Nova Atur Rojab
ii
DAFTAR ISI
KATA PENGANTAR .................................................................................................. ii
DAFTAR ISI ................................................................................................................ iii
BAB I PENDAHULUAN ............................................................................................ 1
A. Latar Belakang ............................................................................................... 1
B. Rumusan Masalah .......................................................................................... 1
C. Tujuan............................................................................................................. 1
D. Manfaat........................................................................................................... 1
BAB II PEMBAHASAN .............................................................................................. 2
A. Mengenal Fungsi .......................................................................................... 2
1. Pengertian dan definisi ............................................................................ 2
2. Tujuan ..................................................................................................... 3
3. Komponen – komponen dalam fungsi .................................................... 3
B. Jenis – jenis fungsi pada c++ ........................................................................ 4
1. Void (fungsi tanpa nilai balik) ................................................................ 4
2. NonVoid (fungsi dengan nilai balik) ...................................................... 5
C. Lingkup variabel c++ .................................................................................... 6
1. Variabel lokal .......................................................................................... 6
2. Variabel global ........................................................................................ 6
3. Variabel statik ......................................................................................... 7
D. Inline Function .............................................................................................. 7
E. Function Overloading ................................................................................... 8
F. Fungsi Rekursi .............................................................................................. 8
G. Contoh Program ............................................................................................ 9
1. Void (fungsi tanpa nilai balik) ................................................................ 9
2. Non void (fungsi dengan nnilai balik) .................................................... 10
3. Function Overloading ............................................................................. 12
BAB III PENUTUP ...................................................................................................... 14
A. Kesimpulan..................................................................................................... 14
B. Saran ............................................................................................................... 14
DAFTAR PUSTAKA ................................................................................................... 15
iii
BAB 1
PENDAHULUAN
A. Latar Belakang
Program komputer yang dibuat untuk menjawab permasalahan umumnya
berukuran sangat besar, karena itu perlu dibuat potongan-potongan program yang
lebih kecil (biasa disebut modul) yang lebih mudah untuk ditangani dibanding dengan
program yang terdiri dari banyak baris. Modul program ini disebut fungsi (function).
Dimana fungsi digunakan untuk membagi program berdasarkan bagian-bagian
tertentu yang memiliki tugasnya masing-masing. Tentu saja semua fungsi yang
bakalan kamu buat tidak akan berjalan sendiri-sendiri namun bekerja atas dasar
panggilan atau koordinasi fungsi utama atau fungsi main().
Dalam pemrograman C++ harus memiliki fungsi (funtion), minimal satu
fungsi yaitu fungsi main(). Semua contoh program yang telah dibahas sebelumnya,
hanya memiliki satu fungsi yaitu fungsi main(). Dalam C++, program merupakan
kumpulan dari fungsi-fungsi, baik itu fungsi yang didefenisikan secara langsung
dalam program maupun fungsi yang disimpan dalam suatu file header.
B. Rumusan Masalah
Pengertian Fungsi.
Jenis – jenis Fungsi.
Contoh dari masing-masing jenis fungsi.
C. Tujuan
Memudahkan dalam pembuatan program
Menghemat ukuran program
Mengerti apa itu fungsi dalam c++
D. Manfaat
Dalam mempelajari fungsi ini, kita dapat mendapat manfaat yang begitu
besar yaitu kita dapat mudah mengerti dalam membuat sebuah program,bagaimana
cara menggunakannya dan lain sebagainya.
1
BAB II
PEMBAHASAN
A. Mengenal Fungsi
1. Pengertian dan Definisi
Fungsi merupakan subprogram yang berguna untuk membentuk program
menjadi modul-modul sehingga lebih sederhana, mudah dipahami dan dapat
digunakan berulang kali.
Pada bahasa pemrograman C++, fungsi dibedakan menjadi dua, yaitu user-
defined function dan built-in function. User-defined function adalah fungsi-fungsi
yang idefenisikan sendiri, sedangkan built-in function adalah fungsi-fungsi siap
pakai yang telah disediakan oleh compiler.
Bentuk umum dari suatu fungsi yaitu :
Tipedata namafungsi(daftarparameter)
{
/*Badan Fungsi*/
return nilaireturn; /* untuk tipe data bukan void */
}
Fungsi terdiri dari dua buah komponen utama, yaitu definisi fungsi dan tubuh
fungsi.
Definisi fungsi berisi tipe dari fungsi, nama fungsi, dan argumen-argumennya
jika digunakan.
Tubuh fungsi berisi statemen-statemen yang akan melakukan tugas yang diberikan
kepada fungsi tersebut, yang ditulis di dalam tanda kurung kurawal buka dan tutup.
Bentuk umum :
2
2. Tujuan
Menguraikan tugas pemrograman rumit menjadi langkah-langkah yang
lebih sederhana atau kecil.
Mengurangi duplikasi kode (kode yang sama ditulis berulang-ulang)
dalam program.
Dapat menggunakan kode yang ditulis dalam berbagai program yang
berbeda.
Memecah program besar menjadi kecil sehingga dapat dikerjakan oleh
programmer-programmer atau dipecah menjadi beberapa tahap sehingga
mempermudah pengerjaan dalam sebuah projek
Menyembunyikan informasi dari user sehingga mencegah adanya
perbuatan iseng seperti memodifikasi atau mengubah program yang kita
buat
Meningkatkan kemampuan pelacakan kesalahan, jika terjadi suatu
kesalahan kita tinggal mencari fungsi yang bersangkutan saja dan tak
perlu mencari kesalahan tersebut di seluruh program.
3. Komponen – komponen dalam Fungsi
Suatu fungsi jelas memiliki tipe. Tipe suatu fungsi menentukan nilai
kembalian dari fungsi tersebut. Suatu fungsi dengan tipe int (integer) akan
memberikan kembalian/ return berupa nilai bertipe integer dari
pemrosesan yang sudah dilakukannya. Berbeda dengan tipe void, dimana
tipe fungsi ini tidak memiliki nilai kembalian atau dapat dikatakan fungsi
void hanya menjalankan rutin program saja.
Nama_fungsi merupakan pengenal suatu fungsi. Nama_fungsi akan
sangat berguna dan wajib disertakan karena sebagai basis pemanggilan.
Parameter merupakan variabel penampung input suatu fungsi. Dapat
dikatakan bahwa parameter merupakan satu-satunya gerbang input dan
pertukaran nilai antara suatu fungsi dengan dunia luar (fungsi main).
Return merupakan instruksi yang berguna mengembalikan hasil kerja
suatu fungsi, untuk dapat digunakan di dunia luar (fungsi main).
3
B. Jenis – jenis Fungsi pada c++
Secara umum, terdapat 2 jenis fungsi pada c++ yaitu :
1. Void ( Fungi tanpa nilai balik )
Dalam pemrograman C++ bukanlah bahasa prosedural, karena
prosedur tidak mempunyai nilai balik. Untuk melakukan hal ini di dalam C++,
maka harus membuat suatu fungsi dengan tipe void, yang berarti tidak
memiliki nilai balik (return value).
Fungsi yang void sering disebut juga prosedur. Disebut void karena
fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari
hasil proses fungsi tersebut.
Fungsi void biasanya digunakan untuk menjalankan rutin program
tertentu saja.
Ciri-ciri dari jenis fungsi Void adalah sebagai berikut:
Tidak adanya keyword return.
Tidak adanya tipe data di dalam deklarasi fungsi.
Menggunakan keyword void.
Tidak dapat langsung ditampilkan hasilnya.
Tidak memiliki nilai kembalian fungsi
Keyword void juga digunakan jika suatu function tidak mengandung
suatu parameter apapun.
Bentuk sederhananya yaitu :
void nama_fungsi (parameter)
{
Pernyataan_yang_akan_dilakukan;
……………
}
4
2. NonVoid (Fungsi dengan nilai balik)
Fungsi non-void disebut juga function. Disebut non-void karena
mengembalikan nilai kembalian yang berasal dari keluaran hasil proses
function tersebut .
Berbeda dengan fungsi yang bertipe Void, fungsi dengan nilai balik
berguna untuk melakukan suatu proses yang dapat mengembalikan sebuah
nilai. Dalam fungsi ini harus didefenisikan tipe data dari nilai yang akan
dikembalikan.
Ciri-ciri dari jenis fungsi non void adalah sebagai berikut:
Ada keyword return
Ada tipe data yang mengawali fungsi
Tidak ada keyword void
Memiliki nilai kembalian .
Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data
tertentu
Sehingga dapat langsung ditampilkan hasilnya
Bentuk sedderhananya yaitu :
tipe_data nama_fungsi (parameter)
{
Pernyataan_yang_akan_dilakukan;
……………
return nilai_kembali;
}
5
C. Lingkup Variabel c++
Lingkup variabel menentukan keberadaan suatu variabel tertentu dalam
fungsi. Ada variabel yang hanya dikenal di suatu fungsi dan tidak dikenal pada
fungsi lain. Namun ada juga variabel yang dapat diakses oleh semua fungsi.
Terdapat 3 lingkup variabel yaitu variabel lokal, variabel global, dan variabel
statik.
1. Varabel Lokal
Variabel Lokal adalah variabel yang nama 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 :
Secara otomatis akan diciptakan ketika fungsi dipanggil dan akan
lenyap ketika proses eksekusi terhadap fungsi berakhir.
Hanya dikenal oleh fungsi tempat variabel dideklarasikan
Tidak ada inisialisasi secara otomatis (saat variabel diciptakan
nilainya random).
Dideklarasikan dengan menambahkan kata “auto” (opsional).
2. Variabel Global
Varibel Global adalah variabel yang dikenal di semua bagian-bagian
tertentu dari program. Variabel-variabel global dapat dibuat dengan cara
mendeklarasikan di luar suatu blok statemen atau di luar fungsi-fungsi yang
menggunakannya.
Sifat-sifat variabel global :
Dikenal (dapat diakses) oleh semua fungsi.
Jika tidak diberi nilai awal secara otomatis berisi nilai nol.
Dideklarasikan dengan menambahkan kata “extern” (opsional).
6
3. Variabel Statik
Variabel statik bersifat tetap, yaitu tidak dihapus variabel dan nilainya
selama proses program.
Variabel statik akan tetap ada dan nilainya akan tetap dipertahankan
walaupun proses telah keluar dari bloknya.
Sifat-sifat variabel statis :
Jika bersifat internal (lokal), maka variabel hanya dikenal oleh fungsi
tempat variabel dideklarasikan.
Jika bersifat eksternal (global), maka variabel dapat dipergunakan
oleh semua fungsi yang terletak pada program yang sama.
Nilai variabel statis tidak akan hilang walau eksekusi terhadap fungsi
telah berakhir.
Inisialisasi hanya perlu dilakukan sekali saja, yaitu pada saat fungsi
dipanggil pertama kali.
Jika tidak diberi nilai awal secara otomatis berisi nilai nol.
Dideklarasikan dengan menambahkan kata “static”.
D. Inline Function
Inline function digunakan untuk mempercepat proses program, terutama
program-program yang menggunakan sering menggunakan fungsi, terutama
program-program yang menggunakan pernyataan perulangan proses seperti for,
while dan do – while. Inline function dideklarasikan dengan menyisipkan kata
kunci inline didepan tipe data.
Contoh :
inline jumlah (int x, int y)
{
return(x + y);
}
Inline function disarankan dipakai pada fungsi yang sering dipanggil dan
ukurannya kecil (terdiri satu atau dua pernyataan), terutama jika dilibatkan pada
pernyataan pengulangan proses (while, for dan do-while).
7
E. Function Overloading
Function overloading adalah suatu proses menggunakan nama yang sama
untuk dua atau lebih fungsi. Setiap definisi ulang dari fungsi yang di overloading
harus menggunakan tipe parameter, urutan parameter, atau jumlah parameter
yang berbeda. Jumlah, tipe atau urutan parameter dari suatu fungsi disebut
function signature. Jika kita memiliki sejumlah fungsi dengan nama yang sama,
compiler akan mengidentifikasi fungsi-fungsi tersebut berdasarkan parameternya.
C++ hanya dapat mengkompilasi overloading function jika argument
fungsinya berbeda. Bila argument fungsinya sama tetapi tipe nilai kembaliannya
berbeda, compiler akan melaporkan adanya kesalahan.
F. Fungsi Rekursi
Rekursi adalah suatu proses yang memanggil dirinya sendiri secara berulang
yang biasanya dilakukan oleh fungsi atau prosedur pada pemrograman prosedural.
Karena proses dilakukan berulang-ulang, maka harus ada suatu kondisi yang
mengakhiri prosesnya. Jika tidak, maka proses tidak akan pernah berhenti sampai
memori yang digunakan tidak dapat menampung lagi
Dalam sebuah rekursi perlu adanya blok-blok kode sebagai berikut :
Basis : Basis merupakan kode yang menjadi titik berhenti dari sebuah
proses rekursi karena proses rekursi akan terus berjalan berputar
memanggil dirinya sendiri sampai sebuah kondisi basis terpenuhi. Oleh
karena itu basis sangat penting dalam sebuah proses rekursi, karena tanpa
basis sebuah proses rekursi akan terus dijalankan tanpa henti.
Rekursi : Rekursi merupakan kode dalam hal ini sebuah blok program
(prosedur, fungsi atau metode) memanggil dirinya sendiri, misalnya ada
sebuah fungsi hitung hasil faktorial, bahwa di dalamnya blok kode fungsi
itu memanggil dirinya sendiri.
8
G. Contoh Program
1. Void (fungsi tanpa nilai balik)
Menghiting luas kubus
Penulisan Program :
#include <iostream.h>
#include <conio.h>
void luas(int &l, int s)
{l= 6*s*s;}
main()
{
int s, hasil;
cout<<"CONTOH FUNGSI VOID (fungsi tanpa nilai balik)\n\n";
cout<<"Menghiting Luas Kubus \n\n";
cout<<"Masukkan panjang sisi = ";cin>>s;
luas(hasil, s);
cout<<"\nLuas = "<<hasil;
getch();
}
Hasil Eksekusi :
9
Flowchart :
Start
Input s
Luas =6*s *s
Hasil
Selesai
2. Non Void (fungsi dengan nilai balik)
Menghitung luas segitiga
Penulisan program :
#include <iostream.h>
#include <conio.h>
int luas(int a,int t)
{return (0.5*a*t);}
main(){
int alas,tinggi;
cout<<"CONTOH FUNGSI NON VOID(fungsi dengan nilai baik)"<<endl;
cout<<endl;
cout<<"Menghitung Luas Segitiga"<<endl;
cout<<endl;
10
cout<<"Masukkan Alas = ";cin>>alas;
cout<<endl;
cout<<"Masukkan Tinggi = ";cin>>tinggi;
cout<<endl;
luas(alas,tinggi);
cout<<"Luas = "<<luas(alas,tinggi);
getch();
}
Hasil Eksekusi :
Flowchart :
Start
Input x
Luas =0.5*a*t
Hasil
Selesai
11
3. Function Overloading
Penulisan Program :
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
int hitung(int b);
long hitung(long c);
float hitung(float d);
void main()
{
clrscr();
cout<<hitung(4)<<endl;
cout<<hitung(2)<<endl;
cout<<hitung(3)<<endl;
cout<<hitung(5)<<endl;
getch();
} int hitung(int b)
{
return(b*b);
} long hitung(long c)
{
return(c*c);
}
double hitung(double d)
{
return(d*d);
}
Hasil Eksekusi :
12
Flowchart :
Start
Hitung 4,
2 ,3 ,5
Int hitung (int b)
long hitung (long
c) double hitung
(double d)
Output
hasil
Selesai
13
BAB III
PENUTUP
A. Kesimpulan
Kesimpulan yang dapat diambil yaitu dengan adanya fungsi jadi kita
dipermudah dalam membuat sebuah program karena funsi dan rekursi sangat
membantu kita dan mempermudah kita dalam membuat sebuah program.
Dan juga kita dapat mempelajari dari makalah ini tentang berbagai
macam fungsi yg bisa kita gunakan dalam menyusun atau membuat uatu
program dan bisa memperingkat waktu pengerjaan programya apabila telah
benar – benar menguasai berbagai macam fungsi yang ada.
B. Saran
Dalam makalah ini massih banyak terdapat berbagai macam
kekurangan jadi saya mohon maaf. Teruslah mempelajari hal- hal yang baru
dalam pemprograman karena itu akan sangat membantu anda yg ingin
membuat sebuah program.
14
DAFTAR PUSTAKA
http://www.sinauarduino.com/artikel/fungsi-pada-pemrograman-cpp/
http://arsipbertuah.blogspot.co.id/2013/06/pengertian-fungsi-dalam-
pemograman-c.html
http://fauzyriza.blogspot.co.id/2013/05/inline-function-dan-
function.html
http://www.kangghani.com/2016/12/contoh-program-fungsi-void-dan-
non-void.html
https://www.academia.edu/8509454/OVERLOADING_FUNCTION_C
_
https://belajarohbelajar.blogspot.co.id/2012/04/jenis-jenis-fungsi-pada-
c.html
https://www.gatewan.com/2016/02/mengenal-fungsi-dalam-c.html
15