PEMROGRAMAN Kode atau Script atau Syntax ini ditulis dalam berbagai bahasa
TEKNIK SIPIL Tujuan dari pemrograman adalah untuk memuat suatu susunan code
yang dapat melakukan suatu perhitungan atau 'pekerjaan' sesuai
dengan keinginan si pemrogram. Untuk dapat melakukan pemrograman,
diperlukan keterampilan dalam algoritma, logika, bahasa pemrograman,
dan di banyak kasus, pengetahuan-pengetahuan lain seperti matematika.
1
14/08/2013 - IrDarmadiMM
2
14/08/2013 - IrDarmadiMM
KONSEP
Start Quit
Methods Close Save
Change Activate
On_Start WorkbookBeforeClose
Events Before_Close BeforeSave
After_Change Activate
3
14/08/2013 - IrDarmadiMM
• Menu
Dialog box
Toolbars
Drag-and-drop
Keyboard shortcuts ( copy=Ctrl-C, paste=Ctrl-V)
IrDarmadiMM © IrDarmadiMM ©
Outline
Formatting (bold, Italics,number etc)
Automatic subtotal
Formulas (stat, financ, math, etc)
Scenario management
Names Range
Analysis toolpak
Functions
Pivot table
Shapes
Charts Auditing
Macros Solver
etc Addins
IrDarmadiMM ©
IrDarmadiMM ©
4
14/08/2013 - IrDarmadiMM
Referencing other sheets/workbooks Keduanya menghasilkan nilai yang sama saja, baris 4 kolom-A
=[data.xls]Sheet2[A2]+1 IrDarmadiMM ©
Contoh
5
14/08/2013 - IrDarmadiMM
Mendukung aplikasi internet dan intranet • Untuk menulis /edit program VBA digunakan IDE
IrDarmadiMM ©
IrDarmadiMM ©
6
14/08/2013 - IrDarmadiMM
a. Command macros
Object Noun Part of the application mengotomasi prosedur-prosedur, fungsi- fungsi
yang ada (built-in)dalam aplikasi, memformat,
menyimpan, dsb.
Property Adjective Attribute
b. User-defined function (function procedure)
program yang berisi rumus dan perintah yang
Action to do kita susun sendiri .
Method Verb
something
c. Property procedure menunjukkan dan/atau
mengubah properti dari suatu object
IrDarmadiMM @
7
14/08/2013 - IrDarmadiMM
IrDarmadiMM © IrDarmadiMM ©
Cells(1, 2) = Tname
Cells(1, 3) = Talamat
Cells(1, 4) = Tpone
8
14/08/2013 - IrDarmadiMM
Class modules (.CLS ) adalah modul yang spesifik dan secara umum
kelas mewakili kelompok objek yang serupa. Misalnya seluruh
mahasiswa di suatu kampus adalah objek. Kelas nya adalah
Mahasiswa (contoh: CMahasiswa.cls atau Class1.cls). Atau bahkan
kita bisa membuat Class khusus tentang penyelesain fungsi kuadrat,
jadi dalam MODULE kita tinggal panggil saja Class-nya
9
14/08/2013 - IrDarmadiMM
OK
End sub
IrDarmadiMM © IrDarmadiMM ©
10
14/08/2013 - IrDarmadiMM
Function Procedures
Membuat fungsi
Function akar(A, B, C)
Membuat fungsi
If A <> 0 Then
Contoh:
diskrim = B ^ 2 - 4 * A * C
Menghitung sisi miring segitiga If diskrim > 0 Then
Rumus Pythagoras c 2 =(a2 + b 2) akar = "dua akar riel"
Maka sisimiring = sqr(a 2 + b 2)
ElseIf diskrim = 0 Then
Buka VBA excel , lalu buat program berikut: akar = -B / (2 * A)
Function sisimiring(x , y) ' nama fungsi Else
sisimiring = sqr(x^ 2 + y^ 2) ' nilai hasil akar = "akarnya imaginer"
End Function End If
Else
Pemakaian:
akar = "bukan persamaan kuadrat"
isikan pada sel dengan nama formula sisimiring End If
misal =sisimiring(3, 4) akan menghasilkan 5
End Function
IrDarmadiMM © IrDarmadiMM ©
11
14/08/2013 - IrDarmadiMM
Prosedur adalah unit program dalam VBA yang merupakan blok kode
dalam satu modul Sub Gc()
Struktur sebuah prosedur ‘ Lines beginning with ‘ are comments / komentar
Sub NamaProsedur ( argument, argumen2,...) ' Gc Macro
...... [pernyataan /statement VBA] ' Puts gc in active cell & units in adjacent cell to right
End Sub
' Keyboard Shortcut: Ctrl+g
'
CONTOH : Perhitungan bunga
ActiveCell.FormulaR1C1 = "32.174"
Sub InputDataPinjaman() ActiveCell.Offset(0, 1).Range("A1").Select
Range("bunga") = 0.08 ActiveCell.FormulaR1C1 = "ft-lbm/lbf-s^2"
Range("lama") = 10 End Sub
Range("pinjaman") = 100000000
Range("bayar") =
“=PMT(bunga/12,lama*12,pinjaman)"
End sub This was a recorded macro – macros are “Sub” procedures.
RUNNING Procedure : Tools Macro pilih nama macro
IrDarmadiMM ©
12
14/08/2013 - IrDarmadiMM
Tekan Open
IrDarmadiMM ©
Bagian 2
Variabel dan konstanta
IrDarmadiMM ©
IrDarma
diMM ©
13
14/08/2013 - IrDarmadiMM
Data types
Integer 2 byte integer JENIS DATA
Decimal 16-byte(128-bit) (+/-7.9228162514264337593543950335E+28)
Long 4 byte integer +/-9,223,372,036,854,775,808 Data types
Single 4 byte floating point +/ -3.4028235E+38 Integer 2 byte integer
Double 8 byte floating point +/ -4.94065645841246544E-324 Long 4 byte integer
Currency 8 byte real Rp, US$ Single 4 byte floating point
String upto 64K characters 0 through 65535 huruf Double 8 byte floating point
Byte 1 byte, angka dari 0 sampai 255
Currency 8 byte real
Boolean 2 byte true (1) or false (0)
String upto 64K characters
Date 8 bytes 12dec2014
Byte 1 byte, angka dari 0 sampai 255
Object 4 bytes – an object reference
Boolean 2 byte true or false
Variant 16 bytes + 1 byte / character
Date 8 bytes
Byte atau 2-bit adalah satuan memory komputer dalam menyimpan data Object 4 bytes – an object reference
Variant 16 bytes + 1 byte / character
AE6382
14
14/08/2013 - IrDarmadiMM
Declare by Dim
Dim amount As Double
Dim year As Integer 02 - Lingkup/scope variabel
Dim name As String
Other data types: Boolean, Byte, Currency, Date
Default (no type) is Variant Dalam VBA lingkup variabel dapat
Kalau diberi akhiran dengan tanda ini , berarti datanya berada pada posisi 3 hal sebagai
% - integer & - long integer ! – single
# - double @ currency $ - string berikut ini :
CONTOH : anIntegerValue% =3, aString$ = "hallo" Lingkup prosedur
Can modify with scope (outside procedure)
Private Iam As Integer Lingkup modul
Public billsPaid As Currency Lingkup publik
Make values permanent
Static yourName As String
Multiple variables
Private test, amount, J As Integer
IrDarmadiMM ©
15
14/08/2013 - IrDarmadiMM
IrDarmadiMM ©
16
14/08/2013 - IrDarmadiMM
17
14/08/2013 - IrDarmadiMM
Caranya: CONTOH :
Dengan mendeklarasikan di bagian atas modul Dim katamu as string ‘ 4 bytes
- Option Explicit
Dim noMhs As Integer ‘ 2 bytes
Pilih ToolsOption modul general,
pilih/contreng Require Variable Declaration Dim Jawaban as Boolean
rDarmadiMM © rDarmadiMM ©
Data types
Integer 2 byte integer +/- 32727
Decimal 16-byte(128-bit) (+/-7.9228162514264337593543950335E+28) Kita dapat menyatakan jenis data default
Long 4 byte integer +/- 9,223,372,036,854,775,808 Def(jenis data) [karakter] adalah default jenis data
Single 4 byte floating point +/- 3.4028235E+38
Double 8 byte floating point +/- 4.94065645841246544E-324 Contoh:
Currency 8 byte real Rp, US$ Deflnt I-N , Semua Variabel yang dimulai/Awal dengan
String upto 64K characters 0 through 65535 huruf
huruf besar I s.d N adalah Integer
Byte 1 byte, angka dari 0 sampai 255
Boolean 2 byte true (1) or false (0)
Date 8 bytes 12dec2014 Keywords:
Object 4 bytes – an object reference - DefBool DefDbl
Variant 16 bytes + 1 byte / character
- DefByte DefDate
Byte atau 2-bit adalah satuan memory komputer dalam menyimpan data - Deflnt DefStr
- DefObj DefSng
IrDarmadiMM ©
18
14/08/2013 - IrDarmadiMM
19
14/08/2013 - IrDarmadiMM
format
Ekspresi VBA
IrDarmadiMM @ IrDarmadiMM @
Operator harus sesuai dengan jenis data Intrinsic Functions: Abs, Cos, Sin, Tan,
Atn (arc tangent), Exp, Log (natural),
contoh:
energY = mass * (speedOfLight ^ 2)
Sgn, Sqr (square root), Rnd (random
number)
IrDarmadiMM @
20
14/08/2013 - IrDarmadiMM
IrDarmadiMM ©
IrDarmadiMM ©
Format
• Untuk memformat angka /string yang
muncul bisa digunakan perintah
Format(expresi, format)
Contoh:
Format(Pemasukan Pengeluaran," Bagian 4
currencyFormat(Now, " medium time")
Format(NoMhs, "00000/TS") Bekerja dengan Objects
IrDarmadiMM © IrDarmadiMM ©
21
14/08/2013 - IrDarmadiMM
IrDarmadiMM @
IrDarmadiMM ©
IrDarmadiMM © IrDarmadiMM ©
22
14/08/2013 - IrDarmadiMM
IrDarmadiMM @
IrDarmadiMM ©
23
14/08/2013 - IrDarmadiMM
Contoh:
Events
Methods
Workbooks(" Budget.xls").
CloseActiveSheet.Picture(1).Copy Template
Code
IrDarmadiMM @ IrDarmadiMM ©
IrDarmadiMM @
IrDarmadiMM ©
24
14/08/2013 - IrDarmadiMM
Bekerja dengan properties dan methods yang banyak (1/2) Bekerja dengan properties dan methods
yang banyak (2/2)
SubFormatRange()
Worksheets(" Sheet1").Range("B2:B5").Style = "Currency”
Contoh yang lebih baik lagi:
Worksheets(" Sheet1").Range("B2:B5").WrapText= True
Sub FormatRange3()
Worksheets(" Sheet1").Range("B2:B5").Font.Size = 16
Worksheets(" Sheet1").Range("B2:B5").Font.Bold = True With Worksheets(" Sheet1" ).Range(" B2:B5" )
Worksheets(" Sheet1").Range("B2:B5").Font.Color = RGB(255,0, 0) Style = "Currency"
Worksheets(" Sheet1").Range("B2:B5").Font.Name = Arial WrapText= True
End sub With .Font
Size = 16
AKAN lebih baik jika ditulis sbb:
Sub FormatRange2() Bold = True
With Worksheets(" Sheet1").Range(" B2:B5" ) Color = RGB(255, 0, 0)
Style = "Currency"
WrapText= True Name ="Arial"
Font.Size = 16
Font.Bold = True End With
Font.Color = RGB(255, 0, 0 End With
Font.Name ="Arial“
End With End Sub
End Sub
IrDarmadiMM @
IrDarmadiMM @
Object aplikasi
aktif
IrDarmadiMM ©
25
14/08/2013 - IrDarmadiMM
IrDarmadiMM ©
IrDarmadiMM ©
IrDarmadiMM ©
26
14/08/2013 - IrDarmadiMM
Logical statements
The If Then Else statement is the basic logic test
If a>10 Then
…
End If
If a>10 Then
…
Else
…
End If
If a>10 Then
…
ElseIf a<0 Then
…
Else
…
End If
SELECT CASE
Logical statements
The Select statement can be used to replace a multi-way if statement
27
14/08/2013 - IrDarmadiMM
28
14/08/2013 - IrDarmadiMM
ON ERROR GOTO
Keputusan ganda
Dealing with runtime errors
The On Error statement will trap errors
…
On Error GoTo label
The error name is a label in the code
…
On Error GoTo check
…
check:
In the … code a Resume statement
error will cause the statement that
caused the error to be executed again
In the error code a Resume Next statement will restart execution on the
statement after the one that caused the error
IrDarmadiMM ©
Fungsi Choose
Sintaks: Choose(index , value1, value2, ...)
Function NamaHari(noHari As Integer) As String
NamaHari = Choose(noHari, " Ahad" , " Senin" , "
Selasa" , " Rabu" , " Kamis" ,"Jumat",_ " Sabtu" )
End Function
IrDarmadiMM © IrDarmadiMM @
29
14/08/2013 - IrDarmadiMM
Sub ErrorHandler1()
For jCounter = 1 To 20
'Protect
VBAProject.Sheet1.Cells(jCounter, 2).Value = jCounter
Next jCounter
Exit Sub
ErrorHandler:
'If Err.Number = 1004 Then
MsgBox Err.Number & " : " & Err.Description
Resume Next
End Sub
30