Bagikan melalui


Pernyataan di Visual Basic

Pernyataan di Visual Basic adalah instruksi lengkap. Ini dapat berisi kata kunci, operator, variabel, konstanta, dan ekspresi. Setiap pernyataan termasuk dalam salah satu kategori berikut:

  • Pernyataan Deklarasi, yang memberi nama variabel, konstanta, atau prosedur, dan juga dapat menentukan jenis data.

  • Pernyataan yang Dapat Dieksekusi, yang memulai tindakan. Pernyataan ini dapat memanggil metode atau fungsi, dan dapat mengulang atau bercabang melalui blok-blok kode. Pernyataan yang dapat dieksekusi mencakup Pernyataan Penugasan, yang menetapkan nilai atau ekspresi ke variabel atau konstanta.

Topik ini menjelaskan setiap kategori. Selain itu, topik ini menjelaskan cara menggabungkan beberapa pernyataan pada satu baris dan cara melanjutkan pernyataan melalui beberapa baris.

Pernyataan deklarasi

Anda menggunakan pernyataan deklarasi untuk memberi nama dan menentukan prosedur, variabel, properti, array, dan konstanta. Saat Anda mendeklarasikan elemen pemrograman, Anda juga dapat menentukan jenis data, tingkat akses, dan cakupannya. Untuk informasi selengkapnya, lihat Karakteristik Elemen yang Dinyatakan.

Contoh berikut berisi tiga deklarasi.

Public Sub ApplyFormat()
    Const limit As Integer = 33
    Dim thisWidget As New widget
    ' Insert code to implement the procedure.
End Sub

Pernyataan pertama adalah Sub. Bersama dengan pernyataan pencocokannya End Sub , ia mendeklarasikan prosedur bernama applyFormat. Ini juga menentukan bahwa applyFormat adalah Public, yang berarti bahwa kode apa pun yang dapat merujuknya dapat memanggilnya.

Deklarasi kedua adalah Const pernyataan, yang menyatakan konstanta limit, menentukan Integer jenis data dan nilai 33.

Deklarasi ketiga adalah Dim pernyataan, yang mendeklarasikan variabel thisWidget. Jenis data adalah objek tertentu, yaitu objek yang dibuat dari Widget kelas . Anda dapat mendeklarasikan variabel menjadi dari jenis data dasar apa pun atau jenis objek apa pun yang diekspos dalam aplikasi yang Anda gunakan.

Nilai Awal

Ketika kode yang berisi pernyataan deklarasi berjalan, Visual Basic mencadangkan memori yang diperlukan untuk elemen yang dideklarasikan. Jika elemen menyimpan nilai, Visual Basic menginisialisasinya ke nilai default untuk jenis datanya. Untuk informasi selengkapnya, lihat "Perilaku" di Pernyataan Dim.

Anda dapat menetapkan nilai awal ke variabel sebagai bagian dari deklarasinya, seperti yang diilustrasikan contoh berikut.

Dim m As Integer = 45
' The preceding declaration creates m and assigns the value 45 to it.

Jika variabel adalah variabel objek, Anda dapat secara eksplisit membuat instans kelasnya saat Anda mendeklarasikannya dengan menggunakan kata kunci Operator Baru , seperti yang diilustrasikan contoh berikut.

Dim f As New FileInfo("filename")

Perhatikan bahwa nilai awal yang Anda tentukan dalam pernyataan deklarasi tidak ditetapkan ke variabel hingga eksekusi mencapai pernyataan deklarasinya. Hingga saat itu, variabel berisi nilai default untuk jenis datanya.

Pernyataan yang dapat dieksekusi

Pernyataan yang dapat dieksekusi melakukan tindakan. Ini dapat memanggil prosedur, cabang ke tempat lain dalam kode, mengulangi beberapa pernyataan, atau mengevaluasi ekspresi. Pernyataan penugasan adalah kasus khusus dari pernyataan yang dapat dieksekusi.

