Contoh-Contoh
Pascal, dan FORTRAN
(Epsilon Machine, Interpolasi dan Eliminasi Gauss)
Setijo Bismo
Departemen Teknik Kimia FTUI
06 Oktober 2015
Perlu untuk SELALU DIINGAT!
• Run Macro
• Edit Macro
• Delete Macro
• Options Macro
Perhatikan POSISI: A1, B1, C1, A3, B3, C3, D3, A4, B4, C4, D4
Pemrograman VBA Macros untuk Epsilon Machine (#2):
Sub EpsMachine()
Dim Iter As Integer
Dim Eps4 As Single
Dim Eps8 As Double
End Sub
Pemrograman PASCAL untuk Epsilon Machine (#1):
Program Sinus
Implicit NONE
Real*8 faktor,x,sum,NUM,DEN
Integer N,I,IG,J
Do I = 1,N
IG = 2*I + 1
NUM = 1.0
DEN = 1.0
faktor = -1*faktor Write(*,*) 'Harga NUMERIS : ',sum
Do J = 1,IG Write(*,*) 'Harga ANALITIS : ',sin(x)
NUM = NUM*x Read(*,*)
DEN = DEN*J
EndDo Stop
sum = sum + faktor*(NUM/DEN) End
EndDo
Pemrograman PASCAL untuk DERET TAYLOR:
Komputasi untuk rutin: “Sin(x)”
{ Menghitung harga sin(x) dengan DERET TAYLOR }
Program Sinus;
Var
faktor,x : Extended;
sum,NUM,DEN : Extended;
N,I,IG,J : Integer;
Begin
Write('INPUT harga x sebagai ''nilai argumen'' : '); Readln(x);
Write('INPUT harga N sebagai ''jumlah suku'' : '); Readln(N);
faktor := 1;
sum := x;
For I := 1 to N do
Begin Writeln('Harga NUMERIS : ',sum);
IG := 2*I + 1; Writeln('Harga ANALITIS : ',sin(x));
NUM := 1.0; Readln;
DEN := 1.0; End.
faktor := -1*faktor;
For J := 1 to IG do
Begin
NUM := NUM*x;
DEN := DEN*J;
End;
sum := sum + faktor*(NUM/DEN);
End;
Pemrograman VBA untuk DERET TAYLOR:
Komputasi untuk rutin: “Sin(x)”
{ Menghitung harga sin(x) dengan DERET TAYLOR }
Program Sinus;
Var
faktor,x : Extended;
sum,NUM,DEN : Extended;
N,I,IG,J : Integer;
Begin
Write('INPUT harga x sebagai ''nilai argumen'' : '); Readln(x);
Write('INPUT harga N sebagai ''jumlah suku'' : '); Readln(N);
faktor := 1;
sum := x;
For I := 1 to N do
Begin Writeln('Harga NUMERIS : ',sum);
IG := 2*I + 1; Writeln('Harga ANALITIS : ',sin(x));
NUM := 1.0; Readln;
DEN := 1.0; End.
faktor := -1*faktor;
For J := 1 to IG do
Begin
NUM := NUM*x;
DEN := DEN*J;
End;
sum := sum + faktor*(NUM/DEN);
End;
Pemrograman PASCAL untuk SPAL (Bab IV) [#1]:
Program untuk Komputasi: “Eliminasi Gauss”
{INPUT A => Masukkan harga komponenen
MATRIKS A}
Program Eliminasi_Gauss; A[1,1] := 6; A[1,2] := 3; A[1,3] := 2;
A[2,1] := 3; A[2,2] := 5; A[2,3] := 7;
Const A[3,1] := 2; A[3,2] := 4; A[3,3] := 3;
NofEqn = 5; {AKHIR dari INPUT A}
40 FORMAT (5X,A,I1,A,F12.7)
STOP
END
Pemrograman FORTRAN untuk “Regresi Linier” [#3]
SUBROUTINE EGAUSS(n,A,x,b)
C --------------------------------------------------------
C SUBROUTINE ELIMINASI GAUSS (tanpa "PIVOTING"):
C Solusi SISTEM Persamaan Aljabar Linier (SPAL) dengan
C format pers. matriks: [A].[x] = [b], dengan rincian sbb:
C n = jumlah persamaan aljabar linier (dimensi SPAL)
C A = matriks bjr sangkar nxn yang berisi koef. Pers.,
C x = vektor variabel pers. yang akan dicari harganya
C b = VRK yang berisi harga-harga persamaan tunggal |
C --------------------------------------------------------
C Deklarasi Variabel:
C -------------------
INTEGER n
REAL*8 A(7,7),b(n),x(n)
INTEGER i,j,k
REAL*8 PIVOT,MULT,TOP
PIVOT = A(j,j)
DO i = j+1,n
MULT = A(i,j)/PIVOT
DO k = j+1,n
A(i,k) = A(i,k) - MULT*A(j,k)
ENDDO
b(i) = b(i) - MULT*b(j)
ENDDO
ENDDO
RETURN
END