You are on page 1of 19

METODE NEWTON-COTES TERTUTUP

ANALISA NUMERIK

OLEH :

PUTU RUSDI ARIAWAN (0804405050)

JURUSAN TEKNIK ELEKTRO


FAKULTAS TEKNIK UNIVERSITAS UDAYANA
DENPASAR
2010

PUTU RUSDI ARIAWAN


METODE NEWTON-COTES TERTUTUP

A.Rumus Newton Cotes


Rumus trapesium dan Simpson sebetulnya merupakan dua buah rumus pertama dari
rumus Newton Cotes.
Untuk n 1, h =(b – a) /n, xj = a + jh untuk j = 0, 1, 2, 3, …, n. didefinisikan In (f)
dengan mengganti f(x) dengan polynomial pn (x) pada titik – titik x0, x1, …, xn :

b b
I( f ) f ( x)dx p n ( x)dx
a a

Dengan interpolasi Lagrange untuk pn(x), maka

b n n
In ( f ) I j ,n ( x) f ( x j )dx W j , n ( x) f ( x j )
a j 0 j 0

b
Dengan W j ,n I j ,n ( x)dx j = 0, 1, 2, …,n
a

Untuk nilai n = 1 dan 2 telah disajikan sebagai rumus trapezium dan Simpson. Sekarang untuk
n = 3, contoh untuk menghitung w0 adalah :
b
( x x1 )( x x2 )( x x3 )
W0 dx
a
( x0 x1 )( x0 x2 )( x0 x3 )

Jika x = x0 + µh, 0 ≤ µ ≤ 3, maka:

x1
1
w0 (x x1 )( x x 2 )( x x3 )dx
x0 6h 3
3
1
w0 ( 1)h( 2)h( 3)hhd
6h 3 0
3
h 3h
w0 ( 1)( 2)( 3)d
60 8

PUTU RUSDI ARIAWAN


Jika W1, W2, W3 dihitung dengan cara diatas, akhirnya akan didapat untuk n = 3

3h
I3 ( f ) [ f ( x0 3 f ( x1 ) 3 f ( x 2 ) 3 f ( x3 )]
8
Kesalahan pada In(f) dinyatakan sebagai berikut:
a) Untuk n genap :
En ( f ) Cn h n 3 f ( n 2)
( ) [a, b]
n
1 2
Dengan C n ( 1)...( n) d
(n 2)! 0

b) Untuk n gasal :
En ( f ) C n h n 2 f ( n 1) ( ) [a, b]
n
1 2
Dengan C n ( 1)...( n) d
(n 1)! 0

rumus Newton – Cotes tertutup

n = 1, rumus trapesium
b
h h 3 ''
f ( x)dx [ f (a) f (b)] f )
a
2 12

n = 2, rumus Simpson
b
h a b h 3 ( 4)
f ( x)dx [ f (a) 4 f ( ) f (b)] f ( )
a
3 2 90

n=3
b
3h 3h 5 ( 4)
f ( x)dx [ f ( a ) 3 F ( a h) f (b h) f (b)] f ( )
a
8 80

n = 4, Rumus Boole
b
2h a b 8h 7 ( 6)
f ( x)dx [7 f (a) 32 F (a h) 12 f ( ) 32 f (b h)] 7 f (b)] f ( )
a
45 2 945

~ ~
Definisi : integrasi numeric I ( f ) yang mendekati I ( f ) disebut mempunyai derajat ketepatan
~ ~
m jika : (a) I ( f ) I ( f ) untuk semua polynomial f(x) derajat m, (b) I ( f ) I ( f ) untuk
beberapa polynomial f(x) derajat.
Contoh:

PUTU RUSDI ARIAWAN


Pada rumus Newton.Cotes untuk n = 1,3 dikatakan mempunyai derajat ketepatan m =
1,3. sedangkan untuk n = 2,4 mempunyai derajat ketepatan m = n + 1 = 3,5. tampak bahwa
rumus Newton-Cotes dengan n genap menghasilkan derajat ketepatan ekstra dibandingkan
dengan n gasal.

B. Kode Program

