Pada kesempatan kali ini, kita akan membahas tentang suatu kesalahan dalam VB.NET, kenapa disebut kesalahan? bukannya sebuah software dibuat dengan sedemikian rupa?. Memang sih seperti itu, tapi yang saya maksud disini bukan keasalahan pada media nya sob, dari infomasi serta pengetahuan yang saya dapat, saya sendiri akhir mencari tahu, dan hasil yang saya dapatkan ternyata sama seperti info dan pengetahuan yang saya dapat. Mari kita uraikan.
Untuk kategori ini adalah termasuk Kesalahan Logika atau kesalahan pada koding kita atau coding kita salah, tetapi program tetap jalan tanpa ada nya miss, bug dan semacamnya, dengan hasil yang tidak kita harapkan. Kita bisa sangat sulit untuk melacaknya, terkadang hal seperti ini bisa membuat pemikiran kita stress.
Sekarang kita ambil contoh suatu coding yang termasuk dalam kategory ini. Buat project baru, dan component yang kita butuhkan cukup 1 button dan 1 textbox saja. Klik dua kali pada Button1 dan pastekan code berikut :
Dim x As Integer
Dim y As Integer
Dim Hasil As Integer
x = 10.5
y = 3
Hasil = x * y
TextBox1.Text = Hasil
sebelum kita menjalankan program kita untuk mengetahui hasilnya, menurut sobat berapa sih hasil dari 10.5 x 3 seperti coding diatas yang tulis seprti ini "Hasil = x * y". Pasti sobat berpikir, jika hasil dari 10.5 dikalikan 3 maka hasilnya adalah 31.5, coba sobat buka kalkulator berapa hasilnya. Sekarang coba sobat jalankan program sobat dan klik pada button tadi, maka hasil yang muncul di textbox kita ternyata 30!
Nah, ini yang disebut kesalaham logika. Ketika kita tidak mendapatkan hasil dari apa yang kita harapkan. Jika kita memperhatikan pada bagian jenis variabel, kita telah mencoba untuk menempatkan nomor floating point menjadi jenis variabel Integer. Sedangkan Variabel Integer hanya bekerja dengan bilangan bulat. Bila Anda menetapkan 10,5 untuk variabel x, titik 5 pada akhir akan dipotong. Jadi hanya 10 akan disimpan di x. 10 kali 3 adalah tiga puluh, dan ini adalah jawaban yang muncul di textbox.
Tetapi dasarnya atau intinya adalah bahwa VB.NET tidak mengangkat kesalahan Desain-waktu. Juga tidak meningkatkan kesalahan Runtime. Program tetap berjalan, dan tidak ada miss, bug yang keluar pada program kita. Tapi hanya tidak memberikan jawaban yang kita harapkan. Nah itu sob yang dimaksud kesalahan logika.
Kesalahan logika bisa cukup sederhana untuk melacak dan memecahkan. dan masalah seperti di atas dapat diselesaikan dengan mengubah jenis variabel dari Integer ke Single atau Double. Tapi kita juga bisa sangat sulit untuk melacaknya. Apa lagi kita sering membuat program dengan angka yang masuk dalam jenis veriabel integer.
Berikut adalah contoh lain dari kesalahan logika.
Hapus kode pertama tadi yang berada pada Button1, dan pastekan kode berikut :
Dim i As Integer
Dim Jumlah As Integer
Dim TesterText As String
Dim Huruf As Char
TesterText = "Debugging"
For i = 1 To TesterTex.Length - 1
Huruf = TesterText .Substring(1)
If Huruf = "g" Then
Jumlah = Jumlah + 1
End If
Next
TextBox1.Text = "G ditampilkan" & Jumlah & " karakter"
Dalam kode diatas adalah untuk mencoba dan menghitung berapa banyak jumlah huruf "g" yang digunakan pada kata "Debugging". Disini kita menggunakan Substring untuk mendapatkan satu huruf pada suatu waktu. Huruf ini kemudian ditempatkan di dalam jumlah yang disebut variabel. Pernyataan diatas Jika digunakan untuk memeriksa apakah huruf itu adalah "g". Jika ya, kita kenaikan variabel Jumlah. Hasil yang kita harapkan dalam textbox adalah 3. tetapi, kita tidak mendapatkan 3. melainkan nol.
program tetap berjalan tidak suatau kesalahan. Ketika tombol diklik, tidak ada Runtime, program tidak crash. Sehingga meninggalkan kesalahan logika. Tapi di mana itu?
Pada kesempatan berikutnya kita akan membahas bagaimana menggunakan alat inbuilt VB NET. Untuk membantu kita melacak kesalahan logika.
Demikian sedikit informasi dari saya semoga membantu.