Ilustrasi keberadaan fungsi dalam sebuah program:

Slides:



Advertisements
Presentasi serupa
ARRAY.
Advertisements

Mata Kuliah: Bahasa C++ Harni Kusniyati
STRUKTUR KONTROL PERCABANGAN DAN STRUKTUR KONTROL LOMPATAN
STRUKTUR DATA (5) Pointer dan Function
Algoritma dan Pemrograman Modular Programming (Bagian 1)
Fungsi, Parameter, Rekursi Daniel Riano Kaparang Book reference: Jogiyanto. Konsep Dasar Pemrograman Bahasa C. Andi Star. Yogyakarta Kristanto Andri.
Modular Programming Slamet Kurniawan, S.Kom.
Bab 4 Percabangan.
Fungsi (lanjutan) Pertemuan ke-9 Bahasa C.
Algoritma & Pemograman 2 (C++)
ARRAY (Lanjutan).
Pemrograman Windows.
Function.
Struktur Kendali Proses (Seleksi)
PEMROGRAMAN TERSTRUKTUR
3 Variabel, Konstanta Tipe Data dan dalam Bahasa C/C++ Java dan Bab
Komentar, Identifier dan Tipe Data
PENGENALAN c++ DAN STRUKTUR DASAR C++
Algoritma dan Struktur Data
FUNCTION / FUNGSI.
Review-Dasar Pemrograman Komputer
Bab 5 Pengulangan.
FUNGSI.
Struktur (Struct).
STRUKTUR DATA (5) Pointer dan Function
FUNGSI (Method) Bag.3 Pertemuan 20 Dasar Pemrograman
Pengulangan WHILE.
Fungsi.
Pointer Dr. Lily Wulandari.
Pertemuan 22 POINTER Bag.2 Dasar Pemrograman Renni Angreni, S.Kom.
STRUKTUR DATA Pointer dan Function
#include //bagian modul int hitung(x,y) { return(x+y); } //bagian utama main() { int jumlah,a,b; a=8; b=2; jumlah=hitung(a,b); cout
Pertemuan 1 Dasar Pemrograman Triana Elizabeth S. Kom Dibuat o/ : Renni Angreni, S.Kom.
Pertemuan 6 IF Bersarang / IF Bertingkat Nested IF Dasar Pemrograman.
Pertemuan 19 FUNGSI (Method) Bag.2 Dasar Pemrograman Renni Angreni, S.Kom.
Function User Function.
P ERULANGA N K OMPLEK S. BREAK Digunakan untuk menghentikan suatu proses perulangan yang sedang terjadi. Biasanya dikarenakan oleh suatu kondisi Break.
WHILE & DO-WHILE Struktur Kendali Percabangan Pertemuan 8
Scope Variable *dalam fungsi Tenia Wahyuningrum, S.Kom., MT
Fungsi Fungsi (Sub Program) :
Tenia Wahyuningrum, S.Kom., MT
Bab 05 Tipe Data dan Mengisi Variabel
Dibuat oleh : Renni Angreni, S.Kom.
PERTEMUAN KE-9 IFII SAINTEC UIN SGD. FUNCTION (FUNGSI) Function (fungsi) adalah kumpulan pernyataan/statement yang diberi nama, dimana nama tersebut dapat.
PEMROGRAMAN SISTEM PERNYATAAN DASAR FUNGSI Pertemuan VI
Teknik Pemrog. Terstuktur 2
FUNGSI Nyimas Artina Arfansyah, S.Kom, M.Si.
Pertemuan 19 FUNGSI (Method) Bag.2 Dibuat oleh : Renni Angreni, S.Kom. Triana Elizabeth, S.Kom.
1 Pertemuan Fungsi Matakuliah: T0016 / Algoritma dan Pemrograman Tahun: 2007 Versi: 6.
1. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :  Mendemonstrasikan penggunaan fungsi serta pengiriman parameter 2.
POINTER Bag.2 Pertemuan 22 Dibuat oleh : Renni Angreni, S.Kom. Triana Elizabeth, S.Kom.
Fungsi, Array dan String
Prosedur dan Fungsi Triana Elizabeth, S.Kom.
SL 1201 Materi tentang Fungsi Program merupakan kumpulan dari fungsi-fungsi baik yang didefinisikan langsung maupun yang disimpan dalam file header. Dalam.
Elemen Dasar C++ Norma Amalia, ST.,M.Eng.
Prosedur dalam C++.
ARRAY (Array Dimensi Satu) Pertemuan 15 Dasar Pemrograman
ARRAY (Array Dua Dimensi) Pertemuan 16 Dasar Pemrograman
FUNGSI.
MODULAR (FUNGSI)
FUNGSI (Method) Bag.1 Pertemuan 18 Dasar Pemrograman
ARRAY Oleh : sgo.
Castaka agus sugiato, M.Kom., M.CS
Pengantar Pemrograman
PERBEDAAN C DAN C++ Meriska Defriani, S
MODULAR (FUNGSI)
Algoritma Struktur Data
FUNGSI.
Teknik Pemrog. Terstuktur 2
PERTEMUAN V F U N G S I Tujuan membuat suatu fungsi
Transcript presentasi:

Ilustrasi keberadaan fungsi dalam sebuah program: BAB 8 - Fungsi Program merupakan kumpulan dari fungsi-fungsi baik yang didefinisikan langsung maupun yang disimpan dalam file header. Dalam program C++ selalu terdapat fungsi utama yang disebut fungsi main ( ) Kompiler akan menjalankan perintah yang terdapat dalam fungsi main ( ) ini. Ilustrasi keberadaan fungsi dalam sebuah program: Program Int main ( ) { ….. Fungsi1( ); statement1; Fungsi2( ); statement2; … return0; } Fungsi1 ….. return Fungsi2 Fungsi3 ….. return ….. return

Fungsi tanpa nilai umpan balik Fungsi merupakan subprogram (modular) yang bisa digunakan kembali oleh program itu maupun oleh program lain yang memerlukan. Dalam C++ fungsi ada 2, yaitu user defined function (didefinisikan sendiri) dan built-in function (telah disediakan oleh kompiler). Fungsi tanpa nilai umpan balik Suatu proses yang tidak mengembalikan nilai, untuk itu fungsi yang dibuat bertipe void yang berarti tidak mempunyai nilai balik (RETURN VALUE) Adapun bentuk umumnya adalah: void nama_fungsi (parameter1, parameter2, …..) { statement_ yang_akan_dilakukan; ……... } Bentuk umum untuk pemanggilan: nama_fungsi(nilai_parameter1, nilai_parameter2, ….);

Contoh Program: #include <iostream> using namespace std; //membuat fungsi dengan nama Tulis10kali void Tulis10kali ( ) { for (int c=0; c<10; c++) { cout<<“ Aku menyukai C++”<<endl; } // Fungsi utama dalam program c++ int main ( ) { // Memanggil fungsi Tulis10kali untuk dieksekusi Tulis10kali ( ); return 0;

Fungsi dengan nilai balik Fungsi ini melakukan proses yang dapat mengembalikan sebuah nilai. Definisikan tipe data dari nilai yang akan dikembalikan terlebih dulu. Bentuk umum fungsi ini: Tipe_data nama_fungsi (parameter1, parameter2, …) { statement_yang_akan_dilakukan ; ….. Return nilai_yang_akan_dikembalikan; }

Contoh fungsi yang mengembalikan tipe string # include <iostream> using namespace std; // membuat fungsi sederhana mengembalikan string char* TestFungsiString ( ) { return “ini adalah nilai dari fungsi”; } // fungsi utama int main ( ) { // memanggil dan menampilkan hasil fungsi cout<<TestFungsiString( ); return 0;

Contoh fungsi yang mengembalikan tipe bilangan # include <iostream> using namespace std; // membuat fungsi sederhana mengembalikan bilangan double TestFungsiBilangan ( ) { return (3.14*2); } // fungsi utama int main ( ) { // memanggil dan menampilkan hasil fungsi cout<<“ Nilai yang terdapat dalam fungsi : “; cout<<TestFungsiBilangan( ); return 0;

Fungsi dengan Parameter Hasil yang diperoleh bersifat dinamis tergantung dari nilai parameter yang dimasukkan Jenis parameter a. Parameter masukan Parameter ini akan dipergunakan sebagai masukan dalam sebuah fungsi b. Parameter keluaran Parameter ini dipergunakan untuk menampung nilai yang dihasilkan dari proses didalam fungsi Digunakan didalam fungsi void Berguna sebagai nilai keluaran sebuah fungsi Dilewatkan berdasarkan alamat atau referensinya c. Parameter masukan/keluaran Digunakan sebagai masukan dan keluaran artinya mula-mula sebagai masukan kemudian diolah dalam fungsi dan hasilnya sebagai nilai keluaran.

