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
Output:
- 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));
- }
- }
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:
Output:
- 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
- }
- }
Masukkan angka :6 6! adalah 720
Baca juga:
Ahlinya ahli
ReplyDeletepak ndul :V
DeleteLuar binasa 👍
ReplyDelete:V
Delete