BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1.
Analisis Sistem Wartel
VoIP
adalah
wartel
yang
menjalankan
usaha
telekomunikasi
menggunakan teknologi VoIP. Wartel VoIP membutuhkan sebuah mekanisme secara komputerisasi untuk menghitung durasi sebuah percakapan yang dilakukan oleh customer. Perhitungan itu kemudian akan dikalkulasikan dengan biaya sesuai dengan daerah tujuan panggilan. Hasil seluruh perhitungan tersebut akan dicetak dalam bentuk tagihan. Tagihan ini yang digunakan sebagai bukti percakapan yang dilakukan oleh customer. Selain bukti tagihan yang diberikan kepada customer, seorang pemilik wartel VoIP juga memiliki kepentingan untuk melihat detail transaksi yang dilakukan di wartelnya, dalam hal ini adalah detail dari percakapan. Detail percakapan ini bisa dilihat oleh pemilik per periode tertentu dalam bentuk report.
3.2.
Perumusan Masalah Dalam menjalankan operasi wartel VoIP terdapat beberapa kendala, yaitu:
1.
Tidak terdapat mekanisme perhitungan tarif percakapan secara real time. Untuk wartel yang menggunakan teknologi telepon analog yang terhubung dengan PSTN sudah memiliki mekanisme untuk melakukan billing secara komputerisasi. Untuk wartel VoIP yang menggunakan konsep TCP/IP tidak terdapat mekanisme perhitungan tarif secara komputerisasi seperti pada wartel yang menggunakan PSTN. 46
47 2.
Tidak terdapat mekanisme untuk melihat dan membuat laporan operasi wartel VoIP secara komputerisasi. Diperlukan sebuah mekanisme untuk mencatat setiap detail percakapan seperti lamanya percakapan, tujuan percakapan sehingga bisa ditampilkan lagi dalam bentuk report.
3.3.
Analisis Kebutuhan Untuk mengatasi kendala dalam operasi wartel VoIP diperlukan sebuah aplikasi
billing yang disebut dengan hot billing system VoIP yang memiliki fitur berikut ini:. 1.
Perhitungan tarif berdasarkan tujuan dan lamanya percakapan.
2.
Pengaturan tarif percakapan sesuai dengan daerah tujuannya.
3.
Pengoperasian aplikasi oleh multi operator.
4.
Pencetakan tagihan atas percakapan yang telah dilakukan.
5.
Pencetakan laporan penggunaan telepon VoIP per periode tertentu.
3.4
Analisis Paket Data SIP Paket data SIP merupakan paket data UDP yang menggunakan port 5060 atau
5061. Untuk mendapatkan paket data SIP digunakan software sniffing yaitu ethereal. Paket-paket yang terlibat pada sebuah percakapan menggunakan VoIP gateway adalah paket data RTP dan SIP. Dari paket data SIP ini akan didapatkan informasi mengenai status panggilan, daerah tujuan panggilan, dan call ID. Status panggilan yang digunakan adalah authentication, in band info available, ringing, ok, bye, dan cancel. Sedangkan paket data RTP tidak digunakan karena tidak mengandung informasi mengenai sebuah panggilan.
48 3.5.
Perancangan Sistem
Gambar 3.1 Diagram Hot Billing System VoIP
Gambar di atas menjabarkan entity dan interaksinya: 1. User menggunakan pesawat telepon analog yang terhubung ke MIGS atau VoIP gateway untuk melakukan panggilan. 2. MIGS terhubung ke switch sebagai konsentrator. MIGS akan mendapatkan konfigurasi TCP/IP secara dynamic dari DHCP server (pada gambar di atas NAT server bertindak sebagai DHCP server) 3. Aplikasi Billing diletakkan pada NAT Server. Modul aplikasi terdiri atas : -
Packet Receiver Module : modul ini berinteraksi dengan library JPCAP sebagai perantara antara Java dan Native Library dari operating system.
-
SIP Packet Builder Module : modul ini membuat paket SIP di dalam aplikasi untuk diproses dalam billing system. Paket SIP dapat dikonstruksi dari data paket UDP yang diterima.
49 -
Billing Module : modul ini melakukan perhitungan waktu selama panggilan. Perhitungan waktu dapat dilakukan berdasarkan status dari paket SIP yang dikonstruksi.
-
Report Module : modul ini berinteraksi dengan library JASPERREPORT untuk menghasilkan laporan panggilan yang telah dilakukan.
4. Hasil perhitungan dari Billing Module disimpan di dalam database. Data dalam database ini selanjutnya direpresentasikan kepada pemakai system dalam bentuk faktur dan laporan. 5. NAT server berfungsi sebagai gateway utama menuju internet
3.6.
Perancangan Aplikasi Berdasarkan analisis kebutuhan pada sub bab 3.2 akan dikembangkan aplikasi
hot billing system yang memberikan fitur-fitur yang telah disebutkan dengan menggunakan metode linear. Aplikasi ini intinya akan melakukan penangkapan paket data yang menggunakan SIP guna mengetahui detail dari panggilan telepon VoIP. Detail tersebut akan digunakan untuk perhitungan tarif percakapan yang dilakukan oleh konsumen. Untuk melakukan penangkapan paket data tersebut, aplikasi akan melakukan listening pada interface jaringan yang terhubung dengan VoIP gateway. 3.6.1
Perancangan Basis Data Skema dari database yang digunakan oleh aplikasi hot billing system VoIP
adalah sebagai berikut:
50
Gambar 3.2 Skema Database Hot Billing System VoIP
Detail dari tabel-tabel pada database di atas adalah sebagai berikut: Tabel 1 Nama table: ms_access_level Field
Type
Id
Bigint(20) unsigned
Name
Varchar(255)
description
Text Tabel 3.1 Tabel ms_access_level
Key Primary
51 Tabel 2 Nama table: ms_access_operation Field
Type
Id
Bigint(20) unsigned
Name
Varchar(255)
componentName
Varchar(255)
description
Text
Key Primary
Tabel 3.2 Tabel ms_access_operation
Tabel 3 Nama table: ms_access_permission Field
Type
Key
Id
Bigint(20) unsigned
Primary
levelID
Bigint(20) unsigned
Mul
operationID
Bigint(20) unsigned
Mul
Tabel 3.3 Tabel ms_access_permission
Tabel 4 Nama table: ms_client Field
Type
Id
Bigint(20) unsigned
clientNo
Varchar(255)
Name
Varchar(255)
Description
Text
ipAddress
Varchar(255) Tabel 3.4 Tabel ms_client
Key
52 Tabel 5 Nama table: ms_country Field
Type
Id
Bigint(20) unsigned
Name
Varchar(255)
prefixCode
Varchar(255)
Description
Text
Price
Double
Key Primary
Tabel 3.5 Tabel ms_country
Tabel 6 Nama table: ms_country_detail Field
Type
Key
Id
Bigint(20) unsigned
Primary
Country ID
Bigint(20) unsigned
Mul
Area
Varchar(255)
PrefixCode
Varchar(2550
Price
Double Tabel 3.6 Tabel ms_country_detail
Tabel 7 Nama table: tr_call Field
Type
Key
Id
Field
Key
ClientID
Bigint(20) unsigned
Mul
53 countryID
Bigint(20) unsigned
countryDetailID
Bigint(20) unsigned
PhoneNumber
Varchar(255)
timeStart
Date time
timeEnd
Date time
Date
Date
Cash
Double
Bill
Double
IpAddress
Varchar(255)
duration
Time
userID
Bigint(20) unsigned
Mul
Tabel 3.7 Tabel tr_call
3.6.2
Perancangan State Transition Diagram (STD) STD pada aplikasi hot billing system VoIP terdiri atas:
1.
STD Layar Utama
2.
STD Start Billing
3.
STD Layar ReportPeriodic
4.
STD Layar Report Detail
5.
STD Layar Call Billing Report
6.
STD Layar Change Password
7.
STD Layar Add Operator
8.
STD Layar Delete Operator
9.
STD Layar Confirmation Delete Operator
10.
STD Layar Login
54 11.
STD Layar Logout
12.
STD Layar Exit
13.
STD Layar Setting
14.
STD Layar Edit Price
15.
STD Layar Add Country
16.
STD Layar Confirmation Delete Country
17.
STD Layar Detail Price
18.
STD Layar Confirmation Delete Detail Price
19.
STD Layar Printer Setting
20.
STD Layar Information
21.
STD Layar About Us
3.6.2.1 STD Layar Utama Secara umum aplikasi Hot Billing System VoIP dapat digambarkan seperti STD Main Form pada gambar 3.3 yang merupakan tampilan utama pada aplikasi ini. Pada SDT Main Form terdapat 12 state yang akan dijabarkan lebih lanjut menjadi STD sendiri, yaitu: STD Start Billing (gambar 3.4), STD Report yang dibagi menjadi STD Layar Report Periodic (gambar 3.5) dan STD Layar Report Detail (gambar 3.6), STD Layar Change Password (gambar 3.8), STD Add Operator (gambar 3.9), STD Delete Operator (gambar 3.10), STD Login (gambar 3.12), STD Logout (gambar 3.13), STD Exit (gambar 3.14), STD Setting (gambar 3.15), STD Printer Setting (gambar 3.21), STD Information (gambar 3.22) dan STD About (gambar 3.23)
55
Gambar 3.3 STD Layar Utama
56 3.6.2.2
STD Layar Start Billing
Gambar 3.4 STD Layar Start Billing
3.6.2.3
STD Layar Report Periodic
Gambar 3.5 STD Layar Report Periodic
57 3.6.2.4
STD Layar Report Detail
Gambar 3.6 STD Layar Report Detail
3.6.2.5
STD Layar Call Billing Report STD pada gambar 3.7 merupakan penjabaran dari gambar 3.5 dan gambar 3.6
pada saat mengklik tombol View.
Gambar 3.7 STD Layar Call Billing Report
3.6.2.6
STD Layar Change Password
58
Gambar 3.8 STD Layar Change Password
3.6.2.7
STD Layar Add Operator
Gambar 3.9 STD Layar Add Operator
3.6.2.8
STD Layar Delete Operator
59
Gambar 3.10 STD Layar Delete Operator
3.6.2.9
STD Layar Confirmation Delete Operator STD pada gambar 3.11 merupakan penjabaran dari gambar 3.10 pada saat
mengklik tombol Delete.
Gambar 3.11 STD Layar Confirmation Delete Operator
3.6.2.10
STD Layar Login
60
Gambar 3.12 STD Layar Login
3.6.2.11
STD Layar Logout
Gambar 3.13 STD Layar Logout
3.6.2.12
STD Layar Exit
61
Gambar 3.14 STD Layar Exit
3.6.2.13
STD Layar Setting
STD pada gambar 3.12 terdapat 4 state yang akan dijelaskan, yaitu: STD Layar Edit Price (gambar 3.16), STD Layar Add Country (gambar 3.17), STD Layar Confirmation Delete Country (gambar 3.18) dan STD Layar Detail Price (gambar 3.19).
Gambar 3.15 STD Layar Setting
3.6.2.14
STD Layar Edit Price
62
Gambar 3.16 STD Layar Edit Price
3.6.2.15
STD Layar Add Country
Gambar 3.17 STD Layar Add Country
3.6.2.16
STD Layar Confirmation Delete Country
63
Gambar 3.18 STD Layar Confirmation Delete Country
3.6.2.17
STD Layar Detail Price
Gambar 3.19 STD Layar Detail Price
3.6.2.18
STD Layar Confirmation Delete Detail Price
STD pada gambar 3.20 merupakan penjabaran dari gambar 3.19 pada saat mengklik tombol Delete.
64
Gambar 3.20 STD Layar Confirmation Delete Detail Price
3.6.2.19
STD Layar Printer Setting
Gambar 3.21 STD Layar Printer Setting
3.6.2.20
STD Layar Information
Gambar 3.22 STD Layar Information
65 3.6.2.21
STD Layar About
Gambar 3.23 STD Layar About
3.6.3
Flowchart
Gambar 3.24 Listener Server
66 Listener server : Listener server merupakan modul utama dalam aplikasi. Pada saat server mulai dijalankan, aplikasi membuat Thread baru khusus untuk menangani semua proses billing. Dengan demikian user tetap dapat menjalankan operasi-operasi lain selama listener ini berjalan. Thread ini selanjutnya menjalankan Thread Packet Receiver yang melakukan looping untuk meng-capture paket yang melewati komputer secara realtime. Thread ini berhubungan dengan library JPCap. Selanjutnya paket yang diterima oleh Thread Packet Receiver akan diperiksa apakah paket tersebut termasuk paket UDP. Bila termasuk UDP, informasi internet protocol dan port yang digunakan akan disimpan. Selanjutnya paket diperiksa apakah termasuk paket SIP. Bila termasuk paket SIP, data yang pertama kali diolah adalah attribute CallID dari paket tersebut. Pada sistem ini, Thread Packet Receiver menyimpan semua CallID yang aktif dalam bentuk Thread Call handler ke dalam suatu class Collection Java. Apabila CallID dari paket tersebut tidak ada di dalam Collection, dibuat Thread Call handler baru dengan CallID baru tersebut. Bila CallID telah dibuat sebelumnya, Thread Call handler dengan CallID tersebut aktif untuk membedah paket lebih lanjut. Untuk setiap CallID dibuat setiap Thread karena proses pembentukan paket SIP melalui tahap yang cukup panjang. Dari setiap Call handler ini selanjutkan akan disinkronisasikan ke tampilan layar. Setiap Call handler akan di-bind pada sebuah panel untuk menampilkan status-status dari paket seperti nomor telepon tujuan, IP address, durasi panggilan, dan sebagainya. Dari paket SIP yang telah dibentuk, didapatkan status tertentu yang diproses secara logic. Bila status paket menandakan panggilan telah selesai, Thread Call handler di-
67 unbind dari panel, sehingga panel tersebut menjadi tidak aktif dan dapat digunakan oleh Call handler lainnya.
Gambar 3.25 SIP Packet Checking
68 SIP Packet Checking : Paket SIP yang diterima oleh Thread Packet Receiver selanjutnya diproses lebih lanjut dalam Thread Call handler. Dari data paket, didapatkan beberapa status pada attribute header. 1. Status Authentication menandakan panggilan sedang diperiksa pada VoIP Server. Pemeriksaan yang penting dalam tahap ini adalah apakah sisa voucher dari MIGS masih cukup melakukan panggilan. 2. Status Trying menandakan panggilan telah disampaikan pada nomor tujuan, dan sedang diperiksa apakah nomor tujuan aktif dan dapat dipanggil. 3. Status In band info available atau Ringing, terjadi pada saat nomor tujuan aktif dan sedang dipanggil. Pada aplikasi, akan ditampilkan status Ringing untuk memberitahu bahwa panggilan sedang menunggu jawaban. 4. Selanjutnya status OK terjadi pada saat panggilan telah dijawab. Status ini akan memulai perhitungan waktu dan mengubah status Call handler. Bila status ini telah aktif sebelumnya, Call handler akan memberitahu Panel yang di-bind untuk terus menghitung waktu. 5. Apabila status adalah BYE, Panel akan melakukan perhitungan tarif, kemudian mencetak faktur untuk panggilan tersebut. Call handler di-unbind dari Panel, kemudian dihentikan. 3.6.4
Perancangan Layar Perancangan layer dibuat dengan menggunakan Microsoft Visio 2003.
3.6.4.1
Layar Main Menu Layar utama ini merupakan bagian tampilan utama dari aplikasi ini, di mana
pada layar ini ditampilkan status dari masing-masing VoIP Gateway yang sedang
69 digunakan dan tabel pencatatan pemakaian VoIP Gateway. Layar Utama juga terdapat toolbar-toolbar yaitu: 1.
Menu File dengan submenu Start Billing, Report, Change Password, Add Operator, Change Operator, Logout, Login, Exit
2.
Menu Option dengan submenu Setting.
3.
Menu Help dengan submenu Information dan About
Rancangan layar utama dapat dilihat seperti pada gambar 3.26 berikut ini:
Gambar 3.26 Layar Main Menu
70 3.6.4.2
Layar Report Layar Report merupakan tampilan layar apabila ingin melihat laporan baik
secara periodic (gambar 3.27) maupun detail (gambar 3.28).
Gambar 3.27 Layar Report Periodic
Gambar 3.28 Layar Report Detail
3.6.4.3
Layar Call Billing Report Layar Call Billing Report merupakan tampilan layer apabila ingin mencetak
laporan baik secara periodic maupun detail seperti pada gambar 3.29 dan gambar 3.30.
71
Gambar 3.29 Layar Call Billing Report Periodic
Gambar 3.30 Layar Call Billing Report Detail
72 3.6.4.4
Layar Change Password Layar Change Password merupakan tampilan layar apabila ingin melakukan
perubahan password, berupa pemilihan operator, input old password, input new password dan input confirm seperti pada gambar 3.31.
Gambar 3.31 Layar Change Password
3.6.4.5
Layar Add Operator Layar Add Operator merupakan tampilan layar apabila ingin melakukan
penambahan operator, berupa input username, input old password, input new password, input confirm dan user type admin atau operator seperti pada gambar 3.32.
Gambar 3.32 Layar Add Operator
73 3.6.4.6
Layar Delete Operator Layar Delete Operator merupakan tampilan layar apabila ingin menhapus
operator. Tampilan seperti pada gambar 3.33
Gambar 3.33 Layar Delete Operator
3.6.4.7
Layar Login Layar Login merupakan tampilan layar pada saat akan melakukan login, berisi
input username dan input password seperti terlihat pada gambar 3.34.
Gambar 3.34 Layar Login
3.6.4.8
Layar Logout Layar Logout akan dijumpai saat ingin keluar dari login, terlihat seperti gambar
3.35 berikut ini:
Gambar 3.35 Layar Logout
74 3.6.4.9
Layar Exit Layar Exit akan dijumpai saat ingin keluar dan menutup aplikasi, terlihat seperti
gambar 3.36 berikut ini:
Gambar 3.36 Layar Exit
3.6.4.10
Layar Setting Layar Setting merupakan tampilan layar pada saat akan melakukan
mengaturan seperti mengedit tarif, menambah atau menghapus negara dan melihat detail tarif seperti pada gambar 3.37.
Gambar 3.37 Layar Setting
75 3.6.4.11
Layar Edit Price
Layar Edit Price ditampilkan jika tombol Edit Price pada layar Setting ditekan. Layar ini berisi seperti gambar 3.38.
Gambar 3.38 Layar Edit Price
3.6.4.12
Layar Add Country
Layar Add Country ditampilkan jika tombol Add Country pada layar Setting ditekan. Layar ini berisi seperti gambar 3.39.
Gambar 3.39 Layar Add Country
76 3.6.4.13
Layar Delete Country
Layar Delete Country ditampilkan jika tombol Delete Country pada layar Setting ditekan. Layar ini berisi seperti gambar 3.40.
Gambar 3.40 Layar Delete Country
3.6.4.14
Layar Detail Setting
Layar Detail Setting ditampilkan jika tombol Detail pada layar Setting ditekan. Layar ini berisi seperti gambar 3.41.
Gambar 3.41 Layar Detail Setting
3.6.4.15
Layar Confirmation Delete Detail Price
Layar Confirmation Delete Detail Price ditampilkan jika tombol Confirmation Delete Detail Price pada layar Detail Price ditekan. Layar ini berisi seperti gambar 3.42.
77
Gambar 3.42 Layar Confirmation Delete Detail Price
3.6.4.16
Layar Printer Setting
Layar Printer Setting akan menampilkan menu-menu pengaturan seperti margin, jenis kertas, jenis printer, jumlah yang akan diprint, dll seperti pada gambar 3.43.
Gambar 3.43 Layar Printer Setting
3.6.4.17
Layar Information
Layar Information akan ditampilkan jika menu Help - Information pada layar utama dipilih. Layar ini akan menampilkan informasi mengenai cara penggunaan aplikasi ini, seperti terlihat pada gambar 3.44.
78
Gambar 3.44 Layar Information
3.6.4.18
Layar About
Layar About menjelaskan tentang biodata para pembuat aplikasi ini, seperti terlihat pada gambar 3.45..
Gambar 3.45 Layar About
79 3.7
Pemilihan Bahasa Pemrograman Bahasa pemrograman yang digunakan untuk pengembangan aplikasi hot billing
system VoIP adalah Java. Alasan Java digunakan dalam pengembangan aplikasi ini adalah sebagai berikut: 1.
Java mendukung API yang digunakan untuk menangkap paket data TCP/IP sehingga dapat digunakan untuk mengolah paket data SIP.
2.
Aplikasi yang dibuat dengan bahasa pemrograman Java dapat digunakan pada multi platform.
3.
Java merupakan bahasa pemrograman open source sehingga tidak memerlukan pembelian license tertentu.