Anda di halaman 1dari 10

MATERI MINGGU KE-9

TEKNIK PEMROGRAMAN TERSTRUKTUR 1

FUNGSI

Definisi Fungsi adalah :


 Sub-program yang bisa digunakan kembali baik di dalam program
itu sendiri, maupun di program yang lain.
 Sekumpulan kode yang dibungkus ke dalam sebuah scope untuk
menjalankan tugas tertentu.
 Sekumpulan kode yang ditaruh dalam sebuah blok dan dibuat untuk
menjalankan tugas khusus.
 Sebuah kumpulan blok yang berisi kode atau statement yang akan
menjalankan suatu program yang nantinya akan dipanggil.
 Kode program yang dirancang untuk menyelesaikan sebuah tugas
tertentu, dan merupakan bagian dari program utama.

Tujuan pembuatan fungsi :


 Untuk menghemat penulisan kode yang mana sering ditulis
berulang-ulang.
 Membuat program lebih terstruktur dan efisien sehingga program
tersebut mudah dipahami atau dibaca alur programnya.
 Memudahkan dalam mengembangkan program yang dibagi
menjadi beberapa modul yang kecil.
 Menghemat ukuran program.
Fungsi bisa dibedakan ke dalam 2 kelompok :
1. Build In Function : fungsi-fungsi yang sudah ada dalam library C itu
sendiri, fungsi yang sudah ada secara bawaan dari dalam bahasa C.
Bahasa C menyediakan banyak fungsi bawaan, belum termasuk yang
bisa diakses dari berbagai library atau package pihak ketiga. Sebagai
contoh, printf(), scanf() dan strcpy() adalah function bawaan bahasa C.
Sedangkan fungsi yang ada di library C seperti beberapa fungsi string
yang ada di string.h (strlen, strcpy, strcmp, dll).
2. User Defined Function : fungsi yang programmer buat sendiri.

Bentuk umum dari deklarasi fungsi ( Prototipe Fungsi) :


Tipe_data nama_fungsi(daftar parameter)
deklarasi parameter;
{
tubuh-fungsi;
}

 Tipe data adalah penentu tipe data dari keluaran fungsi yang berupa
salah satu dari tipe data yang didukung oleh bahasa C
seperti char atau int.
 Nama_fungsi adalah pengenal atau identifier dari fungsi misalnya
saat dipanggil.
 Daftar_parameter adalah berisi sekumpulan parameter yang
merupakan masukan dari fungsi.
 Deklarasi parameter adalah deklarasi variabel yang merupakan
parameter didalam fungsi.
 Tubuh_fungsi akan berisi kode-program yang akan dijalankan ketika
fungsi tersebut dipanggil. Didalam tubuh fungsi bisa dideklarasikan
variabel serta menulis kode program termasuk perintah return yang
akan memberi nilai balik fungsi.
 Tipe data, daftar parameter, deklarasi parameter dan tubuh fungsi
boleh kosong namun nama-fungsi tidak.

Contoh penggunaan fungsi dalam bahasa C:

#include <stdio.h>
int hitung_luas(int panjang, int lebar)
{
int luas;
luas = panjang * lebar;
return(luas);
}
int main()
{
int panjang = 5;
int lebar =7;
int luas;
luas = hitung_luas(panjang,lebar);
printf(“%d n”,luas);
return 0;
}
Penjelasan program :

Pada contoh diatas terdapat sebuah koding program dengan sebuah


fungsi utama main() dan fungsi buatan sendiri yaitu fungsi hitung_luas.
Fungsi hitung_luas didefinisikan tipe int dengan nama hitung_luas yang
mempunyai daftar parameter panjang dan lebar.
Fungsi hitung_luas mempunyai tugas menghitung besarnya luas persegi
panjang yang merupakan perkalian dari panjang dan lebar. Hasil dari
fungsi hitung_luas dikembalikan melalui perintah return(luas).
Selanjutnya fungsi hitung_luas dipanggil dalam fungsi
utama main() dengan lebih dahulu menentukan daftar parameter beserta
nilainya yang merupakan masukan dari fungsi. Kemudian hasil balikan
fungsi hitung_luas disimpan dalam variabel luas dan ditampilkan ke layar
melalui fungsi standar printf().

Jenis-jenis variabel yang sering digunakan dalam membuat fungsi :


1. Variabel Lokal = Variabel Otomatis.
Yaitu variabel yang hanya dikenal di dalam fungsi tempat variabel
dideklarasikan.
Sifat variabel lokal :
 Variabel hanya akan diciptakan pada saat fungsi dipanggil (dan
akan diletakkan ke stack).
 Pada saat fungsi berakhir(selesai dieksekusi), variabel otomatis
menjadi sirna.
 Tidak ada inisialisasi secara otomatis (saat variabel diciptakan).
