## IMPLEMENTASI INTERPRETIVE TRANSFORMER APPROACH DALAM MIGRASI DATA SEBAGAI RANGKAIAN DATABASE REENGINEERING
Defa Hanifta Putra, Helmie Arif Wibawa
Jurusan Ilmu Komputer/Informatika, Fakultas Sains dan Matematika, Universitas Diponegoro, Jalan Prof. H. Soedarto, SH. Tembalang, Semarang, 50275, Indonesia defahaniftaputra@gmail.com

## ABSTRAK
Data  digunakan  pada  hampir  setiap  sistem/aplikasi/software  yang  mendukung  aktivitas  suatu organisasi dalam bentuk database.Aktivitas organisasi yang semakin kompleks menyebabkan sistem harus  memiliki  fitur  yang  semakin  kompleks  pula.Pada  beberapa  kasus,  organisasi  bahkan  perlu mengganti sistem meskipun dengan data yang sama dengan sistem lama. Sistem yang baru memiliki data  kosong  sehingga  perlu  data  dari  sistem  lama  melalui  migrasi  data.  Migrasi  data  dilakukan dengan database reengineering yang terdiri dari tiga tahap yaitu translasi skema, konversi data, dan translasi basis data program. Migrasi data yang besar memerlukan metode interpretive transformer approach  pada  tahap  konversi  data  karena  runtutan  proses  yang  relevan.  Melalui  penerapan rangkaian  database  reengineering,  data  dapat  dimigrasikan  dari  sistem  lama  ke  sistem  yang  baru tanpa harus membangun data dari nol.
Kata  kunci :  data,  migrasi  data, database  reengineering, Prestashop, interpretive  transformer approach

## I. PENDAHULUAN
Data  merupakan  komponen  penting  dalam suatu sistem/software/aplikasi. Berbagai
organisasi menggunakan sistem yang
mendukung aktivitasnya yang mana di dalamnya terintegrasi  data  yang  terbungkus  dalam  basis data.Aktivitas organisasi yang semakin kompleks menuntut organisasi tersebut memiliki sistem  dengan  fitur  (fungsi)  yang  semakin kompleks  pula.  Sistem  yang  mendapatkan update fitur dukungan sangat relevan untuk terus dipakai.
Namun ada beberapa organisasi/perusahaan yang harus mengganti sistem karena pertimbangan  dukungan  fitur.  Dalam  hal  ini penelitian  dilakukan  terhadap  sebuah website yang  memiliki  domain  www.edusarana.com. Website ini dibangun dengan CMS berbasis Zen Cart,  setelah  dilakukan  analisis,  ternyata dukungan  fitur  Prestashop  lebih  dikembangkan daripada  Zen  Cart.  Oleh  karena  itu  perlu dilakukan  penggantian  sistem  dari  Zen  Cart  ke Prestashop  dimana analisis dilakukan dalam hal dukungan modul, data, dan antarmuka.
Prestashop  sebagai  sistem  yang  baru, memiliki  data  yang  masih  kosong.  Pembuatan
data dari nol pada sistem yang baru memerlukan biaya  (harga,  sumber  daya,  waktu)  yang  sangat mahal.  Oleh  karena  itu  diperlukan database reengineering dimana digunakan metode interpretive  transformer  approach pada  tahap konversi  data  untuk  memigrasikan  data  dalam jumlah besar.
Artikel  ini  menguraikan  tentang    proses migrasi data massal dari Zen Cart ke Prestashop dengan mengimplementasikan metode interpretive  transformer  approach pada  tahap konversi data sebagai rangkaian proses database reengineering.

