40 Pertanyaan dan Jawaban Wawancara VB.Net Teratas (2026)

Bersiap untuk wawancara VB.Net? Saatnya fokus pada pertanyaan apa yang mungkin Anda hadapi. Memahami pertanyaan-pertanyaan ini Pertanyaan Wawancara VB.Net membantu mengungkap kemampuan pemecahan masalah, pola pikir pemrograman, dan kedalaman teknis Anda.

VB.Net menawarkan peluang luas bagi para profesional di semua level, mulai dari pemula hingga pengembang senior. Dengan pengalaman teknis dan keahlian di bidangnya yang kuat, kandidat dapat menunjukkan keterampilan analitis dan keahlian teknis yang selaras dengan pengembangan perangkat lunak di dunia nyata. Pertanyaan dan jawaban ini membantu para profesional memenangkan wawancara, mengesankan manajer, dan memperkuat keterampilan pemrograman dan analisis secara keseluruhan.

Kami mengumpulkan wawasan dari lebih dari 55 pemimpin teknis, manajer tim, dan profesional TI di berbagai industri untuk memastikan pertanyaan wawancara VB.Net ini mencerminkan harapan perekrutan yang sebenarnya dan relevansi industri yang komprehensif.

Pertanyaan dan Jawaban Wawancara VB.Net

1) Jelaskan apa itu VB.NET dan apa perbedaannya dengan VB klasik (VB6) dalam hal runtime, sistem tipe, dan karakteristik bahasa.

VB.NET adalah bahasa berorientasi objek yang sesuai dengan CLS dan menargetkan Common Language Runtime (CLR). Tidak seperti VB klasik (VB6), yang terikat pada COM dan runtime tertentu, VB.NET dikompilasi ke Bahasa Menengah (IL) dan berjalan pada .NET CLR, dengan keunggulan seperti manajemen memori otomatis, sistem tipe terpadu (CTS), generik yang lebih kaya, dan penanganan pengecualian terstruktur. Karakteristik bahasa meningkat secara signifikan: pewarisan sejati, antarmuka, delegasi, atribut, dan refleksi semuanya menjadi kelas satu. Pergeseran dari COM yang terikat lambat ke assembly yang terikat cepat dan bertipe kuat meningkatkan keandalan dan perkakas. Hasilnya, siklus hidup pengembangan terintegrasi lebih baik dengan CI/CD modern, NuGet manajemen paket, dan interoperabilitas lintas bahasa di seluruh ekosistem .NET.

Contoh:

Kelas VB.NET dapat mewarisi (Inherits) dari kelas lain dan mengimplementasikan beberapa antarmuka, yang tidak dapat dilakukan VB6 secara asli:

Public Class Repository
    Inherits BaseRepository
    Implements IDisposable
    ' ...
End Class

👉 Unduh PDF Gratis: Pertanyaan & Jawaban Wawancara VB.Net


2) Bagaimana sistem tipe .NET dipetakan ke VB.NET? Bedakan tipe nilai dari tipe referensi dengan contoh.

Sistem Tipe Umum (CTS) .NET mendefinisikan dasar-dasar jenis digunakan oleh VB.NET. Jenis nilai (sebagai contoh, Integer, Boolean, Date, dan ditentukan pengguna Structure) biasanya dialokasikan pada tumpukan dan disalin berdasarkan nilai; jenis referensi (sebagai contoh, Class, String, Array, Delegate) berada di tumpukan terkelola dan diakses melalui referensi. Perbedaan ini memengaruhi kinerja, semantik penerusan, dan karakteristik memori. Tipe nilai ideal untuk konstruksi yang kecil, tidak dapat diubah, dan berpusat pada data, sementara tipe referensi cocok untuk entitas dengan identitas, perilaku kompleks, dan polimorfisme.

Jawab dengan contoh:

' Value type
Public Structure Point2D
    Public X As Integer
    Public Y As Integer
End Structure

' Reference type
Public Class Customer
    Public Property Id As Integer
    Public Property Name As String
End Class

faktor yang memengaruhi pilihan meliputi ukuran, mutabilitas, pewarisan yang diperlukan, dan skenario interop.


3) Apa perbedaan antara Kelas, Struktur, dan Modul di VB.NET? Berikan perbandingan terstruktur.

Kelas, Struktur, dan Modul mewakili berbagai cara untuk memodelkan perilaku dan data. Kelas adalah tipe referensi yang mendukung pewarisan dan polimorfisme. Structure adalah tipe nilai yang ideal untuk agregat kecil yang tidak dapat diubah tanpa pewarisan. Modul adalah wadah untuk anggota bersama dan tidak dapat diwujudkan atau diwariskan. keuntungan dan kerugian bervariasi dengan siklus hidup, memori, dan fleksibilitas desain.

Aspek Kelas Structure Modul
Tipe Referensi Nilai Wadah khusus
Warisan Mendukung Inherits Tidak didukung Tidak berlaku
Instansiasi Dim c = New C() Dim s As S Tidak dapat diwujudkan
Anggota Instansi + Bersama Instansi + Bersama Hanya untuk dibagikan
Gunakan Kasus Entitas, polimorfisme Agregat data kecil Utilitas pembantu, konstanta

Contoh:

Public Module MathUtil
    Public Function Clamp(v As Integer, min As Integer, max As Integer) As Integer
        Return Math.Min(Math.Max(v, min), max)
    End Function
End Module

4) Di mana sebaiknya pengembang menggunakan ByVal versus ByRef di VB.NET? Sertakan tabel perbandingan praktis.

VB.NET mendukung dua parameter utama yang dilewatkan jenis: OlehVal (default) dan OlehRef. OlehVal meneruskan salinan nilai (atau salinan referensi untuk tipe referensi), dengan tetap mempertahankan variabel asli pemanggil. OlehRef meneruskan variabel dengan referensi, yang memungkinkan penerima panggilan untuk mengganti variabel pemanggil. Memilih pendekatan yang tepat memiliki Manfaat untuk kejelasan dan kinerja, tetapi penggunaan yang tidak tepat dapat menyebabkan kerugian seperti efek samping yang mengejutkan.

Dimensi OlehVal OlehRef
Mutasi variabel pemanggil Tidak diizinkan Diizinkan
Performa untuk struktur besar Potensi biaya salinan Menghindari penyalinan
Kejelasan & keamanan Tertinggi Lebih rendah jika disalahgunakan
Penggunaan khas Masukan Keluaran/pembaruan di tempat

Contoh:

Sub IncrementByRef(ByRef x As Integer)
    x += 1
End Sub

Sub Demo()
    Dim n As Integer = 10
    IncrementByRef(n) ' n becomes 11
End Sub

penggunaan OlehRef ketika Anda harus mengatur keluaran atau melakukan transformasi di tempat; lebih suka OlehVal untuk API yang dapat diprediksi dan bebas efek samping.


5) Pengubah akses apa saja yang tersedia di VB.NET, dan bagaimana pengaruhnya terhadap desain dan enkapsulasi API?

VB.NET menyediakan Public, Private, Protected, Friend, dan Protected Friend (lebih Private Protected dalam versi .NET yang lebih baru). Pengubah ini mengontrol visibilitas di seluruh batas perakitan dan hierarki pewarisan. karakteristik: Public anggota menghadap ke luar dan membentuk kontrak; Private menyembunyikan detail implementasi; Protected mengekspos ke subkelas; Friend memaparkan dalam majelis saat ini; Protected Friend menggabungkan kedua cakupan; Private Protected terbatas pada rakitan yang memuat dan tipe turunannya. Penggunaan yang tepat menghasilkan Manfaat seperti batasan yang bersih, refactoring yang lebih aman, dan penggabungan yang diminimalkan. faktor termasuk apakah jenis digunakan kembali di seluruh rakitan, stabilitas permukaan API, dan pertimbangan kemampuan uji.

Contoh:

Public Class Service
    Private ReadOnly _repo As IRepository
    Protected Overridable Sub Validate() ' extensible in subclasses
    End Sub
End Class

6) Apakah sinkronisasi/Tunggu berlaku untuk VB.NET? Jelaskan Pola Asinkron Berbasis Tugas beserta contohnya.

Ya. VB.NET sepenuhnya mendukung Async/Await dan Pola Asinkron Berbasis Tugas (TAP). Async metode pengembalian Task or Task(Of T) dan menggunakan Await untuk melanjutkan secara asinkron tanpa memblokir utas. keuntungan termasuk UI responsif, I/O yang dapat diskalakan, dan alur kontrol yang lebih jelas versus panggilan balik. Kekurangan dapat terjadi jika pengembang memblokir (.Result, .Wait) atau mencampur sinkronisasi dan asinkron secara tidak tepat. Kunci faktor termasuk penanganan pengecualian (ditangkap dalam pengembalian Task) dan perilaku konteks sinkronisasi.

Contoh:

Public Async Function FetchAsync(url As String) As Task(Of String)
    Using client As New Net.Http.HttpClient()
        Return Await client.GetStringAsync(url)
    End Using
End Function

Dalam ASP.NET, lebih baik menggunakan async end-to-end untuk menghindari kekurangan thread; Windows aplikasi, async membuat UI tetap responsif.


7) Apa perbedaan antara kelas Interface dan MustInherit (abstrak) di VB.NET, dan kapan masing-masing harus digunakan?

Antarmuka mendefinisikan kontrak hanya—anggota tanpa implementasi—yang memungkinkan cara yang berbeda untuk menyusun perilaku di antara tipe-tipe yang tidak terkait. MustInherit kelas dapat berisi abstrak (MustOverride) dan anggota beton, memungkinkan fungsionalitas dasar bersama. keuntungan antarmuka mencakup beberapa implementasi dan kopling longgar; kerugian tidak menyertakan kode bersama. MustInherit Kelas menyediakan status penggunaan ulang dan perlindungan tetapi membatasi pewarisan ganda.

Kriterium Antarmuka Kelas MustInherit
Organisasi None Sebagian atau penuh
Warisan Beberapa diperbolehkan Basis tunggal
Bidang/Negara Tidak diizinkan Diizinkan
Versi Lebih sulit untuk berkembang Lebih mudah dengan default virtual

Contoh:

Public Interface IClock
    Function NowUtc() As DateTime
End Interface

Public MustInherit Class BaseClock
    Public Overridable Function NowUtc() As DateTime
        Return DateTime.UtcNow
    End Function
End Class

Pilih antarmuka untuk kontrak yang dapat dihubungkan; gunakan MustInherit saat berbagi logika dasar lintas hierarki.


8) Bagaimana event dan delegasi dimodelkan dalam VB.NET? Berikan contoh penggunaan praktis Handles dan AddHandler.

Peristiwa VB.NET didasarkan pada delegasi dan menampilkan pola penerbit-pelanggan. Delegasi adalah penunjuk fungsi yang aman terhadap tipe. Peristiwa menawarkan enkapsulasi, yang memungkinkan pelanggan untuk melampirkan pengendali sementara penerbit mengontrol pemanggilan. Ada cara yang berbeda untuk berlangganan: secara deklaratif dengan Handles atau secara dinamis dengan AddHandler. itu Manfaat termasuk decoupling dan extensibility, sementara faktor yang perlu dipertimbangkan adalah kebocoran memori dari langganan yang masih ada dan keamanan utas saat memunculkan peristiwa.

Jawab dengan contoh:

Public Class TimerService
    Public Event Tick As EventHandler

    Public Sub RaiseTick()
        RaiseEvent Tick(Me, EventArgs.Empty)
    End Sub
End Class

Public Class Consumer
    Private WithEvents _svc As New TimerService()

    Private Sub OnTick(sender As Object, e As EventArgs) Handles _svc.Tick
        ' Declarative subscription
    End Sub

    Public Sub WireUp()
        AddHandler _svc.Tick, AddressOf OnTick ' Dynamic subscription
    End Sub
End Class

Berhenti berlangganan dengan RemoveHandler untuk menghindari siklus hidup yang tidak diinginkan.


9) Konsep siklus hidup dan manajemen memori apa yang penting dalam VB.NET? Diskusikan GC, finalisasi, dan IDisposable.

VB.NET mengandalkan pengumpul sampah (GC) generasional CLR untuk mengelola siklus hidup objek di heap. Finalizer (Protected Overrides Sub Finalize) menyediakan kait pembersihan kesempatan terakhir, tetapi bersifat nondeterministik dan mahal. IDisposable Pola ini memungkinkan pelepasan sumber daya yang tidak terkelola secara deterministik seperti pegangan berkas, soket, atau koneksi basis data. keuntungan of Using ... End Using termasuk kejelasan, keselamatan pengecualian, dan pembersihan yang cepat; potensi kerugian mengabaikan IDisposable adalah kebocoran sumber daya dan penurunan kinerja.

Contoh:

Using conn As New SqlClient.SqlConnection(cs)
    conn.Open()
    Using cmd As New SqlClient.SqlCommand("SELECT 1", conn)
        Dim result = cmd.ExecuteScalar()
    End Using
End Using

Lebih suka IDisposable untuk pembungkus sumber daya, minimalkan finalizer, dan biarkan GC mengelola memori terkelola murni.


10) Apakah Opsi Ketat, Opsi Eksplisit, dan Opsi Inferensi penting? Jelaskan perbedaan, kelebihan, dan kekurangannya.

Opsi kompiler ini mengendalikan disiplin pengetikan dan resolusi nama, yang secara langsung memengaruhi kebenaran dan pemeliharaan. Option Explicit On menegakkan deklarasi sebelum digunakan. Option Strict On tidak mengizinkan pengikatan terlambat dan konversi penyempitan implisit. Option Infer On memungkinkan inferensi tipe untuk variabel lokal. Manfaat mencakup deteksi kesalahan lebih awal, refactoring yang lebih aman, dan kinerja yang lebih baik melalui pengikatan awal. Kemungkinan kerugian lebih bertele-tele dan kurva pembelajarannya lebih curam bagi pemula.

Pengaturan Tujuan Kelebihan Kekurangan Example
Option Explicit On Memerlukan deklarasi Lebih sedikit kesalahan ketik, cakupan yang jelas Sedikit bertele-tele Dim x As Integer = 0
Option Strict On Mengetik kuat, tidak ada ikatan terlambat Kesalahan awal, kecepatan Less fleksibilitas dinamis Tidak ada penyempitan implisit
Option Infer On Inferensi tipe lokal Ringkas, mudah dibaca Dapat mengaburkan tipe Dim n = 42 (Bilangan bulat)

Contoh Cuplikan:

Option Strict On
Option Explicit On
Option Infer On

Mengadopsi default di atas dianggap sebagai praktik terbaik untuk kode produksi.


11) Apa saja jenis pewarisan yang didukung dalam VB.NET? Jelaskan dengan contoh.

VB.NET mendukung warisan tunggal untuk kelas dan pewarisan berganda melalui interface. Itu berarti suatu kelas dapat mewarisi dari satu kelas dasar (Inherits) tapi bisa menerapkan beberapa antarmuka (Implements). Selain itu, pewarisan dapat hirarkis (beberapa kelas berasal dari satu basis), bertingkat (kelas A → B → C), dan berbasis antarmuka (kontrak bersama).

Jenis Warisan Uraian Teknis Example
Tunggal Satu kelas mewarisi dari kelas lainnya Class B Inherits A
Bertingkat Rantai pewarisan C Inherits B
Hierarkis Beberapa kelas turunan berbagi satu basis Manager, Engineer Inherit Employee
Banyak (melalui Antarmuka) Kelas mengimplementasikan beberapa antarmuka Class X Implements I1, I2

Contoh:

Public Class Animal
    Public Overridable Sub Speak()
        Console.WriteLine("Generic sound")
    End Sub
End Class

Public Class Dog
    Inherits Animal
    Public Overrides Sub Speak()
        Console.WriteLine("Bark")
    End Sub
End Class

The keuntungan termasuk penggunaan kembali, polimorfisme, dan kejelasan dalam perilaku bersama; kerugian muncul ketika hierarki menjadi terlalu dalam atau kaku.


12) Bagaimana cara kerja penanganan eksepsi di VB.NET? Jelaskan siklus hidup blok Try…Catch…Finally.

VB.NET menggunakan penanganan pengecualian terstruktur (SEH) yang dibangun di atas CLR. Blok Try berisi kode berisiko; Catch blok menangani pengecualian jenis tertentu; opsional Finally dieksekusi tanpa mempedulikan keberhasilan atau kegagalan. siklus hidup bersifat deterministik:

  1. Enter Try cakupan.
  2. Pada pengecualian, lepaskan tumpukan ke yang cocok Catch.
  3. Eksekusi Finally sebelum pergi.

Keuntungan: keandalan yang ditingkatkan, pembersihan sumber daya yang lebih bersih, penelusuran kesalahan yang konsisten.

kekurangan: penangkapan yang berlebihan dapat menutupi serangga.

Contoh:

Try
    Dim n = Integer.Parse("abc")
Catch ex As FormatException
    Console.WriteLine("Invalid number")
Finally
    Console.WriteLine("Execution complete")
End Try

Selalu tangkap paling spesifik jenis pengecualian dan hindari blok tangkapan yang kosong.


13) Apa perbedaan antara pengikatan awal dan pengikatan akhir di VB.NET? Kapan masing-masing harus digunakan?

Pengikatan awal terjadi ketika tipe objek diketahui pada waktu kompilasi, memungkinkan IntelliSense, pemeriksaan tipe, dan eksekusi yang lebih cepat. Pengikatan terlambat menunda resolusi tipe ke runtime, biasanya menggunakan Object or Reflection.

Fitur Pengikatan Awal Pengikatan Terlambat
Pemeriksaan Waktu Kompilasi Ya Tidak
Performance Lebih cepat Lebih lambat
Dukungan IntelliSense Tersedia None
Example Dim fs As New FileStream(...) Dim o As Object = CreateObject("...")

Contoh:

' Early binding
Dim sb As New System.Text.StringBuilder()
sb.Append("Hello")

' Late binding
Dim o As Object = CreateObject("Scripting.Dictionary")
o.Add("A", 1)

penggunaan pengikatan awal bila memungkinkan demi keselamatan dan kecepatan; lebih baik pengikatan terlambat hanya untuk interop COM atau plug-in dinamis.


14) Jelaskan peran namespace dalam VB.NET dan manfaatnya dalam solusi skala besar.

