PM= PEMROGRAMAN bahasa KOMPUTER TEKNIK SIPIL

Bahasa pemrograman yang berbeda ... bahasa pemrograman dipilih yang paling cocok untuk tugas ... VB merupakan bahasa pemrograman yang sangat populer d...

26 downloads 888 Views 1MB Size
14/08/2013 - IrDarmadiMM

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

PEMROGRAMAN KOMPUTER TEKNIK SIPIL

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 ©

IrDarmadiMM ©

BAH AS A PEM ROGRAM AN 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 ©

BAH AS A PEM ROGRAM AN 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 ©

1

14/08/2013 - IrDarmadiMM

EXCEL OBJECT

BAH AS A PEM ROGRAM AN Keuntungan Penggunaan Visual Basic Pertama, waktu pembelajaran dan pengembangan yang lebih singkat/mudah dibanding dengan bahasa pemrograman lain, seperti C/C++, Delphi atau PowerBuilder sekalipun. Meskipun pernyataan ini masih bisa diperdebatkan. Tetapi yang jelas, VB merupakan bahasa pemrograman yang sangat populer dan banyak penggunanya. Cukup banyak literatur, kursus, situs internet ataupun komunitas yang siap membantu. Yang perlu disiapkan hanya tinggal kemauan dan kerja keras, dan pengaturan waktu yang baik untuk mempelajarinya. Kedua, Visual Basic for Application (VBA) digunakan oleh keluarga Microsoft Office (Word, Excel, Access, PowerPoint, Project). VBA dikembangkan dari aplikasi yang sebelumnya dikenal dengan istilah macro, otomasi langkah-langkah berulang. Dengan adanya VBA, kemampuan macro dapat ditingkatkan menjadi seperti bahasa pemrograman lain. Bagi yang ingin mengoptimalkan kemampuan Autocad pun, dapat digunakan macro yang menggunakan VBA, bukan Fortran dll. IrDarmadiMM ©

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

OBJECT dalam excel meliputi sbb: a. File excel itu sendiri b. Workbook atau keseluruahan file excel yang dibuka c. Sheet / worksheet d. Ranga yang ada di worksheet e. Cells yang ada di worksheet f. Listbook yang ada di Developer g. Chartsheet dalam Worksheet 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

object-oriented programming (1) Automobile

Excel

Objects Classes

Engine Door Wheels ( Collections )

Application Workbook Worksheets ( Collections )

Properties

Model Color Price

Version Sheets Visible

Methods

Start Close Change

Quit Save Activate

Events

On_Start Before_Close After_Change

WorkbookBeforeClose BeforeSave Activate

OBJECT IN EXCEL

chartsheet

worksheet

dialogsheet

TOOL Menu BAR

Property

TOOL BAR

ProjectExplorer

VB Editor / VBA 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 ©

Analysis tools

Beberapa kemampuan excel  Formatting (bold, Italics,number etc)

 Outline  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) R1C1 = absolute address – it does not change under copy / paste

Range(A1:B10) artinya kita sorot/blok dari cell A1 sampai dengan cell B10 Range(“A” & 3) artinya kita pilih kolom A dan baris 3

R[1]C[1] = relative address – it does change under copy /paste And we can use mixed mode:

Referensi dengan nama : Range(A1,B10) insert - name create nama=badu

R1C[1] – R1 is absolute,

C[1] is relative

"

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 Range(“A4”)

R elative 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

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 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 y = Cells(2, 2).Value z = Cells(3, 2).Value result = x * y + z Cells(4, 2).Value = result End Sub

Bagian 1 Dasar- dasar pemrograman VBA

IrDarmadiMM ©

5

14/08/2013 - IrDarmadiMM

Apa yang dibicarakan?           

01.Apa dan kenapa VBA

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 program

Apa VBA ??????  VBA merupakan bahasa pemrograman bagi semua aplikasi Microsoft Office (Excel, Word, Access, Powerpoint) dan beberapa yang lain (Outlook, Visio, AutoCAD, Map-Info, dsb.)  Dapat berfungsi sebagai macro atau bahasa pemrograman  Merupakan bahasa program beorientasi object, semua object office dapat dengan mudah dimanipulasi dengan VBA  Belajar satu bahasa dapat di-aplikasikan 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 Procedure list

