Dasar Pemrograman Visual Basic

80
Bahasa pemrograman VB.NET Abdul Azis Bahasa Pemrograman VB.Net Oleh : Abdul Azis 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. AZISDOTNET.WORDPRESS.COM 1

description

Dasar Pemrograman Visual Basic

Transcript of Dasar Pemrograman Visual Basic

Page 1: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

Bahasa Pemrograman VB.Net

Oleh : Abdul Azis

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.

AZISDOTNET.WORDPRESS.COM

1

Page 2: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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:\windows\microsoft.net\framework\v1.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

AZISDOTNET.WORDPRESS.COM

2

Page 3: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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

AZISDOTNET.WORDPRESS.COM

3

Page 4: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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~1\coba.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

Option

Module

Sub

Explicit On

Strict On

Hello

Main()

Dim a As Integer

Dim b As Short

a = 100000

b = a

End Sub

End Module

AZISDOTNET.WORDPRESS.COM

4

Page 5: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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~1\coba.vb(8) : error BC30512: Option Strict On disallows

implicit conversions from 'Integer' to 'Short'.

b = a

~

Sebaliknya jika digunakan Option Strict Off:

Option

Option

Module

Sub

Explicit On

Strict Off

Hello

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.

AZISDOTNET.WORDPRESS.COM

5

Page 6: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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).

AZISDOTNET.WORDPRESS.COM

6

Page 7: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Tetapi jika :

Option Compare Text

Module Hello

Sub Main()

Dim a,b As String

a = "ABC"

b = "abc"

System.Console.WriteLine(a = b)

'True

Abdul Azis

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.

AZISDOTNET.WORDPRESS.COM

7

Page 8: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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.

AZISDOTNET.WORDPRESS.COM

8

Page 9: Dasar Pemrograman Visual Basic

Visual Basic

type

Common language

runtime type

structure

Nominal

storage

allocation

Value range

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

(double-

precision

floating-point)

System.Double 8 bytes -1.79769313486231570E+308 through

-4.94065645841246544E-324 for negative

values; 4.94065645841246544E-324 through

1.79769313486231570E+308 for positive

values.

Integer System.Int32 4 bytes -2,147,483,648 through 2,147,483,647.

Long

(long integer)

System.Int64 8 bytes -9,223,372,036,854,775,808 through

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

(single-

precision

floating-point)

System.Single 4 bytes -3.4028235E+38 through -1.401298E-45 for

negative values; 1.401298E-45 through

3.4028235E+38 for positive values.

String

(variable-

length)

System.String (class) Depends on

implementing

platform

0 to approximately 2 billion Unicode characters.

User-

Defined

Type

(inherits from

System.ValueType)

Depends on

implementing

platform

Each member of the structure has a range

determined by its data type and independent of

the ranges of the other members.

Bahasa pemrograman VB.NET

Abdul Azis

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.

AZISDOTNET.WORDPRESS.COM

9

Page 10: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

(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

Dim

Dim

Dim

Harga, Jumlah As Single

Kuantitas As Integer = 10

Lanjutkan As Boolean = True

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.

AZISDOTNET.WORDPRESS.COM

10

Page 11: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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~1\kali.vb(10) : error BC30512: Option Strict On disallows

AZISDOTNET.WORDPRESS.COM

11

Page 12: Dasar Pemrograman Visual Basic

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.

Bahasa pemrograman VB.NET

Abdul Azis

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 :

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

AZISDOTNET.WORDPRESS.COM

12

Page 13: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

String

"12,500"

"12"

"12500"

"12500.00"

"$12,500.00"

"$12,500.10"

"&HFF"

Integer.Parse

Error

12

12500

Error

Error

Error

(VB syntax for the hex value FF) 255

Convert.ToInt32

Error

12

12500

Error

Error

Error

Error

Cint

12500

12

12500

12500

12500

12500

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

AZISDOTNET.WORDPRESS.COM

13

Page 14: Dasar Pemrograman Visual Basic

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.

LeftOperand Type SizeMask

Byte 7 (&H7)

Short 15 (&HF)

Integer 31 (&H1F)

Long 63 (&H3F)

Bahasa pemrograman VB.NET

Abdul Azis

Result1 Result2

Result3

Result4

Result5

= =

=

=

=

Pattern Pattern

Pattern

Pattern

Pattern

<< <<

<<

<<

<<

0 4

9

17

-1

' '

'

'

'

Result Result

Result

Result

Result

is is

is

is

is

192 (0000 0000 1100 0000). 3072 (0000 1100 0000 0000).

-32768 (1000 0000 0000 0000).

384 (0000 0001 1000 0000).

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 :

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 :

AZISDOTNET.WORDPRESS.COM

14

Page 15: Dasar Pemrograman Visual Basic

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.

Bahasa pemrograman VB.NET

Abdul Azis

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)

AZISDOTNET.WORDPRESS.COM

15

Page 16: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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&

AZISDOTNET.WORDPRESS.COM

16