Contoh fungsi dengan parameter bertype masukan #include <iostream> using namespace std; // Membuat fungsi dengan parameter bertipe masukan int TambahSatu (int X) { int hasil; hasil=X+1; return hasil; } int main ( ) { int Bilangan, HASIL; cout<<“ Masukkan sebuah bilangan bulat : “; cin>>Bilangan; HASIL=TambahSatu(Bilangan); cout<<“ Nilai akhir : “<<HASIL; return 0;

Contoh fungsi dengan parameter bertipe keluaran #include <iostream> using namespace std; // parameter X sbg masukan // parameter hasil sbg keluaran void TambahSatu (int X, int *hasil) { *hasil=X+1; } int main ( ) { int Bilangan, HASIL; cout<<“ Masukkan sebuah bilangan bulat : “; cin>>Bilangan; cout<<“ Nilai akhir : “<<TambahSatu(Bilangan, &HASIL); return 0;

Contoh fungsi dengan parameter bertipe masukan/keluaran #include <iostream> using namespace std; // parameter X sbg masukan dan juga sbg keluaran void TambahSatu (int X) { *X=*X+1; } int main ( ) { int Bilangan; cout<<“ Masukkan sebuah bilangan bulat : “; cin<<Bilangan; cout<<“ Nilai akhir : “<<TambahSatu(&Bilangan); return 0;

Melewatkan Parameter Berdasarkan Nilai (pass by value) #include <iostream> using namespace std; // membuat fungsi dengan melewatkan nilai X didalamnya void Kali2 (int X) { X=X*2; cout<<“ Nilai didalam fungsi : “<<X<<endl; } // Fungsi utama int main ( ) { int Bilangan; cout<<“ Masukkan sebuah bilangan bulat : “; cin<<Bilangan; cout<<“ Nilai awal : “<<Bilangan<<endl; // memanggil fungsi Kali2 Kali2(Bilangan); cout<<“Nilai Akhir : “<<Bilangan<<endl; return 0;

Hasil dari program tersebut: Memasukkan sebuah bilangan bulat : 10 Nilai awal : 10 Nilai didalam fungsi : 20 Nilai akhir : 10

Contoh pengiriman parameter dengan berdasarkan nilai (menukar dua buah bilangan) #include <iostream> using namespace std; // mendefinisikan fungsi menukar bilangan void TukarBilangan (int X, int Y) { int X=X; X=Y; Y=Z; // Menampilkan bilangan yg terdpt di dlm fungsi cout<<“ Di dalam fungsi “<<endl; cout<<“ Bilangan ke I : “<<X<<endl; cout<<“ Bilangan ke 2 : “<<Y<<endl; cout<<endl; } NEXT …...

// Fungsi utama int main ( ) { int Bilangan1, Bilangan2; cout<<“ Masukkan bilangan pertama : “ ; cin>>Bilangan1; cout<<“ Masukkan bilangan kedua : “ ; cin>>Bilangan2; // menampilkan nilai awal cout<<“ Keadaan awal”<<endl; cout<<“ Bilangan ke 1 : “<<Bilangan1<<endl; cout<<“ Bilangan ke 2 : “<<Bilangan2<<endl; cout<<endl; // memanggil fungsi TukarBilangan TukarBilangan(Bilangan1,Bilangan2); // menampilkan nilai akhir cout<<“ Keadaan akhir”<<endl; return 0; }

adalah melewatkan parameter sebuah fungsi berdasarkan alamatnya. Melewatkan Parameter Berdasarkan Alamat (Pass by Reference) adalah melewatkan parameter sebuah fungsi berdasarkan alamatnya. Jika kita membuat alias dari sebuah variabel, alamat dari variabel dan alias tersebut adalah sama.

Contoh Program pelewatan parameter berdasrkan alamat (pass by reference) #include <iostream> use namespace std; // mendefinisikan fungsi yang melewatkan parameternya berdasarkan alamat void Kali2(int& X){ X=X*2 cout<<“ Nilai di dlm fungsi : “<<X<<endl; } int main( ) { int Bilangan; cout<,” Masukkan sebuah bilangan bulat : “; cin>>Bilangan; cout<<endl; // Menampilkan nilai awal cout<<Bilangan<<endl; Kali2 (Bilangan); // Menampilkan nilai akhir cout<< Bilangan <<endl; return 0;

