## IMPLEMENTASI REKAYASA ULANG BASIS DATA MENGGUNAKAN LOGICAL LEVEL TRANSLATION APPROACH DALAMA PROSES KONVERSI DATA
Bagus Haryanto, Helmie Arif Wibawa
Jurusan Ilmu Komputer/Informatika, Fakultas Sains dan Matematika, Universitas Diponegoro, bagus.if@gmail.com

## ABSTRAK
Peningkatan  efisiensi  di  berbagai  bidang  khususnya  dalam  masalah  keamanan  dan  kenyamanan merupakan  kegiatan  yang  harus  dilakukan  secara  terus  menerus  oleh  sebuah  perusahaan  mengikuti tuntutan  keadaan.  Pada  beberapa  kasus,  perusahaan  perlu  mengganti  sistem  lama  dengan  sistem  yang baru. Penggantian sistem seluruh sistem ini menimbulkan masalah baru yaitu kompatibilitas data pada sistem lama dengan lingkungan di sistem baru. Menulis ulang data di sistem baru membutuhkan waktu dan biaya yang banyak, untuk mengatasi hal tersebut, opsi yang ada adalah merombak data di sistem lama agar sesuai dengan sistem baru dengan menggunakan Rekayasa Ulang Basis Data yang terdiri dari tiga tahap yaitu translasi skema, konversi data dan translasi program basis data.Untuk mengurangi biaya pemakaian  perangkat  lunak  tambahan  untuk  mendukung  proses  rekayasa  ulang  basis  data  digunakan metode logical level approach pada tahap konversi data karena metode ini hanya memanfaatkan fasilitas yang disediakan oleh DBMS untuk melakukan rekayasa ulang basis data. Melalui penerapan ragkaian tahapan rekayasa ulang basis data, data dapat dimigrasikan dari sistem lama ke sistem yang baru tanpa harus membangun dari awal.
Kata kunci : rekayasa ulang basis data, logical level approach, DBMS, migrasi data

## 1. PENDAHULUAN
Peningkatan  efisiensi  di  berbagai  bidang khususnya dalam hal keamanan dan kenyamanan  penggunaan  sistem  merupakan hal  yang  terus  menerus  harus  dilakukan  oleh sebuah  organisasi  /  perusahaan,  tidak  jarang untuk  memenuhi  kedua  hal  tersebut,  sebuah organisasi  /  perusahaan  harus  mengganti sistem  yang  telah  lama  dipakai  dengan  sistem baru  yang  lebih  memadahi.  Pergantian  sistem tersebut dapat menimbulkan masalah baru bagi organisasi / perusahaan yaitu tidak kompatibel- nya data pada sistem lama saat diinteggrasikan dengan  sistem  yang  baru.  Melakukan  proses rewrite data dari awal juga bukan opsi terbaik sehingga  opsi  yang  paling  memungkinkan untuk  dijalankan  adalah  melakukan  rekaysa ulang basis data.
Dalam penelitian ini, dilakukan percobaab terhadap  sebuah website yang  memiliki domain www.bibitku.com. Website ini dibangun  menggunakan Content  Management System  (CMS) berbasis  Joomla,  dimana  basis data  dari website ini  akan  dimigrasikan  ke
CMS berbasis Prestashop. Agar data pada basis data  Joomla  bisa  sesuai  dengan  lingkungan Prestashop  akan  dilakukan  rekayasa  ulang basis  data  dengan  memakai  tiga  tahap  yaitu translasi  skema,  konversi  data  dengan menggunakan  metode logical  level  approach dan translasi program.
Artikel ini membahasa tentang penerapan logical  level  approach pada  tahap  konversi data untuk melakukan migrasi data dari Joomla ke  Prestashop  sebagai  rangkaian  proses rekayasa ulang basis data.