A namespace adalah kontainer logis yang mengatur kelas, antarmuka, enum, dan struktur untuk mencegah tabrakan penamaan. Ruang nama dapat mencerminkan hierarki folder dan diimpor menggunakan Impor.

Manfaat:

  • Pemeliharaan dan modularisasi yang lebih baik.
  • Penemuan dan penggunaan kembali API yang disederhanakan.
  • Mengurangi konflik penamaan dalam tim besar.
  • Mendukung pemberian versi dan pelapisan logis.

Contoh:

Namespace Company.Data
    Public Class Repository
    End Class
End Namespace

Imports Company.Data
Dim repo As New Repository()

penggunaan konvensi namespace seperti Company.Project.Module untuk kejelasan, dan hindari penumpukan berlebihan yang menghalangi keterbacaan.


15) Apa itu Koleksi dan Generik di VB.NET? Jelaskan keunggulannya dibandingkan array tradisional.

Koleksi adalah struktur data dinamis yang digunakan untuk menyimpan dan memanipulasi kelompok objek. Koleksi umum (di System.Collections.Generic) meningkatkan keamanan tipe, prestasi, dan penggunaan kembali kode dengan mengizinkan tipe berparameter.

Koleksi Tradisional Setara Generik Kelebihan
ArrayList List(Of T) Aman untuk mengetik, menghindari pengetikan
Hashtable Dictionary(Of TKey, TValue) Diketik dengan kuat, pencarian lebih cepat
Queue Queue(Of T) Varian thread-safe tersedia

Contoh:

Dim numbers As New List(Of Integer) From {1, 2, 3}
numbers.Add(4)

Generik menghilangkan kebutuhan untuk casting dan meningkatkan efisiensi runtime—kunci faktor dalam basis kode VB.NET modern berkinerja tinggi.


16) Bagaimana cara mencapai polimorfisme di VB.NET? Berikan ilustrasi dengan contoh nyata.

Polimorfisme memungkinkan satu antarmuka untuk mewakili implementasi yang berbeda. VB.NET menyediakan polimorfisme waktu kompilasi melalui kelebihan beban dan polimorfisme waktu proses melalui utama.

Contoh:

Public MustInherit Class Shape
    Public MustOverride Function Area() As Double
End Class

Public Class Circle
    Inherits Shape
    Private _r As Double
    Public Sub New(r As Double) : _r = r : End Sub
    Public Overrides Function Area() As Double
        Return Math.PI * _r * _r
    End Function
End Class

Di sini, berbeda Shape jenis menerapkan kontrak yang sama secara berbeda.

Keuntungan: ekstensibilitas dan pemeliharaan; kerugian: overhead runtime kecil dan kompleksitas dalam hierarki debugging.


17) Apa perbedaan antara Dispose() dan Finalize() di VB.NET? Kapan masing-masing harus diimplementasikan?

Keduanya berhubungan dengan pembersihan sumber daya tetapi memiliki fungsi yang berbeda siklus hidup fase.

Fitur Membuang() Menyelesaikan()
Tujuan Pembersihan deterministik sumber daya yang tidak terkelola Pembersihan berbasis GC nondeterministik
Doa Eksplisit (Using / panduan) Tersirat oleh GC
pola IDisposable Mengesampingkan Finalize()
Example Using conn As New SqlConnection() Jarang digunakan

Contoh:

Public Class FileLogger
    Implements IDisposable
    Private fs As FileStream
    Public Sub Dispose() Implements IDisposable.Dispose
        fs.Dispose()
        GC.SuppressFinalize(Me)
    End Sub
End Class

Selalu menerapkan Dispose() untuk pembersihan deterministik dan hanya penggantian Finalize() saat membungkus pegangan yang tidak dikelola secara langsung.


18) Bagaimana atribut meningkatkan metadata dalam assembly VB.NET? Berikan contoh umum.

Atribut di VB.NET melampirkan deklaratif metadata untuk mengkodekan elemen—kelas, metode, properti, atau rakitan. Metadata ini dapat diakses saat runtime melalui refleksi dan memengaruhi alat, kerangka kerja, dan perilaku.

Atribut Umum:

  • [Serializable] — menandai kelas untuk serialisasi biner.
  • [Obsolete] — menandai API yang tidak digunakan lagi.
  • [DllImport] — mengaktifkan P/Invoke.
  • [DebuggerStepThrough] — memandu debugger.

Contoh:

<Obsolete("Use NewLogger instead")>
Public Class OldLogger
End Class

Manfaat: memusatkan konfigurasi, meningkatkan keterbacaan, dan terintegrasi secara mulus dengan kerangka kerja seperti ASP.NET atau Entity Framework.


19) Jelaskan cara kerja refleksi di VB.NET dan berikan contoh kasus penggunaannya.

Refleksi memungkinkan pemeriksaan dan manipulasi metadata pada saat runtime menggunakan System.Reflection namespace. Pengembang dapat menemukan jenis, metode, properties, Dan bahkan memanggil anggota secara dinamis.

Contoh:

Dim t = GetType(String)
For Each m In t.GetMethods()
    Console.WriteLine(m.Name)
Next

Gunakan Kasus:

  • Membangun arsitektur plug-in.
  • Serialisasi/deserialisasi dinamis.
  • Membuat dokumentasi.
  • Kerangka kerja pengujian.

Keuntungan: fleksibilitas dan kekuatan; kerugian: eksekusi yang lebih lambat dan potensi masalah keamanan.


20) Apa itu metode ekstensi, dan apa bedanya dengan pewarisan atau utilitas di VB.NET?

Metode ekstensi memungkinkan pengembang untuk menambahkan fungsi baru ke tipe yang ada tanpa mengubah atau mewarisi dari mereka. Mereka dideklarasikan di Modul lingkup dan ditandai dengan <Extension()> atribut.

Contoh:

Imports System.Runtime.CompilerServices

Module StringExtensions
    <Extension()>
    Public Function ToTitleCase(s As String) As String
        Return Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(s.ToLower())
    End Function
End Module

' Usage
Dim result = "hello world".ToTitleCase()

Keuntungan: peningkatan keterbacaan, kemudahan pemeliharaan, dan desain API yang lancar.

kekurangan: potensi ambiguitas jika digunakan secara berlebihan.

