Anda di halaman 1dari 13

Jurnal Teknologi Informasi DINAMIK Volume XII, No.

1, Januari 2007 : 75-87 ISSN : 0854-9524

Perancangan Aplikasi Sistem Billing untuk Warnet Prabayar

Dwi Agus Diartono


Fakultas Teknologi Informasi, Universitas Stikubank Semarang
email : dwiagus@unisbank.ac.id

ABSTRAK : Dalam pengoperasian sehari hari sebuah warnet memerlukan suatu sistem billing yang
berfungsi untuk menentukan besarnya pulsa pelanggan yang telah terpakai, perhitungannya didasarkan
pada durasi waktu akses internet yang dilakukan oleh pelanggan. Pada warnet dengan sistem pembayaran
biasa, pembayaran dilakukan ketika seseorang telah selesai mengakses internet. Pelanggan menuju operator
dan membayar sesuai dengan lama waktu akses internet. Besarnya pembayaran yang dilakukan oleh
pengguna tercatat dalam database server yang terkoneksikan pada seluruh komputer klien yang digunakan
untuk mengakses internet. Secara otomatis server akan melakukan perhitungan pulsa dan akan
menghentikan akses internet bila pulsa telah habis. Jadi, operator tidak perlu menunggu sampai pelanggan
selesai, baru kemudian memberikan tagihan.

Kata kunci : sistem billing, warnet, prabayar

PENDAHULUAN mengakses internet. Pelanggan menuju operator


dan membayar sesuai dengan lama waktu akses
Pada era globalisasi sekarang ini, laju internet.
informasi sangat cepat dan kebutuhan dalam
Pada warnet penempatan komputer klien
penggunaan internet guna mendapatkan
harus berdekatan dengan operator. Banyaknya
informasi secara cepat semakin banyak. Internet
komputer klien dan penempatan komputer klien
dapat di akses melalui komputer yang terhubung
mempengaruhi jumlah operator warnet. Billing
dengan jaringan komunikasi global. Di
yang sering digunakan di warnet menghitung
Indonesia fasilitas internet belum dapat di
biaya yang dikeluarkan oleh pelanggan setelah
nikmati oleh semua orang, sehingga diperlukan
pelanggan selesai menggunakan internet.
penyedia jasa layanan internet yang di sebut
warnet (warung internet).
RUMUSAN MASALAH
Linux yang merupakan salah satu sistem
operasi yang banyak digunakan sebagai server Adapun perumusan permasalahan yang
dalam jaringan komputer. Linux termasuk akan dibahas adalah :
sistem operasi yang handal dan tahan terhadap
a. Komputer klien yang digunakan untuk akses
virus. Disamping itu spesifikasi hardware yang
internet oleh pelanggan harus berdekatan
dibutuhkan juga relatif lebih ringan bila
dengan operator untuk melayani
dibandingkan dengan sistem operasi lain seperti
pembayaran. Jadi semakin banyak lokasi
windows untuk menjalankan fungsi yang sama.
penempatan komputer, jumlah operator juga
Dan kelebihan yang utama adalah sistem operasi
semakin banyak. Dari segi bisnis, hal ini
linux bersifat free licence.
tidak efisien.
Dalam pengoperasian sehari hari sebuah
b. Pelanggan tidak dapat membatasi biaya
warnet memerlukan suatu sistem billing yang
yang harus dikeluarkan untuk akses internet
berfungsi untuk menentukan besarnya pulsa
karena baru mengetahui biaya tersebut
pelanggan yang telah terpakai, perhitungannya
setelah selesai menggunakan internet.
didasarkan pada durasi waktu akses internet
yang dilakukan oleh pelanggan. Pada warnet
dengan sistem pembayaran biasa, pembayaran
dilakukan ketika seseorang telah selesai

Perancangan Aplikasi Sistem Billing untuk Warnet Prabayar 75


Jurnal Teknologi Informasi DINAMIK Volume XII, No.1, Januari 2007 : 75-87 ISSN : 0854-9524

PEMBATASAN MASALAH internet. Secara otomatis server akan


melakukan perhitungan pulsa dan akan
Agar permasalahan tidak menyimpang menghentikan akses internet bila pulsa telah
dari maksud dan tujuan, juga mengingat luasnya habis. Jadi, operator tidak perlu menunggu
permasalahan, maka pembahasan hanya sampai pelanggan selesai, baru kemudian
mencakup pembuatan sistem billing dan memberikan tagihan.
database yang meliputi :
3. Komputer klien yang digunakan dalam
a. Perancangan dan pembuatan sistem akses internet, bisa ditempatkan pada
otentikasi, untuk menentukan klien warnet beberapa lokasi yang dianggap strategis
yang berhak melakukan akses internet tanpa harus disertai seorang operator,
secara otomatis. sehingga lebih efisien dalam hal pegawai
dan bisa dekat dengan pelanggan.
b. Perancangan dan pembuatan sistem billing
yang berfungsi secara otomatis untuk 4. Pelanggan bisa mengakses internet sewaktu
menghitung besarnya tagihan pulsa waktu tanpa terpengaruh jam kerja dari
pelanggan berdasarkan durasi akses internet. operator.
c. Perancangan dan pembuatan sistem 5. Pelanggan bisa melanjutkan untuk
administrasi yang berfungsi untuk mengakses internet di lain waktu selama
menjalankan fungsi administrasi seperti pulsa yang dimiliki belum habis.
penambahan user dan pengesetan harga
6. Sistem ini juga memungkinkan seseorang
pulsa.
berlangganan menggunakan komputer di
d. Perancangan jaringan komputer klien warnet rumah pelanggan.
dengan server menggunakan sistem operasi
Beberapa keuntungan diatas
linux.
menggambarkan bahwa warnet prabayar ini
memiliki nilai strategis dan menguntungkan bagi
TUJUAN DAN MANFAAT
pengusaha jasa akses internet maupun bagi
pelanggan.
Bertujuan memudahkan pihak penyedia
layanan akses internet atau pengusaha warnet
METODE
dan juga para pelanggan, terutama dalam bidang
pembayaran tagihan. Para penyedia layanan
Agar dapat memberikan hasil yang baik,
tidak perlu memantau dan menghitung secara
maka menggunakan berbagai macam metode
langsung besarnya biaya yang dibebankan pada
sebagai berikut :
pelanggan ketika akses interenet, sehingga
komputer klien tidak harus berdekatan atau satu 1. Metode perancangan sistem.
lokasi dengan operator. Jadi komputer klien bisa Metode yang digunakan adalah sebagai
disebarkan di beberapa tempat strategis yang berikut :
mudah diakses oleh pelanggan tanpa perlu
menempatkan operator. Pelanggan juga bisa a. Perencanaan kebutuhan.
membatasi biaya yang akan digunakan untuk Yaitu merencanakan kebutuhan sistem
menggunakan layanan internet. yang meliputi perangkat keras dan
Adapun manfaatnya sebagai berikut: perangkat lunak untuk kebutuhan
jaringan.
1. Pelayanan pembayaran dilakukan sebelum
pengguna mengakses internet sehingga b. Quick design.
pengguna bisa membatasi besarnya tagihan Yaitu pembuatan desain awal atau
yang ingin dibayarkan. rancang cepat sebuah sistem billing dan
2. Besarnya pembayaran yang dilakukan oleh database.
pengguna tercatat dalam database server c. Building sistem.
yang terkoneksikan pada seluruh komputer
klien yang digunakan untuk mengakses Yaitu tahap membangun atau membuat
sebuah sistem billing dan database.
76 Perancangan Aplikasi Sistem Billing untuk Warnet Prabayar
Jurnal Teknologi Informasi DINAMIK Volume XII, No.1, Januari 2007 : 75-87 ISSN : 0854-9524

d. Testing dan evaluasi sistem. Warnet prabayar terdiri dari 3 sistem


