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

static int Faktorial(int a) {
        if (a == 1 || a == 0)
            return 1;
        else
            return a * Faktorial(a - 1);
    }

  • 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.

public static void main(String[] args) {
        System.out.println(Faktorial(5));
    }
  • 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
public class T1MencariFaktorial {
    static int Faktorial(int a) {
        if (a == 1 || a == 0)
            return 1;
        else
            return a * Faktorial(a - 1);
    }

    public static void main(String[] args) {
        System.out.println(Faktorial(5));
    }
}
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:

import java.util.Scanner;//import

public class T1MencariFaktorial {
    static int Faktorial(int a) {
        if (a == 1 || a == 0)
            return 1;
        else
            return a * Faktorial(a - 1);
    }

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);//instance class Scanner
        System.out.print("Masukkan angka :");
        int angka = input.nextInt();//new variable to save number
        System.out.println(angka+"! adalah "+Faktorial(angka));//call angka as parameter
    }
}

Output:
Masukkan angka :6
6! adalah 720

Baca juga:

4 comments: