Anda di halaman 1dari 30

14/08/2013 - IrDarmadiMM

PEMROGRAMAN KOMPUTER (PM)


PM= adalah proses menulis, menguji dan memperbaiki (debug), dan
memelihara kode yang membangun sebuah program komputer.

PEMROGRAMAN Kode atau Script atau Syntax ini ditulis dalam berbagai bahasa

KOMPUTER pemrograman, sehingga memungkinkan manusia dapat


berkomunikasi dengan komputer

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.

Pemrograman adalah sebuah seni dalam menggunakan satu atau lebih


algoritma yang saling berhubungan dengan menggunakan sebuah
IrDarmadiMM ©
bahasa pemrograman tertentu sehingga menjadi sebuah program.
IrDarmadiMM ©

BAH AS A PEM ROGRAM AN BAH AS A PEM ROGRAM AN


Bahasa pemrograman adalah suatu perintah yang dibuat manusia Beberapa bahasa pemrograman pada saat ini adalah:
untuk membuat komputer menjadi memiliki fungsi tertentu. Bahasa Assembly (C atau C++ atau C#) Basic
pemrograman ini adalah suatu susunan aturan penulisan (sintaks) Cobol HTML
yang membentuk kode kode yang kemudian akan diterjemahkan oleh Java Fortran
program kompiler menjadi bahasa rakitan (assembly) dan terus diolah Clipper Pascal
hingga dimengerti oleh mesin komputer (bahasa mesin=mati/hidup/0/1) Visual Basic Dbase
Foxpro dan masih banyak lagi yg lain
Bahasa pemrograman yang berbeda mendukung gaya pemrograman
yang berbeda (disebut paradigma pemrograman). Pilihan bahasa yang
digunakan adalah tunduk pada banyak pertimbangan, seperti kebijakan Dalam kuliah Teknik Sipil Jayabaya ini akan digunakan
perusahaan, kesesuaian untuk tugas, ketersediaan pihak ketiga paket, bahasa pemrograman VISUAL BASIC
atau keinginan individunya. Idealnya, bahasa pemrograman dipilih yang
paling cocok untuk tugas yang dihadapi akan dipilih. Trade-off dari ideal Dalam aplikasinya nanti menngunakan VBE atau VBA, yaitu
ini melibatkan cukup menemukan programmer yang tahu bahasa untuk
membangun sebuah tim, ketersediaan compiler untuk bahasa, dan
Visual Basic Editor atau Visual Basic Aplication, yang pada
efisiensi dengan program-program yang ditulis dalam bahasa tertentu prinsipnya tidak beda jauh dengan bahasa Visual Basic
untuk mengeksekusi program.
IrDarmadiMM © IrDarmadiMM ©

1
14/08/2013 - IrDarmadiMM

BAH AS A PEM ROGRAM AN EXCEL OBJECT


Keuntungan Penggunaan Visual Basic
Pertama, waktu pembelajaran dan pengembangan yang lebih Dalam graphical user interface (GUI),
singkat/mudah dibanding dengan bahasa pemrograman lain, seperti aplikasi dan bagian-bagiannya dikenal dengan
C/C++, Delphi atau PowerBuilder sekalipun. Meskipun pernyataan ini
masih bisa diperdebatkan. Tetapi yang jelas, VB merupakan bahasa
sebutan OBJECT
pemrograman yang sangat populer dan banyak penggunanya. Cukup
banyak literatur, kursus, situs internet ataupun komunitas yang siap OBJECT dalam excel meliputi sbb:
membantu. Yang perlu disiapkan hanya tinggal kemauan dan kerja keras, a. File excel itu sendiri
dan pengaturan waktu yang baik untuk mempelajarinya.
b. Workbook atau keseluruahan file excel
Kedua, Visual Basic for Application (VBA) digunakan oleh keluarga yang dibuka
Microsoft Office (Word, Excel, Access, PowerPoint, Project). VBA c. Sheet / worksheet
dikembangkan dari aplikasi yang sebelumnya dikenal dengan istilah d. Ranga yang ada di worksheet
macro, otomasi langkah-langkah berulang. Dengan adanya VBA, e. Cells yang ada di worksheet
kemampuan macro dapat ditingkatkan menjadi seperti bahasa
pemrograman lain. Bagi yang ingin mengoptimalkan kemampuan Autocad
f. Listbook yang ada di Developer
pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. g. Chartsheet dalam Worksheet
IrDarmadiMM ©
h. Dan sebagainya IrDarmadiMM ©

Object utama dalam EXCEL


 Workbooks merupakan
"file excel yang telah dibuka“ yang berisi:
- Worksheets
- Chart sheets
- Macro sheets (2007xlsx.xlm , 2003xls.xla)
- Dialog sheets
 Worksheets merupakan lembar kerja,
standar excel ada 3 buah sheets yang terbuka
 Worksheet terdiri dari
- 256 kolom dan
- 65,536 baris (16,777,216 sel !!!!!)

ATAU setara dengan 36,000 halaman cetak A4 !!!!


IrDarmadiMM ©

2
14/08/2013 - IrDarmadiMM

- VBA Object Based Programming Language

 KONSEP

TOOL Menu BAR TOOL BAR


OBJECT IN EXCEL
object-oriented programming (1)
Automobile Excel
Engine Application
Objects Door Workbook
Classes Wheels Worksheets
( Collections ) ( Collections )
Model Version
Properties Color Sheets
Price Visible

Start Quit
Methods Close Save
Change Activate
On_Start WorkbookBeforeClose
Events Before_Close BeforeSave
After_Change Activate

chartsheet dialogsheet Property ProjectExplorer VB Editor / VBA


worksheet
IrDarmadiMM ©

3
14/08/2013 - IrDarmadiMM

Excel GUI (graphical user interface)

 Antarmuka excel bisa dilakukan


dengan beberapa cara:

• Menu

 Dialog box
 Toolbars

 Drag-and-drop
 Keyboard shortcuts ( copy=Ctrl-C, paste=Ctrl-V)

IrDarmadiMM © IrDarmadiMM ©

Beberapa kemampuan excel Analysis tools

 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

RANGE Formulae in Excel (R1C1 style - Row,Column)


Range(A1:B10) artinya kita sorot/blok R1C1 = absolute address – it does not change under copy / paste
dari cell A1 sampai dengan cell B10
R[1]C[1] = relative address – it does change under copy /paste
Range(“A” & 3) artinya kita pilih
kolom A dan baris 3 And we can use mixed mode:
Referensi dengan nama :
R1C[1] – R1 is absolute, C[1] is relative
Range(A1,B10) insert - name create "

nama=badu In VBA, can use either or both A1 and R1C1 styles


artinya kita pilih cell A1 sampai cell B10
dan diberi identifikas sebagai “badu” A1 style tends to be absolute

CELLS A1 style A1 style used with the “Range” property


R elative A1 Absolute $A$1 Range(“A4”)
Row absolute A$1 Column absolute $A1 So, we can refer to individual cells with the “Cells” Property,
Cells(“A” & 3) artinya kita pilih kolom A dan baris 3 which uses an R1C1 style
Cells(2,3) artinya kita pilih kolom 2(B) dan baris 3 Cells(4,1)

Referencing other sheets/workbooks Keduanya menghasilkan nilai yang sama saja, baris 4 kolom-A
=[data.xls]Sheet2[A2]+1 IrDarmadiMM ©

Contoh

Private Sub CommandButton1_Click()


Dim x As Integer
Dim y As Integer
Dim z As Integer
Dim result As Integer
x = Cells(1, 2).Value Bagian 1
y = Cells(2, 2).Value
z = Cells(3, 2).Value Dasar- dasar pemrograman VBA
result = x * y + z
Cells(4, 2).Value = result
End Sub
IrDarmadiMM ©

5
14/08/2013 - IrDarmadiMM

Apa yang dibicarakan? 01.Apa dan kenapa VBA


 01. Mengenal VBA (apa dan kenapa)
 02. IDE Apa VBA ??????
 03. Pemrograman berbasis object  VBA merupakan bahasa pemrograman bagi
semua aplikasi Microsoft Office (Excel, Word,
 04. Cara membuat program VBA Access, Powerpoint) dan beberapa yang lain
(Outlook, Visio, AutoCAD, Map-Info, dsb.)
 05. Makro dan Makro Developer
 06. Editor program  Dapat berfungsi sebagai macro atau
bahasa pemrograman
 07. Menjalankan program
 08. Membuat fungsi sendiri  Merupakan bahasa program beorientasi
object, semua object office dapat dengan
 09. Membuat prosedur mudah dimanipulasi dengan VBA
 10. Mengatur editor
 Belajar satu bahasa dapat di-aplikasikan
 11. Melindungi program dalam banyak aplikasi Windows
IrDarmadiMM © IrDarmadiMM ©

Kenapa VBA????? 02. IDE –– integrated development environment

 Mendukung aplikasi internet dan intranet • Untuk menulis /edit program VBA digunakan IDE

 Mendukung ActiveX controls Module window


Object Procedure
list list
 Code editor dengan bantuan yang
lengkap dan juga ada debugger
Project
 Form building tools explorer
 Object browser
 Dll yang memudahkan pembuatan Program Properties
window

IrDarmadiMM ©

IrDarmadiMM ©

6
14/08/2013 - IrDarmadiMM

03. Prinsip prmrograman berbasis object OBYEK, PROPERTI,EVENT DAN METHOD


 Object
 Workbook, worksheet, chart, cell, dsb. 1. Objek
Objek dapat diartikan kepada sebuah benda dalam hal ini anggap
saja objek ada lah textbox, label dan comman button.
 Properties
 Setiap object memiliki properties: 2. Properties
color, font, italic, dsb. Properties adalah sesuatu yang dipunyai oleh objek.
Mis: textbox mempunyai property “nama” atau property “text”
 Method & procedure
 Cara/ perintah untuk melakukan sesuatu: 3. Event
pindah worksheet, pindah baris, Event adalah suatu kejadian terhadap objek pada saat tertentu.
pindah kolom dsb. Misal: Objek command button dapat menerima event klik pada saat
pemakai software kita nanti mengklik nya.
 Events
 Setiap peristiwa yang dilakukan oleh object: 4. Method
Click mouse, enter, dsb. Method adalah sesuatu yang dapat dilakukan oleh objek.
Misal: Objek combo dapat menambahkan Item nama-nama hari
IrDarmadiMM © dengan method AddItem contoh: combo1.AddItem “Senin” dst.

04. Cara membuat program VBA (programming)


Visual Basic Aplications
 Program dalam VBA disebut prosedur (dan/atau function)

Objects / Properties / Methods  Tiga jenis prosedur

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

MEMANFAATKAN MENU DEVELOPER

Menu File Options Customize Ribbons dan centrang


bagian developer
Ada 2(dua) cara dalam mebuat program yaitu :

1. Dengan merekam macro (macro recording)


Tools  Macro  Record Macro
2. Dengan menulis program langsung
a. melalui memanfaatkan Developer - sheet

b. buka IDE/VB Editor - Module

IrDarmadiMM © IrDarmadiMM ©

VISUAL BASIC EDITOR... USER FORM,MODULE DAN CODE


Code adalah kumpulan perintah-perintah yang digunakan
untuk menjalankan keinginan pembuat perogram
Module adalah tempat menulis CODE yang telah kita
siapkan untuk menjadi program (*.bas)
User form adalah form yang dibentuk untuk menampilkan
running CODE yang telah dibuat (*.frm)
CONTOH CODE MENULISKAN NAMA, ALAMAT DAN
NO.TELP KE WORKSHEET “Data”
Sheets("Data").Activate
Tname = "Paijo"
Talamat = "Jl. Embuh Raeruh"
Tpone = "081280186063"

Cells(1, 2) = Tname
Cells(1, 3) = Talamat
Cells(1, 4) = Tpone

8
14/08/2013 - IrDarmadiMM

Contoh USER FORM Modul dan Class Modul


Standard Modules

Standard modules (.BAS ) umumnya berfungsi untuk menaruh


variabel global yang bisa diakses sama semua form dari project
kita,juga bisa kita buat Prosedur & Function yang bisa diakses sama
semua form.

Class Modules (Kelas)

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

OBJECT, PROPERTI,EVENT DAN METHOD 05 Membuat dan menjalankan macro


1. Objek Tools - macro record macro
Objek dapat diartikan kepada sebuah benda dalam hal ini anggap
saja objek ada lah textbox, label dan comman button. 1- Lakukan prosedur- prosedur dan perubahan
properties pada worksheet , mis copy, isi sel, dll
2. Properties
Properties adalah sesuatu yang dipunyai oleh objek. 2- Stop macro recording
Mis: textbox mempunyai property “nama” atau property “text”
3- Edit macro untuk memberbaiki dan
3. Event mengubah hasil rekaman
Event adalah suatu kejadian terhadap objek pada saat tertentu.
Misal: Objek command button dapat menerima event klik pada saat 4. Menjalankan:
pemakai software kita nanti mengklik nya.  Dengan shortcut, atau
4. Method  T ools -  m a c r o  r un “pilih nam a m acr o”
Method adalah sesuatu yang dapat dilakukan oleh objek.
Misal: Objek combo dapat menambahkan Item nama-nama hari
dengan method AddItem contoh: combo1.AddItem “Senin” dst.

9
14/08/2013 - IrDarmadiMM

The Macro Language


First Step to VBA : Macros

 Record Macro  Operators: +, -, *, /, ^, Mod


 Record all the steps you conduct and write them  Comparison: =, <, >, <=, >=, <>
in VBA code
 Logical Operators: And, Eq, Not, Or, Xor
 Intrinsic Functions: Abs, Cos, Sin, Tan,
Atn (arc tangent), Exp, Log (natural),
Sgn, Sqr (square root), Rnd (random
number)
Jika macros status disabled
ketika start Excel, ubah
security level ke medium

07. Menjalankan program


06. Menulis / Editor program  Program dapat dijalankan dengan dua cara yaitu :

1 - T o o l s -  m a c r o  visual basic editor atau  CARA-1


Click tombol VBE  Tools - Macro View 
2 - Cara Pindah dari VBE ke aplikasi tekan alt+F11 Pilih program vba yang mau dijalankan

3 - Tuliskan program (function atau procedure)


 CARA-2
 Tools - Macro View  pilih option run
 Sub procedure
 Misalnya ctrl-a, maka program dapat dijalankan
dengan menekan tombol Ctrl-diikuti dgn huruf-a
......... isi dengan Baris program / CODE-CODE

 OK

 End sub

IrDarmadiMM © IrDarmadiMM ©

10
14/08/2013 - IrDarmadiMM

Function Procedures

08. Membuat Fungsi Sendiri


Function Grade (HADIR,TUGAS,UTS,UAS) as String
 Fungsi adalah rumus yang mengolah argumen
dan mengembalikan hasil Sum = HADIR+TUGAS+UTS+UAS
 Struktur fungsi If sum >= 80 then
Function NamaFungsi(argumen1, argumen2, --) _ Grade = “A”
[Pernyataan/statement VBA] Else if
NamaFungsi = hasil yang dikembalikan sum >65
End Function
Grade = “B”
 Bagian bagian: Else
 Statement Function Grade = “C”
 Nama fungsi End if
 Argumen fungsi (parameter)
 Statement VBA yang melakukan hitungan
 Hasil yang dikembalikan -- nama fungsi = End Function
 Statement End Function
The function name must be assigned the value to be returned!
IrDarmadiMM ©

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

09. Membuat prosedur Sub Procedures

 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 ©

Memanfaatkan intelli-sense Menyimpan/export modul


 Setiap object dalam excel memiliki properties dan methods,  Dari project explorer, pilih modul
 Untuk memanipulasi obyek dalam program VBA, yang akan disimpan
kita bisa memanfaatkan intelli-sense  Pilih File  Export File
 Caranya:  Pilih lokasi tempat menyimpan file
Tuliskan nama object lalu diikuti dengan titik (.) atau  Beri nama file (.BAS)
“(“ akan keluar properties dari obyek tersebut  Tekan Save

 Contoh : Menyimpan/export form


 application. -- titik nya
 activecell.Formula=sum(  akan muncul  Dari project explorer, pilih Userform
argumen untuk fungsi sum yang akan disimpan
 Pilih File  Export File
 Kalau kita tekan <esc> intellisense tak akan muncul  Pilih lokasi tempat menyimpan file
lagi untuk obyek yang sama, untukmemunculkan lagi -  Beri nama file (.FRM)
 tekan Ctrl+J IrDarmadiMM ©
 Tekan Save IrDarmadiMM ©

12
14/08/2013 - IrDarmadiMM

10. Mengatur editor


Mengimpor/ambil modul
• Cara kerja dan tampilan editor
 Dari project explorer
dapat diatur dengan menu ToolslOptions
 Pilih File Import File
 Pilih file dari lokasi tempat
menyimpan file.BAS atau file.FRM a ta u

 Tekan Open

IrDarmadiMM ©

11. Melindungi program


 Program dapat dilindungi dengan password
 Tools - ProjectName Properties 
dialog box VBAProject, pilih Protection
 Isikan password untuk melindungi program
 OK

Bagian 2
Variabel dan konstanta

IrDarmadiMM ©

IrDarma
diMM ©

13
14/08/2013 - IrDarmadiMM

Apa yang dibicarakan disini? 01. Deklarasi variabel


 Variabel dalam VBA sebaiknya dideklarasikan untuk
menyatakan nama dan jenis data (data type)
01. Cara Mendeklarasikan Variabel  Pendeklrasian variabel ini akan menghindari kesalahan
dan lebih mengefisienkan program
02. Memahami lingkup variabel
 Caranya adalah dengan pernyataan Dim
03. Mengirim variabel sbg referensi dan sbg argumen
Dim namavar As jenisdata
04. Variabel statik dan Variabel dinamik
Namavar harus dimulai dengan huruf , max 255 karakter,
05. Menghindari kesalahan pendefisian variabel tidak mengandung spasi dan titk

06 Jenis data variabel JenisData dapat berupa

07. Jenis Variable Array String A sequence of bytes containing characters


Integer 2 byte integer, tanpa desimal
08. Konstanta Long 4 byte integer
Single 4 byte real number
Double 8 byte real number
IrDarmadiMM ©
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 ©

Posisi Lingkup prosedur


Deklarasi implisit dan eksplisit
• Variabel hanya bisa diakses oleh pernyataan-
 Pada contoh 2, variabel pesan sebetulnya
pernyataan dalam prosedur yang sama ,
tak dikenal, tetapi ketika dijalankan tetap
misalnya : vaiabel “pesan” berikut
memberi hasil, dalam hal ini <blank>.
Sub Procedure1() Ini dikarenakan VBA mengenal deklarasi
Dim pesan implisit ( semua variabel otomatis diberi
‘semua pernyataan di dalam prosedur ini dapat harga <blank>, meski tak dikenal)
‘mengakses variabel variabel ' pesan'
pesan = " Saya dalam lingkup"  Kondisi semacam ini kurang baik dalam
MsgBox pesan ' pemrograman, sebaiknya dinyatakan
End Sub ' bahwa semua variabel harus
dideklarasikan agar tak terjadi kesalahan
Sub Procedure2()
‘pernyataan di dalam prosedur ini  Untuk menghindari hal tersebut da[at dideklarasikan
'
‘tak dapat mengakses variabel ' pesan'  Option Explicit
MsgBox pesan “ variabel pesan tak
dikenal dalam prosedur ini”
End Sub IrDarmadiMM © IrDarmadiMM ©

15
14/08/2013 - IrDarmadiMM

LEBIH BAIK SEPERTI INI :


Variabel SAMA ada di setiap MODUL
Dim totSales2 , totExpenses2
Sub CalcMarginsl() Sub CalcMargins2()
Lingkup modul Range("GrossMarg") =GrossMarginCalc Range("GrossMarg").value =
Range("NetMarg") = GrossMarginCalc2
NetMarginCalc(Range("FixedCosts")) Range("NetMarg”).value =
End Sub NetMarginCalc2(Range("FixedCosts"))
End Sub
Agar variabel dapat diakses oleh Function GrossMarginCalc()
Dim totSales Function GrossMarginCalc2()
Dim totExpenses
beberapa prosedur harus totSales =Application.Sum(Range("Sales"))
totSales2=Application.Sum(Range("Sales"))
totExpenses2= Application.Sum
totExpenses=Application.Sum(Range("Expens"))
dideklarasikan sebelum atau di GrossMarginCalc=(totSales - totExpenses) /
(Range("Expens"))
GrossMarginCalc2 = (totSales2 -
totSales
luar prosedur- prosedur yang totExpenses2) /totSales2
End Function
End Function
menggunakan variabel tersebut Function
Function NetMarginCalc2(fixedCosts)
NetMarginCalc(fixedCosts)
Dim totSales NetMarginCalc2 = (totSales2 - totExpenses2 _
Dim totExpenses - fixedCosts2) / totSales2
totSales = Application.Sum(Range("Sales")) End Function
totExpenses =Application.Sum(Range("Expens"))
NetMarginCalc = (totSales - totExpenses _ ...RASAKAN BEDANYA ....!!!!!
- fixedCosts) / totSales
IrDarmadiMM ©
IrDarmadiMM ©

Lingkup publik Mengirim argumen variabel


 Kadang kita menginginkan
 Bila program terdiri dari banyak prosedur,
semua modul dalam proyek kita mendeklarasikan variabel dalam lingkup modul
dapat mengakses variabel dapat berbahaya, karena nilai variabel dapat diubah
oleh setiap prosedur yangmengakses variabel tersebut
 Unruk itu gunakan deklarasi atau variabel yang sama dideklarasikan berbeda
dengan  lingkup publik
 Untuk menghindari kesalahan semacam itu,
variabel dapat dikirim dari satu prosedur ke yang lain
 Caranya: deklarasikan dengan sebagai argumen
public namavariabel
 Pengiriman argumen variabel dapat berdasar referensi
Untuk menggantikan
atau berdasar nilai Variabel
Dim namavariabel

IrDarmadiMM ©

16
14/08/2013 - IrDarmadiMM

Mengirim variabel berdasar referensi Mengirim variabel berdasar nilai (ByValue)


 Contoh:  Contoh:
Sub procedure3() Sub procedure5()
Dim pesan Dim pesan
pesan= "Pesan asli!“
procedure4 pesan
pesan = "Pesan asli!"
MsgBox pesan procedure6 pesan
End Sub MsgBox pesan
End Sub
Sub procedure4(kiriman)
MsgBox kiriman
kiriman = "pesan telah sampai!“ Sub procedure6(ByVal pesan)
End Sub MsgBox pesan
pesan = "terimakasih atas kirimannya!“
End Sub
Bila procedure3 dijalankan, mula- mula pesan berisi •
Bila procedure5 dijalankan, variabel pesan akan tetap
" Pesanasli! kemudian berisi "pesan telah sampai!" berisi " Pesan asli! karena yang dikirim hanya
nilainya( ByVal)
IrDarmadiMM ©

Variabel statis Contoh variabel statik


Sub tesStatik()
 Dalam VBA, variabel dalam prosedur ProsedurStatik
ProsedurStatik
setelah digunakan nilainya akan End Sub
dihapus; ketika prosedur dipanggil
Sub ProsedurStatik()
lagi, akan diisi/ dihitung lagi Static varStatik
Dim varReguler
 Bila ingin nilai variabel tak diubah varStatik = varStatik + 5
varReguler = varReguler + 5
bisa dipakai variabel statis (static variable) MsgBox "varStatik = " & varStatik & " dan varReguler = "
&varReguler
End Sub

• Saat dijalankan nilai varStatik mula- mula 5, lalu 10,


sedangkan varReguler tetap 5 IrDarmadiMM ©
IrDarmadiMM ©

17
14/08/2013 - IrDarmadiMM

Jenis data variabel


Menghindari kesalahan variabel  VBA secara otomatis akan memberikan
 Kadang kita salah mengetik nama variabel, jenis data variant (22 byte) untuk setiap variabel
kesalahan ini paling sering terjadi pada pembuatan yang dideklarasikan atau tanpa diberi jenis Data
program yang besar dan kompleks

 Untuk menghemat memori dan menambah efisiensi


 Untuk menghidarinya, gunakan perintah explicit,
program jenis data sebaiknya dinyatakan pada saat
maka VBA akan memberi pesan error
bila ketemu variabel baru yang belum dideklarasikan di deklarasi kan

 Caranya:  CONTOH :
 Dengan mendeklarasikan di bagian atas modul  Dim katamu as string ‘ 4 bytes
- Option Explicit
 Dim noMhs As Integer ‘ 2 bytes
 Pilih ToolsOption  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

User-defined data types Deklarasi Variabel array


 Kita dapat mendefinisikan jenis data sendiri  Variabel matriks dan vektor dapat dideklarasikan
dengan variabel array
 Contoh:  Deklarasi ini diperlukan untuk menyediakan memeori
TypeMahasiswa menyimpan variabel dengan nama sama
Nama As String
nomhs As Integer  Cara:
angkatan As Integer Dim mhs(200) As String
tglLhr As Date Mhs(0) = Darmadi
End Type mhs(100) = " Banowati Ipit "

Mahasiswa.nama= " Ahmad Musa" Atau


Mahasiswa.nomhs = 22718
Mahasiswa.angkatan = 2002 Dim vektor(50 to 100) As Double
Mahasiswa.tglLhr= #01/01/1985#
Dim matriks(1 to 50, 1 to 20)
IrDarmadiMM @ IrDarmadiMM ©

Array dinamis konstanta


! Bila ukuran array belum diketahui, bisa  Konstanta built - in  ada di dalam Excel
dideklarasikan sebagai array dinamis
Contoh:
! Bila dimensinya diketahui bisa dinyatakan
kemudian sebagai statis ActiveWIndow.WindowState =xlMaximized

Dim myArray () As Double  User - defined constants


........................... PubliciPrivate Const NamaKonstanta [ As Type] = expression
ReDim myArray(105)
Contoh:
! ReDim akan me- reinisialisasi nilai variabel dalam Public Const gravitasi As Single = 9.81
Array tersebut ,tetapi
Jika kita tidak ingin re-initialisasi maka
[Public|Private] Const constantName [As type] = expression
ReDim Preserve myArray(105)
Dimensi Array dapat diketahui dengan Public Const PI = 3.1, NumPLANETS = 9
UBound(namaArray)  indeks atas Const PI2 = PI * 2
LBound(namaArray)  indeks bawah Const RELEASE = #1/1/99/#

19
14/08/2013 - IrDarmadiMM

Apa yang dibicarakan?


 Struktur ekspresi
 Operator VBA
 Bekerja dengan ekspresi numerik

Bagian 3  Bekerja dengan ekspresi tex/string


 Bekerja dengan ekspresi logika
 Bekerja dengan ekspresi tanggal

 format
Ekspresi VBA

IrDarmadiMM @ IrDarmadiMM @

Struktur ekspresi VBA OPERATOR VBA


• Variabel = statemen tentang variabel
operand <asignment> operand & operator  Operators: +, -, *, /, ^, Mod
 Comparison: =, <, >, <=, >=, <>
Operand harus menggunakan jenis variabel
yangkompatibel  Logical Operators: And, Eq, Not, Or, Xor

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

Bekerja dengan tanggal


Bekerja dengan ekspresi logika
 Operator And • Tanggal dalam VBA disimpan dalam bentuk rangkaian
 Expr1 And Expr2  True bila keduanya True angka, dengan 31 Desember1899 sebagai awal
 Operator Or
 Expr1 Or Expr2  True bila salah satu True sembarang) sehingga
 Operator XOr 1 Januari 1900 adalah1;
 Exprl XOr Expr2  T bila satu T dan lainnya F
 Operator Eqv 366 adalah 31 Desember 1900;
 Expri Eqv Expr2  T bila keduanya T atau 37,980 adalah 25 Desember 2003; dst.
keuanya F
 Operator Imp (Implikasi)
 Expri Imp Expr2  T bila Expr2 T atau keduanya
Waktu (jam, menit, detik) dinyatakan dalam pecahan,
dengan 0 adalah tengah malam; 0.5 adalah tengah hari

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

Apa yang dibahas di sini


Pengertian object
 Pengertian Object
 Hiraki object  Object adalah segala sesuatu dalam aplikasi
 Bekerja dengan properti object
 Bekerja dengan metode object Windows yang dapat dilihat dan dimanipulasi/diubah
 Menangani kejadian object
 Bekerja dengan koleksi object  Object bisa berupa satu object atau
 Browser object kumpulan (collection) object
 Mereferensi pustaka object tambahan
 Memberikan object pada variabel  Contoh : workbook, worksheet,
 Operator IS window, cell, range, gambar, grafik, dsb.
 Bekerja dengan beberapa properties dan methods
 Object aplikasi
 Object windows

IrDarmadiMM @
IrDarmadiMM ©

cara memanipulasi oject


Hirarki object
 Cara memanipulasi object:
 Mengubah properties  Object dalam aplikasi Office memiliki
 Mengaktivasi method yang terkait dengan object
hirarki dari yang paling umum
 Mendefinisi prosedur yang dijalankan saat
suatu event terjadi hingga yang lebih spesifik;

 Ilustrasi/analogi / jembatan keledai


 Komputer: object  Object paling umum : Application
 Merek, jenis prosesor: property
object  program itu sendiri.
 Menulis surat , main game: method
 Dihidupkan, dibuka, dimatikan: event
 Dalam Excel Application object memiliki >15 objects

IrDarmadiMM © IrDarmadiMM ©

22
14/08/2013 - IrDarmadiMM

Object Collection Description Bekerja dengan object properties


AddIn AddIns Semua file add-in/ tambahan
yang ada dalam Excel
 Sintaks: Object . Property
Dialog Dialogs Kotak dialog yang built-in dalam  Contoh: Application . ActiveWindow
Excel
Name Names Koleksi nama- nama yang ada  Sintax: Object . Property = value
dalam semua workbooks yang  Value berupa nilai pernyataan untuk
terbuka menset property, bisa berupa :
Objects di bawah Application object
 Numerik: ActiveCell.Font.Size = 14
Window Windows Kumpulan windows yang terbuka  String : ActiveCell.Font.Name = "Arial"
 Logika : ActiveCell.Font.Italic = True
Workbook Workbooks Koleksi dari semua workbooks
yangterbuka
 Nilai property dapat dicari dengan
 variabel = Object . Property
WrosheetFunction Container untuk fungsi-
fungsiworksheet Excel

IrDarmadiMM @
IrDarmadiMM ©

Bekerja dengan methods Mengelola object events


 Method menggambarkan apa yang dilakukan  Event adalah segala sesuatu yangterjadi pada object,
object; contoh: metode sort, simpan, buka, dsb. seperti:
membuka workbook adalah event pada workbook
 Sintax: Object . Method (arg1, arg2,...)  Respons terhadap event yang terjadi disebut event handlers
 Event handlers akan dijalankan bila event terjadi pda object

contoh: ActiveWorkBook.Save ' prosedur pemberian salam saat workbook dibuka


' meminta nama pengguna
ActiveWorkBook.Close(SaveChanges, fileName, RouteWB) Private Sub Workbook_Open() ' event membuka Workbook
Dim pesan, judul, Default, MyValue
pesan = "Hi, siapa nama anda? " ' minta input nama.
judul = "Salam pembuka" ' Set judul.
Default = "tanpa nama" ' Set default.
' Display pesan, judul, dan nilai default.
MyValue = InputBox(pesan, judul, Default)
MsgBox ("Assalamu'alaikum " + MyValue)
End Sub
IrDarmadiMM ©

23
14/08/2013 - IrDarmadiMM

Bekerja dengan koleksi object


 Collection adalah himpunan objects yang serupa;
Object browser
seperti WorkBooks Collection merupakan koleksi
workbook yang terbuka Libraries
dan Project
 Collection juga merupakan object sehingga memiliki
properties dan methods yang bisa dimanipulasi
 Anggota collection disebut element yang bisa
diakses dengan namanya atau dengan index Properties

 Contoh:
Events
Methods
Workbooks(" Budget.xls").
CloseActiveSheet.Picture(1).Copy Template
Code

 Kalau tak diberi index, diasumsikan semua


koleksi diperlakukan dengan method yang sama

IrDarmadiMM @ IrDarmadiMM ©

Memasukkan object dalam variabel Operator Is


 Kita kadang perlu membandingkan beberapa objects,
• Sintax: variableName = ObjectName  VBA menyediakanoperator Is. Untuk membandingkan
Dim budgetSheet As Object dua object
Set budgetSheet
=_Workbooks("Budget.xls").Worksheets
 CONTOH
(" 2003
 Hasil = Objects Is Object2
Budget)
Lebih baik:
 Objectl dan Object2 adalah object atau variabel,
bila sama, hasil akan True, bila tidak hasil akan False
DimbudgetSheet As Worksheet
Set budgetSheet
_=_Workbooks("Budget.xls").
Worksheets(" 2003
Budget)

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

Application Object m er upakan container yangberisi


Methods pada Application
semua oject dalam aplikasi yang dijalankan; object Object
ini memiliki beberapa properties dan method yang
banyak manfaatnya
 Application object memiliki beberapa
 Beberapa contoh methods, diantaranya
 Application.ActivePrinter: mengembalikan himpunan  Application.Help: mendisplay sistem
printer driver yang tersedia Help aplikasi
 Application.ActiveWindow: mengembalikan window  Application.Quit: keluar dari aplikasi
yang sedang aktif  Application.Repeat: mengulang kegiatan
 Application.Caption: mengembalikan judul aplikasi yang baru saja dilakukan
 Application.Dialogs : built-in dialog yg ada dlm aplikasi  Application.EnableCancelKey
 Application.Visible: mengatur aplikasi terlihat/tidak
 Application.Width: lebar window aplikasi
 Application.Windows: kumpulan window aplikasi yg IrDarmadiMM ©

aktif
IrDarmadiMM ©

25
14/08/2013 - IrDarmadiMM

Object Window Object Window


 Beberapa properties object window
 Menspesifikasi object window dengan indeks,  Window.Caption Window.Visible
atau dengan menuliskan namanya  Window.Height Window.Width
 Window.Left Window.WindowNumber
 Window.Top Window.WindowState
 Window.UsableHeight
- Windows(1)
 Window.UsableWidth
- Windows(dataku.xls)
- ActiveWindows  menyatakana window yang  Beberapa methods object window
 Window.Activate 4
sedang aktif saat ini Windows(" Nilai.xls" ).Activate
 Window.Close
 Membuka window baru  Window.LargeScroll(Down,Up,ToRight,ToLeft)
 Window.NewWindow  Window.SmallScroll(Down,Up,ToRight,toLeft)

IrDarmadiMM ©

Apa yang akan dibahas?


 Pengendalian alur program
 If...Then
 If ... Then ... Else
 Membuat keputusan Ganda
Bagian 5  Fungsi yang mengambil keputusan
 Loops
 Do... Loop
Mengendalikan alur program  For... Next
 For Each... Next
 Selest .... Case
 Exit

IrDarmadiMM ©
IrDarmadiMM ©

26
14/08/2013 - IrDarmadiMM

IF... THEN dan IF THEN ELSE

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

Select Case expression


Case expr1

Case expr2

Case Else

End Select

27
14/08/2013 - IrDarmadiMM

DO LOOP FOR NEXT


Loop statements Loop statements
Various Do loop forms A common For loop

Do While expr Do Until expr For i=1 To 10


… … Debug.print i
Loop Loop Next i

For i=1 To 10 Step 2


Do Do Debug.print i
… … Next i
Loop While expr Loop Until expr

FOR EACH PROCEDURE – MACRO -FUNCTION


Loop statements Procedures
Another For loop Procedures in VBA are either Macros or Functions
a macro does not return a value
For Each element In group
… Sub Name()
Next element …
Commonly used to iterate through collections End Sub
a function will return a value

For Each ws In Worksheets Function Name() As Double


Debug.Print ws.Name …
Next End Sub
Property functions (Get and Let) are used in Class Modules to provide access to private
properties

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 pengambil keputusan


 Statement IIf (Inline If)
 Sintaks : IIf (condition, TrueResult, FalseResult)

Function ProsesorCacat () As Boolean


ProsesorCacat = IIf((4195835 - (4195835/3145727) *
3145727),True, False)
End Function

 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

Pengulangan - loop Pengulangan - loop


• Contoh
 Struktur Do... Loop
 Sintaks:
SubBigNumbers()
Do While condition check dulu baru loop
Dim rowNum As Integer, colNum As Integer, currCell As Range
[statement] dilakukan selama kondisi T
rowNum= ActiveCell.Row
Loop
colNum = ActiveCell.Column
 Do lakukan dulu baru check
[statement] Set currCell = ActiveSheet.Cells(rowNum, ColNum)
Loop While condition diulang bila kondisi T Do While currCell <> " "
 Do Until condition check dulu baru loop IfIsNumeric(currCell) Then
[statemnt] dilakukan selama kondisi F IfcurrCell >= 1000 Then
Loop currCell.Font.Color = VBAColor(" magenta" )
 Do dilakukan dulu baru check End If
[statement]
rowNum= rowNum + 1
Loop Until condition diulang bila kondisi masih F
Set currCell = ActiveSheet.Cells(rowNum, colNum)
Loop
End Sub

Error Handling Contoh (28)

Sub ErrorHandler1()

'On Error Resume Next


On Error GoTo ErrorHandler

Dim jCounter As Byte

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

Anda mungkin juga menyukai