PEMANFAATAN FRAMEWORK CODEIGNITER DALAM PEMBANGUNAN APLIKASI PIPELINE INTEGRITY MANAGEMENT SISTEM (PIMS) Rahmad Syalevi 209000050 Abstrak Pipeline Integrity Management System (PIMS) is an information management application specifically for large-scale pipeline infrastructure. PIMS is built by information technology consulting company, PT. Multimedia Arto Sentosa (MAS) as the main product of the company. PIMS is built using the PHP framework CodeIgniter (CI) as its development tools is based on the concept of Model View Controller (MVC). The author will research how the company use and utilize CI on deveveloping PIMS. To get an overview of the the PIMS application development process
using CI, the authors use qualitative methods applied
research with direct observation as a member team of programmers PT. MAS. PIMS application utilizing CI by modifying the default CI’s format in accordance with the needs of application development. The most important modification done is add another level of security applications, change the connection to the server and change the system directory of CI. In addition to modifications, PIMS also added some third party to be able to support the services provided by PIMS features, the third party is Smarty, EasyUI, PHPExcel and FlexViewer. PT. MAS using the CI for building PIMS applications on the grounds of its flexible, open source, free, and has broad support in doing so that easier application development. Keywords : PT. MAS, PIMS, PHP, framework, CodeIgniter, MVC, third party, open source. Pendahuluan Dalam sebuah perusahaan berskala besar, hampir seluruh aspek dari perusahaan tersebut dapat ditopang oleh teknologi sistem informasi. Sebagai contoh, Perusahaan Gas Negara (PGN) yang bergerak di bidang transmisi dan distribusi gas bumi. Perusahaan tersebut memiliki bagian-bagian dari sebuah perusahaan secara umum, dan infrasturktur penopang perusahaan tersebut juga merupakan bagian dari perusahaan yang harus diperhatikan. Misalnya, sebagai sebuah perusahaan yang bergerak di bidang gas dan minyak bumi, mereka memiliki jalur pipa yang sangat luas cakupannya. Kebutuhan akan monitoring dan laporan rutin untuk fasilitas tersebut menyulitkan perusahaan jika dilakukan secara manual dan 1
ditambah dengan perhitungan data. Di sini peran teknologi sistem informasi akan dibutuhkan untuk mempermudah perusahaan dalam mengelola data dan melakukan monitoring terhadap infrastruktur mereka tersebut. Untuk membangun sebuah Sistem Informasi, saat ini tersedia berbagai pilihan development tool yang semakin memudahkannya. PHP adalah salah satu development tool yang merupakan bahasa pemograman bersifat open source dan sangat powerfull dalam menangani banyak hal, terutama logic dan pengolahan data. Apalagi PHP saat ini sudah dikemas
dalam
bentuk
framework
yang
semakin
memudahkan
pengembang
menggunakannnya sebagai alat bantu. Framework adalah kumpulan kelas dan fungsi yang dapat meringankan tugas pengembang ditambah dengan bantuan library dan bantuan lainnya. PT. Multimedia Arto Sentosa merupakan sebuah perusahaan konsultan yang menyediakan produk berbentuk jasa untuk membangun dan mengembangkan aplikasi sistem informasi terintegrasi khusus di bidang jalur pipa baik itu gas, maupun minyak. Aplikasi yang dibangun berbasis web dan menggunakan framework CodeIgniter (CI) dengan menggunakan beberapa bahasa pemograman web. Sesuai dengan layanan yang disediakan PT. Multimedia Arto Sentosa, perusahaan yang menjadi kliennya merupakan perusahaan yang memiliki infrastruktur jalur pipa yang besar seperti Pertamina Persero. Untuk menelusuri bagaimana framework CI digunakan dan dimanfaatkan dalam proses pengembangan aplikasi Pipeline Integrity Management Sistem (PIMS), maka penulis melakukan penelitian langsung terhadap perusahaan PT. Multimedia Arto Sentosa (MAS). Penelitian ini bertujuan mendapatkan gambaran penggunaan framework CI dan mengetahui faktor-faktor alasan penggunaan framework CI pada pembangunan aplikasi PIMS di PT. MAS. Pembahasan Framework Framework merupakan struktur konseptual dasar yang digunakan untuk memecahkan permasalahan atau isu-isu kompleks (Daqiqil, 2011). Framework hanya digunakan sebagai alat bantu yang dapat memudahkan, bukan sebagai alat untuk memecahkan masalah. Framework menggunakan metode pengembangan berbasiskan MVC (Model View Controller). MVC merupakan metode pengelompokan bagian-bagian dari keseluruhan 2
aplikasi web. Sesuai dengan penamaannya, Model View Controller merupakan 3 bagian yang berbeda dimana setiap bagiannya memiliki fungsi masing-masing namun memiliki keterkaitan satu sama lain. Penguraian dari 3 bagian tersebut yaitu : 1.
Model
Model merupakan bagian dari aplikasi yang menangani interaksi langsung dengan database. Model juga mempresentasikan struktur data dari aplikasi maupun data lain, misalnya file text, XML dan webservice. 2.
View
View mengatur segala sesuatu yang berhubungan dengan yang dilihat oleh pengguna pada tingkat end-user. View hanya berperan menampilkan data yang telah diolah pada Model dan Controller. 3.
Controller
Controller memiliki peran sebagai penghubung antara data dan tampilan. Controller berperan menghubungkan Model dengan View, dimana controller memanggil variabel-variabel yang akan digunakan di view. Jika dibandingkan dengan pemograman web berbasis PHP secara umum (konvensional), framework dengan metode MVC akan lebih membantu ketika pengembang membangun aplikasi dengan logika yang kompleks dan dapat menghindari penulisan logika yang sama secara berulang-ulang. MVC membantu pengembang untuk menggunakan satu logika yang sama untuk digunakan dan diakses oleh lebih dari satu bagian aplikasi.
Gambar . Perbandingan struktur PHP konvensional dengan framework PHP
3
Pada gambar di atas, penggunaan PHP secara konvesional biasanya akan mengeksekusi pustaka, fungsi, method dan logika yang digabungkan dan akan dijalankan pada halaman HTML. Untuk sebuah aplikasi dengan tingkat yang sederhana tidak akan berdampak besar, namun untuk sebuah aplikasi dengan kasus dan logika yang kompleks akan sulit untuk dikelola dengan baik. Kelebihan framework antara lain dapat disimpulkan : •
Lebih cepat dibandingkan dengan PHP konvensional. Ketika aplikasi
dijalankan, framework hanya akan memanggil pustaka dan fungsi yang dibutuhkan. Sedangkan dengan PHP konvensional, fungsi dan tampilan akan dijalankan semuanya. •
Menggunakan konsep MVC. MVC akan lebih memudahkan pengembang
dalam membangun aplikasi dengan standar dan struktur yang jelas. PT. MAS menggunakan framework PHP CodeIgniter (CI) dalam pengembangan produk aplikasi Pipeline Integrity Management Sistem (PIMS). Framework CI yang mereka gunakan dibantu dengan beberapa bahasa pemograman berbasis web lainnya yaitu HTML, JavaScript, CSS, JQuery, XML, SWF, AJAX, dan JSON. CodeIgniter menjadi pilihan perusahaan dalam membantu pembangunan dan pengembangan aplikasi dikarenakan sifatnya yang terbuka, gratis, mudah dikonfigurasi dan dikembangkan, sifatnya yang fleksibel, serta mendapat banyak dukungan dari berbagai komunitas. Dalam implementasinya, framework CI selanjutnya mengalami beberapa perubahan karena berbagai kebutuhan dengan tujuan yang berbeda dari setiap aplikasi. Pada dasarnya perubahan tersebut tetap memiliki konsep yang sama dengan CI, namun hanya beberapa bagian dari framework yang mengalami sedikit modifikasi sehingga memiliki struktur yang berbeda dengan struktur awal CI. Dari keseluruhan struktur framework CI, beberapa bagian yang paling mencolok mendapat modifikasi oleh tim programmer PT. MAS adalah directory, sistem path, file index.php, file .htaccess, pemanfaatan model dan controller yang disesuaikan dengan kebutuhan serta format file di berkas view yang disimpan dengan .tpl. Selain beberapa perubahan tersebut, tim programmer juga memanfaatkan beberapa bantuan lainnya atau third party plugin di luar default dari framework CI sendiri, yaitu Smarty, EasyUI, PHPExcel dan FlexViewer. 4
CodeIgniter Directory System Secara default, CodeIgniter memiliki struktur berkas yang setiap bagian berkasnya memiliki fungsi dan peran masing-masing yang berbeda. Default dari struktur utama berkas CI terbagi ke dua bagian berbeda, yaitu Application dan System. Berkas Application dikhususkan untuk bagian dimana kita meletakkan coding program yang akan dibuat, sedangkan berkas Sistem berisikan helper dan library default bawaan CI.
Gambar 2. CI directory system
Dari seluruh berkas yang ada di framework CI, hanya beberapa berkas yang paling sering diakses dan menjadi berkas utama dari pengembangan aplikasi. Berkas-berkas tersebut memiliki hubungan dengan struktur standar yang digunakan oleh seluruh framework, yaitu terkait dengan Model View Controller (MVC), library, helper dan configurasi utama dari framework CI. Pipeline Integrated Management System (PIMS) Pipeline Integrated Management System (PIMS) merupakan layanan utama yang ditawarkan perusahaan PT. Multimedia Arto Sentosa kepada klien. Layanan tersebut bersifat dapat diubah sesuai dengan kebutuhan klien nantinya, sehingga hasil akhir dari aplikasi tersebut merupakan hasil dari gabungan aplikasi PIMS default dan fitur yang dibutuhkan klien. Sistem aplikasi ini dibangun untuk mengakomodasi kebutuhan Perusahaan klien akan adanya suatu sistem yang bisa mengelola dan memonitor semua aktivitas, informasi dan 5
perhitungan data inspeksi yang berkaitan dengan metode Risk Based Inspection atas jalur pipa yang dikelola. Pada sistem aplikasi ini, fitur-fitur utama yang disediakan oleh aplikasi terintegrasi satu sama lainnya antara Risk Assessment, Cathodic Protection, Fitness for service, GISMap dan Reference. Semua data yang dimasukkan sebagai input di aplikasi akan menjadi keluaran dalam berbagai macam bentuk laporan sesuai dengan kebutuhannya. Seperti laporan kegiatan inspeksi rutin, yang akan ditampilkan dalam sistem aplikasi PIMS dengan didukung data spasial dan menunjukkan lokasi sebenarnya dari pipa dan hasil dari risk assessmentnya. PIMS Directory System Dalam proses pembangunan dan pengembangan, terjadi banyak adaptasi yang mengharuskan tim untuk mengambil tindakan dan memutuskan sesuatu. Penggunaan directory system secara default membuat tim programmer merasa terbatasi dan tidak dapat bertindak lebih jauh. Oleh karena itu, tim programmer di perusahaan ini melakukan sedikit perubahan di directory system yang terdapat pada framework aplikasi PIMS.
Gambar 3. Sistem directory PIMS Sumber: Data internal PT. MAS
Secara default, hanya terdapat tiga berkas utama pada lokasi root framework. Namun tim mengubah framework tersebut agar menjadi menjadi struktur seperti pada gambar di atas. Tindakan itu diambil dengan tujuan : •
Mempermudah tim melakukan tugasnya
•
Menjadikannya struktur yang menjadi standar perusahaan
•
Kebutuhan akan tambahan-tambahan yang tidak dikelola oleh framework
CodeIgniter Modifikasi yang dilakukan terhadap directory system tersebut mengubah beberapa konfigurasi default dari framework CI. Perubahan-perubahan tersebut terjadi pada beberapa file utama yang mengatur directory system, seperti bagian dari file index.php di berkas root.
6
Selain berkas “appl” dan “ci200” yang hanya mengalami perubahan nama, ada beberapa tambahan berkas root directory pada framework, yaitu : 1. assets Berkas “assets” digunakan untuk menyimpan berbagai macam tambahan bantuan yang akan digunakan untuk memperindah tampilan web. Isi dari berkas tersebut adalah file-file CSS, JS, XML, images, SWF, dan KML. 2. DB Berkas “DB” dimanfaatkan untuk menyimpan file database dengan ekstensi “.sql”. 3. repository Berkas “repository” berisi file dokumen-dokumen yang diunduh dan diunggah oleh pengguna di aplikasi PIMS. 4. third_party Berkas ini bertujuan menyimpan aplikasi tambahan untuk mendukung pembangunan. 5. tmp Berkas “tmp” menyimpan cookie atau temporary file dari aplikasi. 6. Model, Views dan Controller Tiga berkas yang mengatur inti dari sebuah aplikasi di framework CI yaitu model, view dan controller mendapat tindakan yang berbeda dari tim programmer di perusahaan PT. MAS. Sesuai dengan kebijakan CI yang masih memungkinkan pengguna CI untuk mengubah struktur bakunya. Model Pengelolaan Model pada framework CI berada di berkas “models”. Tim programmer di perusahaan ini memanfaatkan Model sebagaimana mestinya, yaitu berisi query-query yang mengelola hubungan dengan database. Controller Berkas yang mengelola Contoller pada framework CI adalah berkas “controllers”. Berkas tersebut mengelola setiap file controller yang bertugas menghubungkan query dari model ke file tampilan yang ada pada berkas “view”. Dalam beberapa kasus, tim menggunakannya untuk memanggil query. 7
View Berkas “view” digunakan untuk menampilkan setiap file yang berhubungan dengan tampilan. File yang ada pada berkas “view” berisi code bahasa pemograman yang terkait dengan tampilan web. Pada pengimplentasiaannya, tim programmer di perusahaan ini memanfaatkan file dengan ekstensi “.tpl” sebagai standar perusahaan dalam membangun aplikasi menggunakan framework CI untuk tampilan web. 7. Core Core pada folder “application” di framework CI dapat dimanfaatkan untuk menambah kofigurasi tambahan. Tim pengembang PIMS memanfaatkannya untuk menambah beberapa kofigurasi aplikasi terkait tentang policy dan privacy user.
Gambar 4. File di Berkas Core Sumber: Data internal PT. MAS
Tim programmer juga memanfaatkan file “.htacces” untuk melakukan komunikasi dengan server. Dengan begitu server dapat mengarahkan dimana berkas root dari framework berada.
Gambar 5. Isi file “.htaccess” Sumber: Data internal PT. MAS
Gambar file diatas adalah konfigurasi penggunaan modul rewrite pada server untuk mengelola penggunaan URL sehingga tidak perlu memuculkan index.php pada URL di browser. Hal tersebut dilakukan untuk mencegah bentuk URL yang panjang. Third Party (Library, Helper, dan Plugin) Third party adalah beberapa tambahan bantuan kelas dan fungsi lainnya yang tidak berasal dari framework CodeIgniter. Tim pengembang PIMS memanfaatkan hal ini untuk beberapa fungsi yang tidak dapat dikelola oleh CI dan sebagian menggantikan fungsi dari CI. 1. Smarty Smarty adalah mesin template untuk PHP. Bertujuan untuk memisahkan logika aplikasi dan konten dari penampilannya. Berikut beberapa fitur yang disediakan oleh smarty kepada penggunanya yang dipaparkan pada halam web resminya smarty.net : • Memudahkan pengembang dalam melakukan coding karena penggunaan kode-kode smarty yang lebih singkat untuk PHP dan HTML. 8
• Dimungkinkan untuk menyertakan kode PHP langsung dalam file template • Dukungan built-in caching Penggunaan smarty mempermudah tim pengembang PIMS dalam mendesain dan membangun aplikasi. Letak berkas smarty berada pada “appl\libraries\Smarty” dan dipanggil secara otomatis pada file autoload.php di berkas “appl/config”. Smarty digunakan pada setiap fungsi di aplikasi, baik itu controller, model dan view. 2. EasyUI EasyUI digunakan untuk mempermudah dalam mendesain tampilan web. Terutama dalam hal grid, form, tab dan tabel. EasyUI sudah memiliki format yang bisa langsung digunakan hanya dengan memanggil kelas atau id-nya. 3. PHPExcel PHPExcel adalah serangkaian coding yang dimanfaatkan untuk menampilkan format tampilan dalam bentuk laporan Microsft Excel atau pengeolah angka lainnya. PIMS memanfaatkan bantuan plugin tersebut agar memudahkan pengguna PIMS mengunggah dan menghasilkan laporan dalam bentuk excel. 4. FlexViewer FlexViewer merupakan plugin yang dimanfaatkan aplikasi untuk menampilkan data ke dalam bentuk spasial. FlexViewer dimanfaatkan PIMS untuk menampilkan seluruh data PIMS ke dalam peta yang terinstalasi pipa yang kemudian ditandai dengan warna pada peta dengan arti menggambarkan kondisi dari pipa. Contoh pada aplikasi dalam penggunaan FlexViewer adalah :
Gambar 6. FlexViewer Sumber: Data internal PT. MAS
Kegiatan modifikasi, tambahan dan adaptasi tersebut bertujuan untuk memudahkan proses pembangunan dan pengembangan aplikasi. Keseluruhan tambahan tersebut bersifat open source dan gratis, sehingga tidak terjadi penyalahgunaan dan meringankan beban yang harus dikeluarkan perusahaan.
9
Kekurangan Penggunaan CI pada Aplikasi PIMS Penggunaan framework CI pada pembangunan aplikasi PIMS tidak terhindar dari berbagai kekurangan yang dapat disebabkan oleh tim pengembang sendiri maupun dari sisi CI-nya sendiri. Beberapa kekurangan penggunaan CI pada PIMS adalah : 1. Tim pengembang PT. MAS masih belum menggunakan CI dengan konsep MVC yang baik. Pada beberapa bagian, peran Model dan Controller pada aplikasi tidak terlalu diperhatikan, misalnya penggunaan query masih digunakan pada bagian Controller yang seharusnya hanya digunakan oleh Model. 2. Directory system CI yang berbeda dengan default mempersulit programmer baru untuk dapat beradaptasi dengan cepat. Kesimpulan Untuk dapat menggunakan framework CI dan diimplementasikan pada pembangunan aplikasi PIMS, dibutuhkan beberapa pemahaman yang menjadi konsep dasar penggunaan CI, yaitu: 1. Konsep dasar Model View Controller (MVC), MVC diterapakan untuk memudahkan tim pengembang mendapatkan struktur baku pada pembangunan aplikasi. 2. Directory system yang digunakan pada framework CI. Dengan mengetahui default struktur directory CI, pembangunan aplikasi menggunakan CI dengan directory system yang berbeda akan lebih mudah dipahami. 3. Pemanfaatan third party pada framework CI. Pemanfaatan third party pada pembangunan aplikasi menggunakan CI akan memudahkan menyediakan setiap kebutuhan tambahan dari setiap fitur aplikasi. Faktor-faktor yang mempengaruhi PT MAS menggunakan CI sebagai development tools untuk membangun aplikasi PIMS adalah : 1. Open source, gratis dan mendapat dukungan yang luas dari komunitas pengguna CI di internet sehingga memudahkan pengembangan aplikasi. 2. CI memiliki sifat yang fleksibel untuk dikembangkan sesuai dengan kebutuhan aplikasi yang dibangun. 10
3. CI mendukung pengembangan dengan PHP, HTML, CSS, JS, JavaScript dan mendukung berbagai macam database. 4. Memudahkan pengembang membangun dan mengembangkan aplikasi karena sifatnya yang berbasiskan MVC sehingga memiliki struktur yang jelas. Saran Berdasarkan pengalaman penulis selama melakukan observasi langsung dengan menjadi anggota tim pembangunan di PT Multimedia Arto Sentosa, penulis melihat potensi yang masih dapat dikembangkan oleh PT. MAS untuk mengembangkan produk mereka menjadi lebih baik : •
Saat ini aplikasi yang dikembangkan oleh perusahaan hanya berbasis web dan
dibangun menggunakan satu bahasa pemograman saja. Akan lebih baik dan menguntungkan jika aplikasi yang dibangun dapat mendukung banyak platform dan dapat digunakan di berbagai sistem operasi. •
Penelitian
selanjutnya
diharapakan
adanya
perbandingan
penggunaan
framework CI dengan salah satu framework lainnya pada pembangunan aplikasi PIMS, sehingga pembaca bisa mendapatkan gambaran yang lebih baik mengenai kelebihan dan kekurangan CI. Daftar Pustaka Al, Hanif, Fatta (2007). Analisis dan Perancangan Sistem Informasi untuk Keunggulan Bersaing Perusahaan dan Organisasi Modern. Yogyakarta: ANDI. Adam, Griffit (2010). CodeIgniter 1.7 Professional Development. Birmingham: Packt. Daqiqil, I. (2011). Buku CodeIgniter Gratis. Retrieved June 8, 2012, from Koder.Id: http://www.koder.web.id/buku-code-codeigniter-gratis/ Kristanto, A (2003).Perancangan Sistem Informasi dan Aplikasinya. Yogyakarta:Gava Media Myer, Thomas (2008). Professional CodeIgniter. Canada: Wiley. Upton, David (2009). CodeIgniter 1.7. Birmingham: Packt. Nuraida, Ida (2008). Manajemen Administrasi Perkantoran. Yokyakarta: Kanisius. 11
Smarty, Manual Smarty, Retrieved June 8, 2012, from Smarty: http://www.smarty.net/docsv2/id/what.is.smarty Google Trends, Retrieved Mei 28, 2012, from google: http://www.google.com/trends/? q=zend+framework,+codeigniter,+symfony,+yii, +kohana&ctab=0&geo=all&date=all&sort=1 PHP Developer, Most Used PHP Framework-The Popular Top 7 List in year 2011, Retrieved Mei 28, 2012, From PHP Developer: http://www.php-developer.org/most-used-PHPframework-the-popular-top-7-list-in-year-2011.
12