{Integrasi Numeris Dengan Metode Newton & Cotes Tertutup}

Program Integrasi;
Uses WinCrt;
Var
Koef : Array [0..10] of Real;
n, i,i2, i3, Pilih, P, code, j: Integer;
sig, x0, sum, h, a, b, fa, fb, fc, Int : Real;
Trapesium, Simpson, Simpson3, Boole : Real;
ulang :char;
ps, koefs, as, bs, pilihs : string;

Function Pangkat(pkt:Integer;Basis:Real):Real;
var sum1 : real;
Begin
Sum1 := 1;
For i2:=pkt downto 1 do
sum1 := Basis*sum1;
Pangkat := sum1;
end;

Function Suku(koef, Basis:Real; P:integer) : real;


Begin
Suku := koef * Pangkat(P, basis) ;
End;

Procedure delay1;

Var
Wkt : longint;

Begin
For Wkt := 1 to 1250000 do
Write('');
End;

Procedure delay2;

Var
Wkt : longint;

Begin
For Wkt := 1 to 1000000 do
Write('');
End;

procedure judul1;
begin

PUTU RUSDI ARIAWAN


GotoXY (29,9);WriteLn (' *');
GotoXY (28,10);WriteLn (' * * *');
GotoXY (27,11);WriteLn (' ');GotoXY (55,11);WriteLn (' ');
GotoXY (24,12);WriteLn (' ');GotoXY (56,12);WriteLn ('* ');
GotoXY (24,13);WriteLn (' *');GotoXY (56,13);WriteLn (' * ');
GotoXY (27,14);WriteLn (' ');GotoXY (55,14);WriteLn (' ');
GotoXY (28,15);WriteLn (' * * ');
GotoXY (29,16);WriteLn (' * * ');
GotoXY (33,12);writeLn ('M E N S');
GotoXY (37,13);writeLn (' ');
delay1;
GotoXY (29,9);WriteLn ('* * * *');
GotoXY (28,10);WriteLn (' * * *');
GotoXY (27,11);WriteLn (' ');GotoXY (55,11);WriteLn (' ');
GotoXY (24,12);WriteLn ('* ');GotoXY (56,12);WriteLn ('* *');
GotoXY (24,13);WriteLn (' * *');GotoXY (56,13);WriteLn (' ** ');
GotoXY (27,14);WriteLn (' *');GotoXY (55,14);WriteLn (' ');
GotoXY (28,15);WriteLn (' * * * * ');
GotoXY (29,16);WriteLn (' * * * * ');
GotoXY (33,12);writeLn ('M O E E N S');
GotoXY (37,13);writeLn ('( )');
delay1;
GotoXY (29,9);WriteLn ('* *** * ** * * *');
GotoXY (28,10);WriteLn (' *** * * *** *');
GotoXY (27,11);WriteLn (' *');GotoXY (55,11);WriteLn (' *');
GotoXY (24,12);WriteLn ('** ');GotoXY (56,12);WriteLn ('* **');
GotoXY (24,13);WriteLn (' ***');GotoXY (56,13);WriteLn (' ** ');
GotoXY (27,14);WriteLn (' *');GotoXY (55,14);WriteLn (' ');
GotoXY (28,15);WriteLn (' * * *** * * * *');
GotoXY (29,16);WriteLn (' * * * * * * ');
GotoXY (33,12);writeLn ('M O E E N ES');
GotoXY (37,13);writeLn ('(T P)');
delay1;
GotoXY (29,9);WriteLn ('* *** ** * ** * ** **');
GotoXY (28,10);WriteLn (' *** *** * ** *** * *');
GotoXY (27,11);WriteLn (' *');GotoXY (55,11);WriteLn (' *');
GotoXY (24,12);WriteLn ('** ');GotoXY (56,12);WriteLn ('* **');
GotoXY (24,13);WriteLn (' ***');GotoXY (56,13);WriteLn (' ** ');
GotoXY (27,14);WriteLn (' *');GotoXY (55,14);WriteLn (' ');
GotoXY (28,15);WriteLn (' * ** * *** ** * * * *');
GotoXY (29,16);WriteLn (' * * * * * * ** * *');
GotoXY (33,12);writeLn ('ME ODE E N ES');
GotoXY (37,13);writeLn ('(TE P)');
delay1;
GotoXY (29,9);WriteLn ('***** *** * *** * ** **');
GotoXY (28,10);WriteLn ('* *** *** ** ** *** ** *');
GotoXY (27,11);WriteLn (' *');GotoXY (55,11);WriteLn (' *');
GotoXY (24,12);WriteLn ('** *');GotoXY (56,12);WriteLn ('****');
GotoXY (24,13);WriteLn (' ***');GotoXY (56,13);WriteLn (' ***');
GotoXY (27,14);WriteLn (' *');GotoXY (55,14);WriteLn (' ');
GotoXY (28,15);WriteLn ('** **** *** ** ** * * *');
GotoXY (29,16);WriteLn ('** * * ** * * ** ****');
GotoXY (33,12);writeLn ('ME ODE E N- OTES');
GotoXY (37,13);writeLn ('(TE T P)');
delay1;
GotoXY (29,9);WriteLn ('********* * *** ** ** **');
GotoXY (28,10);WriteLn ('* **** *** ** ** *** ****');
GotoXY (27,11);WriteLn (' *');GotoXY (55,11);WriteLn ('**');
GotoXY (24,12);WriteLn ('** *');GotoXY (56,12);WriteLn ('****');
GotoXY (24,13);WriteLn (' ***');GotoXY (56,13);WriteLn (' ***');
GotoXY (27,14);WriteLn (' *');GotoXY (55,14);WriteLn (' ');
GotoXY (28,15);WriteLn ('******* *** ** ** ** ** *');
GotoXY (29,16);WriteLn ('** **** ** *** ** ****');
GotoXY (33,12);writeLn ('METODE E ON- OTES');