utama yaitu sistem administrasi, sistem billing
Yaitu tahap pengujian sistem dan
dan sistem otentikasi. Sistem administrasi
mengevaluasi hasil dari percobaan
berfungsi untuk melayani administrasi warnet
tersebut.
dan database user, sistem billing berfungsi untuk
menghitung besarnya tagihan pelanggan,
WARNET
sedangkan sistem otentikasi berfungsi untuk
menentukan hak akses pelanggan, sedangkan
Warnet adalah singkatan dari "Warung
sistem otentikasi berfungsi untuk menentukan
Internet". Warung Internet adalah terjemahan
hak aksesn pelanggan. Ilustrasi sistem warnet
dalam bahasa Indonesia dari istilah asing
prabayar dapat dilihat pada gambar berikut :
Internet Cafe. Warnet memberi pelayanan akses
internet bagi pelanggan. Sebagai gantinya
pelanggan membayar biaya tertentu sesuai tarif
yang di tetapkan. Perhitungan tarif berdasarkan
durasi akses internet atau besarnya data
(http://id.wikipedia.org/wiki/warnet).
Di negara dunia ketiga, warnet adalah tempat
kebanyakan orang mengakses internet. Di
negara-negara atau daerah-daerah maju di mana
akses internet sudah ada pada hampir setiap
rumah, warnet jarang didapatkan dan mahal
tarifnya.

SISTEM BILLING Gambar 1. Sistem warnet prabayar


Dalam pengoperasian sehari hari sebuah Antara komputer klien dengan internet
warnet memerlukan sistem billing. Sistem terhubung melalui komputer server. Oleh karena
billing adalah suatu sistem yang berfungsi untuk itu, untuk dapat melakukan akses internet, klien
menentukan besarnya pulsa pelanggan yang harus melewati komputer server terlebih dahulu.
telah terpakai, perhitungannya didasarkan pada Selain sebagai penghubung, komputer server
durasi waktu akses internet yang dilakukan oleh juga bisa berfungsi sebagai pembatas akses
pelanggan. program billing ini akan terus pelanggan. Sebelum melakukan akses internet,
berjalan ketika klien masih aktif akses internet. klien diharuskan untuk login terlebih dahulu
Pengurangan pulsa dilakukan setiap 60 detik. dengan memasukkan user ID dan password.
Besarnya pulsa yang dikurangkan tiap 60 detik Bagi klien yang belum memiliki user ID dan
bisa ditentukan oleh operator. Pengurangan password harus mendaftar terlebih dahulu ke
pulsa akan berhenti ketika klien logout atau operator. Dimana user harus mengisi is, user,
pulsa klien habis password, jumlah pulsa dan alamat email.
Kemudian operator / admin menentukan harga
SISTEM BILLING PRABAYAR pulsa, sebelumnya operator juga sudah
menentukan no PC beserta IP addresnya.
Sistem billing prabayar adalah suatu Pembuatan voucher dilakukan oleh admin yang
sistem billing yang menggunakan sistem terdiri dari no voucher, pin, besarnya pulsa,
voucher. Apabila seorang user ingin status, waktu dan admin yang membuatnya.
menggunakan layanan jasa internet seorang user Server akan melakukan validasi untuk
diharuskan membeli voucher terlebih dahulu. mengecek kesesuaian antara user ID dan
Setelah membeli voucher, user akan diberi password, bila sesuai maka server akan
username dan pin untuk menggunakan layanan melakukan 2 hal, yaitu memulai perhitungan
jasa internet. billing klien dan membuka akses internet bagi
pelanggan. Untuk mekanisme teknis sistem
SISTEM WARNET PRABAYAR billing dan pemberian akses internet akan

Perancangan Aplikasi Sistem Billing untuk Warnet Prabayar 77


Jurnal Teknologi Informasi DINAMIK Volume XII, No.1, Januari 2007 : 75-87 ISSN : 0854-9524

diterangkan pada pembahasan selanjutnya. Isi dari field ini merupakan urutan
Selama klien akses internet, server akan pendaftaran klien dari warnet.
melakukan pengurangan pulsa pelanggan sesuai
b. User, merupakan nama yang dipilih
tarif yang ditetapkan oleh operator dan
klien sebagai user account. Bersifat unik
pengecekan pulsa yang dimiliki pelanggan setiap
sehingga tidak mungkin 2 klien
satu menit sampai klien logout atau pulsa klien
memiliki user account yang sama.
habis. Bila hal itu terjadi, komputer server akan
otomatis melakukan pencabutan hak akses c. Password, digunakan dalam sistem
pelanggan. Klien tidak diperkenankan untuk otentikasi untuk menentukan user yang
login dari 2 komputer yang berbeda dengan berhak menggunakan accountnya.
menggunakan user ID yang sama dalam satu Password ini bersifat rahasia dan
waktu. dienkripsi dengan md5 sehingga, admin
sendiri tidak tahu isi dari password
PERANCANGAN DATABASE SERVER sebenarnya.
d. Status, berisi idle bila user sedang
Pada sistem ini digunakan MySQL dan tidak aktif dan berisi alamat ip komputer
database yang dibuat bernama warnetku yang digunakan bila user sedang aktif.
Tabel 1. Rincian database billing Field ini digunakan untuk mencegah
klien login dari 2 komputer yang
berbeda dalam waktu yang sama.
e. Pulsa, berisi jumlah pulsa yang dimiliki
pelanggan
f. Last, berisi detik ketika sistem
melakukan perubahan pulsa user. Field
ini untuk mencegah pulsa user
berkurang sebelum periode 1 menit
berlalu yang disebabkan jendela billing
di refresh secara manual oleh klien.
g. Alias, berisi keterangan posisi user,
yaitu admin untuk operator dan user
untuk klien.
h. Email, berisi alamat email masing-
masing user.

PHPMyAdmin digunakan untuk 2. Tabel harga


mempercepat pembuatan database dan tabel - Tabel ini digunakan untuk melakukan
tabel yang diperlukan oleh sistem. Database pengesetan besarnya tarif internet tiap menit.
yang dibuat bernama warnetku dan terdiri dari Hanya terdiri dari 1 field :
4 tabel yaitu tabel data, harga, pc dan voucher.
a. Pulsa, nilai yang tertulis dalam field ini
Seluruh data yang berhubungan dengan sistem
digunakan sebagai parameter besarnya
warnet prabayar tersimpan dalam database
pengurangan pulsa yang dibebankan
warnetku. Penjelasan fungsi masing-masing
pada pelanggan tiap menit.
tabel sebagai berikut :
3. Tabel pc
1. Tabel data
Tabel ini berisi informasi tentang identitas
Tabel data berisi data-data yang
PC. Tiap PC mendapat nama tersendiri
berhubungan dengan klien warnet. Tabel ini
untuk memudahkan klien dalam mencari
terdiri dari 8 field :
komputer yang masih belum terpakai.
a. Id, bersifat auto increment dan Terdiri dari 2 field :
merupakan primary key dalam tabel ini.

78 Perancangan Aplikasi Sistem Billing untuk Warnet Prabayar


Jurnal Teknologi Informasi DINAMIK Volume XII, No.1, Januari 2007 : 75-87 ISSN : 0854-9524

a. No, berisi nama masing-masing 7. Melihat traffic komputer dan situs favorit
komputer klien. pengunjung
b. Ip, alamat ip dari komputer klien. Fungsi dari sistem adminstrasi untuk klien
antara lain.
1. Isi pulsa
4. Tabel voucher
2. Cek pulsa
Tabel ini berfungsi pada pengisian pulsa
sistem voucher. Tabel ini terdiri dari 6 field : 3. Mengubah password
a. No, bersifat auto incremen dan 4. Mengubah profil user
merupakan primary key. Berisi
Sebelum mengakses sistem administrasi,
informasi banyaknya transaksi yang
klien ataupun operator harus melewati proses
telah terjadi dan voucher yang telah
otentikasi dengan cara melakukan login sebagai
terbuat
terlebih dahulu untuk menentukan hak aksesnya.
b. Pin, merupakan sejumlah angka yang
bersifat acak, diberikan kepada
pelanggan ketika membeli pulsa. Tiap
pin memiliki nilai pulsa tertentu sesuai
dengan yang dibeli klien.
c. Pulsa, jumlah uang yang merupakan
nilai dari masing-masing pin.
d. Status, berisi nama user yang telah
melakukan pengisian pulsa. Sebelum pin
dipakai, status bernilai null. Field ini
mengakibatkan pin yang sama tidak bisa
dipakai 2 kali.
e. Waktu, berisi waktu pembuatan
voucher.
f. Admin, berisi nama operator yang
membuat voucher.

PERANCANGAN SISTEM ADMINISTRASI


Gambar 2. Bagan alir sistem administrasi
Sistem administrasi digunakan oleh
operator maupun user untuk melakukan PERANCANGAN SISTEM OTENTIKASI
administrasi data user. Penggunaan sistem KLIEN
adminstrasi terbatas pada user tertentu sesuai
dengan hak aksesnya. Fungsi dari sistem Sistem otentikasi klien berfungsi untuk
adminstrasi untuk administrator antara lain : menentukan klien berhak atau tidak melakukan
akses internet. Sebelum akses internet, klien
1. Menambah atau menghapus user atau klien. harus mengunjungi alamat web server untuk
2. Mengeset password user atau klien. login dengan cara memasukkan user ID dan
password. Sistem akan mengecek kesesuaian
3. Melihat profil user antara user ID dan password, disamping itu
4. Mengeset harga pulsa tiap satuan waktu. sistem juga akan mengecek nilai pulsa yang
dimiliki oleh klien.
5. Membuat voucher pulsa sesuai nilai yang
diminta user. Apabila semua persyaratan diatas
terpenuhi, maka klien berhak melakukan akses
6. Melihat saldo voucher.. internet, sebaliknya jika tidak terpenuhi maka
sistem akan menolak pemberian hak akses

Perancangan Aplikasi Sistem Billing untuk Warnet Prabayar 79


Jurnal Teknologi Informasi DINAMIK Volume XII, No.1, Januari 2007 : 75-87 ISSN : 0854-9524

internet. Pemberian akses internet dilakukan program server.c sedangkan program client.c
dengan cara menambahkan alamat ip dari dijalankan oleh program billing. Program server
komputer yang digunakan oleh klien ke file akan tetap hidup bila mendapat kiriman paket
access.list yang merupakan acuan dari squid data dari program client. Ketika paket tidak
untuk menentukan komputer yang berhak akses diterima selama lebih dari 2 menit, program
internet dan tidak. Ketika klien akses internet server akan menjalankan program firedown
program akan terus mengecek pulsa yang untuk menutup akses internet. Jadi program
dimiliki klien. Apabila pulsa yang dimiliki client dan server punya pengaruh yang besar
sudah habis atau user logout secara manual pada sistem otentifikasi. Hubungan antara
maka akses internet dari komputer yang telah program Client dan server dapat dilihat pada
digunakan akan dicabut kembali. gambar 3.5.

Gambar 4. Bagan alir program billing

Gambar 3. Bagan alir sistem otentikasi


Server Client
PERANCANGAN SISTEM BILLING
Socket() Socket()
Sistem billing berfungsi untuk
menentukan besarnya pulsa pelanggan yang
telah terpakai, perhitungannya didasarkan pada
Bind()
durasi waktu akses internet yang dilakukan oleh
pelanggan. program billing ini akan terus
berjalan ketika klien masih aktif akses internet.
Pengurangan pulsa dilakukan setiap 60 detik. Rcvfrom() Sendto()
Besarnya pulsa yang dikurangkan tiap 60 detik
bisa ditentukan oleh operator. Pengurangan
data
pulsa akan berhenti ketika klien logout atau Menunggu
data
pulsa klien habis.
Program program yang terkait dengan Run pulsa
sistem billing warnet prabayar antara lain
program client.c, program server.c dan program
pulsa.c. Program client.c dan server.c Gambar 5. Bagan alir program socket client-
merupakan pemrograman socket dalam server
lingkungan linux. Kedua program tersebut Selain program client dan server diatas,
menentukan status klien masih aktif atau tidak. terdapat satu program lagi yang berkaitan erat
Jadi, program tersebut mempengaruhi hampir dengan sistem billing, yaitu program pulsa.c.
seluruh sistem warnet prabayar. Ketika user program pulsa.c dianggil oleh program server
login, program validate akan mengaktifkan dengan perintah system(buf). Ketika dipanggil,
80 Perancangan Aplikasi Sistem Billing untuk Warnet Prabayar
Jurnal Teknologi Informasi DINAMIK Volume XII, No.1, Januari 2007 : 75-87 ISSN : 0854-9524

program ini akan melakukan pengurangan pulsa PERSIAPAN SISTEM


dengan melakukan query ke database billing.
Bagan alir program pulsa dapat di lihat pada Sistem administrasi dibuat dengan
gambar 6. menggunakan bahasa pemrograman PHP dan
database MySQL. Fungsi utama dalam sistem
ini berkisar pada proses query data, yaitu
memasukkan sejumlah data ke database atau
menampilkan dan membandingkan data dari
database. Data yang tersimpan dalam database
akan digunakan sebagai acuan oleh sistem
otentikasi dan sistem billing.
Untuk sistem otentikasi digunakan squid
proxy server sebagai gerbang yang menentukan
suatu komputer bisa akses internet atau tidak.
Pada squid terdapat konfigurasi access list (acl)
yang berfungsi untuk mendefinisikan alamat-
alamat ip yang berhak melakukan akses internet.
Selain dari alamat ip yang tercatat dalam access
list squid, permintaan browsing dari suatu
komputer akan ditolak oleh squid. Fasilitas
squid inilah yang digunakan sebagai gerbang
otentikasi pada sistem ini.
Ketika klien akan akses internet, klien
harus menuju ke halaman login terlebih dahulu
untuk memasukkan user ID dan password.
Halaman login ini menggunakan sistem web dan
dibuat dari PHP. Pemilihan sistem web
dimaksudkan agar tidak perlu melakukan
installasi software khusus di komputer klien.
Apabila user ID dan password yang dimasukkan
oleh klien sesuai, selanjutnya sistem akan
mengecek nilai pulsa yang dimiliki oleh klien.
Gambar 6. Bagan alir program pulsa Jika pulsa yang dimiliki lebih dari 0, maka user
bisa akses internet.
Program pulsa diatas mengambil pulsa
klien dan data besarnya tarif permenit yang Proses akses internet sendiri bisa
ditetapkan oleh operator. Besarnya tarif ini yang dijelaskan sebagai berikut. Pada sistem warnet
digunakan untuk menentukan besarnya prabayar didalam komputer server terdapat 2
pengurangan pulsa user setiap menit. Jika nilai program socket yaitu program klien dan
pulsa lebih besar dari 0 maka program ini akan program server. Program klien bertugas
mengurangi pulsa awal dengan nilai pengurang. mengirimkan beberapa bit data ke server. Ketika
Hasil pengurangan tersebut akan dimasukkan server menerima paket data, maka server akan
kembali kedalam database. Setelah itu program menjalankan program fireup yang berfungsi
mengeset kembali waktu akhir dan keluar dari untuk menambahkan alamat ip yang digunakan
program. 60 detik kemudian program ini akan di oleh klien ke dalam access list dari squid,
jalankan kembali sehingga proses pengurangan sehingga klien bisa akses internet. Pada saat
pulsa akan berlangsung kembali. yang sama, program server juga akan
mengaktifkan program pengurang pulsa yang
berfungsi untuk mengurangi pulsa pelanggan
sesuai dengan tarif yang ditetapkan. Mekanisme
ini akan terus berulang setiap 60 menit. Ketika
pulsa klien habis atau klien logout, program

Perancangan Aplikasi Sistem Billing untuk Warnet Prabayar 81


Jurnal Teknologi Informasi DINAMIK Volume XII, No.1, Januari 2007 : 75-87 ISSN : 0854-9524

klien akan berhenti mengirim paket data ke Komputer server berfungsi sebagai router,
program server. Program server akan menunggu menghubungkan jaringan klien yang memiliki IP
selama 2 menit, apabila dalam 2 menit tidak network 10.10.10.0/24 dengan network
terdapat paket data dari program klien maka 10.252.108.0/24. Pada komputer server dipasang
program server akan menjalankan program 2 buah etherner card. Masing-masing ethernet
untuk menghapus alamat ip yang digunakan card tergabung dalam jaringan berbeda. Kedua
klien dari access list squid. Sehingga komputer ethernet card dikenal dengan eth0 dan eth1. Eth0
tersebut tidak dapat digunakan lagi untuk access memiliki IP 10.252.108.20 dan tergabung
internet. Disamping itu, pengurangan pulsa dengan jaringan 10.252.108.0/24 yang
pelanggan juga berhenti. terhubung internet secara bebas. Sedangkan eth1
memiliki IP 10.10.10.1 dan tergabung dengan
Penggunaan program socket ini, yaitu
jaringan komputer klien. IP eth1 berperan
program klien dan server dimaksudkan untuk
sebagai gateway bagi jaringan klien. Jadi IP
menghindari kecurangan yang mungkin
tersebut berfungsi sebagai pintu yang
dilakukan oleh pelanggan. Yaitu apabila klien
menghubungkan jaringan klien dengan jaringan
berupaya untuk mematikan jendela login dan
diatasnya dan juga internet.
jendela billing. Apabila digunakan php murni,
maka ketika jendela billing di tutup, maka server
KONFIGURASI KOMPUTER SERVER
akan berhenti menghitung pulsa pelanggan dan
proses didalam server juga akan berhenti
Pada sistem ini komputer server
seketika sebelum sempat menutup akses internet
menggunakan sistem operasi linux Knoppix
komputer yang dipakai oleh klien. Sehingga
berbasis Debian yang dilengkapi dengan paket
klien akan bisa akses internet tanpa terkena
squid sebagai server proxy, database Mysql,
pengurangan pulsa.
apache webserver dan PHP.
KONFIGURASI JARINGAN KOMPUTER
SISTEM OPERASI KOMPUTER SERVER
Sistem warnet prabayar dibuat dengan
Sistem operasi yang digunakan pada
menggunakan jaringan komputer topologi klien
komputer server adalah linux Knoppix. Untuk
server. Komputer klien pada sistem ini adalah
update paket, sistem server mengambil paket
komputer-komputer yang digunakan oleh
dari mirror debian terdekat, yaitu kebo.vlsm.org.
pelanggan untuk melakukan akses internet,
Mirror merupakan sebutan untuk komputer
sedangkan komputer server merupakan
server yang berfungsi sebagai rujukan atau pusat
komputer yang digunakan sebagai administrasi
untuk melakukan update sistem operasi linux
dari sistem. Pada komputer server terdapat
debian. Pada mirror disediakan paket-paket
database server yang berisi identitas pelanggan
software yang bisa berjalan di linux debian.
dan pulsa yang dimiliki, sistem autentikasi dan
Pemilihan mirror tersebut dilakukan dengan cara
sistem billing. Desain konfigurasi jaringan
menentukan source list server dengan
komputer dapat dilihat pada gambar 3.1.
mengkonfigurasi file /etc/apt/source.list.

INSTALLASI PROXY SERVER

Untuk proxy server digunakan squid.


Squid merupakan software proxy yang cukup
stabil dan handal. Pada sistem warnet prabayar,
squid digunakan untuk mengarahkan browser
pelanggan untuk mengunjungi web admin
terlebih dahulu sebelum akses internet. Hal ini
perlu dilakukan karena proses login sebagai
sarat untuk otentikasi, dilakukan melalui web
tersebut. Agat proxy bisa bekerja seperti yang
Gambar 7. Konfigurasi jaringan komputer diinginkan, maka harus dilakukan pengesetan di
file konfigurasi squid yaitu di /etc/squid.conf.
82 Perancangan Aplikasi Sistem Billing untuk Warnet Prabayar
Jurnal Teknologi Informasi DINAMIK Volume XII, No.1, Januari 2007 : 75-87 ISSN : 0854-9524

Langkah-langkah konfigurasi squid dengan cara apache agar dapat mendukung aplikasi yang
mengetikkan listing program pada shell : menggunakan php4
1. Installasi squid. # apt-get install apache
# apt-get install squid. # apt-get install libapache2-mod-php4
2. Membuka file /etc/squid/squid.conf 2. Konfigurasi file httdoc.conf
# vim /etc/squid/squid.conf Pada webserver apache terdapat pengaturan
lokasi tempat menyimpan file-file web yang
3. Konfigurasi file /etc/squid/squid.conf
akan di tampilkan ke brower. Jadi file-file
Tambahkan listing program di file web tidak boleh ditaruh di sembarang lokasi.
squid.conf, kemudian buat file Pengaturan lokasi tersebut dapat dilakukan
/var/www/source.list dengan melakukan konfigurasi pada file
acl clientwarnet src /var/www/source.list httdoc.conf. Apabila file web ditaruh di luar
http_access allow localhost lokasi yang ditentukan, maka file tersebut
http_access allow clientwarnet tidak akan dibaca oleh web browser. Pada
http_access deny all
linux penempatan file-file web di direktori
Baris pertama menunjukkan bahwa terdapat khusus yaitu direktori /var/www/ atau dalam
acl clientwarnet dengan daftar komputer /home/user/public_html.
klien tersimpan di file /var/www/source.list. 3. Konfigurasi visudo
Hal ini berarti, komputer yang bisa akses
internet, alamat ipnya harus tersimpan dalam Pada sistem warnet prabayar, saat klien
file tersebut. Baris berikutnya menunjukkan login, secara otomatis server akan memberi
aturan akses internet. Dari list diatas, terlihat instruksi untuk mengaktifkan program
bahwa yang diperbolehkan access internet billing dan membuka akses internet bagi
adalah localhost dan acl clientwarnet. Selain klien. Hal ini berarti PHP perlu melakukan
kedua acl tersebut, tidak diperkenankan instruksi kedalam sistem linux dan bertindak
akses internet. sebagai root. Pada kondisi normal, hak akses
php ke sistem terbatas. Untuk bisa
4. Restart squid melakukan instruksi sistem dengan level
Agar konfigurasi yang baru bisa berimbas, user root, maka harus dilakukan
maka squid perlu direstart. penambahan pada visudo.
# /etc/init.d/squid restart # visudo
Perintah diatas, akan membuka file sudo
INSTALLASI WEB SERVER yang berisi user yang berhak memiliki hak
akses tertinggi dalam sistem linux.
Pada komputer server deperlukan web Tambahkan baris berikut untuk pada file
server karena sistem otentikasi dan layanan- tersebut. User www-data merupakan user
layanan adaministrasi user dilakukan dengan yang digunakan untuk mengakses web
menggunakan program aplikasi berbasis web. server apache. Penambahan user www-data
Web server yang digunakan pada sistem ini pada visudo di maksudkan agar sistem web
adalah apache. Langkah langkah konfigurasi mampu melakukan sintaks shell sebagai root
apache dengan mengetikkan perintah-perintah sehingga php dapat melakukan instruksi ke
berikut pada shell : sistem dengan level user root.
1. Install apache. www-data ALL=NOPASSWD : ALL
Untuk melakukan installasi apache, ketikkan 4. Restart apache
perintah berikut pada shell linux. Baris
pertama pada program perintah di atas Agar konfigurasi baru tersebut berimbas
berfungsi untuk menginstall paket apache maka apache perlu di restart terlebih dahulu.
yang terdapat dalam debian, sedangkan baris # /etc/init.d/apache restart
kedua melakukan installasi paket library

Perancangan Aplikasi Sistem Billing untuk Warnet Prabayar 83


Jurnal Teknologi Informasi DINAMIK Volume XII, No.1, Januari 2007 : 75-87 ISSN : 0854-9524

INSTALLASI PHP INSTALLASI MySQL

Salah satu bahasa pemrograman yang Sebagai media penyimpanan data, sistem ini
digunakan dalam membangun sistem ini adalah menggunakan database MySQL. Pemilihan
PHP, pemilihan bahasa pemrograman ini karena database ini karena MySQL merupakan database
sifatnya gratis dan handal untuk aplikasi yang free namun memiliki kehandalan yang
berbasis web. Pemilihan aplikasi berbasis web sudah teruji. Dan database ini juga cukup
ditujukan agar tidak perlu lagi melakukan setting mendukung bahasa pemrograman PHP dan
atau installasi khusus pada komputer klien, webserver Apache. Installasi MySQL :
sehingga memungkinkan pelanggan
# apt-get install mysql-server-4.1
menggunakan komputer pribadi untuk
memanfaatkan sistem ini. PHP merupakan # apt-get install php4-mysql
bahasa pemrograman yang bersifat server side,
sehingga seluruh proses dijalankan disisi server. INSTALLASI GCC
Hal ini sangat membantu keamanan sistem.
Langkah-langkah installasi PHP : GCC merupakan kompiler untuk bahasa
pemrograman C dan C++ yang yang terdapat di
1. Install php versi 4
GNU/linux. Pada sistem ini diperlukan GCC
# apt-get install php4 karena program menggunakan pemrograman
socket dengan C. Installasi GCC dengan
# apt-get install php4-mysql Baris pertama
mengetikkan perintah berikut :
untuk menginstall paket php4, sedangkan
baris kedua merupakan modul php4 untuk # apt-get install gcc
bisa koneksi dengan MySQL.
Setelah paket gcc terinstall kita bisa
2. Buat file info.php melakukan kompilasi program-program yang
ditulis dengan menggunakan bahasa C. Contoh
# vim info.php
cara kompilasi program C.
ketikkan listing program 4.11 dan simpan
# gcc o klien klien.c
program di direktori /var/www/
Dari perintah diatas dapat dijelaskan sebagai
<?php
berikut :
phpinfo();
gcc merupakan perintah untuk melakukan
?> kompilasi.
3. Test PHP4 dengan memanggil file info.php -o klien berarti kompilasi tersebut
dari browser. Bila php4 berjalan maka, akan menghasilkan file yang bernama klien.
keluar tampilan seperti dibawah ini
klien.c merupakan source file yang
dikompilasi.

PROGRAM SISTEM OTENTIKASI KLIEN

Sebelum akses internet, klien harus


mengunjungi alamat web server untuk login
dengan cara memasukkan user ID dan password.
Sistem akan mengecek kesesuaian antara user
ID dan password, disamping itu sistem juga
akan mengecek nilai pulsa yang dimiliki oleh
klien. Pengecekan tersebut dilakukan dengan
Gambar 8. Tampilan PHP info menjalankan program.

<?php
include '../conf/warnet-mysql.php';

84 Perancangan Aplikasi Sistem Billing untuk Warnet Prabayar


Jurnal Teknologi Informasi DINAMIK Volume XII, No.1, Januari 2007 : 75-87 ISSN : 0854-9524

session_start(); /tmp/server$port -
m -b -- $port");
$user_name = $_POST['user_name']; //Membuka firewall
$password = //system("sudo
md5($_POST['password']); /var/www/scripts/fireup $ip
");
//set up the query header(
$query = "SELECT * FROM data 'location:/billing/' );
WHERE user='$user_name' }
AND password='$password' AND
status='idle' AND }
pulsa>'0'"; else {
header( 'location:/warnetku/' );
//run the query and get the number of }
affected rows ?>
$result = mysql_query($query,
Program diatas mengisi nilai variabel
$connection) or die('error
$user_name dan $password sesuai dengan
making query');
yang dimasukkan user. Kedua variabel tersebut
$affected_rows =
di cek kesesuaiannya dengan cara melakukan
mysql_num_rows($result);
query ke database memangil data dengan
menggunakan kedua variabel tersebut sebagai
parameter. Dari proses query tersebut, bila
//if there's exactly one result, the user is
menghasilkan nilai maka user name dan
validated. Otherwise,
password dinyatakan sesuai dan server akan
he's invalid
menjalankan perintah selanjutnya. Bila user
if($affected_rows == 1) {
name dan password tidak sesuai maka program
$_SESSION['user_name'] =
akan keluar menampilkan jendela login kembali.
$user_name;
Setelah otentikasi berhasil program diatas akan
mengambil alamat ip klien, kemudian
if( $user_name == admin) {
menentukan no port yang digunakan untuk
melakukan koneksi socket antara program klien
header('location:/admin/');
dan server. No port tersebut dibuat dengan
} else {
mengambil angka terakhir dari alamat ip
kemudian ditambahkan dengan nilai 20000.
$ipx=$_SERVER["HTTP_X_FORWAR
Selain itu, program ini juga akan menjalankan
DED_FOR"];
program server.c dan program fireup untuk
if( empty($ipx)) {
membuka koneksi internet. Diakhir program
terdapat perintah sesuai program.
$ip=$_SERVER["REMOTE_ADDR"];
} else { $ip=$ipx; } Header( 'location:/billing/' );
Program digunakan oleh PHP untuk
berpindah menjalankan program lain yang
$noport=explode(".",$ip); terletak di lokasi yang disebutkan, dalam hal ini
$port = $noport[3] + yaitu folder billing. Jadi, setelah melakukan
20000; otentikasi, server akan menjalankan sistem
billing untuk menghitung pulsa pelanggan.
//Menjalankan server
billing Program-program yang berhubungan
system("sudo dengan sistem otentikasi antara lain :
/sbin/start-stop-daemon -S
exec
/var/www/udp/server -p

Perancangan Aplikasi Sistem Billing untuk Warnet Prabayar 85


Jurnal Teknologi Informasi DINAMIK Volume XII, No.1, Januari 2007 : 75-87 ISSN : 0854-9524

PROGRAM SISTEM BILLING $result = mysql_query($query,


$connection) or die('error
Sistem billing terdiri dari beberapa program making query');
yang saling berkaitan, program utama yang $row = mysql_fetch_row($result);
mengatur atau menjalankan sistem billing adalah echo "Pulsa : $row[0]";
program 4.28.
<?php echo "<br> <br><a
include '../conf/warnet-mysql.php';
session_start(); href=logout.php>LOGOUT</a><br>";
if(empty($_SESSION['user_name'])) { system("sudo /var/www/udp/client
header( 'location:/warnetku/' ); localhost $port \"pulsa
} $user 100\"");
header( 'refresh: 60; url=/' ); ?>
Program memiliki peran yang utama
dalam membangun sistem warnet prabayar.
echo '<h1>WARNET PRA-
Program ini akan terus dijalankan berulang-
BAYAR...</h1>';
ulang setiap 60 detik. Selama program ini masih
echo '<h5>refresh in 60 seconds, DO
berjalan, maka sistem billing akan terus
NOT refresh this page
mengurangi pulsa dan sistem otentikasi tetap
manually !!!</h5>';
membuka koneksi internet. Program diatas akan
melakukan query ke database untuk mengeset
echo date("l dS of F Y h:i:s A ");
status user dengan alamat ip komputer yang
echo "<br>";
digunakan, hal ini menandakan user yang
$user=$_SESSION['user_name'];
bersangkutan sedang aktif. Fungsi utama dari
echo $user;
program diatas adalah pada baris :
echo ", login from ";
system("sudo /var/www/udp/client localhost
$ipx=$_SERVER["HTTP_X_FORWAR $port \"pulsa
DED_FOR"]; $user 100\"");
if( empty($ipx)) { Baris diatas adalah fungsi dalam PHP
untuk menjalankan instruksi sistem yaitu
$ip=$_SERVER["REMOTE_ADDR"]; menjalankan program klien dengan memberi
} else { $ip=$ipx; } argumen localhost yang menunjukkan
hostname komputer, nilai variable $port yang
$query="UPDATE data set status='$ip' menunjukkan port yang digunakan dan string
WHERE pulsa $user 100. Baris diatas menjadi penting
user='$user'"; karena sistem otentikasi dan sistem billing akan
$result = mysql_query($query, terus bekerja selama program klien tetap bekerja
$connection) or die('error dan memberi kiriman data ke program server.
making query');
$noport=explode(".",$ip); Pada program diatas terdapat proses query
$port = $noport[3] + 20000; untuk merubah isi pulsa user yang tersimpan di
database billing. Syarat untuk bisa melakukan
$pidof=`ps ax | grep $port | grep -v query ke mysql dengan menggunakan bahasa
grep | awk -F" " '{ print pemrograman C adalah :
$1 }'`; a. Include <mysql.h>
echo "$ip PID $pidof"; memanggil library mysql agar perintah
echo "<br>"; query bisa dijalankan
b. Static MYSQL mysql;
$query = "SELECT pulsa FROM data
WHERE user='$user'"; Membuat variable static dengan tipe
MYSQL.

86 Perancangan Aplikasi Sistem Billing untuk Warnet Prabayar


Jurnal Teknologi Informasi DINAMIK Volume XII, No.1, Januari 2007 : 75-87 ISSN : 0854-9524

c. Mysql_init(&mysql); DAFTAR PUSTAKA


Mengalokasikan atau menginilisiasi objek
mysql sesuai dengan mysql_real_connect. 1. Azikin, A., Adi, S, A., Ady, Gunawan.,
2004, debian GNU/Lnux, Andi. Yogyakarta
d. Mysql_real_connect(&mysql, "localhost",
"root", "root", "warnetku", 0, NULL, 0)) 2. Jhony H. Sembiring., 2001, Jaringan
Komputer berbasis Linux, Elex Media
Melakukan koneksi database dengan Komputindo. Jakarta
menentukan hostname, user, password dan
nama database sesuai dengan yang akan di 3. Kadir, A., 2003, Dasar pemrograman web
pakai. dinamis menggunakan PHP, Andi.
Yogyakarta
e. Mysql_close(&mysql);
4. Sukarno, M., 2006, Membangun Website
Untuk menutup koneksi ke mysql. Dinamis Interaktif dengan PHP-MySQL
(Windows & Linux), Eska Media. Jakarta
KESIMPULAN
5. http://id.wikipedia.org/wiki/Apache_HTTP_
Pada warnet prabayar terdapat 3 sistem Server
utama yang saling berkaitan yaitu sistem billing, 6. http://id.wikipedia.org/wiki/internet
sistem otentifikasi dan sistem administrasi.
7. http://id.wikipedia.org/wiki/MySQL
Sistem billing berfungsi untuk menghitung
besarnya pulsa pelanggan didasarkan lama 8. http://id.wikipedia.org/wiki/warnet
waktu pemakaian internet. Sistem otentifikasi
9. http://id.wikipedia.org/wiki/PHP
berfungsi sebagai pengatur hak akses bagi
pelanggan. Sedangkan sistem administrasi 10. http://ilmukomputer.com/berseri/ivan-
berfungsi dalam manajemen user maupun socket/index.php
pengaturan harga pulsa serta memberikan
11. http://ilmukomputer.com/umum/ardiyansah-
berbagai layanan bagi user.
jaringan.php
Sistem billing yang berada langsung di
12. www.php.net
server menyebabkan komputer yang terhubung
dengan server otomatis harus login dulu untuk
mengakses internet. Dengan adanya voucher dan
pentarifan secara otomatis meringankan kinerja
operator. Oleh karena itu warnet prabayar
merupakan salah satu solusi untuk meningkatkan
efisiensi dalam pelayanan jasa internet.
Untuk membangun sistem diatas
digunakan bahasa pemrograman berbasis web
yaitu PHP, bahasa pemrograman C untuk socket
programing, database mysql serta sistem operasi
linux untuk server. Prioritas utama dalam
pengerjaan proyek akhir ini adalah kehandalan
sistem terutama dari segi keamanan dan
stabilitas pelayanan. Sistem warnet prabayar ini
cukup fleksibel dalam penerapannya karena bisa
diterapkan untuk klien dengan sistem operasi
windows maupun linux serta tidak perlu
dilakukan penginstalan software tertentu pada
masing masing komputer klien.

Perancangan Aplikasi Sistem Billing untuk Warnet Prabayar 87