Anda di halaman 1dari 62

Komputasi Numerik

Terapan

Oleh:

Dian Kharismadewi, Ph.D.

1
Program Studi Teknik Kimia

Universitas Muhammadiyah Palembang

2019

Pengenalan Matlab

SEKILAS MATLAB

Matlab merupakan bahasa untuk komputasi teknik. Matlab merupakan integrasi dari

komputasi, visualisasi dan pemograman dalam suatu lingkungan yang mudah digunakan,

karena permasalahan dan pemecahannya dinyatakan dalam notasi matematika biasa.

Kegunaan Matlab secara umum adalah untuk:

 Matematika dan komputasi

 Pengembangan dan algoritma

 Permodelan, simulasi dan pembuatan prototype

 Analisa data, eksplorasi dan visualisasi

 Pembuatan aplikasi termasuk pembuatan graphical user interface

2
Matlab adalah sistem interaktif dengan elemen dasar array yang memungkinkan

untuk memecahkan banyak masalah perhitungan teknik, khususnya yang melibatkan

matriks dan vector.

Fasilitas-fasilitas pada MATLAB:

Ketika mulai membuka program Matlab, akan muncul desktop matlab yang berisi tools

(Graphical User Interface) untuk mengatur file, variable, dan aplikasi yang berhubungan

dengan matlab, yang diilustrasikan pada gambar berikut.

1. Current Directory

Path Browser memungkinkan Anda melihat dan mengubah alamat Pencarian MATLAB

(alamat tempat MATLAB mencari file-file yang diperlukan )

3
2. Workspace (Pencari tempat kerja)

Workspace browser memungkinkan Anda melihat isi dari tempat kerja Matlab yang sedang

aktif atau Workspace browser juga menyediakan keluaran dari perintah whos,

3. M-File editor/Debuger

Digunakan untuk menuliskan program berupa fungsi-fungsi dan disimpan sesuai dengan

nama fungsinya dan dapat dilakukan eksekusi program. M-File dapat diaktifkan dengan

mengklik File – New – M-File. M-files dapat berisi program, scripts, persamaan atau data

yang dipanggil selama eksekusi. Jika M-files adalah definisi fungsi, selanjutnya bagian yang

terpenting dari jenis m-file ini adalah baris pertama. Baris pertama harus mengandung

4
definisi fungsi sehingga matlab dapat menemukan m-files yang dipanggil. M-files tipe ini

disebut dengan fungsi m-files atau fungsi file. Kode yang digunakan untuk mendefinisikan

file adalah sebagai berikut:

function z = file_name (x, y)

’file_name’ adalah nama sederhana m-file (nama file harus sama dalam definisi dan nama

file. Baris script selanjutnya dalam m-file dapat mendefinisikan fungsi dan label beberapa

variable yang diperlukan.

4. Command Windows

Command windows dapat digunakan seperti kalkulator dan juga dapat untuk menuliskan

operasi-operasi matematika, seperti operasi-operasi matriks, polinomial, dan yang

berhubungan dengan image prosessing.

5
SINTAK (PEMROGRAMAN) DASAR MATLAB

Tipe data yang dikenal dalam pemrograman Matlab hanya dua yaitu Numeric dan String.

Beberapa hal penting yang harus diperhatikan dalam penulisan sintak yaitu:

1. Penamaan Variabel bersifat Case Sensitive artinya Matlab akan membedakan adanya

huruf besar dan kecil dalam penamaan (misalnya lbr akan tidak sama dengan Lbr)

2. Panjang nama variabel tidak dapat melebihi 31 karakter

3. Penamaan variabel harus selalu diawali dengan huruf, tidak boleh dengan bilangan

simbol dan lain-lain.

Cara Penulisan Variabel

6
Matlab menggunakan variabel sebagai media bagi pemrograman untuk menempatkan data

input/output. Ada beberapa cara penulisan yang dapat digunakan sesuai jenis data yang

ingin diolah, yaitu:

1. Data Numerik Tunggal

Cara penulisan

a = 12

Diterjemahkan Matlab sebagai:

a=

12

2. Data Numerik Berdimensi Banyak (Array/Matrik)

Cara penulisan

a = [12 30 ; 10 20]

Beberapa hal penting penggunaan perintah Matlab

 Tanda ( ; ) pada akhir command menunjukkan hasil command tidak ditampilkan

pada layar

 Tanda ( [ ] ) digunakan untuk penulisan batas awal dan batas akhir elemen matrik

 Tanda ( ; ) dalam deklarasi matrik digunakan untuk pemisahan antar baris dalam

matrik (carriage return)

 Tanda ( , ) dalam deklarasi matrik berarti sama dengan spasi atau pemisah antar

elemen dalam satu baris matrik

Penulisan diatas diterjemahkan oleh Matlab sebagai berikut:

a=

12 30

7
10 20

3. Data String/Teks

Cara penulisan

>> a=’ali’

Diterjemahkan Matlab sebagai:

a=

ali

Cara Mengakses Variabel

Secara default Matlab mengenali variabel yang digunakan sebagai sebuah

matrik/array. Maka untuk variabel yang memiliki elemen lebih dari satu,

pengalamatan setiap elemen variabel pada Matlab memakai notasi berikut:

Variabel (baris ke, kolom ke)

Untuk ilustrasi cara penggunaanya, sebuah matrik a berdimensi 3x3.

>> a = [2 3 6 ; 6 4 7 ; 8 2 9]

a=

2 3 6

6 4 7

8 2 9

8
Cara mengakses elemen tunggal, adalah sebagai berikut:

>> a ( 2, 3 )

ans =

Artinya anda sedang mengakses elemen pada baris ke 2 kolom ke 3 dari variabel a.

Cara mengakses elemen pada baris tertentu, adalah sebagai berikut:

>> a ( 2, : )

ans =

6 4 7

Artinya anda sedang mengakses elemen-elemen pada baris ke 2 dari variabel a. Tanda titik

dua (:) pada bagian ”kolom ke” memiliki arti semua kolom.

Cara mengakses elemen pada kolom tertentu, adalah sebagai berikut:

>> a ( :, 3 )

ans =

Artinya anda sedang mengakses elemen-elemen pada kolom ke 3 dari variabel a. Tanda titik

dua (:) pada bagian ”baris ke” memiliki arti semua baris.

Cara mengakses beberapa elemen sekaligus pada baris dan kolom tertentu, adalah sebagai

berikut:

9
>> a (1 : 2, 2 : 3)

ans =

3 6

4 7

Artinya anda sedang mengakses elemen-elemen dari baris ke 1 sampai ke 2 dan elemen-

elemen pada kolom ke 2 sampai ke 3 dari variabel a. Penulisan (1:2) pada bagian ”baris ke”

memiliki arti dari baris 1 ke baris 2). Penulisan (2:3) pada bagian ”kolom ke” memiliki arti dari

kolom 2 sampai ke kolom 3.

 Matematika Sederhana

Contoh : 5 + 4 = 9

Pi = 3.14

4 x 25 + 6 x 52 + 2 x 99 = 610

Apabila dikerjakan dengan Matlab :

 Operasi-operasi Aritmetik Dasar :

Operasi Simbol Contoh

Penambahan, a + b + 5+3

10
Pengurangan, a – b – 23 – 12

Perkalian, a x b * 3.14 * 5

Pembagian, a : b / atau \ 6/3 = 3\6

Pemangkatan, ab ^ 5^2

 Fungsi Trigonometri

Fungsi Trigonometri Deskripsi

acos Invers kosinus

acosh Invers hiperbola kosinus

acot Invers kotangen

acoth Invers hiperbola kotangen

acsc Invers kosekan

acsch Invers hiperbola kosekan

asin Invers sinus

asinh Invers hiperbola sinus

atan Invers tangen

atanh Invers hiperbola tangen