Contoh berikut menggunakan If...Then...Else struktur kontrol untuk menjalankan blok kode yang berbeda berdasarkan nilai variabel. Dalam setiap blok kode, perulangan For...Next menjalankan berapa kali tertentu.

Public Sub StartWidget(ByVal aWidget As widget,
    ByVal clockwise As Boolean, ByVal revolutions As Integer)
    Dim counter As Integer
    If clockwise = True Then
        For counter = 1 To revolutions
            aWidget.SpinClockwise()
        Next counter
    Else
        For counter = 1 To revolutions
            aWidget.SpinCounterClockwise()
        Next counter
    End If
End Sub

Pernyataan If dalam contoh sebelumnya memeriksa nilai parameter clockwise. Jika nilainya adalah True, ia memanggil metode spinClockwise dari aWidget. Jika nilainya adalah False, ia memanggil metode spinCounterClockwise dari aWidget. Struktur If...Then...Else kontrol diakhir dengan End If.

Perulangan For...Next dalam setiap blok memanggil metode yang sesuai beberapa kali, sesuai dengan nilai parameter revolutions.

Pernyataan tugas

Pernyataan penugasan melakukan operasi penugasan, yang terdiri dari mengambil nilai di sisi kanan operator penugasan (=) dan menyimpannya di elemen di sebelah kiri, seperti dalam contoh berikut.

v = 42

Dalam contoh sebelumnya, pernyataan penugasan menyimpan nilai harfiah 42 dalam variabel v.

Elemen pemrograman yang memenuhi syarat

Elemen pemrograman di sisi kiri operator penugasan harus dapat menerima dan menyimpan nilai. Ini berarti harus berupa variabel atau properti yang bukan ReadOnly, atau harus berupa elemen array. Dalam konteks pernyataan penugasan, elemen seperti itu kadang-kadang disebut lvalue, untuk "nilai kiri."

Nilai di sisi kanan operator penugasan dihasilkan oleh ekspresi, yang dapat terdiri dari kombinasi literal, konstanta, variabel, properti, elemen array, ekspresi lain, atau panggilan fungsi. Contoh berikut mengilustrasikan hal ini.

x = y + z + FindResult(3)

Contoh sebelumnya menambahkan nilai yang disimpan dalam variabel y ke nilai yang disimpan dalam variabel z, lalu menambahkan nilai yang dikembalikan oleh panggilan ke fungsi findResult. Nilai total ekspresi ini kemudian disimpan dalam variabel x.

Jenis data dalam pernyataan penugasan

Selain nilai numerik, operator penugasan juga dapat menetapkan String nilai, seperti yang diilustrasikan contoh berikut.

Dim a, b As String
a = "String variable assignment"
b = "Con" & "cat" & "enation"
' The preceding statement assigns the value "Concatenation" to b.

Anda juga dapat menetapkan Boolean nilai, menggunakan Boolean literal atau Boolean ekspresi, seperti yang diilustrasikan contoh berikut.

Dim r, s, t As Boolean
r = True
s = 45 > 1003
t = 45 > 1003 Or 45 > 17
' The preceding statements assign False to s and True to t.

Demikian pula, Anda dapat menetapkan nilai yang sesuai ke elemen pemrograman dari Charjenis data , Date, atau Object . Anda juga dapat menetapkan instans objek ke elemen yang dinyatakan berasal dari kelas tempat instans tersebut dibuat.

Pernyataan penugasan gabungan

Pernyataan penetapan gabungan terlebih dahulu melakukan operasi pada ekspresi sebelum menetapkannya ke elemen pemrograman. Contoh berikut mengilustrasikan salah satu operator ini, +=, yang menaikkan nilai variabel di sisi kiri operator dengan nilai ekspresi di sebelah kanan.

n += 1

Contoh sebelumnya menambahkan 1 ke nilai n, lalu menyimpan nilai baru tersebut di n. Ini setara dengan pernyataan berikut:

n = n + 1

Berbagai operasi penugasan majemuk dapat dilakukan menggunakan operator jenis ini. Untuk daftar operator ini dan informasi selengkapnya tentang operator tersebut, lihat Operator Penugasan.