Masukkan sebuah bilangan bulat : 10 Nilai awal : 10 Nilai di dalam fungsi : 20 Nilai akhir : 20

Contoh Program yang menggambarkan penggunaan pass by reference #include <iostream> using namespace std; // mendefinisikan fungsi menukar bilangan void TukarBilangan(int& X,int& Y) { int X=X; X=Y; Y=Z; // Menampilkan bilangan yg terdpt di dlm fungsi cout<<“ Di dalam fungsi “<<endl; cout<<“ Bilangan ke I : “<<X<<endl; cout<<“ Bilangan ke 2 : “<<Y<<endl; cout<<endl; } NEXT …...

// Fungsi utama int main ( ) { int Bilangan1, Bilangan2; cout<<“ Masukkan bilangan pertama : “ ; cin>>Bilangan1; cout<<“ Masukkan bilangan kedua : “ ; cin>>Bilangan2; // menampilkan nilai awal cout<<“ Keadaan awal”<<endl; cout<<“ Bilangan ke 1 : “<<Bilangan1<<endl; cout<<“ Bilangan ke 2 : “<<Bilangan2<<endl; cout<<endl; // memanggil fungsi TukarBilangan TukarBilangan(Bilangan1,Bilangan2); // menampilkan nilai akhir cout<<“ Keadaan akhir”<<endl; return 0; }

Modifikasi program dg mempergunakan parameter bertipe pointer #include <iostream> using namespace std; // mendefinisikan fungsi dg parameter bertipe pointer void TukarBilangan(int *X,int *Y) { int X= *X; *X = Y; *Y = Z; // Menampilkan blangan yg terdpt di dlm fungsi cout<<“ Di dalam fungsi “<<endl; cout<<“ Bilangan ke I : “<<*X<<endl; cout<<“ Bilangan ke 2 : “<<*Y<<endl; cout<<endl; } NEXT …...

// Fungsi utama int main ( ) { int Bilangan1, Bilangan2; cout<<“ Masukkan bilangan pertama : “ ; cin>>Bilangan1; cout<<“ Masukkan bilangan kedua : “ ; cin>>Bilangan2; // menampilkan nilai awal cout<<“ Keadaan awal”<<endl; cout<<“ Bilangan ke 1 : “<<Bilangan1<<endl; cout<<“ Bilangan ke 2 : “<<Bilangan2<<endl; cout<<endl; // memanggil fungsi TukarBilangan // ingat pergunakanlah operator & TukarBilangan ( &Bilangan1, &Bilangan2); // menampilkan nilai akhir cout<<“ Keadaan akhir”<<endl; return 0; }

Melewatkan Parameter Bertipe Array Contoh Program dg parameter bertipe array #include <iostream> using namespace std; // mendefinisikan fungsi untuk proses input array void InputArray(int A[], int N) { for (int C=0; C<N; C++) { cout<<“ Masukkan nilai A[“ <<C<< “] : “; cin>>A[C]; } // mendefinisikan fungsi untuk menghitung jumlah elemen array long Jumlah(int A[ ], int N) { long jml=0; for(int C=0; C<N; C++) { jml += A[C] return jml

// Fungsi utama int main ( ) { int X[100]; int BanyakElemen; long HASIL; cout<<“Masukkan banyaknya elemenyang diinginkan : “ ; cin>>BanyakElemen; cout<<endl; // memanggil fungsi InputArray InputArray(X, BanyakElemen); // memanggil fungsi jumlah dan menampung hasilnya ke variabel HASIL HASIL = Jumlah (X, BanyakElemen); // Menampilkan hasil cout<<“Hasilnya = “<<HASIL; return 0; }

Dalam program C++ parameter yang bertipe array sering diganti dg parameter bertipe pointer

Melewatkan Parameter Bertipe Pointer Contoh Program dg parameter bertipe pointer #include <iostream> using namespace std; // mendefinisikan fungsi untuk proses input array dg A bertipe pointer void InputArray (int *A, int N) { for (int C=0; C<N; C++) { cout<<“ Masukkan nilai A[“ <<C<< “] : “; cin>>A[C]; } // mendefinisikan fungsi untuk menghitung jumlah elemen array long Jumlah(int *A, int N) { long jml=0; for(int C=0; C<N; C++) { jml += A[C] return jml

