Anda di halaman 1dari 44

LABORATORIUM TEKNIK KIMIA

FAKULTAS TEKNIK
UPN “VETERAN” JAWA TIMUR Nama : KHOLIFATUL MUBIN
NPM/Semester : 18031010037 / IV
Praktikum : MATEMATIKA TEKNIK Sesi : A-1
Percobaan : METODE JACOBI DAN GAUSS Paralel :A
SIEDEL
Tanggal : 20 MARET 2020
Pembimbing : IR. L URIP WIDODO, MT.
LAPORAN RESMI

SOAL!
1. Buatlah Algoritma perhitungan manual dari Metode Jacobi dan Gauss-Seidell
2. Sebutkan kelebihan dan kekurangan diantara kedua metode tersebut
3. Selesaikan matriks dibawah ini:
a.

b.

Kerjakan dengan menggunakan metode jacobi dan gauss seidel, sertakan


dengan perhitungan manual, algoritma, flowchart, listing dan hasil run

4. Suatu reaksi kimia dijalankan dalam serangkaian tiga reaktor alir tangki
berpengaduk (CSTR) yang disusun seperti gambar di bawah.

Reaksi kimia adalah reaksi irreverible orde satu dengan persamaan reaksi :
A → B

Kondisi temperatur dalam setiap reaktor sebagaimana nilai konstanta laju


reaksi ki berbeda di setiap reaktor. Volume setiap reaktor, V i juga berbeda.
Nilai ki dan Vi diberikan pada tabel di bawah. Berikut asumsi yang dapat
digunakan untuk sistem tersebut.
a) Sistem adalah steady state. Neraca massa dengan sistem steady state untuk
setiap reaktor

Rate of input – Rate of output – Rate of reaction = 0

b) Reaksi terjadi di fasa cair


c) Tidak ada perubahan volume atau densitas cairan
d) Laju pengurangan komponen A (rate of reaction) dalam setiap reaktor
dinyatakan dengan :

Ri = Vi ki CAi (mol/jam)

Reaktor Vi (L) ki(jam-1)


1 1000 0,1
2 1500 0,2
3 100 0,4

Susunlah persamaan neraca massa untuk ketiga reaktor dan tentukan


konsentrasi (CAi) yang keluar dari tiap reactor dengan aplikasi Matlab
menggunakan metode Jacobi dan Gauss Siedel!
5. Tubuh manusia memerlukan nutrisi untuk menunjang kehidupan. 4 sumber
makanan ini merupakan zat yang sangat dibutuhkan oleh tubuh yaitu: lemak,
karbohidrat, protein, dan air. Yang membedakan setiap makanan adalah
perbandingan rasio kandungan setiap zat tersebut, ataupun campuran-campuran
yang ada didalam suatu makanan. Apabila tubuh kamu membutuhkan zat ini
dengan perbandingan lemak:karbohidrat:protein:air = 20: 50: 10: 20 maka:
tentukan banyaknya (massa) makanan yang dapat kamu konsumsi agar semua
kebutuhan nutrisi terpenuhi:
Selesaikan dengan metode Gauss-seidel, dan Jacobi. Sertakan Algoritma,
flowchart, listing, dan hasil run!
JAWAB !
1. Algoritma Metode Jacobi
1. Tinjau sistem 3 persamaan dengan 3 variable yang tidak diketahui:

2. Metoda ini diterapkan hanya jika elemen diagonal lebih besar dari
jumlah semua elemen pada persamaan tersebut, yaitu:

3. Kita bisa mengubah posisi persamaan agar syarat tersebut terpenuhi


4. Kita mulai dengan men-set nilai awal x, y dan z sebagai nol. Selesaikan
x, y dan z sebagai variable lain, yaitu:

5. Nilai di atas adalah nilai awal x


(0)
, y(0) , z(0) kemudian

6. Kemudian, dengan menggunakan nilai x(1) , y(1) , z(1)


7. Ulangi proses dengan cara yang sama, sehingga nilai iterasi ke-r adalah
r (r ) , y(r ) , z(r )

8. Iterasi tersebut terus dilakukan hingga dua nilai yang dihasilkan


berturut-turut sama
Algoritma Metode Gauss Siedel
1. Metoda ini merupakan pengembangan dari metoda Gauss-Jacobi. Untuk
menyelesaikan persamaan linier dengan metoda ini, syarat yang harus
dipenuhi sama dengan syarat pada metoda Gauss-Jacobi. Tinjau sistem 3
persamaan dengan 3 variable yang tidak diketahui:

2. Metoda ini diterapkan hanya jika elemen diagonal lebih besar dari jumlah
semua elemen pada persamaan tersebut, yaitu:

3. Kita bisa mengubah posisi persamaan agar syarat tersebut terpenuhi. Kita
mulai dengan men-set nilai awal x, y dan z sebagai nol. Selesaikan x, y
dan z sebagai variable lain, yaitu:

4. Nilai di atas adalah nilai awal x(0) , y(0) , z(0) Kita lanjutkan dengan
nilai awal y(0) dan z(0) dari persamaan pertama, yaitu
5. Kemudian kita hitung (1)
y dengan menggunakan nilai baru x
(1)
dan
z(0)

6. Dengan cara yang sama, kita hitung z(1) dengan menggunakan nilai
baru y(1) dan x(1)

7. Kemudian, dengan menggunakan nilai baru x


(1)
, y(1) , z(1) kita
lakukan iterasi berikutnya

8. Ulangi proses dengan cara yang sama, sehingga nilai iterasi ke-r adalah
x(r) , y(r ) , z(r )

