Minggu, 24 April 2011

VB Pemula - Step 6 : MESSAGE BOX DAN ERROR HANDLING

Masih ingat dengan program penghitung luas lingkaran yang telah kita buat di tutorial sebelumnya? Jika lupa, baca kembali Tutorial 4.
Okay, sekarang flashback dulu. Coba buka kembali project yang telah kita buat di tutorial 5. Jalankan program tersebut! Kemudian cobalah mengetikkan huruf, kemudian klik tombol Hitung! Apa yang terjadi?
Yang terjadi akan muncul kotak dialog seperti ini:



Program tidak bisa lanjut.... Inilah yang disebut dengan ERROR. Dalam hal ini, error disebabkan karena KETIDAKCOCOKAN tipe data. Dalam kode, kita mendeklarasikan variabel jarijari sebagai Single. Tetapi, dalam pelaksanaannya, Anda malah memasukkan huruf (string). Tentu saja ini sangat menyalahi bukan?? Lagipula huruf kan tidak bisa dihitung.... Komputernya bingung kan?
Tentu saja, error ini sangat menjengkelkan bagi user. Jika terjadi error seperti ini, program tidak bisa lanjut dan akan tertutup dengan sendirinya.
Nah.... Sekarang, kita akan belajar bagaimana langkah mengatasi error. Sekarang teori dulu ya.... Praktik di akhir.... Yuk mari....

Perintah GoTo

Setelah berkecimpung di dunia properties dan variabel, mari kita belajar perintah baru. Yaitu perintah GoTo. (ditulis tanpa spasi). Apaan tuh GoTo??? Sesuai dengan namanya.... GoTo. Fungsinya adalah untuk "menuju ke....".
Strukturnya?? Gampang. Ini dia:

GoTo

Bagaimana cara menampilkannya?? Yaitu dengan cara menggunakan perintah MsgBox. Ini dia struktur kodenya....

MsgBox , ,

Penjelasan:
adalah pesan yang muncul pada Message
adalah tipe/model MessageBox yang ditampilkan. Ada banyak tipenya. Anda bisa memilihnya dari daftar pilihan yang otomatis muncul saat Anda mengetikkan kode. Seperti ini:


adalah judul dari Message Box yang tampil.
Untuk contoh gambar di atas, saya memakai kode:
MsgBox "Anda belum memasukkan data!", vbInformation, "Informasi"
INGAT: tipe data pada pesan Anda dan judul pesan adalah string, jadi pastikan Anda memakai tanda kutip ("....")

Mengatasi Error

Lalu apa hubungannya perintah GoTo, Message Box dengan mengantisipasi error?? Ini dia.... Cara mengatasi error ada 2, bisa dengan cara GoTo (cara melompat), atau dengan cara hajar langsung (error diabaikan, tabrak langsung ke perintah berikutnya...).

Yang pertama dengan menggunakan GoTo:
1. Buka kembali project yang telah kita buat pada Tutorial 5.
2. Buka jendela kode! Kita akan memodifikasi kode pada Command1_Click. Modifikasi jadi seperti ini:


Penjelasan:
a. Di paling atas, ditambah perintah On Error GoTo salah
b. Di paling bawah, ditambah perintah:
salah:
MsgBox "Masukkan data dengan benar", vbCritical, "Marah!"
c. Maksudnya, saat terjadi error, maka program akan langsung loncat ke baris salah. (Ketika Anda mengerjakan soal ujian tapi tidak bisa, pasti dilewat-lewat saja bukan? Prinsip tersebut digunakan pada metode ini.)
d. Oh iya ketinggalan... Di atas baris salah, ada perintah Exit Sub. Perintah ini fungsinya menghentikan pembacaan perintah STOP sampai di sini saja. Bayangkan bila tidak ada perintah Exit Sub ini. Ketika Anda memasukkan data berupa angka dan bisa dihitung dgn baik (tidak error), baris salah juga akan ikut terpanggil. Padahal tidak error kan? Tapi baris salah tetap saja terpanggil. Maka dari itu, jangan lupa menambahkan perintah Exit Sub TEPAT di atas baris salah.
3. Coba jalankan program Anda, lalu cobalah memasukkan data berupa huruf, dan klik tombol Hitung! Kotak dialog pun akan muncul.


Ketika Anda menekan tombol OK, program tidak akan tertutup dengan sendirinya. Berbeda jika tanpa perintah On Error. Program akan tertutup sendirinya jika ada error.

Bagaimana dengan cara hajar langsung??

Caranya mudah, tinggal tambahkan kode: On Error Resume Next. Seperti ini:


Jika terjadi error, error tersebut akan diabaikan. Lanjut tabrak ke perintah berikutnya. Anda bisa mencoba programnya sendiri. Saat terjadi error, tidak terjadi apa-apa kan?
Itulah mengenai bagaimana caranya mengatasi error. Ingin cara 1 atau cara 2, itu terserah Anda. Asalkan program yang Anda buat tidak membuat si user marah-marah dan kebingungan. ; )
Lanjut ke tutorial 7 yuk....

5 komentar: