Bahasa pemrograman VB.

NET

Hendra, S.T.

Bahasa Pemrograman VB.Net
Oleh : Hendra, ST.

Buku ini membahas tentang bahasa pemrograman Visual Basic .Net, dan ditujukan kepada siapa saja yang serius untuk mempelajari bahasa pemrograman VB.Net. Untuk memfokuskan pada bahasa VB.Net, buku ini akan menggunakan pendekatan program Console, sehingga fokus pembelajaran lebih terfokus kepada bahasa itu sendiri. Untuk mempelajari buku ini anda tidak perlu menginstalasi Visual Studio .Net, tetapi anda cukup menginstalasi .Net Framework yang dapat didownload secara gratis dari website Microsoft. Semua contoh dan latihan dibuku ini dapat dikompilasi langsung dari Dos prompt dengan menggunakan kompiler Visual Basic yang langsung tersedia setelah anda menginstalasi .Net Framework.

INDOPROG

1

Bahasa pemrograman VB.NET

Hendra, S.T.

Dasar program Visual Basic
Program VB.NET anda yang pertama.
Sebagaimana tradisi dari proses belajar pemrograman komputer adalah membuat sebuah program Hello World yang memiliki struktur yang paling sederhana sehingga kita dengan mudah dapat melihat struktur dasar program dari bahasa pemrograman tersebut.
Module Hello Sub Main() System.Console.WriteLine("Hello World !") End Sub End Module

Ketiklah program diatas dengan text editor (notepad pada Windows ataupun edit pada Dos Prompt), dan kemudian simpan dengan nama hello.vb (anda wajib menyimpannya dengan ekstension .vb).

Proses Kompilasi
Agar program yang kita buat diatas dapat dijalankan oleh komputer, maka diperlukan suatu kompiler untuk menterjemahkan perintah-perintah yang telah kita buat menjadi instruksi yang dapat dikenali oleh sistem komputer. Kompiler Visual Basic dapat diperoleh dengan melakukan instalasi Microsoft .NET framework sdk v1.1. Sesaat setelah instalasi .NET framework, maka kompiler VB telah tersedia pada komputer anda, dan proses kompilasi dapat dilakukan dengan : 1. Mengatur path environment pada Command Prompt path=%path%;c:\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

INDOPROG

2

Bahasa pemrograman VB.NET

Hendra, S.T.

for Microsoft (R) .NET Framework version 1.1.4322.573 Copyright (C) Microsoft Corporation 1987-2002. All rights reserved.

Jika proses kompilasi tidak menampilkan adanya kesalahan, maka akan terbentuk suatu hello.exe yang dapat dijalankan langsung pada Command Prompt. Sesuatu hal yang perlu anda pahami adalah file hello.exe hanya dapat dijalankan pada komputer yang sudah terinstalasi Microsoft .NET framework. Kemudian suatu hal yang perlu anda ketahui adalah file hello.exe bukanlah berisi binari yang merupakan kode mesin, melainkan merupakan binari yang berisi Intermediate Language (IL) yang pada saat dijalankan akan dikompilasi menjadi bahasa mesin oleh kompiler Just In Time (JIT) yang terdapat pada Common Language Runtime (CLR) yang merupakan salah satu komponen dari .NET framework.

Struktur program Visual Basic
Sebagai bahasa yang telah dirancang kembali dari awal, suatu program Visual Basic memiliki urutan berikut yang merupakan struktur dari program: 1. Option statements 2. Imports statements 3. Main procedure

Option Statements
Perintah Option akan menentukan aturan dasar penanganan kode dalam program pada saat kompilasi. Option Explicit Option Explicit On/Off, menentukan apakah variabel-varibel yang digunakan dalam program harus dideklarasikan terlebih dahulu atau tidak (defaultnya adalah On). Contoh :
Option Explicit Off Module Modmain Sub Main() a = 100000 End Sub End Module

Yang jika di kompilasi tidak menyebabkan kesalahan walaupun variabel a tidak pernah dideklarasikan.
Option Explicit On

INDOPROG

3

Bahasa pemrograman VB.NET

Hendra, S.T.

Module Modmain Sub Main() a = 100000 End Sub End Module

Yang jika dikompilasi akan menyebabkan kesalahan sebagai berikut :
Microsoft (R) Visual Basic .NET Compiler version 7.10.3052.4 for Microsoft (R) .NET Framework version 1.1.4322.573 Copyright (C) Microsoft Corporation 1987-2002. All rights reserved. D:\BELAJA~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

INDOPROG

4

4322. karena variabel a yang bertipe short hanya memiliki jangkauan daya tampung dari -32767 s/d 32768.NET Framework version 1. sehingga pemakaian Option Strict On akan menampilkan pesan kesalahan pada saat kompilasi. 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. INDOPROG 5 .4 for Microsoft (R) . tidak dimungkinkan menampung nilai dari tipe integer (32 bit).Bahasa pemrograman VB. tetapi pada saat runtime akan menimbulkan runtime error (System.3052. Yang jika dikompilasi akan menyebabkan pesan kesalahan berikut ini karena variabel b yang bertipe short (16 bit). All rights reserved.NET Hendra.vb(8) : error BC30512: Option Strict On disallows implicit conversions from 'Integer' to 'Short'. D:\BELAJA~1\coba.10.573 Copyright (C) Microsoft Corporation 1987-2002. Microsoft (R) Visual Basic . S.T.OverflowException).1.NET Compiler version 7. yang memiliki potensi kehilangan data pada saat runtime.

NET Hendra. Option Compare Perintah Option Compare Binary/Text akan menentukan bagaimana bertipe data string akan dibandingkan antara satu dengan lainnya (default adalah Binary).b As String a = "ABC" b = "abc" System. S.Bahasa pemrograman VB.WriteLine(a = b) End Sub End Module 'False Yang jika dijalankan akan menghasilkan False. 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. karena perbandingan data berdasarkan nilai biner dari masing-masing data string (lihat aturan untuk Binary). INDOPROG 6 .T.Console.

INDOPROG 7 . karena sebagai text-nya "ABC" dianggap sama dengan "abc" tanpa melihat huruf besar atau kecil (lihat aturan untuk Text).WriteLine(a = b) End Sub End Module 'True Yang jika dijalankan akan menghasikan True. Jadi apa yang ingin anda jalankan pertama kali pada program anda ditempatkan pada procedure main ini.NET Hendra. yaitu sebagai Sub atau Function yang memiliki parameter atau tidak. Contoh : Module Hello Sub Main() System. Ada empat cara penulisan Main.WriteLine("Hello World !") End Sub End Module Dalam hal ini kita tidak perlu lagi mengetik System. S. karena kita telah melakukan Imports System. Imports System Module Hello Sub Main() Console.Console.WriteLine("Hello World !") End Sub End Module Yang setelah adanya Imports System penulisan Console.WriteLine.Bahasa pemrograman VB. Imports Statements Perintah Imports berfungsi memudahkan pengetikan tanpa harus mengetik nama class didalam namespace yang di import.WriteLine.Console.b As String a = "ABC" b = "abc" System. tapi cukup Console. Main Procedure Procedure Main merupakan titik awal dari program anda – merupakan procedure yang pertama kali dieksekusi ketika anda menjalankan kode anda.T. Tetapi jika : Option Compare Text Module Hello Sub Main() Dim a.Console.WriteLine menjadi sebagai berikut.

Length()-1. S.Bahasa pemrograman VB.Length()-1 Console. Program yang menggunakan parameter jarang digunakan pada lingkungan Windows. Pemberian komentar Jika kita hari ini membuat program. Contoh Sub Main dengan parameter : Imports System Module Hello Sub Main(ByVal CmdArgs() As String) Dim i As Integer Console.exe pada command prompt dengan mengirim dua parameter yaitu kata Hello dan World yang dianggap sebagai array bertipe string. dan sering digunakan pada program di lingkungan 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. apakah anda masih mengingatnya ? Bagaimana kita membuat program kita mudah di pahami kembali ? Tentu saja dengan memberikan keterangan secukupnya.WriteLine("Jumlah Parameter :" & CmdArgs. • • • • 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.Length()) For i = 0 to CmdArgs. dan pada saat yang sama semua logika serta rumusan dapat kita ingat dengan baik. sehingga pada contoh diatas looping dimulai dari 0 s/d CmdArgs. tetapi bagaimana kalau kita membaca kembali program yang pernah kita buat untuk 3 bulan yang lalu. INDOPROG 8 . Catatan : Index Array dimulai dari 0.T.NET Hendra.

94065645841246544E-324 through 1.401298E-45 through 3.DateTime System.0000000000000000000000000001 (+/1E-28).372.223. 0 to approximately 2 billion Unicode characters. 1.NET Hendra. -3. 0 through +/7.147. Visual Basic menyediakan berbagai type data yang dapat digunakan oleh pemrogram sesuai dengan konteks pemakaiannya. Contoh : ' Ini adalah keterangan REM Ini adalah keterangan Type Data Sebagaimana bahasa pemrograman lainnya.593. 9999. 4.264.036.94065645841246544E-324 for negative values.767.514.775.Double (doubleprecision floating-point) Integer System.223.335 with no decimal point.Char System. 0:00:00 on January 1.807.Int16 Single System. 0 through 65535 (unsigned). -1.Single (singleprecision floating-point) String (variablelength) UserDefined Type System.950. Berikut ini adalah tabel tipe data pada VB disertai dengan alokasi storage yang dibutuhkan serta jangkauan nilai yang dapat ditampung oleh masing-masing tipe.79769313486231570E+308 for positive values.036. 0 through +/79.Int32 8 bytes 4 bytes 8 bytes 4 bytes 2 bytes 4 bytes Long System. -2.Bahasa pemrograman VB.543.79769313486231570E+308 through -4.ValueType) Each member of the structure has a range determined by its data type and independent of the ranges of the other members.228. INDOPROG 9 .162.4028235E+38 for positive values.372. 0 through 255 (unsigned).854. Any type can be stored in a variable of type Object.337.Byte System.Object (class) System.Decimal Nominal storage allocation 2 bytes 1 byte 2 bytes 8 bytes 16 bytes True or False.9228162514264337593543950335 with 28 places to the right of the decimal. 0001 through 11:59:59 PM on December 31. S. Pada Visual Basic pembuatan keterangan dapat menggunakan simbol ' (petik tunggal) maupun keyword REM.483. Value range Double System. Type data pada Visual Basic dibagi atas dua kelompok besar yaitu Value Type (Tipe data primitif) dan Reference (String.648 through 2.768 through 32.String (class) Depends on implementing platform Depends on implementing platform (inherits from System. smallest nonzero number is +/-0.4028235E+38 through -1.Int64 (long integer) Object Short System.401298E-45 for negative values.647.Boolean System.775.854.483.147.T. Visual Basic type Boolean Byte Char Date Decimal Common language runtime type structure System.808 through 9. Array dan Objek). -32. -9.

Konversi Tipe Konversi Tipe pada Visual Basic dapat dilakukan secara Implicit maupun Explicit. Cbyte. Cint. Sesuatu hal yang perlu anda perhatikan adalah daya tampung variabel berdasarkan tipe yang ditentukan. CSng. Contoh : Dim Dim Dim Dim Harga. dan semua array). jika anda memasukan nilai diluar dari daya tampung variabel. CStr.Bahasa pemrograman VB. karena default setting Explicit pada Visual Basic adalah Option Explicit On. False untuk Boolean. tetapi hendaklah programmer bijaksana dalam pemakaian type data berkaitan dengan perfomance yang dihasilkan. Jumlah As Single Kuantitas As Integer = 10 Lanjutkan As Boolean = True Keterangan As String = "Visual Studio . Cdec. Deklarasi Variabel Pemrogram yang baik tentu saja menggunakan pendekatan yang terstruktur dalam pengembangan program. suatu kesalahan overflow exception akan terjadi. CDbl. Cchar. (structure) Walaupun dewasa ini. S. Binary 0 untuk Char. jika tidak anda akan mendapatkan kesalahan kompiler.T. Pada Visual Basic printah Dim digunakan untuk mendeklarasikan variabel dan memberikan nilai awal kepadanya. konversi secara Implicit dilakukan tanpa menggunakan fungsi bantu casting tertentu seperti Cbool. CLng. salah satu ciri dari program yang terstruktur adalah mendeklarasikan semua variabel yang digunakan dalam program. INDOPROG 10 . maka nilai berikut akan diberikan sebagai nilai awal variabel tersebut : • • • • • 0 untuk semua tipe data numerik (termasuk Byte). 12:00 AM pada 1 Januari 1 untuk Date. String. Cdate. Cshort. memori dan media penyimpanan data tidak menjadi masalah seperti pada awal kelahiran komputer.NET Hendra. Nothing untuk semua tipe reference (termasuk Object. Cobj. Kemudian Jika anda tidak memberikan nilai awal pada suatu variabel pada dideklarasikan.NET" Catatan : Pada Visual Basic pemakaian variabel harus dideklarasikan terlebih dahulu.

j As Byte Dim a As Integer = 40000 Dim b As Short b = a Console.NET Framework version 1.4322.1.573 Copyright (C) Microsoft Corporation 1987-2002.Bahasa pemrograman VB. All rights reserved.10.NET Compiler version 7.T. Module Test Sub Main() Dim longValue As Long = 134 Dim intValue As Integer = CInt(longValue) Console. Contoh : Module Test Sub Main() Dim intValue As Integer = 123 Dim longValue As Long = intValue Console.NET Hendra.vb(10) : error BC30512: Option Strict On disallows INDOPROG 11 .WriteLine(longValue & " = " & intValue) End Sub End Module Pada konversi secara Implicit.3052. 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.WriteLine(b) End Sub End Module Yang kalau dikompilasi akan menghasilkan error sebagai berikut Microsoft (R) Visual Basic . D:\BELAJA~1\kali.4 for Microsoft (R) . Option Strict On Option Explicit On Imports System Public Module ModKali Sub Main() Dim i. Contoh berikut akan melakukan konversi dari Integer 32 bit ke Short 16 bit. S.WriteLine(intValue & " = " & longValue) End Sub End Module Sedangkan secara Explicit dilakukan dengan menggunakan fungsi bantu casting.

ToInt16(a) Console. maka akan menghasilkan error pada saat runtime : System. CSng.709.295. Converts a value to an 8-byte Integer. Converts a value to a 4-byte unsigned Integer in the range 0 to 4.Bahasa pemrograman VB.744. Converts a value to a DateTime object. b = a Hendra.446. Converts a value to a 2-byte Short. Converts a value to an 8-byte unsigned long Integer in the range 0 to 18. S.294.T.Convert. Converts a value to a 4-byte Integer.CDbl. Converts a value to an 8-bit signed value in the range –128 to 127. dibandingkan dengan CInt INDOPROG 12 . Converts a value to a 12-byte Decimal. ~ Hal tersebut dapat diperbaiki dengan menggunakan fungsi ToInt16 yang terdapat pada System. Converts a value to its String representation. Catatan : Berdasarkan uji coba yang dilakukan fungsi bantu konversi tipe seperti Cint.WriteLine(b) End Sub End Module Tetapi karena nilai 40000 tidak dapat ditampung oleh type data short. Converts a value to an 8-bit Byte in the range 0 to 255. Cdate.NET implicit conversions from 'Integer' to 'Short'.ToInt32.967. Convert.615. Converts a value to an 8-byte Double. Converts a value to a 2-byte Unicode character. 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. j As Byte Dim a As Integer = 40000 Dim b As Short b = System. Konversi data secara Explicit dapat juga memanfaatkan fungsi bantu casting yang terdapat pada Objek System Convert sebagai berikut : Function ToBoolean ToByte ToChar ToDateTime ToDecimal ToDouble ToInt16 ToInt32 ToInt64 ToSByte ToSingle ToString ToUInt16 ToUInt32 ToUInt64 Purpose Converts a value to a Boolean (True or False).073.OverflowException.Pars. Converts a value to a 4-byte Single.535. Converts a value to a 2-byte unsigned Short in the range 0 to 65.551.Convert yang artinya konversi memang dikehendaki oleh programmer Contoh : Option Strict On Option Explicit On Imports System Public Module ModKali Sub Main() Dim i.

Result5 As Short INDOPROG 13 . S.ToInt32 Error 12 12500 Error Error Error Error Cint 12500 12 12500 12500 12500 12500 Error (VB syntax for the hex value FF) 255 Operator Berdasarkan pengalaman pemrograman. Result2. and Xor Catatan : • • Jika operand pertama pada suatu operasi AndAlso adalah False. ^.Parse Convert. maka hasil ekspresi tersebut adalah False.Bahasa pemrograman VB. Sebaliknya.NET Hendra. Mod. \.10" "&HFF" Error 12 12500 Error Error Error Integer. (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. Sebaliknya. /. Jika operand pertama dari operasi OrElse adalah True.00" "$12. adapun operator pada Visual Basic adalah sebagai berikut : Operator aritmatika : *. Result4.500. suatu operasi logika And dilakukan terhadap kedua operand. OrElse. Dim Result1. Result3. Or. dan – Operator relasi : =. String "12. >. <=. AndAlso. <>.T. Operator pengabungan : & Operator bit shift : << dan >> Contoh : Dim Pattern As Short = 192 ' Bit pattern is 0000 0000 1100 0000. pemakaian operator tidak dapat dilepaskan dari pekerjaan pemrograman.00" "$12. <. and >= Catatan : Pada tipe data string. prilaku perbandingan sangat dipengaruhi oleh setting dari Option Compare. maka hasil ekspresi adalah True.500. +.500" "12" "12500" "12500. suatu operasi logika Or akan dilakukan terhadap kedua operand.

Result5 As Short Result1 = Pattern >> 0 ' Result is 2560 (0000 1010 0000 0000). 3072 (0000 1100 0000 0000). Hendra.NET 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). Result4 = Pattern >> 18 ' Result is 640 (0000 0010 1000 0000). Result3 = Pattern >> 10 ' Result is 2 (0000 0000 0000 0010). Result4 = Pattern >> 18 ' Result is 640 (0000 0010 1000 0000). 384 (0000 0001 1000 0000). INDOPROG 14 . -32768 (1000 0000 0000 0000). Operator bit shift bekerja pada tingkat bit.T. Does "F" match "f"? Returns False. Dim Result1. Result2. Perintah shift right 18 untuk tipe Short akan menghasilkan operasi yang sama dengan shift right 2 ( hasil operasi 18 And 15 = 2). Karakter # mewakili satu sembarang digit (0–9). yang artinya jika 192 pada tipe data short (desimal/basis sepuluh) maka representasinya dalam bentuk biner adalah 0000 0000 1100 0000 (16 bit). dengan aturan sebagai berikut : • • • • • Karakter ? mewakili satu karakter sembarang. Kemudian hal lain yang perlu diketahui adalah bit mask untuk masing-masing tipe data adalah berbeda.Bahasa pemrograman VB. Result4. Suatu daftar karakter dalam kurung siku ([ab ]) mewakili salah satu karakter dalam daftar tersebut. Result5 = Pattern >> -1 ' Result is 0 (shifted 15 places to right). Contoh : Dim myCheck As Boolean myCheck = "F" Like "F" myCheck = "F" Like "f" myCheck = "F" Like "FFF" Does "F" match "F"? Returns True. Result3. berikut ini adalah tabel bitmask : LeftOperand Type SizeMask 7 (&H7) Byte 15 (&HF) Short 31 (&H1F) Integer 63 (&H3F) Long Perhatikan kembali contoh diatas Dim Pattern As Short = 2560 ' Bit pattern is 0000 1010 0000 0000. 0 (shifted 15 places to left). S. Does "F" match "FFF"? Returns False. Dim Pattern As Short = 2560 ' Bit pattern is 0000 1010 0000 0000. Operator perbandingan Like. Karakter * mewakili tidak ada karakter atau sekumpulan karakter sembarang. Suatu daftar dari karakter dalam kurung siku dan diawali dengan suatu tanda ! ([!ab ]) mewakili satu karakter yang tidak ada dalam daftar tersebut. Result2 = Pattern >> 4 ' Result is 160 (0000 0000 1010 0000).

followed byb any single-digit number. &= Contoh : Dim a As Integer = 2 Dim b As Integer = 3 a += b // akan menghasilkan 5 pada variabel a. /=.Bahasa pemrograman VB. and any number of characters in between? Returns True. /) Integer division (\) Modulus arithmetic (Mod) Addition and subtraction (+.Is) Operator Logika dan Bitwise Negation (Not) Conjunction (And. <<=. Like. Xor) INDOPROG 15 . Does "F" NOT occur in the set of characters from A to Z? Returns False. S. >=.. TypeOf. <=. Does "BAT123khg" fit the following pattern: Begins with "B". myCheck = "aBBBa" Like "a*a" myCheck = "F" Like "[A-Z]" myCheck = "F" Like "[!A-Z]" myCheck = "a2a" Like "a#a" myCheck = "aM5b" Like "a[L-P]#[!c-e]" myCheck = "BAT123khg" Like "B?T*" myCheck = "CAT123khg" Like "B?T*" Does "aBBBa" have a "a" at the beginning. Does "a2a" begin and end with an "a" and have any single-digit number inbetween? Returns True. followed by any single character. has and character from the set L through P. an "a" at the end. <>. <. Does "F" occur in the set of characters from A to Z? Returns True. *=. followed by any single character. >. Returns False. -=. atau sama dengan a = a+b Catatan : Sesuatu hal yang penting bagi programmer pemula adalah memahami urutan operasi dari operator. followed by a "T" and finally zero or more characters of any type.. >>=. OrElse. followed by a "T" and finally zero or more characters of any type.T. Does "aM5b" fit the following pattern: Begins with "a". Operator assignment : =.NET Hendra. Is. –). Returns True. +=. and finally contains any character excluded from the character set c through e. Returns True Does "CAT123khg" fit the following pattern: Begins with "B". >>) Operator Perbandingan All comparison operators (=. string concatenation (+) String concatenation (&) Arithmetic bit shift (<<. AndAlso) Disjunction (Or. ^=. \=. pada Visual Basic menggunakan urutan operasi berikut ini : Operator Aritmatika dan Pengabungan Exponentiation (^) Unary negation (–) Multiplication and division (*.

sehingga jika terjadi perubahan besaran pada konstanta. dan dimaintain dari pada menggunakan tipe data primitif. dan biasanya konstanta dideklarasikan pada awal program. D.Bahasa pemrograman VB. Because of natural operator ' precedence.0 C = 4.8 Catatan : Sebaiknya konstanta diketik semuanya huruf besar untuk memudahkan pembedaan antara variabel dengan konstanta.NET Hendra. F.NET Pemakaian enumerated type akan sangat membantu dalam pekerjaan pemrograman sehingga menjadi lebih mudah ditulis.0 B = 6. it is exactly equivalent to the following line: F = (A + B) .C) / (D * E) ' The previous line sets G to 4. Konstanta pada VB.0 E = 1.((C / D) * E) ' The following line overrides the natural operator precedence: G = A + (B .0 F = A + B . pemeliharaan program menjadi lebih sederhana. C. dan penamaan konstanta hendaknya disesuaikan dengan konteks yang diwakili oleh konstanta tersebut.C / D * E ' The previous line sets F to 7. Enumerated pada VB. B.T.0. kita cukup mengubahnya pada awal program tanpa harus memeriksa koding seperti yang harus dilakukan kalau kita tidak menggunakan fasilitas konstanta. G As Double A = 3. dengan adanya konstanta. Dengan memahami urutan operasi akan sangat membantu untuk menghindari kesalahan dalam penulisan rumus yang dapat menyebabkan logika error.NET Pemakaian konstanta sangat membantu dalam pengembangan program yang terstruktur. S. Contoh : Dim A. E. dibaca. Public Enum InterfaceColors MistyRose = &HE1E4FF& SlateGray = &H908070& DodgerBlue = &HFF901E& DeepSkyBlue = &HFFBF00& SpringGreen = &H7FFF00& ForestGreen = &H228B22& Goldenrod = &H20A5DA& INDOPROG 16 .0.0 D = 2. Const GRAVITASI As Single = 9.