PUTU RUSDI ARIAWAN


GotoXY (37,13);writeLn ('(TE TUP)');
delay1;
GotoXY (29,9);WriteLn ('********* ** ****** *****');
GotoXY (28,10);WriteLn ('****** *** * ** ****** ****');
GotoXY (27,11);WriteLn ('**');GotoXY (55,11);WriteLn ('**');
GotoXY (24,12);WriteLn ('** *');GotoXY (56,12);WriteLn ('****');
GotoXY (24,13);WriteLn ('****');GotoXY (56,13);WriteLn (' ***');
GotoXY (27,14);WriteLn (' *');GotoXY (55,14);WriteLn ('* ');
GotoXY (28,15);WriteLn ('*********** ** ** *******');
GotoXY (29,16);WriteLn ('******* ** **** ** *****');
GotoXY (33,12);writeLn ('METODE NE ON-COTES');
GotoXY (37,13);writeLn ('(TE T TUP)');
delay1;
GotoXY (29,9);WriteLn ('******************* *****');
GotoXY (28,10);WriteLn ('********** * **************');
GotoXY (27,11);WriteLn ('**');GotoXY (55,11);WriteLn ('**');
GotoXY (24,12);WriteLn ('****');GotoXY (56,12);WriteLn ('****');
GotoXY (24,13);WriteLn ('****');GotoXY (56,13);WriteLn ('****');
GotoXY (27,14);WriteLn (' *');GotoXY (55,14);WriteLn ('**');
GotoXY (28,15);WriteLn ('*********** ** ** *******');
GotoXY (29,16);WriteLn ('******* ** ***** ********');
GotoXY (33,12);writeLn ('METODE NEW ON-COTES');
GotoXY (37,13);writeLn ('(TERT TUP)');
delay1;
GotoXY (29,9);WriteLn ('**************************');
GotoXY (28,10);WriteLn ('***************************');
GotoXY (27,11);WriteLn ('**');GotoXY (55,11);WriteLn ('**');
GotoXY (24,12);WriteLn ('****');GotoXY (56,12);WriteLn ('****');
GotoXY (24,13);WriteLn ('****');GotoXY (56,13);WriteLn ('****');
GotoXY (27,14);WriteLn ('**');GotoXY (55,14);WriteLn ('**');
GotoXY (28,15);WriteLn ('*********** ** ** *******');
GotoXY (29,16);WriteLn ('**************** ********');
GotoXY (33,12);writeLn ('METODE NEW ON-COTES');
GotoXY (37,13);writeLn ('(TERT TUP)');
delay1;
GotoXY (29,9);WriteLn ('**************************');
GotoXY (28,10);WriteLn ('***************************');
GotoXY (27,11);WriteLn ('**');GotoXY (55,11);WriteLn ('**');
GotoXY (24,12);WriteLn ('****');GotoXY (56,12);WriteLn ('****');
GotoXY (24,13);WriteLn ('****');GotoXY (56,13);WriteLn ('****');
GotoXY (27,14);WriteLn ('**');GotoXY (55,14);WriteLn ('**');
GotoXY (28,15);WriteLn ('**************************');
GotoXY (29,16);WriteLn ('*************************');
GotoXY (33,12);writeLn ('METODE NEWTON-COTES');
GotoXY (37,13);writeLn ('(TERTUTUP)');
delay1;
GotoXY (29,9);WriteLn ('**************************');
GotoXY (28,10);WriteLn ('****************************');
GotoXY (27,11);WriteLn ('**');GotoXY (55,11);WriteLn ('**');
GotoXY (24,12);WriteLn ('****');GotoXY (56,12);WriteLn ('****');
GotoXY (24,13);WriteLn ('****');GotoXY (56,13);WriteLn ('****');
GotoXY (27,14);WriteLn ('**');GotoXY (55,14);WriteLn ('**');
GotoXY (28,15);WriteLn ('****************************');
GotoXY (29,16);WriteLn ('**************************');
GotoXY (33,12);writeLn ('METODE NEWTON-COTES');
GotoXY (37,13);writeLn ('(TERTUTUP)');
delay1;
END;

