PERJUMLAHAN MATRIKS
Syarat Perjumlahan matriks adalah Ordo kedua matriks yang dijumlahkan harus sama.
Contoh :
(Main.java)
package
menumatriks;
import
java.util.*;
public class
Main {
public static void main(String[] args) {
int pilih;
Scanner input = new Scanner(System.in);
do {
System.out.println("-------* M A T
R I K S *--------");
System.out.println("1. Perjumlahan
Matriks");
System.out.println("2. Perkalian
Matriks");
System.out.println("3. Invers
Matriks");
System.out.println("4. Determinan
Matriks");
System.out.println("5.
Keluar");
System.out.print("Masukkan Pilihan
anda (1-5) = ");
pilih = input.nextInt();
if(pilih==1)
{
Proses Q = new Proses();
Q.tambah();
}
else if(pilih == 2)
{
Proses1 P = new Proses1();
P.Kali();
}
else if(pilih ==3)
{
Proses3 S = new Proses3();
S.Invers();
}
else if (pilih == 4)
{
Proses2 R = new Proses2();
R.Determinan();
}
} while (pilih>0 &&
pilih<5);
}
}
(Proses.java)
package
menumatriks;
import
java.util.*;
public class
Proses {
public void tambah(){
int [][] MatriksA;
int [][] MatriksB;
int [][] MatriksC;
int Baris;
int Kolom;
Scanner input = new Scanner(System.in);
System.out.println("---* MATRIKS
PERJUMLAHAN *---");
do {
System.out.print("Jumlah
Baris = ");
Baris = input.nextInt();
System.out.print("Jumlah
Kolom = ");
Kolom = input.nextInt();
System.out.println();
MatriksA = new int [Baris][Kolom];
MatriksB = new int [Baris][Kolom];
MatriksC = new int [Baris][Kolom];
} while (Baris != Kolom);
System.out.println("MATRIKS
A");
for(int i=0;i<Baris;i++){
for(int j=0;j<Kolom;j++){
System.out.print("Matriks
A[" +i+ "][" +j+ "] = ");
int isiMatriks =
input.nextInt();
MatriksA[i][j] = isiMatriks;
}
}
System.out.println("MATRIKS
B");
for(int i=0;i<Baris;i++){
for(int j=0;j<Kolom;j++){
System.out.print("Matriks
B[" +i+ "][" +j+ "] = ");
int isiMatriks =
input.nextInt();
MatriksB[i][j] = isiMatriks;
}
}
//Hitung Perjumlahan Matriks A dengan
Matriks B
for( int i=0; i<Baris; i++ ){
for (int j=0; j<Kolom; j++){
MatriksC[i][j] = MatriksA[i][j]
+ MatriksB[i][j];
}
}
//Tampil Matriks A
System.out.println("Matriks
A");
for( int i=0; i<Baris; i++ ){
for (int j=0; j<Kolom; j++){
System.out.print(MatriksA[i][j]+
" ");
}
System.out.println();
}
//Tampil Matriks B
System.out.println("Matriks
B");
for( int i=0; i<Baris; i++ ){
for (int j=0; j<Kolom; j++){
System.out.print(MatriksB[i][j]+
" ");
}
System.out.println();
}
//Tampil Hasil penjumlahan Matriks A
dengan Matriks B
System.out.println("Hasil
Penjumlahan Matriks A dengan Matriks B = ");
for( int i=0; i<Baris; i++ ){
for (int j=0; j<Kolom; j++){
System.out.print(MatriksC[i][j]+
" ");
}
System.out.println();
}
}
}
Syarat 2 Buah Matriks dapat dikalikan jika banyak kolom matriks pertama harus sama dengan banyaknya baris matriks kedua.
Source code Perkalian Matriks menggunakan Bahasa Pemrograman Java dapat dilihat dibawah ini :
(Proses1.java)
package
menumatriks;
import
java.util.*;
public class
Proses1 {
public void Kali(){
Scanner input=new Scanner(System.in);
int ordo,c,d;
System.out.println("---* MATRIKS
PERKALIAN *---");
System.out.print("Masukkan ordo
matriks : ");
ordo=input.nextInt();
int matriks1[][]=new int[ordo][ordo];
int matriks2[][]=new int[ordo][ordo];
System.out.println("\n Matriks
A");
for(c=0;c<matriks1.length;c++){
for(d=0;d<matriks1[c].length;d++){
System.out.print("Elemen
Matriks A pada Baris ke- "+(c+1)+" Kolom ke- "+(d+1)+" :
");
matriks1[c][d]=input.nextInt();
}
}
System.out.println("\n Output
Matriks A : ");
for(c=0;c<matriks1.length;c++){
System.out.print(" [ ");
for(d=0;d<matriks1[c].length;d++){
System.out.print("
"+matriks1[c][d]);
}
System.out.println(" ]
");
}
System.out.println("\n Matriks
B");
for(c=0;c<matriks1.length;c++){
for(d=0;d<matriks1[c].length;d++){
System.out.print("Elemen
Matriks B pada Baris ke- "+(c+1)+" Kolom ke- "+(d+1)+" :
");
matriks2[c][d]=input.nextInt();
}
}
System.out.println("\n
Output Matriks B : ");
for(c=0;c<matriks1.length;c++){
System.out.print(" [
");
for(d=0;d<matriks1[c].length;d++){
System.out.print("
"+matriks2[c][d]);
}
System.out.println(" ]
");
}
System.out.println("\n Hasil
Kali Matriks A dengan Matriks B : ");
int
matriksHasil[][]=hasilKaliMatriks(matriks1,matriks2);
cetakHasil(matriks1,matriks2,matriksHasil,'*');
}
public static int[][] hasilKaliMatriks(int
[][]matriks1,int [][]matriks2){
int hasil[][]=new
int[matriks1.length][matriks2[0].length];
for(int i=0;i<hasil.length;i++){
for(int j=0;j<hasil[0].length;j++){
for(int
k=0;k<matriks1[0].length;k++){
hasil[i][j]+=matriks1[i][k]*matriks2[k][j];
}
}
}
return (hasil);
}
public static void cetakHasil(int[][]matriks1,int
matriks2[][],int matriks3[][],char p){
for(int
i=0;i<matriks1.length;i++){
for(int
j=0;j<matriks1[0].length;j++){
System.out.print("
"+matriks1[i][j]);
}
if(i==matriks1.length/2)
System.out.print("
"+p+" ");
else
System.out.print(" ");
for(int
j=0;j<matriks2[0].length;j++){
System.out.print(" "+matriks2[i][j])
; }
if(i==matriks1.length/2)
System.out.print("
=");
else
System.out.print(" ");
for(int
j=0;j<matriks3[0].length;j++){
System.out.print(" "+matriks3[i][j]);
}
System.out.println();
}
}
}
Suatu matriks dapat dibalik jika dan hanya jika
matriks tersebut adalah matriks persegi (matriks yang berukuran n x n) dan
matriks tersebut non-singular (determinan
0). Tidak semua matriks memiliki invers. Jika A adalah
suatu matriks kuadrat, dan jika kita dapat mencari matriks B sehingga AB = BA =
I, maka A dikatakan dapat dibalik (invertible) dan B dinamakan invers dari
A
Source code Java untuk Invers Matriks dapat dilihat dibawah ini :
(Proses2.java)
package
menumatriks;
import java.util.*;
public class
Proses3 {
public void Invers(){
Scanner in = new Scanner (System.in);
int baris,kolom,hasil;
System.out.println("---* INVERS
MATRIKS *---");
System.out.print("masukkan jumlah
baris : ");
baris = in.nextByte();
System.out.print("masukan jumlah
kolom : ");
kolom = in.nextInt();
System.out.println("data pada
matriks ");
int matriks[][]=new int[baris][kolom];
for (int i=0;i<baris;i++){
for(int j=0;j<kolom;j++){
System.out.print("data
pada baris ke- "+i+" kolom ke- "+j+" : ");
matriks [i][j]=in.nextInt();
}
}
System.out.println();
System.out.println("matriks
sebelum diInvers");
for (int i=0;i<baris;i++){
for (int j=0;j<kolom;j++){
System.out.print(matriks[i][j]+" ");
}
}
//proses invers
float
determinan=(matriks[0][0]*matriks[1][1])-(matriks[1][0]*matriks[0][1]);
System.out.println("Determinanya
Adalah :
"+determinan);
int temp = matriks[0][0];
matriks[0][0]=matriks[1][1];
matriks[1][1]= temp;
matriks[0][1]=matriks[0][1]*-1;
matriks[1][0]=matriks[1][0]*-1;
System.out.println("Invers dari
matriks tersebut adalah : ");
for (int i=0;i<2;i++){
System.out.print("|");
for (int j=0;j<2;j++)
{
System.out.print(matriks[i][j]/determinan+" ");
}
System.out.println("|");
}
}
DETERMINAN MATRIKS
Source code Java untuk Determinan Matriks
(Proses3.java)
package package
menumatriks;
import
java.util.Scanner;
public class
Proses2 {
public void Determinan(){
System.out.println("---*
DETERMINAN MATRIKS *---");
System.out.println("Syarat Matriks
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 Matriks
ke-["+i+"]["+j+"] = ");
data[i][j]=s.nextDouble();
}
}
double d=det(data);
System.out.print("_____________________________");
System.out.println("\n Maka
Determinan Matriks = "+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;
}
}
Selamat mencoba :)