Lazarus dan Autoincrement Field

Request

Dalam hal mendesain database, saya bingung mengenai “AUTOINCREMENT”. Misalnya di contoh db yg ini pakai, yg itu tidak, ada yg campur. Jadi pertanyaannya adalah, kapan kita menggunakan autoincrement, kapan kita menggunakan kode tertentu dalam mendesain suatu database?

Satu lagi mas Joko, menggunakan Lazarus apa mas Joko pernah? Apakah sebanding dengan Delphi? Meskipun banyak fitur yg jauh dari delphi namun saya sangat tertarik dengan Lazarus yg bisa multi-platform dan free tentunya. Dalam hal rad database application contohnya.

Autoincerement adalah jenis field database bertipe integer (bilangan bulat) yang nilainya otomatis bertambah setiap ada penambahan record baru ke tabel.

Field ini bersifat opsional, tergantung kebutuhan. Contoh, saat membuat tabel Teman. Misalkan ada tiga field, field Nama, field Alamat dan field Telepon. Nah, bila data teman sudah diinput dan ternyata ada dua atau lebih orang yang memiliki nama sama, Anda akan bingung mana yang seharusnya dipilih. Suatu waktu, teman bernama Agus mengganti nomor teleponnya, jadi Anda harus mengupdate tabel Teman dan memberikan nomor telepon baru ke field Telepon untuk teman bernama Agus. Bagaimana jika ada tiga teman bernama Agus? Bisa saja, dengan membandingkan alamat dan telepon yang lama. Tapi tentu saja merepotkan.

Di kasus seperti di atas, dapat kita tambahkan sebuah field bertipe Autoincrement misalnya bernama field ID, sehingga tiap baris mempunyai nomor sendiri. Agus dengan ID 1, Gunawan dengan ID 2, Yusuf dengan ID 3, Agus dengan ID 4, Jon dengan ID 5, Agus dengan ID 6, dst.

Saat ada update, Anda dapat mengupdate telepon pada baris “Agus dengan ID 6”, tanpa perlu membandingkan dengan Agus-Agus yang lain. Secara manusiawi hampir tidak ada bedanya, tapi secara program/kode, sangat membantu dengan menggunakan field ID ini.

Anggap saja field ini adalah NIP untuk tabel pegawai, KodeBarang untuk tabel barang, NomorKTP untuk tabel penduduk, NoSTNK untuk tabel kendaraan di SAMSAT.

Bila sebuah tabel sudah memiliki ID khusus, contoh tabel pegawai telah memiliki field NIP, biasanya kita tidak perlu membuat field bertipe Autoincrement. Tabel-tabel lain yang belum memiliki field unik yang berbeda pada tiap record/baris data sebaiknya memiliki field ini.

Kembali ke teknis, Autoincrement dapat merupakan bilangan bulat 32 bit (4byte integer) atau 64 bit (8byte integer). Bila tabel ditujukan untuk menyimpan data yang sangat banyak (daftar transaksi bank/daftar penjualan karcis), sebaiknya gunakan yang 64 bit agar tidak perlu membuat tabel baru secara periodik jika yang lama sudah full.

Selain penanda yang unik pada tiap baris data, field ini memberikan keuntungan lain. Database yang menerapkan tiga pokok normalisasi database, saling me-link antar tabel dengan field tertentu yang menjadi field kunci (Foreign Key), yang selanjutnya menjadi penghubung dua tabel. Untuk menjaga proses link yang cepat dan penggunaan memory sehemat mungkin, akan lebih bagus menggunakan field Autoincrement (4 byte/8 byte), dibandingkan menggunakan field NIP (12 karakter = 12 byte pada ANSI, atau 24byte pada Unicode). Keuntungan lainnya dapat Anda tanyakan pada om saya, Uncle Google.

Sampai di sini, saya anggap Anda sepakat tantang kapan field Auctoincrement diperlukan. Namun jika masih bingung, silahkan lakukan penyegaran dulu :

Kini megenai Lazarus.

Saya sudah menggunakan Lazarus sejak versi awal beberapa tahun lalu. Dibanding Delphi, tentu lebih enak Delphi, yang menurut saya merupakan RAD tool terbaik saat ini, meski kalah populer dibandingkan Visual Studio dari Microsoft.

Saya saat ini masih menggunakan Delphi sebagai development tool dan tidak berencana untuk migrasi ke Lazarus. Persoalan kebiasaan dan ketersediaan komponen pihak ketiga merupakan faktor utama.

Soal database development, tantunya Lazarus sudah mendukung, bahkan sangat baik. MySQL, Oracle, SQLite, PostgreSQL dan Interbase/Firebird didukung secara native. Sementara database lainnya semisal MS. Access dan SQL Server didukung lewat interface ODBC pada Windows.

Berikut contoh koneksi database Lazarus ke PostgreSQL.

Jadi saya katakan lagi, Delphi jauh lebih baik dan lebih nikmat dibanding Lazarus. Tapi bila Anda mencari solusi alternatif yang gratis dan bagus, terutama dengan dukungan Rapid Database Development, saya katakan “Pilih Lazarus.”

Selamat bercoding, semoga sukses menyertai selalu🙂

3 thoughts on “Lazarus dan Autoincrement Field

  1. saya seorang pemula dalam pemrograman lazarus. saya mw tnya mas, bagaimana cara menjumlahkan nilai pada suatu teks dengan nilai yang baru, misalnya ada radio button dengan angka 1000,, ketika qt klik button trsbut maka pada layar teks yg tersedia akan mucul nilai 1000,, kemudian qt me-klik lagi radio button dengan angka 500,, maka teks pada layar akan bertuliskan 1500 (1500=hasil klik button pertama+hasil klik button2)…

    sya mncoba mnggunakan sintak ini Edit1.Text:=strtoint(Edit1.Text)+floattostr(kertas500),, namun terdapat pesan error

    saya mohon bantuanna ^-^,, trima kasih

  2. StrToInt(Edit1.Text) hasilnya Integer (bilangan bulat).
    FloatToStr(…) hasilnya string/text. Keduanya gak bisa dijumlahkan.

    btw, kertas500 itu nama button ya?
    Bila ya, Anda dapat mencoba kode seperti ini:

    Edit1.Text := IntToStr( StrToInt(Edit1.Text) + StrToInt(Kertas500.Caption) );
    

    Dengan catatan, property Caption pada RadioButton hanya boleh mengandung angka, misalnya 100, 320, 1500, atau angka lainnya..

  3. foto ceweknya tu sapa ya??
    minta alamat emailnya dunk..🙂

    btw koneksi lazarus ke database(odbc) di linux kaya apa ya???

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s