Membuat Tampilan Mengatur Properties Membuat Database Membuat Kode Program Membuat Laporan Dengan Crystal Report 8.5 Soal
Menu Input User Admin Menu Cetak Laporan Pendapatan Menu Kirim Pesan Menu Client Log Out Menu Log in Client Menu Isi Pesan
2. Aplikasi Billing Warnet Client. Terdiri dari 3 menu, yaitu : Menu Monitor Harga Client
Untuk penggunaan komponen pada aplikasi ini tidak ada yang berbeda pada aplikasi-aplikasi sebelumnya, hanya beda cara penggunaannya saja.
2. Setelah tampil form kosong, Anda tampilkan kotak dialog Components, dengan mengklik menu Project kemudian Pilih Components atau tekan tombol Ctrl + T pada keyboard.
3. Lalu pada kotak dialog Componets, Anda aktifkan beberapa tanda cek seperti Crystal Report Control, Microsoft ADO Data Control 6.0 (OLE DB), Microsoft DataGrid Control 6.0 (OLEDB), Microsoft DataList Control 6.0, Microsoft FlexGrid Control 6.0, Microsoft Tabbed Dialog Control 6.0, Microsoft Windows Common Control 6.0 (SP6), Microsoft Windows Common Control-2 6.0. 4. Kemudian Anda letakkan ke dalam form tiga Label, tiga TextBox, dua CommandButton, tiga Adodc, satu Timer, satu Image dan satu StatusBar , lalu Anda atur posisinya seperti Gambar 4.2
Gambar 4.4. Menggunakan MDI Form 2. Pada kotak dialog Add MDI Form, Anda pilih MDI Form kemudian klik tombol Open. Lihat Gambar 4.5
2. Klik Open
Gambar 4.5. Membuka MDI Form 3. Pastikan form MDI Form dalam keadaan aktif, lalu Anda klik menu Menu Editor , pada Toolbar. Kemudian kotak dialog Menu Editor akan tampil. Lihat Gambar 4.6
2. Kotak Dialog Menu Editor
Gambar 4.6. Membuka kotak dialog Menu Editor 4. Untuk membuat menu File dapat dilakukan dengan menuliskan &File di bagian caption, dan MnuF di bagian Name. lalu klik tombol Next. Lihat Gambar 4.7
Gambar 4.7. Membuat Menu FIle 5. Perhatikan Gambar 4.8. Untuk membuat sub menu Monitor Client di bagian menu Fie, klik tombol , lalu ketik Mo&nitor Client pada bagian caption, dan Mnumc pada bagian Name. Pilih CTRL+M pada bagian Shorcut. Klik tombol Next.
Gambar 4.8. Membuat sub Menu FIle 6. Untuk mempersingkat waktu Anda dapat melihat sub menu lainnya pada Gambar 4.9.
Perhatian : Untuk pembuatan nama pada baris kolom Name Menu Editor, Anda dapat membuat nama sesuai dengan keinginan Anda dan nama tidak boleh sama.
Gambar 4.9. Nama - nama Menu dan Sub Menu 7. Setelah selesai dengan pembuatan Menu Editor, Kemudian Anda tambahkan ke dalam lembar MDI Form beberapa komponen yaitu tiga Timer, dua Adodc, dan satu StatusBar. Letakkan seperti pada gambar di bawah ini. Lihat Gambar 4.10
Menu Editor Adodc1 s.d Adodc2
StatusBar1
2. Anda aktifkan form dialog yang baru ditambahkan, kemudian pada lembar form tersebut Anda hapus dua komponen CommandButton, yang telah menempel pada lembar form tersebut. Lalu tambahkan beberapa komponen seperti satu MSFlexGrid, satu label, dua Adodc, satu Image dan satu Timer, Anda aturlah posisinya seperti Gambar 4.13
MSFlexGrid1
CheckBox1
10
SSTab1
Gambar 4.17. Menambahkan komponen SSTab1 3. Kemudian pada komponen SSTab1 khususnya Tab 0 Anda letakkan beberapa komponen seperti empat Label, satu TextBox, satu DataCombo , satu Image, satu Adodc, satu DataGrid , dan satu Line. Kemudian aturlah posisinya seperti Gambar 4.18
DataGrid1
DataCombo1
Gambar 4.18. Meletakkan Komponen Ke Dalam SSTab Tab 0 4. Pada Tab 1, Anda letakkan beberapa komponen seperti dua Label, satu TextBox, satu Image, satu Adodc, satu DataGrid, satu Line. Kemudian aturlah posisinya seperti pada Gambar 4.19.
11
DataGrid1
f.
Menu Cetak Laporan Pendapatan ini berfungsi sebagai menu yang dapat mencetak laporan transaksi, berdasarkan tanggal dan keseluruhan transaksi yang tersimpan di dalam database dengan menggunakan Crystal Report 8.5.
2. Anda aktifkan form dialog yang baru ditambahkan, kemudian pada lembar form tersebut Anda hapus dua komponen CommandButton, Lalu tambahkan komponen seperti dua Frame, tiga OptionBox, dua DTPicker, dua Label, satu Image, dan satu Adodc. Kemudian aturlah posisinya seperti pada Gambar 4.21
12
DTPicker1
DTPicker2
Gambar 4.21. Mengatur posisi komponen 3. Masih pada area form Menu Cetak Laporan Pendapatan, kali ini Anda tambahkan lagi komponen seperti satu Frame , satu DTPicker, dan satu Crystal Report. Lalu aturlah posisinya seperti pada Gambar 4.22.
Crystal Report1
13
2. Anda aktifkan form dialog yang baru ditambahkan, kemudian pada lembar form tersebut Anda hapus dua komponen CommandButton, Lalu tambahkan komponen seperti dua Frame, satu DataCombo, satu Label, satu TextBox, tiga Image, satu Progressbar , dua Timer dan dua Adodc. Kemudian aturlah posisinya seperti pada Gambar 4.24
DataCombo1 TextBox1
Image2 Image1
14
Shape3
15
3. Sebelum menambahkan komponen pada form yang masih kosong File OCX dengan nama LVbuttons.ocx pada CD Sertaan buku ini. 4. 5. Anda aktifkan kembali program visual basic Anda, kemudian Anda klik menu Project > Components atau tekan Ctrl + T. 6. Pada kotak dialog Components, Anda klik tombol Browse...
7. Kemudian pada kotak dialog Add ActiveX Control, ocx yang sudah anda copy. Kemudian pilih dan klik tombol Open. Lihat Gambar 4.29
16
8. Lalu pada kotak dialog Components, Aktifkan tanda cek pada komponen LVbuttons, lalu klik tombol Ok. Lihat Gambar 4.30.
Gambar 4.30. Membuka File Ocx LVbuttons.ocx 9. Kemudian dalam Toolbar General, akan bertambah komponen baru dengan nama LaVolpeButton . Lihat Gambar 4.31.
LaVolpeButton
Gambar 4.31. Komponen LaVolpeButton 10. Anda buka lagi kotak dialog Componets, Anda aktifkan beberapa tanda cek seperti Microsoft ADO Data Control 6.0 (OLE DB), Microsoft Windows Common Control 6.0 (SP6), Microsoft Winsock Control 6.0. 11. Pada form yang masih kosong Anda tambahkan beberapa komponen seperti satu TextBox, dua LaVolpeButton, satu PictureBox , empat Timer, satu Winsock , empat Adodc, satu StatusBar. Aturlah posisinya seperti pada Gambar 4.32.
17
2. Anda aktifkan form dialog yang baru ditambahkan, kemudian pada lembar form tersebut Anda hapus dua komponen CommandButton, Lalu tambahkan beberapa komponen seperti tiga Shape , dua belas Label, dua Image, lima Timer, satu Winsock, dan tiga Adodc. Aturlah posisinya seperti pada Gambar 4.34.
Shape1 Shape2
Shape3
18
2. Anda aktifkan form dialog yang baru ditambahkan, kemudian pada lembar form tersebut Anda hapus dua komponen CommandButton, Lalu tambahkan beberapa komponen seperti satu Frame, lima Label, satu TextBox, satu Timer, satu Winsock, satu Image dan satu Adodc. Aturlah posisinya seperti pada Gambar 4.36.
TexBox1
19
Nama Control
Form1
Properties
Nilai Pengaturan
Log_In Log In Maxi Warnet False 2670 3600 Id User Nama Password Id (Dikosongkan) Nama (Dikosongkan) Psw (Dikosongkan) CmdOk Ok CmdBtl Batal (Icon) True 100 Tahoma False False False
Name Caption ControlBox Height Width Label1 Caption Label2 Caption Label3 Caption TextBox1 Name Text TextBox2 Name Text TextBox3 Name Text CommandButton1 Name Caption CommandButton2 Name Caption Image1 Picture Stretch Timer1 Interval Statusbar1 Font Adodc1 Visible Adodc2 Visible Adodc3 Visible
Perhatian : Untuk pengaturan Properties pada seluruh komponen StatusBar1 Anda bisa lihat pada CD Video Tutorial sertaan buku ini. Untuk Komponen Adodc Anda bisa lihat pada pembuatan Database.
20
Nama Control
MDIForm
Properties
Name Caption Height Width Interval Interval Interval Font Visible Visible
Nilai Pengaturan
Menu_Utama Menu Bill Maxi Warnet 9480 11415 100 100 100 Tahoma False False
Nama Control
Dialog
Properties
Name Caption Height Width Caption Name BackColor FixedCols Height Width Picture Stretch Interval Font Visible Visible
Nilai Pengaturan
Monitor Monitor Client 6615 9690 Tutup GridMonitor &H00C0FFFF& 0 6015 8655 (Icon) True 5000 Tahoma False False
Label1 MSFlexGrid1
21
Nama Control
Dialog1
Properties
Name Caption Height Width Caption Caption Caption Caption Name Text Name Text Name Text Name Caption Picture Stretch Picture Stretch Visible
Nilai Pengaturan
User_Admin Input User Admin 2535 4425 Id User Nama User Password Ok Id (Dikosongkan) Nama (Dikosongkan) Psw (Dikosongkan) Clhtpsw Cek Password (Icon) True (Icon) True False
Label1 Label2 Label3 Label4 TextBox1 TextBox2 TextBox3 CheckBox1 Image1 Image2 Adodc1
Nama Control
Dialog2
Properties
Name Caption Height Width Caption Tab Caption
Nilai Pengaturan
Pengaturan Pengaturan 4350 6810 Input Harga 0 Input PC Vip
SSTab1
22
Label1 Label2 Label3 Label4 Label5 Label6 Image1 Image2 DataCombo1 TextBox1 TextBox2 Line1 Line2 Adodc1 Adodc2 DataGrid1 DataGrid2
Tab Tabs TabsPerRow Caption Caption Caption Caption Caption Caption Picture Stretch Picture Stretch Name BackColor RowSorces Name Text Name Text BorderWidth BorderWidth Visible Visible BackColor BorderStyle DataSources BackColor BorderStyle DataSources
1 2 3 Input Harga Type Pelanggan Harga Per Jam Ok Masukkan Nama PC Ok (Icon) True (Icon) True Ktg_Hrg &H00C0E0FF& Adodc1 Hrg_Jam (Dikosongkan) Nama_PC (Dikosongkan) 2 2 False False &H00FFFFC0& 0 - dbgNoBorder Adodc1 &H00FFFFC0& 0 - dbgNoBorder Adodc2
f.
Nilai properties komponen yang melekat pada form Menu Cetak Pendapatan secara keseluruhan, dapat Anda lihat pada Tabel 4.6. Tabel 4.6. Properties Menu Cetak Pendapatan
Nama Control
Dialog3
Properties
Name Caption Height Width Caption Name Caption
Nilai Pengaturan
Ctk_Pendapatan Cetak Pendapatan 2910 5745 Pilih Option Cetak FrmPeriode Pilih Tanggal Dari Dan Sampai
Frame1 Frame2
23
Untuk pengaturan Properties selengkapnya pada komponen CrystalReport1 dapat Anda lihat pada saat pembuatan laporan dengan Crystal Report 8.5
Nama Control
Dialog4
Properties
Name Caption Height Width Caption Caption Caption
Nilai Pengaturan
Pesan Kirim Pesan 4350 6810 Nama PC Client Isi Pesan Kirim
24
DataCombo1 TextBox1
Name RowSorces Name Appearance BorderStyle MultiLine ScrollBars Text Picture Stretch Left Picture Stretch Picture Stretch Interval Interval Appearance Max Visible Visible
Ktg_Hrg Adodc1 Isi_Pesan 0 - Flat 1 - Fixed Single True 2 - Vertikal (Dikosongkan) (Icon) True 2400 (Icon) True (Icon) True 100 900 0 - ccFlat 3500 False False
Nama Control
Dialog5
Properties
Name Caption Height Width Name Font Name Font Caption Font Caption Font Caption Font Caption Font
Nilai Pengaturan
Client_Log_Out Client Log PO 5220 3090 LblNmPc Tahoma LblNmPlgn Tahoma Jam Mulai System Jam Berhenti System Durasi System Harga System
: : : :
25
Nama Control
Form1
Properties
Name BorderStyle Caption ControlBox WindowsState Name Text Name ButtonType Caption ColorScheme Name ButtonType Caption ColorScheme Interval Interval Interval Interval Name AutoRedraw BorderStyle
Nilai Pengaturan
Login 0 - None (Dikosongkan) False 2 - Maximized TxtNama (Dikosongkan) CmdMulai 3 - Windows Xp Ok 2 - Costum CmdShutDown 3 - Windows Xp ShutDown 2 - Costum 100 1 250 15000 Winsock1 True 0 - None
TextBox LaVolpeButton1
LaVolpeButton2
26
Nama Control
Dialog
Properties
Name Caption Height Width Caption Font Caption Font Caption Font Caption Font Caption Font Caption Font Name Caption Font Name Caption Font Name Caption Font Name Caption Font Name Caption Font
Nilai Pengaturan
Monitor_Harga (Dikosongkan) 5655 2970 Stop Tahoma Kecilkan Tahoma Harga : System Durasi : System Pukul : System Mulai : System LblNmPlgn Nama User System LblNmPC (Dikosongkan) System LblMulai Waktu System LblWkt Waktu System Lbldurasi 00:00:00 System
Label1 Label2 Label3 Label4 Label5 Label6 Label7 Label8 Label9 Label10 Label11
Nama Control
Dialog1
Properties
Name Caption Height Width Caption Caption Caption Name Caption Name Caption Caption Name Appearance BorderStyle MultiLine ScrollBars Text Picture
Nilai Pengaturan
Isi_Pesan User Admin 5655 2970 Nama PC : Pelanggan : Ok Nplgn Nama Pelanggan Np Nama PC Isi Pesan Isi_Pesan 0 - Flat 1 - Fixed Single True 2 - Vertikal (Dikosongkan) (Icon)
Image1
28
Untuk nama - nama Tabel database yang diperlukan dapat Anda lihat pada Tabel 4.12 Tabel 4.12. Daftar nama tabel dan field - field
Nama Tabel
Client_Log_Out
Nama Field
Nama_PC Nama_Pelanggan Jam_Mulai Jam_Berhenti Durasi Total_Harga Tanggal Nama_PC Nama_Pelanggan Jam_Mulai Tanggal Type_Pelanggan Harga_Per_Jam Jumlah Tanggal Nama_PC Nama_Pelanggan Jam_Masuk Nama_PC Nama_Pelanggan Jam_Masuk Kategori_Pelanggan
Type
Text Text Text Single Text Double Text Text Text Text Text Text Single Integer Text Text Text Text Text Text Text Text
Ukuran
20 35 8 8 8 8 10 20 35 8 10 20 4 2 10 20 35 8 20 35 8 20
29
30
2. Kemudian kotak dialog ODBC Data Sources Administrator, akan tampil Anda klik tab System DSN, Pada Sistem Data Sources Anda pilih Xtreme Sample Database. Lalu klik tombol Add. Lihat Gambar 4.38
1. Klik Tab ini 3. Klik Tombol Add. 2. Pilih Ini
Gambar 4.38. Kotak dialog ODBC 3. Selanjutnya kotak dialog Create New DataSorces akan tampil. Anda pilih Microsoft Acces Driver [*.mdb], kemudian klik tombol Finish. Lihat Gambar 4.39.
Gambar 4.39. Kotak dialog Create New Data Source 4. Pada kotak dialog ODBC Microsoft Access Setup, Pada kolom Data Sources Name Anda ketik nama MaxiWarnet, Kemudian klik tombol Select. Lihat Gambar 4.40.
31
Klik Ini
Gambar 4.40. Kotak dialog ODBC Microsoft Access Setup 5. Pada kotak dialog Select Database, Anda cari database MaxiWarnet yang telah Anda simpan, kemudian klik tombol OK. Lihat Gambar 4.41
2. Pilih Database
1. Cari Lokasi
6. Anda akan kembali lagi pada kotak dialog ODBC Microsoft Access Setup, kali ini Anda langsung klik tombol OK. 7. Pada kotak dialog ODBC, Anda klik tombol OK. 8. Sampai disini Database MaxiWarnet sudah terkoneksi dengan ODBC.
32
1. Klik Kanan
Gambar 4.42. Properties ADODC 2. Kemudian kotak dialog Property Pages akan tampil, pilih option Use ODBC Data Source Name. Lihat Gambar 4.43.
3.
Kemudian Anda pilih Data Sources Name dengan nama MaxiWarnet, sesuai dengan nama yang telah Anda ketikkan sebelumnya. Lihat Gambar 4.44.
33
Gambar 4.44. Menentukan nama data sources name 4. Selanjutnya Anda klik tab RecordSorce, pada pilihan Command Type, Anda pilih 2 - adCmdTable dan pada pilihan Tabel or Stored Procedure Name Anda pilih tabel User_Admin. Kemudian klik Tombol OK. Lihat Gambar 4.45.
1. Klik Tab Ini
2. Pilih Ini
3. Pilih Tabel
Gambar 4.45. Menentukan nama tabel yang akan di koneksikan 5. Sampai disini pengaturan properties Adodc1 pada form Log in telah selesai. Untuk pengaturan seluruh komponen Adodc caranya sama seperti langka ke satu sampai ke empat hanya beda nama tabelnya saja. Untuk nama tabel apa saja yang akan dikoneksikan ke Adodc Anda bisa lihat pada Tabel 4.13. Tabel 4.13. Daftar nama tabel yang dikoneksikan ke Adodc
Nama Form
Log_In
Nama Control
Adodc1 Adodc2
Nama Tabel
User_Admin User_Admin_Login
34
Adodc3 Adodc1 Adodc2 Adodc1 Adodc2 Adodc1 Adodc1 Adodc2 Adodc1 Adodc1 Adodc2
User_Admin_Online Jumlah_PC_Online User_Admin_Online Monitor_Client Data_Client_Online User_Admin Data_Harga Nama_PC_Vip Client_Log_Out Data_Client_Online Monitor_Client
Nama Form
LogIn
Nama Control
Adodc1 Adodc2 Adodc3 Adodc4 Adodc1 Adodc2 Adodc3 Adodc1
Nama Tabel
Log_In Monitor_Client Jumlah_PC-Online Data_member Log_In Client_Log_Out Pesan Pesan
Monitor_Harga Isi_Pesan
35
Keterangan Kode
Baris 3
Baris 1 - 2 Merupakan fungsi untuk mendeklarasikan variabel Db dan Rs sebagai fungsi untuk mengkoneksikan database ke form. Merupakan fungsi untuk mendeklarasikan variabel dengan nama Str dengan type data String.
3. Selanjutnya buat Procedure dengan nama koneksi, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 Sub koneksi() Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open DSN=Maxiwarnet End Sub
Keterangan Kode Baris 1 Baris 2 - 4 Merupakan fungsi untuk membuka database yang telah dibuat berdasarkan nama DSN. Baris 5 Akhir dari Sub koneksi Membuat sub sendiri dengan nama koneksi.
4. Selanjutnya buat Procedure lagi dengan nama Log, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 Sub log() If Menu_Utama.Enabled = False Then cmdbtl.Enabled = False Else cmdbtl.Enabled = True End If End Sub
36
Baris 2 - 6 Membuat perintah untuk mengaktifkan tombol Batal apabila form Menu_Utama pada properties Enabled bernilai True, dan sebaliknya menonaktifkan tombol Batal apabila Menu Utama pada properties enabled bernilai False.
5. Selanjutnya buat Procedure lagi dengan nama Proses, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Sub proses() koneksi str = select * from user_admin db.Execute (str) Adodc1.Refresh koneksi str = select * from user_admin_login db.Execute (str) Adodc2.Refresh koneksi str = select * from user_Admin_online db.Execute (str) Adodc3.Refresh End Sub
Keterangan Kode Baris 1 - 14 Merupakan fungsi untuk merefresh seluruh tabel dalam database agar data selalu baru.
6. Klik ganda pada lembar form, kemudian ketikkan kode program seperti di bawah ini:
1 2 Private Sub Form_Load() StatusBar1.Panels(1) = Format(Date, DD/MM/YYYY) koneksi End Sub
Keterangan Kode Baris 1 Baris 2 Mencetak tanggal menurut sistem komputer pada komponen StatusBar panel ke 1. Merupakan fungsi untuk memanggil procedure Koneksi.
37
Keterangan Kode Baris 1 Merupakan fungsi untuk memanggil procedure dengan nama Log.
8. Klik ganda pada komponen textbox dengan nama Id, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 5 6 7 8 9 Private Sub id_Change() koneksi str = select * from user_admin where id_user = & id & rs.Open str, db If rs.EOF = False Then Nama = rs.Fields(nama_user) Else Nama = End If End Sub
Keterangan Kode Baris 1 - 9 Menampilkan nama user admin pada kolom text Nama bila id user ditemukan dan mengosongkan bila tidak ditemukan.
9. Masih pada kolom text dengan nama Id, kali ini pada pilihan Procedure Anda ganti dengan nama Keypress, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 Private Sub id_KeyPress(KeyAscii As Integer) If KeyAscii = 39 Then KeyAscii = 34 End If End Sub
Keterangan Kode Baris 1 - 3 Mengganti karakter ASCII keyboard 39 dengan ASCII 34.
38
10. Klik ganda kolom text Nama, Anda ganti pilihan Procedure dengan nama Keypress, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub Nama_KeyPress(KeyAscii As Integer) KeyAscii = 0 End Sub
Keterangan Kode Baris 1 11. Klik ganda kolom text dengan nama Psw, Anda ganti pilihan Procedure dengan nama Keypress, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 Private Sub psw_KeyPress(KeyAscii As Integer) If KeyAscii = 39 Then KeyAscii = 34 Else If KeyAscii = 13 Then If id = Then id.SetFocus: Exit Sub If psw = Then psw.SetFocus: Exit Sub koneksi str = select * from user_admin where id_user = & id & and password = & psw & rs.Open str, db If rs.EOF = False Then str = insert into user_admin_login(tanggal,id_user,nama_ user,jam_log_in)values( & StatusBar1.Panels(1) & , & id & , & Nama & , & StatusBar1.Panels(2) & ) db.Execute (str) koneksi str = select * from user_admin_online rs.Open str, db If rs.EOF = False Then str = update user_admin_online set nama_user = & Nama & db.Execute (str) proses Else str = insert into user_admin_online(id_user,nama_user) values( & id & , & Nama & ) db.Execute (str) proses End If
12 13 14 15 16 17 18 19 20 21 22 23 24
39
25 26 27 28 29 30 31 32
Unload Me Menu_Utama.Enabled = True Menu_Utama.Show Else MsgBox Password Anda Salah, vbCritical, Maxi Warnet End If End If End If End Sub
Keterangan Kode Baris 1 - 3 Mengganti karakter ASCII keyboard 39 dengan 34 Baris 4 - 28 Merupakan fungsi untuk membaca record yang tersimpan pada table User Admin apabila ada maka data user akan disimpan pada tabel User Admin Login dan User Admin Online. serta menutup form log In dan menampilkan form Menu Utama.
12. Klik ganda pada CommandButton dengan caption OK, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 7 Private Sub Cmdok_Click() If id = Then id.SetFocus: Exit Sub If psw = Then psw.SetFocus: Exit Sub koneksi str = select * from user_admin where id_user = & id & and password = & psw & rs.Open str, db If rs.EOF = False Then str = insert into user_admin_login(tanggal,id_user,nama_ user,jam_log_in)values( & StatusBar1.Panels(1) & , & id & , & Nama & , & StatusBar1.Panels(2) & ) db.Execute (str) koneksi str = select * from user_admin_online rs.Open str, db If rs.EOF = False Then str = update user_admin_online set nama_user = & Nama & db.Execute (str)
Baris 29-32 Merupakan fungsi untuk menampilkan Pesan apbila data user admin tidak ditemukan.
8 9 10 11 12 13 14
40
15 proses 16 Else str = insert into user_admin_online(id_user,nama_user) values( & id & , & Nama & ) 17 db.Execute (str) 18 proses 19 End If 20 Unload Me 21 Menu_Utama.Enabled = True 22 Menu_Utama.Show 23 Else 24 MsgBox Password Anda Salah, vbCritical, Maxi Warnet 25 End If End Sub
Keterangan Kode Baris 1 - 3 Mengganti karakter ASCII keyboard 39 dengan 34 Baris 4 - 28 Merupakan fungsi untuk membaca record yang tersimpan pada table User Admin apabila ada maka data user akan disimpan pada tabel User Admin Login dan User Admin Online. serta men utup form log In dan menampilkan form Menu Utama.
Baris 29-32 Merupakan fungsi untuk menampilkan Pesan apbila data user admin tidak ditemukan.
13. Klik ganda pada CommandButton dengan caption Batal, kemudian ketikkan kode program seperti di bawah ini :
1 Private Sub cmdbtl_Click() End End Sub
Keterangan Kode Baris 1 Merupakan fungsi untuk Mengakhiri Jalannya Aplikasi 14. Klik ganda pada komponen Timer1, kemudian ketikkan kode program seperti di bawah ini :
1 Private Sub Timer1_Timer() StatusBar1.Panels(2) = Format(Time, HH:MM:SS) End Sub
41
2. Kemudian Anda aktifkan Form Code dengan menekan tombol View , kemudian ketikkan kode program seperti di bawah ini :
Dim db As ADODB.Connection Dim rs As ADODB.Recordset Dim str As String
Keterangan Kode
Baris 3
Baris 1 - 2 Merupakan fungsi untuk mendeklarasikan variabel Db dan Rs sebagai fungsi untuk mengkoneksikan database ke form. Merupakan fungsi untuk mendeklarasikan variabel dengan nama Str dengan type data String.
3. Selanjutnya buat Procedure dengan nama koneksi, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 Sub koneksi() Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open DSN=Maxiwarnet End Sub
Keterangan Kode Baris 1 Baris 2 - 4 Merupakan fungsi untuk membuka database yang telah dibuat berdasarkan nama DSN. Membuat sub sendiri dengan nama koneksi.
Baris 5 Akhir dari Sub koneksi 4. Selanjutnya buat Procedure lagi dengan nama Proses, kemudian ketikkan kode program seperti di bawah ini :
1 2 Sub proses() koneksi
42
3 4 5 6 7 8 9
str = select * from jumlah_pc_online db.Execute (str) Adodc1.Refresh str = select * from user_admin_online db.Execute (str) Adodc2.Refresh End Sub
Keterangan Kode Baris 2 - 8 Merupakan fungsi untuk memrefresh database agar data yang ditampilkan selalu terbaru
5. Selanjutnya buat Procedure lagi dengan nama Jumlah_PC, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 Sub Jumlah_pc() tgl = Format(Date, DD/MM/YYYY) koneksi str = select * from jumlah_pc_online where Tanggal = & tgl & 5 rs.Open str, db 6 If rs.EOF = False Then 7 jumlah_online = rs.Fields(jumlah) 8 StatusBar1.Panels(3) = PC Online : & jumlah_online & 9 Else 10 StatusBar1.Panels(3) = PC Online : 0 11 End If 12 End Sub
Keterangan Kode
Baris 2 - 11 Merupakan fungsi untuk menampilkan jumlah PC yang aktif ke dalam kolom StatusBar kolom ke tiga dengan terlebih dahulu membaca record yang tersimpan di dalam tabel Jumlah_PC_Online.
6. Selanjutnya buat Procedure lagi dengan nama User_Online, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 Sub user_online() koneksi str = select * from user_admin_online rs.Open str, db
43
5 6 7 8 9
If rs.EOF = False Then opr = rs.Fields(Nama_User) StatusBar1.Panels(2) = Operator : & opr & End If End Sub
Keterangan Kode Baris 1-9 Merupakan fungsi untuk Menampilkan nama User Admin yang aktif pada waktu itu ke StatusBar panel ke dua dengan terlebih dahulu membaca tabel User _Admin_Online.
7. Klik ganda pada lembar form, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 Private Sub MDIForm_Load() StatusBar1.Panels(4) = Format(Date, DD/MMMM/YYYY) koneksi Jumlah_pc jalan = StatusBar1.Panels(1).Text End Sub
Keterangan Kode Baris 1 Mencetak tanggal menurut sistem komputer pada komponen StatusBar panel ke 1.
Mencetak text pada komponen StatusBar panel ke satu. 8. Masih pada procedure MDIForm_Load, kali ini pada pilihan procedure Anda ganti dengan nama Activate. Kemudian ketikkan kode program seperti di bawah ini : Baris 4
1 2 3 Private Sub MDIForm_Activate() proses Jumlah_pc user_online End Sub
Keterangan Kode Baris 1 - 3 Merupakan fungsi untuk memanggil procedure Proses, Jumlah_PC, User_Online.
44
9. Kemudian pada procedure Form_Activate, kali ini pada pilihan procedure Anda ganti dengan nama Unload. Kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 7 Private Sub MDIForm_Unload(Cancel As Integer) keluar = MsgBox(Benar Anda Ingin Keluar ?, vbQuestion + vbYesNo, Maxi Warnet) If keluar = vbYes Then Unload Me Else Cancel = 1 End If End Sub
Keterangan Kode Baris 1 - 7 Merupakan fungsi untuk menampilkan pesan yang apabila tombol Close window pada Menu Utama di klik.
10. Klik ganda pada komponen Timer1, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub Timer1_Timer() StatusBar1.Panels(5) = Format(Time, HH:MM:SS) End Sub
Keterangan Kode Baris 1 Merupakan fungsi untuk menampilkan waktu menurut sistem komputer pada komponen StatusBar panel ke lima.
11. Klik ganda pada komponen Timer2, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub Timer2_Timer() Jumlah_pc End Sub
Keterangan Kode Baris 1 Merupakan fungsi untuk memanggil procedure dengan nama Jumlah_PC
12. Klik ganda pada komponen Timer3, kemudian ketikkan kode program seperti di bawah ini:
45
1 2 3 4 5 6
Private Sub Timer3_Timer() On Error Resume Next a = Left(jalan, 1) c = Len(jalan) b = Right(jalan, c - 1) jalan = b + a StatusBar1.Panels(1).Text = jalan End Sub
Keterangan Kode Merupakan fungsi untuk menampilkan animasi teks berjalan pada kolom StatusBar panels ke satu. 13. Selanjutnya Anda klik menu editor dengan nama Monitor_Client, kemudian ketikkan kode program seperti di bawah ini : Baris 1
1 Private Sub Mnumc_Click() Monitor.Show End Sub
Keterangan Kode Baris 1 Merupakan fungsi untuk menampilkan form Monitor Client.
14. Anda klik menu editor dengan nama Input_User, kemudian ketikkan kode program seperti di bawah ini :
1 Private Sub MnuIU_Click() User_Admin.Show End Sub
Keterangan Kode Baris 1 Merupakan fungsi untuk menampilkan form Input User
15. Anda klik menu editor dengan nama Input_User, kemudian ketikkan kode program seperti di bawah ini :
1 Private Sub mnupngr_Click() Pengaturan.Show End Sub
46
16. Anda klik menu editor dengan nama Cetak_Pendapatan, kemudian ketikkan kode program seperti di bawah ini :
1 Private Sub MnuPndpt_Click() Ctk_Pendapatan.Show End Sub
Keterangan Kode Baris 1 Merupakan fungsi untuk menampilkan form Cetak Pendapatan.
17. Anda klik menu editor dengan nama Log Out, kemudian ketikkan kode program seperti di bawah ini :
1 2 Private Sub Mnulg_Click() Log_In.Show Me.Enabled = False End Sub
Keterangan Kode Baris 1 - 2 Merupakan fungsi untuk menampilkan form Log In dan menonaktifkan form Menu Utama.
18. Anda klik menu editor dengan nama Keluar, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 Private Sub MnuKlr_Click() keluar = MsgBox(Benar Anda Ingin Keluar ?, vbQuestion + vbYesNo, Maxi Warnet) If keluar = vbYes Then Unload Me Else Exit Sub End If End Sub
Keterangan Kode Baris 1 - 6 Merupakan fungsi untuk menampilkan pesan yang apabila tombol Yes di klik maka aplikasi akan
47
19. Anda klik menu editor dengan nama Kirim Pesan, kemudian ketikkan kode program seperti di bawah ini :
1 Private Sub MnuKp_Click() Pesan.Show End Sub
Keterangan Kode Baris 1-2 Merupakan fungsi untuk menampilkan form Pesan
1 2 3
Keterangan Kode
Baris 3
Baris 1 - 2 Merupakan fungsi untuk mendeklarasikan variabel Db dan Rs sebagai fungsi untuk mengkoneksikan database ke form. Merupakan fungsi untuk mendeklarasikan variabel dengan nama Str dengan type data String.
3. Selanjutnya buat Procedure dengan nama koneksi, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 Sub koneksi() Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open DSN=Maxiwarnet End Sub
48
Keterangan Kode Baris 1 Baris 2 - 4 Merupakan fungsi untuk membuka database yang telah dibuat berdasarkan nama DSN. Baris 5 Akhir dari Sub koneksi Membuat sub sendiri dengan nama koneksi.
4. Selanjutnya buat Procedure lagi dengan nama Proses, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 7 8 Sub proses() str = select * from monitor_client db.Execute (str) Adodc1.Refresh str = select * from data_client_online db.Execute (str) Adodc2.Refresh End Sub
Keterangan Kode
Baris 2 - 7 Merupakan fungsi untuk me-refresh database agar data yang ditampilkan selalu terbaru
5. Selanjutnya buat Procedure lagi dengan nama Grid_Properties, kemudian ketikkan kode program seperti di bawah ini :
1 Sub gridproperties() 2 With GridMonitor 3 .Cols = 4 4 .Rows = 1 5 .FocusRect = flexFocusHeavy 6 .SelectionMode = flexSelectionFree 7 .ColWidth(0) = 1500 8 .ColWidth(1) = 3000 9 .ColWidth(2) = 1500 10 .ColWidth(3) = 2557 11 .Row = 0 12 .Col = 0 13 .Text = Nama PC 14 .Col = 1 15 .Text = Nama Pelanggan 16 .Col = 2 17 .Text = Jam Mulai 18 .Col = 3 19 .Text = Kategory Pelanggan
49
Keterangan Kode
6. Selanjutnya buat Procedure lagi dengan nama Grid_Data, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 Sub Grid_Data() With GridMonitor .AddItem & vbTab & & vbTab & End With End Sub
Baris 2-20 Merupakan fungsi untuk membuat kolom header sebanyak empat buah pada komponen MSFlexGrid.
Keterangan Kode
7. Selanjutnya buat Procedure lagi dengan nama Data, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Sub data() gridproperties Grid_Data tgl = Format(Date, dd/mm/yyyy) koneksi str = select * from monitor_client where tanggal = & tgl & rs.Open str, db If rs.EOF = False Then rs.MoveFirst Do While Not rs.EOF GridMonitor.TextMatrix(GridMonitor.Row,0) = rs.Fields(Nama_PC) GridMonitor.TextMatrix(GridMonitor.Row,1) = rs.Fields(Nama_pelanggan) GridMonitor.TextMatrix(GridMonitor.Row,2) = rs.Fields(Jam_Masuk) GridMonitor.TextMatrix(GridMonitor.Row,3) = rs.Fields(Kategori_Pelanggan) rs.MoveNext GridMonitor.Rows = GridMonitor.Rows + 1
Baris 2 - 4 Merupakan fungsi untuk membuat kolom item data pada komponene MSFlexGrid.
50
17 18 19 20 21
Keterangan Kode Baris 2 - 3 Merupakan fungsi untuk memanggil procedure dengan nama gridproperties dan griddata.
Baris 2 - 20 Merupakan fungsi untuk menampilkan record data yang tersimpan pada tabel monitor_client ke kolom MSFlexGrid.
8. Selanjutnya buat Procedure lagi dengan nama Posisi, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 Sub posisi() Me.Left = 0 Me.Top = 0 End Sub
Keterangan Kode
9. Klik ganda pada lembar form, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 Private Sub Form_Load() koneksi gridproperties Grid_Data End Sub
Baris 2 - 3 Merupakan fungsi untuk mengatur posisi form Monitor Client tepat berada di atas sudut kiri form Menu Utama
Keterangan Kode
Baris 1 - 3 Merupakan fungsi untuk memanggil procedure dengan nama koneksi, gridproperties, grid_data.
10. Masih pada procedure Form_Load, kali ini pada pilihan procedure Anda ganti dengan nama Activate. Kemudian ketikkan kode program seperti di bawah ini :
51
1 2 3
Keterangan Kode
Baris 1 - 3 Merupakan fungsi untuk memanggil procedure dengan nama posisi, proses, data.
11. Klik ganda pada komponen MSFlexGrid, pada pilihan procedure Anda ganti dengan nama DblClick, kemudian ketikkan kode program seperti di bawah ini:
1 2 Private Sub Gridmonitor_DblClick() koneksi str = select * from client_log_out where nama_pc = & GridMonitor.TextMatrix(GridMonitor.Row, 0) & and nama_pelanggan = & GridMonitor.TextMatrix(GridMonitor.Row, 1) & and jam_mulai = & GridMonitor.TextMatrix(GridMonitor. Row, 2) & rs.Open str, db If rs.EOF = False Then tgl = Format(Date, dd/mm/yyyy) str = delete from data_client_online where nama_pc = & GridMonitor.TextMatrix(GridMonitor.Row, 0) & and nama_pelanggan = & GridMonitor.TextMatrix(GridMonitor. Row, 1) & and jam_mulai = & GridMonitor. TextMatrix(GridMonitor.Row, 2) & db.Execute (str) str = insert into data_client_online(nama_pc,nama_ pelanggan,jam_mulai,tanggal)values( & GridMonitor. TextMatrix(GridMonitor.Row, 0) & , & GridMonitor. TextMatrix(GridMonitor.Row, 1) & , & GridMonitor. TextMatrix(GridMonitor.Row, 2) & , & tgl & ) db.Execute (str) proses Monitor.Enabled = False Client_Log_Out.Show Else Exit Sub End If End Sub
3 4 5 6
7 8
9 10 11 12 13 14 15
52
Keterangan Kode Baris 1 - 13 Merupakan fungsi untuk membaca record yang tersimpan di dalam tabel Client_Log_Out apabila ditemukan maka data yang pernah disimpan berdasarkan Nama_Pc akan dihapus dan disimpan kembali.
12. Klik ganda pada komponen Image1, kemudian ketikkan kode program seperti di bawah ini :
1 Private Sub Image1_Click() Unload Me End Sub
Baris 14- 15 Merupakan fungsi kebalikan dari perintah sebelumnya yang apabila tidak ditemukan maka perintah untuk keluar dari procedure dijalankan
Keterangan Kode
Baris 1
13. Masih pada komponen Image1, pada pilihan procedure Anda ganti dengan nama MouseDown, kemudian ketikkan kode program seperti di bawah ini :
1 2 Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Image1.BorderStyle = 1 Label1.ForeColor = vbRed End Sub
Keterangan Kode
14. Masih pada komponen Image1, pada pilihan procedure Anda ganti lagi dengan nama MouseUp, kemudian ketikkan kode program seperti di bawah ini :
Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Image1.BorderStyle = 0
Baris 1 - 2 Merupakan fungsi untuk merubah properties BorderStyle dan merubah warna Label1 menjadi warna merah.
53
Keterangan Kode
15. Klik ganda pada komponen Timer1, kemudian ketikkan kode program seperti di bawah ini :
1 Private Sub Timer1_Timer() data End Sub
Baris 1 - 2 Merupakan fungsi untuk merubah properties BorderStyle dan merubah warna Label1 menjadi warna hitam.
Keterangan Kode
Baris 1
1 2 3
Keterangan Kode
Baris 3
Baris 1 - 2 Merupakan fungsi untuk mendeklarasikan variabel Db dan Rs sebagai fungsi untuk mengkoneksikan database ke form. Merupakan fungsi untuk mendeklarasikan variabel dengan nama Str dengan type data String.
3. Selanjutnya buat Procedure dengan nama koneksi, kemudian ketikkan kode program seperti di bawah ini :
54
1 2 3 4 5
Sub koneksi() Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open DSN=Maxiwarnet End Sub
Keterangan Kode Baris 1 Baris 2 - 4 Merupakan fungsi untuk membuka database yang telah dibuat berdasarkan nama DSN. Baris 5 Akhir dari Sub koneksi Membuat sub sendiri dengan nama koneksi.
4. Selanjutnya buat Procedure lagi dengan nama Proses, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 7 8 9 10 11 Sub proses() koneksi str = select * from user_admin db.Execute (str) Adodc1.Refresh ID.Enabled = True ID.SetFocus ID = Nama = Psw = End Sub
Keterangan Kode Baris 2 - 5 Merupakan fungsi untuk merefresh tabel User_Admin agar data yang ditampilkan selalu terbaru. Baris 6 -10 Merupakan fungsi untuk mengosongkan seluruh komponen Text dan membuat kursor fokus ke kolom Teks dengan nama ID.
5. Selanjutnya buat Procedure lagi dengan nama Posisi, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 Sub posisi() Me.Left = 0 Me.Top = 0 End Sub
55
6. Klik ganda pada lembar form, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub Form_Load() koneksi End Sub
Baris 2 - 3 Merupakan fungsi untuk mengatur posisi form Monitor Client tepat berada di atas sudut kiri form Menu Utama
Keterangan Kode Baris 1 Merupakan fungsi untuk memanggil procedure dengan nama koneksi.
7. Masih pada procedure Form_Load, kali ini pada pilihan procedure Anda ganti dengan nama Activate. Kemudian ketikkan kode program seperti di bawah ini :
1 2 Private Sub Form_Activate() posisi ID.SetFocus End Sub
Keterangan Kode Baris 1 Merupakan fungsi untuk memanggil procedure dengan nama posisi dan membuat kursor fokus ke kolom teks ID.
8. Klik ganda pada komponen TextBox dengan nama ID, pada pilihan procedure Anda ganti dengan nama Keypress, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub psw_KeyPress(KeyAscii As Integer) If KeyAscii = 39 Then KeyAscii = 34: Exit Sub End Sub
Keterangan Kode Baris 1 Mengganti karakter ASCII keyboard 39 dengan ASCII 34.
56
9. Klik ganda pada komponen TextBox dengan nama PSW, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 5 Private Sub psw_Change() If Psw = Then Clhtpsw.Enabled = False Else Clhtpsw.Enabled = True End If End Sub
Keterangan Kode Baris 1 - 5 Merupakan fungsi logika if yang apabila kolom teks password kosong maka komponen checkbox akan dinonaktifkan, namun bila sebaliknya maka komponen checkbox akan diaktifkan.
10. Klik ganda pada komponen TextBox dengan nama PSW, pada pilihan procedure Anda ganti dengan nama Keypress, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub psw_KeyPress(KeyAscii As Integer) If KeyAscii = 39 Then KeyAscii = 34: Exit Sub End Sub
Keterangan Kode Baris 1 Mengganti karakter ASCII keyboard 39 dengan ASCII 34.
11. Klik ganda pada komponen CheckBox dengan nama ClhtPsw, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 5 Private Sub Clhtpsw_Click() If Clhtpsw.Value = 0 Then Psw.PasswordChar = * Else Psw.PasswordChar = End If End Sub
Keterangan Kode Baris 1 Merupakan fungsi logika if yang apabila komponen checkbox bernilai nol, maka kolom teks Psw properties passwordchar akan diaktifkan
57
12. Klik ganda pada komponen Image1, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Private Sub Image1_Click() If ID = Then ID.SetFocus: Image1.BorderStyle = 0: Label4.ForeColor = vbBlack: Exit Sub If Nama = Then Nama.SetFocus: Image1.BorderStyle = 0: Label4.ForeColor = vbBlack: Exit Sub If Psw = Then Psw.SetFocus: Image1.BorderStyle = 0: Label4.ForeColor = vbBlack: Exit Sub koneksi str = select * from user_admin where id_user = & ID & rs.Open str, db If rs.EOF = False Then MsgBox Id User Sudah Ada, vbCritical, Maxi Warnet SendKeys {home}+{end} ID.SetFocus Else str = insert into user_admin(id_user,nama_user,password) values( & ID & , & Nama & , & Psw & ) db.Execute (str) proses End If End Sub
Keterangan Kode Baris 1 - 4 Merupakan fungsi yang apabila seluruh kolom teks kosong maka label4 akan berwarna hitam. Baris 4-15 Merupakan fungsi untuk membaca record tabel User Admin berdasarkan ID User pada kolom teks ID, yang apabila ditemukan maka pesan akan tampil namun bila sebaliknya maka data akan disimpan.
13. Masih pada komponen Image1, kali ini pada pilihan procedure Anda ganti dengan nama MouseDown, kemudian ketikkan kode program seperti di bawah ini:
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
58
1 2
Keterangan Kode Baris 1 - 2 Merupakan fungsi yang apabila komponen Image1 diklik maka properties BorderStyle bernilai Satu, dan label4 akan berwarna merah.
14. Masih pada komponen Image1, kali ini pada pilihan procedure Anda ganti dengan nama MouseUp, kemudian ketikkan kode program seperti di bawah ini:
1 2 Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Image1.BorderStyle = 0 Label4.ForeColor = vbBlack End Sub
Keterangan Kode Baris 1 - 2 Merupakan fungsi yang apabila komponen Image1 diklik maka properties BorderStyle bernilai Nol, dan label4 akan berwarna hitam.
1 2 3
Keterangan Kode
Baris 3
Baris 1 - 2 Merupakan fungsi untuk mendeklarasikan variabel Db dan Rs sebagai fungsi untuk mengkoneksikan database ke form. Merupakan fungsi untuk mendeklarasikan variabel dengan nama Str dengan type data String.
59
Keterangan Kode Baris 1 Baris 2 - 4 Merupakan fungsi untuk membuka database yang telah dibuat berdasarkan nama DSN. Baris 5 Akhir dari Sub koneksi Membuat sub sendiri dengan nama koneksi.
4. Selanjutnya buat Procedure lagi dengan nama Proses, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 Sub proses() str = select * from data_harga db.Execute (str) Adodc1.Refresh DataGrid1.Refresh str = select * from nama_pc_vip db.Execute (str) Adodc2.Refresh DataGrid2.Refresh Hrg_Jam = Ktg_Hrg = Nama_PC = End Sub
Keterangan Kode Baris 1 - 13 Merupakan fungsi untuk merefresh record yang tersimpan didalam tabel database MaxiWarnet agar data yang ditampilkan selalu terbaru serta mengosongkan seluruh komponen teks.
5. Selanjutnya buat Procedure lagi dengan nama Posisi, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 Sub posisi() Me.Left = 0 Me.Top = 0 End Sub
60
Keterangan Kode Baris 2 - 3 Merupakan fungsi untuk mengatur posisi form Pengaturan tepat berada di atas sudut kiri form Menu Utama 6. Klik ganda pada lembar form, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub Form_Load() koneksi End Sub
Keterangan Kode Baris 1 Merupakan fungsi untuk memanggil procedure dengan nama koneksi.
7. Masih pada procedure Form_Load, kali ini pada pilihan procedure Anda ganti dengan nama Activate. Kemudian ketikkan kode program seperti di bawah ini :
1 2 Private Sub Form_Activate() posisi TabAtur.Tab = 0 End Sub
Keterangan Kode Baris 1 Baris 2 Merupakan fungsi untuk memanggil procedure dengan nama posisi.
Merupakan fungsi untuk mengaktifkan komponen Tab dengan nilai properties Tab sama dengan Nol. 8. Klik ganda komponen DataCombo1, pada pilihan procedure Anda ganti dengan nama Change. Kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 Private Sub Ktg_Hrg_Change() koneksi str = select * from data_harga where type_pelanggan = & Ktg_Hrg & rs.Open str, db If rs.EOF = False Then Hrg_Jam = rs.Fields(Harga_Per_Jam) Else
61
7 8
Keterangan Kode Baris 1 - 8 Merupakan fungsi untuk menampilkan record tabel Data_Harga berdasarkan Type Pelanggan ke dalam kotak teks harga dan apabila data tidak ditemukan maka kolom teks harga akan dikosongkan.
9. Klik ganda komponen TextBox1 dengan nama Hrg_Jam, pada pilihan procedure Anda ganti dengan nama Keypress. Kemudian ketikkan kode program seperti di bawah ini :
Private Sub Hrg_Jam_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case 48 To 57 SendKeys {end} Hrg_Jam.SetFocus Case 8 If Len(Hrg_Jam.Text) > 0 Then Hrg_Jam.Text = Left(Hrg_Jam.Text, (Len(Hrg_Jam.Text)1)) 8 SendKeys {end} 9 End If 10 Case Else 11 KeyAscii = 0 12 End Select End Sub 1 2 3 4 5 6 7
Keterangan Kode Baris 1 - 12 Hanya bisa diisi dengan angka dan tombol Backspace.
10. Klik ganda pada komponen Image1, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 Private Sub Image1_Click() If Ktg_Hrg = Then Ktg_Hrg.SetFocus: Image2.BorderStyle = 0: Label5.ForeColor = vbBlack: Exit Sub If Hrg_Jam = Then Hrg_Jam.SetFocus: Image2.BorderStyle = 0: Label5.ForeColor = vbBlack: Exit Sub koneksi
62
4 5 6 7 8 9 10 11 12 13 14
str = select * from data_harga where Type_pelanggan = & Ktg_Hrg.Text & rs.Open str, db If rs.EOF = False Then str = update data_harga set harga_per_jam = & Hrg_Jam & where type_pelanggan = & Ktg_Hrg & db.Execute (str) proses Else str = insert into data_harga(type_pelanggan,harga_per_ jam)values( & Ktg_Hrg & , & Hrg_Jam & ) db.Execute (str) proses End If End Sub
Keterangan Kode Baris 1 - 2 Merupakan fungsi yang apabila pada kolom teks masih ada teks kosong maka properties image1 BorderStyle bernilai Nol dan Label4 berwarna hitam.
11. Masih pada komponen Image1, kali ini pada pilihan procedure Anda ganti dengan nama MouseDown, kemudian ketikkan kode program seperti di bawah ini:
1 2 Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Image1.BorderStyle = 1 Label4.ForeColor = vbRed End Sub
Baris 3 -14 Merupakan fungsi untuk membaca record data_harga berdasarkan Type_Pelanggan, yang apabila ditemukan maka data akan diperbaiki namun bila sebaliknya maka ada akan diinput baru.
Keterangan Kode Baris 1 - 2 Merupakan fungsi yang apabila komponen Image1 diklik maka properties BorderStyle bernilai Satu, dan label4 akan berwarna merah.
12. Masih pada komponen Image1, kali ini pada pilihan procedure Anda ganti dengan nama MouseUp, kemudian ketikkan kode program seperti di bawah ini:
63
1 2
Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Image1.BorderStyle = 0 Label4.ForeColor = vbBlack End Sub
Keterangan Kode Baris 1 - 2 Merupakan fungsi yang apabila komponen Image1 diklik maka properties BorderStyle bernilai Nol, dan label4 akan berwarna hitam.
13. Klik ganda pada komponen DataGrid1, pada pilihan procedure Anda ganti dengan nama DblClick, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 Private Sub DataGrid1_DblClick() koneksi str = delete from data_harga where type_pelanggan = & DataGrid1.Columns(0) & db.Execute (str) proses End Sub
Keterangan Kode Baris 1 - 4 Merupakan fungsi untuk menghapus data harga berdasarkan Type Pelanggan pada DataGrid1 kolom pertama. 14. Klik ganda pada komponen TextBox2, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 Private Sub Nama_PC_Change() Nama_PC = UCase(Nama_PC) SendKeys {end} Nama_PC.SetFocus End Sub
Keterangan Kode Baris 1 - 2 Merupakan fungsi untuk merubah huruf menjadi huruf besar dan menempatkan huruf tepat di depan kolom teks. 15. Masih pada komponen TextBox2, pada pilihan procedure Anda ganti dengan nama Keypress, kemudian ketikkan kode program seperti di bawah ini:
64
1 2
Keterangan Kode Baris 1 - 2 Merupakan fungsi untuk merubah ASCII 39 menjadi ASCII 34.
16. Klik ganda pada komponen Image2, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 Private Sub Image2_Click() If Nama_PC = Then Nama_PC.SetFocus: Image1.BorderStyle = 0: Label1.ForeColor = vbBlack: Exit Sub koneksi str = select * from nama_pc_vip where nama_pc = & Nama_PC.Text & rs.Open str, db If rs.EOF = False Then str = update nama_pc_vip set nama_pc = & Nama_PC & where nama_pc = & Nama_PC.Text & db.Execute (str) proses Else str = insert into nama_pc_vip(Nama_pc)values( & Nama_ PC & ) db.Execute (str) proses End If End Sub
Keterangan Kode Baris 1 Merupakan fungsi yang apabila komponen Image2 di klik maka properties BorderStyle bernilai Nol, dan label4 akan berwarna hitam.
17. Masih pada komponen Image2, kali ini pada pilihan procedure Anda ganti dengan nama MouseDown, kemudian ketikkan kode program seperti di bawah ini:
Baris 3 -13 Merupakan fungsi untuk membaca record data_PC_Vip berdasarkan Nama_PC, yang apabila data ditemukan maka data tersebut akan diperbaiki namun bila sebaliknya maka data akan disimpan.
65
1 2
Private Sub Image2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Image2.BorderStyle = 1 Label6.ForeColor = vbRed End Sub
Keterangan Kode Baris 1 - 2 Merupakan fungsi yang apabila komponen Image2 diklik maka properties BorderStyle bernilai Satu, dan Label6 akan berwarna merah.
18. Masih pada komponen Image2, kali ini pada pilihan procedure Anda ganti dengan nama MouseUp, kemudian ketikkan kode program seperti di bawah ini:
1 2 Private Sub Image2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Image2.BorderStyle = 0 Label6.ForeColor = vbBlack End Sub
Keterangan Kode Baris 1 - 2 Merupakan fungsi yang apabila komponen Image2 diklik maka properties BorderStyle bernilai Nol, dan Label6 akan berwarna hitam.
19. Klik ganda pada komponen DataGrid2, pada pilihan procedure Anda ganti dengan nama DblClick, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 Private Sub DataGrid2_DblClick() koneksi str = delete from nama_pc_vip where nama_pc = & DataGrid2.Columns(0) & db.Execute (str) proses End Sub
Keterangan Kode Baris 1 - 4 Merupakan fungsi untuk menghapus Nama PC Vip berdasarkan Nama PC pada DataGrid2 kolom pertama.
66
f.
2. Kemudian Anda aktifkan Form Code dengan menekan tombol View Code , Anda hapus teks Option Explicit, kemudian ketikkan kode program seperti di bawah ini :
Dim db As ADODB.Connection Dim rs As ADODB.Recordset Dim str As String
1 2 3
Keterangan Kode
Baris 3
Baris 1 - 2 Merupakan fungsi untuk mendeklarasikan variabel Db dan Rs sebagai fungsi untuk mengkoneksikan database ke form. Merupakan fungsi untuk mendeklarasikan variabel dengan nama Str dengan type data String.
3. Selanjutnya buat Procedure dengan nama koneksi, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 Sub koneksi() Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open DSN=Maxiwarnet End Sub
Keterangan Kode Baris 1 Baris 2 - 4 Merupakan fungsi untuk membuka database yang telah dibuat berdasarkan nama DSN. Membuat sub sendiri dengan nama koneksi.
Baris 5 Akhir dari Sub koneksi 4. Selanjutnya buat Procedure lagi dengan nama Proses, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 Sub proses() koneksi str = select * from client_log_out db.Execute (str) Adodc1.Refresh End Sub
67
Keterangan Kode Baris 1 - 2 Merupakan fungsi untuk menhilangkan tampilan komponen Frame dengan nama FrmHari dan Frmperiode. 6. Klik ganda pada komponen Option2, dengan nama caption Cetak Per Periode, kemudian ketikkan kode program seperti di bawah ini:
1 2 Private Sub CtkPerperiode_Click() FrmHari.Visible = False Frmperiode.Visible = True End Sub
Keterangan Kode Baris 1 - 2 Merupakan fungsi untuk menghilangkan tampilan komponen Frame dengan nama FrmHari dan Menampilkan Frmperiode. 7. Klik ganda pada komponen Option3, dengan nama caption Cetak Per Hari, kemudian ketikkan kode program seperti di bawah ini:
1 2 Private Sub Ctkperhari_Click() FrmHari.Visible = True Frmperiode.Visible = False End Sub
Keterangan Kode Baris 1 - 2 Merupakan fungsi untuk menampilkan komponen Frame dengan nama FrmHari, dan menghilangkan FrmPeriode.
8. Klik ganda pada komponen Image1, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub Image1_Click() If Ctkperhari.Value = False And Ctkslr.Value = False And CtkPerperiode.Value = False Then Exit Sub
68
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39
If Ctkslr.Value = True Then cr1.Reset cr1.ReportFileName = App.Path & \Laporan\Laporan Pendapatan Warnet.rpt cr1.WindowState = crptMaximized cr1.RetrieveDataFiles cr1.PrintReport Else If CtkPerperiode.Visible = True Then koneksi str = select * from client_log_out where tanggal >= & Format(TglAwal, dd/mm/yyyy) & and tanggal <= & Format(TglSampai, dd/mm/yyyy) & rs.Open str, db If rs.EOF = False Then cr1.Reset cr1.ReportFileName = App.Path & \Laporan\Laporan Pendapatan Warnet.rpt cr1.WindowState = crptMaximized cr1.SelectionFormula = {client_log_out.tanggal} >= & Format(TglAwal, dd/mm/yyyy) & and {client_log_out. tanggal} <= & Format(TglSampai, dd/mm/yyyy) & cr1.RetrieveDataFiles cr1.PrintReport End If Else If Ctkperhari.Visible = True Then proses koneksi str = select * from client_log_out where tanggal = & Format(TglHari, dd/mm/yyyy) & rs.Open str, db If rs.EOF = False Then cr1.Reset cr1.ReportFileName = App.Path & \Laporan\Laporan Pendapatan Warnet.rpt cr1.WindowState = crptMaximized cr1.SelectionFormula = {client_log_out.Tanggal}= & Format(TglHari, dd/mm/yyyy) & cr1.RetrieveDataFiles cr1.PrintReport End If End If End If End If
69
Keterangan Kode Baris 1 Merupakan fungsi untuk keluar dari sub procedure apabila dalam ketiga Option tersebut tidak ada yang dipilih.
Baris 2 - 7 Merupakan fungsi if yang apabila Option1 dengan nama caption Cetak Seluruh di pilih maka Laporan Pendapatan warnet secara keseluruhan akan dicetak. Baris 8-21 Merupakan fungsi if yang apabila Option2 dengan nama caption Cetak Per Periode dipilih maka Laporan Pendapatan warnet secara perperiode akan dicetak Baris 22-41Merupakan fungsi if yang apabila Option3 dengan nama caption Cetak Per Hari dipilih maka laporan Pendapatan Warnet secara perhari akan dicetak.
9. Masih pada komponen Image1, kali ini pada pilihan procedure Anda ganti dengan nama MouseDown, kemudian ketikkan kode program seperti di bawah ini :
1 2 Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Image1.BorderStyle = 1 Label2.ForeColor = vbRed End Sub
Keterangan Kode Baris 1 - 2 Merupakan fungsi yang apabila komponen Image1 diklik maka properties BorderStyle bernilai Satu, dan label2 akan berwarna merah. 10. Masih pada komponen Image1, kali ini pada pilihan procedure Anda ganti dengan nama MouseUp, kemudian ketikkan kode program seperti di bawah ini :
1 Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Image1.BorderStyle = 0
70
Keterangan Kode Baris 1 - 2 Merupakan fungsi yang apabila komponen Image1 diklik maka properties BorderStyle bernilai Nol, dan label4 akan berwarna hitam.
11. Klik ganda pada lembar form, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub Form_Load() koneksi End Sub
Keterangan Kode
12. Masih pada procedure Form_Load, kali ini pada pilihan procedure Anda ganti dengan nama Activate. Kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 7 8 9 Private Sub Form_Activate() TglAwal = Format(Date, mm/dd/yyyy) TglSampai = Format(Date, mm/dd/yyyy) TglHari = Format(Date, mm/dd/yyyy) FrmHari.Visible = False Frmperiode.Visible = False posisi Ctkslr.Value = False CtkPerperiode.Value = False Ctkperhari.Value = False End Sub
Keterangan Kode
Baris 4 - 5 Merupakan fungsi untuk tidak menampilkan komponen frame dengan nama FrmHari dan Frmperiode.
Baris 1 - 3 Merupakan fungsi untuk memformat tanggal pada komponen DTPicker, menurut sistem komputer.
71
Baris 7 - 9 Merupakan fungsi untuk memanggil procedure dengan nama posisi, dan memberikan nilai False pada seluruh komponen Option.
1 2 3
Keterangan Kode
Baris 3
Baris 1 - 2 Merupakan fungsi untuk mendeklarasikan variabel Db dan Rs sebagai fungsi untuk mengkoneksikan database ke form. Merupakan fungsi untuk mendeklarasikan variabel dengan nama Str dengan type data String.
3. Selanjutnya buat Procedure dengan nama koneksi, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 Sub koneksi() Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open DSN=Maxiwarnet End Sub
Keterangan Kode Baris 1 Baris 2 - 4 Merupakan fungsi untuk membuka database yang telah dibuat berdasarkan nama DSN. Membuat sub sendiri dengan nama koneksi.
Baris 5 Akhir dari Sub koneksi 4. Selanjutnya buat Procedure lagi dengan nama bersih, kemudian ketikkan kode program seperti di bawah ini :
1 2 Sub bersih() DBNmPC = Klik ----- >
72
3 4
Keterangan Kode Baris 2 - 3 Merupakan fungsi untuk memberikan teks pada komponen DataCombo1 dan mengosongkan kolom teks dengan nama Isi_Pesan.
5. Selanjutnya buat Procedure lagi dengan nama proses, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 7 8 Sub proses() str = select * from monitor_client db.Execute (str) Adodc1.Refresh str = select * from pesan db.Execute (str) Adodc2.Refresh End Sub
Keterangan Kode Baris 2 - 7 Merupakan fungsi untuk merefresh atau memperbaharui data yang tersimpan didalam tabel Monitor_Client dan Pesan pada database MaxiWarnet.
6. Selanjutnya buat Procedure lagi dengan nama posisi, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 Sub posisi() Me.Left = 0 Me.Top = 0 End Sub
Keterangan Kode Baris 2 - 3 Merupakan fungsi untuk mengatur posisi form Pesan tepat berada di atas sudut kiri form Menu Utama 7. Klik ganda pada lembar form, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub Form_Load() koneksi End Sub
73
8. Masih pada procedure Form_Load, kali ini pada pilihan procedure Anda ganti dengan nama Activate. Kemudian ketikkan kode program seperti di bawah ini :
1 2 Private Sub Form_Activate() posisi proses End Sub
Keterangan Kode
9. Klik ganda pada komponen Datacombo1, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 Private Sub DBNmPC_Click(Area As Integer) koneksi str = select * from data_client_online db.Execute (str) Adodc1.Refresh End Sub
Baris 1 - 2 Merupakan fungsi untuk memanggil procedure dengan nama Posisi dan Proses.
Keterangan Kode
10. Masih pada procedure Click, komponen DataCombo1, kali ini pada pilihan procedure Anda ganti dengan nama Keypress. Kemudian ketikkan kode program seperti di bawah ini :
1 Private Sub DBNmPC_KeyPress(KeyAscii As Integer) KeyAscii = 0 End Sub
Keterangan Kode
Baris 1
74
11. Masih pada procedure Keypress, kompoenen DataCombo1, kali ini pada pilihan procedure Anda ganti dengan nama Change. Kemudian ketikkan kode program seperti di bawah ini :
1 Private Sub DBNmPC_Change() isi_pesan.SetFocus End Sub
Keterangan Kode Merupakan fungsi untuk menempatkan kursor fokus pada kolom teks Isi Pesan. 12. Klik ganda pada komponen TextBox1 dengan nama Isi_Pesan, pada pilihan Procedure Anda ganti dengan nama Keypress, kemudian ketikkan kode program seperti di bawah ini :
Baris 1
1 2 3
Private Sub isi_pesan_KeyPress(KeyAscii As Integer) If KeyAscii = 39 Then KeyAscii = 34 End If End Sub
Keterangan Kode Baris 1 - 3 Merupakan fungsi untuk mengganti ASCII keyboard 39 dengan ASCII 34. 13. Klik ganda pada komponen Image3, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 Private Sub Image3_Click() If DBNmPC = Klik ----- > Then DBNmPC.SetFocus: Exit Sub ProgressBar1.Visible = True For a = 0 To ProgressBar1.Max ProgressBar1 = a Next a ProgressBar1.Visible = False koneksi str = select * from monitor_client where nama_pc = & DBNmPC & rs.Open str, db If rs.EOF = False Then nplgn = rs.Fields(nama_pelanggan) End If str = insert into pesan(tujuan,nama_pelanggan,isi_pesan) values( & DBNmPC & , & nplgn & , & isi_pesan & )
75
14 15 16 17
Keterangan Kode Baris 1 - 6 Merupakan fungsi untuk meenjalankan komponen Progressbar1 dan menempatkan kursor ke Komponen DataCombo1 apabila teks pada DataCombo1 tidak berubah. 14. Masih pada komponen Image3, kali ini pada pilihan procedure Anda ganti dengan nama MouseDown, kemudian ketikkan kode program seperti di bawah ini :
1 2 Private Sub Image3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Image3.BorderStyle = 1 Label1.ForeColor = vbRed End Sub
Keterangan Kode Baris 1 - 2 Merupakan fungsi yang apabila komponen Image3 diklik maka properties BorderStyle bernilai Satu, dan label1 akan berwarna merah. 15. Masih pada komponen Image3, kali ini pada pilihan procedure Anda ganti dengan nama MouseDown, kemudian ketikkan kode program seperti di bawah ini :
1 2 Private Sub Image3_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Image3.BorderStyle = 0 Label1.ForeColor = vbBlack End Sub
Keterangan Kode Baris 1 - 2 Merupakan fungsi yang apabila komponen Image3 diklik maka properties BorderStyle bernilai Nol, dan Label1 akan berwarna hitam.
16. Klik ganda pada komponen Timer1, kemudian ketikkan kode program seperti di bawah ini:
76
1 2 3 4
Private Sub Timer1_Timer() Image1.Left = Val(Image1.Left) - 120 If Image1.Left = 480 Then Image1.Left = 2400 End If End Sub
Keterangan Kode Baris 1 - 4 Merupakan fungsi untuk membuat animasi bergedari kiri ke kanan pada komponen Image1
17. Klik ganda pada komponen Timer2, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 Private Sub Timer2_Timer() If Image2.Visible = False Then Image2.Visible = True Else Image2.Visible = False End If End Sub
Keterangan Kode Baris 1 - 4 Merupakan fungsi untuk membuat animasi berkelip pada komponen Image2
2. Kemudian Anda aktifkan Form Code dengan menekan tombol View , kemudian ketikkan kode program seperti di bawah ini :
Option Explicit Const HWND_TOPMOST = -1 Const HWND_NOTOPMOST = -2 Const SWP_NOSIZE = &H1 Const SWP_NOMOVE = &H2 Const SWP_NOACTIVATE = &H10 Const SWP_SHOWWINDOW = &H40
77
10
11 12 13 14 15
Private Declare Sub SetWindowPos Lib user32 (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) Private Declare Function Putfocus Lib user32 Alias SetFocus (ByVal hwnd As Long) As Long Private Declare Function ShowCursor Lib user32 (ByVal bShow As Long) As Long Private Declare Function ShowWindow Lib user32 (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long Private Declare Function FindWindow Lib user32 Alias FindWindowA (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function BringWindowToTop Lib user32 (ByVal hwnd As Long) As Long Private Declare Function PaintDesktop Lib user32 (ByVal hdc As Long) As Long Dim db As ADODB.Connection Dim rs As ADODB.Recordset Dim str, tgl, jmlonline, noonline, ket As String
Keterangan Kode Baris 1 Merupakan fungsi yang akan mewajibkan Anda untuk mendeklarasikan semua variabel.
Baris 2 - 7 Merupakan fungsi yang akan mengatur posisi form agar selalu berada diatas. Baris 8 - 11 Merupakan fungsi API yang akan mendukung deklarasi dari kode baris ke dua sampai ke tujuh. Baris 12 Merupakan fungsi API yang akan mencetak tampilan dekstop pada lembar form.
Baris 13-14 Merupakan fungsi untuk mendeklarasikan variabel Db dan Rs sebagai fungsi untuk mengkoneksikan database ke form. Baris 15 Merupakan fungsi untuk mendeklarasikan variabel Str, tgl, jmlonline, noonline, ket dengan tipe data String.
3. Selanjutnya buat Procedure dengan nama koneksi, kemudian ketikkan kode program seperti di bawah ini :
78
1 2 3 4 5
Sub koneksi() Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open DSN=Maxiwarnet End Sub
Keterangan Kode Baris 1 Baris 2 - 4 Merupakan fungsi untuk membuka database yang telah dibuat berdasarkan nama DSN. Baris 5 Akhir dari Sub koneksi Membuat sub sendiri dengan nama koneksi.
5. Klik ganda pada komponen TextBox1 dengan nama TxtNama, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 5 Private Sub TxtNama_Change() If TxtNama.Text = Then Timer4.Enabled = True Else Timer4.Enabled = False End If End Sub
Keterangan Kode Baris 1 - 5 Merupakan fungsi untuk mengaktifkan Timer4 apabila kolom teks Txtnama kosong dan sebaliknya menonaktifkan Timer4 apabila kolom teks dengan nama TxtNama tidak kosong.
6. Klik ganda pada komponen LaVolpeButton1 dengan nama caption Ok, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 5 4 5 6 7 Private Sub CmdMulai_Click() If TxtNama = Then TxtNama.SetFocus: Exit Sub str = Delete from log_in db.Execute (str) str = delete from pesan where tujuan = & Winsock1. LocalHostName & db.Execute (str) proses tgl = StatusBar1.Panels(3) koneksi str = select * from jumlah_pc_online where Tanggal = & tgl &
79
8 9 10 11 12 13 14 15 16 17 18 19 20 21
22 23 24 25 26 27
rs.Open str, db If rs.EOF = False Then jmlonline = rs.Fields(Jumlah) noonline = Val(jmlonline) + 1 str = Update jumlah_pc_online set jumlah = & noonline & where tanggal = & tgl & db.Execute (str) Else tgl = StatusBar1.Panels(3) noonline = 1 str = insert into jumlah_pc_online(jumlah,tanggal)values( & noonline & , & tgl & ) db.Execute (str) End If ket = Umum str = insert into monitor_client(Tanggal,Nama_pc,nama_ pelanggan,jam_masuk,kategori_pelanggan)values( & StatusBar1.Panels(3) & , & Winsock1.LocalHostName & , & TxtNama.Text & , & StatusBar1.Panels(4) & , & ket & ) db.Execute (str) str = insert into log_in (Nama_pc,Nama_pelanggan,jam_ masuk)values( & Winsock1.LocalHostName & , & TxtNama.Text & , & StatusBar1.Panels(4) & ) db.Execute (str) proses Unload Me Monitor_Harga.Show End Sub
Keterangan Kode Baris 1 Merupakan fungsi apabila kolom teks dengan nama TxtNama kosong maka kursor akan fokus.
Baris 2 - 13 Merupakan fungsi untuk menghapus seluruh isi berdasarkan nama tujuan dan menampilkan jumlah PC Online pada kolom StatusBar1 Panels ke tiga berdaasarkan tanggal. Baris 14-24 Merupakan fungsi untuk menginput jumlah PC Online, menginput data Client ke dalam tabel Monitor Client dan Log In Client.
Baris 25-27 Merupakan fungsi untuk memanggil procedure proses, keluar dari form Log In dan menampilkan Menu Monitor Harga.
80
7. Klik ganda pada komponen LaVolpeButton2 dengan nama caption ShutDown, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub CmdShutDown_Click() Shell shutdown -s -f -t 0 End Sub
8. Klik ganda pada komponen Picture1, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 5 Private Sub Picture1_Click() Timer4.Enabled = True Picture1.BorderStyle = 1 TxtNama.Visible = True CmdMulai.Visible = True TxtNama.SetFocus End Sub
Keterangan Kode Baris 1 Baris 2 - 5 Merupakan fungsi untuk mengatur BorderStyle Dari Picture1, menampilkan TextBox dengan nama TxtNama dan tombol LaVolpeButton1 dengan nama CmdMulai. Serta membuat kursor fokus ke kolom teks TxtNama. Merupakan fungsi untuk mengaktifkan Timer4
9. Masih pada komponen Picture1, kali ini pada pilihan procedure Anda ganti dengan nama MouseMove, kemudian ketikkan kode program seperti di bawah ini:
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Timer3.Enabled = True End Sub
Keterangan Kode Baris 1 Merupakan fungsi untuk mengaktifkan Timer3 10. Klik ganda pada komponen Timer1, kemudian ketikkan kode program seperti berikut ini:
81
Keterangan Kode Baris 1 Merupakan fungsi untuk menampilkan waktu pada komponen StatusBar1 Panel ke empat.
11. Klik ganda pada komponen Timer2, kemudian ketikkan kode program seperti berikut ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 Private Sub Timer2_Timer() PaintDesktop Me.hdc BringWindowToTop Me.hwnd SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE Dim H As Long H = FindWindow(#32770, Windows Task Manager) If H Then ShowWindow H, 0 H = FindWindow(#32771, vbNullString) If H Then ShowWindow H, 0 H = FindWindow(BaseBar, vbNullString) If H Then ShowWindow H, 0 H = FindWindow(Shell_TrayWnd, vbNullString) If H Then ShowWindow H, 0 Rem ShowCursor False End Sub
Keterangan Kode Baris 1 Merupakan fungsi API yang akan mencetak tampilan dekstop ke lembar form Log In client.
Baris 2 - 3 Merupakan fungsi API yang akan mengatur tampilan form agar selalu berada di atas. Baris 4 - 13 Merupakan fungsi API yang akan memblok tampilan Windows Task manager dan Basebar.
12. Klik ganda pada komponen Timer3, kemudian ketikkan kode program seperti berikut ini:
1 2 3 4 Private Sub Timer3_Timer() If Picture1.BackColor = vbRed Then Picture1.BackColor = vbBlack Else Picture1.BackColor = vbRed
82
Keterangan Kode Baris 1-5 Merupakan fungsi untuk membuat animasi berkel pada properties BackColor komponen Picture1.
13. Klik ganda pada komponen Timer4, kemudian ketikkan kode program seperti berikut ini:
1 2 3 4 Private Sub Timer4_Timer() If TxtNama.Text = Then TxtNama.Visible = False CmdMulai.Visible = False End If End Sub
Keterangan Kode Baris 1-4 Merupakan fungsi untuk menghilangkan TextBox1 dengan nama TxtNama dan LaVolpeButton1 dengan caption Ok, apabila kolom teks dengan nama TxtNama.
1 2 3 4 5
Keterangan Kode
Baris 1 - 2 Merupakan fungsi untuk mendeklarasikan variabel Db dan Rs sebagai fungsi untuk mengkoneksikan database ke form.
83
Baris 3 - 5 Merupakan fungsi untuk mendeklarasikan variabel str dngan tipe data String, mulai dengan tipe data Date, dan Durasi dengan tipe data Double.
3. Selanjutnya buat Procedure dengan nama koneksi, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 Sub koneksi() Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open DSN=Maxiwarnet End Sub
Keterangan Kode Baris 1 Baris 2 - 4 Merupakan fungsi untuk membuka database yang telah dibuat berdasarkan nama DSN. Baris 5 Akhir dari Sub koneksi Membuat sub sendiri dengan nama koneksi.
4. Selanjutnya buat lagi Procedure dengan nama Proses, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 7 8 9 10 11 Sub proses() koneksi str = select * from jumlah_pc_online db.Execute (str) Adodc1.Refresh str = select * from client_log_out db.Execute (str) Adodc2.Refresh str = select * from pesan db.Execute (str) Adodc3.Refresh End Sub
Keterangan Kode Baris 1-11 Merupakan fungsi untuk merefresh tabel Jumlah_pc_online, Client_Log_Out, dan Pesan.
5. Selanjutnya buat Procedure lagi dengan nama Identitas, kemudian ketikkan kode program seperti di bawah ini :
1 2 Sub identitas() LblNmPC = Winsock1.LocalHostName
84
End Sub
6. Selanjutnya buat Procedure lagi dengan nama Nama_Plgn, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 7 8 9 Sub nama_plgn() koneksi str = select * from log_in rs.Open str, db If rs.EOF = False Then Lblnmplgn = rs.Fields(nama_pelanggan) lblmulai = rs.Fields(jam_masuk) End If End Sub
Keterangan Kode Baris 1 - 9 Merupakan fungsi untuk menampilkan nama pelanggan dan jam masuk pada komponen Lblnmplgn dan Lblmulai berdasarkan record yang sudah tersimpan di Menu Log In.
7. Selanjutnya buat Procedure lagi dengan nama Tampil_Pesan, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 7 8 9 10 Sub tampil_pesan() koneksi str = select * from pesan where tujuan = & LblNmPC & rs.Open str, db If rs.EOF = False Then Isi_Pesan.Show Else Exit Sub End If End Sub
Keterangan Kode Baris 1 - 9 Merupakan fungsi untuk menampilkan nama pelanggan dan jam masuk pada komponen Lblnmplgn dan Lblmulai berdasarkan record yang sudah tersimpan di Menu Log In.
8. Selanjutnya buat Procedure lagi dengan nama Perhitungan_Harga, kemudian ketikkan kode program seperti berikut ini :
85
1 2 3 4 5 6 7 8 9 10
Sub perhitungan_harga() koneksi ta = select * from data_harga rs.Open ta, db If rs.EOF = False Then hrgperjam = rs.Fields(harga_per_jam) lbldurasi1 = Format(lbldurasi, hhmmss) harga = hrgperjam * lbldurasi1 / 6000 Lblhrg = Format(harga, Rp #,#,00) End If End Sub
Keterangan Kode Baris 1 - 10 Merupakan fungsi untuk meghitung total harga berdasarkan durasi pemakaian per jam.
9. Klik ganda pada komponen Image1, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 Private Sub Image1_Click() tgl = Format(Date, DD/MM/YYYY) koneksi str = select * from jumlah_pc_online where Tanggal = & tgl & rs.Open str, db If rs.EOF = False Then jml_online = rs.Fields(Jumlah) no_online = Val(jml_online) - 1 str = Update jumlah_pc_online set jumlah = & no_online & where tanggal = & tgl & db.Execute (str) Lblhrg1 = Mid(Lblhrg, 4, 20) Lblhrg2 = Format(Lblhrg1, #) Lblhrg3 = Val(Lblhrg2) / 100 str = insert into client_log_out (Nama_PC,Nama_ Pelanggan,Jam_Mulai,Jam_Berhenti,Durasi,total_ harga,Tanggal)values( & LblNmPC & , & Lblnmplgn & , & lblmulai & , & Lblwkt & , & lbldurasi & , & Lblhrg3 & , & tgl & ) db.Execute (str) proses End If Shell shutdown -r -f -t 0 End Sub
14 15 16 17
86
Keterangan Kode Baris 1 - 17 Merupakan fungsi untuk mengakhiri Bill Client, dengan terlebih dahulu menginput data client yang berhenti. Baris 18 Merupakan fungsi untuk merestart komputer.
10. Masih pada komponen Image1, kali ini pada pilihan procedure Anda ganti dengan nama MouseDown, kemudian ketikkan kode program seperti di bawah ini:
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Image1.BorderStyle = 1 Label1.ForeColor = vbRed End Sub
1 2
Keterangan Kode
11. Masih pada komponen Image1, kali ini pada pilihan procedure Anda ganti dengan nama MouseUp, kemudian ketikkan kode program seperti di bawah ini:
Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Image1.BorderStyle = 0 Label1.ForeColor = vbBlack End Sub
Baris 1 - 2 Merupakan fungsi untuk merubah properties BorderStyle dan merubah warna Label1 menjadi warna merah.
1 2
Keterangan Kode
12. Klik ganda pada komponen Image2, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub Image2_Click() Me.WindowState = 1 End Sub
Baris 1 - 2 Merupakan fungsi untuk merubah properties BorderStyle dan merubah warna Label1 menjadi warna hitam.
87
Baris 1
13. Masih pada komponen Image2, kali ini pada pilihan procedure Anda ganti dengan nama MouseDown, kemudian ketikkan kode program seperti di bawah ini:
Private Sub Image2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Image2.BorderStyle = 1 Label2.ForeColor = vbRed End Sub
1 2
Keterangan Kode
14. Masih pada komponen Image2, kali ini pada pilihan procedure Anda ganti dengan nama MouseUp, kemudian ketikkan kode program seperti di bawah ini:
Private Sub Image2MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Image2.BorderStyle = 0 Label2.ForeColor = vbBlack End Sub
Baris 1 - 2 Merupakan fungsi untuk merubah properties BorderStyle dan merubah warna Label2 menjadi warna merah.
1 2
Keterangan Kode
15. Klik ganda pada komponen Timer1, kemudian ketikkan kode program seperti di bawah ini:
1 2 Private Sub Timer1_Timer() Me.WindowState = 1 Timer1.Enabled = False End Sub
Baris 1 - 2 Merupakan fungsi untuk merubah properties BorderStyle dan merubah warna Label2 menjadi warna hitam.
88
Keterangan Kode
Baris 1 - 2 Merupakan fungsi untuk meminimize menu dan menonaktifkan fungsi Timer1.
16. Klik ganda pada komponen Timer2, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub Timer2_Timer() Lblwkt = Format(Time, HH:MM:SS) End Sub
Keterangan Kode
Baris 1
17. Klik ganda pada komponen Timer3, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub Timer3_Timer() Timer3.Enabled = False End Sub
Keterangan Kode
Baris 1
18. Klik ganda pada komponen Timer4, kemudian ketikkan kode program seperti di bawah ini:
1 Private Sub Timer4_Timer() tampil_pesan End Sub
Keterangan Kode
Baris 1
19. Klik ganda pada komponen Timer5, kemudian ketikkan kode program seperti di bawah ini:
1 2 Private Sub Timer5_Timer() mulai = Format(lblmulai, hh:mm:ss) durasi = Time - mulai
89
Keterangan Kode
1 2 3
Keterangan Kode
Baris 3
Baris 1 - 2 Merupakan fungsi untuk mendeklarasikan variabel Db dan Rs sebagai fungsi untuk mengkoneksikan database ke form. Merupakan fungsi untuk mendeklarasikan variabel dengan nama Str dengan type data String.
3. Selanjutnya buat Procedure dengan nama koneksi, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 Sub koneksi() Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open DSN=Maxiwarnet End Sub
Keterangan Kode Baris 1 Baris 2 - 4 Merupakan fungsi untuk membuka database yang telah dibuat berdasarkan nama DSN. Baris 5 Akhir dari Sub koneksi Membuat sub sendiri dengan nama koneksi.
90
4. Selanjutnya buat Procedure dengan nama Proses, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 Sub proses() koneksi str = select * from pesan db.Execute (str) Adodc1.Refresh End Sub
Keterangan Kode Baris 1 Baris 2 - 4 Merupakan fungsi untuk membuka database yang telah dibuat berdasarkan nama DSN. Baris 5 Akhir dari Sub koneksi Membuat sub sendiri dengan nama koneksi.
5. Selanjutnya buat Procedure dengan nama Nama_Pc, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 Sub nama_pc() np = Winsock1.LocalHostName End Sub
Keterangan Kode Baris 1 Merupakan fungsi untuk menampilkan nama sistem komputer
6. Selanjutnya buat Procedure dengan nama Tampil_Pesan, kemudian ketikkan kode program seperti di bawah ini :
1 2 3 4 5 6 7 Sub tampil_pesan() nama_pc proses koneksi str = select * from pesan where tujuan = & np & rs.Open str, db If rs.EOF = False Then pesan = rs.Fields(isi_pesan) Nplgn = rs.Fields(nama_pelanggan) End If End Sub
Keterangan Kode Baris 1 Merupakan fungsi untuk menampilkan isi pesan dengan terlebih dahulu menampilkan procedure
91
Keterangan Kode Baris 1 Merupakan fungsi untuk memblok seluruh ASCII pada keyboard
8. Klik ganda pada komponen Image1, pada pilihan Procedure Anda pilih Keypress, kemudian ketikkan kode program seperti di bawah ini:
1 2 3 4 Private Sub Image1_Click() str = delete from pesan where tujuan = & np & db.Execute (str) proses Unload Me End Sub
Keterangan Kode Baris 1-4 Merupakan fungsi untuk menghapus isi pesan bedasarkan tujuan.
9. Masih pada komponen Image1, kali ini pada pilihan procedure Anda ganti dengan nama MouseDown, kemudian ketikkan kode program seperti di bawah ini:
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Image1.BorderStyle = 1 Label3.ForeColor = vbRed End Sub
1 2
Keterangan Kode
10. Masih pada komponen Image1, kali ini pada pilihan procedure Anda ganti dengan nama MouseUp, kemudian ketikkan kode program seperti di bawah ini:
Baris 1 - 2 Merupakan fungsi untuk merubah properties BorderStyle dan merubah warna Label3 menjadi warna merah.
92
1 2
Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Image1.BorderStyle = 0 Label3.ForeColor = vbBlack End Sub
Keterangan Kode
Baris 1 - 2 Merupakan fungsi untuk merubah properties BorderStyle dan merubah warna Label3 menjadi warna hitam.
Perhatian : Aplikasi Billing Warnet ini belum memiliki keamanan yang kuat, maksud dari pembuatan aplikasi ini adalah untuk membahas kinerja dari pembuatan Billing Warnet sederhana pada umumnya. Untuk pembuatan laporan dengan menggunakan Crystal Report 8.5 Anda bisa lihat pada CD Video Tutorial sertaan buku ini.
4.5 Soal
Bab 4 Aplikasi Billing Warnet
Sebagai bahan latihan, Aplikasi Billing Warnet ini masih sederhana dengan sistem keamanan yang masih rendah. Untuk mengembangkan lebih baik lagi Anda dapat mencoba soal di bawah ini, atau Anda bisa berkreasi sendiri sesuai dengan keinginan Anda. A. Membuat Harga Berdasarkan Durasi Dan record Data Harga Pada aplikasi Billing Warnet ini, Anda buat suatu perhitungan biaya rental berdasarkan record data harga per jam dari tabel Data_Harga dengan perbedaan tipe pelanggan dan lamanya durasi. b. Membuat Harga Berdasarkan Durasi Dan Kategori Pelanggan Pada aplikasi Billing Warnet ini, Anda buat suatu perhitungan biaya rental berdasarkan record tabel Data Harga. Dan harga ditentukan dari tabel record Data Harga berdasarkan kategori pelanggan baik itu berdasarkan Nama PC Vip ataupun yang lainya.
93