Anda perlu mengetahui batasan-batasan apa saja yang terdapat di dalam Visual Basic 6. Sebuah project tunggal dapat mengandung sampai 32.000 (Tiga puluh dua ribu) penanda atau kata kunci apa pun yang tidak digunakan (nonreserved keyword), dan termasuk, tapi tidak dibatasi untuk: form, control, module, variabel, konstanta, procedure, function, dan object. Jumlah penanda yang sebenarnya dibatasi oleh ketersediaan memory di komputer tersebut.
Nama variabel di Visual Basic tidak boleh lebih dari 255 karakter, dan nama form, control, module, dan class tidak boleh lebih dari 40 karakter. Visual Basic tidak membatasi pada jumlah object dalam sebuah project.
Batasan Control
Setiap control yang non-grafis (semua control, kecuali: shape, line, image, dan label) menggunakan sebuah jendela. Setiap jendela menggunakan sumber daya sistem, terbatas pada total jumlah jendela yang dapat terbuka pada satu kali kesempatan. Batasan sesungguhnya tergantung pada sumber daya sistem yang tersedia dan tipe
control yang digunakan.
Untuk mengurangi penggunaan sumber daya sistem, gunakanlah control seperti: shape, line, label, dan image daripada control picture box jika ingin membuat atau menampilkan grafis.
Total Jumlah Control
Jumlah maksimum kontrol yang diijinkan pada sebuah form tergantung pada tipe control yang digunakan dan sumber daya sistem yang tersedia. Namun, terdapat sebuah batasan yang tetap yaitu 254 nama control dalam setiap form. Sebuah control array hanya dihitung sekali karena semua control di array berbagi sebuah nama control tunggal.
Batasan pada control array sesuai dengan indeks dari 0 sampai 32.767 di semua versi Visual Basic. Artinya, indeks untuk control array ini menggunakan batas atas dari
tipe data Integer.
Jika control-control yang Anda gunakan berada di atas sebuah control, misalnya penggunaan beberapa control frame di dalam frame lainnya, Visual Basic secara umum akan menerima tidak lebih dari 25 level dari percabangan kontrol tersebut.
Batasan untuk Control Tertentu
Daftar berikut berisi batasan property yang berlaku pada beberapa control tertentu di Visual Basic.
Property Berlaku untuk control Batasan
List dan ListCount List box dan combo box Maksimum jumlah item = 32K; batas ukuran setiap item adalah 1K (1024 bytes).
Text Text box Dibatasi sampai 64K.
Caption Label Dibatasi sampai 1024 bytes.
Command button, check box, frame, dan option button Dibatasi sampai 255 karakter. Caption yang melewati batas tersebut otomatis dipotong. Caption pada properties control custom dibatasi sampai 32K.
Menu Dibatasi sampai 235 karakter.
Tag Semua control Dibatasi hanya oleh memory yang tersedia.
Name Semua control Dibatasi sampai 40 karakter.
Di Visual Basic, property name control dibatasi sampai 30 karakter. Khusus untuk mengatasi penggunaan control TextBox yang terbatas, maka Visual Basic 6 telah menyediakan control yang hampir sama yang bernama RichTextBox.
Batasan Kode
Jumlah kode yang dapat dimuat dalam sebuah form, class, atau standard module dibatasi sampai 65,534 baris. Sebuah baris kode tunggal dapat terdiri sampai 1023 bytes. Sampai dengan 256 spasi kosong dapat mendahului teks sebenarnya dalam sebuah baris, dan tidak boleh lebih dari dua puluh empat karakter penyambung baris ( _) dapat disertakan dalam sebuah baris logikal.
Procedure, Type, dan Variabel
Tidak ada batasan jumlah procedure setiap module. Setiap procedure dapat mengandung sampai 64K kode. Jika sebuah procedure atau module melewati batas ini, Visual Basic membangkitkan sebuah kesalahan (galat) compile-time. Jika Anda mengalami galat ini, Anda dapat mengabaikannya dengan memisahkan procedure yang besar menjadi beberapa procedure yang lebih kecil, atau dengan memindahkan pendeklarasian level-module ke dalam module lainnya.
Visual Basic menggunakan tabel untuk menyimpan nama pengenal (variabel, procedure, konstanta, dan sebagainya) di dalam kode Anda. Setiap tabel dibatasi sampai 64K.
Tabel Pendeklarasian DLL
Setiap form dan kode module menggunakan sebuah tabel yang mengandung struktur yang mendeskripsikan DLL entry point. Setiap struktur menggunakan sekitar 40 bytes, dengan ukuran total yang terbatas 64K, menghasilkan sekitar 1.500 pendeklarasian yang diijinkan per module.
Tabel Nama Project
Seluruh aplikasi menggunakan sebuah tabel tunggal yang berisi semua nama. Ini termasuk:
•Nama konstanta
•Nama variabel
•Nama definisi UDT
•Nama module
•Nama pendeklarasian procedure DLL
Tabel nama project tidak terbatas dalam hal ukuran total, tapi dibatasi dalam hal entrian yang unik sampai 32K. Jika batasan ini dicapai, gunakan kembali pengenal private di dalam module yang berbeda untuk membatasi jumlah entrian yang unik sampai 32K.
Tabel Import
Setiap referensi ke sebuah pengenal dalam sebuah module yang berbeda membuat sebuah entrian dalam Tabel Import. Setiap entrian memiliki batas a minimum 24 bytes dan dibatasi sampai 64K, menghasilkan 2.000 referensi per module.
Tabel Entrian Module
Tabel ini menerima sampai 125 bytes per module, dengan batasan total 64K, menghasilkan sekitar 400 module per project.
Data Form, Standard, dan Class Module
Segmen data (yaitu, data yang didefinisikan di bagian pendeklarasian) dari module VBA dari form atau module apapun di Visual Basic dibatasi sampai 64K. Segmen data ini mengandung data berikut:
•Variabel Local yang dideklarasikan dengan kata kunci Static.
•Variabel level Module selain array dan String yang panjangnya tak tetap.
•Empat bytes untuk setiap array level module dan String yang panjangnya tak tetap.
Procedure, Type, dan Variable
Jika sebuah procedure atau module melebihi dari batas kode 64K, Visual Basic membangkitkan sebuah galat saat proses compile (compile-time error).
Jika Anda menetapkan sebuah procedure yang memiliki lebih dari 64K variabel local yang ditetapkan, Anda akan mendapatkan galat “Too many local nonstatic variables.”
Jika Anda menetapkan sebuah module yang memiliki lebih dari 64K variabel level module yang ditetapkan, atau jika Anda menetapkan sebuah User-Defined Type yang lebih besar dari 64K, Anda akan mendapatkan galat “Fixed or static data can’t be larger than 64K.”.
Jika Anda mengalami galat ini, Anda dapat mengabaikannya dengan memecah procedure yang besar ke dalam beberapa procedure yang lebih kecil, atau dengan memindahkan pendeklarasian level module ke dalam module lainnya.
Sebuah array yang dideklarasikan sebagai sebuah variabel tidak memiliki peran kepada keseluruhan ukuran dari array tersebut; hanya pendeskripsi array saja terbatas hingga 64K. Jadi hal ini dapat diterima, sebagai contoh, untuk memiliki sebuah pendeklarasian seperti Dim x(1000000) As Byte baik di dalam sebuah procedure atau pada level module. Permasalahan “Out of memory” akan terjadi, tapi, jika Anda mendeklarasikan sebuah array yang besar, maupun array yang berukuran tetap di dalam sebuah record, maka deklarasikan instansiasi dari record-record tadi sebagai variabel.
User-Defined Types (UDT)
Tidak ada variabel dari UDT yang dapat melebihi 64K, meskipun jumlah String yang panjangnya tidak tetap dalam sebuah UDT dapat melebihi 64K (String dengan panjang yang tidak tetap menempati hanya 4 bytes di setiap UDT; isi sebenarnya dari sebuah String disimpan terpisah). UDT dapat ditetapkan dalam istilah lain user-defined types, tapi ukuran total dari tipe tidak dapat melebihi 64K.
Ruang Stack
Argumen-argumen dan variabel lokal dalam procedure membutuhkan ruang stack saat run-time. Variabel pada level module dan variabel static tidak membutuhkan ruang stack karena mereka dialokasikan dalam segmen data untuk form atau module. Procedure DLL apapun yang Anda panggil menggunakan stack ini ketika mereka sedang mengeksekusi.
Visual Basic itu sendiri menggunakan beberapa stack untuk tujuannya, seperti penyimpanan nilai variabel secara lebih lanjut ketika mengevaluasi ekspresi.
Total ukuran stack yang tersedia untuk Visual Basic adalah satu megabyte (1MB) setiap thread. Sebuah stack mungkin tumbuh melewati ini, tapi, jika tersedia memory bebas yang berdampingan.
Batasan Sumber Daya Sistem
Beberapa batasan di Visual Basic, dan aplikasi-aplikasi yang Anda buat dengannya, ditentukan oleh Microsoft Windows. Batasan-batasan ini mungkin berubah ketika Anda menginstall Microsoft Windows dengan versi yang berbeda.
Sumber Daya Windows
Setiap jendela yang terbuka menggunakan beberapa sumber daya sistem (area data digunakan oleh Microsoft Windows). Jika Anda menggunakan sumber daya yang terlalu banyak, maka galat run-time “Windows is running low on available resources” terjadi. Anda dapat memeriksa persentase sumber daya sistem dengan mengakses jendela About di menu Help dari Windows Explorer pada Windows 95/98 dan Windows NT 4.0 atau versi di atasnya. Aplikasi juga dapat memanggil Windows API GetFreeSystemResources untuk mendapatkan kembali sumber daya sistem, menutup jendela (seperti form yang terbuka dan jendela kode, seperti halnya jendela-jendela di aplikasi lainnya), dan keluar dari aplikasi-aplikasi yang sedang berjalan.
Sumber : http://azka-av.blogspot.com/2009/12/batasan-project-di-visual-basic-6.html
Mas Hadi,
ReplyDeleteThanks atas artikel ini, jadi tau batasan yang bisa kita load di vb.
Mungkin gak sech kita menambah batasan tersebut ?
Thanks
Mas Hadi,
ReplyDeleteThanks atas artikelnya, apa mungkin kita menambah kapasitas load data tersebut ?
tx,