cos Kosinus

cosh Kosinus hiperbola

cot Kotangen

coth Kotangen hiperbola

csc Kosekan

csch Kosekan hiperbola

11
sec Sekan

sech Sekan hiperbola

sin Sinus

sinh Sinus hiperbola

tan Tangen

tanh Tangen hiperbola

 Fungsi Matematika Lainnya

Fungsi Eksponensial Deskripsi

Exp Eksponensial

Log Logaritma natural

log10 Logaritma basis 10

log2 Logaritma basis 2

Sqrt Akar pangkat

VEKTOR DAN MATRIKS VEKTOR MATRIKS

Vektor dan matriks merupakan konsep dasar perhitungan dalam Matlab. Berbagai
perhitungan dapat diselesaikan dengan lebih mudah, ringkas, dan cepat bila bentuknya
dikonversi ke dalam bentuk vektor/matriks. Untuk itu, harus dipahami benar dasar operasi
dengan menggunakan vektor/matriks.

1. Skalar
Di dalam Matlab, skalar adalah sebuah data dengan satu baris dan satu

12
kolom. Variabel-variabel yang memuat data skalar tersebut dapat mengalami operasi
penjumlahan, pengurangan, perkalian, dan pembagian.

2. Vektor
Di dalam Matlab, vektor adalah sekumpulan data yang membentuk hanya satu baris
atau satu kolom.
Penulisan elemen dilakukan di dalam kurung siku [ ] yang diantarai dengan spasi atau titik
koma. Pengecualian berlaku hanya untuk penulisan data yang berbentuk deret dengan pola
tertentu.
Vektor dapat mengalami operasi dengan skalar atau dengan vektor lain asalkan mempunyai
dimensi yang sama.

Contoh : Vektor dan Operasinya

(i) Bentuk deret sederhana


Bentuk umum penulisan data dengan pola tertentu atau deret yang sederhana:
variabel = n : m dimana n = nilai awal, m = nilai akhir

>> a = 1:5
a =
1 2 3 4 5

>> a = [1:5]
a =
1 2 3 4 5

>> a = [1 2 3 4 5]
a =
1 2 3 4 5

>> 1:10

ans =

1 2 3 4 5 6 7 8 9 10

>> 1:2:10
13
ans =
1 3 5 7 9

>> 0:2:10
(ii) Penggunaan increment
Bentuk umum penulisan data dengan pola tertentu atau deret:
variabel = n : i : m dimana n = nilai awal, m = nilai akhir, dan i = increment/langkah; bila I
tidak didefinisikan, maka Matlab akan
menggunakan default-nya yaitu 1.

Vektor dapat mengalami operasi penjumlahan, pengurangan, perkalian, dan pembagian.


Operasi penjumlahan dan pengurangan dapat dilakukan bila vektor-vektor yang akan
dijumlahkan atau dikurangkan mempunyai orde (dimensi) yang sama. Perkalian 2 buah
vektor x dan y mempunyai bentuk:
Σxi * yi dimana kedua vektor juga harus berde sama, tetapi 1 vektor kolom dan yang lainnya
vektor baris.

>> a = [1 2 3] % vector baris a


a =

1 2 3

>> b = [2 1 0] % vector baris b


b =

2 1 0

>> a + b % penjumlahan vector baris a dan vector baris b


ans =
14
3 3 3

>> a – b % pengurangan vector baris a dengan vector baris b


ans =
>> a * b % perkalian vector baris dengan vector baris tidak
bisa
??? Error using ==> *
Inner matrix dimensions must agree.

>> b=[2; 1; 0] % vector kolom b


b =
2
1
0

>> a * b % perkalian vector baris a dengan vector kolom b


ans =
4

3. Matriks

Matriks merupakan himpunan data yang membentuk beberapa baris dan kolom.
Aturan operasi penjumlahan dan pengurangan yang berlaku pada vektor juga berlaku untuk
matriks apabila matriks mempunyai dimensi yang sama.

15
Perkalian antara 2 buah matriks misalkan matriks A dan matriks B. Perkalian matriks
A x B, harus memenuhi aturan bahwa banyaknya kolom pada matriks A harus sama dengan
banyaknya baris pada matriks B.

Sifat-sifat perkalian matriks:


1. Sifat komutatif terhadap penjumlahan
A+B = B+A

2. Sifat assosiatif terhadap penjumlahan


(A+B)+C = A+(B+C)

3. Sifat matriks nol


A+0 = A

4. Sifat lawan matriks


A+(-A) = 0

5. Sifat assosiatif terhadap perkalian


(AB)C = A(BC)

6. Sifat distributif kiri


A(B+C) = AB+AC

7. Sifat distributif kanan


(A+B)C = AC+BC

8. Sifat perkalian dengan konstanta, k konstanta real


k(AB) = (kA)B = A(kB)

9. Sifat perkalian dengan matrik satuan


AI = IA = A
Contoh : Matriks dan Operasinya

>> A=[1 2 3;2 1 3] % Operasi penambahan dan pengurangan


matriks. Dimensi matriks harus sama
A =
1 2 3
2 1 3

>> B=[3 3 3;2 2 2]


16
B =
3 3 3
2 2 2
17
Pada perkalian matriks C = AB, elemen Cij adalah penjumlahan dari masing-masing
elemen pada baris ke-i dari matriks A dengan masing-masing elemen pada kolom ke-j
dari matriks B.

𝐶𝑖𝑗 = ∑ 𝐴𝑖𝑘 𝐵𝑘𝑗


𝑘

Perkalian matriks diatas dapat diilustrasikan sebagai berikut. Misalkan matriks A


berukuran 2x3.
𝑎11 𝑎12 𝑎13
𝐴 = (𝑎 𝑎23 )
21 𝑎22

𝑎′
atau dapat ditulis juga menjadi 𝐴 = ( 1′ )
𝑎2
dimana

𝑎1′ = (𝑎11 𝑎12 𝑎13 )


𝑎2′ = (𝑎21 𝑎22 𝑎23 )

Merupakan vector yang berukuran 1x3.

Selanjutnya matriks B berukuran 3x2.


𝑏11 𝑏12
𝐵 = (𝑏21 𝑏22 )
𝑏31 𝑏32

atau dapat ditulis juga menjadi


𝐵 = (𝑏1 𝑏2 )

Merupakan vector berukuran 1x2.

Selanjutnya perkalian matriks A dan matriks B akan menghasilkan matriks C berukuran


2x2.
𝑐11 𝑐12 𝑎1′ 𝑏1 𝑎1′ 𝑏2
𝐶 = 𝐴𝐵 = (𝑐 𝑐22 ) = ( )
21 𝑎2′ 𝑏1 𝑎2′ 𝑏2

Dimana

18
3

𝑐11 = 𝑎1′ 𝑏1 = ∑ 𝑎1𝑗 𝑏𝑗1 = 𝑎11 𝑏11 + 𝑎12 𝑏21 + 𝑎13 𝑏31
𝑗=1

𝑐12 = 𝑎1′ 𝑏2 = ∑ 𝑎1𝑗 𝑏𝑗2 = 𝑎11 𝑏12 + 𝑎12 𝑏22 + 𝑎13 𝑏32
𝑗=1

𝑐21 = 𝑎2′ 𝑏1 = ∑ 𝑎2𝑗 𝑏𝑗1 = 𝑎21 𝑏11 + 𝑎22 𝑏21 + 𝑎23 𝑏31
𝑗=1

𝑐22 = 𝑎2′ 𝑏2 = ∑ 𝑎2𝑗 𝑏𝑗2 = 𝑎21 𝑏12 + 𝑎22 𝑏22 + 𝑎23 𝑏32
𝑗=1

Determinan dan invers matriks


𝑎 𝑏
Jika 𝐴 = ( ) maka determinan matriks A adalah
𝑐 𝑑

