Anda di halaman 1dari 38

LABORATORIUM TEKNIK KIMIA

FAKULTAS TEKNIK
UPN “VETERAN” JAWA TIMUR Nama : KHUROTUL AINIYAH
ETA JWAHARAL Q
Praktikum : MATEMATIKA TEKNIK I VIOLA EKA
Percobaan : METODE JACOBI & METODE NPM/Semester : 17031010068/IV
GAUSS SIEDEL Sesi : IX
Tanggal : 5 APRIL 2019 Paralel :B
Pembimbing :NOVE KARTIKA E,. ST. MT
LAPORAN RESMI

SOAL
1. Jelaskan Pengertian, Tujuan, Manfaat, Perbedaan, Persamaan, dan Algoritma
dari Metode Jacobi dan Gauss Siedel!
2. Berikan contoh manual menentukan suatu akar variabel dengan menggunakan
metode Jacobi dan Metode Gauss Siedel (Minimal 3 kali iterasi) !
3. Metode jacobi adalah salah satu bidang analisis numerik yang digunakan
untuk menyelesaikan permasalahan persamaan linier dan sering dijumpai
dalam berbagai disiplin ilmu. Metode ini sangatlah dianjurkan dalam
menyelesaikan suatu persamaan. Buatlah listing suatu program dari
persamaan dibawah ini disertai algoritma dan hasilrun dan penjelasan singkat
dari listing tersebut!
3x+2y-z=4
2x-7y+3z=5
x-y+4z=7
dengan persen kesalahan 20
4. Metode gauss siedel adalah metode yang mirip sekali dengan metode jacobi,
tetapi melibatkan perhitungan implisit. Metode ini digunakan untuk
menyelesaikan sistem persamaan linier berukuran besar dan proporsi koefisien
nolnya besar. Metode ini digunakan karena lebih efisien daripada metode
langsung, serta dalam hal penggnaan memori komputer serta waktu komputasi
lebih efisien juga. Buatlah listing suatu program disertai algoritma dan hasilrun
dan penjelasan dari listing tersebut!
5x+2y-2z=7
2x+5y-z=10
x-y+2z=5
dengan persen kesalahan 10
5. Selesaikanlah persamaan dibawah ini untuk mencari nilai suatu variable x, y
dan z serta buat Program Metode Jacobi dan Metode Gaus Siedel dengan
Matrix Laboratory (MatLab) yang terdiri dari Listing Program, Hasil Run, dan
Flowchart
5x-y+z = 8
5x-6y+z= -24
-x+y+5z = 14
6. Ainun , Nikmah , dan Hikayah pergi bersama-sama ke toko buah. Ainun
membeli 5 kg jeruk , 2 kg apel dan 2 kg manggis dengan harga 70000. Nikmah
membeli 2 kg jeruk, 5 kg apel dan 1 kg manggis dengan harga 10000. Hikayah
membeli 1 kg jeruk, 1 kg apel dan 2 kg manggis dengan harga 50000. Tentukan
harga 1 kg jeruk, 1 kg apel dan 1 kg manggis dengan membuat program dengan
metode Jacobi dengan membuat listing program, flowchart , hasil run dan
algoritmanya!
7. Berdasarkan gambar dibawah ini hitung nilai I1,I2 dan I3 dengan menggunakan
hukum kirchoff arus. Buatlah Program Metode Gaus Siedel dengan Matrix
Laboratory (Matlab) yang terdiri dari Listing Program, Hasil Run, dan
Flowchartnya!

Gambar 1. Rangkaian Listrik


