RekayasaBalik DatabaseKesehatandengan PendekatanGeneric Rdbe SlametSudaryantoNurhendratno F akuttasiIlmu Komputer,UniversitasDian Nuswantoro, Jl. NakulaI No. 1- 5 Semarang seIametaIica301@amaiLcom
Abstract Mostdevelopingcountriesincludinglndonesiaoftenfacea healthproblemthatthe wayto overcome and handteif is the programof the government.ln determiningthe quality of hospitalmedical record, ft needs a significanfaspecf which is used in informationsysfems supportingthe managementof medicatrecords databaseitself.Basedon preliminarystudies,there are still some problemsin the useof medicalrecord.lt cannotbe optimalbecauseit is difficultto adapt andadjustif thereare new functionsin operationalneeds,whilenew functionscannotbe directly translatedor appliedin informationsystemsand databasesysfem in a hospital.The manager does nof haveenough documentsof the informationsysfem designincludingthe data base. Theyoftentendto changetheinformationsysfemwith thenew one whenthereis new functional needs that cannotbe adaptedin the informationsystem,withottt usingthe reverseengineering. This study is aimed at creatinga sysfem of medical recordssuch as DatabaseReverse Engineeringtechniqueswhich can generallybe utilizedto accommodatethe needs of the developmentof hospitatinformationsysfems so thaf the informationsystemsand databases of designcan be tailoredto theirneedsevenminimaldocumentation information systemalthoughthereis function of the the ertend This studyatsodescribeshow b Revers engineeringis the lf ris because of function. the of needfor new even the change product restructured or system through principles device, object, of a processto find technological productsor make the tools or try to Then they sysfem. of the analysis,functionsand operations product. old of the or similarity progr€tmsthat have advantage ln managingthe database,reverseengineeringcan be appliedto parsethe databasestructure that has beenformed.tt is called as reverse engineeringdata (DBRE). Databasereverse of the existenceof an engineeingis an analysismethodto showthe data needs specification runs. legacy sysfem the when informationsysfem.lt is needed Keytords: ReyerseEngineering,DatabaseReverseEngineering(DBRE),Medical Record Database.
1. PENDAHULUAN prinsip-prinsip suatu teknologidari prosesuntukmenemukan merupakan Reversengineering fungsidanoperasiataucarakerja perangkat, obyek,produkatausistemmelaluianalisistersetruktur, yang dimilikioleh sistemtersebut.Kemudianmencobauntukmembuatalat atau produkatau dariproduklama.Ataudengankatalainreverse ataukesamaan programyangmemilikikelebihan carakerjailmiahdanteknis mempelajarirancangan menganalisis, adalahmengurai, engineering atauprodukpihaklainuntukakhirnyadibuatprodukbaruyanglebihbaikatauberbeda.Reverse maupunperangkatlunak.Dalam padasistemmekanik,elektronik dapatditerapkan Engineering merancang database rekayasaperangkatlunakdalamsalahsatutahapnyaadalahbagaimana datauntukperangkatlunakitu sendiri.Dengandemikiandalam yangsesuaidengankebutuhan kegiatandatareverseenginering(DRE).lstilah akanmelibatkan softwarereverseengineering tidakseringdisebutkarenasecaraumumsudahdiwakiliatautertutup DataReverseEngineering dari itusendiri.TeknikDRE terdiriataspembatasan yaituReverseEnginering kegiatanbesarnya
304
lurnot Dian Vo[. 11 M. 3 SEtember2071
satuataulebihsubsetdaripadakegiatanreversengineering. Daritahunke tahuntentangriset dan publikasiDREmengelompokan kedalam3 garisbesarataubidangsebagaiberikut: o DREmenterjemahkan metodologidan algoritma-algoritma . peralatan Penggunaan DRE o DREmerupakan penerapan secaraspesiflkterhadapaplikasi-aplikasi
Gambar1-: DataReverseEngineering Publication CometromDataaseDesigners andSoftwareEngineers padadatabase,reverseengineering Khususnya dapatditerapkanuntukmenguraistruktur databaseyangsudahterbentuk. Halinibisadisebutdatareverseengineering (DBRE).Database reverseengineering merupakan metodeanalisisauntukmemperlihatkan spesifikasi kebutuhan data dari keberadaan suatusysteminformasi.Prosesini diperlukanketikabekerjadengan( legacysystem) atausistemwarissanyangtelahberjalan.Adapuntujuansecaraumumdalam pelaksanaan reverseengineering adalah: produkbekerjalebihkomprehensif a. Memahami bagaimana dibanding denganhanyamelakukan b. c. d.
pengamatansaja. Menyelidikidanmemperbaikikesalahandan keterbatasan yang ada dalamsistem. prinsip-prinsifdesainproduksebagaibagiandari pendodikanteknik. Mempelajari Membuat produk - produk sistem dan sistem yang kompatibel,sehingga mereka dapat
bekerjasamaatauberbagidata. e. Mengevaluasi sendiriuntukmemahami produk. keterbatasan f. Menentukan apakahoranglain yangtelahmempunyailiterallycopiedmerupakanpemilik teknologi. g. Membuat dokumentasi untukpengoperasian suatuprodukyangmanaprodusen tidaktanggap terhadappermintaan layananpelanggan. h. Mentransformasikan menjadiprodukyangbergunauntukmerekaberadaptasi olehsistem barudanplatformbaru. Pengelolaan datayangbaikpadakegiatan Sistemlnformasi Manajemen RumahSakit(SIMRS) dapatdimulaidenganmerancang desaindatabaseyangsesuaidengankondisidan faktayang adapadausurkegaiatan rumahsakititusendiri. padarancangan Metodespesialisasidata database sisteminformasirumahsakitakan mespesialisasikan elemen-elemen dan unsur-unsursuatu data klinis.Jika dilakukanpengembangan atributsalahsatu unsursuatudata klinisakan tergolongkan kedalam database rekammedisyangsesuaidengan prinsippengelolaan datacatatan medissetiappasientermasukdataumumdatapendukung pemeriksaan dan perawatanpasien yangbaikdan lengkaptanpamengganggu sehinggabisamenjadicatatanelektronik unsuratau elemendataklinisyanglain. Dari kegiatanprosespencatatandata medisdi rumahsakit tersebutjelas, keberhasilan penuhdaripengelolaan suatusisteminformasiakan sangattergantung datiabase rekammedisnya. Sehinggadalammengembangkan sisteminformasirumahsakitlangkahyang sangatpenting
(SkmetSutrary anto9{ur frentrano fufoyantu[i( Danbase....... )
305
padadatabaserekammedisjika ada adalahbagaimanbisa melakukanreverseengineering kebutuhanfungsionalitas baru dalamaplikasisisteminformasirumahsakit yang akan pengembangan tetapitidak memilikidokumen atauperancangan dikembangkan sistemnya. Hal pengembangan inidikarenakan dalamusahamengemban sifatinovasidan acapkalisistem kegiatan kebutuhan danfungsional cenderung berubahsehingga mempengaruhisistem infonnasipengelolaan jugasangatminim. datarekammedisyangsudahberjalan, sedangkan dokumenpengembangan Haliniakanmempengaruhi kualitas dankendala darisistemyangakandikembangkan. padadatabaseRekamMedis,sesuaidengan Dalammelakukan reverseenginering database yangdi publikasikan konseppedekatan olehHainautmakadapatdigambarkan sebagaiusaha transformasi sebagaibagianinversforward engineering. Secaragarisbesarmetodologi yang dipakaioleh Hainuaut adalahsebagaiberikut: 1. EkstraksiStrukturdata- adalahmendeskripsikan secaralengkaptentangskemasurnber yangdihasilkan denganmemperoleh informasiyang secaraimplisit hanyaadadidalamdiskripsi basisdata.Contohnya dalamada didalamkontenbasisdata,dalamprogramaplikasiatau inidapatdisebutdenganinversdesainfisik.Dimanaopersional dalamviews.Langkah level modeldiekstrakse kedalam bentukfungtional areadatamodel(FADM). 2. Konseptualisasi strukturdata- adalahstrukturlogisdianalisis dandisusunkembaliterlebih dahulukemudian ditransformasi kedalamstruktur-struktur modeltargetsematik.Langkahini dapatdisebutsebagaiinversidesainlogis.Dimanaareadata model(FADM)di ekstraksi kedalam defense datamodel(DDM). Oefurs€ Dd
r/eelpe4
funclhrd tuw &r fioehF tS/, @*tutd hN red8b
#t dsbnpde,lF
op€r€ltfitdl6t6'rbd€l d LtgxrtionSy$m*l
fadabrmd€le
O0€rEtiind b?d modd d[&rdi]n Sl€bmtz
(DDA)developmentandreflnement Gambar2 : DefenseDataArchitecture
2. METODEDBRE(RatabaseReverseEngineering) perbaikan Sejakreverseengineering dapatmenjadikan skemakonseptualdari kualitasstruktur kodeatau(operation code)ini menjadidasaralasanuntukmempertimbangkan bahwaproses majubisadibalikataudi inversmenjadilangkahsebelumnya. Meskipun rumit tapihalinimenjadi yang baikuntukdibuktikan. hepotesispermulaan Konsepmelakukanpembalikan (invers)dari pendekatan fonrardengginering biasadisebuatsebagaisuatu metodologiumum dalamreverse (genericmethodology engineering databasereverseengineering) dimanakonseptersebutdapat dikelompokkan menjadibeberapa2 pahaseutama,yaitu : a. PhaseDataStructureExtraction b. PhaseDataStructure Conzeptualization pendekatan Metodeinidapatdimodelkan sebagaimetode umum(generic metodhology) berikut pfcr) = (code) eg
306
turnnf Dian t/o[. tt fu. 3 SEtembu2frt1
Langkahpertamakita mengobservasi bahwaprosesmembalik suatu proseshirarki dekomposisiyang terkandung didalam suatuprosesutamamenjadisub proseslalumembalikan masisng-masing (invers).Untuksuatusistemsistemyangdi sub prosesdengankebalikannya yangidealadalah: kemabngkan modelpendekatann eg = f,fcr)(code) FE cl) = {OPT ctl' TRANScI}; pgttt {CODoo,cl);COD,"*(-1}
Atau (codeoo,) PSddl= CODoo,cl) PS* = COD",.f{l(code*,) P S = P S o oU, P S " " , L5= ppr.lr(PS) 95 = {OPT(-lr; TRANST-1}(LS) Secara garis besar metodologitersebutmemilikitiga langkahsebagaiberikut : 1. Merecoveryphisycalschema(PS)dari operasionalcode{(codeo/,(code"o)}.Hasildari proses ddl code digabungkedalamPS, sebagaisuatu extraksikedalampS. 2.
3.
MerecoveryPS kedalamlogicalschema (LS). Hal ini harus berjalansecara simple,karena dalamfonruardproses,proses-prosesyang terkandungdidalamnyaakan ditambahkankedalam strukturlogis atao logika schema ini. Merecovery logical schema kedalam conceptual schema (CS). Memindahkan dan mentransformasikonstruksioptimization (deoptimizingLS) dan menginterpestasikan konstruksilogikakedalamstrukturkonseptual(untraslationLS). $nllbr*e fwrr* sfi! Ea#iflr*rta*
llatEba*t &cterra € n*is wrl*S
li*rffirlix{rhs *e{clt':{..1 ENL*ril
f rrmr*furrlrr ** *,. is
Lo4ilrl mhrml
ra o
U et'r *rl{}l*o
*{*
*
lbrrlwi d*r13e
L*Air{; fr*cffi1
$rt*ar.Cl*rnlog F
7 Y
T r
fr*gamtior
c
{*
ri a
$*flM lr{tld{
S*dsl T r*s*k dsn
11 g
I
s'r**ry*-8tflu*rowt
*
l}
FIlL"rddr-E rt?rrtl**
a
&
F"
Gambar4 : DBREProsessebagaiinversforwardproses
gftnfrendratno (SkmetSudaryanto fofoyasatufi( Database....... )
307
DAN PEMBAHASAN 3.. HASILPENELITIAN DMS-DDLAnalisis Databaseexistingyangadapadadatabaseserverdilakukanoperasireverseengineering powerdesigner.Parserpowerdesignerakan melakukanekstraksi denganmenggunakan dari tabelfisikyangada padafile databasemenjadiuraianfile dan catatatandan menjadikan file dan catatantersebuthasil potongandari tabel yang ada pada media penyimpanan catatandan uraianfile tersebutmerupakanuraaiandari databaseaktif. Masing-masing satu kesatuanatribut dari kondisifisik basis data. Masingmasinguraianfile ekstraksi keunikandan indekssatu kesatuanyang utuh. tersebutdilengkapibatasan-batasan
E @ @ t---J LJ
L-J
Gambar 5 : Potonganfile record yamg ada pada databaseexisting
powerdesigner lakukandenganmenggunakan Operasiinisaya 12,padaprosesdms-ddlextraction melakukan ini parserpowerdesigner de-scriptdaritabelfisikkedalamddl script(ddlcode).Hasil powerdesignermenjadi: dariekstraksifileataurecoddenganmenggunakan ReverseEngineering Reverseengineersthe database... Reverseengineering tables... Tabletpasien lndex PK_TPASIEN lndex Ref_l94753_FK lndex Ref_195488_FK lndex tpasien_FKl Index tpasien_FK2 Index tpasien_FK3 Key PK_TPASIEN Tabletregistrasi lndex PK_TREGTSIRAS, Key PK-TREG,SIMS, Tabletpelayanan' KSAAN lndexPK_TPEMER lndex tpemeriksaan_FKl K2 Index tpemeriksaan_F lndex tpemeiksaan_FK3
308
lunu[ Dian'lot. ll M. 3 SEtemhernll
Key PK_TPEMERTKSAAN Reverseengineering references... between(a ta . Keference Referencereilayanan reflayananoerween 1 object(s)havebeenreverseeng: references... i3" Reverseengineering Referencebetweentablestpemeri 1 object(s)havebeen reverseeng :"1
l-.:
.-i
3.2 Field Refinement dan Fot, fieldini yan Dalammenentukan fieldyangmemilikikaitan dandiskrips sub secaraeksplisikarenamemiliki lain sertamemilikiindex. .:;l;: fEl-s:::s:--::; Reverseengineeringreferences... Referencereflayananbetweentablestpemeriksaan and refpemeriksaan have been reverse engineered. 1 object(s) Reverseengineering referen ces... and refpemeriksaan Referencebetweentablestpemeriksaan 1 object(s)havebeenreverseengineered. and refpemeriksaan Referencebetweentablestpemeriksaan Referencebetweentablestlayananand refsifatlayan Reference betweentablestlayananandrefienislayan.
!!si MlA srifle2 5 : @ r
:asbeberapa :a disebutkan ;:nganobyek
:f: *ii: JLb E
*.'*.i fr4ji
s
'#:*!i## Gambar6 : identifier darifield-field multivalue padaldentifier multivalue Penekanan darifield-field yangtersembunyi kemungkinan terdapatidentifier untukmengindarijika Padalangkahinibertujuan sehinggatidakbisamembacakondisinilaidari suatuobyeksecaraunikdari semuareferensi yangterkait altertabledbo.tlayanan EF_1I 575 REFSIFAT dropconstraintFK_TLAYANAN_R go altertabledbo.tlayanan 9584 REFJENlS dropconstraintFK_TLAYANAN_REF_1
(SkmetSudary anto9{urfiendrano ase....... ) rcfuyasafu [ifrDatab
309
go if exists(select1 from sysindexes where id =object_id('dbo.tlayanan') and name ='Ref-195130-FK' and indid> 0 and indid< 255) Ref-195130-FK dropindexdbo.tlayanan. go if exists(select1 fiom sysindexes where id =object_id('dbo.tlayanan') and name ='Ref_l95241-FK' and indid> 0 and indid< 255) 95241-FK dropindexdbo.tlayanan.Ref-1 go if exists(select1 from sysindexes where id =object_id('dbo.tlayanan') and name ='Ref_195500-FK' and indid> 0 and indid< 255) Ref-195500-FK dropindexdbo.tlayanan. go 3.4.Maximal cardinalitas
Cardinalitas Gambar7 : Penentuan relasiantarentitasyangterlibatdari nilaisematikreal keterkaitan Adalahmemaksimalkan relasisehingga tergambar nilaidanasalmuasalterjadinya kedalam bentukrelasibatrasan-batasan jelas (kardinalitas) yang dalam menyususun schema hubungandan batasanantarentitas conceptual. 4.3 Gode generator dalampowerdesigner dikerjakan olehmesinreverseegineering ddlsecaralangsung Kode-kode
310
lunu[ Dionq/o[tt fu. 3 Squtrta 20u
-- -- -- -- -- -- -- -- -- r t
E--------
/* Table: tlayanan
*l
t
---------*, ---------
, ( createtabledbo.tlayanan norm varchar(6) collateSQL_Latinl_General_CP1_Cl_AS notnull, varchar@1)collateSQL_Latinl_General noreg CP1_C|_AS notnull, kdlayan varcha(13) collateSQL_Latinl_General_CP1_Cl_ASnotnull, nobukti varchar(16)collateSQL_Latinl_General_CP1_CI_ASnotnull, kdfarmasi smallint notnullconstraint DF_tlayanan_kdfarm_436D9591 default0, kdunit varchar(3) collateSQL_Latinl_GeneralCPl_Cl_ASnotnull, tgllayan datetime notnull, kdkelas varchar(9) collateSQL_Latinl_General_CP1_Cl_ASnotnutl, kdjenis tinyint notnull, kdsifat tinyint notnull, kdpaket tinyint not null, volume tinyint notnullconstraint DF_tlayanan_volume default0, bhp int notnullconstraint DF_tlayanan_bhp_4461B9CA default0, js int notnullconstraint DF_tlayananjs 4555DE03default0, jp int notnullconstraint DF_tlayananjp_464A023C default0, ju int notnullconstraint DF_tlayananju 473E2675 def;ault 0, jpk int notnullconstraint DF_tlayananjpk_48324AAE default0, jhc int notnullconstraint DF_tlayananjhc_49266EE7 default0, jdp int notnullconstraint DF_tlayananjdp_4A1Ag32Odefault0, int ans notnullconstraint DF_tlayanan_ans defiault 0, nostd int notnullconstraint DF_tlayanan_nostd_480E8759default0, farmasi int notnullconstraint DF_tlayanan_farmasi default0, jumlah int notnullconstraint DF_tlayanan_iumlah_4C02DB92 default0, selisih int notnullconstraint DF_tlayanan_selisi 4CFOFFCB default0, tglentlayan datetime null, iduser varciar(2S) collateSQL_Latinl_GeneralCPl_Cl_ASnotnull, statusbayarbit notnullconstraint DF_tlayanan_status_4DEB2404 default0, konsy bit notnullconstraint DF_tlayanan_konsy default0, primarykey(norm,noreg,kdlayan,nobukti,kdfarmasi, constraint PK_TLAYANAN kdunit) on "PRIMARY' ) on "PRIMARY" go l*--------
l*-----
/* Index:Ref_195130_FK
*l
t*--------
---------*, ---------
,
createindex Ref_195130_FKon dbo.tlayanan( iduserASC ) on "PRIMARY' go
4. Kesimpulasn Studikasusini hanyamerupakanpotonganbeberapareverseengineering dari beberapa existingtable. Dalamdatabasereverseengineering ini kita akan sangatterbantuuntuk petunjuktentanghal-halyangberkaitandengankoseptuladesaaindaridatabase mendapatkan yang fisik sudahada (databaseexisting)sehinggakita akan dapatmengetahuikonsepdari
(SkmetSularyantolr{rrfiertlratno \dgy asa tu [i( Data5ase....... )
311
perancang dalammemenuhikebutuhan-kebutuhan untukbisakitaberinilaitambah sebelumnya baru berkaitandengandatabaseexistingyang akan digunakanoleh perbaikanaplikasiyang DalamDRE ini kitatidakcukuphanyamenterjemahkan mengekstraksi menyertainya. struktur pentingyangberkaitandengan dua permasalahan datanyasaja,tetapikitaharusmenguraikan databaseexistingyaitu,mengubah strukturtabelkedalamkaidahdanasasperancangan database untukmenyusunmodelrelationaldan schemaconceptualsehinggadapat dan menganalisis fungsionalitasnya. diketahui ataudibacarancangan
DAFTARPUSTAKA M. 1994.Extracting an EntityRelationship Schemafroma Relational Database tll Andersson, in Proc.of the 13thInt.Conf.on ERApproach,Manchester, throughReverseEngineering, Springer-Verlag W.,J. 1995.Observedldiosyncracies f Relational Database designs, El Blaha,M.R.,Premerlani, in Proc.of the2nd IEEEWorkingConf.on ReverseEngineering, Toronto,July 1995,IEEE ComputerSocietyPress P.1994.Transformations in Reengineering Techniques, in Proc.of the B] Bolois,G., Robillard, 4th Reengineering Forum"Reengineering in Practice",Victoria,Canada M.,Amarelde Sa,J. 1983.Designing EntityRelationship Schemasfor Conventional [41 Casanova, fnformation Systems,in Proc.of ERA,pp.265-278 Schemesinto EntityFl Casanova,M., A., AmaralDe Sa. 1984.Mappinguninterpreted Relationship diagrams: two applications to conceptualschemadesign,in IBM J. Res & Vol.28,No 1 Develop., of Relational Databases t6l Chiang,R.,H.,Barron,T.,M.,Storey,V.,C. 1994.ReverseEngineering : Extraction of an EERmodelfrom a relationaldatabase,Journ.of Dataand Knowledge Engineering, Vol.12,No.2 (March94),pp107-142 n
Davis,K., H., Arora,A., K. 1985.AMethodology for Translating a Conventional FileSystem intoan Entity-Relationship Model,in Proc.of ERA,IEEE/North-Holland
Bl Davis,K., H., Arora,A., K. 1988.Convertinga RelationalDatabasemodelto an Entity Relationship Model,in Proc.Of ERA: a Bridgeto the User,North-Holland
312
Iurru[ Dinnt/o[.tt fu. 3 Srytartamil