• Tidak ada hasil yang ditemukan

Contoh-Contoh Teknik Pemrograman VBA, Pascal, dan FORTRAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "Contoh-Contoh Teknik Pemrograman VBA, Pascal, dan FORTRAN"

Copied!
21
0
0

Teks penuh

(1)

Contoh-Contoh Teknik Pemrograman VBA,

Pascal, dan FORTRAN

(Epsilon Machine, Interpolasi dan Eliminasi Gauss)

Contoh

Contoh

-

-

Contoh Teknik Pemrograman VBA,

Contoh Teknik Pemrograman VBA,

Pascal, dan FORTRAN

Pascal, dan FORTRAN

(Epsilon Machine, Interpolasi dan Eliminasi Gauss)

(Epsilon Machine, Interpolasi dan Eliminasi Gauss)

Setijo Bismo

Setijo Bismo

Departemen Teknik Kimia FTUI

Departemen Teknik Kimia FTUI

06 Oktober 2015

(2)

Perlu untuk SELALU DIINGAT!

Cara-Cara Membuka Editor Macros (“VBA”)

Ö

Ingat:

+

, dapat dipakai untuk:

Run Macro

Edit Macro

Delete Macro

Options Macro

Ö

Ingat:

+

, dapat digunakan untuk:

Open Macro Editor

Edit a Macro (VBA)

(3)

Pemrograman

VBA Macros

