IV-25
BAB IV PERANCANGAN
4.1 Perancangan 4.1.1
Batasan Perancangan
Perancangan Business Process Reporting Service subsistem SMS Based Service disesuaikan dengan penggunaan teknologi Java Server Pages (JSP) model 2.0. JSP merupakan bahasa pemrograman java yang dikhususkan untuk menjalankan aplikasi pada sebuah web server. JSP ini semakin banyak digunakan oleh setiap perusahaan karena keamanannya dan kehandalannya dalam melakukan pemrosesan data. Perangkat lunak dibangun dengan paradigma berbasis MVC (Model-View-Controller) dengan alasan untuk memudahkan pengembangan perangkat lunak ke depan karena paradigma MVC ini akan membagi setiap kelas yang akan dibangun menjadi 3 jenis kelas, yaitu Model, View, dan Control. Model berguna untuk memodelkan entitas suatu kelas, view untuk menampilkan kelas-kelas yang digunakan, sedangkan control untuk mengontrol kelas model dan view tersebut. Dengan demikian, untuk menjalankan suatu fungsi logik dibutuhkan kelas yang menggambarkan objek di dunia nyata sebagai representasi komponen Model; halaman JSP sebagai representasi komponen View; dan kelas yang mengatur aksi dari request form (Servlet) sebagai representasi komponen Controller. Untuk setiap fungsi logik yang terdapat pada aplikasi, dilakukan identifikasi kelas yang mencakup komponen model, view, dan controller.
Untuk perancangan model, digunakan teknologi Enterprise Java Bean (EJB), sehingga setiap kelas model akan dipisahkan menjadi Session Bean dan Entity Bean. Khusus untuk kelas SessionBean, akan terbagi menjadi dua jenis kelas, yaitu Bean dan Local. Kelas Local adalah kelas interface dari kelas Bean, sehingga hanya berisi definisi method-method tanpa disertai kode programnya. Sebagai contoh pada kelas SMS akan dipisah menjadi kelas SMSBean, SMSLocal, dan Sms. SMSBean dan SMSLocal adalah kelas yang menjadi SessionBean, sedangkan kelas Sms adalah kelas untuk EntityBean. Teknologi Web Service juga digunakan untuk menampilkan fungsi-fungsi pengolahan data sehingga bisa digunakan oleh subsistem Business Process Generator. Dalam perancangan web services ini tidak dilakukan perancangan Web Service Definition Language (WSDL) dan
IV-26 Simple Object Access Protocol (SOAP). Hal ini dikarenakan WSDL dan SOAP akan dibangkitkan dengan bantuan Java Netbeans IDE.
Untuk penerimaan data mentah melalui SMS, digunakan library SMSLib. Library ini dapat menerima pesan melalui SMS kemudian menyimpan pesan itu dalam basis data. Pada Tugas Akhir ini, beberapa kode dalam library tersebut diubah dengan tujuan untuk menyesuaikan dengan analisis format pesan SMS seperti yang dijelaskan pada subbab 2.7.3. Dalam hal penanganan kesalahan pada program, kesalahan yang terjadi ditampilkan pada pengguna.
4.1.2
Identifikasi Paket dan Kelas Perancangan
Berdasarkan kelas-kelas potensial yang diperoleh dari hasil identifikasi pada Subbab 3.3.6.3, dilakukan identifikasi ulang untuk mendapatkan kelas-kelas yang merepresentasikan sistem yang akan dibangun. Kelas-kelas yang tidak mencerminkan tanggung jawab sistem terhadap permasalahan tidak akan digunakan.
Adanya kebutuhan representasi komponen MVC berpengaruh terhadap perancangan paket aplikasi Business Process Reporting Service subsistem SMS Based Service. Untuk mempermudah implementasi, pembagian paket didasarkan pada kemiripan penggunaan fungsi, apakah sebagai komponen model (bean) atau controller (servlet). Sedangkan kelas yang berfungsi sebagai view, digunakan halaman JSP yang akan menampilkan bean yang telah diolah oleh controller. Paket yang mencerminkan komponen model menggambarkan representasi logik dari Business Process Reporting Service subsistem SMS Based Service. Sebagai contoh, terdapat paket bpelreceiver, manajemenaplikasi, dan smsreceiver. Sedangkan paket yang merepresentasikan controller dimasukkan dalam paket processor, yang berupa servlet. Untuk mempermudah pembangunan aplikasi, digunakan juga beberapa kelas tambahan untuk mengolah basis data yang dimasukkan dalam paket manajemenaplikasi.
Gambar IV.1 menggambarkan keterhubungan antar paket dalam aplikasi Business Process Reporting Service subsistem SMS Based Service pada tahap perancangan. Pada aplikasi ini, terdapat satu paket yang akan ditangani secara penuh oleh library. Paket tersebut adalah reportdisplay, karena library dari Jasper Report sudah mencukupi untuk membuat report dari basis data yang digunakan. Perubahan lain pada diagram paket perancangan ini
IV-27 adalah perubahan panah antara paket processor dan manajemenaplikasi. Hal ini dikarenakan kelas-kelas pada paket processor akan memanggil kelas-kelas pada manajemenaplikasi. Diagram paket pada subsistem SMS Based Service ini hanya merepresentasikan Model dan Controller saja, sedangkan Viewer ditangani oleh file JSP yang tidak termasuk dalam paket karena jumlahnya yang sedikit.
bpelreceiver (Model)
smsreceiver (Model)
processor (Controller)
manajemenaplikasi (Model)
Report Display <
>
Gambar IV.1. Diagram Paket Perancangan Business Process Reporting Service subsistem SM S Based Service
Dengan menggunakan teknologi EJB, setiap bean yang akan menangani suatu model tertentu harus terdapat interface dan representasi basis data nya. Dengan demikian, perlu dilakukan penyesuaian terhadap kelas bertipe model pada tahap analisis. Garis besar kelas perancangan aplikasi Business Process Reporting Service subsistem SMS Based Service terdapat pada Tabel IV.1.
Pada tahap perancangan ini teridentifikasi 21 kelas karena untuk setiap paket, setiap kelas model akan terbagi menjadi tiga kelas. Kelas Database muncul karena diperlukan sebuah kelas yang mengatur koneksi database antara kelas model dengan basis data. Khusus untuk kelas SMSController tidak dituliskan karena pada implementasinya tidak digunakan. Salah satu contoh diagram kelas yang menyatakan keterhubungan antar kelas dalam paket smsreceiver digambarkan pada Gambar IV.2. Hasil identifikasi kelas final secara lebih detail terdapat pada Lampiran A Subbab 4.1 dan 4.2.
IV-28 Tabel IV.1. Kelas Perancangan Aplikasi Business Process Reporting Service subsistem SMS Based Service No. Nama Kelas Perancangan Paket ta.smsreceiver 1. SMSInterface 2. SMSBean 3. SMSLocal 4. Sms Paket ta.bpelreceiver 5. BPELInterface 6. BPELBean 7. BPELLocal 8. Bpel Paket ta.manajemenaplikasi 9. UserBean 10. UserLocal 11. User 12. CompanyBean 13. CompanyLocal 14. Company 15. Database Paket ta.processor 16. Processor 17. BPELController 18. CompanyController 19. UserController 20. Reporter 21. FunctionWebService
<<entity>> Sms +nomorHp +tanggal +perintah +key +value +idSms +Sms() +getNomorHp() +setNomorHp() +getTanggal() +setTanggal() +getPerintah() +setPerintah() +getKey() +setKey() +getValue() +setValue() +getIdSms() +setIdSms()
Nama Kelas Analisis SMSInterface SMS SMS SMS BPELInterface BPEL BPEL BPEL User User User Company Company Company Processor BPELController CompanyController UserController Reporter FunctionWebService
<<entity>> SMSBean +Sms +db +filter +sortBy +tabelName +sortOrder
<> SMSInterface +saveAndParseToDatabase() +readMessages()
+list() +delete() +getFilter() +setFilter() +getSortBy() +setSortBy() +getSortOrder() +setSortOrder() +getFilter() +modFilter() +getTabelName() +setTabelName()
Gambar IV.2. Diagram Kelas Paket smsreceiver
IV-29
4.1.3
Perancangan Representasi Persisten Kelas EntityBean
Dari kelas perancangan yang terdefinisi pada Tabel IV.1, dibutuhkan suatu representasi persisten untuk beberapa kelas yang terdapat pada paket smsreceiver, bpelreceiver dan manajemenaplikasi. Representasi persisten tersebut diwujudkan dalam bentuk tabel basis data. Suatu kelas tertentu akan dipetakan menjadi sebuah tabel basis data. Demikian pula keterhubungan antar dua kelas akan dipetakan menjadi sebuah tabel basis data.
Secara umum terdapat tiga kelompok tabel, yaitu: 1. Tabel yang dipakai untuk menyimpan semua sms yang diterima, 2. Tabel yang menyimpan semua bpel yang diterima, serta 3. Tabel untuk manajemen user. Sebagai hasil perancangan representasi persisten kelas EntityBean tersebut, diperoleh lima tabel yang digunakan. Tabel IV.2 memberikan gambaran umum tabel-tabel tersebut. Secara lebih detail, hasil perancangan representasi persisten kelas EntityBean dapat dilihat pada Lampiran A Subbab 4.1. Tabel IV.2. Representasi Persisten Kelas Entity No 1.
Nama Tabel sms
Atri but
Ti pe Data
Keterangan
id_sms company_ta bel moved nomor_hp tanggal perintah key value id_bpel tanggal nama_file keterangan status
Integer Varchar(50)
Primary Key -
Varchar(3) Varchar(20) Datetime Varchar(100) Varchar(100) Varchar(100) Integer Timestamp Varchar(200) text Integer
“Yes” atau “No” Primary Key 0 = not yet processed, 1 = processed Primary Key Foreign Key kolom ID company, Cascade Primary Key -
2.
bpel
3.
user
id_user username password nama role tabel id_company
Integer Varchar(50) Varchar(100) Varchar(100) Varchar(50) Varchar(50) Integer
4.
company
id_company nama alamat telp logo
Integer Varchar(200) Text Varchar(20) Varchar(200)
Kel as EntityBean Sms
Bpel
User
Company
IV-30 Tabel IV.3. Representasi Persisten Kelas Entity (lanjutan) No 5.
Nama Tabel sms_in
4.1.4
Atri but id process originator type encoding message_dat e receive_date text gateway_id Nama
Ti pe Data
Keterangan
Integer Integer Varchar(16) Char(1) Char(1) Datetime
Primary Key -
Datetime Varchar(100) Varchar(64) Varchar(20)
-
Kel as EntityBean SMSInterface
Perancangan Fungsi Pengolahan Data
Sesuai dengan hasil analisis pada subbab 3.3.5, fungsi-fungsi untuk pengolahan data dibangun dengan memanfaatkan elemen yang ada pada kelas FunctionWebService. Beberapa fungsi yang terdapat pada kelas tersebut dijadikan web service untuk digunakan oleh subsistem Business Process Generator. Dengan demikian, aplikasi akan memberikan informasi fungsi melalui web services.
Karena keterbatasan waktu untuk melakukan eksplorasi mengenai bagaimana caranya untuk menambahkan fungsi oleh ReportGetter secara real time agar bisa diproses oleh subsistem SMS Based Service ini dan kesulitan dalam mendefinisikan mekanisme yang generik, maka dibangun fungsi-fungsi dasar sesuai dengan fungsi-fungsi yang telah dijelaskan sebelumnya pada subbab 3.3.5 sebagai pengganti fungsi-fungsi yang dapat ditambahkan, dikurangi, maupun dimodifikasi oleh ReportGetter. Adapun fitur fungsi pengolahan data mencakup fungsi sumByValues, tambah, kurang, kali, bagi, dan sebagainya yang terdapat pada kelas FunctionWebService. Secara lebih detail, fitur fungsi pengolahan data terkait kelas FunctionWebService dijelaskan pada Tabel IV.4. Tabel IV.4. Fungsi-fungsi yang tersedi a pada kelas FunctionWebService No. 1.
Nama Fungsi sumValues
2.
sumValuesFromDate Interval
Input String tabel String perintah String key String tabel String perintah String key String dateStartString String dateEndString
Output Integer
Integer
Keterangan Fungsi untuk melakukan penju mlahan key pada satu record di tabel dan perintah tertentu. Fungsi untuk melakukan penju mlahan key pada satu record di tabel dan perintah tertentu serta berada sebelum dateEndString dan sesudah dateStartString.
IV-31 Tabel IV.5. Fungsi-fungsi yang tersedi a pada kelas FunctionWebService (lanjutan) No. 3.
Nama Fungsi sumByValues
4.
sumByValuesFromD ateInterval
5.
sumByCommand
6.
sumByCommandFro mDateInterval
7.
sumByAll
8.
sumByAllFromDateI nterval
9.
plus
10.
Input String tabel String perintah String key String tabel String perintah String key String dateStartString String dateEndString String tabel String perintah
Output List
List
List
String tabel String perintah String dateStartString String dateEndString String tabel
List
String tabel String dateStartString String dateEndString List a List b
List
minus
List a List b
List
11.
multiply
List
12.
divide
13.
write
14.
writeCompany
List a Integer constant List a Integer constant Company company List list Company company
List
List
List String
String
Keterangan Fungsi untuk mela kukan penju mlahan key dari setiap record di tabel dan perintah tertentu. Fungsi untuk melakukan penju mlahan key dari setiap record di tabel dan perintah tertentu serta berada sebelum dateEndString dan sesudah dateStartString.
Fungsi untuk melakukan listing hasil setiap penjumlahan key dari setiap record di tabel dan perintah tertentu. Fungsi untuk melakukan listing hasil setiap penjumlahan key dari setiap record di tabel dan perintah tertentu serta berada sebelum dateEndString dan sesudah dateStartString. Fungsi untuk melakukan listing hasil setiap penjumlahan key dari setiap record di tabel Fungsi untuk melakukan listing hasil setiap penjumlahan key dari setiap record di tabel tertentu serta berada sebelum dateEndString dan sesudah dateStartString. Fungsi untuk menambahkan hasil key antara 2 list dengan jumlah record yang sama Fungsi untuk mengurangi hasil key antara 2 list dengan jumlah record yang sama Fungsi untuk mengalikan hasil key pada list dengan konstanta Fungsi untuk memembagi has il key pada list dengan konstanta Fungsi yang menghasilkan String dari list untuk kemudian d iproses oleh library pembangkit laporan Fungsi yang menghasilkan String data perusahaan untuk kemudian diproses oleh library pembangkit laporan
Sebagai contoh, kode program dari sumByValues adalah sebagai berikut: @WebMethod(operationName = "sumByValues") public List sumByValues(@WebParam(name = "tabel") String tabel, @WebParam(name = "perintah") String perintah, @WebParam(name = "key") String key) { List hsAll = Collections.synchronizedList(new ArrayList()); Map hsItem = Collections.synchronizedMap(new HashMap()); hsItem.put("perintah", perintah); hsItem.put("key", key);
IV-32 hsItem.put("sum", String.valueOf(sumValues(tabel, perintah, key))); hsAll.add(hsItem); return hsAll; }
Berikut adalah kode program dari write: @WebMethod(operationName = "write") public String write(@WebParam(name = "company") Company company, @WebParam(name = "list") List list) { List<Map<String, String>> list1 = list; String result = "\n"; result += "\n"; result += this.writeCompany(company); if(list1.size()!=0){ for(int l=0;l<list1.size();l++){ result += "\t\n"; result += "\t\t"; result += list1.get(l).get("perintah"); result += "\n"; result += "\t\t"; result += list1.get(l).get("key"); result += "\n"; result += "\t\t<sum>"; result += list1.get(l).get("sum"); result += "\n"; result += "\t
\n"; } }else{ result += "No Record"; } result += ""; return result; }
Fungsi sumByValues akan menerima masukan berupa tabel perusahaan, perintah sms, dan kunci string dari produk perusahaan yang dimaksud. Keluaran dari fungsi ini adalah sebuah list yang dapat digunakan sebagai masukan pada fungsi write. Fungsi write akan menghasilkan file XML yang kemudian digunakan oleh library JasperReport untuk membangkitkan laporan. Fungsi ini dapat diakses oleh subsistem Business Process Generator melalui web service. Dalam hal teknis, web services dimanfaatkan secara eksternal (untuk digunakan oleh subsistem Business Process Generator), akan ditambahkan tabel pada parameter fungsi. Hal ini dimaksudkan untuk membedakan tabel basis data yang digunakan untuk setiap
IV-33 perusahaan. Selain itu, untuk mendukung interoperabilitas antar bahasa pemrograman yang berbeda, web services dibangun dengan menggunakan tipe data universal.
4.1.5
Perancangan Antarmuka
Sesuai dengan kebutuhan non fungsional yang telah dijelaskan pada subbab 3.2.3 dan 3.3.6, maka untuk tampilan antarmuka akan dibuat dengan konsep memudahkan pengguna sekaligus merasa nyaman, oleh karena itu akan digunakan icon-icon yang dapat memudahkan pengguna melakukan navigasi.
Secara umum tampilan antarmuka dari aplikasi Business Process Reporting Service subsistem SMS Based Service digambarkan pada Gambar IV.3. Banner berisi logo aplikasi. Menu berisi links ke halaman utama dari aplikasi yang sedang aktif. Isi halaman web berisi informasi atau form dari menu yang sedang aktif. Secara lengkap, rancangan antarmuka aplikasi Business Process Reporting Service subsistem SMS Based Service terdapat pada Lampiran A Subbab 4.5. Banner Informasi
Isi Halaman Web
Footer
Gambar IV.3. Rancangan Antarmuk a Generik
Gambar IV.4. Isi Hal aman l ogin
IV-34
Gambar IV.5. Isi Hal aman Melihat List Definisi Proses Pengolahan Data
Gambar IV.6. Isi Hal aman Melihat List Data Mentah
4.1.6
Deployment Diagram
Rencana implementasi aplikasi Business Process Reporting Service subsistem SMS Based Service digambarkan pada Gambar IV.7. Aplikasi diimplementasikan pada node Web server dan SMSServer. Client dari aplikasi dapat berupa web browser maupun aplikasi lain yang terhubung ke web server melalui HTTP sedangkan Business Process Generator akan memanggil web service dari aplikasi ini. Web server terhubung dengan database server melalui jaringan. Meskipun secara logik web server dan database server diimplementasikan pada node yang berbeda, secara fisik, kedua server tersebut dapat diimplementasikan pada node yang sama.
IV-35
Client-Web Browser HTTP
Web Server "BPRS subsistem SMS Based Service"
Network
Database Server
Web Service Network
Business Process Generator SMS Server
Gambar IV.7. Deployment Diagram Aplikasi Business Process Reporting Service subsistem SM S Based Service