Jawaban :
1. a. Pengertian :
1. Metode Iterasi Jacobi : merupakan salah satu bidang analisis numerik
yang digunakan untuk menyelesaikan permasalahan persamaan linear dan
sering dijumpai dalam berbagai disiplin ilmu. Metode Iterasi Jacobi
merupakan salah satu metode tak langsung, yaitu bermula dari suatu
hampiran penyelesaian awal dan kemudian berusaha memperbaiki
hampiran dalam tak berhingga namun langkah konvergen. Metode Iterasi
Jacobi ini digunakan untuk menyelesaikan persamaan linear berukuran
besar dan proporsi koefisien nolnya besar.
2. Metode interasi Gauss-Seidel adalah metode yang menggunakan proses
iterasi hingga diperoleh nilai-nilai yang berubah-ubah. Metode iterasi
Gauss-Seidel dikembangkan dari gagasan metode iterasi pada solusi
persamaan tak linier .
b. Tujuan
1. Metode Jacobi : untuk menentukan nilai suatu variabel dari suatu
persamaan linier
2. Metode Gauss Siedel : untuk menentukan nilai suatu variabel dari
persaman linier dengan menggunakan nilai varibel sebelumya untuk
menghitung nilai variabel selanjutnya
c. Manfaat
1. Metode Jacobi : dapat menyelesaikan persamaan linier untuk mencari
suatu variabel
2. Metode Gauss Siedel : dapat menentukan suatu variabel dari persamaan
melalui iterasi dengan menggunakan persen kesalahan
d. Persamaan : kedua metode sama-sama digunakan untuk menentukan nilai
suatu variabel dari suatu persamaan linier
e. Perbedaan
Metode Jacobi Metode Gauss Siedel
Nilai x’, y’ dan z’ yang diperoleh tidak Nilai x’ yang didapatkan langsung
sama dengan nilai permisalan x,y,dan z digunakan untuk mencari y’, dan nilai
begitu juga seterusnya y’ yang didapatkan digunakan untuk
mencari z’ begitu seterusnya
Iterasi yang dihasilkan banyak sehingga Iterasi yang dihasilkan sedikit sehingga
kurang efisien untuk mendapatkan nilai lebih efisien untuk mendapatkan nilai
x,y dan z x,y dan z
Memiliki tingkat ketelitian yang rendah Memiliki tingkat ketelitian yang lebih
tinggi

f. Algoritma
1. Metode Jacobi
a. Mengubah suatu persamaan 1, 2 dan 3 menjadi persamaan yang variabel
x,y dan z berada di depan
b. Menentukan permisalan x=y=z=0
c. Mensubtitusikan x,y,dan z ke persamaan untuk mendapatkan nilai
x1,y1 dan z1 begitu seterusnya
d. Menghitung persen kesalahan dari masing-masing iterasi sehingga
didapatkan nilai persen kesalahan mendekati 0 dengan rumus :
𝑥2−𝑥1
%kesalahan = x 100%
𝑥2

2. Metode Gauss Siedel


a. Mengubah suatu persamaan 1, 2 dan 3 menjadi persamaan yang variabel
x,y dan z berada di depan
b. Menentukan permisalan x=y=z=0
c. Mensubtitusikan x=0 ke persamaan 2 untuk menghitung nilai y dan
memasukkan nilai x dan y yang didapatkan untuk menghitung nilai z
d. Menghitung persen kesalahan dari masing-masing iterasi sehingga
didapatkan nilai persen kesalahan mendekati 0 dengan rumus :
𝑥2−𝑥1
%kesalahan = x 100%
𝑥2
2. Persamaan :
x + y + 2z = 9
2x + 4y – 3z = 1
3x + 6y – 5z = 0
a. Metode Jacobi
Nilai awal : y = 0; z = 0
Batas iterasi :3
 Iterasike-1
9 − 1(0) − 2(0)
𝑥′ = =9
1
1 − 2(0) − (−3)(0)
𝑦′ = = 0,25
4
0 − 3(0) − 6(0)
𝑧′ = =0
−5
9−0
𝜀𝑥 = | | × 100% = 100%
9
(0,25) − 0
𝜀𝑦 = | | × 100% = 100%
0,25
0−0
𝜀𝑧 = | | × 100% = 100%
0
 Iterasi ke-2
