PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL...

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

Transcript of PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL...

Page 1: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

1

PEMROGRAMANKOMPUTER

TEKNIK SIPIL

IrDarmadiMM ©

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

Kode atau Script atau Syntax ini ditulis dalam berbagai bahasapemrograman, sehingga memungkinkan manusia dapatberkomunikasi dengan komputer

Tujuan dari pemrograman adalah untuk memuat suatu susunan codeyang dapat melakukan suatu perhitungan atau 'pekerjaan' sesuaidengan 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 lebihalgoritma yang saling berhubungan dengan menggunakan sebuahbahasa pemrograman tertentu sehingga menjadi sebuah program.

IrDarmadiMM ©

BAHASA PEMROGRAMANBahasa pemrograman adalah suatu perintah yang dibuat manusiauntuk membuat komputer menjadi memiliki fungsi tertentu. Bahasapemrograman ini adalah suatu susunan aturan penulisan (sintaks)yang membentuk kode kode yang kemudian akan diterjemahkan olehprogram kompiler menjadi bahasa rakitan (assembly) dan terus diolahhingga dimengerti oleh mesin komputer (bahasa mesin=mati/hidup/0/1)

Bahasa pemrograman yang berbeda mendukung gaya pemrogramanyang berbeda (disebut paradigma pemrograman). Pilihan bahasa yangdigunakan adalah tunduk pada banyak pertimbangan, seperti kebijakanperusahaan, kesesuaian untuk tugas, ketersediaan pihak ketiga paket,atau keinginan individunya. Idealnya, bahasa pemrograman dipilih yangpaling cocok untuk tugas yang dihadapi akan dipilih. Trade-off dari idealini melibatkan cukup menemukan programmer yang tahu bahasa untukmembangun sebuah tim, ketersediaan compiler untuk bahasa, danefisiensi dengan program-program yang ditulis dalam bahasa tertentuuntuk mengeksekusi program.

IrDarmadiMM ©