det(𝐴) = |𝐴| = 𝑎𝑑 − 𝑏𝑐

Invers matriks A adalah


1 𝑑 −𝑏
𝐴−1 = ( )
𝑑𝑒𝑡𝐴 −𝑐 𝑎
Invers matriks dapat digunakan untuk menyelesaikan persamaan matriks
AX = B  X = A-1B
XA = B  X = BA-1

Misal:
2 7 −3 8
Diketahui ( )𝑋 = ( ), hitunglah determinan X dan matriks X.
5 3 7 −9

Jawab:
>> A=[2 7;5 3]

A=

2 7

19
5 3

>> B=[-3 8;7 -9]

B=

-3 8
7 -9

>> X=inv(A)*B

X=
2.0000 -3.0000
-1.0000 2.0000

>> det(X)

ans =

1.0000

20
Teknik Dasar Manipulasi Data
1. Teknik Membangun Data
 Membangun data dengan elemen yang telah ditentukan
>> x=[2 4 6]
x=
2 4 6

>> x=[2;4;6]
x=
2
4
6

>> x=[2 4 6;1 1 5]


x=
2 4 6
1 1 5

 Membangun data dengan batas awal dan batas akhir


>> sdt = [30:35]
sdt =
30 31 32 33 34 35

 Membangun data dengan batas awal, increment dan batas akhir


>> sdt=[30:10:90]
sdt =
30 40 50 60 70 80 90

 Membangun data dengan batas awal dan batas akhir, tetapi jumlah data
ditentukan
>> sdt=linspace(30,90,5)
sdt =

21
30 45 60 75 90

 Membangun data logaritmik dengan batas awal dan batas akhir, tetapi jumlah
data ditentukan

Misalkan membuat data 5 nilai yang berada dalam interval 102 dan 104
>> x=logspace(2,4,5)
x=
1.0e+004 *
0.0100 0.0316 0.1000 0.3162 1.0000

 Membangun data menggunakan standar Matrik Matlab


>> x=ones(3,4)
x=
1 1 1 1
1 1 1 1
1 1 1 1

>>zeros(3,4)
x=
0 0 0 0
0 0 0 0
0 0 0 0

>>eye(4,4)
x=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

 Membangun data random


>>x=rand(4,4)
x=

22
0.9501 0.8913 0.8214 0.9218
0.2311 0.7621 0.4447 0.7382
0.6068 0.4565 0.6154 0.1763
0.4860 0.0185 0.7919 0.4057

Membangkitkan data random dengan interval


variabel = (akhir-(rand()*(akhir-awal)))

>>a=(7-(rand(4)*(7-5)))
a=
6.0985 6.4905 5.1832 6.8432
5.5682 5.2688 6.5362 5.7184
5.2143 6.5353 6.5214 6.6182
6.4538 5.3903 6.9005 5.3123

2. Orientasi dan Augmentasi Data


 Mengubah orientasi data dengan transpose
>>a=[2 3 6;6 4 7]
a=
2 3 6
6 4 7

>>a=a’
a=
2 6
3 4
6 7

 Menempelkan data pada baris


>>a=[2 3 6;6 4 7]
a=
2 3 6
6 4 7

23
>>b=[2 2 2]
b=
2 2 2

>>aug=[a;b]
aug =
2 3 6
6 4 7
2 2 2

 Menempelkan data pada kolom


>>a=[2 3 6;6 4 7]
a=
2 3 6
6 4 7

>>b=[9;9]
b=
9
9

>>aug=[a b]
aug =
2 3 6 9
6 4 7 9

Untuk mengkombinasikan kita gunakan operator logika berikut:


Operator AND: & ; misal: A  B ditulis A & B
Operator OR: | ; misal: A  B ditulis A | B
Operator NOT: ~ ; misal A ~ B ditulis A ~ B

Tipe data logika mempresentasikan logika benar atau salah menggunakan angka 1
untuk benar dan angka 0 untuk salah.

24
A B A&B atau A|B atau ~A atau
and(A,B) or(A,B) not(A)
0 0 0 0 1
0 1 0 1 1
1 0 0 1 0
1 1 1 1 0

3. Pengurutan Data
var2=sort(var1,1)

>>a=[2 3 1;9 6 7;7 9 5]


a=
2 3 1
9 6 7
7 9 5

>>b=sort(a,1)
b=
2 3 1
7 6 5
9 9 7

var2=sort(var1,2)
>>a=[2 3 1;9 6 7;7 9 5]
a=
2 3 1
9 6 7
7 9 5

>>b=sort(a,2)
b=
1 2 3
6 7 9

25
5 7 9

4. Pengurutan Data
Cara menuliskan syarat menggunakan ekspresi matematika (operator relasi) adalah
sebagai berikut;
== sama dengan
~= tidak sama dengan
> lebih besar dari
>= lebih besar atau sama dengan
< lebih kecil dari
<= lebih kecil atau sama dengan

>>a=[2 3 1;9 6 7;7 9 5]


a=
2 3 1
9 6 7
7 9 5

>>b=(a>7).*a
b=
0 0 0
9 0 0
0 9 0

Program diatas maksudnya adalah menyeleksi elemen pada data a dengan syarat
elemen tersebut lebih besar dari 7, lalu hasilnya disimpan pada variable b.

>>c=(a~=7)
c=
1 1 1
1 1 0
0 1 1

26
Untuk mendapatkan nilai yang terseleksi, kalikan hasil diatas dengan data asal. Gunakan
perkalian elemen.
>>c=(a~=7).*a
c=
2 3 1
9 6 0
0 9 5

Cara Bekerja dengan MATLAB


Dalam melakukan pekerjaan pemrograman menggunakan bahasa MATLAB, anda dapat
menggunakan salah satu cara yaitu:

Cara #1: Langsung di Command Window


Cara #2: Menggunakan M-file
Kelebihan menggunakan cara ini adalah kemudahan untuk mengevaluasi perintah
secara keseluruhan. Terutama untuk program yang membutuhkan waktu pengerjaan
yang cukup lama serta skrip yang cukup panjang.

Untuk menggunakan cara ini, dapat melalui tahapan berikut:


 Contoh latihan 1
1. Pada command window, ketikkan:
>> edit

2. Tekan enter, selanjutnya muncul Matlab editor dan anda ketiklah program berikut:
% -------------------------------------------
% Program latihan 1
% Matlab programming
% Oleh: Dian
% -------------------------------------------

clear all;
clc;

disp(‘---------------------------------------‘);

27
disp(‘Program latihan 1’);
disp(‘---------------------------------------‘);

pjg = 10;
lbr = 10;
luas = pjg*lbr;
disp([‘luas -> ’ num2str(luas)]);

3. Setelah selesai, simpanlah data tersebut dengan mengklik tombol File kemudian
Save As, dan gantilah file namenya dengan nama latihan01 dengan extensi (*.m)

4. Kemudian tutuplah layar editor dengan mengklik tanda x

5. Pada command window, ketiklah sebagai berikut


>>latihan01
6. Kemudian tekan enter, selanjutnya program akan dijalankan dan menghasilkan
sebagai berikut:
-------------------------------------------
Program latihan 1
-------------------------------------------

Luas -> 100

 Contoh latihan 2
Berikut adalah contoh penggunaan fungsi trigonomentri:
1. Pada command window, ketikkan:
>>edit

2. Tekanlah enter, selanjutnya muncul MATLAB editor dan anda ketiklah program
dibawah ini

% ------------------------------------------

28
% Program latihan 2
% Matlab programming
% Oleh: Dian
% -------------------------------------------

clear all;
clc;

disp(‘---------------------------------------‘);
disp(‘Program latihan 2’);
disp(‘---------------------------------------‘);

x = [0:10:180];
y1 = sin(x*pi/180);
y2 = cos(x*pi/180);

