Pembangunan Aplikasi Customer Relationship Management Berorientasi Servis Pada Platform Java Menggunakan Framework Apache Open For Business Arini Rusda1, Riyanarto Sarno2, Dwi Sunaryono3 1,2,3 Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember Kampus ITS Sukolilo Surabaya, 60111, Indonesia 1
[email protected],
[email protected] ,
[email protected]
Abstrak Customer Relationship Management(CRM) atau Manajemen Hubungan Pelanggan adalah sebuah strategi bisnis perusahaan yang memungkinkan perusahaan tersebut secara efektif bisa mengelola hubungan dengan para pelanggan. Prinsip dari CRM adalah mengambil data input berupa data dari semua pelanggan dan memberikan informasi yang sesuai kepada perusahaan berupa informasi tentang riwayat pelanggan, kebutuhan pasar dan isu lain seputar perkembangan pasar. Berangkat dari hal tersebut, dapat dibangun aplikasi CRM yang membantu perusahaan dalam menyimpan informasi pelanggan dan merekam seluruh kontak yang terjadi antara pelanggan dan perusahaan, serta membuat profil pelanggan untuk staf perusahaan yang memerlukan informasi pelanggan tersebut. Masalah yang diangkat dari tugas akhir ini adalah bagaimana mengembangkan aplikasi open source yang sudah ada agar dapat menangani proses bisnis yang ada pada pengimplementasian sistem CRM pada perusahaan manufaktur dan bagaimana mengintegrasikan perbedaan kerangka kerja yang digunakan antar aplikasi domain fungsi lainnya dengan menggunakan arsitektur SOA. Aplikasi ini merupakan pengembangan dari beberapa komponen aplikasi Apache Open For Business (OFBiz), yang dikenal sebagai aplikasi enterprise resource planning yang open source. Penggunaan arsitektur SOA pada tugas akhir ini dirancang dengan melakukan analisis SOAD. Dari hasil analisis perancangan tersebut arsitektur Model-View-Controller dari OFBiz dipetakan menjadi 5-tier sesuai hasil dari analisis SOAD sehingga terbentuk aplikasi CRM yang berorientasi service dan dapat berintegrasi dengan functional domain lain yang memakai framework berbeda yang dapat menyelesaikan permasalahan integrasi dalam sistem CRM. Pengembangan aplikasi dilakukan pada fitur pengelolaan keluhan pelanggan dan helpdesk perusahaan, analisa tren dan peramalan, dan pembentukan profil pelanggan. Pada analisa tren dan peramalan dilakukan plotting pola data penjualan perusahaan yang selanjutnya digunakan untuk data observasi untuk peramalan penjualan perusahaan di masa depan sehingga dapat membantu perusahaan
dalam mengambil keputusan pemasaran. Pada fitur pelaporan profil pelanggan terdapat data riwayat pembelian, keluhan, serta pendapatan perusahaan dari suatu pelanggan sehingga perusahaan dapat mengenali pelanggannya melalui behavior pelanggan tersebut. Aplikasi ini menghasilkan laporan berupa analisa pola tren dan peramalan penjualan, riwayat pembelian pelanggan, pendapatan perusahaan dari pelanggan, dan riwayat keluhan pelanggan yang dapat digunakan sebagai dasar pengambilan keputusan pemasaran oleh perusahaan. Dari hasil uji coba yang dilakukan, aplikasi ini telah berhasil menangani proses bisnis pada CRM dan terintegrasi dengan functional domain lain, yakni Sales, Inventory, dan Business Intelligence, yang dalam pengembangannya menggunakan framework Java Server Faces dan Pentaho. Kata kunci : CRM, Apache OFBiz, SOA, Web Service 1. Pendahuluan Customer Relationship Management (CRM) merupakan sebuah pendekatan baru dalam mengelola hubungan korporasi dan pelanggan pada level bisnis sehingga dapat memaksimumkan komunikasi, pemasaran melalui pengelolaan berbagai kontak yang berbeda dengan pelanggan. Pendekatan ini memungkinakn untuk mempertahankan pelanggan dan memberikan nilai tambah terus menerus pada pelanggan, selain juga memperoleh keuntungan yang berkelanjutan. Hal yang perlu dipahami adalah bahwa dari luar, pelanggan yang berinterkasi dengan perusahaan hanya memahami bisnis yang dilakukan oleh perusahaan sebagai satu entitas, tidak lebih; meskipun pelanggan juga berinteraksi dengan sejumlah pekerja yang berbeda peran dan departemennya. Semua itu tetap dianggap sebagai satu kesatuan. Dengan CRM, dukungan pada proses bisnis, informasi tentang pelanggan dan interaksinya dapat dimasukkan, disimpan, diakses oleh semua staf pada berbagai unit kerja dengan tujuan untuk meningkatkan layanan yang diberikan pada pelanggan, dan menggunakan informasi kontak pelanggan untuk target pemasaran. (Galihadi, 2009).
Masalah yang diangkat dari tugas akhir ini adalah bagaimana mengembangkan aplikasi open source yang sudah ada agar dapat menangani proses bisnis yang ada pada pengimplementasian sistem customer relationship management (CRM) pada perusahaan manufaktur dan bagaimana mengintegrasikan perbedaan framework yang digunakan antar aplikasi functional domain lainnya dengan menggunakan arsitektur SOA. Aplikasi open source yang digunakan pada tugas akhir ini adalah Apache Open For Business (OFBiz) yang dikhususkan pada modul CRM. Tugas akhir ini menambahkan beberapa fitur CRM yang belum ada pada OFBiz dan mengintegrasikannya dengan proses bisnis yang ada pada functional domain lain. Fitur yang ditambahkan akan dijelaskan pada subbab selanjutnya. Penggunaan arsitektur SOA pada tugas akhir ini dirancang dengan melakukan analisis SOAD. Dari hasil analisis perancangan tersebut dipetakan ke dalam arsitektur dari OFBiz sehingga terbentuk aplikasi CRM yang berorientasi service dan dapat berintegrasi dengan functional domain lain yang memakai framework berbeda yang dapat menyelesaikan permasalahan dalam sistem CRM. 2. Customer Relationship Management Customer Relationship Management mendukung suatu perusahaan untuk menyediakan pelayanan kepada pelanggan secara real time dengan menjalin hubungan dengan tiap pelanggan yang berharga melalui penggunaan informasi tentang pelanggan. Berdasarkan apa yang diketahui dari pelanggan, perusahaan dapat membuat variasi penawaran, pelayanan, program, pesan, dan media. Melalui sistem yang menerapkan Customer Relationship Management, perusahaan membentuk hubungan yang lebih dekat dengan pelanggan, dimana perusahaan dapat mengetahui kebutuhan pelanggan dan menyediakan pilihan produk atau layanan yang sesuai dengan permintaan mereka. Perusahaan dapat menyimpan informasi pelanggan dan merekam seluruh kontak yang terjadi antara pelanggan dan perusahaan, serta membuat profil pelanggan untuk staf perusahaan yang memerlukan informasi tentang pelanggan tersebut.Pada umumnya modul CRM meliputi tiga fungsionalitas yaitu sales force automation (SFA), marketing automation (MA), dan customer support(CS).
2.1.Sales Force Automation Otomatisasi armada penjualan (Sales Force Automation - SFA) mengelola berbagai aktivitas penjualan perusahaan. Proses-proses penjualan dapat diuraikan menjadi beberapa tahapan, misalnya menjaring prospek (lead generation), kualifikasi prospek (lead qualification), pembuatan proposal, dan realisasi penjualan. Proses-proses ini pada SFA dirangkul
menjadi opportunity management, contact manajement, pembuatan proposal, dan konfigurasi produk. Opportunity mangement biasanya memiliki fitur lead management (manajemen prospek) dan sales forecasting (estimasi skala penjualan di masa mendatang). (Butle, 2004). Pada tugas akhir ini, proses bisnis yang ditambahkan pada fungsionalitas SFA adalah sales trends and forecast. Pada proses bisnis ini dilakukan penganalisaaan terhadap pola data penjualan yang terjadi pada perusahaan, di mana data tersebut akan digunakan untuk memprediksikan skala penjualan perusahaan di masa akan datang. Hasil prediksi tadi bertujuan untuk membantu perusahaan dalam menentukan keputusan langkah apa yang dilakukan dalam pemasaran agar mencapai target. 2.2.Marketing Automation Otomatisasi pemasaran (marketing automation - MA) adalah pemanfaatan teknologi pada proses-proses pemasaran. MA menawarkan berbagai kemampuan sekaligus, antara lain segementasi konsumen dan manajemen kampanye promosi. (Butle, 2004). Pada tugas akhir ini, proses bisnis yang ditambahkan pada fungsionalitas MA adalah customer profiling. Pada proses bisnis ini dilakukan analisis mengenai perilaku pembelian pelanggan dari data penjualan perusahaan yang kemudian menghasilkan beberapa laporan, yakni laporan riwayat pembelian pelanggan, analisa tren pembelian pelanggan, dan riwayat permintaan pelanggan. Laporan tersebut juga digunakan perusahaan sebagai referensi dalam mengambil keputusan pemasaran. 2.3.Customer Support Customer Support atau sering dikatakan sebagai fungsi otomatisasi layanan bertujuan untuk memungkinkan perusahaan untuk menjalankan fungsi pealyanan pelanggan secara otomatis melalui antar muka seperti website perusahaan atau contact center yang dimiliki (Butle, 2004). Pada tugas akhir ini, proses bisnis yang ditambahkan pada fungsionalitas customer support adalah case and knowledgebase management. Pada proses bisnis ini, kegiatan yang dilakukan adalah pengarsipan permintaan pelanggan mengenai informasi terkait, keluhan pelanggan mengenai barang yang diterima hingga pengembaliannya (sales return), dan manajemen helpdesk untuk membantu staf customer support dalam menemukan jawaban dari pertanyaan umum yang sering diajukan pelanggan. Pengarsipan permintaan dan keluhan pelanggan akan menghasilkan laporan yang dapat dijadikan referensi untuk evaluasi kepuasan pelanggan mengenai kinerja perusahaan 3. Deskripsi umum perangkat lunak Pada struktur ERP, maka CRM akan banyak berhubungan dengan functional domain Sales, Inventory, dan Business Intelligence. CRM terlibat pada proses order-to-cash dan make-to-stock. Pada proses order-to-cash, CRM terlibat pada proses bisnis
m ERP
sales return yang ada pada functional domain Sales karena sales return juga dilaporkan dalam histori keluhan pelanggan yang ada pada functional domain Customer Support (CS) pada CRM sedangkan pada proses make-to-stock, CRM terlibat pada penentuan economic order quantity (EOQ) dari suatu item. EOQ digunakan oleh functional domain Inventory untuk menentukan limit stok untuk melakukan permintaan restock kepada functional domain Manufacturing. EOQ ini didapatkan berdasarkan pada hasil peramalan hasil penjualan item tersebut di masa lalu pada proses bisnis Sales & Market Forecasting yang ada pada functional domain Sales Force Automation (SFA). Selain itu, analisis tren penjualan yang terdapat pada proses bisnis Sales & Market Trends yang berada dalam functional domain SFA juga digunakan functional domain Business Intelligence (BI) untuk menghasilkan Key Performance Indicator (KPI) dari perusahaan. Berikut adalah gambaran posisi integrasi CRM dalam ERP tersebut : Customer Relationship Management 13. Sales Force Automation
14. Marketing Automation
ProvideSalesForecastByProduct
ProvideCustomerBuyingHistory ProvideCustomerGeographicalData
ProvideForecastRawMaterial ProvideOverallSalesTrendsByBranch
Visualisasi sales trends, merupakan fitur pemvisualisasian sales trends pada jangka waktu tertentu. Fitur ini digunakan untuk melihat perkembangan kemampuan penjualan yang dilakukan oleh perusahaan. 4. Sales forecasting, merupakan fitur peramalan nilai pendapatan sales di masa yang akan datang, dimana peramalan dilakukan dengan menggunakan metode exponential smoothing dengan menggunakan API dari OpenForecast 5. Reporting, merupakan pengembangan fitur pelaporan. Laporan yang diolah yakni laporan mengenai riwayat pembelian yang pernah dilakukan oleh penggan. Selain itu, pengembangan lainnya juga berupa pengimplementasian teknologi web service sehingga aplikasi ini dapat berintegrasi dengan functional domain lain. 4. Arsitektur Perangkat Lunak Pembangunan aplikasi ini merupakan pengembangan dari aplikasi open source yang sudah ada, sehingga untuk masalah arsitektur, aplikasi ini meggunakan arsitektur dari Apache OFBiz sebagai framework utama yang digunakan dalam pembangunan aplikasi ini, yakni sebagai berikut :
15. Customer Support PostCaseData
ProvideOverallSalesTrendsByProduct
Inventory
3.
Sales
Business Intelligence
Aplikasi CRM yang dibangun pada tugas akhir ini merupakan pengembangan komponen CRM pada framework open source Apache OFBiz yang sudah memiliki komponen CRM secara umum. Pengembangan yang dilakukan berupa : 1. Manajemen kasus keluhan pelanggan, merupakan fitur pencatatan kasus keluhan pelanggan yang masuk mengenai proses pelayanan ataupun kecacatan barang, di mana hal ini juga berhubungan dengan proses bisnis sales return dari functional domain Sales. 2. Manajemen knowledgebase, merupakan fitur help desk yang berisi informasi mengenai perusahaan, troubleshooting, manual instruksi, maupun jawaban dari frequently asked questions
Gambar 4. 1– Arsitektur framework Apache OFBiz
Desain arsitektur OFBiz menganut prinsip model-viewcontroller (MVC) di mana dari Gambar 3.5, data layer
sebagai model, user-interface sebagai view, dan logic sebagai controller. 1. Data layer pada OFBiz merepresentasikan model dari database. Terdapat entity engine yang bertanggung jawab pada layer ini, di mana entity engine inilah yang mengatur koneksi database, pencarian dan penyimpanan data. Engine ini menggunakan GenericDelegator dan GenericValue class yang ada pada java untuk berhubungan dengan database dan merepresentasikan data row yang dimasukkan ke dalam database. . 2. Logic layer pada OFBiz merepresentasikan logic, atau service yang menghubungkan user interface dengan database. Logic layer ini berfungsi sebagai controller pada arsitektur MVC, yang pada OFBiz dapat berada pada tiga tempat yang berbeda, tergantung cara yang digunakan dalam mendefinisikan service. Service pada OFBiz memiliki beberapa tipe seperti java, SOAP, simple, dan workflow, di mana setiap tipe memiliki handler masing-masing. 3. User interface layer pada OFBiz merepresentasikan komponen antarmuka OFBiz dengan user. Layer ini dikendalikan oleh screen engine dari OFBiz dalam menampilkan halaman. Jadi setiap halaman web yang ada direpresentasikan sebagai screen. Suatu halaman pada OFBiz terdiri dari berbagai macam komponen screen seperti header, footer, appheader, dan lainnya, jadi saat me-render suatu halaman, semua komponen ini dikombinasikan sesuai urutan bagaimana komponen tersebut didefinisikan. Screen engine OFBiz juga sudah mendukung HTML dan Freemarker Jika arsitektur OFBiz dipetakan sesuai dengan service portfolio (Sarno, Herdiyanti) dari prinsip SOAD, maka didapatkan susunan arsitektur 5-tier yang mengacu pada physical view dari service portfolio yang digunakan seperti pada gambar 4.2. Presentation layer akan ditangani oleh screen engine, service layer dan application service layer ditangani oleh service engine, sedangkan data model layer dan data access layer ditangani entity engine. Di mana Presentation layer berisi antar muka dengan pengguna aplikasi yang berfungsi sebagai media interaksi antara pengguna dengan sistem. Antar muka dari aplikasi ini akan dibangun dengan menggunakan screen engine bawaan dari OFBiz, di mana setiap halaman terdiri dari berbagai komponen widget-screen. Antarmuka pada screen engine dapat berupa screen-widget, formwidget, menu-widget,dan tree-widget. Screen engine akan me-render semua screen yang ada pada suatu halaman menjadi suatu format XHTML. Service layer berisi layanan-layanan yang terbagi menjadi tiga jenis, yakni internal service, library service, dan software service. Lapisan ini ditangani oleh service engine dari OFBiz yang dapat menggunakan teknologi Java,
Minilang, dan SOAP. Application service layer berisi logika alur bagaimana aplikasi berjalan. Lapisan ini juga ditangani oleh service engine dari OFBiz. Data access layer merupakan lapisan yang menyediakan akses penyimpanan data dalam database. Lapisan ini ditangani oleh entity engine OFBiz dengan menggunakan teknologi Java. Data model layer berisi model dari database. Pada OFBiz didefinisikan pada folder entitydef. Lapisan ini juga ditangani oleh entity engine dari OFBiz.
Gambar 4. 2 – Pemetaan arsitektur OFBiz terhadap SOAD
5. Perancangan Sistem Pada tugas akhir ini terdapat total 3 proses bisnis, yaitu sales trends and forecasting, customer profiling, dan case and issue management. 5.1. Sales trends and forecasting Proses bisnis Sales Trends & Forecasting bertujuan untuk melakukan overview mengenai penjualan dan pendapatan perusahaan dari masa lalu hingga masa kini. Proses bisnis ini juga berkaitan dengan functional domain Sales karena data – data yang ditinjau berasal dari functional domain tersebut. Data analisis tren berasal dari functional domain sales, di mana functional domain tersebut menyediakan data pendapatan penjualan sesuai input waktu yang menjadi masukan, data tersebut dijadikan input dari tren an dibuat plot time series-nya. Proses bisnis ini juga melakukan peramalan yang berhubungan dengan penjualan dan pendapatan suatu produk atau pada event tertentu Dari data tren tersebut dilakukan peramalan untuk dua bulan yang akan datang. Metode peramalan yang dilakukan adalah metode peramalan berdasarkan time series dengan menggunakan model Exponential Smoothing. Model ini digunakan karena model ini mendukung peramalan dengan tipe data yang memiliki pola data penjualan secara umum, yaitu memiliki pola time series. Pengimplementasian model ini dibantu dengan menggunakan API dari OpenForecast.
Proses bisnis ini akan menghasilkan service yang akan digunakan functional domain inventory untuk membantu dalam pengambilan keputusan dalam menentukan economic order quantity suatu item. Selain itu, proses bisnis ini juga menyediakan service yang dikonsumsi oleh functional domain Business Intelligence untuk diproses lebih lanjut. Kegiatan yang terjadi pada proses bisnis ini tergambar pada Gambar 5.1. Input trends requirements
Get sales data
Dari proses-proses bisnis yang disebutkan di atas, fitur yang terdapat pada functional domain MA adalah sebagai berikut : a. Laporan riwayat pembelian pelanggan b. Laporan tren pembelian pelanggan c. Laporan riwayat keluhan pelanggan Customer buying history «flow»
«Sub-business proc... 14.1.a. Rev iew customer's buying history
Start
«Sub-business proce... 14.1.b.Analyze customer buying trends
Start
«Sub-business ... 13.1.a. Rev iew sales data
«Sub-business ... 14.1.c. Rev iew case by customer history
«Sub-business process» 13.1.b. Plot sales trends data
A.01 Sales and Marketing Manager (from Stakeholder)
Show customer profile report
«Sub-business pr... 13.1.c. Forecast sales data A.01 Sales and Marketing Manager (from Stakeholder)
Plot forecast value Finish
«Sub-business proc... 14.1.d.Compose ustomer profile reports Finish Show customer buying trends report
Gambar 5. 1 – Diagram alur dari proses bisnis sales trends and forecasting
Dari proses bisnis yang ini, fitur yang terdapat pada functional domain SFA yang ada pada tugas akhir ini adalah sebagai berikut : a. Analisis tren pendapatan penjualan secara keseluruhan di suatu cabang pada jangka waktu tertentu, b. Analisis tren pendapatan penjualan setiap produk di suatu jangka waktu tertentu, c. Peramalan pendapatan perusahaan secara keseluruhan di suatu cabang pada masa yang akan datang berdasarkan data di masa lalu d. Peramalan pendapatan perusahaan untuk setiap produk di suatu cabang pada masa yang akan datang berdasarkan data di masa lalu 5.2. Customer profiling Proses bisnis customer profiling bertujuan untuk menampilkan laporan-laporan yang berkaitan dengan histori aktivitas yang dilakukan pelanggan, seperti pembelian, keluhan, atau pengembalian produk oleh pelanggan. Kegiatan pada proses bisnis ini digambarkan pada Gambar 5.2.
5.3. Customer support Proses bisnis ini case and knowledge management bertujuan untuk memudahkan pencatatan case yang berkaitan dengan pelanggan. Case di sini berupa keluhan dari pelanggan akan barang maupun jasa dari perusahaan. Proses bisnis ini berhubungan dengan functional domain Sales pada proses bisnis sales return yang memuat informasi mengenai kasus pengembalian produk. Selain itu, proses bisnis ini juga bertujuan untuk memudahkan staf pelayanan pelanggan untuk menyediakan helpdesk bagi pelanggan mengenai halhal yang berkaitan dengan perusahaan seperti informasi pelayanan dan hal-hal yang berkaitan dengan produk. Aktivitas yang terjadi dan stakeholeder yang terlibat pada proses bisnis case and knowledge management digambarkan pada Gambar 5.3. Dari proses-proses bisnis yang disebutkan di atas, fitur yang terdapat pada functional domain CS adalah sebagai berikut Gambar 5.2 –: Diagram alur dari proses bisnis customer profiling a. Manajemen keluhan pelanggan Gambar 5. 2 – Diagram alur dari proses bisnis customer profiling
b.
Help desk perusahaan yang berisi profil perusahaan, instruction manual, troubleshooting, dan frequently asked
Start
Issue request «flow» R.01 Sales Staff
Customer
(from Stakeholder)
(from Stakeholder)
«flow»
«Sub-business ... 15.1.a. Archiv e request as case
Customer Request
R.02 CS Staff (from Stakeholder)
yes Request for information?
«Sub-business ... 15.1.b. Search know ledgebase
Give the proper information
Finish
questions.
Gambar 5. 2 – Diagram alur dari proses bisnis case and knowledge management
6. Implementasi Pada tugas akhir ini implementasi arsitektur yang dilakukan mengikuti arsitektur dari framework Apacahe Open For Business (Apache OFBiz) yang menganut arsitektur model-view-controller (MVC) yang dipetakan ke dalam layer SOAD (Gambar 4.2.). Implementasi dilakukan pada environment sebagai berikut : • Database : MySQL RDBMS 5.1 • IDE : Eclipse Helios • Apache OFBiz Release 1076135 6.1. Implementasi Konfigurasi Database Entity engine yang ada pada framework OFBiz mendukung koneksi ke lebih dari satu database dengan tipe yang berbeda. Entity engine ini menyediakan prosedur yang bersifat generik untuk melakukan akses pada semua sumber data yang terdefinisi pada konfigurasi data source yang diperlukan tanpa perlu Gambar 5. 3 – Diagram alur dari proses bisnis case and knowledge mempertimbangkan koneksi database, lokasi dari data, management ataupun tipe dari data yang tersimpan.
Untuk melakukan koneksi ke database, maka definisi dari sumber data yang digunakan harus dikonfigurasikan terlebih dahulu. OFBiz secara default menggunakan Derby RDBMS sebagai data source. Pada OFBiz, konfigurasi data source berada pada file
entityengine.xml yang berada pada folder /framework/entity/config. Pada file ini didefinisikan konfigurasi mengenai koneksi, lokasi file helper, lokasi file pemetaan tipe data dari data source di mana dapat terdapat lebih dari satu definisi data source. Informasi mengenai pengonfigurasian dari data source pada OFBiz dapat dilihat dalam dokumentasi pada halaman http://ofbiz.apache.org/docs/entityconfig.html. Selain itu Pada file ini juga didefinisikan entity delegator. OFBiz menggunakan “entity delegator” untuk mengakses data source yang terdefinisi untuk melakukan CRUD. Delegator ini bekerja seperti objek yang mendelegasikan pekerjaan pada objek lain (delegation pattern), yakni menentukan data source mana yang digunakan dalam mengakses suatu entity. Tugas akhir ini menggunakan dua koneksi database yakni database Oracle ERP2011 dan database MySql OFBiz, maka terdapat dua definisi data source pada entityengine.xml (Gambar 6.1.)
. . . . . .
6.2. Implementasi domain model layer Gambar 6.1 – Konfigurasi data source pada entityengine.xml Pada framework OFBiz, rancangan fisik data model yang digunakan pada aplikasi juga di-handle oleh entity engine. Setiap model yang digunakan harus dipetakan menjadi entity dalam suatu file entitymodel.xml. Jika aplikasi yang digunakan menggunakan dua data source yang berbeda, maka hubungan kepemilikan suatu entity dengan suatu data source diatur dalam konfigurasi entity group yang didefinisikan pada file entitygroup.xml. Informasi mengenai pendefinisian model pada entity engine dapat dilihat melalui halaman http://ofbiz.apache.org/docs/entity.html. File entitygroup.xml mendefinisikan entity mana saja yang merupakan anggota dari suatu entity group. File ini berada pada setiap folder /entitydef masing-
masing komponen. Secara default, entity engine OFBiz menganggap semua entity yang terdefinisi dalam entitymodel.xml merupakan anggota dari org.ofbiz. Namun pada implementasi tugas akhir, karena menggunakan dua data source, maka didefinisikan tambahan entity group yang lain, yakni org.ofbiz.erp2011. (Gambar 6.2.) ? e s o .0 e cod g U 8 ? <entitygroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/entitygroup.x <entity-group <entity-group <entity-group <entity-group <entity-group
entity="IvUom" group="org.ofbiz.erp2011"/> entity="IvItems" group="org.ofbiz.erp2011"/> entity="IvTypeitem" group="org.ofbiz.erp2011"/> entity="CbCurrency" group="org.ofbiz.erp2011"/> entity="IntBranch" group="org.ofbiz.erp2011"/>
Gambar 6. 2 –Definisi entitygroup pada entitygroup.xml
Sedangkan pada file entitymodel.xml mendefiniskan pemetaan model data yang digunakan dalam aplikasi. File ini berada juga berada di dalam folder /entitydef masing-masing komponen. Terdapat dua tipe model entity yakni entity biasa dan view-entity. View-entity merupakan penggunaan kembali entity-entity yang sudah ada yang saling berelasi (join entity). Pada pemodelan entity, didefinisikan nama entity, field, primary key, dan relasi-relasi yang terdapat pada entity tersebut sesuai dengan model data pada database. Sedangkan pada pemodelan view-entity, didefinisikan entity mana saja yang terlibat, field mana saja yang diperhatikan, dan hubungan antar entity. Gambar 6.3. merupakan salah satu implementasi pemodelan entity. 6.3. Implementasi data access layer Implementasi data access pada OFBiz ditangani oleh entity engine dengan menggunakan pattern delegator yang terdapat pada komponen entity. Pengaksesan database dilakukan oleh class GenericDelegator.java yang akan mendelegasikan pengaksesan data sesuai dengan konfigurasi pada file entityengine.xml. Setiap entity pada database dianggap sebagai objek generik yang didefinisikan pada class GenericEntity.java dan setiap baris data pada entity didefinisikan sebagai objek generik pada GenericValue.java
6.4. Implementasi Application Service Layer Application service layer berisi logika yang menjadi penghubung antara antarmuka aplikasi dengan lapisan data access. Lapisan ini pada OFBiz ditangani oleh service engine yang dapat berupa class .java, .groovy, beanshell script, atau minilang script di mana ugas akhir ini menggunakan pengimplementasian dengan java dan minilang. Pada OFBiz, setiap service yang berhubungan dengan antarmuka harus didefinisikan pada file services.xml. Setiap komponen di OFBiz biasanya memiliki pendefinisian service tersendiri. Pada file services.xml didefinisikan tipe, lokasi, operasi mana yang digunakan, dan parameter yang terlibat dalam service tersebut. Gambar 6.4. menunjukkan salah satu konfigurasi services.xml. Gambar 6.3 Presentation – Konfigurasi data Layer model pada entitymodel.xml 6.5. Implementasi Presentation layer pada OFBiz ditangani oleh screen engine yang terdiri dari screen, form, dan menu widget yang berbentuk file xml. Selain itu OFBiz juga dapat merender file freemarker template yang berbentuk .ftl untuk merender html code, jsp, atau javascript .
Screen widget merupakan elemen antar muka paling mendasar pada element view pada arsitektur MVC OFBiz. Semua antar-muka pada OFBiz dimuat pada <service engine="java" name="ProvideCustomerList" export="true" location="org.ofbiz.master.MasterServices" invoke="getCustomerList">
<service engine="simple" name="createKnowledgebaseSimple" default-entityname="Knowledgebase" location="component://cs/script/org/ofbiz/cs/knbs/KnowledgebaseServices.xml" invoke="createKnowledgebase"> <description>Create a knowledgebase
suatu screen Gambar yang 6.didefinisikan oleh screen widget. 4 Salah satu pendefinisian OFBiz services pada Pengimplementasian screen widget ditandai dengan tag services.xml xml <screen>. Form widget merupakan elemen antar muka yang memuat konten form html yang berisi kontrol submit terhadap service yang ada. <entitymodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Pengimplementasian form widget ditandai xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/entitymodel.xsd"> Entity of an Open For Business Project Component