Followers

Wednesday, April 3, 2019

Contoh Program Mencari Faktorial dengan Rekursif Java

Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Jika dapat menggunakan fungsi rekursif dengan baik, ada beberapa kasus perulangan yang rumit dapat dilakukan dengan mudah.
Berikut contoh kasus untuk rekursif:

Buatlah program sederhana untuk mencari faktorial dari angka tertentu menggunakan rekursif



Jawab:
Pertama, buatlah fungsi dengan nama Faktorial(boleh lain), fungsi digunakan untuk mempermudah didalam membuat program

  1. static int Faktorial(int a) {
  2. if (a == 1 || a == 0)
  3. return 1;
  4. else
  5. return a * Faktorial(a - 1);
  6. }

  • static digunakan untuk mendeklarasikan variabel atau method/fungsi yang berdiri sendiri tanpa perlu instance dari suatu class.
  • (int a) merupakan parameter dari fungsi Faktorial
  • untuk membuat rekursif pertama kali yang harus diperhatikan adalah nilai yang pasti terjadi, yaitu nilai yang digunakan untuk menghentikan pengulangan. seperti pada code diatas ketika a sama dengan 1 atau ketika a sama dengan 0 maka nilai yang dikembalikan adalah 1(1!=1, 0!=1). ketika angka lebih dari 1 maka akan dilakukan pengulangan, dengan mengembalikan nilai a * Faktorial(a-1), pengulangan ini akan terus berlanjut sampai dengan a sama dengan 1
Kedua, buatlah fungsi void main yang didalam fungsi ini kita akan memanggil fungsi Faktorial.

  1. public static void main(String[] args) {
  2. System.out.println(Faktorial(5));
  3. }
  • karena kita menggunakan non-access-modifier static maka kita tidak perlu membuat instance  untuk memanggil fungsi, caranya dengan langsung memanggil nama fungsi yaitu Faktorial kemudian diikuti nilai dari parameter
FullCode
  1. public class T1MencariFaktorial {
  2. static int Faktorial(int a) {
  3. if (a == 1 || a == 0)
  4. return 1;
  5. else
  6. return a * Faktorial(a - 1);
  7. }
  8.  
  9. public static void main(String[] args) {
  10. System.out.println(Faktorial(5));
  11. }
  12. }
Output:
120

120 didapat dari 5*4*3*2*1.

Anda dapat memodifikasi program diatas agar user dapat mencari faktorial dari angka yang diinginkan.
Caranya dengan mengimport kelas Scanner java dengan perintah import java.util.Scanner; pada baris pertama. kemudian membuat instance dari kelas tersebut. yang terakhir buatkan variabel untuk menyimpan angka yang dimasukkan user.
Seperti contoh berikut:

  1. import java.util.Scanner;//import
  2.  
  3. public class T1MencariFaktorial {
  4. static int Faktorial(int a) {
  5. if (a == 1 || a == 0)
  6. return 1;
  7. else
  8. return a * Faktorial(a - 1);
  9. }
  10.  
  11. public static void main(String[] args) {
  12. Scanner input = new Scanner(System.in);//instance class Scanner
  13. System.out.print("Masukkan angka :");
  14. int angka = input.nextInt();//new variable to save number
  15. System.out.println(angka+"! adalah "+Faktorial(angka));//call angka as parameter
  16. }
  17. }
  18.  
Output:
Masukkan angka :6
6! adalah 720

Baca juga:

4 comments: