Anda di halaman 1dari 12

Integrasi Numeris dengan Metode Trapezoidal

Rule dan Simpsons Rule


Pemrograman Komputer STTN BATAN
oleh
Gde Pandhe Wisnu Suyantara
(visnhu.suyantara@gmail.com)

A. Metode Integrasi Numeris
Misalkan suatu persamaan y=f(x) ingin diintegrasikan terhadap x dalam batas-batas xa
dan xb sebagai berikut :
=


maka apabila digambar dalam bentuk kurva y terhadap x, hasil integrasi merupakan
area dibawah kurva y terhadap x seperti yang ditampilkan pada gambar 1.
xb xa
y=f(x)
x
y

Gambar 1. Area hasil integrasi
Metode integrasi secara numeris dapat dilakukan dengan beberapa cara diantaranya
adalah :
1. Trapezoidal rule
2. Simpsons 1/3 rule
3. Simpsons 3/8 rule
Ketiga metode berasal dari rumus Newton-Cotes untuk integrasi sebagai berikut:
=
0
+

0

0
+

0
(
1
)
2!
2

0
+

0
(
1
)(
2
)
3!
3

0
+
Persamaan Newton-Cotes merupakan persamaan yang berusaha mendekati nilai y
dengan ekspansi aljabar.
Perbedaan mendasar ketiga metode numeris tersebut adalah pada pendekatan
terhadap nilai y atau pengambilan hingga suku tertentu pada rumus Newton-Cotes
tersebut. Sebagai contoh trapezoidal rule hanya mendekati nilai y dengan mengambil
hingga suku kedua sedangkan Simpsons 1/3 rule mendekati nilai y dengan
menggunakan hingga suku ketiga. Simpsons 3/8 mengambil pendekatan nilai y hingga
suku keempat. Pada tutorial ini akan digunakan dua metode pertama saja yaitu
trapezoidal rule dan Simpsons 1/3 rule.
1. Trapezoidal rule
x
1
x
0
y=f(x)
x
y
x
n
x
0
y=f(x)
x
y
y
0
y
1
x
y
0
y
n
x
1
x
n-1
y
1
y
n-1
I
1
I
2
I
n-1
I
n

Gambar 2. Metode integrasi dengan trapezoidal rule. 2a (kiri) prinsip dasar pendekatan
trapezoidal; 2b (kiri) pendekatan dengan metode trapezoidal sebanyak n
inkremen
Sesuai dengan namanya metode trapezoidal mendekati suatu fungsi y=f(x) sebagai
trapezoid seperti yang ditampilkan pada gambar 2a. Apabila fungsi y=f(x) dibagi dalam n
inkremen dengan tebal sebesar x dan didekati dengan metode trapezoid maka akan
diperoleh gambar 2b.
Luas 1 trapezoid pada gambar 2a adalah :

1
=

0
+
1

2
=

0
+
1

2

Untuk n inkremen seperti pada gambar 2b maka luas area dibawah kurva merupakan
penjumlahan dari setiap trapezoid sehingga:
=
1
+
2
++
1
+

0
+
1

1
+

1
+
2

2
++

2
+
1

1
+

1
+


apabila tebal inkremen (x) dibuat sama maka :
=

2

0
+2

=1
=1
+


Rumus tersebut merupakan rumus integrasi numeris untuk metode trapezoid untuk n
inkremen. Pada bahasa pemrograman Matlab, indeks i=0 tidak ada, sehingga
perhitungan dimulai pada i=1 sehingga persamaan diatas dimodifikasi untuk Matlab
menjadi sebagai berikut :
=

2

1
+2

=1
=2
+


dengan N adalah jumlah titik perhitungan bukan inkremen (n) seperti pada persamaan
sebelumnya berlaku N=n+1.
2. Simpsons 1/3 rule
x
1 x
0
y=f(x)
x
y
y
0
y
1
y
2
x
2
x
1
x
0
y=f(x)
x
y
y
0
y
1
y
n
x
n x
2
x
3
x
n-1
y
2 y
3
y
n-1
x x x x x

Gambar 3. Metode integrasi dengan Simpsons 1/3 rule.
Metode Simpsons 1/3 mendekati luas dibawah kurva dengan tiga titik, berbeda
dengan trapezoidal yang hanya membutuhkan dua titik. Luas area dengan metode
Simpsons 1/3 adalah sebagai berikut :

1
=

0
+4
1
+
2

3
=

0
+ 4
1
+
2

3

Untuk n inkremen maka dapat dituliskan rumus umum dari integrasi dengan metode
Simpsons 1/3 sebagai berikut:
=

3

0
+4
21
=/2
=1
+2
2
=/21
=1
+


Catatan : jumlah inkremen yang digunakan pada metode Simpsons harus GENAP!

Pada bahasa pemrograman Matlab, indeks i=0 tidak ada, sehingga perhitungan
dimulai pada i=1 sehingga persamaan diatas dimodifikasi untuk Matlab menjadi
sebagai berikut :
=

3

1
+ 4
2
=1/2
=1
+2
21
=1/21
=2
+


dengan N adalah jumlah titik perhitungan bukan inkremen (n) seperti pada
persamaan sebelumnya, berlaku N=n+1. Dengan menggunakan rumus ini, maka nilai
N harus selalu GANJIL!

B. Pemrograman Metode Integrasi Numeris dengan MATLAB
Misalnya ingin dicari nilai integral suatu persamaan kuadrat sebagai berikut:
= 10
2
+12 +2
pada interval xa=0 hingga xb=2.
Hitunglah nilai integrasi persamaan tersebut dengan metode trapezoidal rule dan
Simpsons 1/3 rule!

1. Penyelesaian dengan trapezoidal rule
a. Cara manual
Langkah perhitungan secara manual untuk metode trapezoidal rule adalah sebagai
berikut :
1. Masukkan nilai x
a
,x
b
,dan jumlah titik perhitungan (N)
2. Hitung nilai x :
=

1

Nilai pembagi adalah N-1, bukan N karena yang digunakan adalah jumlah titik
perhitungan bukan inkremen selain itu indeks pada matlab dimulai dari 1, tidak dari
0.
3. Misalkan luas (A) awal bernilai 0
4. Mulai hitungan iterasi for dari i = 1 hingga i = N
Perhitungan looping for pada Matlab dilakukan dari indeks i=1 tidak dari i=0!
a. Hitung x=x
a
+ (i-1)x
b. Hitung nilai y=f(x) dengan menggunakan subprogram/subroutine
c. Untuk i = 1 maka A=A+y
d. Untuk i = N maka A=A+y
e. Untuk i = 2 hingga N-1 maka A=A+2y
5. Akhiri perhitungan iterasi
6. Hitung Area integrasi
_ =

2

7. Tampilkan hasil hitungan
8. Selesai
Diagram alir algoritma hitung ditampilkan pada gambar 4.
Contoh program dengan algoritma manual pada gambar 4 adalah sebagai berikut:
Main Program
% mencari nilai integrasi secara numeris dengan metode trapezoidal rule
% input data
xa=0; % batas kiri dari integrasi
xb=2; % batas kanan dari integrasi
N=11; % jumlah titik perhitungan
% memulai perhitungan integrasi trapezoidal
delx=(xb-xa)/(N-1) % delta x
A=0; % luas awal
for i=1:N
x(i)=xa+(i-1)*delx; % menghitung nilai x pada inkremen ke i
y(i)=hitung_y(x(i)); % menghitung nilai y pada x(i)
if i==1
A=A+y(i);
elseif i==N
A=A+y(i);
else
A=A+y(i)*2;
end
end
Integ=A*delx/2;
fprintf('Hasil integrasi adalah %6.4f \n',Integ)


Subprogram
function y=hitung_y(x)
y=10*x^2+12*x+2;

Hasil
Hasil integrasi adalah 54.8000
Hitung nilai delx=(xb-xa)/N
Definisikan nilai luas awal A=0
Apakah i=0?
Tampilkan
Hasil
Perhitungan
Akhir Program
Mulai Program
Hitungan loop for i=1:N
Hitung x=xa+i*delx
YA
LOOP FOR
YA
Masukkan nilai
xa,xb, N
Hitung nilai y=f(x) dengan
subprogram
Apakah i=N?
Hitung nilai luas (A)
A=A+y
Hitung nilai luas (A)
A=A+2*y
TIDAK TIDAK
YA
YA
Ulangi untuk i
selanjutnya?
Hitung hasil integrasi :
y=A*delx/2
subprogram
function y=hitungy(x)
y=10*x^2+12*x+1
x
y
TIDAK

Gambar 4. Algoritma perhitungan metode trapezoidal rule

b. Cara Matriks
Oleh karena pemrograman Matlab berbasis pada matriks, prosedur looping for untuk
mencari jumlahan nilai y sesuai dengan persamaan trapezoidal rule dapat diganti
dengan menerapkan metode matriks. Langkah hitungnya adalah sebagai berikut :
1. Masukkan nilai x
a
,x
b
,dan jumlah titik perhitungan (N)
2. Buat array untuk x tiap titik ke i dalam variabel xi menggunakan linspace:
xi=linspace(xa,xb,N)
3. Hitung nilai delx sebagai beda antara elemen kedua xi dengan elemen pertama xi
delx=xi(2)-xi(1)
4. Hitung nilai yi pada setiap xi dengan menggunakan subprogram. Ingat pada langkah
ini subprogram akan menghitung nilai yi pada setiap xi yang berupa array sehingga
gunakan operasi elemen matriks di dalam subprogram!
5. Sesuai dengan persamaan trapezoidal rule, nilai yi selain pada batas-batas nilai x (xa
dan xb) harus dikalikan 2.
=

2

0
+

=
=
+


sehingga lakukan perkalian hanya untuk elemen kedua hingga N-1 sesuai cara array:
yi(2:N-1)=yi(2:N-1)*2
dengan perintah diatas berarti melakukan perkalian dengan angka 2 untuk elemen yi
kedua hingga N-1 yang hasilnya disimpan pada elemen yi yang sama.
6. Hitung integrasi dengan persamaan :
=


karena yi sudah sesuai dengan bentuk

0
+

=
=
+


maka nilai

dapat dihitung langsung sebagai berikut
I=sum(yi)*delx/2
dengan menggunakan konsep matriks maka perintahnya menjadi lebih singkat dan lebih
efektif daripada menggunakan looping for!
Buat array xi dengan linspace
Hitung nilai delx dari array xi
Tampilkan
Hasil
Perhitungan
Akhir Program
Mulai Program
Masukkan nilai
xa,xb, N
Hitung nilai yi=f(xi) dengan
subprogram
Hitung hasil integrasi :
y=sum(yi)*delx/2
subprogram
function y=hitungy(x)
y=10*x.^2+12*x+1
x
y
Kalikan nilai yi untuk i=2
hingga i=N-1 dengan
konstanta 2

Gambar 5. Algoritma program metode trapezoidal rule dengan cara matriks
Contoh program dengan menggunakan konsep matriks sebagai berikut:
Main Program
% mencari nilai integrasi secara numeris dengan metode trapezoidal rule
% input data
xa=0; % batas kiri dari integrasi
xb=2; % batas kanan dari integrasi
N=11; % jumlah titik perhitungan
% memulai perhitungan integrasi trapezoidal
xi=linspace(xa,xb,N); % membuat nilai xi pada setiap inkremen
delx=xi(2)-xi(1); % delta x
yi=hitung_y(xi); % menghitung nilai y pada setiap xi
yi(2:N-1)=yi(2:N-1)*2; % nilai yi untuk i=2 hingga i=N-1 maka
yi*2
Integ=sum(yi)*delx/2;
fprintf('Hasil integrasi adalah %6.4f \n',Integ)

Subprogram
function y=hitung_y(x)
y=10*x.^2+12*x+2;

Hasil
Hasil integrasi adalah 54.8000
Hasil yang diperoleh dengan cara manual maupun dengan cara matriks sama.
2. Penyelesaian dengan Simpsons 1/3 rule
Langkah perhitungan dengan cara matriks untuk metode Simpsons 1/3 rule :
1. Masukkan nilai x
a
,x
b
,dan jumlah titik perhitungan (N)
ingat ada syarat N harus ganjil!
2. Buat array untuk x tiap titik ke i dalam variabel xi menggunakan linspace:
xi=linspace(xa,xb,N)
3. Hitung nilai delx sebagai beda antara elemen kedua xi dengan elemen pertama xi
delx=xi(2)-xi(1)
4. Hitung nilai yi pada setiap xi dengan menggunakan subprogram. Ingat pada langkah
ini subprogram akan menghitung nilai yi pada setiap xi yang berupa array sehingga
gunakan operasi elemen matriks di dalam subprogram!
5. Sesuai dengan persamaan Simpsons rule, nilai yi selain pada batas-batas nilai x (xa
dan xb) harus dikalikan 2 jika berada pada titik ganjil dan dikalikan 4 jika berada pada
titik genap.
=

3

1
+ 4
2
=1/2
=1
+ 2
21
=1/21
=2
+


