Anda di halaman 1dari 11

1.

Metode Jacobi Metode Gauss Siedel

Perbedaan a.) Persamaan pertama, kedua, a.) Persamaan pertama nilai x,y,z
dan ketiga nilai x,y,z dimisalkan 0 dimisalkan 0 sedangkan persamaan
selanjutnya nilai x,y, dan z
b.) Lebih efesien apabila didapatkan dari hasil persamaan
digunakan pada persamaan linear sebelumnya
berukuran besar dengan persentase
elemen nol pada matriks koefisien b.) Cocok untuk menyelesaikan
besar sistem persamaan linear berukuran
kecil

2. Selesaikan persamaan berikut menggunakan metode Jacobi!


2a – b + 7c = 12
4a + 9 b + 6c = 6
2a – 3b - c = 6
- 4a – 10b -14c +3d = 6
3. Seorang kurir harus mengantarkan barang mulai dari senin sampai rabu selama satu
minggu. Dalam sehari sang kurir dapat menghantar tiga jenis barang, yaitu paket
peralatan rumah tangga, pakaian, dan kosmetik. Tetapi karena sepeda motornya
berukuran kecil paket yang diangkut dalam sehari tidak dapat melebih empat peralatan
rumah tangga, delapan pakaian dan lima kosmetik. Stok gudang di tempat kurir tersebut
bekerja juga hanya dapat memuat barang dengan hitungan ganjil. Pada minggu ketiga
bulan April, untuk hari senin stok gudang barang berjumlah tujuh buah, selasa dua puluh
satu buah, sedangkan rabu lima belas buah. Hitung kemungkinan peralatan rumah tangga,
pakaian, dan kosmetik yang harus diantarkan kurir tersebut pada minggu-minggu
berikutnya beserta persen kesalahannya dengan metode Gauss Siedel!
Jawaban
2. Algoritma

1. Memulai program menghitung persamaan dengan metode jacobi