9 − 1(0,25) − 2(0)
𝑥′ = = 8,75
1
1 − 2(9) − (−3)(0,3)
𝑦′ = = −4,025
4
0 − 3(9) − 6(0,25)
𝑧′ = = 5,7
−5
8,75 − 9
𝜀𝑥 = | | × 100% = 2,85%
8,75
(−4,025) − (0,25)
𝜀𝑦 = | | × 100% = 1,06%
−4,025
5,7 − 0
𝜀𝑧 = | | × 100% = 100%
0,57
 Iterasi ke-3
9 − 1(−4,025) − 2(5,7)
𝑥′ = = 1,625
1
1 − 2(8,75) − (−3)(5,7)
𝑦′ = = 0,15
4
0 − 3(8,75) − 6(−4,025)
𝑧′ = = −0,42
−5
1,625 − 8,75
𝜀𝑥 = | | × 100% = 438,5%
1,625
(0,15) − (−4,025)
𝜀𝑦 = | | × 100% = 778%
0,15
−0,42 − 5,7
𝜀𝑧 = | | × 100% = 145,7%
−0,42

b. Metode Gauss Siedel


Nilai awal : y = 0; z = 0
Batas iterasi :3
 Iterasike-1
9 − 1(0) − 2(0)
𝑥′ = =9
1
1 − 2(9) − (−3)(0)
𝑦′ = = −4,25
4
0 − 3(9) − 6(−4,25)
𝑧′ = = 0,3
−5
9−0
𝜀𝑥 = | | × 100% = 100%
9
(−4,25) − 0
𝜀𝑦 = | | × 100% = 100%
−4,25
0,3 − 0
𝜀𝑧 = | | × 100% = 100%
0,3
 Iterasi ke-2
9 − 1(−4,25) − 2(0,3)
𝑥′ = = 12,65
1
1 − 2(12,65) − (−3)(0,3)
𝑦′ = = −5,85
4
0 − 3(12,65) − 6(−5,85)
𝑧′ = = 0,57
−5
12,65 − 9
𝜀𝑥 = | | × 100% = 28,85%
12,65
(−5,85) − (−4,25)
𝜀𝑦 = | | × 100% = 27,35%
−5,85
0,57 − 0,3
𝜀𝑧 = | | × 100% = 47,37%
0,57
 Iterasi ke-3