// Fungsi utama int main ( ) { int X[100]; int BanyakElemen; long HASIL; cout<<“Masukkan banyaknya elemenyang diinginkan : “ ; cin>>BanyakElemen; cout<<endl; // memanggil fungsi InputArray InputArray (X, BanyakElemen); // memanggil fungsi jumlah dan menampung hasilnya ke variabel HASIL HASIL = Jumlah (X, BanyakElemen); // Menampilkan hasil cout<<“Hasilnya = “<<HASIL; return 0; }

Melewatkan parameter konstan include <iostream> using namespace std; // mendefinisikan fungsi untuk menghitung keliling lingkaran double KelilingLingkaran(const float PI, int jari_jari) { return (2*PI*jari_jari); } // fungsi utama int main ( ) { int R; double HASIL; cout<<“Masukkan panjang jari-jari : “; cin>>R; // memanggil fungsi keilling lingkaran HASIL=KelilingLingkaran(3.14, R); cout<<“Kelilingnya = “<<HASIL; return 0;

Mengeset Parameter dengan Nilai Default Nilai parameter dalam sebuah fungsidapat diset dengan nilai default. Artinya, jika kita tidak mendefinisikan pd saat pemanggilan, nilai yang akan digunakan adalah nilai default. Bentuk umum: Tipe_data nama_fungsi ( tipe_data parameter1 = nilai_default, …..) { . . . . . . . . return nilai_kembalian; }

Contoh fungsi dengan nilai default #include <iostream> using namespace std; // mendefinisikan fungsi menghitung volum balok long VolumeBalok(int panjang, int lebar=20, int tinggi=5) { return (panjang * lebar * tinggi); } int main ( ) { int P=50; int L=10; int T=2; long HASIL; // memanggil fungsidg 3 parameter HASIL=VolumeBalok(P,L,T); cout<<“Volume Balok = “<<HASIL<<endl; // memanggil fungsidg 2 parameter HASIL=VolumeBalok(P,L); // memanggil fungsidg 1 parameter HASIL=VolumeBalok(P); return 0; Hasilnya adalah: Volume Balok = 1000 Volume Balok = 2500 Volume Balok = 5000

Pointer ke fungsi Fungsi merupakan objek yang memiliki lokasi fisik di memori. Nilai sebuah fungsi dapat diambil melalui pointer. Alamat fungsi diperoleh dg menyebutkan nama_fungsi tanpa kurung maupun parameter. Pointer dapat menunjukkan alamat suatu fungsi seperti contoh program berikut ini:

Pointer ke Fungsi #include <iostream> using namespace std; // mendefinisikan fungsi tambah int Tambah(int X, int Y); { return (X+Y); } // Fungsi Utama int main ( ) { // Mendeklarasikan pointer ke fungsi tambah( ) dg parameter (int,int) int (*P) ( int, int ) ; int HASIL; int a=20, b=5; // Memanggil fungsi Tambah dan menyimpan nilainya ke variabel HASIL HASIL=Tambah(a,b); // Memerintahkan P untuk menunjuk alamat fungsi Tambah( ) P=Tambah // Menampilkan hasil melalui pointer P cout<<“Nilai (*P)(20,5) : “<<(*P)(a,b)<<endl; // Menampilkan hasil melalui variabel hasil cout<<“Nilai HASIL : “<<HASIL<<endl; return 0;

Penimpaan Fungsi (Function Overloading) Fungsi overload adalah fungsi dengan nama sama tetapi memiliki parameter berbeda baik tipe maupun jumlahnya atau keduanya. Pada saat fungsi tersebut dipanggil, kompiler akan memilih fungsi yang parameter aktualnya sama dengan parameter formalnya.

Contoh Program penggunaan fungsi Overload dg jumlah parameter berbeda #include <iostream> using namespace std; // mendefinisikan fungsi tulis dg satu parameter void Tulis (char* S) { cout<<S<<endl; } // mendefinisikan fungsi tulis dg dua parameter void Tulis (char* S1, char* S2) { cout<<S1<<“ “<<S2<<endl; // mendefinisikan fungsi tulis dg tiga parameter void Tulis (char* S1, char* S2, char* S3) { cout<<S1<<“ “<<S2<<“ “<<S3<<endl; // fungsi utama int main ( ) { // Melakukan pemanggilan fungsi Tulis Tulis(“Budi”); Tulis(“Penerbit”,”INFORMATIKA”); Tulis(“Mengungkap”,”Rahasia”,”C++”); return 0; Hasilnya: Budi Penerbit INFORMATIKA Mengungkap Rahsia C++

