0% menganggap dokumen ini bermanfaat (0 suara)
154 tayangan8 halaman

Modul 9 - Function

Modul ini membahas tentang fungsi dalam pemrograman. Fungsi merupakan bagian kode program yang terpisah dari program utama yang dapat dipanggil jika diperlukan. Fungsi dapat dilakukan overload dan rekursif. Percobaan membuat program fungsi sederhana, overload fungsi, dan fungsi rekursif.

Diunggah oleh

Halow There
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
154 tayangan8 halaman

Modul 9 - Function

Modul ini membahas tentang fungsi dalam pemrograman. Fungsi merupakan bagian kode program yang terpisah dari program utama yang dapat dipanggil jika diperlukan. Fungsi dapat dilakukan overload dan rekursif. Percobaan membuat program fungsi sederhana, overload fungsi, dan fungsi rekursif.

Diunggah oleh

Halow There
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 8

MODUL 9

FUNGSI / FUNCTION

9.1. Tujuan
1. Menjelaskan tentang pemrograman modular
2. Memecah program ke dalam fungsi-fungsi sederhana
3. Mahasiswa dapat memahami dan menggunakan algoritma overload
pada fungsi
4. Mahasiswa dapat memahami dan menggunakan algoritma rekursif
pada fungsi
9.2. Dasar Teori
9.2.1. Fungsi
Fungsi merupakan bagian dari kode program yang terpisah dari program utama.
Bagain kode program ini di-execute jika diperlukan untuk melakukan tindakan khusus
dalam program. Fungsi banyak dilibatkan dalam program dengan tujuan untuk
mengurangi duplikasi pengkodean dan untuk mempermudah pemahaman.
Secara sederhana terdapat fungsi yang tidak mengambil satu parameterpun dan
menghasilkan void (data yang tidak memiliki nilai). Namum pada fungsi yang lain
akan mengambil suatu parameter dan mungkin menghasilkan suatu nilai tertentu.
Parameter merupakan suatu nilai yang di-pass-kan (diseberangkan) pada fungsi yang
berguna untuk mengubah operasinya atau untuk menunjukan operasi yang lebih luas.
Sebelum fungsi digunakan, fungsi harus dideklarasikan dulu. Deklarasi fungsi
(prototype) berguna untuk memberitahukan compiler tentang bagaimana fungsi
diambil dan tipe data yang diambil/dihasilkan. Fungsi dapat dipanggil oleh fungsi
yang lain maupun dirinya sendiri (rekursif).
Fungsi adalah satu blok instruksi yang akan dieksekusi ketika dipanggil dari
bagian lain dalam suatu progra
Struktur penulisan fungsi :
tipeData namaFungsi ( argumen1, argumen2, ...)
{
Statement;
}
Dimana :

Modul Praktikum Algoritma & Pemrograman Dasar | LABTIF UNSUR 2021 44


1. tipeData, adalah tipe data yang akan dikembalikan/dihasilkan oleh fungsi.
2. namaFungsi, adalah nama yang memungkinkan kita memanggil fungsi.
3. argumen (dispesifikasikan sesuai kebutuhan). Setiap argument terdiri dari
tipe data diikuti identifier, seperti deklarasi variable (contoh, int x) dan
berfungsi dalam fungsi seperti variable lainnya. Juga dapat melakukan
passing parameters ke fungsi itu ketika dipanggil. Parameter yang berbeda
dipisahkan dengan koma.
4. statement, merupakan bagian badan suatu fungsi. Dapat berupa instruksi
tunggal maupun satu blok instruksi yang dituliskan diantara kurung kurawal
{}.
Fungsi disebut juga non-void. Disebut non-void karena
mengembalikan
nilai kembalian yang berasal dari keluaran hasil proses fungsi
tersebut .
Ciri:
1. Ada keyword return
2. Ada tipe data yang mengawali fungsi
3. Tidak ada keyword void
4. Memiliki nilai kembalian . Dapat dianalogikan sebagai suatu variabel yang
memiliki tipe data tertentu sehingga dapat langsung ditampilkan hasilnya.
Lingkup variabel dalam fungsi :
1. Variabel lokal
Variabel lokal merupakan variabel yang dideklarasikan dalam suatu blok tertentu
dan hanya dikenal dalam blok fungsi tersebut. Varibel lokal akan dihapus dari
memori jika proses sudah meninggalkan blok statement letak variabel lokalnya.
2. Variabel global
Variabel global merupakan variabel yang dideklarasikan diluar blok fungsi dan
bersifat dapat dikenal oleh semua bagian dari program.
3. Variabel static
Variabel static merupakan variabel yang menahan nilainya sementara pemanggilan
fungsi berlangsung. Variabel ini dapat dideklarasikan di dalam fungsi tertentu
maupun di luar fungsi yang dideklarasikan di luar blok fungsi dan bersifat dapat
dikenal oleh semua bagian dari program.