Mereka menyediakan alternatif yang elegan untuk utilitas pembantu statis sambil mempertahankan kemampuan penemuan di IntelliSense.


21) Jelaskan siklus hidup suatu Windows Aplikasi formulir di VB.NET.

The Windows Siklus hidup formulir terdiri dari serangkaian peristiwa dari inisialisasi hingga pembuangan. Dimulai ketika Application.Run() disebut, yang menciptakan formulir utama dan memulai siklus pesan. Tahapan utamanya adalah:

  1. Inisialisasi – Konstruktor menetapkan nilai default, dan InitializeComponent() membangun UI.
  2. Muat Acara – Formulir dan kontrol telah dibuat sepenuhnya.
  3. Diaktifkan/Cat – Formulir ditampilkan dan digambar.
  4. Interaksi pengguna – Peristiwa input (Klik, Penekanan Tombol) diproses.
  5. Penutupan/Tutup – Pembersihan dan persistensi data terjadi.
  6. fitur – Memori dan sumber daya yang tidak terkelola dilepaskan.

Contoh:

Public Sub Main()
    Application.Run(New MainForm())
End Sub

Praktek terbaik: menangani inisialisasi di Form_Load dan pembersihan di Form_Closing or DisposeSiklus hidup yang terorganisir ini memastikan stabilitas UI dan manajemen sumber daya.


22) Apa saja teknologi akses data yang tersedia di VB.NET? Bandingkan ADO.NET dan Entity Framework.

VB.NET mendukung beberapa lapisan akses dataterutama ADO.NET, Kerangka Entitas (EF), dan LINQ ke SQL.

Fitur ADO.NET Kerangka Entitas
Tingkat Abstraksi Rendah (SQL manual, DataSet) Tinggi (ORM, LINQ)
kontrol Penuh atas SQL dan koneksi Pemetaan otomatis
Performance Lebih cepat untuk tugas-tugas sederhana Sedikit overhead
Keamanan Tipe Data panduan Diketik dengan kuat
Use Case Warisan, prosedur tersimpan Pemodelan data modern

Contoh:

' ADO.NET Example
Using conn As New SqlConnection(cs)
    Dim cmd As New SqlCommand("SELECT * FROM Employees", conn)
    conn.Open()
    Using reader = cmd.ExecuteReader()
        While reader.Read()
            Console.WriteLine(reader("Name"))
        End While
    End Using
End Using

Kerangka Entitas menyederhanakan siklus hidup dengan memetakan tabel basis data ke kelas secara otomatis.


23) Apa perbedaan antara DataSet dan DataReader di ADO.NET?

DataReader menyediakan cepat, hanya maju, hanya baca aliran data. DataSet adalah dalam memori, terputus representasi data.

Fitur Pembaca Data Kumpulan Data
Koneksi Membutuhkan koneksi terbuka Bekerja offline
Memory Usage Rendah High
Navigasi Hanya maju Akses acak
Perbarui Dukungan Tidak Ya
Performance Lebih cepat Lebih lambat

Contoh:

Dim reader = cmd.ExecuteReader() ' Connected
Dim adapter As New SqlDataAdapter("SELECT * FROM Employees", conn)
Dim ds As New DataSet()
adapter.Fill(ds, "Emp") ' Disconnected

penggunaan DataReader untuk membaca ringan dan DataSet saat Anda memerlukan hubungan, pembaruan, atau operasi XML.


24) Bagaimana Anda melakukan operasi CRUD menggunakan ADO.NET di VB.NET?

CRUD adalah singkatan dari Buat, Baca, Update, DeleteOperasi ini ditangani melalui SqlCommand, SqlConnection, dan SqlDataAdapter.

Contoh:

Using conn As New SqlConnection(cs)
    conn.Open()
    Dim insertCmd As New SqlCommand("INSERT INTO Employee(Name) VALUES(@n)", conn)
    insertCmd.Parameters.AddWithValue("@n", "John")
    insertCmd.ExecuteNonQuery()
End Using

Keuntungan: kontrol, kinerja, keamanan transaksi.

kekurangan: kode boilerplate dan manajemen SQL manual.

penggunaan TransactionScope untuk memastikan operasi atom di berbagai perintah.

ADO.NET tetap penting untuk akses data tingkat rendah bahkan dalam kerangka kerja modern.


25) Apa itu LINQ di VB.NET? Jelaskan manfaat dan contoh penggunaannya.

Kueri Terintegrasi Bahasa (LINQ) Memungkinkan kueri koleksi, XML, atau basis data langsung dalam sintaksis VB.NET. Ini meningkatkan keterbacaan, keamanan tipe, dan kemudahan pemeliharaan.

Contoh:

Dim numbers = {1, 2, 3, 4, 5}
Dim evens = From n In numbers
            Where n Mod 2 = 0
            Select n
For Each n In evens
    Console.WriteLine(n)
Next

Manfaat:

  • Model kueri terpadu untuk data dalam memori dan jarak jauh.
  • Pemeriksaan tipe waktu kompilasi.
  • Mengurangi risiko injeksi SQL.
  • Debugging dan pemeliharaan lebih mudah.

LINQ menyederhanakan manajemen siklus hidup dengan menyatukan sumber data yang berbeda di bawah sintaksis deklaratif tunggal.


26) Apa itu assembly di VB.NET? Bedakan antara assembly privat dan assembly bersama.

An majelis adalah pustaka kode terkompilasi (DLL atau EXE) yang berfungsi sebagai unit penyebaran, versi, dan keamanan dalam .NET.

Tipe Lokasi Jarak penglihatan Example
Swasta Assembly Folder aplikasi Aplikasi tunggal App\bin\MyLib.dll
bersama Assembly GAC (Global Assembly Cache) Beberapa aplikasi DLL dengan nama kuat

Contoh (Menciptakan Nama yang Kuat):

sn -k keypair.snk

Kemudian di VB.NET:

<Assembly: AssemblyKeyFile("keypair.snk")>

Keuntungan: kontrol versi, modularitas, penggunaan kembali.

kekurangan: menambah kompleksitas dalam penerapan GAC.


27) Jelaskan perbedaan antara pemrograman sinkron dan asinkron di VB.NET dengan contoh.

