Anda di halaman 1dari 64

Seri

CENTER OF GIS DAN REMOTE SENSING RESEARCH

Riskys Digital Image Processing Laboratory


Pelatihan

SIG Tingkat Programmer

menggunakan

MapBasic VB MapX

Disusun Oleh:

Rizki Noor Hidayat Wijaya

CENTER OF GIS DAN REMOTE SENSING RESEARCH

MapBasic Visual Basic - MapX


Riskys Digital Publishing
Factory Automation Aerial & Satellite Image Processing & Analysis Remote Sensing &
Controlling Natural Hazard Disaster Mitigation & Management Enginneering
Computing Digital Mapping Knowledge Information Technology Hardware & Software
House Digital Forensics Multimedia & Animation.

http://www.riskydigital.com
http://www.facebook.com/riskydigital
mail@riskydigital.com
Daerah Istimewa Yogyakarta

tutor2003

KATA PENGANTAR
MapInfo sebagai salah satu Aplikasi Sistem Informasi Geografis yang banyak
digunakan diberbagai bidang dan sektor kegiatan pembangunan dan riset telah
menududukkan dirinya menjadi piranti lunak yang populer.
Pada perkembangannya dewasa ini kebutuhan pengguna tidak hanya pada
penggunaan piranti lunak tersebut, karena kebutuhan yang lebih spesifik tentu penyusunan
kembali sebuah piranti tersebut dituntut guna meningkatkan efisiensi serta komunikasi bagi
pengguna lainnya.
Penyusunan aplikasi tersebut diberikan ruang pada Piranti Lunak MapInfo dengan
menggunakan Bahasa Pemrograman dasar yang dikenal dengan MapBasic, pada
perkembangannya penggunaan MapBasic tidak hanya digunakan secara mandiri namun
lebih sering terintegrasi dengan Bahasa Pemrograman lainnya yang didukungnya, yaitu:
Visual Basic, Delphi, PowerBuilder, dan C/C++. MapBasic juga mendukung pemrograman
API serta Active-X dengan Map-X. Fasilitas ini bertujuan guna meningkatkan kemudahan
dan variasi yang lebih luas bagi pengembangan MapInfo itu sendiri dibanding hanya
menggunakan MapBasic semata dengan segala kelebihan dan kekurangannya.
Modul ini pada bagian awal diberikan pengetahuan dasar tentang MapBasic, kisi
kisi yang disajikan merupakan kisi utama yang selalu dilakukan bagi setiap pemrograman,
disusun secara ringkas sederhan agar lebih mudah dipahami baik untuk pemula ataupun
untuk memberikan panduan bagi penyusunan pemrograman yang lebih kompleks.
Materi materi latihan dan program yang lebih detil disajikan dalam Format Digital
pada CD-ROM yang menyertai modul ini.
Jogjakarta, 14 Maret 2001
Salam Hangat,
Rizki Noor Hidayat Wijaya

MAPBASIC I
(Komputer dan Pemrograman)

Bab

1
Menggunakan MapBasic
Penyusunan, Kompilasi dan Eksekusi

ada bagian pendahuluan ini disajikan prosedur utama yang selalu


dilakukan dalam penyusunan suatu program dengan menggunakan
MapBasic. Prosedur lainnya akan selalu mengikuti pola yang ada
pada bagian awal ini. Sekalipun disajikan dalam format yang

sederhana namun memiliki fungsi yang sangat penting, juga bertujuan untuk
pemahaman yang lebih mudah untuk memberikan dasar dasar bagi
pengembangan dan variasi program selanjutnya.
Menulis Program
File>New
Note Selamat Datang di MapBasic Program
Command Note MsgBox vbOk pada VB atau Avenue
Project>Compile Current File
Project>Run
Tiga proses yang selalu berkait dalam penyusunan program menggunakan
MapBasic adalah: Penulisan, Kompilasi, Linking, dan Eksekusi. Untuk
program tunggal proses link dapat dilakukan langsung menggunakan menu
link,

namun

untuk

link

dengan

multi-program

sebelumnya

harus

dideklarasaikan seperti yang dijelaskan materi di bawah ini.

www.riskydigital.com

Link dan Module Program


Link menunjukkan keterkaitan program yang anda susun dengan program
lain yang telah anda tulis sebelumnya atau telah tersedia, link tidak jarang
berkaitan dengan diri program itu sendiri.
Penulisan Link:
[LINK]
Application=selamatdatang.mbx
Module=selamatdatang.mbo
Module=lainnya.mbo
Ketik statement diatas pada bagian atas program, ini ekuivalen dengan
penulisan Deklarasi program, penulisan ini berfungsi jika satu program
terkait dengan lebih dari satu modul, jika hanya terkait pada program itu
sendiri penulisan [link] ini dapat diabaikan, dan langsund dieksikusi
menggunakan menu:
Project>link current project
Akan terbentuk file *.mbx dengan nama sesuai nama program, file inilah
yang dapat dieksekusi.

www.riskydigital.com

SYNTAX BAHASA MAPBASIC


DASAR DASAR MAP BASIC
Tipe Data
Tipe

Ukuran Bytes

Karakter

Julat

Integer

2 byte

-32768 s.d 32768

Long

4 byte

-2147483,648 s.d 2147383647

Single

4 byte

38

Negative -3,402823 x 10 s.d -1,401298 x 10

!
Positive

Double

1,401298 x 10

-45

-4.94065645841247 x 10

#
Positive

4.94065645841247 x 10
1.79769313486232 x 10

Currency

8 bytes

String

1 byte per

38

s.d 3,402823 x 10

Negative -1.79769313486232 x 10

8 bytes

-45

308

s.d

-324

-324

s.d

308

-922337203685477,5808 s.d
922337203685477,5808

karakter

0 s.d 2 milyar karakter (95/97 & NT)


0 s.d 65535 karakter (versi 3.1)

Byte

1 byte

0 s.d 255

Boolean

2 byte

True, False

Date

8 byte

1 Jan 100 s.d 31 Jan 9999

Object

4 byte

Referensi Object

Variant

16 byte + 1 byte

Null, error, dan tipe seluruh tipe data lain,


misalnnya Boolean, numeric, string, objek,
array.

perkarakter

Looping dan Branching

DoLoop
Ada dua tipe Loop yaitu, Do..While..Loop dan Do..Until..Loop. Fungsi loop
ini adalah untuk melakukan pengulakan terhadap kondisi tertentu yang
disebutkan dalam blok statement, syntax loop:

www.riskydigital.com

Do [(While | Until) <kondisi>]


<ekspresi>
[Exit Do]
<ekspresi>
Loop
Format lainnya yang mungkin terjadi,
Do
<ekspresi>
[Exit Do]
<ekspresi>
Loop [(While | Until) <kondisi>]
Tuliskan penjelasan dan perbedaan masing masing metode penulisan Loop
diatas?

For..Next
Berfungsi untuk melakukan pengulangan (iterasi) suatu blok program
beberapa kali yang ditentukan oleh nilai awal dan nilai akhirnya, contoh:
Angkaku = 1
For i = 0 To 10
Angkaku = Angkaku + 1
Note Angkaku
Next
Maka pada form akan tercetak: 1 2 3 4 5 6 7 8 9 10
For i = 0 to 90 step 15

www.riskydigital.com

Angkaku i
Next i
Maka pada form akan tercetak: 0 15 30 45 60 75 90

If..Then...Else
Berfungsi untuk menjalankan satu blok program, bergantung pada nilai
ekspresi yang diuji, pada umumnya ekspresi ini bersifat logika (boolean; lihat
acara sebelumnya), struktur statement ini disajikan sebagai berikut:
If <ekspresi> Then
<ekspresi True>
Else
<ekspresi False>
End If
Bentuk lainnya,
If <ekspresi> Then
<ekspresi>
Elseif <ekspresi> Then
<ekspresi>
Elseif <ekspresi> Then
<ekspresi>
.
Else
<ekspresi>
End If
Atau,
If <ekspresi> Then <hasil>

www.riskydigital.com

Output dan Printing


Printing dapat dilakukan dengan menggunakan jendela Layout atau dari
View/workspace peta yang dihadapi, script untuk melakukan printing adalah
sebagai berikut:
Dim win_id As Integer
Open Table "world"
Map From world
win_id = FrontWindow()
' FrontWindow()dapat diganti dengan WindowID([index hex])
' WindowID from.hwnd
PrintWin Window win_id Interactive

Statement Print
Statemen print sama dengan fungsi pada bahasa basic lainnya, contoh:
Include "MAPBASIC.DEF"
Open Window Message
Set Window Message
Font ("Arial", 1, 10, BLUE)
Position (0.25, 0.25)
Width 3.0

' make window 3" wide

Height 1.0

' make window 1" high

Print "MapBasic Dispatcher now on line"

Error Handling
On Error
Statement

ini

digunakan

untuk

menangkap kesalahan atau yang

diakibatkan oleh penulisan program, aktifitas yang berkaitan dengan inilah

www.riskydigital.com

yang secara keseluruhan disebutkan dengan Error Handling, penulisannya


