Banyak yang menanyakan bagaimana cara mempercepat proses di Access. Umumnya, mereka menyatakan bahwa dengan semakin bertambahnya data, Access menjadi semakin berat untuk dimuat dan ditampilkan di layar komputer. Waktu yang dibutuhkan untuk memuat data menjadi terasa lama.
Sebenarnya, ada banyak penyebab mengapa MS Access membutuhkan waktu lama saat ingin menampilkan data dalam databasenya, seperti infrastruktur hardware yang tidak mencukupi, pengaturan jaringan komputer, dan cara membuat query yang menjadi pusat dari berbagai macam kegiatan database.
Untuk mempercepat proses di Access, atau istilahnya optimisasi database Access, ada beberapa hal yang bisa kita pertimbangkan dan lakukan. Asumsi di sini, infrastruktur hardware dan jaringan cukup memadai. Jadi, kita fokus pada database Access, baik di front-end maupun back-end. Untuk pemrogram Access tingkat lanjut.
Pemilihan tipe field pada tabel
Adakalanya, karena tidak tahu persis tipe field yang ingin digunakan, pemrogram Access menggunakan tipe data yang sama untuk hal yang berbeda. Sebagai misal, penggunaan tipe field Short Text dan Long Text. Jauh lebih efisien bila kita menggunakan tipe field Short Text pada berbagai macam aplikasi di Access. Ini standar umum yang dipakai.
Gunakan tipe field Long Text (Memo) hanya jika kita memang ingin menyimpan data teks dalam jumlah yang besar, lebih dari 255 karakter. Penyimpanan data dengan menggunakan tipe data Long Text yang tidak tepat hanya akan membuang-buang ruang yang sebenarnya bisa digunakan untuk tipe field yang lain. Efek penggunaan tipe field Long Text, waktu memuat data menjadi lama.
Untuk tipe field Calculated, jangan membuat perhitungan yang terlalu rumit dalam field ini. Sebisa mungkin, kita menghindari penggunaan field Calculated. Pada perhitungan yang rumit, hasil perhitungan ini sebaiknya disimpan sebagai data, misalnya dengan tipe field Double, Single, Long Integer, Currency, dsb. Proses memuat dan menampilkan data tanpa menggunakan perhitungan (disimpan sebagai data dengan tipe field selain Calculated) membutuhkan waktu lebih cepat dibandingkan bila menggunakan perhitungan (menggunakan field Calculated).
Sebagai contoh, untuk menghitung jumlah pajak PPH 21 Karyawan, maka hasil pada setiap langkah/urutan dalam perhitungan pajak PPH 21 sebaiknya disimpan sebagai data tipe field Number (bisa Double atau Single) atau Currency. Misal, data untuk Biaya Jabatan, JHT, Penghasilan Netto, PKP, dan sebagainya yang berasal dari hasil perhitungan, simpanlah data itu dengan tipe field Number atau Currency, jangan Calculated. Bila tipe field Calculated, proses memuat data menjadi lama, apalagi bila jumlah karyawan (record) relatif banyak. Jadi, sebaiknya jangan gunakan tipe field Calculated bila tidak diperlukan.
Linked Table Untuk Database Non-Access
Jika menggunakan linked table, terutama untuk database bukan Access, seperti SQL Server, MySQL, Dbase, atau bahkan Oracle, sebaiknya gunakan library ADO (ActiveX Data Object) dalam penulisan program. Library ADO digunakan khusus untuk database non Access. Sedangkan secara default, Access menggunakan library DAO (Data Access Object), yang terus dikembangkan oleh Microsoft. Jadi, bila database Access diperlakukan sebagai back-end, library DAO bisa digunakan untuk menuliskan berbagai macam perintah database Access, tanpa perlu menambahkan referensi pada VBA.
Hal berbeda terjadi bila back-end tidak menggunakan database Access. Dalam kasus ini, kita harus menambahkan referensi ADO pada Tools di VBA. Ada banyak referensi yang berkaitan dengan ADO yang harus ditambahkan. Untuk diketahui, library ADO memang khusus digunakan di database non Access seperti SQL Server, MySQL, dsb. Untuk database non Access, ADO lebih bisa diandalkan daripada DAO. Ada banyak fitur yang tidak tersedia di DAO, tetapi bisa disediakan di ADO.
Membuat Query Untuk Menampilkan Data Secukupnya
Bila sering membuka email via web, seperti GMail, Yahoo, Outlook, dan lain-lain, kita pasti tahu bahwa jumlah email yang ditampilkan di layar hanya sedikit. Walau mungkin jumlah email di Inbox lebih dari 500, tetapi mail provider memuat tidak lebih dari 100 untuk setiap tampilan di layar komputer. Bila ingin melihat email dengan urutan 100 ke atas, misalnya, kita menggunakan tombol Next, supaya mail provider itu menampilkan 100 email berikutnya. Dengan menampilkan data secukupnya seperti ini, proses memuat data menjadi lebih cepat. Cara yang sama dapat dilakukan di MS Access.
Di Access, kita dapat menampilkan data secukupnya, misalnya 100 data pertama, 100 data kedua, dan seterusnya. Caranya adalah dengan membuat query SELECT TOP untuk menampilkan 20, 25, 50 atau berapa pun reccord yang ingin ditampilkan. Tujuannya, selain untuk memproses data lebih cepat, juga supaya mata tidak lelah memelototi setiap record yang ditampilkan. Bayangkan bila ada 1000 record yang ditampilkan. Selain membutuhkan waktu yang lama, kita bisa kehilangan konsentrasi dalam memahami setiap record yang ditampilkan. Jadi, buatlah query untuk menampilkan data secukupnya saja, misalnya menampilkan 20,40,50, atau 100 data saja dalam sebuah form. Untuk menampilkan data lain, kita bisa menambahkan tombol navigasi (first untuk halaman pertama, previous untuk halaman sebelum, next untuk halaman berikutnya, dan last untuk halaman terakhir) buatan sendiri.
Sistem Buka Tutup Database
Kita bisa menerapkan buka tutup database. Maksudnya begini, saat ingin menampilkan record sebuah database, arahkan program untuk melakukan koneksi dan membuka database. Bila record sudah ditampilkan, koneksi database diputus dengan cara ditutup untuk memberi kesempatan kepada client/komputer lain dalam mengakses data. Bila ingin memperbarui record yang akan ditampilkan, kita dapat menambahkan tombol refresh/reload untuk memperbarui data. Prinsip kerja reload sama, yaitu melakukan koneksi dan membuka database yang diakhiri dengan memutus koneksi dan menutup database.
Sistem buka tutup database ini bisa digunakan pada lingkungan multi user/multi komputer. Cara kerjanya mirip aplikasi yang dijalankan menggunakan browser internet. Saat dibutuhkan, database dibuka dan record yang diinginkan ditarik untuk ditampilkan di layar. Setelah record ditampilkan, maka database ditutup. Bila ingin record terbaru, tekan tombol refresh.
Saat sebuah form sudah terbuka, maka refresh ata reload dapat digunakan untuk memuat ulang record pada objek tertentu, misalnya untuk mereload daftar yang ada di combo box, list box, atau subform. Jadi, kita tidak perlu menutup dan membuka form yang aktif.
Berbagi Database di Front-end dan Back-end
Kita dapat menaruh sebagian database di front-end, misalnya dengan membuat tabel yang sifatnya temporer atau membuat tabel yang berkaitan dengan preferensi sistem tertentu dari user. Contoh ideal adalah penggunakan user Account di sistem operasi Windows.
Pada sistem operasi Windows, selain pengaturan sistem yang sifatnya default dari Windows, kita juga bisa membuat pengaturan sistem berdasarkan preferensi user, misalnya menampilkan theme, membuat folder, dan sebagainya. Nah, prinsip kerja seperti ini bisa juga diterapkan di MS Access. Sebagai pedoman umum, tabel yang bersifat global, bisa digunakan oleh semua user, harus ditaruh di back-end.
Di sisi lain, tabel yang berkaitan dengan preferensi user bisa ditaruh di dua tempat, back-end dan front-end. Dalam hal ini, kita harus membuat program untuk mensinkronkan database front-end dengan back-end.
Penggunaan tabel temporer juga membantu mempercepat proses memuat data. Simpanlah data yang tidak banyak berubah dengan menggunakan tabel temporer di front-end. Misalnya, gunakan tabel temporer yang berfungsi untuk membantu kita menampilkan data di list box dan combo box. Sama seperti tabel user pada contoh di atas, kita juga harus membuat program untuk mensinkronkan tabel temporer yang ada di front-end dengan back-end.
Sebenarnya, ada banyak penyebab mengapa MS Access membutuhkan waktu lama saat ingin menampilkan data dalam databasenya, seperti infrastruktur hardware yang tidak mencukupi, pengaturan jaringan komputer, dan cara membuat query yang menjadi pusat dari berbagai macam kegiatan database.
Untuk mempercepat proses di Access, atau istilahnya optimisasi database Access, ada beberapa hal yang bisa kita pertimbangkan dan lakukan. Asumsi di sini, infrastruktur hardware dan jaringan cukup memadai. Jadi, kita fokus pada database Access, baik di front-end maupun back-end. Untuk pemrogram Access tingkat lanjut.
Pemilihan tipe field pada tabel
Adakalanya, karena tidak tahu persis tipe field yang ingin digunakan, pemrogram Access menggunakan tipe data yang sama untuk hal yang berbeda. Sebagai misal, penggunaan tipe field Short Text dan Long Text. Jauh lebih efisien bila kita menggunakan tipe field Short Text pada berbagai macam aplikasi di Access. Ini standar umum yang dipakai.
Gunakan tipe field Long Text (Memo) hanya jika kita memang ingin menyimpan data teks dalam jumlah yang besar, lebih dari 255 karakter. Penyimpanan data dengan menggunakan tipe data Long Text yang tidak tepat hanya akan membuang-buang ruang yang sebenarnya bisa digunakan untuk tipe field yang lain. Efek penggunaan tipe field Long Text, waktu memuat data menjadi lama.
Desain Tabel SPT 1721 A1 untuk PPH 21 |
Untuk tipe field Calculated, jangan membuat perhitungan yang terlalu rumit dalam field ini. Sebisa mungkin, kita menghindari penggunaan field Calculated. Pada perhitungan yang rumit, hasil perhitungan ini sebaiknya disimpan sebagai data, misalnya dengan tipe field Double, Single, Long Integer, Currency, dsb. Proses memuat dan menampilkan data tanpa menggunakan perhitungan (disimpan sebagai data dengan tipe field selain Calculated) membutuhkan waktu lebih cepat dibandingkan bila menggunakan perhitungan (menggunakan field Calculated).
Sebagai contoh, untuk menghitung jumlah pajak PPH 21 Karyawan, maka hasil pada setiap langkah/urutan dalam perhitungan pajak PPH 21 sebaiknya disimpan sebagai data tipe field Number (bisa Double atau Single) atau Currency. Misal, data untuk Biaya Jabatan, JHT, Penghasilan Netto, PKP, dan sebagainya yang berasal dari hasil perhitungan, simpanlah data itu dengan tipe field Number atau Currency, jangan Calculated. Bila tipe field Calculated, proses memuat data menjadi lama, apalagi bila jumlah karyawan (record) relatif banyak. Jadi, sebaiknya jangan gunakan tipe field Calculated bila tidak diperlukan.
Linked Table Untuk Database Non-Access
Jika menggunakan linked table, terutama untuk database bukan Access, seperti SQL Server, MySQL, Dbase, atau bahkan Oracle, sebaiknya gunakan library ADO (ActiveX Data Object) dalam penulisan program. Library ADO digunakan khusus untuk database non Access. Sedangkan secara default, Access menggunakan library DAO (Data Access Object), yang terus dikembangkan oleh Microsoft. Jadi, bila database Access diperlakukan sebagai back-end, library DAO bisa digunakan untuk menuliskan berbagai macam perintah database Access, tanpa perlu menambahkan referensi pada VBA.
Referensi ADO pada VBA |
Hal berbeda terjadi bila back-end tidak menggunakan database Access. Dalam kasus ini, kita harus menambahkan referensi ADO pada Tools di VBA. Ada banyak referensi yang berkaitan dengan ADO yang harus ditambahkan. Untuk diketahui, library ADO memang khusus digunakan di database non Access seperti SQL Server, MySQL, dsb. Untuk database non Access, ADO lebih bisa diandalkan daripada DAO. Ada banyak fitur yang tidak tersedia di DAO, tetapi bisa disediakan di ADO.
Membuat Query Untuk Menampilkan Data Secukupnya
Bila sering membuka email via web, seperti GMail, Yahoo, Outlook, dan lain-lain, kita pasti tahu bahwa jumlah email yang ditampilkan di layar hanya sedikit. Walau mungkin jumlah email di Inbox lebih dari 500, tetapi mail provider memuat tidak lebih dari 100 untuk setiap tampilan di layar komputer. Bila ingin melihat email dengan urutan 100 ke atas, misalnya, kita menggunakan tombol Next, supaya mail provider itu menampilkan 100 email berikutnya. Dengan menampilkan data secukupnya seperti ini, proses memuat data menjadi lebih cepat. Cara yang sama dapat dilakukan di MS Access.
Menampilkan 50 record pada Gmail |
Di Access, kita dapat menampilkan data secukupnya, misalnya 100 data pertama, 100 data kedua, dan seterusnya. Caranya adalah dengan membuat query SELECT TOP untuk menampilkan 20, 25, 50 atau berapa pun reccord yang ingin ditampilkan. Tujuannya, selain untuk memproses data lebih cepat, juga supaya mata tidak lelah memelototi setiap record yang ditampilkan. Bayangkan bila ada 1000 record yang ditampilkan. Selain membutuhkan waktu yang lama, kita bisa kehilangan konsentrasi dalam memahami setiap record yang ditampilkan. Jadi, buatlah query untuk menampilkan data secukupnya saja, misalnya menampilkan 20,40,50, atau 100 data saja dalam sebuah form. Untuk menampilkan data lain, kita bisa menambahkan tombol navigasi (first untuk halaman pertama, previous untuk halaman sebelum, next untuk halaman berikutnya, dan last untuk halaman terakhir) buatan sendiri.
Sistem Buka Tutup Database
Kita bisa menerapkan buka tutup database. Maksudnya begini, saat ingin menampilkan record sebuah database, arahkan program untuk melakukan koneksi dan membuka database. Bila record sudah ditampilkan, koneksi database diputus dengan cara ditutup untuk memberi kesempatan kepada client/komputer lain dalam mengakses data. Bila ingin memperbarui record yang akan ditampilkan, kita dapat menambahkan tombol refresh/reload untuk memperbarui data. Prinsip kerja reload sama, yaitu melakukan koneksi dan membuka database yang diakhiri dengan memutus koneksi dan menutup database.
Sistem buka tutup database ini bisa digunakan pada lingkungan multi user/multi komputer. Cara kerjanya mirip aplikasi yang dijalankan menggunakan browser internet. Saat dibutuhkan, database dibuka dan record yang diinginkan ditarik untuk ditampilkan di layar. Setelah record ditampilkan, maka database ditutup. Bila ingin record terbaru, tekan tombol refresh.
Saat sebuah form sudah terbuka, maka refresh ata reload dapat digunakan untuk memuat ulang record pada objek tertentu, misalnya untuk mereload daftar yang ada di combo box, list box, atau subform. Jadi, kita tidak perlu menutup dan membuka form yang aktif.
Berbagi Database di Front-end dan Back-end
Kita dapat menaruh sebagian database di front-end, misalnya dengan membuat tabel yang sifatnya temporer atau membuat tabel yang berkaitan dengan preferensi sistem tertentu dari user. Contoh ideal adalah penggunakan user Account di sistem operasi Windows.
Pada sistem operasi Windows, selain pengaturan sistem yang sifatnya default dari Windows, kita juga bisa membuat pengaturan sistem berdasarkan preferensi user, misalnya menampilkan theme, membuat folder, dan sebagainya. Nah, prinsip kerja seperti ini bisa juga diterapkan di MS Access. Sebagai pedoman umum, tabel yang bersifat global, bisa digunakan oleh semua user, harus ditaruh di back-end.
Di sisi lain, tabel yang berkaitan dengan preferensi user bisa ditaruh di dua tempat, back-end dan front-end. Dalam hal ini, kita harus membuat program untuk mensinkronkan database front-end dengan back-end.
Penggunaan tabel temporer juga membantu mempercepat proses memuat data. Simpanlah data yang tidak banyak berubah dengan menggunakan tabel temporer di front-end. Misalnya, gunakan tabel temporer yang berfungsi untuk membantu kita menampilkan data di list box dan combo box. Sama seperti tabel user pada contoh di atas, kita juga harus membuat program untuk mensinkronkan tabel temporer yang ada di front-end dengan back-end.
Comments
Post a Comment