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