VB6 TUTORIAL (Inventory System)(2)

download VB6 TUTORIAL (Inventory System)(2)

of 70

description

sdfdsd

Transcript of VB6 TUTORIAL (Inventory System)(2)

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    1

    TTuuttoorriiaall VViissuuaall BBaassiicc 66..00 MMeemmbbuuaatt PPrrooggrraamm LLooggiissttiikk BBaarraanngg (( IInnvveennttoorryy SSyysstteemm ))

    Imam Budi Kustanto sim_rusak@yahoo. com

    PPeennggaannttaarr Suatu ketika seorang teman datang kepada saya. Saya pengin sekali bisa bikin program. Sekarang saya lagi coba belajar Visual Basic. Tapi rasanya kok susah banget, ya?!! Ngga seperti program lainnya katanya Perintahnya banyak sekali. Ngga muat otak saya My God !!! Coba saja kalau dari awal ia mengenal komputer yang dipelajari adalah ViBas, tentunya sekarang yang ia katakan susah adalah Microsoft Word, Excell atau yang lainnya. Dalam Word, asal bisa baca tulisan pada keyboard, saya yakin semua orang pasti bisa bikin surat. Cukup ditambah mengerti perintah mencetak, jadilah surat yang ia inginkan. Entah bagaimanapun prosesnya. Demikian juga halnya dengan ViBas. Untuk bisa membuat sebuah program aplikasi itu tidak mesti harus menguasai semua teori tentang ViBas. Asal logika jalan, semisal hanya bisa struktur If...Then sajapun itu sudah bisa digunakan untuk membuat sebuah program yang jadi. Karena pada prinsipnya, semua software adalah sama mudahnya ( atau bisa jadi malahan sama sama sulitnya ?? ). Tutorial ini mencoba membahas tentang langkah langkah membuat sebuah program aplikasi berbasis Visual Basic dari awal sampai akhir. Dari memahami sistem database yang akan kita buat sampai mengemasnya ( packaging ) menjadi program yang siap saji ( emangnya makanan ). Namun penulis tidak akan mengulas banyak tentang dasar dasar ViBas. Karena sudah banyak artikel yang mengulas secara panjang tentang itu. Di IKC ada Krishna D. Octovhiana dengan serial Cepat Mahir Visual Basic 6.0 nya. Di situ semua sudah lengkap ( sampe sampe penulis bingung mo nambahin yang mana ). Sedikit yang perlu penulis tekankan adalah bahwa penggunaan struktur If Then sebaiknya anda pahami bener bener dulu. Yang lainnya sambil jalan juga nggak papa. Tool yang perlu dipersiapkan adalah Microsoft Visual Basic 6.0, dilengkapi dengan True DBGrid 6.0. Untuk aplikasi databasenya menggunakan Microsoft Office Access, serta Seagate Crystal Report 8.0 untuk membuat laporannya ( reporting ). Akhirnya, tak ada gading yang tak retak, tak ada tulang yang tak patah. Semoga sedikit yang dapat saya berikan ini dapat bermanfaat bagi pembaca sekalian.

    Lisensi Dokumen: Copyright 2003 - 2006 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    2

    TTUUTTOORRIIAALL 11 MMIICCRROOSSOOFFTT AACCCCEESSSS DDAATTAABBAASSEE SSYYSSTTEEMM && OODDBBCC A. Basis Data ( Database )

    Secara umum definisi Basis Data atau Database adalah kumpulan data yang saling berhubungan. Dalam implementasinya data tersebut berbentuk Tabel. Tabel adalah obyek database yang memuat record ( row / baris ) dimana masing masing record tersebut merupakan gabungan dari beberapa sifat data yang identik. Nilai nilai yang terkandung dalam sifat data tersebut disebut field ( column / kolom ). Dalam penerapannya, perangkat lunak ( software ) yang digunakan untuk mengelola database ini disebut database management system ( DBMS ). Dan jika menggunakan model relasi maka disebut relational database management system atau disingkat RDBMS. RDBMS mempunyai fasilitas untuk memproses, mendefinisikan, membuat serta memanipulasi database dalam berbagai aplikasi. Salah satu contoh software RDBMS yang sering digunakan adalah Microsoft SQL dan Microsoft Office Access.

    B. Tabel, Record, dan Field Jika database dapat dianalogkan sebagai filling cabinet, maka tabel ( table ) adalah salah satu rak dari filing cabinet tersebut. Setiap rak akan memuat beberapa dokumen yang merupakan analogi dari record, sementara field dapat digambarkan sebagai isian dari dokumennya. Dalam definisi formal basis data, record adalah suatu entitas ( kesatuan yang memiliki arti tunggal atau tidak memiliki kesamaan arti ). Sebagai isian dokumen, sebuah field menggambarkan karakteristik dari sebuah obyek record. Kesatuan entitas entitas ( yang terstruktur ) tersebut inilah yang disebut sebagai tabel. Atribut adalah sebuah nilai yang merupakan sifat dari sebuah obyek yang merupakan interseksi dari record dan field.

    Nama Alamat Umur No. Telepon Kode

    Fulan Jln Pahlawan 42 21 th 08188888 1 Fulan Jln Pendekar 12 21 th 08188889 2

    Si Fulan yang beralamat di Jalan Pahlawan No. 42, berumur 21 tahun dengan Nomor telepon 08188888 dengan kode 1 dianggap mewakili satu record. Sedangkan Fulan pada record pertama dan Fulan pada record kedua adalah mewakili salah satu field yaitu field Nama.

    Field

    Record

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    3

    Untuk membedakan 2 nama Fulan sebagaimana tabel di atas, maka setiap tabel harus mempunyai pengenal ( identifier ) yang unik, yang keberadaannya digunakan sebagai pembeda antara record satu dengan record yang lainnya. Identifier diletakkan dalam sebuah field tertentu, dan selanjutnya field ini disebut sebagai field kunci utama ( primary key ). Contoh : Kode ( dalam ilustrasi tabel di atas ) dapat difungsikan sebagai primary key.

    Oleh karenanya kode tidak boleh sama antara record satu dengan record lainnya.

    Dalam sebuah database, field kunci utama berfungsi untuk menjaga integritas / kesatuan informasi yang ada. Satu tabel dapat memuat satu kunci utama, dan beberapa kunci tamu. Kunci tamu adalah kunci utama yang keberadaannya tergantung pada satu kunci utama tertentu.

    Dalam ilustrasi diatas, pada tabel pertama, IDNasabah adalah kunci utama, sedangkan IDAlamat dan IDKet_Keluarga adalah kunci tamu. ID tersebut sendiri adalah kunci utama dari tabel kedua dan ketiga.

    C. Relasi Database Dalam sebuah relasi database, tabel yang memuat kunci utama yang digunakan sebagai referensi kunci utama tabel lainnya disebut tabel induk ( parent ) sedangkan tabel yang memuat kunci tamu disebut tabel anak ( child ). Ada 3 bentuk relasi yang lazim digunakan, antara lain: 1. relasi one to one. Relasi ini meyatakan bahwa hanya satu record pada tabel anak

    yang dapat direlasikan dengan satu record pada tabel induk. Field kunci utama yang digunakan sebagai kunci utama pada tabel lainnya disebut field relasi.

    2. relasi one to many. Relasi ini meyatakan bahwa beberapa record pada tabel anak dapat direlasikan dengan satu record pada tabel induk.

    3. relasi many to many. Relasi ini meyatakan bahwa beberapa record pada tabel anak dapat direlasikan dengan satu record pada tabel induk, dan sebaliknya beberapa record pada tabel induk dapat direlasikan pada satu record pada tabel anak. Namun dalam perancangan tabel. Relasi many to many dari 2 tabel tidak lazim / tidak boleh dilakukan, karena hal itu menjadikan field kunci tidak lagi bersifat unik.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    4

    D. Tipe Data Field Tipe data field adalah jenis atau sifat yang melekat pada suatu field. Dalam aplikasinya tipe data field berupa bilangan dan teks. Contoh tipe data field dalam Microsoft Acces Text : digunakan untuk menyimpan data teks, angka yang tidak dioperasi-

    hitungkan. Dapat memuat maksimal 255 karakter. Number : digunakan untuk menyimpan data numerik (angka yang dioperasi-

    hitungkan ) Date / Time : digunakan untuk menyimpan data tanggal dan waktu Yes / No : digunakan untuk menyimpan data logika ( ya dan tidak, benar dan

    salah, atau on dan off ) AutoNumber : digunakan untuk menyimpan data numerik yang akan berubah secara

    otomatis jika satu record ditambahkan pada tabel. Currency : digunakan untuk meyimpan nilai mata uang. Dapat menampung

    sampai 15 digit ke kiri dan 4 digit ke kanan titik desimal. Memo : fungsinya hampir sama dengan text, tetapi memo dapat menampung

    sampai dengan 64000 karakter. Hiperlink : digunakan untuk menyimpan suatu link alamat ( IP Address )

    E. Query

    Query adalah metode untuk mengakses record record dari satu tabel atau lebih yang mempunyai atribut sesuai dengan kriteria kreiteria tertentu. Ada banyak cara untuk menggunakan Query. Diantaranya adalah dengan menggunakan statemen SQL, Microsoft Query ataupaun dengan menggunakan Microsoft Access. Penggunaan statemen SQL lebih rumit jika dibandingkan dengan menggunakan Microsoft Query dan Microsoft Access. Dalam Microsoft Access, query adalah fasilitas yang digunakan untuk menentukan serta mengelompokkan field dan record dari satu tabel atau lebih, atau juga query lainnya yang mempunyai relasi dengan suatu kriteria tertentu. Penggunaan query dalam aplikasi database menjadikan proses manipulasi data menjadi lebih mudah. Operator kriteria ( criteria ) dalam Microsoft Access mengkondisikan penyeleksian data di query sesuai dengan kriteria yang diharapkan. Macam macam jenis operator : 1. Comparison atau perbandingan. Operator ini bisa digunakan pada tipe data text,

    number, dan date. Terdiri dari : < kurang dari > lebih dari = sama dengan = lebih dari atau sama dengan tidak sama dengan

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    5

    2. Between and digunakan untuk mencari range dengan nilai tertentu. Misalnya between 01/01/2005 and 12/12/2005 artinya sebuah rentang waktu antara tanggal 1 Januari 2005 sampai dengan 12 Desember 2005.

    3. Karakter wildcard ( * atau ? ) biasa diawali dengan kata Like . Dan aplikasi Microsoft Access akan secara otomatis menambahkan kala Like dan tanda petik sebelum kriteria yang mengandung wildcard. Misalnya kriteria like b* mengandung arti sebuah kriteria yang menyatakan semua kata yang berawalan huruf b .

    4. Aritmetika digunakan pada operasi hitung. Dapat digunakan pada tipe data numerik dan date. Terdiri dari : + untuk operasi penjumlahan - untuk operasi pengurangan * untuk operasi perkalian / untuk operasi pembagian

    5. Operator Fungsi merupakan suatu perintah yang digunakan untuk mengkonversi atau mengambil nilai tertentu dari suatu field. Macam macam fungsi : Str ( field numeric ) : untuk mengkonversi nilai numerik menjadi text. Val ( field text ) : untuk mengkonversi data text yang berupa angka menjadi

    data numeric. Right ( field text ) : mengambil karakter dari sebelah kanan. Left ( field text ) : untuk mengambil karakter dari sebelah kiri. Mid ( field text ) : untuk mengambil karakter antara / tengah. Date () : untuk mengambil tanggal dari system. Day ( field date ) : untuk mengambil nilai tanggal dari suatu data bertipe date /

    time. Nilai yang dihasilkan bertipe data numeric. Fungsi yang bersamaan dengannya adalah operator Month ( field date ) dan Year ( field date ).

    IsNull : untuk mengambil / field yang tidak diisi atau belum terisi. Kebalikannya adalah NotIsNull.

    6. Operator Logika digunakan untuk memberi dua atau lebih ( menggabungkan ) kriteria suatu field. Operator yang sering dipakai antara lain : And untuk memberi 2 kriteria yang harus dipenuhi semuanya. Or untuk memberi 2 kriteria yang salah satu atau keduanya harus terpenuhi. Not untuk memberi kriteria bukan

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    6

    Desain Sistem Database Bagi pembaca yang lebih familier menggunakan Microsoft SQL Server untuk aplikasi databasenya, dapat menggunakan software tersebut. Karena langkah langkahnya relative sama dengan menggunakan Microsoft Office Access. Nama file database atau nama databasenya jika menggunakan Microsoft SQL sebenarnya tidak mengikat. Anda dapat menggunakan nama lain yang mungkin berbeda dengan yang penulis gunakan. 1. Buka Microsoft Office Acces, buat sebuah database baru dengan nama

    DB_LogHIS.mdb, simpan dalam sub folder Data pada direktori C:\LogHIS 2. Tabel yang pertama kita buat adalah tabel tabel pendukung, antara lain :

    buat field seperti gambar di bawah ini :

    Lalu simpan ( press F12 ) dengan nama mstJenisBarang. Tabel tersebut tidak memerlukan ID / primary key, sehingga ketika muncul task berisi konfirmasi tentang tidak adanya primari key yang terdefinisi, kita abaikan saja dengan memilih No

    ( double click Create table in Design View )

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    7

    3. Jangan dulu ditutup tabel tersebut, berturut turut simpan kembali tabel tersebut ( press F12 ) dengan nama lain yaitu : mstSatuanBarang, mstBuktiTerima, mstDasarTerima, mstBuktiKeluar, dan terakhir mstDasarKeluar.

    4. Mengulang langkah ke 2 di atas, tabel ke 7 yang kita buat adalah tabel DataRekanan FieldName Type Description

    IDRekanan AutoNumber Sebagai Primary Key Nama Text Alamat Text Telp Text NPWP Text

    Dalam tabel ini IDRekanan kita jadikan sebagai kunci utama, caranya klik kanan pada field tersebut lalu pilih Primary Key.

    5. Tabel DataUnitKerja FieldName Type Description

    IDUnitKerja AutoNumber Sebagai Primary Key Nama Text Kepala Text NIP Text

    6. Tabel DataPengelola

    FieldName Type Description IDPengelola AutoNumber Sebagai Primary Key Nama Text Jabatan Text NIP Text

    7. Tabel DataBarang

    FieldName Type Description IDBarang AutoNumber Sebagai Primary Key Nama Text Satuan Text Jenis Text HargaSatuan Number JmlPersediaan Number

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    8

    8. Tabel DataDistribusi FieldName Type Description

    IDDistribusi AutoNumber Sebagai Primary Key KodeDistribusi Text Tanggal Date / Time IDPengelola Number IDRekanan Number IDUnitKerja Number IDBarang Number DasarTerima Text NoDasarTerima Text BuktiTerima Text NoBuktiTerima Text DasarKeluar Text NoDasarKeluar Text BuktiKeluar Text NoBuktiKeluar Text JumlahBarang Number NilaiRupiah Number Keterangan Text

    Pada Field Properties ( task dibawahnya ) dari tabel ini, untuk field IDPengelola, IDRekanan, IDUnitKerja dan IDBarang , pada bagian Default Value jika defaultnya tertulis nol ( 0 ), maka hapuslah dan biarkan kosong.

    9. Setelah table table terbentuk, kita buat relationship-nya. Caranya, klik kanan area kosong bidang kerja Access, pilih Relationships. Ketika muncul task Show Table, masukan ( seleksi table klik Add ) tabel DataDistribusi, DataBarang, DataRekanan, DataUnitKerja, dan Data Pengelola.

    10. Setelah itu, klik Close untuk menutup task. 11. Untuk membuat relasi tabel, kita tinggal drag n drop antar field yang akan kita

    relasikan. DataDistribusi kita fungsikan sebagai tabel induk.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    9

    Primary Key atau Kunci Utamanya adalah field IDDistribusi. Sedangkan IDPengelola, IDRekanan, IDUnitKerja dan IDBarang difungsikan sebagai kunci tamu.

    klik OK.

    12. Setelah selesai, lalu save and close.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    10

    MMIICCRROOSSOOFFTT AACCCCEESSSS DDRRIIVVEERR (( **..mmddbb )) OODDBBCC (( OOPPEENN DDAATTAABBAASSEE CCOONNEECCTTIIOONN ))

    Sesuai dengan namanya, ODBC adalah sebuah database terbuka yang dapat diakses oleh beberapa aplikasi. Dalam sebuah aplikasi jaringan, pada umumnya ODBC inilah yang membuat sebuah aplikasi dikatakan menjadi sebuah aplikasi jaringan ( Client Server ). Dengan menggunakan ODBC maka hanya perlu menetapkan satu kali aturan saja untuk dapat berhubungan dengan file database yang digunakan. Ada 3 jenis pengaturan koneksi data base ( Data Source Name atau DSN ) yang dapat dibuat baik di komputer server maupun klien. 1. User DSN : adalah ODBC yang hanya berlaku untuk pengguna yang membuat DNS

    tersebut dan hanya bisa digunakan pada komputer dimana ODBC tersebut dibuat.

    2. System DSN : adalah ODBC yang bisa digunakan oleh semua pengguna ( user ) pada komputer dimana ODBC tersebut dibuat.

    3. File DSN : adalah ODBC yang dapat digunakan bersama ( share / sharing ) dalam suatu jaringan, sepanjang komputer pengguna mempunyai ODBC yang sesuai dengan File DSN tersebut

    Jenis jenis file yang dapat digunakan sebagai data source antara lain file dengan ekstensi *.xls atau *.mdb atau *.dbf atau tabel dan database Visual Foxpro serta masih banyak yang lainnya. Setelah database kita buat, langkah selanjutnya adalah membuat sebuah koneksi yang menghubungkan database tersebut dengan aplikasi lainnya, yaitu menggunakan OBDC. Caranya Start Control Panel Administration Tools ( dalam group Performance and Maintenance ) ODBC. Klik Add,

    pilih Microsoft Access Driver ( *.mdb) lalu Finish

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    11

    ketik nama data source pada field Data Source Name,

    lalu klik Select, dan browse dan pilih file database yang telah kita buat sebelumnya, terakhir klik OK hingga keluar dari task pane.

    Dengan koneksi tersebut, akan memudahkan kita dalam memanipulasi, link, maupun export dan import data, dari dan ke file database tersebut.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    12

    TTuuttoorriiaall VViissuuaall BBaassiicc 66..00 MMeemmbbuuaatt PPrrooggrraamm LLooggiissttiikk BBaarraanngg (( IInnvveennttoorryy SSyysstteemm )) Imam Budi Kustanto sim_rusak@yahoo. com TTUUTTOORRIIAALL 22 FFOORRMM && SSCCRRIIPPTT CCOODDEE (( 0011 ))

    Sebagai langkah persiapan, buat folder kerja anda pada direktori C:\ dengan nama LogHIS. Dalam folder tersebut buat beberapa sub folder baru, masing masing Images ( untuk menyimpan file gambar ), Data ( untuk menyimpan file data ), Form ( untuk menyimpan file *.frm ), dan Report ( untuk menyimpan file *.rpt ). Buat file gambar ukuran 800 x 600 pixel lalu simpan dalam sub folder Images dengan nama background.jpg. File ini akan kita fungsikan sebagai background dari tampilan form - form yang ada dalam proyek kita nanti. Contoh background.jpg sederhana ( anda bisa menggunakan Adobe Photoshop etc untuk membuatnya lebih cantik lagi ) :

    Lisensi Dokumen: Copyright 2003 - 2006 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    13

    Copy file Harrow.cur yang ada di C:\Windows\Cursor ke dalam folder kerja C:\LogHIS\Images. File cursor ini kita jadikan sebagai mouse pointer shortcut dan tombol. Dengan program icon editor yang anda punya atau copy & rename file icon yang sudah ada, buatlah sebuah file icon dengan nama loghis.ico, simpan dalam sub folder Images. Form1( MenuUtama.frm) 1. Jalankan Microsoft Visual Basic 6.0, buat proyek baru jenis Standard EXE 2. Defaultnya, dalam proyek baru tersebut sudah tersedia sebuah form kosong dengan

    nama Form1, atur properti formnya sebagai berikut : Border Style = 0-None Picture = ( browse pada direktori) C:\LogHIS\Images\background.jpg StartupPosition = 2-CenterScreen

    3. Atur luas area Form1 menyesuaikan luas background. 4. Setelah itu, buat 13 buah Label, atur propertinya sebagai berikut :

    AutoSize = True BackStyle = Transparant Caption = ( lihat gambar tampilan Form1 ) Font dan ForeColor = ( anda atur sendiri ) MouseIcon = ( browse pada direktori) C:\LogHIS\Images\Harrow.cur MousePointer = 99-Custom

    5. Masukkan 1 buah object Image , atur property sebagai berikut : Picture = browse pada direktori file gambar yang anda inginkan. Strecth = True Lalu atur posisi dan luas image secara manual menyesuaikan area form yang ada.

    6. Gambar tampilan Form1.

    Object Label1 s/d Label13 Object Image1

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    14

    7. Simpan form tersebut dalam direktori C:\LogHIS\Form dengan nama MenuUtama.frm dan simpan proyek dengan nama LogHIS.vbp dalam direktori C:\LogHIS.

    8. Form1(MenuUtama.frm) ini kita jadikan sebagai startup object, caranya Project Project1 Properties lalu dalam field Startup Object pilih Form1.

    9. Cobalah anda jalankan Form1 tersebut ( atau press F5 ). Dalam tahap ini anda telah selesai membuat tampilan muka yang merupakan gerbang utama program logistik ini. Object label yang ada dalam Form1 tersebut akan kita fungsikan sebagai shortcut untuk masuk ke form form selanjutnya.

    Catatan : Anda juga dapat menggunakan Tools Menu Editor untuk membuat shortcut shortcut tersebut. Bedanya kalau menggunakan cara itu, tampilan form tidak bisa dibuat borderless. Menuliskan ( scripting ) kode Form1 Pertama sekali kita akan menuliskan kode pemanggilan form form lainnya dari shortcut shortcut yang ada dalam Form1.

    Ketika mouse pointer kita arahkan ke shortcut tersebut, cursor yang tadinya berupa anak panah akan berubah menjadi gambar tangan yang sedang menunjuk (Harrow.cur). Hal tersebut sudah kita atur sebelumnya dalam langkah ke 4 di atas.

    Apabila shortcut tersebut kita klik maka terdengan bunyi Beep sekali, Form1(MenuUtama.frm) kita buat disable, lalu form yang dituju kita load dan tampilkan di layer

    Apabila Label13 ( Keluar ) di klik maka program selesai dan keluar.

    10. Dalam mode View Object, kita klik ganda Label2 ( Caption = Data Barang ). 11. Lalu tampilan kerja anda akan berubah dalam mode View Code, dalam sub prosedur

    Label2_Click masukan / ketik script sebagai berikut : ---------------------------------------------------------------------------------------------- Private Sub Label2_Click() ketika Label2 di klik maka, Beep terdengar bunyi beep sekali Form1.Enabled = False form1 disable Load Form2 form2 loading Form2.Show form2 tampil di layar End Sub akhir sub prosedur ----------------------------------------------------------------------------------------------

    Selanjutnya lakukan langkah no 11 untuk Label3 ( Caption = Data Rekanan ). ---------------------------------------------------------------------------------------------- Private Sub Label3_Click() ketika Label2 di klik maka, Beep terdengar bunyi beep sekali Form1.Enabled = False form1 disable Load Form3 form3 loading Form3.Show form3 tampil di layar End Sub akhir sub prosedur ----------------------------------------------------------------------------------------------

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    15

    12. Lakukan juga sub prosedur tersebut di atas untuk label - label selanjutnya : Nama Label Caption Ref. Label4 Data Unit Kerja shortcut ke Form4 Label5 Data Pengelola shortcut ke Form5 Label6 List Master shortcut ke Form6 Label7 Penerimaan shortcut ke Form7 Label8 Pengeluaran shortcut ke Form8 Label10 (Cetak Data) Penerimaan shortcut ke Form9 Label11 (Cetak Data) Pengeluaran shortcut ke Form10 Label12 (Cetak Data) Persediaan shortcut ke Form11

    13. Untuk Label13 ( Caption = Keluar ) script kodenya adalah :

    -------------------------------------------------------------------------------------------------- Private Sub Label13_Click() ketika Label13 di klik, Beep terdengar bunyi beep sekali pesan = MsgBox("Keluar dari program aplikasi?", vbYesNo + vbQuestion, "Konfirmasi") deklarasi variabel pesan disertai pilihan Yes No + icon question If pesan = vbYes Then bila tombol Yes di pilih maka End selesai dan keluar dari program Else bila bukan Yes yang ditekan Exit Sub keluar dari sub prosedur End If akhir struktur control if..then End Sub akhir sub prosedur -------------------------------------------------------------------------------------------------

    Langkah selanjutnya adalah membuat form baru yang merupakan target shortcut shortcut yang ada dalam Form1. Klik Project Add Form, pilih object Form, lalu klik Open.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    16

    Atau dengan cara lain, dalam area Project Explorer ( Project Project1 ), klik kanan Form lalu pilih Add Form.

    14. Buat form baru sejumlah 7 buah ( Form2 s/d Form8 ) 15. Simpan form form tersebut dalam sub folder C:\LogHIS\Form dengan nama

    sesuai label / shortcutnya, yaitu : Form2(DataBarang.frm), Form3(DataRekanan.frm), Form4(DataUnitKerja.frm), Form5(DataPengelola.frm), Form6(ListMaster.frm), Form7(Penerimaan.frm), Form8(Pengeluaran.frm), Kecuali Form6(ListMaster), atur properti form form yang telah tersimpan tadi sebagai berikut : Border Style = 0-None Picture = ( browse pada direktori) C:\LogHIS\Images\background.jpg StartupPosition = 2-CenterScreen

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    17

    Form6(ListMaster.frm) Form ini merupakan form untuk menginput daftar pilihan list data yang digunakan dalam form form lainnya. Misalnya list Jenis Barang, Satuan Barang, Daftar Unit Kerja, Daftar Rekanan dan yang lainnya. Sebelumnya, masukkan dulu komponen TDBGrid Pro 6.0 pada area toolbox. Caranya, klik Project Component ( atau press Ctrl + T )

    Aktifkan ( klik pada check field ) komponen komponen sebagai berikut :

    Apex True DBGrid Pro 6.0 ( OLEDB ) Microsoft ADO Data Control 6.0 ( OLEDB ) Microsoft DataGrid Control 6.0 ( OLEDB ), dan Microsoft DataList Controls 6.0 ( OLEDB )

    Form6(ListMaster.frm) ini merupakan input list data sebagai berikut : Jenis Barang Satuan Barang Dasar Penerimaan Bukti Penerimaan Dasar Pengeluaran Bukti Pengeluaran

    Pada area Project Explorer, double klik Form6(ListMaster.frm), dalam mode View Object, lakukan langkah berikut: 16. Atur property form sebagai berikut :

    Border Style = 1-Fixed Single Caption = ..:: Input List Data ::.. Icon = browse pada direktori file icon anda StartupPosition = 2-CenterScreen

    APEX True DBGrid Pro 6.0 ( OLEDB )

    Microsoft ADO Data Control 6.0 ( OLEDB )

    Microsoft DataGrid Control 6.0 ( OLEDB )

    Microsoft DataList Controls 6.0 ( OLEDB )

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    18

    17. Dalam Form6 tersebut buat object object dibawah ini, lalu atur propertinya seperti gambar di bawah ini :

    Object Properti Object Label Name = Label1

    AutoSize = True BackStyle = Transparant Caption = List Data Font = ForeColor =

    ComboBox Name = ComboBox1 MouseIcon = Harrow.cur MousePointer = 99-Custom Style = 2-Dropdown List TabStop = True

    TDBGrid Name = TDBGrid1 AllowAddNew = False AllowArrow = True AllowUpdate = False AllowDelete = False TabStop = False

    TextBox Name = Input_Data Text = ( blank ) TabStop = False

    CommandButton

    Form Caption

    ComboBox

    TDBGrid

    Label

    TextBox

    Icon

    Adodc

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    19

    CommadButton Name = btnTambah Caption = &Tambah MouseIcon = Harrow.cur MousePointer = 99-Custom TabStop = False

    CommadButton Name = btnSimpan Caption = &Simpan MouseIcon = Harrow.cur MousePointer = 99-Custom TabStop = False

    CommadButton Name = btnHapus Caption = &Hapus MouseIcon = Harrow.cur MousePointer = 99-Custom TabStop = False

    CommadButton Name = btnKeluar Caption = &Keluar MouseIcon = Harrow.cur MousePointer = 99-Custom TabStop = False

    18. Pada langkah ini, kita masukan jenis jenis list data ke dalam object ComboBox. Kita menggunakan ComboBox karena data tersebut relative statis. Caranya : Klik atau seleksi object ComboBox(ComboBox1) tersebut, lalu dalam

    propertinya kita pilih List press F4 ketik Jenis Barang akhiri dengan Enter.

    Masukan lagi kedalamnya berturut turut Satuan Barang, Dasar Penerimaan, Bukti Penerimaan, Dasar Pengeluaran dan terakhir Bukti Pengeluaran.

    19. Kita masukan 6 buah object Adodc pada area form samping kanan. Masing masing Adodc tersebut kita namakan ( Property (Name) ) dengan JenisBarang, SatuanBarang, DasarTerima, BuktiTerima, DasarKeluar, dan terakhir BuktiKeluar.

    20. Klik kanan pada object Adodc ( JenisBarang ) Properti, muncul task berikut :

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    20

    Dalam task di atas, pilih Use ODBC Data Source Name, pilih db_logHIS. Kemudian klik Tab RecordSource hingga muncul gambar di bawah ini :

    Dalam list Command Type kita isikan 2 adCmdTable. Dan dalam kolom Table or Stored Procedur Name kita pilih tabel mstJenisBarang, lalu klik OK

    21. Lakukan lagi langkah tersebut di atas pada Adodc(SatuanBarang) untuk tabel mstSatuanBarang dan seterusnya sampai Adodc(BuktiKeluar) untuk tabel mstBuktiKeluar. Setelah semua diatur, sempitkan area form ke kiri hingga tampilan object Adodc tidak terlihat dalam area form.

    22. Klik kanan object TDBGrid1, pilih Edit. 23. Seleksi ( klik bagian atas / heading ) kolom kedua, klik kanan dan pilih Delete.

    Perintah ini akan menghapus kolom kedua dari TDBGrid. 24. Klik kanan object TDBGrid1 kembali, pilih Properti, hingga muncul :

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    21

    Pada tab Column Column(00) DataField dalam Selection or String ketik Nama. Artinya bahwa kolom pertama dari TDBGrid1 ini mereferensi pada field Nama dari tabel database kita. Pada Column(00) Caption String kita buat kosong ( blank )

    Menuliskan ( scripting ) kode Form6 25. Sebelumnya, buatlah script kode sub untuk merefresh data yang bisa dipanggil oleh

    sub prosedur lainnya ---------------------------------------------------------------------------------------------- Sub RefreshData() nama sub adalah RefreshData JenisBarang.Refresh SatuanBarang.Refresh DasarTerima.Refresh BuktiTerima.Refresh DasarKeluar.Refresh BuktiKeluar.Refresh refresh data data tersebut End Sub ----------------------------------------------------------------------------------------------

    26. Ketika Form6 ini di-loading ( form_load ), database kita refresh, kita arahkan operator untuk memilih list index yang ada dalam ComboBox(ComboBox1) atau pembatalan operasi pada form ini. Sehingga ada baiknya BtnTambah, BtnSimpan dan BtnHapus kita buat disable dahulu, sementara BtnKeluar kita biarkan enabled. Double klik area form yang kosong, tuliskan script sub prosedur form load berikut :

    ---------------------------------------------------------------------------------------------- Private Sub Form_Load()

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    22

    Call RefreshData panggil script refresh data btnSimpan.Enabled = False BtnSimpan di-disable btnTambah.Enabled = False BtnSimpan di-disable btnHapus.Enabled = False BtnSimpan di-disable End Sub ----------------------------------------------------------------------------------------------

    27. Bila ternyata operator memilih membatalkan operasi pada form ini, kemungkinan yang ada adalah operator meng-klik BtnKeluar atau bisa juga dengan meng-klik tanda silang yang ada pada pojok kanan atas form. Bila operator memilih klik tanda silang ( unload ) maka script prosedurnya adalah :

    ---------------------------------------------------------------------------------------------- Private Sub Form_Unload(Cancel As Integer) Call RefreshData panggil sub refresh data Form1.Show Form1(MenuUtama.frm) ditampilkan Form1.Enabled=true menjadikan Form1 enable Unload me Unload me ( Form6 ) Me.hide Form6 tidak tampil di layar End Sub ----------------------------------------------------------------------------------------------

    Bila yang di klik adalah BtnKeluar, tambahkan lagi sub prosedur berikut :

    ---------------------------------------------------------------------------------------------- Private Sub BtnKeluar_Click() Call RefreshData panggil sub refresh data Form1.Show Form1(MenuUtama.frm) ditampilkan Form1.Enabled=true menjadikan Form1 enable Unload me Unload me ( Form6 ) Me.hide Form6 tidak tampil di layar End Sub ----------------------------------------------------------------------------------------------

    28. Bila list dalam ComboBox yang dipilih adalah Jenis Barang, maka source tabel TDBGrid1 adalah Adodc(JenisBarang). Atau juga ketika dalam list tersebut kita pilih Satuan Barang maka sourcenya adalah Adodc(SatuanBarang), dan seterusnya.

    ---------------------------------------------------------------------------------------------- Private Sub ComboBox1_Click()

    event klik pada combobox1 maka Call RefreshData me-refresh data If ComboBox1.ListIndex = 0 Then

    bila yang dipilih dalam combobox1 tersebut adalah list - index yang ke 0 atau Jenis Barang maka

    TDBGrid1.DataSource = JenisBarang source data dari tabel TDBGrid1 adalah Adodc(JenisBarang)

    TDBGrid1.Columns(0).Caption = "Jenis" Title / judul kolom pertama dari TDBGrid1 adalah Jenis dan seterusnya

    End If

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    23

    If ComboBox1.ListIndex = 1 Then TDBGrid1.DataSource = SatuanBarang TDBGrid1.Columns(0).Caption = "Satuan" End If If ComboBox1.ListIndex = 2 Then TDBGrid1.DataSource = DasarTerima TDBGrid1.Columns(0).Caption = "Dasar Penerimaan" End If If ComboBox1.ListIndex = 3 Then TDBGrid1.DataSource = BuktiTerima TDBGrid1.Columns(0).Caption = "Bukti Penerimaan" End If If ComboBox1.ListIndex = 4 Then TDBGrid1.DataSource = DasarKeluar TDBGrid1.Columns(0).Caption = "Dasar Pengeluaran" End If If ComboBox1.ListIndex = 5 Then TDBGrid1.DataSource = BuktiKeluar TDBGrid1.Columns(0).Caption = "Bukti Pengeluaran" End If btnTambah.Enabled = True btnHapus.Enabled = True End Sub ----------------------------------------------------------------------------------------------

    Ketika script tersebut dijalankan, untuk mengakses list index yang ada pada ComboBox1 dapat dilakukan dengan pres F4. Penggunaan keyboard Enter kita sediakan untuk menggantikan click ComboBox1.

    ---------------------------------------------------------------------------------------------- Private Sub ComboBox1_KeyPress(KeyAscii As Integer) event penekanan tombol keyboard If KeyAscii = 13 Then bila yang ditekan adalah Enter If ComboBox1 "" Then bila Combobox1 tidak kosong btnTambah.SetFocus focus pada BtnTambah Else Exit Sub End If End If End Sub ----------------------------------------------------------------------------------------------

    29. Asumsi pertama operasi pada form ini adalah penambahan record pada salah satu jenis list data atau prosedur klik pada BtnTambah

    ---------------------------------------------------------------------------------------------- Private Sub btnTambah_Click()

    event klik pada button tambah If ComboBox1.ListIndex = 0 Then

    bila list index pada combo box adalah Jenis Barang maka, JenisBarang.Recordset.AddNew

    Tambah satu record baru dalam Adodc(JenisBarang) Else bila bukan itu / selain itu dan seterusnya If ComboBox1.ListIndex = 1 Then SatuanBarang.Recordset.AddNew

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    24

    Else If ComboBox1.ListIndex = 2 Then DasarTerima.Recordset.AddNew Else If ComboBox1.ListIndex = 3 Then BuktiTerima.Recordset.AddNew Else If ComboBox1.ListIndex = 4 Then DasarKeluar.Recordset.AddNew Else If ComboBox1.ListIndex = 5 Then BuktiKeluar.Recordset.AddNew Else Exit Sub keluar dari sub prosedur End If akhir dari if pertama End If akhir if kedua End If akhir if ketiga End If akhir if keempat End If akhir if kelima End If akhir dari if yang ke enam Input_List.SetFocus TextBox(Input_List)posisi aktif BtnTambah.Enabled=False BtnTambah menjadi disable BtnHapus.Enabled=False BtnTambah menjadi disable BtnSimpan.Enabled=True BtnSimpan menjadi enable End Sub ----------------------------------------------------------------------------------------------

    Selain menggunakan kontrol If . Then, bisa juga menggunakan Select Case. Untuk mudahnya, semua akan menggunakan If.Then ( padahal yang bener penulis emang bisanya cuman if then aja, Brur!!) Setelah penambahan record, posisi cursor terletak di TextBox(Input_List). Penekanan Enter keyboard dalam object ini akan memindahkan focus pada BtnSimpan dengan syarat bila TextBox(Input_List) tidak kosong.

    ---------------------------------------------------------------------------------------------- Private Sub Input_List_KeyPress(KeyAscii As Integer) event penekanan tombol keyboard If KeyAscii = 13 Then bila yang ditekan adalah Enter If Input_List "" Then bila Input_List tidak kosong btnSimpan.SetFocus focus pada BtnSimpan Else selain itu Exit Sub keluar dari sub prosedur End If End If End Sub ----------------------------------------------------------------------------------------------

    30. Syarat agar operasi simpan record dapat dilakukan adalah bila terdapat kondisi : Record pada TDBGrid1 tidak terisi, TextBox(Input_List) tidak kosong. Apabila belum terpenuhi syarat / kondisi tersebut, operasi simpan ditunda, lalu keluar pesan text agar operator memenuhi persyaratan tertentu untuk operasi simpan data. Dalam mode View Object, double click Button(BtnSimpan), lalu dalam mode View Code ketik script code :

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    25

    ---------------------------------------------------------------------------------------------- Private Sub btnSimpan_Click() If TDBGrid1.Columns(0) "" Then pesan1 = MsgBox("Record sudah terisi data", vbOKOnly + vbCritical, "Record Terisi") Else If Input_List = "" Then pesan2 = MsgBox("Input data belum untuk disimpan masih kosong", vbOKOnly + vbCritical, "Isikan Data") Else If ComboBox1.ListIndex = 0 Then JenisBarang.Recordset!nama = Input_List JenisBarang.Recordset.Update Input_List = "" btnTambah.Enabled = True btnHapus.Enabled = True btnSimpan.Enabled = False Else If ComboBox1.ListIndex = 1 Then SatuanBarang.Recordset!nama = Input_List SatuanBarang.Recordset.Update Input_List = "" btnTambah.Enabled = True btnHapus.Enabled = True btnSimpan.Enabled = False Else If ComboBox1.ListIndex = 2 Then DasarTerima.Recordset!nama = Input_List DasarTerima.Recordset.Update Input_List = "" btnTambah.Enabled = True btnHapus.Enabled = True btnSimpan.Enabled = False Else If ComboBox1.ListIndex = 3 Then BuktiTerima.Recordset!nama = Input_List BuktiTerima.Recordset.Update Input_List = "" btnTambah.Enabled = True btnHapus.Enabled = True btnSimpan.Enabled = False Else If ComboBox1.ListIndex = 4 Then DasarKeluar.Recordset!nama = Input_List DasarKeluar.Recordset.Update Input_List = "" btnTambah.Enabled = True btnHapus.Enabled = True btnSimpan.Enabled = False Else If ComboBox1.ListIndex = 5 Then BuktiKeluar.Recordset!nama = Input_List BuktiKeluar.Recordset.Update Input_List = ""

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    26

    btnTambah.Enabled = True btnHapus.Enabled = True btnSimpan.Enabled = False Else Exit Sub End If End If End If End If End If End If End If End If End Sub ----------------------------------------------------------------------------------------------

    Dalam sub prosedur diatas, ada pengulangan baris script ( baris 12 s/d 15 dari bawah ) Bila terdapat kondisi yang demikian, kita dapat membuat sebuah sub sendiri :

    Sub NamanyaBebas() Input_List = "" btnTambah.Enabled = True btnHapus.Enabled = True btnSimpan.Enabled = False End Sub

    Dalam sub prosedur BtnSimpan_Click hapus dan ganti baris yang diulang ulang tersebut dengan script : call NamanyaBebas

    31. BtnHapus adalah untuk menghapus record yang ada pada tabel. Prosedur menghapus record logikanya adalah sama dengan prosedur penambahan record ( AddNew diganti Delete ). Double klik BtnHapus Copy script pada sub prosedur BtnTambah_Click dari baris pertama s/d end if ke enam, paste dalam script prosedur BtnHapus_Click. Seleksi hasil copyan tersebut, press Ctrl+H, dalam field Find What: kita isi dengan Addnew, dan field Replace With : kita isi Delete.

    lalu klik Replace All dan OK, lalu tutup task Replace tersebut. Apabila tidak terdapat record dalam TDBGrid1 dan BtnHapus kita klik maka akan keluar pesan error sebagai berikut :

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    27

    hal tersebut dikarenakan dalam tabel database sama sekali belum terdapat record. Error ini kita tangani dengan penambahan list berikut pada baris pertama :

    If NamaAdodc.Recordset.BOF=True then ---------------------masukan pesan text -------------------- else -------------------isi script yang sudah ada----------------- end if

    Catatan :

    Entah karena penulis merasa hal tersebut tidak terlalu urgen atau karena dasarnya memang penulis orangnya malas, biasanya kondisi seperti itu penulis hanya menambahkan

    On Error Resume Next. lalu taruh pada baris pertama / awal script . ( Semoga anda tidak )

    Running Project Jalankan script yang telah anda buat pada Form6(ListMaster) dengan cara klik Run Start atau press F5. Lalu satu persatu masukkan data data sebagai berikut : Jenis Barang

    Alat Kesehatan Inventaris Alat Tulis Kantor Alat RT / Kebersihan Barang Cetakan Linen / Kain Alat Elektronika Lainnya

    Satuan Barang Buah

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    28

    Unit Rim Pak Dos Dsn Box Meter Pasang

    Dasar Penerimaan BA Penerimaan BA Pemeriksaan Lainnya

    Bukti Penerimaan Faktur Nota Tanda Terima Lainnya

    Dasar Pengeluaran DO ( Delivery Order ) Surat Perintah Lainnya

    Bukti Pengeluaran Blanko Permintaan Tanda Terima Lainnya

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    29

    Form2(DataBarang) 32. Tutup semua form yang sedang aktif, buka (dlm project explore double klik nama

    form) Form2(DataBarang) atur properti sebagai berikut : Border Style = 0-None Picture = ( browse pada direktori) C:\LogHIS\Images\background.jpg StartupPosition = 2-CenterScreen

    33. Dalam form tersebut lalu masukan object - object sebagai berikut :

    Object Nama Properti Object Label ( 5 buah )

    Label 1 s/d Label 5

    AutoSize = True BackStyle = Transparant Caption = lihat form layout Font = atur menyesuaikan ForeColor =

    DataCombo ( 2 buah )

    jenis dan satuan

    MouseIcon = Harrow.cur MousePointer = 99-Custom Style = 2-Dropdown List TabStop = False

    TDBGrid ( 1 buah )

    TDBGrid1 AllowAddNew = False AllowArrow = True AllowUpdate = False AllowDelete = False DataSource = DataBarang

    TextBox ( 2buah )

    nama, hargasatuan,

    Text = ( blank ) TabStop = False

    CmdButton BtnTambah Caption = &Tambah MouseIcon = Harrow.cur MousePointer = 99-Custom TabIndex = 0 TabStop = False

    CmdButton BtnSimpan Caption = &Simpan MouseIcon = Harrow.cur MousePointer = 99-Custom TabIndex = 1 TabStop = False

    CmdButton BtnRefresh Caption = &Refresh MouseIcon = Harrow.cur MousePointer = 99-Custom TabIndex = 3 TabStop = False

    CmdButton BtnKeluar Caption = &Keluar MouseIcon = Harrow.cur MousePointer = 99-Custom TabIndex = 4 TabStop = False

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    30

    Adodc

    mstJenis

    AllowUpdate = False AllowAddnew = False AllowArrow = True Allowdelete = False Visible = False ConnectionString = (browse dan pilih) DB_Loghis CommandType = 2-adCmdTable RecordSource = mstJenisBarang

    Adodc

    mstSatuan

    ConnectionString = (browse dan pilih) DB_Loghis CommandType = 2-adCmdTable RecordSource = mstSatuanBarang Lainnya sama dengan atas

    Adodc

    DataBarang

    ConnectionString = (browse dan pilih) DB_Loghis CommandType = 2-adCmdTable RecordSource = DataBarang Lainnya sama dengan atas

    Image Image1 Picture = browse file gambar Strecth = True

    Form Lay Out :

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    31

    34. Atur daftar pilihan ( list ) dalam object DataCombo( Jenis ) RowSource = mstJenis ( nama Adodc dari tabel mstJenisBarang ) ListField = nama ( nama Field / Kolom dari tabel mstJenisBarang ) Style = 2-DropDownList Text = ( blank )

    35. Atur daftar pilihan ( list ) dalam object DataCombo( Satuan ) RowSource = mstSatuan ( nama Adodc dari tabel mstSatuanBarang ) ListField = nama ( nama Field / Kolom dari tabel mstSatuanBarang ) Style = 2-DropDownList Text = ( blank )

    36. Bila default kolom yang tersedia dalam TDBGrid1 yang akan kita referensikan pada tabel database DataBarang hanya ada 2 kolom sementara field yang akan kita referensikan adalah lebih dari 2, maka klik kanan pada TDBGrid1 lalu pilih Edit. Setelah itu, satu persatu tambahkan 3 buah field kosong lagi dengan cara klik kanan pada area TDBGrid1 lalu pilih Insert. Lihat langkah nomor 24, lakukan prosedur tersebut untuk mereferensikan field - field dalam tabel DataBarang dengan kolom kolom yang tersedia dalam TDBGrid1. Pada masing masing kolom tersebut, isian Caption tidak berpengaruh pada data. Oleh karena itu anda bisa merubah atau membiarkan seperti defaultnya saja.

    37. Ketika form ini di-loading, karena properti TabIndex pada btnTambah kita set pada angka 0 maka akan menjadikannya aktif terseleksi. Warna latar ( BackColor ) kolom kolom isian data ( TextBox dan DataCombo) kita warnai dengan warna yang agak gelap.

    ---------------------------------------------------------------------------------------------- Private Sub Form_Load() DataBarang.Refresh nama.BackColor=vbButtonFace jenis.BackColor=vbButtonFace satuan.BackColor=vbButtonFace hargasatuan.BackColor=vbButtonFace End Sub ----------------------------------------------------------------------------------------------

    38. Bila kolom isian kolom isian dalam form tersebut terseleksi ( GotFocus ) , warna latarnya ( back color ) akan berubah menjadi putih. Kalau lepas seleksi ( LostFocus ) akan kembali menjadi gelap.

    ---------------------------------------------------------------------------------------------- Private Sub nama_GotFocus() nama.BackColor = vbWhite End Sub Private Sub nama_LostFocus() nama.BackColor = vbButtonFace End Sub Private Sub jenis_GotFocus() jenis.BackColor = vbWhite End Sub Private Sub jenis_LostFocus()

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    32

    jenis.BackColor = vbButtonFace End Sub Private Sub satuan_GotFocus() satuan.BackColor = vbWhite End Sub Private Sub satuan_LostFocus() satuan.BackColor = vbButtonFace End Sub Private Sub hargasatuan_GotFocus() hargasatuan.BackColor = vbWhite End Sub Private Sub hargasatuan_LostFocus() hargasatuan.BackColor = vbButtonFace End Sub ----------------------------------------------------------------------------------------------

    39. Setelah kita membuat pengaturan warna latar, hal lain yang perlu diatur juga adalah aktivitas penggunaan keyboard dalam kolom kolom isian tersebut. Misalnya, ketika ada aktivitas penekanan tombol Enter dalam object TextBox(nama), apabila kolom ini tidak dalam keadaan kosong maka cursor aktif akan mengarah pada object DataCombo(Jenis).

    ---------------------------------------------------------------------------------------------- Private Sub nama_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If nama "" Then jenis.SetFocus Else nama.SetFocus End If End Sub ----------------------------------------------------------------------------------------------

    Demikian juga untuk object isian data yang lainnya. Enter pada object TextBox(jenis) akan memindahkan cursor ke TextBox(satuan) dengan catatan apabila TextBox(jenis) tidak kosong, dan seterusnya. Namun khusus pada object HargaSatuan karena input yang kita butuhkan di sini adalah data type numeric maka ada tambahan pengaturan lagi. Yaitu bila yang diketikkan bukan angka maka akan kita munculkan pesan ( messege box ) adanya kesalahan pengetikan yang bukan angka. Pengecekan tersebut bisa menggunakan script :

    ---------------------------------------------------------------------------------------------- Private Sub hargasatuan_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If Not IsNumeric(hargasatuan) Then MsgBox "Kolom ini harus di isi dengan angka" HargaSatuan.SetFocus Else cmdSimpan.SetFocus End If End If End Sub ----------------------------------------------------------------------------------------------

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    33

    Atau bisa juga : ---------------------------------------------------------------------------------------------- Private Sub hargasatuan_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If hargasatuan "" Then cmdSimpan.SetFocus End If If (KeyAscii >= vbKey0 And KeyAscii

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    34

    42. Untuk penambahan data atau klik pada btnTambah disamping record DataBarang menjadi bertambah juga kondisikan agar object isian data semua kosong. Lalu cursor akan aktif pada input nama.

    ---------------------------------------------------------------------------------------------- Private Sub BtnTambah_Click() DataBarang.Refresh DataBarang.Recordset.AddNew Nama= Jenis= Satuan= hargaSatuan= nama.SetFocus End Sub

    43. Ketika btnSimpan di klik, sub di atas kita panggil setelah data isian kita validasi dulu. Jika BOF ( begin of file yang menandakan tidak terdapat record sama sekali ) dari DataBarang adalah benar maka langsung kita tambahkan satu record baru lagi pada DataBarang.

    If DataBarang.Recordset.BOF = True then DataBarang. Recordset.AddNew

    Bila BOF tidak lagi True, tetapi jika Record pada DataBarang tidak kosong ( ditandai dengan salah satu fieldnya yang juga tidak sama dengan kosong ) maka kita konfirmasikan bahwa record yang aktif sudah terisi data.

    Else If DataBarang.Recordset!IDBarang Then RecordIsi=MsgBox(Record sudah terisi data, klik Tambah untuk membuat data baru dulu!,vbOkOnly + 32, Record Isi Data)

    Dan bila salah satu input data masih kosong, konfirmasikan pula bahwa semua isian data tidak boleh kosong.

    Else If nama = or jenis = or satuan = or hargasatuan = Then RecordIsi=MsgBox(Data isian yang anda masukan belum lengkap, lengkapi isian data yang masih kosong!,vbOkOnly + 48, Data Tidak Lengkap)

    Ketika semua kondisi sudah tervalidasi, panggil sub SimpanData. Else Call SimpanData

    44. Perintah pada klik btnRefresh akan merefresh data yang digunakan dalam form ini. ---------------------------------------------------------------------------------------------- Private Sub BtnRefresh_Click() DataBarang.Refresh End Sub ----------------------------------------------------------------------------------------------

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    40

    TTuuttoorriiaall VViissuuaall BBaassiicc 66..00 MMaammbbuuaatt PPrrooggrraamm LLooggiissttiikk BBaarraanngg (( IInnvveennttoorryy SSyysstteemm )) Imam Budi Kustanto sim_rusak@yahoo. com TTUUTTOORRIIAALL 22 FFOORRMM && SSCCRRIIPPTT CCOODDEE (( 0022 )) Form3( DataRekanan.frm) Karena pada prinsipnya operasional form ini adalah sama dengan Form2(DataBarang.frm), maka copy paste dan replace lebih banyak penulis gunakan dalam mendesain form ini. 45. Biarkan Form2(DataBarang.frm) tetap terbuka, buka Form3(DataRekanan.frm) 46. Seleksi semua ( Edit Select All ) object yang ada dalam

    Form2(DataBarang.frm), lalu copy dan pastekan ke dalam Form3(DataRekanan.frm). Atur layoutnya sama persis dengan Form2. Buang object Adodc(mstJenis), Adodc(mstSatuan), DataCombo(Satuan) dan DataCombo(jenis)

    47. Select TextBox(nama) lalu copy ( Ctrl + C ) dan paste ( Ctrl + V ). Kalau ada konfirmasi telah ada object dengan nama tersebut maka abaikan saja dengan klik No. Rename ( pada object properti ) TextBox hasil copyan tersebut dengan nama Alamat.

    48. Ulang langkah tersebut di atas, rename dengan nama Telp. 49. Rename TextBox(HargaSatuan) dengan nama NPWP. 50. Rename object Adodc DataBarang dengan nama DataRekanan. Atur properti

    RecordSource mengarah pada tabel DataRekanan. 51. Demikian juga untuk properti Caption dari object label berikut ganti menjadi :

    Data Barang Persediaan menjadi Data Rekanan / Supplier Nama Barang kita ganti dengan Nama Rekanan

    Lisensi Dokumen: Copyright 2003 - 2006 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    41

    Jenis Barang ganti dengan Alamat Satuan ganti dengan Telepon, dan HargaSatuan ganti dengan Nomor NPWP

    Hasil dari langkah langkah tersebut di atas adalah tampilan Form sebagai berikut :

    52. Copy semua kode script dalam Form2, lalu paste dalam script Form3. 53. Lalu seleksi semua baris script yang ada dalam Form3, lakukan operasi find and

    replace dengan cara Edit Replace ( atau press Ctrl + H ).

    lalu Replace All.

    54. Berturut turut, replace jenis menjadi alamat, hargasatuan menjadi NPWP, dan satuan menjadi telp.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    42

    55. Satu persatu sub prosedur kita teliti, koreksi atau buang yang tidak tepat / relevan digunakan dalam form ini.

    Private Sub NPWP_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If NPWP "" Then btnSimpan.SetFocus End If If (KeyAscii >= vbKey0 And KeyAscii

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    43

    63. Ubah nama input TextBox(Alamat) menjadi Kepala dan input TextBox(Telp) menjadi NIP

    64. Referensi Record atau RecordSource dari Adodc(DataRekanan) yang tadinya merujuk pada tabel DataRekanan kita set ulang merujuk pada tabel DataUnitKerja. Lalu rename nama Adodc tersebut menjadi DataUnitKerja.

    65. Ubah properti object TDBGrid1 pada DataSource yang tadinya mereferensi pada DataRekanan menjadi DataUnitKerja

    66. Copy semua script code yang ada pada Form3, paste dalam script code Form4. 67. Buang baris perintah atau prosedur yang berhubungan dengan field NPWP. Antara

    lain : Buang baris yang mengandung text NPWP pada sub prosedur Form_Load () Buang sub prosedur NPWP_GotFocus(), NPWP_LostFocus(), dan

    NPWP_KeyPress ( KeyAscii As Integer ) Pada sub prosedur telp_KeyPress(KeyAscii As Integer) ganti NPWP menjadi

    btnSimpan. Buang baris yang berisi text NPWP pada Sub SimpanData() Buang baris yang berisi text NPWP pada Sub Prosedur btnTambah_Click() Hapus text Or NPWP = "" pada Sub Prosedur btnSimpan_Click()

    68. Seleksi semua ( Ctrl + A ) script code Form4, lalu Edit Replace ( Ctrl + H ) text sebagai berikut : Rekanan replace menjadi UnitKerja Alamat menjadi Kepala Telp replace menjadi NIP

    Hasil dari langkah langkah tersebut di atas adalah tampilan Form sebagai berikut :

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    44

    Form5( DataPengelola.frm) Ulangi langkah dalam pembuatan Form4 di atas untuk membuat Form5(DataPengelola). 69. Copy dan paste semua object dalam Form4 ke dalam Form5. 70. Caption dari object label - label berikut ganti menjadi :

    Data Unit Pengguna menjadi Data Pengelola Barang Nama Pengguna kita ganti dengan Nama Pengelola Kepala Unit ganti dengan Jabatan

    71. Ubah nama input TextBox(Kepala) menjadi Jabatan 72. Referensi Record atau RecordSource dari Adodc(DataUnitKerja) yang tadinya

    merujuk pada tabel DataUnitKerja kita set ulang merujuk pada tabel DataPengelola. Lalu rename nama Adodc tersebut menjadi DataPengelola.

    73. Ubah properti object TDBGrid1 pada DataSource yang tadinya mereferensi pada DataUnitKerja menjadi DataPengelola. Sesuaikan Caption kolom kolomnya.

    74. Copy semua script code yang ada pada Form4, paste dalam script code Form5. 75. Seleksi semua ( Ctrl + A ) script code Form4, lalu Edit Replace ( Ctrl + H ) text

    sebagai berikut : UnitKerja replace menjadi Pengelola Kepala menjadi Jabatan

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    45

    Hasil dari langkah langkah tersebut di atas adalah tampilan Form sebagai berikut :

    Running Project Cobalah anda jalankan script yang telah dibuat tadi. Masukkan data data Barang Persediaan, Rekanan, Pengelola, dan Unit Kerja. Contoh : Data Barang Nama JenisBarang Satuan HargaSatuan Buku Folio Alat Tulis Kantor Buah 7500 Kertas HVS A4 Alat Tulis Kantor Rim 25000 Stetoskop Alat Kesehatan Buah 75000 Spuit 5 CC Alat Kesehatan Buah 9000 Sprey Linen / Kain Buah 25000 Gordyn Linen / Kain Buah 22500 Bolp Lamp 5 W Alat Elektronika Buah 3500 Stand Fan Alat Elektronika Unit 350000 Karcis Pendaftaran Barang Cetakan Pak 35000 Form CM 02 Barang Cetakan Pak 22500 Sapu Ijuk Alat RT / Kebersihan Buah 5500 Sendok Makan Alat RT / Kebersihan Dsn 11250

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    46

    Almari Pakaian Inventaris Buah 650000 Meja 1 Biro Inventaris Buah 850000

    Data Rekanan Nama Alamat Telp NPWP PT Maju Mundur Jakarta 021 1111111 123.456.789 PT Angin Ribut Purwokerto 0281 222222 234.567.890 PT Morat Marit Semarang 024 3333333 345.678.901

    Data Unit Kerja Nama Kepala NIP Bidang Pelayanan Dr. John, Sp.A 140 111 111 Instalasi Gawat Darurat Dr. Smith 140 222 222 Instalasi Rawat Inap Ns. Jean, S.Kep 140 333 333

    Data Pengelola Nama Jabatan NIP Mr. Brown Kepala Gudang 500 111 222 Mr. White Staff 500 222 333 Mrs. Green Staff 140 444 444

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    55

    TTuuttoorriiaall VViissuuaall BBaassiicc 66..00 MMaammbbaa PPrrooggrraamm LLooggiissttiikk BBaarraanngg (( IInnvveennttoorryy SSyysstteemm )) Imam Budi Kustanto sim_rusak@yahoo. com TTUUTTOORRIIAALL 22 FFOORRMM && SSCCRRIIPPTT CCOODDEE (( 0033 )) Form7( DataPenerimaan.frm) 75. Object & Form LayOut

    Lisensi Dokumen: Copyright 2003 - 2006 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    56

    76. Klik kanan pada area kosong Object Toolbox, pilih Component, tambahkan pada tab Control komponen : Microsoft Windows Common Control 2 6.0 (SP6), sehingga dalam area object toolbox akan muncul object DTPPicker Object dan Properties Object pada Form7 :

    Object Properti Object Adodc Name = mstBuktiTerima

    Caption = Bukti Terima CommandType = 2 adCmdTable ConnectionStrg = DSN=DB_Loghis RecordSource = mstBuktiTerima

    Adodc Name = mstDasarTerima Caption = Dasar Terima CommandType = 2 adCmdTable ConnectionStrg = DSN=DB_Loghis RecordSource = mstDasarTerima

    Adodc Name = DataDistribusi Caption = Data Distribusi CommandType = 1 adCmdText ConnectionStrg = DSN=DB_Loghis RecordSource = select * from DataDistribusi where

    KodeDistribusi = 'T' Adodc Name = DataBarang

    Caption = Data Barang CommandType = 1 adCmdText ConnectionStrg = DSN=DB_Loghis RecordSource = select * from DataBarang

    Adodc Name = DataRekanan Caption = Data Rekanan CommandType = 1 adCmdText ConnectionStrg = DSN=DB_Loghis RecordSource = select * from DataRekanan

    Adodc Name = DataPengelola Caption = Data Pengelola CommandType = 1 adCmdText ConnectionStrg = DSN=DB_Loghis RecordSource = select * from DataPengelola

    Adodc Name = DataBarang1 Caption = Data Barang 1 CommandType = 2 adCmdTable ConnectionStrg = DSN=DB_Loghis RecordSource = DataBarang

    Adodc Name = DataRekanan1 Caption = Data Rekanan 1 CommandType = 2 adCmdTable ConnectionStrg = DSN=DB_Loghis

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    57

    RecordSource = DataRekanan Adodc Name = DataPengelola1

    Caption = Data Pengelola1 CommandType = 2 adCmdTable ConnectionStrg = DSN=DB_Loghis RecordSource = DataPengelola

    Label ( 1 s/d 16 )

    Caption = lihat form layout AutoSize = True BackStyle = Transparant Font = ( anda atur sendiri ) ForeColor = ( anda atur sendiri )

    DTPicker Name = tanggal Format = 1 dtpShortDate Font =

    TextBox Name = idRekanan Lainnya lihat properti TextBox di atas

    DataCombo Name = AsalRekanan RowSource = DataRekanan1 ListField = Nama MouseIcon = Harrow.cur MousePointer = 99-Custom Style = 2-Dropdown List TabStop = False BackColor = &H8000000F&

    DataCombo Name = PenerimaBarang RowSource = DataPengelola1 ListField = Nama Lainnya lihat properti DataCombo di atas

    DataCombo Name = BuktiTerima RowSource = mstBuktiTerima ListField = Nama Lainnya lihat properti DataCombo di atas

    TextBox Name = NoBuktiTerima DataCombo Name = DasarTerima

    RowSource = mstDasarTerima ListField = Nama Lainnya lihat properti DataCombo di atas

    TextBox Name = NoDasarTerima TextBox Name = idBarang DataCombo Name = NamaBarang

    RowSource = DataBarang1 ListField = Nama Style = 0-Dropdown Combo Lainnya lihat properti DataCombo di atas

    TextBox Name = JenisBarang TextBox Name = HargaSatuan

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    58

    TextBox Name = Satuan TextBox Name = JumlahTerima TextBox Name = TotalHarga TextBox Name = StockAwal TextBox Name = StockAkhir CmdButton Name = btnTambah

    Caption = &Tambah TabIndex = 0 MouseIcon = Harrow.cur MousePointer = 99-Custom TabStop = False

    CmdButton Name = btnSimpan Caption = &Simpan TabIndex = 1 Lainnya lihat properti CmdButton di atas

    CmdButton Name = btnRefresh Caption = &Refresh TabIndex = 3 Lainnya lihat properti DataCombo di atas

    CmdButton Name = btnSelesai Caption = S&elesai TabIndex = 4 Lainnya lihat properti DataCombo di atas

    TDBGrid Name = TabelBarang AllowAddNew = False AllowArrow = True AllowUpdate = False AllowDelete = False DataSource = DataBarang

    TDBGrid Name = TabelDistribusi AllowAddNew = False AllowArrow = True AllowUpdate = False AllowDelete = False DataSource = Data Penerimaan Barang

    77. Atur kolom kolom yang ada dalam TDBGrid(TabelBarang) merujuk pada field

    field dalam tabel DataBarang. Demikian pula pada TDBGrid(TabelDistribusi) merujuk pada tabel DataDistribusi.

    78. Apabila form di-loading maka data data yang berhubungan dengan penerimaan barang kita refresh.

    ---------------------------------------------------------------------------------------------- Private Sub Form_Load() DataBarang.Refresh DataRekanan.Refresh DataPengelola.Refresh

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    59

    DataDistribusi.Refresh Tanggal=Now() isian tanggal adalah tanggal sekarang End Sub ----------------------------------------------------------------------------------------------

    79. Apabila form ditutup ( klik pada btnSelesai ) maka Form1 ditampilkan, Form7 di-unload dan disembunyikan.

    ---------------------------------------------------------------------------------------------- Private Sub BtnSelesai_Click() Form1.Show Form1(MenuUtama.frm) ditampilkan Form1.Enabled=True menjadikan Form1 enable Unload Me Unload Form7 Me.Hide Form7 tidak tampil di layar End Sub ----------------------------------------------------------------------------------------------

    80. Script code untuk btnTambah. Klik ganda btnTambah, pada area kode tambahkan : ---------------------------------------------------------------------------------------------- Private Sub btnTambah_Click() DataDistribusi.Refresh tabel distribusi di refresh DataDistribusi.Recordset.AddNew tambah 1 record baru PenerimaBarang.SetFocus cursor aktif pada PenerimaBarang End Sub ----------------------------------------------------------------------------------------------

    81. Script code object PenerimaBarang Private Sub PenerimaBarang_GotFocus() event terseleksi DataPengelola.Refresh tabel DataPengelola di refresh PenerimaBarang.BackColor = vbWhite warna dasar jadi putih idPengelola.BackColor = vbWhite NamaBarang = kolom isian namaBarang dikosongkan End Sub Private Sub PenerimaBarang_LostFocus()event lepas seleksi PenerimaBarang.BackColor = vbButtonFace warna jadi gelap idPengelola.BackColor = vbButtonFace End Sub Private Sub PenerimaBarang_KeyPress(KeyAscii As Integer) event penekanan tuts keyboard If KeyAscii = 13 Then bila keyboard ditekan adalah Enter If PenerimaBarang "" Then asalrekanan.SetFocus bila isian kolom tidak kosong, cursor berpindah pada input asalrekanan End If End Sub Private Sub PenerimaBarang_Change() even perubahan isian Dim caripenerima As String deklarasi variabel caripenerima caripenerima = PenerimaBarang.Text yaitu isi PenerimaBarang cariID = " select * from DataPengelola where Nama like '" & caripenerima & "' " mencari dalam DataPengelola pada field nama yang seperti text pada PenerimaBarang

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    60

    DataPengelola.RecordSource = cariID DataPengelola.Refresh idPengelola = DataPengelola.Recordset!idPengelola End Sub

    82. Script code object AsalRekanan prinsip sama dengan PenerimaBarang. Private Sub AsalRekanan_GotFocus() asalrekanan.BackColor = vbWhite idrekanan.BackColor = vbWhite End Sub Private Sub AsalRekanan_LostFocus() asalrekanan.BackColor = vbButtonFace idrekanan.BackColor = vbButtonFace End Sub Private Sub AsalRekanan_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If asalrekanan "" Then BuktiTerima.SetFocus End If End Sub Private Sub asalrekanan_Change() Dim carirekanan As String carirekanan = asalrekanan.Text cariID = " select * from DataRekanan where Nama like '" & carirekanan & "' " DataRekanan.RecordSource = cariID DataRekanan.Refresh idrekanan = DataRekanan.Recordset!idrekanan End Sub

    83. Dari input BuktiTerima sampai NoDasarTerima hanya ada aturan perubahan warna dasar saja ketika terseleksi dan tidak. Apabila terseleksi ( GotFocus ) maka BackColor menjadi putih, dan sebaliknya ( LostFocus ) maka akan menjadi gelap. Kemudian apabila ada aktivitas penekanan keyboard Enter maka cursor akan berpindah pada input di bawahnya. Contoh :

    Private Sub BuktiTerima_GotFocus() BuktiTerima.BackColor = vbWhite End Sub Private Sub BuktiTerima_LostFocus() BuktiTerima.BackColor = vbButtonFace End Sub Private Sub BuktiTerima_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If BuktiTerima "" Then NoBuktiTerima.SetFocus End If End Sub

    Dan seterusnya sampai NoDasarTerima 84. Selain warna dasar NamaBarang yang akan menjadi putih bila ia mendapatkan

    fokus, IDBarang juga akan mengikuti. Private Sub NamaBarang_GotFocus() NamaBarang = ""

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    61

    NamaBarang.BackColor = vbWhite idBarang.BackColor = vbWhite End Sub

    85. Apabila isian text pada NamaBarang berubah, maka akan dilakukan pencarian nama barang dalam database sesuai karakter yang di ketikkan padanya.

    Private Sub NamaBarang_Change() If NamaBarang = "" Then idBarang = "" Else Dim caribarang As String caribarang = "%" & NamaBarang.Text & "%" cariID = " select * from Databarang where Nama like '" & caribarang & "' " DataBarang.RecordSource = cariID DataBarang.Refresh End If End Sub

    86. Setelah dilakukan pencarian yang dikarenakan perubahan isi dari kolom input ini, apabila fokus terlepas darinya maka :

    Private Sub NamaBarang_LostFocus() On Error GoTo TdkAdaBarang NamaBarang.BackColor = vbButtonFace warna dasar jadi gelap idBarang.BackColor = vbButtonFace s.d.a NamaBarang = DataBarang.Recordset!nama hasil pencarian pada tabel database akan dimasukan dalam kolom isian NamaBarang idBarang = DataBarang.Recordset!idBarang kolom IDBarang mengikuti Satuan = DataBarang.Recordset!Satuan satuan, jenis juga iya HargaSatuan = DataBarang.Recordset!HargaSatuan JenisBarang = DataBarang.Recordset!jenis stockawal = DataBarang.Recordset!jmlpersediaan jml persediaan akan menjadi stock awal JumlahTerima.SetFocus Exit Sub TdkAdaBarang: Pesan=MsgBox ("Nama barang yang anda masukkan tidak terdaftar dalam database", VBOKOnly + 64, Data Tidak Ada) NamaBarang = "" NamaBarang.SetFocus End Sub

    Apabila prosedur pencarian yang kita tetapkan mengakibatkan error pada program, mudahnya kita katakan saja bahwa data yang dicari tidak ada. Apabila itu terjadi maka proses akan diarahkan menuju deklarasi TdkAdaBarang yang berisi pesan barang tidak ditemukan.

    87. Demikian juga halnya bila ada penekanan keyboard Enter dalam kolom isian ini. Scriptnya hampir sama dengan atas.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    62

    Private Sub NamaBarang_KeyPress(KeyAscii As Integer) On Error Resume Next If KeyAscii = 13 Then If NamaBarang "" Then NamaBarang = DataBarang.Recordset!nama idBarang = DataBarang.Recordset!idBarang Satuan = DataBarang.Recordset!Satuan HargaSatuan = DataBarang.Recordset!HargaSatuan JenisBarang = DataBarang.Recordset!jenis stockawal = DataBarang.Recordset!jmlpersediaan JumlahTerima.SetFocus End If End If End Sub

    88. Isian kolom NamaBarang yang kosong akan berakibat IDBarang menjadi kosong. Dan IDBarang kosong akan berpengaruh pula pada satuan, jenis, harga satuan dan stockawal.

    Private Sub idBarang_Change() If idBarang = "" Then Satuan = "" HargaSatuan = "" JenisBarang = "" stockawal = "" End If End Sub

    89. Selanjutnya bila JumlahTerima berubah, maka bila HargaSatuan dan JumlahTerima tidak sama dengan kosong, pada kolom NilaiTerima akan terjadi operasi hitung perkalian. Sedangkan pada StockAckhir ada operasi hitung penjumlahan.

    Private Sub JumlahTerima_Change() If HargaSatuan "" And JumlahTerima "" And stockawal "" Then Dim Variabel1 As Double Dim VAriabel2 As Double Dim VAriabel3 As Double Variabel1 = HargaSatuan.Text VAriabel2 = JumlahTerima.Text VAriabel3 = stockawal.Text NilaiTerima = Variabel1 * VAriabel2 stockakhir = VAriabel2 + VAriabel3 Else NilaiTerima = 0 stockakhir = stockawal End If End Sub

    90. Apabila semua data dianggap telah terisi, maka logikanya data data isian tersebut akan dimasukan dalam database sesuai dengan fieldnya masing masing. Untuk mudahnya kita jadikan sub dengan nama Simpan.

    Sub simpan() DataDistribusi.Recordset!tanggal = tanggal

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    63

    DataDistribusi.Recordset!idPengelola = idPengelola DataDistribusi.Recordset!idrekanan = idrekanan DataDistribusi.Recordset!BuktiTerima = BuktiTerima DataDistribusi.Recordset!NoBuktiTerima = NoBuktiTerima DataDistribusi.Recordset!DasarTerima = DasarTerima DataDistribusi.Recordset!NoDasarTerima = NoDasarTerima DataDistribusi.Recordset!idBarang = idBarang DataDistribusi.Recordset!JumlahBarang = JumlahTerima DataDistribusi.Recordset!nilairupiah = NilaiTerima DataDistribusi.Recordset!kodedistribusi = "T" DataDistribusi.Recordset.Update DataBarang.Recordset!jmlpersediaan = stockakhir DataBarang.Recordset.Update DataDistribusi.Refresh DataDistribusi.Recordset.MoveLast End Sub

    91. Klik mouse pada btnSimpan akan memanggil sub tersebut di atas setelah melalui validasi dan persyaratan tertentu : Bila belum terdapat record sama sekali dalam tabel database atau BOF = True,

    maka record baru kita tambahkan. If DataBarang.Recordset.BOF = True Then DataBarang. Recordset.AddNew

    Bila salah satu kolom isian masih ada yang kosong maka dikonfirmasikan ( text messege ) untuk melengkapi dulu. If idPengelola = "" Or idrekanan = "" Or idBarang = "" Or BuktiTerima = "" Or NoBuktiTerima = "" Or DasarTerima = "" Or NoDasarTerima = "" Or JumlahTerima = "" Then Pesan = MsgBox("Periksa kembali data isian anda. Lengkapi yang masih kosong", vbOKOnly + 64, "Data Tidak Lengkap")

    Apabila record telah terisi data ( terindikasi dengan sudah terisinya field

    IDDistribusi ) maka pesan perintah untuk klik btnTambah dahulu. If DataDistribusi.Recordset!IDDistribusi "" Then Pesan = MsgBox("Record sudah terisi data. Klik tombol Tambah untuk membuat record baru ! ", vbOKOnly + 64, "Record Terisi")

    Apabila tidak terdapat kondisi sebagaimana tersebut di atas, berarti operasi simpan data dapat dilakukan yaitu dengan cara memanggil sub Simpan Else Call simpan

    92. Perubahan pada kolom isian StockAwal akan menyebabkan adanya operasi hitung pada StockAkhir

    Private Sub stockawal_Change() If stockawal "" And JumlahTerima "" Then Dim VAriabel2 As Double Dim VAriabel3 As Double VAriabel2 = JumlahTerima VAriabel3 = stockawal stockakhir = VAriabel2 + VAriabel3

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    64

    Else stockakhir = "" End If End Sub

    93. Demikian juga perubahan isian pada kolom HargaSatuan aka menyebabkan operasi hitung perkalian pada kolom NilaiTerima

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    65

    Form8( DataPengeluaran.frm) 94. Pada prinsipnya, logika pengeluaran barang adalah sama dengan logika penerimaan

    barang. Oleh karena itu, copy semua object pada Form7(DataPenerimaan), paste-kan ke dalam Form8(DataPengeluaran) Beberapa object dan propertiesnya yang perlu diganti adalah : a. Pada object Label, hanya merubah properti Caption-nya saja. Misal Data

    Penerimaan di ganti Data Pengeluaran, atau Bukti Terima di ganti Bukti Keluar, dan seterusnya.

    b. Semua nama object yang mengandung kata Terima diganti menjadi Keluar. Misalnya mstBuktiTerima menjadi mstBuktiKeluar, NilaiTerima menjadi NilaiKeluar, dan seterusnya.

    c. Untuk object Adodc maka SourceData-nya juga mengikuti baik yang ComandType-nya Text maupun Table.

    d. Perubahan nama Adodc mstBuktiTerima dan mstDasarTerima harus diikuti dengan perubahan properti RowSource dari object DataCombo(mstBuktiKeluar) dan DataCombo(mstDasarKeluar).

    e. Pada pengeluaran barang, data rekanan tidak dibutuhkan. Yang dibutuhkan adalah data unit kerja. Oleh karenanya DataRekanan diganti DataUnitKerja. Demikian pula DataCombo(AsalRekanan) di ganti menjadi DataCombo(UnitKerja)

    95. Setelah semua object pada Form8 disesuaiakan untuk menginput data pengeluaran,

    sekarang copy dan paste semua script Form7 dalam script Form8. Mengikuti perubahan nama objectnya, script juga perlu dirubah. Caranya seleksi semua script yang ada ( press Ctrl + A ) lalu Ctrl + H untuk memanggil dialog Find and Replace. Jangan lupa aktifkan ( beri tanda cek ) pada check box Match Case

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    66

    a. Find What : Terima , Replace With : Keluar b. Find What : AsalRekanan , Replace With : UnitKerja c. Find What : Rekanan, Replace With : UnitKerja d. Find What : T , Replace With : K e. Find What : stockakhir = Variabel2 + Variabel3, Replace With : stockakhir =

    Variabel3 - Variabel2 96. Apabila anda ingin merubah tampilan Form ini agar berbeda dengan penampilan

    Form Penerimaan Barang, lakukan dengan merubah form layoutnya. Baik itu penempatan object maupun latar belakang form ( picture ) saja.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    76

    TTuuttoorriiaall VViissuuaall BBaassiicc 66..00 MMaammbbaa PPrrooggrraamm LLooggiissttiikk BBaarraanngg (( IInnvveennttoorryy SSyysstteemm )) Imam Budi Kustanto sim_rusak@yahoo. com TTUUTTOORRIIAALL 33 RREEPPOORRTT DDEESSIIGGNN Untuk memudahkan penanganan report, dalam tabel database buat 2 buah query masing masing untuk data penerimaan dan pengeluaran. 97. Buka file database DB_Loghis.mdb, pada tab Object, pilih Queries, lalu double klik

    Create query by using wizard.

    98. Dalam task Simple Query Wizard, pada field Tables/Queries pilih

    Tabel:DataBarang, lalu masukkan field Nama, Satuan, Jenis dan HargaSatuan yang ada dalam kolom Available Field. ( lihat gambar di bawah ini )

    Lisensi Dokumen: Copyright 2003 - 2006 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    77

    Lakukan juga tersebut untuk Table:DataDistribusi atas field Tanggal, JumlahBarang, KodeDistribusi dan NilaiRupiah.

    Klik Next, dalam kolom isian title pada task berikutnya, isi dengan nama CetakPenerimaan, lalu klik Finish.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    78

    99. Simpan query tersebut dengan nama CetakPenerimaan. Lalu masuk dalam mode design view ( View Design View )

    Dalam baris Criteria pada field KodeDistribusi, isikan T . Sehingga data yang tampil dalam query tersebut hanya data penerimaan saja yang berkode T.

    100. Simpan dengan nama lain ( press F12 ) yaitu CetakPengeluaran. Pada KodeDistribusi criteria yang tadinya T gantilah dengan K.

    CrystalReport1(ReportPenerimaan.Dsr) & Form9(CetakPenerimaan.frm) 101. Pastikan tool Seagate Criystal Report 8.5 telah terinstall dalam PC anda. Klik kanan

    pada area Project Explorer, pilih Add diikuti klik Crystal Reports 8.5, akan muncul task pane seperti gambar berikut :

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    79

    lalu klik OK 102. Klik Project

    103. Pada kolom ODBC pilih atau ketik nama ODBC-nya yaitu DB_Loghis diikuti OK

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    80

    104. Dalam list Object, pilih query data penerimaan

    105. Ketika dalam task Standar Report Expert, pada tab Data, dalam kolom Tables

    telah muncul ado, klik Next. 106. Pada tab Field masukan Tanggal, Nama, Jenis, HargaSatuan, JumlahBarang,

    Satuan, dan NilaiRupiah. Setelah itu Finish.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    81

    107. Dalam Project Explorer akan terlihat 1 buah form baru dengan nama Form9.frm, dan

    1 buah report dengan nama Crystal Report1.dsr. Klik Save Project, simpan report dengan nama ReportPenerimaan dalam C:/Loghis/Report dan Form9 dengan nama CetakPenerimaan dalam sub folder Form.

    108. Double klik CrystalReport1, dalam mode View, klik kanan area kosong pada section Report Header Designer Printer Setup. Langkah ini untuk mengatur format halaman report. ( penulis menggunakan printer HP DeskJet 3535 )

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    82

    Contoh format halaman yang kita pakai adalah Kertas Ukuran A4 Landscape.

    109. Masih dalam area tersebut di atas tadi, klik kanan dan pilih Format Section .. . Langkah ini untuk mengaktifkan bagian bagian ( section ) dari halaman report yang belum aktif ( ditandai dengan arsiran pada section )

    Pada gambar di atas menunjukan bahwa section Report Header belum aktif. Untuk mengaktifkannya kosongi check box Suppress (No Drill-Down). Lakukan juga untuk section yang belum aktif lainnya.

    Pembagian section : 110. Report Header adalah section tempat kita menaruh header dari laporan kita.

    Biasanya berupa kop atau identitas organisasi / instansi / kantor. Caranya: dalam area

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    83

    ToolBox, pada tab CrystalReport pilih dan klik TextObject. Lalu klik mouse pada section ini. Anda buat contoh kop instansi sesuai yang anda inginkan. Pengaturannya sama seperti mengatur text box pada Ms. Word ( kebangeten kalo gak bisa, Brur!! ) yaitu lewat klik kanan mouse pada text box tersebut.

    111. Page Header adalah section tempat kita menaruh header dari tiap tiap halaman laporan kita. Biasanya berupa header dari kolom kolom dalam tabel laporan dan atau judul / titel dari laporan itu. DATA PENERIMAAN BARANG Tanggal : Lalu aturlah lay out header kolom tabel data menyesuaikan kebutuhan dan luas area. Anda dapat memasukan object Line Object untuk membatasi batas atas dan bawah titel / header tabel data ini. Tanggal Nama Barang Jenis Barang Harga Satuan Jumlah Terima Satuan Total Harga

    112. Details adalah section untuk menempatkan data atau isi tabel. Sama seperti di atas, aturlah menyesuaikan area yang ada baik dari jenis huruf atau text alignnya menyesuaikan header tabel yang ada pada section Page Header

    113. Kebalikan dari Report Header adalah Report Footer. Section ini tampil dalam halaman laporan sebagai footer dari laporan. Biasanya berisi pejabat / orang yang berkompeten menandatangani laporan.

    114. Sedangkan kebalikan dari Page Header adalah Page Footer. Section ini tampil pada setiap halaman laporan pada bagian bawah. Biasanya berupa nomor halaman.

    Contoh tampilan laporan ketika dijalankan

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    84

    115. Save dan Close CrystalReport1, Langkah selanjutnya adalah mengatur tampilan halaman output dari CrystalReport1 yaitu Form9(CetakPenerimaan.frm). Atur properties formnya sebagai berikut : Caption = Cetak Data Penerimaan StartUpPosition =2-CenterScreen ScaleMode =3-Pixel Lalu atur secara manual ( klik dan drag dengan mouse ) luas area form hingga : ScaleHeight = menunjuk pada angka 600 ScaleWidth = menunjuk pada angka 800

    116. Double klik form9, lalu tambahkan script untuk sub prosedur form_unload sebagai berikut :

    ---------------------------------------------------------------------------------------------- Private Sub Form_Unload(Cancel As Integer) Form1.Show Form1(MenuUtama.frm) ditampilkan Form1.Enabled=true menjadikan Form1 enable Unload me Unload me ( Form9 ) Me.hide Form9 tidak tampil di layar End Sub ----------------------------------------------------------------------------------------------

    117. Defaultnya, Form ini hanya berisi object CRViewer saja. Klik object tersebut, lalu atur propertiesnya sebagai berikut : DisplayGroupTree = False DisplayTabs = False EnabledExportButton = True EnabledGroupTree = False EnabledRefreshButton = True

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    85

    CrystalReport2(ReportPengeluaran.Dsr) & Form9(CetakPengeluaran.frm) 118. Cobalah anda buat sendiri keduanya. Langkah langkah untuk membuat

    CrystalReport2(ReportPengeluaran.Dsr) dan Form10(CetakPengeluaran.frm) adalah identik atau sama dengan membuat ReportPengeluaran dan CetakPenerimaan sebagaimana di atas tadi. Source data yang digunakan adalah query CetakPengeluaran.

    CrystalReport3(ReportPersediaan.Dsr) & Form9(CetakPersediaan.frm) 119. Sama seperti langkah ke 118, buatlah CristalReport3 dan Form11 untuk data data

    persediaan barang. Source datanya adalah DataBarang. 120. Dan sebagai penutup dari langkah langkah di atas adalah meng-compile ( bahasa

    Indonesianya Compile apa ya ?? ) project yang telah anda buat ini. Sebelumnya simpan project terlebih dahulu ( Save Project ). Lalu File Make Loghis.Exe.. dan tempatkan file compile tersebut dalam folder C:/Loghis. Setelah proses compile selesai, keluarlah dari Ms. ViBas 6.0 yang menandakan 90% pekerjaan anda telah terselesaikan. Langkah selanjutnya adalah membuat file setup-nya ( Packaging )

    Catatan penulis : Bila perlu, anda cari artikel yang membahas secara tersendiri tentang soft Crystal Report 8.5 ini. Atau kalau masih ada kesempatan, penulis juga akan mencoba membahasnya lebih terperinci lagi. Karena pada dasarnya soft Seagate Crystal Report 8.5 ini fungsinya tidak sebatas pada apa yang telah dikerjakan tadi.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    85

    TTuuttoorriiaall VViissuuaall BBaassiicc 66..00 MMeemmbbuuaatt PPrrooggrraamm LLooggiissttiikk BBaarraanngg (( IInnvveennttoorryy SSyysstteemm )) Imam Budi Kustanto sim_rusak@yahoo. com TTUUTTOORRIIAALL 44 PPAACCKKAAGGIINNGG PPRROOJJEECCTT Untuk membuat file setup dari project ini sangatlah mudah. Anda tinggal mengikuti ( Next dan OK saja ) wizard yang anda panggil dari : Start Microsoft Visual Basic 6.0 Microsoft Visual Basic 6.0 Tools Package & Deployment Wizard.

    Pada bagian ini anda menentukan lokasi dan nama project yang telah dibuat tadi, yaitu ( klik Browse ) pada folder C:/Loghis/Loghis.vbp

    Lisensi Dokumen: Copyright 2003 - 2006 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    86

    Lalu komputer akan memproses perintah tersebut.

    klik Next atau Enter saja.

    Defaultnya, komputer akan menempatkan file setup tersebut sub folder Package dalam folder yang sama dengan lokasi file project-nya. Klik Next

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    87

    Hanya pernyataan bahwa sub folder Package belum ada. Klik Yes untuk membuatnya.

    klik OK saja, komputer akan mencarinya pada step selanjutnya.

    Bila kita tidak akan menambahkan file lainnya, klik Next

    Pilih Single cabs bila ingin file setup ( *.cab ) menjadi satu, atau Multiple cabs bila ingin di-split dalam ukuran tertentu. Klik Next.

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    88

    adalah isian judul / title dari proses instalasi program. Next aja lagi.

    adalah penempatan lokasi / shortcut dari file project yang ter-compile

    gue juga bingung apa maksudnya. Next aja lagi ahh!!!

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    89

    nih juga iya. Gak usah dibaca. Next teruuus!!

    Nah kalo yang ini lah gue super tahu. Itu artinya proses telah selesai. Lalu.. FINISH, Man!

  • Komunitas eLearning IlmuKomputer.Com Copyright 2003-2006 IlmuKomputer.Com

    90

    Penutup Ternyata untuk membuat sebuah program aplikasi berbasis Visual Basic tidaklah sesulit yang kita bayangkan semula. Meskipun sedikit yang bisa kita mengerti tentangnya bukan berarti bahwa itu tidak bisa digunakan untuk membuat program yang jadi. Namun, hal tersebut jug