9. Iterasi tersebut terus dilakukan hingga dua nilai yang dihasilkan berturut-
turut sama
2. Kelebihan dan Kekurangan Metode Jacobi dan Gauss Siedel
a) Pemrosesan hasil output iterasi Gauss-Seidel lebih sedikit dibandingkan
iterasi Jacobi,.
b) Waktu pemrosesan hasil output iterasi Jacobi lebih cepat dibandingkan
iterasi Gauss-Seidel,
c) Hasil output iterasi Jacobi lebih akurat dibandingkan iterasi Gauss-Seidel,
karena jumlah iterasi Jacobi yang lebih banyak menyebabkan proses
pengulangan dan hasil dari setiap iterasinya lebih jelas.
d) Menggunakan metode iterasi Jacobi lebih teliti untuk memecahkan
masalah numerik dalam SPL berukuran besar
3. A.

ALGORITMA
1. Mulai
2. Menampilkan persamaan yang telah diketahui pada soal
3. Masukkan pilihan metode perhitungan
4. Case 1
a. Menampilkan metode Gaus Siedel
b. Masukkan persamaan dan besar persen eror
c. Menghitung dengan menggunakan rumus
x1=(a(1,5)-(a(1,2)*y)-(a(1,3)*z)-(a(1,4)*w))/a(1,1);
y1=(b(1,5)-(b(1,1)*x1)-(b(1,3)*z)-(b(1,4)*w))/b(1,2);
z1=(c(1,5)-(c(1,1)*x1)-(c(1,2)*y1)-(c(1,4)*w))/c(1,3);
w1=(d(1,5)-(d(1,1)*x1)-(d(1,2)*y1)-(d(1,4)*z1))/d(1,4);
d. Mendapatkan hasil x1,y1,z1,w1
e. Melakukan perulangan dengan menggunakan while ketika epx>er||
epy>er||epz>er||epw>er
f. Menghitung dengan menggunakan rumus
x=x1;y=y1;z=z1;w=w1;
x1=(a(1,5)-(a(1,2)*y)-(a(1,3)*z)-(a(1,4)*w))/a(1,1);
y1=(b(1,5)-(b(1,1)*x1)-(b(1,3)*z)-(b(1,4)*w))/b(1,2);
z1=(c(1,5)-(c(1,1)*x1)-(c(1,2)*y1)-(c(1,4)*w))/c(1,3);
w1=(d(1,5)-(d(1,1)*x1)-(d(1,2)*y1)-(d(1,4)*z1))/d(1,4);
epx=abs((x1-x)/x1)*100;
epy=abs((y1-y)/y1)*100;
epz=abs((z1-z)/z1)*100;
epw=abs((w1-w)/w1)*100;
it=it+1;
g. Mendapatkan hasil x1,y1,z1,w1,epx,epy,epz,epw
5. Case 2
a. Menampilkan metode Jacoi
b. Masukkan persamaan dan besar persen eror
c. Menghitung dengan menggunakan rumus
x1=(a(1,5)-(a(1,2)*y)-(a(1,3)*z)-(a(1,4)*w))/a(1,1);
y1=(b(1,5)-(b(1,1)*x1)-(b(1,3)*z)-(b(1,4)*w))/b(1,2);
z1=(c(1,5)-(c(1,1)*x1)-(c(1,2)*y1)-(c(1,4)*w))/c(1,3);
w1=(d(1,5)-(d(1,1)*x1)-(d(1,2)*y1)-(d(1,4)*z1))/d(1,4);
d. Mendapatkan hasil x1,y1,z1,w1
e. Melakukan perulangan dengan menggunakan while ketika epx>er||
epy>er||epz>er||epw>er
f. Menghitung dengan menggunakan rumus
x=x1;y=y1;z=z1;w=w1;
x1=(a(1,5)-(a(1,2)*y)-(a(1,3)*z)-(a(1,4)*w))/a(1,1);
y1=(b(1,5)-(b(1,1)*x1)-(b(1,3)*z)-(b(1,4)*w))/b(1,2);
z1=(c(1,5)-(c(1,1)*x1)-(c(1,2)*y1)-(c(1,4)*w))/c(1,3);
w1=(d(1,5)-(d(1,1)*x1)-(d(1,2)*y1)-(d(1,4)*z1))/d(1,4);
epx=abs((x1-x)/x1)*100;
epy=abs((y1-y)/y1)*100;
epz=abs((z1-z)/z1)*100;
epw=abs((w1-w)/w1)*100;
it=it+1;
g. Mendapatkan hasil x1,y1,z1,w1,epx,epy,epz,epw
6. Selesai
LISTING PROGRAM

