Anda di halaman 1dari 16

NO 3.

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 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 PROGRAM

NO. 4
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

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


NO.5
ALORITMA
1. Mulai
2.
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