## II. TINJAUAN PUSTAKA
Data  adalah  kumpulan  diskrit,  fakta obyektif  tentang  suatu  peristiwa  [2].  Data digunakan
pada
hampir semua sistem/aplikasi/ software yang  terbungkus  dalam suatu basis data . Basis data adalah suatu koleksi data  yang  saling  berhubungan  secara  logis  dan menggambarkan  integrasi  antara  suatu  tabel dengan tabel lainnya, basis data dirancang untuk memenuhi  kebutuhan  informasi  dari  suatu organisasi [4]. Suatu CMS ( Content Management  System )  memerlukan  basis  data
untuk melakukan operasi fungsionalnya sekaligus  sebagai  tempat  penyimpanan  data. Salah  satu  CMS  tersebut  adalah  Zen  Cart  dan Prestashop.
Pada suatu kondisi tertentu, suatu organisasi perlu  melakukan  penggantian  sistem  sehingga memerlukan migrasi data dari sistem yang lama ke sistem yang baru. Secara umum, migrasi data merupakan  aktivitas  dimana  data  dimigrasikan dari platform yang  lama  ke platform yang  baru [1]. Suatu  sistem/aplikasi/ software cenderung mengalami  pembaruan  seiring  dengan  semakin kompleksnya  tuntutan  fungsi  sistem.  Hal tersebut  tentu  melibatkan  rekayasa  ulang  sistem maupun database reengineering dimana komponen  sistem  yang  lama  dipergunakan kembali  untuk  mengembangkan  sistem  yang baru.
Database
reengineering adalah merekayasa  kembali  basis  datayang  sudah  ada dengan  harapan  sistem  yang  baru  dapat menggunakan  basis  datalama  tanpa  harus membuat  data  dari  nol. Database  reengineering terdiri  dari  tiga  bagian,  yaitu  translasi  skema ( schema  translation ),  konversi  data  ( data conversion ),  dan  translasi database program ( database program translation ) [3].
Translasi  skema  merupakan  proses  awal dalam database  reengineering. Translasi  skema terdiri dari dua pendekatan utama, yaitu :
a. Direct translation
Pendekatan  ini  merupakan  pendekatan  yang dapat  secara  langsung  menranslasikan  skema nonrelasional  ke  skema  relasional.  Namun, dengan direct  translation sangat  rawan  terjadi kehilangan  informasi  karena  prinsip direct translation yang  mana  operasinya  cenderung primitif  dan  tidak  dapat  me- recovery atau bahkan mengidentifikasi semua skema awalnya yang  asli. Indirect  translation masih  terbagi lagi  menjadi  beberapa  metode,  yaitu Direct Translating  a  Network  Model  to  a  Relational Model dan Direct  Translating  a  Hierarchical Model to a Relational Model [3] . b. Indirect translation
Pendekatan  ini  merupakan  pendekatan  yang dilakukan secara berantai. Artinya skema baru didapat  dari  hasil  pemetaan  skema  yang  lama. Metode  ini  sangat  sesuai  dengan  kasus  dalam
migrasi  data.  Oleh  karena  itu  translasi  skema yang  digunakan  adalah  dengan indirect translation yaitu  melalui  pemetaan  skema relasi  ( relational  schema )  ke  model  EER ( Extended  Relationship  Model )  agar  data menjadi lebih mudah dianalisis.
Translasi  skema  yang  menggunakan model  relasi  memiliki  beberapa  aturan  antara lain:
a. Relasi  primer,  untuk  mendeskripsikan entitas [3].
b. Relasi  primer  tipe  1  (PR 1 ),  relasi  ini  tidak memiliki  kunci  primer  dari  entitas/relasi lain [3].
c. Relasi  primer  tipe  2  (PR 2 ),  relasi  ini terdapat  entitas/relasi  yang  berisi  kunci primer dari entitas/relasi lain [3].
d. Relasi  sekunder,  entitas  memiliki  kunci primer  yang  secara  penuh  atau  hanya sebagian yang dibangun dari penggabungan dari kunci primer-kunci primer relasi/entitas lainnya [3].
e. Relasi  sekunder  tipe  1  (SR 1 ),  terjadi  bila secara keseluruhan dibentuk dari penggabungan  kunci  primer  dari  relasi primer [3].
f. Relasi  sekunder  tipe  2  (SR 2 ),  yaitu  relasi sekunder yang bukan tipe 1 [3].
g. Key Atribute – Primary (KAP), yaitu atribut pada kunci primer relasi sekunder yang juga merupakan  kunci  pada  beberapa  relasi primer [3].
h. Key Atribute – General (KAG), yaitu semua atribut  kunci  primer  lain  pada  relasi sekunder  yang  bukan  merupakan  tipe  KAP [3].
i. Foreign  key  atribute (NKA),  yaitu  atribut kunci bukan primer dari relasi primer yang merupakan kunci tamu [3].
Dalam hal ini, translasi skema dilakukan dengan memetakan  skema  relasi  basis  data  ke  dalam model Extended Entity Relationship (EER). EER merupakan  suatu  metode  untuk  mendefinisikan struktur  dan  fungsionalitas  dari  suatu  basis dataatau  sistem  informasi  [5].  Secara  umum EER diilustasikan pada Gambar 1.