SyncOperasi kronologis memblokir thread hingga selesai, sedangkan operasi asinkron membebaskan thread untuk meneruskan eksekusi.

Fitur Synchonous Asinkron
Pemblokiran Utas Ya Tidak
Performance Lebih lambat scalable
Example ExecuteReader() ExecuteReaderAsync()

Contoh:

Public Async Function DownloadAsync(url As String) As Task
    Using client As New Net.Http.HttpClient()
        Dim content = Await client.GetStringAsync(url)
        Console.WriteLine(content)
    End Using
End Function

Keuntungan: responsivitas dan skalabilitas UI yang lebih baik.

kekurangan: debugging dan pelacakan tumpukan yang lebih kompleks.


28) Apa itu multithreading di VB.NET? Bagaimana Anda mengelola keamanan thread?

multithreading memungkinkan eksekusi bersamaan dari beberapa jalur kode. VB.NET menggunakan System.Threading dan System.Threading.Tasks namespace untuk ini.

Contoh:

Dim t1 As New Thread(AddressOf TaskA)
t1.Start()

Sub TaskA()
    Console.WriteLine("Running on thread: " & Thread.CurrentThread.ManagedThreadId)
End Sub

Teknik pengamanan benang:

  • SyncLock (monitor) untuk mencegah kondisi balap.
  • Struktur data yang tidak dapat diubah.
  • ConcurrentDictionary dan Task untuk konkurensi yang terkelola.

Keuntungan: kinerja paralel; kekurangan: kompleksitas, potensi kebuntuan.


29) Apa saja pola desain yang umum digunakan dalam VB.NET?

Pola desain menyediakan solusi yang dapat digunakan kembali untuk masalah desain yang berulang. Beberapa solusi umum meliputi:

pola Tipe Use Case
tunggal kreasi Instans bersama global
Pabrik kreasi Abstraksi pembuatan objek
Pengamat Perilaku Sistem notifikasi acara
MVC Architektural Pemisahan logika UI

Contoh (Singleton):

Public Class Logger
    Private Shared _instance As Logger
    Private Sub New()
    End Sub
    Public Shared ReadOnly Property Instance As Logger
        Get
            If _instance Is Nothing Then _instance = New Logger()
            Return _instance
        End Get
    End Property
End Class

Pola memastikan perluasan, pemeliharaan, dan pemisahan masalah yang jelas.


30) Bagaimana cara kerja pengumpulan sampah (GC) di .NET, dan bagaimana Anda dapat mengoptimalkannya di VB.NET?

The Pengumpul Sampah .NET mengelola memori secara otomatis dengan mengambil kembali objek yang tidak terpakai. koleksi generasi (0, 1, dan 2) untuk mengoptimalkan kinerja.

Fase GC:

  1. Mark – mengidentifikasi objek hidup.
  2. Sapu – mengambil kembali memori objek yang tidak direferensikan.
  3. Padat – menyusun ulang objek untuk memori bersebelahan.

Teknik Optimasi:

  • penggunaan Using untuk benda sekali pakai.
  • Hindari alokasi objek besar yang tidak diperlukan.
  • Memanggil GC.Collect() hemat.
  • Gunakan tipe nilai untuk data kecil yang tidak dapat diubah.

Contoh:

Using bmp As New Bitmap(100, 100)
    ' Work with bitmap
End Using

Manajemen GC yang tepat memastikan siklus hidup aplikasi yang stabil dan mencegah kebocoran memori.


31) Jelaskan empat pilar Pemrograman Berorientasi Objek (OOP) di VB.NET dengan contoh.

VB.NET, sebagai bahasa berorientasi objek sepenuhnya, mendukung keempat prinsip OOP: Enkapsulasi, Warisan, Polimorfisme, dan Abstraksi.

Prinsip Uraian Teknis Example
Enkapsulasi Menggabungkan data dengan metode yang mengoperasikannya Private fields with Public properties
Warisan Mendapatkan kelas baru dari kelas yang sudah ada Class Car Inherits Vehicle
Polimorfisme Metode yang sama berperilaku berbeda di berbagai tipe Overrides Function Draw()
Abstraksi Menyembunyikan detail implementasi yang rumit MustInherit kelas, Antarmuka

Contoh:

Public MustInherit Class Shape
    Public MustOverride Function Area() As Double
End Class

Public Class Square
    Inherits Shape
    Public Overrides Function Area() As Double
        Return 25
    End Function
End Class

Setiap prinsip berkontribusi pada siklus hidup aplikasi yang lebih bersih, modular, dan mudah dipelihara.


32) Bagaimana cara menangani berkas di VB.NET? Jelaskan dengan contoh.

VB.NET menggunakan System.IO namespace untuk menangani operasi berkas seperti pembuatan, pembacaan, penulisan, dan penghapusan.

Contoh:

Dim path = "C:\example.txt"
' Write
File.WriteAllText(path, "Hello VB.NET")
' Read
Dim content = File.ReadAllText(path)
Console.WriteLine(content)
' Append
File.AppendAllText(path, vbCrLf & "New Line")

Berbagai cara:

  • StreamReader/StreamWriter untuk operasi berurutan.
  • BinaryReader/BinaryWriter untuk data biner.
  • FileInfo/DirectoryInfo untuk manajemen metadata.

Manfaat: API sederhana dan keamanan pengecualian; kerugian: potensi kemacetan I/O jika tidak ditangani secara asinkron.


33) Apa saja operasi XML di VB.NET? Bagaimana cara membaca dan menulis XML secara efisien?

VB.NET menyediakan beberapa jenis pemrosesan XML melalui System.Xml dan LINQ ke XML (System.Xml.Linq).

Contoh penggunaan LINQ ke XML:

Dim books = <Books> 
            <Book title="VB.NET Essentials" author="John Doe"/>
            </Books>
books.Save("books.xml")
Dim loaded = XDocument.Load("books.xml")
For Each book In loaded...<Book>
    Console.WriteLine(book.@title)
Next

Keuntungan:

  • Sintaksis deklaratif.
  • Kueri mudah melalui LINQ.
  • Validasi skema (XmlSchemaSet).

kekurangan:

  • Jejak memori yang lebih besar untuk file besar.

Untuk performa, lebih baik XmlReader untuk pembacaan streaming.


