Bagikan melalui


Pernyataan dalam Visual Basic

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

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

  • Pernyataan yang Bisa Dieksekusi, yang memulai tindakan. Pernyataan ini bisa memanggil metode atau fungsi, dan mereka bisa mengulangi atau bercabang melalui blok kode. Pernyataan yang bisa 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 serta menentukan prosedur, variabel, properti, array, dan konstanta. Saat Anda mendeklarasikan elemen pemrograman, Anda juga dapat menentukan tipe data, tingkat akses, dan cakupannya. Untuk informasi selengkapnya, lihat Karakteristik Elemen yang Dideklarasikan.

Contoh berikut ini berisi tiga deklarasi.

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

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

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

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

Nilai Awal

Saat kode yang berisi pernyataan deklarasi berjalan, Visual Basic menyimpan memori yang diperlukan untuk elemen yang dideklarasikan. Bila elemen menyimpan nilai, Visual Basic menginisialisasinya ke nilai default untuk tipe datanya. Untuk informasi lebih lanjut, lihat "Perilaku" di Pernyataan Dim.

Anda bisa menetapkan nilai awal ke variabel sebagai bagian dari deklarasinya, seperti yang digambarkan oleh 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 bisa 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")

Harap diingat bahwa nilai awal yang Anda tentukan dalam pernyataan deklarasi tidak ditetapkan ke variabel hingga eksekusi mencapai pernyataan deklarasinya. Sampai saat itu, variabel akan berisi nilai default untuk tipe datanya.

Pernyataan yang bisa dieksekusi

Pernyataan yang bisa dieksekusi melakukan tindakan. Pernyataan ini dapat memanggil prosedur, bercabang ke tempat lain dalam kode, loop melalui beberapa pernyataan, atau mengevaluasi ekspresi. Pernyataan penugasan adalah kasus khusus dari pernyataan yang bisa dieksekusi.

Contoh berikut ini menggunakan struktur kontrol If...Then...Else untuk menjalankan blok kode yang berbeda berdasarkan nilai variabel. Pada setiap blok kode, perulangan For...Next menjalankan beberapa 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 pada contoh sebelumnya memeriksa nilai parameter clockwise. Jika nilainya adalah True, pernyataan ini memanggil spinClockwise metode aWidget. Jika nilainya adalah False, pernyataan ini memanggil spinCounterClockwise metode aWidget. Struktur kontrol If...Then...Else diakhiri dengan End If.

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

Pernyataan penugasan

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

v = 42

Pada contoh sebelumnya, pernyataan penugasan menyimpan nilai literal 42 dalam variabel v.

Elemen pemrograman yang memenuhi syarat

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

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

x = y + z + FindResult(3)

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

Tipe data pada pernyataan penetapan

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

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

Anda juga bisa menetapkan nilai Boolean, menggunakan literal Boolean atau ekspresi Boolean, 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 juga, Anda dapat menetapkan nilai yang sesuai ke elemen pemrograman dari jenis data Char, Date, atau Object. Anda juga bisa menetapkan instans objek ke elemen yang dideklarasikan sebagai kelas tempat instans tersebut dibuat.

Pernyataan penetapan majemuk

Pernyataan penetapan campuran terlebih dahulu melakukan operasi pada ekspresi sebelum menetapkannya ke elemen pemrograman. Contoh berikut ini 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, kemudian menyimpan nilai baru tersebut di n. Ini adalah singkatan yang setara dengan pernyataan berikut ini:

n = n + 1

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

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

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

Jenis Konversi dalam Pernyataan Penetapan

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

Untuk informasi tentang mengonversi antar jenis data, lihat Konversi Jenis dalam Visual Basic. Singkatnya, Visual Basic mengubah nilai dari jenis tertentu ke jenis lain yang melebar secara otomatis. Konversi yang melebar adalah konversi yang selalu berhasil pada durasi dan tidak kehilangan data apa pun. Contohnya, Visual Basic mengonversi nilai Integer menjadi Double ketika sesuai, karena Integer melebar ke Double. Untuk informasi selengkapnya, lihat Konversi Pelebaran dan Penyempitan.

Mempersempit konversi (yang tidak melebar) memiliki risiko kegagalan pada durasi, atau kehilangan data. Anda bisa melakukan konversi yang mempersempit secara eksplisit dengan menggunakan fungsi konversi jenis, atau Anda dapat mengarahkan kompilator 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 bisa memiliki beberapa pernyataan pada satu baris yang dipisahkan oleh karakter titik dua (:). Contoh berikut mengilustrasikan langkah-langkah ini:

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

Meskipun kadang-kadang nyaman, bentuk sintaks ini membuat kode Anda sulit dibaca dan dipertahankan. Dengan demikian, Anda disarankan agar menyimpan satu pernyataan ke dalam garis.

Melanjutkan pernyataan melalui beberapa baris

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

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

Kelanjutan baris implisit

Pada banyak kasus, Anda dapat melanjutkan pernyataan pada baris berturut-turut berikutnya tanpa menggunakan karakter garis bawah (_). Elemen sintaks berikut ini 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 penutup (}). Contohnya:

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

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

  • Setelah ekspresi tersemat terbuka (<%=) atau sebelum penutupan ekspresi tersemat (%>) 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 perangkaian (&). Contohnya:

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

    Untuk informasi selengkapnya, lihat Operator yang Tercantum oleh Fungsionalitas.

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

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

    Untuk informasi selengkapnya, lihat Operator yang Tercantum oleh Fungsionalitas.

  • 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 oleh Fungsionalitas.

  • 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 oleh Fungsionalitas.

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

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

    Namun, Anda harus menyertakan karakter kelanjutan baris (_) mengikuti karakter kualifikasi anggota ketika Anda menggunakan pernyataan With atau menyediakan nilai dalam daftar inisialisasi untuk jenis. Pertimbangkan untuk memutuskan baris setelah operator penugasan (misalnya, =) ketika 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 Dengan... Akhiri Dengan Pernyataan 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 kata kunci With. 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 (>) ketika Anda menentukan atribut. Juga setelah tanda lebih besar dari (>) saat Anda menentukan atribut. Namun, Anda harus menyertakan karakter kelanjutan baris (_) ketika 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 bisa memecah baris antara kata kunci operator kueri yang terdiri dari beberapa kata kunci (Order By, Group Join, Take 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 lebih lanjut, 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 cukup jelas, bahkan untuk programmer yang menulisnya sendiri. Guna membantu mendokumentasikan kode mereka, oleh karena itu, sebagian besar programmer memanfaatkan komentar tertanam secara liberal. Komentar dalam kode bisa menjelaskan prosedur atau instruksi khusus kepada siapa pun yang membaca atau menggunakannya nanti. Visual Basic mengabaikan komentar selama kompilasi, serta tidak memengaruhi kode yang dikompilasi.

Baris komentar dimulai dengan apostrof (') atau REM kemudian diikuti oleh spasi. Komentar dapat ditambahkan di mana saja dalam kode, kecuali dalam string. Untuk menambahkan komentar ke dalam pernyataan, sisipkan apostrof atau REM setelah pernyataan, diikuti dengan komentar. Komentar juga dapat berada pada baris terpisah mereka sendiri. Contoh berikut ini menunjukkan kemungkinan-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 muncul juga), ada kesalahan sintaks pada pernyataan. Anda harus mencari tahu apa yang salah dengan pernyataan (dengan melihat dalam daftar tugas, atau menaruh pointer mouse di atas kesalahan dan membaca pesan kesalahan) lalu memperbaikinya. Sampai ketika Anda telah memperbaiki semua kesalahan sintaks dalam kode Anda, program Anda akan gagal mengkompilasi dengan benar.

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