Anda di halaman 1dari 10

INVERS MATRIKS

3
1. PENDAHULUAN
Invers adalah kebalikan. Istilah invers ini biasa dipakai dalam aljabar.
Invers dari 2 adalah 1/2 karena 2(1/2)=1 dan bilangan 1 ini merupakan
identitas. Mudah saja mencari invers suatu anggota himpunan bilangan
rasional tanpa nol terhadap perkalian, invers dari bilangan rasional a
adalah 1/a. Dalam matriks juga sama, seperti yang sudah dijelaskan pada
definisi di atas, jika AB=I dimana I adalah matriks identitas maka B
merupakan invers matriks A dan sebaliknya. Tapi untuk mencari invers
sebuah matriks tidak semudah mencari invers bilangan rasional. Karena
tidak ada operasi pembagian pada matriks.

2. PETUNJUK PRAKTIKUM

Dalam praktikum ini mahasiswa harus sudah mengerti mengenai cara:


1. Masuk ke dalam turbo Pascal.
2. Mendeklarasi variabel dan procedure-procedure yang digunakan.
3. Menggunakan rumus invers matriks.

3. KEGIATAN PRAKTIKUM 1: INVERS MATRIKS

3.1 TUJUAN PRAKTIKUM

1. Mahasiswa dapat membuat program invers dengan menggunakan


program turbo pascal.
2. Mahasiswa dapat menganalisis program invers.

34
3.2 TUNTUNAN LATIHAN

Program Matrik Invers


Pada tuntunan latiahan praktikum kali ini akan dijelaskan langkah-
langkah membuat program invers matriks dengan menggunakan turbo
pascal.

A = 2 3 4
5 6 7 =
8 9 0

1. Buka program turbo pascal, lalu ketikan listing program seperti ini:

uses crt;
type matrik = object
emat, kof : array [1..3,1..3] of integer;
procedure input;
procedure tampil;
procedure invers;
procedure invers2;
procedure invers3;
end;
var i,j,ordo,det,pil : integer;
mat : matrik;
procedure matrik.input;
begin
writeln ;
write ('Masukan Ordo Matrik ','ordo','X','ordo',' (3/2) : ');readln(ordo);
writeln;
for i := 1 to ordo do
begin
for j := 1 to ordo do
begin
write ('Elemen [',i,',',j,'] = ');
readln (emat[i,j]);
end;
end;
end;

35
procedure matrik.tampil;
begin
writeln;
for i:=1 to ordo do
begin
for j:= 1 to ordo do
begin
write (emat[i,j]:5,' ');
end;
writeln;
end;
readln;
end;
procedure matrik.invers;
begin
if ordo = 2 then matrik.invers2
else matrik.invers3;
end;
procedure matrik.invers2;
begin
writeln;
det := (emat[1,1]*emat[2,2])-(emat[1,2]*emat[2,1]);
writeln ('Determinan Matrik = ',det);writeln;
writeln ('Matrik Inversnya :'); writeln;
writeln (emat[2,2],'/',det,' ','-',emat[1,2],'/',det);
writeln('-',emat[2,1],'/',det,' ',emat[1,1],'/',det);
readln;
end;
procedure matrik.invers3;
var detA, detB : integer;
{emat, kof : array [1..3,1..3] of integer;}
begin
detA:= (emat[1,1] * emat[2,2] * emat[3,3]) + (emat[1,2] * emat[2,3] *
emat[3,1]) + (emat[1,3] * emat[2,1] * emat[3,2]);
detB:= (emat[1,3] * emat[2,2] * emat[3,1]) + (emat[2,3] * emat[3,2] *
emat[1,1]) + (emat[1,2] * emat[2,1] * emat[3,3]);
det := detA - detB;

writeln;writeln ('Determinan Matrik = ', det);writeln;


kof[1,1]:=((emat[2,2]*emat[3,3])-(emat[3,2]*emat[2,3]));
kof[1,2]:=((emat[2,1]*emat[3,3])-(emat[2,3]*emat[3,1]))*-1;
kof[1,3]:=((emat[2,1]*emat[3,2])-(emat[2,2]*emat[3,1]));
kof[2,1]:=((emat[1,2]*emat[3,3])-(emat[1,3]*emat[3,2]))*-1;

