• Tidak ada hasil yang ditemukan

BAB IV PERANCANGAN. 4.1 Perancangan Batasan Perancangan IV-25

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB IV PERANCANGAN. 4.1 Perancangan Batasan Perancangan IV-25"

Copied!
11
0
0

Teks penuh

(1)

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

(2)

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

(3)

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 <<library>>

Gambar IV.1. Diagram Paket Perancangan Busine ss 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.

(4)

Tabel IV.1. Kelas Perancangan Aplikasi Business Process Reporting Service subsistem SMS Based

Service

No. Nama Kelas Perancangan Nama Kelas Analisis

Paket ta.smsreceiver 1. SMSInterface SMSInterface 2. SMSBean SMS 3. SMSLocal SMS 4. Sms SMS Paket ta.bpelreceiver 5. BPELInterface BPELInterface 6. BPELBean BPEL 7. BPELLocal BPEL 8. Bpel BPEL Paket ta.manajemenaplikasi 9. UserBean User 10. UserLocal User 11. User User 12. CompanyBean Company 13. CompanyLocal Company 14. Company Company 15. Database - Paket ta.processor 16. Processor Processor 17. BPELController BPELController 18. CompanyController CompanyController 19. UserController UserController 20. Reporter Reporter 21. FunctionWebService FunctionWebService Sms <<entity>> +nomorHp +tanggal +perintah +key +value +idSms +Sms() +getNomorHp() +setNomorHp() +getTanggal() +setTanggal() +getPerintah() +setPerintah() +getKey() +setKey() +getValue() +setValue() +getIdSms() +setIdSms() SMSBean <<entity>> +Sms +db +filter +sortBy +tabelName +sortOrder +list() +delete() +getFilter() +setFilter() +getSortBy() +setSortBy() +getSortOrder() +setSortOrder() +getFilter() +modFilter() +getTabelName() +setTabelName() SMSInterface <<boundary>> +saveAndParseToDatabase() +readMessages()

(5)

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. Re presentasi Persisten Kelas Entity

No Nama Tabel Atri but Ti pe Data Ke terangan Kel as

EntityBean

1. sms id_sms Integer Primary Key Sms

company_ta bel

Varchar(50) -

moved Varchar(3) “Yes” atau “No”

nomor_hp Varchar(20) -

tanggal Datetime -

perintah Varchar(100) -

k ey Varchar(100) -

value Varchar(100) -

2. bpel id_bpel Integer Primary Key Bpel

tanggal Timestamp -

nama_file Varchar(200) -

keterangan text -

status Integer 0 = not yet processed, 1 =

processed

3. user id_user Integer Primary Key User

username Varchar(50) -

password Varchar(100) -

nama Varchar(100) -

role Varchar(50) -

tabel Varchar(50) -

id_company Integer Foreign Key kolom ID

company, Cascade

4. company id_company Integer Primary Key Company

nama Varchar(200) -

ala mat Te xt -

telp Varchar(20) -

(6)

Tabel IV.3. Re presentasi Persisten Kelas Entity (lanjutan)

No Nama Tabel Atri but Ti pe Data Ke terangan Kel as

EntityBean

5. sms_in id Integer Primary Key SMSInterface

process Integer - originator Varchar(16) - type Char(1) - encoding Char(1) - message_dat e Datetime - receive_date Datetime - text Varchar(100) - gateway_id Varchar(64) - Na ma Varchar(20) -

4.1.4 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. Nama Fungsi Input Output Ke terangan

1. sumValues String tabel

String perintah String k ey

Integer Fungsi untuk mela kukan penju mlahan

k ey pada satu record di tabel dan perintah tertentu. 2. sumValuesFromDate Interval String tabel String perintah String k ey String dateStartString String dateEndString

Integer Fungsi untuk mela kukan penju mlahan

k ey pada satu record di tabel dan perintah tertentu serta berada sebelum dateEndString dan sesudah

(7)

Tabel IV.5. Fungsi-fungsi yang tersedi a pada kelas FunctionWebService (lanjutan)

No. Nama Fungsi Input Output Ke terangan

3. sumByValues String tabel

String perintah String k ey

List Fungsi untuk mela kukan penju mlahan

k ey dari setiap record di tabel dan perintah tertentu. 4. sumByValuesFromD ateInterval String tabel String perintah String k ey String dateStartString String dateEndString

List Fungsi untuk mela kukan penju mlahan

k ey dari setiap record di tabel dan perintah tertentu serta berada sebelum dateEndString dan sesudah

dateStartString.

5. sumByCommand String tabel

String perintah

List Fungsi untuk mela kukan listing hasil

setiap penjumlahan k ey dari setiap record di tabel dan perintah tertentu. 6. sumByCommandFro mDateInterval String tabel String perintah String dateStartString String dateEndString

List Fungsi untuk mela kukan listing hasil

setiap penjumlahan k ey dari setiap record di tabel dan perintah tertentu serta berada sebelum dateEndString dan sesudah dateStartString.

7. sumByAll String tabel List Fungsi untuk mela kukan listing hasil

setiap penjumlahan k ey dari setiap record di tabel 8. sumByAllFromDateI nterval String tabel String dateStartString String dateEndString

List Fungsi untuk mela kukan lis ting hasil

setiap penjumlahan k ey dari setiap record di tabel tertentu serta berada sebelum dateEndString dan sesudah dateStartString.

9. plus List a

List b

List Fungsi untuk mena mbahkan hasil k ey

antara 2 list dengan jumlah record yang sama

10. minus List a

List b

List Fungsi untuk mengurangi hasil k ey

antara 2 list dengan jumlah record yang sama

11. multiply List a

Integer constant

List Fungsi untuk mengalikan hasil k ey

pada list dengan konstanta

12. divide List a

Integer constant

List Fungsi untuk me me mbagi has il k ey

pada list dengan konstanta

13. write Company

company List list

String Fungsi yang menghasilkan String dari

list untuk ke mudian d iproses oleh library pembangkit laporan

14. writeCompany Company

company

String Fungsi yang menghasilkan String data

perusahaan untuk ke mudian 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);

(8)

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 = "<?xml version=\"1.0\"?>\n"; result += "<result>\n"; result += this.writeCompany(company); if(list1.size()!=0){ for(int l=0;l<list1.size();l++){ result += "\t<row>\n"; result += "\t\t<perintah>"; result += list1.get(l).get("perintah"); result += "</perintah>\n"; result += "\t\t<key>"; result += list1.get(l).get("key"); result += "</key>\n"; result += "\t\t<sum>"; result += list1.get(l).get("sum"); result += "</sum>\n"; result += "\t</row>\n"; } }else{

result += "No Record"; }

result += "</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

(9)

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.

Gambar IV.3. Rancangan Antar muk a Ge nerik

Gambar IV.4. Isi Hal aman l ogin Banner

Informasi

Isi Halaman Web

(10)

Gambar IV.5. Isi Hal aman Melihat List De finisi 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.

(11)

Client-Web Browser

Business Process Generator

Web Server "BPRS subsistem SMS Based Service" Database Server

SMS Server

HTTP

Web Service

Network

Network

Gambar IV.7. De ployment Diagr am Aplikasi Business Process Reporting Service subsistem SM S

Gambar

Gambar  IV.1. Diagram Paket Perancangan Busine ss Process Reporting Service subsistem SM S  Based Service
Tabel IV.1. Kelas Perancangan Aplikasi Business Process Reporting Service subsistem SMS Based  Service
Tabel IV.2. Re presentasi Persisten Kelas Entity
Tabel IV.3. Re presentasi Persisten Kelas Entity (lanjutan)
+5

Referensi

Dokumen terkait

Bahan organik juga menyediakan hara makro dan mikro yang dapat meningkatkan kapasitas tukar kation (KTK) tanah, dan dapat bereaksi dengan ion logam untuk membentuk senyawa kompleks

Rumusan Ibn Khaldun mengenai tujuan pendidikan adalah untuk: (1) Memberikan kesempatan kepada pikiran untuk aktif dan bekerja, karena aktivitas ini sangat penting bagi

Asumsi peneliti terdapatnya hubungan antara faktor predisposisi dengan kekambuhan gangguan jiwa disebabkan antara lain karena faktor predisposisi pencetus akan terjadinya

Manajer harus sangat berhati – hati dalam pengambilan keputusan pendanaan, sebab jumlah hutang yang semakin tinggi akan mengakibatkan financial distress yang

Uji hedonik untuk menilai tingkat kesukaan produk dilakukan pada panelis tidak terlatih sebanyak 60 orang terhadap parameter uji hedonik meliputi warna, aroma, rasa,

Hal inilah yang menjadikan tari Sema sebagai jalan untuk bertarekat dalam Tarekat Maulawiyah (Kartanegara dalam Susanti, 2005 : 5). Di Indonesia kini sudah mulai

The purpose of this research is to study the effect of nickel and cobalt as trace metals on digestion performance and biogas produced from the fermentation of palm oil

Indek harga konsumen adalah ukuran statistik yang dapat menunjukkan perubahan-perubahan yang terjadi pada eceran barang dan jasa yang diminta oleh konsumen dari waktu ke waktu..