procedure judul2;
begin
GotoXY (70,2);writeLn (' OADING');DELAY1;
GotoXY (70,2);writeLn ('L ADING');DELAY1;
GotoXY (70,2);writeLn ('LO DING');DELAY1;

PUTU RUSDI ARIAWAN


GotoXY (70,2);writeLn ('LOA ING');DELAY1;
GotoXY (70,2);writeLn ('LOAD NG');DELAY1;
GotoXY (70,2);writeLn ('LOADI G');DELAY1;
GotoXY (70,2);writeLn ('LOADIN ');DELAY1;
GotoXY (70,2);writeLn ('LOADING');DELAY1;
END;

procedure stop;
begin
clrscr;
GotoXY (30,10);WriteLn ('***************************');
GotoXY (29,11);WriteLn ('**');GotoXY (56,11);WriteLn ('**');
GotoXY (25,12);WriteLn ('*****');GotoXY (57,12);WriteLn
('*****');
GotoXY (29,13);WriteLn ('**');GotoXY (56,13);WriteLn ('**');
GotoXY (30,14);WriteLn ('***************************');
GotoXY (38,12);WriteLn ('TERIMA KASIH');
GotoXY (75,2);writeLn ('5');DELAY1;DELAY1;DELAY1;DELAY1;DELAY1;
GotoXY (75,2);writeLn ('4');DELAY1;DELAY1;DELAY1;DELAY1;DELAY1;
GotoXY (75,2);writeLn ('3');DELAY1;DELAY1;DELAY1;DELAY1;DELAY1;
GotoXY (75,2);writeLn ('2');DELAY1;DELAY1;DELAY1;DELAY1;DELAY1;
GotoXY (75,2);writeLn ('1');DELAY1;DELAY1;DELAY1;DELAY1;DELAY1;
GotoXY (75,2);writeLn ('0');DELAY1;DELAY1;DELAY1;DELAY1;DELAY1;
delay2;
clrscr;
GotoXY (30,7);WriteLn ('***************************');
GotoXY (29,11);WriteLn ('**');GotoXY (56,11);WriteLn ('**');
GotoXY (25,12);WriteLn ('*****');GotoXY (57,12);WriteLn
('*****');
GotoXY (29,13);WriteLn ('**');GotoXY (56,13);WriteLn ('**');
GotoXY (30,17);WriteLn ('***************************');
GotoXY (38,12);WriteLn ('TERIMA KASIH');
delay2;
clrscr;
GotoXY (30,4);
WriteLn ('***************************');
GotoXY (20,8);WriteLn ('**');GotoXY (65,8);WriteLn ('**');
GotoXY (25,12);WriteLn ('*****');GotoXY (57,12);WriteLn
('*****');
GotoXY (20,16);WriteLn ('**');GotoXY (65,16);WriteLn ('**');
GotoXY (30,20);WriteLn ('***************************');
GotoXY (38,12);WriteLn ('TERIMA KASIH');
delay2;
clrscr;
GotoXY (11,4);WriteLn ('**');GotoXY (74,4);WriteLn ('**');
GotoXY (16,12);WriteLn ('*****');GotoXY (65,12);WriteLn
('*****');
GotoXY (11,20);WriteLn ('**');GotoXY (74,20);WriteLn ('**');
GotoXY (38,12);WriteLn ('TERIMA KASIH');
delay2;
clrscr;
GotoXY (8,12);WriteLn ('*****');GotoXY (73,12);WriteLn
('*****');
GotoXY (38,12);WriteLn ('TERIMA KASIH');
delay2;
clrscr;
GotoXY (38,12);WriteLn (' ERIMA KASI ');delay2;
GotoXY (38,12);WriteLn (' RIMA KAS ');delay2;
GotoXY (38,12);WriteLn (' IMA KA ');delay2;
GotoXY (38,12);WriteLn (' MA K ');delay2;
GotoXY (38,12);WriteLn (' A ');delay2;
GotoXY (38,12);WriteLn (' ');delay2;
end;

