Anda di halaman 1dari 6

PENGANTAR MATLAB UNTUK SISTEM PERSAMAAN LINEAR

Muh. Irwan i

i
Prodi Matematika, UIN Alauddin, muhirwan @uin-alauddin.ac.id
ABSTRAK, menggunakannya untuk menyelesaikan system
Pada paper ini dijelaskan beberapa alternatif dalam persamaan linear aljabar.
menyelesaikan sistem persamaan linear (SPL) dengan
menggunakan MATLA. Metode yang digunakan
diantaranya adalah metode matriks (𝑋𝑋 = 𝐴𝐴−1 𝐵𝐵) , Matriks
rref([𝐴𝐴, 𝐵𝐵]) dan eliminasi Gauss.
Definisi
Kata Kunci Sistem persamaan linear, MATLAB. Suatu matriks adalah susunan segiempat siku-
siku dari bilangan-bilangan. Bilangan-
1. PENDAHULUAN bilangan dalam susunan tersebut dinamakan
entri matriks.
Sistem persamaan linear (SPL) merupakan
gabungan dari beberapa persamaan linear yang
Suatu matriks dapat dianggap sebagai suatu tabel
saling berkorelasi. Berbagai metode yang
nilai yang memiliki baris dan kolom. Bentuk
digunakan seperti eliminasi, substitusi, eliminasi
umum suatu matriks A ditulis sebagai
gauss, eliminasi Gauss, eliminasi Gauss Jordan 𝑎𝑎12 … 𝑎𝑎1𝑛𝑛
𝑎𝑎11
dan lain sebagainya. Metode-metode tersebut 𝑎𝑎21 𝑎𝑎22 … 𝑎𝑎2𝑛𝑛
jika dikerjakan secara manual seringkali 𝐴𝐴 = � ⋮ ⋮ ⋯ ⋮ � = 𝑎𝑎𝑖𝑖𝑖𝑖 ,
membutuhkan waktu yang lama untuk 𝑎𝑎𝑚𝑚1 𝑎𝑎𝑚𝑚2 … 𝑎𝑎𝑚𝑚𝑚𝑚
menyelesaikan SPL. Sehingga untuk
memudahkan pengerjaan maka digunakan Dimana 𝑖𝑖 = 1,2, . . 𝑚𝑚, 𝑗𝑗 = 1,2. . 𝑛𝑛. Matriks ini
software MATLAB. memiliki 𝑚𝑚 baris dan 𝑛𝑛 kolom, berukuran 𝑚𝑚 ×
MATLAB singkatan dari Matrix Laboratory
𝑛𝑛.
yang merupakan software matematika yang telah
Suatu vektor merupakan kasus khusus suatu
digunakan pada berbagai bidang ilmu. MATLAB
matriks, yaitu matriks yang berdimensi satu
sebagai software tingkat menengah dan lanjut,
(salah satu dari 𝑚𝑚 atau 𝑛𝑛 yang sama dengan 1).
dibutuhkan untuk menyelesaikan persoalan-
Suatu vektor baris mamiliki orde 1 × 𝑛𝑛,
persoalan matematika khususnya dalam
sedangkan vektor kolom memiliki ordo 𝑚𝑚 × 1.
menyelesaikan SPL. Oleh karena itu pada paper
Selanjutnya, untuk skalar juga merupakan kasus
ini akan diperkenalkan penyelesaian SPL
khusus matriks 1 × 1, 𝑛𝑛 = 1, 𝑚𝑚 = 1.
menggunakan MATLAB.

2. TINJAUAN PUSTAKA Sifat-sifat Matriks


Dua matriks dikatakan sama jika dan hanya jika
Persamaan linear aljabar berbentuk, semua elemen-elemen matriks yang
𝑎𝑎1 𝑥𝑥1 + 𝑎𝑎2 𝑥𝑥2 + 𝑎𝑎3 𝑥𝑥3 + ⋯ + 𝑎𝑎𝑛𝑛 𝑥𝑥𝑛𝑛 = 𝑏𝑏 berkorespondensi memiliki nilai yang sama.
Solusi untuk persamaan ini, merupakan sesuatu Serta ukuran matriksnya harus sama. Atau atau
yang penting untuk berbagai aplikasi. Di dalam dapat dituliskan sebagai
Pemrograman MATLAB, untuk menyelesaikan [𝐴𝐴] = [𝐵𝐵] jika dan hanya jika 𝑎𝑎𝑖𝑖𝑖𝑖 = 𝑏𝑏𝑖𝑖𝑖𝑖 untuk
persamaan ini, dibutuh setidaknya dua metode semu 𝑖𝑖 dan 𝑗𝑗.
yaitu[3]:
a. Menggunakan representasi matriks Konsep pemrograman
b. Menggunakan fungsi solve Untuk mengetahui apakah dua matriks sama atau
Pada bagian ini, kita akan diperkenalkan tidak, dapat dibuat suatu fungsi untuk mengecek
mengenai operasi matriks dan vektor dan hal tersebut. Jika fungsinya bernilai 1 maka
dikatakan dua matriks tersebut sama, tetapi jika