Page 17: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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 Console.WriteLine("The

Console.WriteLine("See Console.WriteLine("See Console.WriteLine("The

Console.WriteLine("The

AZISDOTNET.WORDPRESS.COM

number is {0}", 3 + 7) result of {0} + {1} = {2}", 3, 7, 3+7)

decimals {0, 12:f1}", 0.123456789) decimals {0, 12:f9}", 0.123456789) value is {0, 0:000.00}", 0.123456789)

value is {0, 0:###.##}", 1234.56789)

17

Page 18: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Masing-masing akan menghasilkan

Abdul Azis

The

The

See See The

The

number is 10

result of 3 + 7 = 10

decimal 0.1 decimal 0.123456789 value is 001.23

value is 1234.57

Contoh Format String :

C

C

D

D8

E

E10

E

e4

F

F

F0

F6

G

G7

G

G

G2

G

N

N

N4

P

r

x

X

X8

x

Format

Culture

en-US

de-DE

en-US

en-US

en-US

en-US

fr-FR

en-US

en-US

es-ES

en-US

en-US

en-US

en-US

en-US

en-US

en-US

en-US

en-US

sv-SE

en-US

en-US

en-US

en-US

en-US

en-US

en-US

Data type

Double

Double

Int32

Int32

Double

Double

Double

Double

Double

Double

Double

Double

Double

Double

Double

Double

Double

Double

Double

Double

Double

Double

Double

Int32

Int32

Int32

Int32

Value

12345.6789

12345.678

12345

12345

12345.6789

12345.6789

12345.6789

12345.6789

12345.6789

12345.6789

12345.6789

12345.6789

12345.6789

12345.6789

0.0000023

0.0023

1234

Math.PI

12345.6789

12345.6789

123456789

.126

Math.PI

0x2c45e

0x2c45e

0x2c45e

123456789

Output

$12,345.68

12.345,68 DM

12345

00012345

1.234568E+004

1.2345678900E+004

1,234568E+004

1.2346e+004

12345.68

12345,68

123456

12345.678900

12345.6789

12345.68

2.3E-6

0.0023

1.2E3

3.14159265358979

12,345.68

12 345,68

123,456,789.0000

12.60 %

3.141592653589793

2c45e

2C45E

0002C45E

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 :")

AZISDOTNET.WORDPRESS.COM

18

Page 19: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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:\windows\microsoft.net\framework\v1.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

AZISDOTNET.WORDPRESS.COM

19

Page 20: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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

AZISDOTNET.WORDPRESS.COM

20

Page 21: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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")

AZISDOTNET.WORDPRESS.COM

21

Page 22: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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()

AZISDOTNET.WORDPRESS.COM

22

Page 23: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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

Console.WriteLine(I)

Next I

Atau

For I As Integer = 1 To 100

'Defaultnya Step 1

'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

AZISDOTNET.WORDPRESS.COM

23

Page 24: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

For I = 1 To 100

Console.WriteLine(I)

Next I

Tidak berbeda dengan

For I As Integer = 1 To 100

'Defaultnya Step 1

'Defaultnya Step 1

Abdul Azis

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

Console.WriteLine(I)

Next I

Console.WriteLine(I)

Sedangkan

For I As Integer = 1 To 100

Console.WriteLine(I)

Next I

Console.WriteLine(I)

'Defaultnya Step 1

'Akan tercetak 101 'Defaultnya Step 1

'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

AZISDOTNET.WORDPRESS.COM

24

Page 25: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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() ="AZISDOTNET.WORDPRESS.COM" 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

AZISDOTNET.WORDPRESS.COM

25

Page 26: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Atau

Do

[ statements ]

[ Exit Do ]

[ statements ]

Abdul Azis

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).

AZISDOTNET.WORDPRESS.COM

26

Page 27: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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.

AZISDOTNET.WORDPRESS.COM

27

Page 28: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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.

AZISDOTNET.WORDPRESS.COM

28

Page 29: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

7. Buatlah program yang dapat mencetak faktor prima dari suatu bilangan

bulat (Contoh 100 = 2 x 2 x 5 x 5)

AZISDOTNET.WORDPRESS.COM

29

Page 30: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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)

arr(1)

arr(2)

arr(3)

arr(4)

=

=

=

=

=

0

1

4

9

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 :

AZISDOTNET.WORDPRESS.COM

30

Page 31: Dasar Pemrograman Visual Basic

GetLength Mendapatkan jumlah elemen dalam Array pada dimensi

tertentu (Integer 32-bit)

GetLongLength Mendapatkan jumlah elemen dalam Array pada dimensi

tertentu (Integer 64-bit)

Length Mendapatkan jumlah elemen dalam Array (Integer 32-bit)

LongLength Mendapatkan jumlah elemen dalam Array (Integer 64-bit)

Rank Mendapatkan jumlah dimensi dalam Array

Bahasa pemrograman VB.NET

Abdul Azis

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,

b(1,

b(2,

b(3,

b(4,

0)

0)

0)

0)

0)

=

=

=

=

=

0

2

4

6

8

:

:

:

:

:

b(0,

b(1,

b(2,

b(3,

b(4,

1)

1)

1)

1)

1)

=

=

=

=

=

1

3

5

7

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 :

Contoh : Option Explicit On

Imports System

Imports Microsoft.VisualBasic

Public Module ModArr

Public Arr(3,3) As Integer

Sub Main()

Console.WriteLine(Arr.Length())

Console.WriteLine(Arr.LongLength())

Console.WriteLine(Arr.Rank())

End Sub

End Module

Contoh : Option Explicit On

Imports System

Imports Microsoft.VisualBasic

Public Module ModArr

AZISDOTNET.WORDPRESS.COM

'16

'16

'2

31

Page 32: Dasar Pemrograman Visual Basic

IndexOf Mendapatkan index paling awal dari nilai tertentu pada Array 1

dimensi.

LastIndexOf Mendapatkan index paling akhir dari nilai tertentu pada Array 1

dimensi.

GetLowerBound Mendapatkan nilai index batas bawah Array pada dimensi

tertentu.

GetUpperBound Mendapatkan nilai index batas atas Array pada dimensi

tertentu.

Bahasa pemrograman VB.NET

Public Arr(3,3) As Integer

Sub Main()

Console.WriteLine(Arr.GetLength(0))

Console.WriteLine(Arr.GetLongLength(0))

End Sub

End Module

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))

Console.WriteLine(Arr.GetUpperBound(0))

End Sub

End Module

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))

Console.WriteLine(Array.LastIndexOf(Arr,3))

End Sub

End Module

'4

'4

'0

'3

'3

'5

Abdul Azis

Reverse

Option Explicit On

AZISDOTNET.WORDPRESS.COM

Membalik urutan element dalam suatu Array 1 dimensi.

32

Page 33: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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

AZISDOTNET.WORDPRESS.COM

33

Page 34: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Array.Sort(Arr,0,4)

Console.WriteLine(Array.BinarySearch(Arr,Nilai))

'2

Abdul Azis

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

ReDim MyArray(5)

For I = 0 To UBound(MyArray)

MyArray(I) = I

' Declare variable and array variable.

' Allocate 6 elements.

' 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

AZISDOTNET.WORDPRESS.COM

34

Page 35: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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

AZISDOTNET.WORDPRESS.COM

35

Page 36: Dasar Pemrograman Visual Basic

Exception type Error number Condition

ArgumentNullException 9 Array is Nothing.

RankException 9 Rank < 1 or Rank is greater

than the rank of Array.

Bahasa pemrograman VB.NET

Abdul Azis

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

Dim MyString As String

Dim MyCheck As Boolean

MyCheck = IsArray(MyArray)

MyCheck = IsArray(YourArray)

MyCheck = IsArray(MyString)

' Declare array variables.

' Returns True.

' Returns True.

' 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)

Lowest = LBound(MyArray, 3)

Lowest = LBound(AnyArray)

' Returns 0.

' Returns 0.

' Returns 0.

Suatu Exception/Error akan terjadi kalau kondisi berikut ini ditemukan :

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

AZISDOTNET.WORDPRESS.COM

36

Page 37: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Highest = UBound(MyArray, 1)

Highest = UBound(MyArray, 3)

Highest = UBound(AnyArray)

' Returns 10.

' Returns 20.

' Returns 6.

Abdul Azis

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.

AZISDOTNET.WORDPRESS.COM

37

Page 38: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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.

AZISDOTNET.WORDPRESS.COM

38

Page 39: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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

Return False

Else

X1 = (-B + Math.Sqrt(D))/(2*A)

X2 = (-B - Math.Sqrt(D))/(2*A)

Return True

'Akar Imaginier

'Tidak ada solusi

'argumen X1

'argumen X2

'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 :

AZISDOTNET.WORDPRESS.COM

39

Page 40: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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()

AZISDOTNET.WORDPRESS.COM

40

Page 41: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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 :

AZISDOTNET.WORDPRESS.COM

41

Page 42: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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.

AZISDOTNET.WORDPRESS.COM

42

Page 43: Dasar Pemrograman Visual Basic

Chars Mendapatkan karakter pada posisi tertentu string.

Length Mendapatkan jumlah character dalam string

Bahasa pemrograman VB.NET

Abdul Azis

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

Contoh :

Option Explicit On

Imports System

Public Module modStr

AZISDOTNET.WORDPRESS.COM

43

Page 44: Dasar Pemrograman Visual Basic

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

Bahasa pemrograman VB.NET

Dim Nama As String = "Hendra Soewarno"

Sub Main()

Abdul Azis

Console.WriteLine(Nama.Chars(0))

Console.WriteLine(Nama.Chars(1))

Console.WriteLine(Nama.Chars(2))

Console.WriteLine(Nama.Length())

'Akan

'Akan

'Akan

'Akan

mencetak

mencetak

mencetak

mencetak

H

e

n

12

End Sub

End Module

Public Methods

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,"-"))

Console.WriteLine(Nama.PadRight(20,"-"))

Console.WriteLine(Nama.ToLower())

Console.WriteLine(Nama.ToUpper())

Console.WriteLine(Kota.TrimEnd())

Console.WriteLine(Kota.TrimStart())

AZISDOTNET.WORDPRESS.COM

'-----Hendra Soewarno

'Hendra Soewarno-----

'hendra soewarno

'HENDRA SOEWARNO

'____Medan

'Medan_____

44

Page 45: Dasar Pemrograman Visual Basic

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.

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

Bahasa pemrograman VB.NET

Console.WriteLine(Kota.Trim())

Console.WriteLine(Nama.SubString(3,3))

'Medan

'dra

Abdul Azis

End Sub

End Module

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

Contoh :

Option Explicit On

Imports System

Public Module modStr

' 0 1 2

' 012345678901234567890123456

Dim Nama As String = "ebook karya Hendra Soewarno"

AZISDOTNET.WORDPRESS.COM

45

Page 46: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Sub Main()

Console.WriteLine(Nama.StartsWith("e"))

Console.WriteLine(Nama.StartsWith("a"))

Console.WriteLine(Nama.EndsWith("o"))

Console.WriteLine(Nama.EndsWith("i"))

'True

'False

'True

'False

Abdul Azis

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"))

Console.WriteLine(Nama.LastIndexOfAny("e"))

Console.WriteLine(Nama.IndexOf("e",2))

Console.WriteLine(Nama.LastIndexOf("e",15))

'0

'21

'13

'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"))

Console.WriteLine(AscW("H"))

Console.WriteLine(Chr("72"))

Console.WriteLine(ChrW("72"))

End Sub

End Module

AZISDOTNET.WORDPRESS.COM

'72

'72

'H

'H

46

Page 47: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

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"

Abdul Azis

Console.WriteLine(Len(Nama))

Console.WriteLine(LCase(Nama))

Console.WriteLine(UCase(Nama))

'15

'hendra soewarno

'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))

Console.WriteLine(Left(Nama,6))

Console.WriteLine(Right(Nama,8))

Console.WriteLine(Mid(Nama,4,3))

'H

'Hendra

'Soewarno

'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.

AZISDOTNET.WORDPRESS.COM

47

Page 48: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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)

Console.WriteLine(StrReverse(Nama))

'Susan

'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 :

AZISDOTNET.WORDPRESS.COM

48

Page 49: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

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"))

Console.WriteLine(InStr(5,Nama,"i"))

Console.WriteLine(InStrRev(Nama,"F",10))

Console.WriteLine(InStrRev(Nama,"F",7))

'4

'6

'9

'1

Abdul Azis

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))

Console.WriteLine(StrComp(Nama1,Nama2,CompareMethod.Binary))

'0

'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))

AZISDOTNET.WORDPRESS.COM

'Felicia 49

Page 50: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Console.WriteLine(aNama(1))

'Fortuna

Abdul Azis

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))

Console.WriteLine(StrConv(Nama,VbStrConv.LowerCase))

'HENDRA

'hendra

Console.WriteLine(StrConv(Nama,VbStrConv.ProperCase)) 'Hendra

End Sub

AZISDOTNET.WORDPRESS.COM

50

Page 51: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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))

Console.WriteLine(FormatNumber(Angka,2))

Console.WriteLine(FormatPercent(PPN,2))

'$100,000.00

'100,000.00

'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 :

AZISDOTNET.WORDPRESS.COM

51

Page 52: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Option Explicit On

Imports System

Imports Microsoft.VisualBasic

Public Module modStr

Sub Main()

Console.WriteLine(Format(10000,"#,##0.00"))

Abdul Azis

'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).

AZISDOTNET.WORDPRESS.COM

52

Page 53: Dasar Pemrograman Visual Basic

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).

Bahasa pemrograman VB.NET

Abdul Azis

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

Contoh :

Option Explicit On

Imports System

Public Module ModDate

AZISDOTNET.WORDPRESS.COM

53

Page 54: Dasar Pemrograman Visual Basic

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

Bahasa pemrograman VB.NET

Abdul Azis

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

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"

AZISDOTNET.WORDPRESS.COM

54

Page 55: Dasar Pemrograman Visual Basic

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

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

Bahasa pemrograman VB.NET

Dim Tanggal As Date

Tanggal = DateTime.Parse(Str)

Console.WriteLine(Tanggal)

End Sub

End Module

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))

Console.WriteLine(DateTime.DaysInMonth(2005,5))

Console.WriteLine(DateTime.IsLeapYear(2005))

End Sub

End Module

Abdul Azis

'-1

'31

'False

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))

End Sub

End Module

AZISDOTNET.WORDPRESS.COM

'-1 00:00:00

55

Page 56: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

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)

AZISDOTNET.WORDPRESS.COM

56

Page 57: Dasar Pemrograman Visual Basic

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

Bahasa pemrograman VB.NET

Abdul Azis

DateAdd(Interval, Number, DateValue), mengembalikan tanggal dari hasil penjumlahan

DateValue terhadap Number dalam arti interval tertentu

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.

AZISDOTNET.WORDPRESS.COM

57

Page 58: Dasar Pemrograman Visual Basic

Nim Nama Tugas Mid Semester

Bahasa pemrograman VB.NET

Abdul Azis

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 :

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"

AZISDOTNET.WORDPRESS.COM

58

Page 59: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

DaftarUjian.Nama = "Hendra Soewarno"

DaftarUjian.Tugas = 90