out = [x’ y1’ y2’]

3. Setelah selesai, simpanlah data tersebut dengan mengklik tombol File kemudian
Save As, dan gantilah file namenya dengan nama latihan02 dengan extensi (*.m)

4. Kemudian tutuplah layar editor dengan mengklik tanda x

5. Pada command window, ketiklah sebagai berikut


>>latihan02

6. Kemudian tekan enter, selanjutnya program akan dijalankan dan menghasilkan


sebagai berikut:
-----------------------------------
Program latihan 2
-----------------------------------

out =
0 0 1.0000

29
10.0000 0.1736 0.9848
20.0000 0.3420 0.9397
30.0000 0.5000 0.8660
40.0000 0.6428 0.7660
50.0000 0.7660 0.6428
60.0000 0.8660 0.5000
70.0000 0.9397 0.3420
80.0000 0.9848 0.1736
90.0000 1.0000 0.0000
100.0000 0.9848 -0.1736
110.0000 0.9397 -0.3420
120.0000 0.8660 -0.5000
130.0000 0.7660 -0.6428
140.0000 0.6428 -0.7660
150.0000 0.5000 -0.8660
160.0000 0.3420 -0.9397
170.0000 0.1736 -0.9848
180.0000 0.0000 -1.0000

 Contoh latihan 3
Berikut adalah contoh penulisan sintak untuk menerima input yang dilanjutkan dengan
menampilkan hasil proses program ke layar:
1. Pada command window, ketikkan:
>> edit

2. Tekan enter, selanjutnya muncul MATLAB editor dan anda ketiklah program dibawah
ini:
% ------------------------------------------
% Program latihan 3
% Matlab programming
% Oleh: Dian
% -------------------------------------------

clear all;

30
clc;

disp(‘---------------------------------------‘);
disp(‘Program latihan 3’);
disp(‘---------------------------------------‘);

pjg = input(‘Data panjang = ‘);


lbr = input (‘Data lebar = ‘);
luas = pjg*lbr;
disp([‘Luas -> ’ num2str(luas)]);

3. Setelah selesai, simpanlah data tersebut dengan mengklik tombol File kemudian
Save As, dan gantilah file namenya dengan nama latihan03 dengan extensi (*.m)

4. Kemudian tutuplah layar editor dengan mengklik tanda x

5. Pada command window, ketiklah sebagai berikut


>>latihan03

6. Kemudian tekan enter, selanjutnya program akan dijalankan, berturut-turut


masukkan variable panjang lalu enter kemudian lebar lalu enter dan menghasilkan
sebagai berikut:
-----------------------------------
Program latihan 3
-----------------------------------

Data panjang = 5
Data lebar = 6
Luas -> 30

Kondisional/Percabangan
Kondisional nilai relative (if….elseif….else….end)
 Contoh latihan 4

31
1. Pada command window, ketikkan:
>> edit

2. Tekan enter, selanjutnya muncul MATLAB editor dan anda ketiklah program dibawah
ini:
% ------------------------------------------
% Program latihan 4
% Matlab programming
% Oleh: Dian
% -------------------------------------------

clear all;
clc;

disp(‘---------------------------------------‘);
disp(‘Program latihan 4’);
disp(‘---------------------------------------‘);

uts1=input(‘nilai uts1 = ’);


uts2=input(‘nilai uts2 = ’);
uas=input(‘nilai uas = ‘);

na = (uts1*20/100)+(uts2*30/100)+(uas*50/100);

disp([‘nilai akhir = ‘ num2str(na)]);

if na>80
disp(‘grade anda = A’);
elseif na<=80 & na>70
disp(‘grade anda = B’);
elseif na<=70 & na>60
disp(‘grade anda = C’);
elseif na<=60 & na>50
disp(‘grade anda = D’);

32
else
disp(‘grade anda = E’);
end;

3. Setelah selesai, simpanlah data tersebut dengan mengklik tombol File kemudian
Save As, dan gantilah file namenya dengan nama latihan04 dengan extensi (*.m)

4. Kemudian tutuplah layar editor dengan mengklik tanda x

5. Pada command window, ketiklah sebagai berikut


>>latihan04

6. Kemudian tekan enter, selanjutnya program akan dijalankan dan menghasilkan


sebagai berikut:
-----------------------------------
Program latihan 4
-----------------------------------

nilai uts1 = 50
nilai uts2 = 35
nilai uas = 78
nilai akhir = 59.5
grade anda = D
>>

Kondisional nilai absolut (switch…case…otherwise…end)


 Contoh latihan 5
1. Pada command window, ketikkan:
>> edit

2. Tekan enter, selanjutnya muncul MATLAB editor dan anda ketiklah program dibawah
ini:
% ------------------------------------------
% Program latihan 5

33
% Matlab programming
% Oleh: Dian
% -------------------------------------------

clear all;
clc;

disp(‘---------------------------------------‘);
disp(‘Program latihan 5’);
disp(‘---------------------------------------‘);

disp(‘Pilihan Rumus Perhitungan’);


disp(‘1. Luas kotak’);
disp(‘2. Volume kotak’);
disp(‘3. Luas silinder’);
disp(‘4. Volume silinder’);
disp(‘ ‘);
pilih=input(‘pilihan anda (1-4) -> ‘);

switch pilih
case 1
disp(‘Hitung Luas Kotak’);
disp(‘------------------------------‘);
pjg=input(‘panjang kotak = ‘);
lbr=input(‘lebar kotak = ‘);
tg=input(‘tinggi kotak = ‘);
luas=2*pjg+2*lbr+2*tg;
disp([‘luas kotak = ‘ num2str(luas)]);
case 2
disp(‘Hitung Volume Kotak’);
disp(‘------------------------------‘);
pjg=input(‘panjang kotak = ‘);
lbr=input(‘lebar kotak = ‘);
tg=input(‘tinggi kotak = ‘);

34
volume=pjg*lbr*tg;
disp([‘volume kotak = ‘ num2str(vol)]);
case 3
disp(‘Hitung Luas Silinder’);
disp(‘------------------------------‘);
r=input(‘jari-jari silinder = ‘);
tg=input(‘tinggi silinder = ‘);
luas=(2*pi*r*tg)+2*(pi*r^2);
disp([‘luas silinder = ‘ num2str(luas)]);
case 4
disp(‘Hitung Volume Silinder’);
disp(‘------------------------------‘);
r=input(‘jari-jari silinder = ‘);
tg=input(‘tinggi silinder = ‘);
vol=pi*r^2*tg;
disp([‘volume silinder = ‘ num2str(vol)]);
otherwise
disp(‘pilihan anda salah!’)
end;

3. Setelah selesai, simpanlah data tersebut dengan mengklik tombol File kemudian
Save As, dan gantilah file namenya dengan nama latihan05 dengan extensi (*.m)

4. Kemudian tutuplah layar editor dengan mengklik tanda x

5. Pada command window, ketiklah sebagai berikut


>>latihan05

6. Kemudian tekan enter, selanjutnya program akan dijalankan dan menghasilkan


sebagai berikut:
-----------------------------------
Program latihan 5
-----------------------------------

35
Pilihan Rumus Perhitungan
1. Luas Kotak
2. Volume Kotak
3. Luas Silinder
4. Volume Silinder

Pilihan anda (1-4) -> 3


Hitung Luas Silinder
-----------------------------------
jari-jari silinder = 5
tinggi silinder = 6
luas silinder = 345.5752
>>

Latihan Soal:
Buatlah perintah untuk penilaian akhir mahasiswa mata kuliah Komputasi Numerik
berikut dengan menggunakan MATLAB.

Komponen penilaian:
Tugas =20%
UTS = 30%
UAS = 50%
Total Nilai = Tugas + UTS + UAS

Dengan kriteria nilai sebagai berikut:


Grade Rentang Nilai
A 80 - 100
B+ 75 - 79.99
B 68 - 74.99
C+ 60 - 67.99
C 56 - 59.99
D 40 - 55.99
E 0 - 39.99

36
Dimana bila nilai mahasiswa A->C maka Lulus, dan D->E maka tidak lulus. Dari hasil yang
diperoleh mahasiswa bernama Dian pada akhir semester mendapatkan nilai tugas 80,
UTS 70 dan UAS 50.

Sistem Persamaan Linear


Persamaan linear merupakan persamaan dalam beberapa variable yang berbentuk
polynomial dengan derajat variable satu atau nol dan tidak terjadi perkalian antar
variabelnya.
Contoh:
5x – yv3 + 10 – z = 2
X2 – 2z = 4  bukan persamaan linear
2xy – 4x + y – 1 = 0

2x + y = 5  persamaan linear

Metode-metode solusi numerik yang banyak dipakai dalam menyelesaikan suatu sistem
persamaan linear dapat diklasifikasikan sebagai berikut:
1. Metode Langsung
a. Metode Langsung Eliminasi Gauss (EGAUSS), prinsipnya: merupakan operasi
eliminasi dan substitusi variabel-variabelnya sedemikian rupa sehingga dapat
terbentuk matriks segitiga atas, dan akhirnya solusinya diselesaikan menggunakan
teknik substitusi balik (backsubstitution),
b. Metode Eliminasi Gauss ini. Eliminasi Gauss-Jordan (EGJ), prinsipnya: mirip sekali
dengan metode EG, namun dalam metode ini jumlah operasi numerik yang
dilakukan jauh lebih besar, karena matriks A mengalami inversi terlebih dahulu
untuk mendapatkan matriks identitas (I). Karena kendala tersebut, maka metode ini
sangat jarang dipakai, namun sangat bermanfaat untuk menginversikan matriks,

37
c. Dekomposisi LU (DECOLU), prinsipnya: melakukan dekomposisi matriks A terlebih
dahulu sehingga dapat terbentuk matriks-matrik segitiga atas dan bawah,
kemudian secara mudah dapat melakukan substitusi balik (backsubstitution) untuk
berbagai vektor VRK (vektor ruas kanan).
d. Solusi sistem TRIDIAGONAL (S3DIAG), prinsipnya merupakan solusi SPL dengan
bentuk matrik pita (satu diagonal bawah, satu diagonal utama, dan satu diagonal
atas) pada matriks A.

2. Metode Tak-Langsung (Metode Iteratif)


a. Metode Jacobi, prinsipnya: merupakan metode iteratif yang melakuakn
perbaharuan nilai x yang diperoleh tiap iterasi (mirip metode substitusi berurutan,
successive substitution),
b. Metode Gauss-Seidel, prinsipnya: mirip metode Jacobi, namun melibatkan
perhitungan implisit,
c. Metode Successive Over Relaxation (SOR), prinsipnya: merupakan perbaikan
secara langsung dari Metode Gauss- Seidel dengan cara menggunakan faktor
relaksasi (faktor pembobot) pada setiap tahap/proses iterasi.

Metode-metode tak-langsung seperti di atas pada umunya sangat tidak efisien dan ‘time
consuming’ (memerlukan CPU- time) yang jauh lebih besar dari metode langsung.

Metode Eliminasi Gauss, metode Dekomposisi LU dan Metode Iterasi Jacobi merupakan
metode yang dapat dijadikan sebagai alternatif untuk menyelesaikan model matematika.
Metode Eliminasi Gauss mereduksi matriks koefisien A ke dalam bentuk matriks segitiga,
dan nilai-nilai variabel diperoleh dengan teknik substitusi. Pada metode Dekomposisi LU,
matriks A difaktorkan menjadi matriks L dan matriks U, dimana dimensi atau ukuran
matriks L dan U harus sama dengan dimensi matriks A.

Pada metode iterasi Jacobi, penyelesaian dilakukan secara iterasi, dimana proses iterasi
dilakukan sampai dicapai suatu nilai yang konvergen dengan toleransi yang diberikan.
Dari hasil pengujian dapat diketahui bahwa metode Iterasi Jacobi memiliki hasil ketelitian
yang lebih baik dan waktu komputasi yang lebih cepat dari metode Eliminasi Gauss dan
metode Dekomposisi LU.

38
1. Metode Gauss/Eliminasi Gauss
Eliminasi yang digunakan untuk mengubah matriks lengkap sistem persamaan linear
menjadi matriks eselon dengan bantuan operasi baris elementer.
Matriks eselon apabila memenuhi syarat berikut:
- Baris-baris yang semua elemennya nol diletakkan setelah baris yang memuat
elemen tidak nol.
- Baris-baris yang mempunyai elemen tidak nol, elemen tidak nol pertama harus
terletak sebelah kiri elemen tidak nol dari baris berikutnya.
Misal:
2 5 −6 0 3
0 0 −1 0 0
0 0 0 2 4
0 0 0 0 0
[0 0 0 0 0]

Selesaikan sistem persamaan linear berikut dengan menggunakan metode Gauss.


6x3 + 2x4 -4x5 -8x6 = 8
3x3 + 8x4 – 2x5 – 4x6 = 4
2x1 – 3x2 + x3 +4x4 – 7x5 + x6 = 2
6x1 – 9x2 + 11x4 – 19x5 + 3x6 = 0

Dengan menggunakan matlab, langkah penyelesaiannya dapat dituliskan sebagai


berikut:
A=[0 0 6 2 -4 -8 8;0 0 3 8 -2 -4 4;2 -3 1 4 -7 1 2;6 -9 11 -19 3 0]
A([3,1],:)=A([1,3],:)
A(4,:)=A(4,:)-3*A(1,:)
A(3,:)=A(3,:)-2*A(2,:)
A([3,4],:)=A([4,3],:)
A(3,:)=A(3,:)+A(2,:)

Dari hasil akhir didapatkan matriks eselon dengan variable nilai


-4x6 = -2  x6 = ½
3x3 + x4 – 2x5 – 4x6 = 4
2x1 – 3x2 + x3 +4x4 – 7x5 + x6 = 2

Contoh Soal:

39
1. Selesaikan sistem persamaan linear berikut dengan menggunakan eliminasi Gauss.
3x + y + 4z = 0
x + 2y + z = 0
3x – 4y + 5z = 0

Jawab:
Karena ruas kanan pada persamaan diatas bernilai nol, maka kolom yang berisi nilai nol
pada matriksnya dapat dihilangkan atau tidak ditulis, sehingga matriks augmentednya
menjadi sebagai berikut:

>> B=[3 1 4;1 2 1;3 -4 5]


B=
3 1 4
1 2 1
3 -4 5

>> B(2,:)=B(2,:)-(1/3)*B(1,:)
B=
3.0000 1.0000 4.0000
0 1.6667 -0.3333
3.0000 -4.0000 5.0000

>> B(3,:)=B(3,:)-B(1,:)
B=
3.0000 1.0000 4.0000
0 1.6667 -0.3333
0 -5.0000 1.0000

>> B(3,:)=B(3,:)+(5/1.6667)*B(2,:)
B=
3.0000 1.0000 4.0000
0 1.6667 -0.3333
0 0.0000 0.0000

40
Dari baris kedua dapat dibentuk persamaan
1.6667y – 0.3333z = 0
y = 0.3333z/1.6667

Dari baris pertama didapatkan persamaan


3x + y + 4z = 0
3x + (0.3333z/1.6667) + 4z = 0
x = -1.4z

2. Selesaikan sistem persamaan linear berikut dengan menggunakan eliminasi Gauss.


2y + 3z = 1
3x – 4y = 2
3x + y + 4z = 5

Jawab:
>> C=[0 2 3 1;3 -4 0 2;3 1 4 5]
C=
0 2 3 1
3 -4 0 2
3 1 4 5