clear all;
clc;
disp('Perhitungan Matriks');
disp('-------------------');
disp('[1 4 9][14]');
disp('[4 9 16][29]')
disp('[9 16 25][50]');
disp('-------------------');
disp(' ');
disp('1. Metode Gaus Siedel');
disp('2. Metode Jacobi');
pil=input('Masukkan metode perhitungan yang diinginkan :');
disp(' ');
switch pil
case 1
disp ('======= METODE GAUS SIEDEL======= ');
disp ('');
a=[1 4 9 14];
b=[4 9 16 29];
c=[9 16 25 50];
er=input ('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 ('%4s%9s%15s%15s%15s%15s
%15s\n','iterasi','x1','x2','x3','Ex1','Ex2','Ex3');

disp('=====================================================');
fprintf ('%4i%12.2f%15.2f%15.2f%15.2f%15.2f
%15.2f\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 ('%4i%12.2f%15.2f%15.2f%15.2f%15.2f
%15.2f\n',it,x1,y1,z1,epx,epy,epz);
end
disp('=====================================================');
fprintf('%0s%0.4f\n','x1= ',x1);
fprintf('%0s%0.4f\n','x2= ',y1);
fprintf('%0s%0.4f\n','x3= ',z1);
fprintf('%0s%0.0f\n','Iterasinya sampai ',it);
case 2
disp (' =======METODE JACOBI======= ');
disp ('');
a=[1 4 9 14];
b=[4 9 16 29];
c=[9 16 25 50];
er= input ('percent eror (%) = ');
x=0; 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)*x)-(b(1,3)*z))/b(1,2);
z1=(c(1,4)-(c(1,1)*x)-(c(1,2)*y))/c(1,3);
epx=100; epy=100; epz=100; it=1;
fprintf ('%4s%9s%15s%15s%15s%15s
%15s\n','iterasi','x1','x2','x3','Ex1','Ex2','Ex3');

disp('=====================================================');
fprintf ('%4i%12.4f%15.2f%15.2f%15.2f%15.2f
%15.2f\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)*x)-(b(1,3)*z))/b(1,2);
z1=(c(1,4)-(c(1,1)*x)-(c(1,2)*y))/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 ('%4i%12.4f%15.2f%15.2f%15.2f%15.2f
%15.2f\n',it,x1,y1,z1,epx,epy,epz);
end
disp('=====================================================');
fprintf('%0s%0.4f\n','x1= ',x1);
fprintf('%0s%0.4f\n','x2= ',y1);
fprintf('%0s%0.4f\n','x3= ',z1);
fprintf('%0s%0.0f\n','Iterasinya sampai ',it);
otherwise
disp('Tidak ada dalam pilihan');
end

FLOWCHART
HASIL RUN
HITUNGAN SECARA MANUAL
Manual Untuk Metode Gauss Siedell
Persamannya:
x+4y+9z=14 (1a)
4x+9y+16z=29 (1b)
9x+16y+25z=50 (1c)
Sistem Persamaan (1) diubah menjadi bentuk
x=14-4y-9z (2a)
29−4 x−16 z
y= (2b)
9
50−9 x−16 y
z= (2c)
25
 Langkah / iterasi pertama
kita substititusikan nilai pemisalan y=z=0 kedalam persamaan (2a)
sehingga:
x’=14-4(0)-9(0)=14 (3a)
Hasil dari x’ disubstitusikaan kedalam persamaan (2b) guna mencari nilai
y’.Disini nilai x’=x dan z=0
29−4 (14)−16(0)
y’= = -3 (3b)
9
Hasil dari x’ dan y’ disubstitusikan kedalam persamaan (2c) guna
mencari nilai z’. Disni nilai x’=x dan y=y’
50−9(14 )−16(−3)
z= = -1,12 (2c)
25
 Iterasi Kedua
Nilai x’, y’, z’ yang diperoleh tidaklah sama dengan nilai pemisalan.Iterasi
dilanjutkan dengan prosedur diatas untuk untuk menghitung x’’, y’’, z’’
den persen kesalahan yang terjadi
x’’ = 14-4(-3)-9(-1,12)=36,08
''
x −x '
Persen kesalahan x= (100%)=
x' '
36,08−14
x= (100%)= 61,20%
36,08
29−4 ( 36,08 )−16 (−1,12)
y’’ = = -10,82
9
''
y −y '
Persen kesalahan x= (100%)=
y''
−10,82−(−3)
x= (100%)= 72,28%
−10,82
50−9(36,08)−16(−10,82)
z’’ = = -4,06
25
''
z −z '
Persen kesalahan z= (100%)=
z''
−4,06−(−1,12)
z= (100%)= 72,43%
−4,06
 Iterasi ketiga
x’’’ = 14-4(-10,82)-9(-4,06)= 93,85
x ' '' −x ' '
Persen kesalahan x= (100%)=
x'''
93,85−36,08
x= (100%)= 61,56%
93,85
29−4 ( 93,85 )−16 (−4,06)
y’’’ = = -31,27
9
'''
y −y' '
Persen kesalahan x= (100%)=
y'''
−31,27−(−10,82)
x= (100%)= 65,39%
−31,27
50−9( 93,85)−16(−31,27)
z’’’ = = -11,78
25
' ''
z −z ' '
Persen kesalahan z= (100%)=
z' ' '
−11,78−(−4,06)
z= (100%)= 65,50%
−11,78
Hitungan dilanjutkan dengan prosedur diatas , sampai akhirnya diperoleh
persen kesalahan yang relative kecil (terhadap ketelitian/ toleransi yang
diharapkan)
Manual Metode Jacobi
Persamannya:
x+4y+9z=14 (1a)
4x+9y+16z=29 (1b) (1)
9x+16y+25z=50 (1c)
Sistem Persamaan (1) diubah menjadi bentuk
x=14-4y-9z (2a)
29−4 x−16 z
y= (2b) (2)
9
50−9 x−16 y
z= (2c)
25
 Langkah / iterasi pertama
kita substititusikan nilai pemisalan x=y=z=0 kedalam persamaan (2 dan
dihitung nilai x’, y’, z’ ) sehingga:
x’=14-4(0)-9(0)=14 (3a)
29−4 (0)−16(0)
y’= = 3,22 (3b)
9
50−9(0)−16(0)
z= =2 (3c)
25
Nilai x’, y’, z’ yang diperoleh tidaklah sama dengan nilai
pemisalan.Iterasi dilanjutkan dengan memasukkan nilai x’, y’, z’ kedalam
persamaan (2) untuk menghitung nilai x’’, y’’, z’’ dan nilai persen kesalah
yang terjadi
 Iterasi kedua
Substitusikan nilai x’, y’, z’ ke persamaan (2)
x’’ = 14-4(3,22)-9(2)= -16.8889
''
x −x '
Persen kesalahan x= (100%)=
x' '
−16.8889−14
x= (100%)= 182.89%
−16.8889
29−4 (14)−16(2)
y’’ = = -6.56
9
y' '− y '
Persen kesalahan x= (100%)=
y''
−6.56−(3,22)
x= (100%)= 149.15%
−6.56
50−9(−16.8889)−16(−6.56)
z’’ = = -5.10
25
z ' ' −z '
Persen kesalahan z= (100%)=
z''
−5.10−(2)
z= (100%)= 139.20%
−5.10

 Iterasi Ketiga
Substitusikan nilai x’’, y’’, z’’ ke persamaan (2)

x’’’ = 14-4(-6.56)-9(-5.10)= 86.1422


x ' '' −x ' '
Persen kesalahan x= (100%)=
x'''
86.1422−(−16.8889)
x= (100%)= 119.61 %
86.1422
29−4 (−16.8889 )−16 (−5.10)
y’’’ = = 19.80
9
y' ' '− y ' '
Persen kesalahan x= (100%)=
y'''
19.80−(−6.56)
x= (100%)= 133.11%
19.80
50−9(−16.8889)−16(−6.56)
z’’’ = = 12.28
25
z ' '' −z ' '
Persen kesalahan z= (100%)=
z' ' '
12.28−(−5.10)
z= (100%)= 141.56%
12.28
Hitungan dilanjutkan dengan prosedur diatas , sampai akhirnya diperoleh
persen kesalahan yang relative kecil (terhadap ketelitian/ toleransi yang
diharapkan)
3. B

LISTING PROGRAM
clear all;
clc;
disp('Perhitungan Matriks');
disp('-------------------');
disp('[ 1 4 9 16][ 30]');
disp('[ 4 9 16 25][ 54]')
disp('[ 9 16 25 36][ 86]');
disp('[16 25 36 49][126]');
disp('-------------------');
disp(' ');
disp('1. Metode Gaus Siedel');
disp('2. Metode Jacobi');
pil=input('Masukkan metode perhitungan yang diinginkan :');
disp(' ');
switch pil
case 1
disp ('======= METODE GAUS SIEDEL======= ');
a=[1 4 9 16 30];
b=[4 9 16 25 54];
c=[9 16 25 36 86];
d=[16 25 36 49 126];
er=input ('percent eror (%) = ');
y=0;z=0;w=0;
x1=(a(1,5)-(a(1,2)*y)-(a(1,3)*z)-(a(1,4)*w))/a(1,1);
y1=(b(1,5)-(b(1,1)*x1)-(b(1,3)*z)-(b(1,4)*w))/b(1,2);
z1=(c(1,5)-(c(1,1)*x1)-(c(1,2)*y1)-(c(1,4)*w))/c(1,3);
w1=(d(1,5)-(d(1,1)*x1)-(d(1,2)*y1)-(d(1,4)*z1))/d(1,4);
epx=100; epy=100; epz=100; epw=100; it=1;
fprintf ('%4s%8s%10s%10s%10s%10s%10s%10s
%10s\n','iterasi','x1','x2','x3','x4','Ex1','Ex2','Ex3','Ex4');
disp('================================================
==');
fprintf ('%4i%12.2f%10.2f%10.2f%10.2f%10.2f%10.2f%10.2f
%10.2f\n',it,x1,y1,z1,w1,epx,epy,epz,epw);
while epx>er||epy>er||epz>er||epw>er
x=x1;y=y1;z=z1;w=w1;
x1=(a(1,5)-(a(1,2)*y)-(a(1,3)*z)-(a(1,4)*w))/a(1,1);
y1=(b(1,5)-(b(1,1)*x1)-(b(1,3)*z)-(b(1,4)*w))/b(1,2);
z1=(c(1,5)-(c(1,1)*x1)-(c(1,2)*y1)-(c(1,4)*w))/c(1,3);
w1=(d(1,5)-(d(1,1)*x1)-(d(1,2)*y1)-(d(1,4)*z1))/d(1,4);
epx=abs((x1-x)/x1)*100;
epy=abs((y1-y)/y1)*100;
epz=abs((z1-z)/z1)*100;
epw=abs((w1-w)/w1)*100;
it=it+1;
fprintf ('%4i%12.2f%10.2f%10.2f%10.2f%10.2f%10.2f%10.2f
%10.2f\n',it,x1,y1,z1,w1,epx,epy,epz,epw);
end
disp('==================================================');
fprintf('%0s%0.4f\n','x1= ',x1);
fprintf('%0s%0.4f\n','x2= ',y1);
fprintf('%0s%0.4f\n','x3= ',z1);
fprintf('%0s%0.4f\n','x4= ',w1);
fprintf('%0s%0.0f\n','Iterasinya sampai ',it);
case 2
disp (' =======METODE JACOBI======= ');
a=[1 4 9 16 30];
b=[4 9 16 25 54];
c=[9 16 25 36 86];
d=[16 25 36 49 126];
er= input ('percent eror (%) = ');
x=0; y=0; z=0; w=0;
x1=(a(1,5)-(a(1,2)*y)-(a(1,3)*z)-(a(1,4)*w))/a(1,1);
y1=(b(1,5)-(b(1,1)*x1)-(b(1,3)*z)-(b(1,4)*w))/b(1,2);
z1=(c(1,5)-(c(1,1)*x1)-(c(1,2)*y1)-(c(1,4)*w))/c(1,3);
w1=(d(1,5)-(d(1,1)*x1)-(d(1,2)*y1)-(d(1,4)*z1))/d(1,4);
w1=(d(1,5)-(d(1,1)*x1)-(d(1,2)*y1)-(d(1,4)*z1))/d(1,4);
epx=100; epy=100; epz=100; epw=100; it=1;
fprintf ('%4s%9s%15s%15s%15s%15s%15s%15s
%15s\n','iterasi','x1','x2','x3','x4','Ex1','Ex2','Ex3','Ex4');
disp('================================================
==');
fprintf ('%4i%12.4f%15.2f%15.2f%15.2f%15.2f%15.2f%15.2f
%15.2f\n',it,x1,y1,z1,w1,epx,epy,epz,epw);
while epx>er||epy>er||epz>er
x=x1;y=y1;z=z1;
x1=(a(1,5)-(a(1,2)*y)-(a(1,3)*z)-(a(1,4)*w))/a(1,1);
y1=(b(1,5)-(b(1,1)*x1)-(b(1,3)*z)-(b(1,4)*w))/b(1,2);
z1=(c(1,5)-(c(1,1)*x1)-(c(1,2)*y1)-(c(1,4)*w))/c(1,3);
w1=(d(1,5)-(d(1,1)*x1)-(d(1,2)*y1)-(d(1,4)*z1))/d(1,4);
epx=abs((x1-x)/x1)*100;
epy=abs((y1-y)/y1)*100;
epz=abs((z1-z)/z1)*100;
epw=abs((w1-w)/w1)*100;
it=it+1;
fprintf ('%4i%12.4f%15.2f%15.2f%15.2f%15.2f%15.2f%15.2f
%15.2f\n',it,x1,y1,z1,w1,epx,epy,epz,epw);
end
disp('==================================================');
fprintf('%0s%0.4f\n','x1= ',x1);
fprintf('%0s%0.4f\n','x2= ',y1);
fprintf('%0s%0.4f\n','x3= ',z1);
fprintf('%0s%0.4f\n','x4= ',w1);
fprintf('%0s%0.0f\n','Iterasinya sampai ',it);
otherwise
disp('Tidak ada dalam pilihan');
end
HASIL RUN
HITUNGAN SECARA MANUAL
Manual Untuk Metode Gauss Siedell
Persamannya:
x+4y+9z+16w=30 (1a)
4x+9y+16z+25w=54 (1b)
9x+16y+25z+36w=86 (1c)
16x+25y+36z+49w=126 (1d)
Sistem Persamaan (1) diubah menjadi bentuk
x=30-4y-9z-16w (2a)
54−4 x−16 z−25 w
y= (2b)
9
86−9 x−16 y −36 w
z= (2c)
25
126−16 x−25 y−36 z
w= (2d)
49
 Langkah / iterasi pertama
kita substititusikan nilai pemisalan y=z=w=0 kedalam persamaan (2a)
sehingga:
x’=30-4(0)-9(0)-16(0)=30 (3a)
Hasil dari x’ disubstitusikaan kedalam persamaan (2b) guna mencari nilai
y’.Disini nilai x’=x dan z=w=0
54−4(30)−16(0)−25(0)
y’= =¿ -7.33 (3b)
9
Hasil dari x’ dan y’ disubstitusikan kedalam persamaan (2c) guna
mencari nilai z’. Disni nilai x’=x dan y=y’ dan w=0
86−9(30)−16(−7,33)−36(0)
z’= = -2.67 (2c)
25
Hasil dari x’, y’, z’ disubstitusikan kedalam persamaan (2d) guna
mencari nilai w’. Disni nilai x’=x dan y=y’ dan z=z’
126−16( 30)−25(−7,33)−36 (−2,76)
w’= =-0.82 (2d)
49
 Iterasi Kedua
Nilai x’, y’, z’, w’ yang diperoleh tidaklah sama dengan nilai
pemisalan.Iterasi dilanjutkan dengan prosedur diatas untuk untuk
menghitung x’’, y’’, z’’ dan w’’dengan persen kesalahan yang terjadi
x’’=30-4(-7.33)-9(-2.67)-16(-0.82)= 96.39
''
x −x '
Persen kesalahan x= (100%)=
x' '
96.39−30
x= (100%)= 68.88%
96.39
54−4(96.39)−16(−2.67)−25(−0.82)
y’’= =−29.83
9
y' '− y '
Persen kesalahan y= (100%)=
y''
−29.83−(−7.33)
y= (100%)= 75.42%
−29.83
86−9(96.39)−16 (−29.83)−36(−0.82)
z’’= = -10.99
25
''
z −z '
Persen kesalahan z= (100%)=
z''
−10.99−(−2.67)
z= (100%)= 75.74%
−10.99
126−16( 96.39)−25(−29.83)−36 (−10.99)
w’’= = -2.69
49
''
w −w '
Persen kesalahan w= (100%)=
w''
−2.69−(−0.82)
w= (100%)= 69.65%
−2.69
 Iterasi ketiga
x’’’=30-4( −29.83 )-9(-10.99)-16(-2.69)= 291.31
x ' '' −x ' '
Persen kesalahan x= (100%)=
x'''
291.31−96.39
x= (100%)= 66.91%
291.31
54−4(291.31)−16 (−10.99)−25(−2.69)
y’’’= =−96.46
9
y' ' '− y ' '
Persen kesalahan y= (100%)=
y'''
−96.46−(−29.83)
y= (100%)= 69.07 %
−96.46
86−9(291.31)−16(−96.46)−36(−2.69)
z’’’= = -35.83
25
z ' '' −z ' '
Persen kesalahan z= (100%)=
z' ' '
−35.83−(−10.99)
z= (100%)= 69.32%
−35.83
126−16( 291.31)−25 (−96.46)−36 (−35.83)
w’’’= = -7.51
49
w' ' ' −w ' '
Persen kesalahan w= (100%)=
w'''
−7.51−(−2.69)
w= (100%)= 64.19%
−7.51

Hitungan dilanjutkan dengan prosedur diatas , sampai akhirnya diperoleh


persen kesalahan yang relative kecil (terhadap ketelitian/ toleransi yang
diharapkan)
Manual Jacobi
Persamannya:
x+4y+9z+16w=30 (1a)
4x+9y+16z+25w=54 (1b) (1)
9x+16y+25z+36w=86 (1c)
16x+25y+36z+49w=126 (1d)
Sistem Persamaan (1) diubah menjadi bentuk
x=30-4y-9z-16w (2a)
54−4 x−16 z−25 w
y= (2b) (2)
9
86−9 x−16 y −36 w
z= (2c)
25
126−16 x−25 y−36 z
w= (2d)
49
 Langkah / iterasi pertama
kita substititusikan nilai pemisalan x=y=z=w=0 kedalam persamaan (2)
dan dihitung nilai x’, y’, z’, w’ ) sehingga:
x’=30-4(0)-9(0)-16(0)=30 (3a)
54−4(0)−16( 0)−25(0)
y’= = -7.33 (3b)
9
86−9(0)−16 (0)−36(0)
z’= = -2.67 (3c)
25
126−16( 0)−25(0)−36(0)
w’= = -0.82 (2d)
49
Nilai x’, y’, z’ yang diperoleh tidaklah sama dengan nilai
pemisalan.Iterasi dilanjutkan dengan memasukkan nilai x’, y’, z’, w’
kedalam persamaan (2) untuk menghitung nilai x’’, y’’, z’’, w’’ dan nilai
persen kesalah yang terjadi
 Iterasi kedua