Inisialisasi oleh pemrogram akan dikerjakan setiap kali fungsi
dipanggil.
 Variabel hanya dapat diakses di dalam fungsi yang
mendeklarasikannya.
2. Variabel Global = Variabel Eksternal.
Yaitu variabel yang dideklarasikan di luar fungsi, variabel yang bisa
diakses dari semua fungsi.
Untuk memperjelas bahwa suatu variabel di dalam fungsi merupakan
variabel eksternal, saat mendeklarasikannya dengan menambahkan
kata kunci extern saat pendeklarasian fungsi di depan tipe data.
Penggunaan variabel eksternal diusahakan sesedikit mungkin atau
sedapat mungkin tidak usah digunakan dengan alasan variabel
eksternal mudah sekali terubah oleh pernyataan penugasan yang
terletak di mana saja sehingga sulit untuk dilacak terutama untuk
program yang berukuran besar.

3. Variabel Statis.
Sifat variabel statis :
 Variabel tetap hanya dapat diakses pada fungsi yang
mendeklarasikannya.
 Variabel tidak hilang saat eksekusi fungsi berakhir.
 Nilainya akan tetap dipertahankan sehingga akan dikenali pada
pemanggilan fungsi untuk tahap berikutnya.
 Inisialisasi oleh pemrogram akan dilakukan sekali saja selama
program dijalankan. Jika tidak ada inisialisasi secara eksplisit,
variabel diisi dengan nol.
 Variabel statis diperoleh dengan menambahkan kata kunci
static di depan tipe data saat pendeklarasian fungsi.
Contoh:
1.
#include <stdio.h>
// membuat variabel global
int nilai = 9;
void main(){
// membuat variabel lokal
int nilai = 7;
// mencetak variabel
printf("Nilai: %d\n", nilai);
}
Pada contoh di atas, dibuat variabel global bernama nilai.
Lalu di dalam fungsi main(), dibuat variabel lagi bernama nilai dengan
nilai yang berbeda.
Variabel yang ada di dalam fungsi main() adalah variabel lokal.
Hasil outputnya adalah : 7, karena variabel nilai yang dibuat ulang di
dalam fungsi main.
2.
#include <stdio.h>
// membuat variabel global
int nilai = 9;
void main(){
// mencetak variabel
printf("Nilai: %d\n", nilai);
}
Outputnya adalah 9, karena variabel yang dipakai adalah variabel global.
Fungsi dengan Parameter

Parameter adalah :
 Variabel yang menyimpan nilai untuk diproses di dalam fungsi.
 Nilai yang akan dijadikan acuan saat menjalankan program.
 Pelengkap saat menjalankan fungsi tertentu.
 Suatu variabel yang menyertai fungsi pada saat deklarasi maupun
saat fungsi dipanggil.

Parameter terbagi menjadi 2 jenis fungsi yakni :


1. Pass by Value
Pass by Value artinya akan mempassing value sebagai parameter dalam
fungsi yang dibuat.
Contohnya :
#include <stdio.h>
void cetakUmur(int umur){
printf("Halo, Umur kamu adalah %d tahun", umur);
}
int main(){
cetakUmur(20);
getchar();
return 0;
}
2. Pass by Address
Pass by Address berarti akan digunakan pointer untuk mengakses atau
bisa juga mengubah value dari sebuah alamat.
Contohnya :

#include <stdio.h>
void cetakUmur(int *umur){
printf("Halo, Umur kamu adalah %d tahun", *umur);
}
int main(){
int angka=20;
cetakUmur(&angka);
getchar();
return 0;
}

Fungsi Tanpa Nilai Balik


Adakalanya suatu fungsi tidak perlu memiliki nilai balik.
Contohnya pada fungsi yang hanya dimaksudkan untuk menampilkan
suatu keterangan.
Pada fungsi seperti itu, tipe nilai balik fungsi yang diperlukan adalah void.
Fungsi kadang harus mengembalikan sebuah nilai agar dapat diproses
di tahap berikutnya.
Untuk mengembalikan nilai dari fungsi bisa digunakan kata kunci return.
Fungsi Rekursif

Fungsi rekursif adalah suatu proses dari fungsi yang memanggil dirinya
sendiri secara berulang-ulang. 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.
Penerapan rekursi antara lain untuk menghitung nilai Xn.
Contoh :
#include <stdio.h>
long_pangkat (long x, long n); // Prototipe fungsi
int main()
{
int x,y;
printf(“MENGHITUNG x^y\n”);
printf(“x = “);
scanf(“%ld”, &x);
printf(“y = “);
scanf(“%ld”, &y);
printf(“%ld^%ld = %ld\n”, x, y, pangkat(x, y);
return 0;
}
long_pangkat(long x, long n)
{
if ( n ==1 )
return(x);
else
return(x * pangkat(x, n-1);
}
Output :
MENGHITUNG x^y
x=2
y=3
2^3=8

Anda mungkin juga menyukai