1. Bahasa pemrograman VB.NET Hendra, S.T.
Bahasa Pemrograman VB.Net
Oleh : Hendra, ST.
Buku ini membahas tentang bahasa pemrograman Visual Basic .Net, dan ditujukan
kepada siapa saja yang serius untuk mempelajari bahasa pemrograman VB.Net. Untuk
memfokuskan pada bahasa VB.Net, buku ini akan menggunakan pendekatan program
Console, sehingga fokus pembelajaran lebih terfokus kepada bahasa itu sendiri.
Untuk mempelajari buku ini anda tidak perlu menginstalasi Visual Studio .Net, tetapi
anda cukup menginstalasi .Net Framework yang dapat didownload secara gratis dari
website Microsoft.
Semua contoh dan latihan dibuku ini dapat dikompilasi langsung dari Dos prompt dengan
menggunakan kompiler Visual Basic yang langsung tersedia setelah anda menginstalasi
.Net Framework.
INDOPROG 1
2. Bahasa pemrograman VB.NET Hendra, S.T.
Dasar program Visual Basic
Program VB.NET anda yang pertama.
Sebagaimana tradisi dari proses belajar pemrograman komputer adalah membuat sebuah
program Hello World yang memiliki struktur yang paling sederhana sehingga kita dengan
mudah dapat melihat struktur dasar program dari bahasa pemrograman tersebut.
Module Hello
Sub Main()
System.Console.WriteLine("Hello World !")
End Sub
End Module
Ketiklah program diatas dengan text editor (notepad pada Windows ataupun edit pada
Dos Prompt), dan kemudian simpan dengan nama hello.vb (anda wajib menyimpannya
dengan ekstension .vb).
Proses Kompilasi
Agar program yang kita buat diatas dapat dijalankan oleh komputer, maka diperlukan
suatu kompiler untuk menterjemahkan perintah-perintah yang telah kita buat menjadi
instruksi yang dapat dikenali oleh sistem komputer.
Kompiler Visual Basic dapat diperoleh dengan melakukan instalasi Microsoft .NET
framework sdk v1.1.
Sesaat setelah instalasi .NET framework, maka kompiler VB telah tersedia pada
komputer anda, dan proses kompilasi dapat dilakukan dengan :
1. Mengatur path environment pada Command Prompt
path=%path%;c:windowsmicrosoft.netframeworkv1.1.4322
2. Selanjutnya anda dapat mengkompilasi program anda dengan perintah :
Vbc <nama file>.vb
Pada saat kompilasi, anda wajib menulis lengkap nama file dan ekstension
Contoh :
vbc hello.vb
Microsoft (R) Visual Basic .NET Compiler version 7.10.3052.4
INDOPROG 2
3. Bahasa pemrograman VB.NET Hendra, S.T.
for Microsoft (R) .NET Framework version 1.1.4322.573
Copyright (C) Microsoft Corporation 1987-2002. All rights reserved.
Jika proses kompilasi tidak menampilkan adanya kesalahan, maka akan terbentuk suatu
hello.exe yang dapat dijalankan langsung pada Command Prompt.
Sesuatu hal yang perlu anda pahami adalah file hello.exe hanya dapat dijalankan pada
komputer yang sudah terinstalasi Microsoft .NET framework.
Kemudian suatu hal yang perlu anda ketahui adalah file hello.exe bukanlah berisi binari
yang merupakan kode mesin, melainkan merupakan binari yang berisi Intermediate
Language (IL) yang pada saat dijalankan akan dikompilasi menjadi bahasa mesin oleh
kompiler Just In Time (JIT) yang terdapat pada Common Language Runtime (CLR) yang
merupakan salah satu komponen dari .NET framework.
Struktur program Visual Basic
Sebagai bahasa yang telah dirancang kembali dari awal, suatu program Visual Basic
memiliki urutan berikut yang merupakan struktur dari program:
1. Option statements
2. Imports statements
3. Main procedure
Option Statements
Perintah Option akan menentukan aturan dasar penanganan kode dalam program pada
saat kompilasi.
Option Explicit
Option Explicit On/Off, menentukan apakah variabel-varibel yang digunakan dalam
program harus dideklarasikan terlebih dahulu atau tidak (defaultnya adalah On).
Contoh :
Option Explicit Off
Module Modmain
Sub Main()
a = 100000
End Sub
End Module
Yang jika di kompilasi tidak menyebabkan kesalahan walaupun variabel a tidak pernah
dideklarasikan.
Option Explicit On
INDOPROG 3
4. Bahasa pemrograman VB.NET Hendra, S.T.
Module Modmain
Sub Main()
a = 100000
End Sub
End Module
Yang jika dikompilasi akan menyebabkan kesalahan sebagai berikut :
Microsoft (R) Visual Basic .NET Compiler version 7.10.3052.4
for Microsoft (R) .NET Framework version 1.1.4322.573
Copyright (C) Microsoft Corporation 1987-2002. All rights reserved.
D:BELAJA~1coba.vb(5) : error BC30451: Name 'a' is not declared.
a = 100000
Agar terhindar dari kesalahan maka variabel a harus dideklarasikan terlebih dahulu sesuai
dengan setting Option Explicit On.
Option Explicit On
Module Modmain
Sub Main()
Dim a As Integer
a = 100000
End Sub
End Module
Option Strict
Option Strict On/Off, menentukan apakah kompiler memperbolehkan konversi nilai
implicit yang berpotensi menyebabkan kehilangan data (default adalah Off), misalnya
kita memasukan nilai dari suatu variabel dengan tipe data yang lebih lebar ke variabel
dengan tipe data yang lebih sempit (lihat pada kolom nominal storage allocation pada
tabel tipe data).
Contoh :
Option Explicit On
Option Strict On
Module Hello
Sub Main()
Dim a As Integer
Dim b As Short
a = 100000
b = a
End Sub
End Module
INDOPROG 4
5. Bahasa pemrograman VB.NET Hendra, S.T.
Yang jika dikompilasi akan menyebabkan pesan kesalahan berikut ini karena variabel b
yang bertipe short (16 bit), tidak dimungkinkan menampung nilai dari tipe integer (32
bit), yang memiliki potensi kehilangan data pada saat runtime, sehingga pemakaian
Option Strict On akan menampilkan pesan kesalahan pada saat kompilasi.
Microsoft (R) Visual Basic .NET Compiler version 7.10.3052.4
for Microsoft (R) .NET Framework version 1.1.4322.573
Copyright (C) Microsoft Corporation 1987-2002. All rights reserved.
D:BELAJA~1coba.vb(8) : error BC30512: Option Strict On disallows
implicit conversions from 'Integer' to 'Short'.
b = a
~
Sebaliknya jika digunakan Option Strict Off:
Option Explicit On
Option Strict Off
Module Hello
Sub Main()
Dim a As Integer
Dim b As Short
a = 100000
b = a
End Sub
End Module
Maka pada saat kompilasi tidak terjadi kesalahan, tetapi pada saat runtime akan
menimbulkan runtime error (System.OverflowException), karena variabel a yang bertipe
short hanya memiliki jangkauan daya tampung dari -32767 s/d 32768.
INDOPROG 5
6. Bahasa pemrograman VB.NET Hendra, S.T.
Option Compare
Perintah Option Compare Binary/Text akan menentukan bagaimana bertipe data string
akan dibandingkan antara satu dengan lainnya (default adalah Binary).
Adapun aturan perbandingan pada masing-masing setting adalah sebagai berikut :
• Pada Option Compare Binary : A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê
<ø
• Pada Option Compare Text : (A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø)
< (Z=z)
Contoh :
Option Compare Binary
Module Hello
Sub Main()
Dim a,b As String
a = "ABC"
b = "abc"
System.Console.WriteLine(a = b) 'False
End Sub
End Module
Yang jika dijalankan akan menghasilkan False, karena perbandingan data berdasarkan
nilai biner dari masing-masing data string (lihat aturan untuk Binary).
INDOPROG 6
7. Bahasa pemrograman VB.NET Hendra, S.T.
Tetapi jika :
Option Compare Text
Module Hello
Sub Main()
Dim a,b As String
a = "ABC"
b = "abc"
System.Console.WriteLine(a = b) 'True
End Sub
End Module
Yang jika dijalankan akan menghasikan True, karena sebagai text-nya "ABC" dianggap
sama dengan "abc" tanpa melihat huruf besar atau kecil (lihat aturan untuk Text).
Imports Statements
Perintah Imports berfungsi memudahkan pengetikan tanpa harus mengetik nama class
didalam namespace yang di import.
Contoh :
Module Hello
Sub Main()
System.Console.WriteLine("Hello World !")
End Sub
End Module
Yang setelah adanya Imports System penulisan Console.WriteLine menjadi sebagai
berikut.
Imports System
Module Hello
Sub Main()
Console.WriteLine("Hello World !")
End Sub
End Module
Dalam hal ini kita tidak perlu lagi mengetik System.Console.WriteLine, tapi cukup
Console.WriteLine, karena kita telah melakukan Imports System.
Main Procedure
Procedure Main merupakan titik awal dari program anda – merupakan procedure yang
pertama kali dieksekusi ketika anda menjalankan kode anda. Jadi apa yang ingin anda
jalankan pertama kali pada program anda ditempatkan pada procedure main ini. Ada
empat cara penulisan Main, yaitu sebagai Sub atau Function yang memiliki parameter
atau tidak.
INDOPROG 7
8. Bahasa pemrograman VB.NET Hendra, S.T.
• Sub Main()
• Sub Main(ByVal CmdArgs() As String)
• Function Main() As Integer
• Function Main(ByVal CmdArgs() As String) As Integer
Bentuk procedure yang paling sering digunakan adalah Sub Main( ) seperti pada contoh
yang sudah-sudah.
Contoh Sub Main dengan parameter :
Imports System
Module Hello
Sub Main(ByVal CmdArgs() As String)
Dim i As Integer
Console.WriteLine("Jumlah Parameter :" & CmdArgs.Length())
For i = 0 to CmdArgs.Length()-1
Console.WriteLine("Parameter :" & i.ToString() & "adalah :"
& CmdArgs(i))
Next
End Sub
End Module
Yang kalau dieksekusi dengan
Coba Hello World
Jumlah Parameter :2
Parameter :0 adalah :Hello
Parameter :1 adalah :World
Dalam hal ini kita menjalankan program Coba.exe pada command prompt dengan
mengirim dua parameter yaitu kata Hello dan World yang dianggap sebagai array bertipe
string.
Catatan :
Index Array dimulai dari 0, sehingga pada contoh diatas looping dimulai dari 0 s/d
CmdArgs.Length()-1.
Program yang menggunakan parameter jarang digunakan pada lingkungan Windows, dan
sering digunakan pada program di lingkungan Console.
Pemberian komentar
Jika kita hari ini membuat program, dan pada saat yang sama semua logika serta rumusan
dapat kita ingat dengan baik, tetapi bagaimana kalau kita membaca kembali program
yang pernah kita buat untuk 3 bulan yang lalu, apakah anda masih mengingatnya ?
Bagaimana kita membuat program kita mudah di pahami kembali ? Tentu saja dengan
memberikan keterangan secukupnya.
INDOPROG 8
9. Bahasa pemrograman VB.NET Hendra, S.T.
Pada Visual Basic pembuatan keterangan dapat menggunakan simbol ' (petik tunggal)
maupun keyword REM.
Contoh :
' Ini adalah keterangan
REM Ini adalah keterangan
Type Data
Sebagaimana bahasa pemrograman lainnya, Visual Basic menyediakan berbagai type
data yang dapat digunakan oleh pemrogram sesuai dengan konteks pemakaiannya. Type
data pada Visual Basic dibagi atas dua kelompok besar yaitu Value Type (Tipe data
primitif) dan Reference (String, Array dan Objek).
Berikut ini adalah tabel tipe data pada VB disertai dengan alokasi storage yang
dibutuhkan serta jangkauan nilai yang dapat ditampung oleh masing-masing tipe.
Visual Basic Common language Nominal Value range
type runtime type storage
structure allocation
Boolean System.Boolean 2 bytes True or False.
Byte System.Byte 1 byte 0 through 255 (unsigned).
Char System.Char 2 bytes 0 through 65535 (unsigned).
Date System.DateTime 8 bytes 0:00:00 on January 1, 0001 through 11:59:59
PM on December 31, 9999.
Decimal System.Decimal 16 bytes 0 through +/-
79,228,162,514,264,337,593,543,950,335 with
no decimal point;
0 through +/-
7.9228162514264337593543950335 with 28
places to the right of the decimal; smallest
nonzero number is
+/-0.0000000000000000000000000001 (+/-
1E-28).
Double System.Double 8 bytes -1.79769313486231570E+308 through
(double- -4.94065645841246544E-324 for negative
precision values; 4.94065645841246544E-324 through
floating-point) 1.79769313486231570E+308 for positive
values.
Integer System.Int32 4 bytes -2,147,483,648 through 2,147,483,647.
Long System.Int64 8 bytes -9,223,372,036,854,775,808 through
(long integer) 9,223,372,036,854,775,807.
Object System.Object (class) 4 bytes Any type can be stored in a variable of type
Object.
Short System.Int16 2 bytes -32,768 through 32,767.
Single System.Single 4 bytes -3.4028235E+38 through -1.401298E-45 for
(single- negative values; 1.401298E-45 through
precision 3.4028235E+38 for positive values.
floating-point)
String System.String (class) Depends on 0 to approximately 2 billion Unicode characters.
(variable- implementing
length) platform
User- (inherits from Depends on Each member of the structure has a range
Defined System.ValueType) implementing determined by its data type and independent of
Type platform the ranges of the other members.
INDOPROG 9
10. Bahasa pemrograman VB.NET Hendra, S.T.
(structure)
Walaupun dewasa ini, memori dan media penyimpanan data tidak menjadi masalah
seperti pada awal kelahiran komputer, tetapi hendaklah programmer bijaksana dalam
pemakaian type data berkaitan dengan perfomance yang dihasilkan.
Deklarasi Variabel
Pemrogram yang baik tentu saja menggunakan pendekatan yang terstruktur dalam
pengembangan program, salah satu ciri dari program yang terstruktur adalah
mendeklarasikan semua variabel yang digunakan dalam program.
Pada Visual Basic printah Dim digunakan untuk mendeklarasikan variabel dan
memberikan nilai awal kepadanya.
Contoh :
Dim Harga, Jumlah As Single
Dim Kuantitas As Integer = 10
Dim Lanjutkan As Boolean = True
Dim Keterangan As String = "Visual Studio .NET"
Catatan :
Pada Visual Basic pemakaian variabel harus dideklarasikan terlebih dahulu, jika tidak
anda akan mendapatkan kesalahan kompiler, karena default setting Explicit pada Visual
Basic adalah Option Explicit On.
Kemudian Jika anda tidak memberikan nilai awal pada suatu variabel pada
dideklarasikan, maka nilai berikut akan diberikan sebagai nilai awal variabel tersebut :
• 0 untuk semua tipe data numerik (termasuk Byte).
• Binary 0 untuk Char.
• Nothing untuk semua tipe reference (termasuk Object, String, dan semua array).
• False untuk Boolean.
• 12:00 AM pada 1 Januari 1 untuk Date.
Sesuatu hal yang perlu anda perhatikan adalah daya tampung variabel berdasarkan tipe
yang ditentukan, jika anda memasukan nilai diluar dari daya tampung variabel, suatu
kesalahan overflow exception akan terjadi.
Konversi Tipe
Konversi Tipe pada Visual Basic dapat dilakukan secara Implicit maupun Explicit,
konversi secara Implicit dilakukan tanpa menggunakan fungsi bantu casting tertentu
seperti Cbool, Cbyte, Cchar, Cdate, Cdec, CDbl, Cint, CLng, Cobj, Cshort, CSng, CStr.
INDOPROG 10
11. Bahasa pemrograman VB.NET Hendra, S.T.
Contoh :
Module Test
Sub Main()
Dim intValue As Integer = 123
Dim longValue As Long = intValue
Console.WriteLine(intValue & " = " & longValue)
End Sub
End Module
Sedangkan secara Explicit dilakukan dengan menggunakan fungsi bantu casting.
Module Test
Sub Main()
Dim longValue As Long = 134
Dim intValue As Integer = CInt(longValue)
Console.WriteLine(longValue & " = " & intValue)
End Sub
End Module
Pada konversi secara Implicit, setting Option Strict akan mempengaruhi apakah konversi
dari tipe yang lebih lebar ke tipe yang lebih sempit (Misalnya dari Integer 32 bit ke Short
16 bit) diperbolehkan oleh kompiler atau tidak.
Contoh berikut akan melakukan konversi dari Integer 32 bit ke Short 16 bit.
Option Strict On
Option Explicit On
Imports System
Public Module ModKali
Sub Main()
Dim i, j As Byte
Dim a As Integer = 40000
Dim b As Short
b = a
Console.WriteLine(b)
End Sub
End Module
Yang kalau dikompilasi akan menghasilkan error sebagai berikut
Microsoft (R) Visual Basic .NET Compiler version 7.10.3052.4
for Microsoft (R) .NET Framework version 1.1.4322.573
Copyright (C) Microsoft Corporation 1987-2002. All rights reserved.
D:BELAJA~1kali.vb(10) : error BC30512: Option Strict On disallows
INDOPROG 11
12. Bahasa pemrograman VB.NET Hendra, S.T.
implicit conversions from 'Integer' to 'Short'.
b = a
~
Hal tersebut dapat diperbaiki dengan menggunakan fungsi ToInt16 yang terdapat pada
System.Convert yang artinya konversi memang dikehendaki oleh programmer
Contoh :
Option Strict On
Option Explicit On
Imports System
Public Module ModKali
Sub Main()
Dim i, j As Byte
Dim a As Integer = 40000
Dim b As Short
b = System.Convert.ToInt16(a)
Console.WriteLine(b)
End Sub
End Module
Tetapi karena nilai 40000 tidak dapat ditampung oleh type data short, maka akan
menghasilkan error pada saat runtime : System.OverflowException.
Konversi data secara Explicit dapat juga memanfaatkan fungsi bantu casting yang
terdapat pada Objek System Convert sebagai berikut :
Function Purpose
ToBoolean Converts a value to a Boolean (True or False).
ToByte Converts a value to an 8-bit Byte in the range 0 to 255.
ToChar Converts a value to a 2-byte Unicode character.
ToDateTime Converts a value to a DateTime object.
ToDecimal Converts a value to a 12-byte Decimal.
ToDouble Converts a value to an 8-byte Double.
ToInt16 Converts a value to a 2-byte Short.
ToInt32 Converts a value to a 4-byte Integer.
ToInt64 Converts a value to an 8-byte Integer.
ToSByte Converts a value to an 8-bit signed value in the range –128 to 127.
ToSingle Converts a value to a 4-byte Single.
ToString Converts a value to its String representation.
ToUInt16 Converts a value to a 2-byte unsigned Short in the range 0 to 65,535.
ToUInt32 Converts a value to a 4-byte unsigned Integer in the range 0 to 4,294,967,295.
ToUInt64 Converts a value to an 8-byte unsigned long Integer in the range 0 to
18,446,744,073,709,551,615.
Catatan :
Berdasarkan uji coba yang dilakukan fungsi bantu konversi tipe seperti Cint, Cdate,
CSng,CDbl, Cdec dan kadang-kadang fungsi bantu konversi memiliki unjuk kerja yang
lebih baik seperti yang ditunjukan oleh tabel berikut ini adalah hasil konversi dengan
Integer.Pars, Convert.ToInt32, dibandingkan dengan CInt
INDOPROG 12
13. Bahasa pemrograman VB.NET Hendra, S.T.
String Integer.Parse Convert.ToInt32 Cint
"12,500" Error Error 12500
"12" 12 12 12
"12500" 12500 12500 12500
"12500.00" Error Error 12500
"$12,500.00" Error Error 12500
"$12,500.10" Error Error 12500
"&HFF" (VB syntax for the hex value FF) 255 Error Error
Operator
Berdasarkan pengalaman pemrograman, pemakaian operator tidak dapat dilepaskan dari
pekerjaan pemrograman, adapun operator pada Visual Basic adalah sebagai berikut :
Operator aritmatika : *, /, , ^, Mod, +, dan –
Operator relasi : =, <>, <, >, <=, and >=
Catatan :
Pada tipe data string, prilaku perbandingan sangat dipengaruhi oleh setting dari Option
Compare. (default adalah Option Compare Binary)
Pada Option Compare Binary : A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø
Pada Option Compare Text : (A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z)
Operator logika And, AndAlso, Or, OrElse, and Xor
Catatan :
• Jika operand pertama pada suatu operasi AndAlso adalah False, maka hasil
ekspresi tersebut adalah False. Sebaliknya, suatu operasi logika And dilakukan
terhadap kedua operand.
• Jika operand pertama dari operasi OrElse adalah True, maka hasil ekspresi
adalah True. Sebaliknya, suatu operasi logika Or akan dilakukan terhadap kedua
operand.
Operator pengabungan : &
Operator bit shift : << dan >>
Contoh :
Dim Pattern As Short = 192 ' Bit pattern is 0000 0000 1100 0000.
Dim Result1, Result2, Result3, Result4, Result5 As Short
INDOPROG 13
14. Bahasa pemrograman VB.NET Hendra, S.T.
Result1 = Pattern << 0 ' Result is 192 (0000 0000 1100 0000).
Result2 = Pattern << 4 ' Result is 3072 (0000 1100 0000 0000).
Result3 = Pattern << 9 ' Result is -32768 (1000 0000 0000 0000).
Result4 = Pattern << 17 ' Result is 384 (0000 0001 1000 0000).
Result5 = Pattern << -1 ' Result is 0 (shifted 15 places to left).
Dim Pattern As Short = 2560 ' Bit pattern is 0000 1010 0000 0000.
Dim Result1, Result2, Result3, Result4, Result5 As Short
Result1 = Pattern >> 0 ' Result is 2560 (0000 1010 0000 0000).
Result2 = Pattern >> 4 ' Result is 160 (0000 0000 1010 0000).
Result3 = Pattern >> 10 ' Result is 2 (0000 0000 0000 0010).
Result4 = Pattern >> 18 ' Result is 640 (0000 0010 1000 0000).
Result5 = Pattern >> -1 ' Result is 0 (shifted 15 places to right).
Operator bit shift bekerja pada tingkat bit, yang artinya jika 192 pada tipe data short
(desimal/basis sepuluh) maka representasinya dalam bentuk biner adalah 0000 0000 1100
0000 (16 bit).
Kemudian hal lain yang perlu diketahui adalah bit mask untuk masing-masing tipe data
adalah berbeda, berikut ini adalah tabel bitmask :
LeftOperand Type SizeMask
Byte 7 (&H7)
Short 15 (&HF)
Integer 31 (&H1F)
Long 63 (&H3F)
Perhatikan kembali contoh diatas
Dim Pattern As Short = 2560 ' Bit pattern is 0000 1010 0000 0000.
Perintah shift right 18 untuk tipe Short akan menghasilkan operasi yang sama dengan
shift right 2 ( hasil operasi 18 And 15 = 2).
Result4 = Pattern >> 18 ' Result is 640 (0000 0010 1000 0000).
Operator perbandingan Like, dengan aturan sebagai berikut :
• Karakter ? mewakili satu karakter sembarang.
• Karakter * mewakili tidak ada karakter atau sekumpulan karakter sembarang.
• Karakter # mewakili satu sembarang digit (0–9).
• Suatu daftar karakter dalam kurung siku ([ab ]) mewakili salah satu karakter
dalam daftar tersebut.
• Suatu daftar dari karakter dalam kurung siku dan diawali dengan suatu tanda !
([!ab ]) mewakili satu karakter yang tidak ada dalam daftar tersebut.
Contoh :
Dim myCheck As Boolean
myCheck = "F" Like "F" Does "F" match "F"? Returns True.
myCheck = "F" Like "f" Does "F" match "f"? Returns False.
myCheck = "F" Like "FFF" Does "F" match "FFF"? Returns False.
INDOPROG 14
15. Bahasa pemrograman VB.NET Hendra, S.T.
myCheck = "aBBBa" Like "a*a" Does "aBBBa" have a "a" at the beginning, an "a"
at the end, and any number of characters in
between? Returns True.
myCheck = "F" Like "[A-Z]" Does "F" occur in the set of characters from A to
Z? Returns True.
myCheck = "F" Like "[!A-Z]" Does "F" NOT occur in the set of characters from A
to Z? Returns False.
myCheck = "a2a" Like "a#a" Does "a2a" begin and end with an "a" and have any
single-digit number inbetween? Returns True.
myCheck = "aM5b" Like "a[L-P]#[!c-e]" Does "aM5b" fit the following pattern: Begins with
"a", has and character from the set L through P,
followed byb any single-digit number, and finally
contains any character excluded from the character
set c through e. Returns True.
myCheck = "BAT123khg" Like "B?T*" Does "BAT123khg" fit the following pattern: Begins
with "B", followed by any single character, followed
by a "T" and finally zero or more characters of any
type. Returns True
myCheck = "CAT123khg" Like "B?T*" Does "CAT123khg" fit the following pattern: Begins
with "B", followed by any single character, followed
by a "T" and finally zero or more characters of any
type. Returns False.
Operator assignment : =, ^=, *=, /=, =, +=, -=, <<=, >>=, &=
Contoh :
Dim a As Integer = 2
Dim b As Integer = 3
a += b // akan menghasilkan 5 pada variabel a, atau sama dengan a = a+b
Catatan :
Sesuatu hal yang penting bagi programmer pemula adalah memahami urutan operasi dari
operator, pada Visual Basic menggunakan urutan operasi berikut ini :
Operator Aritmatika dan Pengabungan
Exponentiation (^)
Unary negation (–)
Multiplication and division (*, /)
Integer division ()
Modulus arithmetic (Mod)
Addition and subtraction (+, –), string concatenation (+)
String concatenation (&)
Arithmetic bit shift (<<, >>)
Operator Perbandingan
All comparison operators (=, <>, <, <=, >, >=, Like, Is, TypeOf...Is)
Operator Logika dan Bitwise
Negation (Not)
Conjunction (And, AndAlso)
Disjunction (Or, OrElse, Xor)
INDOPROG 15
16. Bahasa pemrograman VB.NET Hendra, S.T.
Contoh :
Dim A, B, C, D, E, F, G As Double
A = 3.0
B = 6.0
C = 4.0
D = 2.0
E = 1.0
F = A + B - C / D * E
' The previous line sets F to 7.0. Because of natural operator
' precedence, it is exactly equivalent to the following line:
F = (A + B) - ((C / D) * E)
' The following line overrides the natural operator precedence:
G = A + (B - C) / (D * E)
' The previous line sets G to 4.0.
Dengan memahami urutan operasi akan sangat membantu untuk menghindari kesalahan
dalam penulisan rumus yang dapat menyebabkan logika error.
Konstanta pada VB.NET
Pemakaian konstanta sangat membantu dalam pengembangan program yang terstruktur,
dengan adanya konstanta, pemeliharaan program menjadi lebih sederhana, dan biasanya
konstanta dideklarasikan pada awal program, sehingga jika terjadi perubahan besaran
pada konstanta, kita cukup mengubahnya pada awal program tanpa harus memeriksa
koding seperti yang harus dilakukan kalau kita tidak menggunakan fasilitas konstanta.
Const GRAVITASI As Single = 9.8
Catatan :
Sebaiknya konstanta diketik semuanya huruf besar untuk memudahkan pembedaan antara
variabel dengan konstanta, dan penamaan konstanta hendaknya disesuaikan dengan
konteks yang diwakili oleh konstanta tersebut.
Enumerated pada VB.NET
Pemakaian enumerated type akan sangat membantu dalam pekerjaan pemrograman
sehingga menjadi lebih mudah ditulis, dibaca, dan dimaintain dari pada menggunakan
tipe data primitif.
Public Enum InterfaceColors
MistyRose = &HE1E4FF&
SlateGray = &H908070&
DodgerBlue = &HFF901E&
DeepSkyBlue = &HFFBF00&
SpringGreen = &H7FFF00&
ForestGreen = &H228B22&
Goldenrod = &H20A5DA&
INDOPROG 16
17. Bahasa pemrograman VB.NET Hendra, S.T.
Firebrick = &H2222B2&
End Enum
Perintah input Output Console
Salah satu bentuk program yang dapat dikembangkan dengan menggunakan Visual Basic
adalah program Console. Program Console adalah program yang menggunakan basis teks
pada lingkungan Command Prompt (bentuk ini tidak tersedia pada Visual Basic versi
sebelumnya).
Program Console adalah salah satu fasilitas yang sangat memudahkan bagi pemula yang
ingin mempelajari bahasa Visual Basic dengan baik, karena program Console
menggunakan perintah I/O yang cukup sederhana dan bersih dari perintah input output
yang rumit sehingga kita dapat lebih terfokus.
System.Console.Write(ekspresi)
System.Console.WriteLine(ekspresi)
Variabel = System.Console.ReadLine()
Jika anda melakukan imports namespace system, maka penulisan dapat disingkat menjadi
Console.Write(ekspresi)
Console.WriteLine(ekspresi)
Variabel = Console.ReadLine()
Catatan :
Perbedaan antara Write dengan WriteLine adalah pada WriteLine pencetakan akan
diakhiri dengan suatu Carriage Return.
Format pada WriteLine
Visual Basic telah melengkapi berbagai fasilitas format yang sangat berguna untuk
melakukan pencetakan data, terutama data type numerik yang kadang-kadang perlu
diformat sedemikian rupa untuk memudahkan pembacaan.
Format pencetakan pada WriteLine dapat menggunakan place holder {x}, dimana x
adalah nomor urutan dari parameter berikutnya yang dihitung mulai dari 0 (nol)..
Contoh :
Console.WriteLine("The number is {0}", 3 + 7)
Console.WriteLine("The result of {0} + {1} = {2}", 3, 7, 3+7)
Console.WriteLine("See decimals {0, 12:f1}", 0.123456789)
Console.WriteLine("See decimals {0, 12:f9}", 0.123456789)
Console.WriteLine("The value is {0, 0:000.00}", 0.123456789)
Console.WriteLine("The value is {0, 0:###.##}", 1234.56789)
INDOPROG 17
18. Bahasa pemrograman VB.NET Hendra, S.T.
Masing-masing akan menghasilkan
The number is 10
The result of 3 + 7 = 10
See decimal 0.1
See decimal 0.123456789
The value is 001.23
The value is 1234.57
Contoh Format String :
Format Culture Data type Value Output
C en-US Double 12345.6789 $12,345.68
C de-DE Double 12345.678 12.345,68 DM
D en-US Int32 12345 12345
D8 en-US Int32 12345 00012345
E en-US Double 12345.6789 1.234568E+004
E10 en-US Double 12345.6789 1.2345678900E+004
E fr-FR Double 12345.6789 1,234568E+004
e4 en-US Double 12345.6789 1.2346e+004
F en-US Double 12345.6789 12345.68
F es-ES Double 12345.6789 12345,68
F0 en-US Double 12345.6789 123456
F6 en-US Double 12345.6789 12345.678900
G en-US Double 12345.6789 12345.6789
G7 en-US Double 12345.6789 12345.68
G en-US Double 0.0000023 2.3E-6
G en-US Double 0.0023 0.0023
G2 en-US Double 1234 1.2E3
G en-US Double Math.PI 3.14159265358979
N en-US Double 12345.6789 12,345.68
N sv-SE Double 12345.6789 12 345,68
N4 en-US Double 123456789 123,456,789.0000
P en-US Double .126 12.60 %
r en-US Double Math.PI 3.141592653589793
x en-US Int32 0x2c45e 2c45e
X en-US Int32 0x2c45e 2C45E
X8 en-US Int32 0x2c45e 0002C45E
x en-US Int32 123456789 75bcd15
Latihan :
1. Buatlah program untuk menghitung luas persegi panjang.
Jawab :
Option Explicit On
Public Module modmain
Sub Main()
Dim Panjang As System.Int32
Dim Lebar As System.Int32
Dim Luas As System.Int64
System.Console.Write("Masukkan Panjang :")
INDOPROG 18
19. Bahasa pemrograman VB.NET Hendra, S.T.
Panjang = System.Console.ReadLine()
System.Console.Write("Masukan Lebar :")
Lebar = System.Console.ReadLine()
Luas = Panjang*Lebar
System.Console.WriteLine("Luas Persegi Panjang adalah :" &
Luas.ToString())
End Sub
End Module
atau
Option Explicit On
Imports System
Public Module modmain
Sub Main()
Dim Panjang As Integer
Dim Lebar As Integer
Dim Luas As Long
Console.Write("Masukkan Panjang :")
Panjang = Console.ReadLine()
Console.Write("Masukan Lebar :")
Lebar = Console.ReadLine()
Luas = Panjang*Lebar
Console.WriteLine("Luas Persegi Panjang adalah :" & Luas.ToString())
End Sub
End Module
Simpan dengan nama file persegi.vb
Set path=%path%;c:windowsmicrosoft.netframeworkv1.1.4322
VBC persegi.vb
Microsoft (R) Visual Basic .NET Compiler version 7.10.3052.4
for Microsoft (R) .NET Framework version 1.1.4322.573
Copyright (C) Microsoft Corporation 1987-2002. All rights reserved.
Persegi
2. Buatlah program untuk menghitung luas lingkaran dengan pemakaian
konstanta.
Option Explicit On
Imports System
Public Module lingkaran
Const PI As Single = 3.14
Sub Main()
Dim R As Single
Dim Luas As Double
INDOPROG 19
20. Bahasa pemrograman VB.NET Hendra, S.T.
Console.Write("Masukkan Jari-jari :")
R = Console.ReadLine()
Luas = PI * R^2
Console.WriteLine("Luas : {0, 10:f2}",Luas)'10 tempat 2 desimal
End Sub
End Module
INDOPROG 20
21. Bahasa pemrograman VB.NET Hendra, S.T.
Struktur Keputusan dan Perulangan
Perintah If...Then...Else
Salah satu tujuan pemrograman komputer adalah mengambil tugas rutin manusia untuk
dalam mengambil keputusan-keputusan yang dapat diprogram. Misalnya seorang Dosen
dalam menentukan Grade (A,B,C,D, atau E) nilai akhir mahasiswa dengan kondisi
sebagai berikut :
Jika Nilai >= 85 Kemudian
Cetak "A"
Jika tidak dan Jika Nilai >= 70 Kemudian
Cetak "B"
Jika tidak dan Jika Nilai >= 60 Kemudian
Cetak "C"
Jika tidak dan Jika Nilai >= 25 Kemudian
Cetak "D"
Jika tidak
Cetak "E"
Akhir dari keputusan
Logika keputusan diatas dapat diprogram pada Visual Basic dengan menggunakan syntax
penulisan sebagai berikut :
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
Contoh :
Option Explicit On
Imports System
Module ModIf
Sub Main()
Dim Nilai As Single
Console.Write("Masukkan Nilai Akhir :")
Nilai = Console.ReadLine()
If Nilai >= 85 Then
Console.WriteLine("A")
ElseIf Nilai >= 70 Then
Console.WriteLine("B")
ElseIf Nilai >= 60 Then
Console.WriteLine("C")
ElseIf Nilai >= 25 Then
Console.WriteLine("D")
INDOPROG 21
22. Bahasa pemrograman VB.NET Hendra, S.T.
Else
Console.WriteLine("E")
End If
End Sub
End Module
Perintah Select...Case
Jika statement If melakukan pemilihan berdasarkan kondisi, maka perintah Select
melakukan pemilihan berdasarkan nilai ekspresi dengan syntax sebagai berikut :
Select [ Case ] testexpression
[ Case expressionlist
[ statements ] ]
[ Case Else
[ elsestatements ] ]
End Select
Contoh :
Option Explicit On
Imports System
Module ModHari
Sub Main()
Dim Hari As Byte
Console.Write("Masukkan No Hari :")
Hari = Console.ReadLine()
Select Case Hari
Case 1
Console.WriteLine("Senin")
Case 2
Console.WriteLine("Selasa")
Case 3
Console.WriteLine("Rabu")
Case 4
Console.WriteLine("Kamis")
Case 5
Console.WriteLine("Jumat")
Case 6
Console.WriteLine("Sabtu")
Case 7
Console.WriteLine("Minggu")
Case Else
Console.WriteLine("No Hari tidak sah")
End Select
End Sub
End Module
Contoh Lain :
Option Explicit On
Imports System
Module ModHari
Sub Main()
INDOPROG 22
23. Bahasa pemrograman VB.NET Hendra, S.T.
Dim Angka As Integer
Console.Write("Masukkan Angka 1 s/d 9 :")
Angka = Console.ReadLine()
Select Case Angka
Case Is < 1
Console.WriteLine("Terlalu kecil")
Case 1 To 5
Console.WriteLine("Berada antara 1 dan 5")
Case 6,7,8,9
Console.WriteLine("Berada antara 6 dan 9")
Case Else
Console.WriteLine("Terlalu besar")
End Select
End Sub
End Module
Perintah For...Next
Salah satu keunggulan komputer dibandingkan dengan manusia adalah dapat
mengerjakan sesuatu secara berulang-ulang tanpa mengalami penurunan kualitas
terhadap hasil kerja.
Salah satu perintah perulangan di Visual Basic ada For…Next Statements yang
merupakan perulangan dengan menggunakan sistem counter dengan menggunakan
syntax sebagai berikut :
For counter [ As datatype ] = start To end [ Step step ]
[ statements ]
[ Exit For ]
[ statements ]
Next [ counter ]
Contoh :
Dim I As Integer
For I = 1 To 100 'Defaultnya Step 1
Console.WriteLine(I)
Next I
Atau
For I As Integer = 1 To 100 'Defaultnya Step 1
Console.WriteLine(I)
Next I
Akan mencetak daftar bilangan 1 s/d 100
Catatan :
Dari segi looping pemakaian :
Dim I As Integer
INDOPROG 23
24. Bahasa pemrograman VB.NET Hendra, S.T.
For I = 1 To 100 'Defaultnya Step 1
Console.WriteLine(I)
Next I
Tidak berbeda dengan
For I As Integer = 1 To 100 'Defaultnya Step 1
Console.WriteLine(I)
Next I
Tapi jika ditinjau dari lingkup pemakaian variabel, maka variabel I pada contoh pertama
adalah variabel local Sub Main, sedangkan variabel I pada contoh kedua adalah variable
local untuk blok looping.
Contoh :
Dim I As Integer
For I = 1 To 100 'Defaultnya Step 1
Console.WriteLine(I)
Next I
Console.WriteLine(I) 'Akan tercetak 101
Sedangkan
For I As Integer = 1 To 100 'Defaultnya Step 1
Console.WriteLine(I)
Next I
Console.WriteLine(I) 'Terjadi error pada saat kompilasi
Dimana pesan error adalah error BC30451: Name I is not declared.
Dim I As Integer
For I = 1 To 100 Step 2
Console.WriteLine(I)
Next I
Akan mencetak daftar bilangan ganjil 1 s/d 99
Catatan : Step tidak selamanya harus berupa bilangan bulat, tetapi juga dapat berupa
bilangan floating point.
For I As Single = 1 To 10 Step 0.1
Console.WriteLine(I)
Next I
Akan mencetak daftar bilangan 1, 1.1, 1.2, 1.3, …,10
INDOPROG 24
25. Bahasa pemrograman VB.NET Hendra, S.T.
Bagaimana dengan perulangan dari besar ke kecil ?
Perulangan dari besar ke kecil dapat dilakukan dengan menentukan nilai Step negatif.
Contoh :
For I As Integer = 100 To 1 Step -1
Console.WriteLine(I)
Next I
Akan mencetak daftar bilangan 100, 99. 98, …, 1
Dapatkah anda menerangkan fungsi dan contoh pemakaian Exit For ?
Exit For merupakan perintah keluar dari looping tanpa bersyarat, artinya kalau perintah
Exit For ditemukan maka proses program dilanjutkan ke perintah dibawah Next.
Adapun contoh pemakaian Exit For adalah misalnya kita ingin membuat password
dengan jumlah kesempatan coba sebanyak 3 kali.
Option Explicit On
Imports System
Module ModPass
Sub Main()
Dim I As Integer
Dim Pass As String
For I = 1 To 3 Step 1
Console.Write("Password :")
Pass = Console.ReadLine()
If Pass.ToUpper() ="INDOPROG" Then 'Jika Password Benar
Exit For 'Keluar dari Looping
End If
Next I
If I > 3 Then
Console.WriteLine("Proses Login Gagal !")
Else
Console.WriteLine("Welcome !")
End If
End Sub
End Module
Perintah Do...Loop
Jika perintah For … Next melakukan looping berdasarkan counter, maka perintah Do …
Loop melakukan looping berdasarkan kondisi, adapun tata cara penulisannya adalah
sebagai berikut :
Do { While | Until } condition
[ statements ]
[ Exit Do ]
[ statements ]
Loop
INDOPROG 25
26. Bahasa pemrograman VB.NET Hendra, S.T.
Atau
Do
[ statements ]
[ Exit Do ]
[ statements ]
Loop { While | Until } condition
Perbedaan antara kedua struktur perulangan diatas adalah posisi pemeriksaan kondisi
yang akan diuji, pada struktur yang pertama pengujian kondisi dilakukan sebelum
statements dikerjakan, sedangkan pada struktur yang kedua pengujuan dilakukan setelah
statement dikerjakan.
Sebagaimana dengan Exit For, perintah Exit Do akan mengakhiri Looping tanpa
bersyarat, yang artinya jika perintah Exit Do ditemukan, maka proses Looping akan
segera dihentikan dan dilanjutkan ke Statement dibawah Loop.
Contoh :
Option Explicit On
Imports System
Module DoLoop
Sub Main()
Dim Dat() As Integer
Dim Jd,DTemp As Integer
Jd = 0
Do
Console.Write("Data Ke-{0} :", Jd+1)
DTemp = Console.ReadLine()
If DTemp <> 0 Then
ReDim Preserve Dat(Jd)
Dat(Jd) = DTemp
Jd+=1
End If
Loop Until DTemp = 0 'Ulangi sampai Dtemp diisi 0
For I As Integer = 0 To Jd-1
Console.WriteLine("Data Ke-{0} adalah {1}",I+1, Dat(I))
Next I
End Sub
End Module
Pada contoh diatas, mula-mula kita mendeklarasikan suatu array tanpa diikuti dengan
ukuran, kemudian proses akan dilanjutkan dengan pembacaan data ke variabel Dtemp,
dab jika nilai Dtemp bukan 0 (nol), maka ukuran array akan dialokasi ulang dengan
perintah ReDim Preserve yang akan mempertahankan isi array, dan pembacaan data akan
terus diulang sampai Dtemp diisi dengan 0 (nol).
INDOPROG 26
27. Bahasa pemrograman VB.NET Hendra, S.T.
Selain struktur Do…Loop, juga tersedia perintah perulangan dengan tata cara penulisan
sebagai berikut.
While condition
[ statements ]
End While
Pada prinsipnya struktur While … End While sama dengan Do While … Loop.
Perintah For Each...Next
Perintah For Each…Next digunakan untuk melakukan iterasi berdasarkan collection
tertentu, misalnya kita ingin mencetak semua elemen dalam suatu array, penulisan
dengan perintah For Each dapat dilakukan sebagai berikut :
For Each element [ As datatype ] In group
[ statements ]
[ Exit For ]
[ statements ]
Next [ element ]
Contoh :
Option Explicit On
Imports System
Module DoLoop
Sub Main()
Dim Dat() As Integer
Dim Jd,DTemp As Integer
Jd = 0
Do
Console.Write("Data Ke-{0} :", Jd+1)
DTemp = Console.ReadLine()
If DTemp <> 0 Then
ReDim Preserve Dat(Jd)
Dat(Jd) = DTemp
Jd+=1
End If
Loop Until DTemp = 0
For Each Data As Integer In Dat
Console.WriteLine("Data pada array {0}", Data)
Next
End Sub
End Module
Array pada Visual Basic merupakan collection pada System.Array, sehingga pemakaian
perintah For Each akan mendapatkan elemen 0 s/d element terakhir dari array.
INDOPROG 27
28. Bahasa pemrograman VB.NET Hendra, S.T.
Latihan :
1. Buatlah program mencetak tabel perkalian 1x1 = 1 s/d 10 x 10 = 100
Option Explicit On
Imports System
Public Module ModKali
Sub Main()
Dim i, j As Byte
For i = 1 To 10
For j = 1 to 10
Console.WriteLine("{0,3} x {1,3} = {2,3}",i,j,i*j)
Next j
Next i
End Sub
End Module.
2. Buatlah program untuk konversi data desimal ke binary dengan pemakaian
operator bit shift
Option Explicit On
Imports System
Module ModBiner
Sub Main()
Dim D As Integer
Dim I As Short
Console.Write("Bilangan Desimal :")
D = Console.ReadLine()
For I = 15 to 0 Step -1
If ((D >> I) And 1) = 1 Then
Console.Write(1)
Else
Console.Write(0)
End If
Next
End Sub
End Module
3. Buatlah program yang menentukan bilangan bulat yang dimasukan
pemakai Genap atau Ganjil.
4. Buatlah program yang menentukan tahun yang dimasukan pemakai
termasuk tahun Kabisat atau bukan.
5. Buatlah program yang mencetak barisan bilangan fibonacci sesuai dengan
jumlah suku yang ditentukan oleh pemakai.
6. Buatlah program yang menentukan bilangan bulat yang dimasukan
pemakai Prima atau bukan.
INDOPROG 28
29. Bahasa pemrograman VB.NET Hendra, S.T.
7. Buatlah program yang dapat mencetak faktor prima dari suatu bilangan
bulat (Contoh 100 = 2 x 2 x 5 x 5)
INDOPROG 29
30. Bahasa pemrograman VB.NET Hendra, S.T.
Array pada Visual Basic
Deklarasi variabel Array
Sebagaimana yang telah disinggung pada bagian 1 bahwa tipe data pada Visual Basic
terbagai atas dua kelompok yaitu Value Type dan Reference.
Suatu array merupakan Reference Type yang mengandung banyak variabel-variabel yang
dapat diakses satu persatu sesuai dengan urutannya dalam array, dimana indexnya
dimulai dari 0. Variabel-variabel yang terkandung dalam array disebut juga elemen dari
array, dan semuanya harus memiliki tipe yang sama. Setiap tipe array mewarisi (inherits)
semua member yang dideklarasikan pada System.Array.
Pada contoh berikut ini mendeklarasikan suatu array integer berdimensi tunggal,
memberi nilai pada masing-masing elemen array, dan mencetak-nya.:
Module Test
Sub Main()
Dim arr(5) As Integer
Dim i As Integer
For i = 0 To arr.GetUpperBound(0)
arr(i) = i * i
Next i
For i = 0 To arr.GetUpperBound(0)
Console.WriteLine("arr(" & i & ") = " & arr(i))
Next i
End Sub
End Module
Program diatas akan menghasilkan output:
arr(0) = 0
arr(1) = 1
arr(2) = 4
arr(3) = 9
arr(4) = 16
Array dapat juga diberi nilai awal pada saat deklarasi dengan penulisan sebagai berikut:
Private a As Integer() = { 0, 2, 4, 6, 8 }
Atau penulisan yang sama adalah dengan :
Private a As Integer() = new Integer() { 0, 2, 4, 6, 8 }
Pada contoh berikut membuat array dua dimensi 5 x 2 :
INDOPROG 30
31. Bahasa pemrograman VB.NET Hendra, S.T.
Private b As Integer(,) = { { 0, 1 }, { 2, 3 }, { 4, 5 }, { 6, 7 }, {
8, 9 } }
Sama dengan deklarasi berikut:
Private b(4, 1) As Integer
Dan diikuti dengan pemberian nilai berikut :
b(0, 0) = 0 : b(0, 1) = 1
b(1, 0) = 2 : b(1, 1) = 3
b(2, 0) = 4 : b(2, 1) = 5
b(3, 0) = 6 : b(3, 1) = 7
b(4, 0) = 8 : b(4, 1) = 9
Member pada Class Array
Setiap array pada Visual Basic mewarisi member yang terdefinisi pada Class Array,
adapun beberapa member tersebut adalah sebagai berikut ini :
Length Mendapatkan jumlah elemen dalam Array (Integer 32-bit)
LongLength Mendapatkan jumlah elemen dalam Array (Integer 64-bit)
Rank Mendapatkan jumlah dimensi dalam Array
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
Public Arr(3,3) As Integer
Sub Main()
Console.WriteLine(Arr.Length()) '16
Console.WriteLine(Arr.LongLength()) '16
Console.WriteLine(Arr.Rank()) '2
End Sub
End Module
GetLength Mendapatkan jumlah elemen dalam Array pada dimensi
tertentu (Integer 32-bit)
GetLongLength Mendapatkan jumlah elemen dalam Array pada dimensi
tertentu (Integer 64-bit)
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
INDOPROG 31
32. Bahasa pemrograman VB.NET Hendra, S.T.
Public Arr(3,3) As Integer
Sub Main()
Console.WriteLine(Arr.GetLength(0)) '4
Console.WriteLine(Arr.GetLongLength(0)) '4
End Sub
End Module
GetLowerBound Mendapatkan nilai index batas bawah Array pada dimensi
tertentu.
GetUpperBound Mendapatkan nilai index batas atas Array pada dimensi
tertentu.
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
Public Arr(3,3) As Integer
Sub Main()
Console.WriteLine(Arr.GetLowerBound(0)) '0
Console.WriteLine(Arr.GetUpperBound(0)) '3
End Sub
End Module
IndexOf Mendapatkan index paling awal dari nilai tertentu pada Array 1
dimensi.
LastIndexOf Mendapatkan index paling akhir dari nilai tertentu pada Array 1
dimensi.
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
Public Arr() As Integer = {0,1,2,3,4,3,2,1,0}
Sub Main()
Console.WriteLine(Array.IndexOf(Arr,3)) '3
Console.WriteLine(Array.LastIndexOf(Arr,3)) '5
End Sub
End Module
Reverse Membalik urutan element dalam suatu Array 1 dimensi.
Option Explicit On
INDOPROG 32
33. Bahasa pemrograman VB.NET Hendra, S.T.
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
Public Arr() As Integer = {0,1,2,3,4}
Sub Main()
Dim I As Integer
For I = Arr.GetLowerBound(0) To Arr.GetUpperBound(0)
Console.Write(Arr(I)) '01234
Next I
Console.WriteLine()
Array.Reverse(Arr,0,4)
For I = Arr.GetLowerBound(0) To Arr.GetUpperBound(0)
Console.Write(Arr(I)) '43210
Next I
End Sub
End Module
Sort Mengurut elemen dalam suatu Array 1 dimensi.
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
Public Arr() As Integer = {0,4,3,1,2}
Sub Main()
Dim I As Integer
For I = Arr.GetLowerBound(0) To Arr.GetUpperBound(0)
Console.Write(Arr(I)) '04312
Next I
Console.WriteLine()
Array.Sort(Arr,0,4)
For I = Arr.GetLowerBound(0) To Arr.GetUpperBound(0)
Console.Write(Arr(I)) '01234
Next I
End Sub
End Module
BinarySearch Mencari Nilai tertentu pada suatu Array dengan algoritma
Binary Search.
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
Public Arr() As Integer = {0,4,3,1,2}
Sub Main()
Dim Nilai = 3
INDOPROG 33
34. Bahasa pemrograman VB.NET Hendra, S.T.
Array.Sort(Arr,0,4)
Console.WriteLine(Array.BinarySearch(Arr,Nilai)) '2
End Sub
End Module
Perintah Visual Basic untuk Array
Visual Basic menyediakan berbagai perintah khusus untuk pengolahan string sebagai
berikut ::
Perintah ReDim
Perintah ReDim digunakan untuk mendefinisi ulang jumlah elemen pada Array dengan
atau tanpa mempertahankan data array sebelumnya.
ReDim [ Preserve ] name(boundlist)
Preserve
Sifatnya optional, jika digunakan maka data pada array tersebut akan
dipertahankan pada array ukuran baru
Contoh :
Pada contoh berikut menggunakan perintah ReDim untuk mengalokasi ualang ukuran
variabel array.
Dim I, MyArray() As Integer ' Declare variable and array variable.
ReDim MyArray(5) ' Allocate 6 elements.
For I = 0 To UBound(MyArray)
MyArray(I) = I ' Initialize array.
Next I
Perintah berikut mengubah ukuran array tanpa mempertahankan isi elemennya..
ReDim MyArray(10) ' Resize to 11 elements.
For I = 0 To UBound(MyArray)
MyArray(I) = I ' Initialize array.
Next I
Perintah berikut mengubah ukuran dari array dengan mempertahankan isi elementnya.
ReDim Preserve MyArray(15) ' Resize to 16 elements.
Contoh berikut mengalokasi ulang array sesuai dengan data yang dimasukan pemakai :
Option Explicit On
Imports System
Module DoLoop
INDOPROG 34
35. Bahasa pemrograman VB.NET Hendra, S.T.
Sub Main()
Dim Dat() As Integer
Dim Jd,DTemp As Integer
Jd = 0
Do
Console.Write("Data Ke-{0} :", Jd+1)
DTemp = Console.ReadLine()
If DTemp <> 0 Then
ReDim Preserve Dat(Jd)
Dat(Jd) = DTemp
Jd+=1
End If
Loop Until DTemp = 0 'Ulangi sampai Dtemp diisi 0
For I As Integer = 0 To Jd-1
Console.WriteLine("Data Ke-{0} adalah {1}",I+1, Dat(I))
Next I
End Sub
End Module
Perintah Erase
Perintah Erase digunakan untuk membebaskan array dan memory yang digunakan
elemennya, dengan tata cara penulisan sebagai berikut :
Erase arraylist
Catatan
Perintah Erase akan memberikan nilai Nothing ke variabel array.
Contoh
Pada contoh berikut menggunakan perintah Erase untuk membebaskan memori dua array
(1000 dan 100 tempat elemen yang bersesuaian). Kemudian menggunakan perintah
ReDim untuk memberikan ukuran baru untuk ketiga dimensi dari array.
Dim Int3DArray(9, 9, 9), Int2DArray(9, 9) As Integer
' ...
Erase Int3DArray, Int2DArray
' ...
ReDim Int3DArray(4, 4, 9)
Module Array pada Namespace Microsoft.VisualBasic
INDOPROG 35
36. Bahasa pemrograman VB.NET Hendra, S.T.
Pengolahan data array dapat juga menggunakan beberapa fungsi bantu yang berkaitan
dengan array yang tersedia pada Namespace Microsoft.VisualBasic, berikut ini adalah
beberapa fungsi bantu tersebut :
Fungsi IsArray
Mengembalikan nilai Boolean yang menunjukan apakah suatu variabel menunjuk pada
suatu array.
Pada contoh ini fungsi IsArray memeriksa apakah variabel-variabel mengacu pada suatu
array.
Dim MyArray(4), YourArray(3) As Integer ' Declare array variables.
Dim MyString As String
Dim MyCheck As Boolean
MyCheck = IsArray(MyArray) ' Returns True.
MyCheck = IsArray(YourArray) ' Returns True.
MyCheck = IsArray(MyString) ' Returns False.
LBound Function
Mengembalikan index terendah untuk dimensi tertentu dari suatu array
Pada contoh berikut menggunakan fungsi LBound untuk mendapatkan index terendah
suatu dimensi dari array.
Dim Lowest, MyArray(10, 15, 20), AnyArray(6) as Integer
Lowest = LBound(MyArray, 1) ' Returns 0.
Lowest = LBound(MyArray, 3) ' Returns 0.
Lowest = LBound(AnyArray) ' Returns 0.
Suatu Exception/Error akan terjadi kalau kondisi berikut ini ditemukan :
Exception type Error number Condition
ArgumentNullException 9 Array is Nothing.
RankException 9 Rank < 1 or Rank is greater
than the rank of Array.
Fungsi UBound
Mengembalikan index yang terbesar dari suatu dimensi pada array.
Pada contoh berikut menggunakan fungsi Ubound untuk menentukan index yang terbesar
dari suatu dimensi pada array.
Dim Highest, MyArray(10, 15, 20), AnyArray(6) as Integer
INDOPROG 36
37. Bahasa pemrograman VB.NET Hendra, S.T.
Highest = UBound(MyArray, 1) ' Returns 10.
Highest = UBound(MyArray, 3) ' Returns 20.
Highest = UBound(AnyArray) ' Returns 6.
Catatan :
Untuk memanfaatkan fungsi IsArray, Lbound dan Ubound anda perlu mencantumkan
Imports Microsoft.VisualBasic
Pada awal program
Latihan :
1. Buatlah program yang menbaca sejumlah data dari pemakain, dan menampilkan
kembali dalam keadaan berurut dari kecil ke besar, nilai total, rata-rata, nilai
terbesar, dan nilai yang terkecil dengan pemanfaatan array.
2. Perbaiki program diatas untuk menampilkan kembali dalam keadaan berurut dari
besar ke kecil.
3. Tambahkan kemampuan program untuk mencari suatu nilai yang dimasukan dan
menampilkan posisinya dalam array.
4. Buatlah program yang mencetak suatu segitiga Pascal.
INDOPROG 37
38. Bahasa pemrograman VB.NET Hendra, S.T.
Fungsi dan Sub
Perintah Function
Dalam pembuatan program yang besar, tentu saja harus dikembangkan secara terstruktur
sehingga program menjadi lebih mudah dikembangkan dan dimaintenance. Salah satu
usaha yang dapat dilakukan adalah memecah program menjadi kesatuan logika yang
lebih kecil dimana proses yang sama dikelompokan menjadi sub program yang diberi
nama, dan dapat dipanggil pada saat yang dibutuhkan.
Pemakaian function digunakan untuk proses maupun rumus yang perlu mengembalikan
nilai kepada pemanggil, adapun tata cara penulisan function adalah sebagai berikut :
Function name[(arglist)] [ As type ]
[ statements ]
[ Exit Function ]
[ statements ]
End Function
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module GenapGanjil
Function IsGenap(x As Long) As Boolean
If (x Mod 2) = 0 Then
Return True
Else
Return False
End If
End Function
REM program utama
Sub Main()
Dim bil As Long
Console.Write("Masukan Bilangan :")
bil = Console.ReadLine()
If IsGenap(bil) Then
Console.WriteLine("Bilangan {0} adalah Genap",bil)
Else
Console.WriteLine("Bilangan {0} adalah Ganjil",bil)
End If
End Sub
End Module
Defaultnya parameter pada function dikirim secara ByVal, kadang-kadang kita
menginginkan proses yang dapat mengembalikan lebih dari satu nilai yang mana dapat
dipenuhi dengan menggunakan parameter yang dikirim secara ByRef.
INDOPROG 38
39. Bahasa pemrograman VB.NET Hendra, S.T.
Misalnya kita ingin menghitung akar persamaan kuadrat dengan menggunakan rumus
ABC. Yang mana X1 dan X2 yang kemungkinan akar imaginier, dimana function akan
mengembalikan suatu nilai true (ada solusi) atau false (tidak ada solusi).
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module AkarKuadrat
Function CariAkar(A as Long, B as Long ,C As Long, _
ByRef X1 as single ,ByRef X2 as single) As Boolean
Dim D as Long
D = B^2 - 4*A*C
If D < 0 Then 'Akar Imaginier
Return False 'Tidak ada solusi
Else
X1 = (-B + Math.Sqrt(D))/(2*A) 'argumen X1
X2 = (-B - Math.Sqrt(D))/(2*A) 'argumen X2
Return True 'Ada solusi
End If
End Function
REM program utama
Sub Main()
Dim A,B,C As Long
Dim X1,X2 As Single
Console.WriteLine("Mencari akar persamaan kuadrat")
Console.Write("Masukan A :")
A = Console.ReadLine()
Console.Write("Masukan B :")
B = Console.ReadLine()
Console.Write("Masukan C :")
C = Console.ReadLine()
If CariAkar(A,B,C,X1,X2) Then
Console.WriteLine("Akar X1={0} X2={1}",X1,X2)
Else
Console.WriteLine("Akar imaginier")
End If
End Sub
End Module
Catatan :
Perintah Return digunakan untuk mengembalikan nilai ke pemanggil, dan jika suatu Exit
Function digunakan, maka function akan mengembali nilai defaut berupa 0 for Byte,
Char, Decimal, Double, Integer, Long, Short, and Single; Nothing for Object, String,
and all arrays; False for Boolean; and #1/1/0001 12:00 AM# for Date.
Jika kita perlu melewatkan suatu array sebagai argumen pada function, maka dapat
digunakan keyword ParamArray untuk melewatkan nilai array secara by value, contoh :
INDOPROG 39
40. Bahasa pemrograman VB.NET Hendra, S.T.
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
Function sumArray(ByVal Paramarray Dat() As Byte)
Dim Total As Long = 0
For I As Integer = 0 To UBound(Dat)
Total += Dat(I)
Next I
Return Total
End Function
Dim Digit() As Byte = {0,1,2,3,4,5}
Sub Main()
Console.WriteLine(sumArray(Digit))
End Sub
End Module
Sub Statement
Pada bagian sebelumnya kita telah membahas tentang function dan pemakaiannya,
selanjutnya kita akan melihat Sub yang menyerupai Function, dimana perbedaannya
adalah jika function digunakan untuk proses yang mengembalikan nilai kepada
pemanggil, sedangkan Sub cenderung digunakan untuk proses yang tidak mengembalikan
nilai.
Sub name [(arglist)]
[ statements ]
[ Exit Sub ]
[ statements ]
End Sub
Catatan :
Sebagaimana function, sebenarnya sub juga dapat digunakan untuk proses yang
mengembalikan nilai melalui argumen yang dikirim secara ByRef.
Jika Exit Sub digunakan, maka Sub akan kembali ke pemanggil secara tidak bersyarat.
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
Public Arr() As Integer
Public Jd As Byte
Sub BacaJd()
Console.Write("Masukkan Jumlah Data :")
Jd = Console.ReadLine()
End Sub
Sub BacaData()
INDOPROG 40
41. Bahasa pemrograman VB.NET Hendra, S.T.
ReDim Arr(Jd-1)
For I As Byte = 0 To UBound(Arr)
Console.Write("Data Ke -{0} :",I+1)
Arr(I) = Console.ReadLine()
Next I
End Sub
Sub CariRataRata()
Dim Total As Long = 0
For I As Byte = 0 To UBound(Arr)
Total +=Arr(I)
Next I
Console.WriteLine("Nilai Rata-rata : {0}",Total/Jd)
End Sub
Sub Main()
BacaJd()
BacaData()
CariRataRata()
End Sub
End Module
Teknik Rekursi pada Visual Basic
Dalam matematika, kita sering menjumpai formula yang mengandung rekursi, misalnya
pada perhitungan nilai faktorial dari suatu bilangan yang dapat diformulasikan sebagai
berikut :
N! = N x (N-1)!
Dimana 1! = 1.
Sehingga secara pemrograman komputer dapat ditulis sebagai berikut :
Option Explicit On
Imports System
Public Module modFak
Function Fak(N as Byte)
If (N > 1) Then
Return N * Fak(N-1)
Else
Return 1
End If
End Function
Sub Main()
Console.WriteLine("Faktorial dari {0} adalah {1}",5,Fak(5))
End Sub
End Module
Latihan :
INDOPROG 41
42. Bahasa pemrograman VB.NET Hendra, S.T.
1. Buatlah function IsKabisat yang akan mengembalikan nilai True jika tahun yang
dikirim sebagai argumen adalah Kabisat, dan False jika sebaliknya.
2. Buatlah function IsPrima yang akan mendeteksi apakah suatu bilangan yang
diberikan adalah Prima atau tidak.
3. Dengan pemanfaatan teknik rekursi, buatlah function yang dapat menghitung
suku yang ke n dari barisan fibonacci.
4. Buatlah program yang mencetak faktor prima dari suatu bilangan dengan
pemanfaatan Sub secara rekursi.
INDOPROG 42
43. Bahasa pemrograman VB.NET Hendra, S.T.
String
Variabel string pada Visual Basic disimpan sebagai urutan dari angka 16-bit (2 byte)
yang memiliki jangkauan dari 0 sampai 65535. Masing-masing angka merupakan suatu
karakter tunggal Unicode. Suatu string dapat mengandung sampai dengan 2 Milyar
(2^31) karakter Unicode.
128 kode pertama (0-127) dari Unicode berkaitan dengan huruf dan simbol pada
keyboard standard U.S yang mana sama dengan karakter set yang terdefinisi pada ASCII,
kemudian 128 karakter berikutnya (128–255) merupakan karakter spesial, seperti huruf
alphabet Latin, accent, simbol mata uang, dan pecahan. Kemudian karakter sisianya
digunakan untuk berbagai simbol, termasuk karakter teksual didunia, dan simbol teknis,
dan metematika.
Pada dasarnya String pada Visual Basic mengacu pada String Class.
Contoh :
Option Explicit On
Imports System
Public Module modStr
Dim Nama As String = "Hendra Soewarno"
Sub Main()
Console.WriteLine(Nama.ToUpper())
Console.WriteLine(Nama.ToLower())
End Sub
End Module
Pada contoh diatas akan mencetak HENDRA SOEWARNO dan hendra soewarno.
Member pada Class String
Semua string di Visual Basic memiliki member sebagai berikut yang dapat digunakan
untuk melakukan pengolahan data String.
Public Properties
Chars Mendapatkan karakter pada posisi tertentu string.
Length Mendapatkan jumlah character dalam string
Contoh :
Option Explicit On
Imports System
Public Module modStr
INDOPROG 43
44. Bahasa pemrograman VB.NET Hendra, S.T.
Dim Nama As String = "Hendra Soewarno"
Sub Main()
Console.WriteLine(Nama.Chars(0)) 'Akan mencetak H
Console.WriteLine(Nama.Chars(1)) 'Akan mencetak e
Console.WriteLine(Nama.Chars(2)) 'Akan mencetak n
Console.WriteLine(Nama.Length()) 'Akan mencetak 12
End Sub
End Module
Public Methods
PadLeft Mengisi spasi atau karakter lain disebelah kiri string sampai string
mencapai panjang tertentu.
PadRight Mengisi spasi atau karakter lain disebelah kanan string sampai
string mencapai panjang tertentu.
ToLower Mengembalikan string yang telah diubah ke huruf kecil
ToUpper Mengembalikan string yang telah diubah ke huruf besar
Trim Mengembalikan string dengan membuang spasi didepan dan
belakang string
TrimEnd Mengembalikan string dengan membuang spasi dibelakang string
TrimStart Mengembalikan string dengan membuang spasi didepan string
Substring Mengembalikan bagian dari string
Contoh :
Option Explicit On
Imports System
Public Module modStr
Dim Nama As String = "Hendra Soewarno"
Dim Kota As String = " Medan "
Sub Main()
Console.WriteLine(Nama.PadLeft(20,"-")) '-----Hendra Soewarno
Console.WriteLine(Nama.PadRight(20,"-")) 'Hendra Soewarno-----
Console.WriteLine(Nama.ToLower()) 'hendra soewarno
Console.WriteLine(Nama.ToUpper()) 'HENDRA SOEWARNO
Console.WriteLine(Kota.TrimEnd()) '____Medan
Console.WriteLine(Kota.TrimStart()) 'Medan_____
INDOPROG 44
45. Bahasa pemrograman VB.NET Hendra, S.T.
Console.WriteLine(Kota.Trim()) 'Medan
Console.WriteLine(Nama.SubString(3,3)) 'dra
End Sub
End Module
Insert Menyisip string ke dalam string sekarang
pada posisi tertentu.
Remove Menghapus sejumlah karakter dalam
string
Replace Mengantu sejumlah karakter dengan
string pada string sekarang
Contoh :
Option Explicit On
Imports System
Public Module modStr
Dim Nama As String = "Santo"
Sub Main()
Console.WriteLine(Nama.Insert(1,"us")) 'Susanto
Console.WriteLine(Nama.Remove(0,1)) 'anto
Console.WriteLine(Nama.Replace("o","i")) 'Santi
End Sub
End Module
IndexOf Mengembalikan posisi awal suatu string
pada string sekarang mulai dari posisi
tertentu
IndexOfAny Mengembalikan posisi awal suatu string
pada string sekarang.
LastIndexOf Mengembalikan posisi akhir suatu string
pada string sekarang sekarang mulai dari
posisi tertentu
LastIndexOfAny Mengembalikan posisi akhir suatu string
pada string sekarang.
StartsWith Mendapatkan apakah string dimulai
dengan string tertentu.
EndsWith Mendapatkan apakah string diakhir
dengan string tertentu.
Contoh :
Option Explicit On
Imports System
Public Module modStr
' 0 1 2
' 012345678901234567890123456
Dim Nama As String = "ebook karya Hendra Soewarno"
INDOPROG 45
46. Bahasa pemrograman VB.NET Hendra, S.T.
Sub Main()
Console.WriteLine(Nama.StartsWith("e")) 'True
Console.WriteLine(Nama.StartsWith("a")) 'False
Console.WriteLine(Nama.EndsWith("o")) 'True
Console.WriteLine(Nama.EndsWith("i")) 'False
End Sub
End Module
Option Explicit On
Imports System
Public Module modStr
' 0 1 2
' 012345678901234567890123456
Dim Nama As String = "ebook karya Hendra Soewarno"
Sub Main()
Console.WriteLine(Nama.IndexOfAny("e")) '0
Console.WriteLine(Nama.LastIndexOfAny("e")) '21
Console.WriteLine(Nama.IndexOf("e",2)) '13
Console.WriteLine(Nama.LastIndexOf("e",15)) '13
End Sub
End Module
Module String pada Namespace Microsoft.VisualBasic
Selain pengolahan data string dengan menggunakan String Member, Visual Basic juga
menyediakan berbagai fungsi bantu yang terdefinisi pada Namespace
Micorosoft.VisualBasic, berikut ini adalah beberapa fungsi bantu yang dapat digunakan
untuk pengolahan data string.
Asc(x), mengembalikan nilai ASCII dari huruf pertama dalam string x
AscW(x), mengembalikan nilai ASCII dari huruf pertama dalam string x
Chr(x), mengembalikan character dari suatu nilai ASCII x
ChrW(x), , mengembalikan character dari suatu nilai ASCII x
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Console.WriteLine(Asc("H")) '72
Console.WriteLine(AscW("H")) '72
Console.WriteLine(Chr("72")) 'H
Console.WriteLine(ChrW("72")) 'H
End Sub
End Module
INDOPROG 46
47. Bahasa pemrograman VB.NET Hendra, S.T.
Len(x), mengembalikan panjang string x dalam karakter.
Lcase(x), mengembalikan string yang telah diubah menjadi huruf kecil.
Ucase(x), mengembalikan string yang telah diubah menjadi huruf besar.
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Dim Nama As String = "Hendra Soewarno"
Console.WriteLine(Len(Nama)) '15
Console.WriteLine(LCase(Nama)) 'hendra soewarno
Console.WriteLine(UCase(Nama)) 'HENDRA SOEWARNO
End Sub
End Module
GetChar(x,y), mendapatkan character posisi ke y dalam string x.
Left(x,y), mengembalikan substring dari string x sebanyak y karakter dari depan.
Right(x,y), mengembalikan substring dari string x sebanyak y karakter dari belakang.
Mid(x,y,z) mengembalikan substring dari string x mulai posisi y sebanyak z karakter.
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Dim Nama As String = "Hendra Soewarno"
Console.WriteLine(GetChar(Nama,1)) 'H
Console.WriteLine(Left(Nama,6)) 'Hendra
Console.WriteLine(Right(Nama,8)) 'Soewarno
Console.WriteLine(Mid(Nama,4,3)) 'dra
End Sub
End Module
Space(x), mengembalikan string yang terdiri dari spasi sejumlah x karakter.
Rset(x,y), mengembalikan string rapat kanan dengan panjang y dengan menambah spasi
di depan string x.
INDOPROG 47
48. Bahasa pemrograman VB.NET Hendra, S.T.
Lset(x,y), mengembalikan string rapat kiri dengan panjang y dengan menambah spasi
dibelakang string x.
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Dim Nama1 As String = "Hendra"
Dim Nama2 As String = "Soewarno"
Console.WriteLine(Nama1 & Space(5) & Nama2) 'Hendra Soewarno
Console.WriteLine(RSet(Nama1,9)) '___Hendra
Console.WriteLine(LSet(Nama1,9)) 'Hendra___
End Sub
End Module
Ltrim(x), mengembalikan string dengan menghilangkan spasi didepan string x.
Rtrim(x), mengembalikan string dengan menghilangkan spasi dibelakang string x.
Trim(x), mengembalikan string dengan prilaku gabungan Ltrim dan Rtrim.
StrReverse(x), mengembalikan string yang membalikan karakter dalam string x.
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Dim Nama As String = "Susan"
Console.WriteLine(Nama) 'Susan
Console.WriteLine(StrReverse(Nama)) 'nasuS
End Sub
End Module
InStr(y, x, z), mencari dari depan posisi keberadaan substring z dalam string x mulai
posisi y.
InStrRev(x, z, y), mencari dari belakang posisi keberadaan substring z dalam string x
mulai posisi y.
Contoh :
INDOPROG 48
49. Bahasa pemrograman VB.NET Hendra, S.T.
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Dim Nama As String = "Felicia Fortuna"
Console.WriteLine(InStr(1,Nama,"i")) '4
Console.WriteLine(InStr(5,Nama,"i")) '6
Console.WriteLine(InStrRev(Nama,"F",10)) '9
Console.WriteLine(InStrRev(Nama,"F",7)) '1
End Sub
End Module
StrDup(y, x), mengembalikan string yang merupakan duplikasi character x sebanyak y.
StrComp(x,y,z), mengembalikan nilai -1, 0, atau 1 yang merupakan perbandingan antara
string x dengan string y, dengan metode z, dimana -1 (x < y), 0 (x =y), dan 1 (x > y), dan
metode z adalah CompareMethod.Text dan CompareMethod.Binary.
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Dim Nama1 As String = "felicia"
Dim Nama2 As String = "FELICIA"
Console.WriteLine(StrDup(10,"-")) '----------
Console.WriteLine(StrComp(Nama1,Nama2,CompareMethod.Text)) '0
Console.WriteLine(StrComp(Nama1,Nama2,CompareMethod.Binary)) '1
End Sub
End Module
Catatan :
Pada metode Binary, perbandingan dilakukan berdasarkan nilai ASCII, dimana ASCII
huruf kecil > dari huruf besar, contoh A = 65, dan a = 97.
Split(x,y), mengembalikan array string yang merupakan hasil pemisahan dari string x
dengan delimeter y
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Dim Nama As String = "Felicia Fortuna"
Dim aNama() As String = Split(Nama," ")
Console.WriteLine(aNama(0)) 'Felicia
INDOPROG 49
50. Bahasa pemrograman VB.NET Hendra, S.T.
Console.WriteLine(aNama(1)) 'Fortuna
End Sub
End Module
Join(x,y), mengembalikan string yang merupakan hasil gabungan array string x dengan
delimeter y
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Dim aNama() As String = {"Felicia","Fortuna"}
Console.WriteLine(Join(aNama,", ")) 'Felicia, Fortuna
End Sub
End Module
Replace(x,y,z,[1],[2],[3]), mengembalikan string yang merupakan pengantian string y
dengan z dalam string x mulai posisi [1] sampai sejumlah karakter [2], dengan metode
perbandingan [3].
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Dim Nama As String = "Hendra"
Console.WriteLine(Replace(Nama,"a","o")) 'Hendro
End Sub
End Module
StrConv(x,y), menghasilkan string yang merupakan hasil konversi dengan metode y dari
string x, dimana y (VBStrConv.UpperCase, VBStrConv.LowerCase,
VBStrConv.ProperCase)
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Dim Nama As String = "Hendra"
Console.WriteLine(StrConv(Nama,VbStrConv.UpperCase)) 'HENDRA
Console.WriteLine(StrConv(Nama,VbStrConv.LowerCase)) 'hendra
Console.WriteLine(StrConv(Nama,VbStrConv.ProperCase)) 'Hendra
End Sub
INDOPROG 50
51. Bahasa pemrograman VB.NET Hendra, S.T.
End Module
FormatDateTime(x,y), menghasilkan string hasil konversi date x dengan format sesuai
dengan setting pada komputer, dimana y (DateFormat.GeneralDate,
DateFormat.LongDate, DateFormat.ShortDate, DateFormat.LongTime,
DateFormat.ShortTime)
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Console.WriteLine(FormatDateTime(Now,DateFormat.LongDate))
'Sunday, May 22, 2005
End Sub
End Module
FormatCurrency(x,y), menghasilan string yang merupakan format currency dari angka x
dengan jumlah desimal y.
FormatPercent(x,y), menghasilkan string yang merupakan format percent dari angka x
dengan jumlah desimal y.
FormatNumber(x,y), menghasilkan string yang merupakan format angka dari angka x
dengan jumlah desimal y.
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Dim Angka As Decimal = 100000
Dim PPN As Single = 0.1
Console.WriteLine(FormatCurrency(Angka,2)) '$100,000.00
Console.WriteLine(FormatNumber(Angka,2)) '100,000.00
Console.WriteLine(FormatPercent(PPN,2)) '10.00%
End Sub
End Module
Format(x,y), menghasilkan string yang merupakan format dari argumen x dengan format
y, dengan format yang dapat dilihat pada lampiran 1.
Contoh :
INDOPROG 51
52. Bahasa pemrograman VB.NET Hendra, S.T.
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Console.WriteLine(Format(10000,"#,##0.00")) '10,000.00
Console.WriteLine(Format(Now,"dd/MM/yyyy HH:MM:SS")) '22-05-2005
20:15:01
End Sub
End Module
Filter(x,y,[1],[2]), menghasilkan array yang berisi string dari array string x yang mana
elemen yang mengandung substring y, dengan ketentuan [1] (true=contain, false =
exclude), dengan compare method [2].
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module modStr
Sub Main()
Dim aNama1() As String = {"Hendra","Susan","Felicia Fortuna"}
Dim aNama2() As String =
Filter(aNama1,"r",true,CompareMethod.Binary)
For Each A As String In aNama2
Console.WriteLine(A) 'Hendra & Felicia Fortuna
Next
End Sub
End Module
Latihan :
1. Buatlah program yang dapat menghasilkan terbilang dari suatu bilangan, contoh
123,456,789 (Seratus dua puluh tiga juta empat ratus lima puluh enam ribu tujuh
ratus delapan puluh sembilan).
INDOPROG 52
53. Bahasa pemrograman VB.NET Hendra, S.T.
Tipe data Date
Pada Visual Basic variabel date disimpan sebagai integer IEEE 64-bit (8-byte) yang
mewakili tanggal dengan jangkauan dari 1 Januari tahun 1 sampai dengan 31 Desember
tahun 9999, dan waktu dari 0:00:00 (tengah malam) sampai 23:59:59.
Nilai tanggal harus diapit diantara tanda angka (#) dan diformat dalam M/d/yyyy, sebagai
contoh #5/31/1993#.
Anda dapat memberikan nilai awal pada variabel tipe Date dengan penulisan sebagai
berikut :
Dim Tanggal As Date = New Date(2005, 5, 30, 8, 29, 59, 900)
Dimana akan memberikan nilai Tanggal 30 Mei 2005 Pukul 8:29:59.900 ke variabel
Tanggal.
Member pada Class Date
Date Mengambil komponen tanggal dari instance
TimeOfDay Mengambil komponen waktu dari instance
Day Mengambil nomor hari (1-31) dalam bulan dari instance
Month Mengambil komponen bulan (1-12) dari instance
Year Mengambil komponen tahun dari instance
Hour Mengambil komponen jam (0-23) dari instance
Minute Mengambil komponen menit (0-59) dari instance
Second Mengambil komponen detik (0-59) dari instance
Millisecond Mengambil komponen mili detik (0-999) dari instance
DayOfWeek Mengambil nomor hari (0-6) dalam minggu dari instance
DayOfYear Mengambil nomor hari (1-366) dalam tahun dari instance
Ticks Mengambil jumlah ticks dari instance
Now Mendapatkan tanggal dan waktu komputer
Today Mendapatkan mendapatkan tanggal komputer
UtcNow Mendapatkan tanggal dan wkatu komputer yang telah diknversi
menjadi coordinated universal time (UTC).
Contoh :
Option Explicit On
Imports System
Public Module ModDate
INDOPROG 53
54. Bahasa pemrograman VB.NET Hendra, S.T.
Sub Main()
Dim Tanggal As Date = New Date(2005,5,30,8,29,40,900)
Console.WriteLine(Tanggal.Date()) '30-05-2005
Console.WriteLine(Tanggal.TimeOfDay()) '08:29:40.9000000
Console.WriteLine(Tanggal.Day()) '30
Console.WriteLine(Tanggal.Month()) '5
Console.WriteLine(Tanggal.Year()) '2005
Console.WriteLine(Tanggal.Hour()) '8
Console.WriteLine(Tanggal.Minute()) '29
Console.WriteLine(Tanggal.Second()) '40
Console.WriteLine(Tanggal.MilliSecond()) '900
Console.WriteLine(Tanggal.DayOfWeek()) '1
Console.WriteLine(Tanggal.DayOfYear()) '150
Console.WriteLine(Tanggal.Ticks()) '632530385809000000
Console.WriteLine(DateTime.Now()) '30-05-2005 08:30:29 PM
Console.WriteLine(Tanggal.Today()) '30-05-2005
Console.WriteLine(Tanggal.UTCNow()) '30-05-2005 1:37:20 PM
End Sub
End Module
Visual Basic menyediakan berbagai fungsi bantu yang merupakan member dari
namespace Microsoft.VisualBasic
AddDays Menambah sejumlah hari (+/-) ke instance.
AddMonths Menambah sejumlah bulan (+/-) ke instance
AddYears Menambah sejumlah tahun (+/-) ke instance
AddHours Menambah sejumlah jam (+/-) ke instanace
AddMinutes Menambah sejumkah menit (+/-) ke instance
AddSeconds Menambah sejumlah detik (+/-) ke instance
AddMilliseconds Menambah sejumlah millidetik (+/-) ke instance
Option Explicit On
Imports System
Public Module ModDate
Sub Main()
Dim Tanggal As Date = New Date(2005,5,30,8,29,40,900)
Console.WriteLine(Tanggal.AddDays(-10)) '20-5-2005 8:29:40.900
End Sub
End Module
Parse Mengkonversi string dalam bentuk tanggal dan waktu ke
DateTime.
Option Explicit On
Imports System
Public Module ModDate
Sub Main()
Dim Str As String = "30-5-2005 08:30:50.900"
INDOPROG 54
55. Bahasa pemrograman VB.NET Hendra, S.T.
Dim Tanggal As Date
Tanggal = DateTime.Parse(Str)
Console.WriteLine(Tanggal)
End Sub
End Module
Compare Membandingkan dua instance dari DateTime dam
mengembalikan ( < 0 jika tanggal1 < tanggal2, = 0 jika
tanggal1 = tanggal2, dan > 0 jika tanggal1 > tanggal2)
DaysInMonth Mengembalikan jumlah hari dalam tahun dan bulan tertentu.
IsLeapYear Mengembalikan indikasi apakah tahun yang diberikan kabisat
Option Explicit On
Imports System
Public Module ModDate
Sub Main()
Dim Tanggal1 As Date = New Date(2005,5,30)
Dim Tanggal2 As Date = New Date(2005,5,31)
Console.WriteLine(DateTime.Compare(Tanggal1,Tanggal2)) '-1
Console.WriteLine(DateTime.DaysInMonth(2005,5)) '31
Console.WriteLine(DateTime.IsLeapYear(2005)) 'False
End Sub
End Module
Subtract Menghasilkan selisih antara suatu datetime dengan instance
Option Explicit On
Imports System
Public Module ModDate
Sub Main()
Dim Tanggal1 As Date = New Date(2005,5,30)
Dim Tanggal2 As Date = New Date(2005,5,31)
Console.WriteLine(Tanggal1.Subtract(Tanggal2)) '-1 00:00:00
End Sub
End Module
ToLocalTime Konversi Instance ke LocalTime
ToLongDateString Konversi Instance ke String dengan format setting
LongDateString
ToLongTimeString Konversi Instance ke String dengan format setting LongTime
ToShortDateString Konversi Instance ke String dengan format setting ShortDate
ToShortTimeString Konversi Instance ke String dengan format setting ShortTime
ToString Konversi Instance ke String
ToUniversalTime Konversi Instance ke UTC
INDOPROG 55
56. Bahasa pemrograman VB.NET Hendra, S.T.
Module Date pada Namespace Microsoft.VisualBasic
DateSerial(year,month,day), mengembalikan data tanggal sesuai dengan tahun, bulan dan
hari yang ditentukan.
TimeSerial(hour, minute, second), mengembalikan waktu sesuai dengan jam, menit dan
detik.
Now(), mengembalikan tanggal dan waktu komputer.
Today(), mengembalikan tanggal komputer.
TimeOfDay(), mengembalikan tanggal komputer dalam bentuk string.
Timer(), mengembalikan data bertipe double yang menunjukan jumlah detik sejak tengah
malam.
DateString(), mengembalikan tanggal komputer dengan format MM-dd-yyyy dalam
bentuk string.
TimeString(), mengembalikan waktu komputer
DateValue(string), mengembalikan tanggal dari hasil konversi string tanggal.
Day(DateTime), mengembalikan bagian hari dari data tanggal
Month(DateTime), mengembalikan bagian bulan dari data tanggal
Year(DateTime), mengembalikan bagian tahun dari data tanggal
Hour(DateTime), mengembalikan bagian jam dari data tanggal
Minute(DateTime), mengembalikan bagian menit dari data tanggal
Second(DateTime), mengembalikan bagian detik dari data tanggal
Weekday(DateTime, DayofWeek), mengembalikan nomor hari dalam minggu dari
DateTime (1 = minggu, …7 = sabtu).
WeekdayName(WeekDay, Abbrev), mengembalikan nama hari berdasarkan nomor hari.
(Abbrev = True, singkatan)
INDOPROG 56
57. Bahasa pemrograman VB.NET Hendra, S.T.
DateAdd(Interval, Number, DateValue), mengembalikan tanggal dari hasil penjumlahan
DateValue terhadap Number dalam arti interval tertentu
Enumeration value String Unit of time interval to add
DateInterval.Day d Day; truncated to integral value
DateInterval.DayOfYear y Day; truncated to integral value
DateInterval.Hour h Hour; rounded to nearest millisecond
DateInterval.Minute n Minute; rounded to nearest millisecond
DateInterval.Month m Month; truncated to integral value
DateInterval.Quarter q Quarter; truncated to integral value
DateInterval.Second s Second; rounded to nearest millisecond
DateInterval.Weekday w Day; truncated to integral value
DateInterval.WeekOfYear ww Week; truncated to integral value
DateInterval.Year yyyy Year; truncated to integral value
DateDiff(Interval, Date1, Date2), menghasilkan selisih antara Date2 terhadap Date1
berdasarkan interval tertentu. Returns a Long value specifying the number of time
intervals between two Date values.
DatePart(Interval, DateValue), mengembalikan nilai Integer yang berkaitan dengan
interval dari DataValue
Catatan :
Visual Basic .NET telah mengantikan Date dan Time dengan Today dan TimeOfDay,
kemudian fungsi Date$ dan Time$ dengan DateString dan TimeString.
INDOPROG 57
58. Bahasa pemrograman VB.NET Hendra, S.T.
Structure pada Visual Basic
Visual Basic menyedia perintah Structure untuk pembentukan tipe data terstruktur,
misalnya kita akan mengolah data ujian mahasiswa dengan tabel sebagai berikut :
Nim Nama Tugas Mid Semester
Dimana dapat ditulis sebagai struktur berikut ini :
Structure Ujian
<VBFixedString(10)> Public Nim As String
<VBFixedString(30)> Public Nama As String
Public Tugas, Mid, Semester As Single
End Structure
Catatan :
Sebagaimana telah dinyatakan sebelumnya bahwa secara default string pada Visual Basic
adalah variable length, dan untuk membentuk string dengan fixed length kita
membutuhkan vbFixedStringAttribute Class, dimana pada awal deklarasi string kita
mencantumkan <VBFixedString(ukuran)>
Salah satu keunggulan pada Structure di Visual Basic adalah kita dapat menambahkan
koding kedalamnya untuk membuat metoda dan property, contoh misalnya kita akan
menambah property Rata-rata untuk menghitung nilai rata-rata Tugas, Mid dan Semester,
sehingga deklarasi Structure dapat ditulis menjadi :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModStruct
Structure Ujian
<VBFixedString(10)> Public Nim As String
<VBFixedString(30)> Public Nama As String
Public Tugas,Mid,Semester As Single
Public ReadOnly Property RataRata() As Single
Get
Return (Tugas+Mid+Semester)/3
End Get
End Property
End Structure
Dim DaftarUjian As Ujian
Sub Main()
DaftarUjian.Nim = "920403024"
INDOPROG 58