Object list

 Code editor dengan bantuan yang lengkap dan juga ada debugger Project explorer

 Form building tools  Object browser  Dll yang memudahkan pembuatan Program

Properties window IrDarmadiMM ©

IrDarmadiMM ©

6

14/08/2013 - IrDarmadiMM

03. Prinsip prmrograman berbasis object  Object  Workbook, worksheet, chart, cell, dsb.

OBYEK, PROPERTI,EVENT DAN METHOD 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: 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. IrDarmadiMM ©

2. Properties Properties adalah sesuatu yang dipunyai oleh objek. Mis: textbox mempunyai property “nama” atau property “text” 3. Event Event adalah suatu kejadian terhadap objek pada saat tertentu. Misal: Objek command button dapat menerima event klik pada saat pemakai software kita nanti mengklik nya. 4. Method 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.

04. Cara membuat program VBA (programming)

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

Objects / Properties / Methods Object

Property

Method

Noun Adjective Verb

Part of the application

Attribute Action to do something

a. Command macros mengotomasi prosedur-prosedur, fungsi- fungsi yang ada (built-in)dalam aplikasi, memformat, menyimpan, dsb. b. User-defined function (function procedure) program yang berisi rumus dan perintah yang kita susun sendiri . c. Property procedure menunjukkan dan/atau mengubah properti dari suatu object IrDarmadiMM @

7

14/08/2013 - IrDarmadiMM

MEMANFAATKAN MENU DEVELOPER

Ada 2(dua) cara dalam mebuat program yaitu :

Menu File Options Customize Ribbons dan centrang bagian developer

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 1. Objek Objek dapat diartikan kepada sebuah benda dalam hal ini anggap saja objek ada lah textbox, label dan comman button. 2. Properties Properties adalah sesuatu yang dipunyai oleh objek. Mis: textbox mempunyai property “nama” atau property “text” 3. Event Event adalah suatu kejadian terhadap objek pada saat tertentu. Misal: Objek command button dapat menerima event klik pada saat pemakai software kita nanti mengklik nya. 4. Method 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.

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  T ools -  m a c r o  r un “pilih nam a m acr o”

9

14/08/2013 - IrDarmadiMM

The Macro Language

First Step to VBA : Macros

 Record Macro

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 (random number) 

 Record all the steps you conduct and write them in VBA code

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 2 - Cara Pindah dari VBE ke aplikasi tekan alt+F11

 Tools - Macro View  Pilih program vba yang mau dijalankan