Substitusikan nilai x’, y’, z’, w’ ke persamaan (2)
x’’=30-4(-7.33)-9(-2.67)-16(-0.82)= 83.3333
x ' ' −x '
Persen kesalahan x= (100%)=
x' '
83.3333−30
x= (100%)= 64%
83.3333
54−4(30)−16(−2,67)−25(−0,82)
y’’= = -26.30
9
y' '− y '
Persen kesalahan y= (100%)=
y''
−26.30−(−7,33)
y= (100%)= 72.11%
−26.30
86−9(30)−16(−7,33)−36(−0,82)
z’’= = -9.73
25
z ' ' −z '
Persen kesalahan z= (100%)=
z''
−9.73−(−2.67)
z= (100%)= 72.59%
−9.73
126−16( 30)−25(−7,33)−36 (−2,67)
w’’= = -1.49
49
w' ' −w '
Persen kesalahan w= (100%)=
w''
−1.49−(−0.82)
w= (100%)= 69.65%
−1.49
 Iterasi Ketiga

Substitusikan nilai x’’, y’’, z’’, w’’ ke persamaan (2)

x’’’ = 30-4(-26.30)-9(-9.73)-16(-1.49)= 222.7585


' ''
x −x ' '
Persen kesalahan x= (100%)=
x'''
222.7585−( 83.3333)
x= (100%)= 62.59%
222.7585
54−4(30)−16(−9.73)−25(−1.49)
y’’’= = -75.71
9
'''
y −y' '
Persen kesalahan y= (100%)=
y'''
−75.71−(−26.30)
y= (100%)= 65.26 %
−75.71
86−9(83.3333)−16(−26.30)−36(−1.49)
z’’’= = -28.30
25
z ' '' −z ' '
Persen kesalahan z= (100%)=
z' ' '
−28.30−(−9.73)
z= (100%)= 65.62%
−28.30
126−16( 83.3333)−25(−26.30)−36 (−9.73)
w’’’= = -3.24
49
w' ' ' −w ' '
Persen kesalahan w= (100%)=
w'''
−3.24−(−1.49)
w= (100%)= 69.65%
−3.24
4. Susunlah persamaan neraca massa untuk ketiga reaktor dan tentukan konsentrasi
(CAi) yang keluar dari tiap reactor dengan aplikasi Matlab menggunakan metode
Jacobi dan Gauss Siedel!

