cv.cm

Pemrograman · Bahasa pemrograman

Tutorial Visual Basic .NET untuk pemula

7 menit baca

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 Module

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

TipeContohCatatan
IntegerDim n As Integer = 4232-bit; Long adalah 64-bit
DoubleDim x As Double = 3.14Floating point 64-bit
DecimalDim price As Decimal = 19.99DDesimal eksak, cocok untuk uang
StringDim s As String = "hello"Gabungkan string dengan &
CharDim c As Char = "a"cSatu karakter, sufiks c
BooleanDim ok As Boolean = TrueTrue / False
DateDim 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 Module

Alur 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
Loop

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

Array, 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}")
Next

Array 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
Next

Karena 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 Try

Program 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 2

VBA: 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 Sub

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

Semua tutorial pemrograman