BAHASA PEMROGRAMANBeberapa bahasa pemrograman pada saat ini adalah:Assembly (C atau C++ atau C#) BasicCobol HTMLJava FortranClipper PascalVisual Basic DbaseFoxpro dan masih banyak lagi yg lain

Dalam kuliah Teknik Sipil Jayabaya ini akan digunakanbahasa pemrograman VISUAL BASIC

Dalam aplikasinya nanti menngunakan VBE atau VBA, yaituVisual Basic Editor atau Visual Basic Aplication, yang padaprinsipnya tidak beda jauh dengan bahasa Visual Basic

IrDarmadiMM ©

Page 2: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

2

BAHASA PEMROGRAMANKeuntungan Penggunaan Visual BasicPertama, waktu pembelajaran dan pengembangan yang lebihsingkat/mudah dibanding dengan bahasa pemrograman lain, sepertiC/C++, Delphi atau PowerBuilder sekalipun. Meskipun pernyataan inimasih bisa diperdebatkan. Tetapi yang jelas, VB merupakan bahasapemrograman yang sangat populer dan banyak penggunanya. Cukupbanyak literatur, kursus, situs internet ataupun komunitas yang siapmembantu. Yang perlu disiapkan hanya tinggal kemauan dan kerja keras,dan pengaturan waktu yang baik untuk mempelajarinya.

Kedua, Visual Basic for Application (VBA) digunakan oleh keluargaMicrosoft Office (Word, Excel, Access, PowerPoint, Project). VBAdikembangkan dari aplikasi yang sebelumnya dikenal dengan istilahmacro, otomasi langkah-langkah berulang. Dengan adanya VBA,kemampuan macro dapat ditingkatkan menjadi seperti bahasapemrograman lain. Bagi yang ingin mengoptimalkan kemampuan Autocadpun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll.

IrDarmadiMM ©IrDarmadiMM ©

EXCEL OBJECT

Dalam graphical user interface (GUI),aplikasi dan bagian-bagiannya dikenal dengansebutan OBJECT

OBJECT dalam excel meliputi sbb:a. File excel itu sendirib. Workbook atau keseluruahan file excel

yang dibukac. Sheet / worksheetd.Ranga yang ada di worksheete. Cells yang ada di worksheetf. Listbook yang ada di Developerg. Chartsheet dalam Worksheeth.Dan sebagainya

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 ©

Page 3: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

3

- VBA Object Based Programming Language

KONSEP

object-oriented programming (1)

Automobile Excel

ObjectsClasses

EngineDoor

Wheels( Collections )

ApplicationWorkbook

Worksheets( Collections )

PropertiesModelColorPrice

VersionSheetsVisible

MethodsStartClose

Change

QuitSave

Activate

EventsOn_Start

Before_CloseAfter_Change

WorkbookBeforeCloseBeforeSave

Activate

OBJECT IN EXCEL

IrDarmadiMM ©worksheetchartsheet dialogsheet Property ProjectExplorer VB Editor / VBA

TOOL Menu BAR TOOL BAR

Page 4: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

4

IrDarmadiMM ©

Excel GUI (graphical user interface)

Antarmuka excel bisa dilakukandengan beberapa cara:

• Menu

Dialog box

Toolbars

Drag-and-drop

Keyboard shortcuts ( copy=Ctrl-C, paste=Ctrl-V)

IrDarmadiMM ©

IrDarmadiMM ©

Beberapa kemampuan excel

Formatting (bold, Italics,number etc)

Formulas (stat, financ, math, etc)

Names Range

Functions

Shapes

Charts

Macros

etcIrDarmadiMM ©

Analysis tools

Outline

Automatic subtotal

Scenario management

Analysis toolpak

Pivot table

Auditing

Solver

Addins

Page 5: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

5

IrDarmadiMM ©

RANGERange(A1:B10) artinya kita sorot/blok

dari cell A1 sampai dengan cell B10

Range(“A” & 3) artinya kita pilih

kolom A dan baris 3

Referensi dengan nama :

Range(A1,B10) insert - name " create

nama=baduartinya kita pilih cell A1 sampai cell B10

dan diberi identifikas sebagai “badu”

Relative A1 Absolute $A$1

Row absolute A$1 Column absolute $A1

Cells(“A” & 3) artinya kita pilih kolom A dan baris 3

Cells(2,3) artinya kita pilih kolom 2(B) dan baris 3

Referencing other sheets/workbooks

=[data.xls]Sheet2[A2]+1

CELLS A1 style

Formulae in Excel (R1C1 style - Row,Column)R1C1 = absolute address – it does not change under copy / paste

R[1]C[1] = relative address – it does change under copy /paste

And we can use mixed mode:

R1C[1] – R1 is absolute, C[1] is relative

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

A1 style tends to be absolute

A1 style used with the “Range” propertyRange(“A4”)

So, we can refer to individual cells with the “Cells” Property,which uses an R1C1 style

Cells(4,1)

Keduanya menghasilkan nilai yang sama saja, baris 4 kolom-A

Contoh

Private Sub CommandButton1_Click()Dim x As IntegerDim y As IntegerDim z As IntegerDim result As Integerx = Cells(1, 2).Valuey = Cells(2, 2).Valuez = Cells(3, 2).Valueresult = x * y + zCells(4, 2).Value = resultEnd Sub

IrDarmadiMM ©

Bagian 1

Dasar- dasar pemrograman VBA

Page 6: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

6

IrDarmadiMM ©

Apa yang dibicarakan?

01. Mengenal VBA (apa dan kenapa)

02. IDE

03. Pemrograman berbasis object

04. Cara membuat program VBA

05. Makro dan Makro Developer

06. Editor program

07. Menjalankan program

08. Membuat fungsi sendiri

09. Membuat prosedur

10. Mengatur editor

11. Melindungi programIrDarmadiMM ©

01.Apa dan kenapa VBA

VBA merupakan bahasa pemrograman bagisemua aplikasi Microsoft Office (Excel, Word,Access, Powerpoint) dan beberapa yang lain(Outlook, Visio, AutoCAD, Map-Info, dsb.)

Dapat berfungsi sebagai macro ataubahasa pemrograman

Merupakan bahasa program beorientasiobject, semua object office dapat denganmudah dimanipulasi dengan VBA

Belajar satu bahasa dapat di-aplikasikandalam banyak aplikasi Windows

Apa VBA ??????

IrDarmadiMM ©

Kenapa VBA?????

Mendukung aplikasi internet dan intranet

Mendukung ActiveX controls

Code editor dengan bantuan yang

lengkap dan juga ada debugger

Form building tools

Object browser

Dll yang memudahkan pembuatan Program

IrDarmadiMM ©

Module windowObjectlist

Procedurelist

Projectexplorer

Propertieswindow

02. IDE –– integrated development environment

• Untuk menulis /edit program VBA digunakan IDE

Page 7: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

7

IrDarmadiMM ©

03. Prinsip prmrograman berbasis object

Object

Workbook, worksheet, chart, cell, dsb.

Properties Setiap object memiliki properties:

color, font, italic, dsb.

Method & procedure Cara/ perintah untuk melakukan sesuatu:

pindah worksheet, pindah baris,pindah kolom dsb.

Events Setiap peristiwa yang dilakukan oleh object:

Click mouse, enter, dsb.

OBYEK, PROPERTI,EVENT DAN METHOD

1. ObjekObjek dapat diartikan kepada sebuah benda dalam hal ini anggapsaja objek ada lah textbox, label dan comman button.

2. PropertiesProperties adalah sesuatu yang dipunyai oleh objek.Mis: textbox mempunyai property “nama” atau property “text”

3. EventEvent adalah suatu kejadian terhadap objek pada saat tertentu.Misal: Objek command button dapat menerima event klik pada saatpemakai software kita nanti mengklik nya.

4. MethodMethod adalah sesuatu yang dapat dilakukan oleh objek.Misal: Objek combo dapat menambahkan Item nama-nama haridengan method AddItemcontoh: combo1.AddItem “Senin” dst.

Visual Basic Aplications

Objects / Properties / Methods

Property Adjective

Object Noun Part of the application

Attribute

Method Verb Action to dosomething

IrDarmadiMM @

04. Cara membuat program VBA (programming)

Program dalam VBA disebut prosedur (dan/atau function)

Tiga jenis prosedur

a. Command macrosmengotomasi prosedur-prosedur, fungsi- fungsiyang ada (built-in)dalam aplikasi, memformat,menyimpan, dsb.

b. User-defined function (function procedure)program yang berisi rumus dan perintah yangkita susun sendiri .

c. Property procedure menunjukkan dan/atau

mengubah properti dari suatu object

Page 8: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

8

IrDarmadiMM ©

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 ©

MEMANFAATKAN MENU DEVELOPER

Menu FileOptionsCustomize Ribbons dan centrangbagian developer

VISUAL BASIC EDITOR... USER FORM,MODULE DAN CODECode adalah kumpulan perintah-perintah yang digunakanuntuk menjalankan keinginan pembuat perogramModule adalah tempat menulis CODE yang telah kitasiapkan untuk menjadi program (*.bas)User form adalah form yang dibentuk untuk menampilkanrunning CODE yang telah dibuat (*.frm)

CONTOH CODE MENULISKAN NAMA, ALAMAT DANNO.TELP KE WORKSHEET “Data”Sheets("Data").ActivateTname = "Paijo"Talamat = "Jl. Embuh Raeruh"Tpone = "081280186063"

Cells(1, 2) = TnameCells(1, 3) = TalamatCells(1, 4) = Tpone

Page 9: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

9

Contoh USER FORM Modul dan Class ModulStandard Modules

Standard modules (.BAS ) umumnya berfungsi untuk menaruhvariabel global yang bisa diakses sama semua form dari projectkita,juga bisa kita buat Prosedur & Function yang bisa diakses samasemua form.

Class Modules (Kelas)

Class modules (.CLS ) adalah modul yang spesifik dan secara umumkelas mewakili kelompok objek yang serupa. Misalnya seluruhmahasiswa di suatu kampus adalah objek. Kelas nya adalahMahasiswa (contoh: CMahasiswa.cls atau Class1.cls). Atau bahkankita bisa membuat Class khusus tentang penyelesain fungsi kuadrat,jadi dalam MODULE kita tinggal panggil saja Class-nya

OBJECT, PROPERTI,EVENT DAN METHOD

1. ObjekObjek dapat diartikan kepada sebuah benda dalam hal ini anggapsaja objek ada lah textbox, label dan comman button.

2. PropertiesProperties adalah sesuatu yang dipunyai oleh objek.Mis: textbox mempunyai property “nama” atau property “text”

3. EventEvent adalah suatu kejadian terhadap objek pada saat tertentu.Misal: Objek command button dapat menerima event klik pada saatpemakai software kita nanti mengklik nya.

4. MethodMethod adalah sesuatu yang dapat dilakukan oleh objek.Misal: Objek combo dapat menambahkan Item nama-nama haridengan method AddItemcontoh: combo1.AddItem “Senin” dst.

05 Membuat dan menjalankan macro

Tools - macro record macro

1- Lakukan prosedur- prosedur dan perubahan

properties pada worksheet , mis copy, isi sel, dll

2- Stop macro recording

3- Edit macro untuk memberbaiki dan

mengubah hasil rekaman

4. Menjalankan:

Dengan shortcut, atau

Tools - macro run “pilih nama macro”

Page 10: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

10

First Step to VBA : Macros

Record Macro

Record all the steps you conduct and write themin VBA code

Jika macros status disabledketika start Excel, ubahsecurity level ke medium

The Macro Language

Operators: +, -, *, /, ^, Mod

Comparison: =, <, >, <=, >=, <>

Logical Operators: And, Eq, Not, Or, Xor

Intrinsic Functions: Abs, Cos, Sin, Tan,Atn (arc tangent), Exp, Log (natural),Sgn, Sqr (square root), Rnd (randomnumber)

06. Menulis / Editor program

1-Tools - macro visual basic editor atau

Click tombol VBE

2- Cara Pindah dari VBE ke aplikasi tekan alt+F11

3- Tuliskan program (function atau procedure)

Sub procedure

......... isi dengan Baris program / CODE-CODE

End sub

IrDarmadiMM © IrDarmadiMM ©

07. Menjalankan program

Program dapat dijalankan dengan dua cara yaitu :

CARA-1 Tools - Macro View

Pilih program vba yang mau dijalankan

CARA-2 Tools - Macro View pilih option run

Misalnya ctrl-a, maka program dapat dijalankan

dengan menekan tombol Ctrl-diikuti dgn huruf-a

OK

Page 11: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

11

IrDarmadiMM ©

08. Membuat Fungsi Sendiri

Fungsi adalah rumus yang mengolah argumendan mengembalikan hasil

Struktur fungsiFunction NamaFungsi(argumen1, argumen2, --) _

[Pernyataan/statement VBA]NamaFungsi = hasil yang dikembalikan

End Function

Bagian bagian: Statement Function Nama fungsi Argumen fungsi (parameter) Statement VBA yang melakukan hitungan Hasil yang dikembalikan -- nama fungsi = Statement End Function

Function Procedures

Function Grade (HADIR,TUGAS,UTS,UAS) as String

Sum = HADIR+TUGAS+UTS+UAS

If sum >= 80 thenGrade = “A”

Else ifsum >65Grade = “B”

ElseGrade = “C”

End if

End Function

The function name must be assigned the value to be returned!

IrDarmadiMM ©

Membuat fungsi

Contoh:

Menghitung sisi miring segitiga

Rumus Pythagoras c2 =(a2 + b 2)

Maka sisimiring = sqr(a2 + b 2)

Buka VBA excel , lalu buat program berikut:

Function sisimiring(x , y) ' nama fungsi

sisimiring = sqr(x^2 + y^2) ' nilai hasil

End Function

Pemakaian:

isikan pada sel dengan nama formula sisimiring

misal =sisimiring(3, 4) akan menghasilkan 5

IrDarmadiMM ©

Membuat fungsi

Function akar(A, B, C)

If A <> 0 Thendiskrim = B ^ 2 - 4 * A * CIf diskrim > 0 Then

akar = "dua akar riel"ElseIf diskrim = 0 Then

akar = -B / (2 * A)Else

akar = "akarnya imaginer"End If

Elseakar = "bukan persamaan kuadrat"End If

End Function

Page 12: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

12

IrDarmadiMM ©

09. Membuat prosedur

Prosedur adalah unit program dalam VBA yang merupakan blok kode

dalam satu modul

Struktur sebuah prosedur

Sub NamaProsedur (argument, argumen2,...)

...... [pernyataan /statement VBA]

End Sub

CONTOH : Perhitungan bunga

Sub InputDataPinjaman()

Range("bunga") = 0.08Range("lama") = 10Range("pinjaman") = 100000000Range("bayar") =“=PMT(bunga/12,lama*12,pinjaman)"

End subRUNNING Procedure : ToolsMacropilih nama macro

Sub Procedures

Sub Gc()‘ Lines beginning with ‘ are comments / komentar' Gc Macro' Puts gc in active cell & units in adjacent cell to right' Keyboard Shortcut: Ctrl+g'

ActiveCell.FormulaR1C1 = "32.174"ActiveCell.Offset(0, 1).Range("A1").SelectActiveCell.FormulaR1C1 = "ft-lbm/lbf-s^2"

End Sub

This was a recorded macro – macros are “Sub” procedures.

Memanfaatkan intelli-sense

Setiap object dalam excel memiliki properties dan methods, Untuk memanipulasi obyek dalam program VBA,

kita bisa memanfaatkan intelli-sense

Caranya:

Tuliskan nama object lalu diikuti dengan titik (.) atau“(“ akan keluar properties dari obyek tersebut

Contoh : application. -- titik nya activecell.Formula=sum( akan muncul

argumen untuk fungsi sum

Kalau kita tekan <esc> intellisense tak akan muncullagi untuk obyek yang sama, untukmemunculkan lagi - tekan Ctrl+J IrDarmadiMM ©

IrDarmadiMM ©

Menyimpan/export modul

Dari project explorer, pilih modulyang akan disimpan

Pilih File Export File

Pilih lokasi tempat menyimpan file Beri nama file (.BAS)

Tekan Save

Menyimpan/export form

Dari project explorer, pilih Userformyang akan disimpan

Pilih File Export File

Pilih lokasi tempat menyimpan file Beri nama file (.FRM)

Tekan Save

Page 13: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

13

IrDarmadiMM ©

Mengimpor/ambil modul

Dari project explorer

Pilih File Import File

Pilih file dari lokasi tempatmenyimpan file.BAS atau file.FRM atau

Tekan Open

10. Mengatur editor• Cara kerja dan tampilan editor

dapat diatur dengan menu ToolslOptions

IrDarmadiMM ©

11. Melindungi program

Program dapat dilindungi dengan password

Tools - ProjectName Properties dialog box VBAProject, pilih Protection

Isikan password untuk melindungi program

OK

IrDarmadiMM ©

Bagian 2

Variabel dan konstanta

Page 14: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

14

IrDarmadiMM ©

Apa yang dibicarakan disini?

01. Cara Mendeklarasikan Variabel

02. Memahami lingkup variabel

03. Mengirim variabel sbg referensi dan sbg argumen

04. Variabel statik dan Variabel dinamik

05. Menghindari kesalahan pendefisian variabel

06 Jenis data variabel

07. Jenis Variable Array

08. Konstanta

IrDarmadiMM ©

01. Deklarasi variabel Variabel dalam VBA sebaiknya dideklarasikan untuk

menyatakan nama dan jenis data (data type) Pendeklrasian variabel ini akan menghindari kesalahan

dan lebih mengefisienkan program

Caranya adalah dengan pernyataan Dim

Dim namavar As jenisdata

Namavar harus dimulai dengan huruf , max 255 karakter,tidak mengandung spasi dan titk

JenisData dapat berupa

String A sequence of bytes containing charactersInteger 2 byte integer, tanpa desimalLong 4 byte integerSingle 4 byte real numberDouble 8 byte real number

Data typesInteger 2 byte integerDecimal 16-byte(128-bit) (+/-7.9228162514264337593543950335E+28)

Long 4 byte integer +/-9,223,372,036,854,775,808Single 4 byte floating point +/ -3.4028235E+38Double 8 byte floating point +/ -4.94065645841246544E-324Currency 8 byte real Rp, US$String upto 64K characters 0 through 65535 hurufByte 1 byte, angka dari 0 sampai 255Boolean 2 byte true (1) or false (0)Date 8 bytes 12dec2014Object 4 bytes – an object referenceVariant 16 bytes + 1 byte / character

Byte atau 2-bit adalah satuan memory komputer dalam menyimpan data

AE6382

JENIS DATA

Data types

Integer 2 byte integer

Long 4 byte integer

Single 4 byte floating point

Double 8 byte floating point

Currency 8 byte real

String upto 64K characters

Byte 1 byte, angka dari 0 sampai 255

Boolean 2 byte true or false

Date 8 bytes

Object 4 bytes – an object reference

Variant 16 bytes + 1 byte / character

Page 15: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

15

Declare by DimDim amount As DoubleDim year As IntegerDim name As String

Other data types: Boolean, Byte, Currency, DateDefault (no type) is Variant

Kalau diberi akhiran dengan tanda ini , berarti datanya% - integer & - long integer ! – single# - double @ currency $ - stringCONTOH : anIntegerValue% =3, aString$ = "hallo"

Can modify with scope (outside procedure)Private Iam As IntegerPublic billsPaid As Currency

Make values permanentStatic yourName As String

Multiple variablesPrivate test, amount, J As Integer

IrDarmadiMM ©

02 - Lingkup/scope variabel

Dalam VBA lingkup variabel dapat

berada pada posisi 3 hal sebagai

berikut ini :

Lingkup prosedur

Lingkup modul

Lingkup publik

IrDarmadiMM ©

Posisi Lingkup prosedur

• Variabel hanya bisa diakses oleh pernyataan-pernyataan dalam prosedur yang sama ,

misalnya : vaiabel “pesan” berikutSub Procedure1()

Dim pesan‘semua pernyataan di dalam prosedur ini dapat‘mengakses variabel variabel ' pesan'

pesan = " Saya dalam lingkup"MsgBox pesan

End Sub

Sub Procedure2()‘pernyataan di dalam prosedur ini

‘tak dapat mengakses variabel ' pesan'MsgBox pesan “ variabel pesan tak

dikenal dalam prosedur ini”End Sub

'

'

'

IrDarmadiMM ©

Deklarasi implisit dan eksplisit

Pada contoh 2, variabel pesan sebetulnyatak dikenal, tetapi ketika dijalankan tetap

memberi hasil, dalam hal ini <blank>.Ini dikarenakan VBA mengenal deklarasi

implisit ( semua variabel otomatis diberiharga <blank>, meski tak dikenal)

Kondisi semacam ini kurang baik dalampemrograman, sebaiknya dinyatakanbahwa semua variabel harusdideklarasikan agar tak terjadi kesalahan

Untuk menghindari hal tersebut da[at dideklarasikan Option Explicit

Page 16: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

16

IrDarmadiMM ©

Lingkup modul

Agar variabel dapat diakses oleh

beberapa prosedur harus

dideklarasikan sebelum atau di

luar prosedur- prosedur yang

menggunakan variabel tersebut

IrDarmadiMM ©

Sub CalcMarginsl()Range("GrossMarg") =GrossMarginCalcRange("NetMarg") =NetMarginCalc(Range("FixedCosts"))

End Sub

Function GrossMarginCalc()Dim totSalesDim totExpensestotSales =Application.Sum(Range("Sales"))

totExpenses=Application.Sum(Range("Expens"))

GrossMarginCalc=(totSales - totExpenses) /totSales

End Function

FunctionNetMarginCalc(fixedCosts)

Dim totSalesDim totExpensestotSales = Application.Sum(Range("Sales"))totExpenses =Application.Sum(Range("Expens"))

NetMarginCalc = (totSales - totExpenses _- fixedCosts) / totSales

Dim totSales2 , totExpenses2Sub CalcMargins2()

Range("GrossMarg").value =GrossMarginCalc2Range("NetMarg”).value =NetMarginCalc2(Range("FixedCosts"))

End Sub

Function GrossMarginCalc2()

totSales2=Application.Sum(Range("Sales"))totExpenses2= Application.Sum(Range("Expens"))GrossMarginCalc2 = (totSales2 -totExpenses2) /totSales2

End Function

Function NetMarginCalc2(fixedCosts)

NetMarginCalc2 = (totSales2 - totExpenses2 _- fixedCosts2) / totSales2

End Function

Variabel SAMA ada di setiap MODULLEBIH BAIK SEPERTI INI :

...RASAKAN BEDANYA ....!!!!!

IrDarmadiMM ©

Lingkup publik

Kadang kita menginginkansemua modul dalam proyek kitadapat mengakses variabel

Unruk itu gunakan deklarasidengan lingkup publik

Caranya: deklarasikan dengan

public namavariabel

Untuk menggantikan

Dim namavariabel

Mengirim argumen variabel

Bila program terdiri dari banyak prosedur,mendeklarasikan variabel dalam lingkup moduldapat berbahaya, karena nilai variabel dapat diubaholeh setiap prosedur yangmengakses variabel tersebutatau variabel yang sama dideklarasikan berbeda

Untuk menghindari kesalahan semacam itu,variabel dapat dikirim dari satu prosedur ke yang lainsebagai argumen

Pengiriman argumen variabel dapat berdasar referensiatau berdasar nilai Variabel

Page 17: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

17

IrDarmadiMM ©

Mengirim variabel berdasar referensi Contoh:Sub procedure3()

Dim pesanpesan= "Pesan asli!“

procedure4 pesanMsgBox pesan

End Sub

Sub procedure4(kiriman)

MsgBox kirimankiriman = "pesan telah sampai!“

End Sub

Bila procedure3 dijalankan, mula- mula pesan berisi" Pesanasli! kemudian berisi "pesan telah sampai!"

Mengirim variabel berdasar nilai (ByValue) Contoh:Sub procedure5()

Dim pesanpesan = "Pesan asli!"procedure6 pesanMsgBox pesan

End Sub

Sub procedure6(ByVal pesan)

MsgBox pesanpesan = "terimakasih atas kirimannya!“

End Sub•

Bila procedure5 dijalankan, variabel pesan akan tetapberisi " Pesan asli! karena yang dikirim hanyanilainya( ByVal)

IrDarmadiMM ©

Variabel statis

Dalam VBA, variabel dalam prosedur

setelah digunakan nilainya akan

dihapus; ketika prosedur dipanggil

lagi, akan diisi/ dihitung lagi

Bila ingin nilai variabel tak diubah

bisa dipakai variabel statis (static variable)

IrDarmadiMM ©

Sub tesStatik()ProsedurStatik

ProsedurStatik

End Sub

Sub ProsedurStatik()Static varStatikDim varReguler

varStatik = varStatik + 5varReguler = varReguler + 5MsgBox "varStatik = " & varStatik & " dan varReguler = "&varReguler

End Sub

• Saat dijalankan nilai varStatik mula- mula 5, lalu 10,sedangkan varReguler tetap 5

Contoh variabel statik

Page 18: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

18

Menghindari kesalahan variabel Kadang kita salah mengetik nama variabel,

kesalahan ini paling sering terjadi pada pembuatanprogram yang besar dan kompleks

Untuk menghidarinya, gunakan perintah explicit,

maka VBA akan memberi pesan error

bila ketemu variabel baru yang belum dideklarasikan

Caranya: Dengan mendeklarasikan di bagian atas modul

- Option Explicit

Pilih ToolsOption modul general,pilih/contreng Require Variable Declaration

rDarmadiMM ©

Jenis data variabel

VBA secara otomatis akan memberikan

jenis data variant (22 byte) untuk setiap variabel

yang dideklarasikan atau tanpa diberi jenis Data

Untuk menghemat memori dan menambah efisiensi

program jenis data sebaiknya dinyatakan pada saat

di deklarasi kan

CONTOH :

Dim katamu as string ‘ 4 bytes

Dim noMhs As Integer ‘ 2 bytes

Dim Jawaban as Boolean

rDarmadiMM ©

Data typesInteger 2 byte integer +/- 32727Decimal 16-byte(128-bit) (+/-7.9228162514264337593543950335E+28)

Long 4 byte integer +/- 9,223,372,036,854,775,808Single 4 byte floating point +/- 3.4028235E+38Double 8 byte floating point +/- 4.94065645841246544E-324Currency 8 byte real Rp, US$String upto 64K characters 0 through 65535 hurufByte 1 byte, angka dari 0 sampai 255Boolean 2 byte true (1) or false (0)Date 8 bytes 12dec2014Object 4 bytes – an object referenceVariant 16 bytes + 1 byte / character

Byte atau 2-bit adalah satuan memory komputer dalam menyimpan data

IrDarmadiMM ©

Kita dapat menyatakan jenis data default Def(jenis data) [karakter] adalah default jenis data

Contoh:

Deflnt I-N , Semua Variabel yang dimulai/Awal dengan

huruf besar I s.d N adalah Integer

Keywords:

- DefBool DefDbl

- DefByte DefDate

- Deflnt DefStr

- DefObj DefSng

Page 19: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

19

IrDarmadiMM @

User-defined data types Kita dapat mendefinisikan jenis data sendiri

Contoh:TypeMahasiswa

Nama As Stringnomhs As Integerangkatan As IntegertglLhr As Date

End Type

Mahasiswa.nama= " Ahmad Musa"

Mahasiswa.nomhs = 22718Mahasiswa.angkatan = 2002Mahasiswa.tglLhr= #01/01/1985#

IrDarmadiMM ©

Deklarasi Variabel array Variabel matriks dan vektor dapat dideklarasikan

dengan variabel array Deklarasi ini diperlukan untuk menyediakan memeori

menyimpan variabel dengan nama sama

Cara:Dim mhs(200) As String

Mhs(0) = Darmadimhs(100) = " Banowati Ipit "

Atau

Dim vektor(50 to 100) As Double

Dim matriks(1 to 50, 1 to 20)

! Bila ukuran array belum diketahui, bisadideklarasikan sebagai array dinamis

! Bila dimensinya diketahui bisa dinyatakankemudian sebagai statis

Dim myArray () As Double...........................

ReDim myArray(105)

! ReDim akan me- reinisialisasi nilai variabel dalamArray tersebut ,tetapi

Jika kita tidak ingin re-initialisasi makaReDim Preserve myArray(105)

Dimensi Array dapat diketahui dengan

UBound(namaArray) indeks atas

LBound(namaArray) indeks bawah

Array dinamis konstanta Konstanta built-in ada di dalam Excel

Contoh:

ActiveWIndow.WindowState=xlMaximized

User- defined constants

PubliciPrivate Const NamaKonstanta [ As Type] = expression

Contoh:

Public Constgravitasi As Single = 9.81

[Public|Private] Const constantName [As type] = expression

Public Const PI = 3.1, NumPLANETS = 9Const PI2 = PI * 2Const RELEASE = #1/1/99/#

Page 20: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

20

IrDarmadiMM @

Bagian 3

Ekspresi VBA

IrDarmadiMM @

Apa yang dibicarakan?

Struktur ekspresi

Operator VBA

Bekerja dengan ekspresi numerik

Bekerja dengan ekspresi tex/string

Bekerja dengan ekspresi logika

Bekerja dengan ekspresi tanggal

format

IrDarmadiMM @

Struktur ekspresi VBA• Variabel = statemen tentang variabel

operand <asignment> operand & operator

Operand harus menggunakan jenis variabel

yangkompatibel

Operator harus sesuai dengan jenis data

contoh:

energY = mass * (speedOfLight ^ 2)

OPERATOR VBA

Operators: +, -, *, /, ^, Mod

Comparison: =, <, >, <=, >=, <>

Logical Operators: And, Eq, Not, Or, Xor

Intrinsic Functions: Abs, Cos, Sin, Tan,Atn (arc tangent), Exp, Log (natural),Sgn, Sqr (square root), Rnd (randomnumber)

Page 21: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

21

Bekerja dengan ekspresi logika Operator And Expr1 And Expr2 True bila keduanya True

Operator Or Expr1 Or Expr2 True bila salah satu True

Operator XOr Exprl XOr Expr2 T bila satu T dan lainnya F

Operator Eqv Expri Eqv Expr2 T bila keduanya T atau

keuanya F

Operator Imp (Implikasi) Expri Imp Expr2 T bila Expr2 T atau keduanya

IrDarmadiMM ©IrDarmadiMM ©

Bekerja dengan tanggal

• Tanggal dalam VBA disimpan dalam bentuk rangkaian

angka, dengan 31 Desember1899 sebagai awal

sembarang) sehingga

1 Januari 1900 adalah1;

366 adalah 31 Desember 1900;

37,980 adalah 25 Desember 2003; dst.

Waktu (jam, menit, detik) dinyatakan dalam pecahan,

dengan 0 adalah tengah malam; 0.5 adalah tengah hari

IrDarmadiMM ©

Format• Untuk memformat angka /string yang

muncul bisa digunakan perintah

Format(expresi, format)

Contoh:

Format(Pemasukan Pengeluaran,"

currencyFormat(Now, " medium time")

Format(NoMhs, "00000/TS")

IrDarmadiMM ©

Bagian 4

Bekerja dengan Objects

Page 22: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

22

IrDarmadiMM @

Apa yang dibahas di sini

Pengertian Object Hiraki object Bekerja dengan properti object Bekerja dengan metode object Menangani kejadian object Bekerja dengan koleksi object Browser object Mereferensi pustaka object tambahan Memberikan object pada variabel

Operator IS

Bekerja dengan beberapa properties dan methods

Object aplikasi Object windows

IrDarmadiMM ©

Pengertian object

Object adalah segala sesuatu dalam aplikasi

Windows yang dapat dilihat dan dimanipulasi/diubah

Object bisa berupa satu object ataukumpulan (collection) object

Contoh : workbook, worksheet,

window, cell, range, gambar, grafik, dsb.

IrDarmadiMM ©

cara memanipulasi oject

Cara memanipulasi object: Mengubah properties Mengaktivasi method yang terkait dengan object

Mendefinisi prosedur yang dijalankan saatsuatu event terjadi

Ilustrasi/analogi / jembatan keledai Komputer: object

Merek, jenis prosesor: property

Menulis surat , main game: method

Dihidupkan, dibuka, dimatikan: event

IrDarmadiMM ©

Hirarki object

Object dalam aplikasi Office memiliki

hirarki dari yang paling umum

hingga yang lebih spesifik;

Object paling umum : Application

object program itu sendiri.

Dalam Excel Application object memiliki >15 objects

Page 23: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

23

Object Collection Description

AddIn AddIns Semua file add-in/ tambahanyang ada dalam Excel

Dialog Dialogs Kotak dialog yang built-in dalamExcel

Name Names Koleksi nama- nama yang adadalam semua workbooks yangterbukaObjects di bawah Application object

Window Windows Kumpulan windows yang terbuka

Workbook Workbooks Koleksi dari semua workbooksyangterbuka

WrosheetFunction Container untuk fungsi-fungsiworksheet Excel

IrDarmadiMM @

IrDarmadiMM ©

Bekerja dengan object properties

Sintaks: Object . Property Contoh: Application . ActiveWindow

Sintax: Object . Property = value Value berupa nilai pernyataan untuk

menset property, bisa berupa :

Numerik: ActiveCell.Font.Size = 14

String : ActiveCell.Font.Name = "Arial" Logika : ActiveCell.Font.Italic = True

Nilai property dapat dicari dengan

variabel = Object . Property

IrDarmadiMM ©

Bekerja dengan methods Method menggambarkan apa yang dilakukan

object; contoh: metode sort, simpan, buka, dsb.

Sintax: Object . Method (arg1, arg2,...)

contoh: ActiveWorkBook.Save

ActiveWorkBook.Close(SaveChanges, fileName, RouteWB)

Mengelola object events Event adalah segala sesuatu yangterjadi pada object,

seperti:

membuka workbook adalah event pada workbook

Respons terhadap event yang terjadi disebut event handlers

Event handlers akan dijalankan bila event terjadi pda object

' prosedur pemberian salam saat workbook dibuka' meminta nama penggunaPrivate 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

Page 24: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

24

IrDarmadiMM @

Bekerja dengan koleksi object Collection adalah himpunan objects yang serupa;

seperti WorkBooks Collection merupakan koleksiworkbook yang terbuka

Collection juga merupakan object sehingga memilikiproperties dan methods yang bisa dimanipulasi

Anggota collection disebut element yang bisadiakses dengan namanya atau dengan index

Contoh:Workbooks("Budget.xls" ).CloseActiveSheet.Picture(1).Copy

Kalau tak diberi index, diasumsikan semuakoleksi diperlakukan dengan method yang sama

Object browser

Librariesdan Project

Properties

Events

Methods

TemplateCode

IrDarmadiMM ©

IrDarmadiMM ©

Memasukkan object dalam variabel• Sintax: variableName = ObjectName

Dim budgetSheet As Object

Set budgetSheet=_Workbooks("Budget.xls").Worksheets(" 2003

Budget)

Lebih baik:

DimbudgetSheet As WorksheetSet budgetSheet

_=_Workbooks("Budget.xls").Worksheets(" 2003Budget)

IrDarmadiMM @

Kita kadang perlu membandingkan beberapa objects, VBA menyediakanoperator Is. Untuk membandingkan

dua object

CONTOH Hasil = Objects Is Object2

Objectl dan Object2 adalah object atau variabel,bila sama, hasil akan True, bila tidak hasil akan False

Operator Is

Page 25: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

25

IrDarmadiMM @

Bekerja dengan properties dan methods yang banyak (1/2)

SubFormatRange()Worksheets(" Sheet1").Range("B2:B5").Style = "Currency”Worksheets(" Sheet1").Range("B2:B5").WrapText= TrueWorksheets(" Sheet1").Range("B2:B5").Font.Size = 16Worksheets(" Sheet1").Range("B2:B5").Font.Bold = TrueWorksheets(" Sheet1").Range("B2:B5").Font.Color = RGB(255,0, 0)Worksheets(" Sheet1").Range("B2:B5").Font.Name = Arial

End sub

AKAN lebih baik jika ditulis sbb:Sub FormatRange2()

With Worksheets(" Sheet1").Range(" B2:B5" ) Style = "Currency" WrapText= True Font.Size = 16 Font.Bold = True Font.Color = RGB(255, 0, 0 Font.Name ="Arial“

End WithEnd Sub

Bekerja dengan properties dan methodsyang banyak (2/2)

IrDarmadiMM @

Contoh yang lebih baik lagi:

Sub FormatRange3()

With Worksheets(" Sheet1" ).Range(" B2:B5" )

Style = "Currency"WrapText= True

With .Font

Size = 16

Bold = True

Color = RGB(255, 0, 0)Name ="Arial"

End With

End With

End Sub

IrDarmadiMM ©

Object aplikasi

Application Object merupakan container yangberisisemua oject dalam aplikasi yang dijalankan; objectini memiliki beberapa properties dan method yangbanyak manfaatnya

Beberapa contoh Application.ActivePrinter: mengembalikan himpunan

printer driver yang tersedia

Application.ActiveWindow: mengembalikan window

yang sedang aktif Application.Caption: mengembalikan judul aplikasi Application.Dialogs : built-in dialog yg ada dlm aplikasi

Application.Visible: mengatur aplikasi terlihat/tidak Application.Width: lebar window aplikasi Application.Windows: kumpulan window aplikasi ygaktif

IrDarmadiMM ©

Methods pada ApplicationObject

Application object memiliki beberapamethods, diantaranya

Application.Help: mendisplay sistemHelp aplikasi

Application.Quit: keluar dari aplikasi

Application.Repeat: mengulang kegiatanyang baru saja dilakukan

Application.EnableCancelKey

Page 26: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

26

IrDarmadiMM ©

Object Window

Menspesifikasi object window dengan indeks,

atau dengan menuliskan namanya

- Windows(1)

- Windows(dataku.xls)

- ActiveWindows menyatakana window yang

sedang aktif saat ini

Membuka window baru

Window.NewWindow

Object Window

Beberapa properties object window Window.Caption Window.Visible Window.Height Window.Width Window.Left Window.WindowNumber Window.Top Window.WindowState Window.UsableHeight

Window.UsableWidth

Beberapa methods object window Window.Activate 4

Windows(" Nilai.xls" ).Activate Window.Close Window.LargeScroll(Down,Up,ToRight,ToLeft) Window.SmallScroll(Down,Up,ToRight,toLeft)

IrDarmadiMM ©IrDarmadiMM ©IrDarmadiMM ©

Bagian 5

Mengendalikan alur program

IrDarmadiMM ©

Apa yang akan dibahas?

Pengendalian alur program If...Then If ... Then ... Else Membuat keputusan Ganda Fungsi yang mengambil keputusan Loops Do... Loop For... Next For Each... Next

Selest .... Case

Exit

Page 27: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

27

IF... THEN dan IF THEN ELSE

Logical statementsThe If Then Else statement is the basic logic test

If a>10 Then…

End If

If a>10 Then…

ElseIf a<0 Then…

Else…

End If

If a>10 Then…

Else…

End If

SELECT CASE

Logical statementsThe Select statement can be used to replace a multi-way if statement

Select Case expressionCase expr1

…Case expr2

…Case Else

…End Select

Page 28: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

28

DO LOOP

Loop statementsVarious Do loop forms

Do While expr…

Loop

Do Until expr…

Loop

Do…

Loop While expr

Do…

Loop Until expr

FOR NEXT

Loop statementsA common For loop

For i=1 To 10Debug.print i

Next i

For i=1 To 10 Step 2Debug.print i

Next i

FOR EACH

Loop statementsAnother For loop

Commonly used to iterate through collections

For Each element In group…

Next element

For Each ws In WorksheetsDebug.Print ws.Name

Next

PROCEDURE – MACRO -FUNCTION

ProceduresProcedures in VBA are either Macros or Functionsa macro does not return a value

a function will return a value

Property functions (Get and Let) are used in Class Modules to provide access to privateproperties

Sub Name()…End Sub

Function Name() As Double…End Sub

Page 29: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

29

ON ERROR GOTO

Dealing with runtime errorsThe On Error statement will trap errors

The error name is a label in the code

In the error code a Resume statement will cause the statement that

caused the error to be executed againIn the error code a Resume Next statement will restart execution on the

statement after the one that caused the error

…On Error GoTo label

…On Error GoTo check…check:…

IrDarmadiMM ©

Keputusan ganda

IrDarmadiMM ©

Fungsi pengambil keputusan

Statement IIf (Inline If)

Sintaks: IIf (condition, TrueResult, FalseResult)

Function ProsesorCacat () As BooleanProsesorCacat = 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 @

Page 30: PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL · PDF filePEMROGRAMAN KOMPUTER TEKNIK SIPIL IrDarmadiMM ... pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM

14/08/2013 - IrDarmadiMM

30

Pengulangan - loop

Struktur Do... Loop Sintaks:

Do While condition check dulu baru loop

[statement] dilakukan selama kondisi T

Loop

Do lakukan dulu baru check

[statement]

Loop While conditiondiulang bila kondisi T

Do Until condition check dulu baru loop

[statemnt] dilakukan selama kondisi F

Loop

Do dilakukan dulu baru check

[statement]

Loop Until conditiondiulang bila kondisi masih F

Pengulangan - loop• Contoh

SubBigNumbers()Dim rowNum As Integer, colNum As Integer, currCell As RangerowNum= ActiveCell.Row

colNum = ActiveCell.Column

Set currCell = ActiveSheet.Cells(rowNum, ColNum)

Do While currCell <> " "

IfIsNumeric(currCell) ThenIfcurrCell >= 1000 Then

currCell.Font.Color = VBAColor(" magenta" )

End If

rowNum= rowNum + 1

Set currCell = ActiveSheet.Cells(rowNum, colNum)

LoopEnd Sub

Error Handling Contoh (28)

Sub ErrorHandler1()

'On Error Resume NextOn Error GoTo ErrorHandler

Dim jCounter As Byte

For jCounter = 1 To 20'ProtectVBAProject.Sheet1.Cells(jCounter, 2).Value = jCounter

Next jCounter

Exit Sub

ErrorHandler:'If Err.Number = 1004 ThenMsgBox Err.Number & " : " & Err.DescriptionResume Next

End Sub