ALGORITMA
1. Mulai
2. Masukkan nilai yang diketahui pada soal
3. Masukkan persamaan 1, 2, dan 3
4. Menghitung menggunakan rumus
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);
5. Mendapatkan nilai x1, y1, dan z1
6. Mengulang ketika epx>er||epy>er||epz>er
7. Menghitung menggunakan rumus
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);
x=x1
y=y1
z=z1
8. Mendapatkan nilai x1, y1, dan z1
9. Selesai
FLOWCHART
LISTING PROGRAM METODE GAUSS SIEDEL
clear all;
clc;
disp('===========================================');
disp(' METODE GAUSS SIEDEL ');
disp('===========================================');
qa0=1000;
ca0=1;
r0=qa0*ca0;
qb=1000;
qc=100;
Qout=qb+qc;
fprintf('Jika diketahui QA0=1000 L/jam dan CA0=1 mol/L maka R0= %3.2f
mol/jam\n',r0)
fprintf('Jika diketahui QB=1000 L/jam dan QC=100 L/jam maka Qoutput= %3.2f
L/jam\n',Qout)
disp(' ')
a=input('~ Masukkan persamaan 1 = ');
b=input('~ Masukkan persamaan 2 = ');
c=input('~ Masukkan persamaan 3 = ');
er=input('~ Percent error (%) = ');
disp(' ')
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','iterasi','ca1','ca2','ca3','error
ca1','error ca2','error ca3');
fprintf('-------------------------------------------------------------------------\n');
fprintf('%4.0f%13.4f%9.4f%11.4f%13.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;it=it+1;
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;
fprintf('%4.0f%13.4f%9.4f%11.4f%13.4f%11.4f
%11.4f\n',it,x1,y1,z1,epx,epy,epz);
end
fprintf('-------------------------------------------------------------------------\n');
disp(' ')
disp('================================================');
disp(' Jadi didapat ca1, ca2, dan ca3 yaitu ');
disp('================================================');
fprintf('%0s%0.4f%2s%0.4f\n','> CA1 = ',x1,' mol/L dengan % error = ',epx);
fprintf('%0s%0.4f%2s%0.4f\n','> CA2 = ',y1,' mol/L dengan % error = ',epy);
fprintf('%0s%0.4f%2s%0.4f\n','> CA3 = ',z1,' mol/L dengan % error = ',epz);
fprintf('%0s%0.0f\n','> Number of Iterations = ',it);
disp('================================================');
HASIL RUN PROGRAM METODE GAUSS SIEDEL
LISTING PROGRAM METODE JACOBI
clear all;
clc;
disp('===========================================');
disp(' METODE JACOBI ');
disp('===========================================');
qa0=1000;
ca0=1;
r0=qa0*ca0;
qb=1000;
qc=100;
Qout=qb+qc;
fprintf('Jika diketahui QA0=1000 L/jam dan CA0=1 mol/L maka R0= %3.2f
mol/jam\n',r0)
fprintf('Jika diketahui QB=1000 L/jam dan QC=100 L/jam maka Qoutput= %3.2f
L/jam\n',Qout)
disp(' ')
a=input('~ Masukkan persamaan 1 = ');
b=input('~ Masukkan persamaan 2 = ');
c=input('~ Masukkan persamaan 3 = ');
er=input('~ Percent error (%) = ');
disp(' ')
x1=0;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','iterasi','ca1','ca2','ca3','error
ca1','error ca2','error ca3');
fprintf('-------------------------------------------------------------------------\n');
fprintf('%4.0f%13.4f%9.4f%11.4f%13.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;it=it+1;
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;
fprintf('%4.0f%13.4f%9.4f%11.4f%13.4f%11.4f
%11.4f\n',it,x1,y1,z1,epx,epy,epz);
end
fprintf('-------------------------------------------------------------------------\n');
disp(' ')
disp('================================================');
disp(' Jadi didapat ca1, ca2, dan ca3 yaitu ');
disp('================================================');
fprintf('%0s%0.4f%2s%0.4f\n','> CA1 = ',x1,' mol/L dengan % error = ',epx);
fprintf('%0s%0.4f%2s%0.4f\n','> CA2 = ',y1,' mol/L dengan % error = ',epy);
fprintf('%0s%0.4f%2s%0.4f\n','> CA3 = ',z1,' mol/L dengan % error = ',epz);
fprintf('%0s%0.0f\n','> Number of Iterations = ',it);
disp('================================================');

HASIL RUN PROGRAM METODE JACOBI


5. Selesaikan dengan metode Gauss-seidel, dan Jacobi. Sertakan Algoritma,
flowchart, listing, dan hasil run!

ALGORITMA
1. Memulai program
2. Memasukkan nilai persamaan l, persamaan k, persamaan p, persamaan a
dan nilai persen kesalahan (pe)
3. Menghitung
a. nilai w (w1) dengan rumus
( l ( 1,5 )−l ( 1,2 ) x−1 ( 1,3 ) y−l ( 1,4 ) z )
w 1=
l ( 1,1 )
b. nilai x (x1) dengan rumus
( k ( 1,5 )−k ( 1,1 ) w−k ( 1,3 ) y −k ( 1,4 ) z )
x 1=
k ( 1,2 )
c. nilai y (y1) dengan rumus
( p ( 1,5 ) −p ( 1,1 ) w− p ( 1,2 ) x− p ( 1,4 ) z )
y 1=
p (1,3 )
d. nilai z (z1) dengan rumus
( a (1,5 )−a ( 1,1 ) w−a ( 1,2 ) x −a ( 1,3 ) y )
z 1=
a ( 1,1 )
4. Dilakukan perulangan while hingga nilai persen kesalahan w (erw), persen
kesalahan x (erx), persen kesalahan y (ery), dan persen kesalahan z (erz)
kurang dari nilai toleransi persen kesalahan (pe)
5. Menghitung
a. nilai w (w1) dengan rumus
( l ( 1,5 )−l ( 1,2 ) x−1 ( 1,3 ) y−l ( 1,4 ) z )
w 1=
l ( 1,1 )
b. nilai x (x1) dengan rumus
( k ( 1,5 )−k ( 1,1 ) w−k ( 1,3 ) y −k ( 1,4 ) z )
x 1=
k ( 1,2 )
c. nilai y (y1) dengan rumus
( p ( 1,5 ) −p ( 1,1 ) w− p ( 1,2 ) x− p ( 1,4 ) z )
y 1=
p (1,3 )
d. nilai z (z1) dengan rumus
( a (1,5 )−a ( 1,1 ) w−a ( 1,2 ) x −a ( 1,3 ) y )
z 1=
a ( 1,1 )
6. Menghitung persen kesalahan
a. w (erw) dengan rumus

|( w 1−w
erw=
w 1 )|
x 100

b. x (erx) dengan rumus

erx= |( x 1−x
x 1 )|
x 100

c. y (ery) dengan rumus

ery= |( y 1−y 1 y )|x 100


d. z (erz) dengan rumus

e= |( z 1−z
z 1 )|
x 100

7. Menampilkan nilai lemak (w1), nilai karbo (x1), nilai protein (y1), nilai
air (z1) dan jumlah iterasi
8. Selesai
FLOWCHART
LISTING PROGRAM
clc;
clear all;
disp('Perhitungan Matriks');
disp('-------------------');
disp(['81 4 10 14 20']);
disp([' 1 75 1 6 50']);
disp([' 4 6 35 4 10']);
disp(['14 5 54 86 20']);
disp('-------------------');
disp(' ');
disp('1. Metode Gaus Siedel');
disp('2. Metode Jacobi');
pil=input('Masukkan metode perhitungan yang diinginkan :');
disp(' ')
switch pil
case 1
disp('***********GAUSS SIEDEL***********');
er=input('Persen error = ');
a=[81 4 10 14 20];
b=[1 75 1 6 50];
c=[4 6 35 4 10];
d=[14 5 54 86 20];
disp('===================================================
==========================================================
==================');
x=0;y=0;z=0;
w1=(a(1,5)-(a(1,2)*x)-(a(1,3)*y)-(a(1,4)*z))/a(1,1);
x1=(b(1,5)-(b(1,1)*w1)-(b(1,3)*y)-(b(1,4)*z))/b(1,2);
y1=(c(1,5)-(c(1,1)*w1)-(c(1,2)*x1)-(c(1,4)*z))/c(1,3);
z1=(d(1,5)-(d(1,1)*w1)-(d(1,2)*x1)-(d(1,3)*y1))/d(1,4);
epw=100;epx=100;epy=100;epz=100;it=1;
fprintf('%4s%12s%15s%15s%15s%15s%15s%15s%15s\n','
Iterasi','x1','x2','x3','x4','%e1','%e2','%e3','%e4');
disp('===================================================
==========================================================
==================');
fprintf('%4i%17.4f%15.4f%14.4f%15.2f%15.2f%15.2f%15.2f
%15.2f\n',it,w1,x1,y1,z1,epw,epx,epy,epz);
while epw>er||epx>er||epy>er||epz>er
w=w1;x=x1;y=y1;z=z1;
w1=(a(1,5)-(a(1,2)*x)-(a(1,3)*y)-(a(1,4)*z))/a(1,1);
x1=(b(1,5)-(b(1,1)*w1)-(b(1,3)*y)-(b(1,4)*z))/b(1,2);
y1=(c(1,5)-(c(1,1)*w1)-(c(1,2)*x1)-(c(1,4)*z))/c(1,3);
z1=(d(1,5)-(d(1,1)*w1)-(d(1,2)*x1)-(d(1,3)*y1))/d(1,4);
epw=abs((w1-w)/w1)*100;
epx=abs((x1-x)/x1)*100;
epy=abs((y1-y)/y1)*100;
epz=abs((z1-z)/z1)*100;
it=it+1;
fprintf('%4i%17.4f%15.4f%14.4f%15.2f%15.2f%15.2f%15.2f
%15.2f\n',it,w1,x1,y1,z1,epw,epx,epy,epz);
end
disp('======================================================
==========================================================
===============');
fprintf('%0s%0.4f\n','Lemak = ',w1);
fprintf('%0s%0.4f\n','Karbohidrat = ',x1);
fprintf('%0s%0.4f\n','Protein = ',y1);
fprintf('%0s%0.4f\n','Air = ',z1);
fprintf('%0s%0.0f\n','iterasi = ',it);
case 2
disp('***********METODE JACOBI***********');
er=input('Persen error = ');
a=[81 4 10 14 20];
b=[1 75 1 6 50];
c=[4 6 35 4 10];
d=[14 5 54 86 20];
disp('===================================================
==========================================================
==================');
w=0;x=0;y=0;z=0;
w1=(a(1,5)-(a(1,2)*x)-(a(1,3)*y)-(a(1,4)*z))/a(1,1);
x1=(b(1,5)-(b(1,1)*w)-(b(1,3)*y)-(b(1,4)*z))/b(1,2);
y1=(c(1,5)-(c(1,1)*w)-(c(1,2)*x)-(c(1,4)*z))/c(1,3);
z1=(d(1,5)-(d(1,1)*w)-(d(1,2)*x)-(d(1,3)*y))/d(1,4);
epw=100;epx=100;epy=100;epz=100;it=1;
fprintf('%4s%12s%15s%15s%15s%15s%15s%15s%15s\n','
Iterasi','x1','x2','x3','x4','%e1','%e2','%e3','%e4');
disp('===================================================
==========================================================
==================');
fprintf('%4i%17.4f%15.4f%14.4f%15.2f%15.2f%15.2f%15.2f
%15.2f\n',it,w1,x1,y1,z1,epw,epx,epy,epz);
while epw>er||epx>er||epy>er||epz>er
w=w1;x=x1;y=y1;z=z1;
w1=(a(1,5)-(a(1,2)*x)-(a(1,3)*y)-(a(1,4)*z))/a(1,1);
x1=(b(1,5)-(b(1,1)*w)-(b(1,3)*y)-(b(1,4)*z))/b(1,2);
y1=(c(1,5)-(c(1,1)*w)-(c(1,2)*x)-(c(1,4)*z))/c(1,3);
z1=(d(1,5)-(d(1,1)*w)-(d(1,2)*x)-(d(1,3)*y))/d(1,4);
epw=abs((w1-w)/w1)*100;
epx=abs((x1-x)/x1)*100;
epy=abs((y1-y)/y1)*100;
epz=abs((z1-z)/z1)*100;
it=it+1;
fprintf('%4i%17.4f%15.4f%14.4f%15.2f%15.2f%15.2f%15.2f
%15.2f\n',it,w1,x1,y1,z1,epw,epx,epy,epz);
end
disp('======================================================
==========================================================
===============');
fprintf('%0s%0.4f\n','Lemak = ',w1);
fprintf('%0s%0.4f\n','Karbohidrat = ',x1);
fprintf('%0s%0.4f\n','Protein = ',y1);
fprintf('%0s%0.4f\n','Air = ',z1);
fprintf('%0s%0.0f\n','iterasi = ',it);
otherwise
disp('Tidak Ada Dalam Pilihan');
end
HASIL RUN PROGRAM

Anda mungkin juga menyukai