ada tiga bentuk variasi,
On Error GoTo <line>
On Error Resume Next
On Error GoTo 0
On Error GoTo <line>, jika terjadi kesalahan maka eksekusi perintah
akan dilanjutkan menuju baris yang ditentukan.
On Error Resume Next, jika terjadi kesalahan maka eksekusi dilanjutkan
pada baris berikutnya, bentuk ini lebih dianjurkan untuk penanganan
kesalahan secara global.
On Error GoTo 0, menjadikan perangkap kesalahan yang telah ditentukan
sebelumnya menjadi tidak aktif/tidak difungsikan.
Apabila anda tidak menggunakan perangkap kesalahan pada program anda
maka jika terjadi kesalahan, akan terjadi crash dengat tingkatan sesuai
kesalahan yang diperbuat, bisa hanya muncul pesan atau dapat menterminate program anda, atau akibat lainnya.
On Error GoTo MyTrap
'Buka file untuk output
Open "TestFile" For Output As #1
'Menghapus file yang terbuka
Kill "TestFile"
'Me Non-aktifkan Error Handling
On Error GoTo 0
'Jika terjadi kesalahan terus dilanjutkan line
berikutnya
On Error Resume Next

Exit Sub 'line berikutnya tidak dieksekusi


MyTrap:
Select Case Err.Number 'Code ID kesalahan pada
Mesin

www.riskydigital.com

Resume ' kembali kebaris yang salah diatas

OnGoSub dan OnGoTo


Untuk percabangan ke beberapa kemungkinan baris yang ditentukan.
Kondisi ini tergantung ekspresi yang ditentukan. Bentuk umumnya adalah,
On <ekspresi> GoSub <line>
On <ekspresi> GoTo <line>
Catatan: Select Case lebih dianjurkan dipakai untuk percabangan
disbanding dengan On..GoSub atau On..GoTo, karena lebih terencana dan
terstruktur (lihat: Select Case).

Hierarki Program
Pemahaman tentang hierarki program diperlukan untuk mengetahui ruang
lingkup setiap, statemen, deklarasi, fungsi, konstanta yang ditentukan
sehingga dapat menempatkannya pada posisi yang semestinya untuk
memastikan keberhasilan dan efektifitas suatu kode program.

Hierarki Tingkat Global:


Include statements (contoh "mapbasic.def")
Type...End Type statements
Declare Sub statements
Declare Function statements
Define statements
Global statements

... selanjutnya Prosedur Utama:


Sub Main
Dim statements
other statements

www.riskydigital.com

End Sub
... prosedur definisi:
Sub . . .
Dim statements
other statements
End Sub
... Prosedur Lainnya:
Function . . .
Dim statements
other statements
End Function

www.riskydigital.com

Bab

2
Menghubungkan MapBasic
dengan Aplikasi Lain
Pemrograman Terpadu
Pendahuluan
Pemrograman Terpadu disini yang dimaksudkan adalah sistem informasi
yang disusun berdasarkan Tabel MapInfo dapat dilakukan dalam berbagai
bahasa pemrograman, Visual Basic, Delphi, Power Builder, C/C++ maupun
dalam MapBasic sendiri. Pada dasarnya setelah melakukan koneksi dinamis
dengan aplikasi lainnya penyusunan Aplikasi Piranti Lunak berbasiskan
MapInfo akan lebih mudah menggunakan bahasa VB, Delphi, PB ataupun
C/C++ dibandingkan dengan menggunakan MapBasic dengan segala
keterbatasannya. Tentu untuk melakukannya diperlukan dasar dasar
kemampuan yang cukup dalam pemrograman untuk mengembangkan
menjadi Piranti Lunak yang memadai.
Berikut contoh script dalam VB untuk menampilakn Window Table MapInfo:
Dim

mi

As Object

Sub Form_Load()
Set mi = CreateObject("MapInfo.application")
mi.do "Set Application Window " & Form1.hWnd

www.riskydigital.com

10

mi.do "Set Next Document Parent " & Form1.hWnd & " Style 1"
mi.do "Open Table ""World"" Interactive

Map From World"

mi.RunMenuCommand 1702
mi.do "Create Menu ""MapperShortcut"" ID 17 As ""(-"" "
End Sub

Pemrograman Terpadu dengan Menggunakan VISUAL BASIC


Aktifasi Mesin MapInfo
Set mapinfo = CreateObject("MapInfo.Application")

Ini bukan berarti anda membukan Aplikasi MapInfo melainkan hanya


menyalakan mesinnya.
Apabila mesin sudah dinyalakan, tetapi anda ingin meng-attach kembali
maka tidak digunakan perintah CreateObject, melainkan:
Set mapinfo = GetObject( , "MapInfo.Application")

Menyampaikan Perintah
Selanjutnya perintah apapun dapat anda sampaikan ke MapInfo dengan
cara, seperti:
msg = "Open Table ""STATES.TAB"" Interactive "

mapinfo.Do msg
Dekalrasikan terlebuh dahulu mapinfo sebagai objek seperti contoh
sebelumnya.
Query
msg = "WindowID(0)"

www.riskydigital.com

11

Dim result As String


result = mapinfo.Eval

"WindowID(0)"

Mengubah Ukuran Form


Pada saat anda menampilkan peta pada form pada latihan sebelumnya
ukuran view peta adalah tetap, jika form kita ubah ukurannya dengan lebih
besar atau maksimal maka view akan tetap pada default tampilan kita. Untuk
merubah

ukuran

peta

secara

dinamis

maka

lakukanlah

dengan

menambahkan:
Modul:
Declare Function MoveWindow Lib "user32" _
(ByVal hWnd As Long, _
ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal bRepaint As Long)

As Long

Pada aksi Resize form isikan dengan perintah sebagai berikut:


Private Sub Form_Resize()
'Set ukuran Form kedalam Pixel
Dim mHwnd As Long
mHwnd = Val(mi.Eval("WindowInfo(FrontWindow(),12)"))
MoveWindow mHwnd, 0, 0, Me.ScaleWidth, Me.ScaleHeight, 1
End Sub

Dapatkan anda perhatikan berbedaan sebelum dan sesudah diberikan


statement seperti diatas?
Menampilkan Jendela Informasi
mi.do "Set Window Info Parent " & Form1.hWnd
mi.do "Set Window Info ReadOnly"

www.riskydigital.com

12

dua baris diatas diperlukan untuk menyiapkan space window informasi,


sedangkan perintah di bawah untuk mengaktifkan tombol Tool Info.
mi.RunMenuCommand 1707

Mencetak Peta pada Window


mapinfo.do

"PrintWin"

Untuk cetak coba anda dapat menggunakan Adobe Acrobat sehingga akan
meningkatkan efisiensi terhadap adanya kemungkinan kesalahan cetak.
Menutup Sesi MapInfo
Set mi = Nothing
Untuk membuka sesi, anda perlu membuat obyek MapInfo baru lagi, dengan
cara yang sama seperti yang telah dilakukan sebelumnya:
Set mi = CreateObject("MapInfo.application")

MENJALANKAN APLIKASI MAPBASIC


Anda dapat menjalankan aplikasi mana saja yang anda inginkan melalui
MapBasic dengan perintah Run Application [file/s], contoh di bawah ini
adalah file Report.mbx. Report.mbx ini merupakan file hasil kompilasi
program MB yang bernama Report.mb.
Run Application "C:\MAPBASIC\APP\REPORT.MBX"
Anda juga dapat menampilkan Workspace untuk dieksekusi,contoh:
Run Application "Parcels.wor"

www.riskydigital.com

13

MENJALANKAN APLIKASI LAINNYA


Berikut ini perintah pada MB:
Run Program

"notepad.exe

infoku.txt"

Menjalankan program DOS:


Run Program "command.com /c

dir c:\mapinfo\ >C:\dirlist.txt"

Hasil dari perintah ini adalah file dirlist.txt yang berisi informasi direktori
dibawah folder c:\mapinfo.
Pada Visual Basic dapat dikerjakan, dengan:
ShellExecute(Form1.hWnd, "open", [file], vbNullString, d, SW_SHOWNORMAL)

Atau dapat dikerjakan dengan sebelumnya membuat modul:


Public Function RunProg(prog As String) As Long

Dim p As PROCESS_INFORMATION
Dim s As STARTUPINFO
Dim r As Long
s.cb = Len(s)
s.dwFlags = 0
s.lpDesktop = vbNullString
s.lpReserved = vbNullString
s.lpTitle = vbNullString
r = CreateProcess(prog, vbNullString, 0, 0, True, _
NORMAL_PRIORITY_CLASS, 0, vbNullString, s, p)
If r <> 0 Then
r = CloseHandle(p.hThread)
If r <> 0 Then
r = WaitForInputIdle(p.hProcess, INFINITE)
r = CloseHandle(p.hProcess)
End If

www.riskydigital.com

14

End If
RunProg = p.dwProcessId
End Function

Selanjutnya proses eksekusi dapat dilakukan dengan:

Dim p As Long
p = RunProg("c:\windows\notepad.exe")

FILE INPUT-OUTPUT
Fungsi fungsi file I/O pada MB memiliki standar yang sama dengan fungsi
pada bahasa program Basic lainnya, untuk itu untuk lebih memdalami
fungsinya pada bagian Suplemen disajikan materi serta contoh program
yang menunjukkan fungsi ini dalam format analog dan digital [lihat pada
folder dengan nama Acara].
Statement dan Fungsi fungsi:
Membuka/membuat

Open File

Menutup file

Close File

Menghapus

Kill

Menamai

Rename File

Kopi

Save File

Membaca

Get, Seek, Input #, Line Input #

Menulis

Put, Print #, Write #

Melihat status

EOF( ), LOF( ), Seek( ), FileAttr( ), FileExists( )