Operator penetapan perangkaian (&=) berguna untuk menambahkan string ke akhir string yang sudah ada, seperti yang diilustrasikan contoh berikut.

Dim q As String = "Sample "
q &= "String"
' q now contains "Sample String".

Konversi Jenis dalam Pernyataan Penugasan

Nilai yang Anda tetapkan ke variabel, properti, atau elemen array harus dari jenis data yang sesuai dengan elemen tujuan tersebut. Secara umum, Anda harus mencoba menghasilkan nilai dari jenis data yang sama dengan elemen tujuan. Namun, beberapa jenis dapat dikonversi ke jenis lain selama penugasan.

Untuk informasi tentang mengonversi antar jenis data, lihat Konversi Tipe di Visual Basic. Singkatnya, Visual Basic secara otomatis mengonversi nilai dari jenis tertentu ke jenis lain yang dapat diperluas. Konversi yang melebar adalah konversi yang selalu berhasil pada waktu proses dan tidak kehilangan data apa pun. Misalnya, Visual Basic mengonversi nilai Integer menjadi Double jika diperlukan, karena Integer melebarkan ke Double. Untuk informasi selengkapnya, lihat Memperlebar dan Mempersempit Konversi.

Konversi yang dipersempit (yang tidak melebar) membawa risiko kegagalan pada waktu proses, atau kehilangan data. Anda dapat melakukan konversi yang mempersempit secara eksplisit dengan menggunakan fungsi konversi jenis, atau Anda dapat mengarahkan pengkompilasi untuk melakukan semua konversi secara implisit dengan mengatur Option Strict Off. Untuk informasi selengkapnya, lihat Konversi Implisit dan Eksplisit.

Menempatkan beberapa pernyataan pada satu baris

Anda dapat memiliki beberapa pernyataan pada satu baris yang dipisahkan oleh karakter titik dua (:). Contoh berikut mengilustrasikan hal ini.

Dim sampleString As String = "Hello World" : MsgBox(sampleString)

Meskipun kadang-kadang nyaman, bentuk sintaks ini membuat kode Anda sulit dibaca dan dirawat. Dengan demikian, disarankan agar Anda meletakkan satu pernyataan di setiap baris.

Melanjutkan pernyataan melalui beberapa baris

Pernyataan biasanya cocok pada satu baris, tetapi ketika terlalu panjang, Anda dapat melanjutkannya ke baris berikutnya menggunakan urutan kelanjutan baris, yang terdiri dari spasi diikuti oleh karakter garis bawah (_) diikuti oleh pengembalian pengangkutan. Dalam contoh berikut, MsgBox pernyataan yang dapat dieksekusi dilanjutkan selama dua baris.

Public Sub DemoBox()
    Dim nameVar As String
    nameVar = "John"
    MsgBox("Hello " & nameVar _
        & ". How are you?")
End Sub

Kelanjutan baris implisit

