Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

202
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

Transcript of Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

Page 1: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 2: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 3: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 4: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 5: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 6: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 7: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 8: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 9: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan 126

5.2 Saran 127

Daftar Pustaka

Lampiran

Page 10: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 11: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 12: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 13: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 14: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 15: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 16: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 17: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 18: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 19: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 20: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 21: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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].

Page 22: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 23: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 24: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 25: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 26: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

• 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.

Page 27: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 28: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 29: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 30: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 31: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 32: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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 :

Page 33: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 34: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 35: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 36: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

• 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

Page 37: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 38: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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)

Page 39: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 40: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 41: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 42: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 43: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 44: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 45: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 46: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 47: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 48: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 49: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 50: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 51: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 52: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 53: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 54: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 55: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 56: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 57: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 58: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 59: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 60: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 61: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 62: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 63: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 64: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 65: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 66: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 67: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 68: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 69: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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 :

Page 70: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 71: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 72: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

3.1.4.4 ER Diagram

Gambar 3.14 ER Diagram

Page 73: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 74: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 75: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 76: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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).

Page 77: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

3.2.2.4 Perancangan Perangkat Lunak

A. Struktur Menu

Gambar 3.17 Struktur Menu

Page 78: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

Gambar 3.18 Struktur Menu (Lanjutan)

Gambar 3.19 Struktur Menu (Lanjutan)

Gambar 3.20 Struktur Menu (Lanjutan)

Gambar 3.21 Struktur Menu (Lanjutan)

Page 79: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 80: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 81: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 82: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 83: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 84: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 85: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 86: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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)

Page 87: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 88: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 89: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 90: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

2. Antar Muka Pemakai Aplikasi Client

a) Tata Letak Layar Login

Gambar 3.36 Tata Letak Layar Login

Page 91: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 92: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 93: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 94: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 95: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

• 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

Page 96: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25
Page 97: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 98: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 99: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 100: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 101: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 102: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 103: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 104: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 105: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 106: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 107: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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');

Page 108: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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 +

Page 109: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

' , ' + 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) + ', ' +

Page 110: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 111: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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);

Page 112: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 113: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 114: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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) +

Page 115: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

' / ' + 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;

Page 116: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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);

Page 117: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 118: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 119: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 120: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 121: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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 := '';

Page 122: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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 := '';

Page 123: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 124: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 125: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 126: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 127: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 128: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 129: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 130: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 131: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 132: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 133: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

• Client

Form Utama

Gambar 4.14 Form Utama

Keterangan : Form Utama client dipergunakan untuk login user sebelum

menggunakan internet.

Page 134: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 135: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 136: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 137: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 138: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 139: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 140: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 141: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

• 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

Page 142: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 143: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 144: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 145: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

DAFTAR LAMPIRAN

1. Coding Program 2. Cara Pemakaian Aplikasi

Page 146: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 147: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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,

Page 148: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 149: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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);

Page 150: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 151: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 152: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 153: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 154: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 155: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 156: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 157: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 158: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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 + ', ' +

Page 159: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 160: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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);

Page 161: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 162: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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);

Page 163: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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) + ', ' +

Page 164: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 165: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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) + ', ' +

Page 166: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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);

Page 167: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 168: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 169: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 170: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 171: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 172: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 173: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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) + ',' +

Page 174: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 175: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 176: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 177: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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) + ',' +

Page 178: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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)) + ',' +

Page 179: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 180: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 181: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 182: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 183: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 184: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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

Page 185: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 186: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 187: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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;

Page 188: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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);

Page 189: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 190: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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 :

Page 191: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 192: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 193: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

• 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.

Page 194: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

• 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 :

Page 195: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 196: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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 :

Page 197: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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 :

Page 198: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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 :

Page 199: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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 :

Page 200: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

• 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.

Page 201: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.

Page 202: Billing Internet Berbasis Client Server Menggunakan Internet Direct (Indy) 8.0.25

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.