A. Algoritma
Masukkan nilai n sebagai ordo matrik n x n. Nilai n harus bertipe integer dan bernilai positif
Membuat instantiate ordo matrik
Masukkan nilai matrik ke-[i][j]
Untuk i=0 sampai i<panjang matrik dan j=0 sampai j<panjang matrik baris ke-0
- matrik [i][j] = data[i][j]
- i=baris dan j=kolom
Jika panjang matrik = 1 maka determinan matrik adalah matrik result=ke-[0][0]
Jika panjang matrik = 2 maka determinan matrik adalah
- result=data[0][0]*data[1][1]-data[0][1]*data[1][0];
- result=determinan matrik
Selain itu dilakukan penukaran baris
- Untuk i=0 sampai i<panjang matrik ke-0
Membuat instantiate temp [][] = [(panjang matrik) - 1][(panjang matrik ke-0) -1]
Untuk j=0 sampai j<panjang matrik dan k=0 sampai k<panjang matrik baris ke-0
Jika k<i, maka
temp[j-1][k]=data[j][k];
Jika k>i maka
temp[j-1][k-1]=data[j][k];
- result+=data[0][i]*Math.pow(-1, (double)i)*det(temp);
B. Sript JAVA dengan NetBeans atau Jcreator
import java.util.Scanner;
public class Determinan {
public static void main(String args[]){
System.out.println("Syarat matrik determinan adalah Ordo = n x n");
System.out.print("Masukkan nilai n = ");
Scanner s = new Scanner(System.in);
try{
int n = s.nextInt();
int i,j;
double data[][] = new double [n][n];
for(i=0;i<n;i++){
for(j=0;j<n;j++){
System.out.print("Masukkan nilai matrik ke-["+i+"]["+j+"] = ");
data[i][j]=s.nextDouble();
}
}
double d=det(data);
System.out.print("Determinan matrik = "+d);
}
catch (Exception e){
System.out.println("Nilai n harus lebih besar dari 0");
}
}
public static double det(double [][]data){
double result=0;
if(data.length==1){
result=data[0][0];
return result;
}
else if(data.length == 2){
result=data[0][0]*data[1][1]-data[0][1]*data[1][0];
return result;
}
for(int i=0;i<data[0].length;i++){
double temp[][]= new double[data.length-1][data[0].length-1];
for(int j=1;j<data.length;j++){
for(int k=0;k<data[0].length;k++){
if(k<i){
temp[j-1][k]=data[j][k];
}else if (k>i){
temp[j-1][k-1]=data[j][k];
}
}
}
result+=data[0][i]*Math.pow(-1, (double)i)*det(temp);
}
return result;
}
}
C. Pembahasan
import java.util.Scanner;
Mengeluarkan pustaka java yaitu java.util.Scanner.
public static void main(String args[]){
Suatu
program java dieksekusi setelah adanya metode main(). Jika tidak
terdapat methode main maka program tidak dapat dieksekusi.
System.out.println("Syarat matrik determinan adalah Ordo = n x n");
Syntax
diatas menghasilkan output yang memberitahukan kepada user bahwa suatu
matrik dapat memiliki determinan jika Ordo = n x n.
System.out.print("Masukkan nilai n = ");
Scanner s = new Scanner(System.in);
Memberitahukan kepada user untuk memasukkan nilai
try
catch (Exception e){
System.out.println("Nilai n harus lebih besar dari 0");
Blok
ini digunakan untuk memberi peringatan kepada user jika salah memberi
inputan nilai n yang bernilai negatif. Jika n bernilai negatif maka akan
keluar pesan “Nilai n harus lebih besar dari 0”.
int n = s.nextInt();
int i,j;
double data[][] = new double [n][n];
Memberikan instantiate nilai array data.
for(i=0;i<n;i++){
for(j=0;j<n;j++){
System.out.print("Masukkan nilai matrik ke-["+i+"]["+j+"] = ");
data[i][j]=s.nextDouble();
Syntax diatas digunakan untuk memberikan inputan nilai matrik ke-[i][j].
double d=det(data);
Menginisialisasi nilai d dengan nilai yang dikembalikan dari metode det.
System.out.print("Determinan matrik = "+d);
Mencetak nilai determinan.
public static double det(double [][]data){
Methode yang digunakan untuk menghasilkan nilai determinan.
double result=0;
Mendeklarasi dan menginisialisasi nilai result.
if(data.length==1){
result=data[0][0];
return result;
Menghasilkan nilai determinan matrik jika panjang matrik bernilai 1 dan mengembalikannya (return) . Jika panjang matrik bernilai 1 maka determinan matrik adalah matrik ke-[0][0].
else if(data.length == 2){
result=data[0][0]*data[1][1]-data[0][1]*data[1][0];
return result;
Menghasilkan
nilai determinan matrik jika panjang matrik bernilai 2 dan
mengembalikan nilai tersebut. Jika panjang matrik bernilai 2 maka
determinan matrik (result) adalah
result=data[0][0]*data[1][1]-data[0][1]*data[1][0];
Jika panjang matrik lebih dari dua maka dilakukan penukaran matrik
for(int i=0;i<data[0].length;i++){
double temp[][]= new double[data.length-1][data[0].length-1];
Mendeklarasi dan menginstantiate variabel temp.
for(int j=1;j<data.length;j++){
for(int k=0;k<data[0].length;k++){
if(k<i){
temp[j-1][k]=data[j][k];
}else if (k>i){
temp[j-1][k-1]=data[j][k];
}
Melakukan penukaran matrik
result+=data[0][i]*Math.pow(-1, (double)i)*det(temp);
Menghitung nilai determinan jika panjang matrik lebih dari 2.
Rumus tersebut menggunakan class Math
return result;
Mengembalikan nilai determinan ke methode det