>> C([1,2],:)=C([2,1],:)
C=
3 -4 0 2
0 2 3 1
3 1 4 5

>> C(3,:)=C(3,:)-C(1,:)
C=
3 -4 0 2
0 2 3 1
0 5 4 3

>> C(3,:)=C(3,:)-(5/2)*C(2,:)

41
C=
3.0000 -4.0000 0 2.0000
0 2.0000 3.0000 1.0000
0 0 -3.5000 0.5000

>> z=0.5/-3.5
z=
-0.1429

>> y=(1-(3*(-0.1429)))/2
y=
0.7144

>> x=(2+(4*0.7144))/3
x=
1.6192

2. Metode Gauss-Jordan/Eliminasi Gauss-Jordan


Metode Gauss-Jordan adalah metode paling awal yang digunakan untuk
menyelesaikan sistem persamaan linear. Prosedur penyelesaian metode ini adalah
membuat elemen-elemen matriks yang merupakan representasi koefisien variable dari
sistem persamaan linear menjadi matriks identitas.
Penjelasan mengenai metode Gauss-Jordan akan diperlihatkan dengan meninjau
sistem n bilangan tak diketahui. Sebagai langkah awal akan ditinjau sistem persamaan
linear berikut:
a11x1 + a12x2 +a13x3 + a14x4 = b1
a21x1 + a22x2 +a23x3 + a24x4 = b2
a31x1 + a32x2 +a33x3 + a34x4 = b3
a41x1 + a42x2 +a43x3 + a44x4 = b4
a51x1 + a52x2 +a53x3 + a54x4 = b5

Persamaan diatas dapat ditulis dalam bentuk matriks seperti berikut ini.

42
𝑎11 𝑎12 𝑎13 𝑎14 𝑎15 𝑥1 𝑏1
𝑎21 𝑎22 𝑎23 𝑎24 𝑎25 𝑥2 𝑏2
𝑎31 𝑎32 𝑎33 𝑎34 𝑎35 𝑥3 = 𝑏3
𝑎41 𝑎42 𝑎43 𝑎44 𝑎45 𝑥4 𝑏4
[𝑎51 𝑎52 𝑎53 𝑎54 𝑎55 ] [𝑥5 ] [𝑏5 ]

Pada persamaan diatas diketahui bahwa


A : koefisien matriks dengan bilangan yang diketahui
X : vector kolom yang nilainya akan ditentukan
C : konstanta dengan bilangan tertentu

Pekerjaan utama metode Gauss-Jordan adalah menentukan solusi persamaan linear


dengan membuat persamaan matriksnya menjadi matriks identitas.
1 0 0 0 0 𝑥1 𝑏1′
0 1 0 0 0 𝑥2 𝑏2′

0 0 1 0 0 𝑥3 = 𝑏3
0 0 0 1 0 𝑥4 𝑏4′
[0 0 0 0 1] [𝑥5 ] [𝑏5′ ]

Dari persamaan diketahui


x1 =b1’, x2 = b2’, x3 = b3’, x4 = b4’, x5 = b5’.

Contoh Soal:
1. Carilah nilai x, y dan z dari sistem persamaan linear dibawah ini dengan
menggunakan Matlab metode Gauss-Jordan.
x + y + 2z = 9
2x + 4y – 3z = 1
3x + 6y – 5z = 0

Jawab:
>> A=[1 1 2 9;2 4 -3 1;3 6 -5 0]
A=
1 1 2 9
2 4 -3 1
3 6 -5 0

>> A(2,:)=A(2,:)-2*A(1,:)

43
A=
1 1 2 9
0 2 -7 -17
3 6 -5 0

>> A(3,:)=A(3,:)-3*A(1,:)
A=
1 1 2 9
0 2 -7 -17
0 3 -11 -27

>> A(2,:)=A(2,:)/2
A=
1 1 2 9
0 1 -3.5 -8.5
0 3 -11 -27

>> A(3,:)=A(3,:)-3*A(2,:)
A=
1 1 2 9
0 1 -3.5 -8.5
0 0 -0.5 -1.5

>> A(3,:)=A(3,:)/-0.5
A=
1 1 2 9
0 1 -3.5 -8.5
0 0 1 3

>> A(2,:)=A(2,:)+3.5*A(3,:)
A=
1 1 2 9
0 1 0 2
0 0 1 3

44
>> A(1,:)=A(1,:)-A(2,:)
A=
1 0 2 7
0 1 0 2
0 0 1 3

>> A(1,:)=A(1,:)-2*A(3,:)
A=
1 0 0 1
0 1 0 2
0 0 1 3

Dari matriks diatas didapatkan nilai z = 3, y = 2 dan x = 1.

2. Tentukan solusi sistem persamaan linear berikut dengan menggunakan metode


Gauss-Jordan pada program Matlab.
3x + y – z = 5
4x + 7y – 3z = 20
2x – 2y + 5z = 10

Jawab:
>> A=[3 1 -1 5;4 7 -3 20;2 -2 5 10]
A=
3 1 -1 5
4 7 -3 20
2 -2 5 10

>> A(1,:)=A(1,:)/3
A=
1.0000 0.3333 -0.3333 1.6667
4.0000 7.0000 -3.0000 20.0000
2.0000 -2.0000 5.0000 10.0000

45
>> A(2,:)=A(2,:)-4*A(1,:)
A=
1.0000 0.3333 -0.3333 1.6667
0.0000 5.6667 -1.6667 13.3333
2.0000 -2.0000 5.0000 10.0000

>> A(3,:)=A(3,:)-2*A(1,:)
A=
1.0000 0.3333 -0.3333 1.6667
0.0000 5.6667 -1.6667 13.3333
0.0000 -2.6667 5.6667 6.6667

>> A(2,:)=A(2,:)/5.68
A=
1.0000 0.3333 -0.3333 1.6667
0.0000 1.0000 -0.2941 2.3528
0.0000 -2.6667 5.6667 6.6667

>> A(3,:)=A(3,:)-(-2.6667)*A(2,:)
A=
1.0000 0.3333 -0.3333 1.6667
0.0000 1.0000 -0.2941 2.3528
0.0000 0.0000 4.8824 12.9412

>> A(3,:)=A(3,:)/4.8824
A=
1.0000 0.3333 -0.3333 1.6667
0.0000 1.0000 -0.2941 2.3528
0.0000 0.0000 1.0000 2.6506

>> A(2,:)=A(2,:)-(-0.2941)*A(3,:)
A=
1.0000 0.3333 -0.3333 1.6667

46
0.0000 1.0000 0.0000 3.1324
0.0000 0.0000 1.0000 2.6506

>> A(1,:)=A(1,:)-0.3333*A(2,:)
A=
1.0000 0.0000 -0.3333 0.6226
0.0000 1.0000 0.0000 3.1324
0.0000 0.0000 1.0000 2.6506

>> A(1,:)=A(1,:)+(0.3333)*A(3,:)
A=
1.0000 0.0000 0.0000 1.5061
0.0000 1.0000 0.0000 3.1324
0.0000 0.0000 1.0000 2.6506

Dari matriks diatas didapatkan nilai z = 2.6506, y = 3.1324, dan x = 1.5061.

3. Selesaikan sistem persamaan linear berikut dengan menggunakan metode Gauss-


Jordan pada program Matlab.
a. x + 3y = 9
2x + y = 8

b. 2y + 3z = 1
3x – 4y = 2
3x + y + 4z = 5

c. 2x1 + x2 = 7
x1 + x2 – 3x3 = -10
6x2 – 2x3 + x4 = 7
2x3 – 3x4 = 13

d. 3x + y + 4z = 0
x + 2y + z = 0

47
3x – 4y + 5z = 0

