D1 PERANCANGAN ARSITEKTUR PEMROGRAMAN BERBASIS MVC (STUDI KASUS SISTEM INFORMASI ASSET) Falahah 1, Rata Puspita 2 1, Prodi Tekik Iformatika, Uiversitas Widyatama Bdug, 2 S2 Tekik Iformatika, Telkom Uiversity Bdug 1 falahah@widyatama.ac.id 2 2push@gmail.com ABSTRACT Approach to applicatio developmet is ow very varied d all have oe goal which is to facilitate the work of the programmer. I additio to a variety of approaches, also available tools for applicatio developmet (also called framework) which is popularly referred to. The use of the framework is cosidered to facilitate the desig process d accelerate the programmig process. Oe popular cocept adopted by various frameworks, particularly i eviromet of web-based applicatios is the cocept of MVC (Model, View, Cotroller). I this cocept, programmer makes the separatio betwee the model (which hdles the data), View (dealig with the user iterface), d cotroller (hdle trsactios d data modificatio). This cocept c be applied without use a particular framework, as log as the programmer uderstd the basic priciple, which is how to separate the program code ito three sectios d prepare a programmig structure that supports the cocept. Case study demostrates how to apply these cocepts i a sub module accompied by relevt script. The case study is attempt to provide example that c help programmers uderstd d apply the cocept of MVC without relyig o a particular framework d c be used i various eviromets programmig lguage that supports object-orieted cocepts. Keywords:MVC, programmig, cocept, structure, case study. PENDAHULUAN Saat ii, pedekat dalam pegembg aplikasi sudah sgat beragam d sudah byak tersedia berbagai alat btu yg memudahk pembuat program dalam meyelesaik tugas mereka. Alat btu tersebut dibgu berdasark beberapa kosep dasar yg populer saat ii, misalya berbasis obyek, berbasis kompoe, d lai-lai. Salah satu kosep dasar arsitektur pegembg aplikasi yg saat ii byak dijadik dasar dalam pembuat alat btu pegembg aplikasi yaitu kosep MVC (Model, View d Cotroller). Pada kosep ii, arsitektur aplikasi dibuat mejadi tiga lapis yaitu lapis Model yg megi data, lapis View yg megi tarmuka peggua, d lapis Cotroller yg megi proses d operasi pada data, yg dilakuk oleh peggu melalui tarmuka. Kosep MVC ii secara luas diguak obyek. Koferesi Nasioal Tekologi Iformasi d Aplikasiya Palembg, 13 September 2014 baik pada aplikasi berbasis web maupu desktop. Pada aplikasi berbasis web, kosep MVC byak diterapk pada berbagai framework yg populer seperti code igiter, yii, symfoy d lai-lai. Kebyak pembuat program belajar megguak framework tersebut deg megikuti tutorial yg sudah disediak, tetapi byak yg belum memahami bear bagaima dasar peerap kosep MVC tersebut. Pada dasarya, kosep MVC dapat diterapk tpa harus megguak framework apapu, asalk pembuat program memahami prisip dasarya d mercg program megikuti kosep tersebut. Deg memahami prisip dasar tersebut, peerap MVC dapat dilakuk pada ligkug pemrogram apapu, baik yg berbasis web maupu desktop, d dapat diterapk pada bahasa pemrogram apapu, selama bahasa pemrogram tersebut medukug kosep
D2 KONSEP MODEL, VIEW, CONTROLLER Model View Cotroller atau MCV adalah arsitektur yg memisahk tara model, view d cotroller. Dalam suatu aplikasi, bagi yg palig serig megalami perubah adalah bagi user iterface, dima terkadg user iterface ii berkait erat deg bisis logic dari aplikasi tersebut, sehigga perubah pada user iterface sedikit byak ak mempegaruhi bisis logic yg ada. Sebagai solusi atas permasalah tersebut, maka byak developer yg membagi pegembg sistem dalam 3 bagi, yaitu Model - View Cotroller[1]. Lapis Model berfugsi utuk merepresetasik data yg diguak oleh aplikasi, kompoe yg termasuk ke dalam lapis model ii adalah peampug data, persistce d proses mipulasi data. Lapis View adalah lapis yg beriteraksi lgsug deg user. Hya lapis iilah yg diguak utuk beriteraksi deg user, d di lapis iilah letak user iterface. Terakhir adalah lapis Cotroller, lapis ii berfugsi meyediak detail alur program d trsisi tar lapis, lapis ii juga bertggug jawab terhadap evet yg dibuat oleh user dari View utuk melakuk mipulasi data melalui lapis Model. Gambar 1. Kosep Model, View d Cotroller [1] Kelebih dari pemisah Model View d Cotroller ii adalah [4]: 1. Mempermudah proses pemelihara aplikasi karea user iterface, bisis proses d mipulasi data terletak pada bagi-bagi yg terpisah 2. Deg adya pemisah tara Model View d Cotroller, maka ak memudahk kompoe-kompoe tersebut utuk diguak di aplikasi lai. 3. Memugkik ketersedia multiple iterface, karea posisi View terpisah deg bisis proses d mipulasi data. 4. Megurgi ketergtug tara user iterface, mipulasi data d bisis proses, sehigga memudahk dalam meambah atau megurgi modul di dalam aplikasi tersebut. 5. Memudahk pembagi tugas tar developer dalam membgu aplikasi. Selai kelebih-kelebih tersebut, kosep MVC juga memiliki kekurgkekurg yaitu [4]: 1. Peigkat kompleksitas aplikasi karea arsitektur aplikasi terbagi mejadi tiga bagi. 2. Meimbulk loosely coupled (kompoe aplikasi yg membuat/ megacu kepada kompoe laiya deg sedikit/tpa iformasi detil dari kompoe yg diacu tersebut). Pada aplikasi berbasis web, dikeal beberapa jeis MVC yaitu [3]: Server side MVC, dima seluruh proses bisis dilakuk pada sisi server. Campur Server Side d Cliet Side MVC, yaitu proses dilakuk di sisi cliet d sisi server, bisa megguak atua tidak megguak model dalam koeksi ke server d biasya memiliki kompleksitas yg tiggi. Rich Iteret Applicatio (RIA), atau fat cliet, yaitu merupak aplikasi web yg memiliki kemampu mirip aplikasi desktop, d memiliki bagi yg megambil data sediri (MVC tersediri) d hya bagi model yg ada di bagi server. Koferesi Nasioal Tekologi Iformasi d Aplikasiya Palembg, 13 September 2014
D3 Saat ii, sudah byak platform pemrogram yg medukug kosep MVC, khususya pada aplikasi berbasis web. Di Idoesia, framework aplikasi web berbasis MVC yg saat ii byak diguak tara lai yii, code igiter, d symfoy. Peggua framework tersebut diggap dapat mempercepat proses pemrogram d memudahk dalam modifikasi program akibat perubah struktur data. Meskipu sudah tersedia byak framework siap pakai, ada baikya dipahami prisip dasar MVC itu sediri, d pemaham bahwa kita dapat membgu aplikasi berbasis arsitektur MVC tpa megguak framework [2]. Berdasark pertimbg tersebut, maka pada tulis ii ak dibahas kosep dasar d cotoh-cotoh yg relev deg peerap arsitektur MVC pada aplikasi berbasis web, tpa megguak framework. PENERAPAN KONSEP MVC Ilustrasi Studi Kasus Sebagai studi kasus, ak dicotohk bagaima membuat rcg program berbasis arsitektur MVC pada salah satu sub modul aplikasi berbasis web. Aplikasi yg ak diguak sebagai cotoh adalah aplikasi sistem iformasi pegelola asset, yg disebut sebagai SIMBADA (Sistem Iformasi Barg Daerah). Secara umum, sistem ii memiliki dua kelompok peggua utama yaitu selaku user (pegelola asset), d admiistrator (admiistrator sistem d peggug jawab / pegelola data master). Sistem iformasi ii dibuat utuk diguak oleh salah satu pemeritah daerah. SIMBADA memiliki beberapa fitur utama yaitu modul pereca, pe, pemakai, d pegedali. Pada cotoh ii, ak diambil sub modul pe, khususya pada proses pecatat hasil pe. Pecatat hasil pe dilakuk setelah seluruh proses pe selesai dilakuk. Proses pe sediri melalui sergkai tahap pjg seperti alisis permita, lelg, evaluasi harga, pemasok, d lai-lai yg tidak dicakup dalam bahas ii. Secara sigkat, proses ii dapat dilihat Koferesi Nasioal Tekologi Iformasi d Aplikasiya Palembg, 13 September 2014 pada gambar 2 yg meampilk Busiess Object Model utuk pe. Gambar 2. Busiess Object Model Proses Barg Satu proses pe berupa form pe yg dibuat oleh petugas terkait. Form ii memuat iformasi periode pe, jeis pe, d spesifikasi barg yg dimita. Satu kali pe dapat memuat beberapa item permita barg. Oleh karea itu, betuk umum form pe adalah header d detail, dima detil memuat item permita barg. Berdasark fugsi proses pe, maka dilakuk idetifikasi kebutuh fugsioal seperti cotoh yg terctum pada tabel 1. Pada tabel tersebut terlihat ada 4 proses utama yg merupak operasi dasar pegelola data yaitu CRUD (Create, Read, Update, Delete) Tabel 1. Kebutuh Fugsioal utuk No Kode Kebutuh 1 P01 2 P01.1 3 P01.2 4 P01.3 5 P02 6 P02.1 7 P02.2 Deskripsi Kebutuh Megelola Data Daftar Hasil Barg Mecatat Data Barg Megedit Data Barg Meghapus Data Daftar Hasil Barg Megelola Data Barg Mecatat Data Barg Megedit Data Barg
D4 8 P02.3 Meghapus Data Barg Gambar 3 memperlihatk fugsioalitas modul pe dari sudut pdg peggua (user) yaitu pitia pe. Gambar 3. Use Case Proses Percg Megguak Kosep MVC Pada pegembg aplikasi ii, pedekat yg diguak dalam melakuk alisis adalah pemodel RUP (ratioal uified process). Pada RUP, kelas dibagi mejadi tiga yaitu Boudary Class, Cotrol Class d Etity Class. Pada kosep MVC, pemodel kelas tersebut diterjemahk mejadi tiga kelas juga yaitu Etity Class mejadi Model Class, Boudary Class mejadi View Class, Cotrol Class ak tetap mejadi Cotrol Class. Pada kosep MVC, ketiga kelas di atas perlu disiapk utuk setiap tabel yg ak diakses. Pada cotoh kasus ii, didefiisik kelas-kelas utuk setiap bagi seperti yg terctum pada tabel 2. Pada tabel terlihat bahwa utuk satu kelompok operasi CRUD pada tabel yg sama (Req P01.1, P01.2, d P01.3) dapat dicakup oleh satu class Model, View d Cotroller yg sama. Kebutuh P01 mewakili operasi pada data bagi header d P02 mewakili operasi pada data bagi detil (item pe barg). No Tabel 2. Rcg Model, View d Cotroller P01 Nama Proses Kelola Data Model View Cotr oller Tbl_heade V_header_ C_hea r_pe pe der_pe P01.1 P01.2 P01.3 P02 P02.1 P02.2 P02.3 Koferesi Nasioal Tekologi Iformasi d Aplikasiya Palembg, 13 September 2014 Catat Data Barg Edit Data Hapus Data Kelola Data Catat Data Barg Edit Data Hapus Data Tbl_heade r_pe, Tbl_lokasi TBL_head er_pegad a, TBL_loaks i TBL_head er_pegad a TBL_peg ada TBL_peg ada, TBL_asset TBL_peg ada, TBL_asset TBL_peg ada F_header_p e E_header_ pe V_header_ pe V_pe F_pe E_pe V_pe C_hea der_pe C_hea der_pe C_hea der_pe C_pe C_pe C_pe C_pe Implemetasi Kosep MVC Setelah dilakuk idetifikasi classclass yg diperluk, utuk implemetasiya maka setiap kelompok class tersebut dibuat dalam satu folder. Pada cotoh kasus ii, karea aplikasi ak diguak oleh dua kelompok peggua yaitu admi d user, deg spesifikasi fugsioalitas yg berbeda, maka pada folder aplikasi disiapk dua subfolder yaitu admi d user. Hal ii utuk memudahk pegelola kode program. Seljutya, pada setiap subfolder tersebut, dibuat subfolder utuk megelompok kelas-kelas tadi berdasark kosep MVC sehigga dibuat tiga folder yaitu cotrol (utuk kelas Cotrol), etity (utuk kelas Model), d ui (utuk kelas View). Struktur folder ii dapat dilihat pada gambar 4. Pada masig-masig folder kemudi ditempatk class yg sesuai. Sebagai cotoh, misalya ak dibahas struktur kode utuk proses CRUD header pe. Cotoh berikut (tbl_head_pe.php) adalah skrip bagi etity utuk tabel head_ pe. Skrip ii memuat fugsifugsi utama yaitu koeksi ke database, meambahk data baru (fugsi
D5 iput_head_pe yg mewakili fugsi Create), membaca d meampilk data (fugsi get_data_head d get_head yg mewakili fugsi Read), memodifikasi data (fugsi edit_head_pe yg mewakili fugsi Update) d meghapus data (delete_head_pe yg mewakili fugsi Delete). tampil(){} Kemudi, dibuat kelas cotrol deg ama ctrl_head_pe.php yg diletakk pada folder cotrol. Kelas ii ak memggil tbl_head_pe.php sebagai kelas model yg ak diakses. Pada kelas ii, dimuat fugsi-fugsi utama seperti membaca data (get_data), modifikasi data (update_head _pe), meambahk data baru (get_isert_head), d meghapus data (delete_head_pe). ctrl_head_pe.php <? require "../etity/tbl_head_pe.php"; class ctrl_head_pe{ get_data($i_pe){ $tbl = ew tbl_head_pe(); $tbl->get_data_head_pe($i_pe); get_edit($i_pe){ Gambar 4. Struktur Folder Aplikasi get_isert_head_pe($c_skpd,$c_kab,$c_prov,$d_pe,$i_kep_skpd,$n_kep_skpd,$y_periode ) { } get_head_pe(){ } update_head_pe($i_pe,$c_skpd,$c_ka b,$c_prov,$d_pe,$i_kep_skpd,$n_kep_skpd,$ Y_periode) { } delete_head_pe($i_pe) { } tbl_head_pe.php <? require_oce("mysql.php"); require_oce("../cotrol/ctrl_head_pe.php "); class tbl_head_pe{ koek(){..} get_data_head_pe($i_pe) {..} get_head_pe(){..} iput_head_pe($c_skpd,$c_kab,$c_prov,$d_p e,$i_kep_skpd,$n_kep_skpd,$y_periode) {..} edit_head_pe($i_pe,$c_skpd,$c_kab, $C_prov,$D_pe,$I_kep_skpd,$N_kep_skpd,$Y_ periode){..} delete_head_pe($i_pe){ get_dataset(){ Koferesi Nasioal Tekologi Iformasi d Aplikasiya Palembg, 13 September 2014 Seljutya, disiapk kelas utuk meampilk data yg diletakk pada folder ui (r_head_pe.php). Kelas ii berper sebagai bagi View, yg didalamya memuat fugsi-fugsi membaca d meampilk data (get_data, tampil_head_pe), d modifikasi data (yg berper meerusk parameter ke bagi cotroller). r_head_pe.php <? require "../cotrol/ctrl_head_pe.php"; require "../display_header_admi.php"; class r_head_pe{ isert_data_head_pe(){.} edit_data_head_pe($i_pe,$c_skpd,$c _kab,$c_prov,$d_pe,$i_kep_skpd,$n_kep_skp d,$y_periode)
D6 {.} get_data(){.} get_cetak_i_pe(){.} get_i_pe(){.} get_data_i_pe(){.} get_deletehead_pe(){.} get_isert_head_pe(){.} get_edit_head_pe(){.} tampil_head_pe(){.} Kosep ii diterapk pada semua tabel yg ak diakses d dimodifikasi pada aplikasi. Deg meerapk kosep ii, meskipu awalya terkes bahwa aplikasi mejadi lebih kompleks, tetapi dalam proses modifikasi aplikasi akibat perubah struktur database, ak mejadi lebih mudah karea setiap tabel dikelola pada script yg terpisah sehigga mudah megisolasi perubah pada kelompok script tertetu. Hal yg sama juga terjadi pada proses peguji karea kesalah dapat segera diidetifikasi d diarahk pada kelompok script tertetu. KESIMPULAN Berdasark kaji atas kosep MVC ii dapat disimpulk hal-hal sebagai berikut: 1. Kosep MVC adalah kosep dasar yg dapat diterapk pada berbagai bahasa pemrogram sejauh bahasa pemrogram tersebut medukug kosep pemrogram berorietasi obyek. 2. Pada peerap MVC, pembuat program perlu melakuk alisis atas proses bisis yg ada d megidetifikasi kelas-kelas yg harus disiapk sebelum membuat kode. Kelas ii harus dircg sedemiki rupa sehigga utuk setiap sumber data yg diakses (tabel) perlu disiapk miimal tiga kelas yg salig beriteraksi satu sama lai. 3. Peerap kosep MVC pada pemrogram memugkik kemudah pada proses modifikasi d pemelihara program akibat perubah tarmuka ataupu perubah struktur sumber data. Hal ii karea deg adya pemisah, ak memudahk pembuat program dalam megisolasi perubah d megidetifikasi perubah d peelusur kesalah. DAFTAR PUSTAKA [1] Hopkis, Callum, 2013, "The MVC Patter d PHP, Part 1", diakses dari www.sitepoit.com (http://www.sitepoit.com/the-mvcpatter-d-php-1/), tggal 22 Juli 2014. [2] Koirala, Shivprasad, 2014, "Lear MVC (Model View Cotroller) step by step i 7 days", diakses dari situs www.codeproject.com, tggal 22 Juli 2014. [3] Perma, Budi, 2013, "Aplikasi CRUD Megguak Framework Codeigiter deg Tekik Scaffoldig", diakses dari situs ilmukomputer.org, tggal 25 Juli 2014. [4] Rahmadisyah, Dudi, d Dedy Irw, 2012, "Implemetasi Metode Model View Cotroller Megguak Framework Code Igiter dalam Pegembg Aplikasi Majeme Depo Petikemas pada Uit Usaha Belaw Logistics Ceter", Prosidig Semiar Nasioal Tekologi Iformasi d Komuikasi (SNASTIKOM 2012). Koferesi Nasioal Tekologi Iformasi d Aplikasiya Palembg, 13 September 2014