Contoh Program penggunaan fungsi Overload dg tipe parameter berbeda #include <iostream> using namespace std; // mendefinisikan fungsi tulis dg parameter bertipe char* void Tulis (char* X) { cout<<X<<endl; } // mendefinisikan fungsi tulis dg parameter bertipe int void Tulis (int X) { // mendefinisikan fungsi tulis dg parameter bertipe double void Tulis (double X) { // fungsi utama int main ( ) { // Melakukan pemanggilan fungsi Tulis Tulis(“C++”); Tulis(100); Tulis(3.14); return 0; Hasilnya: C++ 100 3.14

Mengembalikan nilai bertipe pointer Kita dapat membuat fungsi yang mengembalikan nilai berupa pointer. Deklarasikan tipe data dari nilai kembalian dengan pointer #include <iostream> using namespace std; char *CariKarakter (char K, char *S) { while ((K !=*S) && (*S) ) { S++ } return S; // Fungsi utama int main( ) { char *P; char* STRING = “Mengungkap rahasia C++” char Karakter = ‘C’; P = CariKarakter(Karakter, STRING); if(P) cout<<“Karakter “<<Karakter<<“ ditemukan pada “<<P; else cout<<“Karakter “<<Karakter<<“ tidak ditemukan pada “ ; return 0; Karakter C ditemukan pada C++

Membuat prototype fungsi Fungsi-fungsi dapat didlarasikan terlebih dahulu kemudian didefinisikan setelah fungsi utama Bentuk umum dari pembuatan prototype fungsi adalah: tipe_data nama_fungsi ( parameter1, parameter2, . . . . .);

Contoh program dengan prototype fungsi #include <iostream> using namespace std; // membuat prototype (pendeklarasian fungsi) int Kali ( int X, int Y ) // Mendeklarasikan fungsi Kali void Tulis (int S) // Mendeklarasikan fungsi Tulis // Fungsi utama int main ( ) { int Bilangan1, Bilangan2, HASIL; cout<<“Masukkan bilangan pertama : “;cin>>Bilangan1; cout<<“Masukkan bilangan kedua : “;cin>>Bilangan2; cout<<endl; // menggunakan fungsi Kali HASIL=Kali(Bilangan1,Bilangan2); //menggunakan fungsi tulis Tulis(HASIL); return 0; } NEXT . . . . .

Hasilnya: Continued // mendefinisikan fungsi Kali int Kali ( int X, int Y) { return (X * Y ); } // mendefinisikan fungsi Tulis void Tulis ( int S ) { cout<<S<<endl; Hasilnya: Masukkan bilangan pertama : 10 Masukkan bilangan kedua : 25 250

Fungsi Inline Dengan adanya Fungsi, eksekusi program akan bolak balik antara fungsi utama dengan fungsi yang dipanggil. Untuk meningkatkan efisiensi, C++ menyediakan fitur yang disebut dengan fungsi inline dengan kata kunci inline Contoh program dengan fungsi inline #include <iostream> using namespace std; inline int Kali2(int X) { return (X*2); } // Fungsi Utama int main ( ) { int HASIL; HASIL = Kali2 (10); cout<<“Hasil : “<<HASIL<<endl; HASIL = Kali2 (20); return 0;

Rekursi adalah fungsi yang pendifinisiannya memanggil dirinya sendiri untuk melakukan proses didalamnya. Contoh perhitunbgan faktorial ! Contoh program mempergunakan fungsi rekursi #include <iostream> using namespace std; //Mendefnskan fungsi faktorial int Faktorial (int X) { if ( X = = 1 ) return (1); return X * Faktorial (X-1) ; // memanggil dirinya sendiri } // Fungsi utama int main ( ) { int Bilangan, HASIL; cout<<“Masukkan bilangan yang akan dihitung : “; cin>>Bilangan; // memanggil fungsi faktorial HASIL = Faktorial ( Bilangan) ; // menampilkan hasil cout<<Bilangan<<“ ! = “<<Hasil; return 0;