## 2. TINJUAN PUSTAKA
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  [2].    Suatu  CMSmemerlukan basis  data  sebagai  tempat  penyimpanan  data dan konfigurasi. Diantara CMS tersebut adalah Joomla dan Prestashop.
Pada  suatu  kondisi  tertentu,  suatu organisasi  /  perusahaan  perlu  melakukan pergantian  sistem  sehingga  diperlukan  sebuah cara  untuk  menyesuaikan  basis  data  pada sistem  lama  agar  dapat  dipakai  di  sistem  baru yaitu  dengan  menggunakan  rekayasa  ulang basis  data.  Dengan  rekayasa  ini  diharapkan basis data lama dapat digunakan kembali pada sistem yang baru tanpa harus membangun data dari  awal..  Rekayasa  ulang  basis  data  terdiri dari  tiga  tahap  yaitu  translasi  skema,  konversi data dan translasi program basis data [1].
Translasi  skema  merupakan  proses  awal dalam  melakukan  rekayasa  ulang  basis  data. Translasi  skema  memiliki  dua  pendekatan yaitu :
a. Direct Translation
Pendekatan  ini  secara  langsung  men- translasi-kan  skema  non-relasional  ke skema  relasional.  Pendekatan  ini  rawan terjadi  kehilangan  informasi  karena direct translation cenderung primitif, tidak dapat melakukan recovery atau  mengidentifikasi semua skema awal.
b. Indirect Translation Pendekatan  ini  dilakukan  secara  bertahap dimana  skema  baru  didapat  dengan memetakan  kembali  skema  yang  lama sehingga  kemungkinan  terjadinya  hilang informasi  dapat  diminimalisir.  Metode  ini memerlukan translasi kembali skema lama ke model skema baru, dalam hal ini model yang  digunakan  adalah  model  skema Extended Entity Relationship (EER).
Translasi  skema  menggunakan  model EER  yang  secara  umum  memiliki  gambaran seperti pada Gambar 1.
Gambar 1. Model EER [1]
Untuk  mengubah  sebuah  skema  menjadi model  skema  EER  perlu  diperhatikan  aturan dan langkah – langkah sebagai berikut:
1. Lakukan  rekayasa  terbalik  ( reverse engineering )  dari  model  relasional  ke model konseptual EER
2. Definisikan  setiap  relasi, key dan field dengan  mengelompokkan  setiap  relasi  ke bentuk berikut ini.
a. Primary  Relation  Type  1  (PR 1 ) jika relasi  memiliki primary  key yang tidak ada di relasi yang lain
b. Primary  Relation  Type  2  (PR 2 ) jika relasi  memiliki primary  key yang juga merupakan key dari relasi yang lain
c. Secondary  Relation  Type  1  (SR1) jika key dari secondary  relation dibentuk  sepenuhnya  dari  hasil konkatenasi Primary Relation primary key.
d. Secondary  Relation  Type  2  (SR 2 ) jika key yang membentuk secondary relation ini berkebalikan dari Type 1
e. Key  Attribute  –  Primary  (KAP) merupakan atribut pada primary key milik secondary  relation yang  juga merupakan key dari primary relation f. Key  Attribute  –  General  (KAG) merupakan  semua primary  key yang lain  pada secondary  relation yang tidak termasuk di KAP
g. Foreign Key Attribute (FKA) merupakan  attribute non-primary dari primary  relation yang  juga foreign key
h. Nonkey  Attribute  (NKA) merupakan non-primary key attribute yang tidak termasuk dari semua tipe diatas
3. Petakan  setiap  PR 1 menjadi  Entitas, definisikan  setiap  tipe  entitas  yang berkorespondensi  dan  identifikasikan menurut primary  key -nya.  Setiap nonkey attribute- nya dipetakn ke atribut dari tipe entitas dengan sesuai dengan domainnya.
4. Petakan  setiap  PR 2 menjadi  Entitas Lemah  ( Weak  Entity )  dengan  cara mendefinisikan  entitas  lemah  dengan
primary  key yang  menjadi  kunci  dari relasi PR 2
5. Petakan SR 1 menjadi bentuk relasi n -ary / binary dengan  cara  mengidentifikasikan relasinya  dari primary  key yang  menjadi relasi  SR 1. Definisikan  tipe  atribut  NKA sebagai  atribut  dari  tipe  relasi.  Jika key dari  relasi  SR 1 merupakan  bagian  dari secondary  relation maka key tersebut dipetakan sebagai relasi n-ary dari model EER
6. Petakan SR 2 menjadi bentuk relasi n -ary / binary dengan  cara  mendefinisikan  tipe entitas  daris  setiap  atribut  bertipe  KAG dengan  atribut  KAG  menjadi  kunci entitasnya.  Definisikan  relasi binary antara semua tipe entitas yang didefinisikan dari atribut KAP dan KAG- nya pada relasi SR 2 ini.
7. Petakan  setiap  FKA  menjadi  sebuah relasi  dengan  cara  mendefinisikan  setiap tipe  relasi  antara  entitas  yang  terdefinisi sebagai PR 1 dan entitas yang mempunyai FKA sebagai kunci atributnya.
8. Petakan  setiap inclusion  dependency menjadi  sebuah  hubungan  semantic dengan  cara  jika  ID  sudah  dibuat  antara dua entitas m entitas A dengan a sebagai entity key dan b’ sebagai foreign key, dan entitas B dengan b sebagai entity key dan a’  sebagai foreign  key, maka  semantic dari keduanya dapat ditentukan.
9. Gambar  seluruh  model  EER  secara lengkap  berdasarkan  pemetaan  yang telah dilakukan pada langkah sebelumnya.[1] Konversi data merupakan
teknik mengubah  basis  data  dari  sistem  lama  agar dapat digunakan di sistem yang baru. Konversi data yang baik mampu mengubah sumber data ke  basis  data  tujuan  tanpa  menghilangkan informasi  penting  yang  ada  di  dalamnya  [1]. Konversi  data  dapat  dilakukan  dengan  empat metode yaitu:
a. Customized Program Approach
b. Interpretative Transformer Approach
c. Translator Generator Approach
d. Logical Level Translation Approach
Logical level translation approach adalah metode  dalam  konversi  data  yang  terdiri  dari tiga  tahap  yaitu  ekstraksi  data  dari  sumber data,  reformasi  data  pada  basis  data  dan memasukkan data hasil reformasi ke basis data tujuan  [1]. Logical  Level  Approach memiliki model yang diilustrasikan pada Gambar 2.
Gambar 2 . Logical Level Translation [1]
Logical  Level  Translation  Approach memanfaatkan kemampuan yang dimiliki oleh sebuah  DBMS  tanpa  memerlukan  perangkat lunak  tambahan  dalam  melakukan  rekayasa ulang  basis  data  sehingga  metode  ini  sangat cocok  digunakan  jika  terdapat  kendala  pada biaya.
Tahap terakhir dalam rekayasa ulang basis data  adalah  translasi  program  basis  data. Translasi  program  basis  data  adalah  proses men-translasi  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  Pendekatan  dengan  metode  ini melibatkan  dukungan software atau firmware pada  sistem  target  yang  dapat  memetakan commands dari  program/sistem  sumber  ke program/sistem target sehingga ekuivalen [1].