Sampai pada bagian ini anda telah mengetahui konsep konsep dasar
penyusunan Aplikasi dengan menggunakan MapBasic baik mandiri maupun
yang diintegrasikan dengan menggunakan Visual Basic, kreatifitas anda akan

www.riskydigital.com

15

meningkatkan kemampuan dalam melakukan variasi yang lebih dalam serta


penggunaan beberapa Bahasa Pemrograman yang telah dimungkinkan.
Nah, selanjutnya materi materi tentang:
Fungsi
Fungsi Mandiri
Fungsi Konversi Data
Fungsi Waktu dan Penanggalaan
Fungsi Matematis
Fungsi String
Peta dan Objeknya
Layer Peta
Membuat Obyek
Memodifikasi Obyek
Query
Tools
akan lebih menarik apabila langsung dipraktikkan, untuk itu silakan anda
membuka file file latihan yang telah disediakan.
Pada bagian berikut disajikan SUPLEMEN bagi anda yang belum familiar
dengan bahasa Visual Basic yang digunakan untuk penyusunan Aplikasi
secara terintegrasi. Pemilihan bahasa VB ini dilandasi adanya kesamaannya
dengan bahasa MB dibanding Delphi, PB, C/C++ yang memungkinkan
juga untuk dilakukan secara integratif.

www.riskydigital.com

16

SUPLEMEN PEMROGRAMAN
MENGGUNAKAN

VISUAL BASIC

www.riskydigital.com

17

P E N G E N A L A N

A P L I K A S I

V I S U A L

B A S I C

Acara

Pengenalan Aplikasi Visual Basic


Pengantar

elamat Datang di VISUAL BASIC, cara tercepat dan termudah untuk


membuat aplikasi aplikasi dalam Microsoft Windows. Apakah
anda

seorang

Profesional

yang

berpengalaman

dibidang

pemrograman ataukan yang baru saja mengenalnya, Visual Basic

menyajikan untuk anda cara alat yang lengkap untuk mempermudah


pembangunan aplikasi secara cepat.
Lalu apakah Visual Basic itu? Visual berkaitan dengan metode yang
digunakan untuk menyusun Graphical User Interface (GUI), bukan lagi
menulis berbaris baris kode untuk menjelaskan kenampakan dan lokasi
dari suatu interface ataupun elemen program, anda cukup menambahkan
dan menyusunnya kembali piranti yang telah ada pada Visual Basic di layer.
Jika anda telah pernah menggunakan program Paint misalnya, sebenarnya
anda telah memiliki bekal yang cukup untuk membuat suatu interface yang
effectif.
Basic berarti bahasa BASIC (Beginners All-Purpose Symbolic Instruction
Code), suatu bahasa yang digunakan oleh lebih banyak programmer
dibanding bahasa lainnya dalam sejarah computer. Visual Basic telah

www.riskydigital.com

PENGENALAN APLIKASI VISUAL BASIC

berevolusi dari bahasa Basic asli dan sekarang telah berisi beratus- ratus
statement, fungsi, dan keyword, serta banyak darinya yang berkaitan
langsung dengan GUI dari Microsoft Windows sebagai suatu system Operasi
yang poluler saat ini. Pemula dapat membuat aplikasi yang bermanfaat
hanya dengan menggunakan sedikit kata kata kunci saja, kekuatan dari
bahasa ini mampu membuat professional menyelesaikan semua yang dapat
di selesaikan oleh Bahasa Pemrogramman Windows.
Bahasa pemrograman Visual Basic bukan hanya untuk VB itu sendiri. System
pemrograman VB, juga dimanfaatkan oleh Edisi Program Aplikasi, seperti
pada Microsoft Excel, Microsoft Access, dan Aplikasi Windows lainnya yang
menggunakan bahasa yang sama. Edisi Penulisan VB (VBScrit) juga secara
luas digunakan, seperti dalam aplikasi Internet misalnya.
Visual Basic memiliki tools yang anda perlukan apapun tujuan anda dalam
menyusun aplikasi baik kecil maupun system enterprise yang besar sekalipun,
atau aplikasi aplikasi yang secara global dapat diakses melalui internet:

Kelengkapan Data Access, memungkinkan kita membuat basis data,

front end application, komponen komponen penyaji dalam


berbagai ukuran, untuk hampir untuk semua format basis data yang
popular, termasuk Microsoft SQL Server dan Basis data Tingkat
Enterprise.

Teknologi ActiveX memungkinkan kita secara fungsional menyajikan


aplikasi aplikasi lainnya serperti Microsoft Word word processor,
Microsoft Excel spreadsheet, dan Aplikasi Windows lainnya. Anda pun
juga dapat melakukan automasi pada setiap obyek yang tersusun
menggunakan Visual Basic seri Professional maupun Enterprise.

www.riskydigital.com

PENGENALAN APLIKASI VISUAL BASIC

Kemampuan

Internet,

membuatnya

mudah

menyajikan

dan

mengakses dokumen dan aplikasi melalui Internet atau melalui form


form internetnya dengan aplikasi anda, atau untuk menyusun aplikasi
penyaji.
Aplikasi akhir anda adalah benar benar file .exe yang menggunakan suatu
Mesin Virtual Visual Basic secara bebas didistribusikan (disebut dengan VB
RunTime dari Versi 100 hingga 6)

Program I
Memulai VB
Klik
Start Menu\Programs\Microsoft Visual Studio 6.0\Microsoft Visual Basic 6.0
Akan lebih baik jika anda menggunakan layout program seperti pada
gambar berikut, hal ini berkaitan dengan kemudahan mengakses tiap
jendela informasi, perlengkapan ataupun peralatan yang digunakan pada
saat kita sedang melakukan pemrogramman:

Form

www.riskydigital.com

PENGENALAN APLIKASI VISUAL BASIC

Toolbox
Toolbox berisi control control yang digunakan pada pemrograman, control
tersebut akan muncul apabila komponen yang terkait dengannya muncul,
cara menambahkan control:
Ka Toolbox>component>pilih control yang diinginkan>ok
Perhatikan antara Toolbox standart dan yang telah ditambahkan control
baru:

Microsoft Common ontrol 6.0

www.riskydigital.com

PENGENALAN APLIKASI VISUAL BASIC

Project Windows
Menunjukkan object apasaja yang anda gunakan pada program, atau dapat
dikatakan sebagai project exploler pada program seperti Trispective, kategori
isi dari project windows ini, adalah:

Form

MDI Form

Module

Class Module

User Control

Properti Page

User Document

---------------------

Add Ins Class

DHTML Page

Data Report

Web Class

ActiveX

Other Insertion File .

Penjelasan mengenai hal tersebut ada pada Materi Kuliah I

Project Property
Berisi tentang property yang dimiliki oleh tiap control terpilih, pada beberapa
control property tambahan ada pula yang tidak secara untuh disajikan pada
bagian ini, untuk membukannya Ka pada Kontrol yang terpilih, seperti pada
control TOOLBAR.
Untuk control yang sejenis misalnya Picture Box dengan Image Box anda
akan mendapatkan kelengkapan yang berbeda, lalu,
Bilamana kita menggunakan salah satu diantara keduanya?

www.riskydigital.com

PENGENALAN APLIKASI VISUAL BASIC

Form Layout
Menunjukkan dimana form yang kita buat akan terletak pada layer, ini hanya
berfungsi apabila Properti Form kita, pada saat
StartUpPosition

Manual

Tidak berlaku pada value : Windows Default, Center of Owner/Screen.

Membuat Program I
Akronim:
Ka

: Klik Kanan

Ki

: Klik Kiri

DD

: Double Klik

Langkah I
Ka Project 1>ADD FORM

Akan ditambahkan pada layer anda form sebagai berikut:

www.riskydigital.com

PENGENALAN APLIKASI VISUAL BASIC

Kemudian lanjutkan dengan dengan menggambar form tersebut dengan


control:

Label

TextBox, dan

Command Button

Sehingga menghasilkan bentuk seperti dibawah ini:

Ubahlah tiap Nama Default pada control tersebut,


Form1

Acara1_1

Command1

Hitung

Command2

Keluar

Text1

Text1 copy dan paste, jika ada pertanyaan untuk


melakukan index, > ok, sehingga terbentuk indek text1
dari 0 hingga 3.

Ubahlah Caption, masing masing control dengan,


Form1

Rasio Kematian

Command1

Hitung

Command2

Keluar

Text1(0)

Propinsi

Text1(1)

Jumlah Penduduk

Text1(2)

Kematian

www.riskydigital.com

PENGENALAN APLIKASI VISUAL BASIC

Text1(3)

Rasio

Nilai dalam kurung ( ) menunjukkan index dari control dengan nama yang
sama, tanpa index maka tidak ada control yang bisa memiliki nama yang
sama karena Nama bersifat unik.
Jika textbox satu dengan yang lainnya berbeda nama maka tidak ada nilai
dalam ( ).
Project Exploler>View Code
Tuliskan Kode sebagai berikut:
Private Sub Form_Load()
On Error Resume Next
For i = 0 To 3
Text1(i).Text = ""
Next i
End Sub
Private Sub Hitung_Click()
On Error Resume Next
Dim PDD As Double
Dim Mati As Double
Dim MyCalc
PDD = Text1(1).Text
Mati = Text1(2).Text
MyCalc = Mati / PDD
Text1(3).Text = MyCalc
menuliskan pesan dari data yang dihitung
MsgBox "Rasio kematian Propinsi " & _
Text1(0).Text & ", adalah: " & Text1(3).Text, _
vbOKOnly, "Informasi Rasio Kematian"
End Sub
Private Sub Keluar_Click()
End
End Sub