36
kof[2,2]:=((emat[1,1]*emat[3,3])-(emat[1,3]*emat[3,1]));
kof[2,3]:=((emat[1,1]*emat[3,2])-(emat[1,2]*emat[3,1]))*-1;
kof[3,1]:=((emat[1,2]*emat[2,3])-(emat[1,3]*emat[2,2]));
kof[3,2]:=((emat[1,1]*emat[2,3])-(emat[1,3]*emat[2,1]))*-1;
kof[3,3]:=((emat[1,1]*emat[2,2])-(emat[1,2]*emat[2,1]));
writeln ('Matrik Adjoin :');writeln;
for i :=1 to 3 do
begin
for j:= 1 to 3 do
begin
write (kof[j,i]:8,' ');
end;
writeln;
end;
writeln;writeln ('Matrik Invers :');writeln;
for i:= 1 to 3 do
begin
for j:= 1 to 3 do
begin
write (kof[i,j],'/',det,' ');
end;
writeln;
end;
readln;
end;
begin
repeat

clrscr;
gotoxy (25,1);writeln ('***** Menu Matrik *****');
gotoxy (25,2);writeln ('1. Input Matrik');
gotoxy (25,3);writeln ('2. Matrik Invers');
gotoxy (25,4);writeln ('3. Keluar');
gotoxy (25,5);writeln ('************************');
gotoxy (27,6);write ('Pilihan [1..3] :'); readln (pil);
case pil of
1 : begin
mat.input;
mat.tampil;
end;
2 : mat.invers;
end;
until (pil) = 3;
end.

37
Logika Program Matriks Invers
 Tahap awal buat sebuah variable array serta beberapa procedure
untuk memudahkan pengkondisian menu yang akan dibuat
 Pada prosedur matrik.input; diunakan untuk menampilkan pilihan
menu di dalam menu yang berfungsi untuk menentukan ordo dari
matriks yang akan dibuat serta jumlah elemen yang akan dibuat
dengan menggunakan fungsi perulangan for i := 1 to ordo do Begin
for j := 1 to ordo do Begin write ('Elemen [',i,',',j,'] = '); readln
(emat[i,j]);. End; end;
 pada procedure matrik.tampil; digynakan untuk menampilkan kembali
elemen yang sudah di input sebelumnya.
 Pada procedure.invers di kondisian jika ordonya 2 maka nilai akan di
pindahkan ke procedure matrik.invers2 jika lebih dari itu maka ke
procedure matrik.invers3;
 Pada procedure matriks.invers2; untuk mendapatkan nilai determinan
menggunakan rumus det := (emat[1,1]*emat[2,2])-
(emat[1,2]*emat[2,1]);
 Sedangkan pada determinan ordu 3x3 menggunakan detA:=
(emat[1,1] * emat[2,2] * emat[3,3]) + (emat[1,2] * emat[2,3] *
emat[3,1]) + (emat[1,3] * emat[2,1] * emat[3,2]);
detB:= (emat[1,3] * emat[2,2] * emat[3,1]) + (emat[2,3] * emat[3,2] *
emat[1,1]) + (emat[1,2] * emat[2,1] * emat[3,3]);
det := detA - detB;

38
2. Setelah sukses, jalankan program. Pilih menu Run > Run. Atau
tekan Ctrl + F9 dan masukan nilai ordo dan elemen sesuai dengan
yang diminta.

Gambar 3.1 Input ordo dan elemen matriks

Gambar 3.2 Hasil Output Invers Matriks

 Input nilai 1 pada menu utama.


 Lalu input nilai ordo 3.
 Input nilai Elemen Mariks.
 Tekan Enter untuk melihat hasil.
 Tekan Enter untuk kembali ke menu utama.

39
3.3 LATIHAN

Hitung invers matriks A2×2 berikut A = ….

Gambar 3.4 Input nilai ordo dan elemen matriks

URAIAN :

Jika kita punya matriks 2×2, misal A = , maka invers matriks dapat
dihitung menggunakan rumus

A-1 = B =

Gambar 3.5. Hasil Determinan dan invers matriks

40
ANALISA
Gambar 3.6 merupakan hasil output dari invers matriks

Gambar 3.6. Tampilan hasil invers matriks


Perbaiki listing program dibawah ini sesuai dengan output pada gambar
3.6

uses crt;
type matrik = object
emat, kof : array [1..3,1..3] of integer;
procedure input;
procedure tampil;
procedure invers3;
end;
var i,j,ordo,det,pil : integer;
mat : matrik;
procedure matrik.input;
begin
writeln ;
write ('Masukan Ordo Matrik ','ordo','X','ordo',' (3/2) : ');readln(ordo);
writeln;
for i := 1 to ordo do
begin
for j := 1 to ordo do
begin
write ('Elemen [',i,',',j,'] = ');
readln (emat[i,j]);
end;
end;
end;

41
procedure matrik.invers;
begin
if ordo = 2 then matrik.invers22
else matrik.inver3s3;
end;
procedure matrik.invers2;
begin
writeln;
det := (emat[1,1]*emat[2,2])-(emat[1,2]*emat[2,1]);
writeln ('Determinan Matrik = ',det);writeln;
writeln ('Matrik Inversnya :'); writeln;
writeln (emat[2,2],'/',det,' ','-
',emat[1,2],'/',det);
writeln('-',emat[2,1],'/',det,'
',emat[1,1],'/',det);
readln;
end;

procedure matrik.invers3;
var detA, detB : integer;
{emat, kof : array [1..3,1..3] of integer;}
begin
detA:= (emat[1,1] * emat[2,2] * emat[3,3]) + (emat[1,2] * emat[2,3]
* emat[3,1]) + (emat[1,3] * emat[2,1] * emat[3,2]);
detB:= (emat[1,3] * emat[2,2] * emat[3,1]) + (emat[2,3] * emat[3,2]
* emat[1,1]) + (emat[1,2] * emat[2,1] * emat[3,3]);
det := detA - detB;
writeln;writeln ('Determinan Matrik = ', det);writeln;
kof[1,1]:=((emat[2,2]*emat[3,3])-(emat[3,2]*emat[2,3]));
kof[1,2]:=((emat[2,1]*emat[3,3])-(emat[2,3]*emat[3,1]))*-1;
kof[1,3]:=((emat[2,1]*emat[3,2])-(emat[2,2]*emat[3,1]));
kof[2,1]:=((emat[1,2]*emat[3,3])-(emat[1,3]*emat[3,2]))*-1;
kof[2,2]:=((emat[1,1]*emat[3,3])-(emat[1,3]*emat[3,1]));
kof[2,3]:=((emat[1,1]*emat[3,2])-(emat[1,2]*emat[3,1]))*-1;
kof[3,1]:=((emat[1,2]*emat[2,3])-(emat[1,3]*emat[2,2]));
kof[3,2]:=((emat[1,1]*emat[2,3])-(emat[1,3]*emat[2,1]))*-1;
kof[3,3]:=((emat[1,1]*emat[2,2])-(emat[1,2]*emat[2,1]));
writeln ('Matrik Adjoin :');writeln;
for i :=1 to 3 do
begin
for j:= 1 to 3 do
begin
write (kof[j,i]:8,' ');
end;
writeln;
end;
writeln;writeln ('Matrik Invers :');writeln;
for i:= 1 to 3 do
begin
for j:= 1 to 3 do
begin
write (kof[i,j],'/',det,' ');
end;
writeln;
end;
readln;
end;

42
begin
repeat
clrscr;
gotoxy (25,1);writeln ('***** Menu Matrik *****');
gotoxy (25,2);writeln ('1. Input Matrik');
gotoxy (25,3);writeln ('2. Matrik Invers');
gotoxy (25,4);writeln ('3. Keluar');
gotoxy (25,5);writeln ('************************');
gotoxy (27,6);write ('Pilihan [1..3] :'); readln (pil);
case pil of
1 : begin
mat.input;
mat.tampil;
end;
2 : mat.invers;
end;
until (pil) = 3;
end.

43

Anda mungkin juga menyukai