You are on page 1of 8

Ardha Bariq Fardiansyah

1406553064
Teknik Kimia

PR 2 : Pemrograman VBA pada MS-Excel


PR :
"Program VBA-Excel"

2
11

(Eliminasi Gauss)

1
-4

3
-3

3
45

VB Script :
Dim Am(10, 10), xs(10), bv(10) As Double
Sub ElimGauss(ByRef A(), x(), b() As Double, n As Integer)
'Dim A(10, 10) As Double
'Dim x(10), b(10) As Double
Dim i, j, k As Integer
Dim pivot, mult, top As Double
'SUBROUTINE Eliminasi Gauss
'Begin the subprogram
For j = 1 To n - 1
' Begin [outer For..Next loop]
' Begin the "Triangularisation"
pivot = A(j, j)
For i = j + 1 To n
' Begin [middle For..Next loop]
mult = A(i, j) / pivot
For k = j + 1 To n
A(i, k) = A(i, k) - mult * A(j, k)
Next
b(i) = b(i) - mult * b(j)
Next
' End [middle For..Next loop]
Next
' End [outer For..Next loop]
' End of Triangularisation
' *--- Substitusi Balik ---*
x(n) = b(n) / A(n, n)
For i = n - 1 To 1 Step -1
top = b(i)
For k = i + 1 To n
top = top - A(i, k) * x(k)
Next
x(i) = top / A(i, i)
Next
End Sub
Sub SPAL2P()
Dim i, j, k, neq As Integer
'
' INPUT "element" dari matriks "A":
neq = 2
For i = 1 To neq
For j = 1 To neq
Am(i, j) = Cells(i + 4, 1 + j)
Next
Next
' INPUT "element" dari vektor "b":
For i = 1 To neq
bv(i) = Cells(i + 4, 8)
Next
Call ElimGauss(Am, xs, bv, 2)
' Hasil dan Tampilan ke Excel:
For i = 1 To neq
Cells(i + 4, 5) = xs(i)
Next
End Sub

Langkah-langkah :
1. Klik Alt+F8 untuk membuka jendela Macro, kemudian klik option Edit, maka akan
masuk ke jendela Visual Basic for Applications (VBA).

2. Setelah muncul jendela VBA, kemudia kita lakukan copy-paste VB Script yang telah
diberikan pada lembar soal.

3. Setelah itu, kita klik file


Close and Return to Microsoft Excel atau klik Alt+Q
4. Setelah kembali ke jendela kerja Microsoft Excel, kita klik Alt+F8 lagi untuk
menjalankan program VBA dengan mengklik option Run.

Tujuan dari menjalankan (run) program VBA dari VB Script yang telah kita tuliskan
pada jendela Macro yaitu untuk mendapatkan nilai x(a, b) pada matriks tersebut.

5. Setelah mengklik option Run, maka nilai a dan b pada matriks x akan muncul nilainya.

Nilai A = 3
NIlai B = -3

Perbandingan Sintaks VBA, Fortran, dan Pascal :


VB Script :
Dim Am(10, 10), xs(10), bv(10) As Double
Sub ElimGauss(ByRef A(), x(), b() As Double, n As Integer)
'Dim A(10, 10) As Double
'Dim x(10), b(10) As Double
Dim i, j, k As Integer
Dim pivot, mult, top As Double
'SUBROUTINE Eliminasi Gauss
'Begin the subprogram
For j = 1 To n - 1
' Begin [outer For..Next loop]
' Begin the "Triangularisation"
pivot = A(j, j)
For i = j + 1 To n
' Begin [middle For..Next loop]
mult = A(i, j) / pivot
For k = j + 1 To n
A(i, k) = A(i, k) - mult * A(j, k)
Next
b(i) = b(i) - mult * b(j)
Next
' End [middle For..Next loop]
Next
' End [outer For..Next loop]
' End of Triangularisation
' *--- Substitusi Balik ---*
x(n) = b(n) / A(n, n)

For i = n - 1 To 1 Step -1
top = b(i)
For k = i + 1 To n
top = top - A(i, k) * x(k)
Next
x(i) = top / A(i, i)
Next
End Sub
Sub SPAL2P()
Dim i, j, k, neq As Integer
'
' INPUT "element" dari matriks "A":
neq = 2
For i = 1 To neq
For j = 1 To neq
Am(i, j) = Cells(i + 4, 1 + j)
Next
Next
' INPUT "element" dari vektor "b":
For i = 1 To neq
bv(i) = Cells(i + 4, 8)
Next
Call ElimGauss(Am, xs, bv, 2)
' Hasil dan Tampilan ke Excel:
For i = 1 To neq
Cells(i + 4, 5) = xs(i)
Next
End Sub

Fortran :
Struktur dasar penulisan program FORTRAN 77, secara ringkas, mengikuti sistematika penulisan berikut:

Definisi dan atau Deklarasi PARAMETER dan VARIABEL


Program Utama (Main Program)
Sub-Program SUBROUTINE
Sub-Program FUNCTION.

Contoh Program Fortran :

Pascal :
Penulisan program pada Turbo PASCAL secara ringkas dapat dijelaskan sebagai berikut:

Definisi mode masukan dan atau keluaran sistem berkas (I/O file systems, termasuk juga
layar monitor dan keyboard), menggunakan predefinisi kata uses
Predefinisi, definisi dan deklarasi KONSTANTA dan VARIABEL, yang dapat belaku
untuk Program Utama sekaligus dapat juga berlaku untuk Sub-Program (Procedure
atau Function)
Program Utama (Main Program), dimulai dengan predefinisi kata begin dan diakhiri
dengan end.
Sub-Program PROCEDURE, yang dimulai dengan begin dan diakhiri dengan end;Di
antara kata PROCEDURE dan begin tersebut di atas, dapat juga diisi dengan definisi
dan atau deklarasi KONSTANTA dan atau VARIABEL yang baru, namun dalam
halini hanya berlaku lokal di dalam sub-program PROCEDURE tersebut.
Sub-Program FUNCTION, yang juga harus dimulai dengan begin dan diakhiri dengan
end;. Di antara FUNCTION dan begin dapat diisi dengan definisi/deklarasi
KONSTANTA/VARIABEL yang baru, namun dalam hal ini juga hanya berlaku lokal
Setiap baris pernyatan (termasuk predefinisi, definisi dan deklarasi) harus ditutup
dengan tanda baca ; (titik koma), kecuali yang berada tepat sebelum kata end; atau
end..

You might also like