Tuesday, 20 December 2016T12/20/2016 08:24:00 pm

CARA MENCEGAH TERJADINYA DUPLICATE PRIMARY KEY DI DELPHI

Salam blogger……pada postingan saya kali ini akan membahas tentang bagaimana cara untuk menghindari terjadinya duplikasi data yang di input pada Delphi. Dalam membuat sebuah project di Delphi kita biasanya membuat sebuah database yang isinya membuat berbagai macam info record yang dibutuhkan. Contohnya kita ingin membuat aplikasi penjualan barang menggunakan delphi, maka logikanya setiap barang yang diinput memiliki nama dan ID nya masingmasing,  ID atau primary key ini bersifat unik dan beda untuk masingmasing recordnya, artinya setiap ID atau primary key tidak boleh sama, nah jika kita ingin menyimpan data dengan ID yang sama maka kemungkinan besar aplikasi nya akan error. Pertanyaan nya adalah bagaimana cara agar duplikasi data tersebut dapat dicegah ???, nah untuk itu saya akan menjelaskan dan memberikan sedikit trik sederhana untuk mengatasi hal tersebut.

Disini saya akan mnjelaskan 2 cara untuk mengatasi duplicate data primary key di Delphi tersebut, cara yang pertama ialah dengan cara membuat nomor atau kode otomatis, dan cara yang kedua adalah dengan cara melakukan pengecekan atau validasi pada saat menginput data pada ID atau primary key. Berikut ini saya akan jelaskan cara tersebut satu persatu.

1.Membuat nomor atau kode otomatis di Delphi
Cara ini bisa dibilang sangat mudah di lakukan dan sangat aman dari terjadinya error duplikasi data pada proses penginputan data di Delphi. Cara kerjanya adalah kita membuat sebuah function no ID otomatis pada primary key tersebut, sehingga setiap record yang dibuat mempunyai nomor ID otomatis berbeda beda dan tidak selalu sama,sehingga membuat kecil kemungkinan dapat terjadi duplikasi data.

Cara pembuatanya adalah pertama – tama siapkan table pada database terlebih dahulu, jangan lupa buat sebuah primary key untuk kode uniknya, selanjutnya buat sebuah project Delphi dan form baru nya (saya rasa disini semua sobat sudah mahir membuat formnya) selanjutnya buat sebuah function di form tersebut dan letakan di bagian private ataupun public. Lalu ketikan fungsi ini tanpa tanda petik “function GenerateID(T: TDateTime): string;” lalu selanjutnya tekan ctrl + C maka akan tampil function generate ID otomatisnya selanjutnya ketikan kode program berikut ini :
function TFsamsat.GenerateID(T: TDateTime): string;
var
Yr, Mn, Dy : Word;
Hr, Mnt, Sec, MSec : Word;
Begin
DecodeDate(T, Yr, Mn, Dy);
DecodeTime(T, Hr, Mnt, Sec, MSec);
Result := FormatFloat('00', Yr-2000) + FormatFloat('00', Mn) +
FormatFloat('00', Dy) + FormatFloat('00', Hr) +
FormatFloat('00', Mnt) + FormatFloat('00', Sec) +
FormatFloat('00', MSec);
end;

jika sudah selanjutnya kita akan membuat kode untuk eksekusi kode otomatis tersebut, caranya adalah klik pada Adotable1 (disini saya menggunakan adotable) lalu pada object inspector pilih event OnNewRecord lalu klik dan tambahkan kode program berikut ini :
procedure TForm1.Tadotable1NewRecord(DataSet: TDataSet);
begin
Tadotable1BarangID.Value:=GenerateID(now);
end;
penjelasan dari kode diatas adalah Tadotable1 merupakan nama table yang sudah di konesikan, sedangan barangID merupakan nama field primary key  nomor otomatis nya, silahkan disesuaikan dengan nama yang anda buat di program Delphi sobat. Cara kerja koding diatas adalah jika sobat menjalakan aplikasi dengan menambah record baru maka setiap record nya akan membuat nomor otomatis sendiri tanpa harus diinputkan,sehingga duplikasi data tidak akan terjadi karena nomor otomatisnya berbeda beda tiap recordnya ID nya dibuat menyesuaikan tanggal bulan tahun menit dan detik saat proses penambahan data baru.

2.melakukan validasi atau pengecekan data pada saat input Kode / Nomor primary key
Cara ini dapat dilakukan jika kita menginput / memasukan kode barang / ID secara manual, cara kerjanya adalah pada saat kita menginputkan ID dari suatu barang maka koding program nya akan mengecek ID tersebut, apakah ID tersebut sudah ada atau belum ada, jika ternyata ID yang diinput sudah ada maka akan muncul pesan peringatan bahwa ID yang dimasukan sudah ada, dan proses dihentikan untuk selanjutnya diminta memasukan ID yang lain, jika ID ternyata tidak ada maka proses kerja program dilanjutkan. Berikut ini cara membuat kode program peringatan tersebut. Tambahkan sebuah ADOquery1 dan Buat sebuah edit text ataupun dbedit text lalu klik pada edit text / dbedit text tersebut, lalu pada object inspector cari event OnExit lalu tambahkan kode dibawah ini pada OnExit :
procedure TFbarang.DBEdit1Exit(Sender: TObject);
begin
with qbarang do
begin
Active := False;
SQL.Clear;
SQL.Text :=
' SELECT * FROM tbbarang WHERE IDbarang = ' + QuotedStr(dbedit1.Text);
Active := True;
if qbarang.RecordCount > 0 then
begin
MessageDlg('KODE BARANG yang di input sudah ada !!!',mtError,[mbOK],0);
tbarang.Cancel;
bitbtn1.Click;
end;
end;
end;
Penjelasan dari kode diatas adalah qbarang merupakan adoquery1, tbbarang merupakan nama table barang di database, DBedit1 merupakan primary key.

Demikian postingan saya kali ini tentang bagaimana cara mencegah / menghindari terjadinya duplikasi data pada saat proses penginputan data di project Delphi, semoga dapat bermanfaat dan selamat mencoba.
Previous
Next Post »
2 Komentar untuk "CARA MENCEGAH TERJADINYA DUPLICATE PRIMARY KEY DI DELPHI"

Mau tanya gan kalo seumpama saya ingin memasukan NIP tanggal
12345 12/12/2017
Jika inputan seperti itu saya simpan otomatis data tidak akan ke save karena sudah ada. Jika nip tersebut kita rubah sedangkan tgl tetap sama bagaimana querynya. Mohon bantuanya

tergantung sobat menggunakan primary key yang mana ....untuk mencegah double data, sebelum di record gunakan peringatan dgn sql di atas,biar program membaca bhwa nip yg dimasukan sudah ada, jadi tinggal sobat rubah aj nip nya jika yg menjadi primary key itu nip.

Silahkan tinggalkan komentar dibawah ini,
Terima kasih sudah :
1. Berkomentar dengan sopan
2. Tidak meninggalkan link aktif dalam form komentar
3. Berkomentar sesuai postingan / artikel
4. Tidak membuat komentar yang mengandung SARA / SPAM
5. Memberikan informasi link / script yang tidak berfungsi

Terima Kasih Sudah Berkomentar

PENDAPAT ANDA TENTANG BLOG INI ?

Follow by Email

 
Copyright © 2014 uduy macal blog's - All Rights Reserved
Template By Kuncidunia
DMCA.com Protection Status