Perancangan dengan Menggunakan MVC pattern Perancangan sistem dilakukan berdasarkan hasil perumusan masalah. Perancangan sistem ERP yang berorientasi objek dan menggunakan MVC pattern ini dilakukan secara terpisah terhadap model, view, dan controller. Perancangan dilakukan menggunakan notasi UML yang terdiri atas class diagram, use case diagram, dan sequence diagram. Implementasi dengan Menggunakan MVC pattern Implementasi terhadap sistem ini dilakukan dengan menggunakan MVC pattern, sehingga implementasi terhadap model, view, dan controller dilakukan secara terpisah. Framework yang digunakan adalah JSF framework dan Hibernate framework. Lingkungan implementasi yang digunakan adalah sebagai berikut:
Sistem ERP klasik tidak bisa berinteraksi dengan customer, supplier, dan partner lainnya. Sistem ERP klasik hanya fokus pada perusahaan tunggal Sistem ERP klasik menggunakan data dan proses yang kaku. Menurut Wang & Nah (2001), teknologi web telah menyediakan jembatan antara perusahaan dan rekan bisnis sehingga membuat e-commerce menjadi lebih mudah, dan e-commerce membuat sistem ERP menjadi transparan. Oleh karena itu, perusahaan saat ini memusatkan perhatian terhadap bisnis yang menggunakan Internet dan teknologi berbasis web. Pada penelitian ini dilakukan beberapa penyesuaian terhadap sistem ERP berdasarkan hasil analisis paper yaitu: Penambahan fungsi e-commerce
Perangkat Lunak: Windows Vista Premium, Java EE 5, MySQL 5.1, Netbeans 6.0, GlasssFish V2, Mozilla Firefox 2.0, dan Internet Explorer 7.
Pengembangan sistem ERP menggunakan konsep berorientasi objek dan framework sehingga memudahkan penambahan fungsi-fungsi baru
Perangkat Keras: Intel Core 2 Duo 2 Ghz, RAM 1 GB, harddisk 250 GB, keyboard, mouse, dan monitor.
Adanya interaksi dengan customer dan supplier 2 Deskripsi Umum Sistem
Pengujian Sistem Pengujian terhadap sistem menggunakan metode black-box.
dilakukan
HASIL DAN PEMBAHASAN Perumusan Masalah Pada tahap ini dilakukan analisis berbagai kebutuhan terhadap sistem ini. Hasil analisis pada tahap ini antara lain: 1 Analisis paper Berdasarkan paper yang ditulis oleh Luttighuis & Biemans terdapat beberapa karakteristik sistem ERP klasik yaitu: ERP klasik tidak lengkap, fungsi-fungsi yang terdapat hanya melibatkan perencanaan internal perusahaan. Setiap modul pada ERP klasik saling terkait satu sama lain, sehingga sulit untuk dikonfigurasi ulang atau ditambahkan.
Sistem ERP ini merupakan sebuah sistem yang terintegrasi dan berbasis web. Sistem yang dikembangkan pada penelitian ini terdiri dari tiga modul utama yaitu: a Modul pembelian Modul ini merupakan modul yang mengatur pengadaan barang dari supplier hingga barang tersebut diterima dan disimpan dalam gudang. b Modul penjualan Modul ini merupakan modul yang melayani transaksi on-line dengan customer. Dalam hal ini customer melakukan pemesanan barang melalui sistem dan kemudian sistem melakukan pengaturan terhadap pemesanan dan pengiriman barang hingga sampai ke tangan customer. c Modul akuntansi Modul ini merupakan modul yang mengatur laporan-laporan keuangan dari perusahaan. Laporan tersebut terdiri dari
4
account receivable, account jurnal, dan general ledger.
payable,
3 Analisis Kebutuhan Pengguna Kebutuhan pengguna terhadap aplikasi ini yaitu: Terdapat fungsi untuk melakukan autentikasi pengguna. Sehingga hanya pengguna yang berhak saja yang dapat mengakses sistem. Terdapat fungsi yang mengakomodasi penjualan barang secara on-line yang bisa diakses oleh pembeli. Terdapat fungsi yang mengakomodasi pembelian barang secara on-line. Terdapat fungsi untuk mengatur inventory. Fungsi ini tujuannya untuk menambahkan data barang yang baru dibeli, dan melakukan pemantauan terhadap jumlah barang yang dimiliki. Terdapat fungsi untuk mengatur account. Fungsi ini digunakan untuk menyimpan data kode akun dari perusahaan. Kode akun ini akan digunakan dalam setiap transaksi perusahaan. Terdapat fungsi untuk mengatur keuangan. Fungsi ini terdiri dari penerimaan pembayaran dari pembeli dan pembayaran yang dilakukan perusahaan kepada penjual (supplier). Terdapat fungsi general ledger. Fungsi ini mengatur akuntansi keuangan dari perusahaan yang terdiri dari jurnal dan posting jurnal ke buku besar. Pengguna dari sistem ini terdiri atas customer, supplier, warehouse manager, purchase manager, payment manager, delivery service, accountant, dan administrator. Pengembangan sistem ini dibagi menjadi tiga bagian yaitu Dian Indah Savitri pada bagian modul pembelian dan membahas permasalahan Object Relational Mapping. Rhamdani mengembangkan modul penjualan dan membahas software metrics. Sedangkan pada bagian penelitian ini dilakukan pengembangan modul akuntansi dan pembahasan pengembangan sistem. Hasil analisis sistem dan kebutuhan pengguna yang lebih detail dapat dilihat pada use case diagram pada Lampiran 1 dan use case textual pada Lampiran 2.
4 Analisis Kebutuhan Sistem Sistem ini memiliki beberapa karakteristik berikut: Perancangan yang terdiri atas beberapa modul bisnis berbeda seperti keuangan, manufacturing, akuntansi, distribusi, dan sebagainya. Menggunakan Database Management System (DBMS) yang terpusat. Modul-modul tersebut terintegrasi dan menyediakan aliran informasi antar modul yang meningkatkan transparansi operasional melalui antarmuka yang baku. Fleksibel dan memberikan praktik bisnis terbaik Menggunakan internet untuk mengakses sistem. Hasil analisis kebutuhan sistem dapat dilihat pada fungsi kebutuhan sistem pada Lampiran 3. Perancangan dengan Menggunakan MVC pattern Aplikasi yang berskala enterprise seperti ritel ERP dikembangkan dengan pendekatan berbasis objek menggunakan three-tierarchitecture yaitu lapisan presentasi, lapisan aplikasi, dan lapisan basis data (Rashid et al. 2002). Pada penelitian ini arsitektur tersebut diakomodasi oleh Java EE dengan konsep MVC (Model, View, dan Controller). Konsep MVC memisahkan kode untuk tampilan dan proses bisnisnya. Bagian proses bisnis berisi tugas-tugas validasi, workflow, dan manajemen basis data. Gambar 3 merupakan diagram pemetaan dari three-tier-architecture ke dalam MVC pattern
Gambar 3 Pemetaan three-tierarchitecture menjadi MVC pattern. Pada tahap ini diperoleh hasil rancangan aplikasi ini yang meliputi:
5
1 Perancangan Model Pada perancangan sistem menggunakan MVC pattern, model berisi semua proses bisnis. Sistem ERP ini dirancang menggunakan sebuah basis data terpusat yang diakses oleh ketiga modul utama yaitu pembelian, penjualan, dan akuntansi. Sistem ini dikembangkan menggunakan konsep berorientasi objek, sedangkan basis data yang digunakan adalah basis data yang menggunakan konsep relasional. Berdasarkan hasil analisis yang dilakukan oleh Savitri (2008) terdapat ketidaksesuaian antara basis data relasional yang digunakan dan aplikasi yang dikembangkan dengan pendekatan berorientasi objek. Ketidaksesuaian tersebut antara lain meliputi aspek granularity, identitas, asosiasi, dan navigasi data. Untuk mengatasi masalah ketidaksesuaian ini Savitri (2008) menerapkan Object Relational Mapping dalam pemetaan antara objek dan basis data. Perancangan model sistem ini dilakukan dengan membuat class diagram yang merepresentasikan domain model untuk setiap tabel. Hasil dari perancangan model dapat dilihat pada class diagram pada Gambar 4.
menginisialisasi nilai kepada setiap atribut dan untuk mendapatkan nilai tersebut. Setiap class memiliki relasi antar class. Sebagai contoh GLJournal dan GLJournalDetail memiliki hubungan asosiasi, setiap GLJournalDetail memiliki satu GLJournal. Hubungan ini menggambarkan relasi antar tabel GL_Journal dan GL_Journal_detail pada basis data. Keseluruhan class diagram dapat dilihat pada Lampiran 4. 2 Perancangan View Pada tahap ini dilakukan perancangan terhadap antarmuka sistem. Perancangan antarmuka ini dilakukan dengan mendefinisikan template antarmuka. Selanjutnya dilakukan penambahan komponen antarmuka pada setiap halaman sesuai dengan kebutuhan. Hal ini bertujuan menghindari perulangan bagian view yang bersifat dekorasi seperti header, menu, dan footer. Dengan demikian secara umum ketiga modul utama dari sistem ini memiliki tampilan yang sama. 3 Perancangan Controller Pada perancangan controller dilakukan pendefinisian bagaimana interaksi antara antarmuka dengan input dari user. Perancangan controller digambarkan menggunakan sequence diagram. Sequence diagram menggambarkan interaksi antara actor dengan objek dari sistem berupa input yang diberikan oleh actor dan objek dan output yang diberikan kepada pengguna. Beberapa contoh perancangan controller dari aplikasi ini dapat dilihat pada Lampiran 5. Gambar 5 merupakan salah satu sequence diagram yaitu pada proses melihat journal yang dilakukan oleh seorang accountant.
Gambar 4 Class diagram ERP pada modul general ledger Class diagram pada Gambar 4 merupakan contoh dari beberapa class diagram yang dihasilkan. Setiap class memiliki atribut yang akan menjadi field pada tabel basis data. Contohnya pada GeneralLedgerAccount atribut id, accCode, accountDescription, accountStatus, createDate, dan updateDate akan menjadi field pada tabel gl_account. Kemudian pada setiap class dibuat method getter dan setter untuk
Gambar 5 Sequence diagram untuk proses melihat list journal.
6
Pada sequence diagram tersebut digambarkan accountant yang merupakan actor mengakses halaman web dan masuk ke halaman GLJournal.xhtml untuk melihat data journal. Halaman ini memanggil controller untuk menampilkan data journal. Controller kemudian memanggil service untuk mendapatkan data journal. Service lalu mengirimkan perintah kepada DAO (Data Access Object) untuk mendapatkan data yang dimaksud dan akan mengembalikan semua object journal. Dengan demikian pada akhir proses ini accountant bisa melihat data journal yang disajikan dalam bentuk tabel. Implementasi dengan Menggunakan MVC pattern Pada tahap ini dilakukan pengimplementasian sistem sesuai dengan hasil perancangan pada tahap sebelumnya yang menggunakan MVC pattern. Pengembangan aplikasi ini dilakukan menggunakan JavaServer Faces (JSF) yaitu sebuah web framework yang berbasis Java. JSF merupakan component-based MVC framework di mana setiap komponen dalam halaman web seperti hyperlink, label, text box, tombol, dan lain-lain dapat dipetakan ke dalam suatu metode dalam kelas tertentu. Arsitektur dari implementasi MVC pattern dengan menggunakan JSF dapat dilihat pada Gambar 6.
@Entity @Table(name="GL_journal") public class GLJournal implements java.io.Serializable { @Id @GeneratedValue (strategy=GenerationType.AUTO) private Long id; @Column(name="journal_code) private String journalCode; @Column(name="total") private Double total; @Column(name = "create_date",updatable=false) @Temporal (javax.persistence.TemporalType.DATE) private Date createDate; //getter & setter method }
Gambar 7 GLJournal.java.
Class di atas bernama GLJournal.java. Class ini menghasilkan sebuah tabel yaitu GL_journal yang bisa dilihat pada Tabel 1. Tabel 1 Deskripsi tabel GL_journal Nama kolom
Tipe Data
Id
BIGINT
Journal_code
VARCHAR
Total
DOUBLE
Create_date
DATE
Not Null
Auto increment
Ya
Ya
2 Implementasi View View terdiri dari beberapa komponen yaitu: a Komponen layout yang terdiri dari tabel, grid panel, group panel, layout panel, breadcrumbs, page separator, dan lainlain. b Komponen input yang terdiri dari text field, text area, password field, drop down list, list box, radio button, checkbox, calendar, dan file upload. c Komponen output yang terdiri dari text, message, dan image
Gambar 6 Arsitektur MVC menggunakan JSF (Jacobi & Fallows 2006). 1 Implementasi Model Pengimplementasian dari ORM ini dilakukan menggunakan Hibernate framework. Hasil dari implementasi model adalah sebuah basis data yang merupakan output dari sebuah class. Model yang digunakan pada aplikasi ini merupakan hasil penelitian Savitri (2008). Gambar 7 merupakan salah satu contoh class.
d Komponen non-visual yang terdiri dari hidden field dan anchor. e Komponen action dan link yang terdiri dari button, hyperlink, dan tab. Implementasi view pada aplikasi ERP ini menggunakan Facelets. Pembuatan view menggunakan dua komponen JavaServer Faces yaitu RichFaces dan Tomahawk. Implementasi template dari sistem ERP ini dapat dilihat pada Gambar 8 yang merupakan isi dari template.xhtml.
7
1 2 3 4 11
12 13 14 15
16 17
29 30 37 38
Gambar 8 Implementasi facelets templating. Pada template di atas didefinisikan tampilan dari antarmuka secara umum yang terdiri atas header pada baris enam hingga sembilan, toolbar pada baris sebelas hingga lima belas, sidebar pada baris dua puluh tiga hingga dua puluh enam, dan footer pada baris tiga puluh satu hingga tiga puluh lima. Template ini digunakan pada setiap halaman dengan melakukan penambahan content sesuai dengan kebutuhan masing-masing. Gambar 9 merupakan implementasi kode dari halaman. Kode ini hanya memasukkan link dari template seperti pada baris dua, tidak membutuhkan lagi pendefinisian ulang terhadap toolbar, header, dan footer.
1 2
3 4 WELCOME
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Gambar 9 Implementasi halaman. 3 Implementasi Controller JSF memiliki servlet yang bernama FacesServlet yang bertugas sebagai front controller untuk menerima seluruh request dari pengguna. Ketika menerima request, FacesServlet akan membaca file konfigurasi JSF dalam bentuk XML dan action-handler atau even-handling yang akan ada di dalam managed bean. Seluruh konfigurasi controller ada dalam file faces-config.xml. Gambar 10 merupakan potongan kode dari file faces-config.xml. Halaman ini mendefinisikan managed bean, validator, dan navigasi halaman. <managed-bean> yang didefinisikan pada baris pertama hingga sembilan berfungsi untuk menyimpan atau menampilkan data dari dan ke UI component. Pada baris sepuluh hingga tiga belas didefinisikan
yang melakukan validasi terhadap input yang dimasukkan pengguna. Pada contoh di bawah didefinisikan sebuah validator yang memvalidasi input yang berupa alamat email. Pada bagian blok terakhir kode yaitu pada baris empat belas hingga dua puluh satu terdapat yang mengatur perpindahan dari satu halaman ke halaman lain.
8
1 <managed-bean> 2 <managed-bean-name> glJournal 3 <managed-bean-class> ilkom.erp.web.controller.generalLed ger.GLJournalController 4 <managed-bean-scope>request 5 <managed-property> 6 <property-name> generalLedgerService 7 #{module generalLedgerService} 8 9 10 11 emailValidator 12 ilkom.erp.web.validator.EmailValida tor 13 14 15 /pages/generalLedger/ GLJournalDetail.xhtml 16 17 cancel 18 /pages/generalLedger/ GLJournal.xhtml 19 20 21
Gambar 10 faces-config.xml. Managed bean akan memanggil class controller untuk melakukan eksekusi terhadap request yang dikirimkan. Gambar 11 merupakan salah satu contoh controller. Class ini menerima request dari pengguna untuk menampilkan objek journals.
public class GLJournalController{ private GeneralLedgerService generalLedgerService; private List journals; @PostConstruct public void initbean(){ journals = generalLedgerService.getAllGLJournal(); } public void setGeneralLedgerService (GeneralLedgerService generalLedgerService) { this.generalLedgerService = generalLedgerService; } public List getJournals() { return journals; } }
Gambar 11 GLJournalController.java. Pengujian Pengujian terhadap sistem yang dikembangkan dilakukan menggunakan blackbox testing. Pengujian dilakukan terhadap proses dari setiap modul baik penjualan, pembelian, maupun akuntansi. Hasil pengujian menunjukkan kesesuain antara hasil yang diharapkan dengan hasil pengujian. Dokumentasi hasil pengujian dapat dilihat pada Lampiran 6. Kelebihan Pengembangan Menggunakan MVC Pattern Pengembangan sistem menggunakan MVC pattern membuat aplikasi mudah dikelola. Dengan demikian apabila terjadi perubahan pada bagian view maka tidak perlu dilakukan perubahan pada bagian model dan controller. Gambar 12 merupakan contoh class yang mengimplementasikan model. @Entity @Table(name = "ad_user") public class AdminUser implements java.io.Serializable { @Id @GeneratedValue (strategy=GenerationType.AUTO) private Long id; @Column(name = "user_name) private String userName; @Column(name = "employee_id") private String employeeId; }
Gambar 12 AdminUser.java. Class AdminUser di atas menghasilkan sebuah tabel yaitu ad_user. Selanjutnya dibuat sebuah interface untuk model tersebut. Gambar 13 merupakan
9
potongan kode yang mengimplementasikan view bagi model di atas. Halaman ini menampilkan isi dari tabel ad_user dalam bentuk tabel, tampilannya dapat dilihat pada Gambar 14 sedangkan controllernya dapat dilihat pada Gambar 15.
Gambar 13 userList.xhtml.
Gambar 14 Tampilan dalam bentuk tabel.
public class AdminUserController { private AdminService adminService; private DataModel adminUsers; @PostConstruct public void initbean(){ adminUsers = new ListDataModel (adminService.getAdminUsers()); } public AdminService getAdminService() { return adminService; } public void setAdminService (AdminService adminService) { this.adminService = adminService; } public DataModel getAdminUsers() { return adminUsers; } public void setAdminUsers (DataModel adminUsers) { this.adminUsers = adminUsers; } }
Gambar 15 AdminUserController.java Selanjutnya dibuat halaman view yang berbeda yang menampilkan tabel ad_user dalam bentuk grid yang dapat dilihat pada Gambar 16 sedangkan tampilannya dapat dilihat pada Gambar 17.
Gambar 16 User.xhtml.
Gambar 17 Tampilan dalam bentuk grid.
10
Kedua view yang berbeda menggunakan model yang sama yaitu class AdminUser.java dan juga controller yang sama yaitu AdminUserController.java. Jadi view yang berbeda bisa mempunyai satu model dan controller yang sama. Dengan demikian dapat disimpulkan bahwa penggunaan MVC pattern membuat program menjadi reusable. Model yang sudah dikembangkan bisa digunakan untuk aplikasi lain yang memiliki kegunaan yang hampir sama. Pemisahan view membuat aplikasi dapat memiliki multiple interface, di mana aplikasi secara keseluruhan memiliki tampilan yang berbeda namun mengeksekusi komponen model yang sama. Selain itu dengan adanya pemisahan controller membuat pengembang dapat mendesain view tanpa harus memperhatikan bagian lain secara berlebih. Hal ini memudahkan tim pengembang multiple interface bekerja secara terpisah dari yang lain secara simultan.
KESIMPULAN DAN SARAN Kesimpulan Perkembangan e-commerce menuntut ERP klasik melakukan perubahan yaitu dengan menambahkan fungsi e-commerce dan menggunakan konsep berorientasi objek dalam pengembangan sistem. Pegembangan sistem yang mengimplementasikan MVC pattern membuat sistem ERP ritel ini menjadi mudah dikelola dan menjadi reusable. Ketika terjadi perubahan pada proses bisnis, maka yang perlu diubah hanya model dari sistem tanpa perlu mengubah view atau antarmuka sistem dan controller dan juga sebaliknya. Selain itu pemisahan view membuat model dapat memiliki multiple interface. Oleh karena itu sistem yang dikembangkan telah mengakomodasi kebutuhan untuk pengembangan sistem lebih lanjut. Saran Saran bagi penelitian selanjutnya yang terkait dengan ritel ERP ini yaitu: Penambahan modul-modul yang belum terdapat dalam sistem ini seperti pengelolaan sumberdaya manusia, supply chain management, dan customer relationship management.
Penambahan laporan laba rugi pada modul akuntansi, sehingga bisa memprediksi laba dan rugi perusahaan setiap bulannya. Integrasi dengan web service sehingga sistem ini bisa digunakan pada multi platform. Membuat sistem ERP yang bisa diakses melalui perangkat mobile. Penggunaan JUnit pada pengujian sistem.
DAFTAR PUSTAKA Berman B, Evans JR. 2001. Retail Management, A Strategic Approach, 8th edition. New Jersey : Prentice Hall. Chen JJ. 2006. Tutorial on B2B & B2C. http://www.comp.nus.edu.sg/~jinchen/b2b b2c.pdf (25 Juni 2008). Dhewanto W, Falahah. 2007. ERP (Enterprise Resource Planning), Menyelaraskan Teknologi Informasi dengan Strategi Bisnis. Bandung: Penerbit Informatika. Dune P, et al. 2002. Retailing 4th Southwestern Australia
edition.
Fess, WR. 2006. Pengantar Akuntansi, edisi 21. Jakarta: Salemba Empat. Gosh, Avijith. 1994. Retailing Management, The Den Press 2nd edition. Newyork: Newyork University. Jacobi J, Fallows JR. 2006. Pro JSF and Ajax: Building Rich Internet Components. New York: Apress. Kranz RS. 2000. Is True Retail ERP Available? –Statistical Data Included. DSN Retailing Today. Luttighuis PO, Biemans F. ERP in the Ecommerce Era. Netherlands: Telematic Institute. http://citeseer.ist.psu.edu/326252.html (8 Desember 2007). O‟Brien. 2005. Introduction to Information System. Ed ke-12. McGraw-Hill. Rashid MA, et.al. 2002. The Evolution of ERP System: A Historical Perspective. USA: IRM Press. Savitri DI. 2008. Penerapan Object Relational Mapping pada Pengembangan Enterprise Resource Planning. Prosiding Seminar Nasional Informatika 2008 ISSN:19792328: 72-81
11