Pemrograman · Bahasa pemrograman
Tutorial Visual Basic .NET untuk pemula
Jawaban singkat
Visual Basic .NET (VB.NET) adalah bahasa berorientasi objek bertipe statis untuk platform .NET dengan kata kunci mirip bahasa Inggris seperti Dim, If ... Then ... End If, dan For ... Next. Bahasa ini tidak peka huruf besar/kecil dan memakai library .NET yang sama dengan C#. Buat proyek dengan dotnet new console -lang VB dan jalankan dengan dotnet run. VBA, bahasa macro di dalam Microsoft Office, adalah kerabat lama dengan sintaks serupa.
Apa itu Visual Basic .NET dan siapa yang memakainya
VB.NET adalah penerus .NET dari Visual Basic klasik (VB6). Bahasa ini dikompilasi ke intermediate language yang sama dengan C#, sehingga kedua bahasa dapat berbagi library dan bahkan dicampur dalam satu solution. Terutama dipakai untuk aplikasi desktop Windows (Windows Forms, WPF), tool bisnis internal, aplikasi web ASP.NET, dan pemeliharaan code base VB yang sudah ada.
Microsoft terus mendukung Visual Basic di .NET modern, tetapi menyatakan tidak berencana mengembangkan bahasa ini dengan fitur besar baru; fitur .NET baru biasanya muncul lebih dulu di C#. Untuk proyek baru tanpa kode VB yang sudah ada, C# adalah pilihan yang lebih umum, tetapi VB.NET tetap bahasa yang mudah dibaca untuk belajar pemrograman dan untuk perangkat lunak bisnis.
Pemasangan dan menjalankan Hello, world
Pasang .NET SDK (Windows, macOS, atau Linux). Visual Studio di Windows juga menyertakan template Visual Basic dan visual form designer.
dotnet new console -lang VB -o HelloVB
cd HelloVB
dotnet run
# Hello, world!' Program.vb
Imports System
Module Program
Sub Main(args As String())
Console.WriteLine("Hello, world!")
End Sub
End ModuleModule menyimpan prosedur bersama, dan Sub Main adalah entry point. Komentar diawali dengan apostrof '. Setiap statement biasanya berakhir di akhir baris; tidak ada titik koma atau kurung kurawal.
Variabel dan tipe dasar
Deklarasikan variabel dengan Dim name As Type. Dengan Option Infer On (default) Anda dapat menghilangkan tipe saat meng-assign nilai. Taruh Option Strict On di bagian atas setiap file (atau atur di proyek) agar konversi implisit yang berisiko menjadi compile error.
| Tipe | Contoh | Catatan |
|---|---|---|
| Integer | Dim n As Integer = 42 | 32-bit; Long adalah 64-bit |
| Double | Dim x As Double = 3.14 | Floating point 64-bit |
| Decimal | Dim price As Decimal = 19.99D | Desimal eksak, cocok untuk uang |
| String | Dim s As String = "hello" | Gabungkan string dengan & |
| Char | Dim c As Char = "a"c | Satu karakter, sufiks c |
| Boolean | Dim ok As Boolean = True | True / False |
| Date | Dim d As Date = #2026-01-15# | Nilai tanggal dan waktu |
Option Strict On
Module Types
Sub Main()
Dim name As String = "Ana"
Dim age = 30 ' inferred as Integer
Console.WriteLine(name & " is " & age.ToString())
Console.WriteLine($"Next year {name} is {age + 1}")
Console.WriteLine(7 / 2) ' 3.5 (always Double)
Console.WriteLine(7 \ 2) ' 3 (integer division)
Console.WriteLine(7 Mod 2) ' 1
End Sub
End ModuleAlur kontrol
Dim score = 85
If score >= 90 Then
Console.WriteLine("A")
ElseIf score >= 80 Then
Console.WriteLine("B")
Else
Console.WriteLine("C")
End If
Select Case score
Case 90 To 100
Console.WriteLine("excellent")
Case 80 To 89
Console.WriteLine("good")
Case Else
Console.WriteLine("keep going")
End Select
For i = 1 To 3
Console.WriteLine($"{i} squared is {i * i}")
Next
Dim n = 3
Do While n > 0
n -= 1
LoopStatement ini ditaruh di dalam Sub. For i = 1 To 3 menyertakan kedua ujung; tambahkan Step -1 untuk menghitung mundur. For Each item In collection melakukan perulangan atas koleksi apa pun. Gunakan Exit For atau Exit Do untuk keluar lebih awal dari perulangan. Untuk kondisi, pilih AndAlso dan OrElse: keduanya berhenti mengevaluasi begitu hasilnya diketahui, sedangkan And dan Or selalu mengevaluasi kedua sisi.
Sub, function, dan lambda
Sub tidak mengembalikan nilai; Function mengembalikan. Parameter diteruskan secara ByVal (salinan) secara default; ByRef memungkinkan prosedur mengubah variabel milik pemanggil. Parameter dapat Optional dengan nilai default.
Function Add(a As Integer, b As Integer) As Integer
Return a + b
End Function
Sub Greet(Optional name As String = "world")
Console.WriteLine($"Hello, {name}!")
End Sub
Sub Increment(ByRef value As Integer)
value += 1
End Sub
' Inside Sub Main:
Dim x = 5
Increment(x) ' x is now 6
Greet() ' Hello, world!
Dim square = Function(n As Integer) n * n ' lambda
Console.WriteLine(square(Add(1, 2))) ' 9Array, List, dan Dictionary
Dim nums() As Integer = {3, 1, 2}
Dim five(4) As Integer ' 5 elements, indexes 0 to 4
Array.Sort(nums)
Console.WriteLine(String.Join(", ", nums)) ' 1, 2, 3
Dim names As New List(Of String) From {"Ana", "Ben"}
names.Add("Cleo")
Console.WriteLine(names.Count) ' 3
Dim ages As New Dictionary(Of String, Integer)
ages("Ana") = 30
ages("Ben") = 17
For Each pair In ages
Console.WriteLine($"{pair.Key}: {pair.Value}")
NextArray dan list diindeks dari 0 dengan tanda kurung: nums(0). Tipe generik memakai Of: List(Of String) adalah bentuk VB dari List<string> di C#. Perhatikan bahwa Dim five(4) mendeklarasikan batas atas, bukan panjang, jadi array tersebut punya lima elemen.
Fitur khas: class, property, dan query LINQ
VB.NET sepenuhnya berorientasi objek: class punya property, method, constructor (Sub New), pewarisan (Inherits), interface (Implements), dan event (Event, RaiseEvent, Handles). Query LINQ dapat ditulis dalam sintaks query yang mudah dibaca.
Public Class Person
Public Property Name As String
Public Property Age As Integer
Public Sub New(name As String, age As Integer)
Me.Name = name
Me.Age = age
End Sub
End Class
' Inside Sub Main:
Dim people As New List(Of Person) From {
New Person("Ana", 30),
New Person("Ben", 17)
}
Dim adults = From p In people
Where p.Age >= 18
Select p.Name
For Each adultName In adults
Console.WriteLine(adultName) ' Ana
NextKarena VB tidak peka huruf besar/kecil, Name dan name adalah identifier yang sama; di dalam constructor, Me.Name merujuk ke property dan name ke parameter. Kemudahan khas VB lainnya meliputi blok With ... End With, XML literal, dan namespace My untuk tugas umum.
Penanganan error
VB.NET memakai structured exception handling: Try, Catch, Finally, dan Throw. Catch dapat menyertakan filter When. Gaya On Error GoTo yang lebih lama dari VB6 dan VBA masih dapat dikompilasi tetapi sebaiknya tidak dipakai di kode .NET baru.
Function ParseAge(s As String) As Integer
Dim n As Integer
If Not Integer.TryParse(s, n) Then
Throw New FormatException($"Not a number: {s}")
End If
If n < 0 Then Throw New ArgumentOutOfRangeException(NameOf(s))
Return n
End Function
' Inside Sub Main:
Try
Console.WriteLine(ParseAge("abc"))
Catch ex As FormatException
Console.WriteLine("Error: " & ex.Message) ' Error: Not a number: abc
Finally
Console.WriteLine("done")
End TryProgram lengkap kecil: frekuensi kata
Imports System
Imports System.Collections.Generic
Imports System.Linq
Module WordCount
Sub Main()
Dim text = "the cat and the hat and the bat"
Dim counts As New Dictionary(Of String, Integer)
For Each word In text.Split(" "c)
If counts.ContainsKey(word) Then
counts(word) += 1
Else
counts(word) = 1
End If
Next
Dim top = counts.OrderByDescending(Function(kv) kv.Value).Take(2)
For Each kv In top
Console.WriteLine($"{kv.Key} {kv.Value}")
Next
End Sub
End Module
' the 3
' and 2VBA: Visual Basic di dalam Microsoft Office
Visual Basic for Applications (VBA) adalah bahasa macro bawaan aplikasi Microsoft Office seperti Excel, Word, dan Access. VBA berbasis Visual Basic klasik, bukan .NET: berjalan di dalam aplikasi Office, memakai object model Office (workbook, range, dokumen), dan diedit di editor VBA (Alt+F11 di Windows). Sintaks dasar Dim, If, For, dan Sub sama, sehingga pengetahuan VB.NET berguna untuk VBA.
' VBA in Excel: write the squares of 1 to 5 into column A
Sub FillSquares()
Dim i As Long
For i = 1 To 5
Cells(i, 1).Value = i * i
Next i
MsgBox "Done"
End SubLangkah selanjutnya
- Microsoft Learn: dokumentasi Visual Basic, termasuk panduan memulai dan referensi bahasa.
- Pelajari .NET base class library (koleksi, file, LINQ); library ini dipakai bersama dengan C#.
- Untuk aplikasi desktop, coba template Windows Forms atau WPF di Visual Studio.
- Untuk otomatisasi Office, baca referensi VBA di Microsoft Learn untuk aplikasi yang Anda pakai.
FAQ
Apakah Visual Basic .NET sudah mati?
Tidak. VB.NET didukung di versi .NET terkini dan di Visual Studio, tetapi Microsoft tidak berencana menambah fitur bahasa besar, sehingga sebagian besar proyek .NET baru memilih C#.
Apa perbedaan VB.NET dan VBA?
VB.NET adalah bahasa .NET lengkap untuk membangun aplikasi mandiri. VBA adalah bahasa macro berbasis Visual Basic klasik yang berjalan di dalam aplikasi Office seperti Excel; sintaksnya mirip, tetapi runtime dan librarynya berbeda.
Sebaiknya belajar VB.NET atau C#?
Jika Anda memelihara kode VB atau menginginkan sintaks yang sangat mudah dibaca, VB.NET tidak masalah. Untuk proyek baru, peluang kerja, dan fitur .NET terbaru, C# biasanya investasi yang lebih baik, dan library yang Anda pelajari dapat dipakai di keduanya.
Apakah Visual Basic peka huruf besar/kecil?
Tidak. Dim Total, total, dan TOTAL merujuk ke variabel yang sama, dan editor biasanya menormalkan huruf kapitalnya untuk Anda.