sehingga lakukan perkalian sebagai berikut:
untuk titik genap setelah titik i=1 sebelum titik N
yi(2:2:N-1)=yi(2:2:N-1)*4
untuk titik ganjil setelah titik i=1 sebelum titik N
yi(3:2:N-1)=yi(3:2:N-1)*2
dengan perintah diatas berarti melakukan perkalian dengan angka 2 untuk ganjil dan
angka 4 untuk genap pada setiap elemen yi pada titik yang sesuai dan hasilnya
disimpan dalam variabel yi sendiri.
6. Hitung integrasi dengan persamaan :
=


karena yi sudah sesuai dengan bentuk

1
+4
2
=1/2
=1
+2
21
=1/21
=2
+


maka nilai

dapat dihitung langsung sebagai berikut
I=sum(yi)*delx/3
Main Program
% mencari nilai integrasi secara numeris dengan metode simpsons rule
% input data
xa=0; % batas kiri dari integrasi
xb=2; % batas kanan dari integrasi
N=11; % jumlah titik perhitungan
% memulai perhitungan integrasi trapezoidal
xi=linspace(xa,xb,N); % membuat nilai xi pada setiap inkremen
delx=xi(2)-xi(1); % delta x
yi=hitung_y(xi); % menghitung nilai y pada setiap xi
yi(2:2:N-1)=yi(2:2:N-1)*4; % nilai yi untuk i genap untuk i
lebih dari 1 kurang dari N maka yi*4
yi(3:2:N-1)=yi(3:2:N-1)*2; % nilai yi untuk i ganjil untuk i
lebih dari 1 kurang dari N maka yi*2
Integ=sum(yi)*delx/3;
fprintf('Hasil integrasi adalah %6.4f \n',Integ)

Subprogram
function y=hitung_y(x)
y=10*x.^2+12*x+2;
Hasil
Hasil integrasi adalah 54.6667

Metode Hasil (N=11)
Trapezoidal 54.8000
Simpson 54.6667
Analitis 54.6667
Hasil perhitungan pada tabel diatas menunjukkan bahwa metode Simpsons 1/3 memiliki hasil
yang sama dengan metode analitis, sedangkan metode trapezoidal dengan jumlah inkremen
yang sama masih memiliki kesalahan sebesar 0,24 % terhadap hasil analitis. Bahkan jika nilai
inkremen (n) dibuat lebih besar yaitu 100, nilai integrasi persamaan sebesar 54.6680
LATIHAN
Buatlah algoritma hitung Simpsons Rule untuk persoalaan diatas dengan cara manual (bukan
matriks). Kemudian buatlah penyelesaian persoalan diatas dalam bentuk program Matlab
sesuai dengan algoritma hitung yang sudah dibuat!
TUGAS 2
PEMROGRAMAN KOMPUTER
STTN BATAN
Suatu reaktor batch beroperasi secara adiabatic untuk reaksi fasa cair order 2: A B dengan
persamaan reaksi sebagai berikut:

2

dengan
=


perubahan entalpi reaksi (H
R
), volum reaktor (V
R
) dan kapasitas panas larutan (Cp) dianggap
tetap. Umpan masuk pada suhu T
f
dan konsentrasi A mula-mula C
A0
. Reaksi dihentikan pada
saat x
R
dengan konversi mula-mula x
R0.
Ingin dicari waktu tinggal di dalam reaktor yang
memberikan nilai x
R
sebesar 0.6269371.
Diketahui :
V
R
= 10000 L
CA0=1 mol/L
= 1 kg/L
Cp=1,0 kcal/kg/K
A=1x10
7
L/mol/menit
E=14 kcal/mol
H
R
=-6 kcal/mol
R=0.001987 kcal/mol/K
Tf=350 K
x
R0
=0
waktu tinggal di dalam reaktor dapat dihitung dengan persamaan sebagai berikut :

=
1

1
1
2


dengan
=



Jawaban
Waktu tinggal di dalam reaktor = 80.8101 menit
Syarat Pengumpulan Tugas
1. Tugas dikumpulkan paling lambat tanggal : 20 Maret 2014
2. Tugas dikumpulkan dalam bentuk soft copy berupa:
a. diagram algoritma
b. copy kode matlab
c. hasil run
d. kode matlab (m-file)
a, b, dan c ditulis dalam 1 file MS word (bukan terpisah)
dikirim ke email prokomsttnbatan@gmail.com.
3. Penulisan nama file softcopy (MS word) : Tugas2 Nama
4. Tuliskan pada subject email : Tugas2 Nama