untuk Epsilon Machine (#1):

Skematis Pemrograman dan

Skematis Pemrograman dan

keterkaitan

keterkaitan

-

-

letak

letak

(4)

Pemrograman

VBA Macros

untuk Epsilon Machine (#2):

Sub

Sub

-

-

Program: Scripting atau

Program: Scripting atau

Listing Out

Listing Out

Sub CalcMachineEpsMS(ByRef Eps4 As Single, Iter As Integer)

Eps4 = 1#

Iter = 1

Do While (Eps4 + 1#) > 1#

Eps4 = Eps4 / 2

Iter = Iter + 1

Loop

End Sub

Sub CalcMachineEpsMD(ByRef Eps8 As Double, Iter As Integer)

Eps8 = 1#

Iter = 1

Do While (Eps8 + 1#) > 1#

Eps8 = Eps8 / 2

Iter = Iter + 1

Loop

End Sub

(5)

Pemrograman

VBA Macros

untuk Epsilon Machine (#3):

Main

Main

-

-

Program: Scripting atau

Program: Scripting atau

Listing Out

Listing Out

Sub EpsMachine()

Dim Iter As Integer

Dim Eps4 As Single

Dim Eps8 As Double

' Komputasi "Machine Epsilon" dalam SINGLE PRECISION

Call CalcMachineEpsMS(Eps4, Iter)

' Hasil komputasi:

Cells(3, 3) = Eps4

Cells(3, 4) = Iter

' Komputasi "Machine Epsilon" dalam DOUBLE PRECISION

Call CalcMachineEpsMD(Eps8, Iter)

' Hasil komputasi:

Cells(4, 3) = Eps8

Cells(4, 4) = Iter

End Sub

(6)

Pemrograman PASCAL untuk Epsilon Machine (#1):

Software Dolphin Bay

(7)

Pemrograman PASCAL untuk Epsilon Machine (#2):

Varian lain dalam EZY PASCAL

Varian lain dalam EZY PASCAL

(8)

Pemrograman PASCAL untuk Epsilon Machine (#3):

(9)

Pemrograman FORTRAN untuk Epsilon Machine (#1):

Menggunakan FORTRAN

(10)

Pemrograman FORTRAN untuk Epsilon Machine (#2):

Menggunakan FORTRAN

(11)

Pemrograman FORTRAN untuk DERET TAYLOR:

Komputasi untuk rutin:

Komputasi untuk rutin:

Sin(x)

Sin(x)

C Menghitung harga sin(x) dengan DERET TAYLOR

Program Sinus

Implicit NONE

Real*8 faktor,x,sum,NUM,DEN Integer N,I,IG,J

Write(*,'(A,$)') 'INPUT harga x sebagai ''nilai argumen'' : ' Read(*,*) x

Write(*,'(A,$)') 'INPUT harga N sebagai ''jumlah suku'' : ' Read(*,*) N faktor = 1 sum = x Do I = 1,N IG = 2*I + 1 NUM = 1.0 DEN = 1.0 faktor = -1*faktor Do J = 1,IG NUM = NUM*x DEN = DEN*J EndDo

sum = sum + faktor*(NUM/DEN) EndDo

Write(*,*) 'Harga NUMERIS : ',sum Write(*,*) 'Harga ANALITIS : ',sin(x) Read(*,*)

Stop End

(12)

Pemrograman PASCAL untuk DERET TAYLOR:

Komputasi untuk rutin:

Komputasi untuk rutin:

Sin(x)

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 IG := 2*I + 1; NUM := 1.0; DEN := 1.0; faktor := -1*faktor; For J := 1 to IG do Begin NUM := NUM*x; DEN := DEN*J; End;

sum := sum + faktor*(NUM/DEN); End;

Writeln('Harga NUMERIS : ',sum); Writeln('Harga ANALITIS : ',sin(x)); Readln;

(13)

Pemrograman VBA untuk DERET TAYLOR:

Komputasi untuk rutin:

Komputasi untuk rutin:

Sin(x)

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 IG := 2*I + 1; NUM := 1.0; DEN := 1.0; faktor := -1*faktor; For J := 1 to IG do Begin NUM := NUM*x; DEN := DEN*J; End;

sum := sum + faktor*(NUM/DEN); End;

Writeln('Harga NUMERIS : ',sum); Writeln('Harga ANALITIS : ',sin(x)); Readln;

(14)

Pemrograman PASCAL untuk SPAL (Bab IV) [#1]:

Program untuk Komputasi:

Program untuk Komputasi:

Eliminasi Gauss

Eliminasi Gauss

Program Eliminasi_Gauss; Const

NofEqn = 5; Type

RVector = Array[1..NofEqn] of Real;

RMatrix = Array[1..NofEqn,1..NofEqn] of Real; { === PROGRAM UTAMA === } Var A : RMatrix; b,x : RVector; I,J,K,N : Integer; Diag,FMul,Sum : Real; Begin

{ ---> Seksi ELIMINASI GAUSS <--- }

{INPUT N => Masukkan Jumlah Persamaan} N := 3;

{AKHIR dari INPUT N}

{INPUT A => Masukkan harga komponenen MATRIKS A}

A[1,1] := 6; A[1,2] := 3; A[1,3] := 2; A[2,1] := 3; A[2,2] := 5; A[2,3] := 7; A[3,1] := 2; A[3,2] := 4; A[3,3] := 3; {AKHIR dari INPUT A}

{INPUT b => Masukkan harga komponenen VEKTOR b}

b[1] := 26; b[2] := 26; b[3] := 17;

{AKHIR dari INPUT b}

{ ---> Pembentukan MATRIKS DIAGONAL ATAS <---} For I:=1 to N-1 do Begin Diag := A[I,I]; For J:=I+1 to N do Begin FMul := A[J,I]/Diag;

For K:=I to N do A[J,K] := A[J,K] - A[I,K]*FMul; b[J] := b[J] - b[I]*FMul;

End; End;

(15)

Pemrograman PASCAL untuk SPAL (Bab IV) [#2]:

Program untuk Komputasi:

Program untuk Komputasi:

Eliminasi Gauss

Eliminasi Gauss

DIAGONAL ATAS <--- }

{ ---> Backsubstitution <--- } x[N] := b[N]/A[N,N];

For I:=N-1 downto 1 do Begin

Sum := 0.0;

For J:=N downto I+1 do Sum := Sum + A[I,J]*x[J]; x[I] := (b[I] - Sum)/A[I,I];

End;

{ ---> AKHIR dari Backsubstitution <--- } { ---> AKHIR dari Seksi Eliminasi GAUSS <--- }

Writeln('Matriks DIAGONAL ATAS dan VEKTOR RUAS KANAN:');

For I:=1 to N do Begin For J:=1 to N do write(A[I,J]:1:4,' '); writeln(b[I]:1:4); End; Writeln;

Writeln('HASIL, berupa VEKTOR JAWAB:'); For I:=1 to N do Writeln('x[',I,'] = ',x[I]:1:6); End.

(16)

Pemrograman FORTRAN untuk

Pemrograman FORTRAN untuk

Regresi Linier

Regresi Linier

[#1]

[#1]

C Regresi Persamaan POLINOMIAL order 2 menggunakan C Netode Eliminasi Gauss-Jordan untuk Solusi SPAL C (Sistem Persamaan Aljabar Linier)

C

C --- C Deklarasi Jenis dan Variabel: C --- IMPLICIT NONE CHARACTER*12 NamaFile INTEGER iarg,NDAT PARAMETER (iarg = 7) PARAMETER (NDAT = 25) INTEGER i,j,ND,neq REAL*8 A(iarg,iarg) REAL*8 b(iarg),x(iarg) REAL*8 Xi(NDAT),Yi(NDAT)

DOUBLE PRECISION SumXX(0:4),SumXY(3) CALL system('cls')

WRITE(*,7) 'Enter Nama FILE (12 karakter maks.) : ' 7 FORMAT(A,$)

READ(*,*) NamaFile

OPEN (9,FILE=NamaFile) READ(9,*) ND

(17)

Pemrograman FORTRAN untuk

Pemrograman FORTRAN untuk

Regresi Linier

Regresi Linier

[#2]

[#2]

DO I=0,4 SumXX(I) = 0.0 END DO DO I=1,3 SumXY(I) = 0.0 END DO SumXX(0) = ND DO J=1,ND READ(9,*) Xi(J),Yi(J)

SumXX(1) = SumXX(1) + Xi(J) SumXX(2) = SumXX(2) + Xi(J)**2 SumXX(3) = SumXX(3) + Xi(J)**3 SumXX(4) = SumXX(4) + Xi(J)**4 SumXY(1) = SumXY(1) + Yi(J)

SumXY(2) = SumXY(2) + Xi(J)*Yi(J) SumXY(3) = SumXY(3) + Xi(J)**2*Yi(J) END DO

C Pengolahan DATA menjadi Koefisien MATRIKS: DO I=1,3 DO J=1,3 A(I,J) = SumXX(6-I-J) END DO B(I) = SumXY(4-I) END DO

(18)

Pemrograman FORTRAN untuk

Pemrograman FORTRAN untuk

Regresi Linier

Regresi Linier

[#3]

[#3]

C Proses Pemasukan JUMLAH PERSAMAAN: C --- neq = 3

C Proses Pemanggilan Subprogram Eliminasi Gauss-Jordan: C --- CALL EGAUSS(neq,A,x,b)

C Pemaparan/penyajian Hasil Perhitungan: C --- DO i = 1,neq

WRITE(*,40) 'x(',i,') = ',x(i) ENDDO

40 FORMAT (5X,A,I1,A,F12.7) STOP

(19)

Pemrograman FORTRAN untuk

Pemrograman FORTRAN untuk

Regresi Linier

Regresi Linier

[#3]

[#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

C Proses solusi: (a) Substitusi dan Eliminasi C ---

(20)

Pemrograman FORTRAN untuk

Pemrograman FORTRAN untuk

Regresi Linier

Regresi Linier

[#3]

[#3]

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

C Proses solusi: (b) Substitusi Balik C --- x(n) = b(n)/A(n,n)

DO i = n-1,1,-1 TOP = b(i) DO k = i+1,n

TOP = TOP - A(i,k)*x(k) ENDDO

x(i) = TOP/A(i,i) ENDDO

RETURN END

(21)

Referensi

Dokumen terkait

Nilai – nilai keteladanan bagi masyarakat melalui pagelaran wayang kulit.. ini sangat di perlukan bagi masyarakat yang diambil dari tokoh

[r]

(1) Pelaksanaan upaya Peningkatan Mutu Pelayanan Kesehatan sebagaimana dimaksud dalam Pasal 6 menjadi tanggung jawab pemerintah Kota bekerjasama dengan organisasi

Perubahan yang terjadi dalam keluarga Jepang menyebabkan orang tua akan menyokong semua kebutuhan anak, meskipun anak-anaknya sudah bekerja mereka akan tetap mendapat

Pengunjung yang ingin membeli produk dapat melakukan register data pembeli untuk melakukan proses transaksi pembelian.. Pengunjung dapat langsung login data pembeli

Pembimbing Praktek Kerja Lapangan Rumah Sakit Permata Medika,4. Bapak Arief Tri

Kendala umum yang dianggap sebagai penyebab kurang berhasilnya beberapa kebijakan pembangunan perikanan tangkap di Indonesia diantaranya adalah: (1) Sebagian besar nelayan

Sehingga batasan masalah dalam penelitian ini adalah jenis retak yang diamati hanya retak pertengahan segmen, retak melintang dan retak rambut, dengan waktu pengamatan