DaftarUjian.Mid = 90

DaftarUjian.Semester = 90

Console.WriteLine(DaftarUjian.RataRata)

End Sub

End Module

Contoh program membaca data ke array structure dan mencetak kembali :

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 Jd As Integer = 0

Dim DaftarUjian() As Ujian

Private Sub BacaData

Dim Nim As String

Do

Console.WriteLine("Record ke {0}",Jd+1)

Console.Write("Nim : ")

Nim = Console.ReadLine()

If Nim.Trim.Length > 0

ReDim Preserve DaftarUjian(Jd)

DaftarUjian(jd).Nim = Nim

Console.Write("Nama : ")

DaftarUjian(jd).Nama = Console.ReadLine()

Console.Write("Tugas : ")

DaftarUjian(jd).Tugas = Console.ReadLine()

Console.Write("Mid : ")

DaftarUjian(jd).Mid = Console.ReadLine()

Console.Write("Semester : ")

DaftarUjian(jd).Semester = Console.ReadLine()

Jd = Jd + 1

End If

Loop Until Len(Trim(Nim)) = 0

End Sub

Private Sub CetakData()

Dim Record As Ujian

Console.WriteLine("Daftar Ujian Mahasiswa")

Console.WriteLine

Abdul Azis

Console.WriteLine("Nim Nama T M S R ")

AZISDOTNET.WORDPRESS.COM

59

Page 60: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

Console.WriteLine("----------------------------------------------------------------------")

For Each Record In DaftarUjian

Console.WriteLine("{0} {1} {2,6:f2} {3,6:f2} {4,6:f2}

{5,6:f2}", _

Record.Nim.PadRight(10), _

Record.Nama.PadRight(30), _

Record.Tugas, _

Record.Mid, _

Record.Semester, _

Record.RataRata)

Next

End Sub

Sub Main()

Call BacaData

Call CetakData

End Sub

End Module

Latihan :

1. Kembangkan program diatas untuk mencetak Daftar Ujian Mahasiswa, dimana

ditampilkan nilai rata-rata diikuti dengan nilai Huruf (A, B, C, D, atau E), serta

tampilkan jumlah yang Lulus (C Keatas), dan Rata-rata kelas, serta NIM

mahasiswa peringkat pertama, dengan pendekatan terstruktur.

Catatan : Kategori nilai Huruf dicetak dengan membuat Properti NilaiHuruf pada

Structure Ujian.

AZISDOTNET.WORDPRESS.COM

60

Page 61: Dasar Pemrograman Visual Basic

Member name Description Value

Archive The file's archive status. Applications use this attribute to mark

files for backup or removal.

32

Compressed The file is compressed. 2048

Device Reserved for future use. 64

Directory The file is a directory. 16

Bahasa pemrograman VB.NET

Abdul Azis

Pengolahan file stream pada Visual Basic

Sebagaimana bahasa pemrograman modern lainnya yang memperlakukan input/output

data byte sebagai Streams.

Streams meliputi tiga operasi yang mendasar:

1. Anda dapat membaca dari streams. Membaca dalam hal ini adalah mentransfer

data dari suatu stream ke dalam suatu struktur data, seperti suatu array dari byte.

2. Anda dapat menulis ke streams. Menulis adalah mentransfer data dari suatu

struktur data ke dalam suatu stream.

3. Stream mendukung pencarian. Pencarian adalah melakukan query dan modifikasi

terhadap posisi dalam suatu stream. Kemampuan pencarian sangat tergantung

pada jenis media penampung stream. Sebagai contoh FileStream mendukung

perubahan posisi, sedangkan network stream tidak.

Stream merupakan abstract base class untuk semua stream. Suatu stream adalah

abstraction dari rangkain byte, seperti suatu file, peralatan input/output, inter-process

communication pipe, atau suatu TCP/IP socket.

Untuk pengolahan stream yang berkaitan dengan file perlu melakukan Imports

System.IO, untuk menggunakan File Class.

File Class Menyediakan metode-metode static untuk pembuatan, menduplikasi, menghapus, dan

membuka file. Berikut ini adalah beberapa member File Class :

File.Exists(namafile), mendeteksi keberadaan file

File.Delete(namafile), menghapus file yang ditentukan

File.Copy(asal,tujuan), menduplikasi file asal ke file tujuan

File.Move(asal,tujuan), memindahkan file ke lokasi baru dengan nama baru

File.GetAttributes(namafile), mendapatkan attribut dari file, dimana mengembalikan

salah satu nilai dari member FileAttributes :

AZISDOTNET.WORDPRESS.COM

61

Page 62: Dasar Pemrograman Visual Basic

Encrypted The file or directory is encrypted. For a file, this means that all

data in the file is encrypted. For a directory, this means that

encryption is the default for newly created files and directories.

16384

Hidden The file is hidden, and thus is not included in an ordinary

directory listing.

2

Normal The file is normal and has no other attributes set. This attribute is

valid only if used alone.

128

NotContentIndexed The file will not be indexed by the operating system's content

indexing service.

8192

Offline The file is offline. The data of the file is not immediately available. 4096

ReadOnly The file is read-only. 1

ReparsePoint The file contains a reparse point, which is a block of user-defined

data associated with a file or a directory.

1024

SparseFile The file is a sparse file. Sparse files are typically large files whose

data are mostly zeros.

512

System The file is a system file. The file is part of the operating system or

is used exclusively by the operating system.

4

Temporary The file is temporary. File systems attempt to keep all of the data

in memory for quicker access rather than flushing the data back

to mass storage. A temporary file should be deleted by the

application as soon as it is no longer needed.

256

Bahasa pemrograman VB.NET

Abdul Azis

File.GetCreationTime(namafile), mendapatkan tanggal dan waktu pembuatan file

File.GetLastAccessTime(namafile), mendapatkan tanggal dan waktu file terakhir kali

diakses.

File.GetLastWriteTime(namafile), mendapatkan tanggal dan waktu file terakhir kali

ditulisi.

File.SetCreationTime(namafile, waktu)

File.SetLastAccessTime(namafile, waktu)

File.SetLastWriteTime(namafile,waktu)

Pengolahan Text File Pengolahan text file secara Stream dapat menggunakan StreamWriter dan StreamReader

dengan metode berikut ini :

File.CreateText(namafile), membuat file baru sebagai streamwriter, selanjutnya kita

dapat menggunakan metoda Write maupun WriteLine pada streamwriter untuk

melakukan penulisan ke file.

AZISDOTNET.WORDPRESS.COM

62

Page 63: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

File.OpenText(namafile), membuka file yang telah ada sebagai streamreader, dan

selanjutnya kita dapat menggunakan metoda Read, ReadLine, kemudian untuk

memeriksa keberadaan data untuk dibaca dapat menggunalan fungsi Peek

File.AppendText(namafile), membuka file yang telah ada untuk streamwrite.

Contoh :

Option Explicit On

Imports System

Imports System.IO

Public Module ModTextFile

Sub Main()

Dim sw As StreamWriter = File.CreateText("c:\belajar.txt")

sw.WriteLine("Buku Belajar Vb.net")

sw.Flush()

sw.Close()

Dim sr As StreamReader = File.OpenText("c:\belajar.txt")

Do While sr.Peek() >= 0

Console.WriteLine(sr.ReadLine())

Loop

sr.Close()

sw = File.AppendText("C:\belajar.txt")

sw.WriteLine("Oleh : Hendra Soewarno")

sw.Flush()

sw.Close()

sr = File.OpenText("c:\belajar.txt")

Do While sr.Peek() >= 0

Console.WriteLine(sr.ReadLine())

Loop

sr.Close()

End Sub

End Module

Pengolahan File Binary Pengolahan BinaryFile secara Stream dapat menggunakan FileStream dengan metode

berikut ini :

File.Create(namafile), membuat file baru sebagai filestream, anda dapat menggunakan

metode Write, WriteByte pada filestream untuk melakukan penulisan ke file.

File.OpenRead(namafile), membuka file yang telah ada sebagai filestream, anda dapat

menggunakan metoda Read, ReadByte pada filestream untuk melakukan pembacaan dari

file.

File.OpenWrite(namafile), membuka file yang telah ada sebagai filestream.

AZISDOTNET.WORDPRESS.COM

63

Page 64: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

Membaca dari FileStream

Kita dapat menggunakan metoda read untuk membaca data dari FileStream

Terbaca = Fs.Read(buffer,index,count)

dimana buffer adalah array dari byte atau karakter, kemudian index adalah posisi index

pada array, dan count adalah jumlah byte yang ingin ditulis. Fungsi read akan

mengembalikan jumlah byte yang berhasil dibaca (jumlah byte terbaca dapat lebih kecil

dari count apabila EOF telah dicapai).

Menulis ke FileStream

Kemudian dapat digunakan metoda write untuk menulis data terhadap FileStream

Tertulis = Fs.Write(buffer,index,count)

Menutup FileStream

Anda dapat menggunakan metoda Close untuk menutup FileStream yang terbuka.

Fs.Close

Contoh Program simulasi perintah copy pada dos:

Option Explicit On

Imports System

Imports System.IO

Public Module ModFS

Sub Main(ByVal CmdArgs() As String)

Dim Buffer(511) As Byte

If CmdArgs.Length < 2 Then

Console.WriteLine("Pemakaian : duplikat <fileasal>

<filetujuan>")

End

End If

If File.Exists(CmdArgs(0)) Then

Dim FSS As FileStream = File.OpenRead(CmdArgs(0))

Dim FST As FileStream = File.Create(CmdArgs(1))

Dim Terbaca As Integer = 0

Dim I As Integer

Do

Terbaca = FSS.Read(Buffer,0,Buffer.Length())

FST.Write(Buffer,0,Terbaca)

Loop Until Terbaca < 512

AZISDOTNET.WORDPRESS.COM

64

Page 65: Dasar Pemrograman Visual Basic

Append Membuka atau membuat filebaru, dan menempatkan posisi file

pointer pada EOF (harus disertai dengan FileAccess.Write)

Create Membuat file baru atau file lama akan ditimpa.

CreateNew Membuat file baru dan akan menyebabkan exception kalau file telah

ada

Open Membuka file dan akan menyebabkan exception kalau file belum ada

OpenOrCreate Membuka atau membuat file baru jika belum ada

Truncate Membuka file dan mengosongkan isi file tersebut

None Tidak memungkinkan pembukaan file oleh proses lain (Single User)

Read Multiuser dengan pembatasan proses lain hanya dapat hak membaca

ReadWrite Multiuser

Write Multiuser dengan pembatasan proses lain hanya dapat hak menulis

Read Akses membaca data dari file

ReadWrite Akses membaca dan menulis data ke file

Write Akses menulis file

Bahasa pemrograman VB.NET

Abdul Azis

FSS.Close()

FST.Close()

Else

Console.WriteLine("File asal tidak ditemukan !")

End If

End Sub

End Module

Pembukaan File Binary dengan FileStream Constructor Selain dengan menggunakan File.Create, FileOpenRead, dan FileOpenWrite, kita dapat

juga membuka FileStream dengan menggunakan constructor :

Syntax :

FileStream Constructor(nama file, FileMode, FileAccess, FileShare)

Dimana Enumeration member untuk FileMode adalah sebagai berikut :

Dan Enumeration member untuk FileAccess adalah sebagai berikut :

Dan Enumeration member untuk FileShare adalah sebagai berikut :

Contoh Program simulasi perintah copy pada dos dengan constructor FileStream:

Option Explicit On

Imports System

Imports System.IO

AZISDOTNET.WORDPRESS.COM

65

Page 66: Dasar Pemrograman Visual Basic

Nim Nama Tugas Mid Semester

Bahasa pemrograman VB.NET

Abdul Azis

Public Module ModDup

Sub Main(ByVal CmdArgs() As String)

Dim Buffer(511) As Byte

If CmdArgs.Length < 2 Then

Console.WriteLine("Pemakaian : duplikasi <fileasal>

<filetujuan>")

End

End If

If File.Exists(CmdArgs(0)) Then

Dim FSS As FileStream = new FileStream(CmdArgs(0), _

FileMode.Open, _

FileAccess.Read)

Dim FST As FileStream = new FileStream(CmdArgs(1), _

FileMode.Create, _

FileAccess.Write)

Dim Terbaca As Integer = 0

Do

Terbaca = FSS.Read(Buffer,0,Buffer.Length())

FST.Write(Buffer,0,Terbaca)

Loop Until Terbaca < 512

FSS.Close()

FST.Close()

Else

Console.WriteLine("File asal tidak ditemukan !")

End If

End Sub

End Module

Pengolahan Random File

Secara Stream, Visual Basic tidak menyediakan metoda khusus untuk pengolahan

random file untuk penyimpan data Structure, misalnya kita ingin menyimpan data hasil

ujian mahasiswa sebagai berikut ini :

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

Public ReadOnly Property RataRata() As Single

AZISDOTNET.WORDPRESS.COM

66

Page 67: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

Get

Return (Tugas+Mid+Semester)/3

End Get

End Property

End Structure

Dan data tersebut diatas ingin kita simpan ke file.

Mendapatkan jumlah Record dalam file

Untuk mendapatkan jumlah record, kita dapat menggunakan ukuran FileStream dibagi

dengan ukuran tiap record.

Dim Record As Ujian

JlhRec = Fs.Length()/Len(Record)

Memindahkan posisi stream pointer

Sesuai dengan istilah random file, tentu saja harus memiliki kemampuan untuk

mengakses (membaca/menulis) ke record tertentu secara langsung, untuk keperluan

tersebut kita dapat memindahkan posisi stream dengan perintah Seek.

Fs.Seek(offset, origin)

dimana offset adalah posisi (dalam ukuran byte) yang relatif terhadap SeekOrigin (begin,

current, dan end) pada stream.

Contoh :

Fs.Seek(0,SeekOrigin.Begin)

Fs.Seek(10,SeekOrigin.Current)

Fs.Seek(-10,SeekOrigin.Current)

'Pindah ke posisi awal steam

'Pindah 10 byte ke belakang dari posisi sekarang

'Pindah 10 byte kedepan dari posisi sekarang

Pada pengolahan random file, kita dapat menggunakan formula berikut untuk

menghitung offset pada stream :

Offset = (recno – 1) * ukuran tiap record

Contoh :

Fs.Seek((1-1)*Len(Record))

Fs.Seek((10-1)*Len(Record))

AZISDOTNET.WORDPRESS.COM

'Pindah ke posisi record 1

'Pindah ke posisi record 10

67

Page 68: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

Mendapatkan posisi Stream pointer

Untuk mendapatkan posisi Stream dapat digunakan property Position

Contoh :

Console.WriteLine(Fs.Position)

Dan kita dapat menggunakan formula berikut untuk menghitung posisi record

Norec = (Posisi Stream / Ukuran tiap record) + 1

Membaca/menulis record ke Stream

Untuk membaca dan menulis data ke stream kita perlu menggunakan BinaryFormatter,

karena perintah Read dan Write yang tersedia pada FileStream membutuhkan struktur

data array byte.

Adapun BinaryFormatter berfungsi melakukan serialize dan deserialize terhadap objek

menjadi format binary.

Supaya suatu Structure dapat di serialize/deserialize, maka kita perlu menambahkan

<Serializble> pada saat deklarasi structure tersebut. Contoh :

<Serializable> 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

Untuk menulis ke FileStream, kita dapat menggunakan metoda Serialize pada

BinaryFormatter, dan untuk membaca kita dapat menggunakan metoda DeSerialize,

Contoh :

Option Explicit On

Imports System

Imports System.IO

Imports Microsoft.VisualBasic

Imports System.Runtime.Serialization.Formatters.Binary

Public Module ModStruct

<Serializable> 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

AZISDOTNET.WORDPRESS.COM

68

Page 69: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Get

Return (Tugas+Mid+Semester)/3

End Get

End Property

End Structure

Abdul Azis

Dim

Dim

Dim

Dim

Jd As Integer = 0

Record As Ujian

Ukuran As Integer = Len(Record)

Fm As New BinaryFormatter

Sub Main()

Dim Fs As FileStream = new

FileStream("c:\ujian.dat",FileMode.OpenOrCreate, FileAccess.ReadWrite,

FileShare.None)

Record.Nim = "123"

Fm.serialize(Fs,Record) 'Menulis record ke FileStream

Record.Nim = "234"

Fm.serialize(Fs,Record) 'Menulis record ke FileStream

Fs.Seek(0,SeekOrigin.Begin) 'Pindah stream ke record 1

Record = Fm.deserialize(Fs) 'Membaca record

Console.WriteLine(Record.Nim)

Record = Fm.deserialize(Fs) 'Membaca record

Console.WriteLine(Record.Nim)

Fs.Close()

End Sub

End Module

Latihan :

1. Buatlah program yang dapat mengkonversi semua huruf dalam text file ke huruf

besar.

2. Buatlah program yang dapat menghitung jumlah baris dan kata yang terdapat

pada suatu text file.

3. Kembangkan program untuk melakukan enkripsi/dekripsi terhadap fileasal dan

menghasilkan filetujuan yang sudah tersandi dengan suatu kata kunci (dengan

menggunakan filestream).

4. Buatlah program yang dapat menyimpan data ujian mahasiswa berdasarkan input

dari pemakai dalam bentuk record.

5. Buatlah program yang dapat membaca record dari file yang sudah dibuat pada

soal nomor 4, dan mencetak kembali dalam bentuk laporan.

Jawaban :

Option Explicit On

Imports System

Imports System.IO

Imports Microsoft.VisualBasic

Public Module ModFS

Sub Main(ByVal CmdArgs() As String)

AZISDOTNET.WORDPRESS.COM

69

Page 70: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

Dim Buffer(511) As Byte

If CmdArgs.Length < 2 Then

Console.WriteLine("Pemakaian : en <fileasal> <filetujuan>")

End

End If

If File.Exists(CmdArgs(0)) Then

Console.Write("Kata Kunci :")

Dim KataKunci As String = Console.ReadLine()

Dim Kalimat As String = KataKunci

Do While Kalimat.Length() < 512

Kalimat = Kalimat + KataKunci

Loop

Dim FSS As FileStream = new FileStream(CmdArgs(0), _

FileMode.Open, _

FileAccess.Read)

Dim FST As FileStream = new FileStream(CmdArgs(1), _

FileMode.Create, _

FileAccess.Write)

Dim Terbaca As Integer = 0

Dim I As Integer

Do

Terbaca = FSS.Read(Buffer,0,Buffer.Length())

For I = 0 to Terbaca-1

Buffer(I) = Buffer(I) XOR Asc(Kalimat.Chars(I))

Next I

FST.Write(Buffer,0,Terbaca)

Loop Until Terbaca < 512

FSS.Close()

FST.Close()

Else

Console.WriteLine("File asal tidak ditemukan !")

End If

End Sub

End Module

AZISDOTNET.WORDPRESS.COM

70

Page 71: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Abdul Azis

Try...Catch...Finally Statements

Try…Catch…Finally merupakan cara baru penanganan error di Visual Basic pada saat

runtime, adapun tata penulisannya adalah sebagai berikut :.

Try

[ tryStatements ]

[ Catch [ exception [ As type ] ] [ When expression ]

[ catchStatements ] ]

[ Exit Try ]

...

[ Finally

[ finallyStatements ] ]

End Try

Contoh :

Option Explicit On

Imports System

Imports System.IO

Public Module ModFS

Sub Main(ByVal CmdArgs() As String)

Dim Buffer(511) As Byte

If CmdArgs.Length < 2 Then

Console.WriteLine("Pemakaian : duplikat <fileasal>

<filetujuan>")

End

End If

Dim FSS As FileStream

Try

FSS = File.OpenRead(CmdArgs(0))

Catch ex As Exception

Console.WriteLine("Gagal buka file " + CmdArgs(0))

End

End Try

Dim FST As FileStream = File.Create(CmdArgs(1))

Dim Terbaca As Integer = 0

Dim I As Integer

Do

Terbaca = FSS.Read(Buffer,0,Buffer.Length())

FST.Write(Buffer,0,Terbaca)

Loop Until Terbaca < 512

AZISDOTNET.WORDPRESS.COM

71

Page 72: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

FSS.Close()

FST.Close()

End Sub

End Module

AZISDOTNET.WORDPRESS.COM

Abdul Azis

72

Page 73: Dasar Pemrograman Visual Basic

Format name Description

General Number, G, or g Displays number with no thousand

separator.

Currency, C, or c Displays number with thousand separator, if

appropriate; display two digits to the right

of the decimal separator. Output is based on

system locale settings.

Fixed, F, or f Displays at least one digit to the left and two

digits to the right of the decimal separator.

Standard, N, or n Displays number with thousand separator, at

least one digit to the left and two digits to

the right of the decimal separator.

Percent Displays number multiplied by 100 with a

percent sign (%) appended immediately to

the right; always displays two digits to the

right of the decimal separator.

P, or p Displays number with thousandths separator

multiplied by 100 with a percent sign (%)

appended to the right and separated by a

single space; always displays two digits to

the right of the decimal separator.

Scientific Uses standard scientific notation, providing

two significant digits.

E, or e Uses standard scientific notation, providing

six significant digits.

D, or d Displays number as a string that contains

the value of the number in Decimal (base

10) format. This option is supported for

integral types (Byte, Short, Integer, Long)

only.

X, or x Displays number as a string that contains

the value of the number in Hexadecimal

(base 16) format. This option is supported

for integral types (Byte, Short, Integer,

Long) only.

Yes/No Displays No if number is 0; otherwise,

displays Yes.

Bahasa pemrograman VB.NET

Abdul Azis

Lampiran 1

Predefined Numeric Formats (Format Function)

AZISDOTNET.WORDPRESS.COM

73

Page 74: Dasar Pemrograman Visual Basic

Character Description

None Displays the number with no formatting.

(0) Digit placeholder. Displays a digit or a zero. If the expression has a digit

in the position where the zero appears in the format string, display it;

otherwise, displays a zero in that position.

If the number has fewer digits than there are zeros (on either side of the

decimal) in the format expression, displays leading or trailing zeros. If the

number has more digits to the right of the decimal separator than there are

zeros to the right of the decimal separator in the format expression, rounds

the number to as many decimal places as there are zeros. If the number

has more digits to the left of the decimal separator than there are zeros to

the left of the decimal separator in the format expression, displays the

extra digits without modification.

(#) Digit placeholder. Displays a digit or nothing. If the expression has a digit

in the position where the # character appears in the format string, displays

it; otherwise, displays nothing in that position.

This symbol works like the 0 digit placeholder, except that leading and

trailing zeros aren't displayed if the number has fewer digits than there are

# characters on either side of the decimal separator in the format

expression.

(.) Decimal placeholder. The decimal placeholder determines how many

digits are displayed to the left and right of the decimal separator. If the

format expression contains only # characters to the left of this symbol;

numbers smaller than 1 begin with a decimal separator. To display a

leading zero displayed with fractional numbers, use zero as the first digit

placeholder to the left of the decimal separator. In some locales, a comma

is used as the decimal separator. The actual character used as a decimal

placeholder in the formatted output depends on the number format

recognized by your system. Thus, You should use the period as the

decimal placeholder in your formats even if you are in a locale that uses a

comma as a decimal placeholder. The formatted string will appear in the

format correct for the locale.

(%) Percent placeholder. Multiplies the expression by 100. The percent

True/False Displays False if number is 0; otherwise,

displays True.

On/Off Displays Off if number is 0; otherwise,

displays On.

Bahasa pemrograman VB.NET

Abdul Azis

User-Defined Numeric Formats (Format Function)

AZISDOTNET.WORDPRESS.COM

74

Page 75: Dasar Pemrograman Visual Basic

character (%) is inserted in the position where it appears in the format

string.

(,) Thousand separator. The thousand separator separates thousands from

hundreds within a number that has four or more places to the left of the

decimal separator. Standard use of the thousand separator is specified if

the format contains a thousand separator surrounded by digit placeholders

(0 or #). A thousand separator immediately to the left of the decimal

separator (whether or not a decimal is specified) or as the rightmost

character in the string means "scale the number by dividing it by 1,000,

rounding as needed."

For example, you can use the format string "##0,." to represent 100

million as 100,000. Numbers smaller than 1,000 but greater or equal to

500 are displayed as 1, and numbers smaller than 500 are displayed as 0.

Two adjacent thousand separators in this position scale by a factor of 1

million, and an additional factor of 1,000 for each additional separator.

Multiple separators in any position other than immediately to the left of

the decimal separator or the rightmost position in the string are treated

simply as specifying the use of a thousand separator. In some locales, a

period is used as a thousand separator. The actual character used as the

thousand separator in the formatted output depends on the Number

Format recognized by your system. Thus, You should use the comma as

the thousand separator in your formats even if you are in a locale that uses

a period as a thousand separator. The formatted string will appear in the

format correct for the locale.

(:) Time separator. In some locales, other characters may be used to represent

the time separator. The time separator separates hours, minutes, and

seconds when time values are formatted. The actual character used as the

time separator in formatted output is determined by your system settings.

(/) Date separator. In some locales, other characters may be used to represent

the date separator. The date separator separates the day, month, and year

when date values are formatted. The actual character used as the date

separator in formatted output is determined by your system settings.

(E- E+ e- e+) Scientific format. If the format expression contains at least one digit

placeholder (0 or #) to the left of E-, E+, e-, or e+, the number is

displayed in scientific format and E or e is inserted between the number

and its exponent. The number of digit placeholders to the left determines

the number of digits in the exponent. Use E- or e- to place a minus sign

next to negative exponents. Use E+ or e+ to place a minus sign next to

negative exponents and a plus sign next to positive exponents. You must

also include digit placeholders to the right of this symbol to get correct

formatting.

- + $ ( ) Literal characters. These characters are displayed exactly as typed in the

format string. To display a character other than one of those listed,

Bahasa pemrograman VB.NET

AZISDOTNET.WORDPRESS.COM

Abdul Azis

75

Page 76: Dasar Pemrograman Visual Basic

precede it with a backslash (\) or enclose it in double quotation marks ("

").

(\) Displays the next character in the format string. To display a character

that has special meaning as a literal character, precede it with a backslash

(\). The backslash itself isn't displayed. Using a backslash is the same as

enclosing the next character in double quotation marks. To display a

backslash, use two backslashes (\\).

Examples of characters that can't be displayed as literal characters are the

date-formatting and time-formatting characters (a, c, d, h, m, n, p, q, s, t,

w, y, /, and :), the numeric-formatting characters (#, 0, %, E, e, comma,

and period), and the string-formatting characters (@, &, <, >, and !).

("ABC") Displays the string inside the double quotation marks (" "). To include a

string in the style argument from within code, you must use Chr(34) to

enclose the text (34 is the character code for a quotation mark (")).

Format (Style) "5" formatted as "-5" formatted as "0.5" formatted as

Zero-length string

("")

5 -5 0.5

0 5 -5 1

0.00 5.00 -5.00 0.50

#,##0 5 -5 1

$#,##0;($#,##0) $5 ($5) $1

$#,##0.00;

($#,##0.00)

$5.00 ($5.00) $0.50

0% 500% -500% 50%

0.00% 500.00% -500.00% 50.00%

0.00E+00 5.00E+00 -5.00E+00 5.00E-01

0.00E-00 5.00E00 -5.00E00 5.00E-01

Format Name Description

General Date, or Displays a date and/or time. For real numbers, display a date and

Bahasa pemrograman VB.NET

Abdul Azis

Example

The following table contains some sample format expressions for numbers. (These

examples all assume that your system's locale setting is English-U.S.) The first column

contains the format strings for the Style argument of the Format function; the other

columns contain the resulting output if the formatted data has the value given in the

column headings.

Predefined Date/Time Formats (Format Function)

AZISDOTNET.WORDPRESS.COM

76

Page 77: Dasar Pemrograman Visual Basic

G time; for example, 4/3/93 05:34 PM.If there is no fractional part,

display only a date, for example, 4/3/93. If there is no integer part,

display time only, for example, 05:34 PM. Date display is determined

by your system's LocaleID value.

Long Date, or D Displays a date according to your locale's long date format.

Medium Date Displays a date using the medium date format appropriate for the

language version of the host application.

Short Date, or d Displays a date using your locale's short date format.

Long Time, or T Displays a time using your locale's long time format; includes hours,

minutes, seconds.

Medium Time Displays time in 12-hour format using hours and minutes and the

AM/PM designator.

Short Time, or t Displays a time using the 24-hour format, for example, 17:45.

F Displays the long date and short time according to your locale's

format.

F Displays the long date and long time according to your locale's

format.

G Displays the short date and short time according to your locale's

format.

M, m Displays the month and the day of a date.

R, r Formats the date and time as Greenwich Mean Time (GMT)

S Formats the date and time as a sortable index.

U Formats the date and time as a GMT sortable index.

U Formats the date and time with the long date and long time as GMT.

Y, y Formats the date as the year and month.

Character Description

(:) Time separator. In some locales, other characters may be used to represent

the time separator. The time separator separates hours, minutes, and

seconds when time values are formatted. The actual character used as the

time separator in formatted output is determined by your system's

LocaleID value.

(/) Date separator. In some locales, other characters may be used to represent

the date separator. The date separator separates the day, month, and year

when date values are formatted. The actual character used as the date

separator in formatted output is determined by your locale.

(%) Used to indicate that the following character should be read as a single-

letter format without regard to any trailing letters. Also used to indicate

Bahasa pemrograman VB.NET

User-Defined Date/Time Formats (Format Function)

AZISDOTNET.WORDPRESS.COM

Abdul Azis

77

Page 78: Dasar Pemrograman Visual Basic

that a single-letter format is read as a user-defined format. See below for

further details

d Displays the day as a number without a leading zero (for example, 1). Use

%d if this is the only character in your user-defined numeric format.

dd Displays the day as a number with a leading zero (for example, 01).

ddd Displays the day as an abbreviation (for example, Sun).

dddd Displays the day as a full name (for example, Sunday).

M Displays the month as a number without a leading zero (for example,

January is represented as 1). Use %M if this is the only character in your

user-defined numeric format.

MM Displays the month as a number with a leading zero (for example,

01/12/01).

MMM Displays the month as an abbreviation (for example, Jan).

MMMM Displays the month as a full month name (for example, January).

gg Displays the period/era string (for example, A.D.)

h Displays the hour as a number without leading zeros using the 12-hour

clock (for example, 1:15:15 PM). Use %h if this is the only character in

your user-defined numeric format.

hh Displays the hour as a number with leading zeros using the 12-hour clock

(for example, 01:15:15 PM).

H Displays the hour as a number without leading zeros using the 24-hour

clock (for example, 1:15:15). Use %H if this is the only character in

your user-defined numeric format.

HH Displays the hour as a number with leading zeros using the 24-hour clock

(for example, 01:15:15).

m Displays the minute as a number without leading zeros (for example,

12:1:15). Use %m if this is the only character in your user-defined

numeric format.

mm Displays the minute as a number with leading zeros (for example,

12:01:15).

s Displays the second as a number without leading zeros (for example,

12:15:5). Use %s if this is the only character in your user-defined

numeric format.

ss Displays the second as a number with leading zeros (for example,

12:15:05).

F Displays fractions of seconds. For example ff will display hundredths of

seconds, whereas ffff will display ten-thousandths of seconds. You may

use up to seven f symbols in your user-defined format. Use %f if this is

the only character in your user-defined numeric format.

T Uses the 12-hour clock and displays an uppercase A for any hour before

noon; displays an uppercase P for any hour between noon and 11:59 P.M.

Use %t if this is the only character in your user-defined numeric format.

Bahasa pemrograman VB.NET

AZISDOTNET.WORDPRESS.COM

Abdul Azis

78

Page 79: Dasar Pemrograman Visual Basic

tt Uses the 12-hour clock and displays an uppercase AM with any hour before

noon; displays an uppercase PM with any hour between noon and 11:59

P.M.

y Displays the year number (0-9) without leading zeros. Use %y if this is

the only character in your user-defined numeric format.

yy Displays the year in two-digit numeric format with a leading zero, if

applicable.

yyy Displays the year in four digit numeric format.

yyyy Displays the year in four digit numeric format.

z Displays the timezone offset without a leading zero (for example, -8).

Use %z if this is the only character in your user-defined numeric format.

zz Displays the timezone offset with a leading zero (for example, -08)

zzz Displays the full timezone offset (for example, -08:00)

Format Displays

M/d/yy 12/7/58

d-MMM 7-Dec

d-MMMM-yy 7-December-58

d MMMM 7 December

MMMM yy December 58

hh:mm tt 08:50 PM

h:mm:ss t 8:50:35 P

H:mm 20:50

H:mm:ss 20:50:35

M/d/yyyy H:mm 12/7/1958 20:50

Bahasa pemrograman VB.NET

Abdul Azis

Example

The following are examples of user-defined date and time formats for December 7,

1958, 8:50 PM, 35 seconds:

AZISDOTNET.WORDPRESS.COM

79

Page 80: Dasar Pemrograman Visual Basic

Bahasa pemrograman VB.NET

Daftar Pustaka

.NET Framework SDK documentation , Microsoft Corporation

AZISDOTNET.WORDPRESS.COM

Abdul Azis

80