Category Archives: Desktop Programming

[Dokumentasi] Visual Basic 6.0 menggunakan DBMS PostgreSQL

Beberapa langkah awal dalam menggunakan DBMS PostgreSQL sebagai database pada pemrograman Visual Basic 6.0, antara lain :
1. Lakukan instalasi psqlodbc untuk menghubungkan aplikasi dengan database. Psqlodbc dapat didownload dari http://www.postgresql.org/ftp/odbc/versions/msi/
2. Syntax Connectionstring :
With oConn
If .State = adStateOpen Then .Close
.ConnectionString = “Driver={PostgreSQL Ansi};Server=MyServer;Database=MyDatabase;User ID=MyUsername;Port=5432; Password=MyPassword”
.ConnectionTimeout = 0
.CursorLocation = adUseClient
.Open
End With
3. Jika ditemukan error yang berisi pesan “Provider cannot derive parameter information and SetParameterInfo has not been called.“, kemungkinan psqlodbc yang digunakan masih versi lama, coba lakukan reinstall psqlodbc dengan menggunakan versi terbaru.

[Dokumentasi] Reporting Program VB6 dengan Crystal Report 8.5 menggunakan TTX File (II)

Dalam tulisan kali ini, kita akan menampilkan data dari program aplikasi yang kita buat dengan VB6 ke laporan Crystal Report (TTX File). Di bagian sebelumnya, sudah disampaikan langkah-langkah pembuatan laporan Crystal Report dengan TTX File. Untuk menghubungkan laporan tersebut dari program aplikasi yang kita buat, dapat mengikuti langkah-langkah berikut :
1. Buka IDE Ms. VB 6, pilih New – Standard Exe, kemudian klik tombol Open
2. Pilih menu Project – Component (Ctrl+T), tab Controls akan menampilkan daftar komponen teregister yang dapat kita gunakan untuk program aplikasi kita, ceklis komponen Crystal Report Viewer Control, kemudian klik tombol OK
3. Pilih menu Project – References, ceklis Crystal Reports 8.5 ActiveX Designer Run Time Library dan Microsoft ActiveX Data Objects 2.x Library, kemudian klik tombol OK
4. Pada Toolbox akan menambah 1 komponen dengan nama CRViewer, drag komponen tersebut dan drop di form yang kita gunakan.
5. Atur tata letak komponen tersebut pada form, dalam kasus ini saya gunakan code berikut :
   Private Sub Form_Resize()
    CRViewer1.Top = 0
    CRViewer1.Left = 0
       CRViewer1.Width = Me.Width – 250
    CRViewer1.Height = Me.Height – 600
End Sub
5. Deklarasikan objek-objek berikut :
   Private cryApp As CRAXDRT.Application
   Private rptApp As CRAXDRT.Report
   Private oCn As New ADODB.Connection
   Private oRst As New ADODB.Recordset

6. Dalam contoh ini saya tambahkan prosedur koneksi ke database (tergantung jenis database yg digunakan, dalam kasus ini digunakan SQL Server), seperti berikut :
   Private Sub ConnectDB()
      With oCn
        .Provider = “SQLOLEDB”
        .Properties(“Data Source”) = “(LOCAL)”
        .Properties(“User ID”) = “user”   ‘Username SQL
        .Properties(“Password”) = “password”  ‘Password SQL
        .Properties(“Initial Catalog”) = “Barang”    ‘Nama Database
        .CursorLocation = adUseClient
        .ConnectionTimeout = 0
        
        If .State = adStateOpen Then .Close
        .Open
     End With
   End Sub
7. Pada event form_load, ketik kode berikut ini :
   Private Sub Form_Load()
       ‘Setting form Maximized

       Me.WindowState = vbMaximized
       
       ‘Memanggil prosedur koneksi database

       Call ConnectDB
       
       ‘Membuka recordset dari tabel bara
ng (tabel barang memiliki field Kode, NamaBarang dan Jumlah)

       With oRst
         If .State = adStateOpen Then .Close
           .Open “Select Kode, NamaBarang, Jumlah From Barang”, oCn
       End With
      
       ‘Dalam contoh ini, file report disimpan di C:testing dengan nama file rptBarang.rpt

       Set cryApp = New CRAXDRT.Application
       Set rptApp = cryApp.OpenReport(“C:TestingrptBarang.rpt”)
       ‘Setting data source report dari recordset
       rptApp.Database.SetDataSource oRst
       
       ‘Assign report ke komponen CRViewer untuk ditampilkan

       CRViewer1.ReportSource = rptApp
      CRViewer1.ViewReport
       
       Do While CRViewer1.IsBusy
           DoEvents
       Loop
      
      CRViewer1.Zoom 100
   End Sub