## 3. HASIL DAN PEMBAHASAN
Rekayasa ulang basis data terdiri dari tiga tahap  yaitu  translasi  skema,  konversi  data  dan translasi program basis data

## Translasi Skema
a. Translasi skema basis data sumber
Translasi  skema  dilakukan  terhadap  tabel kategori  dan  produk  .  Skema  relasi kategori  dan  produk  dipetakan  ke  model EER  Skema  relasi  kategori  diilustrasikan dan  produk  diilustrasikan  pada  Skema  1. Translasi  skema  1  diilustrasikan  pada Gambar 3
Skema 1. Skema relasi kategori dan produk
Gambar 3. Model EER kategori dan produk
b. Translasi skema basis data target Translasi  skema  dilakukan  terhadap  tabel kategori dan produk. Skema relasi kategori dan  produk  dipetakan  ke  model  EER  . Skema  relasi  kategori  dan  produk diilustrasikan  pada  Skema  2.  Translasi Skema 2 diilustrasikan pada Gambar 4.
Gambar 4. Model EER Kategori dan Produk
Relation bibit_vm_category Relation bibit_vm_category (category_id#, vendor_id,  category_name,  category_description, category_thumb_image, category_full_image, category_publish, cdate, mdate, category_browsepage, products_per_row, category_flypage, list_order ) Relation bibit_vm_product Relation bibit_vm_product (product_id#, vendor_id,product_parent_id, product_sku, product_s_desc, product_desc, product_thumb_image, product_full_image, product_publish, product_weight,
product_weight_uom,
product_length, product_width, product_height, product_lwh_uom, product_url, product_in_stock, product_available_date,
product_availibility,
product_special,
product_discount_id,
ship_code_id,  cdate,  mdate,  product_name, product_sales, attribute, custom_attribute, product_tax_id,  product_unit,  product_packaging, child_option_ids, product_order_levels) Relation bibit_vm_product_price Relation
bibit_vm_product_price (product_price_id#,  *product_id,  product_price, product_currency, product_price_vdate,
product_price_edate,
cdate,
mdate,
shopper_group_id, price_quantity_start, price_quantity_end) 1. Relation bibit_vm_product_category_xref Relation bibit_vm_product_category_xref
(*category_id#, *product_id#, product_list)
Skema 2. Skema relasi kategori dan produk

## Konversi data
Konversi
data
dilakukan
dengan menggunakan metode logical level translation approach. Porses awal dalam membuat sebuah basis  data  sementara  yang  digunakan  untuk melakukan  reformasi  data  menggunakan perintah  SQL.  Hasil  dari  proses  ini  dapat dilihat pada Gambar 5.
Gambar 5. Basis data sementara
Setelah  basis  data  sementara  berhasil dibuat.  langkah  selanjutnya  adalah  melakukan ekstraksi  data  –  data  yang  dibutuhkan  dari basis data lama ke dalam basis data sementara, data  –  data  yang  dibutuhkan  dalam  hal  ini adalah  data  produk  yang  diilustrasikan  pada Gambar 6 dan data kategori yang diilustrasikan pada Gambar 7.
Gambar 6. Ekstraksi data produk
Gambar 7. Ekstraksi data kategori Setelah  proses  ekstraksi  data  selesai dilakukan, data yang telah berhasil disimpan di basis  data  sementara  diolah  menggunakan perintah SQL agar sesuai dengan format basis data target. Setelah dilakukan proses pengolahan  dengan  menggunakan  perintah
Relation bbt_product
Relation bbt_product (id_product#, id_supplier, id_manufacturer,  id_category_default,  id_Shop_default, id_tax_rules,  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_attachment, is_virtual, cache_default_attribute, date_add, date_upd, advanced_stock_management) Relation bbt_product_lang Relation bbt_product_lang (id_product#, id_shop, id_lang,  description,  description_short,  link_rewrite, meta_description,  meta_keywords,  meta_title,  name, available_now, available_later) Relation bbt_image Relation  bbt_image  (id_image#,  *id_product,  position, cover) Relation bbt_category Relation bbt_category (id_category#, id_parent, id_shop_default,  level_depth,  nleft,  nright,  active, date_add) Relation bbt_category_group Relation bbt_category_group (id_category#, *id_group) Relation bbt_category_lang Relation  bbt_category_lang  (id_category#,  id_shop, id_lang,  name,  description,  link  rewrite,  meta_title, meta_keywords, meta_description, )
Relation bbt_category_product
Relation bbt_category_product (*id_category#, *id_product#, position
SQL  dihasilkan format baru  pada  data  produk yang  diilustrasikan  pada  Gambar  8  dan  data kategori pada Gambar 9.
Gambar 8. Data produk setelah reformasi
Gambar 9. Data kategori setelah reformasi
Setelah  reformasi  data  berhasil  dilakukan data kategori dan produk dimasukkan ke dalam basis  data  target  ke  dalam  dua  tabel  untuk produk seperti Gambar 10 dan Gambar 11 dan dua  tabel  terpisah  juga  untuk  kategori  seperti Gambar 12 dan Gambar 13.
Gambar 10. Data produk di basis data target
Gambar 11. Data produk pelengkap di basis data target
Gambar 12. Data kategori di basis data target
Gambar 13. Data kategori pelengkap di basis data target

## Translasi Program Basis Data
Translasi  basis  data  program  merupakan langkah  terakhir  dalam  rekayasa  ulang  basis datadimana data dimigrasikan ke dalam sistem target.  Metode  yang  digunakan  ada emulation karena  memanfaatkan  fitur  kemampuan Prestashop dalam membaca basis data berbasis MySQL.  Artinya  migrasi  data  kategori  dan produk  berhasil  dilakukan  apabila  sistem
Prestashop  dapat  mengenali  basis  data  hasil reformasi yang telah dimasukkan ke Prestashop  melalui  MySQL.  Hasil  dari  proses ini diilustrasikan pada Gambar 14 dan Gambar 15.
Gambar 14. Data kategori berhasil dibaca
Prestashop
Gambar 15. Data produk berhasil dibaca
Prestashop
Hasil  migrasi  dalam  bentuk website dapat dilihat pada Gambar 16 sebagai berikut
Gambar 16. Tampilan Produk dan Kategori pada Front End

## 4. KESIMPULAN
Setelah  penelitian  dilaksanakan,  diambil kesimpulan  mengenai  implementasi logical level  translation  approach dalam  migrasi  data sebagai  rangkaian  rekayasa  ulang  basis dataantara lain :
1.    Rekayasa  ulang  basis  dataperlu  diterapkan untuk melakukan migrasi data.
2. Logical level translation approach merupakan  metode  yang  relevan untuk  konversi  data  dalam  kasus  data dengan jumlah sedang
3. Logical  level  translation  approach merupakan  metode  sederhana  yang  hanya membutuhkan  pemahaman  tentang  bahasa SQL  dan  kemampuan  DBMS  yang digunakan
4.  Data  dapat  dimigrasikan  secara  massal  dari sistem  satu  ke  sistem  yang  lain,  dalam  hal ini dari Joomla ke Prestashop.

## 5. 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 Organitations  Manage  What  They Know, Ubiguity [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/resea rch/JournalDBERP.pdf  (diakses  tanggal 19 Mei 2013).
[5] zthalheim,  Bernhard  T.T.  Extended Entity  Relationship  Model,  Christian- Albrechts University Kiel: Jerman