Penanganan
Kesalahan & Help Dokumentasi
Kesalahan dan Slip
Error (Kesalahan), tidak ada aplikasi yg berjalan sempurna sebelum melewati berbagai
rentetan kesalahan semakin besar aplikasi yang dibuat, semakin banyak kesalahan yang dapat
timbul.
Sebuah kompilator akan sering menemui program yang mengandung kesalahan, maka
kompilator harus memiliki strategi apa yang harus dilakukan untuk menangani kesalahan -
kesalahan tersebut
Error (Kesalahan), tidak ada aplikasi yg berjalan sempurna sebelum melewati berbagai
rentetan kesalahan semakin besar aplikasi yang dibuat, semakin banyak kesalahan yang dapat
timbul.
Sebuah kompilator akan sering menemui program yang mengandung kesalahan, maka
kompilator harus memiliki strategi apa yang harus dilakukan untuk menangani kesalahan -
kesalahan tersebut
Sebuah kompilator akan sering menemui program yang mengandung
kesalahan, maka kompilator harus memiliki strategi apa yang harus dilakukan
untuk menangani kesalahan - kesalahan tersebut.
Jenis – jenis Kesalahan
Kesalahan Leksikal
Misalnya kesalahan mengeja keyword,
contoh: then ditulis ten
Kesalahan Sintaks
Misalnya pada operasi aritmatika kekurangan jumlah paranthesis
(kurung).
contoh : A:=X+(B*(C+D)
Kesalahan Semantik
Tipe data yang salah, misal tipe data integer digunakan untuk
variabel string.
Contoh : Var Siswa
: Integer
Siswa
:= 'Aka' {tipe string}
Variabel belum didefinisikan tetapi digunakan dalam operasi.
Contoh : B := B + 1 {B belum didefinisikan}
Petunjuk Pencegahan Kesalahan
Petunjuk Pencegahan Kesalahan terdiri dari :
-Mendeteksi kesalahan
-Melaporkan kesalahan
-Tindak lanjut perbaikan / pemulihan
Pelaporan kesalahan yang dilakukan oleh sebuah kompilator yang
menemukan kesalahan meliputi :
-Kode kesalahan
-Pesan kesalahan dalam bahasa natural
-Nama dan atribut identifier
-Tipe – tipe yang terkait bila type checking
Contoh : Error Message : Error 162
jumlah: unknown identifier
Kode kesalahan = 162
Pesan kesalahan = unknown identifier
Nama identifier = jumlah
Adanya pesan kesalahan tersebut akan memudahkan pemrogram dalam
mencari dan mengoreksi sumber dari kesalahan.
Pada saat kompilator menemukan kesalahan terdapat beberapa
tingkatan reaksi diantaranya adalah :
Reaksi yang tidak dapat diterima (tidak melaporkan error)
-Kompilator crash : berhenti atau hang
-Looping : kompilator masih berjalan tapi tidak pernah berakhir
karena looping tak berhingga (indefinite/onbounded loop)
-Menghasilkan program objek yang salah : kompilator melanjutkan
proses sampai selesai tapi program objek yang dihasilkan salah. Ini berbahaya
bila tidak diketahui pemrogram, karena baru akan muncul saat program
dieksekusi.
Reaksi yang benar tapi kurang dapat diterima dan kurang
bermanfaat. Kompilator menemukan kesalahan pertama, melaporkannya, lalu
berhenti (halt). Ini bisa muncul bila pembuat kompilator menganggap jarang
terjadi kemunculan error dalam program sehingga kemampuan kompilator untuk
mendeteksi dan melaporkan kesalahan hanya satu untuk setiap kali kompilasi.
Pemrogram akan membuang waktu untuk melakukan pengulangan kompilasi setiap kali
terdapat sebuah error.
Reaksi yang dapat diterima
-Reaksi yang sudah dapat dilakukan, yaitu kompilator melaporkan
kesalahan / error, dan selanjutnya melakukan:
Recovery / pemulihan, lalu melanjutkan menemukan kesalahan / error
yang lain bila masih ada.
Repair / Perbaikan kesalahan, lalu melanjutkan proses translasi
dan menghasilkan program objek yang valid. Kebanyakan
kompilator dewasa ini sudah memiliki kemampuan recovery dan repair.
-Reaksi yang belum dapat dilakukan, yaitu kompilator mengkoreksi
kesalahan, lalu menghasilkan program objek sesuai dengan yang diinginkan
pemrogram. Disini komputernya sudah memiliki kecerdasan untuk mengetahui maksud
pemrogram. Tingkatan respon ini belum dapat diimplementasikan pada kompilator
yang ada dewasa ini.
Petunjuk Memperbaiki Kesalahan
Tujuannya mengembalikan kondisi parser ke kondisi stabil (supaya bisa
melanjutkan proses parsing ke posisi selanjutnya). Strategi yang dilakukan
error recovery sebagai berikut :
-Mekanisme Ad Hoc
Recovery yang dilakukan tergantung dari pembuat kompilator
sendiri/Spesifik, dan tidak terikat pada suatu aturan tertentu. Cara ini biasa
disebut juga special purpose error recovery.
-Syntax Directed Recovery
Melakukan recovery berdasarkan syntax
Contoh : ada program
begin
A:=A+1
B:=B+1;
C:=C+1
end;
kompilator akan mengenali sebagai (dalam notasi BNF)
begin <
statement>?<statement>;<statement>end;
? akan diperlakukan sebagai “;”
-Secondary Error Recovery
Berguna untuk melokalisir kesalahan / error, caranya :
Panic mode
Maju terus dan mengabaikan teks sampai bertemu delimeter (misal
‘;’)
contoh :
IF A := 1
Kondisi := true;
Teks diatas terjadi kesalahan karena tidak ada instruksi THEN,
kompilator akan maju terus sampai bertemu ‘;’
Unit deletion
Menghapus keseluruhan suatu unit sintaktik (misal:
<block>,<exp>,<statement> dan sebagainya), efeknya sama
dengan panic mode tetapi unit deletion memelihara kebenaran sintaksis dari
source program dan mempermudah untuk melakukan error repairing lebih lanjut.
-Context Sensitive Recovery
Berkaitan dengan
semantik,misal bila terdapat variabel yang belum dideklarasikan(undifined
variabel) maka diasumsikan tipenya berdasarkan kemunculannya.
Contoh :
B:=
'nama'
sementara diawal program variabel B belum dideklarasikan,
maka berdasarkan kemunculannya
diasumsikan variabel B bertipe string.
Jenis-jenis document dan alat bantu
- Tidak pernah suatu penggantian untuk desain tidak baik, tetapi
penting.
- Sistem sederhana _ user memanggil dan menggunakannya, berikan
nama.
- Hampir sebagian sistem dengan banyak fitur membutuhkan
help/bantuan.
Jenis-jenis Bantuan:
- Tutorial
- Review/Referensi yang cepat
- Manual Referensi (Penjelasan lengkap)
- Bantuan untuk context-sensitive (spesifikasi tugas)
Ada sebagian pendapat menyatakan bahwa sistem yang interaktif
dijalankan tanpa membutuhkan bantuan atau training. Hal ini
mungkin
ideal, akan tetapi jauh dari kenyataan. Pendekatan yang lebih
membantu adalah dengan mengasumsikan bahwa user akan
membutuhkan bantuan pada suatu waktu dan merancang bantuan (help)
ke dalam sistem.
Isu Presentasi dalam Help dan Dokumentasi
a. Bagaimana help dan dokumentasi dipanggil? Pilihan pertama bagi perancang untuk membuat bagaimana bantuan dapat diakses oleh user. Bantuan ini dapat berupa command, tombol fungsi yang dapat memilih on atau off atau aplikasi yang terpisah.
b. Bagaimana help dan dokumentasi ditampilkan? Dalam sistem window akan ditampilkan dalam window yang baru. Dalam sistem lain mungkin dalam layar yang penuh atau bagian dari layar. Alternatif lain dapat berbentuk pop-up box atau tingkat command line.
c. Bagaimana help dan dokumentasi memiliki keefektifan? Tidak menjadi masalah teknologi apa yang digunakan untuk membuat help dan dokumentasi, tetapi yang perlu diperhatikan yaitu prinsip keefektifan.
a. Bagaimana help dan dokumentasi dipanggil? Pilihan pertama bagi perancang untuk membuat bagaimana bantuan dapat diakses oleh user. Bantuan ini dapat berupa command, tombol fungsi yang dapat memilih on atau off atau aplikasi yang terpisah.
b. Bagaimana help dan dokumentasi ditampilkan? Dalam sistem window akan ditampilkan dalam window yang baru. Dalam sistem lain mungkin dalam layar yang penuh atau bagian dari layar. Alternatif lain dapat berbentuk pop-up box atau tingkat command line.
c. Bagaimana help dan dokumentasi memiliki keefektifan? Tidak menjadi masalah teknologi apa yang digunakan untuk membuat help dan dokumentasi, tetapi yang perlu diperhatikan yaitu prinsip keefektifan.
Merancang Help dan dokumentasi
Terdapat banyak cara untuk merancangnya dan semua itu diserahkan
pada perancang untuk memilih cara yang terbaik akan tetapi hal yang perlu
diperhatikan adalah :
1. Perancangannya seharusnya
tidak seperti “add-on” pada system. Secara ideal seharusnya merupakan bagian
integral dalam sistem
2. Perancang harus
memperhatikan isi dari bantuan dan konteks sebelum teknologi tersedia
Sumber : Interaksi Manusia & Komputer Universitas Gunadarma
Surbekti, Irfan: Santosa, Insap ; Interaksi Manusia dan Komputer,
edisi Jurusan Teknik Informatika-ITS, 2006
Tidak ada komentar:
Posting Komentar