48
JURNAL MSA VOL. 5 NO. 2 ED. JULI - DESEMBER 2017

bernilai 0, maka matriks tersebut tidak sama. mymat =


Berikut diberikan programnya 1 2 3
4 5 6
function myflag = myisequal(mata,matb) 7 8 9
% kita mengasumsikan bahwa jika fungsi >> diag(mymat)’
% bernilai 1 maka kedua matriks sama ans =
% jika fungsi bernilai 0, maka matriks 1 5 9
% tidak sama
Trace matriks bujur sangkar adalah jumlahand ari
myflag = logical(1); semua diagonalnya. Sebagai contoh: 1 + 5 + 9 =15.
[r c] = size(mata);
Konsep pemrograman
if all(size(mata) ~= size(matb))
Bagaimana menentukan trace matriks dalam
myflag = logical(0);
else pemrograman MATLAB? Hal ini mudah
for i=1:r dilakukan, mengingat bahwa trace suatu matriks
for j = 1:c bujur sangkar adalaj jumlahan elemenya yang
if mata(i,j) = matb(i,j) memiliki indeks sama. Sehingga hanya
myflag = logical(0); dibutuhkan satu perulangan. Adapun
end perulangan/iterasi akan berhenti ketika jumlah
end perulangan sama dengan ukuran matriksnya.
end Berikut diberikan programnya.
end
function outsum = mytrace(mymat)
selanjutnya, dengan menuliskan pada worksheet % Menetukan Trace matriks bujur sangkar
matlab dengan, % return kosong jika matriksnya tidak
>> mata = [2 5 8; 1:3]; sama
>> matb = [2:3:8; 1 2 3]; [r c] = size(mymat);
>> myisequal(mata,matb) if r = c
ans = outsum = [];
1 else
outsum = 0;
Metode yang lebih efisien dapat digunakan for i = 1:r
adalah, outsum = outsum+mymat(i,i);
>> isequal(mata,matb) end
ans = end
1 selanjutnya, menuliskan pada worksheet perintah
Fungsi isequal akan bernilai 0 jika kedua berikut:
matriks tidak sama. >> mymat = reshape(1:16,3,3)’
mymat =
Matriks Persegi 1 2 3
Jika suatu matriks memiliki jumlah matriks sama 4 5 6
dengan jumlah kolomnya, maka matriks tersebut 7 8 9
dikatakan matriks persegi. Diagonal utama >> mytrace(mymat)
ans =
matriks persegi disimbolkan denga 𝑎𝑎𝑖𝑖𝑖𝑖 . Sebagai
34
contoh,
Operasi Matriks
1 2 3
𝐴𝐴 = �4 5 6� Operasi matriks yang akan dijelaskan pada
bagian ini yaitu penjumlahan, pengurangan dan
7 8 9
Elemen 𝑎𝑎11 = 1, 𝑎𝑎22 = 5 dan 𝑎𝑎33 = 9 disebut perkalian yaitu sebagai berikut.
sebagai diagonal matriks 𝐴𝐴. MATLAB memiliki
fungsi diagonal (diag) yang bertujuan untuk
menampilkan diagonal suatu matriks.
>> mymat = reshape(1:16,3,3)’

49
JURNAL MSA VOL. 5 NO. 2 ED. JULI - DESEMBER 2017

Penjumlahan Jika 𝑨𝑨 adalah matriks 𝒎𝒎 × 𝒓𝒓 dan 𝑩𝑩 adalah


matriks yang berukuran 𝒓𝒓 × 𝒏𝒏, maka hasil kalai
Definisi
𝑨𝑨𝑨𝑨 adalah matriks berukuran 𝒎𝒎 × 𝒏𝒏 yang entri-
Jika 𝑨𝑨 dan 𝑩𝑩 adalah dua matriks yang entrinya ditentukan sebagai berikut, untuk
ukurannya sama, maka jumlah 𝑨𝑨 + 𝑩𝑩 adalah mencari entri dalam baris 𝒊𝒊 dan kolom 𝒋𝒋 dari 𝑨𝑨𝑨𝑨,
matriks yang diperoleh dengan menambahkan pilihlah baris 𝒊𝒊 dari matriks 𝑨𝑨 dan kolom 𝒋𝒋 dari
bersama-sama entri yang bersesuaian dalam matriks 𝑩𝑩. Kalikan entri-entri yang bersesuaian
kedua matriks tersebut. Matriks yang ukurannya dari baris dan kolom tersebut bersama-sama
berbeda tidak dapat dijumlahkan[3]. dean kemudian tambahkan hasil kali yang
Dua matriks dapat dijumlahkan jika dan hanya dihasilkan[3].
jika kedua matriks tersebut memiliki ukuran
yang sama. Penjumlahan matriks 𝐴𝐴 dan 𝐵𝐵 dapat
dituliskan sebagai Konsep Pemrograman
𝑐𝑐𝑖𝑖𝑖𝑖 = 𝑎𝑎𝑖𝑖𝑖𝑖 + 𝑏𝑏𝑖𝑖𝑖𝑖 . Untuk melakukan perkalian dua matriks,
dibutuhkan 3 perulangan. Dengan ketentuan, 2
Konsep pemrograman perulangan khusus untuk menentukan iterasi
Untuk penjumlahan matriks, user harus hati-hati baris dan kolom matriks 𝐶𝐶 yang berukuran 𝑚𝑚 ×
dalam menempatkan perulangan bertingkat 𝑛𝑛. Untuk setiap elemen pada 𝐶𝐶, perulangan yang
(nested loop)[3]. di dalam bertujuan untuk menjumlahkan hasil
function outmat = mymatadd(mat1,mat2) dari 𝑎𝑎𝑖𝑖𝑖𝑖 ∗ 𝑏𝑏𝑘𝑘𝑘𝑘 , dimana 𝑘𝑘 = 1. . 𝑛𝑛
outmat = [];
if all(size(mat1) == size(mat2)) A = [3 8 0; 1 2 5];
outmat = zeros(size(mat1)); B = [1 2 3 1; 4 5 1 2; 0 2 3 0];
[r c] = size(mat1); [m n] = size(A);
for i = 1:r [nb p] = size(B);
for j = 1:c if n ~= nb
outmat(i,j) = mat1(i,j)+mat2(i,j); disp(‘matriks tidak berukuran sama’)
end else
end C = zeros(m,p);
end for i=1:m
for j = 1:p
selanjutnya, dituliskan pada worksheet mysum = 0;
MATLAB, for k = 1:n
>> A = [1:3;4:6]; mysum = mysum+ A(i,k) * B(k,j);
>> B = [100 10 1; 10 100 1]; end
>> C = mymatadd(A,B) C(i,j) = mysum;
C= end
101 12 4 end
14 105 7 end
simpan script di atas dengan nama
Operasi pengurangan dua matriks, mirip dengan mymatmult.m, selanjutnya dengan mengetik
proses penjumlahan. Perbedaanya, terletak pada perintah berikut di worksheet
tanda operator, yaitu >> mymatmult
𝑐𝑐𝑖𝑖𝑖𝑖 = 𝑎𝑎𝑖𝑖𝑖𝑖 − 𝑏𝑏𝑖𝑖𝑖𝑖 . C =
35 46 17 19
Sehingga untuk programnya, hanya diganti tanda
9 22 20 5
" + " dengan tanda "– " pada program
penjumlahan. Metode yang lebih efisien yang dapat digunakan
yaitu dengan menuliskan perintah berikut,
Perkalian Matriks >> A = [3 8 0; 1 2 5];
>> B = [1 2 3 1; 4 5 1 2; 0 2 3 0];
Definisi >> C = A*B

50
JURNAL MSA VOL. 5 NO. 2 ED. JULI - DESEMBER 2017

C= >> A=[3 -0.1 -0.2;0.1 7 -0.3;0.3 -0.2


35 46 17 19 10]
9 22 20 5
A =
Selain perkalian, Matlab juga menyediakan
fungsi built-in untuk menentukan invers suatu 3.0000 -0.1000 -0.2000
matriks dengan menggunakan sintaks inv[3]. 0.1000 7.0000 -0.3000
0.3000 -0.2000 10.0000

3. PEMBAHASAN >> b=[7.85;-19.3;71.4]

b =
Solusi Matriks Untuk Sistem Persamaan 7.8500
-19.3000
Linear
71.4000
Persamaan aljabar linear berbentuk
𝑎𝑎1 𝑥𝑥1 + 𝑎𝑎2 𝑥𝑥2 + 𝑎𝑎3 𝑥𝑥3 + ⋯ 𝑎𝑎𝑛𝑛 𝑥𝑥𝑛𝑛 = 𝑏𝑏, >> inv(A)*b
Dimana 𝑎𝑎1 , 𝑎𝑎2 , … , 𝑎𝑎𝑛𝑛 koefisien konstant, ans =
𝑥𝑥1 , 𝑥𝑥2 , 𝑥𝑥3 , … , 𝑥𝑥𝑛𝑛 tidak diketahui dan 𝑏𝑏 adalah
konstant [1],[2],[3],[4],[5],[6]. Sedangkan 3.0000
system persamaan aljabar linear berbentuk -2.5000
7.0000
𝑎𝑎11 𝑥𝑥1 + 𝑎𝑎12 𝑥𝑥2 + 𝑎𝑎13 𝑥𝑥3 + ⋯ 𝑎𝑎1𝑛𝑛 𝑥𝑥𝑛𝑛 = 𝑏𝑏1 Jadi diperoleh nilai 𝑥𝑥1 = 3.0, 𝑥𝑥2 = −2.5 dan
𝑎𝑎21 𝑥𝑥1 + 𝑎𝑎22 𝑥𝑥2 + 𝑎𝑎23 𝑥𝑥3 + ⋯ 𝑎𝑎2𝑛𝑛 𝑥𝑥𝑛𝑛 = 𝑏𝑏2 𝑥𝑥3 = 7. Cara yang lebih sederhana dapat
⋮ ⋮ ⋮ dilakukan dengan menggunakan fungsi built-in
𝑎𝑎𝑚𝑚1 𝑥𝑥1 + 𝑎𝑎𝑚𝑚2 𝑥𝑥2 + 𝑎𝑎𝑚𝑚3 𝑥𝑥3 + ⋯ 𝑎𝑎𝑚𝑚𝑚𝑚 𝑥𝑥𝑛𝑛 = 𝑏𝑏𝑚𝑚 , rref. Fungsi rref(A) menghasilkan matriks
berbentuk eselon baris tereduksi dari matriks 𝐴𝐴.
selanjutnya, system persamaan ini akan diubah Penggunaan dalam matlab bisa diruliskan dengan
dalam bentuk matriks 𝐴𝐴𝐴𝐴 = 𝐵𝐵 dengan 𝐴𝐴 adalah >> A=[3 -0.1 -0.2;0.1 7 -0.3;0.3 -0.2
matriks koefisien 𝑥𝑥, 𝑋𝑋 adalah vektor kolom yang 10];
tidak diketahui dan 𝐵𝐵 vektor kolom konstant sisi >> b=[7.85;-19.3;71.4];
kanan sisitem persamaan. Selanjutnya, bentuk
𝐴𝐴𝐴𝐴 = 𝐵𝐵 dapat dijabarkan sebagai, >> rref([A b])
𝐴𝐴−1 𝐴𝐴𝐴𝐴 = 𝐴𝐴−1 𝐵𝐵
ans =
𝐼𝐼𝐼𝐼 = 𝐴𝐴−1 𝐵𝐵
𝑋𝑋 = 𝐴𝐴−1 𝐵𝐵 1.0000 0 0 3.0000
Jadi, nilai 𝑋𝑋 dapat ditentukan dengan 0 1.0000 0 -2.5000
menentukan nilai 𝐴𝐴−1 terlebih dahulu, kemudian 0 0 1.0000 7.0000
dikalikan dengan matriks 𝐵𝐵. Hasil ini sama dengan menggunakan metode
Misalkan diberikan persamaan sebagai berikut invers. Bagian terakhir yang akan dibahas adalah
3𝑥𝑥1 − 0.1𝑥𝑥2 − 0.2𝑥𝑥3 = 7.85 menyelesaikan SPL dengan menggunakan
0.1𝑥𝑥1 + 7𝑥𝑥2 − 0.3𝑥𝑥3 = −19.3 metode eliminasi Gauss.
0.3𝑥𝑥1 − 0.2𝑥𝑥2 + 10𝑥𝑥3 = 71.4
Metode Eliminasi Gauss (EG)
Jad, matriks
3 − 0.1 − 0.2 7.85 Metode EG merupakan salah satu metode yang
𝐴𝐴 = � 0.1 7.0 − 0.3� , 𝐵𝐵 = � −19.3 � digunakan untuk menyelesaikan SPL. Sasaran
0.3 − 0.2 10 71.4 EG adalah membuat matriks yang diperbesar
menjadi matriks segitiga atas dengan
selanjutnya, solusi persamaan linear ditentukan menggunakan operasi baris elementer (OBE).
menggunakan MATLAB yaitu, Berikut diberikan OBE [1][

51
JURNAL MSA VOL. 5 NO. 2 ED. JULI - DESEMBER 2017

1. Mengalikan suatu baris dengan suatu x(i)=(b(i)-jum)/a(i,i);


konstanta yang bukan nol. end
x
2. Menukarkan suatu baris dengan baris
yang lain.
3. Mengurankan suatu baris dengan Output:
kelipatan baris lainnya. masukkan matriks A =
Pada proses penggunaan OBE, terdapat dua [3 -0.1 -0.2;0.1 7 -0.3;0.3 -0.2
langkah yang dilakukan untuk menyelesaikan 10];
SOL yaitu masukkan matriks B=
[7.85;-19.3;71.4];
1. Elimisasi 𝑥𝑥1 , 𝑥𝑥2 , … 𝑥𝑥𝑛𝑛 x =
2. Substitusi ulang 3.6844 -2.5000 7.0000
A =
Algoritma Eliminasi Gauss 3.0000 -0.1000 -0.2000
Input : 𝐴𝐴 adalah Matriks koefisien 𝑋𝑋, B vektor 0.1000 7.0000 -0.3000
konstanta. 0.3000 -0.2000 10.0000
Output: Vektor 𝑋𝑋
Langkah-langkah. b =
7.8500
-19.3000
Program [1] 71.4000
clc
clear all
x =
a=input('masukkan matriks A =');
b=input('masukkan matriks B= '); 3.0000 -2.5000 7.0000
[n,n]=size(a);
s=0;
for j=1:n-1 4. KESIMPULAN
if a(j,j)==0
k=j; Berdasarkan hasil pembahasan maka
for k=k+1:n
if a(k,j)==0
disimpulkan bahwa, MATLAB merupakan suatu
continue software alternatif untuk memudahkan
end penyelesaian SPL baik menggunakan Algoritma
break maupun dengan menggunakan fungsi built-in
end yang disiapkan MATLAB.
B=a(j,:);
C=r(j);
a(j,:)=a(k,:); 5. DAFTAR PUSTAKA
b(j)=b(k);
a(k,:)=B; [1] Anton Howard and Rorres Chris. 200
b(k)=C; .Elementry Linear Algebra Ninth Edition.
end
for i=1+s:n-1
L=a(i+1,j)/a(j,j); [2] Attaway Stormy. 2009. MATLAB: A
a(i+1,:)=a(i+1,:)-L*a(j,:); Practical Introduction to Programming and
b(i+1)=b(i+1)-L*b(j); Problem Solving. Elsevier’s Science
end &Technology Rights. USA.
s=s+1;
end
[3] Epperson, James F. 2013. An Introduction
a; to Numerical Methods and Analysis Secon
x(n)=b(n)/a(n,n); Edition. John Wilety & Sons, Inc. Canada
jum=0; [4] https://alimath.wordpress.com/2013/03/26
for i=n-1:-1:1 /eliminasi-gauss-dan-implementasinya-di-
for j=i+1:n
jum=jum+a(i,j)*x(j); matlab/.
end

52
JURNAL MSA VOL. 5 NO. 2 ED. JULI - DESEMBER 2017

[5] Lyshevski Sergey E. 2003. Engineering


and Scientific Computations Using
MATLAB. John Wiley & Sons, Inc.
Canada
[6] Suprianto Supomo. 2010. Komputasi untuk
Sains dan Teknik Menggunakan Matlab
Edisi III. Fisika-FMIPA, Universitas
Indonesia.

53

Anda mungkin juga menyukai