www.riskydigital.com

PENGENALAN APLIKASI VISUAL BASIC

Akan tampak pada jendela kode, seperti gambar dibawah ini:

Membuat File Eksekusi


File eksekusi inilah yang seringkali anda jumpai pada saat membuka aplikasi
program, misalnya Microsoft Word dengan Word.exe, Microsoft Excel
dengan Excel.exe.
Nah sekarang buatlah progam pertama anda ini menjadi file eksekusi
mandiri dengan:
File> Make Acara1_1.exe>
Tentukan:
Folder File

: C:\Latihan\Acara1

Nama File

: Rasio Kematian.exe

>Okey!!

www.riskydigital.com

PENGENALAN APLIKASI VISUAL BASIC

>Options>Make
Tentukan: (Jika waktu tidak mencukupi Tahap ini lewati saja)
Comment

: Program pertamaku

Company Name

: MyCommpany

File Description

: .dst
>Options>Compile

Lihat penjelasan pada Materi Konvensi Dalam Visual Basic, Bab II


Perhatikan dengan teliti, bahwa setiap sub command memiliki perintah,
On Error Resume Next
inilah yang disebut dengan Error Handler, yang berfungsi untuk menjebak
jika terjadi kesalahan Script atau RunTime, selain itu masih terdapat berbagai
macam Type dan Teknik dari Error Handling ini.

Lakukan Script tersebut tampa Error Handler dengan menghapus


baris yang berisikan Statement On Error Resume Next, eksekusi
file !
o

Apa yang terjadi?

Catat!

Mengapa Demikian?

Ubah Tipe data dari PDD dan Mati dari Double menjadi Integer
atau yang lain, eksekusi file, isikan nilai yang diminta!
o

Apa yang terjadi?

Catat!

Mengapa demikian?

Berikan penjelasan masing masing langkah yang tertulis pada


kode/script, apa maksudnya (singkat saja)

Langkah 2

www.riskydigital.com

10

PENGENALAN APLIKASI VISUAL BASIC

Hampir sama dengan langkah 1, tetapi tiap textbox akan memiliki nama
yang berbeda (unik), hal ini akan berimplikasi tehadap penulisan kode
tentunya.
Ubahlah tiap Nama dan Caption Default pada control tersebut, menjadi:
Form1

Acara1_1

Command1

Hitung

Command2

Keluar

Text1

Propinsi

Text2

Jumlah_Penduduk

Text3

Kematian

Text4

Rasio

Khusus untuk Text2 Caption, adalah sebagai berikut:


Text2

Jumlah Penduduk

Perhatikan! perbedaan aturan penulisan Name dan Caption


