String menyimpan deretan karakter dan muncul di hampir setiap program, mulai dari pesan keluaran sampai data yang dibaca dari masukan pengguna. Topik ini membahas tiga cara mengolah string, yaitu penyambungan dengan operator &, penyisipan nilai ke dalam teks dengan interpolasi berawalan $, dan metode bawaan yang paling sering digunakan. Sifat dasar string yang tidak dapat diubah isinya juga dijelaskan karena memengaruhi cara membaca setiap contoh.
String yang tidak dapat diubah#
Tipe String adalah tipe referensi yang bersifat immutable, artinya isinya tidak pernah berubah setelah objeknya dibuat. Setiap metode yang tampak mengubah string sebenarnya mengembalikan string baru, sedangkan string aslinya tetap utuh. Konsekuensinya, hasil metode harus ditampung kembali ke variabel apabila perubahan itu ingin digunakan.
Module ContohImmutable
Sub Main()
Dim kata As String = "vb"
kata.ToUpper()
Console.WriteLine(kata)
kata = kata.ToUpper()
Console.WriteLine(kata)
End Sub
End Modulevb
VBPemanggilan kata.ToUpper() pada baris pertama hanya menghasilkan string baru berisi VB yang langsung dibuang, sehingga kata tetap berisi vb. Baris kata = kata.ToUpper() menampung hasilnya kembali, dan baris itulah yang benar-benar mengganti isi variabel.
Sifat ini sekaligus membuat string aman dibagikan ke bagian mana pun program, karena penerima tidak mungkin mengubah isinya tanpa disadari pemiliknya. Biaya yang muncul adalah pembuatan objek baru setiap kali teks disusun ulang, hal yang baru terasa pada pemrosesan teks dalam jumlah besar.
Konkatenasi dengan &#
Operator & menyambung dua nilai menjadi satu string, dan operand angka dikonversi menjadi teks secara otomatis oleh operator ini. Dengan begitu, satu ekspresi & dapat menggabungkan teks tetap, variabel string, dan angka tanpa pemanggilan fungsi konversi terpisah.
Module ContohGabung
Sub Main()
Dim nama As String = "Citra"
Dim usia As Integer = 24
Console.WriteLine("Nama: " & nama)
Console.WriteLine("Usia: " & usia)
Console.WriteLine(nama & " berusia " & usia & " tahun")
End Sub
End ModuleNama: Citra
Usia: 24
Citra berusia 24 tahunOperator & dipilih alih-alih + karena + juga berperan sebagai penjumlahan, sehingga maknanya menjadi ambigu ketika operandnya campuran teks dan angka. Ketika Option Strict On aktif, keraguan itu ditolak compiler dengan pesan konversi.
' tidak-dijalankan
Console.WriteLine("Usia: " + 25) ' error BC30512: + antara String dan Integer ditolakPesan errornya berbunyi Option Strict On disallows implicit conversions from 'String' to 'Double', karena compiler berupaya membaca + sebagai penjumlahan dan menolak konversi teks menjadi angka. Penggunaan & untuk seluruh penyambungan teks menghilangkan keraguan semacam ini sejak awal.
Interpolasi dengan awalan $#
Interpolasi menyisipkan nilai ekspresi ke dalam teks tanpa menyambung potongan-potongan kecil. String yang mendukungnya ditulis dengan awalan $ sebelum tanda kutip, dan ekspresi apa pun diletakkan di dalam tanda kurung kurawal. Compiler mengganti setiap kurung kurawal dengan hasil ekspresinya saat string disusun.
Module ContohInterpolasi
Sub Main()
Dim nama As String = "Dewi"
Dim nilai As Double = 87.25
Console.WriteLine($"Siswa: {nama}")
Console.WriteLine($"Nilai: {nilai}")
Console.WriteLine($"Nilai dibulatkan: {CInt(nilai)}")
Console.WriteLine($"Status: {nilai >= 75}")
End Sub
End ModuleSiswa: Dewi
Nilai: 87.25
Nilai dibulatkan: 87
Status: TrueIsi kurung kurawal tidak terbatas pada nama variabel. Pemanggilan metode seperti {CInt(nilai)} dan ekspresi perbandingan seperti {nilai >= 75} sama-sama sah, sehingga interpolasi menggantikan sebagian besar kebutuhan konkatenasi pada program sehari-hari. Awalan $ ditempel tepat sebelum tanda kutip pembuka, dan hasilnya tetap bertipe String biasa yang dapat disimpan ke variabel. Apabila tanda kurung kurawal itu sendiri perlu tampil di dalam teks, tanda tersebut ditulis ganda sebagai {{ dan }}.
Metode string yang sering digunakan#
Metode string bawaan mencakup kebutuhan yang paling sering muncul, yaitu mengukur panjang, mengubah bentuk huruf, mengambil potongan, dan mengganti teks. Program berikut mempraktikkan metode-metode tersebut pada satu teks yang berisi spasi berlebih di kedua ujungnya.
Module Program
Sub Main()
Dim nama As String = " Budi Santoso "
Dim namaRapi As String = nama.Trim()
Console.WriteLine(namaRapi)
Console.WriteLine($"Panjang nama: {namaRapi.Length}")
Console.WriteLine(namaRapi.ToUpper())
Console.WriteLine(namaRapi.ToLower())
Console.WriteLine(namaRapi.Substring(5))
Console.WriteLine(namaRapi.Replace("Santoso", "S.Pd."))
Console.WriteLine(namaRapi.StartsWith("Budi"))
End Sub
End ModuleBudi Santoso
Panjang nama: 12
BUDI SANTOSO
budi santoso
Santoso
Budi S.Pd.
TrueTabel berikut merangkum metode yang digunakan beserta perannya. Properti Length tidak memerlukan tanda kurung karena bukan metode, sedangkan metode lainnya dipanggil dengan tanda kurung dan argumennya.
| Anggota | Peran | Hasil pada namaRapi |
|---|---|---|
Length | Menyatakan jumlah karakter | 12 |
ToUpper() | Mengubah ke huruf kapital | BUDI SANTOSO |
ToLower() | Mengubah ke huruf kecil | budi santoso |
Substring(5) | Mengambil karakter mulai indeks ke-5 | Santoso |
Trim() | Menghapus spasi di kedua ujung | Budi Santoso |
Replace(old, new) | Mengganti seluruh kemunculan teks | Budi S.Pd. |
StartsWith(teks) | Memeriksa awalan, menghasilkan Boolean | True |
Indeks pada Substring dimulai dari nol, sehingga indeks ke-5 menunjuk huruf S pada Budi Santoso. Metode Split melengkapi daftar ini dengan memecah satu string menjadi array berdasarkan pemisah tertentu.
Module ContohSplit
Sub Main()
Dim baris As String = "Budi,35,Bandung"
Dim bagian() As String = baris.Split(","c)
Console.WriteLine(bagian(0))
Console.WriteLine(bagian(1))
Console.WriteLine(bagian(2))
Console.WriteLine($"Jumlah bagian: {bagian.Length}")
End Sub
End ModuleBudi
35
Bandung
Jumlah bagian: 3Membandingkan string#
Operator = membandingkan isi dua string dan menghasilkan Boolean, sehingga dua variabel string dapat dibandingkan tanpa memanggil metode khusus. Perbandingannya membedakan huruf besar-kecil karena VB.NET secara default menggunakan perbandingan biner, dan metode String.Equals dengan StringComparison menyediakan kontrol lebih rinci apabila perbedaan huruf perlu diabaikan.
Module ContohBanding
Sub Main()
Console.WriteLine("budi" = "Budi")
Console.WriteLine(String.Equals("budi", "Budi", StringComparison.OrdinalIgnoreCase))
End Sub
End ModuleFalse
TrueBaris pertama menghasilkan False karena huruf b dan B dianggap berbeda, sedangkan baris kedua menghasilkan True karena perbandingannya mengabaikan perbedaan huruf. Operator <, >, <=, dan >= juga berlaku pada string dan mengurutkan teks menurut urutan karakternya. Memilih mode perbandingan yang sesuai penting ketika membandingkan masukan pengguna, misalnya jawaban ujian yang hurufnya tidak terkendali.
Kesalahan umum#
Tiga kesalahan berikut paling sering ditemui saat mengolah string.
- Mengharapkan metode mengubah string asli.
nama.ToUpper()tanpa penugasan hasilnya tidak mengubahnama, sehingga hasil metode selalu ditampung kembali ke variabel. - Menggunakan
+untuk menyambung teks dengan angka. Compiler menolaknya ketikaOption Strict Onaktif, dan perbaikannya adalah memilih&atau beralih ke interpolasi. - Mengambil potongan dengan indeks di luar batas.
Substringyang dimulai melewati panjang string atau berisi panjang potongan negatif memicu exception, sehingga batas indeks diperiksa denganLengthterlebih dahulu pada data yang panjangnya tidak pasti.
Ketiganya bermuara pada kebiasaan yang sama, yaitu membaca tanda tangan metode dan batas indeksnya sebelum dipanggil, alih-alih mengandalkan ingatan atas isi stringnya.
Ringkasan#
- String bersifat immutable, sehingga setiap metode mengembalikan string baru dan hasilnya perlu ditampung agar perubahan terpakai.
- Operator
&menyambung teks dan angka dengan aman, sedangkan interpolasi berawalan$menyisipkan ekspresi apa pun ke dalam teks melalui kurung kurawal. - Metode yang paling sering digunakan adalah
Length,ToUpper,ToLower,Substring,Trim,Replace, danSplit, dengan indeks dimulai dari nol. - Operator
=membandingkan isi string secara peka huruf besar-kecil, sedangkanString.EqualsdenganStringComparisonmengatur mode perbandingannya.
Referensi#
- String Basics — Microsoft Learn — Sifat string di VB.NET beserta cara penggunaannya.
- Interpolated Strings — Microsoft Learn — Aturan penulisan string interpolasi berawalan $.
- & Operator — Microsoft Learn — Operator konkatenasi string beserta konversi operandnya.
- String.Split Method — Microsoft Learn — Overload pemecahan string menjadi array bagian.