Pertemuan 18 FUNGSI (Method) Bag.1 Dasar Pemrograman Renni Angreni, S.Kom. Fungsi dikenal juga dengan nama sub rutin, rutin, prosedur atau metode. Fungsi merupakan sejumlah baris pernyataan/ instruksi yang dikemas di dalam suatu nama (identifier). Tujuan pembuatan fungsi : ◦ Memudahkan dalam mengembangkan program. Hal ini merupakan kunci dalam pembuatan program yang terstruktur. ◦ Menghemat ukuran program. Manfaat ini akan terasa apabila ada sekumpulan pernyataan yang sama yang digunakan berkali-kali di satu program. Menggunakan fungsi terdiri dari mendefinisikan fungsi dan memanggil fungsi. Mendefinisikan fungsi dilakukan seperti mendeklarasikan variabel. Bedanya ditambahkan tanda kurung di akhir identifier yang berisi argumen. Di dalam fungsi, pemrogram dapat mendefinisikan variabel, ataupun membuat konstanta. Namun, di dalam fungsi tidak diperkenankan untuk membuat fungsi lain, tetapi dapat di dalam fungsi memanggil fungsi lainnya. Umumnya fungsi menerima masukan (disebut argumen / parameter). Masukan ini selanjutnya diproses oleh fungsi. Hasil akhir berupa sebuah nilai yang disebut nilai balik. Bentuk fungsi yang tidak memiliki argumen dituliskan void(); Sintax prototype fungsi : tipeData namaFungsi(); Sintax fungsi (mendefinisikan fungsi) : tipeData namaFungsi() { [Blok pernyataan] } dan tipeData namaFungsi(argumen) { [Blok pernyataan] [nilai balik] } Contoh : 1. long kuadrat(long l); 2. int maks(int a, int b, int c); 3. double maks(double x, double y); 4. void garis(); Pada contoh (1) fungsi bernama kuadrat mempunyai satu argumen bernama l bertipe long dan nilai balik juga bertipe long. Pada contoh (2) fungsi bernama maks mempunyai tiga argumen bernama a, b, dan c yang masing-masing bertipe int dan nilai balik juga bertipe int. Pada contoh (3) fungsi bernama maks mempunyai dua argumen bernama x dan y yang masing-masing bertipe double dan nilai balik juga bertipe double. Pada contoh (4) fungsi tidak memiliki argumen dan nilai baliknya tidak ada / void. Cara 1 : prototype fungsi void main() { memanggil fungsi _getch(); } definisi fungsi Cara 2 : definisi fungsi void main() { memanggil fungsi _getch(); } #include <iostream> #include <conio.h> using namespace std; void garis(); void main() { garis(); garis(); cout<<"Ini contoh penggunaan fungsi dengan cara 1“ <<endl; garis(); garis(); _getch(); } void garis() { cout<<"------------------------------------------"; cout<<endl; } #include <iostream> #include <conio.h> using namespace std; void garis() { cout<<"------------------------------------------"; cout<<endl; } void main() { garis(); garis(); cout<<"Ini contoh penggunaan fungsi dengan cara 1“ <<endl; garis(); garis(); _getch(); } Pada contoh sebelumnya, fungsi yang dibuat tidak menerima / mempunyai argumen ataupun mengembalikan nilai. Argumen fungsi adalah nilai masukan pada fungsi. Argumen disebut juga parameter. Argumen fungsi dituliskan di dalam tanda kurung. Dalam mendefinisikan suatu fungsi dengan argumen, sintax prototypenya : void garis(int); atau void garis(int jumlah); Sedangkan untuk definisi fungsinya : void garis(int jumlah) { [blok program] } #include <iostream> #include <conio.h> using namespace std; void garis(int jumlah); void main() { garis(40); garis(20); cout<<"Ini contoh"<<endl; cout<<"penggunaan fungsi dengan parameter"<<endl; cout<<"cara 1"<<endl; garis(30); garis(30); _getch(); } void garis(int jumlah) { for(int x=1; x<=jumlah; x++) cout<<"-"; cout<<endl; } #include <iostream> #include <conio.h> using namespace std; void garis(int jumlah) { for(int x=1; x<=jumlah; x++) cout<<"-"; cout<<endl; } void main() { garis(40); garis(20); cout<<"Ini contoh"<<endl; cout<<"penggunaan fungsi dengan parameter"<<endl; cout<<"cara 1"<<endl; garis(30); garis(30); _getch(); } #include <iostream> #include <conio.h> using namespace std; void bintang(int jumlah) { for (int i=0; i<jumlah; i++) cout<<"*"; cout<<endl; } int main() { for (int a=1; a<=20; a++) { bintang(a); } _getch(); return 0; } #include <iostream> #include <conio.h> using namespace std; void bintang(int jumlah) { for (int i=0; i<jumlah; i++) cout<<"*"; cout<<endl; } int main() { for (int a=1; a<=10; a++) { bintang(a); } for (int a=9; a>0; a--) { bintang(a); } _getch(); return 0; } void cetak(char karakter, int jumlah) { for (int a=1; a<=jumlah; a++) { cout<<karakter; } } void segitiga(int jml) { for (int b=1; b<=jml; b++) { cetak(' ',(jml-b)); cetak('^',(2*b-1)); cout<<endl; } } int main() { segitiga(10); segitiga(9); segitiga(8); segitiga(7); _getch(); return 0; } Suatu fungsi dapat dibuat menerima lebih dari satu argumen. Tiap-tiap argumen dipisahkan dengan tanda koma. void cetak(char karakter, int jumlah) { for (int i=1; i<=jumlah; i++) { cout<<karakter; } } Perlu diperhatikan bahwa urutan argumen pada saat pemanggilan fungsi tidak boleh terbalik. Misalkan pemanggilan fungsi cetak : cetak('^',50); tidak sama dengan cetak(50,'^'); Contoh yang kedua akan mengakibatkan error pada program karena fungsi cetak dengan parameter tersebut belum didefinisikan. Argumen suatu fungsi dapat dibuat memiliki nilai bawaan (default). Caranya : void cetak(char karakter='*', int jumlah=50) { for (int i=1; i<=jumlah; i++) { cout<<karakter; } } dipanggil dengan : ulang(); ulang('-'); ulang('=',70); ulang(,45); //yang ini tidak bisa 1. Dengan menggunakan fungsi buatlah sebuah program C++ untuk tampilan di bawah ini. 2. Dengan menggunakan fungsi buatlah sebuah program C++ untuk tampilan di bawah ini. -- Sekian -- Dasar Pemrograman Renni Angreni, S.Kom.