2. Input persamaan 1, 2, 3, dan 4 yang akan dihitung
3. Input persen eror yang diinginkan
4. Program melakukan perhitungan dengan metode jacobi
(𝑏1 − 𝑎11 𝑥1 − 𝑎13 𝑥3 )
𝑥1 =
𝑎11
(𝑏2 − 𝑎21 𝑥1 − 𝑎23 𝑥3 )
𝑥2 =
𝑎22
(𝑏3 − 𝑎31 𝑥1 − 𝑎32 𝑥2 )
𝑥3 =
𝑎33
5. Program akan melakukan perulangan dengan menggunakan while, dan akan
menampilkan hasil perhitungan berupa tabel yang berisi hasil perhitungan tiap
iterasi
6. Program akan menampilkan hasil akhir perhitungan nilai A,B, C, dan D, serta
persen eror
7. End
Flowchart
Script
clc;
clear all;
fprintf('-----------------------------------------------------------------\n');
fprintf('| Program Menghitung Persamaan dengan Metode Jacobi |\n');
fprintf('-----------------------------------------------------------------\n');
a=input('masukkan persamaan 1.) : ');
b=input('masukkan persamaan 2.) : ');
c=input('masukkan persamaan 3.) : ');
d=input('masukkan persamaan 4.) : ');
error=input('masukkan percent error (%) : ');
A=0;
B=0;
C=0;
D=0;
x1=(a(1,5)-a(1,2)*B-a(1,3)*C-a(1,4)*D)/a(1,1);
y1=(b(1,5)-b(1,1)*A-b(1,3)*C-b(1,4)*D)/b(1,2);
z1=(c(1,5)-c(1,1)*A-c(1,2)*B-c(1,4)*D)/c(1,3);
w1=(d(1,5)-d(1,1)*A-d(1,2)*B-d(1,3)*C)/d(1,4);
ea=100;
eb=100;
ec=100;
ed=100;
i=1;
fprintf('==========================================================
===================================\n');
fprintf('%2s%8s%10s%11s%14s%11s%11s%11s%11s\n','i','A','B','C','D','Ea','Eb','Ec','Ed'
);
fprintf('==========================================================
====================================\n');
fprintf('%2.0f%10.4f%11.4f%11.4f%11.4f%11.4f%11.4f%11.4f%11.4f\n',i,x1,y1,z1,w1,
ea,eb,ec,ed);
while ea>error
A=x1;
B=y1;
C=z1;
D=w1;
x1=(a(1,5)-a(1,2)*B-a(1,3)*C-a(1,4)*D)/a(1,1);
y1=(b(1,5)-b(1,1)*A-b(1,3)*C-b(1,4)*D)/b(1,2);
z1=(c(1,5)-c(1,1)*A-c(1,2)*B-c(1,4)*D)/c(1,3);
w1=(d(1,5)-d(1,1)*A-d(1,2)*B-d(1,3)*C)/d(1,4);
ea=abs((x1-A)/x1)*100;
eb=abs((y1-B)/y1)*100;
ec=abs((z1-C)/z1)*100;
ed=abs((w1-D)/w1)*100;
i=i+1;
fprintf('%2.0f%10.4f%11.4f%11.4f%11.4f%11.4f%11.4f%11.4f%11.4f\n',i,x1,y1,z1,w1,
ea,eb,ec,ed);
end
fprintf('==========================================================
==================================\n');
fprintf('%0s%0.4f%2s%0.4f\n','> A : Percent error = ',ea,' Nilai A = ',x1);
fprintf('%0s%0.4f%2s%0.4f\n','> B : Percent error = ',eb,' Nilai B = ',y1);
fprintf('%0s%0.4f%2s%0.4f\n','> C : Percent error = ',ec,' Nilai C = ',z1);
fprintf('%0s%0.4f%2s%0.4f\n','> C : Percent error = ',ed,' Nilai D = ',w1);
fprintf('%0s%0.0f\n','> Number of Iterations : ',i);
Hasil Run
3. Algoritma

1. Memulai Program Kurir Metode Gauss Siedel


2. Program menampilkan persamaan sesuai ketentuan persyaratan jumlah paket
peralatan rumah tangga (x), pakaian (y), dan kosmetik (z)
3. Input persamaan a, b, dan c sesuai ketentuan persyaratan
4. Input persen eror yang diinginkan
5. Program melakukan perhitungan menggunakan metode gauss siedel
(𝑏1 − 𝑎11 𝑥1 0 − 𝑎13 𝑥3 0)
𝑥1′ =
𝑎11
(𝑏2 − 𝑎21 𝑥1 1 − 𝑎23 𝑥3 0)
𝑥2′ =
𝑎22
(𝑏3 − 𝑎31 𝑥1 1 − 𝑎32 𝑥2 1)
𝑥3′ =
𝑎33
6. Program akan melakukan perulangan dengan menggunakan while, dan akan
menampilkan hasil perhitungan berupa tabel yang berisi hasil perhitungan tiap
iterasi.
7. Program akan menampilkan hasil akhir perhitungan paket peralatan rumah tangga
(x), pakaian (y), dan kosmetik (z) yang akan diantarkan, serta persen eror.
8. End
Flowchart
Script
Clc;
clear all;
fprintf('-----------------------------------------------------------------\n');
fprintf('| Program Kurir Metode Gauss Siedel |\n');
fprintf('-----------------------------------------------------------------\n');
fprintf('Persamaan yang digunakan sesuai syarat muatan motor kurir maka: \n');
fprintf(' persamaan a.) 4x-y+z=7 \n');
fprintf(' persamaan b.) 4x+8y+z=21 \n');
fprintf(' persamaan c.) -2x+y+5z=15 \n');
fprintf('~input persamaan dengan bentuk matriks~\n');
A=input('masukkan persamaan a.) :');
B=input('masukkan persamaan b.) :');
C=input('masukkan persamaan c.) :');
er=input('masukkan percent eror :');
y=0;
z=0;
x1=(A(1,4)-A(1,2)*y-A(1,3)*z)/A(1,1);
y1=(B(1,4)-B(1,1)*x1-B(1,3)*z)/B(1,2);
z1=(C(1,4)-C(1,1)*x1-C(1,2)*y1)/C(1,3);
epx=100;
epy=100;
epz=100;
it=1;
fprintf('------------------------------------------------------------------------\n');
fprintf('%2s%8s%10s%11s%14s%11s%11s\n','i','x','y','z','error x','error y','error z');
fprintf('------------------------------------------------------------------------\n');
fprintf('%2.0f%10.4f%11.4f%11.4f%11.4f%11.4f%11.4f\n',it,x1,y1,z1,epx,epy,epz);
while epx>er || epy>er || epz>er
x=x1;
y=y1;
z=z1;
x1=(A(1,4)-A(1,2)*y-A(1,3)*z)/A(1,1);
y1=(B(1,4)-B(1,1)*x1-B(1,3)*z)/B(1,2);
z1=(C(1,4)-C(1,1)*x1-C(1,2)*y1)/C(1,3);
epx=abs((x1-x)/x1)*100;
epy=abs((y1-y)/y1)*100;
epz=abs((z1-z)/z1)*100;
it=it+1;
fprintf('%2.0f%10.4f%11.4f%11.4f%11.4f%11.4f%11.4f\n',it,x1,y1,z1,epx,epy,epz);
end
fprintf('------------------------------------------------------------------------\n');
fprintf('%2s%0.4f%2s%0.4f\n','>variabel x : percent error =',epx,' %value = ',x1);
fprintf('%2s%0.4f\n',' %value = ',y1);
fprintf('%2s%0.4f\n',' %value = ',z1);
fprintf('%0s%0.0f\n','>number of iterations : ',it);

Anda mungkin juga menyukai