Modul Praktikum Algoritma & Pemrograman Dasar | LABTIF UNSUR 2021 45


9.2.2. Overload fungsi
Sama halnya seperti prosedur, fungsi pun dapat melakukan metode overload
atau overload fungsi. Dalam overload fungsi, selain dari argument yang berbeda, tipe
data fungsi pun dapat dibuat berbeda dari fungsi awal dengan nama yang sama. Maka
dari itu, overload fungsi haruslah :
1. Memiliki argumen atau tipe data yang berbeda dari fungsi dengan
nama yang sama sebelumnya.
Overload fungsi memiliki tujuan yang sama dengan overload prosedur, yaitu :
1. Menggunakan Kembali nama prosedur / fungsi yang pernah dipakai
namun memiliki algoritma yang berbeda tergantung pada situasi
dan kondisi yang dihadapi
2. Mempermudah dan mempersingkat waktu dalam proses pemberian
dan penulisan nama untuk suatu prosedur / fungsi
Struktur penulisan :
//fungsi awal
int namaFungsi(argumen1, argumen2, ……)
{statement;}
//fungsi overload
string namaFungsi(argumen1, argumen2,……)
{statement;}

9.2.3. Fungsi rekursif


Algoritma rekursif adalah algoritma yang memanggil dirinya sendiri.
Algoritma rekursif harus dinyatakan dalam prosedur atau fungsi, karena hanya prosedur
dan fungsi yang dapat dipanggil dalam sebuah program. Ingatlah kembali bahwa fungsi
mengembalikan sebuah nilai sedangkan prosedur menghasilkan efek netto (perubahan
kondisi awal menjadi kondisi akhir setelah prosedur dijalankan). Algoritma rekursif
juga disusun oleh dua bagian:
• Basis, adalah bagian yang berisi kasus yang terdefinisi secara eksplisit. Bagian
ini juga sekaligus menghentikan proses rekursif dan memberikan sebuah nilai
yang terdefinisi pada fungsi rekursif. Dalam kata lain basis ini adalah batasan
dari proses rekursif.

Modul Praktikum Algoritma & Pemrograman Dasar | LABTIF UNSUR 2021 46


• Rekurens, adalah bagian yang mendefinisikan objek dalam terminologi
dirinya sendiri atau bagian yang melakukan proses rekursif.
Bagian rekurens menyatakan bahwa definisi rekursif memungkinkan komputasi
yang tidak berhenti. Pada setiap kali pendefinisian, akan dihasilkan bentuk yang
semakin sederhana, sehingga pada suatu saat pendefinisian rekursif tersebut akan
berhenti. Bagian basis berisi kasus yang menghentikan pendefinisian rekursif.
Dalam merancang algoritma rekursif, langkah pertama yang harus dilakukan
adalah menyatakan persoalan secara rekursif, lalu menentukan kasus yang
menyebabkan pemanggilan rekursif berhenti (basis) dan kasus untuk rekurens-nya.
Ciri-ciri fungsi rekursif:
• Prosedur atau fungsi rekursif berisi definisi dari dirinya sendiri.
• Prosedur atau fungsi rekursif memanggil dirinya sendiri.
• Prosesnya terjadi secara berulang-ulang.

Kelebihan dari algoritma rekursif:


• Program lebih singkat.
• Pada beberapa kasus, lebih mudah menggunakan fungsi rekursif, contohnya:
pangkat, faktorial, dan fibonacci, dan beberapa proses deret lainnya.
• Lebih efisien dan cepat dibandingkan proses secara iteratif.

Kekurangan dari algoritma rekursif:


• Memakan memori lebih besar, karena setiap bagian dari dirinya dipanggil,
akan membutuhkan sejumlah ruang memori untuk penyimpanan.
• Rekursif sering kali tidak bisa berhenti sehingga memori akan terpakai habis
dan program bisa hang.

9.3. Percobaan
1. Membuat program pertambahan, Sintak :
#include <iostream>
using namespace std;
int tambah(int angka1, int angka2);
main()
{

Modul Praktikum Algoritma & Pemrograman Dasar | LABTIF UNSUR 2021 47


int a,b;
cout<<"Inputkan angka pertama : ";
cin>>a;
cout<<"Inputkan angka kedua : ";
cin>>b;
tambah(a, b);
}
int tambah(int angka1, int angka2)
{
int hasil;
hasil=angka1+angka2;
cout<<angka1<<” + “<<angka2<<” = “<<hasil;
}
Hasil kompilasi :

Gambar 9. 1 membuat program pertambahan


Penjelasan sintak :
Baris 1 : menyertakan library iostream.h untuk mengaktifkan perintah
cout
Baris 2 : memberitahukan ke computer bahwa kita akan menggunakan
semua Perintah yang ada di namespace std;
Baris 3 : mendeklarasikan fungsi bernama tambah

Baris 4-13 : merupakan badan program atau program utama yang diawali
dengan { dan diakhiri dengan }
Baris 6 : mendeklarasikan variabel a dan b dengan tipe data integer
Baris 8 : memasukan inputan ke dalam variabel a

Baris 10 : memasukan inputan ke dalam variabel b

Modul Praktikum Algoritma & Pemrograman Dasar | LABTIF UNSUR 2021 48


Baris 11 : pemanggilan fungsi tambah

Baris 15-20 : merupakan fungsi tambah

Baris 17 : mendeklarasikan variabel hasil dengan tipe data integer

Baris 18 : varibel hasil diisi dengan variable angka1 + variabel angka2

2. Overload pada fungsi dengan tipe data fungsi yang berbeda. sintak :
#include <iostream>
using namespace std;
int hitung(int x, int y){
int hasil;
hasil = x + y;
return hasil;
}
string hitung(string x, string y){
string hasil;
hasil = x+y;
return hasil;
}
main(){
int a;
string b;
a = hitung(1,2);
b = hitung("x","y");
cout<<"hasil fungsi awal : "<<a<<endl;
cout<<"hasil fungsi overload : "<<b<<endl;
}

Modul Praktikum Algoritma & Pemrograman Dasar | LABTIF UNSUR 2021 49


Hasil kompilasi :

Gambar 9. 2 overload fungsi hitung dengan tipe integer dan string

3. Membuat program untuk menghitung perpangkatan dengan


menggunakan algoritma rekursif, sintak :
#include<iostream>
using namespace std;
int pangkat(int a,int n) {
if (n==1) {
return 1;
} else {
return a*pangkat(a,n-1);
}
}
int main() {
int a;
cout≪"Masukkan bilangan∶";
cin≫a;
int n;
cout≪"Masukkan pangkat∶";
cin≫n;
int hasil;
cout≪"Hasilnya adalah∶"≪ hasil≪ endl;
cin.get();
return 0;
}

Modul Praktikum Algoritma & Pemrograman Dasar | LABTIF UNSUR 2021 50


Hasil kompilasi :

Gambar 9. 3 program hitung perpangkatan menggunakan fungsi


rekursif

4. Membuat program untuk menghitung luas persegi panjang (L=p*l).


Contoh hasil kompilasi :

Gambar 9. 4 program menghitung luas persegi panjang

Modul Praktikum Algoritma & Pemrograman Dasar | LABTIF UNSUR 2021 51

Anda mungkin juga menyukai