PUTU RUSDI ARIAWAN


procedure input1;
begin
val (ps, p, code);
if (code <> 0)then
begin
GotoXY (10,6);
Writeln ('Maaf, Input Harus Berupa Angka');
j := 0;
end
else
if (p < 0) or (p > 5)then
begin
GotoXY (10,6);
writeln(' Masukkan Nilai Dari 0-5');
j := 0;
end
else
j:=1;
end;

procedure input2;
begin

val(koefs,koef[i],code);
if (code <> 0) then
begin
gotoxy (10,6);
writeln('Maaf, Input Harus Berupa Angka ');
j := 0;
end
else
if (koef[i]<-20) or (koef[i] >20) then
begin
gotoxy (10,6);
writeln(' Masukkan nilai harus antara -20 s/d 20');
j := 0;
end
else
j :=1;
end;
procedure input3;
begin

val(as,a,code);
if (code <> 0) then
begin
gotoxy (10,6);
writeln('Maaf, Input Harus Berupa Angka ');
j := 0;
end
else
if (a<0) or (a >5) then
begin
gotoxy (10,6);
writeln(' Masukkan nilai harus antara 0-5');
j := 0;
end
else
j :=1;
end;

procedure input4;
begin

PUTU RUSDI ARIAWAN


val(bs,b,code);
if (code <> 0) then
begin
gotoxy (10,6);
writeln('Maaf, Input Harus Berupa Angka ');
j := 0;
end
else
if (b<0) or (b >5) then
begin
gotoxy (10,6);
writeln(' Masukkan nilai harus antara 0-5');
j := 0;
end
else
j :=1;
end;

procedure input5;
begin

