billing internet berbasis client server menggunakan internet direct (indy) 8.0.25
TRANSCRIPT
BILLING WARNET BERBASIS CLIENT SERVER
MENGGUNAKAN INTERNET DIRECT (INDY) 8.0.25
LAPORAN TUGAS AKHIR
Disusun Untuk Memenuhi Persyaratan Kelulusan Pada Tugas Akhir Semester VI Di Jurusan Teknik Informatika
Politeknik Pos Indonesia
Disusun oleh :
RINTO FAHLEVI
1.02.2.3.224
TEKNIK INFORMATIKA
POLITEKNIK POS INDONESIA
BANDUNG
2005
LEMBAR PENGESAHAN
BILLING WARNET BERBASIS CLIENT SERVER
MENGGUNAKAN INTERNET DIRECT (INDY) 8.0.25
Disusun oleh :
RINTO FAHLEVI
1.02.2.3.224
Bandung, 20 Agustus 2005
Menyetujui
Anggota Penguji
( Dini Hamidin, S.Si, MBA )
NIK : 10375056
Ketua Penguji / Dosen Pembimbing
( Saepudin Nirwan, S.Kom )
NIP : 450900027
Koordinator TA
( Supriyady, ST )
NIP : 450900028
Ketua Jurusan Teknik Informatika
( Santoso, S.Si )
NIK : 10264040
KATA PENGANTAR
Syukur alhamdulillah, Penyusun panjatkan puji dan syukur kepada Allah
SWT, yang telah memberikan hidayah, petunjuk, kesehatan, dan kemudahan-Nya
sehingga Penyusun dapat menyelesaikan laporan matakuliah Tugas Akhir ini sesuai
tepat pada waktunya.
Laporan ini dibuat dalam rangka memenuhi persyaratan kelulusan pada
Tugas Akhir semester VI di Jurusan Teknik Informatika Politeknik Pos Indonesia.
Penyusun berharap semoga laporan ini bukan saja sebagai salah satu tugas semata
melainkan juga dapat berguna dan bermanfaat baik bagi penyusun khususnya dan
pembaca pada umumnya.
Penyusun ingin menyampaikan ucapan terima kasih kepada pihak-pihak yang
telah membantu menyelesaikan pengerjaan aplikasi dan dokumentasi, antara lain:
1. Saepudin Nirwan, S.Kom, pembimbing utama dalam pembuatan tugas akhir.
2. Ir.Anggoro, MM, pembimbing pendamping dalam pembuatan tugas akhir.
3. Santoso, S.Si, Ketua Jurusan Teknik Informatika Politeknik Pos Indonesia.
4. Keluarga tercinta, Ayah dan Ibu yang tiada henti-hentinya memberikan do’a,
motivasi, serta dukungan moril maupun materil bagi penulis.
5. Warung internet Aditama, yang telah menyediakan sarana dan prasarana dalam
mengimplementasikan Billing Warnet Berbasis Client Server Menggunakan
Internet Direct (Indy) 8.0.25.
6. Farman "Kocok Jaya" Kosim, atas saran, kritik dan pelajaran yang sangat
membantu penulis dalam mempelajari pemrograman Borland Delphi.
Penyusun menyadari bahwa laporan ini masih jauh dari sempurna karena
keterbatasan penyusun sebagai mahasiswa. Oleh karena itu, dengan segala
kerendahan hati, kritik dan saran yang membangun dalam menyempurnakan laporan
Tugas Akhir ini dengan senang hati penyusun menerimanya.
Akhir kata Penyusun sampaikan pula harapan semoga laporan ini dapat
memberikan manfaat yang cukup berarti khususnya bagi Penyusun dan bagi
pembaca, khususnya teman-teman mahasiswa Politeknik Pos Indonesia. Semoga
Allah SWT memberikan taufik dan hidayah-Nya kepada kita semua. Amin
Bandung, 20 Agustus 2005
Penyusun
ABSTRAK
Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25 dibuat untuk memudahkan proses monitoring komputer client yang terhubung di dalam sebuah jaringan Local Area Network (LAN) dan biasanya digunakan di warung internet. Proses monitoring dapat dilakukan langsung dari komputer server.
Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25 dapat berfungsi sebagai aplikasi pengolahan data. Proses pengolahan data tersebut dapat dilakukan dengan mudah dan cepat karena Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25 memiliki salah satu kelebihan yaitu tampilan yang user friendly.
Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) menggunakan MySQL sebagai database server-nya. Sehingga data-data administrator, operator, anggota dan nonanggota yang berkaitan dengan warung internet dapat terjaga keamanannya, terintegrasi, serta dapat dengan mudah diolah dan diakses.
Dengan adanya sistem billing, user juga dapat dengan mudah mengatur serta mengkonfigurasi sendiri jumlah biaya atau jumlah waktu yang ingin mereka gunakan dalam mengakses internet. Hal ini mungkin karena Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25 menyediakan fasilitas yang dapat digunakan oleh user untuk mengatur dan mengkonfigurasi jumlah biaya serta jumlah waktu pemakaian internet.
ABSTRACT
Internet Billing Based On Client Server Using Internet Direct (Indy) 8.0.25 is built to facilitate and make easy the monitoring process of client computers attached to a Local Area Network (LAN) and it is usually used in internet rental store. Monitoring process can be done directly from a computer server.
Internet Billing Based On Client Server Using Internet Direct (Indy) 8.0.25 can function as data processing application. The Data Processing can be done easier and faster because all the existing data are integrated at the server. One of other excess of this application is that it has a user friendly interface.
Internet Billing Based On Client Server Using Internet Direct (Indy) 8.0.25 using MySQL as the database server. Therefore the data related to administrator, operator, member and nonmember of internet rental store can be protected, integrated, managed and accessed easily.
With billing system, user can arrange and configure the price and the duration they want to use in accessing the internet. It is possible because Internet Billing Based On Client Server Using Internet Direct (Indy) 8.0.25 provides facility that can be used by user in arranging the price or the time for internet access.
DAFTAR ISI
Halaman
LEMBAR JUDUL i
LEMBAR PENGESAHAN ii
KATA PENGANTAR iii
ABSTRAK v
ABSTRACT vi
DAFTAR ISI vii
DAFTAR SIMBOL x
DAFTAR TABEL xi
DAFTAR GAMBAR xiv
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah 1
1.2 Maksud dan Tujuan 2
1.3 Identifikasi Masalah 3
1.4 Ruang Lingkup 4
1.5 Sistematika Penulisan 4
BAB II LANDASAN TEORI
2.1 Internet Direct (Indy) 8.0.25 6
2.2 MySQL 7
2.3 Basis Data 8
2.4 Kamus Data 9
2.5 Entity Relationship (ER) 9
2.6 Borland Delphi 12
2.7 DFD (Data Flow Diagram) 13
BAB III ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem Informasi 16
3.1.1 Analisis Sistem Berjalan 16
3.1.1.1 Deskripsi Prosedur Kerja 16
3.1.1.2 Deskripsi Dokumen 17
3.1.1.3 Identifikasi Kebutuhan Pemakai 19
3.1.2 Analisis Kebutuhan Sistem 20
3.1.2.1 Kebutuhan Informasi 20
3.1.2.2 Kebutuhan Aplikasi 20
3.1.2.3 Kebutuhan Perangkat Keras 20
3.1.3 Analisis Kebutuhan Perangkat Lunak 21
3.1.3.1 Deskripsi Kebutuhan Fungsional 21
3.1.3.2 Pemodelan Kebutuhan Fungsiolan 22
3.1.5 Model Data Konseptual 53
3.1.5.1 Conceptual Data Model (CDM) 53
3.1.5.2 Physical Data Model (PDM) 53
3.1.5.3 Deskripsi Tabel 54
3.1.5.4 ER Diagram 57
3.2 Perancangan Sistem Informasi 58
3.2.1 Perancangan Prosedur 58
3.2.2 Perancangan Perangkat Keras 60
3.2.2.1 Konfigurasi Perangkat Keras 60
3.2.2.2 Spesifikasi Perangkat Keras 61
3.2.2.3 Spesifikasi Perangkat Lunak Sistem 61
3.2.2.4 Perancangan Perangkat Lunat 62
BAB IV IMPLEMENTASI DAN PENGUJIAN
4.1 IMPLEMENTASI 79
4.1.1 Lingkungan Implementasi 79
4.1.2 Hasil Implementasi 80
4.1.2.1 Implementasi Basis Data 80
4.1.2.2 Implementasi Modul Program 81
4.1.2.3 Implementasi Antar Muka Pemakai 85
4.1.2.4 Source Code Aplikasi 86
4.1.2.5 Tampilan Antar Muka (Interface) 110
4.2 PENGUJIAN
4.2.1 Lingkungan Pengujian 119
4.2.2 Pelaksanaan Pengujian 120
4.2.3 Hasil Pengujian
121
BAB V KESIMPULAN DAN SARAN
5.1 Kesimpulan 126
5.2 Saran 127
Daftar Pustaka
Lampiran
DAFTAR SIMBOL
Simbol Pada Data Flow Diagram
Simbol Keterangan
Proses
Aliran Data / Informasi
Proses
External Entity
Simbol pada Entity Relantionship
Atribut
Aliran data
Entitas
Himpunan Relasi
DAFTAR TABEL
Nomor Judul Tabel Halaman
Tabel 3.1 Formulir Pendaftaran Anggota 18
Tabel 3.2 Data Pemakaian Internet 18
Tabel 3.3 Laporan Pemakaian Internet 19
Tabel 3.4 Analisis Kebutuhan Sistem 20
Tabel 3.5 Analisis Kebutuhan Perangkat Lunak Server 21
Tabel 3.6 Analisis Kebutuhan Perangkat Lunak Server (Lanjutan) 22
Tabel 3.7 Analisis Kebutuhan Perangkat Lunak Client 22
Tabel 3.8 Proses 1.1.1 Validasi Login Administrator 30
Tabel 3.9 Proses 1.1.2 Validasi Login Operator 31
Tabel 3.10 Proses 1.1.3 Validasi Login Anggota 32
Tabel 3.11 Proses 1.1.4 Validasi Login Non Anggota 33
Tabel 3.12 Proses 1.2.1 Validasi Logout Administrator 34
Tabel 3.13 Proses 1.2.2 Validasi Logout Operator 35
Tabel 3.14 Proses 1.3.1.1 Input Data Operator 36
Tabel 3.15 Proses 1.3.1.2 Cari Data Operator 37
Tabel 3.16 Proses 1.3.1.3 Edit Data Operator 38
Tabel 3.17 Proses 1.3.1.4 Hapus Data Operator 39
Tabel 3.18 Proses 1.3.2.1 Input Data Anggota 40
Tabel 3.19 Proses 1.3.2.2 Cari Data Anggota 41
Tabel 3.20 Proses 1.3.2.3 Edit Data Anggota 42
Tabel 3.21 Proses 1.3.2.4 Hapus Data Anggota 43
Tabel 3.22 Proses 1.3.2.5 Cetak Laporan Data Anggota 44
Tabel 3.23 Proses 1.3.3.1 Tampil Biaya Pemakaian Internet 45
Tabel 3.24 Proses 1.3.3.2 Cetak Laporan Biaya Pemakaian Internet 46
Tabel 3.25 Proses 1.3.4.1 Input Data Harga 47
Tabel 3.26 Proses 1.3.4.2 Cari Data Harga 48
Tabel 3.27 Proses 1.3.4.3 Edit Data Harga 49
Tabel 3.28 Proses 1.3.4.4 Hapus Data Harga 50
Tabel 3.29 Arus Data 51
Tabel 3.30 Arus Data (Lanjutan) 52
Tabel 3.31 Tabel T_Harga 54
Tabel 3.32 Tabel T_User 54
Tabel 3.33 Tabel T_Operator 55
Tabel 3.34 Tabel T_Anggota 55
Tabel 3.35 Tabel T_Biaya_Pemakaian 55
Tabel 3.36 Tabel T_Administrator 56
Tabel 3.37 Tabel T_IP 56
Tabel 3.38 Spesifikasi Perangkat Lunak Sistem 61
Tabel 3.39 Keterangan Gambar Tata Letak Layar Login 64
Tabel 3.40 Keterangan Gambar Tata Letak Layar Struktur Menu
Program
65
Tabel 3.41 Keterangan Gambar Tata Letak Layar Lock/Unlock 66
Tabel 3.42 Keterangan Gambar Tata Letak Layar Shutdown 66
Tabel 3.43 Keterangan Gambar Tata Letak Layar Setting Biaya 67
Tabel 3.44 Keterangan Gambar Tata Letak Layar Daftar Baru 68
Tabel 3.45 Keterangan Gambar Tata Letak Layar Cari/Edit
Anggota
69
Tabel 3.46 Keterangan Gambar Tata Letak Layar Tabel Anggota 70
Tabel 3.47 Keterangan Gambar Tata Letak Layar Tambah Operator 71
Tabel 3.48 Keterangan Gambar Tata Letak Layar Cari/Edit
Operator
71
Tabel 3.49 Keterangan Gambar Tata Letak Layar Cari/Edit
Operator (Lanjutan)
72
Tabel 3.50 Keterangan Gambar Tata Letak Layar Tabel Operator 72
Tabel 3.51 Keterangan Gambar Tata Letak Layar Cetak Laporan
Data Pemakaian
73
Tabel 3.52 Keterangan Gambar Tata Letak Layar Chatting 74
Tabel 3.53 Keterangan Gambar Tata Letak Layar Ganti Password 74
Tabel 3.54 Keterangan Gambar Tata Letak Layar Login 76
Tabel 3.55 Keterangan Gambar Tata Letak Layar Login (Lanjutan) 77
Tabel 3.56 Keterangan Gambar Tata Letak Informasi Biaya Client 78
Tabel 3.57 Keterangan Gambar Tata Letak Layar Konfigurasi
Client
78
Tabel 4.1 Implementasi Basis Data 80
Tabel 4.2 Implementasi Modul Program Aplikasi Server 81
Tabel 4.5 Implementasi Modul Program User 84
Tabel 4.6 Hasil Implementasi Antarmuka Pemakai Aplikasi Server 85
Tabel 4.7 Hasil Implementasi Antarmuka Pemakai Aplikasi Client 85
Tabel 4.8 Bentuk - bentuk pengujian yang dilaksanakan 120
Tabel 3.9 Hasil Pelaksanaan Pengujian Validasi 121
Tabel 4.13 Hasil Pelaksanaan Pengujian Validasi 125
DAFTAR GAMBAR
Nomor Judul Gambar Halaman
Gambar 3.1 Flowchart Sistem Berjalan 17
Gambar 3.2 Konteks Diagram (Context Diagram) 23
Gambar 3.3 Diagram Alir Data Tingkat - 1 24
Gambar 3.4 DAD Tingkat - 2 Pengolahan Data Server 25
Gambar 3.5 DAD Tingkat - 3 Validasi Login 26
Gambar 3.6 DAD Tingkat - 3 Validasi Logout 26
Gambar 3.7 DAD Tingkat - 3 Pengolahan Data 27
Gambar 3.8 DAD Tingkat - 4 Pengolahan Data Operator 27
Gambar 3.9 DAD Tingkat - 4 Pengolahan Data Anggota 28
Gambar 3.10 DAD Tingkat - 4 Pengolahan Data Harga 28
Gambar 3.11 DAD Tingkat - 4 Pengolahan Data Biaya Pemakaian
Internet
29
Gambar 3.12 CDM Diagram 53
Gambar 3.13 PDM Diagram 53
Gambar 3.14 ER Diagram 57
Gambar 3.15 Deskripsi Prosedur Kerja Baru 59
Gambar 3.16 Konfigurasi Perangkat Keras 60
Gambar 3.17 Struktur Menu 62
Gambar 3.22 Tata Letak Layar Login 64
Gambar 3.23 Tata Letak Layar Struktur Menu Program 65
Gambar 3.24 Tata Letak Layar Lock/ Unlock Client 65
Gambar 3.25 Tata Letak Layar Shutdown 66
Gambar 3.26 Tata Letak Layar Setting Biaya 67
Gambar 3.27 Tata Letak Layar Daftar Baru 68
Gambar 3.28 Tata Letak Layar Cari/ Edit Anggota 69
Gambar 3.29 Tata Letak Layar Tabel Anggota 70
Gambar 3.30 Tata Letak Layar Tambah Operator 70
Gambar 3.31 Tata Letak Layar Cari/ Edit Operator 71
Gambar 3.32 Tata Letak Layar Tabel Operator 72
Gambar 3.33 Tata Letak Layar Cetak Laporan Data Pemakaian 73
Gambar 3.34 Tata Letak Layar Chatting 73
Gambar 3.35 Tata Letak Layar Ganti Password 74
Gambar 3.36 Tata Letak Layar Login 75
Gambar 3.37 Tata Letak Informasi Biaya Client 77
Gambar 3.38 Tata Letak Layar Konfigurasi Client 78
Gambar 4.1 Form Splash 110
Gambar 4.2 Form Login 110
Gambar 4.3 Form Menu Utama 111
Gambar 4.4 Form Ubah Password 111
Gambar 4.5 Tab Status Koneksi 112
Gambar 4.6 Tab Konfigurasi 113
Gambar 4.7 Tab Daftar Transaksi 113
Gambar 4.8 Tab Daftar Error Message 114
Gambar 4.9 Form Data Anggota 114
Gambar 4.10 Form Pengolahan Data Operator 115
Gambar 4.11 Form Pembuatan Laporan 115
Gambar 4.12 Form Cetak Struk Pembayaran 116
Gambar 4.13 Form Chatting Server 116
Gambar 4.14 Form Utama Client 117
Gambar 4.15 Form Daftar Biaya 118
Gambar 4.16 Form Chatting Client 118
BAB I
PENDAHULUAN
I.1 Latar Belakang Masalah
Dewasa ini internet sudah bukan merupakan hal yang asing dan baru lagi. Kata
– kata internet sudah sangat akrab di telinga siapa saja. Mulai dari kalangan anak–
anak yang bermain game on-line sampai kalangan orang dewasa yang berbisnis on-
line, sudah sangat mengenal dengan apa yang di sebut dengan internet. Internet
memungkinkan siapa saja untuk saling bertukar informasi tanpa harus dibatasi oleh
ruang dan waktu.
Dengan semakin berkembangnya teknologi internet tersebut, maka semakin
hari semakin banyak pula fasilitas-fasilitas internet untuk umum yang biasanya
disebut dengan warung internet atau yang biasa dikenal dengan nama Warnet, yang
hadir untuk menyediakan layanan internet bagi masyarakat, dimana masyarakat bisa
menggunakan fasilitas yang disediakan oleh warung internet tersebut dalam
mengakses layanan-layanan internet, misalnya untuk browsing, email dan lain
sebagainya.
Dengan cukup besarnya minat masyarakat dalam mempergunakan jasa warung
internet tersebut, maka untuk mengelola user atau masyarakat dalam melakukan
pemakaian terhadap perangkat komputer yang disediakan oleh warung internet,
diperlukan sebuah aplikasi yang nantinya dapat mencatat hal-hal yang bersangkutan
dengan pemakaian perangkat komputer yang disediakan oleh warung internet
tersebut.
Dari hal tersebut di atas, maka penulis mencoba untuk mengambil judul Billing
Warnet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25, dimana
nantinya aplikasi tersebut dapat dipergunakan untuk menghitung jumlah biaya
pemakaian internet oleh user.
Selain dipergunakan untuk menghitung biaya pemakaian internet oleh user,
masih terdapat beberapa fungsi dari aplikasi yang akan dibangun nantinya, yang
penjelasannya akan dijelaskan pada bab-bab selanjutnya.
I.2 Maksud dan Tujuan
Maksud dan tujuan dibangunnya aplikasi Billing Warnet Berbasis Client Server
Menggunakan Internet Direct (Indy) 8.0.25 terdiri dari beberapa hal, yaitu :
• Maksud
Membuat billing warnet berbasis Client/ Server dengan menggunakan
komponen Internet Direct (Indy) versi 8.0.25, yang merupakan salah
satu komponen yang terdapat pada Borland Delphi.
• Tujuan
o Bagi warung internet :
1. Membuat aplikasi yang nantinya dapat dipergunakan untuk
membantu dan mempermudah kerja operator atau
administrator dalam mengelola data-data user, menghitung
dan mencatat jumlah biaya pemakaian internet oleh user
serta membuat laporan untuk data-data yang terdapat pada
database server.
2. Mendeteksi pemakaian komputer client oleh user jika
terdapat user yang menggunakan komputer tersebut untuk
terhubung ke internet.
3. Administrator atau operator dapat mengatur harga
pemakaian internet untuk user yang sudah terdaftar menjadi
anggota ataupun untuk user yang tidak terdaftar menjadi
anggota, dengan mengkonfigurasi biaya pemakaian yang
tersimpan pada database yang terdapat di komputer server.
4. Administrator atau operator dapat melakukan shutdown,
restart, lock pada komputer client secara mudah dan cepat,
langsung dari komputer server.
o Bagi user :
1. User dapat mengirimkan pesan melalui aplikasi client, jika
memerlukan bantuan dari operator atau administrator.
2. User dapat mengkonfigurasi sendiri jumlah waktu yang
diperlukan dalam menggunakan internet, yang bisa
disesuaikan dengan kemampuan user berdasarkan waktu
yang dibutuhkan maupun berdasarkan jumlah dana yang
dimiliki oleh user, dan user dapat memonitor biaya
pemakaian tersebut secara real time.
I.3 Identifikasi Masalah
Identifikasi masalah dalam membangun aplikasi Billing Warnet Berbasis Client
Server Menggunakan Internet Direct (Indy) 8.0.25 antara lain adalah sebagai berikut
1. Dalam sebuah warung internet yang memiliki banyak komputer client,
administrator dan operator, pencatatan secara jumlah pemakaian internet
oleh user akan memakan waktu yang relatif cukup lama jika dibandingkan
dengan pencatatan waktu secara otomatis.
2. Tanpa adanya sistem billing pada warung internet, pemakaian komputer
client oleh user tidak dapat di deteksi. Dengan kata lain, administrator atau
operator tidak dapat mendeteksi komputer client mana yang masih di pakai
atau komputer client mana yang sudah tidak di pakai lagi oleh user.
3. Dengan pencatatan biaya yang masih secara manual, user tidak dapat
mengetahui jumlah biaya yang harus dibayarkannya secara real time. Hal
ini dapat menimbulkan masalah bagi user jika saja biaya pemakaian yang
harus dibayarkan oleh user lebih besar dari jumlah biaya yang dimiliki oleh
user tersebut.
4. Tanpa adanya sistem yang dapat mempermudah user dalam berkomunikasi
dengan operator atau administrator, user akan sulit untuk menghubungi
operator atau administrator jika saja user tersebut memerlukan bantuan
dalam pemakaian internet.
I.4 Ruang Lingkup
Ruang lingkup masalah yang akan dibahas dalam pembuatan Billing Warnet
Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25 adalah
menggunakan komponen Internet Direct (Indy) versi 8.0.25 untuk komunikasi antara
aplikasi server dan aplikasi client dalam sebuah jaringan Local Area Network
(LAN).
I.5 Sistematika Penulisan
Untuk memberikan gambaran secara jelas mengenai isi laporan secara
keseluruhan maka masalah akan disajikan dalam metodologi sebagai berikut :
Bab I, Pendahuluan. Menguraikan tentang latar belakang pembuatan aplikasi,
maksud dan tujuan pembuatan aplikasi bagi warung internet serta bagi user
pengguna internet , ruang lingkup masalah dan identifikasi masalah dalam
pembuatan Billing Warnet Berbasis Client Server Menggunakan Internet Direct
(Indy) 8.0.25, serta sistematika penulisan.
Bab II, Landasan Teori. berisi tentang uraian mengenai berbagai macam teori
dan aplikasi dari software pendukung dalam pembuatan aplikasi, seperti teori
mengenai Internet Direct (Indy), MySQL, Borland Delphi dan software lainnya.
Bab III, Analisis dan Perancangan. Menguraikan tentang analisis yaitu
meliputi uraian tentang analisis sistem yang dilakukan, perancangan sistem yang
meliputi penjelasan dari tahap-tahap merancang sistem dalam pembuatan Billing
Warnet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25.
Bab IV, Implementasi dan Pengujian. Menguraikan tentang Implementasi
yaitu meliputi kebutuhan antarmuka eksternal, antarmuka pemakai, antarmuka
perangkat keras, antarmuka perangkat lunak, antarmuka komunikasi, fungsi produk,
karakteristik pengguna, batasan aplikasi dan lingkungan operasi. Dan juga
menguraikan Pengujian perangkat lunak yaitu meliputi lingkungan pengujian,
identifikasi dan rencana pengujian dan deskripsi dan hasil uji.
Bab V, Kesimpulan dan Saran. Menguraikan tentang kesimpulan dari
keseluruhan pembuatan dan penulisan laporan Tugas Akhir, saran untuk
pengembangan dan perbaikan serta untuk implementasi aplikasi agar berjalan sesuai
pada saat pembuatannya.
BAB II
LANDASAN TEORI
2.1 Internet Direct (Indy)
Indy merupakan salah satu komponen pada Delphi yang menawarkan protokol-
protokol untuk jaringan, baik itu jaringan Local Area Network (LAN), Wide Area
Network (WAN) atau Metropolitan Area Network (internet). Secara global, Indy
memiliki dua grup komponen yang dapat dipergunakan untuk membangun aplikasi
client server. Masing-masing komponen tersebut adalah Indy Client dan Indy Server.
Indy Client dan Indy Server memiliki komponen yang dapat dipergunakan untuk
membangun aplikasi yang bersifat client server, dimana Indy Client menyediakan
komponen yang dibutuhkan untuk membangun aplikasi bagi komputer client dan
Indy Server menyediakan komponen untuk membangun aplikasi bagi komputer
server. Keunggulan dari Indy terletak pada sisi open source - nya, yang mampu
mendukung banyak bahasa pemrograman, seperti Delphi, C++, Kylix dan bahasa
pemrograman lain yang berbasiskan pada pemrograman socket. [1].
Dalam membuat Billing Warnet Berbasis Client Server Menggunakan Indy
(Internet Direct) 8.0.25, komponen Indy yang dipergunakan hanya terdiri dari
IdTCPClient untuk aplikasi pada komputer client dan IdTCPServer untuk aplikasi
pada komputer server, dan diimplementasikan dalam sebuah jaringan Local Area
Network (LAN).
Local Area Network atau LAN merupakan jaringan milik pribadi di dalam
sebuah gedung atau kampus. LAN sering digunakan untuk menghubungkan
komputer-komputer pribadi dan workstation dalam kantor perusahaan atau pabrik-
pabrik untuk pemakaian resource secara bersama atau saling bertukar informasi. [2].
IdTCPClient dipergunakan untuk melakukan koneksi terhadap IdTCPServer
agar antara aplikasi yang terdapat di komputer client dan aplikasi yang terdapat di
komputer server dapat saling berkomunikasi antara satu sama lain. IdTCPClient dan
IdTCPServer menggunakan TCP/ IP (Transmission Control Protocol/ Internet
Protocol) sebagai standar protokol komunikasinya.
Protokol merupakan sistem yang mengatur agar satu komputer dapat
berkomunikasi dengan komputer lainnya. Protokol dapat diibaratkan sebagai bahasa
dalam berkomunikasi. Seperti halnya manusia, agar orang lain dapat mengerti apa
yang kita ucapkan, maka kita harus berkomunikasi dengan bahasa yang sama dengan
orang tersebut. Begitu juga dengan protokol bagi komputer, untuk bisa saling
berkomunikasi antara satu sama lainnya, maka komputer - komputer tersebut harus
menggunakan protokol yang sama.
TCP/ IP merupakan salah satu protokol untuk jaringan yang bisa dipergunakan
untuk menghubungkan dua atau lebih sistem komputer, agar dapat saling
berkomunikasi anatara satu sama lainnya. TCP/ IP merupakan salah satu standar
protokol yang dipergunakan dalam membangun sebuah LAN (Local Area Network),
WAN (Wide Area Network) ataupun jenis network yang lainnya. Dengan adanya
TCP/ IP, semua komputer yang terhubung didalam sebuah jaringan dapat saling
berkomunikasi, meskipun komputer-komputer tersebut memiliki arsitektur atau
sistem operasi yang berbeda. [3].
2.2 MySQL
MySQL merupakan salah satu database relasional yang mendukung pemakaian
Structured Query Language (SQL) dan dirancang untuk penggunaan aplikasi dengan
arsitektur client server. MySQL memungkinkan pengguna untuk mengolah data di
dalam database yang tersentral pada komputer pusat yang disebut sebagai server.
Sedangkan informasi yang dihasilkan dapat digunakan bersama-sama oleh beberapa
user. Semua komunikasi yang terjadi mendukung perintah-perintah SQL (Query). [4]
Secara umum, kelebihan MySQL adalah tersedia gratis untuk banyak sistem
operasi dan hardware, memiliki kecepatan proses dan kemampuan menangani
database dengan sangat baik di banyak tipe hardware dan sistem operasi yang
digunakan. Selain itu MySQL juga mudah digunakan karena bahasa yang
digunakannya termasuk simple, mendukung SQL (Structured Query Language),
sebuah bahasa untuk semua database sistem yang modern, mampu bekerja dengan
beban berat dengan banyak client yang terhubung dalam satu waktu secara
bersamaan, dapat diakses dari mana saja dari internet, mudah diperoleh dan yang
terakhir faktor keamanan yang terjamin.
2.3 Basis Data
Basis data merupakan kumpulan data yang saling berhubungan (relasi). Relasi
biasanya ditunjukan dengan kunci dari tiap file yang ada. Dalam satu file terdapat
record-record yang sejenis, sama besar, sama bentuk, yang merupakan satu
kumpulan entitas yang seragam. Satu record terdiri dari field yang saling
berhubungan menunjukan bahwa field tersebut dalam satu pengertian yang lengkap
dan direkam dalam satu record. [5].
Dengan basis data kita dapat dengan mudah mengolah data yang kita miliki.
Disamping itu, pemanfaatan basis data dilakukan untuk memenuhi sejumlah tujuan
(objektif) diantaranya :
1. Mencegah terjadinya redudansi dan inkonsistensi data
2. Menjaga integritas (integrity) dari data
3. Menjaga kemanan (security) dari data
4. Menjaga kebebasan data (independent of data)
5. Untuk efisiensi ruang penyimpanan (space)
6. Mengontrol pemakaian data secara bersama-sama
2.4 Kamus Data
Kamus data adalah daftar yang mencatat tentang banyaknya proses yang terjadi
dalam sebuah sistem. Secara umum kamus data diklasifikasikan manjadi dua yaitu:
• Kamus data elementer yaitu daftar tentang semua elemen data yang
berhubungan dengan sistem sehingga data yang mengalir dapat
didefinisikan dan dapat tersimpan secara lengkap.
• Kamus Data Komposit, yaitu daftar tentang semua elemen data yang
berhubungan dengan system dimana elemen data komponen ini terdiri
dari dua elemen data elementer yang saling berkaitan
2.5 Entity Relationship (ER)
Model ER adalah suatu penyajian data menggunakan entity dan relationship.
Pada model ER, semesta data yang ada di “dunia nyata” diterjemahkan dengan
memanfaatkan sejumlah perangkat konseptual menjadi sebuah diagram data yang
umum disebut Entity Relationship Diagram.
a. Komponen pembentuk suatu Entity Relationship
Sesuai dengan namanya ada dua komponen utama pembentuk model
entity relationship, yaitu entitas (entity) dan relasi (relation). Kedua
komponen ini dideskripsikan lebih jauh melalui sejumlah atribut/ properti.
Entity adalah objek yang dapat dibebankan dalam dunia nyata. Relationship
adalah hubungan yang terjadi antara satu atau lebih entity.
Sedangkan atribut adalah karateristik dari entity atau relationship yang
menyediakan penjelasan detail tentang entity atau relationship tersebut.
Jenis-jenis atribut :
• Key atribut yang digunakan untuk menetukan suatu entity secara
unik.
• Atribut simple yaitu atribut yang bernilai tunggal.
• Atribut multivalue yaitu atribut yang memiliki sekelompok nilai
untuk setiap instant entity.
• Atribut komposit yaitu atribut yang terdiri dari beberapa atribut yang
lebih kecil yang mempunyai arti tertentu.
• Atribut derivative yaitu suatu atribut yang dihasilkan dari atribut
lain.
b. Derajat Kardinalitas dari Relasi
Kardinalitas relasi menunjukkan jumlah maksimum entitas yang dapat
berelasi dengan entitas pada himpunan yang lain. Kardinalitas relasi yang
terjaadi diantara dua himpunan entitas dapat berupa:
• Satu ke Satu (one to one)
Yang berarti satu entitas dalam suatu himpunan dapat berhubungan
hanya dengan satu entitas pada himpunan yang lain.
• Satu ke banyak (one to many)
Yang berarti satu entitas dalam suatu himpunan dapat berhubungan
dengan lebih dari satu entitas pada himpunan yang lain.
• Banyak ke Banyak (many to many)
Yang berarti setiap entitas dalam suatu himpunan dapat berhubungan
dengan banyak entitas pada himpunan yang lain.
c. Entity Relationship Diagram
Entity Relationship Diagram merupakan gambaran sistematis model Entity
Relationship yang berisi komponen-komponen himpunan entitas dan
himpunan relasi yang masing-masing dilengkapi dengan atribut-atribut yang
merepresentasikan seluruh fakta.
d. Tahapan pembuatan Entity Relationship Diagram
Entity Relationship Diagram selalu dibuat secara bertahap. Paling tidak
ada dua kelompok tahapan yang biasa ditempuh dalam pembuatan diagram
Entity Relationship Diagram yaitu:
• Tahap pembuatan diagram entity relationship awal (preliminary
design)
• Tahap optimasi diagram entity relationship (final design)
Langkah-langkah teknis yang dapat kita lakukan untuk menghasilakan
diagram entity relationship awal adalah:
• Mengidentifikasi dan memnetapkan seluruh himpunan entitas yang
akan terlibat
• Menentukan atribut-atribut key dari masing-masing himpunan entitas
Ada empat macam kunci (key), antara lain:
1. Candidate Key
Candidate key adalah atribut atau set atribut yang
mengidentifikasikan secara unik kejadian spesifik suatu entity.
2. Primary Key
Primary Key adalah suatu atribut atau set atribut yang tidak
mengidentifikasi secara unik suatu kejadian spesifik, tetapi
dapat juga mewakili setiap kejadian dari suatu entity.
3. Alternate Key
Kunci kandidate yang tidak dipakai sebagai kunci primer
4. Foreign Key
Satu atau set atribut yang dilengkapi satu relasi yang menuju ke
induknya.
• Mengidentifikasi dan menetapakn seluruh himpunan relasi diantara
himpunan entitas yang ada beserta foreign-key nya
• Menetukan derajat kardinalitas relasi untuk setiap himpunan relasi
• Melengkapi himpunan entitas dan himpunan relasi dengan atribut-
atribut deskriptif
2.6 Borland Delphi
Borland delphi merupakan suatu bahasa pemrograman yang memberikan
berbagai fasilitas pembuatan aplikasi visual. Keunggulan bahasa pemrograman ini
terletak pada produktivitas, kualitas, pengembangan perangkat lunak, kecepatan
kompilasi, pola desain yang menarik serta diperkuat dengan pemrogramannya yang
terstruktur. Keunggulan lain dari Delphi adalah dapat digunakan untuk merancang
program aplikasi yang memiliki tampilan seperti program aplikasi lain yang berbasis
windows. [6].
Untuk pemrograman database, Borland Delphi menyediakan dan mendukung
beberapa format database, seperti Microsoft Acces, Oracle, MySQL dan lain-lain.
Dengan banyaknya format database yang mampu didukung oleh Borland Delphi,
serta dengan terintegrasinya komponen-komponen untuk berinteraksi dengan
database tersebut, menjadikan bahasa pemrograman ini menjadi salah satu bahasa
pemrograman yang banyak diminati di kalangan programer dalam membangun
aplikasi yang menggunakan database.
2.7 DFD ( Data Flow Diagram)
DFD sering digunakan untuk menggambarkan suatu sistem yang telah ada atau
sistem baru yang akan dikembangkan secara logika tanpa mempertimbangkan
lingkungan fisik dimana data itu mengalir. DFD merupakan alat yang digunakan
pada metodologi pembangunan sistem yang terstruktur. DFD merupakan alat yang
cukup popular saat ini, karena dapat menggambarkan arus data didalam sistem
dengan terstruktur dan jelas. DFD juga merupakan dokumentasi sistem yang baik.
Simbol yang digunakan DFD :
a. Kesatuan Luar
Kesatuan luar (external entity) merupakan kesatuan dilingkungan luar sistem
yang dapat berupa orang, organisasi, atau sistem lainnya yang akan memberikan
input atau menerima output dari sistem, disimbolkan dengan suatu kotak.
b. Arus Data
Arus data (data flow) diberi simbol suatu panah. Arus data ini mengalir
diantara proses (process), simpanan data (data store) dan kesatuan luar (external
entity). Arus data ini menunjukan arus data yang dapat berupa masukkan untuk
sistem atau hasil dari proses sistem.
c. Proses
Suatu proses adalah kegiatan atau kerja yang dilakukan oleh orang, mesin
atau komputer dari hasil suatu arus data yang masuk kedalam proses untuk
dihasilkan arus data yang akan keluar dari proses. Suatu proses dapat
ditunjukkan dengan simbol empat persegi panjang bersudut-sudut tumpul atau
sebuah lingkaran.
Setiap proses harus diberi penjelasan yang lengkap meliputi:
i. Identifikasi proses
Identifikasi ini umumnya berupa suatu angka yang menunjukkan
nomor acuan dari proses dan ditulis pada bagian atas simbol.
ii. Nama proses
Nama proses menunjukkan apa yang dikerjakan oleh proses tersebut.
d. Simpanan Data
Merupakan simpanan dari data.
Langkah-langkah penyusunan DFD:
1. Identifikasikan terlebih dahulu semua kesatuan luar yang terlibat di
sistem.
2. Identifikasikan semua input dan output yang terlibat dengan kesatuan
luar.
3. Gambarkan terlebih dahulu suatu diagram context.
4. Gambarkan bagan berjenjang untuk semua proses yang ada di sistem
terlebih dahulu.
5. Gambarkan sketsa DFD untuk overview diagram (level 0) berdasarkan
proses di bagan berjenjang.
6. Gambarkan DFD untuk level-level berikutnya, yaitu level satu dan
seterusnya untuk tiap-tiap proses yang dipecah-pecah sesuai dengan
bagan berjenjangnya.
7. Setelah semua level DFD digambar, berikutnya adalah menggambar
DFD untuk pelaporan manajemen yang digambar terpisah.
Setelah semua level DFD dan DFD untuk pelaporan manajemen digambar, maka
semua DFD ini dapat digabungkan dalam satu diagram.
BAB III
Analisis dan Perancangan
3.1 Analisis Sistem Informasi
Analisis merupakan suatu penguraian sistem informasi yang utuh ke dalam
bagian-bagian komponennya dengan maksud untuk mengidentifikasikan dan
mengevaluasi permasalahan-permasalahan, kesempatan-kesempatan, hambatan-
hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat
diusulkan perbaikan-perbaikan.
Analisis juga merupakan suatu tahap pemahaman terhadap aplikasi yang dibuat.
Tahap ini bertujuan untuk mengetahui mekanisme aplikasi, proses-proses yang
terlibat dalam aplikasi serta hubungan-hubungan proses.
Analisis yang dilakukan terhadap aplikasi bisa menggunakan Flow Chart
Aplikasi, yang memberikan gambaran tentang proses yang terjadi didalam aplikasi,
dapat berupa proses alir data dan proses-proses yang lainnya.
3.1.1 Analisis Sistem Berjalan
3.1.1.1 Deskripsi Prosedur Kerja
Pelaksanaan prosedur kerja oleh administrator atau operator pada warung
internet adalah administrator atau operator bertugas untuk mengatur data – data
yang berkaitan dengan pemakaian internet oleh user, baik itu berupa data user
itu sendiri ataupun data biaya pemakaian internet yang dilakukan secara
manual.
Proses pemakaian internet oleh user dapat digambarkan sebagai berikut :
User Biasa Administrator/ Operator User Anggota
Gambar 3.1 Flowchart Sistem Berjalan
3.1.1.2 Deskripsi Dokumen
A. Formulir Pendaftaran Anggota
Fungsi : Mencatat data pendaftaran
Sumber : User
Rangkap : 1 (Satu)
Distribusi : Administrator/ Operator
Frekuensi : Setiap ada pendaftaran
Isi :
Tabel 3.1 Formulir Pendaftaran Anggota
No Nama Data Jenis Keterangan 1 Nama Char (15) Nama anggota 2 Biaya Integer Jumlah biaya pendaftaran 3 Tanggal_Awal Char (15) Tanggal pendaftaran 4 Tanggal_Akhir Char (15) Tanggal berakhir keanggotaan 5 Status Char (11) Aktif/ Tidak Aktif
B. Data Pemakaian Internet
Fungsi : Menginformasikan biaya pemakaian internet
Sumber : Administrator/ Operator
Rangkap : 1 (Satu)
Distribusi : User
Frekuensi : Setiap pemakaian internet
Isi :
Tabel 3.2 Data Pemakaian Internet
No Nama Data Jenis Keterangan 1 Nama Char (15) Nama user 2 Jenis Char (11) Anggota/ Non Anggota 3 Mulai Char (12) Jam mulai pemakaian 4 Selesai Char (12) Jam akhir pemakaian 5 Discount Integer Diskon pemakaian 6 Total Integer Total biaya pemakaian 7 Tanggal Char (15) Tanggal pemakaian 8 Operator Char (15) Operator yang bertugas
C. Laporan Pemakaian Internet
Fungsi : Menginformasikan data pemakaian internet
Sumber : Administrator/ Operator
Rangkap : 1 (Satu)
Distribusi : Administrator/ Operator
Frekuensi : Setiap hari/ Setiap bulan
Isi :
Tabel 3.3 Laporan Pemakaian Internet
No Nama Data Jenis Keterangan 1 Nomor Integer Nomor urut 2 Nama Char (15) Nama user 3 Jenis Char (11) Anggota/ Non Anggota 4 Mulai Char (12) Jam mulai pemakaian 5 Selesai Char (12) Jam selesai pemakaian 6 Discount Integer Diskon pemakaian 7 Total Integer Total biaya pemakaian 8 Tanggal_Pakai Char (15) Tanggal Pemakaian 9 Tanggal_Lapor Char (15) Tanggal Laporan 10 Operator Char (15) Administrator/ Operator yang
bertugas.
3.1.1.3 Identifikasi Kebutuhan Pemakai
• Sistem harus dapat membantu mempermudah pekerjaan administrator
dan operator.
• Sistem harus dapat memberikan informasi yang dibutuhkan oleh user.
• Sistem harus dapat dioperasikan oleh administrator, operator dan user.
• Data – data yang diperlukan harus di entry melalui aplikasi server dan
hanya dapat di kelola oleh administrator atau operator, tetapi tetap dapat
menginformasikan beberapa data untuk user pada aplikasi client.
• Semua data disimpan secara terpusat.
• Ada laporan harian dari Administrator/ Operator.
• Ada laporan bulanan dari Administrator/ Operator.
• Ala laporan tahunan dari Administrator / Operator.
• Semua proses yang berkaitan dengan pengolahan data harus terintegrasi
dalam perangkat lunak aplikasi dan hanya dilakukan pada aplikasi
server.
3.1.2 Analisis Kebutuhan Sistem
Kebutuhan sistem yang terdapat pada sistem berjalan untuk sebuah warung
internet meliputi :
3.1.2.1 Kebutuhan Informasi
Tabel 3.4 Analisis Kebutuhan Sistem
No Informasi yang dibutuhkan
Tujuan Frekuensi
1 Laporan data anggota Administrator/ Operator
Saat diperlukan
2 Laporan pemakaian internet
Administrator/ Operator
Setiap hari/ setiap bulan/ setiap tahun
3 Laporan pemakaian internet
User Setiap pemakaian internet
3.1.2.2 Kebutuhan Aplikasi
Kebutuhan informasi yang harus terpenuhi dalam proses pengolahan
data Billing Internet Berbasis Client Server Menggunakan Internet Direct
(Indy) 8.0.25 adalah :
• Client
Menampilkan informasi harga atau biaya untuk pemakaian internet
bagi user biasa dan user anggota.
• Server
Mengolah data user, data anggota, data biaya serta membuat laporan –
laporan yang diperlukan untuk pemakaian internet.
3.1.2.3 Kebutuhan Perangkat Keras
Jaringan komputer lokal (LAN) dengan protokol TCP/ IP :
• Server
Untuk menjalankan aplikasi server dan melakukan pengolahan data.
• Workstation
Untuk menjalankan aplikasi client, menampilkan informasi yang
diperlukan oleh user yang berkaitan dengan penggunaan internet.
3.1.3 Analisis Kebutuhan Perangkat Lunak
3.1.3.1 Deskripsi Kebutuhan Fungsional
A. Server
Tabel 3.5 Analisis Kebutuhan Perangkat Lunak Server
No Kode Deskripsi Kebutuhan Keterangan 1 REQ - 0 Login Melakukan login
Administrator/ Operator 2 REQ - 1 Utama 3 REQ - 1.1 Logout Melakukan pergantian
operator. 4 REQ - 1.2 Exit Aplikasi diakhiri. 5 REQ - 2 Konfigurasi 6 REQ - 2.1 Lock/ Unlock Client Melakukan Lock/ Unlock
aplikasi client. 7 REQ - 2.2 Shutdown/ Restart
Client Melakukan Shutdown/ Restart komputer client.
8 REQ - 2.3 Setting Biaya Melakukan setting biaya pemakaian internet.
9 REQ - 3 Data 10 REQ - 3.1 Anggota 11 REQ - 3.1.1 Daftar Baru Input data anggota baru. 12 REQ - 3.1.2 Cari/ Edit Anggota Mencari/ mengedit data
anggota yang sudah ada. 13 REQ - 3.1.3 Tabel Anggota Menampilkan tabel daftar
anggota. 14 REQ - 3.2 Operator 15 REQ - 3.2.1 Tambah Operator Input data operator baru. 16 REQ - 3.2.2 Cari/ Edit Operator Mencari/ mengedit data
operator yang sudah ada. 17 REQ - 3.2.3 Tabel Operator Menampilkan tabel daftar
operator. 18 REQ - 4 Laporan 19 REQ - 4.1 Data Pemakaian 20 REQ - 4.1.1 Laporan Data
Pemakaian Mencetak laporan biaya pemakaian internet
21 REQ - 4.2 Data User 22 REQ - 4.2.1 Anggota Mencetak data daftar anggota
Tabel 3.6 Analisis Kebutuhan Perangkat Lunak Server (Lanjutan)
23 REQ - 4.2.2 Operator Mencetak data daftar operator 24 REQ - 5 Tools 25 REQ - 5.1 Chatting Melakukan pengiriman pesan 26 REQ - 5.2 Password Melakukan penggantian password untuk
operator/ administrator
B. Client
Tabel 3.7 Analisis Kebutuhan Perangkat Lunak Client
No Kode Deskripsi Keterangan 1 REQ - 1 Login
pemakaian User melakukan login dan memulai pemakaian internet.
2 REQ - 2 Logout User melakukan logout dan mengakhiri pemakaian internet.
3 REQ - 3 Konfigurasi Administrator/ Operator melakukan login untuk mengkonfigurasi client.
4 REQ - 4 Chatting User mengirim pesan ke server atau ke sesama user.
5 REQ - 5 Exit Administrator/ Operator menutup aplikasi
3.1.3.2 Pemodelan Kebutuhan Fungsional
A. Statement Of Purpose
Billing Warnet Berbasis Client Server Menggunakan Indy 8.0.25
secara garis besar memiliki dua fungsi. Fungsi pertama adalah aplikasi
server bertugas untuk mengelola data user, data operator, data biaya
pemakaian internet serta mencetak laporan berdasarkan data tersebut
diatas. Sedangkan fungsi kedua adalah, aplikasi client bertugas untuk
memberikan informasi tentang biaya pemakaian kepada user secara real
time.
B. Diagram Konteks (Context Diagram)
Informasi Biaya Pemakaian Anggota
Data Pemakaian Non Anggota
Informasi Biaya Pemakaian Non Anggota
Informasi Biaya Pemakaian Non Anggota
Informasi Biaya Pemakaian AnggotaData Biaya Pemakaian Anggota
Informasi Pesan Administrator
Informasi Pesan Operator
Informasi Pesan Non Anggota
Informasi Login Non Anggota
Data Login Non AnggotaData Pesan Non Anggota
Informasi Pesan Operator
Informasi Pesan Administrator
Informasi Pesan Anggota
Informasi Login Anggota
Data Pesan Anggota
Data Login Anggota
Data Logout Administrator
Informasi Logout Administrator
Informasi Logout Operator
Data Logout Operator
Informasi Pesan Non Anggota
Informasi Pesan Anggota
Informasi Pesan OperatorInformasi Konfigurasi Operator
Informasi Login Operator
Informasi Laporan Operator
Informasi Data Anggota Operator
Informasi Data Harga Operator
Informasi Pesan Administrator
Data Pesan Operator
Data Konfigurasi Operator
Data Login OperatorData Laporan Operator
Data Anggota OperatorData Harga Operator
Informasi Pesan Anggota
Informasi Pesan Non Anggota
Informasi Biaya Pemakaian Non Anggota
Informasi Biaya Pemakaian Anggota
Informasi Data Anggota Administrator
Informasi Konfigurasi Administrator
Informasi Login Administrator
Informasi Laporan Administrator
Informasi Data Operator Administrator
Informasi Data Harga Administrator
Data Operator AdministratorData Laporan Administrator
Data Harga Administrator
Data Pesan Administrator
Data Anggota Administrator
Data Konfigurasi Administrator
Data Login Administrator
0
Sistem Informasi Billing Internet Berbasis Client Server Menggunakan Indy
+
Administrator
Non Anggota
Anggota
Operator
Gambar 3.2 Konteks Diagram (Context Diagram)
C. Diagram Alir Data (Data Flow Diagram)
1) Diagram Alir Data Tingkat - 1
Informasi Biaya Pemakaian Anggota
Informasi Biaya Pemakaian Non Anggota
Data Biaya Pemakaian Non Anggota
Data Biaya Pemakaian Anggota
[Data Pemakaian Non Anggota]
[Informasi Biaya Pemakaian Non Anggota]
[Informasi Biaya Pemakaian Anggota]
[Informasi Biaya Pemakaian Non Anggota]
[Data Biaya Pemakaian Anggota]
[Informasi Biaya Pemakaian Anggota]
Informasi Login Non Anggota
Informasi Login Anggota
Data Pesan Non Anggota
Data Pesan Anggota
Data Login Non Anggota
Data Login Anggota
[Data Pesan Non Anggota]
[Informasi Login Non Anggota]
[Informasi Pesan Non Anggota]
[Informasi Pesan Administrator]
[Informasi Pesan Operator]
[Data Login Non Anggota]
[Informasi Pesan Operator]
[Informasi Pesan Administrator]
[Informasi Pesan Anggota]
[Informasi Login Anggota]
[Data Pesan Anggota]
[Data Login Anggota]
Informasi Login Operator
Data Konfigurasi Operator
Data Pesan Operator
[Informasi Pesan Operator][Informasi Login Operator][Informasi Konfigurasi Operator]
[Informasi Pesan Anggota]
[Informasi Pesan Non Anggota]
[Data Logout Operator]
[Informasi Laporan Operator]
[Informasi Data Anggota Operator]
[Informasi Data Harga Operator]
[Data Pesan Operator]
[Data Konfigurasi Operator]
[Data Laporan Operator]
[Data Anggota Operator]
[Data Harga Operator]
[Informasi Logout Operator]
[Data Login Operator]
Data Pesan Administrator
Data Konfigurasi Administrator
Informasi Login Administrator
[Informasi Logout Administrator]
[Data Operator Administrator]
[Data Laporan Administrator]
[Data Harga Administrator]
[Data Logout Administrator]
[Informasi Pesan Administrator]
[Informasi Biaya Pemakaian Anggota]
[Informasi Laporan Administrator]
[Informasi Biaya Pemakaian Non Anggota]
[Informasi Login Administrator]
[Informasi Konfigurasi Administrator]
[Informasi Data Anggota Administrator]
[Informasi Pesan Non Anggota]
[Data Pesan Administrator]
[Data Konfigurasi Administrator]
[Data Anggota Administrator]
[Data Login Administrator]
[Informasi Pesan Anggota]
[Informasi Data Harga Administrator]
[Informasi Data Operator Administrator]
Administrator
Operator
Anggota
Non Anggota
1
Pengolahan Data Server
+
2
Pengolahan Data Client
Gambar 3.3 Diagram Alir Data Tingkat - 1
2) Diagram Alir Data Tingkat - 2
Pengolahan Data Server
Informasi Data Anggota Administrator
Data Anggota Administrator
Informasi Data Anggota OperatorData Anggota Operator
Informasi Pesan Operator
Informasi Pesan Non Anggota
Informasi Pesan Anggota
Informasi Pesan AdministratorData Pesan Non Anggota
Data Pesan Operator
Data Pesan Administrator
Data Pesan Anggota
Informasi Data Operator AdministratorData Operator Administrator
Informasi Konfigurasi Administrator
Informasi Konfigurasi Operator
Data Konfigurasi Administrator
Data Konfigurasi Operator
[Data Biaya Pemakaian Non Anggota][Informasi Biaya Pemakaian Non Anggota]
[Informasi Biaya Pemakaian Anggota][Data Biaya Pemakaian Anggota]
[Informasi Biaya Pemakaian Anggota]
[Informasi Biaya Pemakaian Non Anggota]
Informasi Login Non Anggota
Informasi Login Anggota
[Informasi Laporan Administrator]
[Informasi Data Anggota Operator]
[Data Operator Administrator]
[Informasi Data Harga Administrator]
[Data Anggota Administrator][Informasi Data Anggota Administrator]
[Informasi Data Operator Administrator][Data Harga Administrator]
[Informasi Biaya Pemakaian Anggota][Informasi Biaya Pemakaian Non Anggota]
[Data Laporan Administrator]
[Data Harga Operator]
[Informasi Laporan Operator]
[Informasi Data Harga Operator]
[Data Anggota Operator][Data Laporan Operator]
[Informasi Login Non Anggota]
[Informasi Login Anggota]
Data Login Non Anggota
Data Login Anggota
[Data Pesan Non Anggota]
[Data Pesan Anggota]
[Data Login Non Anggota]
[Data Login Anggota]
[Informasi Login Operator]
[Data Konfigurasi Operator]
[Data Pesan Operator]
[Data Pesan Administrator]
[Informasi Login Administrator]
[Data Konfigurasi Administrator]
Informasi Logout Operator
Data Logout OperatorInformasi Logout Administrator
Data Logout Administrator
[Informasi Pesan Non Anggota]
[Informasi Pesan Operator]
[Informasi Konfigurasi Operator]
[Data Pesan Operator]
[Informasi Pesan Anggota]
[Data Konfigurasi Operator]
[Informasi Login Operator]
[Informasi Logout Operator]
[Data Logout Operator]
[Data Login Operator]
Informasi Login Operator
Data Login OperatorInformasi Login Administrator
Data Login Administrator
[Informasi Logout Administrator]
[Data Logout Administrator]
[Informasi Pesan Administrator]
[Informasi Pesan Non Anggota]
[Informasi Pesan Anggota]
[Data Pesan Administrator]
[Data Konfigurasi Administrator]
[Informasi Konfigurasi Administrator]
[Data Login Administrator]
[Informasi Login Administrator]
Administrator Operator
Pengolahan Data Client
1.1
Validasi Login
+
1.5
Konfigurasi Client
1.4
Pengiriman dan Penerimaan Pesan
1.2
Validasi Logout
+
t_administrator
t_operator
t_anggota
t_user
1.3
Pengolahan Data
+
t_ip
Gambar 3.4 DAD Tingkat - 2 Pengolahan Data Server
3) Diagram Alir Data Tingkat - 3
a. Proses 1.1 Validasi Login
[Informasi Login Non Anggota]
[Data Login Non Anggota]
[Data Login Anggota]
[Informasi Login Anggota]
[Informasi Login Operator]
[Informasi Login Non Anggota]
[Informasi Login Anggota]
[Data Login Non Anggota]
[Data Login Anggota]
[Informasi Login Operator]
[Data Login Operator]
[Informasi Login Administrator]
[Data Login Administrator]
[Informasi Login Operator]
[Data Login Operator]
[Informasi Login Administrator]
[Data Login Administrator]
[Informasi Login Administrator]
Administrator
Operator
Pengolahan Data Client
t_administrator
t_operator
t_anggota
t_user
1.1.1
Validasi Login
Administrator
1.1.2Validasi Login
Operator
1.1.3Validasi Login
Anggota
1.1.4Validasi
Login Non Anggota
Gambar 3.5 DAD Tingkat - 3 Validasi Login
b. Proses 1.2 Validasi Logout
[Data Logout Administrator]
[Informasi Logout Administrator]
[Informasi Logout Administrator]
[Data Logout Administrator]
[Data Logout Operator]
[Informasi Logout Operator]
[Informasi Logout Operator]
[Data Logout Operator]
Operator
Administrator
t_administrator
t_operator
1.2.1
Validasi Logout
Administrator
1.2.2Validasi Logout
Operator
Gambar 3.6 DAD Tingkat - 3 Validasi Logout
c. Proses 1.3 Pengolahan Data
Informasi Laporan OperatorInformasi Laporan Administrator
Data Laporan Operator
Data Laporan Administrator
Informasi Laporan OperatorData Laporan Operator
Informasi Laporan Administrator
Data Laporan Administrator
Informasi Laporan Administrator
Informasi Laporan Operator
Informasi Laporan Operator
Data Laporan Operator
Informasi Laporan Administrator
Data Laporan Operator
Data Laporan Administrator
Data Laporan Administrator
[Data Laporan Administrator]
[Informasi Laporan Operator]
[Data Laporan Operator]
[Informasi Laporan Administrator]
Informasi Biaya Pemakaian Anggota
Informasi Biaya Pemakaian Anggota
Data Biaya Pemakaian Non Anggota
Data Biaya Pemakaian Anggota
[Informasi Biaya Pemakaian Anggota]
[Informasi Biaya Pemakaian Non Anggota]
Informasi Data Harga Operator
Informasi Data Harga Administrator
Data Harga Operator
Data Harga Administrator
[Informasi Data Harga Operator]
[Data Harga Operator]
[Informasi Biaya Pemakaian Non Anggota]
[Informasi Biaya Pemakaian Anggota]
[Data Biaya Pemakaian Non Anggota]
[Data Biaya Pemakaian Anggota]
[Informasi Data Anggota Operator]
[Data Anggota Operator]
[Data Anggota Operator]
[Informasi Data Anggota Operator]
[Data Anggota Administrator]
[Informasi Data Anggota Administrator]
[Informasi Data Harga Administrator]
[Data Harga Administrator]
[Informasi Biaya Pemakaian Anggota]
[Informasi Biaya Pemakaian Non Anggota]
[Informasi Data Anggota Administrator]
[Data Anggota Administrator]
[Informasi Data Operator Administrator]
[Data Operator Administrator][Data Operator Administrator]
[Informasi Data Operator Administrator]
Administrator
Operator
Pengolahan Data Client
t_operator
t_harga
1.3.1
Pengolahan Data Operator
+
1.3.2
Pengolahan Data Anggota
+
1.3.3
Pengolahan Data Biaya Pemakaian Internet
+
t_biaya_pemakaian
1.3.4
Pengolahan Data Harga
+
t_anggota
Gambar 3.7 DAD Tingkat - 3 Pengolahan Data
4) Diagram Alir Data Tingkat - 4
a. Proses 1.3.1 Pengolahan Data Operator
Informasi Data Operator Administrator
Informasi Data Operator Administrator
Informasi Data Operator Administrator
Informasi Data Operator Administrator
Informasi Data Operator Administrator
Informasi Data Operator Administrator
Informasi Data Operator Administrator
Informasi Data Operator Administrator
[Informasi Data Operator Administrator]
[Informasi Data Operator Administrator]
Data Operator Administrator
Data Operator Administrator
Data Operator Administrator
Data Operator Administrator
[Data Operator Administrator]
Data Operator AdministratorData Operator AdministratorData Operator Administrator
Data Operator Administrator
[Data Operator Administrator]
t_operator
Administrator
1.3.1.1
Input Data Operator
1.3.1.2
Cari Data Operator
1.3.1.3
Edit Data Operator
1.3.1.4
Hapus Data Operator
Gambar 3.8 DAD Tingkat - 4 Pengolahan Data Operator
b. Proses 1.3.2 Pengolahan Data Anggota
Informasi Data Anggota Operator
Informasi Data Anggota Operator
Informasi Data Anggota Operator
Informasi Data Anggota Operator [Informasi Data Anggota Operator]Informasi Data Anggota Operator
Informasi Data Anggota Operator
Informasi Data Anggota Operator
Informasi Data Anggota Operator
[Informasi Data Anggota Operator]
Data Anggota Operator
Data Anggota Operator
Data Anggota Operator
Data Anggota Operator
[Data Anggota Operator]
Informasi Data Anggota Administrator
Informasi Data Anggota Administrator
Informasi Data Anggota Administrator
Informasi Data Anggota Administrator
Informasi Data Anggota Administrator
Informasi Data Anggota Administrator
Informasi Data Anggota Administrator
Informasi Data Anggota Administrator
[Informasi Data Anggota Administrator]
[Informasi Data Anggota Administrator]
Data Anggota Administrator
Data Anggota Administrator
Data Anggota Administrator
Data Anggota Administrator
[Data Anggota Administrator]
Data Anggota Operator
Data Anggota Operator
Data Anggota Operator
Data Anggota Operator [Data Anggota Operator]
[Informasi Laporan Operator]
[Informasi Laporan Administrator]
[Data Laporan Administrator]
Data Anggota Administrator
Data Anggota Administrator
Data Anggota Administrator
Data Anggota Administrator
[Informasi Laporan Operator]
[Informasi Laporan Administrator]
[Data Laporan Operator]
[Data Laporan Administrator]
[Data Laporan Operator]
[Data Anggota Administrator]
Administrator
t_anggota
Operator
SpMg_1633SpMg_1630SpMg_1631SpMg_1632
1.3.2.1
Input Data Anggota
1.3.2.2
Cari Data Anggota
1.3.2.3
Edit Data Anggota
1.3.2.4
Hapus Data Anggota
1.3.2.5
Cetak Laporan Data Anggota
Gambar 3.9 DAD Tingkat - 4 Pengolahan Data Anggota
c. Proses 1.3.3 Pengolahan Data Harga
[Informasi Laporan Administrator]
[Informasi Laporan Operator]
[Data Laporan Operator]
[Informasi Laporan Operator]
[Informasi Biaya Pemakaian Anggota]
[Informasi Laporan Administrator]Data Laporan Operator
[Data Laporan Operator]
[Informasi Biaya Pemakaian Anggota]
[Informasi Biaya Pemakaian Non Anggota]
[Informasi Biaya Pemakaian Non Anggota]
[Informasi Biaya Pemakaian Anggota]
[Informasi Biaya Pemakaian Anggota]
[Informasi Biaya Pemakaian Non Anggota]
[Informasi Biaya Pemakaian Anggota]
[Data Laporan Administrator]
[Data Laporan Administrator]
[Data Biaya Pemakaian Non Anggota]
Data Biaya Pemakaian Non Anggota
Data Biaya Pemakaian Non Anggota
[Data Biaya Pemakaian Non Anggota]
Data Biaya Pemakaian Non Anggota
Data Biaya Pemakaian Non Anggota
Data Biaya Pemakaian Anggota
Data Biaya Pemakaian Anggota
[Data Biaya Pemakaian Anggota]
Data Biaya Pemakaian Anggota
Data Biaya Pemakaian Anggota [Data Biaya Pemakaian Anggota]
Administrator
Operator
Pengolahan Data ClientPengolahan Data Client
t_biaya_pemakaian
SpMg_1633SpMg_1630SpMg_1631SpMg_1632
1.3.3.1
Tampil Biaya Pemakaian Internet
1.3.3.2
Cetak Laporan Biaya Pemakaian Internet
Gambar 3.10 DAD Tingkat - 4 Pengolahan Data Harga
d. Proses 1.3.4 Pengolahan Data Biaya Pemakaian Internet
Informasi Data Harga Operator
Informasi Data Harga Operator
Informasi Data Harga Operator
Informasi Data Harga Operator
[Informasi Data Harga Operator]
Informasi Data Harga Operator
Informasi Data Harga Operator
Informasi Data Harga Operator
Informasi Data Harga Operator
[Informasi Data Harga Operator]
Data Harga Operator
Data Harga Operator
Data Harga Operator
Data Harga Operator
[Data Harga Operator]
Data Harga Operator
Data Harga Operator
Data Harga Operator
Data Harga Operator
[Data Harga Operator]
Informasi Data Harga Administrator
Informasi Data Harga Administrator
Informasi Data Harga Administrator
Informasi Data Harga Administrator
[Informasi Data Harga Administrator]
Informasi Data Harga Administrator
Informasi Data Harga Administrator
Informasi Data Harga Administrator
Informasi Data Harga Administrator
[Informasi Data Harga Administrator]
Data Harga Administrator
Data Harga Administrator
Data Harga Administrator
Data Harga Administrator
[Data Harga Administrator]
Data Harga Administrator
Data Harga Administrator
Data Harga Administrator
Data Harga Administrator
[Data Harga Administrator]
AdministratorOperator
t_harga
1.3.4.1
Input Data Harga
1.3.4.2
Cari Data Harga
1.3.4.3
Edit Data Harga
1.3.4.4
Hapus Data Harga
Gambar 3.11 DAD Tingkat - 4 Pengolahan Data Biaya Pemakaian Internet
D. Kamus Data (Data Dictionary)
1. T_Admin = Nomor + Nama + @Password
2. T_Operator = Nomor + Nama + @Password
3. T_Anggota = Nomor + Nama + @Password + Tanggal_Daftar +
Tanggal_Akhir + Status
4. T_IP = @Nomor + IP
5. T_User = @Nomor + Nama
6. T_Harga = Nomor + @Jenis + Biaya_Per_Koneksi +
Biaya_Per_Menit + Discount + PPN
7. T_Biaya_Pemakaian = @Nomor + Nama + Jenis + Mulai +
Selesai + Durasi + Discount + Tot_Biaya
+ Tanggal + Operator
E. Spesifikasi Proses
1) Proses 1.1.1 Validasi Login Administrator
Tabel 3.8 Proses 1.1.1 Validasi Login Administrator
No Proses
Nama Proses Data In Data Out Logika Proses
1.1.1 Validasi Login
Administrator
• Data login
administrator
• Informasi login
administrator
• Data login
administrator
• Informasi login
administrator
Begin
If nama dan password administrator tidak kosong then
cek nama dan password administrator dan bandingkan dengan
nama dan password administrator yang terdapat di dalam tabel
t_ administrator
If nama dan password administrator benar then
administrator diijinkan untuk menggunakan aplikasi
else administrator tidak diijinkan untuk menggunakan aplikasi
dan tampilkan pesan kesalahan.
else tampilkan pesan kesalahan.
End
2) Proses 1.1.2 Validasi Login Operator
Tabel 3.9 Proses 1.1.2 Validasi Login Operator
No Proses
Nama Proses Data In Data Out Logika Proses
1.1.2 Validasi Login
Operator
• Data login
operator
• Informasi login
operator
• Data login
operator
• Informasi login
operator
Begin
If nama dan password operator tidak kosong then
cek nama dan password operator dan bandingkan dengan nama
dan password operator yang terdapat di dalam tabel t_ operator
If nama dan password operator benar then
operator diijinkan untuk menggunakan aplikasi
else operator tidak diijinkan untuk menggunakan aplikasi dan
tampilkan pesan kesalahan.
else tampilkan pesan kesalahan.
End
3) Proses 1.1.3 Validasi Login Anggota
Tabel 3.10 Proses 1.1.3 Validasi Login Anggota
No Proses
Nama Proses Data In Data Out Logika Proses
1.1.3 Validasi Login
Anggota
• Data login anggota
• Informasi login
anggota
• Data login anggota
• Informasi login
anggota
Begin
If nama dan password anggota tidak kosong then
cek nama dan password anggota dan bandingkan
dengan nama dan password anggota yang terdapat di
dalam tabel t_anggota
If nama dan password anggota benar then
anggota diijinkan untuk menggunakan aplikasi
else anggota tidak diijinkan untuk menggunakan
aplikasi dan tampilkan pesan kesalahan.
else tampilkan pesan kesalahan.
End
4) Proses 1.1.4 Validasi Login Non Anggota
Tabel 3.11 Proses 1.1.4 Validasi Login Non Anggota
No Proses
Nama Proses Data In Data Out Logika Proses
1.1.4 Validasi Login
Non Anggota
• Data login non
anggota
• Informasi login non
anggota
• Data login non
anggota
• Informasi login non
anggota
Begin
If nama non anggota tidak kosong then
non anggota diijinkan untuk menggunakan aplikasi
else non anggota tidak diijinkan untuk menggunakan
aplikasi dan tampilkan pesan kesalahan.
End
5) Proses 1.2.1 Validasi Logout Administrator
Tabel 3.12 Proses 1.2.1 Validasi Logout Administrator
No Proses
Nama Proses Data In Data Out Logika Proses
1.2.1 Validasi Logout
Administrator
• Data logout
administrator
• Informasi logout
administrator
• Data logout
administrator
• Informasi logout
administrator
Begin
If nama dan password administrator tidak kosong then
cek nama dan password administrator dan bandingkan
dengan nama dan password administrator yang terdapat di
dalam tabel t_ administrator
If nama dan password administrator benar then
administrator diijinkan untuk logout dari aplikasi
else administrator tidak diijinkan untuk logout dari
aplikasi dan tampilkan pesan kesalahan.
else tampilkan pesan kesalahan.
End
6) Proses 1.2.2 Validasi Logout Operator
Tabel 3.13 Proses 1.2.2 Validasi Logout Operator
No Proses
Nama Proses Data In Data Out Logika Proses
1.2.2 Validasi Logout
Operator
• Data logout
operator
• Informasi logout
operator
• Data logout
operator
• Informasi logout
operator
Begin
If nama dan password operator tidak kosong then
cek nama dan password operator dan bandingkan dengan
nama dan password operator yang terdapat di dalam tabel
t_ operator
If nama dan password operator benar then
operator diijinkan untuk logout dari aplikasi
else operator tidak diijinkan untuk logout dari aplikasi dan
tampilkan pesan kesalahan.
else tampilkan pesan kesalahan.
End
7) Proses 1.3.1.1 Input Data Operator
Tabel 3.14 Proses 1.3.1.1 Input Data Operator
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.1.1 Input Data
Operator
• Data operator
administrator
• Informasi data
operator
administrator
• Data operator
administrator
• Informasi data
operator
administrator
Begin
If nama dan password operator tidak kosong then
simpan data operator ke tabel t_ operator
If penyimpanan data berhasil then
tampilkan pesan berhasil menyimpan data
else tampilkan pesan kegagalan menyimpan data
else tampilkan pesan kesalahan.
End
8) Proses 1.3.1.2 Cari Data Operator
Tabel 3.15 Proses 1.3.1.2 Cari Data Operator
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.1.2 Cari Data
Operator
• Data operator
administrator
• Informasi
data operator
administrator
• Data operator
administrator
• Informasi
data operator
administrator
Begin
If data yang di cari tidak kosong then
cari data operator di tabel t_ operator berdasarkan data yang di cari
If data ditemukan then
tampilkan data
else tampilkan pesan bahwa data tidak ditemukan
else tampilkan pesan kesalahan.
End
9) Proses 1.3.1.3 Edit Data Operator
Tabel 3.16 Proses 1.3.1.3 Edit Data Operator
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.1.3 Edit Data
Operator
• Data operator
administrator
• Informasi
data operator
administrator
• Data operator
administrator
• Informasi
data operator
administrator
Begin
If data operator sudah di cari terlebih dahulu then
If data di edit then
tampilkan pesan konfirmasi untuk menyimpan perubahan data
If dikonfirmasikan then
simpan perubahan data operator ke tabel t_operator
If penyimpanan data berhasil then
tampilkan pesan keberhasilan
else tampilkan pesan kegagalan
else batalkan perubahan data
else batalkan perubahan data
else tampilkan pesan untuk mencari data terlebih dahulu
End
10) Proses 1.3.1.4 Hapus Data Operator
Tabel 3.17 Proses 1.3.1.4 Hapus Data Operator
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.1.4 Hapus Data
Operator
• Data operator
administrator
• Informasi
data operator
administrator
• Data operator
administrator
• Informasi
data operator
administrator
Begin
If data operator sudah di cari terlebih dahulu then
If data di hapus then
tampilkan pesan konfirmasi untuk menghapus data
If dikonfirmasikan then
hapus data operator dari tabel t_operator
If penghapusan data berhasil then
tampilkan pesan keberhasilan
else tampilkan pesan kegagalan
else batalkan penghapusan data
else batalkan penghapusan data
else tampilkan pesan untuk mencari data terlebih dahulu
End
11) Proses 1.3.2.1 Input Data Anggota
Tabel 3.18 Proses 1.3.2.1 Input Data Anggota
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.2.1 Input Data
Anggota
• Data anggota
administrator
• Informasi data
anggota
administrator
• Data anggota
operator
• Informasi data
anggota operator
• Data anggota
administrator
• Informasi data
anggota
administrator
• Data anggota
operator
• Informasi data
anggota operator
Begin
If data anggota sudah lengkap then
simpan data operator ke tabel t_ anggota
If penyimpanan data berhasil then
tampilkan pesan berhasil menyimpan data
else tampilkan pesan kegagalan menyimpan data
else tampilkan pesan kesalahan.
End
12) Proses 1.3.2.2 Cari Data Anggota
Tabel 3.19 Proses 1.3.2.2 Cari Data Anggota
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.2.2 Cari Data
Anggota
• Data anggota
administrator
• Informasi data
anggota
administrator
• Data anggota
operator
• Informasi data
anggota operator
• Data anggota
administrator
• Informasi data
anggota
administrator
• Data anggota
operator
• Informasi data
anggota operator
Begin
If data yang di cari tidak kosong then
cari data anggota di tabel t_ anggota berdasarkan
data yang di cari
If data ditemukan then
tampilkan data
else tampilkan pesan bahwa data tidak ditemukan
else tampilkan pesan kesalahan.
End
13) Proses 1.3.2.3 Edit Data Anggota
Tabel 3.20 Proses 1.3.2.3 Edit Data Anggota
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.2.3 Edit Data Anggota • Data anggota
administrator
• Informasi data
anggota
administrator
• Data anggota
operator
• Informasi data
anggota operator
• Data anggota
administrator
• Informasi data
anggota
administrator
• Data anggota
operator
• Informasi data
anggota operator
Begin
If data anggota sudah di cari terlebih dahulu then
If data di edit then
tampilkan pesan konfirmasi untuk menyimpan
perubahan data
If dikonfirmasikan then
simpan perubahan data anggota ke tabel t_anggota
If penyimpanan data berhasil then
tampilkan pesan keberhasilan
else tampilkan pesan kegagalan
else batalkan perubahan data
else batalkan perubahan data
else tampilkan pesan untuk mencari data terlebih dahulu
End
14) Proses 1.3.2.4 Hapus Data Anggota
Tabel 3.21 Proses 1.3.2.4 Hapus Data Anggota
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.2.4 Hapus Data
Anggota
• Data anggota
administrator
• Informasi
data anggota
administrator
• Data anggota
operator
• Informasi
data anggota
operator
• Data anggota
administrator
• Informasi
data anggota
administrator
• Data anggota
operator
• Informasi
data anggota
operator
Begin
If data anggota sudah di cari terlebih dahulu then
If data di hapus then
tampilkan pesan konfirmasi untuk menghapus data
If dikonfirmasikan then
hapus data anggota dari tabel t_anggota
If penghapusan data berhasil then
tampilkan pesan keberhasilan
else tampilkan pesan kegagalan
else batalkan penghapusan data
else batalkan penghapusan data
else tampilkan pesan untuk mencari data terlebih dahulu
End
15) Proses 1.3.2.5 Cetak Laporan Data Anggota
Tabel 3.22 Proses 1.3.2.5 Cetak Laporan Data Anggota
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.2.5 Cetak
Laporan Data
Anggota
• Data laporan
administrator
• Informasi
laporan
administrator
• Data laporan
operator
• Informasi
laporan operator
• Data laporan
administrator
• Informasi
laporan
administrator
• Data laporan
operator
• Informasi
laporan operator
Begin
If kriteria laporan tidak kosong then cetak semua data pada tabel t_anggota sesuai dengan kriteria laporan
else tampilkan pesan kesalahan. End
16) Proses 1.3.3.1 Tampil Biaya Pemakaian Internet
Tabel 3.23 Proses 1.3.3.1 Tampil Biaya Pemakaian Internet
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.3.1 Tampil Biaya
Pemakaian
Internet
• Data biaya
pemakaian anggota
• Data biaya
pemakaian Non
anggota
• Informasi biaya
pemakaian anggota
• Informasi biaya
pemakaian non
anggota
• Data biaya pemakaian
anggota
• Data biaya pemakaian
Non anggota
• Informasi biaya
pemakaian anggota
• Informasi biaya
pemakaian non
anggota
Begin
If anggota then
tampilkan biaya pemakaian berdasarkan perhitungan
total biaya pemakaian untuk anggota
else
if non anggota then
tampilkan biaya pemakaian berdasarkan perhitungan
total biaya pemakaian untuk non anggota
End
17) Proses 1.3.3.2 Cetak Laporan Biaya Pemakaian Internet
Tabel 3.24 Proses 1.3.3.2 Cetak Laporan Biaya Pemakaian Internet
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.3.2 Cetak Laporan
Biaya Pemakaian
Internet
• Data biaya pemakaian
anggota
• Data biaya pemakaian
non anggota
• Data laporan operator
• Data laporan
administrator
• Informasi laporan
administrator
• Informasi laporan
operator
• Data biaya pemakaian
anggota
• Data biaya pemakaian
non anggota
• Data laporan operator
• Data laporan
administrator
• Informasi laporan
administrator
• Informasi laporan
operator
Begin
If kriteria pencetakan laporan tidak kosong then
cetak laporan data biaya pemakaian internet
berdasarkan kriteria
else tampilkan pesan kesalahan.
End
18) Proses 1.3.4.1 Input Data Harga
Tabel 3.25 Proses 1.3.4.1 Input Data Harga
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.4.1 Input Data
Harga
• Data harga
administrator
• Data harga operator
• Informasi data harga
administrator
• Informasi data harga
operator
• Data harga administrator
• Data harga operator
• Informasi data harga
administrator
• Informasi data harga
operator
If data harga lengkap then
simpan data harga ke tabel t_ harga
If penyimpanan data berhasil then
tampilkan pesan berhasil menyimpan data
else tampilkan pesan kegagalan menyimpan
data
else tampilkan pesan kesalahan.
19) Proses 1.3.4.2 Cari Data Harga
Tabel 3.26 Proses 1.3.4.2 Cari Data Harga
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.4.2 Cari Data
Harga
• Data harga administrator
• Data harga operator
• Informasi data harga
administrator
• Informasi data harga
operator
• Data harga administrator
• Data harga operator
• Informasi data harga
administrator
• Informasi data harga
operator
Begin
If data yang di cari tidak kosong then
cari data harga di tabel t_harga berdasarkan
data yang di cari
If data ditemukan then
tampilkan data
else tampilkan pesan bahwa data tidak
ditemukan
else tampilkan pesan kesalahan.
End
20) Proses 1.3.4.3 Edit Data Harga
Tabel 3.27 Proses 1.3.4.3 Edit Data Harga
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.4.3 Edit Data
Harga
• Data harga
administrator
• Data harga
operator
• Informasi data
harga
administrator
• Informasi data
harga operator
• Data harga
administrator
• Data harga
operator
• Informasi data
harga
administrator
• Informasi data
harga operator
Begin
If data harga sudah di cari terlebih dahulu then
If data di edit then
tampilkan pesan konfirmasi untuk menyimpan perubahan data
If dikonfirmasikan then
simpan perubahan data harga ke tabel t_harga
If penyimpanan data berhasil then
tampilkan pesan keberhasilan
else tampilkan pesan kegagalan
else batalkan perubahan data
else batalkan perubahan data
else tampilkan pesan untuk mencari data terlebih dahulu
End
21) Proses 1.3.4.4 Hapus Data Harga
Tabel 3.28 Proses 1.3.4.4 Hapus Data Harga
No Proses
Nama Proses Data In Data Out Logika Proses
1.3.4.4 Hapus data
harga
• Data harga
administrator
• Data harga
operator
• Informasi data
harga
administrator
• Informasi data
harga operator
• Data harga
administrator
• Data harga
operator
• Informasi data
harga
administrator
• Informasi data
harga operator
Begin
If data harga sudah di cari terlebih dahulu then
If data di hapus then
tampilkan pesan konfirmasi untuk menghapus data
If dikonfirmasikan then
hapus data harga dari tabel t_harga
If penghapusan data berhasil then
tampilkan pesan keberhasilan
else tampilkan pesan kegagalan
else batalkan penghapusan data
else batalkan penghapusan data
else tampilkan pesan untuk mencari data terlebih dahulu
End
3.1.4 Arus Data (Data Flow)
Tabel 3.29 Arus Data
No Nama Alir Data Item Data 1 Data Login Administrator = nama + password administrator 2 Data Logout Administrator = nama + password administrator 3 Data Login Anggota = nama + password anggota + jenis limit 4 Data Login Operator = nama + password operator 5 Data Logout Operator = nama + password operator 6 Data Pesan Administrator = pesan 7 Data Pesan Operator = pesan 8 Data Pesan Anggota = pesan 9 Data Pesan Non Anggota = pesan 10 Data Laporan Administrator = jenis laporan + kriteria laporan 11 Data Laporan Operator = jenis laporan + kriteria laporan 12 Data Harga Administrator = biaya per koneksi + biaya per menit + diskon per jam + PPN + menit tambahan +
biaya tambahan 13 Data Harga Operator = biaya per koneksi + biaya per menit + diskon per jam + PPN + menit tambahan +
biaya tambahan 14 Data Operator Administrator = nama operator + password operator 15 Data Anggota Administrator = nama + password + tanggal pendaftaran + tanggal berakhir keanggotaan + status 16 Data Anggota Operator = nama + password + tanggal pendaftaran + tanggal berakhir keanggotaan + status 17 Data Konfigurasi Administrator = nama + password + ip address server + nomor client 18 Data Konfigurasi Operator = nama + password + ip address server + nomor client 19 Data Biaya Pemakaian Anggota = jenis login + nomor komputer 20 Data Biaya Pemakaian Non Anggota = durasi + nomor komputer 21 Informasi Data Harga Administrator = biaya per koneksi + biaya per menit + diskon per jam + PPN + menit tambahan +
biaya tambahan
Tabel 3.30 Arus Data (Lanjutan)
22 Informasi Data Harga Operator = biaya per koneksi + biaya per menit + diskon per jam + PPN + menit tambahan + biaya tambahan
23 Informasi Data Operator Administrator = nomor + nama + password 24 Informasi Laporan Administrator = laporan data anggota + laporan data biaya pemakaian internet 25 Informasi Laporan Operator = laporan data anggota + laporan data biaya pemakaian internet 26 Informasi Login Administrator = pesan konfirmasi 27 Informasi Login Operator = pesan konfirmasi 28 Informasi Konfigurasi Administrator = pesan konfirmasi 29 Informasi Konfigurasi Operator = pesan konfirmasi 30 Informasi Data Anggota Administrator = pesan konfirmasi 31 Informasi Data Anggota Operator = pesan konfirmasi 32 Informasi Biaya Pemakaian Anggota = nama anggota + mulai + selesai + durasi + diskon + total 33 Informasi Biaya Pemakaian Non
Anggota = nama + mulai + selesai + durasi + diskon + total
34 Informasi Pesan Anggota = pesan 35 Informasi Pesan Non Anggota = pesan 36 Informasi Pesan Administrator = pesan 37 Informasi Pesan Operator = pesan
3.1.4 Model Data Konseptual
3.1.4.1 Conceptual Data Model (CDM)
Mempunyai
Mempunyai
Memil iki
Memil iki
Memil iki
Memil iki
Memil iki
T_User
IdNama_User
T_Anggota
Password_AnggotaNama_AnggotaTanggal_Pendaf taranTanggal_BerakhirStatus
T_Operator
Password_OperatorNama_Operator
T_Harga
JenisBiay a_Per_KoneksiBiay a_Per_MenitDiscount_Per_Jam
T_Biay a_Pemakaian
NoNamaMulaiSelesaiDurasiDiscountTotal_Biay aTanggal_PemakaianOperator
T_Admin
Password_Adm inNama_Adm in
T_IP
IP
Gambar 3.12 CDM Diagram
3.1.4.2 Physical Data Model (PDM)
IP = IP
IP = IP
JENIS = JENIS
JENIS = JENIS
JENIS = JENIS
JENIS = JENIS
JENIS = JENIS
T_USER
IP intJENIS char(15)ID intNAMA_USER char(15)
T_ANGGOTA
IP intJENIS char(15)PASSWORD_ANGGOTA char(15)NAMA_ANGGOTA char(15)TANGGAL_PENDAFTARAN char(25)TANGGAL_BERAKHIR char(25)STATUS char(15)
T_OPERATOR
JENIS char(15)PASSWORD_OPERATOR char(15)NAMA_OPERATOR char(15)
T_HARGA
JENIS char(15)BIAYA_PER_KONEKSI intBIAYA_PER_MENIT intDISCOUNT_PER_JAM int
T_BIAYA_PEMAKAIAN
JENIS char(15)NO intNAMA char(15)MULAI char(15)SELESAI char(15)DURASI char(15)DISCOUNT intTOTAL_BIAYA intTANGGAL_PEMAKAIAN char(25)OPERATOR char(15)
T_ADMIN
JENIS char(15)PASSWORD_ADMIN char(15)NAMA_ADMIN char(15)
T_IP
IP int
Gambar 3.13 PDM Diagram
3.1.4.3 Deskripsi Tabel
A. Tabel T_Harga
Fungsi : Menyimpan Data Harga
Jenis : Tabel Induk
Primary Key : Jenis
Foreign Key : -
Struktur Tabel :
Tabel 3.31 Tabel T_Harga
NO NAMA FIELD JENIS LEBAR KETERANGAN 1 Jenis Char 11 Jenis account 2 Biaya_Per_Koneksi Integer Biaya setiap terkoneksi 3 Biaya_Per_Menit Integer Biaya setiap menit 4 Discount_Per_Jam Integer Diskon setiap jam
B. Tabel T_User
Fungsi : Menyimpan Data User
Jenis : Tabel Induk
Primary Key : ID
Foreign Key : -
Struktur Tabel :
Tabel 3.32 Tabel T_User
NO NAMA FIELD JENIS LEBAR KETERANGAN 1 ID Integer Nomor urut 2 Nama Char 15 Nama User
C. Tabel T_Operator
Fungsi : Menyimpan Data Operator
Jenis : Tabel Induk
Primary Key : Password
Foreign Key : -
Struktur Tabel :
Tabel 3.33 Tabel T_Operator
NO NAMA FIELD JENIS LEBAR KETERANGAN 1 Nama Char 15 Nama Operator 2 Password Char 15 Password Operator
D. Tabel T_Anggota
Fungsi : Menyimpan Data Anggota
Jenis : Tabel Induk
Primary Key : Password
Foreign Key : -
Struktur Tabel :
Tabel 3.34 Tabel T_Anggota
NO NAMA FIELD JENIS LEBAR KETERANGAN 1 Nama Char 15 Nama anggota 2 Password Char 15 Password anggota 3 Tanggal_Daftar Char 15 Tanggal pendaftaran 4 Tanggal_Akhir Char 15 Tanggal berakhir keanggotaan 5 Status Char 11 Aktif/ Tidak aktif
E. Tabel T_Biaya_Pemakaian
Fungsi : Menyimpan Data Biaya Pemakaian Internet
Jenis : Tabel Transaksi
Primary Key : Nomor
Foreign Key : -
Struktur Tabel :
Tabel 3.35 Tabel T_Biaya_Pemakaian
NO NAMA FIELD JENIS LEBAR KETERANGAN 1 Nomor Integer Nomor urut data 2 Nama Char 15 Nama user 3 Mulai Char 12 Waktu mulai pemakaian 4 Selesai Char 12 Waktu selesai pemakaian 5 Durasi Integer Durasi pemakaian 6 Discount Integer Total diskon 7 Total_Biaya Integer Total biaya pemakaian 8 Tanggal_Pemakaian Char 15 Tanggal pemakaian 9 Operator Char 15 Nama operator yang bertugas
F. Tabel T_Administrator
Fungsi : Menyimpan Data Administrator
Jenis : Tabel Induk
Primary Key : Password
Foreign Key : -
Struktur Tabel :
Tabel 3.36 Tabel T_Administrator
NO NAMA FIELD JENIS LEBAR KETERANGAN 1 Nama_Administrator Char 15 Nama Administrator 2 Password_Administrator Char 15 Password Administrator
G. Tabel T_IP
Fungsi : Menyimpan Data Nomor Client dan IP Client
Jenis : Tabel Induk
Primary Key : Nomor
Foreign Key : -
Struktur Tabel :
Tabel 3.37 Tabel T_IP
NO NAMA FIELD JENIS LEBAR KETERANGAN 1 Nomor Integer Nomor client 2 IP Char 15 IP Address client
3.1.4.4 ER Diagram
Gambar 3.14 ER Diagram
3.2. Perancangan Sistem Informasi
3.2.1 Perancangan Prosedur
Perancangan prosedur pelaksanaan pekerjaan yang baru dengan menyertakan
komputer sebagai alat bantu proses pengolahan datanya.
Deskripsi Prosedur Kerja (Baru)
Prosedur kerja yang akan diberlakukan pada saat user menggunakan internet
pada warung internet adalah sebagai berikut :
1. User melakukan login pada aplikasi client berdasarkan 3 pilihan, yaitu :
• Login tanpa limit waktu atau limit biaya.
• Login dengan limit waktu.
• Login dengan limit biaya.
2. Biaya akan dihitung sesuai dengan ketentuan sebagai berikut :
Total Biaya = ((Biaya Koneksi + Total Biaya Per Menit) - Total Diskon)
* Total PPN.
3. Jumlah biaya koneksi dan biaya per menit ditentukan oleh operator atau
administrator sesuai dengan jenis user (anggota/ non anggota).
4. Jika user login tanpa menyertakan limit waktu, untuk menghentikan
pemakaian internet, user harus melakukan logout dari aplikasi.
5. Untuk user yang melakukan dengan menggunakan limit waktu atau limit
biaya, aplikasi akan otomatis me-logout user saat batas limit waktu atau
limit biaya tercapai.
6. Setelah menggunakan aplikasi, user membayar biaya pemakaian internet
ke administrator atau operator.
7. Saat user menghentikan pemakaian internet, data-data user yang berkaitan
dengan pemakaian internet akan secara otomatis disimpan ke dalam
database.
8. Operator atau administrator bisa melakukan pengelolaan data baik yang
berhubungan dengan data biaya, data anggota dan lain sebagainya,
dengan menggunakan aplikasi yang terdapat pada komputer server.
Deskripsi prosedur kerja baru digambarkan sebagai berikut :
User Biasa Administrator/ Operator User Anggota
Gambar 3.15 Deskripsi Prosedur Kerja Baru
3.2.2 Perancangan Perangkat Keras
3.2.2.1 Konfigurasi Perangkat Keras
Jaringan komputer dengan topologi star atau topologi lainnya yang
menggunakan protokol TCP/ IP sebagai standar protokol komunikasinya, yang
menyediakan satu komputer yang bertindak sebagai komputer server dimana
nantinya aplikasi server dijalankan, serta beberapa komputer workstation yang
bertindak sebagai komputer client, dimana nantinya aplikasi client dijalankan.
Gambar 3.16 Konfigurasi Perangkat Keras
Struktur pengalamatan IP address untuk protokol TCP/ IP pada
konfigurasi jaringan di atas menggunakan format IP address untuk kelas C,
yang memiliki range dari 192.0.0.xxx sampai 223.255.255.xxx. Pada saat
implementasi Billing Internet Berbasis Client Server Menggunakan Internet
Direct (Indy) 8.0.25, IP address yang digunakan adalah :
Server : 192.168.0.1
Client : 192.168.0.2
Jumlah maksimal client untuk Billing Internet Berbasis Client Server
Menggunakan Internet Direct (Indy) 8.0.25 adalah sebanyak 50 client, sehingga
range IP Address untuk client adalah dari 192.0.0.0 - 192.0.0.50.
3.2.2.2 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras pada saat pembuatan Billing Internet Berbasis
Client Server Menggunakan Indy 8.0.25 adalah sebagai berikut :
A. Server
o Processor 2500 MHz
o Memory DDR 512 Mb
o Hardisk 40 Gb
o LAN CARD 100 Mbps
B. Client
o Processor 1700 MHz
o Memory DDR 256 Mb
o Hardisk 20 Gb
o LAN CARD 100 Mbps
3.2.2.3 Spesifikasi Perangkat Lunak Sistem
Tabel 3.38 Spesifikasi Perangkat Lunak Sistem
No. Jenis Perangkat Lunak Sistem
Server Client
1 Sistem Operasi Windows XP Professional Edition
Windows XP Home Edition
2 Perangkat Impelementasi • Borland Delphi 6.0 • Indy 8.0.25
3 DBMS MySQL 4 Perangkat Lunak
Pendukung • MyODBC (untuk driver
koneksi antara MySQL dengan Borland Delphi 6.0).
• Data Link Library (untuk shutdown dan restart client, untuk memblokir user pada billing client dari menutup aplikasi).
3.2.2.4 Perancangan Perangkat Lunak
A. Struktur Menu
Gambar 3.17 Struktur Menu
Gambar 3.18 Struktur Menu (Lanjutan)
Gambar 3.19 Struktur Menu (Lanjutan)
Gambar 3.20 Struktur Menu (Lanjutan)
Gambar 3.21 Struktur Menu (Lanjutan)
B. Antar Muka Pemakai
1) Antar Muka Pemakai Aplikasi Server
a) Tata Letak Layar Login
Gambar 3.22 Tata Letak Layar Login
Keterangan Gambar :
Tabel 3.39 Keterangan Gambar Tata Letak Layar Login
No Keterangan 1 Form awal yang dipergunakan untuk mengecek validasi login dari data
username dan password operator atau administrator. 2 Label yang merupakan judul form 3 Label keterangan untuk combo box jenis (nomor 6) 4 Label keterangan untuk edit box username (nomor 7) 5 Label keterangan untuk edit box password (nomor 8) 6 Combo box untuk pilihan jenis login, yang terdidi dari operator dan
administrator 7 Edit box untuk menampung nilai dari username
8 Edit box untuk menampung nilai dari password
9 Tombol untuk keluar dari aplikasi
10 Tombol untuk login ke aplikasi
11 Gambar background
b) Tata Letak Layar Struktur Menu Program
Gambar 3.23 Tata Letak Layar Struktur Menu Program
Keterangan Gambar :
Tabel 3.40 Keterangan Gambar Tata Letak Layar Struktur Menu Program
No Keterangan 1 Form utama server yang dipergunakan untuk memonitor atau melakukan
pengolahan data yang berkaitan dengan pemakaian internet pada client. 2 Menu - menu utama yang terdapat pada form utama server 3 Sub menu yang terdapat pada tiap - tiap menu utama pada form utama server 4 Gambar Background
5 Page control yang berfungsi untuk menampilkan tabel biaya koneksi serta status koneksi client
6 Tabel untuk menampilkan daftar biaya pemakaian internet yang diambil dari tabel t_biaya yang terdapat pada database sistem.
c) Tata Letak Layar Lock/ Unlock
Gambar 3.24 Tata Letak Layar Lock/ Unlock
Keterangan Gambar :
Tabel 3.41 Keterangan Gambar Tata Letak Layar Lock/ Unlock
No Keterangan 1 Form untuk Lock/ Unlock client 2 Judul form 3 Radio button untuk melakukan lock/ unlock semua client 4 Radio button untuk melakukan lock/ unlock client berdasarkan nomor 5 Combo box untuk menampung nomor client 6 Gambar background 7 Digunakan untuk melakukan proses lock pada client 8 Digunakan untuk melakukan proses unlock pada client
d) Tata Letak Layar Shutdown
Gambar 3.25 Tata Letak Layar Shutdown
Keterangan Gambar :
Tabel 3.42 Keterangan Gambar Tata Letak Layar Shutdown
No Keterangan 1 Form untuk shutdown/ restart client 2 Judul form 3 Radio button untuk melakukan shutdown/ restart semua client
4 Radio button untuk melakukan shutdown/ restart client berdasarkan nomor 5 Combo box untuk menampung nomor client 6 Gambar background 7 Digunakan untuk melakukan proses shutdown pada client 8 Digunakan untuk melakukan proses restart pada client
e) Tata Letak Layar Setting Biaya
Gambar 3.26 Tata Letak Layar Setting Biaya
Keterangan Gambar :
Tabel 3.43 Keterangan Gambar Tata Letak Layar Setting Biaya
No Keterangan 1 Form untuk melakukan penyetingan biaya pemakaian internet 2 Label untuk judul form. 3 Label untk memberi keterangan bagi combo box jenis (nomor 9) 4 Label untuk memberi keterangan bagi edit box biaya per koneksi (nomor 10) 5 Label untuk memberi keterangan bagi edit box biaya per menit (nomor 11) 6 Label untuk memberi keterangan bagi edit box discount per jam (nomor 12) 7 Label untuk memberi keterangan bagi edit box PPN (Nomor 13) 8 Gambar background 9 Pilihan jenis account yang akan di setting biayanya 10 Untuk menampung nilai biaya per koneksi 11 Untuk menampung nilai biaya per menit 12 Untuk menampung nilai diskon per jam 13 Untuk menampung nilai PPN 14 Untuk mengosongkan nilai pada semua isian 15 Untuk menyimpan data settingan biaya pemakaian internet
f) Tata Letak Layar Daftar Baru
Gambar 3.27 Tata Letak Layar Daftar Baru
Keterangan Gambar :
Tabel 3.44 Keterangan Gambar Tata Letak Layar Daftar Baru
No Keterangan 1 Form untuk menginput data anggota baru 2 Label yang merupakan judul form 3 Label untuk memberi keterangan bagi edit box nama (nomor 8) 4 Label untuk memberi keterangan bagi edit box password (nomor 9) 5 Label untuk memberi keterangan bagi combo box tanggal pendaftaran (nomor
10) 6 Label untuk memberi keterangan bagi combo box tanggal berakhir (nomor 11) 7 Gambar background 8 Untuk menampung data nama anggota 9 Untuk menampung data password anggota 10 Untuk menampung data tanggal, bulan, tahun pendaftaran 11 Untuk menampung data tanggal, bulan, tahun berakhir keanggotaan
12 Tombol untuk mengosongkan semua isian pada form 13 Tombol untuk menyimpan data pendaftaran anggota
g) Tata Letak Layar Cari/ Edit Anggota
Gambar 3.28 Tata Letak Layar Cari/ Edit Anggota
Keterangan Gambar :
Tabel 3.45 Keterangan Gambar Tata Letak Layar Cari/ Edit Anggota
No Keterangan 1 Form untuk pencarian dan pengeditan data anggota 2 Label yang merupakan judul form 3 Label untuk memberi keterangan bagi combo box kriterita pencarian (nomor
11) 4 Label untuk memberi keterangan bagi edit box data yang ingin dicari (nomor
12) 5 Gambar background 6 Label untuk memberi keterangan bagi edit box nama (nomor 14) 7 Label untuk memberi keterangan bagi edit box password (nomor 15) 8 Label untuk memberi keterangan bagi edit box tanggal pendaftaran (nomor
16) 9 Label untuk memberi keterangan bagi edit box tanggal berakhir (nomor 17) 10 Label untuk memberi keterangan bagi edit box status (nomor 18) 11 Kriteria pencarian data anggota 12 Untuk menampung nilai data yang dicari 13 Tombol untuk melakukan pencarian data 14 Untuk menampung data nama anggota 15 Untuk menampung data password anggota 16 Untuk menampung data tanggal pendaftaran anggota 17 Untuk menampung data tanggal berakhir keanggotaan 18 Untuk menampung data status keanggotaan 19 Tombol untuk menghapus data anggota 20 Tombol untuk mengedit data anggota
h) Tata Letak Layar Tabel Anggota
Gambar 3.29 Tata Letak Layar Tabel Anggota
Keterangan Gambar :
Tabel 3.46 Keterangan Gambar Tata Letak Layar Tabel Anggota
No Keterangan 1 Form untuk menampilkan data anggota 2 Label yang merupakan judul form 3 Tabel untuk menampilkan data anggota
i) Tata Letak Layar Tambah Operator
Gambar 3.30 Tata Letak Layar Tambah Operator
Keterangan Gambar :
Tabel 3.47 Keterangan Gambar Tata Letak Layar Tambah Operator
No Keterangan 1 Form untuk menginput data operator 2 Label yang merupakan judul form 3 Label untuk memberi keterangan bagi edit box nama (nomor 7) 4 Label untuk memberi keterangan bagi edit box password (nomor 8) 5 Gambar background 6 Untuk menampung data nama operator 7 Untuk menampung data password operator 8 Untuk mengosongkan semua isian form 9 Untuk menyimpan data operator
j) Tata Letak Layar Cari/ Edit Operator
Gambar 3.31 Tata Letak Layar Cari/ Edit Operator
Keterangan Gambar :
Tabel 3.48 Keterangan Gambar Tata Letak Layar Cari/ Edit Operator
No Keterangan 1 Form untuk mencari dan mengedit data operator 2 Label yang merupakan judul form 3 Label untuk memberi keterangan bagi combo box kriteria pencarian (nomor
8) 4 Label untuk memberi keterangan bagi edit box data yang dicari (nomor 9) 5 Gambar background 6 Label untuk memberi keterangan bagi edit box nama (nomor 11) 7 Label untuk memberi keterangan bagi edit box password (nomor 12)
Tabel 3.49 Keterangan Gambar Tata Letak Layar Cari/ Edit Operator (Lanjutan)
8 Untuk menampung kriteria pencarian data 9 Untuk menampung nilai data yang ingin dicari 10 Tombol untuk melakukan pencarian 11 Untuk menampung data nama operator 12 Untuk menampung data password operator 13 Untuk menghapus data operator 14 Untuk mengedit data operator
k) Tata Letak Layar Tabel Operator
Gambar 3.32 Tata Letak Layar Tabel Operator
Keterangan Gambar :
Tabel 3.50 Keterangan Gambar Tata Letak Layar Tabel Operator
No Keterangan 1 Form untuk menampilkan data operator 2 Judul form 3 Tabel untuk menampilkan data operator
l) Tata Letak Layar Cetak Laporan Data Pemakaian
Gambar 3.33 Tata Letak Layar Cetak Laporan Data Pemakaian
Keterangan Gambar :
Tabel 3.51 Keterangan Gambar Tata Letak Layar Cetak Laporan Data pemakaian
No Keterangan 1 Form untuk mencetak laporan biaya pemakaian 2 Label yang merupakan judul form 3 Grup box untuk kriteria laporan 4 Grup box untuk kriteria tanggal laporan 5 Tombol untuk mencetak laporan
m) Tata Letak Layar Chatting
Gambar 3.34 Tata Letak Layar Chatting
Keterangan Gambar :
Tabel 3.52 Keterangan Gambar Tata Letak Layar Chatting
No Keterangan 1 Form untuk melakukan chatting atau saling bertukar pesan 2 Label yang merupakan judul form 3 Label untuk memberi keterangan bagi text box (nomor 4) 4 Untuk menampilkan daftar pesan masuk atau pesan keluar 5 Label untuk memberi keterangan bagi text box (nomor 6) 6 Untuk menampung data pesan yang akan dikirim 7 Label untuk memberi keterangan bagi edit box nomor pc (nomor 9) 8 Gambar background 9 Untuk menampung data nomor komputer 10 Untuk mengosongkan semua isi EdList, EdTulis, EdNomor 11 Untuk mengirimkan pesan
n) Tata Letak Layar Ganti Password
Gambar 3.35 Tata Letak Layar Ganti Password
Keterangan Gambar :
Tabel 3.53 Keterangan Gambar Tata Letak Layar Ganti Password
No Keterangan 1 Form untuk mengganti password operator atau administrator 2 Label untuk memberi keterangan bagi combo box jenis account (nomor 6) 3 Label untuk memberi keterangan bagi edit box password lama (nomor 7) 4 Label untuk memberi keterangan bagi edit box password baru (nomor 8) 5 Label untuk memberi keterangan bagi edit box konfirmasi (nomor 9) 6 Untuk menampung data jenis account operator/ administrator 7 Untuk menampung data password lama operator/ administator 8 Untuk menampung data password baru operator/ administrator 9 Untuk menampung data password baru operator/ administrator 10 Untuk membatalkan pergantian password 11 Untuk melakukan pergantian password
2. Antar Muka Pemakai Aplikasi Client
a) Tata Letak Layar Login
Gambar 3.36 Tata Letak Layar Login
Keterangan Gambar :
Tabel 3.54 Keterangan Gambar Tata Letak Layar Login
No Keterangan 1 Form untuk login pemakaian internet 2 Judul Form 3 Panel login untuk melakukan login sebelum menggunakan internet 4 Label yang merupakan judul panel login 5 Label untuk memberi keterangan bagi combo box jenis (nomor 9) 6 Label untuk memberi keterangan bagi edit box nama (nomor 10) 7 Label untuk memberi keterangan bagi edit box password (nomor 11) 8 Gambar background 9 Untuk menampung data jenis account login user 10 Untuk menampung data nama user 11 Untuk menampung data password user 12 Untuk keluar dari aplikasi 13 Untuk login dan menggunakan internet 14 Panel konfigurasi untuk mengkonfigurasi client yang hanya dipergunakan
oleh operator atau administrator 15 Label yang merupakan judul panel konfigurasi 16 Label untuk memberi keterangan bagi combo box jenis (nomor 19) 17 Label untuk memberi keterangan bagi edit box nama (nomor 20) 18 Label untuk memberi keterangan bagi edit box password (nomor 21) 19 Untuk menampung data jenis account operator 20 Untuk menampung data nama operator 21 Untuk menampung data password operator 22 Gambar background 23 Untuk mengakhiri aplikasi 24 Untuk login dan melakukan konfigurasi 25 Panel limit untuk mengkonfigurasi limit koneksi 26 Label judul untuk memberi keterangan bagi panel limit 27 Untuk login tanpa limit 28 Untuk login dengan limit waktu 29 Untuk menampung data limit jam 30 Untuk login dengan limit biaya 31 Gambar background 32 Label untuk memberi keterangan bagi edit box biaya (nomor 35) 33 Label untuk memberi keterangan bagi combo box jam (nomor 29) 34 Untuk menampung data limit menit 35 Untuk menampung data limit biaya 36 Label untuk memberi keterangan bagi radio button biaya (nomor 30) 37 Label untuk memberi keterangan bagi edit box menit (nomor 34) 38 Label untuk memberi keterangan bagi radio button waktu (nomor 28) 39 Label untuk memberi keterangan bagi radio button no limit (nomor 27) 40 Panel daftar biaya untuk menginformasikan daftar biaya pemakaian internet
Tabel 3.55 Keterangan Gambar Tata Letak Layar Login (Lanjutan)
41 Label judul untuk memberi keterangan bagi panel daftar biaya 42 Label judul daftar biaya bagi user non anggota 43 Label daftar biaya per koneksi bagi user non anggota 44 Label daftar biaya per menit bagi user non anggota 45 Label daftar discount per jam bagi user non anggota 46 Label judul daftar biaya bagi user anggota 47 Label daftar biaya per koneksi bagi user anggota 48 Label daftar biaya per menit bagi user anggota 49 Label daftar discount per jam bagi user anggota 50 Gambar background 51 Untuk menampilkan data biaya per koneksi user non anggota dalam
menggunakan internet 52 Untuk menampilkan data biaya per menit user non anggota dalam
menggunakan internet 53 Untuk menampilkan data diskon per jam user non anggota dalam
menggunakan internet 54 Untuk menampilkan data biaya per koneksi user anggota dalam
menggunakan internet 55 Untuk menampilkan data biaya per menit user anggota dalam menggunakan
internet 56 Untuk menampilkan data diskon per jam user anggota dalam menggunakan
internet 57 Gambar background
b) Tata Letak Layar Informasi Biaya Client
Gambar 3.37 Tata Letak Layar Informasi Biaya Client
Keterangan Gambar :
Tabel 3.56 Keterangan Gambar Tata Letak Layar Informasi Biaya Client
No Keterangan 1 Form untuk menampilkan biaya penggunaan internet 2 Label judul untuk form daftar biaya 3 Untuk menampilkan nama user 4 Untuk menampilkan jenis account user 5 Untuk menampilkan jam mulai pemakaian internet 6 Untuk menampilkan lama durasi menit pemakaian internet 7 Untuk menampilkan biaya pemakaian internet 8 Untuk menampilkan total diskon biaya pemakaian internet 9 Untuk menampilkan total PPN 10 Untuk menampilkan total biaya pemakaian internet 11 Gambar background 12 Untuk mengirimkan pesan ke komputer lain 13 Untuk mengakhiri pemakaian internet
c) Tata Letak Layar Konfigurasi Client
Gambar 3.38 Tata Letak Layar Konfigurasi Client
Keterangan Gambar :
Tabel 3.57 Keterangan Gambar Tata Letak Layar Konfigurasi Client
No Keterangan 1 Form konfigurasi untuk melakukan konfigurasi komputer client 2 Page control untuk mengkonfigurasi aplikasi client ataupun melakukan
konfigurasi terhadap sistem operasi komputer client 3 Label untuk memberi keterangan bagi edit box ip address server (nomor 10) 4 Label untuk memberi keterangan bagi edit box nomor komputer (nomor 11) 5 Label untuk memberi keterangan bagi text box keterangan (nomor 12) 6 Gambar background 7 Untuk mengosongkan semua isian pada form FKonfigurasi 8 Untuk menyimpan setingan konfigurasi 9 Untuk menutup form FKonfigurasi
BAB IV
IMPLEMENTASI DAN PENGUJIAN
4.2 IMPLEMENTASI
4.2.1 Linkungan Implementasi
Menjelaskan lingkungan perangkat keras dan perangkat implementasi yang
digunakan untuk menulis program dan membentuk tabel-tabel basis data.
Perangkat Keras
1. Komputer Server dengan spesifikasi :
• Processor AMD Barthon 2500 MHz
• RAM 512 MB
• Harddisk Seagate Barracuda 80 GB
• Printer Canon Pixma IP 1500
2. Komputer Client dengan spesifikasi
• Processor AMD Athlon XP T-Bred 2400 MHz
• RAM 512 MB
• Harddisk Seagate Barracuda 80 GB
Perangkat Implementasi
1. Komputer Server :
• Microsoft Windows XP Professional Edition
• Borland Delphi 6.0
• Database MySQL Version 1.1
• MyODBC Version 2.50
• Hook.dll dan Shutdown.dll
2. Komputer Client :
• Microsoft Windows XP Professional Edition
4.2.2 Hasil Implementasi
Menjelaskan hasil implementasi perangkat lunak meliput basis data, modul
program dan antarmuka pemakai.
4.2.2.1 Implementasi Basis Data
Nama Basis Data : DbBilling
Directory : C:\mysql\data\DbBilling
Tabel 4.1 Implementasi Basis Data
No. Nama Tabel Hasil Implementasi Keterangan 1 t_administrator t_administrator.mdf Tabel data induk
administrator 2 t_operator t_operator.mdf Tabel data induk operator 3 t_anggota t_anggota.mdf Tabel data induk anggota 4 t_user t_user.mdf Tabel data induk user 5 t_harga t_harga.mdf Tabel data harga
pemakaian internet 6 t_biaya t_biaya.mdf Tabel data semua transaksi
pemakaian internet 7 t_ip t_ip.mdf Tabel data induk nomor
client dan IP Address client
4.2.2.2 Implementasi Modul Program
Nama Proyek : Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25
Nama File : PServer.dpr
Directory : D:\Kuliah\Tox\TA\Program\Indy Full\Server
Tabel 4.2 Implementasi Modul Program Aplikasi Server
No Nama Modul Hasil Implementasi Keterangan 1 Login/ Logout Administrator/
Operator ULogin.pas
Procedure BLoginClick Procedure BKeluarClick
Unit untuk melakukan login administrator/ operator Prosedur untuk melakukan login Prosedur untuk menutup aplikasi
2 Logout Administrator/ Operator
ULogin.pas Procedure BLoginClick Procedure BKeluarClick
Unit untuk melakukan logout administrator/ operator Prosedur untuk melakukan login Prosedur untuk menutup aplikasi
3 Ganti Password UPassword.pas
Procedure BOKClick Procedure BKeluarClick Procedure BBackClick
Unit untuk melakukan pergantian password administrator/ operator
Prosedur untuk mengubah password administrator/ operator Prosedur untuk menutup aplikasi Prosedur untuk kembali ke program utama
4 Exit Billing ULogin.pas Procedure BLoginClick Procedure BKeluarClick
Unit untuk melakukan logout administrator/ operator Prosedur untuk melakukan login Prosedur untuk menutup aplikasi
5 Lock/ Unlock Client UServer.pas Procedure BLockClick Procedure BUnlockClick
Unit untuk melakukan lock/ unlock komputer client Prosedur untuk melakukan lock client Prosedur untuk melakukan unlock client
Tabel 4.3 Implementasi Modul Program Aplikasi Server (Lanjutan)
No Nama Modul Hasil Implementasi Keterangan 6 Shutdown/ Restart Client UServer.pas
Procedure BShutdownClick Procedure BRestartClick
Unit untuk melakukan shutdown/ restart komputer client Prosedur untuk melakukan shutdown komputer client Prosedur untuk melakukan restart komputer client
7 Setting Biaya UServer.pas Procedure BSimpanClick Procedure BClearClick Procedure BCariClick Procedure BEditClick Procedure BSimpanEditClick Procedure BHapusClick Procedure BKirimClick
Unit untuk melakukan input data harga pemakaian internet Prosedur untuk menyimpan data harga pemakaian internet Prosedur untuk mengosongkan form isian harga pemakaian internet Prosedur untuk melakukan pencarian data harga pemakain internet Prosedur untuk mengedit data harga pemakaian internet Prosedur untuk menyimpan data harga pemakaian internet hasil pengeditan Prosedur untuk melakukan penghapusan data harga pemakaian internet Prosedur untuk melakukan pengiriman data harga pemakaian internet ke komputer client
8 Data Anggota UAnggota.pas Procedure BSimpanClick Procedure BClearClick
Unit untuk melakukan pengolahan data anggota Prosedur untuk menyimpan data anggota baru Prosedur untuk mengosongkan form isian daftar anggota baru
Tabel 4.4 Implementasi Modul Program Aplikasi Server (Lanjutan)
No Nama Modul Hasil Implementasi Keterangan Procedure BCariClick
Procedure BEditClick Procedure BHapusClick Procedure BSimpanEditClick
Prosedur untuk melakukan pencarian data anggota Prosedur untuk melakukan pengeditan data anggota Prosedur untuk melakukan penghapusan data anggota Prosedur untuk melakukan penyimpanan data anggota hasil pengeditan
9 Data operator UOperator.pas Procedure BSimpanClick Procedure BClearClick Procedure BCariClick Procedure BEditClick Procedure BHapusClick Procedure BSimpanEditClick
Unit untuk melakukan pengolahan data operator Prosedur untuk menyimpan data operator baru Prosedur untuk mengosongkan form isian daftar operator baru Prosedur untuk melakukan pencarian data operator Prosedur untuk melakukan pengeditan data operator Prosedur untuk melakukan penghapusan data operator Prosedur untuk melakukan penyimpanan data operator hasil pengeditan
10 Laporan Data Anggota ULaporanAnggota.pas Procedure BCetakClick
Unit untuk membuat laporan data anggota Prosedur untuk mencetak laporan data anggota
11 Laporan Data Operator ULaporanOperator.pas Procedure BCetakClick
Unit untuk membuat laporan data operator Prosedur untuk mencetak laporan data operator
12 Laporan Data Biaya Pemakaian ULaporanPemakaian.pas Procedure BCetakClick
Unit untuk membuat laporan data pemakaian internet Prosedur untuk mencetak laporan data pemakaian internet secara perhari/ perbulan/ pertahun
13 Chatting UServer.pas Procedure BKirimPesanClick Procedure BClearPesanClick
Unit untuk mengirimkan pesan ke client Prosedur untuk mengirimkan pesan ke client Prosedur untuk mengosongkan daftar pesan dari client
14 Kalkulator UServer.pas Unit untuk menggunakan program kalkulator dan seterusnya untuk hasil implementasi modul-modul program yang lain.
Nama Proyek : Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25
Nama File : PClient.dpr
Directory : D:\Kuliah\Tox\TA\Program\Indy Full\Client
Tabel 4.5 Implementasi Modul Program User
No. Nama Modul Hasil Implementasi Keterangan 1 Login UClient.pas
Procedure BLoginClick Procedure BTutupClick Procedure BKonfigurasiClick Procedure BTutup2Click
Unit untuk melakukan login pemakaian internet Prosedur untuk melakukan login pemakaian internet Prosedur untuk menutup aplikasi Prosedur untuk melakukan login konfigurasi client Prosedur untuk menutup aplikasi
2 Menampilkan Biaya UBiaya.pas Procedure BLogoutClick Procedure BKirimClick Procedure BClearClick
Unit untuk menampilkan jumlah biaya pemakaian internet
Prosedur untuk mengakhiri pemakaian internet Prosedur untuk mengirimkan pesan ke komputer lainnya Prosedur untuk membersihkan layar tampilan pesan
dan seterusnya untuk hasil implementasi modul-modul program yang lain.
4.2.2.3 Implementasi Antarmuka Pemakai
Tabel 4.6 Hasil Implementasi Antarmuka Pemakai Aplikasi Server
No. Antarmuka Hasil Implementasi Keterangan 1 Struktur menu program FServer.dfm Form utama untuk menampilkan menu program,
menampilkan daftar biaya pemakaian internet, mengirimkan pesan, dan menu utama lainnya.
2 Login administrator/ operator FLogin.dfm Form untuk login administrator/ operator 3 Ubah password administrator/
operator FPassword.dfm Form untuk melakukan perubahan password
administrator/operator. 4 Pengelolaan data anggota FAnggota.dfm Form untuk melakukan pengelolaan data anggota 5 Pengelolaan data operator FOperator.dfm Form untuk melakukan pengelolaan data operator 6 Laporan data anggota FLaporanAnggota.dfm Form untuk mencetak laporan data anggota 7 Laporan data operator FLaporanOperator.dfm Form untuk mencetak laporan data operator 8 Laporan data pemakaian internet FLaporanPemakaian.dfm Form untuk mencetak laporan data pemakaian internet
berdasarkan perhari/ perbulan/ pertahun.
Tabel 4.7 Hasil Implementasi Antarmuka Pemakai Aplikasi Client
No. Antarmuka Hasil Implementasi
Keterangan
1 Struktur tampilan utama FClient.dfm Form utama untuk melakukan login pemakaian internet, menampilkan daftar harga pemakaian internet serta login untuk mengkonfigurasi client.
2 Konfigurasi client FKonfigurasi.dfm Form untuk melakukan konfigurasi nomor komputer client serta nomor ip address komputer server.
3 Biaya dan pesan FBiaya.dfm Form untuk menampilkan jumlah biaya pemakaian internet yang sedang berlangsung dan mengirimkan pesan ke komputer lainnya
4.2.2.4 Source Code Aplikasi
ULogin.pas
procedure TFLogin.BLoginClick(Sender: TObject); begin if CbJenis.Text = '' then begin MessageDlg('Pilih jenis account terlebih dahulu !', mtInformation, [MBOK], 0); CbJenis.SetFocus; end else if (Trim(EdUser.Text) = '') then begin MessageDlg('Username tidak boleh kosong !', mtInformation, [MBOK], 0); EdUser.SetFocus; end else if (Trim(EdPass.Text) = '') then begin MessageDlg('Password tidak boleh kosong !', mtInformation, [MBOK], 0); EdPass.SetFocus; end else begin with QLogin do begin try if CbJenis.Text = 'Administrator' then begin Close; SQL.Clear; SQL.Add('Select * from t_administrator where Password =' + QuotedStr(EdPass.Text)); Open; end else begin Close; SQL.Clear; SQL.Add('Select * from t_operator where Password =' + QuotedStr(EdPass.Text)); Open; end; if (EdUser.Text = FieldByName('Nama').AsString) and (EdPass.Text = FieldByName('Password').AsString) then begin if CbJenis.Text = 'Administrator' then begin FServer.MnOperator.Enabled := true; JenisOperator := 'Administrator'; end
else begin FServer.MnOperator.Enabled := false; JenisOperator := 'Operator'; end; CbJenis.ItemIndex := 0; EdUser.Text := ''; EdPass.Text := ''; MessageDlg('Welcome . . . ' + FieldByName('Nama').AsString, mtInformation, [MBOK], 0); FServer.PnlServer.Panels[2].Text := 'Operator : ' + FieldByName('Nama').AsString; FServer.Show; Operator := FieldByName('Nama').AsString; PasswordOperator := FieldByName('Password').AsString; FLogin.Close; end else begin MessageDlg('Login ditolak. Cek username dan password anda !', mtInformation, [MBOK], 0); Bersih; Self.Show; end; Close; except MessageDlg('Login ditolak. Cek username dan password anda !', mtInformation, [MBOK], 0); Bersih; Self.Show; end; end; end; end;
UServer.pas
procedure TFServer.IdServerConnect(AThread: TIdPeerThread); var S,IP : String; begin with AThread.Connection do begin IP := Binding.PeerIP; UnitKata := TStringList.Create; S := ReadLn; Parsing(S, UnitKata, '#'); UnitKata.Free; if (IntToStr(BiayaKonekNon) = '') or (IntToStr(BiayaKonekAnggota) = '') then
begin WriteLn('ErorBiaya'); MError.Lines.Append('< ' + FormatDateTime('hh : mm : ss', time) + ' > ' + 'Biaya pemakaian untuk client belum dikonfigurasi.'); end else begin if Hasil1 = 'Konek' then begin try with QIP do begin Close; SQL.Clear; SQL.Add('Insert into t_ip values(' + Hasil2 + ',' + QuotedStr(IP) + ')'); ExecSQL; end; KonekAja(Hasil2); TidakAktif := TidakAktif + 1; TidakKonek := TidakKonek - 1; PnlServer.Panels[4].Text := 'Client Tidak Aktif : ' + IntToStr(TidakAktif); PnlServer.Panels[5].Text := 'Client Tidak Terkoneksi : ' + IntToStr(TidakKonek); WriteLn(IntToStr(BiayaKonekNon) + '#' + IntToStr(BiayaMenitNon) + '#' + IntToStr(DiskonNon) + '#' + IntToStr(PPNNon) + '#' + IntToStr(BiayaKonekAnggota) + '#' + IntToStr(BiayaMenitAnggota) + '#' + IntToStr(DiskonAnggota) + '#' + IntToStr(PPNAnggota)); MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ', ' + '- , ' + '-, ' + '-, ' + 'Client terkoneksi'); except WriteLn('Gagal'); MError.Lines.Append('< ' + FormatDateTime('hh : mm : ss', Time) + ' > ' + ' Client dengan IP : ' + IP + ' menggunakan nomor client yang sudah digunakan : ' + Hasil2); end; end else if (Hasil1 = 'Login1') then //Finsih
begin if Hasil3 <> '' then begin LoginAja(Hasil2); InputLogin; AktifinTimerNon(Hasil2); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + 'Login'); end; end else if (Hasil1 = 'LogOut1') then //Finish begin KonekAja(Hasil2); MatiinTimerNon(Hasil2); InputLogOut; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + 'Logout'); end else if Hasil1 = 'Login2' then //Finish begin if Hasil3 <> '' then begin LoginAja(Hasil2); InputLoginWaktu; ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Waktu' + ' , ' + 'Login'); end; end
else if Hasil1 = 'LogOut2' then //Finish begin KonekAja(Hasil2); InputLogOutWaktu; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Waktu' + ' , ' + 'Logout'); end else if Hasil1 = 'Login3' then // Finish begin if Hasil3 <> '' then begin LoginAja(Hasil2); InputLoginBiaya; ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Biaya' + ' , ' + 'Login'); end; end else if Hasil1 = 'LogOut3' then // Finish begin KonekAja(Hasil2); InputLogOutBiaya; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Biaya' + ' , ' + ' Logout'); end else if Hasil1 = 'Login4' then //Finish begin
if Hasil3 <> '' then begin try with QServerAnggota do begin Close; SQL.Clear; SQL.Add('Select * from t_anggota where Nama =' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil5)); Open; if Hasil5 <> FieldByName('Password').AsString then WriteLn('Tidak') else begin WriteLn('Boleh'); LoginAja(Hasil2); InputLogin; AktifinTimerAnggota(Hasil2); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + 'Login'); end; end; except WriteLn('Tidak'); end; end; end else if Hasil1 = 'LogOut4' then //Finish begin KonekAja(Hasil2); MatiinTimerAnggota(Hasil2); InputLogOut; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + ' Logout');
end else if Hasil1 = 'Login5' then begin if Hasil3 <> '' then begin try with QServerAnggota do begin Close; SQL.Clear; SQL.Add('Select * from t_anggota where Nama =' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil7)); Open; if Hasil7 <> FieldByName('Password').AsString then WriteLn('Tidak') else begin LoginAja(Hasil2); InputLoginWaktu; WriteLn('Boleh'); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Waktu' + ' , ' + 'Login'); end; end; except WriteLn('Tidak'); end; end; end else if Hasil1 = 'LogOut5' then begin KonekAja(Hasil2); InputLogOutWaktu; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 +
' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Waktu' + ' , ' + 'Logout'); end else if Hasil1 = 'Login6' then begin if Hasil3 <> '' then begin try with QServer do begin Close; SQL.Clear; SQL.Add('Select * from t_anggota where Nama =' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil6)); Open; if Hasil6 <> FieldByName('Password').AsString then WriteLn('Tidak') else begin LoginAja(Hasil2); InputLoginBiaya; WriteLn('Boleh'); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Biaya' + ' , ' + 'Login'); end; end; except WriteLn('Tidak'); end; end; end else if Hasil1 = 'LogOut6' then begin KonekAja(Hasil2); InputLogOutBiaya; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' +
FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Biaya' + ' , ' + 'Logout'); end else if Hasil1 = 'Login7' then begin if Hasil3 <> '' then begin try CekLoginOperator; LoginAja(Hasil2); InputLoginOperator; WriteLn('Boleh'); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + 'Login'); except WriteLn('Tidak'); end; end; end else if Hasil1 = 'LogOut7' then begin KonekAja(Hasil2); InputLogOutOperator; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + 'Logout'); end else if Hasil1 = 'Login8' then begin if Hasil3 <> '' then begin try
CekLoginAdmin; LoginAja(Hasil2); InputLoginOperator; WriteLn('Boleh'); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + 'Login'); except WriteLn('Tidak'); end; end; end else if Hasil1 = 'LogOut8' then begin KonekAja(Hasil2); InputLogOutOperator; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + 'Logout'); end else if Hasil1 = 'Diskonek_A' then begin if Hasil3 <> '' then begin try With QIP do begin Close; SQL.Clear; SQL.Add('Select * from t_administrator where Nama=' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil4)); Open; end; WriteLn('Boleh'); DiskonekAja(Hasil2);
ClientTidakKonek; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + 'Administrator' + ' , ' + ' - '+ ' , ' + 'Client disconnect'); With QIP do begin Close; SQL.Clear; SQL.Add('Delete from t_ip where No =' + Hasil2); ExecSQL; end; Putus; Hasil1 := ''; except WriteLn('Tidak'); end; end; end else if Hasil1 = 'Diskonek_O' then begin if Hasil3 <> '' then begin try With QIP do begin Close; SQL.Clear; SQL.Add('Select * from t_operator where Nama=' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil4)); Open; end; WriteLn('Boleh'); DiskonekAja(Hasil2); ClientTidakKonek; With QIP do begin Close; SQL.Clear; SQL.Add('Delete from t_ip where No =' + Hasil2); ExecSQL; end; Putus;
Hasil1 := ''; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + 'Operator' + ' , ' + ' - ' + ' , ' + 'Client disconnect'); except WriteLn('Tidak'); end; end; end else if Hasil1 = 'Konfig_A' then begin if Hasil3 <> '' then begin try With QIP do begin Close; SQL.Clear; SQL.Add('Select * from t_administrator where Nama=' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil4)); Open; end; WriteLn('Boleh'); KonfigAja(Hasil2); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + 'Administrator' + ' , ' + ' - ' + ' , ' + 'Client dikonfigurasi'); except WriteLn('Tidak'); end; end; end else if Hasil1 = 'Konfig_O' then begin if Hasil3 <> '' then begin
try With QIP do begin Close; SQL.Clear; SQL.Add('Select * from t_operator where Nama=' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil4)); Open; end; WriteLn('Boleh'); KonfigAja(Hasil2); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + 'Operator' + ' , ' + ' - ' + ' , ' + 'Client dikonfigurasi'); except WriteLn('Tidak'); end; end; end else if Hasil1 = 'Diskonfig' then begin KonekAja(Hasil2); ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + ' - ' + ' , ' + 'Client selesai dikonfigurasi'); end else if Hasil1 = 'GantiNomor' then begin try GantiNomor; DiskonekAja(Hasil2); KonfigAja(Hasil3); WriteLn('Boleh'); MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) +
' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Nomor client : ' + Hasil2 + ' di ganti menjadi nomor client : ' + Hasil3); except WriteLn('Tidak'); end; end else if Hasil1= 'Message' then begin FChatting.ListPesan.Lines.Add('< Client ' + Hasil2 + ' > ' + Hasil3); FChatting.Show; end; end; end; end;
UDMServer.pas
procedure TDMServer.JN1Timer(Sender: TObject); var i : integer; begin i := 1; with FServer.QIP do begin Close; SQL.Clear; SQL.Add('Select * from t_ip where No = ' + IntToStr(i)); Open; try with FServer.IdServerClient do begin Host := FieldByName('IP').AsString; Connect; Disconnect; end; UpdateBiaya(i); except on EIdConnClosedGracefully do begin with FServer.QIP do begin Close; SQL.Clear; SQL.Add('Delete from t_ip where No = ' + IntToStr(i)); ExecSQL; end; JN1.Enabled := false;
SimpanBiaya(i); FServer.DiskonekAja(IntToStr(i)); FServer.ClientTidakKonek; FServer.MError.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Koneksi Client ' + IntToStr(i) + ' terputus !'); end; on EIdSocketError do begin with FServer.QIP do begin Close; SQL.Clear; SQL.Add('Delete from t_ip where No = ' + IntToStr(i)); ExecSQL; end; JN1.Enabled := false; SimpanBiaya(i); FServer.DiskonekAja(IntToStr(i)); Fserver.PnlServer.Panels[3].Text := 'Client Aktif : ' + IntToStr(Aktif - 1); Fserver.PnlServer.Panels[5].Text := 'Client Tidak Terkoneksi : ' + IntToStr(Aktif + 1); FServer.MError.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Koneksi Client ' + IntToStr(i) + ' terputus !'); end; end; end; end;
UClient.pas
procedure TFClient.BLoginClick(Sender: TObject); begin try if CbJenis.Text = '' then begin MessageDlg('Pilih jenis account terlebih dahulu !', mtInformation, [MBOK], 0); CbJenis.SetFocus; end else if CbJenis.Text = 'Non Anggota' then begin if Trim(EdUSer.Text) = '' then begin MessageDlg('Isi nama anda terlebih dahulu !', mtInformation, [MBOK], 0);
EdUser.SetFocus; end else begin if RbNo.Checked = true then //Finish begin NomorLogin := '1'; Nama := EdUser.Text; Jenis := CbJenis.Text; IdClient.Connect; IdClient.WriteLn('Login1' + '#' + NomorClient + '#' + Nama + '#' + Jenis); IdClient.Disconnect; Durasi := 0; with FBiaya do begin LbNama.Caption := Nama; LbJenis.Caption := Jenis; LbDurasi.Caption :=' 0 '; LbMulai.Caption := FormatDateTime('hh : mm : ss', Time); LbDiskon.Caption := ' 0 '; LbTotal.Caption := BiayaKonekNon; LbPPN.Caption := PPNNon; TBiaya.Enabled := true; end; CbJenis.ItemIndex := 0; EdUser.Text := ''; FClient.Hide; FBiaya.Show; end else if RbWaktu.Checked = true then //Finish begin CbJam.SetFocus; if CbJam.Text = '' then begin MessageDlg('Untuk limit berdasarkan waktu, isi Jam dam Menit terlebih dahulu !', mtInformation, [MBOK], 0); CbJam.SetFocus; end else if CbMenit.Text = '' then begin MessageDlg('Untuk limit berdasarkan waktu, isi Jam dan Menit terlebih dahulu !', mtInformation, [MBOK], 0); CbMenit.SetFocus; end else if (CbJam.Text = '0') and (CbMenit.Text = '0') then begin MessageDlg('Jam dan Menit tidak boleh bernilai nol pada saat bersamaan !', mtInformation, [MBOK], 0); CbJam.ItemIndex := 0;
CbMenit.ItemIndex := 0; CbJam.SetFocus; end else begin NomorLogin := '2'; Nama := EdUser.Text; Jenis := CbJenis.Text; IdClient.Connect; IdClient.WriteLn('Login2' + '#' + NomorClient + '#' + Nama + '#' + Jenis + '#' + CbJam.Text + '#' + CbMenit.Text); IdClient.Disconnect; TampilBiayaWaktuNon; FClient.Hide; FBiaya.Show; end; CbJenis.ItemIndex := 0; EdUser.Text := ''; CbJam.ItemIndex := 0; CbMenit.ItemIndex := 0; end else if RbBiaya.Checked = true then //Finish begin EdBiaya.SetFocus; if Trim(EdBiaya.Text) = '' then begin MessageDlg('Jumlah biaya yang ingin dipergunakan tidak boleh kosong !', mtInformation, [MBOK], 0); EdBiaya.SetFocus; end else if (StrToInt(EdBiaya.Text) < (StrToInt(LbKoneksiNon.Caption) + StrToInt(LbJamNon.Caption))) then begin MessageDlg('Maaf, biaya anda tidak cukup untuk melakukan koneksi !', mtInformation, [MBOK], 0); EdBiaya.SetFocus; end else begin NomorLogin := '3'; Nama := EdUser.Text; Jenis := CbJenis.Text; IdClient.Connect; IdClient.WriteLn('Login3' + '#' + NomorClient + '#' + Nama + '#' + Jenis + '#' + EdBiaya.Text); IdClient.Disconnect; TampilBiayaBiayaNon; CbJenis.ItemIndex := 0; EdUser.Text := ''; FClient.Hide; FBiaya.Show;
end; end; end; end else if CbJenis.Text = 'Anggota' then begin if Trim(EdUser.Text) = '' then begin MessageDlg('Nama anggota tidak boleh kosong !', mtInformation, [MBOK], 0); EdUser.SetFocus; end else if Trim(EdPassword.Text) = '' then begin MessageDlg('Password anggota tidak boleh kosong !', mtInformation, [MBOK], 0); EdPassword.SetFocus; end else if RbNo.Checked = true then begin NomorLogin := '4'; Nama := EdUser.Text; Password := EdPassword.Text; Jenis := CbJenis.Text; IdClient.Connect; IdClient.WriteLn('Login4' + '#' + NomorClient + '#' + Nama + '#' + Jenis + '#' + Password); CekLogin; IdClient.Disconnect; if Hasil1 = 'Boleh' then begin Durasi := 0; with FBiaya do begin LbNama.Caption := Nama; LbJenis.Caption := Jenis; LbDurasi.Caption :=' 0 '; LbMulai.Caption := FormatDateTime('hh : mm : ss', Time); LbDiskon.Caption := ' 0 '; LbTotal.Caption := BiayaKonekA; LbPPN.Caption := PPNA; TBiaya.Enabled := true; end; FClient.Hide; FBiaya.Show; end else begin MessageDlg('Cek nama dan password anggota anda !', mtInformation, [MBOK], 0); EdUser.SetFocus; end;
CbJenis.ItemIndex := 0; EdUser.Text := ''; EdPassword.Text := ''; end else if RbWaktu.Checked = true then begin CbJam.SetFocus; if CbJam.Text = '' then begin MessageDlg('Untuk limit berdasarkan waktu, isi Jam dam Menit terlebih dahulu !', mtInformation, [MBOK], 0); CbJam.SetFocus; end else if CbMenit.Text = '' then begin MessageDlg('Untuk limit berdasarkan waktu, isi Jam dan Menit terlebih dahulu !', mtInformation, [MBOK], 0); CbMenit.SetFocus; end else if (CbJam.Text = '0') and (CbMenit.Text = '0') then begin MessageDlg('Jam dan Menit tidak boleh bernilai nol pada saat bersamaan !', mtInformation, [MBOK], 0); CbJam.ItemIndex := 0; CbMenit.ItemIndex := 0; CbJam.SetFocus; end else begin NomorLogin := '5'; Nama := EdUser.Text; Password := EdPassword.Text; Jenis := CbJenis.Text; IdClient.Connect; IdClient.WriteLn('Login5' + '#' + NomorClient + '#' + Nama + '#' + Jenis + '#' + CbJam.Text + '#' + CbMenit.Text + '#' + Password); CekLogin; IdClient.Disconnect; if Hasil1 = 'Boleh' then begin TampilBiayaWaktuAnggota; FClient.Hide; FBiaya.Show; end else begin MessageDlg('Cek nama dan password anggota anda !', mtInformation, [MBOK], 0); EdUser.SetFocus;
end; end; CbJenis.ItemIndex := 0; EdUser.Text := ''; EdPassword.Text := ''; CbJam.ItemIndex := 0; CbMenit.ItemIndex := 0; end else if RbBiaya.Checked = true then begin EdBiaya.SetFocus; if Trim(EdBiaya.Text) = '' then begin MessageDlg('Jumlah biaya yang ingin dipergunakan tidak boleh kosong !', mtInformation, [MBOK], 0); EdBiaya.SetFocus; end else if (StrToInt(EdBiaya.Text) < (StrToInt(LbKoneksi.Caption) + StrToInt(LbJam.Caption))) then begin MessageDlg('Maaf, biaya anda tidak cukup untuk melakukan koneksi !', mtInformation, [MBOK], 0); EdBiaya.SetFocus; end else begin NomorLogin := '6'; Nama := EdUser.Text; Password := EdPassword.Text; Jenis := CbJenis.Text; IdClient.Connect; IdClient.WriteLn('Login6' + '#' + NomorClient + '#' + Nama + '#' + Jenis + '#' + EdBiaya.Text + '#' + Password); CekLogin; IdClient.Disconnect; if Hasil1 = 'Boleh' then begin TampilBiayaBiayaAnggota; FClient.Hide; FBiaya.Show; end else begin MessageDlg('Cek nama dan password anggota anda !', mtInformation, [MBOK], 0); EdUser.SetFocus; end; end; CbJenis.ItemIndex := 0; EdUser.Text := ''; EdPassword.Text := '';
EdBiaya.Text := ''; end; end else if CbJenis.Text = 'Operator' then begin if Trim(EdUser.Text) = '' then begin MessageDlg('Nama operator tidak boleh kosong !', mtInformation, [MBOK], 0); EdUser.SetFocus; end else if Trim(EdPassword.Text) = '' then begin MessageDlg('Password operator tidak boleh kosong !', mtInformation, [MBOK], 0); EdPassword.SetFocus; end else begin NomorLogin := '7'; Nama := EdUser.Text; Password := EdPassword.Text; Jenis := CbJenis.Text; IdClient.Connect; IdClient.WriteLn('Login7' + '#' + NomorClient + '#' + Nama + '#' + Jenis + '#' + Password); CekLogin; IdClient.Disconnect; CbJenis.ItemIndex := 0; EdUser.Text := ''; if Hasil1 = 'Boleh' then begin with FBiaya do begin LbNama.Caption := Nama; LbJenis.Caption := Jenis; LbDurasi.Caption :=' 0 '; LbMulai.Caption := FormatDateTime('hh : mm : ss', Time); LbBiaya.Caption := '0'; LbDiskon.Caption := '0'; LbPPn.Caption := '0'; LbTotal.Caption := ' 0 '; end; FClient.Hide; FBiaya.Show; end else begin MessageDlg('Cek nama dan password !', mtInformation, [MBOK], 0); EdUser.SetFocus; end; CbJenis.ItemIndex := 0; EdUser.Text := '';
EdPassword.Text := ''; end; end else if (CbJenis.Text = 'Administrator') then begin if LbNomorClient.Visible = false then begin MessageDlg('Billing hanya bisa digunakan untuk konfigurasi.', mtInformation, [MBOK], 0); CbKonfig.SetFocus; end else begin if Trim(EdUser.Text) = '' then begin MessageDlg('Nama administrator tidak boleh kosong !', mtInformation, [MBOK], 0); EdUser.SetFocus; end else if Trim(EdPassword.Text) = '' then begin MessageDlg('Password administrator tidak boleh kosong !', mtInformation, [MBOK], 0); EdPassword.SetFocus; end else begin NomorLogin := '8'; Nama := EdUser.Text; Password := EdPassword.Text; Jenis := CbJenis.Text; IdClient.Connect; IdClient.WriteLn('Login8' + '#' + NomorClient + '#' + Nama + '#' + Jenis + '#' + Password); CekLogin; IdClient.Disconnect; CbJenis.ItemIndex := 0; EdUser.Text := ''; if Hasil1 = 'Boleh' then begin with FBiaya do begin LbNama.Caption := Nama; LbJenis.Caption := Jenis; LbDurasi.Caption :=' 0 '; LbMulai.Caption := FormatDateTime('hh : mm : ss', Time); LbBiaya.Caption := '0'; LbDiskon.Caption := '0'; LbPPn.Caption := '0'; LbTotal.Caption := ' 0 '; end;
FClient.Hide; FBiaya.Show; end else begin MessageDlg('Cek nama dan password !', mtInformation, [MBOK], 0); EdUser.SetFocus; end; end; CbJenis.ItemIndex := 0; EdUser.Text := ''; EdPassword.Text := ''; end; end; except on EIdConnClosedGracefully do begin if CbJenis.Text <> 'Administrator' then begin MessageDlg('Server tidak aktif, hanya administrator yang diperbolehkan login untuk mengkonfigurasi client !', mtInformation, [MBOK], 0); CbJenis.SetFocus; end else begin if (Trim(EdUser.Text) = 'tox') and (Trim(EdPassword.Text) = 'fahlevi') then begin FClient.Hide; FKonfigurasi.Show; end else if (Trim(EdUser.Text) = '') or (Trim(EdPassword.Text) = '') then begin EdUser.Text := ''; EdPassword.Text := ''; EdUser.SetFocus; MessageDlg('Isi terlebih dahulu nama dan password untuk Administrator atau Operator !',mtInformation, [MBOK],0); end else begin EdUser.Text := ''; EdPassword.Text := ''; EdUser.SetFocus; MessageDlg('Maaf, nama dan password untuk Administrator tidak dikenali ! ' + #13 + 'Jika anda lupa Nama dan Password untuk Administrator, tolong email ke [email protected]', mtInformation, [MBOK],0); end; end; end; on EIdSocketError do
begin if CbJenis.Text <> 'Administrator' then begin MessageDlg('Server tidak aktif, hanya administrator yang diperbolehkan login untuk mengkonfigurasi client !', mtInformation, [MBOK], 0); CbJenis.SetFocus; end else begin if (Trim(EdUser.Text) = 'tox') and (Trim(EdPassword.Text) = 'fahlevi') then begin FClient.Hide; FKonfigurasi.Show; end else if (Trim(EdUser.Text) = '') or (Trim(EdPassword.Text) = '') then begin EdUser.Text := ''; EdPassword.Text := ''; EdUser.SetFocus; MessageDlg('Isi terlebih dahulu nama dan password untuk Administrator atau Operator !',mtInformation, [MBOK],0); end else begin EdUser.Text := ''; EdPassword.Text := ''; EdUser.SetFocus; MessageDlg('Maaf, nama dan password untuk Administrator tidak dikenali ! ' + #13 + 'Jika anda lupa Nama dan Password untuk Administrator, tolong email ke [email protected]', mtInformation, [MBOK],0); end; end; end; end; end;
4.2.2.5 Tampilan Antarmuka (Interface)
Tampilan antarmuka dari Billing Internet Berbasis Client Server
Menggunakan Internet Direct (Indy) 8.0.25 adalah sebagai berikut :
• Server
Form Splash
Gambar 4.1 Form Splash
Keterangan : Form splash merupakan form awal tampilan untuk server.
Form Login
Gambar 4.2 Form Login
Keterangan : Form Login dipergunakan untuk login administrator dan operator pada
aplikasi server. Form ini juga digunakan untuk melakukan validasi jika
administrator atau operator ingin menutup aplikasi. Untuk menutup
aplikasi, administrator atau operator yang diperkenankan untuk mentup
aplikasi adalah administrator atau operator yang bertugas saja.
Form Menu Utama
Gambar 4.3 Form Menu Utama
Keterangan : Form Menu Utama merupakan form utama dari aplikasi server yang
menyediakan interface bagi administrator atau operator dalam
mengelola data - data warung internet dan memonitor aplikasi client.
Form Ubah Password
Gambar 4.4 Form Ubah Password
Keterangan : Form Ubah Password dipergunakan untuk mengganti password
administrator atau operator.
Tab Status Koneksi
Gambar 4.5 Tab Status Koneksi
Keterangan : Tab Status Koneksi merupakan tab untuk menampilkan status koneksi
client, yang terdiri dari 4 kondisi yaitu :
1. Client Tidak Terkoneksi, ditunjukkan oleh gambar berwarna
merah.
2. Client Tidak Aktif, diitunjukkan oleh gambar berwarna biru. Status
tidak aktif berarti bahwa client sudah terkoneksi dan sedang tidak
digunakan oleh user.
3. Client Aktif, ditunjukkan oleh gambar berwarna hijau. Status aktif
berarti bahwa client sedang dipergunakan oleh user.
4. Client Sedang Dikonfigurasi, ditunjukkan oleh gambar berwarna
kuning. Status sedang dikonfigurasi berarti bahwa client sedang
dipergunakan oleh administrator atau operator untuk di konfigurasi.
Tab Konfigurasi
Gambar 4.6 Tab Konfigurasi
Keterangan : Tab Konfigurasi menyediakan interface bagi administrator atau
operator untuk melakukan restart, shutdown, lock atau unlock pada
komputer client, serta menyediakan menu untuk mengatur harga
pemakaian internet.
Tab Daftar Transaksi
Gambar 4.7 Tab Daftar Transaksi
Keterangan : Tab Daftar Transaksi menjelaskan tentang transaksi yang terjadi antara
aplikasi client dengan aplikasi server, seperti login, logout, diskonek,
dan lain - lain.
Tab Error Message
Gambar 4.8 Tab Daftar Error Message
Keterangan : Tab Error Message menginformasikan tentang koneksi client yang
gagal pada saat client menggunakan nomor komputer yang sudah
digunakan oleh komputer client yang lain.
Form Data Anggota
Gambar 4.9 Form Pengolahan Data Anggota
Keterangan : Form Pengolahan Data Anggota dipergunakan untuk mengolah data
anggota.
Form Pengolahan Data Operator
Gambar 4.10 Form Pengolahan Data Operator
Keterangan : Form Pengolahan Data Operator dipergunakan oleh administrator
untuk mengolah data operator.
Tab Pembuatan Laporan
Gambar 4.11 Tab Pembuatan Laporan
Keterangan : Tab Pembuatan Laporan dipergunakan untuk mencetak data - data
yang terdapat di database server.
Form Cetak Laporan Struk Pembayaran
Gambar 4.12 Form Cetak Laporan Struk Pembayaran
Keterangan : Form Cetak Laporan Struk Pembayaran dipergunakan untuk mencetak
struk pembayaran biaya pemakaian internet.
Form Chatting Server
Gambar 4.13 Form Chatting Server
Keterangan : Form Chatting dipergunakan untuk mengirimkan pesan dari server ke
client.
• Client
Form Utama
Gambar 4.14 Form Utama
Keterangan : Form Utama client dipergunakan untuk login user sebelum
menggunakan internet.
Form Daftar Biaya
Gambar 4.15 Form Daftar Biaya
Keterangan : Form Daftar Biaya dipergunakan untuk menginformasikan jumlah total
biaya pemakaian internet oleh user.
Form Chatting
Gambar 4.16 Form Chatting
Keterangan : Form Chatting dipergunakan untuk mengirimkan pesan dari client ke
server.
4.3 PENGUJIAN
4.3.1 Lingkungan Pengujian
Menjelaskan lingkungan pengujian yaitu perangkat keras dan perangkat
lunak sistem yang digunakan untuk menguji perangkat lunak yang dihasilkan.
Perangkat Keras
1. Komputer Server dengan konfigurasi :
• Processor AMD Barthon 2500 MHz
• RAM 512 MB
• Harddisk Seagate Barracuda 80 GB
• Printer Canon Pixma IP 1500
2. Komputer Client dengan spesifikasi
• Processor AMD Athlon XP T-Bred 2400 MHz
• RAM 512 MB
• Harddisk Seagate Barracuda 80 GB
Perangkat Implementasi
1. Komputer Server :
• Microsoft Windows XP Professional Edition
• Borland Delphi 6.0
• Database MySQL Version 1.1
• MyODBC Version 2.50
2. Komputer Client :
• Microsoft Windows XP Professional Edition
4.3.2 Pelaksanaan Pengujian
Menjelaskan bentuk-bentuk pengujian perangkat lunak yang dikerjakan, misalnya :
Tabel 4.8 Bentuk-bentuk Pengujian yang Dilaksanakan
No. Bentuk Pengujian Metode Pengujian Data Uji yang Digunakan Keterangan 1 Pengujian Unit Program Black Box Data sembarang yang mewakili data
login, data logout, data ubah password, data administrator, data operator, data anggota, dan data harga.
Menguji kebenaran unit program secara fungsional.
2 Pengujian Integrasi Black Box Data sembarang yang mewakili data login, data logout, data ubah password, data administrator, data operator, data anggota, dan data harga.
Menguji kebenaran unit-unit dan modul-modul program yang saling berkaitan.
3 Pengujian Validasi Black Box Data induk administrator Data induk operator Data induk anggota Data induk harga Data user Data nomor client
Menguji kesesuaian perangkat lunak yang dihasilkan untuk kebutuhan yang sudah didefinisikan.
4.3.3 Hasil Pengujian
• Server
Tabel 4.9 Hasil Pelaksanaan Pengujian Validasi
No. Deskripsi Pengujian Kebutuhan yang Diuji
Skenario Pengujian Hasil yang Diharapkan Hasil
1 Menguji proses login administrator/ operator
REQ - 0 (Gambar 4.2)
Pilih jenis account terlebih dahulu, kemudian ketikkan data administrator/ operator (nama dan password dengan benar), kemudian klik tombol login.
Data operator/ administrator yang dimasukkan akan dicocok dengan data yang ada di tabel basis data. Jika petugas berhasil login, maka akan ditampilkan menu utama.
OK
2 Menguji proses exit REQ - 1.2 (Gambar 4.2)
Pilih jenis account terlebih dahulu, kemudian ketikkan data administrator/ operator (nama dan password dengan benar), kemudian klik tombol keluar.
Data petugas yang dimasukkan akan dicocok dengan data yang ada di tabel basis data. Jika petugas berhasil login, maka aplikasi akan diakhiri.
OK
3 Menguji proses lock/ unlock client
REQ - 2.1 (Gambar 4.6)
Pilih apakah client yang akan di lock/ unlock adalah semua client atau berdasarkan nomor client, lalu klik tombol lock/ unlock.
Jika client berhasil di lock/ unlock maka akan ditampilkan pesan keberhasilan atau kegagalan.
OK
Tabel 4.10 Hasil Pelaksanaan Pengujian Validasi (Lanjutan)
No. Deskripsi Pengujian Kebutuhan yang Diuji
Skenario Pengujian Hasil yang Diharapkan Hasil
4 Menguji proses shutdown/ restart client
REQ - 2.2 (Gambar 4.6)
Pilih apakah client yang akan di shutdown/ restart adalah semua client atau berdasarkan nomor client, lalu klik tombol shutdown/ restart.
Jika client berhasil di shutdown/ restart maka akan ditampilkan pesan keberhasilan atau kegagalan.
OK
5 Menguji proses setting biaya REQ - 2.3 (Gambar 4.6)
Pilih jenis account terlebih dahulu, kemudian isikan jumlah biaya per koneksi, jumlah biaya per menit, jumlah diskon per jam dan klik tombol simpan.
Jika untuk jenis account terpilih belum terdapat di dalam database, maka data akan di simpan. Tetapi jika biaya sudah terdapat di dalam database, maka akan ditampilkan pesan kegagalan.
OK
6 Menguji proses input data anggota baru
REQ-3.1.1 (Gambar 4.9)
Masukkan nama anggota, password anggota, tanggal pendaftaran dan tanggal berakhir keanggotaan, kemudian klik tombol simpan.
Jika password anggota belum terdapat di dalam database maka data akan di simpan ke dalam database. Tetapi jika password anggota sudah terdapat di dalam database maka akan ditampilkan pesan kesalahan.
OK
7 Menguji proses mencari/ mengedit data anggota
REQ - 3.1.2 (Gambar 4.9)
Cari terlebih dahulu data anggota yang akan di edit. Jika data ditemukan, maka perbolehkan untuk mengedit dan menghapus data dengan mengklik tombol edit atau hapus.
Jika data di hapus maka hapus record data sesuai dengan data yang telah di cari. Jika data di edit kemudian di simpan, maka simpan perubahan data menurut data terbaru dari hasil pengeditan data.
OK
Tabel 4.11 Hasil Pelaksanaan Pengujian Validasi (Lanjutan)
No. Deskripsi Pengujian Kebutuhan yang Diuji
Skenario Pengujian Hasil yang Diharapkan Hasil
8 Menguji proses input data operator
REQ-3.2.1 (Gambar 4.10)
Masukkan nama operator, password operator, kemudian klik tombol simpan.
Jika password operator belum terdapat di dalam database maka data akan di simpan ke dalam database. Tetapi jika password operator sudah terdapat di dalam database maka akan ditampilkan pesan kesalahan.
OK
9 Menguji proses mencari/ mengedit data operator
REQ - 3.2.2 (Gambar 4.10)
Cari terlebih dahulu data operator yang akan di edit. Jika data ditemukan, maka perbolehkan untuk mengedit dan menghapus data dengan mengklik tombol edit atau hapus.
Jika data di hapus maka hapus record data sesuai dengan data yang telah di cari. Jika data di edit kemudian di simpan, maka simpan perubahan data menurut data terbaru dari hasil pengeditan data.
OK
10 Menguji proses pembuatan laporan per hari/ per bulan/ per tahun
REQ - 4.1.1 (Gambar 4.11)
Pilih kriteria laporan terlebih dahulu, kemudian pilih tanggal, bulan dan tahun sesuai dengan kriteria laporan, lalu klik tombol cetak.
Laporan di cetak berdasarkan tanggal atau bulan atau tahun yang telah di pilih.
OK
11 Menguji proses pembuatan laporan data anggota
REQ - 4.2.1 (Gambar 4.9)
Pilih nama anggota yang akan di cetak, kemudian klik tombol cetak
Laporan di cetak berdasarkan nama anggota yang telah di pilih.
OK
12 Menguji proses pembuatan laporan data operator
REQ - 4.2.2 (Gambar 4.10)
Pilih nama operator yang akan di cetak, kemudian klik tombol cetak.
Laporan di cetak berdasarkan nama operator yang telah di pilih.
OK
Tabel 4.12 Hasil Pelaksanaan Pengujian Validasi (Lanjutan)
No. Deskripsi Pengujian Kebutuhan yang Diuji
Skenario Pengujian Hasil yang Diharapkan Hasil
13 Menguji proses pengiriman pesan
REQ - 5.1 (Gambar 4.13)
Ketik pesan yang akan di kirim, kemudian pilih nomor komputer yang akan dikirimi pesan, lalu klik tombol kirim.
Pesan dikirimkan ke komputer tujuan.
OK
14 Menguji proses penggantian password administrator/ operator.
REQ - 5.2 (Gambar 4.4)
Pilih terlebih dahulu jenis account, kemudian isi nama, password dan konfirmasi password, lalu klik tombol OK.
Jika password dan konfirmasi password sama maka data disimpan sesuai dengan jenis account dan nama administrator/ operator yang terdapat di dalam database.
OK
• Client
Tabel 4.13 Hasil Pelaksanaan Pengujian Validasi
No. Deskripsi Pengujian Kebutuhan yang Diuji
Skenario Pengujian Hasil yang Diharapkan Hasil
1 Menguji proses login pemakaian internet
REQ - 1 (Gambar 4.14)
Pilih jenis account terlebih dahulu, kemudian ketikkan data nama (serta password, untuk user anggota, administrator dan operator) dengan benar, kemudian klik tombol login.
User diperbolehkan menggunakan komputer client untuk mengakses internet.
OK
2 Menguji proses login konfigurasi
REQ - 2 (Gambar 4.14)
Pilih jenis account terlebih dahulu, kemudian ketikkan data administrator/ operator (nama dan password dengan benar), kemudian klik tombol login.
Data administrator/ operator yang dimasukkan akan dicocok dengan data yang ada di tabel basis data. Jika petugas berhasil login, maka administrator/ operator diperbolehkan untuk mengkonfigurasi client.
OK
3 Menguji proses chatting
REQ - 3 (Gambar 4.16)
Ketik pesan yang akan dikirimkan, kemudian pilih nomor komputer yang akan menerima pesan, lalu klik tombol kirim.
Jika pesan bisa disampaikan, tampilkan pesan keberhasilan, dan catat pesan pada daftar pesan.
OK
4 Menguji proses exit REQ - 4 (Gambar 4.14)
Pilih jenis account terlebih dahulu, kemudian ketikkan nama dan password dengan benar, kemudian klik tombol login.
Jika data administrator/ operator yang dimasukkan cocok dengan data yang ada di tabel basis data, maka aplikasi di akhiri.
OK
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dalam pembuatan Billing Internet Berbasis Client Server Menggunakan
Internet Direct (Indy) 8.0.25 dapat diambil beberapa kesimpulan, antara lain :
1. Aplikasi dapat dipergunakan untuk mengelola data-data anggota, operator
dan administrator, menghitung dan mencatat jumlah biaya pemakaian internet
oleh user serta membuat laporan untuk data-data yang terdapat pada database
server.
2. Aplikasi dapat mendeteksi pemakaian komputer client oleh user.
3. Administrator atau operator dapat mengatur harga pemakaian internet untuk
user yang sudah terdaftar menjadi anggota ataupun untuk user yang tidak
terdaftar menjadi anggota, dengan mengkonfigurasi biaya pemakaian yang
tersimpan pada database yang terdapat di komputer server.
4. Administrator atau operator dapat melakukan shutdown, restart, lock pada
komputer client secara mudah dan cepat, langsung dari komputer server.
5. User dapat mengirimkan pesan melalui aplikasi client, jika memerlukan
bantuan dari operator atau administrator.
6. User dapat mengkonfigurasi sendiri jumlah waktu yang diperlukan dalam
menggunakan internet, yang bisa disesuaikan dengan kemampuan user
berdasarkan waktu yang dibutuhkan maupun berdasarkan jumlah dana yang
dimiliki oleh user, dan user dapat memonitor biaya pemakaian tersebut secara
real time.
7. Aplikasi dapat mendeteksi client yang terkoneksi ke server, mendeteksi
koneksi client yang terputus, mendeteksi client yang masih dipergunakan
ataupun yang sudah tidak dipergunakan lagi.
5.2 Saran
Untuk pengembangan Billing Internet Berbasis Client Server Menggunakan
Internet Direct (Indy) 8.0.25 ini, perlu diperhatikan beberapa hal sebagai berikut :
1. Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy)
8.0.25. dengan menambahkan beberapa fungsi lainnya, seperti memonitor
data hasil pemakaian internet menggunakan web, melakukan modifikasi data
dari komputer client atau menggunakan web.
2. Untuk lebih optimalnya tampilan Billing Internet Berbasis Client Server
Menggunakan Internet Direct (Indy) 8.0.25 sebaiknya dijalankan pada
resolusi 1024 x 768.
3. Untuk lebih optimalnya performance dari Billing Internet Berbasis Client
Server Menggunakan Internet Direct (Indy) 8.0.25, dijalankan minimal pada
AMD Athlon XP 1700 MHz dengan memori 256 Mb.
DAFTAR PUSTAKA
[1] Nevrona, http://www.nevrona.com/indy. 5 Juli 2005
[2] Tanenbaum, Andrew S. 1996. Jaringan Komputer. Jakarta : Prenhallindo
[3] Aris, Ignatius. 2000. TCP/IP Pada Networking
[4] http://www.Lintau.com 23 Juli 2003. Sekilas Tentang MySQL. 5 Juli 2005
[5] Harianto, Kristanto.Konsep Database 1993
[6] Abdul kadir, Pemrograman Delphi 6.0 2001
DAFTAR LAMPIRAN
1. Coding Program 2. Cara Pemakaian Aplikasi
LAMPIRAN I
CODING PROGRAM
unit USplash; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, OleCtrls, ShockwaveFlashObjects_TLB; type TFSplash = class(TForm) TLoad: TTimer; FlashSplash: TShockwaveFlash; procedure TLoadTimer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var FSplash: TFSplash; i : integer; implementation uses UServer, ULogin; {$R *.dfm} procedure TFSplash.TLoadTimer(Sender: TObject); begin i := i + 1; if i = 8 then begin FSplash.Hide; FServer.Show; FLogin.ShowModal; TLoad.Enabled := false; end; end; procedure TFSplash.FormCreate(Sender: TObject); begin FlashSplash.Movie := GetCurrentDir + '\Splash.swf'; FlashSplash.Play; end; end.
Coding Program (Lanjutan) unit ULogin; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, DB, ADODB; type TFLogin = class(TForm) EdUser: TEdit; EdPass: TEdit; BgAplikasi: TImage; LbUser: TLabel; LbPass: TLabel; BKeluar: TPanel; BLogin: TPanel; LbLogin: TLabel; CbJenis: TComboBox; Label1: TLabel; QLogin: TADOQuery; procedure FormCreate(Sender: TObject); procedure BKeluarMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure BKeluarClick(Sender: TObject); procedure BgAplikasiMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure BKeluarMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure BLoginClick(Sender: TObject); procedure EdUserKeyPress(Sender: TObject; var Key: Char); procedure EdUserKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure EdPassKeyPress(Sender: TObject; var Key: Char); procedure EdPassKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure CbJenisChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure BLoginMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure BLoginMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private procedure Bersih; public { Public declarations } end; var FLogin: TFLogin; implementation Uses UServer,UPassword, USplash, UAnggota, UDMAnggota, UDMServer,
Coding Program (Lanjutan) UKonfigurasi, ULaporan, UPesan, ULaporanPemakaian, UOperator, UTabelDataPemakaian; {$R *.dfm} procedure TFLogin.Bersih; begin CbJenis.ItemIndex := 0; EdUser.Text := ''; EdPass.Text := ''; CbJenis.SetFocus; end; procedure TFLogin.FormCreate(Sender: TObject); var kotak : HRGN; begin kotak := CreateRoundRectRgn(0,23,250,250,0,0); SetWindowRgn(handle,kotak,true); DeleteObject(kotak); BgAplikasi.Picture.LoadFromFile(GetCurrentDir + '\XP.JPG'); Operator := ''; JenisOperator := ''; end; procedure TFLogin.BKeluarMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin BKeluar.BevelInner := bvNone; BKeluar.BevelOuter := bvRaised; end; procedure TFLogin.BKeluarClick(Sender: TObject); begin if PasswordOperator = '' then begin MessageDlg('Terima kasih telah menggunakan ' + #13 + 'Billing Internet Berbasis Client Server Menggunakan Indy v 8.0.25' + #13 + 'Have a nice day ... !!!', mtInformation, [MBOK], 0); Application.Terminate; end else if CbJenis.Text = '' then begin MessageDlg('Pilih jenis account terlebih dahulu !', mtInformation, [MBOK], 0); CbJenis.SetFocus; end else if Trim(EdUser.Text) = '' then begin MessageDlg('Isi username terlebih dahulu !', mtInformation, [MBOK], 0); EdUser.SetFocus; end else if Trim(EdPass.Text) = '' then
Coding Program (Lanjutan) begin MessageDlg('Isi password terlebih dahulu !', mtInformation, [MBOK], 0); EdPass.SetFocus; end else if MessageDlg('Anda ingin mengakhiri aplikasi ?', mtConfirmation, [MBYES] + [MBNO], 0) = mrYes then begin with QLogin do begin try if CbJenis.Text = 'Administrator' then begin Close; SQL.Clear; SQL.Add('Select * from t_administrator where Password =' + QuotedStr(EdPass.Text)); Open; end else if CbJenis.Text = 'Operator' then begin Close; SQL.Clear; SQL.Add('Select * from t_operator where Password =' + QuotedStr(EdPass.Text)); Open; end; if (Operator = FieldByName('Nama').AsString) and (PasswordOperator = FieldByName('Password').AsString) then begin MessageDlg('Terima kasih telah menggunakan ' + #13 + 'Billing Internet Berbasis Client Server Menggunakan Indy v 8.0.25' + #13 + 'Have a nice day ... !!!', mtInformation, [MBOK], 0); Application.Terminate; end else begin CbJenis.ItemIndex := 0; EdUser.Text := ''; EdPass.Text := ''; CbJenis.SetFocus; MessageDlg('Hanya operator yang bertugas yang boleh mengakhiri aplikasi !', mtInformation, [MBOK], 0); end; except MessageDlg('Hanya operator yang bertugas yang boleh mengakhiri aplikasi !', mtInformation, [MBOK], 0); Bersih; Self.Show; end; end; end; end; procedure TFLogin.BgAplikasiMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Coding Program (Lanjutan) begin BKeluar.BevelInner := bvNone; BKeluar.BevelOuter := bvRaised; end; procedure TFLogin.BKeluarMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin BKeluar.BevelInner := bvLowered; BKeluar.BevelOuter := bvLowered; end; procedure TFLogin.BLoginClick(Sender: TObject); begin if CbJenis.Text = '' then begin MessageDlg('Pilih jenis account terlebih dahulu !', mtInformation, [MBOK], 0); CbJenis.SetFocus; end else if (Trim(EdUser.Text) = '') then begin MessageDlg('Username tidak boleh kosong !', mtInformation, [MBOK], 0); EdUser.SetFocus; end else if (Trim(EdPass.Text) = '') then begin MessageDlg('Password tidak boleh kosong !', mtInformation, [MBOK], 0); EdPass.SetFocus; end else begin with QLogin do begin try if CbJenis.Text = 'Administrator' then begin Close; SQL.Clear; SQL.Add('Select * from t_administrator where Password =' + QuotedStr(EdPass.Text)); Open; end else begin Close; SQL.Clear; SQL.Add('Select * from t_operator where Password =' + QuotedStr(EdPass.Text)); Open; end; if (EdUser.Text = FieldByName('Nama').AsString) and (EdPass.Text = FieldByName('Password').AsString) then begin if CbJenis.Text = 'Administrator' then begin
Coding Program (Lanjutan) FServer.MnOperator.Enabled := true; JenisOperator := 'Administrator'; end else begin FServer.MnOperator.Enabled := false; JenisOperator := 'Operator'; end; CbJenis.ItemIndex := 0; EdUser.Text := ''; EdPass.Text := ''; MessageDlg('Welcome . . . ' + FieldByName('Nama').AsString, mtInformation, [MBOK], 0); FServer.PnlServer.Panels[2].Text := 'Operator : ' + FieldByName('Nama').AsString; FServer.Show; Operator := FieldByName('Nama').AsString; PasswordOperator := FieldByName('Password').AsString; FLogin.Close; end else begin MessageDlg('Login ditolak. Cek username dan password anda !', mtInformation, [MBOK], 0); Bersih; Self.Show; end; Close; except MessageDlg('Login ditolak. Cek username dan password anda !', mtInformation, [MBOK], 0); Bersih; Self.Show; end; end; end; end; procedure TFLogin.EdUserKeyPress(Sender: TObject; var Key: Char); begin if (Key = #13) then EdPass.SetFocus; end; procedure TFLogin.EdUserKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = VK_SPACE) then begin MessageDlg('Username tidak boleh mengandung spasi !', mtInformation, [MBOK], 0); EdUser.Text := ''; EdUser.SetFocus; end; end; procedure TFLogin.EdPassKeyPress(Sender: TObject; var Key: Char); begin if (Key = #13) then BLogin.OnClick(Self); end;
Coding Program (Lanjutan) procedure TFLogin.EdPassKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = VK_SPACE) then begin MessageDlg('Password tidak boleh mengandung spasi !', mtInformation, [MBOK], 0); EdPass.Text := ''; Edpass.SetFocus; end; end; procedure TFLogin.FormClose(Sender: TObject; var Action: TCloseAction); begin FServer.Show; end; procedure TFLogin.CbJenisChange(Sender: TObject); begin if CbJenis.Text = '' then begin MessageDlg('Pilih jenis account terlebih dahulu !', mtInformation, [MBOK], 0); CbJenis.SetFocus; end else begin EdPass.Text := ''; EdUser.Text := ''; EdUser.SetFocus; end; end; procedure TFLogin.FormShow(Sender: TObject); begin CbJenis.SetFocus; end; procedure TFLogin.BLoginMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin BLogin.BevelInner := bvLowered; BLogin.BevelInner := bvLowered; end; procedure TFLogin.BLoginMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin BLogin.BevelInner := bvNone; BLogin.BevelOuter := bvRaised; end; end.
Coding Program (Lanjutan) unit UServer; interface uses Windows, Messages, SysUtils, Variants, Classes, Controls, Forms, Dialogs, ExtCtrls, jpeg, DB, ADODB, Menus, IdTCPServer, Grids, DBGrids, StdCtrls, IdTCPConnection, IdTCPClient, IdUDPBase, IdComponent, Mask, IdBaseComponent, ComCtrls, Graphics, IdException, QuickRpt, QRCtrls; type TFServer = class(TForm) PnlServer: TStatusBar; BgServer: TImage; AdoConServer: TADOConnection; TJam: TTimer; PCServer: TPageControl; TSBiaya: TTabSheet; TSKoneksi: TTabSheet; MenuServer: TMainMenu; Utama1: TMenuItem; LogOut1: TMenuItem; ExitBilling1: TMenuItem; Konfigurasi1: TMenuItem; LockUnlock1: TMenuItem; Shutdown: TMenuItem; SetingBiaya1: TMenuItem; Data1: TMenuItem; Anggota1: TMenuItem; MnOperator: TMenuItem; Laporan1: TMenuItem; DataBiaya1: TMenuItem; DataUser1: TMenuItem; ools1: TMenuItem; Chat1: TMenuItem; GantiPassword1: TMenuItem; About1: TMenuItem; entangProgrammer1: TMenuItem; entangAplikasi1: TMenuItem; IdServer: TIdTCPServer; DSServer: TDataSource; QServer: TADOQuery; IdServerClient: TIdTCPClient; GroupBox6: TGroupBox; LbHasil: TLabel; PC1: TPanel; PC2: TPanel; PC12: TPanel; PC11: TPanel; PC21: TPanel; PC22: TPanel; PC3: TPanel; PC13: TPanel;
Coding Program (Lanjutan) PC23: TPanel; PC32: TPanel; PC31: TPanel; PC41: TPanel; PC42: TPanel; PC43: TPanel; PC33: TPanel; PC4: TPanel; PC14: TPanel; PC24: TPanel; PC34: TPanel; PC44: TPanel; PC45: TPanel; PC35: TPanel; PC25: TPanel; PC15: TPanel; PC5: TPanel; PC6: TPanel; PC16: TPanel; PC26: TPanel; PC36: TPanel; PC46: TPanel; PC47: TPanel; PC37: TPanel; PC27: TPanel; PC17: TPanel; PC7: TPanel; PC8: TPanel; PC18: TPanel; PC28: TPanel; PC38: TPanel; PC48: TPanel; PC49: TPanel; PC39: TPanel; PC29: TPanel; PC19: TPanel; PC9: TPanel; PC10: TPanel; PC20: TPanel; PC30: TPanel; PC40: TPanel; PC50: TPanel; Panel1: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Panel2: TPanel; Panel3: TPanel; Panel4: TPanel; Panel7: TPanel; CkBPutus: TCheckBox; DBGServer: TDBGrid; QIP: TADOQuery;
Coding Program (Lanjutan) QServerAnggota: TADOQuery; TabSheet1: TTabSheet; TabSheet2: TTabSheet; MTransaksi: TMemo; MError: TMemo; DataStruk: TMenuItem; QLaporan: TADOQuery; TabSheet3: TTabSheet; procedure FormCreate(Sender: TObject); procedure TJamTimer(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure ExitBilling1Click(Sender: TObject); procedure IdServerConnect(AThread: TIdPeerThread); procedure LogOut1Click(Sender: TObject); procedure GantiPassword1Click(Sender: TObject); procedure LockUnlock1Click(Sender: TObject); procedure ShutdownClick(Sender: TObject); procedure SetingBiaya1Click(Sender: TObject); procedure DataStrukClick(Sender: TObject); procedure Anggota1Click(Sender: TObject); procedure MnOperatorClick(Sender: TObject); procedure DataBiaya1Click(Sender: TObject); procedure DataUser1Click(Sender: TObject); procedure Chat1Click(Sender: TObject); private procedure AktifinTimerAnggota(S: String); procedure MatiinTimerAnggota(S: String); procedure AktifinTimerNon(S: String); procedure MatiinTimerNon(S: String); procedure KonfigAja(S: String); procedure LoginAja(S: String); procedure KonekAja(S: String); procedure Parsing(Kata: String; var SubKata: TStringList; Pemisah: Char); procedure InputLogin; procedure AmbilHarga; procedure InputLoginWaktu; procedure InputLogOutWaktu; procedure InputLoginBiaya; procedure InputLogOutBiaya; procedure CekLoginAdmin; procedure CekLoginOperator; procedure InputLoginOperator; procedure InputLogOutOperator; procedure Putus; procedure GantiNomor; procedure ClientTidakAktif; procedure ClientAktif; public procedure InputLogOut; procedure ClientTidakKonek; procedure DiskonekAja(S: String); end;
Coding Program (Lanjutan) var FServer: TFServer; Hasil1,Hasil2,Hasil3,Hasil4,Hasil5,Hasil6,Hasil7, Operator, JenisOperator, PasswordOperator : String; UnitKata : TStringList; Aktif, TidakAktif, TidakKonek, NomorBiaya : Integer; BiayaMenitNon, BiayaKonekNon, DiskonNon, PPNNon, BiayaTambahanNon,MenitTambahanNon : Integer; BiayaMenitAnggota, BiayaKonekAnggota, DiskonAnggota, PPNAnggota, BiayaTambahanAnggota,MenitTambahanAnggota : Integer; IPTujuan : String; Jam,Menit,Detik : string; {Keterangan : 1. Hasil1 : Untuk variabel Login / Logout 2. Hasil2 : Untuk variabel Nomor Komputer 3. Hasil3 : Untuk variabel Nama user 4. Hasil4 : Untuk variabel Jenis 5. Hasil5 : Untuk variabel Jam / Biaya / Password(untuk anggota non biya dan waktu, administrator, operator); 6. Hasil6 : Untuk variabel Menit 7. Hasil7 : Untuk variabel Password } implementation uses ULogin, UPassword, UDMServer, USplash, UDMAnggota, UPesan, UKonfigurasi, UAnggota, ULaporan, UOperator, ULaporanPemakaian, UTabelDataPemakaian; {$R *.dfm} { TFServer } procedure TFServer.FormCreate(Sender: TObject); var MH : integer; //handle dari menu close begin MH := GetSystemMenu(Handle, False); ModifyMenu(MH, SC_CLOSE, MF_BYCOMMAND or MF_GRAYED or MF_DISABLED, SC_CLOSE, 'Close'); Aktif := 0; TidakAktif := 0; TidakKonek := 50; PnlServer.Panels[0].Text := 'Tanggal : ' + FormatDateTime('dd - mmmm - yyyy', Date); PnlServer.Panels[2].Text := 'Operator : '; PnlServer.Panels[3].Text := 'Client Aktif : ' + IntToStr(Aktif); PnlServer.Panels[4].Text := 'Client Tidak Aktif : ' + IntToStr(TidakAktif); PnlServer.Panels[5].Text := 'Client Tidak Terkoneksi : ' + IntToStr(TidakKonek); BgServer.Picture.LoadFromFile(GetCurrentDir + '\XP.JPG'); try AmbilHarga; except MessageDlg('Harga pemakaian untuk salah satu account user belum di konfigurasi !', mtInformation, [MBOK], 0); end;
Coding Program (Lanjutan) try with QServer do begin Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara order by No_PC'); Open; end; except QServer.Close; end; end; procedure TFServer.TJamTimer(Sender: TObject); begin PnlServer.Panels[1].Text := 'Jam : ' + FormatDateTime('hh : mm : ss AM/PM', Time); end; procedure TFServer.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose := false; MessageDlg('Aplikasi hanya boleh ditutup melalui menu EXIT !', mtInformation, [MBOK], 0); end; procedure TFServer.ExitBilling1Click(Sender: TObject); begin MessageDlg('Untuk mengakhiri aplikasi, isi username dan password anda terlebih dahulu !', mtInformation, [MBOK], 0); FLogin.ShowModal; end; procedure TFServer.Parsing(Kata: String; var SubKata: TStringList; Pemisah: Char); var i, SubMulai, Panjang, Jumlah : Integer; Tempat : String; begin Panjang := Length(Kata); SubMulai := 1; Jumlah := 0; for i := 1 to Panjang do begin if ((Kata[i] = Pemisah) or (i = Panjang)) then begin if (i <> Panjang) then Tempat := Copy(Kata, SubMulai, (i - SubMulai)) else Tempat := Copy(Kata, SubMulai, ((i - SubMulai) + 1)); SubKata.Add(Tempat); SubMulai := (i + 1); Jumlah := Jumlah + 1; Case Jumlah of 1 : Hasil1 := Tempat; 2 : Hasil2 := Tempat; 3 : Hasil3 := Tempat;
Coding Program (Lanjutan) 4 : Hasil4 := Tempat; 5 : Hasil5 := Tempat; 6 : Hasil6 := Tempat; 7 : Hasil7 := Tempat; end; end; end; end; procedure TFServer.IdServerConnect(AThread: TIdPeerThread); var S,IP : String; begin with AThread.Connection do begin IP := Binding.PeerIP; UnitKata := TStringList.Create; S := ReadLn; Parsing(S, UnitKata, '#'); UnitKata.Free; if (IntToStr(BiayaKonekNon) = '') or (IntToStr(BiayaKonekAnggota) = '') then begin WriteLn('ErorBiaya'); MError.Lines.Append('< ' + FormatDateTime('hh : mm : ss', time) + ' > ' + 'Biaya pemakaian untuk client belum dikonfigurasi.'); end else begin if Hasil1 = 'Konek' then begin try with QIP do begin Close; SQL.Clear; SQL.Add('Insert into t_ip values(' + Hasil2 + ',' + QuotedStr(IP) + ')'); ExecSQL; end; KonekAja(Hasil2); TidakAktif := TidakAktif + 1; TidakKonek := TidakKonek - 1; PnlServer.Panels[4].Text := 'Client Tidak Aktif : ' + IntToStr(TidakAktif); PnlServer.Panels[5].Text := 'Client Tidak Terkoneksi : ' + IntToStr(TidakKonek); WriteLn(IntToStr(BiayaKonekNon) + '#' + IntToStr(BiayaMenitNon) + '#' + IntToStr(DiskonNon) + '#' + IntToStr(PPNNon) + '#' + IntToStr(BiayaKonekAnggota) + '#' + IntToStr(BiayaMenitAnggota) + '#' + IntToStr(DiskonAnggota) + '#' + IntToStr(PPNAnggota)); MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ', ' +
Coding Program (Lanjutan) '- , ' + '-, ' + '-, ' + 'Client terkoneksi'); except WriteLn('Gagal'); MError.Lines.Append('< ' + FormatDateTime('hh : mm : ss', Time) + ' > ' + ' Client dengan IP : ' + IP + ' menggunakan nomor client yang sudah digunakan : ' + Hasil2); end; end else if (Hasil1 = 'Login1') then //Finsih begin if Hasil3 <> '' then begin LoginAja(Hasil2); InputLogin; AktifinTimerNon(Hasil2); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + 'Login'); end; end else if (Hasil1 = 'LogOut1') then //Finish begin KonekAja(Hasil2); MatiinTimerNon(Hasil2); InputLogOut; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + 'Logout'); end else if Hasil1 = 'Login2' then //Finish begin if Hasil3 <> '' then begin LoginAja(Hasil2); InputLoginWaktu; ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Waktu' + ' , ' + 'Login'); end; end else if Hasil1 = 'LogOut2' then //Finish begin
Coding Program (Lanjutan) KonekAja(Hasil2); InputLogOutWaktu; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Waktu' + ' , ' + 'Logout'); end else if Hasil1 = 'Login3' then // Finish begin if Hasil3 <> '' then begin LoginAja(Hasil2); InputLoginBiaya; ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Biaya' + ' , ' + 'Login'); end; end else if Hasil1 = 'LogOut3' then // Finish begin KonekAja(Hasil2); InputLogOutBiaya; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Biaya' + ' , ' + ' Logout'); end else if Hasil1 = 'Login4' then //Finish begin if Hasil3 <> '' then begin try with QServerAnggota do begin Close; SQL.Clear; SQL.Add('Select * from t_anggota where Nama =' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil5)); Open; if Hasil5 <> FieldByName('Password').AsString then WriteLn('Tidak') else begin WriteLn('Boleh'); LoginAja(Hasil2);
Coding Program (Lanjutan) InputLogin; AktifinTimerAnggota(Hasil2); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + 'Login'); end; end; except WriteLn('Tidak'); end; end; end else if Hasil1 = 'LogOut4' then //Finish begin KonekAja(Hasil2); MatiinTimerAnggota(Hasil2); InputLogOut; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + ' Logout'); end else if Hasil1 = 'Login5' then begin if Hasil3 <> '' then begin try with QServerAnggota do begin Close; SQL.Clear; SQL.Add('Select * from t_anggota where Nama =' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil7)); Open; if Hasil7 <> FieldByName('Password').AsString then WriteLn('Tidak') else begin LoginAja(Hasil2); InputLoginWaktu; WriteLn('Boleh'); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Waktu' + ' , ' + 'Login'); end;
Coding Program (Lanjutan) end; except WriteLn('Tidak'); end; end; end else if Hasil1 = 'LogOut5' then begin KonekAja(Hasil2); InputLogOutWaktu; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Waktu' + ' , ' + 'Logout'); end else if Hasil1 = 'Login6' then begin if Hasil3 <> '' then begin try with QServer do begin Close; SQL.Clear; SQL.Add('Select * from t_anggota where Nama =' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil6)); Open; if Hasil6 <> FieldByName('Password').AsString then WriteLn('Tidak') else begin LoginAja(Hasil2); InputLoginBiaya; WriteLn('Boleh'); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Biaya' + ' , ' + 'Login'); end; end; except WriteLn('Tidak'); end; end; end elseif Hasil1 = 'LogOut6' then begin KonekAja(Hasil2);
Coding Program (Lanjutan) InputLogOutBiaya; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Limit Biaya' + ' , ' + 'Logout'); end else if Hasil1 = 'Login7' then begin if Hasil3 <> '' then begin try CekLoginOperator; LoginAja(Hasil2); InputLoginOperator; WriteLn('Boleh'); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + 'Login'); except WriteLn('Tidak'); end; end; end else if Hasil1 = 'LogOut7' then begin KonekAja(Hasil2); InputLogOutOperator; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + 'Logout'); end else if Hasil1 = 'Login8' then begin if Hasil3 <> '' then begin try CekLoginAdmin; LoginAja(Hasil2); InputLoginOperator; WriteLn('Boleh'); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' +
Coding Program (Lanjutan) FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + 'Login'); except WriteLn('Tidak'); end; end; end else if Hasil1 = 'LogOut8' then begin KonekAja(Hasil2); InputLogOutOperator; ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + 'Non Limit' + ' , ' + 'Logout'); end else if Hasil1 = 'Diskonek_A' then begin if Hasil3 <> '' then begin try With QIP do begin Close; SQL.Clear; SQL.Add('Select * from t_administrator where Nama=' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil4)); Open; end; WriteLn('Boleh'); DiskonekAja(Hasil2); ClientTidakKonek; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + 'Administrator' + ' , ' + ' - '+ ' , ' + 'Client disconnect'); With QIP do begin Close; SQL.Clear; SQL.Add('Delete from t_ip where No =' + Hasil2); ExecSQL; end; Putus; Hasil1 := ''; except WriteLn('Tidak'); end; end; end
Coding Program (Lanjutan) else if Hasil1 = 'Diskonek_O' then begin if Hasil3 <> '' then begin try With QIP do begin Close; SQL.Clear; SQL.Add('Select * from t_operator where Nama=' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil4)); Open; end; WriteLn('Boleh'); DiskonekAja(Hasil2); ClientTidakKonek; With QIP do begin Close; SQL.Clear; SQL.Add('Delete from t_ip where No =' + Hasil2); ExecSQL; end; Putus; Hasil1 := ''; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + 'Operator' + ' , ' + ' - ' + ' , ' + 'Client disconnect'); except WriteLn('Tidak'); end; end; end else if Hasil1 = 'Konfig_A' then begin if Hasil3 <> '' then begin try With QIP do begin Close; SQL.Clear; SQL.Add('Select * from t_administrator where Nama=' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil4)); Open; end; WriteLn('Boleh'); KonfigAja(Hasil2); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' +
Coding Program (Lanjutan) FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + 'Administrator' + ' , ' + ' - ' + ' , ' + 'Client dikonfigurasi'); except WriteLn('Tidak'); end; end; end else if Hasil1 = 'Konfig_O' then begin if Hasil3 <> '' then begin try With QIP do begin Close; SQL.Clear; SQL.Add('Select * from t_operator where Nama=' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil4)); Open; end; WriteLn('Boleh'); KonfigAja(Hasil2); ClientAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + 'Operator' + ' , ' + ' - ' + ' , ' + 'Client dikonfigurasi'); except WriteLn('Tidak'); end; end; end else if Hasil1 = 'Diskonfig' then begin KonekAja(Hasil2); ClientTidakAktif; MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Client ' + Hasil2 + ' , ' + Hasil3 + ' , ' + Hasil4 + ' , ' + ' - ' + ' , ' + 'Client selesai dikonfigurasi'); end else if Hasil1 = 'GantiNomor' then begin try GantiNomor; DiskonekAja(Hasil2); KonfigAja(Hasil3);
Coding Program (Lanjutan) WriteLn('Boleh'); MTransaksi.Lines.Add('<' + FormatDateTime('dd', Date) + ' / ' + FormatDateTime('mm', Date) + ' / ' + FormatDateTime('yyyy', Date) + ', ' + FormatDateTime('hh : mm : ss', Time) + '>' + ' Nomor client : ' + Hasil2 + ' di ganti menjadi nomor client : ' + Hasil3); except WriteLn('Tidak'); end; end else if Hasil1= 'Message' then begin FChatting.ListPesan.Lines.Add('< Client ' + Hasil2 + ' > ' + Hasil3); FChatting.Show; end; end; end; end; procedure TFServer.KonekAja(S: String); begin Case StrToInt(S) of 1 : PC1.Color := clNavy; 2 : PC2.Color := clNavy; 3 : PC3.Color := clNavy; 4 : PC4.Color := clNavy; 5 : PC5.Color := clNavy; 6 : PC6.Color := clNavy; 7 : PC7.Color := clNavy; 8 : PC8.Color := clNavy; 9 : PC9.Color := clNavy; 10: PC10.Color := clNavy; 11 : PC11.Color := clNavy; 12 : PC12.Color := clNavy; 13 : PC13.Color := clNavy; 14 : PC14.Color := clNavy; 15 : PC15.Color := clNavy; 16 : PC16.Color := clNavy; 17 : PC17.Color := clNavy; 18 : PC18.Color := clNavy; 19 : PC19.Color := clNavy; 20: PC20.Color := clNavy; 21 : PC21.Color := clNavy; 22 : PC22.Color := clNavy; 23 : PC23.Color := clNavy; 24 : PC24.Color := clNavy; 25 : PC25.Color := clNavy; 26 : PC26.Color := clNavy; 27 : PC27.Color := clNavy; 28 : PC28.Color := clNavy; 29 : PC29.Color := clNavy; 30: PC30.Color := clNavy; 31 : PC31.Color := clNavy; 32 : PC32.Color := clNavy; 33 : PC33.Color := clNavy; 34 : PC34.Color := clNavy; 35 : PC35.Color := clNavy; 36 : PC36.Color := clNavy; 37 : PC37.Color := clNavy; 38 : PC38.Color := clNavy; 39 : PC39.Color := clNavy; 40: PC40.Color := clNavy; 41 : PC41.Color := clNavy; 42 : PC42.Color := clNavy; 43 : PC43.Color := clNavy; 44 : PC44.Color := clNavy; 45 : PC45.Color := clNavy; 46 : PC46.Color := clNavy; 47 : PC47.Color := clNavy; 48 : PC48.Color := clNavy; 49 : PC49.Color := clNavy; 50: PC50.Color := clNavy; end; end;
Coding Program (Lanjutan) procedure TFServer.DiskonekAja(S: String); begin Case StrToInt(S) of 1 : PC1.Color := clRed; 2 : PC2.Color := clRed; 3 : PC3.Color := clRed; 4 : PC4.Color := clRed; 5 : PC5.Color := clRed; 6 : PC6.Color := clRed; 7 : PC7.Color := clRed; 8 : PC8.Color := clRed; 9 : PC9.Color := clRed; 10: PC10.Color := clRed; 11 : PC11.Color := clRed; 12 : PC12.Color := clRed; 13 : PC13.Color := clRed; 14 : PC14.Color := clRed; 15 : PC15.Color := clRed; 16 : PC16.Color := clRed; 17 : PC17.Color := clRed; 18 : PC18.Color := clRed; 19 : PC19.Color := clRed; 20: PC20.Color := clRed; 21 : PC21.Color := clRed; 22 : PC22.Color := clRed; 23 : PC23.Color := clRed; 24 : PC24.Color := clRed; 25 : PC25.Color := clRed; 26 : PC26.Color := clRed; 27 : PC27.Color := clRed; 28 : PC28.Color := clRed; 29 : PC29.Color := clRed; 30: PC30.Color := clRed; 31 : PC31.Color := clRed; 32 : PC32.Color := clRed; 33 : PC33.Color := clRed; 34 : PC34.Color := clRed; 35 : PC35.Color := clRed; 36 : PC36.Color := clRed; 37 : PC37.Color := clRed; 38 : PC38.Color := clRed; 39 : PC39.Color := clRed; 40: PC40.Color := clRed; 41 : PC41.Color := clRed; 42 : PC42.Color := clRed; 43 : PC43.Color := clRed; 44 : PC44.Color := clRed; 45 : PC45.Color := clRed; 46 : PC46.Color := clRed; 47 : PC47.Color := clRed; 48 : PC48.Color := clRed; 49 : PC49.Color := clRed; 50: PC50.Color := clRed; end; end; procedure TFServer.LoginAja(S: String); begin Case StrToInt(S) of 1 : PC1.Color := clGreen; 2 : PC2.Color := clGreen; 3 : PC3.Color := clGreen; 4 : PC4.Color := clGreen; 5 : PC5.Color := clGreen; 6 : PC6.Color := clGreen; 7 : PC7.Color := clGreen; 8 : PC8.Color := clGreen; 9 : PC9.Color := clGreen; 10: PC10.Color := clGreen; 11 : PC11.Color := clGreen; 12 : PC12.Color := clGreen; 13 : PC13.Color := clGreen; 14 : PC14.Color := clGreen; 15 : PC15.Color := clGreen; 16 : PC16.Color := clGreen; 17 : PC17.Color := clGreen; 18 : PC18.Color := clGreen; 19 : PC19.Color := clGreen; 20: PC20.Color := clGreen; 21 : PC21.Color := clGreen; 22 : PC22.Color := clGreen; 23 : PC23.Color := clGreen; 24 : PC24.Color := clGreen; 25 : PC25.Color := clGreen; 26 : PC26.Color := clGreen; 27 : PC27.Color := clGreen; 28 : PC28.Color := clGreen; 29 : PC29.Color := clGreen; 30: PC30.Color := clGreen; 31 : PC31.Color := clGreen; 32 : PC32.Color := clGreen; 33 : PC33.Color := clGreen; 34 : PC34.Color := clGreen; 35 : PC35.Color := clGreen; 36 : PC36.Color := clGreen; 37 : PC37.Color := clGreen; 38 : PC38.Color := clGreen; 39 : PC39.Color := clGreen; 40: PC40.Color := clGreen; 41 : PC41.Color := clGreen; 42 : PC42.Color := clGreen; 43 : PC43.Color := clGreen; 44 : PC44.Color := clGreen; 45 : PC45.Color := clGreen; 46 : PC46.Color := clGreen; 47 : PC47.Color := clGreen; 48 : PC48.Color := clGreen; 49 : PC49.Color := clGreen; 50: PC50.Color := clGreen; end; end;
Coding Program (Lanjutan) procedure TFServer.LogOut1Click(Sender: TObject); begin if MessageDlg('Konfirmasi untuk Logout', mtConfirmation, [MBYES] + [MBNO], 0) = mrYES then begin PnlServer.Panels[2].Text := 'Operator : '; FLogin.ShowModal; end; end; procedure TFServer.InputLogin; var BiayaKonek,PPN : integer; begin try with QServer do begin Close; SQL.Clear; SQL.Add('Select * from t_harga where Jenis =' + QuotedStr(Hasil4)); Open; BiayaKonek := FieldByName('Biaya_Per_Koneksi').AsInteger; PPN := FieldByName('PPN').AsInteger; Close; SQL.Clear; SQL.Add('Insert into t_biaya_sementara values(' + Hasil2 +',' + QuotedStr(Hasil3) + ',' + QuotedStr(Hasil4) + ',' + QuotedStr(FormatDateTime('hh : mm : ss', Time)) + ',' + QuotedStr('-') + ',' + '0' + ',' + '0' + ',' + IntToStr(PPN) + ',' + IntToStr(BiayaKonek) + ',' + //Biaya awal adalah biaya koneksi FormatDateTime('dd', date) + ',' + FormatDateTime('mm', Date) + ',' + FormatDateTime('yyyy', Date) + ',' + QuotedStr(FormatDateTime('dd - mm - yyyy', Date)) + ',' + QuotedStr(Operator) + ',' + QuotedStr('Active') + ')'); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara'); Open; end; Except with QServer do begin Close; SQL.Clear; SQL.Add('Select * from t_harga where Jenis = ' + QuotedStr(Hasil4)); Open; BiayaKonek := FieldByName('Biaya_Per_Koneksi').AsInteger;
Coding Program (Lanjutan) PPN := FieldByName('PPN').AsInteger; Close; SQL.Clear; SQL.Add('Update t_biaya_sementara set No_Pc = ' + Hasil2 + ',' + 'Nama = ' + QuotedStr(Hasil3) + ',' + 'Jenis = ' + QuotedStr(Hasil4) + ',' + 'Mulai = ' + QuotedStr(FormatDateTime('hh : mm : ss', Time)) + ',' + 'Selesai = ' + QuotedStr('-') + ',' + 'Durasi = ' + '0' + ',' + 'Discount = ' + '0' + ',' + 'PPN = ' + IntToStr(PPN) + ',' + 'Tot_Biaya = ' + IntToStr(BiayaKonek) + ',' + //Biaya awal adalah biaya koneksi 'Tgl =' + FormatDateTime('dd', Date) + ',' + 'Bln =' + FormatDateTime('mm', Date) + ',' + 'Thn =' + FormatDateTime('yyyy', Date) + ',' + 'Tanggal = ' + QuotedStr(FormatDateTime('dd - mm - yyyy', Date)) + ',' + 'Operator = ' + QuotedStr(Operator) + ',' + 'Status = ' + QuotedStr('Active') + ' Where No_Pc = ' + QuotedStr(Hasil2)); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara'); Open; end; End; end; procedure TFServer.InputLogOut; var Maks, No, Dur, Total, Diskon, Tgl, Bln, Thn, PPN : Integer; Nama, Jenis, Mulai, Selesai, Tanggal, Operator: String; begin try with QServer do begin Close; SQL.Clear; SQL.Add('Update t_biaya_sementara set Selesai = ' + QuotedStr(FormatDateTime('hh : mm : ss ', Time)) + ',' + 'Status =' + QuotedStr('DisActive') + ' Where No_Pc = ' + Hasil2); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara where No_Pc =' + Hasil2); Open; No := FieldByName('No_Pc').AsInteger; Nama := FieldByName('Nama').AsString; Jenis := FieldByName('Jenis').AsString; Mulai := FieldByName('Mulai').AsString; Selesai := FieldByName('Selesai').AsString; Dur := FieldByName('Durasi').AsInteger; Diskon := FieldByName('Discount').AsInteger;
Coding Program (Lanjutan) PPN := FieldByName('PPN').AsInteger; Total := FieldByName('Tot_Biaya').AsInteger; Tgl := FieldByName('Tgl').AsInteger; Bln := FieldByName('Bln').AsInteger; Thn := FieldByName('Thn').AsInteger; Tanggal := FieldByName('Tanggal').AsString; Operator := FieldByName('Operator').AsString; Close; SQL.Clear; SQL.Add('Insert into t_biaya values(' + QuotedStr('1') + ',' + IntToStr(No) + ',' + QuotedStr(Nama) + ',' + QuotedStr(Jenis) + ',' + QuotedStr(Mulai) + ',' + QuotedStr(Selesai) + ',' + IntToStr(Dur) + ',' + IntToStr(Diskon) + ',' + IntToStr(PPN) + ',' + IntToStr(Total) + ',' + QuotedStr(Tanggal) + ',' + QuotedStr(Operator) + ',' + IntToStr(Tgl) + ',' + IntToStr(Bln) + ',' + IntToStr(Thn) + ',' + QuotedStr('Belum') + ')'); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara Order By No_Pc'); Open; end; Except with QServer do begin Close; SQL.Clear; SQL.Add('Update t_biaya_sementara set Selesai = ' + QuotedStr(FormatDateTime('hh : mm : ss ', Time)) + ',' + ' Status =' + QuotedStr('DisActive') + ' Where No_Pc = ' + Hasil2); ExecSQL; Close; SQL.Clear; SQL.Add('Select Max(No) from t_biaya'); Open; Maks := Fields[0].AsInteger; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara where No_Pc =' + Hasil2); Open; No := FieldByName('No_Pc').AsInteger; Nama := FieldByName('Nama').AsString; Jenis := FieldByName('Jenis').AsString; Mulai := FieldByName('Mulai').AsString; Selesai := FieldByName('Selesai').AsString;
Coding Program (Lanjutan) Dur := FieldByName('Durasi').AsInteger; Diskon := FieldByName('Discount').AsInteger; PPN := FieldByName('PPN').AsInteger; Total := FieldByName('Tot_Biaya').AsInteger; Tgl := FieldByName('Tgl').AsInteger; Bln := FieldByName('Bln').AsInteger; Thn := FieldByName('Thn').AsInteger; Tanggal := FieldByName('Tanggal').AsString; Operator := FieldByName('Operator').AsString; Close; SQL.Clear; SQL.Add('Insert into t_biaya values(' + IntToStr(Maks + 1) + ',' + IntToStr(No) + ',' + QuotedStr(Nama) + ',' + QuotedStr(Jenis) + ',' + QuotedStr(Mulai) + ',' + QuotedStr(Selesai) + ',' + IntToStr(Dur) + ',' + IntToStr(Diskon) + ',' + IntToStr(PPN) + ',' + IntToStr(Total) + ',' + QuotedStr(Tanggal) + ',' + QuotedStr(Operator) + ',' + IntToStr(Tgl) + ',' + IntToStr(Bln) + ',' + IntToStr(Thn) + ',' + QuotedStr('Belum') + ')'); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara order by No_Pc'); Open; end; End; end; procedure TFServer.AmbilHarga; begin with QServer do begin Close; SQL.Clear; SQL.Add('Select * from t_harga where Jenis =' + QuotedStr('Non Anggota')); Open; BiayaKonekNon := FieldByName('Biaya_Per_Koneksi').AsInteger; BiayaMenitNon := FieldByName('Biaya_Per_Menit').AsInteger; DiskonNon := FieldByName('Discount_Per_Jam').AsInteger; PPNNon := FieldByName('PPN').AsInteger; Close; SQL.Clear; SQL.Add('Select * from t_harga where Jenis =' + QuotedStr('Anggota')); Open; BiayaKonekAnggota := FieldByName('Biaya_Per_Koneksi').AsInteger; BiayaMenitAnggota := FieldByName('Biaya_Per_Menit').AsInteger; DiskonAnggota := FieldByName('Discount_Per_Jam').AsInteger; PPNAnggota := FieldByName('PPN').AsInteger; Close; end; end;
Coding Program (Lanjutan) procedure TFServer.InputLoginWaktu; var BiayaKonek, BiayaMenit, Diskon, Total_Biaya, PPN : integer; JAwal,MAwal,DAwal,JAkhir,MAkhir,DAkhir : Integer; DurasiJam,DurasiMenit,TotalDurasi : Integer; begin JAwal := StrToInt(FormatDateTime('hh', Time)); MAwal := StrToInt(FormatDateTime('nn', Time)); DAwal := StrToInt(FormatDateTime('ss', Time)); DAkhir := DAwal; DurasiJam := StrToInt(Hasil5) * 60; DurasiMenit := StrToInt(Hasil6); TotalDurasi := DurasiMenit + DurasiJam; if (MAwal + StrToInt(Hasil6)) < 60 then begin MAkhir := (MAwal + StrToInt(Hasil6)); if (JAwal + StrToInt(Hasil5) < 24) then JAkhir := JAwal + StrToInt(Hasil5) else JAkhir := (JAwal + StrToInt(Hasil5)) mod 24; end else begin MAkhir := (MAwal + StrToInt(Hasil6)) mod 60; JAkhir := JAwal + StrToInt(Hasil5) + 1; if JAkhir < 24 then JAkhir := JAkhir else JAkhir := (JAkhir + StrToInt(Hasil5)) mod 24; end; try with QServer do begin Close; SQL.Clear; SQL.Add('Select * from t_harga where Jenis =' + QuotedStr(Hasil4)); Open; BiayaMenit := FieldByName('Biaya_Per_Menit').AsInteger; BiayaKonek := FieldByName('Biaya_Per_Koneksi').AsInteger; Diskon := FieldByName('Discount_Per_Jam').AsInteger; PPN := FieldByName('PPN').AsInteger; Diskon := StrToInt(Hasil5) * Diskon; Total_Biaya := ((BiayaMenit * TotalDurasi) + BiayaKonek); Total_Biaya := Total_Biaya - Diskon; Total_Biaya := Total_Biaya + ((Total_Biaya * PPN) div 100); Close; SQL.Clear; SQL.Add('Insert into t_biaya_sementara values(' + Hasil2 +',' + QuotedStr(Hasil3) + ',' + QuotedStr(Hasil4) + ',' + QuotedStr(FormatDateTime('hh : mm : ss', Time)) + ',' + QuotedStr(IntToStr(JAkhir) + ' : ' + IntToStr(MAkhir) + ' : ' + IntToStr(DAkhir)) + ',' + IntToStr(TotalDurasi) + ',' +
Coding Program (Lanjutan) IntToStr(Diskon) + ',' + IntToStr(PPN) + ',' + IntToStr(Total_Biaya) + ',' + FormatDateTime('dd', Date) + ',' + FormatDateTime('mm', Date) + ',' + FormatDateTime('yyyy', Date) + ',' + QuotedStr(FormatDateTime('dd - mm - yyyy', Date)) + ',' + QuotedStr(Operator) + ',' + QuotedStr('Active') + ')'); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara order by No_Pc'); Open; end; Except with QServer do begin Close; SQL.Clear; SQL.Add('Select * from t_harga where Jenis =' + QuotedStr(Hasil4)); Open; BiayaMenit := FieldByName('Biaya_Per_Menit').AsInteger; BiayaKonek := FieldByName('Biaya_Per_Koneksi').AsInteger; Diskon := FieldByName('Discount_Per_Jam').AsInteger; PPN := FieldByName('PPN').AsInteger; Diskon := StrToInt(Hasil5) * Diskon; Total_Biaya := ((BiayaMenit * TotalDurasi) + BiayaKonek); Total_Biaya := Total_Biaya - Diskon; Total_Biaya := Total_Biaya + ((Total_Biaya * PPN) div 100); Close; SQL.Clear; SQL.Add('Update t_biaya_sementara set No_Pc = ' + Hasil2 + ',' + 'Nama = ' + QuotedStr(Hasil3) + ',' + 'Jenis = ' + QuotedStr(Hasil4) + ',' + 'Mulai = ' + QuotedStr(FormatDateTime('hh : mm : ss', Time)) + ',' + 'Selesai = ' + QuotedStr(IntToStr(JAkhir) + ' : ' + IntToStr(MAkhir) + ' : ' + IntToStr(DAkhir)) + ',' + 'Durasi = ' + IntToStr(TotalDurasi) + ',' + 'Discount = ' + IntToStr(Diskon) + ',' + 'PPN = ' + IntToStr(PPN) + ',' + 'Tot_Biaya = ' + IntToStr(Total_Biaya) + ',' + 'Tgl =' + FormatDateTime('dd', Date) + ',' + 'Bln =' + FormatDateTime('mm', Date) + ',' + 'Thn =' + FormatDateTime('yyyy', Date) + ',' + 'Tanggal = ' + QuotedStr(FormatDateTime('dd - mm - yyyy', Date)) + ',' + 'Operator = ' + QuotedStr(Operator) + ',' + 'Status = ' + QuotedStr('Active') + ' Where No_Pc = ' + QuotedStr(Hasil2)); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara order by No_Pc'); Open; end; End; end;
Coding Program (Lanjutan) procedure TFServer.InputLogOutWaktu; var Maks, No, Dur, Total, Diskon, Tgl, Bln, Thn, PPN : Integer; Nama, Jenis, Mulai, Selesai, Tanggal, Operator: String; begin try with QServer do begin Close; SQL.Clear; SQL.Add('Update t_biaya_sementara set Status =' + QuotedStr('DisActive') + ' Where No_Pc = ' + Hasil2); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara where No_Pc =' + Hasil2); Open; No := FieldByName('No_Pc').AsInteger; Nama := FieldByName('Nama').AsString; Jenis := FieldByName('Jenis').AsString; Mulai := FieldByName('Mulai').AsString; Selesai := FieldByName('Selesai').AsString; Dur := FieldByName('Durasi').AsInteger; Diskon := FieldByName('Discount').AsInteger; PPN := FieldByName('PPN').AsInteger; Total := FieldByName('Tot_Biaya').AsInteger; Tgl := FieldByName('Tgl').AsInteger; Bln := FieldByName('Bln').AsInteger; Thn := FieldByName('Thn').AsInteger; Tanggal := FieldByName('Tanggal').AsString; Operator := FieldByName('Operator').AsString; Close; SQL.Clear; SQL.Add('Insert into t_biaya values(' + QuotedStr('1') + ',' + IntToStr(No) + ',' + QuotedStr(Nama) + ',' + QuotedStr(Jenis) + ',' + QuotedStr(Mulai) + ',' + QuotedStr(Selesai) + ',' + IntToStr(Dur) + ',' + IntToStr(Diskon) + ',' + IntToStr(PPN) + ',' + IntToStr(Total) + ',' + QuotedStr(Tanggal) + ',' + QuotedStr(Operator) + ',' + IntToStr(Tgl) + ',' + IntToStr(Bln) + ',' + IntToStr(Thn) + ',' + QuotedStr('Belum') + ')'); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara Order By No_Pc'); Open; end; Except with QServer do begin Close;
Coding Program (Lanjutan) SQL.Clear; SQL.Add('Update t_biaya_sementara set Status =' + QuotedStr('DisActive') + ' Where No_Pc = ' + Hasil2); ExecSQL; Close; SQL.Clear; SQL.Add('Select Max(No) from t_biaya'); Open; Maks := Fields[0].AsInteger; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara where No_Pc =' + Hasil2); Open; No := FieldByName('No_Pc').AsInteger; Nama := FieldByName('Nama').AsString; Jenis := FieldByName('Jenis').AsString; Mulai := FieldByName('Mulai').AsString; Selesai := FieldByName('Selesai').AsString; Dur := FieldByName('Durasi').AsInteger; Diskon := FieldByName('Discount').AsInteger; PPN := FieldByName('PPN').AsInteger; Total := FieldByName('Tot_Biaya').AsInteger; Tgl := FieldByName('Tgl').AsInteger; Bln := FieldByName('Bln').AsInteger; Thn := FieldByName('Thn').AsInteger; Tanggal := FieldByName('Tanggal').AsString; Operator := FieldByName('Operator').AsString; Close; SQL.Clear; SQL.Add('Insert into t_biaya values(' + IntToStr(Maks + 1) + ',' + IntToStr(No) + ',' + QuotedStr(Nama) + ',' + QuotedStr(Jenis) + ',' + QuotedStr(Mulai) + ',' + QuotedStr(Selesai) + ',' + IntToStr(Dur) + ',' + IntToStr(Diskon) + ',' + IntToStr(PPN) + ',' + IntToStr(Total) + ',' + QuotedStr(Tanggal) + ',' + QuotedStr(Operator) + ',' + IntToStr(Tgl) + ',' + IntToStr(Bln) + ',' + IntToStr(Thn) + ',' + QuotedStr('Belum') + ')'); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara order by No_Pc'); Open; end; End; end;
Coding Program (Lanjutan) procedure TFServer.InputLoginBiaya; var BiayaKonek, BiayaMenit, Diskon, Total_Biaya,PPN : integer; JAwal,MAwal,DAwal,JAkhir,MAkhir,DAkhir : Integer; TotalDurasi, DurasiJam, DurasiMenit, TotalDiskon : Integer; begin JAwal := StrToInt(FormatDateTime('hh', Time)); MAwal := StrToInt(FormatDateTime('nn', Time)); DAwal := StrToInt(FormatDateTime('ss', Time)); DAkhir := DAwal; try with QServer do begin Close; SQL.Clear; SQL.Add('Select * from t_harga where Jenis =' + QuotedStr(Hasil4)); Open; BiayaMenit := FieldByName('Biaya_Per_Menit').AsInteger; BiayaKonek := FieldByName('Biaya_Per_Koneksi').AsInteger; Diskon := FieldByName('Discount_Per_Jam').AsInteger; PPN := FieldByName('PPN').AsInteger; Total_Biaya := (StrToInt(Hasil5) - BiayaKonek); TotalDurasi := Total_Biaya div BiayaMenit; DurasiJam := TotalDurasi div 60; DurasiMenit := TotalDurasi mod 60; TotalDiskon := (TotalDurasi div 60) * Diskon; if (MAwal + DurasiMenit) < 60 then begin MAkhir := (MAwal + DurasiMenit); if (JAwal + DurasiJam) < 24 then JAkhir := JAwal + DurasiJam else JAkhir := (JAwal + DurasiJam) mod 24; end else begin MAkhir := (MAwal + DurasiMenit) mod 60; JAkhir := JAwal + DurasiJam + 1; if (JAwal + DurasiJam) < 24 then JAkhir := JAkhir else JAkhir := (JAkhir + DurasiJam) mod 24; end; Close; SQL.Clear; SQL.Add('Insert into t_biaya_sementara values(' + Hasil2 +',' + QuotedStr(Hasil3) + ',' + QuotedStr(Hasil4) + ',' + QuotedStr(FormatDateTime('hh : mm : ss', Time)) + ',' + QuotedStr(IntToStr(JAkhir) + ' : ' + IntToStr(MAkhir) + ' : ' + IntToStr(DAkhir)) + ',' + IntToStr(TotalDurasi) + ',' + IntToStr(TotalDiskon) + ',' + IntToStr(PPN) + ',' +
Coding Program (Lanjutan) Hasil5 + ',' + FormatDateTime('dd', Date) + ',' + FormatDateTime('mm', Date) + ',' + FormatDateTime('yyyy', Date) + ',' + QuotedStr(FormatDateTime('dd - mm - yyyy', Date)) + ',' + QuotedStr(Operator) + ',' + QuotedStr('Active') + ')'); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara order by No_Pc'); Open; end; Except with QServer do begin Close; SQL.Clear; SQL.Add('Select * from t_harga where Jenis =' + QuotedStr(Hasil4)); Open; BiayaMenit := FieldByName('Biaya_Per_Menit').AsInteger; BiayaKonek := FieldByName('Biaya_Per_Koneksi').AsInteger; Diskon := FieldByName('Discount_Per_Jam').AsInteger; PPN := FieldByName('PPN').AsInteger; Total_Biaya := (StrToInt(Hasil5) - BiayaKonek); TotalDurasi := Total_Biaya div BiayaMenit; DurasiJam := TotalDurasi div 60; DurasiMenit := TotalDurasi mod 60; TotalDiskon := (TotalDurasi div 60) * Diskon; if (MAwal + DurasiMenit) < 60 then begin MAkhir := (MAwal + DurasiMenit); if (JAwal + DurasiJam) < 24 then JAkhir := JAwal + DurasiJam else JAkhir := (JAwal + DurasiJam) mod 24; end else begin MAkhir := (MAwal + DurasiMenit) mod 60; JAkhir := JAwal + DurasiJam + 1; if (JAwal + DurasiJam) < 24 then JAkhir := JAkhir else JAkhir := (JAkhir + DurasiJam) mod 24; end; Close; SQL.Clear; SQL.Add('Update t_biaya_sementara set No_Pc = ' + Hasil2 + ',' + 'Nama = ' + QuotedStr(Hasil3) + ',' + 'Jenis = ' + QuotedStr(Hasil4) + ',' + 'Mulai = ' + QuotedStr(FormatDateTime('hh : mm : ss', Time)) + ',' + 'Selesai = ' + QuotedStr(IntToStr(JAkhir) + ' : ' + IntToStr(MAkhir) + ' : ' + IntToStr(DAkhir)) + ',' +
Coding Program (Lanjutan) 'Durasi = ' + IntToStr(TotalDurasi) + ',' + 'Discount = ' + IntToStr(TotalDiskon) + ',' + 'PPN = ' + IntToStr(PPN) + ',' + 'Tot_Biaya = ' + Hasil5 + ',' + 'Tgl =' + FormatDateTime('dd', Date) + ',' + 'Bln =' + FormatDateTime('mm', Date) + ',' + 'Thn =' + FormatDateTime('yyyy', Date) + ',' + 'Tanggal = ' + QuotedStr(FormatDateTime('dd - mm - yyyy', Date)) + ',' + 'Operator = ' + QuotedStr(Operator) + ',' + 'Status = ' + QuotedStr('Active') + ' Where No_Pc = ' + QuotedStr(Hasil2)); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara order by No_Pc'); Open; end; End; end; procedure TFServer.InputLogOutBiaya; var Maks, No, Dur, Total, Diskon, Tgl, Bln, Thn, PPN : Integer; Nama, Jenis, Mulai, Selesai, Tanggal, Operator: String; begin try with QServer do begin Close; SQL.Clear; SQL.Add('Update t_biaya_sementara set Status =' + QuotedStr('DisActive') + ' Where No_Pc = ' + Hasil2); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara where No_Pc =' + Hasil2); Open; No := FieldByName('No_Pc').AsInteger; Nama := FieldByName('Nama').AsString; Jenis := FieldByName('Jenis').AsString; Mulai := FieldByName('Mulai').AsString; Selesai := FieldByName('Selesai').AsString; Dur := FieldByName('Durasi').AsInteger; Diskon := FieldByName('Discount').AsInteger; PPN := FieldByname('PPN').AsInteger; Tgl := FieldByName('Tgl').AsInteger; Bln := FieldByName('Bln').AsInteger; Thn := FieldByName('Thn').AsInteger; Total := FieldByName('Tot_Biaya').AsInteger; Tanggal := FieldByName('Tanggal').AsString; Operator := FieldByName('Operator').AsString; Close;
Coding Program (Lanjutan) SQL.Clear; SQL.Add('Insert into t_biaya values(' + QuotedStr('1') + ',' + IntToStr(No) + ',' + QuotedStr(Nama) + ',' + QuotedStr(Jenis) + ',' + QuotedStr(Mulai) + ',' + QuotedStr(Selesai) + ',' + IntToStr(Dur) + ',' + IntToStr(Diskon) + ',' + IntToStr(PPN) + ',' + IntToStr(Total) + ',' + QuotedStr(Tanggal) + ',' + QuotedStr(Operator) + ',' + IntToStr(Tgl) + ',' + IntToStr(Bln) + ',' + IntToStr(Thn) + ',' + QuotedStr('Belum') + ')'); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara Order By No_Pc'); Open; end; Except with QServer do begin Close; SQL.Clear; SQL.Add('Update t_biaya_sementara set Status =' + QuotedStr('DisActive') + ' Where No_Pc = ' + Hasil2); ExecSQL; Close; SQL.Clear; SQL.Add('Select Max(No) from t_biaya'); Open; Maks := Fields[0].AsInteger; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara where No_Pc =' + Hasil2); Open; No := FieldByName('No_Pc').AsInteger; Nama := FieldByName('Nama').AsString; Jenis := FieldByName('Jenis').AsString; Mulai := FieldByName('Mulai').AsString; Selesai := FieldByName('Selesai').AsString; Dur := FieldByName('Durasi').AsInteger; Diskon := FieldByName('Discount').AsInteger; PPN := FieldByName('PPN').AsInteger; Total := FieldByName('Tot_Biaya').AsInteger; Tgl := FieldByName('Tgl').AsInteger; Bln := FieldByName('Bln').AsInteger; Thn := FieldByName('Thn').AsInteger; Tanggal := FieldByName('Tanggal').AsString; Operator := FieldByName('Operator').AsString; Close;
Coding Program (Lanjutan) SQL.Clear; SQL.Add('Insert into t_biaya values(' + IntToStr(Maks + 1) + ',' + IntToStr(No) + ',' + QuotedStr(Nama) + ',' + QuotedStr(Jenis) + ',' + QuotedStr(Mulai) + ',' + QuotedStr(Selesai) + ',' + IntToStr(Dur) + ',' + IntToStr(Diskon) + ',' + IntToStr(PPN) + ',' + IntToStr(Total) + ',' + QuotedStr(Tanggal) + ',' + QuotedStr(Operator) + ',' + IntToStr(Tgl) + ',' + IntToStr(Bln) + ',' + IntToStr(Thn) + ',' + QuotedStr('Belum') + ')'); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara order by No_Pc'); Open; end; End; end; procedure TFServer.AktifinTimerNon(S: String); begin Case StrToInt(S) of 1 : DMServer.JN1.Enabled := true; 21 : DMServer.JN21.Enabled := true; 41 : DMServer.JN41.Enabled := true; 2 : DMServer.JN2.Enabled := true; 22 : DMServer.JN22.Enabled := true; 42 : DMServer.JN42.Enabled := true; 3 : DMServer.JN3.Enabled := true; 23 : DMServer.JN23.Enabled := true; 43 : DMServer.JN43.Enabled := true; 4 : DMServer.JN4.Enabled := true; 24 : DMServer.JN24.Enabled := true; 44 : DMServer.JN44.Enabled := true; 5 : DMServer.JN5.Enabled := true; 25 : DMServer.JN25.Enabled := true; 45 : DMServer.JN45.Enabled := true; 6 : DMServer.JN6.Enabled := true; 26 : DMServer.JN26.Enabled := true; 46 : DMServer.JN46.Enabled := true; 7 : DMServer.JN7.Enabled := true; 27 : DMServer.JN27.Enabled := true; 47 : DMServer.JN47.Enabled := true; 8 : DMServer.JN8.Enabled := true; 28 : DMServer.JN28.Enabled := true; 48 : DMServer.JN48.Enabled := true; 9 : DMServer.JN9.Enabled := true; 29 : DMServer.JN29.Enabled := true; 49 : DMServer.JN49.Enabled := true; 10 : DMServer.JN10.Enabled := true; 30 : DMServer.JN30.Enabled := true; 50 : DMServer.JN50.Enabled := true; 11 : DMServer.JN11.Enabled := true; 31 : DMServer.JN31.Enabled := true; 12 : DMServer.JN12.Enabled := true; 32 : DMServer.JN32.Enabled := true; 13 : DMServer.JN13.Enabled := true; 33 : DMServer.JN33.Enabled := true; 14 : DMServer.JN14.Enabled := true; 34 : DMServer.JN34.Enabled := true; 15 : DMServer.JN15.Enabled := true; 35 : DMServer.JN35.Enabled := true; 16 : DMServer.JN16.Enabled := true; 36 : DMServer.JN36.Enabled := true; 17 : DMServer.JN17.Enabled := true; 37 : DMServer.JN37.Enabled := true; 18 : DMServer.JN18.Enabled := true; 38 : DMServer.JN38.Enabled := true; 19 : DMServer.JN19.Enabled := true; 39 : DMServer.JN39.Enabled := true; 20 : DMServer.JN20.Enabled := true; 40 : DMServer.JN40.Enabled := true; end; end;
Coding Program (Lanjutan) procedure TFServer.MatiinTimerNon(S: String); begin Case StrToInt(S) of 1 : DMServer.JN1.Enabled := false; 21 : DMServer.JN21.Enabled := false; 41 : DMServer.JN41.Enabled := false; 2 : DMServer.JN2.Enabled := false; 22 : DMServer.JN22.Enabled := false; 42 : DMServer.JN42.Enabled := false; 3 : DMServer.JN3.Enabled := false; 23 : DMServer.JN23.Enabled := false; 43 : DMServer.JN43.Enabled := false; 4 : DMServer.JN4.Enabled := false; 24 : DMServer.JN24.Enabled := false; 44 : DMServer.JN44.Enabled := false; 5 : DMServer.JN5.Enabled := false; 25 : DMServer.JN25.Enabled := false; 45 : DMServer.JN45.Enabled := false; 6 : DMServer.JN6.Enabled := false; 26 : DMServer.JN26.Enabled := false; 46 : DMServer.JN46.Enabled := false; 7 : DMServer.JN7.Enabled := false; 27 : DMServer.JN27.Enabled := false; 47 : DMServer.JN47.Enabled := false; 8 : DMServer.JN8.Enabled := false; 28 : DMServer.JN28.Enabled := false; 48 : DMServer.JN48.Enabled := false; 9 : DMServer.JN9.Enabled := false; 29 : DMServer.JN29.Enabled := false; 49 : DMServer.JN49.Enabled := false; 10 : DMServer.JN10.Enabled := false; 30 : DMServer.JN30.Enabled := false; 50 : DMServer.JN50.Enabled := false; 11 : DMServer.JN11.Enabled := false; 31 : DMServer.JN31.Enabled := false; 12 : DMServer.JN12.Enabled := false; 32 : DMServer.JN32.Enabled := false; 13 : DMServer.JN13.Enabled := false; 33 : DMServer.JN33.Enabled := false; 14 : DMServer.JN14.Enabled := false; 34 : DMServer.JN34.Enabled := false; 15 : DMServer.JN15.Enabled := false; 35 : DMServer.JN35.Enabled := false; 16 : DMServer.JN16.Enabled := false; 36 : DMServer.JN36.Enabled := false; 17 : DMServer.JN17.Enabled := false; 37 : DMServer.JN37.Enabled := false; 18 : DMServer.JN18.Enabled := false; 38 : DMServer.JN38.Enabled := false; 19 : DMServer.JN19.Enabled := false; 39 : DMServer.JN39.Enabled := false; 20 : DMServer.JN20.Enabled := false; 40 : DMServer.JN40.Enabled := false; end; end; procedure TFServer.AktifinTimerAnggota(S: String); begin Case StrToInt(S) of 1 : DMAnggota.JA1.Enabled := true; 21 : DMAnggota.JA21.Enabled := true; 41 : DMAnggota.JA41.Enabled := true; 2 : DMAnggota.JA2.Enabled := true; 22 : DMAnggota.JA22.Enabled := true; 42 : DMAnggota.JA42.Enabled := true; 3 : DMAnggota.JA3.Enabled := true; 23 : DMAnggota.JA23.Enabled := true; 43 : DMAnggota.JA43.Enabled := true; 4 : DMAnggota.JA4.Enabled := true; 24 : DMAnggota.JA24.Enabled := true; 44 : DMAnggota.JA44.Enabled := true; 5 : DMAnggota.JA5.Enabled := true; 25 : DMAnggota.JA25.Enabled := true; 45 : DMAnggota.JA45.Enabled := true; 6 : DMAnggota.JA6.Enabled := true; 26 : DMAnggota.JA26.Enabled := true; 46 : DMAnggota.JA46.Enabled := true; 7 : DMAnggota.JA7.Enabled := true; 27 : DMAnggota.JA27.Enabled := true; 47 : DMAnggota.JA47.Enabled := true; 8 : DMAnggota.JA8.Enabled := true; 28 : DMAnggota.JA28.Enabled := true; 48 : DMAnggota.JA48.Enabled := true;
Coding Program (Lanjutan) 9 : DMAnggota.JA9.Enabled := true; 29 : DMAnggota.JA29.Enabled := true; 49 : DMAnggota.JA49.Enabled := true; 10 : DMAnggota.JA10.Enabled := true; 30 : DMAnggota.JA30.Enabled := true; 50 : DMAnggota.JA50.Enabled := true; 11 : DMAnggota.JA11.Enabled := true; 31 : DMAnggota.JA31.Enabled := true; 12 : DMAnggota.JA12.Enabled := true; 32 : DMAnggota.JA32.Enabled := true; 13 : DMAnggota.JA13.Enabled := true; 33 : DMAnggota.JA33.Enabled := true; 14 : DMAnggota.JA14.Enabled := true; 34 : DMAnggota.JA34.Enabled := true; 15 : DMAnggota.JA15.Enabled := true; 35 : DMAnggota.JA35.Enabled := true; 16 : DMAnggota.JA16.Enabled := true; 36 : DMAnggota.JA36.Enabled := true; 17 : DMAnggota.JA17.Enabled := true; 37 : DMAnggota.JA37.Enabled := true; 18 : DMAnggota.JA18.Enabled := true; 38 : DMAnggota.JA38.Enabled := true; 19 : DMAnggota.JA19.Enabled := true; 39 : DMAnggota.JA39.Enabled := true; 20 : DMAnggota.JA20.Enabled := true; 40 : DMAnggota.JA40.Enabled := true; end; end; procedure TFServer.MatiinTimerAnggota(S: String); begin Case StrToInt(S) of 1 : DMAnggota.JA1.Enabled := false; 21 : DMAnggota.JA21.Enabled := false; 41 : DMAnggota.JA41.Enabled := false; 2 : DMAnggota.JA2.Enabled := false; 22 : DMAnggota.JA22.Enabled := false; 42 : DMAnggota.JA42.Enabled := false; 3 : DMAnggota.JA3.Enabled := false; 23 : DMAnggota.JA23.Enabled := false; 43 : DMAnggota.JA43.Enabled := false; 4 : DMAnggota.JA4.Enabled := false; 24 : DMAnggota.JA24.Enabled := false; 44 : DMAnggota.JA44.Enabled := false; 5 : DMAnggota.JA5.Enabled := false; 25 : DMAnggota.JA25.Enabled := false; 45 : DMAnggota.JA45.Enabled := false; 6 : DMAnggota.JA6.Enabled := false; 26 : DMAnggota.JA26.Enabled := false; 46 : DMAnggota.JA46.Enabled := false; 7 : DMAnggota.JA7.Enabled := false; 27 : DMAnggota.JA27.Enabled := false; 47 : DMAnggota.JA47.Enabled := false; 8 : DMAnggota.JA8.Enabled := false; 28 : DMAnggota.JA28.Enabled := false; 48 : DMAnggota.JA48.Enabled := false; 9 : DMAnggota.JA9.Enabled := false; 29 : DMAnggota.JA29.Enabled := false; 49 : DMAnggota.JA49.Enabled := false; 10 : DMAnggota.JA10.Enabled := false; 30 : DMAnggota.JA30.Enabled := false; 50 : DMAnggota.JA50.Enabled := false; 11 : DMAnggota.JA11.Enabled := false; 31 : DMAnggota.JA31.Enabled := false; 12 : DMAnggota.JA12.Enabled := false; 32 : DMAnggota.JA32.Enabled := false; 13 : DMAnggota.JA13.Enabled := false; 33 : DMAnggota.JA33.Enabled := false; 14 : DMAnggota.JA14.Enabled := false; 34 : DMAnggota.JA34.Enabled := false; 15 : DMAnggota.JA15.Enabled := false; 35 : DMAnggota.JA35.Enabled := false; 16 : DMAnggota.JA16.Enabled := false; 36 : DMAnggota.JA36.Enabled := false; 17 : DMAnggota.JA17.Enabled := false; 37 : DMAnggota.JA37.Enabled := false; 18 : DMAnggota.JA18.Enabled := false; 38 : DMAnggota.JA38.Enabled := false; 19 : DMAnggota.JA19.Enabled := false; 39 : DMAnggota.JA39.Enabled := false; 20 : DMAnggota.JA20.Enabled := false; 40 : DMAnggota.JA40.Enabled := false; end; end;
Coding Program (Lanjutan) procedure TFServer.CekLoginAdmin; begin with QServer do begin Close; SQL.Clear; SQL.Add('Select * from t_administrator where Nama =' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil5)); Open; end; end; procedure TFServer.CekLoginOperator; begin with QServer do begin Close; SQL.Clear; SQL.Add('Select * from t_operator where Nama =' + QuotedStr(Hasil3) + ' and Password =' + QuotedStr(Hasil5)); Open; end; end; procedure TFServer.InputLoginOperator; begin try with QServer do begin Close; SQL.Clear; SQL.Add('Insert into t_biaya_sementara values(' + Hasil2 +',' + QuotedStr(Hasil3) + ',' + QuotedStr(Hasil4) + ',' + QuotedStr(FormatDateTime('hh : mm : ss', Time)) + ',' + QuotedStr('-') + ',' + '0' + ',' + '0' + ',' + '0' + ',' + '0' + ',' + FormatDateTime('dd', Date) + ',' + FormatDateTime('mm', Date) + ',' + FormatDateTime('yyyy', Date) + ',' + QuotedStr(FormatDateTime('dd - mm - yyyy', Date)) + ',' + QuotedStr(Operator) + ',' + QuotedStr('Active') + ')'); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara'); Open; end; Except with QServer do
Coding Program (Lanjutan) begin Close; SQL.Clear; SQL.Add('Update t_biaya_sementara set No_Pc = ' + Hasil2 + ',' + 'Nama = ' + QuotedStr(Hasil3) + ',' + 'Jenis = ' + QuotedStr(Hasil4) + ',' + 'Mulai = ' + QuotedStr(FormatDateTime('hh : mm : ss', Time)) + ',' + 'Selesai = ' + QuotedStr('-') + ',' + 'Durasi = ' + '0' + ',' + 'Discount = ' + '0' + ',' + 'PPN = ' + '0' + ',' + 'Tot_Biaya = ' + '0' + ',' + 'Tgl =' + FormatDateTime('dd', Date) + ',' + 'Bln =' + FormatDateTime('mm', Date) + ',' + 'Thn =' + FormatDateTime('yyyy', Date) + ',' + 'Tanggal = ' + QuotedStr(FormatDateTime('dd - mm - yyyy', Date)) + ',' + 'Operator = ' + QuotedStr(Operator) + ',' + 'Status = ' + QuotedStr('Active') + ' Where No_Pc = ' + QuotedStr(Hasil2)); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara'); Open; end; End; end; procedure TFServer.InputLogOutOperator; var Maks, No, Dur, Total, Diskon, Tgl, Bln, Thn, PPN : Integer; Nama, Jenis, Mulai, Selesai, Tanggal, Operator: String; begin try with QServer do begin Close; SQL.Clear; SQL.Add('Update t_biaya_sementara set Selesai = ' + QuotedStr(FormatDateTime('hh : mm : ss ', Time)) + ',' + 'Status =' + QuotedStr('DisActive') + ' Where No_Pc = ' + Hasil2); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara where No_Pc =' + Hasil2); Open; No := FieldByName('No_Pc').AsInteger; Nama := FieldByName('Nama').AsString; Jenis := FieldByName('Jenis').AsString; Mulai := FieldByName('Mulai').AsString; Selesai := FieldByName('Selesai').AsString; Dur := FieldByName('Durasi').AsInteger; Diskon := FieldByName('Discount').AsInteger;
Coding Program (Lanjutan) PPN := FieldByName('PPN').AsInteger; Total := FieldByName('Tot_Biaya').AsInteger; Tgl := FieldByName('Tgl').AsInteger; Bln := FieldByName('Bln').AsInteger; Thn := FieldByName('Thn').AsInteger; Tanggal := FieldByName('Tanggal').AsString; Operator := FieldByName('Operator').AsString; Close; SQL.Clear; SQL.Add('Insert into t_biaya values(' + QuotedStr('1') + ',' + IntToStr(No) + ',' + QuotedStr(Nama) + ',' + QuotedStr(Jenis) + ',' + QuotedStr(Mulai) + ',' + QuotedStr(Selesai) + ',' + IntToStr(Dur) + ',' + IntToStr(Diskon) + ',' + IntToStr(PPN) + ',' + IntToStr(Total) + ',' + QuotedStr(Tanggal) + ',' + QuotedStr(Operator) + ',' + IntToStr(Tgl) + ',' + IntToStr(Bln) + ',' + IntToStr(Thn) + ',' + QuotedStr('Sudah') + ')'); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara Order By No_Pc'); Open; end; Except with QServer do begin Close; SQL.Clear; SQL.Add('Update t_biaya_sementara set Status =' + QuotedStr('DisActive') + ' Where No_Pc = ' + Hasil2); ExecSQL; Close; SQL.Clear; SQL.Add('Select Max(No) from t_biaya'); Open; Maks := Fields[0].AsInteger; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara where No_Pc =' + Hasil2); Open; No := FieldByName('No_Pc').AsInteger; Nama := FieldByName('Nama').AsString; Jenis := FieldByName('Jenis').AsString; Mulai := FieldByName('Mulai').AsString; Selesai := FieldByName('Selesai').AsString; Dur := FieldByName('Durasi').AsInteger;
Coding Program (Lanjutan) Diskon := FieldByName('Discount').AsInteger; PPN := FieldByName('PPN').AsInteger; Total := FieldByName('Tot_Biaya').AsInteger; Tgl := FieldByName('Tgl').AsInteger; Bln := FieldByName('Bln').AsInteger; Thn := FieldByName('Thn').AsInteger; Tanggal := FieldByName('Tanggal').AsString; Operator := FieldByName('Operator').AsString; Close; SQL.Clear; SQL.Add('Insert into t_biaya values(' + IntToStr(Maks + 1) + ',' + IntToStr(No) + ',' + QuotedStr(Nama) + ',' + QuotedStr(Jenis) + ',' + QuotedStr(Mulai) + ',' + QuotedStr(Selesai) + ',' + IntToStr(Dur) + ',' + IntToStr(Diskon) + ',' + IntToStr(PPN) + ',' + IntToStr(Total) + ',' + QuotedStr(Tanggal) + ',' + QuotedStr(Operator) + ',' + IntToStr(Tgl) + ',' + IntToStr(Bln) + ',' + IntToStr(Thn) + ',' + QuotedStr('Sudah') + ')'); ExecSQL; Close; SQL.Clear; SQL.Add('Select * from t_biaya_sementara order by No_Pc'); Open; end; End; end; procedure TFServer.KonfigAja(S: String); begin Case StrToInt(S) of 1 : PC1.Color := clOlive; 2 : PC2.Color := clOlive; 3 : PC3.Color := clOlive; 4 : PC4.Color := clOlive; 5 : PC5.Color := clOlive; 6 : PC6.Color := clOlive; 7 : PC7.Color := clOlive; 8 : PC8.Color := clOlive; 9 : PC9.Color := clOlive; 10: PC10.Color := clOlive; 11 : PC11.Color := clOlive; 12 : PC12.Color := clOlive; 13 : PC13.Color := clOlive; 14 : PC14.Color := clOlive; 15 : PC15.Color := clOlive; 16 : PC16.Color := clOlive; 17 : PC17.Color := clOlive; 18 : PC18.Color := clOlive; 19 : PC19.Color := clOlive; 20: PC20.Color := clOlive; 21 : PC21.Color := clOlive; 22 : PC22.Color := clOlive; 23 : PC23.Color := clOlive; 24 : PC24.Color := clOlive; 25 : PC25.Color := clOlive; 26 : PC26.Color := clOlive; 27 : PC27.Color := clOlive; 28 : PC28.Color := clOlive; 29 : PC29.Color := clOlive; 30: PC30.Color := clOlive; 31 : PC31.Color := clOlive; 32 : PC32.Color := clOlive; 33 : PC33.Color := clOlive; 34 : PC34.Color := clOlive; 35 : PC35.Color := clOlive; 36 : PC36.Color := clOlive; 37 : PC37.Color := clOlive; 38 : PC38.Color := clOlive; 39 : PC39.Color := clOlive; 40: PC40.Color := clOlive; 41 : PC41.Color := clOlive; 42 : PC42.Color := clOlive; 43 : PC43.Color := clOlive; 44 : PC44.Color := clOlive; 45 : PC45.Color := clOlive; 46 : PC46.Color := clOlive; 47 : PC47.Color := clOlive; 48 : PC48.Color := clOlive; 49 : PC49.Color := clOlive; 50: PC50.Color := clOlive; end; end;
Coding Program (Lanjutan) procedure TFServer.GantiPassword1Click(Sender: TObject); begin FPassword.ShowModal; end; procedure TFServer.Putus; begin If CkbPutus.Checked = true then begin FPesan.Show; FPesan.LbPesan.Caption := 'Koneksi komputer client ' + Hasil2 + ' terputus'; end; end; procedure TFServer.GantiNomor; begin with QIP do begin Close; SQL.Clear; SQL.Add('Update t_ip set No =' + QuotedStr(Hasil3) + ' where No =' + QuotedStr(Hasil2)); ExecSQL; end; end; procedure TFServer.LockUnlock1Click(Sender: TObject); begin FKonfigurasi.Show; end; procedure TFServer.ShutdownClick(Sender: TObject); begin FKonfigurasi.Show; end; procedure TFServer.SetingBiaya1Click(Sender: TObject); begin FKonfigurasi.Show; end; procedure TFServer.ClientAktif; begin Aktif := Aktif + 1; TidakAktif := TidakAktif - 1; PnlServer.Panels[3].Text := 'Client Aktif : ' + IntToStr(Aktif); PnlServer.Panels[4].Text := 'Client Tidak Aktif : ' + IntToStr(TidakAktif); PnlServer.Panels[5].Text := 'Client Tidak Terkoneksi : ' + IntToStr(TidakKonek); end; procedure TFServer.ClientTidakAktif; begin Aktif := Aktif - 1; TidakAktif := TidakAktif + 1; PnlServer.Panels[3].Text := 'Client Aktif : ' + IntToStr(Aktif);
Coding Program (Lanjutan) PnlServer.Panels[4].Text := 'Client Tidak Aktif : ' + IntToStr(TidakAktif); PnlServer.Panels[5].Text := 'Client Tidak Terkoneksi : ' + IntToStr(TidakKonek); end; procedure TFServer.ClientTidakKonek; begin TidakAktif := TidakAktif - 1; TidakKonek := TidakKonek + 1; PnlServer.Panels[4].Text := 'Client Tidak Aktif : ' + IntToStr(TidakAktif); PnlServer.Panels[5].Text := 'Client Tidak Terkoneksi : ' + IntToStr(TidakKonek); end; procedure TFServer.DataStrukClick(Sender: TObject); begin FLaporan.Show; end; procedure TFServer.Anggota1Click(Sender: TObject); begin FAnggota.Show; FAnggota.EdNama.SetFocus; end; procedure TFServer.MnOperatorClick(Sender: TObject); begin FOperator.Show; FOperator.EdNama.SetFocus; end; procedure TFServer.DataBiaya1Click(Sender: TObject); begin FLaporanPemakaian.Show; end; procedure TFServer.DataUser1Click(Sender: TObject); begin FAnggota.Show; end; procedure TFServer.Chat1Click(Sender: TObject); begin FChatting.Show; end; end.
LAMPIRAN II
Cara Pemakaian Aplikasi
• Server
Form Login Administrator / Operator
Cara Pengoperasian :
1. Pilih jenis account yang terdapat pada combo box jenis.
2. Isi username dan password
3. Klik tombol Login untuk masuk login ke aplikasi atau tombol keluar untuk
mengakhiri aplikasi.
4. Jika login berhasil maka akan ditampilkan pesan keberhasilan :
dan administrator / operator boleh mengakses Form Utama.
5. Jika login gagal, maka akan ditampilkan pesan kesalahan :
6. Untuk mengakhiri aplikasi, klik tombol Keluar. Jika sudah terdapat
administrator / operator yang bertugas, maka aplikasi hanya boleh di akhiri
administrator / operator yang bertugas tersebut. Jika belum maka untuk
mengakhiri aplikasi, kosongkan semua isian dan klik tombol keluar. Jika
permintaan untuk mengakhiri aplikasi diterima, akan di tampilkan pesan :
Jika permintaan untuk mengakhiri aplikasi di tolak (yang mengakhiri
aplikasi bukan administrator / operator yang bertugas)maka akan
ditampilkan pesan :
Form Utama
Cara Penoperasian :
1. Tab Daftar Harga menampilkan informasi tentang daftar biaya pemakaian
internet yang sedang atau telah berlangsung.
2. Tab Daftar Koneksi menampilkan informasi tentang jumlah client yang
terkoneksi, client yang tidak terkoneksi, client yang sedang tidak
dipergunakan dan client yang sedang dipergunakan.
3. Tab Daftar Transaksi menampilkan informasi tentang waktu transaksi yang
dilakukan oleh client, saat client melakukan koneksi, login, logout dan
sebagainya.
4. Tab Daftar Error Message menampilkan informasi tentang status client
yang tidak bisa terkoneksi serta penyebabnya.
5. Tab Konfigurasi dipergunakan untuk melakukan lock, unlock, shutdown
dan restart komputer client. Tab ini juga dipergunakan untuk
mengkonfigurasi harga pemakaian internet.
6. Untuk menggunakan masing-masing tab di atas, atau untuk menggunakan
menu-menu yang terdapat pada Form Utama, klik pada menu atau tab
tersebut.
Tab / Form Konfigurasi
Cara Pengoperasian :
• Lock / Unlock / Shutdown / Restart Client
1. Untuk melakukan Lock / Unlock / Shutdown / Restart semua client, klik
pada radio button Semua Client, lalu klik tombol Lock / Unlock /
Shutdown /Restart.
2. Untuk melakukan Lock / Unlock / Shutdown / Restart berdasarkan nomor
client, klik pada radio button Nomor Client, lalu pilih nomor client yang
akan di Lock / Unlock / Shutdown / Restart. Setelah nomor client di pilih
klik pada tombol Lock / Unlock / Shutdown /Restart.
• Input Harga Pemakaian Internet
1. Pilih jenis account yang akan di input harga pemakaiannya. Jenis account
terdiri dari Anggota dan Non Anggota.
2. Isi isian Biaya Per Koneksi, Biaya Per Menit, Diskon Per Jam dan PPN,
lalu klik tombol Simpan. Saat tombol simpan di klik, maka akan
ditampilkan konfirmasi untuk menyimpan data :
Klik Yes jika ingin menyimpan data atau klik No untuk membatalkan
penyimpanan data.
3. Jika tombol Yes di klik, maka aplikasi akan mencoba untuk menyimpan
data ke database. Jika penyimpanan data berhasil maka akan ditampilkan
pesan :
Dan jika penyimpanan data gagal, akan ditampilkan pesan :
4. Pesan penyimpanan yang gagal ditampilkan karena harga pemakaian
internet untuk account anggota maupun non anggota sudah terdapat di
dalam database, sehingga tidak bisa lagi dilakukan penginputan data
berulang-ulang. Jika ingin mengubah harga pemakaian untuk masing-
masing account, dapat dilakukan melalui grup box Cari / Edit Setting
Biaya.
• Cari / Edit Setting Biaya
Untuk mencari, mengedit dan menghapus harga pemakaian untuk account
anggota dan non anggota, dapat dilakukan pada grup box Cari / Edit Setting
Biaya.
1. Cari
o Untuk mencari harga pemakaian internet untuk masing-masing
account, pilih kriteria pencarian terlebih dahulu lalu klik pada tombol
Cari.
o Jika data ditemukan akan ditampilkan pesan :
dan data akan di tampilkan pada tabel data harga serta pada grup box
Cari / Edit Setting Biaya.
o Sebaliknya, jika data tidak ditemukan, maka akan ditampilkan pesan :
2. Edit
o Untuk mengedit harga pemakaian internet, lakukan pencarian terlebih
dahulu untuk jenis account yang akan di edit harga pemakaiannya,
lalu klik pada tombol Edit.
o Jika saja tombol Edit di klik tanpa mencari terlebih dahulu harga
pemakaian untuk salah satu account, maka akan ditampilkan pesan :
2. Simpan
o Untuk menyimpan data hasil pengeditan, setelah melakukan
pengeditan data, klik pada tombol Simpan. Jika data berhasil disimpan
maka akan ditampilkan pesan keberhasilan penyimpanan data.
Demikian juga sebaliknya, jika data gagal di simpan, maka akan
ditampilkan pesan kegagalan. Pesan keberhasilan penyimpanan
pengeditan data adalah seperti :
3. Hapus
o Untuk menghapus data harga salah satu account user, maka terlebih
dahulu harus dilakukan pencarian data untuk salah satu account yang
akan di hapus data harga pemakaian internetnya. Jika tombol Hapus di
klik tanpa mencari terlebih dahulu, maka akan ditampilkan pesan :
o Jika data yang akan dihapus sudah di cari terlebih dahulu, maka untuk
menghapus data, klik pada tombol Hapus. Saat tombol hapus di klik,
maka akan ditampilkan pesan konfirmasi untuk melakukan
penghapusan data, sebagai berikut :
o Untuk melakukan penghapusan data, maka klik pada tombol Yes. Dan
untuk membatalkan penghapusan data, klik pada tombol No.
Form Laporan Pemakaian Internet
Cara Pengoperasian :
1. Laporan Hari Ini
o Laporan Hari Ini merupakan laporan pemakaian internet yang terjadi pada
tanggal saat laporan di cetak. Untuk mencetak laporan hari ini, maka klik
pada radio button Laporan Hari Ini (biarkan combo box Tanggal, Bulan
dan Tahun dalam keadaan tidak terisi / kosong) lalu klik pada tombol
Cetak Laporan. Format laporan harian adalah :
2. Laporan Harian
o Untuk mencetak laporan harian, isi combo box Tanggal, Bulan dan
Tahun terlebih dahulu, kemudian klik pada tombo Cetak Laporan.
Format laporan harian adalah :
3. Laporan Bulanan
o Untuk mencetak laporan bulanan, isi combo box Bulan dan Tahun
terlebih dahulu. Combo box tanggal akan secara otomatis di disable
dan tidak dipergunakan. Format laporan bulanan adalah :
4. Laporan Tahunan
o Untuk mencetak laporan tahunan isi combo box Tahun terlebih dahulu
lalu klik tombo Cetak Laporan (combo box Tanggal dan Bulan akan
otomatis di disable oleh aplikasi dan tidak bisa dipergunakan). Contoh
laporan tahunan adalah :
• Client
Cara Pengoperasian :
1. Non Anggota
o Pilih jenis account Non Anggota pada combo box jenis, kemudian isi
nama user. Untuk password, akan otomatis di disable oleh aplikasi karena
user non anggota tidak perlu mengisi password.
o Pilih jenis limit koneksi yang ingin dipergunakan, yang terdiri dari Non
Limit, Limit Waktu dan Limit Biaya.
a) Non Limit
Non limit dipergunakan jika user ingin menggunakan internet tanpa
batasan waktu.
b) Limit Waktu
Limit waktu dipergunakan jika user ingin menggunakan internet
berdasarkan jumlah jam atau menit yang diinginkan oleh user. Untuk
menggunakan limit ini, isi combo box Jam dan menit.
c) Limit Biaya
Limit biaya dipergunakan jika user ingin menggunakan internet
berdasarkan jumlah biaya yang diinginkan oleh user tersebut. Untuk
menggunakan limit ini, isi terlebih dahulu jumlah biaya yang ingin
dipergunakan.
o Klik tombol Login.
Form Biaya
Cara Pengoperasian :
1. Form biaya dipergunakan untuk masuk ke Form Chatting serta untuk
mengakhiri pemakaian internet.
2. Untuk masuk ke Form Chatting, klik pada tombol Kirim Pesan.
3. Untuk mengakhiri pemakaian internet, klik pada tombol Selesai.
Form Chatting
Car Pengoperasian :
1. Form Chatting dipergunakan untuk mengirimkan pesan ke server.
2. Untuk mengirimkan pesan ke server, isi terlebih dahulu pesan yang akan
dikirim ke server. Lalu klik pada tombol Kirim.