[Java] Penghitung Faktorial

Assalamualaikum,
Hari ini saya akan share kode menghitung nilai faktorial melalui program java.
Adakah diantara kita yang tidak mengetahui apa itu nilai faktorial ?
Nilai faktorial terkadang di misalkan n!.
Penyelesaian matematika dari nilai faktorial adalah :
n! = n x (n-1) x (n-2) x (n-3) x .... x 1

Seperti contoh, nilai faktorial 6!
6! = 6 x 5 x 4 x 3 x 2 x 1 = 720

Mungkin sudah ada gambaran tentang nilai faktorial ya!?
Jika sudah ada, ini buatan saya.

import java.awt.event.*; // Library Untuk Event Button
import javax.swing.*; // Library Tambahan
import java.awt.*; // Library Tambahan
import java.io.*; // Library Input Output

class hitung_faktorial extends JFrame {
 JLabel lbl1=new JLabel("Hitung Faktorial"); // Label Tulisan
 JTextField txt1=new JTextField(); // TextField Untuk Pengisian Nilai
 JButton btn1=new JButton("!"); // Tombol Faktorial "!"
 JTextField txt2=new JTextField(); // TextField untuk nilai faktorial


 hitung_faktorial() {
 setTitle("Faktorial"); // Judul
 setSize(200,200); // Ukuran Frame UI
 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Tombol Close-___-
 setVisible(true);
  }

 void komponenVisual() {
 getContentPane().setLayout(null); // Set Frame tidak menggunakan layout apapun
 getContentPane().add(lbl1); // Tambahkan komponen lbl1 pada frame
 lbl1.setBounds(10,10,150,24); // Lokasi lbl1 pada frame
 getContentPane().add(txt1); // Tambahkan komponen txt1 pada frame
 txt1.setBounds(10,50,80,24); // Lokasi txt1 pada frame
 getContentPane().add(btn1); // dst...
 btn1.setBounds(100,50,50,24); //dst...
 getContentPane().add(txt2); //dst...
 txt2.setBounds(10,90,140,24); //dst...
 
 setVisible(true); // Setting visibilitas dari komponen tadi
 }

 void AksiReaksi() {
btn1.addActionListener(new ActionListener() { // konfigurasi tombol faktorial
 public void actionPerformed(ActionEvent e) {
 int n=Integer.parseInt(txt1.getText()); // Pengambilan nilai yang ingin di faktorialkan, di inisialisasikan sebagai variabel "n" pada program

 if (n > -1) { // Cek apakah nilainya lebih dari -1

if (n > 0) { // Cek lagi apakah nilainya lebih dari 0
int nilai=1; // Buat variabel penyimpan nilai faktorial sementara bernama "nilai", dan nilai awalnya ialah 1
 while (n > 0) { // Jika nilai n lebih dari 0
 nilai = nilai*n; // Kalikan nilai dengan n
 n = n-1; // kemudian kurangkan n dengan 1, jika n masih lebih dari 0 maka kembali ke proses pengalian, jika sudah 0, maka keluar dari proses while ini
}
String hasil = String.valueOf(nilai); // Copy hasil akhir dari variabel "nilai" yang ke variabel "hasil" dan di ubah format String untuk di tampilkan pada TextField
txt2.setText(hasil); // Tambilkan pada textfield

} else  { // Jika nilai faktorial = 0, maka hasil faktorialnya = 1.
 String hasil = "1";
 txt2.setText(hasil);
}

} else  { // Jika nilai faktorial itu minus, maka tampilkan tanda larangan.
 String hasil = "Tak Boleh Minus";
 txt2.setText(hasil);
}
}
 });
 }

 public static void main(String[] args) {
 hitung_faktorial faktorial=new hitung_faktorial();
 faktorial.komponenVisual();
 faktorial.AksiReaksi();
 }
}

Semoga bermanfaat, bila ada kesalahan mohon di koreksi ya.
Sekian dari saya, Wassalamualaikum.

Tidak ada komentar:

Posting Komentar