Maka kode yang ditulis akan berubah, menjadi:
Private Sub Form_Load()
On Error Resume Next
Propinsi.Text = ""
Jumlah_Penduduk.Text = ""
Kematian.Text = ""
Rasio.Text = ""
Exit Sub
MyErrorTrap:
If Err > 0 Then Call MS_GlobalErrorHandler("Sub
Form_Load()")
Resume Next
End Sub
Private Sub Hitung_Click()
On Error Resume Next
Dim PDD As Double
Dim Mati As Double

www.riskydigital.com

11

PENGENALAN APLIKASI VISUAL BASIC

Dim MyCalc
PDD = Jumlah_Penduduk.Text
Mati = Kematian.Text
MyCalc = Mati / PDD
Rasio.Text = MyCalc
MsgBox "Rasio kematian Propinsi " & Propinsi.Text & _
", adalah: " & Rasio.Text, vbOKOnly, "Informasi Rasio
Kematian"
Exit Sub
MyErrorTrap:
If Err > 0 Then Call MS_GlobalErrorHandler("Sub
Hitung_Click()")
Resume Next
End Sub
Private Sub Keluar_Click()
End
End Sub
Pada Langkan 2 ini selain anda dikenakan pada fungsi index juga
dikenalkan lagi teknik menjebak suatu kesalahan, pada teknik ke dua ini
anda akan mendapatkan deskripsi yang jelas mengenai tipe kesalahan yang
telah anda lakukan, seperti pada gambar dibawah ini:

Pesan ini terjadi karena data tidak terisikan, maka nilai kosong pada format
double tidak ada sehingga dianggap variable input yang diberikan tidak
termasuk dalam tipe tersebut, jika terjadi Overflow maka input atau output
yang diberikan melampaui julat dari criteria/format yang telah kita tentukan.

www.riskydigital.com

12

PENGENALAN APLIKASI VISUAL BASIC

Untuk menjalankan Teknik ke-2 dari error handler ini perlu ditambahkan
dengan Module dengan,
Project Exploler>Add Module>Ok
Isikan Pada Jendela Kode sebagai berikut:
Public Sub MS_GlobalErrorHandler(MySub As String)
Dim ErrStr$
ErrStr$ = "Kesalahan CodeNo. " & Trim$(Str$(Err)) & "
pada " & _ MySub & " (baris ke = " & Erl & ")" &
Chr$(10) & Chr$(13)
ErrStr$ = ErrStr$ & "Disaat dijalankan " &
App.EXEName & _
".exe v" & Format$(App.Major, "#") & "." & _
Format$(App.Minor, "0#")
ErrStr$ = ErrStr$ & "(Build " & Format$(App.Revision,
"##") & _ ")" & Chr$(10) & Chr$(13) & "Type Kesalahan
= '" & Error$ & _ "'"
ErrStr$ = ErrStr$ & Chr$(10) & Chr$(13) & "Pilih 'OK'
maka " & _ program akan tetap dilanjutkan."
If MsgBox(ErrStr$, 49, "Pesan Kesalahan") = vbCancel
Then End
End Sub

Tulis perbedaan penanganan kesalahan I dan II!


o Menurut anda apa keuntungan dari keduanya?

Penggunaan index menurut anda menguntungkan atau


menyulitkan?

www.riskydigital.com

13

T I P E

D A T A ,

V A R I A B E L ,

D A N

O P E R A T O R

Acara

Tipe Data, Variabel dan Operator


TIPE DATA

emilihan tipe data yang tepat akan sangat bermanfaat dalam hal,
menghemat memori system, kecepatan proses eksekusi, ketelitian
perhitungan dan manfaat lainnya.
Sekalipun demikian untuk latihan awal ini janganlah anda terlalu

memikirkan secara mendalam penggunaan tipe data yang tepat, karena


pada saatnya anda akan mengetahuinya dengan sendirinya sewaktu
menyusun algorithma. Namun demikian, merupakan hal yang baik dan
bermanfaat apabila anda menyadari betul dan membiasakan diri dalam
menggunakannya secara tepat dan cermat, karena hal ini merupakan salah
satu hal yang paling penting dalam menyusunan program skala besar atau
enterprise yang membutuhkan efisiensi yang maksimum pada setiap program
yang digunakan.
Berikut ini dijelaskan berbagai tipe data, yang dilanjutkan dengan
pembahasan tentang kaitan tipe data ini dengan memori rentang data,
ketelitian, penggunaan tipe data khusus, dan penyusunan tipe data sendiri,
sebagai berikut:
Tipe

Ukuran Bytes

Karakter

Julat

Integer

2 byte

-32768 s.d 32768

Long

4 byte

-2147483,648 s.d 2147383647

Single

4 byte

Negative -3,402823 x 10 s.d -1,401298 x 10

www.riskydigital.com

38

-45

14

T I P E

D A T A ,

V A R I A B E L ,

D A N

O P E R A T O R

Positive

Double

1,401298 x 10

-45

Negative -1.79769313486232 x 10

8 bytes

-4.94065645841247 x 10

#
Positive

4.94065645841247 x 10
1.79769313486232 x 10

Currency

8 bytes

38

s.d 3,402823 x 10

308

s.d

-324

-324

s.d

308

-922337203685477,5808 s.d
922337203685477,5808

String

1 byte per
karakter

0 s.d 2 milyar karakter (95/97 & NT)


0 s.d 65535 karakter (versi 3.1)

Byte

1 byte

0 s.d 255

Boolean

2 byte

True, False

Date

8 byte

1 Jan 100 s.d 31 Jan 9999

Object

4 byte

Referensi Object

Variant

16 byte + 1 byte

Null, error, dan tipe seluruh tipe data lain,


misalnnya Boolean, numeric, string, objek,
array.

perkarakter

Penggunaan Memory dan Rentang Data


Ada perbedaan pengalokasian memori untuk satu tipe data dengan tipe data
lainnya. Tentu saja yang paling baik adalah semaksimal mungkin
menggunakan tipe data yng penggunaannya paling efisien, missal jika anda
memproses data nilai yang memiliki rentang 0 100 tanpa decimal maka
yang paling tepat adalah menggunalkan tipe data Byte (hanya memerlukan 1
byte saja), dibandingkan bila anda menggunakan tipe Integer (2 byte) atau
Long (4 byte). Tetapi tentu saja, jika bilangan yang diproses melampaui julat
dari tipe Byte, atau memiliki bilangan decimal/pecahan, maka anda tidak
lagi dapat menggunakan tipe Byte, dan seterusnya.

Ketelitian Penggunaan
Efisiensi penggunaan memori merupakan hal yang penting, namun demikian
akurasi perhitungan dipandang memiliki prioritas yang lebih tinggi dibanding

www.riskydigital.com

15

T I P E

D A T A ,

V A R I A B E L ,

D A N

O P E R A T O R

hal tersebut. Semisal tipe data Single memiliki ketelitian 6 digit dibelakang
titik

decimal,

sedangkan

Double

14,

maka

bilamanakah

anda

menggunakan keduanya?
Untuk lebih memahami masalah ketelitian data ini, buatlah satu project
dengan satu form (simpan dengan nama acara2_a) dan tuliskan kode
programmnya seperti berikut:
Private Sub Command1_Click()
Dim A As Single
Dim B As Double
A = 1 / 3
B = 1 / 3
Form1.Print "1/3 menurut Tipe Single adalah: " & A *
1000000
Form1.Print "1/3 menurut Tipe Double adalah: " & B *
1000000
End Sub
Private Sub Command2_Click()
Form1.Cls
End Sub

Script diatas akan menghasilkan tampilan windows seperti gambar dibawah


ini,

(File Acara2_a.vbp)

Tipe Data Varian


Anda pun dapat mendeklarasikan suatu variable tanpa menunjukkan tipenya,
inilah yang kelompok ini disebut tipe data variant. Tipe ini dapat dipakai
untuk menampung data null, error, dan seluruh tipe data lainnya, seperti

www.riskydigital.com

16

T I P E

D A T A ,

V A R I A B E L ,

D A N

O P E R A T O R

Boolean, numeric, string, object, array. Kondisi ini menjadikan pengguna


bebas menentukan tanpa kesulitan menentukan tipe variable yang tepat,
tetapi untuk algorithma dan perhitungan yang spesifik penggunaanya
haruslah hati hati dan sangat selectif agar hasil perhitungan sesuai tepat
dengan yang diharapkan. Perlu diingat pula bahwa tipe ini memerlukan
memori paling besar dibandingkan tipe lainnya (lihat table diatas).

Tipe Data Buatan Sendiri


Aplikasi VB memungkinkan anda membuat tipe data baru sesuai dengan
keinginan anda dengan mengambil salah satu atau beberapa tipe data
standar yang disediakan, contohnya pada penanganan basis data sering
diperlukan variable yang dapat menampung 1 record data.
Record tersebut terdiri dari tipe data yang berbeda misal:
Propinsi
Kabupaten
Nama
Alamat
Tempat Lahir
Gaji
Tipe Numeric menampung data Gaji, dan tipe Date untuk Tanggal
Lahir. Record Data Kepegawaian ini disebut tipe data terstruktur.
Penulisan umum tipa data Customize ini sebagai berikut:
Private Type DataPegawai

End Type
Atau,
Public Type DataPegawai

www.riskydigital.com

17

T I P E

D A T A ,

V A R I A B E L ,

D A N

O P E R A T O R

End Type
Contoh Kode,
Public Type Data Pegawai
NIP As String * 6
Nama As String * 25
Alamat As String * 25
Kota As String 25
TempatLahir As String * 10
TanggalLahir As Date
GajiPokok As Long
End Type

Variabel
Variable adalah suatu tempat dalam memori computer yang diberi nama
(pengenal dan bersifat unik/tidak terduplikasi) dan dialokasikan untuk
menampung data.
Ada 2 cara mendeklarasikan suatu variable yaitu,
1. Deklarasi eksplisit, caranya dengan menggunakan perintah DIM,
contoh:
Dim Nama As String
Dim Alamat As String * 30
2. Deklarasi Implisit, yaitu dengan meletakkan tanda tipe variable
setelah nama variable, contoh:
Nama$ = Budi

www.riskydigital.com

Tanda & berarti Tipe String

18

T I P E

D A T A ,

V A R I A B E L ,

D A N

O P E R A T O R

Gaji& = 4000000
Deklarasi Eksplisit dipandang lebih terkontrol dan terencana dibanding
implicit.

Nama Variabel
Penggunaan nama variable dianjurkan memiliki keselarasan dengan
identifikasi data yang dikandungnya serta memiliki fungsi agar mudah
dikenali, diingat dan singkat jelas, contoh: Nama Mahasiswa dapat ditulis
sebagai variable dengan NamaMHS, penentuan kapitalisasi juga akan
mempermudah dalam mengenalinya, sebab tidak jarang antara object dan
variable memiliki kemiripan.
Catatan: kapitalisasi pada kode akan secara automatis menyesuaikan
dengan deklarasi variable serta prosedur yang telah ditentukan sebelumnya.
Beberapa aturan yang berlaku pada menggunaan nama variable, sebagai
berikut:
1. Harus dimulai dengan karakter alphabet (huruf), bukan angka atau
symbol lainnya.
2. Bersifat unik (tidak ada duplikasi) pada ruang lingkup variable yang
sama
3. Tidak lebih dari 255 karakter (8 bit), dan hanya 40 karakter pertama
yang dianggap sebagai Nama variabelnya (selanjutnya diabaikan)
4. Tidak diperkenankannya karakter ( +, -, *, /, <, >, :, ;,dst)

Ruang Lingkup Variabel


Ruang lingkup menunjukkan jangkauan dimana suatu variable dapat dikenali
pada suatu lingkup program, dan berhubungan dengan waktu hidup variable

www.riskydigital.com

19

T I P E

D A T A ,

V A R I A B E L ,

D A N

O P E R A T O R

ini. Suatu variable dapat dikenali pada seluruh lingkup program atau dapat
pula hanya dikenali pada prosedur atau fungsi dimana variable itu
dideklarasikan. Berikut ini gambar ruang lingkup variable,

Variabel PROJECT yang bersifat Pulbic dikenali di Seluruh Bagian Program

VARIABEL Form DIKENALI PADA FORM YANG BERSANGKUTAN SAJA


PROCEDURE

PROCEDURE

Variabel Lokal Dikenali pada

Variabel Lokal Dikenali pada

Prosedur Ini saja

Prosedur Ini saja

Variabel MODULE dikenali pada form yang bersangkutan saja


PROCEDURE

PROCEDURE

Variabel Lokal Dikenali pada

Variabel Lokal Dikenali pada

Prosedur Ini saja

Prosedur Ini saja

Ruang lingkup paling dalam adalah runga lingkup Procedure. Jika anda
mendeklarasikan secara eksplisit suatu variable di dalam suatu procedure
dengan perintah DIM, PRIVATE, atau STATIC, maka variable yang
dideklarasikan mempunyai runga lingkup procedure, artinya hanya dikenal
dan dapat dipakai pada yang bersangkutan saja. Jika terdalap procedure
lain atau terdapat variable lain dengan nama yang sama di level atas (form
atau modul) maka akan dikalahkan serta tidak akan saling mengganggu,
contoh:

www.riskydigital.com

20

T I P E

D A T A ,

V A R I A B E L ,

D A N

O P E R A T O R

Private Sub Command_Click()


Dim Nama As String
Dim Alamat As String
Static Kodeku As Integer

End Sub

Perbedaan DIM dan STATIC, adalah waktu hidupnya. Dim hanya


hidupt/berlaku hanya selama procedure bersangkuta dijalankan, sementara
Statik selama aplikasi masih dijalankan maka nilai terakhir dari Static masih
tersimpan.
Perbedaan Public dan Private, adalah lingkupnya, Public akan dikenali pada
seluruh program aplikasi sedangkan Private hanya dalam procedure yang
bersangkutan, contoh:
Public Nilai As String * 10 level global atau public atau aplikasi
Private Bilangan As Integer level modul/form
Dim Hargaku As Single

level modul/form (sama dengan private)

OPERATOR
Operator Penugasan
Operator penugasan (assignment) disimbolkan dengan tanda = dan
berfungsi untuk memasukkan suatu data ke dalam suatu variable.
Penulisannya adalah
<variable> = <ekspresi>
contoh,

www.riskydigital.com

21

T I P E

D A T A ,

V A R I A B E L ,

D A N

O P E R A T O R

Awal = Now
Harga = 5000
Nilaiku = A
dst

Operator Aritmatika
Digunakan untuk melakukan operasi aritmatika, operasi ini memiliki herarki
paling tinggi disbanding operator lainnya (operator logika), disajikan sebagai
berikut:
Simbol

Operasi

Pemangkatan

Tanda Negatif

*, /
\

Perkalian dan Pembagian


Pembagian Integer

Mod

Modulus (sisa pembagian)

+,-

Penambahan dan Pengurangan

+,&

Penggabungan String

Operator penggabungan string sebenarnya tidak termasuk dalam kategori


operator aritmatika, tetapi hierarkinya persis dibawah operator aritmatika
dan diatas operator pembandingan. Hasil dari operator + dan & hampir
sama, anda dianjurkan menggunakan & disbanding +,
r & i & 2

hasilnya

ri2

r + i + 2

hasilnya

error (tidak dapat dilaksanakan, karena

hierarki arimatika diatas penggabungan.


Buatlah program aplikasi baru dengan kode dibawah ini,
Private Sub Command1_Click()

www.riskydigital.com

22

T I P E

D A T A ,

V A R I A B E L ,

D A N

Form1.Print
Form1.Print
Form1.Print
Form1.Print
Form1.Print
Form1.Print
Form1.Print
Form1.Print
Form1.Print
Form1.Print
End Sub

O P E R A T O R

2 + 3 * 4
2 ^ 4
-2 ^ 4
(-2) ^ 4
16 ^ 0.5
11 / 2
"2" + 3
"2" + "3"
2 + 3
"Saya " + "suka " + "GIS"

Hasilnya adalah sebagai berikut,

(File Acara2_b.vbp)

Operator Pembandingan
Operator pembandingan digunakan untuk membandingkan suatu ekspresi
dengan ekspresi lainnya dan menghasilkan nilai logika (Boolean) benar atau
salah (true/false), dua ekspresi tersebut haruslah memiliki tipe yang sama.
Nilai Boolean dapat wakili dengan bilangan integer ,
-1 berarti benar (true)
0 berarti salah (false)
Simbol

Operasi

Sama Dengan

<>

Tidak sama dengan

www.riskydigital.com

23

T I P E

D A T A ,

V A R I A B E L ,

D A N

O P E R A T O R

<

Lebih kecil

>

Lebih besar

<=

Lebih kecil atau sama dengan

>=

Lebih besar atau sama dengan

Like

Yang memiliki ciri yang sama

Is

Sama dengan referensi object

Beberapa penggunaan operator pembandingan dapat dilihat sebagai


berikut,
Test = 5 > 4

Variabel (Test) bernilai (True)

Test = 2 + 4 = 5

Variabel (Test) bernilai (False)

Test = 2 + 4 = 6

Variabel (Test) bernilai (True)

Sama = abc = ab

Variabel (Sama) bernilai (False)

Sama = abc = ab + c

Variabel (Sama) bernilai (True)

Sama = abc > aaa

Variabel (Sama) bernilai (True)

Sama = abcabc Like a*

Variabel (Sama) bernilai (True)

Sama = abcabc Like ab?abc

Variabel (Sama) bernilai (True)

YourObject = MyObject

MyObject dianggap suatu Object

ThisObject = MyObyject
ThatObject = OtherObject

OtherObject dianggap suatu Object

MyCheck = YourObject is ThisObject MyCheck is True


MyCheck = ThatObject is ThisObject MyCheck is True (Jika MyObject tidak
sama dengan OtherObject)
MyCheck = MyObject is ThatObject MyCheck is False

Operator Logika
Operator ini digunakan untuk mengekspresikan satu atau lebih ekspresi
olgika (Boolean) untuk menghasilkan data logika (Boolean) baru, sebagai
berikut,

www.riskydigital.com

24

T I P E

D A T A ,

V A R I A B E L ,

Operator

D A N

O P E R A T O R

Keterangan

Not

Tidak

And

Dan

Or

Atau

Xor

Exclusive Or

Eqv

Ekuivalen

Imp

Implikasi

Not
Operator Not menghasilkan nilai kebalikan dari suatu data logika dan
mempunyai hierarki paling tinggi pada operator logika, tetapi perlu diingat
bahwa hierarki dari operator logika dibawah dari operator penugasan,
aritmetika dan pembandingan, Tabel hasil ekspresi Not adalah sebagai
berikut,
Operator

Keterangan

Not True

False

Not False

True

Contoh penggunaannya,
Private Sub Command1_Click()
Tes = Not 5 > 4 'menghasilkan nilai False
Form1.Print Tes
Test = Not 5 = 4 'menghasilkan nilai True
Form1.Print Test
End Sub
Hasilnya adalah sebagai berikut,

www.riskydigital.com

25

T I P E

D A T A ,

V A R I A B E L ,

D A N

O P E R A T O R

(File Acara2_c.vbp)
And
Operator And akan menghasilkan nilai Ture hanya jika dua buah ekspresi di
kiri dan kanan operator And bernilai True, simulasinya sebagai berikut,
Operator

Keterangan

False And False

False

False And True

False

True And False

False

True And True

True

Or
Ekspresi Or akan menghasilkan nilai True apabila salah satu atau kedua
statement memiliki nilai True, dan bernilai False jika keduanya bernilai False,
sebagai berikut:
Operator

Keterangan

False And False


False And True

False
True

True And False

True

True And True

True

Xor
Operator Xor akan bernilai True apabila salah satu dari statement bernilai
True dan bernilai False apabila keduanya bernilai False atau True, sebagai
berikut,
Operator

Keterangan

False And False

False
True

False And True

www.riskydigital.com

26

T I P E

D A T A ,

V A R I A B E L ,

True And False

True

True And True

False

D A N

O P E R A T O R

Eqv
Operator ini memiliki nilai yang berlawanan dengan Xor, yaitu bernilai True
apabila keda statement memiliki nilai True atau False, dan bernilai False
apabila salah satu dari keduannya bernilai False, sebagai berikut,
Operator

Keterangan

False And False


False And True

True
False

True And False

False

True And True

True

Imp
Operator ini unik karena suatu statement akan bernilai False hanya jika
statement sebelah kiri dari operator bernilai True dan kanan bernilai False,
selebihnya akan menghasilkan nila True, sebagai berikut,
Operator

Keterangan

False And False


False And True

True
True

True And False

False

True And True

True

www.riskydigital.com

27

S T A T E M E N T

Acara

3
Statement
STATEMENT DALAM MICROSOFT VISUAL BASIC

cara ke-3 anda akan dikenalkan dengan beberapa statement


pemrograman yang terdapat pada Visual Basic terutama yang
sangat sering digunakan.

Meskipun anda sudah cukup berpengalaman dalam pemrograman, ada


baiknya tetap mencoba contoh contoh yang akan dibahas, dengan
harapan pemahaman dan ketrampilan pemrograman anda menjadi lebih
baik.

GoSubReturn
Dimanfaatkan untuk percabangan tanpa syarat ke suatu sub-routine yang
ditandai dengan baris label atau baris nomor, setelah melalui sub-routine
yang dituju, control akan kembali ke baris dibawah perintah GoSub, contoh:
Private Sub Form_Activate()
Dim Angka As Single
Angka = InputBox("Masukkan anga yang akan dibagi dengan nilai 2: ", "Input")
GoSub Hitung
Form1.Print Angka
Exit Sub 'Agar perintah dibawah baris ini tidak dieksekusi
Hitung:
Angka = Angka / 2
Return 'Menuju line terakhir + 1 setelah GoSub
End Sub

www.riskydigital.com

28

S T A T E M E N T

(Acara3_a)

GoTo
Digunakan untuk percabangan tanpa syarat ke suatu baris label atau baris
nomor,

setelah

melewati

percabangan

tidakakan

kembali

kebaris

dibawahnya, contoh: (perhatikan perbedaan logika eksekusi dengan GoSub)


Private Sub Form_Activate()
Dim Angka As Single
Angka = InputBox("Masukkan anga yang akan dibagi dengan nilai 2: ", "Input")
GoSub Hitung
Form1.Print Angka
GoTo Selesai 'Menuju baris Selesai dengan melompati perintah antara
Hitung:
Angka = Angka / 2
Return 'Menuju line terakhir + 1 setelah GoSub
Selesai:
End Sub

Catatan:
Jika terlalu banyak statement GoTo maka program akan dapat sulit terbaca
dan sulit untuk menguji kesalahan program, untuk itu gunakan seselektif
mungkin, gunakan beberapa pilihan lainnya, DoLoop, ForNext,
IfThenElse, Select Case.

On Error
www.riskydigital.com

29

S T A T E M E N T

Statement

ini

digunakan

untuk

menangkap kesalahan atau yang

diakibatkan oleh penulisan program, aktifitas yang berkaitan dengan inilah


yang secara keseluruhan disebutkan dengan Error Handling, penulisannya
ada tiga bentuk variasi,
On Error GoTo <line>
On Error Resume Next
On Error GoTo 0
On Error GoTo <line>, jika terjadi kesalahan maka eksekusi perintah akan
dilanjutkan menuju baris yang ditentukan.
On Error Resume Next, jika terjadi kesalahan maka eksekusi dilanjutkan
pada baris berikutnya, bentuk ini lebih dianjurkan untuk penanganan
kesalahan secara global.
On Error GoTo 0, menjadikan perangkap kesalahan yang telah ditentukan
sebelumnya menjadi tidak aktif/tidak difungsikan.
Apabila anda tidak menggunakan perangkap kesalahan pada program anda
maka jika terjadi kesalahan, akan terjadi crash dengat tingkatan sesuai
kesalahan yang diperbuat, bisa hanya muncul pesan atau dapat menterminate program anda, atau akibat lainnya.
Private Sub Form_Activate()
'Mengaktifkan Error Handling
On Error GoTo MyTrap
'Buka file untuk output
Open "TestFile" For Output As #1
'Menghapus file yang terbuka
Kill "TestFile"
'Me Non-aktifkan Error Handling
On Error GoTo 0
'Jika terjadi kesalahan terus dilanjutkan line
berikutnya
On Error Resume Next
'Mengambil object yang tidak ada
ObjectRef = GetObject("MyVisual.Basic")
If Err.Number <> 0 Then 'jika error, maka True

www.riskydigital.com

30

S T A T E M E N T

'Beri Pesan kepada operator


MsgBox "Kesulitan mengakses object", vbOKOnly,
"Test Pesan"
'hapus kesalahan dari memori
Err.Clear
End If
Exit Sub 'line berikutnya tidak dieksekusi
MyTrap:
Select Case Err.Number 'Code ID kesalahan pada
Mesin
Case 55 'Tipe kesalahan file sedang dibuka
Form1.Print "File sudah terbuka"
Close #1
Case Else
'Ruang untuk kesalahan yang lain
End Select
Resume ' kembali kebaris yang salah diatas
End Sub
Teknik ini telah dikenalkan pada Acara I
(Acara3_c)

OnGoSub dan OnGoTo


Untuk percabangan ke beberapa kemungkinan baris yang ditentukan.
Kondisi ini tergantung ekspresi yang ditentukan. Bentuk umumnya adalah,
On <ekspresi> GoSub <line>
On <ekspresi> GoTo <line>
Catatan: Select Case lebih dianjurkan dipakai untuk percabangan
disbanding dengan On..GoSub atau On..GoTo, karena lebih terencana dan
terstruktur (lihat: Select Case).

Do Events
Statement ini digunakan untuk mengalihkan control program ke system
operasi dan statement ini tidak akan kembali sampai system operasi

www.riskydigital.com

31

S T A T E M E N T

mengerjakan seluruh event yang mengantri untuk diproses, dan menjalankan


seluruh penekanan tombol yang ada dalam buffers antrian SendKeys.
Fungsi ini biasanya dipakai secara periodic pada suatu operasi yang
membutuhkan proses yang lama, sehingga selama proses berlangsung
(misalnya membutuhkan waktu 10 menit), anda dapat memanggil fungsi
DoEvents (misalnya setiap 30 detik untuk melaksanakan event atau perintah
lain yang mengantri untuk didahulukan.
Hasil fungsi ini adalah angka yag menunjukkan jumlah form yang terbuka,
contoh penggunaannya sebagai berikut:
Private Sub Form_Activate()
Dim OpenForms
For i = 1 To 150000 'mulai loop
If i Mod 1000 = 0 Then ' If True then mengulang
1000x
OpenForms = DoEvents ' ke sistem operasi
Debug.Print OpenForms
End If
Next i
End Sub

End
Berfungsi untuk memaksa control program untuk berhenti dari suatu
procedure atau suatu blok diagram. Beberapa bentuk variasi tipe End,
sebagai berikut:
Operator

Keterangan

End

Menghentikan seluruh jalannya eksekusi program,


dapat diletakkan di sembarang tempat dan berakibat
pula menutup seluruh file, form dan menghapus
seluruh variable yang dideklarasikan.
Diperlukan untuk mengakhiri Function

End
End If
End Property

www.riskydigital.com

Diperlukan untuk mengakhiri blok pernyataan


If..Then..Else
Diperlukan untuk mengakhiri property Let, Get dan

32

S T A T E M E N T

End Sub

Set Procedure
Diperlukan untuk mengakhiri blok pernyataan Select
Case
Untuk mengakhiri pernyataan Sub

End Type

Untuk mengakhiri pernyataan Type (buatan sendiri)

End With

Untuk mengakhiri pernyataan With

End Select

Exit
Fungsi Exit untuk keluar dari blok program, seperti blok:
Do..Loop
Exit Do,
For..Next
Exit For,
Function
Exit Fuction,
Sub
Exit Sub,

Stop
Untuk menunda (menghentikan sementara) pelaksanaan eksekusi program.
Tidak seperti halnya pernyataan End, Stop tidak menutup file yang dibuka
dan tidak menghapus variable, contoh:
Private Sub Form_Load()
For i = 1 To 10 ' menentukan jumlah pengulanan
(10x)
MsgBox i
' mencetak variabel i ke jendela
pesan
Stop
Next i
End Sub

DoLoop
www.riskydigital.com

33

S T A T E M E N T

Ada dua tipe Loop yaitu, Do..While..Loop dan Do..Until..Loop. Fungsi loop
ini adalah untuk melakukan pengulakan terhadap kondisi tertentu yang
disebutkan dalam blok statement, syntax loop:
Do [(While | Until) <kondisi>]
<ekspresi>
[Exit Do]
<ekspresi>
Loop
Format lainnya yang mungkin terjadi,
Do
<ekspresi>
[Exit Do]
<ekspresi>
Loop [(While | Until) <kondisi>]
Contoh kode, sebagai berikut:
Private Sub Form_Activate()
Dim Bil As Integer
Bil = 0
Form1.Print "Do While Bil<=10...Loop...(Bil = 0)"
Do While Bil <= 10
Form1.Print Bil;
Bil = Bil + 1
Loop
Form1.Print
Form1.Print
Bil = 0
Form1.Print "Do Until Bil<=10...Loop (Bil = 0)"
Do Until Bil <= 10
Form1.Print Bil;
Bil = Bil + 1
Loop
Form1.Print
Form1.Print
www.riskydigital.com

34

S T A T E M E N T

Bil = 0
Form1.Print "Do ..Loop While bil <=20..(Bil = 10)"
Do
Form1.Print Bil;
Bil = Bil + 1
Loop While Bil <= 10
Form1.Print
Form1.Print
Bil = 0
Form1.Print "Do..Loop Until Bil <= 10..(Bil = 0)"
Do
Form1.Print Bil;
Bil = Bil + 1
Loop Until Bil <= 10
Form1.Print
End Sub
Tuliskan penjelasan dan perbedaan masing masing metode penulisan Loop
diatas?

For..Next
Berfungsi untuk melakukan pengulangan (iterasi) suatu blok program
beberapa kali yang ditentukan oleh nilai awal dan nilai akhirnya, contoh:
Angkaku = 1
For i = 0 To 10
Angkaku = Angkaku + 1
Form1.Print Angkaku;
Next
Maka pada form akan tercetak: 1 2 3 4 5 6 7 8 9 10
For i = 0 to 90 step 15
Form1.Print i;
Next i
Maka pada form akan tercetak: 0 15 30 45 60 75 90
www.riskydigital.com

35

S T A T E M E N T

If..Then...Else
Berfungsi untuk menjalankan satu blok program, bergantung pada nilai
ekspresi yang diuji, pada umumnya ekspresi ini bersifat logika (boolean; lihat
acara sebelumnya), struktur statement ini disajikan sebagai berikut:
If <ekspresi> Then
<ekspresi True>
Else
<ekspresi False>
End If
Bentuk lainnya,
If <ekspresi> Then
<ekspresi>
Elseif <ekspresi> Then
<ekspresi>
Elseif <ekspresi> Then
<ekspresi>
.
Else
<ekspresi>
End If
Atau,
If <ekspresi> Then <hasil>
Catatan: Untuk percabangan tiga pilihan atau lebih akan lebih effisien
menggunakan statement Select Case, sebagai berikut:

Select Case

www.riskydigital.com

36

S T A T E M E N T

Secara struktur dan fungsional hampir sama dengan If..Then..Else.., tetapi


lebih ringkas terutama digunakan untuk object object yang memiliki INDEX
(lihat acara 1).
Syntax:
Select Case testexpression
[Case expressionlist-n
[statements-n]] . . .
[Case Else expressionlist-n
[elsestatements-n]]
End Select
Dim Color, MyVar
Sub ChangeBackground (Color)
MyVar = lcase (Color)
Select Case MyVar
Case "red"
document.bgColor = "red"
Case "green" document.bgColor = "green"
Case "blue"
document.bgColor = "blue"
Case Else
MsgBox "pick another color"
End Select
End Sub

www.riskydigital.com

37

P E R I N T A H

P A D A

M A P

B A S I C

'------------------------------------------------------------' File
'------------------------------------------------------------Define M_FILE_NEW
101
Define M_FILE_OPEN
102
Define M_FILE_OPEN_ODBC
116
Define M_FILE_ADD_WORKSPACE
108
Define M_FILE_CLOSE
103
Define M_FILE_CLOSE_ALL
104
Define M_FILE_SAVE
105
Define M_FILE_SAVE_COPY_AS
106
Define M_FILE_SAVE_WORKSPACE
109
Define M_FILE_SAVE_WINDOW_AS
609
Define M_FILE_REVERT
107
Define M_FILE_RUN
110
Define M_FILE_PAGE_SETUP
111
Define M_FILE_PRINT
112
Define M_FILE_EXIT
113
Define M_SENDMAIL_CURRENTWINDOW
Define M_SENDMAIL_WORKSPACE

114
115

'------------------------------------------------------------' Edit
'------------------------------------------------------------Define M_EDIT_UNDO
201
Define M_EDIT_CUT
202
Define M_EDIT_COPY
203
Define M_EDIT_PASTE
204
Define M_EDIT_CLEAR
205
Define M_EDIT_CLEAROBJ
206
Define M_EDIT_RESHAPE
1601
Define M_EDIT_NEW_ROW
702
Define M_EDIT_GETINFO
207
'------------------------------------------------------------' Objects
'------------------------------------------------------------Define M_OBJECTS_SET_TARGET
1610
Define M_OBJECTS_CLEAR_TARGET
1611
Define M_OBJECTS_COMBINE
1605
Define M_OBJECTS_SPLIT
1612
Define M_OBJECTS_ERASE
1613
Define M_OBJECTS_ERASE_OUT
1614
Define M_OBJECTS_OVERLAY
1615
Define M_OBJECTS_BUFFER
1606
Define M_OBJECTS_SMOOTH
1602
Define M_OBJECTS_UNSMOOTH
1603
Define M_OBJECTS_CVT_PGON
1607
Define M_OBJECTS_CVT_PLINE
1604
'------------------------------------------------------------' Query
'------------------------------------------------------------Define M_ANALYZE_SELECT
301
Define M_QUERY_SELECT
301
Define M_ANALYZE_SQLQUERY
302

P E R I N T A H

P A D A

M A P

B A S I C

Define M_QUERY_SQLQUERY
Define M_ANALYZE_SELECTALL
Define M_QUERY_SELECTALL

302
303
303

Define
Define
Define
Define
Define
Define
Define
Define

304
304
305
305
306
306
309
309

M_ANALYZE_UNSELECT
M_QUERY_UNSELECT
M_ANALYZE_FIND
M_QUERY_FIND
M_ANALYZE_FIND_SELECTION
M_QUERY_FIND_SELECTION
M_ANALYZE_CALC_STATISTICS
M_QUERY_CALC_STATISTICS

'------------------------------------------------------------' Table, Maintenance, dsn Raster


'------------------------------------------------------------Define M_TABLE_UPDATE_COLUMN
405
Define M_TABLE_APPEND
411
Define M_TABLE_GEOCODE
407
Define M_TABLE_CREATE_POINTS
408
Define M_TABLE_MERGE_USING_COLUMN
406
Define M_TABLE_IMPORT
401
Define M_TABLE_EXPORT
402
Define M_TABLE_MODIFY_STRUCTURE
404
Define M_TABLE_DELETE
409
Define M_TABLE_RENAME
410
Define M_TABLE_PACK
403
Define M_TABLE_MAKEMAPPABLE
415
Define M_TABLE_UNLINK
416
Define M_TABLE_REFRESH
417
Define M_TABLE_CHANGESYMBOL
418
Define M_TABLE_RASTER_STYLE
414
Define M_TABLE_RASTER_REG
413
Define M_TOOLS_RASTER_REG
1730
'------------------------------------------------------------' Options
'------------------------------------------------------------Define M_FORMAT_PICK_LINE
501
Define M_FORMAT_PICK_FILL
502
Define M_FORMAT_PICK_SYMBOL
503
Define M_FORMAT_PICK_FONT
504
Define M_WINDOW_BUTTONPAD
605
Define M_WINDOW_LEGEND
606
Define M_WINDOW_STATISTICS
607
Define M_WINDOW_MAPBASIC
608
Define M_WINDOW_STATUSBAR
616
Define M_FORMAT_CUSTOM_COLORS
617
Define M_EDIT_PREFERENCES
208
Define M_EDIT_PREFERENCES_SYSTEM
210
Define M_EDIT_PREFERENCES_FILE
211
Define M_EDIT_PREFERENCES_MAP
212
Define M_EDIT_PREFERENCES_COUNTRY
213
Define M_EDIT_PREFERENCES_PATH
214
'------------------------------------------------------------' Window

ii

P E R I N T A H

P A D A

M A P

B A S I C

'------------------------------------------------------------Define M_WINDOW_BROWSE
601
Define M_WINDOW_MAP
602
Define M_WINDOW_GRAPH
603
Define M_WINDOW_LAYOUT
604
Define M_WINDOW_REDISTRICT
615
Define M_WINDOW_REDRAW
610
Define M_WINDOW_TILE
611
Define M_WINDOW_CASCADE
612
Define M_WINDOW_ARRANGEICONS
613
Define M_WINDOW_MORE
614
Define M_WINDOW_FIRST
620
' - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - 'Catatan: Window ke-2 hingga 80 dapat diakses dengan:
(M_WINDOW_FIRST+i-1)
' - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - '------------------------------------------------------------' Help
'------------------------------------------------------------Define M_HELP_CONTENTS
1202
Define M_HELP_SEARCH
1203
Define M_HELP_USE_HELP
1204
Define M_HELP_TECHSUPPORT
1208
Define M_HELP_CONNECT_MIFORUM
1209
Define M_HELP_ABOUT
1205
Define M_HELP_CONTEXTSENSITIVE
Define M_HELP_HELPMODE

1201
1206

'------------------------------------------------------------' Browse menu


'------------------------------------------------------------Define M_BROWSE_PICK_FIELDS
704
Define M_BROWSE_OPTIONS
703
'------------------------------------------------------------' Map
'------------------------------------------------------------Define M_MAP_LAYER_CONTROL
801
Define M_MAP_THEMATIC
307
Define M_MAP_MODIFY_THEMATIC
308
Define M_MAP_CHANGE_VIEW
805
Define M_MAP_CLONE_MAPPER
811
Define M_MAP_PREVIOUS
806
Define M_MAP_ENTIRE_LAYER
807
Define M_MAP_CLEAR_CUSTOM_LABELS
814
Define M_MAP_SAVE_COSMETIC
809
Define M_MAP_CLEAR_COSMETIC
810
Define M_MAP_SET_CLIP_REGION
812
Define M_MAP_CLIP_REGION_ONOFF
813
Define M_MAP_SETUPDIGITIZER
803
Define M_MAP_OPTIONS
802
'------------------------------------------------------------' Layout
'-------------------------------------------------------------

iii

P E R I N T A H

Define
Define
Define
Define
Define
Define
Define
Define
Define

P A D A

M A P

B A S I C

M_LAYOUT_CHANGE_VIEW
M_LAYOUT_ACTUAL
M_LAYOUT_ENTIRE
M_LAYOUT_PREVIOUS
M_LAYOUT_BRING2FRONT
M_LAYOUT_SEND2BACK
M_LAYOUT_ALIGN
M_LAYOUT_DROPSHADOWS
M_LAYOUT_DISPLAYOPTIONS

902
903
904
905
906
907
908
909
901

'------------------------------------------------------------' Graph
'------------------------------------------------------------Define M_GRAPH_TYPE
1001
Define M_GRAPH_LABEL_AXIS
1002
Define M_GRAPH_VALUE_AXIS
1003
Define M_GRAPH_SERIES
1004
'------------------------------------------------------------' MapBasic
'------------------------------------------------------------Define M_MAPBASIC_CLEAR
1101
Define M_MAPBASIC_SAVECONTENTS
1102
'------------------------------------------------------------' Redistrict
'------------------------------------------------------------Define M_REDISTRICT_ASSIGN
705
Define M_REDISTRICT_TARGET
706
Define M_REDISTRICT_ADD
707
Define M_REDISTRICT_DELETE
708
Define M_REDISTRICT_OPTIONS
709
'------------------------------------------------------------' Main
'------------------------------------------------------------Define M_TOOLS_SELECTOR
1701
Define M_TOOLS_SEARCH_RECT
1722
Define M_TOOLS_SEARCH_RADIUS
1703
Define M_TOOLS_SEARCH_BOUNDARY
1704
Define M_TOOLS_EXPAND
1705
Define M_TOOLS_SHRINK
1706
Define M_TOOLS_RECENTER
1702
Define M_TOOLS_PNT_QUERY
1707
Define M_TOOLS_LABELER
1708
Define M_TOOLS_DRAGWINDOW
1734
Define M_TOOLS_RULER
1710
'------------------------------------------------------------' Drawing
'------------------------------------------------------------Define M_TOOLS_POINT
1711
Define M_TOOLS_LINE
1712
Define M_TOOLS_POLYLINE
1713
Define M_TOOLS_ARC
1716
Define M_TOOLS_POLYGON
1714
Define M_TOOLS_ELLIPSE
1715

iv

P E R I N T A H

Define
Define
Define
Define
Define

P A D A

M A P

B A S I C

M_TOOLS_RECTANGLE
M_TOOLS_ROUNDEDRECT
M_TOOLS_TEXT
M_TOOLS_FRAME
M_TOOLS_ADD_NODE

1717
1718
1709
1719
1723

'------------------------------------------------------------' Menu dan Tombol yang tidak dapat tampil pada menu standar
'------------------------------------------------------------Define M_TOOLS_MAPBASIC
1720
Define M_TOOLS_SEARCH_POLYGON
1733
'------------------------------------------------------------Define M_ANALYZE_CUSTOMIZE_LEGEND
M_MAP_MODIFY_THEMATIC
Define M_ANALYZE_SHADE
M_MAP_THEMATIC
Define M_BROWSE_GRID
M_BROWSE_OPTIONS
Define M_BROWSE_NEW_RECORD
M_EDIT_NEW_ROW
Define M_FILE_ABOUT
M_HELP_ABOUT
Define M_FILE_HELP
M_HELP_CONTENTS
Define M_FILE_PRINT_SETUP
M_FILE_PAGE_SETUP
Define M_LAYOUT_LAYOUT_SIZE
M_LAYOUT_CHANGE_VIEW
Define M_MAP_SETUNITS
M_MAP_OPTIONS
Define M_OBJECTS_BREAKPOLY
M_OBJECTS_CVT_PLINE
Define M_OBJECTS_MERGE
M_OBJECTS_COMBINE
Define M_OBJECTS_RESHAPE
M_EDIT_RESHAPE
Define M_WINDOW_EXPORT_WINDOW
M_FILE_SAVE_WINDOW_AS
Define M_WINDOW_TOOL_PALETTE
M_WINDOW_BUTTONPAD
'------------------------------------------------------------'=============================================================


Riskys Digital Publishing
Factory Automation Aerial & Satellite Image Processing & Analysis Remote Sensing &
Controlling Natural Hazard Disaster Mitigation & Management Enginneering
Computing Digital Mapping Knowledge Information Technology Hardware & Software
House Digital Forensics Multimedia & Animation.

http://www.riskydigital.com
http://www.facebook.com/riskydigital
mail@riskydigital.com
Daerah Istimewa Yogyakarta

tutor2003

Factory Automation Aerial & Satellite Image Processing & Analysis Enginneering Computing Digital Mapping Database Management Information Technology Software Hou

Anda mungkin juga menyukai