Dalam banyak kasus, Anda dapat melanjutkan pernyataan pada baris berturut-turut berikutnya tanpa menggunakan karakter garis bawah (_). Elemen sintaks berikut secara implisit melanjutkan pernyataan pada baris kode berikutnya.

  • Setelah koma (,). Contohnya:

    Public Function GetUsername(ByVal username As String,
                                ByVal delimiter As Char,
                                ByVal position As Integer) As String
    
        Return username.Split(delimiter)(position)
    End Function
    
  • Setelah tanda kurung terbuka (() atau sebelum kurung tutup ()). Contohnya:

    Dim username = GetUsername(
        Security.Principal.WindowsIdentity.GetCurrent().Name,
        CChar("\"),
        1
      )
    
  • Setelah kurung kurawal terbuka ({) atau sebelum kurung kurawal tertutup (}). Contohnya:

    Dim customer = New Customer With {
      .Name = "Terry Adams",
      .Company = "Adventure Works",
      .Email = "terry@www.adventure-works.com"
    }
    

    Untuk informasi selengkapnya, lihat Penginisialisasi Objek: Tipe Bernama dan Anonim atau Penginisialisasi Koleksi.

  • Setelah ekspresi tersemat terbuka (<%=) atau sebelum penutupan ekspresi yang disematkan (%>) dalam literal XML. Contohnya:

    Dim customerXml = <Customer>
                          <Name>
                              <%=
                                  customer.Name
                              %>
                          </Name>
                          <Email>
                              <%=
                                  customer.Email
                              %>
                          </Email>
                      </Customer>
    

    Untuk informasi selengkapnya, lihat Ekspresi Tersemat dalam XML.

  • Setelah operator penggabungan (&). Contohnya:

    cmd.CommandText = 
        "SELECT * FROM Titles JOIN Publishers " &
        "ON Publishers.PubId = Titles.PubID " &
        "WHERE Publishers.State = 'CA'"
    

    Untuk informasi selengkapnya, lihat Operator yang Tercantum menurut Fungsi.

  • Setelah operator penugasan (=, &=, :=, +=, -=, *=, /=, \=, ^=, <<=, >>=). Contohnya:

    Dim fileStream =
      My.Computer.FileSystem.
        OpenTextFileReader(filePath)
    

    Untuk informasi selengkapnya, lihat Operator yang Tercantum menurut Fungsi.

  • Setelah operator biner (+, -, /, *, Mod, <>, <, >, <=, >=, ^, >>, <<, And, AndAlso, Or, OrElse, Like, Xor) dalam ekspresi. Contohnya:

    Dim memoryInUse =
      My.Computer.Info.TotalPhysicalMemory +
      My.Computer.Info.TotalVirtualMemory -
      My.Computer.Info.AvailablePhysicalMemory -
      My.Computer.Info.AvailableVirtualMemory
    

    Untuk informasi selengkapnya, lihat Operator yang Tercantum menurut Fungsi.

  • Setelah operator Is dan IsNot . Contohnya:

    If TypeOf inStream Is 
      IO.FileStream AndAlso
      inStream IsNot
      Nothing Then
    
        ReadFile(inStream)
    
    End If
    

    Untuk informasi selengkapnya, lihat Operator yang Tercantum menurut Fungsi.

  • Setelah karakter kualifikasi anggota (.) dan sebelum nama anggota. Contohnya:

    Dim fileStream =
      My.Computer.FileSystem.
        OpenTextFileReader(filePath)
    

    Namun, Anda harus menyertakan karakter kelanjutan baris (_) setelah karakter pengenal anggota saat Anda menggunakan With pernyataan atau saat menyediakan nilai dalam daftar inisialisasi untuk sebuah jenis. Pertimbangkan untuk memutuskan baris setelah operator pemberian nilai (misalnya, =) saat Anda menggunakan pernyataan With atau daftar inisialisasi objek. Contohnya:

    ' Not allowed:
    ' Dim aType = New With { .
    '    PropertyName = "Value"
    
    ' Allowed:
    Dim aType = New With {.PropertyName =
        "Value"}
    
    
    
    Dim log As New EventLog()
    
    ' Not allowed:
    ' With log
    '    .
    '      Source = "Application"
    ' End With
    
    ' Allowed:
    With log
        .Source =
          "Application"
    End With
    

    Untuk informasi selengkapnya, lihat Pernyataan With... End With atau Penginisialisasi Objek: Jenis Bernama dan Anonim.

  • Setelah pengualifikasi properti sumbu XML (. atau .@ atau ...). Namun, Anda harus menyertakan karakter kelanjutan baris (_) saat Anda menentukan kualifikasi anggota saat Anda menggunakan With kata kunci. Contohnya:

    Dim customerName = customerXml.
      <Name>.Value
    
    Dim customerEmail = customerXml...
      <Email>.Value
    

    Untuk informasi selengkapnya, lihat Properti Sumbu XML.

  • Setelah tanda kurang dari (<) atau sebelum tanda lebih besar dari (>) saat Anda menentukan atribut. Juga setelah tanda yang lebih besar dari (>) saat Anda menentukan atribut. Namun, Anda harus menyertakan karakter kelanjutan baris (_) saat menentukan atribut tingkat perakitan atau tingkat modul. Contohnya:

    <
    Serializable()
    >
    Public Class Customer
        Public Property Name As String
        Public Property Company As String
        Public Property Email As String
    End Class
    

    Untuk informasi selengkapnya, lihat Gambaran umum atribut.

  • Sebelum dan sesudah operator kueri (Aggregate, Distinct, From, Group By, Group Join, Join, Let, Order By, Select, Skip, Skip While, Take, Take While, Where, In, Into, On, Ascending, dan Descending). Anda tidak dapat memecah baris antara kata kunci operator kueri yang terdiri dari beberapa kata kunci (Order By, , Group JoinTake While, dan Skip While). Contohnya:

    Dim vsProcesses = From proc In
                        Process.GetProcesses
                      Where proc.MainWindowTitle.Contains("Visual Studio")
                      Select proc.ProcessName, proc.Id,
                             proc.MainWindowTitle
    

    Untuk informasi selengkapnya, lihat Kueri.

  • Setelah kata kunci In dalam pernyataan For Each. Contohnya:

    For Each p In
      vsProcesses
    
        Console.WriteLine("{0}" & vbTab & "{1}" & vbTab & "{2}",
          p.ProcessName,
          p.Id,
          p.MainWindowTitle)
    Next
    

    Untuk informasi selengkapnya, lihat Untuk Setiap... Pernyataan Berikutnya.

  • Setelah kata kunci From dalam penginisialisasi koleksi. Contohnya:

    Dim days = New List(Of String) From
      {
       "Mo", "Tu", "We", "Th", "F", "Sa", "Su"
      }
    

    Untuk informasi selengkapnya, lihat Penginisialisasi Koleksi.

Menambahkan komentar

Kode sumber tidak selalu jelas, bahkan kepada programmer yang menulisnya. Sebagian besar programmer, oleh karena itu, menggunakan komentar yang disematkan secara bebas untuk membantu mendokumentasikan kode mereka. Komentar dalam kode dapat menjelaskan prosedur atau instruksi tertentu kepada siapa pun yang membaca atau bekerja dengannya nanti. Visual Basic mengabaikan komentar selama kompilasi, dan tidak memengaruhi kode yang dikompilasi.

Baris komentar dimulai dengan apostrof (') atau REM diikuti oleh spasi. Mereka dapat ditambahkan di mana saja dalam kode, kecuali dalam string. Untuk menambahkan komentar ke pernyataan, sisipkan apostrof atau REM setelah pernyataan, diikuti dengan komentar. Komentar juga dapat berada pada baris terpisah. Contoh berikut menunjukkan kemungkinan ini.

' This is a comment on a separate code line.
REM This is another comment on a separate code line.
x += a(i) * b(i) ' Add this amount to total.
MsgBox(statusMessage) REM Inform operator of status.

Memeriksa kesalahan kompilasi

Jika, setelah Anda mengetik baris kode, baris ditampilkan dengan garis bawah biru bergelombang (pesan kesalahan mungkin juga muncul), ada kesalahan sintaks dalam pernyataan. Anda harus mencari tahu apa yang salah dengan pernyataan (dengan melihat di daftar tugas, atau mengarahkan kursor ke kesalahan dengan penunjuk mouse dan membaca pesan kesalahan) dan memperbaikinya. Hingga Anda memperbaiki semua kesalahan sintaks dalam kode Anda, program Anda akan gagal dikompilasi dengan benar.

Istilah Definisi
Operator Penugasan Menyediakan tautan ke halaman referensi bahasa yang mencakup operator penugasan seperti =, , *=dan &=.
Operator dan Ekspresi Memperlihatkan cara menggabungkan elemen dengan operator untuk menghasilkan nilai baru.
Cara: Putuskan dan Gabungkan Pernyataan dalam Kode Memperlihatkan cara memecah satu pernyataan menjadi beberapa baris dan cara menempatkan beberapa pernyataan pada baris yang sama.
Cara: Pernyataan Label Menunjukkan cara memberi label pada baris kode.