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