8. Jika ingin menggunakan parameter pada laporan, maka tambahkan listing kode berikut di kode di atas
       rptApp.ParameterFields.GetItemByName(“paramTest”).ClearCurrentValueAndRange
       rptApp.ParameterFields.GetItemByName(“paramTest”).AddCurrentValue “Test”
9. Running program aplikasi, yang telah dibuat, jika terdapat error, lakukan debugging…
Selanjutnya, silahkan kembangkan sendiri report anda dengan mengeksplorasi fungsi-fungsi yang ada… 🙂

Tips dan trik Visual Basic 6 (1)

Dalam membuat program, optimasi code sangat penting untuk diketahui yang sedikit banyaknya akan mempengaruhi proses kinerja dari program. Saya akan coba share tentang tips dan trik dalam pemrograman visual basic 6, dan semoga dapat berguna.
* Penggunaan Option Explicit
Penggunaan Option Explicit sangat berguna di dalam source code, kenapa? karna dengan option explicit, seluruh variabel dan object yang digunakan di dalam kode program harus di definisikan terlebih dahulu, sehingga kita akan dapat memantau penggunaan tipe dari tiap-tiap variabel tersebut. Akan berbeda apabila kita tidak menggunakan option explicit, kita akan seenaknya meng-assign suatu variabel atau objek tanpa mendeklarasikan terlebih dahulu, karna tidak ada pemaksaan untuk itu, sehingga akan sangat memungkinkan banyaknya penggunaan variabel yang bertipe variant, di mana penggunaan variabel dengan tipe tersebut sangat dianjurkan untuk tidak digunakan. Karena menggunakan alokasi memori yang besar.
Untuk menggunakan Option Explicit, cukup mengetikkan Option Explicit pada awal tiap modul. Atau dengan cara klik menu Tools pada IDE VB6, lalu pilih Options, kemudian klik tab Editor dan beri tanda centang pada pilihan Require Variable Declaration. Hal ini secara otomatis akan menyisipkan pernyataan Option Explicit di modul apapun yang akan Anda buat, tapi tidak di modul yang sudah pernah dibuat; sehingga oleh karena itu, Anda harus secara manual menambahkan pernyataan Option Explicit kepada setiap modul yang terdapat di sebuah project.
* Penggunaan string dengan maximal length
Tipe variabel string merupakan salah satu tipe yang menggunakan alokasi memori yang cukup besar. Kadang-kadang kita mendeklarasikan variabel dengan tipe string tanpa membatasi jumlah karakter maksimalnya, sementara kebutuhan maksimal panjang karakter yang kita gunakan, sudah dapat kita perkirakan. Alangkah lebih baik jika maksimal karakter tersebut kita batasi sesuai kebutuhan. Sebagaimana properti yang dimiliki oleh textbox (properti maxlength), untuk variabel string, maksimal panjang karakternya dapat dibatasi pada saat pendeklarasian variabel tersebut.
Namun perlu diperhatikan bahwa panjang karakter yang digunakan di sini fix, misalnya anda menggunakan string dengan panjang karakter 10, maka variable tersebut akan selalu berisi 10 karakter.
Adapun sintaksnya :
‘Misal : deklarasi variabel strVariable, dengan maksimal panjang karakter yang dibutuhkan : 10
Dim strVariable as string * 10
jika strVariabel diassign dengan “test” (panjang karakter 4), maka nilainya akan menjadi “test      “, karna telah di definisikan sepanjang 10 karakter
* Penggunaan array dinamis
Penggunaan array dinamis dapat mengalokasikan penggunaan memori sesuai kebutuhan, karena setiap saat indeks dari array dapat ditambah atau dikurangi pada saat runtime, sehingga penggunaan array tersebut juga akan efisien.
Untuk membuat array dinamis, dapat dilakukan dengan menggunakan keyword ReDim PreServe, di mana saat dilakukan penambahan atau pengurangan jumlah indeks dari array tersebut, nilainya tidak akan terganggu. Berbeda dengan apabila hanya menggunakan keyword ReDim, nilai dari setiap indeks array akan terhapus.
sintaks :
Dim myArray(3)  ‘Deklarasi awal
ReDim myArray(10)  ‘Mendeklarasikan ulang dengan nilai yang tidak tersimpan
ReDim PreServe myArray(13)  ‘Mendeklarasikan ulang dengan nilai yang tidak terganggu(nilainya tidak terhapus)