Tentang

Segala sesuatu tentang gBilling ditulis di halaman ini.

Apa itu gBilling

gBilling adalah aplikasi sistem pembayaran warnet (warnet billing system) yang terdiri dari server dan client, gBilling diharapkan bisa berjalan di multi-platform (Linux, BSD, MacOS, atau Microsoft Windows). gBilling di tulis dalam bahasa C, dengan GUI toolkit GTK2 (The GIMP Toolkit), dan menggunakan SQLite sebagai sistem database dan penyimpanan data. gBilling akan selalu berada di bawah lisensi GNU Public License (GPL) versi 2, silahkan baca lisensi ini sebelum penggunaan, distribusi dan modifikasi gBilling. Dukung pengembangan gBilling dengan ikut serta dalam penulisan kode program, menulis dokumentasi, laporan bug atau melakukan donasi. Donasi yang masuk akan sangat membantu pengembangan gBilling seperti untuk membeli distro-distro Linux, membeli sistem operasi yang belum di uji coba seperti Windows Vista (jangan pernah pikir bajakan ;p), dan keperluan lainnya. Untuk melakukan donasi, silahkan hubungi penulis.

Perhatian: Anda tetap selalu bisa mendapatkan gBilling dengan bebas dan tanpa melakukan donasi terlebih dahulu, jika ada pihak yang menjual atau meminta donasi untuk mendapatkan gBilling, silahkan hubungi penulis.

Sejarah Singkat

Penulis membuat aplikasi ini pertama kalinya ketika sedang menulis aplikasi network untuk server FreeBSD (Maret, 2008) yang kira-kira hampir sama dengan cara kerja aplikasi billing warnet, dan pada waktu proyek aplikasi network itu selesai, penulis tertarik untuk menulis aplikasi billing warnet yang sesungguhnya. Penulis memilih porting ke GNU/Linux (Linux) karena Linux adalah sistem yang sangat ideal untuk Warnet. Walaupun dengan waktu luang yang tidak banyak (suka nongkrong dan banyak dengar lagu ;p) gBilling pun mulai ditulis dari awal. Karena socket programming pada setiap sistem kompatibel, dan library-library yang dipakai bisa berjalan di semua sistem tersebut, gBilling juga seharusnya bisa berjalan di setiap sistem dengan tanpa atau sedikit modifikasi, ini seperti Winsock di Windows yang menggunakan fungsi-fungsi khusus (tapi tetap menyediakan kompabilitas dengan socket UNIX/BSD) dan kode error yang tidak seperti UNIX. Pertama kali gBilling ditulis dengan Python, seiring perkembangan aplikasi ini seperti system call, API library-library yang digunakan, bahasa scripting dianggap tidak cocok lagi dan gBilling ditulis ulang ke C sampai saat ini dengan GLib untuk fungsi-fungsi wrapper POSIX dan API Windows.

gBilling menggunakan model concurrent TCP/IP server model, artinya server dapat malayani request client secara bersamaan (concurrent) tanpa menunggu request dari client lainnya selesai. Concurrent ini dicapai dengan menggunakan thread pada setiap request client seperti scheduling, timeout atau operasi socket (I/O). gBilling telah diprogram dengan baik untuk memenuhi kondisi thread-safe, tapi gBilling tidak dapat dijamin thread-safe, kerena untuk itu pemeriksaan program harus dilakukan dengan debugging atau menggunakan aplikasi pendeteksi thread-safety. Debugging pada aplikasi yang kompleks dan multi-thread sangat tidak mudah, kita harus punya kesabaran, skill, dan banyak waktu (ya, kita harus punya banyak waktu ;p). gBilling ditulis dalam bahasa C untuk kecepatan dan portabilitas, tidak seperti bahasa high-level seperti Java, PHP atau Python yang mengakses system call dan API melalui runtime-nya (yang juga merupakan system-level programming). C akan mengajarkan kita bagaimana mengakses system call dan API langsung dari library-library yang disediakan oleh sistem.

Mengapa gBilling

Karena gBilling adalah software bebas (free software), anda dapat mengambil keuntungan dari aplikasi ini. Anda bisa memodifikasi sesuai keperluan anda, anda bisa mempelajari cara kerja gBilling dan membuat aplikasi billing anda sendiri, anda bisa berpartisipasi mengembangkan program ini, dan lain-lain. gBilling akan selalu ditulis dengan mangacu pada portabilitas, gBilling tidak akan mengacu hanya pada satu sistem yang mana akan membuang-buang waktu saja.

gBilling tidak dibuat untuk mendapat keuntungan atau penghargaan, gBilling dibuat untuk mendukung sistem operasi yang bebas seperti Linux agar bisa digunakan dengan baik untuk warnet. Sekali lagi gBilling adalah software bebas yang berada di bawah lisensi GNU General Public License versi 2, bukan OSI Open Source, lisensi BSD dan sebagainya.

Fitur-fitur gBilling:

  • Multiplatform (UNIX: Linux, MacOS, BSD, dan Microsoft Windows) untuk arsitektur 32 bit dan 64 bit
  • Concurrent TCP/IP server model (IPv4)
  • Multithread (per-client thread, dengan GLib Thread)
  • Orientasi penyimpanan database (SQLite embedding)
  • Kontrol penuh dari server (logout, shutdown, restart, tutup/buka login client)
  • Mendeteksi client yang tidak aktif (program client yang tidak aktif atau komputer client)
  • Sistem logging dan export log ke format CSV
  • Recovery (recovery data server/client untuk power loss, system crash)
  • Autentikasi user (GLib data hashing)
  • Chatting
  • Sistem paket
  • Sistem Item (Item-item yang dijual di warnet ditampilkan di client)
  • Kostumisasi sesuai dengan warnet anda (nama warnet, slogan, alamat)
  • Notifikasi event dengan suara (login, logout, chat, etc.)
  • Rotasi tarif sesuai waktu yang ditentukan
  • Free software

Fitur-fitur lainnya seperti sistem member (anggota), voucher, screen capture dan lain-lain akan dikembangkan pada versi selanjutnya.

Tentang Penulis

Saya konak dengan Linux sejak masih SMA (Kendari, 1998), waktu itu Redhat 5.0 yang diberikan teman, sistem pertama saya: Intel-386 66 Mhz, 40 MiB HD, 8 MiB RAM. Saya suka musik rock: Motley Crue, AC/DC, Dream Theater dan Alter Bridge adalah beberapa band rock favorit saya, Joe Satriani dan Mark Tremonti adalah beberapa dari gitaris favorit saya, gitar pertama saya: Gibson SG (Angus Young Signature), sekarang memakai PRS Guitar. Cita-cita saya sebenarnya ingin jadi rockstar tapi tidak kesampaian ;p. Kesibukan saya sehari-hari adalah hacking dan nge-band (rock band), saya aktif di kernel Linux dan beberapa proyek desktop GNOME. Saat ini saya bekerja di sebuah perusahaan untuk mengembangkan embedded device mereka menggunakan Linux. Anda bisa menghubungi saya lewat email atau di Twitter.