## Gambar 1. Model EER [3]
Konversi  data  merupakan  teknik  pengubahan database dari sistem lama agar dapat digunakan di  sistem  yang  baru.  Konversi  data  yang  baik mampu  mengonversi datasource dengan  tanpa menghilangkan informasi, artinya tidak ada data penting  yang  hilang[3].  Konversi  data  dapat dilakukan dengan berbagai metode, antara lain : a. Customized Program Approach
b. Interpretive Transformer Approach c. Translator Generator Approach d. Logical Level Translation Approach
Interpretive  transformer  approach merupakan metode dalam konversi data dimana pendekatan ini  menerima  definisi datasource, definisi  data target,  memetakan  definisi,dan  memetakan  data dari datasource ke basis data target [3]. Interpretive  transformer  approach memiliki model yang diilustrasikan pada Gambar 2 dan 3.
Gambar 2. Interpretive transformer [3]
Gambar 3. Model umum generator translator [3]
Interpretive  transformer  approach memiliki tahap  dalam  melakukan  konversi  data  seperti diilustrasikan  pada  Gambar  3  maka  sangat relevan  untuk  diterapkan  pada  data  yang berjumlah ribuan sampai dengan puluhan ribu.
Tahap  terakhir  dalam database  reengineering adalah  translasi  basis  data  program.  Translasi basis data program merupakan proses menranslasi/menransfer basis data eksternal agar dapat diterima dan digunakan oleh sistem target. Translasi  basis  data  program  memiliki  5 pendekatan yaitu:
a. rewriting b. s oftware interface c. e mulation
d. d ecompilation e. co-existence
Emulation merupakan  salah  satu  metode  dalam translasi  basis  data  program  dimana  pendekatan ini melibatkan dukungan software atau firmware pada  sistem  target  yang  dapat  memetakan commands dari  program/sistem  sumber  ke program/sistem target sehingga ekuivalen [3].
III. HASIL DAN PEMBAHASAN
Database  reengineering terdiri  dari  tiga  bagian, yaitu  translasi  skema  ( schema  translation ), konversi  data  ( data  conversion ),  dan  translasi database program ( database program
translation ).

