REENGINEERING SISTEM GOBANN UNTUK MENINGKATKAN DESAIN ARSITEKTUR DAN BUSINESS FLOW MENGGUNAKAN FRAMEWORK CODE IGNITER Zoe Zachary Universitas Bina Nusantara,
Edwin Zulkifli Universitas Bina Nusantara,
Agus Budianto Universitas Bina Nusantara, Jakarta Pusat,
[email protected]
Jurike V.Morinaga ABSTRAK Tujuan penelitian, adalah untuk melakukan reengineering dari sistem Gobann. Karena sistem gobann saat ini masih memiliki bug, arsitektur dalam kodenya terdapat kesalahan dalam implementasinya, juga struktur database masih kurang efektif dalam perancangannya. Metode penelitian menggunakan metode scrum karena proses pengembangan yang dilakukan terus berulang membantu dalam resiko terjadinya perubahan pada modul yang sudah diselesaikan sebelumnya. Hasil yang dicapai setelah dilakukannya reengineering adalah pengurangan kompleksitas code, struktur database lebih jelas, dan peningkatan performa kecepatan load kepada client dibandingkan sebelum reengineering. Meskipun reengineering membutuhkan tenaga dan biaya yang besar jika dilakukan pada saat yang tepat akan memberi hasil yang lebih baik dibandingkan sekedar refaktoring code, juga dengan menggunakan framework yang lebih mendapat dukungan komunitas dan dokumentasi yang baik pengembangan akan jauh lebih mudah karena pengembang akan mudah memahami framework meskipun belum pernah menggunakannya. The research goal is to do re-engineering on Gobann system. Because the current system of Gobann still have some bugs, code architecture is wrong on its implementation, and the database structure still not effective in its design. The research method using Scrum Methodology because the itterative development process help when there is risk of change on the module that has been done before. The result after reengineering are decrease in code complexity, database structure more definite, and increase in loading performance to client than the one before re-engineering. Although re-engineering need much effort and cost, if done in the right time can give a better result than just doing a code refactoring, and with using
iv
framework that have community support and good documentation the development will be much easier because the developer can understand the framework easily although they never use it before. Kata kunci: CodeIgniter, Reengineering, MVC, Desain Arsitektur, Business Flow
1.
LATAR BELAKANG
Pada sistem Gobann yang sudah berjalan ditemukan beberapa kendala dan keluhan – keluhan dari pengguna. Kendala yang ditemukan adalah bug – bug yang mengganggu kenyamanan juga merugikan pengguna maupun sistem, pengkodean yang tidak terstruktur rapi, desain database yang kurang efisien dan pemberian nama field yang sulit untuk dipahami. Kendala pada pengkodean dan desain database dapat menyebabkan sulitnya untuk dilakukan pembetulan terhadap bug – bug dan juga untuk melakukan pengembangan selanjutnya seperti penambahan fitur maupun perubahan fitur yang sudah ada.Keluhan – keluhan dari pengguna adalah pengguna bingung saat melakukan transaksi karena kurangnya informasi yang diberikan pada saat melakukan transaksi.Maka dari itu sebaiknya dilakukan reengineering pada sistem Gobann dengan penambahan fitur – fitur agar pengguna lebih dapat lebih nyaman untuk bertransaksi di Gobann dan pengembang selanjutnya dapat lebih mudah mengembangkan sistem Gobann selanjutnya. Reengineering merupakan analisa, pemeriksaan dan pengubahan dari sistem software yang sudah ada ke penyusunan kembali ke bentuk yang baru, dan implementasi terhadap bentuk baru. Prosesnya biasanya terdiri dari kombinasi dari beberapa proses seperti reverse engineering, mendokumentasi kembali, perbaikan struktur, dan forward engineering. Tujuannya untuk dapat memahami sistem yang ada dan kemudian mengimplementasi kembali untuk meningkatkan fungsionalitas, performa, ataupun implementasi sistem. Juga menjaga fungsionalitas yang telah ada dan dapat bersiap untuk fungsionalitas yang akan ditambah pada selanjutnya. Karena pengkodean yang tidak terstruktur dan desain database yang kurang efisien serta pemberian nama field yang sulit untuk dipahami, dengan dilakukannya reengineering pada sistem Gobann akan mengurangi biaya untuk melakukan perawatan sistem maupun untuk pengembangan selanjutnya. Karena dengan dilakukannya reengineering pada sistem Gobann kode akan dibuat dengan lebih terstruktur rapi dan mudah untuk dibaca dengan menggunakan framework Code Igniter dan desain database yang dibuat lebih efisien dan field – field yang mudah dimengerti oleh pengembang untuk melakukan pengembangan selanjutnya. Code Igniter adalah sebuah framework yang ringan yang befokus pada pembuatan hal – hal dasar dalam pengembangan sebuah website dengan menggunakan PHP agar menjadi lebih mudah. Dengan menggunakan framework Code Igniter pengembang menulis kode lebih sedikit dikarenakan framework Code Igniter berfokus untuk memudahkan hal – hal dasar dan juga pengembang dianjurkan untuk mengikuti disiplin cara penulisan kode yang lebih terstruktur sehingga kode lebih mudah untuk dibaca dan diubah.
2.
TINJAUAN PUSTAKA
Re-engineering adalah persiapan terhadap peningkatan fungsional, meningkatkan kemudahan dalam perawatan, diperlukan migrasi ke hardware, OS (Operating System), ataupun bahasa yang terbaru dan untuk mendapatkan keandalan yang lebih baik (H. Rosenberg, 2012:2). Dalam melakukan Re-engineering pada sistem Gobann ini kami menggunakan bahasa pemrograman PHP karena seperti yang diucapkan oleh Suzumura, Trent, Tatsubori, Tozawa, dan Onodera (2008) kemampuan php sebagai bahasa yang digunakan untuk menyediakan web service terbukti memberikan performa lebih tinggi dibandingkan menggunakan bahasa Java maupun C. Digunakan juga framework dalam mengembangkan sistem Gobann, seperti dikatakan oleh Vuksanovic dan Sudarevic (2011) dengan menggunakan framework dapat membantu developer lebih mudah dalam mengembangkan applikasi website.
v
3.
PERANCANGAN
3.1
Rancangan Solusi Navigasi
Gambar 1 Solusi Navigasi
vi
3.2
Rancangan Layar
3.2.1
Pengguna
3.2.1.1 Landing Page
Gambar 2 Rancangan Landing Page
vii
3.2.1.2 Kangtao List Page
Gambar 3 Rancangan Kangtao List Page
viii
3.3
Rancangan Sistem
3.3.1
Use Case User
Gambar 4 Rancangan Use Case User
ix
3.3.2
Use Case Admin
Gambar 5 Rancangan Use Case Admin
x
3.3.3
Use Case Cron
Gambar 6 Rancangan Use Case Cron
4
SIMPULAN DAN SARAN
4.1
Simpulan
Berdasarkan hasil dari reengineering yang telah diuraikan pada bab sebelumnya, dapat ditarik simpulan – simpulan sebagai berikut: 4.1.1
Pengembangan selanjutnya akan lebih mudah karena kode lebih terstruktur.
4.1.2 Pengguna dapat lebih mudah melakukan proses transaksi dan proses topup karena telah ditambahkan informasi pada halaman – halaman transaksi dan halaman proses topup. 4.1.3 Perubahan struktur navigasi membuat pembeli lebih mudah untuk melakukan navigasi dalam sistem Gobann. 4.1.4 Struktur data pada basis data lebih jelas, lebih mudah dipahami, dan redudansi data sudah berkurang. 4.1.5 Penggunaan Ajax dan Jquery memudahkan pengguna dalam melakukan pendaftaran dan mencegah pengguna melakukan kesalahan. 4.1.6 Penggunaan CSS3 dapat memunculkan tooltips, popovers, juga breadcrumbs yang mempermudah pengguna selama memudahkan sistem.
4.2
Saran
Berdasarkan evaluasi setelah dilakukannya reengineering pada sistem Gobann masih ada hal yang dapat dibuat lebih baik lagi, berikut adalah saran – sarannya: 4.2.1 Diperlukan refactoring code karena kopling antar method yang masih cukup tinggi, juga tingginya baris kode yang menyebabkan tingginya kompleksitas kode. Berikut adalah perubahan – perubahan yang dapat diperbaiki lagi dari sisi kode: a. Pengurangan jumlah kode yang ada dalam satu method dan dipindahkan ke method yang baru. b.
Memperbaiki logika pemrograman.
c.
Mengurangi pemanggilan method – method lainnya dalam satu method.
xi
4.2.2 Meskipun evaluasi dengan Pagespeed dan YSlow sudah lebih baik dari sistem sebelumnya, namun masih ada hal – hal yang dapat diperbaiki lagi. 4.2.3 Memperhatikan code testing dengan automaton agar lebih mudah dan cepat mendeteksi adanya kesalahan sebelum diberikan kepada public. 4.2.4 Penggunaan bank transfer sebagai metode pembayaran cukup tinggi, akan lebih baik jika pengecekan bank transfer dilakukan secara automatis oleh sistem juga dengan begitu beban kerja admin akan berkurang.
5
REFERENSI a.
Abbas, A. S., Jeberson, W., dan Klinsega, V. V. (2012). The Need of Re-engineering in Software Engineering. International Journal of Engineering and Technology, 2 (2): 292-295.
b.
Ambler, S. W. (2005). THE ELEMENTS OF UML 2.0 STYLE. (1st Edition). United States of America: Cambridge University Press.
c.
Carrol, J. M.(2012). Human Computer Interaction (HCI), diakses 3 January 2013 dari
d.
http://www.interactiondesign.org/encyclopedia/human_computer_interaction_hci.html.
e.
Corcoran, P., Mooney, P., Winstanley, A., dan Bertolotto, M. (2011.). Effective Vector Data Transmission and Visualization Using HTML5.Proceedings GISRUK 2011.
f.
Deacon, J. (2009.). Model-View-Controller (MVC) Architecture. JOHN DEACON Computer Systems Development, Consulting & Training.
g.
Diginmotion. 11 November (2010). Running a website on Amazon EC2.
h.
eyerys.com. 12 Oktober (2012). Advantages and Disadvantages of HTML5 Websites. Eyerys.com, diakses 12 Oktober 2012 dari http://www.eyerys.com/articles/advantages-anddisadvantages-html5-websites.
i.
Giffin, M. 20 Mei (2012). About JavaScript. Mozilla Developer Network, diakses 3 Juni 2012 dari https://developer.mozilla.org/en/About_JavaScript.
j.
html5rocks. 4 Juni (2012). Why HTML5 Rocks. Html5rocks.com,diakses 4 Juni 2012 dari http://www.html5rocks.com/en/why.
k.
Janssen, C. (2012).What Is an Entity-Relationship Diagram (ERD)?.Technopedia, diakses 25 Oktober 2012 dari http://www.techopedia.com/definition/1200/entity-relationship-diagram-erd.
l.
JScripters. 11 Oktober (2012). Javascript: advantages and disadvantages. JScripters.com, diakses 11 Oktober 2012 dari http://www.jscripters.com/javascript-advantages-and-disadvantages/.
m. JScripters.com. 12 Oktober (2012). Presentation of JQuery. JScripters.com, diakses 12 Oktober 2012 dari http://www.jscripters.com/what-is-jquery-presentation/. n.
JScripters.com. 12 Oktober (2012). JQuery: Advantages and Disadvantages. JScripters.com, diakses 12 Oktober 2012 dari http://jscripters.com/jquery-disadvantages-and-advantages/.
o.
Kyrnin, J. 4 Juni (2012). What is CSS?. About.com, diakses 4 Juni 2012 dari http://webdesign.about.com/od/beginningcss/a/aa021607.htm.
p.
Mah, P. 12 Juni (2009). Advantages of Web Development Using PHP. itbusinessedge.com, diakses 11 Oktober 2012 dari http://www.itbusinessedge.com/cm/blogs/mah/advantages-of-webdevelopment-using-php/?cs=33357.
xii
q.
Mah, P. 12 Juni (2009). Disadvantages of Web Development Using PHP. itbusinessedge.com, diakses 11 Oktober 2012 dari http://www.itbusinessedge.com/cm/blogs/mah/disadvantages-ofweb-development-using-php/?cs=33397.
r.
Meyer, C., dan Rabb, M. (2009). JavaScript: Bringing Object-Level Security to theBrowser.IDEALS.
s.
Molina, H. G., Ullman, J. D., dan Widom, J. (2008). Database System The Complete Book. (2nd Edition). United States of America: Pearson.
t.
Murty, J. (2008). Programming Amazon Web Services. (1st Edition). United States of America: O'Reilly.
u.
Otto, M. 19 Agustus (2011). Bootstrap from Twitter. Dev.twitter.com, diakses 12 Oktober 2012 dari https://dev.twitter.com/blog/bootstrap-twitter.
v.
Qin, Z. (2009). Introduction To E-Commerce. (1st Edition). Springer Berlin Heidelberg New York.
w. Schwartz, B., Zaitsev, P., dan Tkachenko, V. (2012). High Performance MySQL. (3rd Edition). United States of America: O'Reilly. x.
Scrummethodology. (2009). PHP:What can PHP do?.Php.net, diakses 3 Januari 2013 dari http://www.scrummethodology.org/scrum-phases.html.
y.
Shadlou, S., Pong, C. K., dan Sukumaran, S. (2011). Proposal Submission System - A Content Management System Approach for Proposal Submission.International Journal of Web & Semantic Technology (IJWesT), 2 (2): 1-10.
z.
Shneiderman, B.(2012). Shneiderman’s "Eight Golden Rules of Interface Design", diakses 3 Januari 2013 dari http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html.
aa. Shneiderman, B. (2010). Designing the User Interface: Strategies for Effective HumanComputer Interaction. (5th Edition). United States of America: Pearson. bb. Sommerville, I. (2011). Software Engineering. (9th Edition). United States of America: Pearson. cc. Suzumura, T., Trent, S., Tatsubori, M., Tozawa, A., dan Onodera, T. (2008). Performance Comparison of Web Service Engines in PHP, Java, and C.IEEE International Conference on Web Services. 978-0-7695-3310-0 (08): 385-392. dd. Tectale. 28 April (2012). An Introduction to Twitters Bootstrap. Tectale.com, diakses 12 Oktober 2012 dari http://www.tectale.com/an-introduction-to-twitters-bootstrap/. ee. The PHP Group. 05 Oktober (2012). PHP:What can PHP do?.Php.net, diakses 11 Oktober 2012 dari http://www.php.net/manual/en/intro-whatcando.php. ff. Uhlig, D. K., Media, D. (2012).Advantages and Disadvantages of the Scrum Project Management Methodology. Smallbusiness.chron.com, diakses 25 Oktober 2012 dari http://smallbusiness.chron.com/advantages-disadvantages-scrum-project-managementmethodology-36099.html. gg. Upton, D. (2007). CodeIgniter for Rapid PHP Application Development. (1st Edition). BIRMINGHAM - MUMBAI: Packt Publishing. hh. Waters, K. 10 Februari (2007).What Is Agile? (10 Key Principles of Agile). Allaboutagile, diakses 25 Oktober 2012 dari http://www.allaboutagile.com/what-is-agile-10-key-principles/.
xiii
ii. Wu, F. 2 Maret (2009). Choosing a PHP Framework Round 2: Yii vs Kohana vs CodeIgniter. Beyondcoding.com, diakses 12 Oktober 2012 dari http://www.beyondcoding.com/2009/03/02/choosing-a-php-framework-round-2-yii-vs-kohanavs-codeigniter/.
6
RIWAYAT PENULIS
Zoe Zachary, mahasiswa Jurusan Teknik Informatika di Universitas Bina Nusantara, Jakarta – Indonesia sejak 2009. Peminatan yang diambilnya adalah Software Engineering. Edwin Zulkifli, mahasiswa Jurusan Teknik Informatika di Universitas Bina Nusantara, Jakarta – Indonesia sejak 2009. Peminatan yang diambilnya adalah Software Engineering. Agus Budianto, mahasiswa Jurusan Teknik Informatika di Universitas Bina Nusantara, Jakarta – Indonesia sejak 2009. Peminatan yang diambilnya adalah Software Engineering.
xiv