Assalamualaikum Wr Wb.. Selamat datang di e-MasterCom. Blog yang ditujukan penulis sebagai arsip dalam perjalanan hidupnya.
Kamis, 03 April 2014

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

Leave a Reply

Subscribe to Posts | Subscribe to Comments

Welcome to My Blog

Eko Nopyanto

Ini adalah blog pribadi, dimana saya akan membagikan apa yang saya pelajari, buku yang saya baca, dan orang yang saya temui . Saya harap kalian bisa bergabung dalam blog ini...Read More

Translate

Coment Box

- Copyright © Eko Nopyanto -Robotic Notes- Powered by Blogger - Designed by Eko Nopyanto -