Dalam kuliah ini, peserta akan diarahkan untuk melakukan latihan-latihan pemrograman yang
berkenaan dengan solusi suatu PANLT (Persamaan Aljabar Non-Linier Tunggal) menggunakan
bahasa-bahasa pemrograman FORTRAN, VBA (Visual Basic dalam MS-Excel), dan Pascal.
PANLT yang akan digunakan di sini adalah:
y ( x) x 3 x 7 0
dengan turunan fungsi:
dy
y ( x) 3 x2 1
dx
A. Pemrograman FORTRAN
Listing (coding) dalam bahasa FORTRAN untuk solusi PANLT di atas dengan Metode
Newton-Raphson adalah sbb:
program newton_raphson
implicit none
integer i
real error,xo,x1,f,fd
i=1
error = 1e-4
10 x1=xo-(f(xo)/fd(xo))
if (abs((x1-xo)/x1)<error) then
write(*,*) "root is ", x1 ,"no. of iteration=", i
else
xo=x1
i=i+1
goto 10
endif
end
Cobalah buat (coding) program di atas ke dalam Silverfrost dan lakukan ekseskusi untuk harga-
harga awal: x0 2 dan x0 2 !
B. Pemrograman VBA
Listing (coding) dalam bahasa VBA untuk solusi PANLT di atas dengan Metode Newton-
Raphson adalah sbb:
xold = Cells(6, 4)
i = 1
error = 0.0001
10 x1 = x0 - f(x0) / fd(x0)
If Abs((x1 - x0) / x1) < error Then
Cells(10, 4) = x1
Cells(11, 4) = i
Else
x0 = x1
i = i + 1
GoTo 10
End If
End Sub
Cobalah buat (coding) program di atas ke dalam VBA dan lakukan ekseskusi untuk harga-
harga awal: x0 2 dan x0 2 !
Workspace dalam MS-Excel dimaksud adalah sbb:
C. Pemrograman PASCAL
Listing (coding) dalam bahasa Ezy Pascal untuk solusi PANLT di atas dengan Metode
Newton-Raphson adalah sbb:
program newton_raphson;
Var
i: integer;
error,xo,x1: real; {boleh juga: EXTENDED}
Label
10;
Begin
write('x0 = ');
readln(xo);
i := 1;
error := 1e-4;
10: x1:=xo-(f(xo)/fd(xo));
if (abs((x1-xo)/x1)<error) then
begin
writeln('root is ', x1 );
writeln('no. of iteration= ', i)
end
else
begin
xo := x1;
i := i + 1;
goto 10;
end;
End.
Cobalah buat (coding) juga program di atas ke dalam Ezy Pascal dan lakukan ekseskusi untuk
harga-harga awal: x0 2 dan x0 2 !
TUGAS..!
Buatlah program-program analog untuk Metode Secant, baik dalam FORTRAN, VBA, ataupun
Pascal..!