3 - Tuliskan program (function atau procedure)

 CARA-2  Tools - Macro View  pilih option run  Misalnya ctrl-a, maka program dapat dijalankan dengan menekan tombol Ctrl-diikuti dgn huruf-a  OK

 Sub procedure ......... isi dengan Baris program / CODE-CODE



 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 If sum >= 80 then Grade = “A” Else if sum >65 Grade = “B” Else Grade = “C” End if

 Struktur fungsi Function 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

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 diskrim = B ^ 2 - 4 * A * C If diskrim > 0 Then akar = "dua akar riel" ElseIf diskrim = 0 Then akar = -B / (2 * A) Else akar = "akarnya imaginer" End If Else akar = "bukan persamaan kuadrat" End If

 Contoh:  Menghitung sisi miring segitiga  Rumus Pythagoras c 2 =(a2 + b 2)  Maka sisimiring = sqr(a 2 + 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

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  Struktur sebuah prosedur Sub NamaProsedur

( argument, argumen2,...)

...... [pernyataan /statement VBA] End Sub

CONTOH : Perhitungan bunga Sub InputDataPinjaman() Range("bunga") = 0.08 Range("lama") = 10 Range("pinjaman") = 100000000 Range("bayar") = “=PMT(bunga/12,lama*12,pinjaman)" End sub RUNNING Procedure : Tools Macro pilih nama macro

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").Select ActiveCell.FormulaR1C1 = "ft-lbm/lbf-s^2" End Sub This was a recorded macro – macros are “Sub” procedures.

IrDarmadiMM ©

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 intellisense tak akan muncul lagi untuk obyek yang sama, untukmemunculkan lagi IrDarmadiMM ©  tekan Ctrl+J

Menyimpan/export modul  Dari project explorer, pilih modul yang akan disimpan  Pilih File  Export File  Pilih lokasi tempat menyimpan file  Beri nama file (.BAS)  Tekan Save

Menyimpan/export form  Dari project explorer, pilih Userform yang akan disimpan  Pilih File  Export File  Pilih lokasi tempat menyimpan file  Beri nama file (.FRM) IrDarmadiMM ©  Tekan Save

12

14/08/2013 - IrDarmadiMM

10. Mengatur editor

Mengimpor/ambil modul  Dari project explorer  Pilih File Import File  Pilih file dari lokasi tempat menyimpan file.BAS atau file.FRM  Tekan Open

• Cara kerja dan tampilan editor dapat diatur dengan menu ToolslOptions

a ta u

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

01. Deklarasi variabel

Apa yang dibicarakan disini?

 Variabel dalam VBA sebaiknya dideklarasikan untuk menyatakan nama dan jenis data (data type)  Pendeklrasian variabel ini akan menghindari kesalahan dan lebih mengefisienkan program

01. Cara Mendeklarasikan Variabel 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,

tidak mengandung spasi dan titk

05. Menghindari kesalahan pendefisian variabel

JenisData dapat berupa

06 Jenis data variabel 07. Jenis Variable Array

String Integer Long Single Double

08. Konstanta

A sequence of bytes containing characters 2 byte integer, tanpa desimal 4 byte integer 4 byte real number 8 byte real number

IrDarmadiMM © IrDarmadiMM ©

Integer Decimal Long Single Double Currency String Byte Boolean Date Object Variant

Data types 2 byte integer 16-byte(128-bit) (+/-7.9228162514264337593543950335E+28) 4 byte integer +/-9,223,372,036,854,775,808 4 byte floating point +/ -3.4028235E+38 8 byte floating point +/ -4.94065645841246544E-324 8 byte real Rp, US$ upto 64K characters 0 through 65535 huruf 1 byte, angka dari 0 sampai 255 2 byte true (1) or false (0) 8 bytes 12dec2014 4 bytes – an object reference 16 bytes + 1 byte / character

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

JENIS DATA 

Data types           

Integer Long Single Double Currency String Byte Boolean Date Object Variant

2 byte integer 4 byte integer 4 byte floating point 8 byte floating point 8 byte real upto 64K characters 1 byte, angka dari 0 sampai 255 2 byte true or false 8 bytes 4 bytes – an object reference 16 bytes + 1 byte / character

AE6382

14

14/08/2013 - IrDarmadiMM

Declare by Dim Dim amount As Double Dim year As Integer Dim name As String Other data types: Boolean, Byte, Currency, Date Default (no type) is Variant

02 - Lingkup/scope variabel Dalam VBA lingkup variabel dapat

Kalau diberi akhiran dengan tanda ini , berarti datanya % - integer & - long integer ! – single # - double @ currency $ - string CONTOH : anIntegerValue% =3, aString$ = "hallo" Can modify with scope (outside procedure) Private Iam As Integer Public billsPaid As Currency Make values permanent Static yourName As String Multiple variables Private test, amount, J As Integer

berada pada posisi 3 hal sebagai berikut ini : Lingkup prosedur Lingkup modul Lingkup publik

IrDarmadiMM ©

Posisi Lingkup prosedur •

Deklarasi implisit dan eksplisit

Variabel hanya bisa diakses oleh pernyataanpernyataan dalam prosedur yang sama , misalnya : vaiabel “pesan” berikut Sub 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

 Pada contoh 2, variabel pesan sebetulnya tak dikenal, tetapi ketika dijalankan tetap memberi hasil, dalam hal ini . Ini dikarenakan VBA mengenal deklarasi implisit ( semua variabel otomatis diberi harga , meski tak dikenal)  Kondisi semacam ini kurang baik dalam pemrograman, sebaiknya dinyatakan bahwa semua variabel harus dideklarasikan agar tak terjadi kesalahan  Untuk menghindari hal tersebut da[at dideklarasikan  Option Explicit

IrDarmadiMM ©

IrDarmadiMM ©

15

14/08/2013 - IrDarmadiMM

Variabel SAMA ada di setiap MODUL Sub CalcMarginsl() Range("GrossMarg") =GrossMarginCalc Range("NetMarg") = NetMarginCalc(Range("FixedCosts")) End Sub

Lingkup modul

LEBIH BAIK SEPERTI INI : Dim totSales2 , totExpenses2 Sub CalcMargins2()

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

End Sub Function GrossMarginCalc() Dim totSales Function GrossMarginCalc2() Dim totExpenses totSales2=Application.Sum(Range("Sales")) totSales =Application.Sum(Range("Sales")) totExpenses2= Application.Sum totExpenses=Application.Sum(Range("Expens")) (Range("Expens")) GrossMarginCalc=(totSales - totExpenses) / GrossMarginCalc2 = (totSales2 totSales totExpenses2) /totSales2 End Function End Function

Agar variabel dapat diakses oleh beberapa prosedur harus dideklarasikan sebelum atau di luar prosedur- prosedur yang menggunakan variabel tersebut

Function Function NetMarginCalc2(fixedCosts) NetMarginCalc(fixedCosts) NetMarginCalc2 = (totSales2 - totExpenses2 _ Dim totSales - fixedCosts2) / totSales2 Dim totExpenses End Function totSales = Application.Sum(Range("Sales")) totExpenses =Application.Sum(Range("Expens")) ...RASAKAN BEDANYA ....!!!!! NetMarginCalc = (totSales - totExpenses _ - fixedCosts) / totSales IrDarmadiMM ©

IrDarmadiMM ©

Mengirim argumen variabel

Lingkup publik  Kadang kita menginginkan semua modul dalam proyek kita dapat mengakses variabel

 Bila program terdiri dari banyak prosedur, mendeklarasikan variabel dalam lingkup modul dapat berbahaya, karena nilai variabel dapat diubah oleh setiap prosedur yangmengakses variabel tersebut atau variabel yang sama dideklarasikan berbeda

 Unruk itu gunakan deklarasi dengan  lingkup publik

 Untuk menghindari kesalahan semacam itu, variabel dapat dikirim dari satu prosedur ke yang lain sebagai argumen

 Caranya: deklarasikan dengan public namavariabel Untuk menggantikan Dim namavariabel

 Pengiriman argumen variabel dapat berdasar referensi atau berdasar nilai Variabel

IrDarmadiMM ©

16

14/08/2013 - IrDarmadiMM

Mengirim variabel berdasar referensi  Contoh: Sub procedure3() Dim pesan pesan= "Pesan asli!“ procedure4 pesan MsgBox pesan End Sub Sub procedure4(kiriman) MsgBox kiriman kiriman = "pesan telah sampai!“ End Sub

Mengirim variabel berdasar nilai (ByValue)  Contoh: Sub procedure5() Dim pesan pesan = "Pesan asli!" procedure6 pesan MsgBox pesan End Sub Sub procedure6(ByVal pesan) MsgBox pesan pesan = "terimakasih atas kirimannya!“ End Sub

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



Bila procedure5 dijalankan, variabel pesan akan tetap berisi " Pesan asli! karena yang dikirim hanya nilainya( ByVal)

IrDarmadiMM ©

Variabel statis

Sub tesStatik() ProsedurStatik ProsedurStatik End Sub

 Dalam VBA, variabel dalam prosedur setelah digunakan nilainya akan dihapus; ketika prosedur dipanggil

Contoh variabel statik

Sub ProsedurStatik() Static varStatik Dim varReguler

lagi, akan diisi/ dihitung lagi  Bila ingin nilai variabel tak diubah bisa dipakai variabel statis (static variable)

IrDarmadiMM ©

varStatik = varStatik + 5 varReguler = varReguler + 5 MsgBox "varStatik = " & varStatik & " dan varReguler = " &varReguler End Sub • Saat dijalankan nilai varStatik mula- mula 5, lalu 10, sedangkan varReguler tetap 5

IrDarmadiMM ©

17

14/08/2013 - IrDarmadiMM

Jenis data variabel Menghindari kesalahan variabel  Kadang kita salah mengetik nama variabel, kesalahan ini paling sering terjadi pada pembuatan program 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 ToolsOption  modul general, pilih/contreng Require Variable Declaration

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

Integer Decimal Long Single Double Currency String Byte Boolean Date Object Variant

Data types 2 byte integer +/- 32727 16-byte(128-bit) (+/-7.9228162514264337593543950335E+28) 4 byte integer +/- 9,223,372,036,854,775,808 4 byte floating point +/- 3.4028235E+38 8 byte floating point +/- 4.94065645841246544E-324 8 byte real Rp, US$ upto 64K characters 0 through 65535 huruf 1 byte, angka dari 0 sampai 255 2 byte true (1) or false (0) 8 bytes 12dec2014 4 bytes – an object reference 16 bytes + 1 byte / character

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

rDarmadiMM ©

 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

IrDarmadiMM ©

18

14/08/2013 - IrDarmadiMM

User-defined data types

Deklarasi Variabel array  Variabel matriks dan vektor dapat dideklarasikan dengan variabel array  Deklarasi ini diperlukan untuk menyediakan memeori menyimpan variabel dengan nama sama

 Kita dapat mendefinisikan jenis data sendiri  Contoh: TypeMahasiswa Nama As String nomhs As Integer angkatan As Integer tglLhr As Date End Type

 Cara: Dim mhs(200) As String Mhs(0) = Darmadi mhs(100) = " Banowati Ipit

Mahasiswa.nama= " Ahmad Musa" Mahasiswa.nomhs = 22718 Mahasiswa.angkatan = 2002 Mahasiswa.tglLhr= #01/01/1985#

"

Atau Dim vektor(50 to 100) As Double Dim matriks(1 to 50, 1 to 20) IrDarmadiMM ©

IrDarmadiMM @

Array dinamis

! Bila ukuran array belum diketahui, bisa dideklarasikan sebagai array dinamis ! Bila dimensinya diketahui bisa dinyatakan kemudian sebagai statis Dim myArray () As Double ...........................

ReDim myArray(105)

! ReDim akan me- reinisialisasi nilai variabel dalam Array tersebut ,tetapi Jika kita tidak ingin re-initialisasi maka ReDim Preserve myArray(105) Dimensi Array dapat diketahui dengan UBound(namaArray)  indeks atas LBound(namaArray)  indeks bawah

konstanta  Konstanta built - in  ada di dalam Excel Contoh: ActiveWIndow.WindowState =xlMaximized  User - defined constants

PubliciPrivate Const NamaKonstanta [ As Type] = expression Contoh: Public Const gravitasi As Single = 9.81 [Public|Private] Const

constantName [As type] = expression

Public Const PI = 3.1, NumPLANETS = 9 Const PI2 = PI * 2 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 @

OPERATOR VBA

Struktur ekspresi VBA •

Variabel = statemen tentang variabel operand operand & operator Operand harus menggunakan jenis variabel yangkompatibel Operator harus sesuai dengan jenis data contoh: energY = mass * (speedOfLight ^ 2)

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 (random number) 

IrDarmadiMM @

20

14/08/2013 - IrDarmadiMM

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

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

Format • Untuk memformat angka /string yang muncul bisa digunakan perintah Format(expresi, format) Contoh: Format(Pemasukan Pengeluaran," currencyFormat(Now, " medium time")

Bagian 4 Bekerja dengan Objects

Format(NoMhs, "00000/TS")

IrDarmadiMM ©

IrDarmadiMM ©

21

14/08/2013 - IrDarmadiMM

Apa yang dibahas di sini         

Pengertian object

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

 Object adalah segala sesuatu dalam aplikasi Windows yang dapat dilihat dan dimanipulasi/diubah  Object bisa berupa satu object atau kumpulan (collection) object  Contoh : workbook, worksheet, window, cell, range, gambar, grafik, dsb.

 Operator IS  Bekerja dengan beberapa properties dan methods  Object aplikasi  Object windows IrDarmadiMM @

IrDarmadiMM ©

cara memanipulasi oject Hirarki object  Cara memanipulasi object:  Mengubah properties  Mengaktivasi method yang terkait dengan object  Mendefinisi prosedur yang dijalankan saat suatu event terjadi  Ilustrasi/analogi / jembatan keledai  Komputer: object  Merek, jenis prosesor: property  Menulis surat , main game: method  Dihidupkan, dibuka, dimatikan: event

 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

IrDarmadiMM ©

IrDarmadiMM ©

22

14/08/2013 - IrDarmadiMM

Object

Collection Description

AddIn

AddIns

Semua file add-in/ tambahan yang ada dalam Excel

Dialog

Dialogs

Name

Names

Kotak dialog yang built-in dalam Excel Koleksi nama- nama yang ada dalam semua workbooks yang terbuka Objects di bawah Application object

Window

Windows

Kumpulan windows yang terbuka

Workbook

Workbooks

Koleksi dari semua workbooks yangterbuka

WrosheetFunction

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

Container untuk fungsifungsiworksheet Excel IrDarmadiMM @

IrDarmadiMM ©

Mengelola object events

Bekerja dengan methods  Method menggambarkan apa yang dilakukan object; contoh: metode sort, simpan, buka, dsb.  Sintax: Object . Method (arg1, arg2,...)

 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

contoh: ActiveWorkBook.Save

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

ActiveWorkBook.Close(SaveChanges, fileName, RouteWB)

IrDarmadiMM ©

23

14/08/2013 - IrDarmadiMM

Bekerja dengan koleksi object  Collection adalah himpunan objects yang serupa; seperti WorkBooks Collection merupakan koleksi workbook yang terbuka  Collection juga merupakan object sehingga memiliki properties dan methods yang bisa dimanipulasi  Anggota collection disebut element yang bisa diakses dengan namanya atau dengan index  Contoh: Workbooks(" Budget.xls"). CloseActiveSheet.Picture(1).Copy

Object browser Libraries dan Project

Properties Events Methods

Template Code

 Kalau tak diberi index, diasumsikan semua koleksi diperlakukan dengan method yang sama IrDarmadiMM @

Memasukkan object dalam variabel • Sintax: variableName = ObjectName

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

Lebih baik:

IrDarmadiMM ©

Operator Is  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

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)

SubFormatRange() Worksheets(" Sheet1").Range("B2:B5").Style = "Currency” Worksheets(" Sheet1").Range("B2:B5").WrapText= True Worksheets(" Sheet1").Range("B2:B5").Font.Size = 16 Worksheets(" Sheet1").Range("B2:B5").Font.Bold = True Worksheets(" 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 With End Sub

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

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 @

IrDarmadiMM @

Object aplikasi Application Object m er upakan container yangberisi semua oject dalam aplikasi yang dijalankan; object ini memiliki beberapa properties dan method yang banyak 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 yg aktif

Methods pada Application Object  Application object memiliki beberapa methods, diantaranya  Application.Help: mendisplay sistem Help aplikasi  Application.Quit: keluar dari aplikasi  Application.Repeat: mengulang kegiatan yang baru saja dilakukan  Application.EnableCancelKey

IrDarmadiMM ©

IrDarmadiMM ©

25

14/08/2013 - IrDarmadiMM

Object Window

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

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

Apa yang akan dibahas?

Bagian 5 Mengendalikan alur program

          

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

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 Various Do loop forms

Loop statements A common For loop

Do While expr … Loop

Do Until expr … Loop

For i=1 To 10 Debug.print i Next i

Do

Do

… Loop While expr

… Loop Until expr

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

FOR EACH Loop statements Another For loop

PROCEDURE – MACRO -FUNCTION Procedures Procedures in VBA are either Macros or Functions a macro does not return a value

For Each element In group … Next element

Commonly used to iterate through collections For Each ws In Worksheets Debug.Print ws.Name Next

Sub Name() … End Sub a function will return a value Function Name() As Double … 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: … code a Resume statement error

In the 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  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 condition diulang bila kondisi T  Do Until condition check dulu baru loop [statemnt] dilakukan selama kondisi F Loop  Do dilakukan dulu baru check [statement] Loop Until condition diulang bila kondisi masih F

• Contoh

SubBigNumbers() Dim rowNum As Integer, colNum As Integer, currCell As Range rowNum= ActiveCell.Row colNum = ActiveCell.Column Set currCell = ActiveSheet.Cells(rowNum, ColNum) Do While currCell <> " " IfIsNumeric(currCell) Then IfcurrCell >= 1000 Then currCell.Font.Color = VBAColor(" magenta" ) End If rowNum= rowNum + 1 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