4. Berikut ini ada 4 vitamin yang masing-masing terbentuk dari substansi S1, S2, S3 dan
S4. Susunan komposisinya sebagai berikut:
Vitamin S1(%) S2(%) S3(%) S4(%)
A 25 19 20 3
B 2 14 2 14
C 8 4 1 0
D 25 31 25 16

Campuran S1, S2, S3 dan S4 sedemikian hingga didapatkan 3.85 gram vitamin A, 2.3
gram vitamin B, 0.8 gram vitamin C, 5.95 gram vitamin D. Dengan menggunakan
matlab, tentukan berapa gram tiap substansi harus dicampurkan untuk
mendapatkan campuran tersebut.

Membuat program yang dapat digunakan untuk menghitung solusi n (banyak)


persamaan linear dengan Metode Gauss-Jordan.

1. Ketiklah kode berikut didalam laman editor

% Program Metode Gauss-Jordan


% Oleh Dian
disp(' ')

48
disp('--------------------------------------------------')
disp('solusi persamaan linear dengan metode Gauss-Jordan')
disp('--------------------------------------------------')
disp(' ')
disp('siapkan ruang untuk matriks A')
m=input('masukan jumlah baris = ');
n=input('masukan jumlah kolom = ');
A=zeros(m,n);
disp(' ')
disp('--------------------------')
disp('menginput elemen matriks A')
disp('--------------------------')
disp(' ')
for i=1:m
for j=1:n
disp(['A' num2str(i) ',' num2str(j)'])
A(i,j)=input(' = ');
end
end
disp('Matriks A')
disp(' ')
disp('A =')
disp(A)
B=zeros(m,1);
disp(' ')
disp('--------------------------')
disp('menginput elemen matriks B')
disp('--------------------------')
disp(' ')
for i=1:m
disp(['B' num2str(i) ',1'])
B(i,1)=input(' = ');
end
disp('Matriks B')

49
disp('B =')
disp(B)
disp('-----------------------------')
disp('faktor eliminasi Gauss-Jordan')
disp('-----------------------------')
pause
[L,U]=lu(A)%faktor eliminasi Gauss-Jordan
disp('-----------------------------')
disp('solusi akhir persamaan linear')
disp('-----------------------------')
pause
X=zeros(m,1);
%mengisi matriks X (solusi) dengan metode eliminasi Gauss-Jordan
y=L\B;
x=U\y;
X=x;
disp(' ')
disp('X =')
disp(X)

2. Simpan koding diatas dengan nama latihan06 dan ujilah dengan menginput data
dari persamaan linear pada soal-soal sebelumnya.

Penjelasan:
[L,U] = lu(A) memfaktorkan matriks A kedalam matriks segitiga atas U dan matriks
segitiga bawah L, dimana nilai matriks A adalah L*U.
Misal:
AX = B
Apabila menyelesaikan dengan metode invers matriks, maka penyelesaian X adalah
X = A-1.B atau dituliskan dalam koding matlab X = inv(A)*B atau X = A\B

Apabila menyelesaikan dengan metode Gauss-Jordan, maka penyelesaian X adalah


[L,U] = lu(A)
Y=L\B

50
X=U\Y

Tambahan Catatan.
Persamaan linear berikut, carilah nilai x, y dan z.
x + y + 2z = 9
2x + 4y – 3z = 1
3x + 6y – 5z = 0

Selain menggunakan metode-metode eliminasi sebelumnya, penyelesaian sistem


persamaan linear juga dapat dilakukan dengan menggunakan cara-cara berikut:
1. Dengan mereduksi matriks menggunakan fungsi rref. Cara penulisannya adalah
rref(nama matriknya). Misal rref(A).
>> A=[1 1 2 9;2 4 -3 1;3 6 -5 0]
A=
1 1 2 9
2 4 -3 1
3 6 -5 0

>> rref(A)
ans =
1 0 0 1
0 1 0 2
0 0 1 3
Dari matriks diatas, didapatkan nilai x = 1, y = 2, dan z=3.
2. Dengan menggunakan perintah Koef\Konst.
>> Koef=[1 1 2;2 4 -3;3 6 -5];Konst=[9;1;0]
Konst =
9
1
0

>> xyz=Koef\Konst;x=xyz(1), y=xyz(2), z=xyz(3)


x=
1.0000

51
y=
2.0000
z=
3.0000

Penggunaan Koef\Konst ini dapat diterapkan pada persamaan linear yang apabila
dibuat dalam bentuk matriks misal Matriks Aixj, nilai i=j atau i≠j.

3. Metode/Iterasi Jacobi
Metode ini merupakan suatu teknik penyelesaian SPL berukuran n x n, AX = b, secara
iteratif. Proses penyelesaian dimulai dengan suatu hampiran awal terhadap penyelesaian,
X0, kemudian membentuk suatu serangkaian vector X1, X2, … yang konvergen ke X.

Teknik iteratif jarang digunakan untuk menyelesaikan SPL berukuran kecil karena
metode-metode langsung seperti metode eliminasi Gauss lebih efisien dari pada metode
iteratif. Akan tetapi, untuk SPL berukuran besar dengan persentase elemen nol pada
matriks koefisien besar, teknik iteratif lebih efisien daripada metode langsung dalam hal
penggunaan memori komputer maupun waktu komputasi. Metode iterasi Jacobi,
prinsipnya: merupakan metode iteratif yang melakuakn perbaharuan nilai x yang
diperoleh tiap iterasi (mirip metode substitusi berurutan, successive substitution).

A. Algoritma Iterasi Jacobi


Untuk menyelesaikan system persamaan linier AX = b dengan A adalah matriks
koefisien n x n, b vector konstan n x 1, dan X vektor n x 1 yang perlu dicari.

INPUT : n, A, b, dan Himpunan awal Y = (y1 y2 y3…yn)T, batas toleransi T, dan maksimum
iterasi N.

OUTPUT: X = (x1 x2 x3 ..xn)T, atau pesan “ gagal “.

LANGKAH – LANGKAH :
1. set penghitung iterasi ke =1
2. WHILE k ≤ n DO

52
bi   j i aij y j
(a) FOR i = 1, 2, 3, ..., n, hitung xi 
aii
(b) Set X = (x1 x2 x3 ..xn)T
(c) IF X  Y < T THEN STOP
(d) Tambahan penghitung iterasi, k = k + 1
(e) FOR i = 1, 2, 3, ..., n, Set yi = xi
(f) set Y = (y1 y2 y3 ..yn)T

3. STOP

B. Flow Chart Iterasi Jacobi

START

AX = b

Input A, b, X0, T, N

[X, g, H]=
jacobi(A,b,X0,T,N)

xi = ( x1 x2 x3 …xn)

STOP

53
C. Iterasi Jacobi dengan Menggunaan Matlab 7

Jika x(k)menyatakan hampiran ke k penyelesaian SPL , AX = b, dengan x(0)adalah


hampiran awal, maka metode iterasi Jacobi dapat dinyatakan sebagai berikut :
1  
xi
(k )
  bi   aij x j ( k 1)  , i = 1, 2, 3, ..., n ; k = 1, 2, 3, ..
 
aii  j i 

Dalam bentuk matriks, rumus iterasi dapat dinyatakan sebagai


X(k) = D-1(b-(L+U)X(k-1)),

Dengan A = L + D + U ( L matriks segitiga bawah, D matriks diagonal, U Matriks segitiga


atas).

Berikut adalah gambaran bagaimana penggunaan metode iterasi Jacobi


1. Selesaikan SPL berikut dengan menggunakan iterasi Jacobi.
10x1 – x2 +2 x3 = 6
-x1 + 11x2 – x3 + 3x4 = 25
2x1 – x2 + 10x3 – x4 = - 11
3x2 – x3 + 8x4 = 15

Mula – mula kita nyatakan setiap variabel dalam ketiga variabel yang lainnya
1. Nyatakan x1 dari persamaan (P1) dalam x2, x3, dan x4,
2. Nyatakan x2 dari persamaan (P2) dalam x1, x3, dan x4,
3. Nyatakan x3 dari persamaan (P3) dalam x1, x3, dan x4,
4. Nyatakan x4 dari persamaan (P4) dalam x1, x2, dan x3.

Hasilnya adalah SPL

54
x 2 x3 3
x1   
10 5 5
x x 3x 25
x2  1  3  4 
11 11 11 11
 x1 x2 x4 11
x3    
5 10 10 10
 3x2 x3 15
x4   
8 8 8

Misalkan kita pilih hapiran penyelesaian awal (0 0 0 0)T, maka hampiran pertama
terhadap penyelesaian SPL tersebut adalah
3
x1   0 .6 = 1
5
25
x2   2.2727 = 2
11
11
x3   1.1 = -1
10
15
x4   1.8750 = 2
8

Sekarang dengan menggunakan nilai – nilai ini pada ruas kanan persamaan (P5) – (P8),
kita dapat menghitung hampiran kedua. Proses ini dapat diulang-ulang sampai
keakuratan hampiran yang diinginkan tercapai. Berikut adalah hasil proses iterasi dengan
menggunakan komputer.
No x1 x2 x3 x4
1 0.6 2.27273 -1.1 1.875
2 1.04727 1.71591 -0.805227 0.885227
3 0.932636 2.05331 -1.04934 1.13088
4 1.0152 1.9537 -0.968109 0.973843
5 0.988991 2.01141 -1.01029 1.02135
6 1.0032 1.99224 -0.994522 0.994434
7 0.998128 2.00231 -1.00197 1.00359
8 1.00063 1.99867 -0.999036 0.998888

Setelah iterasi ke-8 diperoleh hampiran penyelesaian


x = (1.00063 1.99867 -0.999036 0.998888)T
bandingkan dengan penyelesaian eksaknya, yakni x = (1 2 -1 1)T.

55
2. Selesaikan contoh SPL berikut ini dengan menggunakan metode iterasi Jacobi.
2x1 – x2 + 10x3 = -11
3x2 – x3 + 8x4 = -11
10x1 – x2 + 2x3 =6
-x1 + 11x2 – x3+ 3x4 = 25

D. Penulisan Logaritma dalam Layar Editor MATLAB 7

function [X1,g,H]= jacobi(A,b,X0,T,N)


H = X0';
n = length(b);
X1 = X0;
for k=1:N,
for i = 1:n,
S = b(i)-A(i,[1:i-1,i+1:n])*X0([1:i-1,i+1:n]);
X1(i)=S/A(i,i);
end
g = abs(X1-X0);
err = norm(g);
relerr = err/(norm(X1)+ eps);
X0 = X1;
H = [H;X0'];
if (err<T)|(relerr<T),break,end
end

Layar Editor MATLAB 7

56
E. Hasil Output fungsi MATLAB 7
Berikut adalah contoh pemakaian fungsi MATLAB 7 jacobi dan hasil keluaran
dari yang diperoleh:
>> A=[2 -1 10 0;0 3 -1 8;10 -1 2 0;-1 11 -1 3]
A=
2 -1 10 0
0 3 -1 8
10 -1 2 0
-1 11 -1 3
>> b=[-11;-11;6;25]
b=
-11
-11
6
25
>> X0=[0;0;0;0]
X0 =
0
0
0
0
>> T=.00001

57
T=
1.0000e-005
>> N=25
N=
25
>> [X,g,H]=jacobi(A,b,X0,T,N)
X=
1.0e+017*
-4.1950
0.5698
2.1380
0.0451
g=
1.0e+017*
3.7699
0.5442
1.2965
0.1535
H=
1.0e+017*
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000

58
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
0 . 0000 0 . 0000 0 . 0000 0 . 0000
-0 . 0007 0 . 0000 0 . 0013 -0 . 0002
-0 . 0066 0 . 0009 0 . 0036 0 . 0000
-0 . 0173 0 . 0011 0 . 0333 -0 . 0042
-0 . 1661 0 . 0224 0 . 0873 0 . 0013
-0 . 4251 0 . 0256 0 . 8415 -0 . 1085
-4 . 0000 0 . 5698 2 . 1380 0 . 0451

Dari hasil diatas, metode Jacobi belum konvergen setelah melakukan iterasi.
Untuk mengetahui penyelesaian SPL kita, selanjutnya gunakan metode langsung
dengan menggunakan invers matriks A. MATLAB memberikan penyelesaian
sebagai berikut.
>> X=inv(A)*b
X=
1.1039
2.9965
-1.0211
-2.6263

Apakah metode jacobi tidak dapat menghasilkan penyelesaian tersebut?


Dengan mengubah susunan SPL, yakni persamaan pertama dan kedua dipindah
menjadi persamaan ketiga dan keempat, metode Jacobi ternyata berhasil
memberikan penyelesaian tersebut, sebagaimana terlihat pada hasil keluaran
MATLAB berikut.

>> A=[10 -1 2 0;-1 11 -1 3;2 -1 10 0;0 3 -1 8]


A=
10 -1 2 0
-1 11 -1 3
2 -1 10 0

59
0 3 -1 8
>> b=[6;25;-11;-11]
b=
6
25
-11
-11
>> X0=[-2;1;3;-1]
X0 =
-2
1
3
-1
>> [X,g,H]=jacobi(A,b,X0,T,N)
X=
1.1039
2.9965
-1.0211
-2.6263
g=
0.0795
0.2004
0.0797
0.1511
H=
-2 . 0000 1 . 0000 3 . 0000 -1 . 0000
1 . 1000 2 . 6364 -1 . 6000 -2 . 3750
1 . 9836 2 . 6023 -1 . 8564 -2 . 4386
1 . 0315 2 . 9494 -1 . 0365 -2 . 4579
1 . 1022 2 . 9426 -1 . 0114 -2 . 6106
1 . 1065 2 . 9930 -1 . 0262 -2 . 6049
1 . 1045 2 . 9895 -1 . 0200 -2 . 6256
1 . 1030 2 . 9965 -1 . 0220 -2 . 6236
1 . 1040 2 . 9856 -1 . 0209 -2 . 6264

60
1 . 1037 2 . 9966 -1 . 0212 -2 . 6260
1 . 1039 2 . 9964 -1 . 0211 -2 . 6264
1 . 1039 2 . 9965 -1 . 0211 -2 . 6263
1 . 1039 2 . 9965 -1 . 0211 -2 . 6263
1 . 1039 2 . 9965 -1 . 0211 -2 . 6263

Iterasi Jacobi konvergen (dengan menggunakan batas toleransi 0.0001)


setelah iterasi ke-13. Penyelesaian yang diberikan persis sama dengan yang
dihasilkan dengan metode langsung. Hampiran penyelesaian SPL kita adalah X =
(1.1039 2.9965 -1.0211 -2.6263)T.
Layar MATLAB 7 (command window)

Dari contoh di atas bahwa urutan persamaan di dalam suatu SPL sangat
berpengaruh terhadap penampilan metode iterasi Jacobi. Kalau kita amati lebih
lanjut contoh di atas, kekonvergenan iterasi Jacobi pada strategi kedua
dikarenakan kita telah mengubah susunan SPL sedemikian hingga elemen-
elemen aiimerupakan elemen-elemen terbesar pada setiap baris. Dengan kata
lain, apabila matriks koefisien A merupakan matriks dominan secara diagonal,

61
maka metode iterasi Jacobi akan konvergen. Suatu matrik A berukuran n x n
dikatakan dominansecaradiagonal apabila
| aii || ai ,1 | ... | ai ,i 1 |  | ai ,i 1 | ... | ai ,n | untuk i = 1, 2, 3, ..., n.

62