Pada database yang murni disusun menggunakan back-end database seperti Access, MySQL, SQL Server, dan sejenisnya, database designer bertugas menyusun arsitektur data yang lebih rinci, seperti bagaimana proses validasi akan dilakukan, caption yang dibutuhkan, tipe data yang diperlukan dan lain sebagainya.
Tujuan utama dalam merancang database back-end seperti di atas adalah supaya data yang tersimpan dapat diandalkan. Secara umum, tujuan penyusunan database hampir sama dalam hal "karakteristik kualitatif informasi"-nya, seperti dapat dibaca di posting yang berjudul Sistem Akuntansi Yang Baik. Kita tidak membahas secara detail tentang hal ini.
Kembali ke topik utama, MySQL mempunyai tipe data Integer yang dapat meningkat atau bertambah secara otomatis, sama seperti di Access. Bila di Access, tipe data Integer yang meningkat itu disebut AutoNumber, di MySQL, tipe data itu disebut Auto_Increment. Tipe data Integer Auto_Increment umumnya digunakan sebagai primary key yang ada di file transaksi, seperti pembuatan kuitansi, tagihan, nomor slip setoran uang dan penarikan uang di bank, nomor slip gaji, tiket reservasi kereta api, dan sebagainya.
Pada aplikasi front-end di Access yang mempunyai linked table dengan database lain, tabel yang mempunyai field dengan tipe data Auto_Increment atau AutoNumber mungkin tidak terlalu masalah. Masalah Auto_Increment atau AutoNumber akan muncul bila kita menyusun aplikasi front end yang murni tidak melibatkan linked table seperti yang akan kita bahas berikut ini. Masalah yang muncul adalah, komputer client (front-end) tidak bisa memperoleh nomor secara otomatis, seperti halnya bila kita menggunakan linked table.
Data yang kita masukkan melalui front-end belum memperoleh nomor yang akan digunakan sebagai primary key/indeks. Nomor yang berfungsi sebagai primary key atau indeks akan diperoleh saat data sudah tersimpan dalam tabel di database back-end. Nah, supaya sinkron, maka nomor itu harus kita kirim kembali ke komputer clent (fornt-end) supaya user dapat menggunakannnya sewaktu-waktu diperlukan.
Untuk memahami lebih detail, ikuti kasus seperti contoh pembuatan kuitansi sederhana berikut ini.
Bagi yang belum mengenal MySQL atau MySQL Workbench, silakan gunakan bantuan Search yang ada di blog ini, dengan kata kunci "MySQL".
Langkah pertama adalah membuat tabel untuk menyimpan data transaksi kuitansi koran, seperti pada Gambar 1 di atas. Pada Gambar 1, tabel tblKuitansiKoran mempunyai kolom (field bila di Access) dan properti sebagai berikut:
Berikut ini adalah properti yang dibutuhkan pada form frmKuitansiKoran seperti gambar di atas.
Gambar animasi di atas menjelaskan proses pemasukkan data ke dalam MySQL database untuk kasus di mana column pada tabel MySQL mempunyai tipe data Integer Auto_Increment. Perhatikanlah saat tombol Tambah Data Baru ditekan, nomorKuitansi akan ditampilkan untuk menunjukkan bahwa data telah tersimpan di tabel tblKuitansiKoran. Dengan cara ini, kita tidak kehilangan arah dalam melakukan pelacakan. Dalam hal ini, nilai nomorKuitansi digunakan sebagai colum/field/control yang digunakan untuk melacak karena sifat field ini unik dan diperlakukan sebagai primary key.
Tujuan utama dalam merancang database back-end seperti di atas adalah supaya data yang tersimpan dapat diandalkan. Secara umum, tujuan penyusunan database hampir sama dalam hal "karakteristik kualitatif informasi"-nya, seperti dapat dibaca di posting yang berjudul Sistem Akuntansi Yang Baik. Kita tidak membahas secara detail tentang hal ini.
Kembali ke topik utama, MySQL mempunyai tipe data Integer yang dapat meningkat atau bertambah secara otomatis, sama seperti di Access. Bila di Access, tipe data Integer yang meningkat itu disebut AutoNumber, di MySQL, tipe data itu disebut Auto_Increment. Tipe data Integer Auto_Increment umumnya digunakan sebagai primary key yang ada di file transaksi, seperti pembuatan kuitansi, tagihan, nomor slip setoran uang dan penarikan uang di bank, nomor slip gaji, tiket reservasi kereta api, dan sebagainya.
Pada aplikasi front-end di Access yang mempunyai linked table dengan database lain, tabel yang mempunyai field dengan tipe data Auto_Increment atau AutoNumber mungkin tidak terlalu masalah. Masalah Auto_Increment atau AutoNumber akan muncul bila kita menyusun aplikasi front end yang murni tidak melibatkan linked table seperti yang akan kita bahas berikut ini. Masalah yang muncul adalah, komputer client (front-end) tidak bisa memperoleh nomor secara otomatis, seperti halnya bila kita menggunakan linked table.
Data yang kita masukkan melalui front-end belum memperoleh nomor yang akan digunakan sebagai primary key/indeks. Nomor yang berfungsi sebagai primary key atau indeks akan diperoleh saat data sudah tersimpan dalam tabel di database back-end. Nah, supaya sinkron, maka nomor itu harus kita kirim kembali ke komputer clent (fornt-end) supaya user dapat menggunakannnya sewaktu-waktu diperlukan.
Gambar 1. Struktur kolom/field pada tabel tblkuitansikoran di MySQL database |
Untuk memahami lebih detail, ikuti kasus seperti contoh pembuatan kuitansi sederhana berikut ini.
Cara menambah data baru pada MySql bila field yang menjadi primary key mempunyai tipe data Integer Auto Increment
Bagi yang belum mengenal MySQL atau MySQL Workbench, silakan gunakan bantuan Search yang ada di blog ini, dengan kata kunci "MySQL".
Langkah pertama adalah membuat tabel untuk menyimpan data transaksi kuitansi koran, seperti pada Gambar 1 di atas. Pada Gambar 1, tabel tblKuitansiKoran mempunyai kolom (field bila di Access) dan properti sebagai berikut:
- Untuk column nomor kuitansi:
- Column Name=nomorKuitansi,
- Data Type= INT
- Size= 10
- Primary Key= True
- Not Null= True
- Unique= True
- Auto Increment= True
- Untuk column tanggal kuitansi:
- Column Name=tglKuitansi,
- Data Type= DATETIME
- Untuk column diterima dari:
- Column Name= diterimaDari
- Data Type= VARCHAR
- Size= 50
- Untuk column keterangan:
- Column Name= keteranganKuitansi
- Data Type= VARCHAR
- Size= 70
- Untuk column jumlah rupiah:
- Column Name= jumlahRupiah
- Data Type= INT
- Size= 8
Gambar 2 Pembuatan nama control di form sesuai dengan nama column/field MySQL |
- Default View= Single Form.
- Allow Datasheet View= No
- Navigation Button= No
- Record Source= kosong (Unbound)
- Sisipkan sebuah Text Box dengan properti sebagai berikut:
- Name=nomorKuitansi
- Control Source= Unbound
- Caption dari label Text Box ini: Nomor Kuitansi
- Sisipkan sebuah Text Box dengan properti sebagai berikut:
- Name=tglKuitansi
- Control Source= Unbound
- Caption dari label Text Box ini: Tanggal Kuitansi
- Sisipkan sebuah Text Box dengan properti sebagai berikut:
- Name=diterimaDari
- Control Source= Unbound
- Caption dari label Text Box ini:Diterima Dari
- Sisipkan sebuah Text Box dengan properti sebagai berikut:
- Name=keteranganKuitansi
- Control Source= Unbound
- Caption dari label Text Box ini: Keterangan
- Sisipkan sebuah Text Box dengan properti sebagai berikut:
- Name=jumlahRupiah,
- Control Source= Unbound
- Caption dari label Text Box ini: Jumlah Rupiah
- Sisipkan sebuah Command Button dengan properti sebagai berikut:
- Name= cmdTambahData,
- Caption= Tambah Data Baru
Option Compare Database Dim daoDatabase As DAO.Database Dim rst As DAO.Recordset Function strKoneksiMySQLs() As String strKoneksiMySQLs = "Driver={MySQL ODBC 5.3 ANSI Driver};" & _ "Database=Akunting;" & _ "UID=root;" & _ "PWD=EDmu51!@;" & _ "SERVER=Localhost;" & _ "Port=3306" End Function Function membukaDatabase() On Error GoTo Err_Msg Set daoDatabase = OpenDatabase("", dbDriverNoPrompt, False, strKoneksiMySQLs) Exit_Function: Exit Function Err_Msg: MsgBox "Function membukaDatabase, Error # " & str(Err.Number) & ", source: " & Err.Source & _ Chr(13) & Err.Description Resume Exit_Function End Function Function menutupDatabase() On Error GoTo Err_Msg If Not (daoDatabase Is Nothing) Then daoDatabase.Close Set daoDatabase = Nothing End If Exit_Function: Exit Function Err_Msg: MsgBox "Function menutupDatabase, Error # " & str(Err.Number) & ", source: " & Err.Source & _ Chr(13) & Err.Description Resume Exit_Function End Function Private Sub cmdTambahData_Click() Dim strSql As String Dim fld As DAO.Field Dim ctl As Control Dim varBookmark As Variant 'Bila telah melalui proses validasi, data siap disimpan ke dalam MySQL dengan menggunakan 'fungsi ini. Dengan fungsi ini, kita menaruh data dari komputer client ke server. strSql = "tblkuitansikoran" Set rst = daoDatabase.OpenRecordset(strSql, dbOpenDynaset, dbSeeChanges) rst.AddNew For Each ctl In Me.Controls For Each fld In rst.Fields If ctl.name = fld.name Then fld.Value = Controls(ctl.name).Value End If Next fld Next ctl rst.Update With rst If rst.Bookmarkable = False Then Debug.Print "Recordset is not Bookmarkable!" Else rst.Bookmark = rst.LastModified Me.nomorKuitansi = rst.Fields("nomorKuitansi").Value Debug.Print Me.nomorKuitansi End If End With rst.Close Set rst = Nothing End Sub Private Sub Form_Open(Cancel As Integer) membukaDatabase End SubSaat tombol Tambah Data Baru ditekan, client dari aplikasi Access mengirimkan data ke server MySQL Database. Di server, MySQL kemudian menyimpan data baru pada urutan nomorKuitansi yang paling akhir. Setelah itu, server MySQL Database akan mengirimkan nomorKuitansi terakhir ke client. Lalu, nomorKuitansi ini kemudian ditampilkan di form di client melalui perintah yang ada dalam pernyataan With rst.
Gambar 3 Animasi pemasukkan data dari form Acsess ke MySQL database |
Gambar animasi di atas menjelaskan proses pemasukkan data ke dalam MySQL database untuk kasus di mana column pada tabel MySQL mempunyai tipe data Integer Auto_Increment. Perhatikanlah saat tombol Tambah Data Baru ditekan, nomorKuitansi akan ditampilkan untuk menunjukkan bahwa data telah tersimpan di tabel tblKuitansiKoran. Dengan cara ini, kita tidak kehilangan arah dalam melakukan pelacakan. Dalam hal ini, nilai nomorKuitansi digunakan sebagai colum/field/control yang digunakan untuk melacak karena sifat field ini unik dan diperlakukan sebagai primary key.
Comments
Post a Comment