Program Console adalah salah satu fasilitas yang sangat memudahkan bagi pemula yang ingin mempelajari bahasa Visual Basic dengan baik.Console.T. 0.WriteLine("See Console. 0.NET Hendra. dimana x adalah nomor urutan dari parameter berikutnya yang dihitung mulai dari 0 (nol).00}". 0:###. 7.WriteLine("The Console. 1234. System.123456789) value is {0. 12:f1}".Write(ekspresi) System. terutama data type numerik yang kadang-kadang perlu diformat sedemikian rupa untuk memudahkan pembacaan.123456789) value is {0.ReadLine() Jika anda melakukan imports namespace system. Program Console adalah program yang menggunakan basis teks pada lingkungan Command Prompt (bentuk ini tidak tersedia pada Visual Basic versi sebelumnya).Console.. karena program Console menggunakan perintah I/O yang cukup sederhana dan bersih dari perintah input output yang rumit sehingga kita dapat lebih terfokus.ReadLine() Catatan : Perbedaan antara Write dengan WriteLine adalah pada WriteLine pencetakan akan diakhiri dengan suatu Carriage Return.Console. 0. 0:000. Format pencetakan pada WriteLine dapat menggunakan place holder {x}.WriteLine("The Console.WriteLine(ekspresi) Variabel = Console. S.WriteLine("See Console. Firebrick = &H2222B2& End Enum Perintah input Output Console Salah satu bentuk program yang dapat dikembangkan dengan menggunakan Visual Basic adalah program Console. 12:f9}".##}".WriteLine("The Console.Bahasa pemrograman VB.WriteLine(ekspresi) Variabel = System. 3.Write(ekspresi) Console. Format pada WriteLine Visual Basic telah melengkapi berbagai fasilitas format yang sangat berguna untuk melakukan pencetakan data.56789) INDOPROG 17 . 3+7) decimals {0.WriteLine("The number is {0}". maka penulisan dapat disingkat menjadi Console. Contoh : Console.123456789) decimals {0. 3 + 7) result of {0} + {1} = {2}".

6789 12345.T.6789 12345.68 123456 12345.6789 123456789 .0023 1234 Math.2345678900E+004 1.Int32 Dim Luas As System.6789 12345.234568E+004 1.345.0023 1.0000023 0.234568E+004 1.0000 12.6789 12345.6789 12345.68 123.6789 0.6789 12345.68 12.68 12345.PI 12345. Buatlah program untuk menghitung luas persegi panjang.789.1 decimal 0.Bahasa pemrograman VB. Jawab : Option Explicit On Public Module modmain Sub Main() Dim Panjang As System.57 Contoh Format String : Format 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 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.141592653589793 2c45e 2C45E 0002C45E 75bcd15 Latihan : 1.68 12 345.Int32 Dim Lebar As System.23 value is 1234.456.6789 12345. Masing-masing akan menghasilkan The The See See The The number is 10 result of 3 + 7 = 10 decimal 0.3E-6 0.14159265358979 12.345.678 12345 12345 12345.6789 12345.Int64 System.123456789 value is 001.345.NET Hendra.2E3 3.68 DM 12345 00012345 1.PI 0x2c45e 0x2c45e 0x2c45e 123456789 Output $12.Console.6789 12345.60 % 3.6789 12345.6789 12345.2346e+004 12345.126 Math.Write("Masukkan Panjang :") INDOPROG 18 .6789 12345. S.68 2.678900 12345.

c:\windows\microsoft. Option Explicit On Imports System Public Module lingkaran Const PI As Single = 3.ReadLine() Luas = Panjang*Lebar Console.Write("Masukan Lebar :") Lebar = System.4 for Microsoft (R) .4322 VBC persegi. Persegi 2. S.vb Set path=%path%.4322. All rights reserved.Write("Masukan Lebar :") Lebar = Console.573 Copyright (C) Microsoft Corporation 1987-2002.NET Panjang = System.Console.Console.ToString()) End Sub End Module Hendra.NET Framework version 1.ReadLine() Luas = Panjang*Lebar System.Write("Masukkan Panjang :") Panjang = Console.ReadLine() System.net\framework\v1.vb Microsoft (R) Visual Basic .ToString()) End Sub End Module Simpan dengan nama file persegi.WriteLine("Luas Persegi Panjang adalah :" & Luas. atau Option Explicit On Imports System Public Module modmain Sub Main() Dim Panjang As Integer Dim Lebar As Integer Dim Luas As Long Console.Bahasa pemrograman VB.WriteLine("Luas Persegi Panjang adalah :" & Luas.ReadLine() Console.Console.NET Compiler version 7.3052.10.1.1.T. Buatlah program untuk menghitung luas lingkaran dengan pemakaian konstanta.Console.14 Sub Main() Dim R As Single Dim Luas As Double INDOPROG 19 .

Bahasa pemrograman VB.WriteLine("Luas : {0. 10:f2}".Write("Masukkan Jari-jari :") R = Console.Luas)'10 tempat 2 desimal End Sub End Module INDOPROG 20 . Console.ReadLine() Luas = PI * R^2 Console.T.NET Hendra. S.

C.NET Hendra.Then. 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.WriteLine("B") ElseIf Nilai >= 60 Then Console.D.Else Salah satu tujuan pemrograman komputer adalah mengambil tugas rutin manusia untuk dalam mengambil keputusan-keputusan yang dapat diprogram. S.WriteLine("A") ElseIf Nilai >= 70 Then Console.Bahasa pemrograman VB... Struktur Keputusan dan Perulangan Perintah If.B. Misalnya seorang Dosen dalam menentukan Grade (A.WriteLine("D") INDOPROG 21 .WriteLine("C") ElseIf Nilai >= 25 Then Console..T..ReadLine() If Nilai >= 85 Then Console.

T.Bahasa pemrograman VB.ReadLine() Select Case Hari Case 1 Console.WriteLine("Rabu") Case 4 Console.WriteLine("Senin") Case 2 Console. Perintah Select.WriteLine("Sabtu") Case 7 Console.Write("Masukkan No Hari :") Hari = Console. 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.NET Else Console..WriteLine("No Hari tidak sah") End Select End Sub End Module Contoh Lain : Option Explicit On Imports System Module ModHari Sub Main() INDOPROG 22 .WriteLine("Selasa") Case 3 Console.WriteLine("E") End If End Sub End Module Hendra.WriteLine("Minggu") Case Else Console.WriteLine("Jumat") Case 6 Console.WriteLine("Kamis") Case 5 Console. S..Case Jika statement If melakukan pemilihan berdasarkan kondisi.

S.WriteLine("Berada antara 1 dan 5") Case 6.Next Salah satu keunggulan komputer dibandingkan dengan manusia adalah dapat mengerjakan sesuatu secara berulang-ulang tanpa mengalami penurunan kualitas terhadap hasil kerja.ReadLine() Select Case Angka Case Is < 1 Console.WriteLine(I) Next I Atau For I As Integer = 1 To 100 Console.9 Console.7.WriteLine("Terlalu kecil") Case 1 To 5 Console..Bahasa pemrograman VB.WriteLine("Terlalu besar") End Select End Sub End Module Hendra. Perintah For..Write("Masukkan Angka 1 s/d 9 :") Angka = Console.T. 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.8.NET Dim Angka As Integer Console.WriteLine("Berada antara 6 dan 9") Case Else Console.WriteLine(I) Next I 'Defaultnya Step 1 'Defaultnya Step 1 Akan mencetak daftar bilangan 1 s/d 100 Catatan : Dari segi looping pemakaian : Dim I As Integer INDOPROG 23 .

1. For I = 1 To 100 Console.1.10 INDOPROG 24 . ….WriteLine(I) 'Defaultnya Step 1 'Terjadi error pada saat kompilasi 'Defaultnya Step 1 'Akan tercetak 101 Dimana pesan error adalah error BC30451: Name I is not declared.WriteLine(I) Next I Console. sedangkan variabel I pada contoh kedua adalah variable local untuk blok looping. tetapi juga dapat berupa bilangan floating point. maka variabel I pada contoh pertama adalah variabel local Sub Main.NET Hendra.WriteLine(I) Next I Akan mencetak daftar bilangan ganjil 1 s/d 99 Catatan : Step tidak selamanya harus berupa bilangan bulat. For I As Single = 1 To 10 Step 0.1 Console.WriteLine(I) Next I Console. Contoh : Dim I As Integer For I = 1 To 100 Console.WriteLine(I) Sedangkan For I As Integer = 1 To 100 Console.Bahasa pemrograman VB. S.WriteLine(I) Next I Akan mencetak daftar bilangan 1. Dim I As Integer For I = 1 To 100 Step 2 Console. 1.T.2. 1.WriteLine(I) Next I Tidak berbeda dengan For I As Integer = 1 To 100 Console.3.WriteLine(I) Next I 'Defaultnya Step 1 'Defaultnya Step 1 Tapi jika ditinjau dari lingkup pemakaian variabel.

WriteLine(I) Next I Akan mencetak daftar bilangan 100. Contoh : For I As Integer = 100 To 1 Step -1 Console.NET Hendra. 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. 98. adapun tata cara penulisannya adalah sebagai berikut : Do { While | Until } condition [ statements ] [ Exit Do ] [ statements ] Loop INDOPROG 25 .Bahasa pemrograman VB. artinya kalau perintah Exit For ditemukan maka proses program dilanjutkan ke perintah dibawah Next.T. S. Adapun contoh pemakaian Exit For adalah misalnya kita ingin membuat password dengan jumlah kesempatan coba sebanyak 3 kali.WriteLine("Welcome !") End If End Sub End Module Perintah Do..Write("Password :") Pass = Console. …. maka perintah Do … Loop melakukan looping berdasarkan kondisi. Bagaimana dengan perulangan dari besar ke kecil ? Perulangan dari besar ke kecil dapat dilakukan dengan menentukan nilai Step negatif.WriteLine("Proses Login Gagal !") Else Console. 99.ToUpper() ="INDOPROG" Then 'Jika Password Benar Exit For 'Keluar dari Looping End If Next I If I > 3 Then Console.ReadLine() If Pass. 1 Dapatkah anda menerangkan fungsi dan contoh pemakaian Exit For ? Exit For merupakan perintah keluar dari looping tanpa bersyarat..Loop Jika perintah For … Next melakukan looping berdasarkan counter.

dab jika nilai Dtemp bukan 0 (nol). maka proses Looping akan segera dihentikan dan dilanjutkan ke Statement dibawah Loop.NET Hendra.DTemp As Integer Jd = 0 Do Console. Jd+1) DTemp = Console. perintah Exit Do akan mengakhiri Looping tanpa bersyarat. 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). sedangkan pada struktur yang kedua pengujuan dilakukan setelah statement dikerjakan. Sebagaimana dengan Exit For. Dat(I)) Next I End Sub End Module Pada contoh diatas.I+1. kemudian proses akan dilanjutkan dengan pembacaan data ke variabel Dtemp. Contoh : Option Explicit On Imports System Module DoLoop Sub Main() Dim Dat() As Integer Dim Jd.WriteLine("Data Ke-{0} adalah {1}".T. yang artinya jika perintah Exit Do ditemukan. pada struktur yang pertama pengujian kondisi dilakukan sebelum statements dikerjakan. S.Bahasa pemrograman VB. INDOPROG 26 .Write("Data Ke-{0} :". Atau Do [ statements ] [ Exit Do ] [ statements ] Loop { While | Until } condition Perbedaan antara kedua struktur perulangan diatas adalah posisi pemeriksaan kondisi yang akan diuji.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. mula-mula kita mendeklarasikan suatu array tanpa diikuti dengan ukuran.

Next Perintah For Each…Next digunakan untuk melakukan iterasi berdasarkan collection tertentu. juga tersedia perintah perulangan dengan tata cara penulisan sebagai berikut..DTemp As Integer Jd = 0 Do Console. misalnya kita ingin mencetak semua elemen dalam suatu array.. Perintah For Each.NET Hendra. Data) Next End Sub End Module Array pada Visual Basic merupakan collection pada System. While condition [ statements ] End While Pada prinsipnya struktur While … End While sama dengan Do While … Loop. 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.WriteLine("Data pada array {0}". sehingga pemakaian perintah For Each akan mendapatkan elemen 0 s/d element terakhir dari array.T. Selain struktur Do…Loop.Array.Write("Data Ke-{0} :". INDOPROG 27 . S.Bahasa pemrograman VB. 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.

3} = {2. 4.Bahasa pemrograman VB. Latihan : 1. j As Byte For i = 1 To 10 For j = 1 to 10 Console. Buatlah program yang menentukan tahun yang dimasukan pemakai termasuk tahun Kabisat atau bukan.3} x {1.i. 2.ReadLine() For I = 15 to 0 Step -1 If ((D >> I) And 1) = 1 Then Console. Buatlah program yang menentukan bilangan bulat yang dimasukan pemakai Genap atau Ganjil.i*j) Next j Next i End Sub End Module.Write("Bilangan Desimal :") D = Console.Write(0) End If Next End Sub End Module 3. S. 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. Buatlah program yang menentukan bilangan bulat yang dimasukan pemakai Prima atau bukan.WriteLine("{0. INDOPROG 28 . Buatlah program yang mencetak barisan bilangan fibonacci sesuai dengan jumlah suku yang ditentukan oleh pemakai. 5.T.j.NET Hendra. 6.Write(1) Else Console. 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.3}".

NET Hendra. S. Buatlah program yang dapat mencetak faktor prima dari suatu bilangan bulat (Contoh 100 = 2 x 2 x 5 x 5) INDOPROG 29 .Bahasa pemrograman VB. 7.T.

Pada contoh berikut ini mendeklarasikan suatu array integer berdimensi tunggal. Suatu array merupakan Reference Type yang mengandung banyak variabel-variabel yang dapat diakses satu persatu sesuai dengan urutannya dalam array. memberi nilai pada masing-masing elemen array. Setiap tipe array mewarisi (inherits) semua member yang dideklarasikan pada System. dimana indexnya dimulai dari 0. Variabel-variabel yang terkandung dalam array disebut juga elemen dari array. 4. 6.GetUpperBound(0) Console. 2. 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. 6.NET Hendra. 4. dan semuanya harus memiliki tipe yang sama.Bahasa pemrograman VB.: Module Test Sub Main() Dim arr(5) As Integer Dim i As Integer For i = 0 To arr.T. 8 } Pada contoh berikut membuat array dua dimensi 5 x 2 : INDOPROG 30 .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.Array. dan mencetak-nya. S.GetUpperBound(0) arr(i) = i * i Next i For i = 0 To arr. 8 } Atau penulisan yang sama adalah dengan : Private a As Integer() = new Integer() { 0. 2.

b(1. 3 }.VisualBasic Public Module ModArr INDOPROG 31 .LongLength()) Console. b(2. Private b As Integer(. b(3.3) As Integer Sub Main() Console. { 2.NET Hendra. 9 } } Sama dengan deklarasi berikut: Private b(4.WriteLine(Arr. b(3. 1 }. adapun beberapa member tersebut adalah sebagai berikut ini : Length LongLength Rank Mendapatkan jumlah elemen dalam Array (Integer 32-bit) Mendapatkan jumlah elemen dalam Array (Integer 64-bit) Mendapatkan jumlah dimensi dalam Array Contoh : Option Explicit On Imports System Imports Microsoft. b(4. b(4. 7 }. S.T.) = { { 0. 0) 0) 0) 0) 0) = = = = = 0 2 4 6 8 : : : : : b(0. { 6. b(2.Bahasa pemrograman VB. 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. 1) As Integer Dan diikuti dengan pemberian nilai berikut : b(0. { 8. { 4. b(1.WriteLine(Arr.WriteLine(Arr.Length()) Console.VisualBasic Public Module ModArr Public Arr(3. 5 }.Rank()) End Sub End Module '16 '16 '2 GetLength GetLongLength Mendapatkan jumlah elemen dalam Array pada dimensi tertentu (Integer 32-bit) Mendapatkan jumlah elemen dalam Array pada dimensi tertentu (Integer 64-bit) Contoh : Option Explicit On Imports System Imports Microsoft.

GetLongLength(0)) End Sub End Module Hendra.3)) End Sub End Module Reverse Membalik urutan element dalam suatu Array 1 dimensi.WriteLine(Array.0} Sub Main() Console.WriteLine(Arr.1. '4 '4 GetLowerBound GetUpperBound Mendapatkan nilai index batas bawah Array pada dimensi tertentu.GetUpperBound(0)) End Sub End Module IndexOf LastIndexOf Mendapatkan index paling awal dari nilai tertentu pada Array 1 dimensi.2.3) As Integer Sub Main() Console.WriteLine(Arr. '3 '5 Option Explicit On INDOPROG 32 . '0 '3 Contoh : Option Explicit On Imports System Imports Microsoft.4.VisualBasic Public Module ModArr Public Arr() As Integer = {0.LastIndexOf(Arr.2.1.IndexOf(Arr.3)) Console.Bahasa pemrograman VB.3) As Integer Sub Main() Console.WriteLine(Arr.WriteLine(Arr. Mendapatkan index paling akhir dari nilai tertentu pada Array 1 dimensi.NET Public Arr(3.3.T.GetLength(0)) Console. Contoh : Option Explicit On Imports System Imports Microsoft.VisualBasic Public Module ModArr Public Arr(3.WriteLine(Array.GetLowerBound(0)) Console. S.3. Mendapatkan nilai index batas atas Array pada dimensi tertentu.

GetUpperBound(0) Console.VisualBasic Public Module ModArr Public Arr() As Integer = {0.WriteLine() Array.3.2} Sub Main() Dim Nilai = 3 INDOPROG 33 .GetLowerBound(0) To Arr.GetLowerBound(0) To Arr.NET Imports System Imports Microsoft.WriteLine() Array.4} Hendra.1.4) For I = Arr.GetUpperBound(0) Console.1.2} Sub Main() Dim I As Integer For I = Arr. S.Bahasa pemrograman VB.3. Contoh : Option Explicit On Imports System Imports Microsoft.Write(Arr(I)) '04312 Next I Console.4.Write(Arr(I)) '01234 Next I End Sub End Module BinarySearch Mencari Nilai tertentu pada suatu Array dengan algoritma Binary Search.4) For I = Arr. Sub Main() Dim I As Integer For I = Arr. Option Explicit On Imports System Imports Microsoft.0.1.Sort(Arr.4.Write(Arr(I)) '01234 Next I Console.VisualBasic Public Module ModArr Public Arr() As Integer = {0.2.GetLowerBound(0) To Arr.T.GetUpperBound(0) Console.Write(Arr(I)) '43210 Next I End Sub End Module Sort Mengurut elemen dalam suatu Array 1 dimensi.0.3.GetLowerBound(0) To Arr.Reverse(Arr.GetUpperBound(0) Console.VisualBasic Public Module ModArr Public Arr() As Integer = {0.

For I = 0 To UBound(MyArray) MyArray(I) = I ' Initialize array.4) Console. ' Allocate 6 elements. ReDim [ Preserve ] name(boundlist) Preserve Sifatnya optional.. ' Initialize array. '2 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.BinarySearch(Arr. ReDim MyArray(10) ' Resize to 11 elements. Next I Perintah berikut mengubah ukuran dari array dengan mempertahankan isi elementnya. Perintah berikut mengubah ukuran array tanpa mempertahankan isi elemennya.T.Sort(Arr. Dim I. 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.NET Array.Nilai)) End Sub End Module Hendra.WriteLine(Array.Bahasa pemrograman VB. MyArray() As Integer ReDim MyArray(5) For I = 0 To UBound(MyArray) MyArray(I) = I Next I ' Declare variable and array variable. Contoh berikut mengalokasi ulang array sesuai dengan data yang dimasukan pemakai : Option Explicit On Imports System Module DoLoop INDOPROG 34 . ReDim Preserve MyArray(15) ' Resize to 16 elements.0. S.

Dim Int3DArray(9. 9) Module Array pada Namespace Microsoft.. Contoh Pada contoh berikut menggunakan perintah Erase untuk membebaskan memori dua array (1000 dan 100 tempat elemen yang bersesuaian). ReDim Int3DArray(4.NET Sub Main() Dim Dat() As Integer Dim Jd.Bahasa pemrograman VB. Jd+1) DTemp = Console. S. Dat(I)) Next I End Sub End Module Perintah Erase Perintah Erase digunakan untuk membebaskan array dan memory yang digunakan elemennya. 9) As Integer ' . 9. 9).VisualBasic INDOPROG 35 . dengan tata cara penulisan sebagai berikut : Erase arraylist Catatan Perintah Erase akan memberikan nilai Nothing ke variabel array. Erase Int3DArray.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. Jd = 0 Do Console.I+1. Int2DArray(9. 4.... Kemudian menggunakan perintah ReDim untuk memberikan ukuran baru untuk ketiga dimensi dari array.T. Int2DArray ' .WriteLine("Data Ke-{0} adalah {1}".DTemp As Integer Hendra.Write("Data Ke-{0} :".

1) ' Returns 0. Lowest = LBound(MyArray. Pada contoh berikut menggunakan fungsi Ubound untuk menentukan index yang terbesar dari suatu dimensi pada array. Lowest = LBound(AnyArray) ' Returns 0. ' Returns True. Suatu Exception/Error akan terjadi kalau kondisi berikut ini ditemukan : Exception type ArgumentNullException RankException Error number 9 9 Condition Array is Nothing. AnyArray(6) as Integer Lowest = LBound(MyArray. Dim MyArray(4). 15. Pada contoh ini fungsi IsArray memeriksa apakah variabel-variabel mengacu pada suatu array. AnyArray(6) as Integer INDOPROG 36 . Fungsi UBound Mengembalikan index yang terbesar dari suatu dimensi pada array. 20).T. YourArray(3) As Integer Dim MyString As String Dim MyCheck As Boolean MyCheck = IsArray(MyArray) MyCheck = IsArray(YourArray) MyCheck = IsArray(MyString) ' Declare array variables.NET Hendra. Pengolahan data array dapat juga menggunakan beberapa fungsi bantu yang berkaitan dengan array yang tersedia pada Namespace Microsoft. 15. Rank < 1 or Rank is greater than the rank of Array. 3) ' Returns 0. ' Returns True. berikut ini adalah beberapa fungsi bantu tersebut : Fungsi IsArray Mengembalikan nilai Boolean yang menunjukan apakah suatu variabel menunjuk pada suatu array. Dim Lowest. S. MyArray(10. Dim Highest. MyArray(10. 20). ' Returns False.VisualBasic.Bahasa pemrograman VB. 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.

INDOPROG 37 .VisualBasic Pada awal program Latihan : 1. 3.Bahasa pemrograman VB.NET Highest = UBound(MyArray. Perbaiki program diatas untuk menampilkan kembali dalam keadaan berurut dari besar ke kecil. nilai total.T. dan nilai yang terkecil dengan pemanfaatan array. rata-rata. dan menampilkan kembali dalam keadaan berurut dari kecil ke besar. S. 1) Highest = UBound(MyArray. Buatlah program yang mencetak suatu segitiga Pascal. 4. Lbound dan Ubound anda perlu mencantumkan Imports Microsoft. nilai terbesar. Catatan : Untuk memanfaatkan fungsi IsArray. ' Returns 20. 2. Buatlah program yang menbaca sejumlah data dari pemakain. 3) Highest = UBound(AnyArray) ' Returns 10. Hendra. Tambahkan kemampuan program untuk mencari suatu nilai yang dimasukan dan menampilkan posisinya dalam array. ' Returns 6.

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. S.T. tentu saja harus dikembangkan secara terstruktur sehingga program menjadi lebih mudah dikembangkan dan dimaintenance. kadang-kadang kita menginginkan proses yang dapat mengembalikan lebih dari satu nilai yang mana dapat dipenuhi dengan menggunakan parameter yang dikirim secara ByRef. 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. Pemakaian function digunakan untuk proses maupun rumus yang perlu mengembalikan nilai kepada pemanggil.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.NET Hendra.bil) End If End Sub End Module Defaultnya parameter pada function dikirim secara ByVal.Bahasa pemrograman VB. INDOPROG 38 . dan dapat dipanggil pada saat yang dibutuhkan.WriteLine("Bilangan {0} adalah Genap".ReadLine() If IsGenap(bil) Then Console.Write("Masukan Bilangan :") bil = Console.bil) Else Console.WriteLine("Bilangan {0} adalah Ganjil". Fungsi dan Sub Perintah Function Dalam pembuatan program yang besar.

Misalnya kita ingin menghitung akar persamaan kuadrat dengan menggunakan rumus ABC.Sqrt(D))/(2*A) 'argumen X2 Return True 'Ada solusi End If End Function REM program utama Sub Main() Dim A.B. Jika kita perlu melewatkan suatu array sebagai argumen pada function. Integer. and #1/1/0001 12:00 AM# for Date.C As Long Dim X1.T.C As Long.Sqrt(D))/(2*A) 'argumen X1 X2 = (-B . B as Long .ByRef X2 as single) As Boolean Dim D as Long D = B^2 . Short.ReadLine() Console.VisualBasic Public Module AkarKuadrat Function CariAkar(A as Long. dan jika suatu Exit Function digunakan. dimana function akan mengembalikan suatu nilai true (ada solusi) atau false (tidak ada solusi). Long. maka dapat digunakan keyword ParamArray untuk melewatkan nilai array secara by value.Write("Masukan B :") B = Console. Yang mana X1 dan X2 yang kemungkinan akar imaginier. maka function akan mengembali nilai defaut berupa 0 for Byte. contoh : INDOPROG 39 .ReadLine() Console. Char.X1. Double.ReadLine() If CariAkar(A.WriteLine("Akar X1={0} X2={1}".X1. _ ByRef X1 as single . False for Boolean.WriteLine("Mencari akar persamaan kuadrat") Console. S.Write("Masukan A :") A = Console.X2) Else Console. and Single.X2 As Single Console. Nothing for Object. Contoh : Option Explicit On Imports System Imports Microsoft.WriteLine("Akar imaginier") End If End Sub End Module Catatan : Perintah Return digunakan untuk mengembalikan nilai ke pemanggil.Bahasa pemrograman VB.B.X2) Then Console.Math. and all arrays.Write("Masukan C :") C = Console. Decimal.4*A*C If D < 0 Then 'Akar Imaginier Return False 'Tidak ada solusi Else X1 = (-B + Math.C.NET Hendra. String.

ReadLine() End Sub Sub BacaData() INDOPROG 40 .Write("Masukkan Jumlah Data :") Jd = Console.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. S.VisualBasic Public Module ModArr Public Arr() As Integer Public Jd As Byte Sub BacaJd() Console.5} Sub Main() Console. sebenarnya sub juga dapat digunakan untuk proses yang mengembalikan nilai melalui argumen yang dikirim secara ByRef. Jika Exit Sub digunakan. selanjutnya kita akan melihat Sub yang menyerupai Function. dimana perbedaannya adalah jika function digunakan untuk proses yang mengembalikan nilai kepada pemanggil.1.Bahasa pemrograman VB.T.NET Option Explicit On Imports System Imports Microsoft. Contoh : Option Explicit On Imports System Imports Microsoft. maka Sub akan kembali ke pemanggil secara tidak bersyarat. sedangkan Sub cenderung digunakan untuk proses yang tidak mengembalikan nilai.3.2.WriteLine(sumArray(Digit)) End Sub End Module Hendra.4. Sub Statement Pada bagian sebelumnya kita telah membahas tentang function dan pemakaiannya. Sub name [(arglist)] [ statements ] [ Exit Sub ] [ statements ] End Sub Catatan : Sebagaimana function.

WriteLine("Nilai Rata-rata : {0}". 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.Total/Jd) End Sub Sub Main() BacaJd() BacaData() CariRataRata() End Sub End Module Hendra.T. Teknik Rekursi pada Visual Basic Dalam matematika.WriteLine("Faktorial dari {0} adalah {1}". misalnya pada perhitungan nilai faktorial dari suatu bilangan yang dapat diformulasikan sebagai berikut : N! = N x (N-1)! Dimana 1! = 1. kita sering menjumpai formula yang mengandung rekursi. S.5.Fak(5)) End Sub End Module Latihan : INDOPROG 41 .NET ReDim Arr(Jd-1) For I As Byte = 0 To UBound(Arr) Console.I+1) Arr(I) = Console.Bahasa pemrograman VB.Write("Data Ke -{0} :".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.

2. Buatlah program yang mencetak faktor prima dari suatu bilangan dengan pemanfaatan Sub secara rekursi. 4. Buatlah function IsKabisat yang akan mengembalikan nilai True jika tahun yang dikirim sebagai argumen adalah Kabisat. S.NET Hendra.T. dan False jika sebaliknya. 3. Dengan pemanfaatan teknik rekursi. buatlah function yang dapat menghitung suku yang ke n dari barisan fibonacci. 1. Buatlah function IsPrima yang akan mendeteksi apakah suatu bilangan yang diberikan adalah Prima atau tidak.Bahasa pemrograman VB. INDOPROG 42 .

S. accent.WriteLine(Nama.Bahasa pemrograman VB.S yang mana sama dengan karakter set yang terdefinisi pada ASCII. dan simbol teknis. Masing-masing angka merupakan suatu karakter tunggal Unicode. Kemudian karakter sisianya digunakan untuk berbagai simbol.ToLower()) End Sub End Module Pada contoh diatas akan mencetak HENDRA SOEWARNO dan hendra soewarno. 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. Public Properties Chars Length Mendapatkan karakter pada posisi tertentu string. kemudian 128 karakter berikutnya (128–255) merupakan karakter spesial. String Variabel string pada Visual Basic disimpan sebagai urutan dari angka 16-bit (2 byte) yang memiliki jangkauan dari 0 sampai 65535.T. seperti huruf alphabet Latin. Suatu string dapat mengandung sampai dengan 2 Milyar (2^31) karakter Unicode.NET Hendra. termasuk karakter teksual didunia. 128 kode pertama (0-127) dari Unicode berkaitan dengan huruf dan simbol pada keyboard standard U.WriteLine(Nama. dan pecahan. Member pada Class String Semua string di Visual Basic memiliki member sebagai berikut yang dapat digunakan untuk melakukan pengolahan data String.ToUpper()) Console. dan metematika. simbol mata uang. Mendapatkan jumlah character dalam string Contoh : Option Explicit On Imports System Public Module modStr INDOPROG 43 .

WriteLine(Kota.WriteLine(Nama. Mengisi spasi atau karakter lain disebelah kanan string sampai string mencapai panjang tertentu."-")) Console.Bahasa pemrograman VB.NET Dim Nama As String = "Hendra Soewarno" Sub Main() Console.ToUpper()) Console.Chars(2)) Console.T.ToLower()) Console.TrimEnd()) Console.Length()) End Sub End Module Hendra.WriteLine(Nama."-")) Console.WriteLine(Nama.Chars(1)) Console.WriteLine(Nama.WriteLine(Nama. Mengembalikan string yang telah diubah ke huruf kecil PadRight ToLower ToUpper Mengembalikan string yang telah diubah ke huruf besar Trim Mengembalikan string dengan membuang spasi didepan dan belakang string Mengembalikan string dengan membuang spasi dibelakang string TrimEnd TrimStart Mengembalikan string dengan membuang spasi didepan string Substring Mengembalikan bagian dari string Contoh : Option Explicit On Imports System Public Module modStr Dim Nama As String = "Hendra Soewarno" Dim Kota As String = " Medan " Sub Main() Console.TrimStart()) '-----Hendra Soewarno 'Hendra Soewarno----'hendra soewarno 'HENDRA SOEWARNO '____Medan 'Medan_____ INDOPROG 44 .WriteLine(Kota.PadRight(20.WriteLine(Nama.WriteLine(Nama.Chars(0)) Console.WriteLine(Nama. S. 'Akan 'Akan 'Akan 'Akan mencetak mencetak mencetak mencetak H e n 12 Public Methods PadLeft Mengisi spasi atau karakter lain disebelah kiri string sampai string mencapai panjang tertentu.PadLeft(20.

Mendapatkan apakah string dimulai dengan string tertentu.3)) End Sub End Module 'Medan 'dra Hendra. Insert Remove Replace Menyisip string ke dalam string sekarang pada posisi tertentu."us")) 'Susanto Console.WriteLine(Nama. Mengembalikan posisi akhir suatu string pada string sekarang sekarang mulai dari posisi tertentu Mengembalikan posisi akhir suatu string pada string sekarang.Replace("o"."i")) 'Santi End Sub End Module IndexOf Mengembalikan posisi awal suatu string pada string sekarang mulai dari posisi tertentu Mengembalikan posisi awal suatu string pada string sekarang. Mendapatkan apakah string diakhir dengan string tertentu.NET Console. IndexOfAny LastIndexOf LastIndexOfAny StartsWith EndsWith Contoh : Option Explicit On Imports System Public Module modStr ' 0 1 2 ' 012345678901234567890123456 Dim Nama As String = "ebook karya Hendra Soewarno" INDOPROG 45 .WriteLine(Nama.Remove(0.SubString(3. Menghapus sejumlah karakter dalam string Mengantu sejumlah karakter dengan string pada string sekarang Contoh : Option Explicit On Imports System Public Module modStr Dim Nama As String = "Santo" Sub Main() Console.Trim()) Console. S.T.WriteLine(Nama.WriteLine(Nama.Insert(1.1)) 'anto Console.WriteLine(Kota.Bahasa pemrograman VB.

IndexOf("e". mengembalikan character dari suatu nilai ASCII x Contoh : Option Explicit On Imports System Imports Microsoft. 'True 'False 'True 'False Option Explicit On Imports System Public Module modStr ' 0 1 2 ' 012345678901234567890123456 Dim Nama As String = "ebook karya Hendra Soewarno" Sub Main() Console.WriteLine(ChrW("72")) End Sub End Module '72 '72 'H 'H INDOPROG 46 .WriteLine(Nama. mengembalikan nilai ASCII dari huruf pertama dalam string x Chr(x).T.EndsWith("o")) Console.VisualBasic Selain pengolahan data string dengan menggunakan String Member.EndsWith("i")) End Sub End Module Hendra.IndexOfAny("e")) Console.2)) Console.NET Sub Main() Console. .WriteLine(Nama.LastIndexOf("e".WriteLine(Nama.15)) End Sub End Module '0 '21 '13 '13 Module String pada Namespace Microsoft.Bahasa pemrograman VB. Asc(x).StartsWith("a")) Console.VisualBasic.WriteLine(Chr("72")) Console.WriteLine(Asc("H")) Console.WriteLine(Nama.WriteLine(Nama. mengembalikan nilai ASCII dari huruf pertama dalam string x AscW(x).WriteLine(AscW("H")) Console. mengembalikan character dari suatu nilai ASCII x ChrW(x).WriteLine(Nama. S.VisualBasic Public Module modStr Sub Main() Console.WriteLine(Nama. Visual Basic juga menyediakan berbagai fungsi bantu yang terdefinisi pada Namespace Micorosoft.LastIndexOfAny("e")) Console. berikut ini adalah beberapa fungsi bantu yang dapat digunakan untuk pengolahan data string.WriteLine(Nama.StartsWith("e")) Console.

y). mengembalikan panjang string x dalam karakter. Right(x. mengembalikan string rapat kanan dengan panjang y dengan menambah spasi di depan string x.y). mengembalikan string yang terdiri dari spasi sejumlah x karakter.6)) Console.WriteLine(Mid(Nama. mengembalikan substring dari string x sebanyak y karakter dari depan. INDOPROG 47 .4.WriteLine(Len(Nama)) Console. Len(x). Lcase(x).1)) Console. mengembalikan string yang telah diubah menjadi huruf besar.WriteLine(Right(Nama. Contoh : Option Explicit On Imports System Imports Microsoft. Rset(x.Bahasa pemrograman VB.T.WriteLine(GetChar(Nama. Left(x.NET Hendra.8)) Console.VisualBasic Public Module modStr Sub Main() Dim Nama As String = "Hendra Soewarno" Console.y).VisualBasic Public Module modStr Sub Main() Dim Nama As String = "Hendra Soewarno" Console.y). S.3)) End Sub End Module 'H 'Hendra 'Soewarno 'dra Space(x).y.z) mengembalikan substring dari string x mulai posisi y sebanyak z karakter. Ucase(x).WriteLine(LCase(Nama)) Console. mendapatkan character posisi ke y dalam string x. Contoh : Option Explicit On Imports System Imports Microsoft.WriteLine(Left(Nama. mengembalikan substring dari string x sebanyak y karakter dari belakang. mengembalikan string yang telah diubah menjadi huruf kecil. Mid(x.WriteLine(UCase(Nama)) End Sub End Module '15 'hendra soewarno 'HENDRA SOEWARNO GetChar(x.

mengembalikan string dengan menghilangkan spasi didepan string x.WriteLine(Nama1 & Space(5) & Nama2) 'Hendra Console. mengembalikan string dengan menghilangkan spasi dibelakang string x. Trim(x).WriteLine(StrReverse(Nama)) End Sub End Module 'Susan 'nasuS InStr(y. Rtrim(x).NET Hendra.VisualBasic Public Module modStr Sub Main() Dim Nama1 As String = "Hendra" Dim Nama2 As String = "Soewarno" Console.9)) 'Hendra___ End Sub End Module Soewarno Ltrim(x). z).WriteLine(RSet(Nama1.T. Contoh : Option Explicit On Imports System Imports Microsoft.9)) '___Hendra Console. y). StrReverse(x). mengembalikan string rapat kiri dengan panjang y dengan menambah spasi dibelakang string x.Bahasa pemrograman VB. mengembalikan string yang membalikan karakter dalam string x. Lset(x.WriteLine(Nama) Console. mencari dari belakang posisi keberadaan substring z dalam string x mulai posisi y. x. S. z.VisualBasic Public Module modStr Sub Main() Dim Nama As String = "Susan" Console. Contoh : INDOPROG 48 .WriteLine(LSet(Nama1.y). mengembalikan string dengan prilaku gabungan Ltrim dan Rtrim. Contoh : Option Explicit On Imports System Imports Microsoft. InStrRev(x. mencari dari depan posisi keberadaan substring z dalam string x mulai posisi y.

dan metode z adalah CompareMethod.Nama.NET Option Explicit On Imports System Imports Microsoft.Text dan CompareMethod.CompareMethod. StrComp(x. dengan metode z. contoh A = 65."i")) Console."F"."F".y.WriteLine(StrDup(10."i")) Console.Bahasa pemrograman VB.WriteLine(InStr(1.10)) Console. dan 1 (x > y).VisualBasic Public Module modStr Sub Main() Dim Nama As String = "Felicia Fortuna" Console. 0.T.WriteLine(InStr(5.Nama2.Binary)) '1 End Sub End Module Catatan : Pada metode Binary.VisualBasic Public Module modStr Sub Main() Dim Nama1 As String = "felicia" Dim Nama2 As String = "FELICIA" Console.7)) End Sub End Module Hendra.VisualBasic Public Module modStr Sub Main() Dim Nama As String = "Felicia Fortuna" Dim aNama() As String = Split(Nama.CompareMethod. S.WriteLine(InStrRev(Nama.WriteLine(aNama(0)) 'Felicia INDOPROG 49 . mengembalikan array string yang merupakan hasil pemisahan dari string x dengan delimeter y Option Explicit On Imports System Imports Microsoft.Text)) '0 Console. dimana -1 (x < y).y).WriteLine(StrComp(Nama1." ") Console.Nama. dan a = 97. dimana ASCII huruf kecil > dari huruf besar. x). Split(x. atau 1 yang merupakan perbandingan antara string x dengan string y.Binary.Nama2. Contoh : Option Explicit On Imports System Imports Microsoft. 0 (x =y). mengembalikan nilai -1. perbandingan dilakukan berdasarkan nilai ASCII."-")) '---------Console.WriteLine(StrComp(Nama1. mengembalikan string yang merupakan duplikasi character x sebanyak y.z).WriteLine(InStrRev(Nama. '4 '6 '9 '1 StrDup(y.

VbStrConv.VbStrConv.T. mengembalikan string yang merupakan pengantian string y dengan z dalam string x mulai posisi [1] sampai sejumlah karakter [2].".LowerCase.WriteLine(Replace(Nama. S. menghasilkan string yang merupakan hasil konversi dengan metode y dari string x.VbStrConv.VisualBasic Public Module modStr Sub Main() Dim Nama As String = "Hendra" Console.WriteLine(StrConv(Nama.[3]).WriteLine(StrConv(Nama.WriteLine(aNama(1)) End Sub End Module 'Fortuna Hendra. mengembalikan string yang merupakan hasil gabungan array string x dengan delimeter y Option Explicit On Imports System Imports Microsoft.Bahasa pemrograman VB. Fortuna End Sub End Module Replace(x.UpperCase)) 'HENDRA Console.y).ProperCase) Contoh : Option Explicit On Imports System Imports Microsoft."o")) 'Hendro End Sub End Module StrConv(x. VBStrConv.y).[1].ProperCase)) 'Hendra End Sub INDOPROG 50 . dimana y (VBStrConv."Fortuna"} Console.VisualBasic Public Module modStr Sub Main() Dim Nama As String = "Hendra" Console.[2]. ")) 'Felicia.WriteLine(StrConv(Nama.LowerCase)) 'hendra Console.NET Console.z. Join(x.y.VisualBasic Public Module modStr Sub Main() Dim aNama() As String = {"Felicia".WriteLine(Join(aNama.UpperCase. VBStrConv."a". dengan metode perbandingan [3]. Contoh : Option Explicit On Imports System Imports Microsoft.

dimana y (DateFormat.VisualBasic Public Module modStr Sub Main() Console. menghasilkan string yang merupakan format angka dari angka x dengan jumlah desimal y.2)) Console.WriteLine(FormatPercent(PPN. DateFormat.y).GeneralDate.000. menghasilkan string yang merupakan format percent dari angka x dengan jumlah desimal y. Contoh : INDOPROG 51 .y).y).WriteLine(FormatDateTime(Now.LongDate)) 'Sunday.2)) Console.LongDate. menghasilan string yang merupakan format currency dari angka x dengan jumlah desimal y. FormatNumber(x. May 22.00 '10. FormatPercent(x. 2005 End Sub End Module FormatCurrency(x.WriteLine(FormatNumber(Angka. FormatDateTime(x.NET End Module Hendra. S.T. dengan format yang dapat dilihat pada lampiran 1.LongTime. menghasilkan string yang merupakan format dari argumen x dengan format y. DateFormat.ShortDate. menghasilkan string hasil konversi date x dengan format sesuai dengan setting pada komputer.WriteLine(FormatCurrency(Angka.DateFormat.1 Console.Bahasa pemrograman VB.00 '100.000. DateFormat.VisualBasic Public Module modStr Sub Main() Dim Angka As Decimal = 100000 Dim PPN As Single = 0.y). DateFormat.ShortTime) Contoh : Option Explicit On Imports System Imports Microsoft. Contoh : Option Explicit On Imports System Imports Microsoft.2)) End Sub End Module '$100.y).00% Format(x.

Bahasa pemrograman VB.NET

Hendra, S.T.

Option Explicit On Imports System Imports Microsoft.VisualBasic Public Module modStr Sub Main() Console.WriteLine(Format(10000,"#,##0.00")) '10,000.00 Console.WriteLine(Format(Now,"dd/MM/yyyy HH:MM:SS")) '22-05-2005 20:15:01 End Sub End Module

Filter(x,y,[1],[2]), menghasilkan array yang berisi string dari array string x yang mana elemen yang mengandung substring y, dengan ketentuan [1] (true=contain, false = exclude), dengan compare method [2]. Contoh :
Option Explicit On Imports System Imports Microsoft.VisualBasic Public Module modStr Sub Main() Dim aNama1() As String = {"Hendra","Susan","Felicia Fortuna"} Dim aNama2() As String = Filter(aNama1,"r",true,CompareMethod.Binary) For Each A As String In aNama2 Console.WriteLine(A) 'Hendra & Felicia Fortuna Next End Sub End Module

Latihan :
1. Buatlah program yang dapat menghasilkan terbilang dari suatu bilangan, contoh 123,456,789 (Seratus dua puluh tiga juta empat ratus lima puluh enam ribu tujuh ratus delapan puluh sembilan).

INDOPROG

52

Bahasa pemrograman VB.NET

Hendra, S.T.

Tipe data Date
Pada Visual Basic variabel date disimpan sebagai integer IEEE 64-bit (8-byte) yang mewakili tanggal dengan jangkauan dari 1 Januari tahun 1 sampai dengan 31 Desember tahun 9999, dan waktu dari 0:00:00 (tengah malam) sampai 23:59:59. Nilai tanggal harus diapit diantara tanda angka (#) dan diformat dalam M/d/yyyy, sebagai contoh #5/31/1993#. Anda dapat memberikan nilai awal pada variabel tipe Date dengan penulisan sebagai berikut :
Dim Tanggal As Date = New Date(2005, 5, 30, 8, 29, 59, 900)

Dimana akan memberikan nilai Tanggal 30 Mei 2005 Pukul 8:29:59.900 ke variabel Tanggal.

Member pada Class Date
Date
TimeOfDay Day Month Year Hour Minute Second Millisecond DayOfWeek DayOfYear Ticks Now Today UtcNow Mengambil komponen tanggal dari instance Mengambil komponen waktu dari instance Mengambil nomor hari (1-31) dalam bulan dari instance Mengambil komponen bulan (1-12) dari instance Mengambil komponen tahun dari instance Mengambil komponen jam (0-23) dari instance Mengambil komponen menit (0-59) dari instance Mengambil komponen detik (0-59) dari instance Mengambil komponen mili detik (0-999) dari instance Mengambil nomor hari (0-6) dalam minggu dari instance Mengambil nomor hari (1-366) dalam tahun dari instance Mengambil jumlah ticks dari instance Mendapatkan tanggal dan waktu komputer Mendapatkan mendapatkan tanggal komputer Mendapatkan tanggal dan wkatu komputer yang telah diknversi menjadi coordinated universal time (UTC).

Contoh :
Option Explicit On Imports System Public Module ModDate

INDOPROG

53

Bahasa pemrograman VB.NET

Hendra, S.T.

Sub Main() Dim Tanggal As Date = New Date(2005,5,30,8,29,40,900) Console.WriteLine(Tanggal.Date()) '30-05-2005 Console.WriteLine(Tanggal.TimeOfDay()) '08:29:40.9000000 Console.WriteLine(Tanggal.Day()) '30 Console.WriteLine(Tanggal.Month()) '5 Console.WriteLine(Tanggal.Year()) '2005 Console.WriteLine(Tanggal.Hour()) '8 Console.WriteLine(Tanggal.Minute()) '29 Console.WriteLine(Tanggal.Second()) '40 Console.WriteLine(Tanggal.MilliSecond()) '900 Console.WriteLine(Tanggal.DayOfWeek()) '1 Console.WriteLine(Tanggal.DayOfYear()) '150 Console.WriteLine(Tanggal.Ticks()) '632530385809000000 Console.WriteLine(DateTime.Now()) '30-05-2005 08:30:29 PM Console.WriteLine(Tanggal.Today()) '30-05-2005 Console.WriteLine(Tanggal.UTCNow()) '30-05-2005 1:37:20 PM End Sub End Module

Visual Basic menyediakan berbagai fungsi bantu yang merupakan member dari namespace Microsoft.VisualBasic
AddDays AddMonths AddYears AddHours AddMinutes AddSeconds AddMilliseconds 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. Menambah sejumlah hari (+/-) ke instance. Menambah sejumlah bulan (+/-) ke instance Menambah sejumlah tahun (+/-) ke instance Menambah sejumlah jam (+/-) ke instanace Menambah sejumkah menit (+/-) ke instance Menambah sejumlah detik (+/-) ke instance Menambah sejumlah millidetik (+/-) ke instance

Option Explicit On Imports System Public Module ModDate Sub Main() Dim Str As String = "30-5-2005 08:30:50.900"

INDOPROG

54

Bahasa pemrograman VB.NET
Dim Tanggal As Date Tanggal = DateTime.Parse(Str) Console.WriteLine(Tanggal) End Sub End Module

Hendra, S.T.

Compare

DaysInMonth IsLeapYear Option Explicit On Imports System

Membandingkan dua instance dari DateTime dam mengembalikan ( < 0 jika tanggal1 < tanggal2, = 0 jika tanggal1 = tanggal2, dan > 0 jika tanggal1 > tanggal2) Mengembalikan jumlah hari dalam tahun dan bulan tertentu. Mengembalikan indikasi apakah tahun yang diberikan kabisat

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

'-1 '31 'False

Menghasilkan selisih antara suatu datetime dengan instance

'-1 00:00:00

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 ToUniversalTime Konversi Instance ke String Konversi Instance ke UTC

INDOPROG

55

mengembalikan nama hari berdasarkan nomor hari. mengembalikan tanggal komputer. (Abbrev = True. Today(). singkatan) INDOPROG 56 .day). TimeSerial(hour. Day(DateTime). mengembalikan bagian hari dari data tanggal Month(DateTime). mengembalikan bagian detik dari data tanggal Weekday(DateTime. S. DateString(). TimeOfDay(). second). mengembalikan data bertipe double yang menunjukan jumlah detik sejak tengah malam. DayofWeek). Abbrev). mengembalikan data tanggal sesuai dengan tahun.NET Hendra. mengembalikan tanggal dan waktu komputer. mengembalikan waktu komputer DateValue(string). mengembalikan waktu sesuai dengan jam. Now(). Module Date pada Namespace Microsoft.VisualBasic DateSerial(year. mengembalikan bagian jam dari data tanggal Minute(DateTime). TimeString(). mengembalikan tanggal komputer dengan format MM-dd-yyyy dalam bentuk string. WeekdayName(WeekDay. …7 = sabtu). bulan dan hari yang ditentukan.T. mengembalikan bagian menit dari data tanggal Second(DateTime). mengembalikan bagian tahun dari data tanggal Hour(DateTime). mengembalikan bagian bulan dari data tanggal Year(DateTime). mengembalikan tanggal komputer dalam bentuk string. mengembalikan nomor hari dalam minggu dari DateTime (1 = minggu.Bahasa pemrograman VB. menit dan detik. minute.month. mengembalikan tanggal dari hasil konversi string tanggal. Timer().

truncated to integral value DateInterval. DatePart(Interval. truncated to integral value DateDiff(Interval. Returns a Long value specifying the number of time intervals between two Date values. truncated to integral value DateInterval.Month m Month.Year yyyy Year. kemudian fungsi Date$ dan Time$ dengan DateString dan TimeString. truncated to integral value DateInterval.WeekOfYear ww Week.Minute n Minute. DateValue). mengembalikan tanggal dari hasil penjumlahan DateValue terhadap Number dalam arti interval tertentu Enumeration value String Unit of time interval to add DateInterval.NET telah mengantikan Date dan Time dengan Today dan TimeOfDay.Second s Second.Bahasa pemrograman VB. rounded to nearest millisecond DateInterval. truncated to integral value DateInterval. DateAdd(Interval. truncated to integral value DateInterval. rounded to nearest millisecond DateInterval.Day d Day. truncated to integral value DateInterval. S.T.Weekday w Day. Date2). DateValue). Number.Hour h Hour.DayOfYear y Day. rounded to nearest millisecond DateInterval. INDOPROG 57 . menghasilkan selisih antara Date2 terhadap Date1 berdasarkan interval tertentu.NET Hendra.Quarter q Quarter. Date1. mengembalikan nilai Integer yang berkaitan dengan interval dari DataValue Catatan : Visual Basic .

Mid. Mid. Semester As Single End Structure Catatan : Sebagaimana telah dinyatakan sebelumnya bahwa secara default string pada Visual Basic adalah variable length.VisualBasic Public Module ModStruct Structure Ujian <VBFixedString(10)> Public Nim As String <VBFixedString(30)> Public Nama As String Public Tugas. contoh misalnya kita akan menambah property Rata-rata untuk menghitung nilai rata-rata Tugas.Nim = "920403024" INDOPROG 58 . Structure pada Visual Basic Visual Basic menyedia perintah Structure untuk pembentukan tipe data terstruktur. S. dan untuk membentuk string dengan fixed length kita membutuhkan vbFixedStringAttribute Class. Mid dan Semester.T. 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.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. misalnya kita akan mengolah data ujian mahasiswa dengan tabel sebagai berikut : Nim Nama Tugas Mid Semester Dimana dapat ditulis sebagai struktur berikut ini : Structure Ujian <VBFixedString(10)> Public Nim As String <VBFixedString(30)> Public Nama As String Public Tugas.Bahasa pemrograman VB. sehingga deklarasi Structure dapat ditulis menjadi : Option Explicit On Imports System Imports Microsoft.NET Hendra.

Nama = "Hendra Soewarno" DaftarUjian.ReadLine() Console.Write("Tugas : ") DaftarUjian(jd).Write("Nim : ") Nim = Console.WriteLine("Daftar Ujian Mahasiswa") Console.Write("Mid : ") DaftarUjian(jd).Trim.ReadLine() Jd = Jd + 1 End If Loop Until Len(Trim(Nim)) = 0 End Sub Private Sub CetakData() Dim Record As Ujian Console.ReadLine() If Nim.RataRata) End Sub End Module Hendra.Semester = Console.ReadLine() Console.Tugas = Console.T.Mid. Contoh program membaca data ke array structure dan mencetak kembali : Option Explicit On Imports System Imports Microsoft.WriteLine("Nim Nama T M S R ") INDOPROG 59 .WriteLine("Record ke {0}".NET DaftarUjian.Length > 0 ReDim Preserve DaftarUjian(Jd) DaftarUjian(jd).Write("Nama : ") DaftarUjian(jd).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.Mid = Console.WriteLine Console.Nama = Console.Mid = 90 DaftarUjian.Bahasa pemrograman VB.Write("Semester : ") DaftarUjian(jd).Semester = 90 Console.ReadLine() Console.Tugas = 90 DaftarUjian.Nim = Nim Console.VisualBasic Public Module ModStruct Structure Ujian <VBFixedString(10)> Public Nim As String <VBFixedString(30)> Public Nama As String Public Tugas.Jd+1) Console.WriteLine(DaftarUjian. S.

C. _ Record.WriteLine("{0} {1} {2.6:f2}".Tugas. serta NIM mahasiswa peringkat pertama. Kembangkan program diatas untuk mencetak Daftar Ujian Mahasiswa. dengan pendekatan terstruktur.Nim. atau E). S. B. D.Bahasa pemrograman VB.6:f2} {3.Semester. _ Record. serta tampilkan jumlah yang Lulus (C Keatas).6:f2} {4.WriteLine("----------------------------------------------------------------------") For Each Record In DaftarUjian Console.PadRight(30). dimana ditampilkan nilai rata-rata diikuti dengan nilai Huruf (A.Nama.NET Hendra.6:f2} {5. _ Record. Console. _ Record.PadRight(10).Mid.T. _ Record. INDOPROG 60 . dan Rata-rata kelas.RataRata) Next End Sub Sub Main() Call BacaData Call CetakData End Sub End Module Latihan : 1. Catatan : Kategori nilai Huruf dicetak dengan membuat Properti NilaiHuruf pada Structure Ujian. _ Record.

Move(asal. menghapus file yang ditentukan File.T. 3.NET Hendra. menghapus. Pencarian adalah melakukan query dan modifikasi terhadap posisi dalam suatu stream.Delete(namafile).GetAttributes(namafile). Anda dapat membaca dari streams. Menulis adalah mentransfer data dari suatu struktur data ke dalam suatu stream. Stream mendukung pencarian. 16 INDOPROG 61 .Copy(asal.IO. Suatu stream adalah abstraction dari rangkain byte. Untuk pengolahan stream yang berkaitan dengan file perlu melakukan Imports System. 32 Value Compressed 2048 Device Reserved for future use. mendeteksi keberadaan file File. Streams meliputi tiga operasi yang mendasar: 1. File Class Menyediakan metode-metode static untuk pembuatan. Kemampuan pencarian sangat tergantung pada jenis media penampung stream. Applications use this attribute to mark files for backup or removal. Sebagai contoh FileStream mendukung perubahan posisi. dimana mengembalikan salah satu nilai dari member FileAttributes : Member name Archive Description The file's archive status. dan membuka file. memindahkan file ke lokasi baru dengan nama baru File.tujuan). S.Bahasa pemrograman VB. mendapatkan attribut dari file. seperti suatu array dari byte. sedangkan network stream tidak. 64 Directory The file is a directory. menduplikasi. Anda dapat menulis ke streams. menduplikasi file asal ke file tujuan File. inter-process communication pipe. 2. peralatan input/output. Berikut ini adalah beberapa member File Class : File.tujuan).Exists(namafile). atau suatu TCP/IP socket. The file is compressed. Membaca dalam hal ini adalah mentransfer data dari suatu stream ke dalam suatu struktur data. untuk menggunakan File Class. Pengolahan file stream pada Visual Basic Sebagaimana bahasa pemrograman modern lainnya yang memperlakukan input/output data byte sebagai Streams. seperti suatu file. Stream merupakan abstract base class untuk semua stream.

The file is a sparse file.GetLastAccessTime(namafile). Encrypted The file or directory is encrypted. INDOPROG 62 . 16384 Hidden 2 Normal The file is normal and has no other attributes set.GetLastWriteTime(namafile).GetCreationTime(namafile). mendapatkan tanggal dan waktu pembuatan file File. this means that encryption is the default for newly created files and directories. 4096 ReadOnly The file is read-only. The file is a system file. selanjutnya kita dapat menggunakan metoda Write maupun WriteLine pada streamwriter untuk melakukan penulisan ke file. File. A temporary file should be deleted by the application as soon as it is no longer needed. The data of the file is not immediately available. this means that all data in the file is encrypted. The file will not be indexed by the operating system's content indexing service.Bahasa pemrograman VB.SetLastWriteTime(namafile. membuat file baru sebagai streamwriter.SetCreationTime(namafile. which is a block of user-defined 1024 data associated with a file or a directory.SetLastAccessTime(namafile.CreateText(namafile).T. The file is part of the operating system or 4 is used exclusively by the operating system. and thus is not included in an ordinary directory listing.NET Hendra. waktu) File. For a file. For a directory. 8192 NotContentIndexed Offline The file is offline. The file is hidden. waktu) File. mendapatkan tanggal dan waktu file terakhir kali diakses. SparseFile System Temporary File. The file is temporary. This attribute is 128 valid only if used alone. Sparse files are typically large files whose 512 data are mostly zeros. S. 1 ReparsePoint The file contains a reparse point. mendapatkan tanggal dan waktu file terakhir kali ditulisi. File. File systems attempt to keep all of the data 256 in memory for quicker access rather than flushing the data back to mass storage.waktu) Pengolahan Text File Pengolahan text file secara Stream dapat menggunakan StreamWriter dan StreamReader dengan metode berikut ini : File.

WriteLine("Oleh : Hendra Soewarno") sw. S.txt") sw.OpenText("c:\belajar.OpenText(namafile).Close() Dim sr As StreamReader = File.AppendText("C:\belajar.T.NET Hendra. kemudian untuk memeriksa keberadaan data untuk dibaca dapat menggunalan fungsi Peek File.CreateText("c:\belajar.txt") Do While sr. ReadLine.OpenWrite(namafile).WriteLine(sr.IO Public Module ModTextFile Sub Main() Dim sw As StreamWriter = File.Flush() sw.txt") Do While sr. WriteByte pada filestream untuk melakukan penulisan ke file. File. anda dapat menggunakan metoda Read. membuka file yang telah ada sebagai streamreader.OpenRead(namafile). anda dapat menggunakan metode Write.ReadLine()) Loop sr. Contoh : Option Explicit On Imports System Imports System.Close() sw = File.Peek() >= 0 Console.WriteLine("Buku Belajar Vb.Peek() >= 0 Console.ReadLine()) Loop sr. dan selanjutnya kita dapat menggunakan metoda Read.Bahasa pemrograman VB. membuka file yang telah ada untuk streamwrite.Close() End Sub End Module Pengolahan File Binary Pengolahan BinaryFile secara Stream dapat menggunakan FileStream dengan metode berikut ini : File.net") sw. INDOPROG 63 .WriteLine(sr. membuka file yang telah ada sebagai filestream. File.Create(namafile). File.txt") sw.OpenText("c:\belajar. membuka file yang telah ada sebagai filestream. ReadByte pada filestream untuk melakukan pembacaan dari file.Close() sr = File.AppendText(namafile). membuat file baru sebagai filestream.Flush() sw.

Close Contoh Program simulasi perintah copy pada dos: Option Explicit On Imports System Imports System.Write(buffer. Fs. Fungsi read akan mengembalikan jumlah byte yang berhasil dibaca (jumlah byte terbaca dapat lebih kecil dari count apabila EOF telah dicapai).Length()) FST.Create(CmdArgs(1)) Dim Terbaca As Integer = 0 Dim I As Integer Do Terbaca = FSS.IO Public Module ModFS Sub Main(ByVal CmdArgs() As String) Dim Buffer(511) As Byte If CmdArgs. dan count adalah jumlah byte yang ingin ditulis.index. S.Read(Buffer.0. Menulis ke FileStream Kemudian dapat digunakan metoda write untuk menulis data terhadap FileStream Tertulis = Fs.Read(buffer.0. Membaca dari FileStream Kita dapat menggunakan metoda read untuk membaca data dari FileStream Terbaca = Fs.T.index. kemudian index adalah posisi index pada array.OpenRead(CmdArgs(0)) Dim FST As FileStream = File.Exists(CmdArgs(0)) Then Dim FSS As FileStream = File.Length < 2 Then Console.Terbaca) Loop Until Terbaca < 512 INDOPROG 64 .count) Menutup FileStream Anda dapat menggunakan metoda Close untuk menutup FileStream yang terbuka.Bahasa pemrograman VB.Write(Buffer.NET Hendra.Buffer.WriteLine("Pemakaian : duplikat <fileasal> <filetujuan>") End End If If File.count) dimana buffer adalah array dari byte atau karakter.

WriteLine("File asal tidak ditemukan !") End If End Sub End Module Pembukaan File Binary dengan FileStream Constructor Selain dengan menggunakan File. dan FileOpenWrite.Bahasa pemrograman VB.T. S.Close() FST.Create.Write) Membuat file baru atau file lama akan ditimpa.NET Hendra. FileShare) Dimana Enumeration member untuk FileMode adalah sebagai berikut : Append Create CreateNew Open OpenOrCreate Truncate Membuka atau membuat filebaru.IO INDOPROG 65 . FileAccess.Close() Else Console. kita dapat juga membuka FileStream dengan menggunakan constructor : Syntax : FileStream Constructor(nama file. FSS. FileMode. FileOpenRead. Membuat file baru dan akan menyebabkan exception kalau file telah ada Membuka file dan akan menyebabkan exception kalau file belum ada Membuka atau membuat file baru jika belum ada Membuka file dan mengosongkan isi file tersebut Dan Enumeration member untuk FileAccess adalah sebagai berikut : Read ReadWrite Write Akses membaca data dari file Akses membaca dan menulis data ke file Akses menulis file Dan Enumeration member untuk FileShare adalah sebagai berikut : None Read ReadWrite Write Tidak memungkinkan pembukaan file oleh proses lain (Single User) Multiuser dengan pembatasan proses lain hanya dapat hak membaca Multiuser Multiuser dengan pembatasan proses lain hanya dapat hak menulis Contoh Program simulasi perintah copy pada dos dengan constructor FileStream: Option Explicit On Imports System Imports System. dan menempatkan posisi file pointer pada EOF (harus disertai dengan FileAccess.

Buffer.Semester As Single Public ReadOnly Property RataRata() As Single INDOPROG 66 .Create. misalnya kita ingin menyimpan data hasil ujian mahasiswa sebagai berikut ini : Nim Nama Tugas Mid Semester Dimana dapat ditulis sebagai struktur berikut ini : Structure Ujian <VBFixedString(10)> Public Nim As String <VBFixedString(30)> Public Nama As String Public Tugas.Bahasa pemrograman VB.Length()) FST.WriteLine("File asal tidak ditemukan !") End If End Sub End Module Pengolahan Random File Secara Stream. _ FileAccess.Read) Dim FST As FileStream = new FileStream(CmdArgs(1). S.0.0.Exists(CmdArgs(0)) Then Dim FSS As FileStream = new FileStream(CmdArgs(0). _ FileAccess.NET Public Module ModDup Sub Main(ByVal CmdArgs() As String) Dim Buffer(511) As Byte Hendra. _ FileMode.WriteLine("Pemakaian : duplikasi <fileasal> <filetujuan>") End End If If File.Length < 2 Then Console.T. Visual Basic tidak menyediakan metoda khusus untuk pengolahan random file untuk penyimpan data Structure.Close() Else Console.Read(Buffer.Open.Write(Buffer.Terbaca) Loop Until Terbaca < 512 FSS. If CmdArgs.Write) Dim Terbaca As Integer = 0 Do Terbaca = FSS.Mid.Close() FST. _ FileMode.

Contoh : Fs.Seek((10-1)*Len(Record)) INDOPROG 'Pindah ke posisi record 1 'Pindah ke posisi record 10 67 .Seek((1-1)*Len(Record)) Fs. kita dapat menggunakan formula berikut untuk menghitung offset pada stream : Offset = (recno – 1) * ukuran tiap record Contoh : Fs. Fs.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. Dan data tersebut diatas ingin kita simpan ke file.SeekOrigin.Seek(0. S. dan end) pada stream.SeekOrigin.Length()/Len(Record) Memindahkan posisi stream pointer Sesuai dengan istilah random file.NET Get Return (Tugas+Mid+Semester)/3 End Get End Property End Structure Hendra. tentu saja harus memiliki kemampuan untuk mengakses (membaca/menulis) ke record tertentu secara langsung.Current) Fs. kita dapat menggunakan ukuran FileStream dibagi dengan ukuran tiap record. current.Bahasa pemrograman VB.Seek(10.T.Seek(-10.SeekOrigin. Mendapatkan jumlah Record dalam file Untuk mendapatkan jumlah record. untuk keperluan tersebut kita dapat memindahkan posisi stream dengan perintah Seek. origin) dimana offset adalah posisi (dalam ukuran byte) yang relatif terhadap SeekOrigin (begin.Begin) Fs. Dim Record As Ujian JlhRec = Fs.Seek(offset.

WriteLine(Fs.Formatters.Mid. karena perintah Read dan Write yang tersedia pada FileStream membutuhkan struktur data array byte. maka kita perlu menambahkan <Serializble> pada saat deklarasi structure tersebut.Binary Public Module ModStruct <Serializable> Structure Ujian <VBFixedString(10)> Public Nim As String <VBFixedString(30)> Public Nama As String Public Tugas.VisualBasic Imports System. kita dapat menggunakan metoda Serialize pada BinaryFormatter.Semester As Single Public ReadOnly Property RataRata() As Single INDOPROG 68 .T. dan untuk membaca kita dapat menggunakan metoda DeSerialize. S.NET Hendra. Mendapatkan posisi Stream pointer Untuk mendapatkan posisi Stream dapat digunakan property Position Contoh : Console.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.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.Runtime.Mid.IO Imports Microsoft. Contoh : Option Explicit On Imports System Imports System. Adapun BinaryFormatter berfungsi melakukan serialize dan deserialize terhadap objek menjadi format binary. Contoh : <Serializable> Structure Ujian <VBFixedString(10)> Public Nim As String <VBFixedString(30)> Public Nama As String Public Tugas. Supaya suatu Structure dapat di serialize/deserialize.Serialization.Bahasa pemrograman VB.

Buatlah program yang dapat menyimpan data ujian mahasiswa berdasarkan input dari pemakai dalam bentuk record.Bahasa pemrograman VB.Nim = "234" Fm.Nim) Record = Fm.deserialize(Fs) 'Membaca record Console.Begin) 'Pindah stream ke record 1 Record = Fm. 5.Nim) Fs.WriteLine(Record. S. Buatlah program yang dapat mengkonversi semua huruf dalam text file ke huruf besar.Close() End Sub End Module Latihan : 1.Record) 'Menulis record ke FileStream Record.NET Get Return (Tugas+Mid+Semester)/3 End Get End Property End Structure Dim Dim Dim Dim Jd As Integer = 0 Record As Ujian Ukuran As Integer = Len(Record) Fm As New BinaryFormatter Hendra. 4.serialize(Fs. Sub Main() Dim Fs As FileStream = new FileStream("c:\ujian. 2.deserialize(Fs) 'Membaca record Console.None) Record.serialize(Fs. 3.VisualBasic Public Module ModFS Sub Main(ByVal CmdArgs() As String) INDOPROG 69 . Buatlah program yang dapat membaca record dari file yang sudah dibuat pada soal nomor 4.Nim = "123" Fm.Seek(0.OpenOrCreate.WriteLine(Record. FileAccess.ReadWrite.SeekOrigin. Buatlah program yang dapat menghitung jumlah baris dan kata yang terdapat pada suatu text file. Kembangkan program untuk melakukan enkripsi/dekripsi terhadap fileasal dan menghasilkan filetujuan yang sudah tersandi dengan suatu kata kunci (dengan menggunakan filestream). FileShare. Jawaban : Option Explicit On Imports System Imports System.dat".FileMode.Record) 'Menulis record ke FileStream Fs. dan mencetak kembali dalam bentuk laporan.T.IO Imports Microsoft.

NET Dim Buffer(511) As Byte Hendra. If CmdArgs.Bahasa pemrograman VB.Length()) For I = 0 to Terbaca-1 Buffer(I) = Buffer(I) XOR Asc(Kalimat.Read(Buffer.Close() FST.Write("Kata Kunci :") Dim KataKunci As String = Console.Close() Else Console.Write(Buffer.Open.Write) Dim Terbaca As Integer = 0 Dim I As Integer Do Terbaca = FSS. _ FileMode. _ FileAccess. _ FileMode.Length() < 512 Kalimat = Kalimat + KataKunci Loop Dim FSS As FileStream = new FileStream(CmdArgs(0).0.T.Buffer.Terbaca) Loop Until Terbaca < 512 FSS.WriteLine("File asal tidak ditemukan !") End If End Sub End Module INDOPROG 70 .0.Chars(I)) Next I FST. S.ReadLine() Dim Kalimat As String = KataKunci Do While Kalimat.Length < 2 Then Console.Create.Exists(CmdArgs(0)) Then Console.WriteLine("Pemakaian : en <fileasal> <filetujuan>") End End If If File. _ FileAccess.Read) Dim FST As FileStream = new FileStream(CmdArgs(1).

IO Public Module ModFS Sub Main(ByVal CmdArgs() As String) Dim Buffer(511) As Byte If CmdArgs. adapun tata penulisannya adalah sebagai berikut :.. Try [ tryStatements ] [ Catch [ exception [ As type ] ] [ When expression ] [ catchStatements ] ] [ Exit Try ] .Length < 2 Then Console.Length()) FST.... S..Terbaca) Loop Until Terbaca < 512 INDOPROG 71 . [ Finally [ finallyStatements ] ] End Try Contoh : Option Explicit On Imports System Imports System.0.Buffer.Finally Statements Try…Catch…Finally merupakan cara baru penanganan error di Visual Basic pada saat runtime.Create(CmdArgs(1)) Dim Terbaca As Integer = 0 Dim I As Integer Do Terbaca = FSS.Write(Buffer.Bahasa pemrograman VB.NET Hendra.Read(Buffer.0.Catch.WriteLine("Gagal buka file " + CmdArgs(0)) End End Try Dim FST As FileStream = File.. Try.OpenRead(CmdArgs(0)) Catch ex As Exception Console.T.WriteLine("Pemakaian : duplikat <fileasal> <filetujuan>") End End If Dim FSS As FileStream Try FSS = File.

Bahasa pemrograman VB. S.NET Hendra.Close() End Sub End Module INDOPROG 72 .T.Close() FST. FSS.

Displays number with thousand separator. Integer.T. Displays number multiplied by 100 with a percent sign (%) appended immediately to the right. G. otherwise. Displays number as a string that contains the value of the number in Hexadecimal (base 16) format. Long) only. Displays number with thousand separator. Integer. providing six significant digits. Uses standard scientific notation.Bahasa pemrograman VB. or e D.NET Hendra. Lampiran 1 Predefined Numeric Formats (Format Function) Format name General Number. or g Currency. Displays number with thousandths separator multiplied by 100 with a percent sign (%) appended to the right and separated by a single space. This option is supported for integral types (Byte. Displays number as a string that contains the value of the number in Decimal (base 10) format. if appropriate. S. Displays at least one digit to the left and two digits to the right of the decimal separator. or d X. or c Description Displays number with no thousand separator. N. or f Standard. displays Yes. or x Yes/No INDOPROG 73 . always displays two digits to the right of the decimal separator. or n Percent P. providing two significant digits. Short. Displays No if number is 0. C. F. Output is based on system locale settings. display two digits to the right of the decimal separator. This option is supported for integral types (Byte. Short. or p Scientific E. at least one digit to the left and two digits to the right of the decimal separator. Fixed. Uses standard scientific notation. Long) only. always displays two digits to the right of the decimal separator.

otherwise. This symbol works like the 0 digit placeholder. To display a leading zero displayed with fractional numbers. In some locales. use zero as the first digit placeholder to the left of the decimal separator. rounds the number to as many decimal places as there are zeros. Displays a digit or nothing. Multiplies the expression by 100.NET Hendra. The decimal placeholder determines how many digits are displayed to the left and right of the decimal separator. 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 actual character used as a decimal placeholder in the formatted output depends on the number format recognized by your system. If the expression has a digit in the position where the # character appears in the format string.) (%) INDOPROG 74 . displays a zero in that position. 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. displays it. otherwise.Bahasa pemrograman VB. 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. S. True/False On/Off Displays False if number is 0. Displays a digit or a zero. Percent placeholder. display it. If the format expression contains only # characters to the left of this symbol. otherwise. otherwise. If the number has fewer digits than there are zeros (on either side of the decimal) in the format expression. numbers smaller than 1 begin with a decimal separator. 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. displays nothing in that position. User-Defined Numeric Formats (Format Function) Character Description None Displays the number with no formatting. displays the extra digits without modification. displays On. The percent (#) (. Decimal placeholder. displays leading or trailing zeros. (0) Digit placeholder. a comma is used as the decimal separator. Digit placeholder. Thus. The formatted string will appear in the format correct for the locale. Displays Off if number is 0. displays True. If the expression has a digit in the position where the zero appears in the format string.T.

The actual character used as the date separator in formatted output is determined by your system settings. e-.000 but greater or equal to 500 are displayed as 1. Standard use of the thousand separator is specified if the format contains a thousand separator surrounded by digit placeholders (0 or #). Two adjacent thousand separators in this position scale by a factor of 1 million. The number of digit placeholders to the left determines the number of digits in the exponent. The actual character used as the time separator in formatted output is determined by your system settings. The actual character used as the thousand separator in the formatted output depends on the Number Format recognized by your system. the number is displayed in scientific format and E or e is inserted between the number and its exponent." For example.NET Hendra.T.000. If the format expression contains at least one digit placeholder (0 or #) to the left of E-. month. In some locales. Numbers smaller than 1. The thousand separator separates thousands from hundreds within a number that has four or more places to the left of the decimal 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. S. and an additional factor of 1. (:) Time separator. -+$() Literal characters.or e. 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.Bahasa pemrograman VB. other characters may be used to represent the date separator. a period is used as a thousand separator. and numbers smaller than 500 are displayed as 0. The formatted string will appear in the format correct for the locale.. The date separator separates the day.) character (%) is inserted in the position where it appears in the format string.000. (/) Date separator. The time separator separates hours. and year when date values are formatted. Use E.000 for each additional separator. rounding as needed. or e+. and seconds when time values are formatted. In some locales. you can use the format string "##0. E+.e+) Scientific format. other characters may be used to represent the time separator.E+ e. Use E+ or e+ to place a minus sign next to negative exponents and a plus sign next to positive exponents. (. Thus. To display a character other than one of those listed.to place a minus sign next to negative exponents." to represent 100 million as 100. 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. These characters are displayed exactly as typed in the format string. Thousand separator. In some locales. minutes. You must also include digit placeholders to the right of this symbol to get correct formatting. (E. INDOPROG 75 .

/. 0. %. (\) precede it with a backslash (\) or enclose it in double quotation marks (" "). comma. m. Examples of characters that can't be displayed as literal characters are the date-formatting and time-formatting characters (a.50 1 $1 $0. S.S. p. and :). w. e.00) -500% -500.00% 5.Bahasa pemrograman VB. display a date and INDOPROG 76 .00% 0.00 -5 ($5) ($5.00.50 50% 50.5 1 0. d.##0 $#. To display a character that has special meaning as a literal character. s. For real numbers. The backslash itself isn't displayed.($#. and the string-formatting characters (@.) The first column contains the format strings for the Style argument of the Format function. (These examples all assume that your system's locale setting is English-U.00) 0% 0. <. the other columns contain the resulting output if the formatted data has the value given in the column headings. t.00E+00 0. E. Displays the string inside the double quotation marks (" "). or Displays a date and/or time. n.00E+00 5.00E+00 -5.00E-01 5.NET Hendra.00 #. To include a string in the style argument from within code.##0.00E-01 Predefined Date/Time Formats (Format Function) Format Name Description General Date.##0) $#.5" formatted as -5 -5 -5.00E-00 5 5 5.00 5 $5 $5. ("ABC") Example The following table contains some sample format expressions for numbers. Using a backslash is the same as enclosing the next character in double quotation marks. you must use Chr(34) to enclose the text (34 is the character code for a quotation mark (")). Displays the next character in the format string. Format (Style) Zero-length string ("") 0 0. use two backslashes (\\).##0. the numeric-formatting characters (#.00% -5. precede it with a backslash (\). h. &.T. q.00E00 0.00% 5. and period). To display a backslash.##0.00E00 "5" formatted as "-5" formatted as "0. c. ($#.00 500% 500. >. and !). y.

for example. Displays a time using the 24-hour format. Displays the long date and long time according to your locale's format. Displays a time using your locale's long time format. If there is no integer part. (/) Date separator. and year when date values are formatted. The actual character used as the time separator in formatted output is determined by your system's LocaleID value.If there is no fractional part. display only a date. includes hours. Formats the date and time as a GMT sortable index. month. Displays the short date and short time according to your locale's format. or T Medium Time Short Time. for example. The time separator separates hours.NET Hendra. In some locales. (%) Used to indicate that the following character should be read as a singleletter format without regard to any trailing letters. other characters may be used to represent the date separator. display time only. y time. Displays a date according to your locale's long date format. and seconds when time values are formatted. Displays the long date and short time according to your locale's format. 4/3/93 05:34 PM. or D Medium Date Short Date.T. G Long Date. for example. 05:34 PM. S. 17:45. Formats the date and time with the long date and long time as GMT. The actual character used as the date separator in formatted output is determined by your locale.Bahasa pemrograman VB. Formats the date and time as Greenwich Mean Time (GMT) Formats the date and time as a sortable index. User-Defined Date/Time Formats (Format Function) Character Description (:) Time separator. Displays a date using the medium date format appropriate for the language version of the host application. other characters may be used to represent the time separator. Displays a date using your locale's short date format. seconds. Also used to indicate INDOPROG 77 . 4/3/93. r S U U Y. minutes. Displays time in 12-hour format using hours and minutes and the AM/PM designator. The date separator separates the day. minutes. Displays the month and the day of a date. or d Long Time. m R. Date display is determined by your system's LocaleID value. for example. In some locales. Formats the date as the year and month. or t F F G M.

Displays fractions of seconds. 1). Use %s if this is the only character in your user-defined numeric format. Displays the month as a number without a leading zero (for example. 12:15:05). Displays the minute as a number without leading zeros (for example. Displays the day as a number with a leading zero (for example. 01/12/01). Displays the period/era string (for example. 12:15:5).D.T. Use %H if this is the only character in your user-defined numeric format.M. Use %h if this is the only character in your user-defined numeric format. Use %d if this is the only character in your user-defined numeric format. 12:01:15). 1:15:15 PM). See below for further details Displays the day as a number without a leading zero (for example. Use %M if this is the only character in your user-defined numeric format. January is represented as 1). Displays the minute as a number with leading zeros (for example. Displays the day as an abbreviation (for example. S. 01:15:15 PM). Displays the second as a number without leading zeros (for example. Use %f if this is the only character in your user-defined numeric format. Use %t if this is the only character in your user-defined numeric format. 12:1:15). displays an uppercase P for any hour between noon and 11:59 P.Bahasa pemrograman VB. INDOPROG 78 . Displays the hour as a number with leading zeros using the 12-hour clock (for example. 01). d dd ddd dddd M MM MMM MMMM gg h hh H HH m mm s ss F T that a single-letter format is read as a user-defined format. Jan). Sun). Displays the month as a number with a leading zero (for example. Sunday).NET Hendra. 01:15:15).) Displays the hour as a number without leading zeros using the 12-hour clock (for example. January). A. Displays the day as a full name (for example. Displays the month as an abbreviation (for example. whereas ffff will display ten-thousandths of seconds. 1:15:15). Displays the second as a number with leading zeros (for example. Displays the hour as a number without leading zeros using the 24-hour clock (for example. Displays the month as a full month name (for example. Use %m if this is the only character in your user-defined numeric format. Uses the 12-hour clock and displays an uppercase A for any hour before noon. Displays the hour as a number with leading zeros using the 24-hour clock (for example. You may use up to seven f symbols in your user-defined format. For example ff will display hundredths of seconds.

Displays the year in four digit numeric format. Use %z if this is the only character in your user-defined numeric format. 8:50 PM. Displays the timezone offset without a leading zero (for example.Bahasa pemrograman VB.NET Hendra. -08:00) The following are examples of user-defined date and time formats for December 7. if applicable. Displays the timezone offset with a leading zero (for example. 35 seconds: 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 INDOPROG 79 . Use %y if this is the only character in your user-defined numeric format. -08) Displays the full timezone offset (for example. Displays the year in four digit numeric format. displays an uppercase PM with any hour between noon and 11:59 P. S. 1958. tt y yy yyy yyyy z zz zzz Example Uses the 12-hour clock and displays an uppercase AM with any hour before noon. -8).M.T. Displays the year number (0-9) without leading zeros. Displays the year in two-digit numeric format with a leading zero.

Microsoft Corporation INDOPROG 80 . S.T. Daftar Pustaka .NET Framework SDK documentation.NET Hendra.Bahasa pemrograman VB.