9 − 1(−5,85) − 2(0,57)
𝑥′ = = 13,71
1
1 − 2(13,71) − (−3)(0,57)
𝑦′ = = −6,18
4
0 − 3(13,71) − 6(−6,18)
𝑧′ = = 0,81
−5
13,71 − 12,65
𝜀𝑥 = | | × 100% = 7,73%
13,71
(−6.81) − (−5,85)
𝜀𝑦 = | | × 100% = 5,30%
−6,81
0,81 − 0,57
𝜀𝑧 = | | × 100% = 29,89%
0,81
3. a. Algoritma:
1. Mulai program
2. Masukkan persamaan pertama dalam bentuk matrix
3. Masukkan persamaan kedua dalam bentuk matrix
4. Masukkan persamaan ketiga dalam bentuk matrix
5. Melakukan perhitungan dengan memasukkan nilai x,y,z pertama 0 pada
semua persamaan
6. Melakukan perhitungan dengan memasukkan nilai x,y,z dari hasil
perhitungan nilai x,y,z sebelumnya pada semua persamaan
7. Menghitung persen kesalahan setiap persamaan sampai persen
kesalahan terpenuhi
8. Program menampilkan hasil x, y, z, %kesalahan 1, %kesalahan 2, dan
%kesalahan 3
9. Program selesai
b. Listing Program :
clear all;
clc;
disp(' ________________________________');
disp('|NB: |');
disp('|persamaan diubah menjadi matrix |');
disp('|persamaan : 2x-3y+z=4 |');
disp('|matrix : [2 -3 1 4] |');
disp('|________________________________|');
pr1=input('Matrix pertama : ');
pr2=input('Matrix kedua : ');
pr3=input('Matrix ketiga : ');
pk=input('Persen Kesalahan : ');
s=0;
d=0;
t=0;
pk1=100;
pk2=100;
pk3=100;
i=1;
s1=(pr1(1,4)-pr1(1,2)*d-pr1(1,3)*t)/pr1(1,1);
d1=(pr2(1,4)-pr2(1,1)*s-pr2(1,3)*t)/pr2(1,2);
t1=(pr3(1,4)-pr3(1,1)*s-pr3(1,2)*d)/pr3(1,3);
disp('
__________________________________________________________________
____________________________________');
disp('| ke x y z persen kesalahan x persen kesalahan y
persen kesalahan z|');
disp('|_____________________________________________________________
_________________________________________|');
fprintf('%2i%10.2f%10.2f%10.2f%10.2f%10.2f%10.2f\n',i,s1,d1,t1,pk1,pk2,pk3);
while pk1>pk || pk2>pk || pk3>pk
i=i+1;
s=s1;
d=d1;
t=t1;
s1=(pr1(1,4)-pr1(1,2)*d-pr1(1,3)*t)/pr1(1,1);
d1=(pr2(1,4)-pr2(1,1)*s-pr2(1,3)*t)/pr2(1,2);
t1=(pr3(1,4)-pr3(1,1)*s-pr3(1,2)*d)/pr3(1,3);
pk1=abs((s1-s)/s1)*100;
pk2=abs((d1-d)/d1)*100;
pk3=abs((t1-t)/t1)*100;
fprintf('%2i%10.2f%10.2f%10.2f%10.2f%10.2f%10.2f\n',i,s1,d1,t1,pk1,pk2,pk3);
disp('
__________________________________________________________________
____________________________________');
disp('Maka didapati nilai x,y,z, %kesalahan x,y,z sebesar:');
disp('
__________________________________________________________________
____________________________________');
disp([' x = ',num2str(s1)]);
disp(['%kesalahan x = ',num2str(pk1),'%']);
disp([' y = ',num2str(d1)]);
disp([' %kesalahan y = ',num2str(pk2),'%']);
disp([' z = ',num2str(t1)]);
disp([' %kesalahan z = ',num2str(pk3),'%']);
disp('
__________________________________________________________________
____________________________________');
end
c. Hasil run:
Penjelasan singkat mengenai program jacobi:
1. Syarat awal dari jacobi adalah nilai x, y, z =0 maka pada script x,y,z
dimisalkan s, d, t maka nilai s, d, t sebesar 0
s=0;
d=0;
t=0;
2. Perulangan akan berhenti bila persen kesalahan setiap persamaan bernilai
lebih dari persen kesalahan yang ditentukan pada soal, dan penulisan
listing dari perulangan tersebut diberi batas ( |....| ) karena dilakukan 3
perulangan secara bersamaan
while pk1>pk || pk2>pk || pk3>pk
4. a. Algoritma:
1. Mulai program
2. Masukkan persamaan pertama dalam bentuk matrix
3. Masukkan persamaan kedua dalam bentuk matrix
4. Masukkan persamaan ketiga dalam bentuk matrix
5. Melakukan perhitungan x dengan memasukkan nilai y, z pertama
dengan nilai 0 pada persamaan pertama
6. Melakukan perhitungan dengan memasukkan nilai x dari perhitungan
sebelumnya dan z dengan nilai 0 pada persamaan kedua
7. Melakukan perhitungan dengan memasukkan nilai x dan y dari
perhitungan sebelumnya pada persamaan ketiga
8. Menghitung persen kesalahan setiap persamaan sampai terpenuhi
9. Program menampilkan hasil x, y, z, %kesalahan 1, %kesalahan 2, dan
%kesalahan 3
10. Program selesai
b. Listing Program :
clc;
disp(' ');
disp('
____________________________________________________________
__________________________________________');
disp('|Contoh pengubahan persamaan ke matrix
|');
disp('|x+y+z=10=>[1 1 1 10]
|');
disp('|_______________________________________________________
_______________________________________________|');
disp('Soal:');
disp('5x+2y-2z=7');
disp('2x+5y-z=10');
disp('x-y+2z=5');
disp('
____________________________________________________________
__________________________________________');
disp('Masukkan matrix yang anda gunakan:')
p1=input('Matrix 1 : ');
p2=input('Matrix 2 : ');
p3=input('Matrix 3 : ');
x0=0;
y0=0;
z0=0;
x1=(p1(1,4)-p1(1,2)*y0-p1(1,3)*z0)/p1(1,1);
y1=(p2(1,4)-p2(1,1)*x1-p2(1,3)*z0)/p2(1,2);
z1=(p3(1,4)-p3(1,1)*x1-p3(1,2)*y1)/p3(1,3);
kes=10;
kes1=100;
kes2=100;
kes3=100;
i=1;
disp('
____________________________________________________________
__________________________________________');
disp('|iterasi ke x y z %kesalahan x %kesalahan y
%kesalahan z |');
disp('|
____________________________________________________________
__________________________________________|');
fprintf('%2.0f%8.2f%8.2f%8.2f%8.2f%8.2f%8.2f\n',i,x0,y0,z0,kes1,kes2,
kes3);
while kes<kes1 || kes<kes2 || kes<kes3
x0=x1;
y0=y1;
z0=z1;
x1=(p1(1,4)-p1(1,2)*y0-p1(1,3)*z0)/p1(1,1);
y1=(p2(1,4)-p2(1,1)*x1-p2(1,3)*z0)/p2(1,2);
z1=(p3(1,4)-p3(1,1)*x1-p3(1,2)*y1)/p3(1,3);
kes1=abs((x1-x0)/x1)*100;
kes2=abs((y1-y0)/y1)*100;
kes3=abs((z1-z0)/z1)*100;
i=i+1;
fprintf('%2.0f%8.2f%8.2f%8.2f%8.2f%8.2f%8.2f\n',i,x0,y0,z0,kes1,kes2,
kes3);
end
disp('Maka didapati nilai x, y, z sebesar:');
disp(['x = ',num2str(x1)]);
disp(['y = ',num2str(y1)]);
disp(['z = ',num2str(z1)]);
disp('Maka didapati nilai % kesalahan x, y, z sebesar:');
disp(['%kesalahan x = ',num2str(kes1),'%']);
disp(['%kesalahan y = ',num2str(kes2),'%']);
disp(['%kesalahan z = ',num2str(kes3),'%']);
d. Hasil run:
Penjelasan singkat mengenai program jacobi:
1. Syarat awal dari gauss siedel adalah nilai y, z pertama yang dimasukkan
=0 setelah didapati nilai x1 maka nilai x1 dan z=0 dimasukkan ke
persamaan ke 2. Setelah didapati nilai y1 maka nilai x1 dan y1
dimasukkan ke persamaan ketiga.
x1=(p1(1,4)-p1(1,2)*y0-p1(1,3)*z0)/p1(1,1);
y1=(p2(1,4)-p2(1,1)*x1-p2(1,3)*z0)/p2(1,2);
z1=(p3(1,4)-p3(1,1)*x1-p3(1,2)*y1)/p3(1,3);
2. Perulangan akan berhenti bila persen kesalahan setiap persamaan lebih
dari persen kesalahan pada soal, dan listing dari perulangan tersebut diberi
batas ( |....| ) karena perulangan dilakukan 3 secara bersamaan
while kes<kes1 || kes<kes2 || kes<kes3
5. a. Algoritma :
1. Mulai program
2. Masukkan pilihan anda
3. Jika memilih pilihan 1
a. Masukkan persamaan pertama dalam bentuk matrix
b. Masukkan persamaan kedua dalam bentuk matrix
c. Masukkan persamaan ketiga dalam bentuk matrix
d. Masukkan persen kesalahan
e. Melakukan perhitungan x dengan memasukkan nilai y, z pertama
dengan nilai 0 pada persamaan pertama
f. Melakukan perhitungan dengan memasukkan nilai x dari perhitungan
sebelumnya dan z dengan nilai 0 pada persamaan kedua
g. Melakukan perhitungan dengan memasukkan nilai x dan y dari
perhitungan sebelumnya pada persamaan ketiga
h. Menghitung persen kesalahan setiap persamaan sampai terpenuhi
i. Program menampilkan hasil x, y, z, %kesalahan 1, %kesalahan 2, dan
%kesalahan 3
4. Jika memilih pilihan 2
a. Masukkan persamaan pertama dalam bentuk matrix
b. Masukkan persamaan kedua dalam bentuk matrix
c. Masukkan persamaan ketiga dalam bentuk matrix
d. Masukkan persen kesalahan
e. Melakukan perhitungan dengan memasukkan nilai x,y,z pertama 0 pada
semua persamaan
f. Melakukan perhitungan dengan memasukkan nilai x,y,z dari hasil
perhitungan nilai x,y,z sebelumnya pada semua persamaan
g. Menghitung persen kesalahan setiap persamaan sampai persen
kesalahan terpenuhi
h. Program menampilkan hasil x, y, z, %kesalahan 1, %kesalahan 2, dan
%kesalahan 3
5. Program selesai
b. Flowchart

Mulai

Masukkan
plihan

Masukkan
pesamaan 1,2,3
Pilihan 1
dan persen
kesalahan

Memproses
x1,y2, dan z1

Mengasilka
n x1,y1, dan
z1

Tidak
While ex>error ||
ey>error || ez>error

Memproses
x1,y1,z1,ex,
Ya ey dan ez Tidak

Menghasilkan
x1,y1,z1,
ex,ey dan ez

1 2
1 2

Masukkan
persamaan 1,2,3
Pilihan 2
dan persen
kesalahan

Memproses
x1,y1, dan z1

Menghasilka
n x1, y1,
Tidak dan z1

While ex>error
|| ey>error || ez>error

Ya Tidak
Memproses
x1, y1, z1 ,
ex,ey dan ez

Mengasilkan
x1,y1,z1 , ex,
ey dan ez

Selesai
c. Listing Program :
clear all
clc;
disp('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
disp(' METODE PILIHAN ');
disp('-----------------------------------------------------');
disp('1. Metode Gauss Siedel ');
disp('2. Metode Jacobi ');
pil=input('Masukkan pilihan metode :');
switch pil
case 1
disp('*****************************************************');
disp('^^^^^^^^^^^^^^METODE GAUS SIEDEL^^^^^^^^^^^^^^^^^^^^^');
disp('*****************************************************');
disp('masukkan persamaan dalam bentuk matrik sebagai berikut :');
d=input('Persamaan 1 :');
e=input('Persamaan 2 :');
f=input('Persamaan 3 :');
error=input('persen error :');
disp('');
x=0;
y=0;
z=0;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x1-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x1-f(1,2)*y1)/f(1,3);
ex=100;
ey=100;
ez=100;
i=1;
disp('-----------------------------------------------------------------------');
disp(' Iterasi x y z %x %y %z ');
disp('-----------------------------------------------------------------------')
fprintf('%2i%11.6f%11.6f%11.6f%11.6f%11.6f%11.6f\n',i,x1,y1,z1,ex,ey,ez);
while ex>error||ey>error||ez>error
x=x1;
y=y1;
z=z1;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x1-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x1-f(1,2)*y1)/f(1,3);
ex=abs((x1-x)/x1)*100;
ey=abs((y1-y)/y1)*100;
ez=abs((z1-z)/z1)*100;
i=i+1;
fprintf('%2i%11.6f%11.6f%11.6f%11.6f%11.6f%11.6f\n',i,x1,y1,z1,ex,ey,ez);
end
disp('_____________________________________________________________
________');
disp('Maka :');
disp(['nilai x=',num2str(x1),';%errorx=',num2str(ex),'%']);
disp(['nilai y=',num2str(y1),';%errory=',num2str(ey),'%']);
disp(['nilai z=',num2str(z1),';%errory=',num2str(ez),'%']);
case 2
disp('*****************************************************');
disp('^^^^^^^^^^^^^^^^^METODE JACOBI^^^^^^^^^^^^^^^^^^^^^^^');
disp('*****************************************************');
disp('masukkan persamaan dalam bentuk matrik sebagai berikut :');
d=input('Persamaan 1 :');
e=input('Persamaan 2 :');
f=input('Persamaan 3 :');
error=input('persen error :');
disp('');
x=0;
y=0;
z=0;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x-f(1,2)*y)/f(1,3);
ex=100;
ey=100;
ez=100;
i=1;
disp('-----------------------------------------------------------------------');
disp(' Iterasi x y z %x %y %z ');
disp('-----------------------------------------------------------------------')
fprintf('%2i%11.4f%11.4f%11.4f%11.4f%11.4f%11.4f\n',i,x1,y1,z1,ex,ey,ez);
while ex>error||ey>error||ez>error
x=x1;
y=y1;
z=z1;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x-f(1,2)*y)/f(1,3);
ex=abs((x1-x)/x1)*100;
ey=abs((y1-y)/y1)*100;
ez=abs((z1-z)/z1)*100;
i=i+1;
fprintf('%2i%11.4f%11.4f%11.4f%11.4f%11.4f%11.4f\n',i,x1,y1,z1,ex,ey,ez);
end
disp('_____________________________________________________________
________');
disp('Maka :');
disp(['nilai x=',num2str(x1),';%errorx=',num2str(ex),'%']);
disp(['nilai y=',num2str(y1),';%errory=',num2str(ey),'%']);
disp(['nilai z=',num2str(z1),';%errory=',num2str(ez),'%']);
end
d. Hasil Run
6. a. Algoritma
1. Mulai program
2. Masukkan persamaan pertama dalam bentuk matrix
3. Masukkan persamaan kedua dalam bentuk matrix
4. Masukkan persamaan ketiga dalam bentuk matrix
5. Masukkan persen kesalahan
6. Melakukan perhitungan dengan memasukkan nilai x,y,z pertama 0 pada
semua persamaan
7. Melakukan perhitungan dengan memasukkan nilai x,y,z dari hasil
perhitungan nilai x,y,z sebelumnya pada semua persamaan
8. Menghitung persen kesalahan setiap persamaan sampai persen
kesalahan terpenuhi
9. Program menampilkan hasil x, y, z, %kesalahan 1, %kesalahan 2, dan
%kesalahan 3
10. Mengakhiri program
b. Flowchart

Mulai

Masukkan
persamaan 1,2 dan 3
serta persen
kesalahan

Memproses
nilai x1,y1,z1

Menghasilkan
x1, y1, z1

While ex>error
||ey>error ||ez>
error

Memproses
Ya x1,y1,z1, ex,ey, Tidak
dan ez

Menghasilkan
x1, y1, z1 ,
ex, ey, dan ez

Selesai
c. Listing Program
clear all;
clc;
disp('*****************************************************');
disp('^^^^^^^^^^^^^^^^^METODE JACOBI^^^^^^^^^^^^^^^^^^^^^^^');
disp('*****************************************************');
disp('masukkan persamaan dalam bentuk matrik sebagai berikut :');
d=input('Persamaan 1 :');
e=input('Persamaan 2 :');
f=input('Persamaan 3 :');
error=input('persen error :');
disp('');
x=0;
y=0;
z=0;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x-f(1,2)*y)/f(1,3);
ex=100;
ey=100;
ez=100;
i=1;
disp('----------------------------------------------------------------------------');
disp(' Iterasi Jeruk Apel Manggis %Jeruk %Apel %Manggis ');
disp('----------------------------------------------------------------------------')
fprintf('%2i%11.4f%11.4f%11.4f%11.4f%11.4f%11.4f\n',i,x1,y1,z1,ex,ey,ez);
while ex>error||ey>error||ez>error
x=x1;
y=y1;
z=z1;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x-f(1,2)*y)/f(1,3);
ex=abs((x1-x)/x1)*100;
ey=abs((y1-y)/y1)*100;
ez=abs((z1-z)/z1)*100;
i=i+1;
fprintf('%2i%11.4f%11.4f%11.4f%11.4f%11.4f%11.4f\n',i,x1,y1,z1,ex,ey,ez);
end
disp('_____________________________________________________________
________');
disp('Maka :');
disp(['nilai jeruk=',num2str(x1),';%error jeruk=',num2str(ex),'%']);
disp(['nilai apel=',num2str(y1),';%error apel=',num2str(ey),'%']);
disp(['nilai manggis =',num2str(z1),';%error manggis =',num2str(ez),'%']);
d. Hasil Run
7. a. Algoritma :
1. Mulai program
2. Masukkan persamaan pertama dalam bentuk matrix
3. Masukkan persamaan kedua dalam bentuk matrix
4. Masukkan persamaan ketiga dalam bentuk matrix
5. Masukkan persen kesalahan
6. Melakukan perhitungan I1 dengan memasukkan nilai I2, I3 pertama
dengan nilai 0 pada persamaan pertama
7. Melakukan perhitungan dengan memasukkan nilai I1 dari perhitungan
sebelumnya dan z dengan nilai 0 pada persamaan kedua
8. Melakukan perhitungan dengan memasukkan nilai I1 dan I2 dari
perhitungan sebelumnya pada persamaan ketiga
9. Menghitung persen kesalahan setiap persamaan sampai terpenuhi
10. Program menampilkan hasil I1, I2, I3, %kesalahan I1, %kesalahan I2,
dan %kesalahan I3
11. Program selesai
b. Flowchart

Mulai

Masukkan
persamaan 1,2 dan 3
serta persen
kesalahan

Memproses
nilai I1,I2,I3

Menghasilkan
I1, I2 dan I3

While %I1>error
||%I2>error %I3
error

Memproses
Ya I1,I2,I3, %I1,%I2, Tidak
dan %I3

Menghasilkan
I1,I2,I3 , %I1,
%I2, dan %I3

Selesai
c. Listing Program
clear all;
clc;
disp('*****************************************************');
disp('^^^^^^^^^^^^^^METODE GAUS SIEDEL^^^^^^^^^^^^^^^^^^^^^');
disp('*****************************************************');
disp('masukkan persamaan dalam bentuk matrik sebagai berikut :');
d=input('Persamaan 1 :');
e=input('Persamaan 2 :');
f=input('Persamaan 3 :');
error=input('persen error :');
disp('');
x=0;
y=0;
z=0;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x1-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x1-f(1,2)*y1)/f(1,3);
ex=100;
ey=100;
ez=100;
i=1;
disp('-----------------------------------------------------------------------');
disp(' Iterasi I1 I2 I3 %I1 %I2 %I3 ');
disp('-----------------------------------------------------------------------')
fprintf('%2i%11.2f%11.2f%11.2f%11.2f%11.2f%11.2f\n',i,x1,y1,z1,ex,ey,ez);
while ex>error||ey>error||ez>error
x=x1;
y=y1;
z=z1;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x1-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x1-f(1,2)*y1)/f(1,3);
ex=abs((x1-x)/x1)*100;
ey=abs((y1-y)/y1)*100;
ez=abs((z1-z)/z1)*100;
i=i+1;
fprintf('%2i%11.2f%11.2f%11.2f%11.2f%11.2f%11.2f\n',i,x1,y1,z1,ex,ey,ez);
end
disp('_____________________________________________________________
________');
disp('Maka :');
disp(['nilai I1=',num2str(x1),';%errorI1=',num2str(ex),'%']);
disp(['nilai I2=',num2str(y1),';%errorI2=',num2str(ey),'%']);
disp(['nilai I3=',num2str(z1),';%errorI3=',num2str(ez),'%']);
d. Hasil Run

Anda mungkin juga menyukai