34) Jelaskan serialisasi dan jenis-jenisnya di VB.NET. Sertakan tabel perbandingan.

Serialisasi mengonversi objek ke dalam format yang dapat disimpan atau ditransmisikan. Deserialisasi merekonstruksi objek.

Tipe Namespace dibentuk Use Case
Biner System.Runtime.Serialization.Formatters.Binary Biner Cepat, kompak (tidak digunakan lagi di .NET 5+)
XML System.Xml.Serialization XML Dapat dioperasikan, dapat dibaca
JSON System.Text.Json JSON API web modern
Kontrak Data System.Runtime.Serialization XML/JSON WCF & kontrak

Contoh:

Dim emp As New Employee With {.Id = 1, .Name = "Sam"}
Dim serializer As New XmlSerializer(GetType(Employee))
Using fs As New FileStream("emp.xml", FileMode.Create)
    serializer.Serialize(fs, emp)
End Using

Manfaat: persistensi yang mudah, interoperabilitas; kerugian: tantangan pembuatan versi dan biaya kinerja untuk grafik besar.


35) Apa perbedaan antara Autentikasi dan Otorisasi dalam konteks keamanan VB.NET?

Autentikasi memverifikasi yang pengguna adalah; Otorisasi menentukan apa mereka bisa melakukannya.

Aspek Otentikasi Authorization
Tujuan Verifikasi identitas Berikan hak akses
Mekanisme Kredensial (nama pengguna/kata sandi, token) Peran, klaim
Example Validasi formulir login Kontrol akses berbasis peran
Namespace System.Security.Principal System.Web.Security

Contoh:

If User.Identity.IsAuthenticated Then
    If User.IsInRole("Admin") Then
        ' Allow access
    End If
End If

Keduanya merupakan tahap siklus keamanan utama — autentikasi terlebih dahulu, kemudian otorisasi.


36) Bagaimana cara kerja enkripsi dan dekripsi di VB.NET? Berikan contoh praktisnya.

VB.NET mendukung kriptografi melalui System.Security.Cryptography. Umum jenis termasuk simetris (AES, DES) dan asimetris (RSA) enkripsi.

Contoh penggunaan AES:

Dim aes As Aes = Aes.Create()
aes.Key = keyBytes
aes.IV = ivBytes
Dim encryptor = aes.CreateEncryptor(aes.Key, aes.IV)

Manfaat: melindungi kerahasiaan dan integritas.

kekurangan: kompleksitas manajemen kunci, biaya CPU.

penggunaan enkripsi asimetris untuk pertukaran kunci dan simetris untuk data massal.


37) Bagaimana Anda memanggil Layanan Web atau REST API dari VB.NET?

VB.NET dapat menggunakan REST API menggunakan HttpClient.

Contoh:

Imports System.Net.Http
Imports System.Threading.Tasks
Public Async Function GetWeatherAsync() As Task
    Using client As New HttpClient()
        Dim response = Await client.GetStringAsync("https://api.weather.com/data")
        Console.WriteLine(response)
    End Using
End Function

Manfaat: kesederhanaan, dukungan async, integrasi JSON.

kekurangan: Penanganan pengecualian untuk kegagalan jaringan adalah wajib.

Anda juga dapat menggunakan Add Web Reference untuk layanan SOAP lama.


38) Apa itu delegasi dan ekspresi lambda, dan bagaimana keduanya digunakan bersama dalam VB.NET?

A melimpahkan adalah pointer aman tipe ke suatu fungsi; lambda adalah fungsi anonim sebaris. Keduanya sering bekerja sama untuk penanganan peristiwa atau ekspresi LINQ.

Contoh:

Dim square As Func(Of Integer, Integer) = Function(x) x * x
Console.WriteLine(square(4))

Keuntungan: sintaksis ringkas, gaya pemrograman fungsional, dapat digunakan kembali.

kekurangan: kurang dapat dibaca untuk logika yang kompleks.

Delegasi membentuk dasar untuk panggilan balik asinkron, peristiwa, dan ekspresi LINQ.


39) Apa perbedaan antara kode terkelola dan tidak terkelola di VB.NET?

Kode terkelola dijalankan di bawah kendali Common Language Runtime (CLR), sementara kode yang tidak terkelola berjalan langsung di OS (misalnya, C++ perpustakaan).

Fitur dikelola Tidak dikelola
Memori GC Otomatis Manajemen manual
Security Diberlakukan CLR Diberlakukan oleh pengembang
Interop Mudah melalui P/Invoke panduan
Example Kelas VB.NET C++ DLL

Contoh (P/Invoke):

<DllImport("user32.dll")>
Public Shared Function MessageBox(hwnd As IntPtr, text As String, caption As String, type As Integer) As Integer
End Function

Gunakan interop yang tidak terkelola dengan hati-hati dan selalu kosongkan sumber daya asli dengan benar.


40) Bagaimana Anda mengoptimalkan kinerja aplikasi VB.NET? Sebutkan strategi utamanya.

Mengoptimalkan kinerja VB.NET melibatkan algoritmik, memori, dan arsitektur perbaikan.

Teknik:

  1. penggunaan StringBuilder untuk penggabungan dalam loop.
  2. Aktifkan Opsi Ketat dan Eksplisit.
  3. Buang sumber daya yang tidak terkelola.
  4. Memanfaatkan I/O asinkron.
  5. Simpan perhitungan yang sering dilakukan.
  6. Gunakan jenis nilai yang sesuai.
  7. Profil dengan Alat Diagnostik Visual Studio.

Contoh:

Dim sb As New Text.StringBuilder()
For i = 1 To 10000
    sb.Append(i)
Next

Manfaat: mengurangi konsumsi CPU/memori dan meningkatkan responsivitas.

kekurangan: optimasi mikro dapat mengganggu keterbacaan—ukur sebelum penyetelan.


🔍 Pertanyaan Wawancara VB.Net Teratas dengan Skenario Dunia Nyata & Respons Strategis

1) Apa perbedaan utama antara VB.Net dan VB6?

Diharapkan dari kandidat: Pewawancara ingin melihat apakah kandidat memahami bagaimana VB.Net telah berkembang dari VB6, dengan fokus pada paradigma pemrograman modern dan integrasi kerangka kerja .NET.

Contoh jawaban:

VB.Net adalah bahasa berorientasi objek penuh yang berjalan di .NET Framework, sementara VB6 tidak sepenuhnya berorientasi objek dan berjalan sebagai bahasa mandiri. VB.Net mendukung pewarisan, polimorfisme, penanganan pengecualian terstruktur, dan interoperabilitas dengan bahasa .NET lainnya, yang membuatnya lebih canggih dan fleksibel dibandingkan VB6.


2) Bisakah Anda menjelaskan konsep Common Language Runtime (CLR) di VB.Net?

Diharapkan dari kandidat: Pemahaman tentang komponen inti yang menjalankan program VB.Net.

Contoh jawaban:

Common Language Runtime (CLR) adalah mesin eksekusi .NET Framework. Mesin ini mengelola memori, eksekusi thread, penanganan eksepsi, dan keamanan. Kode VB.Net pertama-tama dikompilasi menjadi kode Intermediate Language (IL), yang kemudian dieksekusi oleh CLR, memastikan kompatibilitas lintas bahasa dan kinerja yang optimal.


3) Bagaimana Anda menangani pengecualian di VB.Net?

Diharapkan dari kandidat: Pewawancara ingin memastikan kemampuan kandidat untuk menulis kode yang kuat dan bebas kesalahan.

Contoh jawaban:

“Di VB.Net, pengecualian ditangani menggunakan Try...Catch...Finally memblokir. Itu Try bagian berisi kode yang mungkin memunculkan pengecualian, Catch bagian menangani kesalahan, dan Finally Bagian ini menjalankan kode pembersihan. Struktur ini memastikan aplikasi tetap stabil bahkan ketika terjadi kesalahan tak terduga.


4) Jelaskan saat Anda mengoptimalkan aplikasi VB.Net untuk kinerja yang lebih baik.

Diharapkan dari kandidat: Kemampuan untuk menganalisis dan meningkatkan efisiensi kode.

Contoh jawaban:

"Di posisi saya sebelumnya, saya menangani aplikasi yang memiliki waktu respons lambat akibat kueri basis data yang tidak efisien. Saya mengoptimalkan kode dengan menerapkan prosedur tersimpan dan mengurangi pengulangan yang berlebihan. Hasilnya, kinerja aplikasi meningkat hampir 40 persen."


5) Bagaimana Anda menerapkan pewarisan dalam VB.Net?

Diharapkan dari kandidat: Pengetahuan tentang prinsip pemrograman berorientasi objek.

Contoh jawaban:

“Pewarisan di VB.Net dicapai dengan menggunakan Inherits kata kunci. Kelas anak mewarisi properti dan metode dari kelas induk, memungkinkan penggunaan kembali kode dan pemeliharaan yang lebih baik. Misalnya, Class Employee : Inherits Person memungkinkan kelas Karyawan untuk mewarisi atribut dan perilaku dari kelas Orang.”


6) Ceritakan kepada saya tentang masalah debugging yang menantang yang Anda atasi di VB.Net.

Diharapkan dari kandidat: Pemecahan masalah dan pemikiran analitis.

Contoh jawaban:

Di pekerjaan saya sebelumnya, saya mengalami masalah kebocoran memori yang menyebabkan aplikasi VB.Net mogok setelah digunakan dalam waktu lama. Saya menggunakan alat diagnostik seperti Visual Studio Profiler untuk mengidentifikasi aliran berkas yang tidak tertutup. Setelah memastikan pembuangan sumber daya yang tepat dengan Using pernyataan, masalah tersebut telah terselesaikan sepenuhnya.”


7) Bagaimana Anda mengelola koneksi basis data dalam aplikasi VB.Net?

Diharapkan dari kandidat: Pemahaman tentang ADO.Net dan praktik terbaik akses data.

Contoh jawaban:

“Saya menggunakan ADO.Net untuk terhubung ke database melalui objek seperti SqlConnection, SqlCommand, dan SqlDataAdapterSaya selalu membuka sambungan selambat mungkin dan menutupnya segera setelah digunakan. Saya juga menggunakan Using blok untuk memastikan bahwa koneksi dibuang dengan benar, mencegah kebocoran sumber daya.”


8) Bagaimana Anda menangani situasi di mana aplikasi VB.Net tiba-tiba berhenti merespons dalam produksi?

Diharapkan dari kandidat: Keterampilan berpikir kritis dan pemecahan masalah di bawah tekanan.

Contoh jawaban:

Dalam skenario seperti itu, pertama-tama saya akan meninjau log peristiwa dan pesan kesalahan untuk menentukan penyebabnya. Saya akan memeriksa adanya loop tak terbatas, pengecualian yang tidak tertangani, atau deadlock. Setelah teridentifikasi, saya akan mereproduksi masalah tersebut di lingkungan pengujian dan menerapkan patch. Komunikasi dengan para pemangku kepentingan akan tetap terjaga selama proses berlangsung.


9) Bagaimana Anda menggunakan LINQ di VB.Net untuk bekerja dengan koleksi atau basis data?

Diharapkan dari kandidat: Kemampuan untuk menggunakan fitur .NET modern untuk kueri data.

Contoh jawaban:

“LINQ (Language Integrated Query) memungkinkan kueri koleksi atau basis data dengan cara yang ringkas dan mudah dibaca. Misalnya, Dim result = From emp In Employees Where emp.Salary > 50000 Select emp menyaring karyawan yang berpenghasilan lebih dari 50,000. Ini menyederhanakan manipulasi data dan meningkatkan keterbacaan kode.”


10) Jelaskan bagaimana Anda memastikan pemeliharaan dan skalabilitas kode dalam proyek VB.Net.

Diharapkan dari kandidat: Pemahaman tentang arsitektur perangkat lunak dan praktik terbaik pengkodean.

Contoh jawaban:

"Dalam peran terakhir saya, saya menerapkan prinsip SOLID dan arsitektur berlapis untuk memastikan kemudahan pemeliharaan. Saya memisahkan logika bisnis dari lapisan akses data dan presentasi. Saya juga menerapkan konvensi penamaan yang konsisten, dokumentasi yang tepat, dan pengujian unit, yang memudahkan tim untuk meningkatkan skala dan memperbarui basis kode secara efisien."

Ringkaslah postingan ini dengan: