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
danIsNot
. 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 pernyataanWith
atau menyediakan nilai dalam daftar inisialisasi untuk jenis. Pertimbangkan untuk memutuskan baris setelah operator penugasan (misalnya,=
) ketika Anda menggunakan pernyataanWith
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 kunciWith
. 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
, danDescending
). Anda tidak bisa memecah baris antara kata kunci operator kueri yang terdiri dari beberapa kata kunci (Order By
,Group Join
,Take While
, danSkip 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 pernyataanFor 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.
Bagian terkait
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. |