val(pilihs,pilih,code);
if (code <> 0) then
begin
gotoxy (10,12);
writeln('Maaf, Input Harus Berupa Pilihan Yang Sudah
Tertera');
j := 0;
end
else
if (pilih<0) or (pilih >4) then
begin
gotoxy (10,12);
writeln('Maaf, Input Harus Berupa Pilihan Yang Sudah
Tertera');
j := 0;
end
else
j :=1;
end;

{program utama}
Begin

judul1;
judul2;judul2;judul2;judul2;judul2;
clrscr;
Repeat
repeat

gotoxy(5,4);
Write('Masukkan Pangkat Tertinggi Dari Persamaan! ');Readln(Ps);
clrscr;
input1;

until j = 1;

For i:= P Downto 0 do


begin
repeat
gotoxy (5,4);
Write ('Masukkan Pangkat Ke-',i,' : ');

PUTU RUSDI ARIAWAN


Readln(Koefs);
clrscr;
input2;
until j = 1;
end;

repeat
gotoxy (5,4);
Write('Batas Awal Integral (a) : ');Readln(as);
clrscr;
input3;
until j =1;

repeat
gotoxy (5,4);
Write('Batas Akhir Integral (b) : ');Readln(bs);
clrscr;
input4;
until j =1;

repeat
gotoxy (5,4);
Writeln ('Pilih penyelesaian Dengan Metode Berikut :(n)');
gotoxy (5,5);
Writeln ('1. Metoda Trapesium');
gotoxy (5,6);
Writeln ('2. Metoda 1/3 Simpson');
gotoxy (5,7);
Writeln ('3. Metoda 3/8 Simpson');
gotoxy (5,8);
Writeln ('4. Metoda Boole');
gotoxy (5,10);
Write ('PILIHAN ANDA : ');
Readln (Pilihs);
clrscr;
input5;
until j=1;

{PROSES !!!!!!!!!}
fa := 0;
fb := 0;

For i := P downto 1 do
begin
fa := Suku(Koef[i], a, i) + fa;
fb := Suku(Koef[i], b, i) + fb;
end;
fa := fa + koef[0];
fb := fb + koef[0];
Int := fa + fb;

{Metode Trapesium}
If Pilih = 1 Then
Begin
h := (b-a);
n := 1;
sig := 0;
x0 := 0;

For i :=1 to n-1 do


begin
x0 := x0 + h;

PUTU RUSDI ARIAWAN


if i mod 3 =1 then
begin
fa := 0;
for i3 := P downto 1 do
fa := Suku(Koef[i3], x0, i3) + fa;
fa := fa+koef[0];
sig := sig + fa;
end;
end;

Trapesium := h/2 * (Int+sig);

writeln;writeln;writeln;writeln;
writeln(' PANGKAT TERTINGGI PERSAMAAN : ',P);WRITELN;
For i:= P Downto 0 do
Writeln(' KOEFISIEN PANGKAT KE-',i,' : ',Koef[I]
:0:2);WRITELN;
Writeln(' BATAS AWAL INTEGRAL (a) : ',a:0:2);WRITELN;
Writeln(' BATAS AKHIR INTEGRAL (b) : ',b:0:2);WRITELN;
Writeln(' PILIHAN KE : ',pilih);WRITELN;
Writeln(' DENGAN METODE TRAPESIUM (N = 1)');
WRITELN(' MENGHASILKAN : ',Trapesium:0:2);
end;

{metode 1/3 Simpson}


If Pilih = 2 Then
Begin
h := (b-a)/2;
n := 2;
x0 := 0;
sig := 0;

for i:= 1 to n-1 do


Begin

x0 := x0 +h;

If i mod 2 =1 then
begin
fa := 0;
for i3 := P downto 1 do
fa := Suku(Koef[i3], x0, i3) + fa;
fa := fa+koef[0];
sig := sig + 4*fa;

end
else
begin
fa := 0;
for i3 := P downto 1 do
fa := Suku(Koef[i3], x0, i3) + fa;
fa := fa+koef[0];
sig := sig + 2*fa;
end;
end;

Simpson := h/3 * (Int + Sig);

writeln;writeln;writeln;writeln;
writeln(' PANGKAT TERTINGGI PERSAMAAN : ',P);WRITELN;
For i:= P Downto 0 do
Writeln(' KOEFISIEN PANGKAT KE-',i,' : ',Koef[I]
:0:2);WRITELN;
Writeln(' BATAS AWAL INTEGRAL (a) : ',a:0:2);WRITELN;

PUTU RUSDI ARIAWAN


Writeln(' BATAS AKHIR INTEGRAL (b) : ',b:0:2);WRITELN;
Writeln(' PILIHAN KE : ',pilih);WRITELN;
Writeln(' DENGAN METODE 1/3 SIMPSON (N = 2)');
WRITELN(' MENGHASILKAN : ',Simpson:0:2);
end;

{metode 3/8 simpson}


If Pilih = 3 Then
Begin
h := (b-a)/3;
n := 3;
sig := 0;
x0 := 0;

for i:= 1 to n-1 do


Begin
x0 := x0 +h;

If i mod 3 =1 then
begin
fa := 0;
for i3 := P downto 1 do
fa := Suku(Koef[i3], x0, i3) + fa;
fa := fa+koef[0];
sig := sig + 2*fa;
end
else
begin
fa := 0;
for i3 := P downto 1 do
fa := Suku(Koef[i3], x0, i3) + fa;
fa := fa+koef[0];
sig := sig + 3*fa;
end;
end;

Simpson3 := (Int + Sig) * h * 3/8;

writeln;writeln;writeln;writeln;
writeln(' PANGKAT TERTINGGI PERSAMAAN : ',P);WRITELN;
For i:= P Downto 0 do
Writeln(' KOEFISIEN PANGKAT KE-',i,' : ',Koef[I]
:0:2);WRITELN;
Writeln(' BATAS AWAL INTEGRAL (a) : ',a:0:2);WRITELN;
Writeln(' BATAS AKHIR INTEGRAL (b) : ',b:0:2);WRITELN;
Writeln(' PILIHAN KE : ',pilih);WRITELN;
Writeln(' DENGAN METODE 3/8 SIMPSON (N = 3)');
WRITELN(' MENGHASILKAN : ',Simpson:0:2);

end;

{metode boole}
If Pilih = 4 Then
Begin
h := (b-a)/4;
n := 4;
sig := 0;
x0 := 0;

for i:= 1 to n-1 do


Begin
x0 := x0 +h;

PUTU RUSDI ARIAWAN


If i mod 2 =1 then
begin
fa := 0;
for i3 := P downto 1 do
fa := Suku(Koef[i3], x0, i3) + fa;
fa := fa+koef[0];
sig := sig + 32*fa;
end
else
begin
fa := 0;
for i3 := P downto 1 do
fa := Suku(Koef[i3], x0, i3) + fa;
fa := fa+koef[0];
sig := sig + 12*fa;
end;
end;

Boole := (7 * Int + sig) * h * 2/45;

writeln;writeln;writeln;writeln;
writeln(' PANGKAT TERTINGGI PERSAMAAN : ',P);WRITELN;
For i:= P Downto 0 do
Writeln(' KOEFISIEN PANGKAT KE-',i,' : ',Koef[I]
:0:2);WRITELN;
Writeln(' BATAS AWAL INTEGRAL (a) : ',a:0:2);WRITELN;
Writeln(' BATAS AKHIR INTEGRAL (b) : ',b:0:2);WRITELN;
Writeln(' PILIHAN KE : ',pilih);WRITELN;
Writeln(' DENGAN METODE BOOLE (N = 4)');
WRITELN(' MENGHASILKAN : ',boole:0:2);
end;
writeln;writeln;
Write(' ANDA INGIN MENGULANG (Y/T) ? ');
ULANG := readkey;
clrscr;
Until upcase (ULANG) <>'Y';
stop;
DoneWinCrt;
End.

C.Kegunaan Fungsi dan Prosedur Dalam Program

1. Fungsi pangkat
Function Pangkat(pkt:Integer;Basis:Real):Real;
var sum1 : real;
Begin
Sum1 := 1;
For i2:=pkt downto 1 do
sum1 := Basis*sum1;
Pangkat := sum1;
end;

PUTU RUSDI ARIAWAN


Fungsi ini digunakan untuk menentukan pangkat dan perhitungan pangkat yang akan
diinputkan ke dalam program, mulai dari pangkat tertingi hingga terendah. Fungsi ini akan
dipanggil pada Fungsi suku.

2. Fungsi suku
Function Suku(koef, Basis:Real; P:integer) : real;
Begin
Suku := koef * Pangkat(P, basis) ;
End;
Fungsi ini digunakan untuk menentukan besar koefisien dan perhitungannya dari masing –
masing pangkat dalam suatu persamaan yang telah diinputkan. Fungsi ini akan dipanggil
pada program utama

3. Procedure
Pada program diatas terdapat beberapa procedure yaitu :
 Procedure delay1 dan delay2
Kedua procedure ini digunakan untuk menyisipkan waktu jeda pada program.
Procedure ini digunakan pada procedure judul1 dan judul2 untuk memberikan jeda
waktu pada procedure tersebut.

 Procedure judul1 dan procedure judul2


Kedua procedure diatas digunakan untuk membuat tampilan pembuka awal
program. Procedure ini akan dipanggil pada awal dari program utama.

 Procedure stop
Procedure ini digunakan untuk memberikan tampilan penutup pada akhir
program. Procedure ini akan dipanggil pada akhir dari program utama.

 Procedure input1 sampai Procedure input5


Procedure ini digunakan untuk memberikan batasan kepada penguna program
agar tidak salah di dalam memasukkan nilai - nilai input pada saat program
dijalankan. Procedure ini dipanggil pada program utama.

PUTU RUSDI ARIAWAN


D.Running Program
Sebelum menjalankan program, kita harus menyiapkan persamaan yang akan
dikerjakan. Misalkan saja persamaan itu sebagai berikut :

X3 + 3X2 + 5X - 10 = 0

Pada saat program dijalankan sebelum pemasukkan nilai program akan menampilkan gambar
sebagai berikut :

Proses pemasukkan datanya yaitu sebagai berikut ini :


1. Tentukan besar pangkat tertinggi dari persamaan diatas, kemudian masukkan ke dalam
program. Pada persamaan diatas pangkat tertinggi adalah 3 maka kita harus
memasukkan angka 3, seperti dibawah ini :

PUTU RUSDI ARIAWAN


2. Masukkan besar koefisien dari persamaan diatas dimulai dari pangkat terbesar hingga
pangkat terkecil secara berurutan. Seperti terlihat dibawah ini :

3. Kemudian masukkan batas awal integral dari persamaan tersebut. Misalkan saja batas
awalnya adalah 1 yang seperti terlihat pada gambar dibawah ini :

4. Masukkan batas akhir integral dari persamaan tersebut. Misalkan saja batas akhirnya
adalah 2 yang seperti terlihat pada gambar dibawah ini :

PUTU RUSDI ARIAWAN


5. Kemudian pilihlah metode yang akan digunakan untuk menyelesaikan persamaan
tersebut. Misalnya dengan metode Trapesium, kemudian pilih nomor urutan dari
metode Trapesium tersebut. Seperti terlihat pada gambar dibawah ini :

6. Jika pengguna ingin mengulang lagi mengunakan program diatas dapat langsung
menekan huruf “Y” dan bila tidak dapat langsung menekan huruf “T” dan keluar dari
program. Hasilnya langsung di dapat seperti pada gambar di bawah ini :

PUTU RUSDI ARIAWAN


E. User Interface
Dalam program ini apabila pengguna tanpa sengaja memasukkan nilai input berupa
huruf atau karakter, program akan menampilkan pesan bahwa input yang dimasukkan harus
berupa angka dan program meminta penginputan nilai kembali yang benar, seperti pada
contoh di bawah ini :

Dan apabila pengguna memasukkan nilai yang menurut program diluar dari batasan
nilai yang telah diseting sebelumnya oleh pembuat program maka program akan
menampilkan beberapa pesan berbeda yang mengharuskan pengguna memasukkan nilai
sesuai dengan pesan tersebut dan program meminta penginputan nilai kembali yang benar.
Salah satu contohnya seperti dibawah ini :

PUTU RUSDI ARIAWAN


BIODATA PENULIS

Nama : Putu Rusdi Ariawan

TTL : Denpasar. 19 April 1990

Agama : Hindu

Mahasiswa Teknik Elektro Unv. Udayana

Email : turusdi.info@gmail.com

www.facebook.com/turusdi

PUTU RUSDI ARIAWAN

You might also like