Pemrogaman Visual Basic.NET (Modul 1)

9,684 views
9,527 views

Published on

Published in: Education
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,684
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
819
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Pemrogaman Visual Basic.NET (Modul 1)

  1. 1. Bahasa pemrograman VB.NET Hendra, S.T. Bahasa Pemrograman VB.Net Oleh : Hendra, ST. Buku ini membahas tentang bahasa pemrograman Visual Basic .Net, dan ditujukan kepada siapa saja yang serius untuk mempelajari bahasa pemrograman VB.Net. Untuk memfokuskan pada bahasa VB.Net, buku ini akan menggunakan pendekatan program Console, sehingga fokus pembelajaran lebih terfokus kepada bahasa itu sendiri. Untuk mempelajari buku ini anda tidak perlu menginstalasi Visual Studio .Net, tetapi anda cukup menginstalasi .Net Framework yang dapat didownload secara gratis dari website Microsoft.Semua contoh dan latihan dibuku ini dapat dikompilasi langsung dari Dos prompt dengan menggunakan kompiler Visual Basic yang langsung tersedia setelah anda menginstalasi .Net Framework.INDOPROG 1
  2. 2. Bahasa pemrograman VB.NET Hendra, S.T.Dasar program Visual BasicProgram VB.NET anda yang pertama.Sebagaimana tradisi dari proses belajar pemrograman komputer adalah membuat sebuahprogram Hello World yang memiliki struktur yang paling sederhana sehingga kita denganmudah dapat melihat struktur dasar program dari bahasa pemrograman tersebut.Module Hello Sub Main() System.Console.WriteLine("Hello World !") End SubEnd ModuleKetiklah program diatas dengan text editor (notepad pada Windows ataupun edit padaDos Prompt), dan kemudian simpan dengan nama hello.vb (anda wajib menyimpannyadengan ekstension .vb).Proses KompilasiAgar program yang kita buat diatas dapat dijalankan oleh komputer, maka diperlukansuatu kompiler untuk menterjemahkan perintah-perintah yang telah kita buat menjadiinstruksi yang dapat dikenali oleh sistem komputer.Kompiler Visual Basic dapat diperoleh dengan melakukan instalasi Microsoft .NETframework sdk v1.1.Sesaat setelah instalasi .NET framework, maka kompiler VB telah tersedia padakomputer anda, dan proses kompilasi dapat dilakukan dengan : 1. Mengatur path environment pada Command Prompt path=%path%;c:windowsmicrosoft.netframeworkv1.1.4322 2. Selanjutnya anda dapat mengkompilasi program anda dengan perintah : Vbc <nama file>.vb Pada saat kompilasi, anda wajib menulis lengkap nama file dan ekstensionContoh :vbc hello.vbMicrosoft (R) Visual Basic .NET Compiler version 7.10.3052.4INDOPROG 2
  3. 3. Bahasa pemrograman VB.NET Hendra, S.T.for Microsoft (R) .NET Framework version 1.1.4322.573Copyright (C) Microsoft Corporation 1987-2002. All rights reserved.Jika proses kompilasi tidak menampilkan adanya kesalahan, maka akan terbentuk suatuhello.exe yang dapat dijalankan langsung pada Command Prompt.Sesuatu hal yang perlu anda pahami adalah file hello.exe hanya dapat dijalankan padakomputer yang sudah terinstalasi Microsoft .NET framework.Kemudian suatu hal yang perlu anda ketahui adalah file hello.exe bukanlah berisi binariyang merupakan kode mesin, melainkan merupakan binari yang berisi IntermediateLanguage (IL) yang pada saat dijalankan akan dikompilasi menjadi bahasa mesin olehkompiler Just In Time (JIT) yang terdapat pada Common Language Runtime (CLR) yangmerupakan salah satu komponen dari .NET framework.Struktur program Visual BasicSebagai bahasa yang telah dirancang kembali dari awal, suatu program Visual Basicmemiliki urutan berikut yang merupakan struktur dari program: 1. Option statements 2. Imports statements 3. Main procedureOption StatementsPerintah Option akan menentukan aturan dasar penanganan kode dalam program padasaat kompilasi.Option ExplicitOption Explicit On/Off, menentukan apakah variabel-varibel yang digunakan dalamprogram harus dideklarasikan terlebih dahulu atau tidak (defaultnya adalah On).Contoh :Option Explicit OffModule Modmain Sub Main() a = 100000 End SubEnd ModuleYang jika di kompilasi tidak menyebabkan kesalahan walaupun variabel a tidak pernahdideklarasikan.Option Explicit OnINDOPROG 3
  4. 4. Bahasa pemrograman VB.NET Hendra, S.T.Module Modmain Sub Main() a = 100000 End SubEnd ModuleYang jika dikompilasi akan menyebabkan kesalahan sebagai berikut :Microsoft (R) Visual Basic .NET Compiler version 7.10.3052.4for Microsoft (R) .NET Framework version 1.1.4322.573Copyright (C) Microsoft Corporation 1987-2002. All rights reserved.D:BELAJA~1coba.vb(5) : error BC30451: Name a is not declared. a = 100000Agar terhindar dari kesalahan maka variabel a harus dideklarasikan terlebih dahulu sesuaidengan setting Option Explicit On.Option Explicit OnModule Modmain Sub Main() Dim a As Integer a = 100000 End SubEnd ModuleOption StrictOption Strict On/Off, menentukan apakah kompiler memperbolehkan konversi nilaiimplicit yang berpotensi menyebabkan kehilangan data (default adalah Off), misalnyakita memasukan nilai dari suatu variabel dengan tipe data yang lebih lebar ke variabeldengan tipe data yang lebih sempit (lihat pada kolom nominal storage allocation padatabel tipe data).Contoh :Option Explicit OnOption Strict OnModule Hello Sub Main() Dim a As Integer Dim b As Short a = 100000 b = a End SubEnd ModuleINDOPROG 4
  5. 5. Bahasa pemrograman VB.NET Hendra, S.T.Yang jika dikompilasi akan menyebabkan pesan kesalahan berikut ini karena variabel byang bertipe short (16 bit), tidak dimungkinkan menampung nilai dari tipe integer (32bit), yang memiliki potensi kehilangan data pada saat runtime, sehingga pemakaianOption Strict On akan menampilkan pesan kesalahan pada saat kompilasi.Microsoft (R) Visual Basic .NET Compiler version 7.10.3052.4for Microsoft (R) .NET Framework version 1.1.4322.573Copyright (C) Microsoft Corporation 1987-2002. All rights reserved.D:BELAJA~1coba.vb(8) : error BC30512: Option Strict On disallowsimplicit conversions from Integer to Short. b = a ~Sebaliknya jika digunakan Option Strict Off:Option Explicit OnOption Strict OffModule Hello Sub Main() Dim a As Integer Dim b As Short a = 100000 b = a End SubEnd ModuleMaka pada saat kompilasi tidak terjadi kesalahan, tetapi pada saat runtime akanmenimbulkan runtime error (System.OverflowException), karena variabel a yang bertipeshort hanya memiliki jangkauan daya tampung dari -32767 s/d 32768.INDOPROG 5
  6. 6. Bahasa pemrograman VB.NET Hendra, S.T.Option ComparePerintah Option Compare Binary/Text akan menentukan bagaimana bertipe data stringakan dibandingkan antara satu dengan lainnya (default adalah Binary).Adapun aturan perbandingan pada masing-masing setting adalah sebagai berikut : • Pada Option Compare Binary : A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê <ø • Pada Option Compare Text : (A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z)Contoh :Option Compare BinaryModule Hello Sub Main() Dim a,b As String a = "ABC" b = "abc" System.Console.WriteLine(a = b) False End SubEnd ModuleYang jika dijalankan akan menghasilkan False, karena perbandingan data berdasarkannilai biner dari masing-masing data string (lihat aturan untuk Binary).INDOPROG 6
  7. 7. Bahasa pemrograman VB.NET Hendra, S.T.Tetapi jika :Option Compare TextModule Hello Sub Main() Dim a,b As String a = "ABC" b = "abc" System.Console.WriteLine(a = b) True End SubEnd ModuleYang jika dijalankan akan menghasikan True, karena sebagai text-nya "ABC" dianggapsama dengan "abc" tanpa melihat huruf besar atau kecil (lihat aturan untuk Text).Imports StatementsPerintah Imports berfungsi memudahkan pengetikan tanpa harus mengetik nama classdidalam namespace yang di import.Contoh :Module Hello Sub Main() System.Console.WriteLine("Hello World !") End SubEnd ModuleYang setelah adanya Imports System penulisan Console.WriteLine menjadi sebagaiberikut.Imports SystemModule Hello Sub Main() Console.WriteLine("Hello World !") End SubEnd ModuleDalam hal ini kita tidak perlu lagi mengetik System.Console.WriteLine, tapi cukupConsole.WriteLine, karena kita telah melakukan Imports System.Main ProcedureProcedure Main merupakan titik awal dari program anda – merupakan procedure yangpertama kali dieksekusi ketika anda menjalankan kode anda. Jadi apa yang ingin andajalankan pertama kali pada program anda ditempatkan pada procedure main ini. Adaempat cara penulisan Main, yaitu sebagai Sub atau Function yang memiliki parameteratau tidak.INDOPROG 7
  8. 8. Bahasa pemrograman VB.NET Hendra, S.T. • Sub Main() • Sub Main(ByVal CmdArgs() As String) • Function Main() As Integer • Function Main(ByVal CmdArgs() As String) As IntegerBentuk procedure yang paling sering digunakan adalah Sub Main( ) seperti pada contohyang sudah-sudah.Contoh Sub Main dengan parameter :Imports SystemModule Hello Sub Main(ByVal CmdArgs() As String) Dim i As Integer Console.WriteLine("Jumlah Parameter :" & CmdArgs.Length()) For i = 0 to CmdArgs.Length()-1 Console.WriteLine("Parameter :" & i.ToString() & "adalah :"& CmdArgs(i)) Next End SubEnd ModuleYang kalau dieksekusi denganCoba Hello WorldJumlah Parameter :2Parameter :0 adalah :HelloParameter :1 adalah :WorldDalam hal ini kita menjalankan program Coba.exe pada command prompt denganmengirim dua parameter yaitu kata Hello dan World yang dianggap sebagai array bertipestring.Catatan :Index Array dimulai dari 0, sehingga pada contoh diatas looping dimulai dari 0 s/dCmdArgs.Length()-1.Program yang menggunakan parameter jarang digunakan pada lingkungan Windows, dansering digunakan pada program di lingkungan Console.Pemberian komentarJika kita hari ini membuat program, dan pada saat yang sama semua logika serta rumusandapat kita ingat dengan baik, tetapi bagaimana kalau kita membaca kembali programyang pernah kita buat untuk 3 bulan yang lalu, apakah anda masih mengingatnya ?Bagaimana kita membuat program kita mudah di pahami kembali ? Tentu saja denganmemberikan keterangan secukupnya.INDOPROG 8
  9. 9. Bahasa pemrograman VB.NET Hendra, S.T.Pada Visual Basic pembuatan keterangan dapat menggunakan simbol (petik tunggal)maupun keyword REM.Contoh : Ini adalah keteranganREM Ini adalah keteranganType DataSebagaimana bahasa pemrograman lainnya, Visual Basic menyediakan berbagai typedata yang dapat digunakan oleh pemrogram sesuai dengan konteks pemakaiannya. Typedata pada Visual Basic dibagi atas dua kelompok besar yaitu Value Type (Tipe dataprimitif) dan Reference (String, Array dan Objek).Berikut ini adalah tabel tipe data pada VB disertai dengan alokasi storage yangdibutuhkan serta jangkauan nilai yang dapat ditampung oleh masing-masing tipe.Visual Basic Common language Nominal Value range type runtime type storage structure allocationBoolean System.Boolean 2 bytes True or False.Byte System.Byte 1 byte 0 through 255 (unsigned).Char System.Char 2 bytes 0 through 65535 (unsigned).Date System.DateTime 8 bytes 0:00:00 on January 1, 0001 through 11:59:59 PM on December 31, 9999.Decimal System.Decimal 16 bytes 0 through +/- 79,228,162,514,264,337,593,543,950,335 with no decimal point; 0 through +/- 7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest nonzero number is +/-0.0000000000000000000000000001 (+/- 1E-28).Double System.Double 8 bytes -1.79769313486231570E+308 through(double- -4.94065645841246544E-324 for negativeprecision values; 4.94065645841246544E-324 throughfloating-point) 1.79769313486231570E+308 for positive values.Integer System.Int32 4 bytes -2,147,483,648 through 2,147,483,647.Long System.Int64 8 bytes -9,223,372,036,854,775,808 through(long integer) 9,223,372,036,854,775,807.Object System.Object (class) 4 bytes Any type can be stored in a variable of type Object.Short System.Int16 2 bytes -32,768 through 32,767.Single System.Single 4 bytes -3.4028235E+38 through -1.401298E-45 for(single- negative values; 1.401298E-45 throughprecision 3.4028235E+38 for positive values.floating-point)String System.String (class) Depends on 0 to approximately 2 billion Unicode characters.(variable- implementinglength) platformUser- (inherits from Depends on Each member of the structure has a rangeDefined System.ValueType) implementing determined by its data type and independent ofType platform the ranges of the other members.INDOPROG 9
  10. 10. Bahasa pemrograman VB.NET Hendra, S.T.(structure)Walaupun dewasa ini, memori dan media penyimpanan data tidak menjadi masalahseperti pada awal kelahiran komputer, tetapi hendaklah programmer bijaksana dalampemakaian type data berkaitan dengan perfomance yang dihasilkan.Deklarasi VariabelPemrogram yang baik tentu saja menggunakan pendekatan yang terstruktur dalampengembangan program, salah satu ciri dari program yang terstruktur adalahmendeklarasikan semua variabel yang digunakan dalam program.Pada Visual Basic printah Dim digunakan untuk mendeklarasikan variabel danmemberikan nilai awal kepadanya.Contoh :Dim Harga, Jumlah As SingleDim Kuantitas As Integer = 10Dim Lanjutkan As Boolean = TrueDim Keterangan As String = "Visual Studio .NET"Catatan :Pada Visual Basic pemakaian variabel harus dideklarasikan terlebih dahulu, jika tidakanda akan mendapatkan kesalahan kompiler, karena default setting Explicit pada VisualBasic adalah Option Explicit On.Kemudian Jika anda tidak memberikan nilai awal pada suatu variabel padadideklarasikan, maka nilai berikut akan diberikan sebagai nilai awal variabel tersebut : • 0 untuk semua tipe data numerik (termasuk Byte). • Binary 0 untuk Char. • Nothing untuk semua tipe reference (termasuk Object, String, dan semua array). • False untuk Boolean. • 12:00 AM pada 1 Januari 1 untuk Date.Sesuatu hal yang perlu anda perhatikan adalah daya tampung variabel berdasarkan tipeyang ditentukan, jika anda memasukan nilai diluar dari daya tampung variabel, suatukesalahan overflow exception akan terjadi.Konversi TipeKonversi Tipe pada Visual Basic dapat dilakukan secara Implicit maupun Explicit,konversi secara Implicit dilakukan tanpa menggunakan fungsi bantu casting tertentuseperti Cbool, Cbyte, Cchar, Cdate, Cdec, CDbl, Cint, CLng, Cobj, Cshort, CSng, CStr.INDOPROG 10
  11. 11. Bahasa pemrograman VB.NET Hendra, S.T.Contoh :Module Test Sub Main() Dim intValue As Integer = 123 Dim longValue As Long = intValue Console.WriteLine(intValue & " = " & longValue) End SubEnd ModuleSedangkan secara Explicit dilakukan dengan menggunakan fungsi bantu casting.Module Test Sub Main() Dim longValue As Long = 134 Dim intValue As Integer = CInt(longValue) Console.WriteLine(longValue & " = " & intValue) End SubEnd ModulePada konversi secara Implicit, setting Option Strict akan mempengaruhi apakah konversidari tipe yang lebih lebar ke tipe yang lebih sempit (Misalnya dari Integer 32 bit ke Short16 bit) diperbolehkan oleh kompiler atau tidak.Contoh berikut akan melakukan konversi dari Integer 32 bit ke Short 16 bit.Option Strict OnOption Explicit OnImports SystemPublic Module ModKali Sub Main() Dim i, j As Byte Dim a As Integer = 40000 Dim b As Short b = a Console.WriteLine(b) End SubEnd ModuleYang kalau dikompilasi akan menghasilkan error sebagai berikutMicrosoft (R) Visual Basic .NET Compiler version 7.10.3052.4for Microsoft (R) .NET Framework version 1.1.4322.573Copyright (C) Microsoft Corporation 1987-2002. All rights reserved.D:BELAJA~1kali.vb(10) : error BC30512: Option Strict On disallowsINDOPROG 11
  12. 12. Bahasa pemrograman VB.NET Hendra, S.T.implicit conversions from Integer to Short. b = a ~Hal tersebut dapat diperbaiki dengan menggunakan fungsi ToInt16 yang terdapat padaSystem.Convert yang artinya konversi memang dikehendaki oleh programmerContoh :Option Strict OnOption Explicit OnImports SystemPublic Module ModKali Sub Main() Dim i, j As Byte Dim a As Integer = 40000 Dim b As Short b = System.Convert.ToInt16(a) Console.WriteLine(b) End SubEnd ModuleTetapi karena nilai 40000 tidak dapat ditampung oleh type data short, maka akanmenghasilkan error pada saat runtime : System.OverflowException.Konversi data secara Explicit dapat juga memanfaatkan fungsi bantu casting yangterdapat pada Objek System Convert sebagai berikut :Function PurposeToBoolean Converts a value to a Boolean (True or False).ToByte Converts a value to an 8-bit Byte in the range 0 to 255.ToChar Converts a value to a 2-byte Unicode character.ToDateTime Converts a value to a DateTime object.ToDecimal Converts a value to a 12-byte Decimal.ToDouble Converts a value to an 8-byte Double.ToInt16 Converts a value to a 2-byte Short.ToInt32 Converts a value to a 4-byte Integer.ToInt64 Converts a value to an 8-byte Integer.ToSByte Converts a value to an 8-bit signed value in the range –128 to 127.ToSingle Converts a value to a 4-byte Single.ToString Converts a value to its String representation.ToUInt16 Converts a value to a 2-byte unsigned Short in the range 0 to 65,535.ToUInt32 Converts a value to a 4-byte unsigned Integer in the range 0 to 4,294,967,295.ToUInt64 Converts a value to an 8-byte unsigned long Integer in the range 0 to 18,446,744,073,709,551,615.Catatan :Berdasarkan uji coba yang dilakukan fungsi bantu konversi tipe seperti Cint, Cdate,CSng,CDbl, Cdec dan kadang-kadang fungsi bantu konversi memiliki unjuk kerja yanglebih baik seperti yang ditunjukan oleh tabel berikut ini adalah hasil konversi denganInteger.Pars, Convert.ToInt32, dibandingkan dengan CIntINDOPROG 12
  13. 13. Bahasa pemrograman VB.NET Hendra, S.T. String Integer.Parse Convert.ToInt32 Cint"12,500" Error Error 12500"12" 12 12 12"12500" 12500 12500 12500"12500.00" Error Error 12500"$12,500.00" Error Error 12500"$12,500.10" Error Error 12500"&HFF" (VB syntax for the hex value FF) 255 Error ErrorOperatorBerdasarkan pengalaman pemrograman, pemakaian operator tidak dapat dilepaskan daripekerjaan pemrograman, adapun operator pada Visual Basic adalah sebagai berikut :Operator aritmatika : *, /, , ^, Mod, +, dan –Operator relasi : =, <>, <, >, <=, and >=Catatan :Pada tipe data string, prilaku perbandingan sangat dipengaruhi oleh setting dari OptionCompare. (default adalah Option Compare Binary)Pada Option Compare Binary : A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < øPada Option Compare Text : (A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z)Operator logika And, AndAlso, Or, OrElse, and XorCatatan : • Jika operand pertama pada suatu operasi AndAlso adalah False, maka hasil ekspresi tersebut adalah False. Sebaliknya, suatu operasi logika And dilakukan terhadap kedua operand. • Jika operand pertama dari operasi OrElse adalah True, maka hasil ekspresi adalah True. Sebaliknya, suatu operasi logika Or akan dilakukan terhadap kedua operand.Operator pengabungan : &Operator bit shift : << dan >>Contoh :Dim Pattern As Short = 192 Bit pattern is 0000 0000 1100 0000.Dim Result1, Result2, Result3, Result4, Result5 As ShortINDOPROG 13
  14. 14. Bahasa pemrograman VB.NET Hendra, S.T.Result1 = Pattern << 0 Result is 192 (0000 0000 1100 0000).Result2 = Pattern << 4 Result is 3072 (0000 1100 0000 0000).Result3 = Pattern << 9 Result is -32768 (1000 0000 0000 0000).Result4 = Pattern << 17 Result is 384 (0000 0001 1000 0000).Result5 = Pattern << -1 Result is 0 (shifted 15 places to left).Dim Pattern As Short = 2560 Bit pattern is 0000 1010 0000 0000.Dim Result1, Result2, Result3, Result4, Result5 As ShortResult1 = Pattern >> 0 Result is 2560 (0000 1010 0000 0000).Result2 = Pattern >> 4 Result is 160 (0000 0000 1010 0000).Result3 = Pattern >> 10 Result is 2 (0000 0000 0000 0010).Result4 = Pattern >> 18 Result is 640 (0000 0010 1000 0000).Result5 = Pattern >> -1 Result is 0 (shifted 15 places to right).Operator bit shift bekerja pada tingkat bit, yang artinya jika 192 pada tipe data short(desimal/basis sepuluh) maka representasinya dalam bentuk biner adalah 0000 0000 11000000 (16 bit).Kemudian hal lain yang perlu diketahui adalah bit mask untuk masing-masing tipe dataadalah berbeda, berikut ini adalah tabel bitmask :LeftOperand Type SizeMaskByte 7 (&H7)Short 15 (&HF)Integer 31 (&H1F)Long 63 (&H3F)Perhatikan kembali contoh diatasDim Pattern As Short = 2560 Bit pattern is 0000 1010 0000 0000.Perintah shift right 18 untuk tipe Short akan menghasilkan operasi yang sama denganshift right 2 ( hasil operasi 18 And 15 = 2).Result4 = Pattern >> 18 Result is 640 (0000 0010 1000 0000).Operator perbandingan Like, dengan aturan sebagai berikut : • Karakter ? mewakili satu karakter sembarang. • Karakter * mewakili tidak ada karakter atau sekumpulan karakter sembarang. • Karakter # mewakili satu sembarang digit (0–9). • Suatu daftar karakter dalam kurung siku ([ab ]) mewakili salah satu karakter dalam daftar tersebut. • Suatu daftar dari karakter dalam kurung siku dan diawali dengan suatu tanda ! ([!ab ]) mewakili satu karakter yang tidak ada dalam daftar tersebut.Contoh :Dim myCheck As BooleanmyCheck = "F" Like "F" Does "F" match "F"? Returns True.myCheck = "F" Like "f" Does "F" match "f"? Returns False.myCheck = "F" Like "FFF" Does "F" match "FFF"? Returns False.INDOPROG 14
  15. 15. Bahasa pemrograman VB.NET Hendra, S.T.myCheck = "aBBBa" Like "a*a" Does "aBBBa" have a "a" at the beginning, an "a" at the end, and any number of characters in between? Returns True.myCheck = "F" Like "[A-Z]" Does "F" occur in the set of characters from A to Z? Returns True.myCheck = "F" Like "[!A-Z]" Does "F" NOT occur in the set of characters from A to Z? Returns False.myCheck = "a2a" Like "a#a" Does "a2a" begin and end with an "a" and have any single-digit number inbetween? Returns True.myCheck = "aM5b" Like "a[L-P]#[!c-e]" Does "aM5b" fit the following pattern: Begins with "a", has and character from the set L through P, followed byb any single-digit number, and finally contains any character excluded from the character set c through e. Returns True.myCheck = "BAT123khg" Like "B?T*" Does "BAT123khg" fit the following pattern: Begins with "B", followed by any single character, followed by a "T" and finally zero or more characters of any type. Returns TruemyCheck = "CAT123khg" Like "B?T*" Does "CAT123khg" fit the following pattern: Begins with "B", followed by any single character, followed by a "T" and finally zero or more characters of any type. Returns False.Operator assignment : =, ^=, *=, /=, =, +=, -=, <<=, >>=, &=Contoh :Dim a As Integer = 2Dim b As Integer = 3a += b // akan menghasilkan 5 pada variabel a, atau sama dengan a = a+bCatatan :Sesuatu hal yang penting bagi programmer pemula adalah memahami urutan operasi darioperator, pada Visual Basic menggunakan urutan operasi berikut ini :Operator Aritmatika dan PengabunganExponentiation (^)Unary negation (–)Multiplication and division (*, /)Integer division ()Modulus arithmetic (Mod)Addition and subtraction (+, –), string concatenation (+)String concatenation (&)Arithmetic bit shift (<<, >>)Operator PerbandinganAll comparison operators (=, <>, <, <=, >, >=, Like, Is, TypeOf...Is)Operator Logika dan BitwiseNegation (Not)Conjunction (And, AndAlso)Disjunction (Or, OrElse, Xor)INDOPROG 15
  16. 16. Bahasa pemrograman VB.NET Hendra, S.T.Contoh :Dim A, B, C, D, E, F, G As DoubleA = 3.0B = 6.0C = 4.0D = 2.0E = 1.0F = A + B - C / D * E The previous line sets F to 7.0. Because of natural operator precedence, it is exactly equivalent to the following line:F = (A + B) - ((C / D) * E) The following line overrides the natural operator precedence:G = A + (B - C) / (D * E) The previous line sets G to 4.0.Dengan memahami urutan operasi akan sangat membantu untuk menghindari kesalahandalam penulisan rumus yang dapat menyebabkan logika error.Konstanta pada VB.NETPemakaian konstanta sangat membantu dalam pengembangan program yang terstruktur,dengan adanya konstanta, pemeliharaan program menjadi lebih sederhana, dan biasanyakonstanta dideklarasikan pada awal program, sehingga jika terjadi perubahan besaranpada konstanta, kita cukup mengubahnya pada awal program tanpa harus memeriksakoding seperti yang harus dilakukan kalau kita tidak menggunakan fasilitas konstanta.Const GRAVITASI As Single = 9.8Catatan :Sebaiknya konstanta diketik semuanya huruf besar untuk memudahkan pembedaan antaravariabel dengan konstanta, dan penamaan konstanta hendaknya disesuaikan dengankonteks yang diwakili oleh konstanta tersebut.Enumerated pada VB.NETPemakaian enumerated type akan sangat membantu dalam pekerjaan pemrogramansehingga menjadi lebih mudah ditulis, dibaca, dan dimaintain dari pada menggunakantipe data primitif.Public Enum InterfaceColors MistyRose = &HE1E4FF& SlateGray = &H908070& DodgerBlue = &HFF901E& DeepSkyBlue = &HFFBF00& SpringGreen = &H7FFF00& ForestGreen = &H228B22& Goldenrod = &H20A5DA&INDOPROG 16
  17. 17. Bahasa pemrograman VB.NET Hendra, S.T. Firebrick = &H2222B2&End EnumPerintah input Output ConsoleSalah satu bentuk program yang dapat dikembangkan dengan menggunakan Visual Basicadalah program Console. Program Console adalah program yang menggunakan basis tekspada lingkungan Command Prompt (bentuk ini tidak tersedia pada Visual Basic versisebelumnya).Program Console adalah salah satu fasilitas yang sangat memudahkan bagi pemula yangingin mempelajari bahasa Visual Basic dengan baik, karena program Consolemenggunakan perintah I/O yang cukup sederhana dan bersih dari perintah input outputyang rumit sehingga kita dapat lebih terfokus.System.Console.Write(ekspresi)System.Console.WriteLine(ekspresi)Variabel = System.Console.ReadLine()Jika anda melakukan imports namespace system, maka penulisan dapat disingkat menjadiConsole.Write(ekspresi)Console.WriteLine(ekspresi)Variabel = Console.ReadLine()Catatan :Perbedaan antara Write dengan WriteLine adalah pada WriteLine pencetakan akandiakhiri dengan suatu Carriage Return.Format pada WriteLineVisual Basic telah melengkapi berbagai fasilitas format yang sangat berguna untukmelakukan pencetakan data, terutama data type numerik yang kadang-kadang perludiformat sedemikian rupa untuk memudahkan pembacaan.Format pencetakan pada WriteLine dapat menggunakan place holder {x}, dimana xadalah nomor urutan dari parameter berikutnya yang dihitung mulai dari 0 (nol)..Contoh :Console.WriteLine("The number is {0}", 3 + 7)Console.WriteLine("The result of {0} + {1} = {2}", 3, 7, 3+7)Console.WriteLine("See decimals {0, 12:f1}", 0.123456789)Console.WriteLine("See decimals {0, 12:f9}", 0.123456789)Console.WriteLine("The value is {0, 0:000.00}", 0.123456789)Console.WriteLine("The value is {0, 0:###.##}", 1234.56789)INDOPROG 17
  18. 18. Bahasa pemrograman VB.NET Hendra, S.T.Masing-masing akan menghasilkanThe number is 10The result of 3 + 7 = 10See decimal 0.1See decimal 0.123456789The value is 001.23The value is 1234.57Contoh Format String : Format Culture Data type Value OutputC en-US Double 12345.6789 $12,345.68C de-DE Double 12345.678 12.345,68 DMD en-US Int32 12345 12345D8 en-US Int32 12345 00012345E en-US Double 12345.6789 1.234568E+004E10 en-US Double 12345.6789 1.2345678900E+004E fr-FR Double 12345.6789 1,234568E+004e4 en-US Double 12345.6789 1.2346e+004F en-US Double 12345.6789 12345.68F es-ES Double 12345.6789 12345,68F0 en-US Double 12345.6789 123456F6 en-US Double 12345.6789 12345.678900G en-US Double 12345.6789 12345.6789G7 en-US Double 12345.6789 12345.68G en-US Double 0.0000023 2.3E-6G en-US Double 0.0023 0.0023G2 en-US Double 1234 1.2E3G en-US Double Math.PI 3.14159265358979N en-US Double 12345.6789 12,345.68N sv-SE Double 12345.6789 12 345,68N4 en-US Double 123456789 123,456,789.0000P en-US Double .126 12.60 %r en-US Double Math.PI 3.141592653589793x en-US Int32 0x2c45e 2c45eX en-US Int32 0x2c45e 2C45EX8 en-US Int32 0x2c45e 0002C45Ex en-US Int32 123456789 75bcd15Latihan : 1. Buatlah program untuk menghitung luas persegi panjang.Jawab :Option Explicit OnPublic Module modmain Sub Main() Dim Panjang As System.Int32 Dim Lebar As System.Int32 Dim Luas As System.Int64 System.Console.Write("Masukkan Panjang :")INDOPROG 18
  19. 19. Bahasa pemrograman VB.NET Hendra, S.T. Panjang = System.Console.ReadLine() System.Console.Write("Masukan Lebar :") Lebar = System.Console.ReadLine() Luas = Panjang*Lebar System.Console.WriteLine("Luas Persegi Panjang adalah :" &Luas.ToString()) End SubEnd ModuleatauOption Explicit OnImports SystemPublic Module modmain Sub Main() Dim Panjang As Integer Dim Lebar As Integer Dim Luas As Long Console.Write("Masukkan Panjang :") Panjang = Console.ReadLine() Console.Write("Masukan Lebar :") Lebar = Console.ReadLine() Luas = Panjang*Lebar Console.WriteLine("Luas Persegi Panjang adalah :" & Luas.ToString()) End SubEnd ModuleSimpan dengan nama file persegi.vbSet path=%path%;c:windowsmicrosoft.netframeworkv1.1.4322VBC persegi.vbMicrosoft (R) Visual Basic .NET Compiler version 7.10.3052.4for Microsoft (R) .NET Framework version 1.1.4322.573Copyright (C) Microsoft Corporation 1987-2002. All rights reserved.Persegi 2. Buatlah program untuk menghitung luas lingkaran dengan pemakaian konstanta.Option Explicit OnImports SystemPublic Module lingkaranConst PI As Single = 3.14 Sub Main() Dim R As Single Dim Luas As DoubleINDOPROG 19
  20. 20. Bahasa pemrograman VB.NET Hendra, S.T. Console.Write("Masukkan Jari-jari :") R = Console.ReadLine() Luas = PI * R^2 Console.WriteLine("Luas : {0, 10:f2}",Luas)10 tempat 2 desimal End SubEnd ModuleINDOPROG 20
  21. 21. Bahasa pemrograman VB.NET Hendra, S.T.Struktur Keputusan dan PerulanganPerintah If...Then...ElseSalah satu tujuan pemrograman komputer adalah mengambil tugas rutin manusia untukdalam mengambil keputusan-keputusan yang dapat diprogram. Misalnya seorang Dosendalam menentukan Grade (A,B,C,D, atau E) nilai akhir mahasiswa dengan kondisisebagai 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 keputusanLogika keputusan diatas dapat diprogram pada Visual Basic dengan menggunakan syntaxpenulisan sebagai berikut :If condition [ Then ] [ statements ][ ElseIf elseifcondition [ Then ] [ elseifstatements ] ][ Else [ elsestatements ] ]End IfContoh :Option Explicit OnImports SystemModule ModIf Sub Main() Dim Nilai As Single Console.Write("Masukkan Nilai Akhir :") Nilai = Console.ReadLine() If Nilai >= 85 Then Console.WriteLine("A") ElseIf Nilai >= 70 Then Console.WriteLine("B") ElseIf Nilai >= 60 Then Console.WriteLine("C") ElseIf Nilai >= 25 Then Console.WriteLine("D")INDOPROG 21
  22. 22. Bahasa pemrograman VB.NET Hendra, S.T. Else Console.WriteLine("E") End If End SubEnd ModulePerintah Select...CaseJika statement If melakukan pemilihan berdasarkan kondisi, maka perintah Selectmelakukan pemilihan berdasarkan nilai ekspresi dengan syntax sebagai berikut :Select [ Case ] testexpression [ Case expressionlist [ statements ] ] [ Case Else [ elsestatements ] ]End SelectContoh :Option Explicit OnImports SystemModule ModHari Sub Main() Dim Hari As Byte Console.Write("Masukkan No Hari :") Hari = Console.ReadLine() Select Case Hari Case 1 Console.WriteLine("Senin") Case 2 Console.WriteLine("Selasa") Case 3 Console.WriteLine("Rabu") Case 4 Console.WriteLine("Kamis") Case 5 Console.WriteLine("Jumat") Case 6 Console.WriteLine("Sabtu") Case 7 Console.WriteLine("Minggu") Case Else Console.WriteLine("No Hari tidak sah") End Select End SubEnd ModuleContoh Lain :Option Explicit OnImports SystemModule ModHari Sub Main()INDOPROG 22
  23. 23. Bahasa pemrograman VB.NET Hendra, S.T. Dim Angka As Integer Console.Write("Masukkan Angka 1 s/d 9 :") Angka = Console.ReadLine() Select Case Angka Case Is < 1 Console.WriteLine("Terlalu kecil") Case 1 To 5 Console.WriteLine("Berada antara 1 dan 5") Case 6,7,8,9 Console.WriteLine("Berada antara 6 dan 9") Case Else Console.WriteLine("Terlalu besar") End Select End SubEnd ModulePerintah For...NextSalah satu keunggulan komputer dibandingkan dengan manusia adalah dapatmengerjakan sesuatu secara berulang-ulang tanpa mengalami penurunan kualitasterhadap hasil kerja.Salah satu perintah perulangan di Visual Basic ada For…Next Statements yangmerupakan perulangan dengan menggunakan sistem counter dengan menggunakansyntax sebagai berikut :For counter [ As datatype ] = start To end [ Step step ] [ statements ][ Exit For ] [ statements ]Next [ counter ]Contoh :Dim I As IntegerFor I = 1 To 100 Defaultnya Step 1 Console.WriteLine(I)Next IAtauFor I As Integer = 1 To 100 Defaultnya Step 1 Console.WriteLine(I)Next IAkan mencetak daftar bilangan 1 s/d 100Catatan :Dari segi looping pemakaian :Dim I As IntegerINDOPROG 23
  24. 24. Bahasa pemrograman VB.NET Hendra, S.T.For I = 1 To 100 Defaultnya Step 1 Console.WriteLine(I)Next ITidak berbeda denganFor I As Integer = 1 To 100 Defaultnya Step 1 Console.WriteLine(I)Next ITapi jika ditinjau dari lingkup pemakaian variabel, maka variabel I pada contoh pertamaadalah variabel local Sub Main, sedangkan variabel I pada contoh kedua adalah variablelocal untuk blok looping.Contoh :Dim I As IntegerFor I = 1 To 100 Defaultnya Step 1 Console.WriteLine(I)Next IConsole.WriteLine(I) Akan tercetak 101SedangkanFor I As Integer = 1 To 100 Defaultnya Step 1 Console.WriteLine(I)Next IConsole.WriteLine(I) Terjadi error pada saat kompilasiDimana pesan error adalah error BC30451: Name I is not declared.Dim I As IntegerFor I = 1 To 100 Step 2 Console.WriteLine(I)Next IAkan mencetak daftar bilangan ganjil 1 s/d 99Catatan : Step tidak selamanya harus berupa bilangan bulat, tetapi juga dapat berupabilangan floating point.For I As Single = 1 To 10 Step 0.1 Console.WriteLine(I)Next IAkan mencetak daftar bilangan 1, 1.1, 1.2, 1.3, …,10INDOPROG 24
  25. 25. Bahasa pemrograman VB.NET Hendra, S.T.Bagaimana dengan perulangan dari besar ke kecil ?Perulangan dari besar ke kecil dapat dilakukan dengan menentukan nilai Step negatif.Contoh :For I As Integer = 100 To 1 Step -1 Console.WriteLine(I)Next IAkan mencetak daftar bilangan 100, 99. 98, …, 1Dapatkah anda menerangkan fungsi dan contoh pemakaian Exit For ?Exit For merupakan perintah keluar dari looping tanpa bersyarat, artinya kalau perintahExit For ditemukan maka proses program dilanjutkan ke perintah dibawah Next.Adapun contoh pemakaian Exit For adalah misalnya kita ingin membuat passworddengan jumlah kesempatan coba sebanyak 3 kali.Option Explicit OnImports SystemModule ModPass Sub Main() Dim I As Integer Dim Pass As String For I = 1 To 3 Step 1 Console.Write("Password :") Pass = Console.ReadLine() If Pass.ToUpper() ="INDOPROG" Then Jika Password Benar Exit For Keluar dari Looping End If Next I If I > 3 Then Console.WriteLine("Proses Login Gagal !") Else Console.WriteLine("Welcome !") End If End SubEnd ModulePerintah Do...LoopJika perintah For … Next melakukan looping berdasarkan counter, maka perintah Do …Loop melakukan looping berdasarkan kondisi, adapun tata cara penulisannya adalahsebagai berikut :Do { While | Until } condition [ statements ][ Exit Do ] [ statements ]LoopINDOPROG 25
  26. 26. Bahasa pemrograman VB.NET Hendra, S.T.AtauDo [ statements ][ Exit Do ] [ statements ]Loop { While | Until } conditionPerbedaan antara kedua struktur perulangan diatas adalah posisi pemeriksaan kondisiyang akan diuji, pada struktur yang pertama pengujian kondisi dilakukan sebelumstatements dikerjakan, sedangkan pada struktur yang kedua pengujuan dilakukan setelahstatement dikerjakan.Sebagaimana dengan Exit For, perintah Exit Do akan mengakhiri Looping tanpabersyarat, yang artinya jika perintah Exit Do ditemukan, maka proses Looping akansegera dihentikan dan dilanjutkan ke Statement dibawah Loop.Contoh :Option Explicit OnImports SystemModule DoLoop Sub Main() Dim Dat() As Integer Dim Jd,DTemp As Integer Jd = 0 Do Console.Write("Data Ke-{0} :", Jd+1) DTemp = Console.ReadLine() If DTemp <> 0 Then ReDim Preserve Dat(Jd) Dat(Jd) = DTemp Jd+=1 End If Loop Until DTemp = 0 Ulangi sampai Dtemp diisi 0 For I As Integer = 0 To Jd-1 Console.WriteLine("Data Ke-{0} adalah {1}",I+1, Dat(I)) Next I End SubEnd ModulePada contoh diatas, mula-mula kita mendeklarasikan suatu array tanpa diikuti denganukuran, kemudian proses akan dilanjutkan dengan pembacaan data ke variabel Dtemp,dab jika nilai Dtemp bukan 0 (nol), maka ukuran array akan dialokasi ulang denganperintah ReDim Preserve yang akan mempertahankan isi array, dan pembacaan data akanterus diulang sampai Dtemp diisi dengan 0 (nol).INDOPROG 26
  27. 27. Bahasa pemrograman VB.NET Hendra, S.T.Selain struktur Do…Loop, juga tersedia perintah perulangan dengan tata cara penulisansebagai berikut.While condition [ statements ]End WhilePada prinsipnya struktur While … End While sama dengan Do While … Loop.Perintah For Each...NextPerintah For Each…Next digunakan untuk melakukan iterasi berdasarkan collectiontertentu, misalnya kita ingin mencetak semua elemen dalam suatu array, penulisandengan perintah For Each dapat dilakukan sebagai berikut :For Each element [ As datatype ] In group [ statements ][ Exit For ] [ statements ]Next [ element ]Contoh :Option Explicit OnImports SystemModule DoLoop Sub Main() Dim Dat() As Integer Dim Jd,DTemp As Integer Jd = 0 Do Console.Write("Data Ke-{0} :", Jd+1) DTemp = Console.ReadLine() If DTemp <> 0 Then ReDim Preserve Dat(Jd) Dat(Jd) = DTemp Jd+=1 End If Loop Until DTemp = 0 For Each Data As Integer In Dat Console.WriteLine("Data pada array {0}", Data) Next End SubEnd ModuleArray pada Visual Basic merupakan collection pada System.Array, sehingga pemakaianperintah For Each akan mendapatkan elemen 0 s/d element terakhir dari array.INDOPROG 27
  28. 28. Bahasa pemrograman VB.NET Hendra, S.T.Latihan : 1. Buatlah program mencetak tabel perkalian 1x1 = 1 s/d 10 x 10 = 100Option Explicit OnImports SystemPublic Module ModKali Sub Main() Dim i, j As Byte For i = 1 To 10 For j = 1 to 10 Console.WriteLine("{0,3} x {1,3} = {2,3}",i,j,i*j) Next j Next i End SubEnd Module. 2. Buatlah program untuk konversi data desimal ke binary dengan pemakaian operator bit shiftOption Explicit OnImports SystemModule ModBiner Sub Main() Dim D As Integer Dim I As Short Console.Write("Bilangan Desimal :") D = Console.ReadLine() For I = 15 to 0 Step -1 If ((D >> I) And 1) = 1 Then Console.Write(1) Else Console.Write(0) End If Next End SubEnd Module 3. Buatlah program yang menentukan bilangan bulat yang dimasukan pemakai Genap atau Ganjil. 4. Buatlah program yang menentukan tahun yang dimasukan pemakai termasuk tahun Kabisat atau bukan. 5. Buatlah program yang mencetak barisan bilangan fibonacci sesuai dengan jumlah suku yang ditentukan oleh pemakai. 6. Buatlah program yang menentukan bilangan bulat yang dimasukan pemakai Prima atau bukan.INDOPROG 28
  29. 29. Bahasa pemrograman VB.NET Hendra, S.T. 7. Buatlah program yang dapat mencetak faktor prima dari suatu bilangan bulat (Contoh 100 = 2 x 2 x 5 x 5)INDOPROG 29
  30. 30. Bahasa pemrograman VB.NET Hendra, S.T.Array pada Visual BasicDeklarasi variabel ArraySebagaimana yang telah disinggung pada bagian 1 bahwa tipe data pada Visual Basicterbagai atas dua kelompok yaitu Value Type dan Reference.Suatu array merupakan Reference Type yang mengandung banyak variabel-variabel yangdapat diakses satu persatu sesuai dengan urutannya dalam array, dimana indexnyadimulai dari 0. Variabel-variabel yang terkandung dalam array disebut juga elemen dariarray, dan semuanya harus memiliki tipe yang sama. Setiap tipe array mewarisi (inherits)semua member yang dideklarasikan pada System.Array.Pada contoh berikut ini mendeklarasikan suatu array integer berdimensi tunggal,memberi nilai pada masing-masing elemen array, dan mencetak-nya.:Module Test Sub Main() Dim arr(5) As Integer Dim i As Integer For i = 0 To arr.GetUpperBound(0) arr(i) = i * i Next i For i = 0 To arr.GetUpperBound(0) Console.WriteLine("arr(" & i & ") = " & arr(i)) Next i End SubEnd ModuleProgram diatas akan menghasilkan output:arr(0) = 0arr(1) = 1arr(2) = 4arr(3) = 9arr(4) = 16Array dapat juga diberi nilai awal pada saat deklarasi dengan penulisan sebagai berikut:Private a As Integer() = { 0, 2, 4, 6, 8 }Atau penulisan yang sama adalah dengan :Private a As Integer() = new Integer() { 0, 2, 4, 6, 8 }Pada contoh berikut membuat array dua dimensi 5 x 2 :INDOPROG 30
  31. 31. Bahasa pemrograman VB.NET Hendra, S.T.Private b As Integer(,) = { { 0, 1 }, { 2, 3 }, { 4, 5 }, { 6, 7 }, {8, 9 } }Sama dengan deklarasi berikut:Private b(4, 1) As IntegerDan diikuti dengan pemberian nilai berikut :b(0, 0) = 0 : b(0, 1) = 1b(1, 0) = 2 : b(1, 1) = 3b(2, 0) = 4 : b(2, 1) = 5b(3, 0) = 6 : b(3, 1) = 7b(4, 0) = 8 : b(4, 1) = 9Member pada Class ArraySetiap array pada Visual Basic mewarisi member yang terdefinisi pada Class Array,adapun beberapa member tersebut adalah sebagai berikut ini : Length Mendapatkan jumlah elemen dalam Array (Integer 32-bit) LongLength Mendapatkan jumlah elemen dalam Array (Integer 64-bit) Rank Mendapatkan jumlah dimensi dalam ArrayContoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module ModArr Public Arr(3,3) As Integer Sub Main() Console.WriteLine(Arr.Length()) 16 Console.WriteLine(Arr.LongLength()) 16 Console.WriteLine(Arr.Rank()) 2 End SubEnd Module GetLength Mendapatkan jumlah elemen dalam Array pada dimensi tertentu (Integer 32-bit) GetLongLength Mendapatkan jumlah elemen dalam Array pada dimensi tertentu (Integer 64-bit)Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module ModArrINDOPROG 31
  32. 32. Bahasa pemrograman VB.NET Hendra, S.T. Public Arr(3,3) As Integer Sub Main() Console.WriteLine(Arr.GetLength(0)) 4 Console.WriteLine(Arr.GetLongLength(0)) 4 End SubEnd Module GetLowerBound Mendapatkan nilai index batas bawah Array pada dimensi tertentu. GetUpperBound Mendapatkan nilai index batas atas Array pada dimensi tertentu.Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module ModArr Public Arr(3,3) As Integer Sub Main() Console.WriteLine(Arr.GetLowerBound(0)) 0 Console.WriteLine(Arr.GetUpperBound(0)) 3 End SubEnd Module IndexOf Mendapatkan index paling awal dari nilai tertentu pada Array 1 dimensi. LastIndexOf Mendapatkan index paling akhir dari nilai tertentu pada Array 1 dimensi.Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module ModArr Public Arr() As Integer = {0,1,2,3,4,3,2,1,0} Sub Main() Console.WriteLine(Array.IndexOf(Arr,3)) 3 Console.WriteLine(Array.LastIndexOf(Arr,3)) 5 End SubEnd Module Reverse Membalik urutan element dalam suatu Array 1 dimensi.Option Explicit OnINDOPROG 32
  33. 33. Bahasa pemrograman VB.NET Hendra, S.T.Imports SystemImports Microsoft.VisualBasicPublic Module ModArr Public Arr() As Integer = {0,1,2,3,4} Sub Main() Dim I As Integer For I = Arr.GetLowerBound(0) To Arr.GetUpperBound(0) Console.Write(Arr(I)) 01234 Next I Console.WriteLine() Array.Reverse(Arr,0,4) For I = Arr.GetLowerBound(0) To Arr.GetUpperBound(0) Console.Write(Arr(I)) 43210 Next I End SubEnd Module Sort Mengurut elemen dalam suatu Array 1 dimensi.Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module ModArr Public Arr() As Integer = {0,4,3,1,2} Sub Main() Dim I As Integer For I = Arr.GetLowerBound(0) To Arr.GetUpperBound(0) Console.Write(Arr(I)) 04312 Next I Console.WriteLine() Array.Sort(Arr,0,4) For I = Arr.GetLowerBound(0) To Arr.GetUpperBound(0) Console.Write(Arr(I)) 01234 Next I End SubEnd Module BinarySearch Mencari Nilai tertentu pada suatu Array dengan algoritma Binary Search.Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module ModArr Public Arr() As Integer = {0,4,3,1,2} Sub Main() Dim Nilai = 3INDOPROG 33
  34. 34. Bahasa pemrograman VB.NET Hendra, S.T. Array.Sort(Arr,0,4) Console.WriteLine(Array.BinarySearch(Arr,Nilai)) 2 End SubEnd ModulePerintah Visual Basic untuk ArrayVisual Basic menyediakan berbagai perintah khusus untuk pengolahan string sebagaiberikut ::Perintah ReDimPerintah ReDim digunakan untuk mendefinisi ulang jumlah elemen pada Array denganatau tanpa mempertahankan data array sebelumnya.ReDim [ Preserve ] name(boundlist)Preserve Sifatnya optional, jika digunakan maka data pada array tersebut akan dipertahankan pada array ukuran baruContoh :Pada contoh berikut menggunakan perintah ReDim untuk mengalokasi ualang ukuranvariabel array.Dim I, MyArray() As Integer Declare variable and array variable.ReDim MyArray(5) Allocate 6 elements.For I = 0 To UBound(MyArray) MyArray(I) = I Initialize array.Next IPerintah berikut mengubah ukuran array tanpa mempertahankan isi elemennya..ReDim MyArray(10) Resize to 11 elements.For I = 0 To UBound(MyArray) MyArray(I) = I Initialize array.Next IPerintah berikut mengubah ukuran dari array dengan mempertahankan isi elementnya.ReDim Preserve MyArray(15) Resize to 16 elements.Contoh berikut mengalokasi ulang array sesuai dengan data yang dimasukan pemakai :Option Explicit OnImports SystemModule DoLoopINDOPROG 34
  35. 35. Bahasa pemrograman VB.NET Hendra, S.T. Sub Main() Dim Dat() As Integer Dim Jd,DTemp As Integer Jd = 0 Do Console.Write("Data Ke-{0} :", Jd+1) DTemp = Console.ReadLine() If DTemp <> 0 Then ReDim Preserve Dat(Jd) Dat(Jd) = DTemp Jd+=1 End If Loop Until DTemp = 0 Ulangi sampai Dtemp diisi 0 For I As Integer = 0 To Jd-1 Console.WriteLine("Data Ke-{0} adalah {1}",I+1, Dat(I)) Next I End SubEnd ModulePerintah ErasePerintah Erase digunakan untuk membebaskan array dan memory yang digunakanelemennya, dengan tata cara penulisan sebagai berikut :Erase arraylistCatatanPerintah Erase akan memberikan nilai Nothing ke variabel array.ContohPada contoh berikut menggunakan perintah Erase untuk membebaskan memori dua array(1000 dan 100 tempat elemen yang bersesuaian). Kemudian menggunakan perintahReDim untuk memberikan ukuran baru untuk ketiga dimensi dari array.Dim Int3DArray(9, 9, 9), Int2DArray(9, 9) As Integer ...Erase Int3DArray, Int2DArray ...ReDim Int3DArray(4, 4, 9)Module Array pada Namespace Microsoft.VisualBasicINDOPROG 35
  36. 36. Bahasa pemrograman VB.NET Hendra, S.T.Pengolahan data array dapat juga menggunakan beberapa fungsi bantu yang berkaitandengan array yang tersedia pada Namespace Microsoft.VisualBasic, berikut ini adalahbeberapa fungsi bantu tersebut :Fungsi IsArrayMengembalikan nilai Boolean yang menunjukan apakah suatu variabel menunjuk padasuatu array.Pada contoh ini fungsi IsArray memeriksa apakah variabel-variabel mengacu pada suatuarray.Dim MyArray(4), YourArray(3) As Integer Declare array variables.Dim MyString As StringDim MyCheck As BooleanMyCheck = IsArray(MyArray) Returns True.MyCheck = IsArray(YourArray) Returns True.MyCheck = IsArray(MyString) Returns False.LBound FunctionMengembalikan index terendah untuk dimensi tertentu dari suatu arrayPada contoh berikut menggunakan fungsi LBound untuk mendapatkan index terendahsuatu dimensi dari array.Dim Lowest, MyArray(10, 15, 20), AnyArray(6) as IntegerLowest = LBound(MyArray, 1) Returns 0.Lowest = LBound(MyArray, 3) Returns 0.Lowest = LBound(AnyArray) Returns 0.Suatu Exception/Error akan terjadi kalau kondisi berikut ini ditemukan : Exception type Error number ConditionArgumentNullException 9 Array is Nothing.RankException 9 Rank < 1 or Rank is greater than the rank of Array.Fungsi UBoundMengembalikan index yang terbesar dari suatu dimensi pada array.Pada contoh berikut menggunakan fungsi Ubound untuk menentukan index yang terbesardari suatu dimensi pada array.Dim Highest, MyArray(10, 15, 20), AnyArray(6) as IntegerINDOPROG 36
  37. 37. Bahasa pemrograman VB.NET Hendra, S.T.Highest = UBound(MyArray, 1) Returns 10.Highest = UBound(MyArray, 3) Returns 20.Highest = UBound(AnyArray) Returns 6.Catatan :Untuk memanfaatkan fungsi IsArray, Lbound dan Ubound anda perlu mencantumkanImports Microsoft.VisualBasicPada awal programLatihan : 1. Buatlah program yang menbaca sejumlah data dari pemakain, dan menampilkan kembali dalam keadaan berurut dari kecil ke besar, nilai total, rata-rata, nilai terbesar, dan nilai yang terkecil dengan pemanfaatan array. 2. Perbaiki program diatas untuk menampilkan kembali dalam keadaan berurut dari besar ke kecil. 3. Tambahkan kemampuan program untuk mencari suatu nilai yang dimasukan dan menampilkan posisinya dalam array. 4. Buatlah program yang mencetak suatu segitiga Pascal.INDOPROG 37
  38. 38. Bahasa pemrograman VB.NET Hendra, S.T.Fungsi dan SubPerintah FunctionDalam pembuatan program yang besar, tentu saja harus dikembangkan secara terstruktursehingga program menjadi lebih mudah dikembangkan dan dimaintenance. Salah satuusaha yang dapat dilakukan adalah memecah program menjadi kesatuan logika yanglebih kecil dimana proses yang sama dikelompokan menjadi sub program yang diberinama, dan dapat dipanggil pada saat yang dibutuhkan.Pemakaian function digunakan untuk proses maupun rumus yang perlu mengembalikannilai kepada pemanggil, adapun tata cara penulisan function adalah sebagai berikut :Function name[(arglist)] [ As type ] [ statements ] [ Exit Function ] [ statements ]End FunctionContoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module GenapGanjil Function IsGenap(x As Long) As Boolean If (x Mod 2) = 0 Then Return True Else Return False End If End Function REM program utama Sub Main() Dim bil As Long Console.Write("Masukan Bilangan :") bil = Console.ReadLine() If IsGenap(bil) Then Console.WriteLine("Bilangan {0} adalah Genap",bil) Else Console.WriteLine("Bilangan {0} adalah Ganjil",bil) End If End SubEnd ModuleDefaultnya parameter pada function dikirim secara ByVal, kadang-kadang kitamenginginkan proses yang dapat mengembalikan lebih dari satu nilai yang mana dapatdipenuhi dengan menggunakan parameter yang dikirim secara ByRef.INDOPROG 38
  39. 39. Bahasa pemrograman VB.NET Hendra, S.T.Misalnya kita ingin menghitung akar persamaan kuadrat dengan menggunakan rumusABC. Yang mana X1 dan X2 yang kemungkinan akar imaginier, dimana function akanmengembalikan suatu nilai true (ada solusi) atau false (tidak ada solusi).Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module AkarKuadrat Function CariAkar(A as Long, B as Long ,C As Long, _ ByRef X1 as single ,ByRef X2 as single) As Boolean Dim D as Long D = B^2 - 4*A*C If D < 0 Then Akar Imaginier Return False Tidak ada solusi Else X1 = (-B + Math.Sqrt(D))/(2*A) argumen X1 X2 = (-B - Math.Sqrt(D))/(2*A) argumen X2 Return True Ada solusi End If End Function REM program utama Sub Main() Dim A,B,C As Long Dim X1,X2 As Single Console.WriteLine("Mencari akar persamaan kuadrat") Console.Write("Masukan A :") A = Console.ReadLine() Console.Write("Masukan B :") B = Console.ReadLine() Console.Write("Masukan C :") C = Console.ReadLine() If CariAkar(A,B,C,X1,X2) Then Console.WriteLine("Akar X1={0} X2={1}",X1,X2) Else Console.WriteLine("Akar imaginier") End If End SubEnd ModuleCatatan :Perintah Return digunakan untuk mengembalikan nilai ke pemanggil, dan jika suatu ExitFunction digunakan, maka function akan mengembali nilai defaut berupa 0 for Byte,Char, Decimal, Double, Integer, Long, Short, and Single; Nothing for Object, String,and all arrays; False for Boolean; and #1/1/0001 12:00 AM# for Date.Jika kita perlu melewatkan suatu array sebagai argumen pada function, maka dapatdigunakan keyword ParamArray untuk melewatkan nilai array secara by value, contoh :INDOPROG 39
  40. 40. Bahasa pemrograman VB.NET Hendra, S.T.Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module ModArr Function sumArray(ByVal Paramarray Dat() As Byte) Dim Total As Long = 0 For I As Integer = 0 To UBound(Dat) Total += Dat(I) Next I Return Total End Function Dim Digit() As Byte = {0,1,2,3,4,5} Sub Main() Console.WriteLine(sumArray(Digit)) End SubEnd ModuleSub StatementPada bagian sebelumnya kita telah membahas tentang function dan pemakaiannya,selanjutnya kita akan melihat Sub yang menyerupai Function, dimana perbedaannyaadalah jika function digunakan untuk proses yang mengembalikan nilai kepadapemanggil, sedangkan Sub cenderung digunakan untuk proses yang tidak mengembalikannilai.Sub name [(arglist)] [ statements ] [ Exit Sub ] [ statements ]End SubCatatan :Sebagaimana function, sebenarnya sub juga dapat digunakan untuk proses yangmengembalikan nilai melalui argumen yang dikirim secara ByRef.Jika Exit Sub digunakan, maka Sub akan kembali ke pemanggil secara tidak bersyarat.Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module ModArr Public Arr() As Integer Public Jd As Byte Sub BacaJd() Console.Write("Masukkan Jumlah Data :") Jd = Console.ReadLine() End Sub Sub BacaData()INDOPROG 40
  41. 41. Bahasa pemrograman VB.NET Hendra, S.T. ReDim Arr(Jd-1) For I As Byte = 0 To UBound(Arr) Console.Write("Data Ke -{0} :",I+1) Arr(I) = Console.ReadLine() Next I End Sub Sub CariRataRata() Dim Total As Long = 0 For I As Byte = 0 To UBound(Arr) Total +=Arr(I) Next I Console.WriteLine("Nilai Rata-rata : {0}",Total/Jd) End Sub Sub Main() BacaJd() BacaData() CariRataRata() End SubEnd ModuleTeknik Rekursi pada Visual BasicDalam matematika, kita sering menjumpai formula yang mengandung rekursi, misalnyapada perhitungan nilai faktorial dari suatu bilangan yang dapat diformulasikan sebagaiberikut : N! = N x (N-1)! Dimana 1! = 1.Sehingga secara pemrograman komputer dapat ditulis sebagai berikut :Option Explicit OnImports SystemPublic Module modFak Function Fak(N as Byte) If (N > 1) Then Return N * Fak(N-1) Else Return 1 End If End Function Sub Main() Console.WriteLine("Faktorial dari {0} adalah {1}",5,Fak(5)) End SubEnd ModuleLatihan :INDOPROG 41
  42. 42. Bahasa pemrograman VB.NET Hendra, S.T. 1. Buatlah function IsKabisat yang akan mengembalikan nilai True jika tahun yang dikirim sebagai argumen adalah Kabisat, dan False jika sebaliknya. 2. Buatlah function IsPrima yang akan mendeteksi apakah suatu bilangan yang diberikan adalah Prima atau tidak. 3. Dengan pemanfaatan teknik rekursi, buatlah function yang dapat menghitung suku yang ke n dari barisan fibonacci. 4. Buatlah program yang mencetak faktor prima dari suatu bilangan dengan pemanfaatan Sub secara rekursi.INDOPROG 42
  43. 43. Bahasa pemrograman VB.NET Hendra, S.T.StringVariabel string pada Visual Basic disimpan sebagai urutan dari angka 16-bit (2 byte)yang memiliki jangkauan dari 0 sampai 65535. Masing-masing angka merupakan suatukarakter tunggal Unicode. Suatu string dapat mengandung sampai dengan 2 Milyar(2^31) karakter Unicode.128 kode pertama (0-127) dari Unicode berkaitan dengan huruf dan simbol padakeyboard standard U.S yang mana sama dengan karakter set yang terdefinisi pada ASCII,kemudian 128 karakter berikutnya (128–255) merupakan karakter spesial, seperti hurufalphabet Latin, accent, simbol mata uang, dan pecahan. Kemudian karakter sisianyadigunakan untuk berbagai simbol, termasuk karakter teksual didunia, dan simbol teknis,dan metematika.Pada dasarnya String pada Visual Basic mengacu pada String Class.Contoh :Option Explicit OnImports SystemPublic Module modStr Dim Nama As String = "Hendra Soewarno" Sub Main() Console.WriteLine(Nama.ToUpper()) Console.WriteLine(Nama.ToLower()) End SubEnd ModulePada contoh diatas akan mencetak HENDRA SOEWARNO dan hendra soewarno.Member pada Class StringSemua string di Visual Basic memiliki member sebagai berikut yang dapat digunakanuntuk melakukan pengolahan data String.Public Properties Chars Mendapatkan karakter pada posisi tertentu string. Length Mendapatkan jumlah character dalam stringContoh :Option Explicit OnImports SystemPublic Module modStrINDOPROG 43
  44. 44. Bahasa pemrograman VB.NET Hendra, S.T. Dim Nama As String = "Hendra Soewarno" Sub Main() Console.WriteLine(Nama.Chars(0)) Akan mencetak H Console.WriteLine(Nama.Chars(1)) Akan mencetak e Console.WriteLine(Nama.Chars(2)) Akan mencetak n Console.WriteLine(Nama.Length()) Akan mencetak 12 End SubEnd ModulePublic Methods PadLeft Mengisi spasi atau karakter lain disebelah kiri string sampai string mencapai panjang tertentu. PadRight Mengisi spasi atau karakter lain disebelah kanan string sampai string mencapai panjang tertentu. ToLower Mengembalikan string yang telah diubah ke huruf kecil ToUpper Mengembalikan string yang telah diubah ke huruf besar Trim Mengembalikan string dengan membuang spasi didepan dan belakang string TrimEnd Mengembalikan string dengan membuang spasi dibelakang string TrimStart Mengembalikan string dengan membuang spasi didepan string Substring Mengembalikan bagian dari stringContoh :Option Explicit OnImports SystemPublic Module modStr Dim Nama As String = "Hendra Soewarno" Dim Kota As String = " Medan " Sub Main() Console.WriteLine(Nama.PadLeft(20,"-")) -----Hendra Soewarno Console.WriteLine(Nama.PadRight(20,"-")) Hendra Soewarno----- Console.WriteLine(Nama.ToLower()) hendra soewarno Console.WriteLine(Nama.ToUpper()) HENDRA SOEWARNO Console.WriteLine(Kota.TrimEnd()) ____Medan Console.WriteLine(Kota.TrimStart()) Medan_____INDOPROG 44
  45. 45. Bahasa pemrograman VB.NET Hendra, S.T. Console.WriteLine(Kota.Trim()) Medan Console.WriteLine(Nama.SubString(3,3)) dra End SubEnd Module Insert Menyisip string ke dalam string sekarang pada posisi tertentu. Remove Menghapus sejumlah karakter dalam string Replace Mengantu sejumlah karakter dengan string pada string sekarangContoh :Option Explicit OnImports SystemPublic Module modStr Dim Nama As String = "Santo" Sub Main() Console.WriteLine(Nama.Insert(1,"us")) Susanto Console.WriteLine(Nama.Remove(0,1)) anto Console.WriteLine(Nama.Replace("o","i")) Santi End SubEnd Module IndexOf Mengembalikan posisi awal suatu string pada string sekarang mulai dari posisi tertentu IndexOfAny Mengembalikan posisi awal suatu string pada string sekarang. LastIndexOf Mengembalikan posisi akhir suatu string pada string sekarang sekarang mulai dari posisi tertentu LastIndexOfAny Mengembalikan posisi akhir suatu string pada string sekarang. StartsWith Mendapatkan apakah string dimulai dengan string tertentu. EndsWith Mendapatkan apakah string diakhir dengan string tertentu.Contoh :Option Explicit OnImports SystemPublic Module modStr 0 1 2 012345678901234567890123456 Dim Nama As String = "ebook karya Hendra Soewarno"INDOPROG 45
  46. 46. Bahasa pemrograman VB.NET Hendra, S.T. Sub Main() Console.WriteLine(Nama.StartsWith("e")) True Console.WriteLine(Nama.StartsWith("a")) False Console.WriteLine(Nama.EndsWith("o")) True Console.WriteLine(Nama.EndsWith("i")) False End SubEnd ModuleOption Explicit OnImports SystemPublic Module modStr 0 1 2 012345678901234567890123456 Dim Nama As String = "ebook karya Hendra Soewarno" Sub Main() Console.WriteLine(Nama.IndexOfAny("e")) 0 Console.WriteLine(Nama.LastIndexOfAny("e")) 21 Console.WriteLine(Nama.IndexOf("e",2)) 13 Console.WriteLine(Nama.LastIndexOf("e",15)) 13 End SubEnd ModuleModule String pada Namespace Microsoft.VisualBasicSelain pengolahan data string dengan menggunakan String Member, Visual Basic jugamenyediakan berbagai fungsi bantu yang terdefinisi pada NamespaceMicorosoft.VisualBasic, berikut ini adalah beberapa fungsi bantu yang dapat digunakanuntuk pengolahan data string.Asc(x), mengembalikan nilai ASCII dari huruf pertama dalam string xAscW(x), mengembalikan nilai ASCII dari huruf pertama dalam string xChr(x), mengembalikan character dari suatu nilai ASCII xChrW(x), , mengembalikan character dari suatu nilai ASCII xContoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module modStr Sub Main() Console.WriteLine(Asc("H")) 72 Console.WriteLine(AscW("H")) 72 Console.WriteLine(Chr("72")) H Console.WriteLine(ChrW("72")) H End SubEnd ModuleINDOPROG 46
  47. 47. Bahasa pemrograman VB.NET Hendra, S.T.Len(x), mengembalikan panjang string x dalam karakter.Lcase(x), mengembalikan string yang telah diubah menjadi huruf kecil.Ucase(x), mengembalikan string yang telah diubah menjadi huruf besar.Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module modStr Sub Main() Dim Nama As String = "Hendra Soewarno" Console.WriteLine(Len(Nama)) 15 Console.WriteLine(LCase(Nama)) hendra soewarno Console.WriteLine(UCase(Nama)) HENDRA SOEWARNO End SubEnd ModuleGetChar(x,y), mendapatkan character posisi ke y dalam string x.Left(x,y), mengembalikan substring dari string x sebanyak y karakter dari depan.Right(x,y), mengembalikan substring dari string x sebanyak y karakter dari belakang.Mid(x,y,z) mengembalikan substring dari string x mulai posisi y sebanyak z karakter.Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module modStr Sub Main() Dim Nama As String = "Hendra Soewarno" Console.WriteLine(GetChar(Nama,1)) H Console.WriteLine(Left(Nama,6)) Hendra Console.WriteLine(Right(Nama,8)) Soewarno Console.WriteLine(Mid(Nama,4,3)) dra End SubEnd ModuleSpace(x), mengembalikan string yang terdiri dari spasi sejumlah x karakter.Rset(x,y), mengembalikan string rapat kanan dengan panjang y dengan menambah spasidi depan string x.INDOPROG 47
  48. 48. Bahasa pemrograman VB.NET Hendra, S.T.Lset(x,y), mengembalikan string rapat kiri dengan panjang y dengan menambah spasidibelakang string x.Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module modStr Sub Main() Dim Nama1 As String = "Hendra" Dim Nama2 As String = "Soewarno" Console.WriteLine(Nama1 & Space(5) & Nama2) Hendra Soewarno Console.WriteLine(RSet(Nama1,9)) ___Hendra Console.WriteLine(LSet(Nama1,9)) Hendra___ End SubEnd ModuleLtrim(x), mengembalikan string dengan menghilangkan spasi didepan string x.Rtrim(x), mengembalikan string dengan menghilangkan spasi dibelakang string x.Trim(x), mengembalikan string dengan prilaku gabungan Ltrim dan Rtrim.StrReverse(x), mengembalikan string yang membalikan karakter dalam string x.Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module modStr Sub Main() Dim Nama As String = "Susan" Console.WriteLine(Nama) Susan Console.WriteLine(StrReverse(Nama)) nasuS End SubEnd ModuleInStr(y, x, z), mencari dari depan posisi keberadaan substring z dalam string x mulaiposisi y.InStrRev(x, z, y), mencari dari belakang posisi keberadaan substring z dalam string xmulai posisi y.Contoh :INDOPROG 48
  49. 49. Bahasa pemrograman VB.NET Hendra, S.T.Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module modStr Sub Main() Dim Nama As String = "Felicia Fortuna" Console.WriteLine(InStr(1,Nama,"i")) 4 Console.WriteLine(InStr(5,Nama,"i")) 6 Console.WriteLine(InStrRev(Nama,"F",10)) 9 Console.WriteLine(InStrRev(Nama,"F",7)) 1 End SubEnd ModuleStrDup(y, x), mengembalikan string yang merupakan duplikasi character x sebanyak y.StrComp(x,y,z), mengembalikan nilai -1, 0, atau 1 yang merupakan perbandingan antarastring x dengan string y, dengan metode z, dimana -1 (x < y), 0 (x =y), dan 1 (x > y), danmetode z adalah CompareMethod.Text dan CompareMethod.Binary.Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module modStr Sub Main() Dim Nama1 As String = "felicia" Dim Nama2 As String = "FELICIA" Console.WriteLine(StrDup(10,"-")) ---------- Console.WriteLine(StrComp(Nama1,Nama2,CompareMethod.Text)) 0 Console.WriteLine(StrComp(Nama1,Nama2,CompareMethod.Binary)) 1 End SubEnd ModuleCatatan :Pada metode Binary, perbandingan dilakukan berdasarkan nilai ASCII, dimana ASCIIhuruf kecil > dari huruf besar, contoh A = 65, dan a = 97.Split(x,y), mengembalikan array string yang merupakan hasil pemisahan dari string xdengan delimeter yOption Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module modStr Sub Main() Dim Nama As String = "Felicia Fortuna" Dim aNama() As String = Split(Nama," ") Console.WriteLine(aNama(0)) FeliciaINDOPROG 49
  50. 50. Bahasa pemrograman VB.NET Hendra, S.T. Console.WriteLine(aNama(1)) Fortuna End SubEnd ModuleJoin(x,y), mengembalikan string yang merupakan hasil gabungan array string x dengandelimeter yOption Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module modStr Sub Main() Dim aNama() As String = {"Felicia","Fortuna"} Console.WriteLine(Join(aNama,", ")) Felicia, Fortuna End SubEnd ModuleReplace(x,y,z,[1],[2],[3]), mengembalikan string yang merupakan pengantian string ydengan z dalam string x mulai posisi [1] sampai sejumlah karakter [2], dengan metodeperbandingan [3].Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module modStr Sub Main() Dim Nama As String = "Hendra" Console.WriteLine(Replace(Nama,"a","o")) Hendro End SubEnd ModuleStrConv(x,y), menghasilkan string yang merupakan hasil konversi dengan metode y daristring x, dimana y (VBStrConv.UpperCase, VBStrConv.LowerCase,VBStrConv.ProperCase)Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module modStr Sub Main() Dim Nama As String = "Hendra" Console.WriteLine(StrConv(Nama,VbStrConv.UpperCase)) HENDRA Console.WriteLine(StrConv(Nama,VbStrConv.LowerCase)) hendra Console.WriteLine(StrConv(Nama,VbStrConv.ProperCase)) Hendra End SubINDOPROG 50
  51. 51. Bahasa pemrograman VB.NET Hendra, S.T.End ModuleFormatDateTime(x,y), menghasilkan string hasil konversi date x dengan format sesuaidengan setting pada komputer, dimana y (DateFormat.GeneralDate,DateFormat.LongDate, DateFormat.ShortDate, DateFormat.LongTime,DateFormat.ShortTime)Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module modStr Sub Main() Console.WriteLine(FormatDateTime(Now,DateFormat.LongDate))Sunday, May 22, 2005 End SubEnd ModuleFormatCurrency(x,y), menghasilan string yang merupakan format currency dari angka xdengan jumlah desimal y.FormatPercent(x,y), menghasilkan string yang merupakan format percent dari angka xdengan jumlah desimal y.FormatNumber(x,y), menghasilkan string yang merupakan format angka dari angka xdengan jumlah desimal y.Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic Module modStr Sub Main() Dim Angka As Decimal = 100000 Dim PPN As Single = 0.1 Console.WriteLine(FormatCurrency(Angka,2)) $100,000.00 Console.WriteLine(FormatNumber(Angka,2)) 100,000.00 Console.WriteLine(FormatPercent(PPN,2)) 10.00% End SubEnd ModuleFormat(x,y), menghasilkan string yang merupakan format dari argumen x dengan formaty, dengan format yang dapat dilihat pada lampiran 1.Contoh :INDOPROG 51
  52. 52. Bahasa pemrograman VB.NET Hendra, S.T.Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic 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-200520:15:01 End SubEnd ModuleFilter(x,y,[1],[2]), menghasilkan array yang berisi string dari array string x yang manaelemen yang mengandung substring y, dengan ketentuan [1] (true=contain, false =exclude), dengan compare method [2].Contoh :Option Explicit OnImports SystemImports Microsoft.VisualBasicPublic 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 SubEnd ModuleLatihan : 1. Buatlah program yang dapat menghasilkan terbilang dari suatu bilangan, contoh 123,456,789 (Seratus dua puluh tiga juta empat ratus lima puluh enam ribu tujuh ratus delapan puluh sembilan).INDOPROG 52
  53. 53. Bahasa pemrograman VB.NET Hendra, S.T.Tipe data DatePada Visual Basic variabel date disimpan sebagai integer IEEE 64-bit (8-byte) yangmewakili tanggal dengan jangkauan dari 1 Januari tahun 1 sampai dengan 31 Desembertahun 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, sebagaicontoh #5/31/1993#.Anda dapat memberikan nilai awal pada variabel tipe Date dengan penulisan sebagaiberikut :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 variabelTanggal.Member pada Class Date Date Mengambil komponen tanggal dari instance TimeOfDay Mengambil komponen waktu dari instance Day Mengambil nomor hari (1-31) dalam bulan dari instance Month Mengambil komponen bulan (1-12) dari instance Year Mengambil komponen tahun dari instance Hour Mengambil komponen jam (0-23) dari instance Minute Mengambil komponen menit (0-59) dari instance Second Mengambil komponen detik (0-59) dari instance Millisecond Mengambil komponen mili detik (0-999) dari instance DayOfWeek Mengambil nomor hari (0-6) dalam minggu dari instance DayOfYear Mengambil nomor hari (1-366) dalam tahun dari instance Ticks Mengambil jumlah ticks dari instance Now Mendapatkan tanggal dan waktu komputer Today Mendapatkan mendapatkan tanggal komputer UtcNow Mendapatkan tanggal dan wkatu komputer yang telah diknversi menjadi coordinated universal time (UTC).Contoh :Option Explicit OnImports SystemPublic Module ModDateINDOPROG 53
  54. 54. Bahasa pemrograman VB.NET Hendra, S.T. Sub Main() Dim Tanggal As Date = New Date(2005,5,30,8,29,40,900) Console.WriteLine(Tanggal.Date()) 30-05-2005 Console.WriteLine(Tanggal.TimeOfDay()) 08:29:40.9000000 Console.WriteLine(Tanggal.Day()) 30 Console.WriteLine(Tanggal.Month()) 5 Console.WriteLine(Tanggal.Year()) 2005 Console.WriteLine(Tanggal.Hour()) 8 Console.WriteLine(Tanggal.Minute()) 29 Console.WriteLine(Tanggal.Second()) 40 Console.WriteLine(Tanggal.MilliSecond()) 900 Console.WriteLine(Tanggal.DayOfWeek()) 1 Console.WriteLine(Tanggal.DayOfYear()) 150 Console.WriteLine(Tanggal.Ticks()) 632530385809000000 Console.WriteLine(DateTime.Now()) 30-05-2005 08:30:29 PM Console.WriteLine(Tanggal.Today()) 30-05-2005 Console.WriteLine(Tanggal.UTCNow()) 30-05-2005 1:37:20 PM End SubEnd ModuleVisual Basic menyediakan berbagai fungsi bantu yang merupakan member darinamespace Microsoft.VisualBasic AddDays Menambah sejumlah hari (+/-) ke instance. AddMonths Menambah sejumlah bulan (+/-) ke instance AddYears Menambah sejumlah tahun (+/-) ke instance AddHours Menambah sejumlah jam (+/-) ke instanace AddMinutes Menambah sejumkah menit (+/-) ke instance AddSeconds Menambah sejumlah detik (+/-) ke instance AddMilliseconds Menambah sejumlah millidetik (+/-) ke instanceOption Explicit OnImports SystemPublic 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 SubEnd Module Parse Mengkonversi string dalam bentuk tanggal dan waktu ke DateTime.Option Explicit OnImports SystemPublic Module ModDate Sub Main() Dim Str As String = "30-5-2005 08:30:50.900"INDOPROG 54
  55. 55. Bahasa pemrograman VB.NET Hendra, S.T. Dim Tanggal As Date Tanggal = DateTime.Parse(Str) Console.WriteLine(Tanggal) End SubEnd Module Compare Membandingkan dua instance dari DateTime dam mengembalikan ( < 0 jika tanggal1 < tanggal2, = 0 jika tanggal1 = tanggal2, dan > 0 jika tanggal1 > tanggal2) DaysInMonth Mengembalikan jumlah hari dalam tahun dan bulan tertentu. IsLeapYear Mengembalikan indikasi apakah tahun yang diberikan kabisatOption Explicit OnImports SystemPublic Module ModDate Sub Main() Dim Tanggal1 As Date = New Date(2005,5,30) Dim Tanggal2 As Date = New Date(2005,5,31) Console.WriteLine(DateTime.Compare(Tanggal1,Tanggal2)) -1 Console.WriteLine(DateTime.DaysInMonth(2005,5)) 31 Console.WriteLine(DateTime.IsLeapYear(2005)) False End SubEnd Module Subtract Menghasilkan selisih antara suatu datetime dengan instanceOption Explicit OnImports SystemPublic Module ModDate Sub Main() Dim Tanggal1 As Date = New Date(2005,5,30) Dim Tanggal2 As Date = New Date(2005,5,31) Console.WriteLine(Tanggal1.Subtract(Tanggal2)) -1 00:00:00 End SubEnd Module ToLocalTime Konversi Instance ke LocalTime ToLongDateString Konversi Instance ke String dengan format setting LongDateString ToLongTimeString Konversi Instance ke String dengan format setting LongTime ToShortDateString Konversi Instance ke String dengan format setting ShortDate ToShortTimeString Konversi Instance ke String dengan format setting ShortTime ToString Konversi Instance ke String ToUniversalTime Konversi Instance ke UTCINDOPROG 55
  56. 56. Bahasa pemrograman VB.NET Hendra, S.T.Module Date pada Namespace Microsoft.VisualBasicDateSerial(year,month,day), mengembalikan data tanggal sesuai dengan tahun, bulan danhari yang ditentukan.TimeSerial(hour, minute, second), mengembalikan waktu sesuai dengan jam, menit dandetik.Now(), mengembalikan tanggal dan waktu komputer.Today(), mengembalikan tanggal komputer.TimeOfDay(), mengembalikan tanggal komputer dalam bentuk string.Timer(), mengembalikan data bertipe double yang menunjukan jumlah detik sejak tengahmalam.DateString(), mengembalikan tanggal komputer dengan format MM-dd-yyyy dalambentuk string.TimeString(), mengembalikan waktu komputerDateValue(string), mengembalikan tanggal dari hasil konversi string tanggal.Day(DateTime), mengembalikan bagian hari dari data tanggalMonth(DateTime), mengembalikan bagian bulan dari data tanggalYear(DateTime), mengembalikan bagian tahun dari data tanggalHour(DateTime), mengembalikan bagian jam dari data tanggalMinute(DateTime), mengembalikan bagian menit dari data tanggalSecond(DateTime), mengembalikan bagian detik dari data tanggalWeekday(DateTime, DayofWeek), mengembalikan nomor hari dalam minggu dariDateTime (1 = minggu, …7 = sabtu).WeekdayName(WeekDay, Abbrev), mengembalikan nama hari berdasarkan nomor hari.(Abbrev = True, singkatan)INDOPROG 56

×