## Translasi Skema
a. Translasi skema basis data sumber Translasi  skema  dilakukan  terhadap  tabel pembangun kategori dan produk. Skema relasi kategori dan produk dipetakan ke model EER. Skema  relasi  kategori  diilustrasikan  pada Skema  1  sedangkan  skema  relasi  produk
diilustrasikan pada Skema 2. Translasi Skema 1  diilustrasikan  pada  Gambar  4,  translasi Skema 2 diilustrasikan pada Gambar 5.
Relasi edudb_categories
(categories_id#,
categories_image,  parent_id,  sort_order, date_added, last_modified, categories_status) Relasi edudb_categories_description
(*categories_id#, *language_id#, categories_name#, categories_description) Relasi
edudb_meta_tags_categories_descripti on (*categories_id#, *language_id#,
metatags_title#, metatags_keywords, metatags_description) Relasi edudb_languages(languages_id#, name, code, image, directory, sort_order) Skema 1. Skema relasi kategori
Gambar 4. Model EER kategori
Relasi
edudb_products (products_id#,
products_type,
products_quantity, products_model, products_author, products_image, products_price, products_virtual, products_date_added,
products_last_modified,
products_date_available,  products_weight products_status,  products_tax_class_id, *manufacturers_id#, products_ordered,
products_quantity_order_min,
products_quantity_order_units, products_priced_by_attribute, product_is_free, product_is_call, products_quantity_mixed, product_is_always_free_shipping, products_qty_box_status, products_quantity_order_max, products_sort_order, products_discount_type, products_discount_type_from, products_price_sorter, *master_categories_id#, products_mixed_discount_quantity, metatags_title_status, metatags_products_name_status,
metatags_model_status, metatags_price_status, metatags_title_tagline_status) Relasi edudb_products_description (*products_id#, *language_id#, products_name,  products_description, products_url, products_viewed) Relasi edudb_manufacturers (manufacturers_id#, manufacturers_name, manufacturers_image, date_added, last_modified) Relasi edudb_categories (categories_id#, categories_image, parent_id, sort_order,  date_added,  last_modified, categories_status) Relasi edudb_categories_description (*categories_id#, *language_id#, categories_name, categories_description)
Relasi edudb_languages (languages_id#, name, code, image, directory, sort_order) Skema 2. Skema relasi produk
Gambar 5. Model EER produk
b. Translasi skema basis data target Translasi  skema  dilakukan  terhadap  tabel pembangun kategori dan produk. Skema relasi kategori dan produk dipetakan ke model EER. Skema  relasi  kategori  diilustrasikan  pada Skema  3  sedangkan  skema  relasi  produk diilustrasikan pada Skema 4. Translasi Skema 3  diilustrasikan  pada  Gambar  6,  translasi Skema 4 diilustrasikan pada Gambar 7.
Relasi edusa_category (id_category#, id_parent,  *id_shop_default#,
level_depth,  nleft,  nright,  active, date_add,  date_upd,  position, is_root_category)
Relasi  edusa_category_lang  (*id_category#, *id_shop#, *id_lang#,   name,
description, link_rewrite,
meta_title, meta_keywords,
meta_description)
Relasi  edusa_lang  (id_lang#,  name,  active, iso_code, language_code, date_format_lite, date_format_full, is_rtl) Relasi edusa_shop (id_shop#, *id_shop_group#, name,
*id_category#,  *id_theme#,  active, deleted)
Relasi  edusa_shop_group  (id_shop_group#,
name,  share_customer,  share_order, share_stock, active, deleted) Relasi  edusa_theme  (id_theme#,  name, directory)
Skema 3. Skema relasi kategori
Gambar 6. Model EER kategori Relasi edusa_product (id_product#, *id_supplier#, *id_manufacturer#, *id_category_default#, *id_shop_default#, *id_tax_rules_group#, on_sale,  online_only,  ean13,  upc,  ecotax, quantity, minimal_quantity, price, wholesale_price,  unity,  unit_price_ratio, additional_shipping_cost, reference, supplier_reference, location, width, height,  depth,  weight,  out_of_stock, quantity_discount,
customizable, uploadable_files, text_fields, active, redirect_type, id_product_redirected, available_for_order, available_date,
condition, show_price, indexed, visibility, cache_is_pack,  cache_has_attachments, is_virtual, cache_default_attribute, date_add, date_upd, advanced_stock_management) Relasi edusa_category (id_category#, id_parent, *id_shop_default#, level_depth,  nleft,  nright,  active, date_add, date_upd, position, is_root_category) Relasi edusa_product_lang(*id_product#, *id_shop#, *id_lang#, description,
description_short,
link_rewrite,
meta_description,
meta_keywords,
meta_title, name,
available_now,
available_later)
Relasi  edusa_lang  (id_lang#,  name,  active,
iso_code, language_code,
date_format_lite, date_format_full,
is_rtl)
Relasi  edusa_supplier  (id_supplier#,  name,
date_add, date_upd, active) Relasiedusa_product_attribute(id_product_attr ibute#, *id_product#, *reference,
*supplier_reference,  location,  ean13,  upc, wholesale_price,  price,  ecotax,  quantity, weight,  unit_price_impact,  default_on, minimal_quantity, available_date)
Relasi edusa_image (id_image#, *id_product#, position,  cover)
Relasi edusa_product_attribute_image(*id_produc t_attribute#, *id_image#)
Relasi  edusa_tax  (id_tax#,  rate,  active, deleted) Relasi edusa_tax_rule (id_tax_rule#, *id_tax_rules_group#, *id_country#, id_state, zipcode_from, zipcode_to, *id_tax#, behavior, description) Relasi edusa_tax_rules_group (id_tax_rules_group#, name, active) Relasi edusa_country (id_country#, *id_zone#, *id_currency#, iso_code, call_prefix, active, contains_states,
need_identification_number, need_zip_code, zip_code_format, display_tax_label) Relasi  edusa_currency  (id_currency#,  name, iso_code,  iso_code_num,  sign,  blank, format,  decimals,  conversion_rate,  deleted, active) Relasi edusa_zone (id_zone#, name, active) Relasi edusa_product_download(id_product_dow nload#,  *id_product#,  display_filename, filename,
date_add,
date_expiration, nb_days_accesible, nb_downloadable, active, is_shareable) Relasi edusa_manufacturer (id_manufacturer#, name, date_add, date_upd, active) Relasi edusa_tag (id_tag#, *id_lang#, name) Relasi edusa_product_tag
(*id_product#, *id_tag#) Relasi edusa_feature (id_feature#, position)
Relasi edusa_feature_lang (*id_feature#, *id_lang#, name) Relasi  edusa_feature_product  (*id_feature#,
*id_product#, *id_feature_value#)
Relasi edusa_feature_value (id_feature_value#, *id_feature#, custom) Relasi edusa_product_shop(*id_product#, *id_shop#, id_category_default, id_tax_rules_group, on_sale, online_only, ecotax, minimal_quantity, *price, *wholesale_price,  unity,  unit_price_ratio, additional_shipping_cost,  customizable, uploadable_files, text_fields, active, redirect_type, id_product_redirected, available_for_order, available_date, condition, show_price, indexed, visibility, cache_default_attribute,
advanced_stock_management,  date_add, date_upd) Relasi edusa_product_supplier(id_product_suppl ier#, *id_product#, *id_product_attribute#, *id_supplier#, product_supplier_reference, product_supplier_price_te, *id_currency#) Relasi edusa_shop (id_shop#, *id_shop_group#,  name,  *id_category#, *id_theme#, active, deleted) Relasi  edusa_shop_group  (id_shop_group#, name, share_customer, share_order,
share_stock, active, deleted)
Relasi  edusa_theme  (id_theme#,  name, directory)
Skema 4. Skema relasi produk

## Gambar 7. Model EER produk

## Konversi Data
Konversi  data  dilakukan  dengan  menggunakan metode interpretive  transformer  approach. Proses  awal  dalam  metode  ini  adalah source converter dimana dalam penelitian ini digunakan
SQL  Query  untuk  mengekstraksi  data  sumber. Hasil dari proses ini adalah normal form pertama yang diilustrasikan pada Gambar 8 dan Gambar 9.
Gambar 8. Normal form pertama hasil source converter dengan SQL Query kategori
Gambar 9. Normal form pertama hasil source converter dengan SQL Query produk
Normal  form pertama  disimpan  dalam  format .csv  untuk  direstrukturisasi  demi  menghasilkan normal  form kedua.  Restrukturisasi  dilakukan dengan  menghilangkan noise atas  data  yang didapat.  Selain  itu  restrukturisasi  juga  untuk menyesuaikan  format  migrasi  csv  pada Prestashop. Tabel normal form kedua diilustrasikan pada Gambar 10 dan Gambar 11.
Gambar 10. Tabel normal form kedua kategori
Gambar 11. Tabel normal form kedua produk

## Translasi Basis Data Program
Translasi basis data program merupakan langkah terakhir  dalam database  reengineering dimana data  dimigrasikan/dipetakan  ke  sistem  target. Metode  yang  digunakan  ada emulation karena memanfaatkan fitur import yang telah disediakan oleh  Prestashop.  Artinya  migrasi  data  massal kategori  dan  produk  dilakukan  dalam  sistem Prestashop  melalui  fitur import sebagai emulator -nya.  Proses  ini  diilustrasikan  pada Gambar 12 dan Gambar 13.
Gambar 12. Emulation dengan fitur import kategori Prestashop
Gambar 13. Emulation dengan fitur import produk Prestashop
Penerapan emulation melalui  fitur import memungkinkan  data  dapat  dimigrasikan  secara massal.  Hasil  migrasi  data  diilustrasikan  pada Gambar 14 dan Gambar 15.
Gambar 14. Produk hasil migrasi
Gambar 14. Website berbasis Prestashop dengan data hasil migrasi

## IV. KESIMPULAN
Setelah  penelitian  dilaksanakan,  diambil kesimpulan  mengenai  implementasi interpretive transformer  approach dalam  migrasi  data sebagai rangkaian database reengineering antara lain :
1. Database  reengineering perlu  diterapkan untuk melakukan migrasi data.
2. Interpretive transformer approach merupakan metode  yang  relevan  untuk  konversi  data dalam  kaus  data  yang  jumlahnya  besar (ribuan-puluhan ribu).
3.  Data  dapat  dimigrasikan  secara  massal  dari sistem satu ke sistem yang lain, dalam hal ini dari Zen Cart ke Prestashop.

## V. DAFTAR PUSTAKA
[1] Ahmadi,  R.,  B.R.  Cami  dan  H. Hassanpour,  2012, “Automatic  Data Migration  between  Two  Databases  with Different Structure”, International Journal
of  Applied  Information  Systems  (IJAIS), Volume 3, No.3 : 23.
[2] Davenport,  T.  H.  dan  L.  Prusak,  2005, “Working Knowledge: How Organizations Manage What They Know” ,   Ubiquity : Ubiquity.
[3] Fong, Joseph. 2006. “ Information Systems Reengineering and Integration”. Springer : USA.
[4] Robby,
O.K. dan Wardana, F.M..(2009).”Analisis  dan  Perancangan Basis  Data  untuk  Mendukung  Aplikasi ERP  Education  pada  Bina  Nusantara University  (Study  Kasus  :  Academic Management  and  Content  Preparation)”. http://ict.binus.edu/metamorph/file/researc h/JournalDBERP.pdf  (diakses  tanggal  19 Mei 2013).
[5] Thalheim,  Bernhard.TT.” Extended  Entity- Relationship  Model”. Christian-Albrechts University Kiel : Jerman.