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
 
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
 
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:
Ahlinya ahli
ReplyDeletepak ndul :V
DeleteLuar binasa 👍
ReplyDelete:V
Delete