Skip to main content

Validasi Data Penanganan Kesalahan Lazarus Free Pascal (Belajar Lazarus #9)

Pengecekan Validasi (Keabsahan) Data dengan Penanganan Kesalahan pada Lazarus Free Pascal wajib dilakukan oleh programmer, Sebagai programmer kita menginginkan agar pemakai program buatan kita dijalankan dengan benar, misal disuruh input angka maka yang diinputkan juga angka, inputan tanggal diisi tanggal. Ada kalanya apa yang kita inginkan sebagai programmer tidak dilakukan oleh pemakai program kita, baik itu karena unsur sengaja maupun tidak sengaja. Bisa juga kesalahan data itu dari hasil program kita sendiri.

Sebagai bahan praktek validasi data kali ini silahkan buka kembali postingan aku sebelumnya di Memilih Data dengan RadioButton Lazarus (Belajar Lazarus #7) buka proyek aplikasi kasiratk.lpi

program kasir ATK

Silahkan compile (tekan F9) lalu coba masukkan pada kotak EBanyak barang dengan angka pecahan misalnya 5.5 , terus tekan tombol hitung. Perhatikan apa yang terjadi! Akan muncul pesan error.

Gambar error pertama di bawah ini adalah pesan error yang dihasilkan oleh IDE Lazarus Free Pascal.


Error IDE Lazarus Kasir ATK

Sedangkan error kedua di bawah ini adalah yang dihasilkan oleh Program Kasiratk. (Jika program dijalankan diluar IDE Lazarus maka yang muncul hanya gambar error di bawah ini saja)
Error program kasirark

Pesan error tersebut menyebutkan:
"5.5" is an invalid integer.

Coba ingat-ingat tipe data apa yang kita gunakan untuk harga, banyak, dan bayar pada program kasiratk? Tipe datanya integer kan. Sedangkan 5.5 adalah merupakan tipe data real.

Untuk error yang kemungkinan bisa timbul pada sebuah program maka perlu dilakukan pengecekan validasi / keabsahan data dengan melakukan penanganan kesalahan / error handling yang mungkin bisa timbul. Untuk program kasihatk ini pengecekan validasi / keabsahan meliputi:

1. Mencegah pengguna agar hanya bisa mengetikkan angka saja pada kotak EBanyak. Sebab jika huruf yang diisikan pada kotak EBanyak maka akan error karena huruf bukan tipe data integer yang valid.
 

Untuk validasi ini kita perlu membuat event OnKeyPress pada komponen EBanyak seperti di bawah ini:

procedure TFKasirATK.EBanyakKeyPress(Sender: TObject; var Key: char);
begin
  if not (key in['0'..'9',#8,#13]) then
  Key:=#0;
end;


Untuk referensi tentang eventkeypress silahkan baca disini Program Kode Ascii Keyboard Lazarus Free Pascal

2. Jika kotak edit masih kosong atau berisi 0 maka transaksi digagalkan. Sebab jika kotak edit masih kosong maka akan muncul error karena data kosong bukan merupakan data integer yang valid. Walau kotak EBanyak berisi angka 0 yang merupakan nilai integer yang valid tapi kita gagalkan juga transaksinya sebab secara logika kalau berisi 0 maka tidak ada barang yang dibeli.


Untuk validasi ini kita perlu merubah isi event OnClick milik komponen BHitung seperti di bawah ini:

procedure TFKasirATK.BHitungClick(Sender: TObject);
var
  harga, banyak, bayar: integer;
begin
  if (EBanyak.Text='') or (EBanyak.Text='0') then
    ShowMessage('Isikan banyak barang!')
  else
  begin
    banyak:= strtoint(EBanyak.Text);
    if RBSpidol.Checked then harga:= 5000;
    if RBPulpen.Checked then harga:= 3000;
    if RBPensil.Checked then harga:= 1000;
    bayar:= banyak*harga;
    EJumlah.Text:= inttostr(bayar);
  end;
end;


Sekarang simpan dan compile / jalankan dengan menekan F9. Lihat apa yang terjadi. pada kotak edit EBanyak selain angka tidak dapat diketikkan dan jika EBanyak masih kosong atau berisi 0 maka akan muncul kotak pesan
"Isikan banyak barang!". Sekian tutorial Validasi Data Penanganan Kesalahan Lazarus Free Pascal semoga bermanfaat.

Comments

Popular posts from this blog

Inilah Kelebihan dan Kekurangan SQLite

  Artikel ini akan membahas tentang, tipe data yang didukung SQLite,  kelebihan dari SQLite, kekurangan SQLite, kapan sebaiknya ketika menggunakan SQLite dan kapan sebaiknya kita tidak menggunakan SQLite. Merujuk dari id.wikipedia.org disebutkan bahwa SQLite merupakan sebuah sistem manajemen basisdata relasional yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp . SQLite adalah perpustakaan menakjubkan yang disematkan di dalam aplikasi yang menggunakan. Sebagai database mandiri, berbasis file, SQLite menawarkan serangkaian menakjubkan alat untuk menangani segala macam data dengan jauh lebih sedikit kendala dan kemudahan dibandingkan dengan host, proses berbasis (server) database relasional. Ketika sebuah aplikasi menggunakan SQLite, integrasi bekerja dengan panggilan fungsional dan langsung dibuat untuk file memegang data (yaitu ...

Aplikasi Demo Penggunaan Memo ComboBox ListBox dan CheckBox (Belajar Lazarus #14)

Mempelajari Listbox yang Owner-Draw Lazarus telah kita bahas pada artikel sebelumnya, sekarang mari kita buat Aplikasi Demo Penggunaan Memo ComboBox ListBox dan CheckBox . CheckBox memberi dua pilihan (bahkan tiga pilihan) kepada pemakai, properti yang berkaitan dengan pilihan pada CheckBox yaitu: Ubah property Checked menjadi True agar CheckBox dipilih secara default. Ubah AllowGrayed menjadi True agar CheckBox mempunyai 3 pilihan, yaitu checked , unchecked dan grayed . Property State menyatakan apakah CheckBox dalam keadaan checked ( cbChecked ), unchecked ( cbUnchecked ), atau grayed ( cbGrayed ). Memo dipakai untuk memasukkan data yang lebih dari satu barus. ListBox menampilkan daftar dan Anda dapat memilih item-itemnya: Property Items dibakai untuk mengisi pilihan-pilihan yang mungkin. ItemIndex menyatakan item yang dipilih.  MultiSelect menyatakan apakah dapat memilih lebih dari satu pilihan pada saat yang bersamaan. Sorted menyatakan apakah daftar terurut sec...

Penggunaan MessageDlg Lazarus Free Pascal

Mari belajar Penggunaan MessageDlg pada Lazarus Free Pascal . MessageDlg berfungsi menampilkan pesan di tengah layar, kelebihan funsi MessageDlg dibandingkan dengan ShowMessage yang telah kita pelajari sebelumnya adalah kita bisa menentukan sendiri Caption dari kotak pesan, menentukan tipe gambar dan tipe tombol yang digunakan. Syntax Penggunaan MessageDlg Lazarus Free Pascal: MessageDlg('Isi Caption','Isi Pesan',Tipe Gambar,Tipe Tombol,0) Contoh: MessageDlg('Peringatan','Isikan banyak barang!',mtWarning,[mbOk],0) Maka tampilannya akan seperti gambar di bawah ini: Jenis-jenis Tipe Gambar: mtWarning : Tanda seru berwarna kuning. mtError : Tanda silang warna merah. mtInformation : Huruf i warna biru. mtConfirmation :  Tanda tanya warna biru. mtCustom : Tidak ada gambar. Jenis-jenis Tipe Tombol: mbYes : Tombol dengan tulisan 'Yes'. mbNo : Tombol dengan tulisan 'No'. mbOK : Tombol dengan tulisan 'OK'. mbCan...