BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab...

80
27 BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASE 3.1 Gambaran Umum Permasalahan Migrasi database adalah proses pemindahan suatu database dari satu DBMS ke DBMS yang lain. Tidak hanya data yang dipindahkan, tetapi juga objek-objek dalam database tersebut. Pemindahan atau migrasi ini dapat disebabkan oleh berbagai alasan, misalnya dikarenakan organisasi ingin mengganti DBMS yang sedang dipakai. Ataupun karena DBMS yang lama sudah tidak mampu menangani kebutuhan baru dari organisasi tersebut akan pengolahan data yang lebih baik. 3.1.1 Gambaran Migrasi Database pada Umumnya Berdasarkan SQLWays Documentation” (anonymous, p43), jika suatu organisasi ingin melakukan migrasi database, ada 2 hal utama yang perlu dilakukan. Hal pertama yaitu menyiapkan mekanisme untuk membuat replika objek–objek database di DBMS tujuan dengan melakukan exporting dan converting. Hal kedua yaitu menyiapkan mekanisme untuk memindahkan data ke DBMS yang dituju. Dua hal ini memerlukan waktu dan tenaga yang cukup lama, terutama jika database yang akan di migrasi memiliki banyak objek dan objek–objek tersebut memerlukan banyak penyesuaian sebelum dapat di migrasi.

Transcript of BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab...

Page 1: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

27

BAB 3

ANALISIS DAN PERANCANGAN

MIGRASI DATABASE

3.1 Gambaran Umum Permasalahan

Migrasi database adalah proses pemindahan suatu database dari satu DBMS ke

DBMS yang lain. Tidak hanya data yang dipindahkan, tetapi juga objek-objek dalam

database tersebut. Pemindahan atau migrasi ini dapat disebabkan oleh berbagai alasan,

misalnya dikarenakan organisasi ingin mengganti DBMS yang sedang dipakai. Ataupun

karena DBMS yang lama sudah tidak mampu menangani kebutuhan baru dari organisasi

tersebut akan pengolahan data yang lebih baik.

3.1.1 Gambaran Migrasi Database pada Umumnya

Berdasarkan “SQLWays Documentation” (anonymous, p43), jika suatu

organisasi ingin melakukan migrasi database, ada 2 hal utama yang perlu dilakukan. Hal

pertama yaitu menyiapkan mekanisme untuk membuat replika objek–objek database di

DBMS tujuan dengan melakukan exporting dan converting. Hal kedua yaitu menyiapkan

mekanisme untuk memindahkan data ke DBMS yang dituju. Dua hal ini memerlukan

waktu dan tenaga yang cukup lama, terutama jika database yang akan di migrasi

memiliki banyak objek dan objek–objek tersebut memerlukan banyak penyesuaian

sebelum dapat di migrasi.

Page 2: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

28

3.1.2 Gambaran Migrasi Database pada Sistem Komputer

Migrasi database berbasis komputer dilakukan dengan menggunakan tools

tertentu yang memiliki fitur-fitur yang memudahkan migrasi. Misalnya pembacaan

struktur data dan perpindahan data. Tools yang tersedia ini secara otomatis akan

membaca database yang akan kita migrasi dan kemudian membentuk replikanya pada

DBMS yang dituju. Kemudian data akan dipindahkan ke DBMS yang dituju dengan

terlebih dahulu melakukan penyesuaian yang diperlukan secara otomatis, misalnya

penyesuaian pada tipe data ataupun tingkat ketelitian dari data tersebut.

Ada banyak tools migrasi yang tersedia saat ini. Tool migrasi ini banyak yang

terikat pada DBMS tertentu. Misalnya : MySQL Migration Toolkit, yang hanya bisa

digunakan untuk memindahkan database dari berbagai DBMS lain ke MySQL. Tool lain

yang tersedia, misalnya : Access2MySQL, yang digunakan untuk memindahkan

database dari Microsoft Access ke MySQL. Perbandingan tool migrasi ini dapat dilihat

pada Tabel 3.1 Tabel Perbandingan Tool Migrasi di bawah.

Untuk itulah, diperlukan tool yang mampu melakukan migrasi dari berbagai

DBMS asal ke berbagai DBMS tujuan, dengan menggunakan plugin–plugin yang

tersedia.

Tabel 3.1 Tabel Perbandingan Tool Migrasi

No Kemampuan MySQL Migration Toolkit Access2MySQL

1 Multi source database √ -

2 Multi destination database - -

3 Platform Independent √ -

4 Pemilihan objek √ √

Page 3: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

29

5 Log √ -

6 Objek yang dimigrasi

Table

View

Trigger

Stored procedure

User defined function

Security

-

-

-

-

-

7 Migrasi data √ √

8 Mapping tipe data √ √

3.1.3 Permasalahan Migrasi Database yang Dihadapi

Permasalahan migrasi database yang ada saat ini dikarenakan tidak banyak tool

migrasi yang dapat dipakai untuk pemindahan database secara umum, dari berbagai

DBMS ke berbagai DBMS lain tergantung kebutuhan migrasi. Pengembangan tool pun

tergantung pada vendor sehingga penyesuaian unutk kasus migrasi tertentu sulit

dilakukan.

Permasalahan pada pengembangan migrasi database berbasis komputer

disebabkan oleh berbagai macam hal, yaitu:

1. Pembacaan meta-data

Cara pembacaan meta-data setiap DBMS berbeda. Ada DBMS yang

menyediakan fungsi untuk mendapatkan meta-data dan ada yang tidak sehingga

tingkat kemudahan pembacaan meta-data - nya berbeda.

Page 4: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

30

2. Tipe data yang berbeda

Perbedaan tipe data menjadi suatu masalah pada migrasi database, antara

lain karena: perbedaan range untuk tipe data numerik, perbedaan presisi pada tipe

data floating point, perbedaan format pada tipe data datetime. Perbedaan range tipe

data numerik dan perbedaan presisi pada tipe data numerik dapat menyebabkan

hilangnya informasi, sedangkan perbedaan format tipe data datetime bisa

menyebabkan kesalahan dalam penyimpanan informasi. Perbedaan tipe data ini juga

dapat menyebabkan data tidak dapat dipindahkan atau berubah nilainya saat

dimigrasikan.

3. Sintaks SQL yang berbeda terutama pada view, stored procedure, user-defined

function, trigger

Sintaks SQL mengikuti suatu standar internasional. Salah satu standar

internasional yang sering dijadikan acuan yaitu standar ANSI baik SQL-92 maupun

SQL3. Banyak DBMS yang mengacu pada standar ANSI, namun tidak seluruh

standar ANSI diadopsi. Masing-masing DBMS melakukan pengembangan tersendiri

sehingga sintaks yang dimiliki berbeda.

3.1.4 Pemecahan Masalah

Migrasi database dari berbagai DBMS asal ke berbagai DBMS tujuan dapat

dimungkinkan oleh pengembangan yang dilakukan dengan plugin. Satu plugin khusus

menangani satu DBMS dengan versi tertentu. Misalkan jika ingin melakukan migrasi

database dari DBMS A ke DBMS B diperlukan dua buah plugin. Plugin pertama akan

membaca database dari DBMS A dan mengubahnya ke suatu standar. Plugin kedua

akan membaca dari standar tersebut dan membentuk replikanya di DBMS B. Dengan

Page 5: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

31

demikian, pengembangan untuk migrasi database dari DBMS A ke DBMS C lebih

mudah dilakukan karena hanya perlu menambahkan suatu plugin baru yang menangani

DBMS C.

Untuk mengatasi pembacaan meta-data yang berbeda pada tiap DBMS, juga

digunakan plugin. Setiap plugin memiliki cara tersendiri untuk membaca meta-data dari

DBMS yang sesuai. Dengan demikian tool ini dapat menangani pembacaan meta-data

dari DBMS yang berbeda.

Untuk mengatasi masalah perbedaan tipe data diperlukan proses mapping tipe

data antar DBMS agar penyesuaian dapat diotomatisasi. Dalam proses mapping ini, tipe

data yang sesuai untuk database tujuan ditentukan oleh plugin yang digunakan. Dengan

adanya mapping tipe data ini, plugin juga bertanggung jawab dalam melakukan konversi

data.

Untuk mengatasi sintaks yang berbeda pada tiap-tiap DBMS diperlukan proses

yang dapat mengubah sintaks yang berbeda ke format yang sesuai untuk DBMS tertentu.

Sintaks tersebut diubah terlebih dahulu ke suatu standar, yaitu standar ANSI SQL3, baru

kemudian diubah ke format DBMS tujuan. Proses ini dilakukan oleh masing-masing

plugin dengan menggunakan metode parsing. Walaupun proses ini gagal, sintaks

tersebut tetap dapat disimpan apa adanya sehingga dapat dilakukan penyesuaian yang

diperlukan.

3.2 Analisis Migrasi Database

3.2.1 Tahapan Migrasi Database

Migrasi database dimulai dari pembacaan meta-data dari database asal dan

berakhir pada pembentukan database di database tujuan. Migrasi database mampu

Page 6: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

32

memproses migrasi table, view, user defined function, trigger, stored procedure, dan

user beserta hak aksesnya. Migrasi ini, secara garis besar dibagi menjadi dua tahap,

yaitu proses baca dan proses tulis. (Lihat Gambar 3.1 Tahapan Migrasi Database).

Proses baca akan dimulai dari pembacaan meta-data database asal. Urutan

pembacaan meta-data dimulai dari pembacaan: table, view, user defined function, stored

procedure, trigger dan terakhir security (user dan hak akses). Meta-data yang diperoleh,

selanjutnya akan diubah agar sesuai dengan standar yang digunakan. Jika meta-data

yang dibaca berupa tabel / user, maka meta-data tersebut akan ditulis ke dalam database

migrasi. Meta-data berupa sintaks SQL akan di-parse dengan parser SQL3. Jika sintaks

SQL tidak sesuai SQL3 maka akan dikonversi menggunakan parser yang sesuai

(database asal). Meta-data yang proses perubahannya gagal akan dibiarkan apa adanya.

Semua sintaks akan disimpan di dalam log.

Proses diatas akan diulang sampai semua objek pada database asal telah selesai

dibaca. Selanjutnya dilakukan pembacaan data dan pembentukan script dari data di

database asal dan script dari data yang telah dikonversi dengan mapping yang sesuai.

Script dibentuk hanya untuk kolom data yang tipe datanya dapat di-mapping. Setelah

selesai, log dari proses baca akan ditampilkan. (Lihat Gambar 3.2 Flow Proses Baca).

Proses tulis dimulai dengan pembacaan meta-data yang telah diperoleh dari

proses baca. Urutan pembacaan meta-data juga sama dengan proses baca, yaitu dimulai

dari pembacaan: table, view, user defined function, stored procedure, trigger dan

terakhir security (user dan hak akses). Meta-data ini juga akan diubah, agar sesuai

dengan standar pada database tujuan. Jika meta-data yang dibaca berupa tabel / user,

maka pada database tujuan akan dibentuk tabel/user sesuai dengan meta-data yang

dibaca namun foreign key constraint untuk tabel tersebut belum dieksekusi. Meta-data

Page 7: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

33

berupa sintaks SQL akan di-parse dengan parser yang sesuai (database asal). Jika sintaks

SQL tidak sesuai dengan database tujuan maka akan dikonversi menggunakan parser

SQL3. Meta-data yang proses perubahannya gagal akan dibiarkan apa adanya. Semua

sintaks akan disimpan di dalam log.

Proses diatas akan diulang sampai semua objek selesai dibaca. Selanjutnya akan

dilakukan mapping tipe data dan koversi, serta pembentukan script yang sesuai. Script

dibentuk hanya untuk kolom data yang tipe datanya dapat di-mapping. Selanjutnya

script data akan dieksekusi dan dilanjutkan dengan eksekusi foreign key constraint untuk

semua tabel. Langkah ini dilakukan karena jika foreign key sudah terbentuk sebelum

data dimasukkan maka harus ada mekanisme urutan pemasukkan data. Setelah selesai,

log dari proses tulis akan ditampilkan. (Lihat Gambar 3.3 Flow Proses Tulis).

Page 8: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

34

SQL Server 2000

Pembacaan Meta Data

Konversi Meta Data / Proses

Parsing

Penulisan Meta Data

Pembacaan Data

Penulisan Data

Pembacaan Meta Data

Konversi Meta Data / Proses

Parsing

Penulisan Meta Data

Pembacaan Data

Penulisan Data

MySQL 5.0.13

Database Migrasi (Cloudscape)

Proses Baca

Proses Tulis

Database asal Proses Migrasi Database tujuan

1

6

5

4

3

2

6

5

4

3

2

1

Ururtan Pembacaan Meta Data

(Proses Baca dan Proses Tulis)

TableView

User Defined FunctionStored Procedure

TriggerSecurity(User dan Hak Akses)

Gambar 3.1 Tahapan Migrasi Database

Page 9: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

35

Membaca meta data melalui plugin

Menulis ke dalam database migration

Membaca data dan membentuk

script

Semua meta data sudah terbaca?

Semua data sudah terbaca?

Ya

Tidak

Tidak

Finish

Start

Ya

Simpan error object ?Tidak

Tipe metadata tabel / user

akses?

Ya

Tidak

Ya

Proses ParsingSesuai standard

ANSI SQL3

Parsing Berhasil ?Ya

Tidak

Gambar 3.2 Flow Proses Baca

Page 10: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

36

Membuat objek di database tujuan

Semua meta data sudah terbaca?

Ya

Menulis data ke database tujuan

Semua data sudah terbaca?

Ya

Finish

Tidak

Membaca meta data

Ya

Start

Tidak Tipe metadata tabel / user

akses?

Error object ?

Tidak

Tidak

Ya

Proses ParsingSesuai standard Database Tujuan

Parsing Berhasil ?Ya

Tidak

Gambar 3.3 Flow Proses Tulis

Page 11: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

37

3.2.2 Algoritma Konversi

Ketika melakukan pembacaan sintaks SQl, baik dalam proses baca maupun

proses tulis, plugin akan menggunakan parser untuk menentukan apakah sintaks SQL

tersebut perlu dikonversi atau tidak. Parser yang digunakan oleh plugin diperoleh dari

parser generator ANTLR. Proses parsing akan menghasilkan AST (Abstract Syntax

Tree) dengan struktur sebagai berikut :

Gambar 3.4 Abstract Syntax Tree

AST di atas akan dirubah ke dalam bentuk Grammar Tree dengan struktur

sebagai berikut:

Gambar 3.5 Grammar Tree

Page 12: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

38

Perubahan tree AST ke bentuk Grammer Tree dilakukan dengan algoritma

sebagai berikut :

Gambar 3.6 Flow Algoritma Tree Converter

Page 13: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

39

Dari Grammer Tree tersebut, proses akan dimulai dari node root secara rekursif

hingga semua node selesai dilalui. Contoh alur proses dalam tree :

Gambar 3.7 Urutan Traversal Tree

Berikut ini adalah flow proses konversi yang dilakukan pada tiap node Grammar

Tree:

Page 14: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

40

Node berupa nama objek yang harus

dirubah

Mapping nama objek menjadi

nama baruYa

Tidak

Node berupa tipe data yang harus

dirubah

Mapping tipe data menjadi tipe baru

Tidak

Node berupa function yang harus dirubah

Rubah menjadi sintaks function

yang baruYa

Sintaks berupa View, User Defined Function, Stored

Procedure, Trigger

Tidak

Ya Loop ke node node sibling

Sintaks sudah sesuai

Baca seting untuk option

Option dibuang atau dirubah

Tidak

Ya

Tidak

Rubah sintaks

Node berupa parameter dari function atau stored procedure

yang harus dirubah

Mapping nama parameter menjadi

nama baruYa

Tidak

Loop ke node anak pertama

hngga seterusnya

Ya

Start

Memiliki node anak

Ya

Tidak

Finish

Gambar 3.8 Flow Algoritma Proses Konversi

Page 15: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

41

3.2.3 Kemampuan Migrasi Database

Ada beberapa hal yang dapat dilakukan dalam migrasi database, antara lain:

• Memindahkan metadata tabel yang berupa : primary key, foreign key, unique

constraint, required data, dan default value.

• Mapping tipe data yang sesuai.

• Menghilangkan karakter white space untuk nama objek.

• Mengubah fungsi getDate menjadi NOW

• Mengubah fungsi ‘CONVERT’ menjadi fungsi ‘CAST’.

• Mengubah operator ‘+’ yang berfungsi sebagai string concatenation menjadi fungsi

‘CONCAT’.

• Mengubah fungsi ‘DATENAME’ dengan parameter ‘month’ menjadi

‘MONTHNAME’..

• Mengubah sintaks SQL untuk stored procedure, antara lain: menghilangkan option

‘WITH’, ‘VARYING’, ‘FOR’, ‘AS’, nilai default parameter; merubah tipe

parameter ‘OUTPUT’ menjadi ‘INOUT’ dan menambahkan karakter ‘(‘ dan ‘)’

untuk pengelompokan parameter.

• Mengubah sintaks SQL untuk user defined function, antara lain: menghilangkan

option ‘WITH’, default parameter, ‘AS’ dan karakter ‘@’ pada nama parameter;

menambah karakter ‘;’ di setiap akhir statement.

• Mengubah sintaks SQL untuk trigger, antara lain: menghilangkan option ‘WITH’,

‘NOT FOR REPLICATION’; mengubah table ‘Inserted’ dan ‘Deleted’;

Page 16: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

42

menambahkan “FOR EACH ROW”, ”BEGIN”, dan ”END”; Menambahkan titik

koma pada setiap akhir statement.

3.3 Perancangan Migrasi Database

3.3.1 Perancangan Arsitektur Plugin

Fungsi – fungsi umum

Nama Fungsi : openCon Function Header public void openCon() Input Tipe data : - Deskripsi : - Output Tipe data : - Deskripsi : - Keterangan Membuka koneksi dengan DBMS plugin Nama Fungsi : SetParam Function Header public void setParam(java.util.Vector job) Input Tipe data : java.util.Vector Deskripsi

: Keterangan mengenai job seperti ip, port, nama database, user, password

Output Tipe data : - Deskripsi : - Keterangan : Meyimpan data-data mengenai job ip, port, nama database, user,

password Nama Fungsi : InitLog Function Header public void initLog() Input Tipe data : - Deskripsi : - Output Tipe data : - Deskripsi : - Keterangan Menginisialisai log untuk mencatat semua proses pada plugin Nama Fungsi : setMapping Function Header : public void setMapping(java.util.HashMap h) Input Tipe data : java.util.HashMap Deskripsi : Keterangan untuk mapping tipe data Output Tipe data : - Deskripsi : - Keterangan : Meyimpan data untuk mapping tipe data

Page 17: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

43

Nama Fungsi : setMappingName Function Header : public void setMappingName(java.util.HashMap h) Input Tipe data : java.util.HashMap Deskripsi : Keterangan untuk mapping nama objek Output Tipe data : - Deskripsi : - Keterangan : Menyimpan data untuk mapping nama objek Nama Fungsi : closeCon Function Header : public void closeCon() Input Tipe data : - Deskripsi : - Output Tipe data : - Deskripsi : - Keterangan : Menutup koneksi dengan DBMS plugin Nama Fungsi : replaceAllObjectName Function Header : public java.lang.String replaceObjectName(java.lang.String nm) Input Tipe data : java.lang.String Deskripsi : Keterangan nama objek Output Tipe data : - Deskripsi : - Keterangan :

Menganti semua nama objek sesuai dengan mapping nama objek dengan memanggil fungsi replaceObjectName

Nama Fungsi : replaceObjectName Function Header : public java.lang.String replaceObjectName(java.lang.String nm) Input Tipe data : java.lang.String Deskripsi : Keterangan nama objek Output Tipe data : - Deskripsi : - Keterangan : Menganti satu nama objek sesuai dengan mapping nama objek Nama Fungsi : recursive Function Header : public java.lang.String recursive(GrammarTree gt) Input Tipe data : GrammarTree Deskripsi : Tree dari Sintaks SQL untuk objek View, Stored

Procedure, UDF, Trigger Output Tipe data : java.lang.String Deskripsi : String dari Sintaks SQL untuk objek View, Stored

Procedure, UDF, Trigger Keterangan :

Melakukan travelsal untuk membentuk String dari Tree Sintaks SQL untuk objek View, Stored Procedure, UDF, Trigger

Page 18: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

44

Nama Fungsi : convert Function Header : public java.lang.String convert(java.lang.String schema) Input Tipe data : java.lang.String Deskripsi : Definisi objek yang akan dikonversi Output Tipe data : java.lang.String Deskripsi : Definisi objek setelah dikonversi ke ANSI SQL3 Keterangan :

Melakukan konversi pada definisi objek yang diinput agar sesuai dengan ANSI SQL3 dengan menggunakan fungsi sqlServerConverter dan recursive

Nama Fungsi : pluginConverter Function Header : public GrammarTree pluginConverter(GrammarTree gt) Input Tipe data : GrammarTree Deskripsi : Tree dari Sintaks SQL untuk objek View, Stored

Procedure, UDF, Trigger Output Tipe data : GrammarTree Deskripsi : Tree dari Sintaks SQL untuk objek View, Stored

Procedure, UDF, Trigger Keterangan : Melakukan travelsal dan konversi pada Tree input agar sesuai dengan

ANSI SQL3 Nama Fungsi : getDbName Function Header : public java.lang.String getDbName() Input Tipe data : - Deskripsi : - Output Tipe data : java.lang.String Deskripsi : Nama database Keterangan : Mengembalikan nama database Nama Fungsi : getDbIpAddr Function Header : public java.lang.String getDbIpAddr() Input Tipe data : - Deskripsi : - Output Tipe data : java.lang.String Deskripsi : IP Address dari Database Server Keterangan : Mengembalikan IP Address dari Database Server Nama Fungsi : getDbPort Function Header : public java.lang.String getDbPort() Input Tipe data : - Deskripsi : - Output Tipe data : java.lang.String Deskripsi : port untuk berhubungan dengan Database Server

Page 19: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

45

Keterangan : Mengembalikan nomor port untuk berhubungan dengan Database Server

Nama Fungsi : getDbUserName Function Header : public java.lang.String getDbUserName() Input Tipe data : - Deskripsi : - Output Tipe data : java.lang.String Deskripsi : Nama user name Keterangan : Mengembalikan nama user name untuk berhubungan dengan

Database Server Nama Fungsi : getDbPassword Function Header : public java.lang.String getDbPassword() Input Tipe data : - Deskripsi : - Output Tipe data : java.lang.String Deskripsi : Password Keterangan : Mengembalikan password untuk berhubungan dengan Database

Server Fungsi-fungsi pada proses Baca Nama Fungsi : readUserAccess Function Header : public java.util.Vector readUserAccess() Input Tipe data : - Deskripsi : - Output Tipe data : java.util.Vector Deskripsi : Keterangan nama-nama user beserta hak aksesnya Keterangan : Membaca nama-nama user dan hak aksesnya pada database di

DBMS plugin Nama Fungsi : readStoredProcedure Function Header : public java.util.Vector readStoredProcedure() Input Tipe data : - Deskripsi : - Output Tipe data : java.util.Vector Deskripsi : Keterangan nama-nama Stored Procedure dan definisinyaKeterangan :

Membaca nama-nama Stored Procedure dan definisinya pada database di DBMS plugin

Nama Fungsi : readUserDefinedFunction Function Header : public java.util.Vector readUserDefinedFunction() Input Tipe data : -

Page 20: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

46

Deskripsi : - Output Tipe data : java.util.Vector Deskripsi : Keterangan nama-nama User Defined Function dan

definisinya Keterangan :

Membaca nama-nama User Defined Function dan definisinya pada database di DBMS plugin

Nama Fungsi : readView Function Header : public java.util.Vector readView() Input Tipe data : - Deskripsi : - Output Tipe data : java.util.Vector Deskripsi : Keterangan nama-nama View beserta definisinya Keterangan : Membaca nama-nama View dan definisinya pada database di DBMS

plugin Nama Fungsi : readTrigger Function Header : public java.util.Vector readTrigger() Input Tipe data : - Deskripsi : - Output Tipe data : java.util.Vector Deskripsi : Keterangan nama-nama Trigger beserta definisinya Keterangan : Membaca nama-nama Trigger dan definisinya pada database di

DBMS plugin Nama Fungsi : readTable Function Header : public java.util.Vector readTable() Input Tipe data : - Deskripsi : - Output Tipe data : java.util.Vector Deskripsi

: Keterangan nama-nama tabel beserta definisinya (termasuk nama kolom beserta tipe datanya, primary key, foreign key, unique constraint, nullable, length, dan default value)

Keterangan : Membaca nama-nama tabel dan definisinya pada database di DBMS plugin

Fungsi-fungsi pada proses Tulis Nama Fungsi : runQuery Function Header : public boolean runQuery(java.lang.String query) Input Tipe data : java.lang.String Deskripsi : Sintaks SQL untuk dieksekusi di Database server Output Tipe data : boolean

Page 21: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

47

Deskripsi

: penanda keberhasilan eksekusi sintaks SQL True=berhasil False=gagal

Keterangan : Menjalankan sintaks SQL input di Database server untuk membentuk Objek

Nama Fungsi : createDatabase Function Header : public boolean createDatabase(java.lang.String databaseName) Input Tipe data : java.lang.String Deskripsi : nama database Output Tipe data : boolean Deskripsi

: penanda keberhasilan pembuatan database True=berhasil False=gagal

Keterangan :

Membuat database yang akan dimigrasi pada DBMS, dipanggil pertama kali sebelum membentuk objek-objek yang lain

Nama Fungsi : writeTable Function Header : public boolean writeTable(java.util.Vector vTable,java.util.Vector

columnDesc) Input vTable Tipe data : java.util.Vector Deskripsi : Nama-nama tabel Input columnDesc Tipe data : java.util.Vector Deskripsi

: kolom-kolom untuk tabel (termasuk tipe datanya, primary key, foreign key, unique constraint, nullable, length, dan default value)

Output Tipe data : boolean Deskripsi

: penanda keberhasilan pembuatan tabel True=berhasil False=gagal

Keterangan : Membuat tabel secara fisik di DBMS sesuai dengan input yang diberikan

Nama Fungsi : createConstraints Function Header : public boolean createConstraints() Input Tipe data : - Deskripsi : - Output Tipe data : boolean Deskripsi

: penanda keberhasilan pembuatan constraint Foreign Key True=berhasil False=gagal

Keterangan :

Membuat Foreign Key constraint pada DBMS, dijalankan setelah semua tabel terbentuk dan diisi dengan data

Page 22: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

48

Nama Fungsi : writeView Function Header : public boolean writeView(java.lang.String

viewName,java.lang.String viewDesc) Input viewName Tipe data : java.lang.String Deskripsi : Nama-nama View Input viewDesc Tipe data : java.lang.String Deskripsi : Definisi dari View Output Tipe data : boolean Deskripsi

: penanda keberhasilan pembuatan View True=berhasil False=gagal

Keterangan :

Membuat View secara fisik di DBMS sesuai dengan input yang diberikan, dijalankan sesudah objek tabel telah terbentuk

Nama Fungsi : writeTrigger Function Header :

public boolean writeTrigger(java.lang.String triggerName,java.lang.String trigerDesc)

Input triggerName

Tipe data

: java.lang.String

Deskripsi : Nama-nama Trigger Input trigerDesc Tipe data : java.lang.String Deskripsi : Definisi dari Trigger Output Tipe data : boolean Deskripsi

: penanda keberhasilan pembuatan Trigger True=berhasil False=gagal

Keterangan :

Membuat Trigger secara fisik di DBMS sesuai dengan input yang diberikan, dijalankan sesudah objek tabel telah terbentuk

Nama Fungsi : writeStoredProcedure Function Header :

public boolean writeStoredProcedure(java.lang.String storedProcName,java.lang.String storedProcDesc)

Input storedProcName

Tipe data

: java.lang.String

Deskripsi : Nama-nama Strored Procedure Input storedProcDesc

Tipe data

: java.lang.String

Deskripsi : Definisi Stored Procedure Output Tipe data : boolean Deskripsi

: penanda keberhasilan pembuatan Stored Procedure True=berhasil False=gagal

Keterangan :

Membuat Stored Procedure secara fisik di DBMS sesuai dengan input yang diberikan, dijalankan sesudah objek tabel telah terbentuk

Page 23: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

49

Nama Fungsi : writeUserDefinedFunction Function Header :

public boolean writeUserDefinedFunction(java.lang.String uDFName,java.lang.String uDFDesc)

Input uDFName Tipe data : java.lang.String Deskripsi : Nama-nama User Defined Function Input uDFDesc Tipe data : java.lang.String Deskripsi : Definisi User Defined Function Output Tipe data : boolean Deskripsi

: penanda keberhasilan pembuatan User Defined Function True=berhasil False=gagal

Keterangan :

Membuat Stored Procedure secara fisik di DBMS sesuai dengan input yang diberikan

Nama Fungsi : createUser Function Header : public boolean createUser(java.util.Vector userDesc) Input Tipe data : java.util.Vector Deskripsi : Keterangan mengenai user (nama user dan password) Output Tipe data : boolean Deskripsi

: penanda keberhasilan pembuatan User True=berhasil False=gagal

Keterangan :

Membuat User secara fisik di DBMS sesuai dengan input yang diberikan

Nama Fungsi : grantUser Function Header : public boolean grantUser(java.util.Vector userAcces) Input Tipe data : java.util.Vector Deskripsi : Hak-hak akses untuk tiap-tiap user Output Tipe data : boolean Deskripsi

: penanda keberhasilan pemberian hak akses pada User True=berhasil False=gagal

Keterangan : Memberikan hak akses pada tiap-tiap user di DBMS untuk database yang bersangkutan

3.3.2 Perancangan Database

Migrasi database memerlukan suatu database dalam menjalankan prosesnya,

yaitu database migrasi. Database migrasi memiliki dua belas tabel, yaitu:

Page 24: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

50

1. Tabel MsCategory

Nama Tabel : MsCategory

Primary Key : CategoryCode

Foreign Key : -

Tabel 3.2 Tabel MsCategory

Nama Kolom Tipe Data Length Keterangan

CategoryCode VARCHAR 10 Kode untuk kategori DBMS

Descc VARCHAR 100 Deskripsi dari CategoryCode

Tabel ini berfungsi menyimpan data tentang kategori plugin yang dipakai

dalam migrasi database ini. Misalnya: kategori Microsoft SQL Server, kategori

MySQL, dan sebagainya.

2. Tabel MsPlugin

Nama Tabel : MsPlugin

Primary Key : PluginCode

Foreign Key : CategoryCode

Tabel 3.3 Tabel MsPlugin

Nama Kolom Tipe Data Length Keterangan

PluginCode VARCHAR 10 Kode untuk plugin

CategoryCode VARCHAR 10 Kode kategori dari plugin

Descp VARCHAR 100 Deskripsi dari PluginCode

ClassName VARCHAR 100 Nama class dari plugin

Page 25: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

51

Tabel ini berfungsi untuk menyimpan data jenis plugin yang didukung oleh

tool migrasi ini dan juga nama class plugin-nya. Misalnya: plugin Microsoft SQL

Server 2000, plugin MySQL versi 5.0.11.

3. Tabel MsJob

Nama Tabel : MsJob

Primary Key : JobId

Foreign Key : -

Tabel 3.4 Tabel MsJob

Nama Kolom Tipe Data Length Keterangan

JobId SMALLINT - Kode untuk suatu job

JobDesc VARCHAR 100 Deskripsi dari job tersebut

DbName VARCHAR 255 Nama database

Ip VARCHAR 16 IP Address database server

Port INT - Port database server

UserName VARCHAR 255 User database server

Password VARCHAR 50 Password untuk user diatas

Tabel ini menyimpan keterangan dari suatu job dan database yang terkait,

dimana satu JobId mewakili satu database.

Page 26: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

52

4. Tabel MsPluginReadMapping

Nama Tabel : MsPluginReadMapping

Primary Key : PluginCode, PluginDataType, DataType

Foreign Key : PluginCode

Tabel 3.5 Tabel MsPluginReadMapping

Nama Kolom Tipe Data Length Keterangan

PluginCode VARCHAR 10 Kode plugin

PluginDataType VARCHAR 25 Tipe data pada plugin

DataType VARCHAR 25 Tipe data pada database migrasi

Num SMALLINT - Penanda tipe data yang

merupakan tipe data numeric

Error SMALLINT - Penanda tipe data yang

merupakan tipe data yang error

waktu mapping

Tabel ini menyimpan mapping tipe data yang bersesuaian untuk setiap plugin

pada proses baca, beserta informasi numeric dan error tipe data tersebut.

5. Tabel MsPluginWriteMapping

Nama Tabel : MsPluginWriteMapping

Primary Key : PluginCode, PluginDataType, DataType

Foreign Key : PluginCode

Page 27: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

53

Tabel 3.6 Tabel MsPluginWriteMapping

Nama Kolom Tipe Data Length Keterangan

PluginCode VARCHAR 10 Kode plugin

PluginDataType VARCHAR 25 Tipe data pada plugin

DataType VARCHAR 25 Tipe data pada database migrasi

Num SMALLINT - Penanda tipe data yang

merupakan tipe data numeric

Error SMALLINT - Penanda tipe data yang

merupakan tipe data yang error

waktu mapping

Tabel ini menyimpan mapping tipe data yang bersesuaian untuk setiap plugin

pada proses tulis, beserta informasi numerik dan error tipe data tersebut.

6. Tabel MsPluginObjectName

Nama Tabel : MsPluginObjectName

Primary Key : PluginCode, SourceChar, DestChar

Foreign Key : PluginCode

Tabel 3.7 Tabel MsPluginObjectName

Nama Kolom Tipe Data Length Keterangan

PluginCode VARCHAR 10 Kode plugin

SourceChar VARCHAR 25 Karakter yang akan dikonversi

DestChar VARCHAR 25 Karakter hasil konversi

Page 28: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

54

Tabel ini menyimpan jenis karakter untuk konversi nama objek.

7. Tabel TrJob

Nama Tabel : TrJob

Primary Key : JobId, JobSeq

Foreign Key : JobId, PluginCode

Tabel 3.8 Tabel TrJob

Nama Kolom Tipe Data Length Keterangan

JobId SMALLINT - Kode job

JobSeq SMALLINT - Nomor urut

JobDesc VARCHAR 100 Deskripsi dari JobSeq

DateJob Date - Tanggal job dilakukan

LogFileName VARCHAR 50 Nama file untuk log job ini

PluginCode VARCHAR 10 Kode Plugin

IncludeErrorObject SMALLINT - Penanda untuk

penyimpanan Error Object

Tabel ini menyimpan data tentang proses-proses migrasi yang pernah

dilakukan, baik proses baca maupun proses tulis. JobSeq diperlukan jika suatu job

diproses ulang.

Page 29: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

55

8. Tabel TrJobDetail

Nama Tabel : TrJobDetail

Primary Key : JobId, JobSeq

Foreign Key : JobId, JobSeq, RefJobId, RefJobSeq

Tabel 3.9 Tabel TrJob Detail

Nama Kolom Tipe Data Length Keterangan

JobId SMALLINT - Kode job

JobSeq SMALLINT - Nomor urut

RefJobId SMALLINT - Kode job dari action read

RefJobSeq SMALLINT - Nomor urut

Tabel ini hanya berisi data job proses tulis. Tabel ini digunakan sebagai

penunjuk untuk mengetahui JobId mana yang akan digunakan sebagai sumber untuk

suatu job proses tulis.

9. Tabel TrObject

Nama Tabel : TrObject

Primary Key : JobId, JobSeq, ObjectName

Foreign Key : JobId, JobSeq

Tabel 3.10 Tabel TrObject

Nama Kolom Tipe Data Length Keterangan

JobId SMALLINT - Kode job

JobSeq SMALLINT - Nomor urut

Page 30: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

56

ObjectName VARCHAR 255 Nama objek

ObjectType VARCHAR 20 Tipe Objek

Error SMALLINT - Tipe Error pada objek

Tabel ini menyimpan data tentang objek-objek apa saja yang dibaca pada

satu proses baca beserta tipe error tiap objek jika terdapat error pada waktu proses

migrasi tersebut.

10. Tabel TrUserAccess

Nama Tabel : TrUserAccess

Primary Key : JobId, JobSeq, ObjectName, UserName

Foreign Key : JobId, JobSeq, ObjectName

Tabel 3.11 Tabel TrUserAccess

Nama Kolom Tipe Data Length Keterangan

JobId SMALLINT - Kode job

JobSeq SMALLINT - Nomor urut

ObjectName VARCHAR 255 Nama objek

UserName VARCHAR 255 Nama user

AddAcc SMALLINT - Hak user untuk menambah

record

UpdateAcc SMALLINT - Hak user untuk mengubah

record

DeleteAcc SMALLINT - Hak user untuk menghapus

Page 31: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

57

record

SelectAcc SMALLINT - Hak user untuk melihat record

yang ada

Tabel ini menyimpan data tentang hak akses yang dimiliki oleh pengguna

database.

11. Tabel TrObjectDetail

Nama Tabel : TrObjectDetail

Primary Key : JobId, JobSeq, ObjectName, TextSeq

Foreign Key : JobId, JobSeq, ObjectName

Tabel 3.12 Tabel TrObjectDetail

Nama Kolom Tipe Data Length Keterangan

JobId SMALLINT - Kode job

JobSeq SMALLINT - Nomor urut

ObjectName VARCHAR 255 Nama objek

TextSeq SMALLINT - Nomor urut text

Text VARCHAR 250 Text

Tabel ini digunakan untuk menyimpan data dari objek yang berupa sintaks

SQL. Jika panjang sintaks melebihi length dari field text, maka sintaks tersebut akan

dibagi ke dalam beberapa bagian.

Page 32: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

58

12. Tabel TrObjectColumn

Nama Tabel : TrObjectColumn

Primary Key : JobId, JobSeq, ObjectName, ColumnName

Foreign Key : JobId, JobSeq, ObjectName

Tabel 3.13 Tabel TrObjectColumn

Nama Kolom Tipe Data Length Keterangan

JobId SMALLINT - Kode job

JobSeq SMALLINT - Nomor urut

ObjectName VARCHAR 255 Nama objek tabel

ColumnName VARCHAR 255 Nama kolom

DataType VARCHAR 25 Tipe data

Length INTEGER - Panjang untuk tipe data

karakter

Nullable SMALLINT - Penanda bisa berisi null atau

tidak

DefaultCol VARCHAR 255 Nilai default untuk kolom

UniqueCol SMALLINT - Penanda bahwa suatu kolom

tidak boleh memiliki nilai

yang sama, tapi boleh null

PrimaryCol SMALLINT - Sama seperti unuk, tetapi

tidak boleh null

RefObjectName VARCHAR 255 Nama objek tabel untuk

definisi foreign key

Page 33: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

59

RefObjectColumn VARCHAR 255 Nama kolom pada tabel di

atas untuk definisi foreign

key

RefUpdate SMALLINT - Aksi yang dilakukan untuk

tipe referensial update

RefDelete SMALLINT - Aksi yang dilakukan untuk

tipe referensial delete

Error SMALLINT - Penanda kolom yang tipe data

mapping-nya error.

Tabel ini digunakan untuk menyimpan data objek yang bertipe table. Data

yang tersimpan disini adalah data informasi tabel beserta referensial integrity dari

tabel tersebut dan informasi keberhasilan mapping-nya.

ERD dari database migrasi diatas dapat dilihat di Gambar 3.4 ERD Database

Migrasi.

Page 34: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

60

Gambar 3.9 ERD Database Migrasi

Page 35: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

61

3.3.3 Perancangan Layar

Gambar 3.10 Struktur Menu

Write Database

Read Database View Log

View Table

Layar Pembuka

Layar Utama

Layar Task Baca

Layar Mapping Tipe data

Layar Konfirmasi Baca

Layar Proses Baca

Layar Log

Layar Task Tulis

Layar Mapping Tipe data

Layar Konfirmasi Tulis

Layar Proses Tulis

Layar Log

Layar View Table Schema

and Script

Layar View Table

Layar View Log

Layar Log Layar Konfigurasi

Layar Konfigurasi

Layar Table Schema and Script

Page 36: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

62

3.3.3.1 Layar Pembuka

Judul Layar

Keterangan Layar

Gambar

Kata-kata pembuka

Next Exit

Gambar 3.11 Rancangan Layar Pembuka

3.3.3.2 Layar Utama

Judul Layar

Keterangan Layar

Action Gambar radio Read radio Write radio View task radio View log Help Back Next Cancel

Gambar 3.12 Rancangan Layar Utama

Page 37: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

63

3.3.3.3 Layar Task Baca

Judul Layar

Keterangan Layar

Task TextBox/Combo Box Check Box New Task Gambar Database Name TextBox IP TextBox Port TextBox User TextBox Password TextBox Task Detail TextBox Plugins ComboBox Help Back Next Cancel

Gambar 3.13 Rancangan Layar Task Baca

Page 38: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

64

3.3.3.4 Layar Task Tulis

Judul Layar

Keterangan Layar

Task TextBox/Combo Box Check Box New Task Database Name TextBox IP TextBox Gambar Port TextBox User TextBox Password TextBox Task Detail TextBox Plugins ComboBox Read From : Ref Task ComboBox Ref Task Detail ComboBox Help Back Next Cancel

Gambar 3.14 Rancangan Layar Task Tulis

Page 39: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

65

3.3.3.5 Layar View Table Schema and Script

Judul Layar

Keterangan Layar

Task ComboBox Task Detail ComboBox Gambar Database Name Label Date Label Log File Name Label Plugin Desc Label Help Back Next Cancel

Gambar 3.15 Rancangan Layar View Table Schema and Script

3.3.3.6 Layar View Log

Judul Layar

Keterangan Layar

Task ComboBox Task Detail ComboBox Gambar Help Back Next Cancel

Gambar 3.16 Rancangan Layar View Log

Page 40: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

66

3.3.3.7 Layar Konfigurasi Task

Judul Layar

Keterangan Layar

Check Box Include Error Object Gambar Check Box Convert Object Name Source Char Text Box Destination Char Text Box Help Back Next Cancel

Gambar 3.17 Rancangan Layar Konfigurasi Task

3.3.3.8 Layar Mapping Tipe Data

Judul Layar

Keterangan Layar

Sumber Tujuan Gambar

Daftar Mapping Data Type

Help Back Next Cancel

Gambar 3.18 Rancangan Layar Mapping Tipe Data

Page 41: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

67

3.3.3.9 Layar Konfirmasi Baca

Judul Layar

Keterangan Layar

Database Name Label IP Label Gambar Port Label User Label Plugin Label Help Back Next Cancel

Gambar 3.19 Rancangan Layar Konfirmasi Baca

3.3.3.10 Layar Konfirmasi Tulis

Judul Layar

Keterangan Layar

Database Name Label IP Label Gambar Port Label User Label Plugin Label Read from : Ref Task Label Ref Task Detail Label Help Back Next Cancel

Gambar 3.20 Rancangan Layar Konfirmasi Tulis

Page 42: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

68

3.3.3.11 Layar Proses Baca

Judul Layar

Keterangan Layar

Gambar

Keterangan Proses

Help Next Ext

Gambar 3.21 Rancangan Layar Proses Baca

3.3.3.12 Layar Proses Tulis

Judul Layar

Keterangan Layar

Gambar

Keterangan Proses

Help Next Ext

Gambar 3.22 Rancangan Layar Proses Tulis

Page 43: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

69

3.3.3.13 Layar Log

Judul Layar

Keterangan Layar

Log Type Combo Box Gambar

Log

Help Back Next Exit

Gambar 3.23 Rancangan Layar Log

3.3.3.14 Layar View Table

Judul Layar

Keterangan Layar

Gambar

Table Tree View

Help Back Next Exit

Gambar 3.24 Rancangan Layar View Table

Page 44: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

70

3.3.3.15 Layar Table Schema and Script

Judul Layar

Keterangan Layar

Shema Source Script Dest Script Help Close

Gambar 3.25 Rancangan Layar Table Schema and Script

3.3.3.16 Layar Help

Judul Layar

Keterangan Layar

Text

Close

Gambar 3.26 Rancangan Layar Help

Page 45: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

71

3.4 Spesifikasi Modul

class Main deklarasi attribute deklarasi driver yang akan dipakai constructor panggil method super deklarasi semua class screen set class lanjutan untuk semua screen yang ditentukan dengan indeks tampilkan class WelcomeScreen end constructor method main deklarasi class Main end main method buttonClicked jika button Next diklik panggil method preloadScreen layar berikutnya panggil screen berikutnya end jika jika button Back diklik panggil screen sebelumnya end jika jika button Cancel di klik panggil screen pertama end jika end buttonClicked end Main

Interface Tree method getChild end getChild method addChild end addChild method getTreeParent end getTreeParent method getNoOfChild end getNoOfChild method addTreeParent end addTreeParent method setIndexAtParent end setIndexAtParent method removeChild end removeChild end Tree

Class GrammarTree constructor panggil method setText

Page 46: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

72

end constructor method addChild tambah tree anak dengan indeks yang sesuai end method addChild method addTreeParent set treeParent = parameter tree yang dikirim end addTreeParent method getChild return tree anak sesuai indeks yang diminta end getChild method getIndexAtParent return indeks tree ini di parent end getIndexAtParent method getNoOfChild return jumlah tree anak end getNoOfChild method getText return teks dari tree end getText method getTreeParent return objek parent end getTreeParent method removeChild remove tree anak pada indeks yang sesuai end removeChild method setIndexAtParent set nilai indeks pada parent end setIndexAtParent method setText set teks dari tree end setText end GrammarTree

class ScreenTree deklarasi attribute deklarasi variable global constructor panggil method super inisialisasi layout default end constructor method getChild keluar method dengan mengembalikan anak dari screen tree sesuai dengan indeks end getChild method addChild menambahkan screen tree parent pada tree yang dikirim menambahkan indeks pada tree anak yang telah ditambahkan end addChild method getTreeParent keluar method dengan mengembalikan tree parent

Page 47: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

73

end getTreeParent method getNoOfChild keluar methode dengan mengembalikan jumlah tree anak end getNoOfChild method addTreeParent set tree Parent dengan tree yang dikirim end addTreeParent method nextScreen sembunyikan screen yang aktif tampilkan screen selanjutnya end nextScreen method prevScreen sembunyikan screen yang aktif tampilkan screen parent end prevScreen method preloadScreen keluar method dengan mengemmbalikan nilai true end preloadScreen end ScreenTree

class MainMenuScreen deklarasi attribute constructor panggil method super panggil method initScreen panggil method initDb end constructor method initScreen inisialisasi layout end initScreen method initDb buat driver untuk database migrasi buat koneksi database end initDb method setNextScreen set indeks screen berikutnya sesuai dengan parameter yang dikirim end setNextScreen method readAction jika aksi read database yang dipilih set radio button read yang terpilih end jika set radio button write tidak dipilih set radio button lihat schema table dan script tidak dipilih set radio button lihat log tidak dipilih set indeks screen selanjutnya set kode aksi end readAction method writeAction jika aksi write database yang dipilih

Page 48: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

74

set radio button write yang terpilih end jika set radio button read tidak dipilih set radio button lihat schema table dan script tidak dipilih set radio button lihat log tidak dipilih set indeks screen selanjutnya set kode aksi end writeAction method jobAction jika aksi lihat schema table dan script yang dipilih set radio buttonlihat schema table dan script yang terpilih end jika set radio button write tidak dipilih set radio button read tidak dipilih set radio button lihat log tidak dipilih set indeks screen selanjutnya set kode aksi end jobAction method logAction jika aksi lihat log yang dipilih set radio button lihat log yang terpilih end jika set radio button write tidak dipilih set radio button lihat schema table dan script tidak dipilih set radio button read tidak dipilih set indeks screen selanjutnya set kode aksi end logAction method buttonClicked jika button Next diklik panggil method preloadScreen layar berikutnya panggil screen berikutnya end jika jika button Back diklik panggil screen sebelumnya end jika jika button Cancel di klik panggil screen pertama end jika end buttonClicked end MainMenuScreen

class ProcessReadJobScreen deklarasi attribute constructor panggil method super panggil method initScreen end constructor method initScreen

Page 49: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

75

inisialisasi layout end initScreen method perloadScreen jika method loadParam tidak mengembalikan nilai true keluar method dengan mengembalikan nilai false end jika jika method process tidak mengembalikan nilai true keluar method dengan mengembalikan nilai false end jika keluar method dengan mengembalikan nilai true end preloadScreen method loadParam buat koneksi database jika merupakan task baru query data task terbaru set kode task=data task terbaru tambahkan data task baru ke database dengan kode task=kode task+1 selain itu set kode task=variable global task query data task detail terbaru end jika

tambahkan data task detail baru ke database dengan kode task baru dan kode task detail=kode task detail+1

keluar method dengan mengemablikan nilai end loadParam method process deklarasi class Log baru panggil method setText pada class Log

deklarasi class MetaDataEngine baru dengan mengirimkan data task, task detail, kode read dan class log

panggil method setChar pada class MetaDataEngine dengan mengirimkan kode dan karakter convert

mulai menjalankan class MetaDataEngine keluar method dengan mengembalikan nilai true end process method setBut set button Next sesuai dengan parameter yang diterima end setBut method buttonClicked jika button Next diklik panggil method preloadScreen layar berikutnya panggil screen berikutnya end jika jika button Exit di klik keluar dari program end jika end buttonClicked end ProcessReadJobScreen

class ProcessWriteJobScreen

Page 50: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

76

deklarasi attribute constructor panggil method super panggil method initScreen end constructor method initScreen inisialisasi layout end initScreen method perloadScreen jika method loadParam tidak mengembalikan nilai true keluar method dengan mengembalikan nilai false end jika jika method process tidak mengembalikan nilai true keluar method dengan mengembalikan nilai false end jika keluar method dengan mengembalikan nilai true end preloadScreen method loadParam buat koneksi database jika merupakan task baru query data task terbaru set kode task=data task terbaru tambahkan data task baru ke database dengan kode task=kode task+1 selain itu set kode task=variable global task query data task detail terbaru end jika

tambahkan data task detail baru ke database dengan kode task baru dan kode task detail=kode task detail+1

tambahkan data task reference ke database keluar method dengan mengemablikan nilai end loadParam method process deklarasi class Log baru panggil method setText pada class Log

deklarasi class MetaDataEngine baru dengan mengirimkan data task, task detail, kode write dan class log

panggil method setChar pada class MetaDataEngine dengan mengirimkan kode dan karakter convert

mulai menjalankan class MetaDataEngine keluar method dengan mengembalikan nilai true end process method setBut set button Next sesuai dengan parameter yang diterima end setBut method buttonClicked jika button Next diklik panggil method preloadScreen layar berikutnya panggil screen berikutnya end jika jika button Exit di klik

Page 51: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

77

keluar dari program end jika end buttonClicked end ProcessWriteJobScreen

class ReadMappingScreen deklarasi attribute constructor panggil method super panggil method initScreen end constructor method initScreen inisialisasi layout end initScreen method perloadScreen bersihkan panel mapping buat koneksi database query data raed mapping sesuai plugin loop selama masih ada data masukkan dalam variable vector end loop set layout panel sesuai variable vector loop sebanyak ukuran variable vector tambahkan label sesuai value variabel vector pada panel end loop masukkan panel ke dalam scrollPane tutup koneksi database keluar method dengan mengembalikan nilai true end preloadScreen method createLabel buat label baru set text label sesuai parameter yang dikirim keluar method dengan mengembalikan label end createLabel method buttonClicked jika button Next diklik panggil method preloadScreen layar berikutnya panggil screen berikutnya end jika jika button Back diklik panggil screen sebelumnya end jika jika button Cancel di klik panggil screen pertama end jika end buttonClicked end ReadMappingScreen

Page 52: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

78

class ViewLogScreen deklarasi attribute constructor panggil method super panggil method initScreen end constructor method initScreen inisialisasi layout end initScreen method loadData buat koneksi database query data task loop selama masih ada data tampilkan data ke combobox end loop panggil method loadTaskDesc panggil method loadTaskDetail tutup koneksi database end loadData method perloadScreen panggil method loadData keluar method dengan mengembalikan nilai true end preloadScreen method loadTaskDesc jika jumlah task !=0 buat koneksi database query data task loop selama masih ada data tampilkan data task end loop tutup koneksi database end jika end loadTaskDesc method loadTaskDetail jika jumlah task !=0 buat koneksi database query data task detail loop selama masih ada data tampilkan data ke combobox end loop tutup koneksi database end jika end loadTaskDetail method buttonClicked jika button Next diklik panggil method saveParam panggil method preloadScreen layar berikutnya panggil screen berikutnya end jika jika button Back diklik panggil screen sebelumnya

Page 53: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

79

end jika jika button Cancel di klik panggil screen pertama end jika end buttonClicked method jobIdChange panggil method loadTaskDetail panggil method loadTaskDesc end jobIdChange method saveParam set variable global=nilai textfield end saveParam end ViewLogScreen

class ViewResultScreen deklarasi attribute constructor panggil method super panggil method initScreen end constructor method initScreen inisialisasi layout end initScreen method loadData buat koneksi database query data task loop selama masih ada data tampilkan data ke combobox end loop panggil method loadTaskDesc panggil method loadTaskDetail tutup koneksi database end loadData method perloadScreen panggil method loadData keluar method dengan mengembalikan nilai true end preloadScreen method loadTaskDesc jika jumlah task !=0 buat koneksi database query data task loop selama masih ada data tampilkan data task end loop tutup koneksi database end jika end loadTaskDesc method loadTaskDetail jika jumlah task !=0

Page 54: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

80

buat koneksi database query data task detail loop selama masih ada data tampilkan data ke combobox end loop tutup koneksi database end jika end loadTaskDetail method buttonClicked jika button Next diklik panggil method saveParam panggil method preloadScreen layar berikutnya panggil screen berikutnya end jika jika button Back diklik panggil screen sebelumnya end jika jika button Cancel di klik panggil screen pertama end jika end buttonClicked method jobIdChange panggil method loadTaskDetail panggil method loadTaskDesc end jobIdChange method saveParam set variable global=nilai textfield end saveParam end ViewResultScreen

class WelcomeScreen deklarasi attribute constructor panggil method super panggil method initScreen end constructor method initScreen inisialisasi layout end initScreen method buttonClicked jika button Next diklik panggil method preloadScreen layar berikutnya panggil screen berikutnya end jika jika button Exit di klik keluar dari program end jika end buttonClicked end WelcomeScreen

Page 55: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

81

class WriteMappingScreen deklarasi attribute constructor panggil method super panggil method initScreen end constructor method initScreen inisialisasi layout end initScreen method perloadScreen bersihkan panel mapping buat koneksi database query data write mapping sesuai plugin loop selama masih ada data masukkan dalam variable vector end loop set layout panel sesuai variable vector loop sebanyak ukuran variable vector tambahkan label sesuai value variabel vector pada panel end loop masukkan panel ke dalam scrollPane tutup koneksi database keluar method dengan mengembalikan nilai true end preloadScreen method createLabel buat label baru set text label sesuai parameter yang dikirim keluar method dengan mengembalikan label end createLabel method buttonClicked jika button Next diklik panggil method preloadScreen layar berikutnya panggil screen berikutnya end jika jika button Back diklik panggil screen sebelumnya end jika jika button Cancel di klik panggil screen pertama end jika end buttonClicked end WriteMappingScreen

class WriteJobScreen deklarasi attribute constructor panggil method super

Page 56: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

82

panggil method initScreen end constructor method initScreen inisialisasi layout end initScreen method loadData panggil method clearTextField buat koneksi database query data task loop selama masih ada data tampilkan data ke combobox end query data task detail loop selama masih ada data tampilkan data ke combobox end loop panggil method loadJobIdWrite query data plugin loop selama masih ada data tampilkan data ke comboBox end loop tutup koneksi database end loadData method perloadScreen panggil method loadData panggil method loadJobIdDet panggil method setTextField dengan parameter false keluar method dengan mengembalikan nilai true end preloadScreen method loadJobIdDet jika jumlah task !=0 tampilkan data task end jika end loadJobIdDet method loadJobIdWrite jika jumlah task reference !=0 buat koneksi database query data task reference detail loop selama masih ada data tampilkan data ke combobox end loop tutup koneksi database end jika end loadJobIdWrite method setTextField set properties textfield sesuai dengan parameter yang dikirim end setTextField method clearTextField bersihkan textfield end clearTextField method buttonClicked

Page 57: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

83

jika button Next diklik jika method saveParam mengembalikan nilai true panggil method preloadScreen layar berikutnya panggil screen berikutnya selain itu tampilkan pesan "Data not complete" end jika end jika jika button Back diklik panggil screen sebelumnya end jika jika button Cancel di klik panggil screen pertama end jika end buttonClicked method newJobId jika task baru dipilih panggil method clearTextField panggil method setTextField dengan parameter true selain itu panggil method loadJobIdDet panggil method setTextField dengan parameter false end jika end newJobId method jobIdChange panggil method loadJobIdDet end jobIdChange method jobIdWriteChange panggil method loadJobIdWrite end jobIdWriteChange method saveParam jika jumlah task !=0 set variable global=kode task end jika set variable global=nilai textfield jika tidak ada variable global yang kosong keluar method dengan mengembalikan nilai true selain itu keluar method dengan mengembalikan nilai false end jika end saveParam end WriteJobScreen

Class ReadJobScreen deklarasi attribute constructor panggil method super panggil method initScreen end constructor

Page 58: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

84

method initScreen inisialisasi layout end initScreen method loadData panggil method clearTextField buat koneksi database query data job loop selama masih ada data tampilkan data hasil query ke combobox end loop query data plugin loop selama masih ada data tampilkan data hasil query ke combobox end loop tutup koneksi database end loadData method preloadScreen panggil method loadData panggil method loadJobIdDet panggil method setTextField dengan paramater false keluar method dengan mengembalikan nilai true end preloadScreen method loadJobIdDet jika jumlah task != 0 tampilkan data task end jika end loadJobIdDet method setTextField set properties textfield sesuai parameter yg diterima end setTextField method clearTextField bersihkan textfield end clearTextField method buttonClicked jika button Next diklik jika method saveParam mengembalikan nilai true panggil method preloadScreen layar berikutnya panggil screen berikutnya selain itu tampilkan pesan "Data not complete" end jika end jika jika button Back diklik panggil screen sebelumnya end jika jika button Cancel di klik panggil screen pertama end jika end buttonClicked method newJobId jika task baru dipilih

Page 59: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

85

panggil method clearTextField panggil method setTextField dengan parameter true selain itu panggil method loadJobIdDet panggil method setTextField dengan parameter false end jika end newJobId method jobIdChange panggil method loadJobIdDet end jobIdChange method saveParam jika jumlah task!=0 set variable global=kode task end jika set variable global=nilai textfield jika tidak ada variable global yang kosong keluar method dengan mengembalikan nilai true selain itu keluar method dengan mengembalikan nilai false end jika end saveParam end ReadJobScreen

class ConfigurationScreen deklarasi attribute constructor panggil method super panggil method initScreen end constructor method initScreen inisialisasi layout end initScreen method perloadScreen panggil method setCombo dengan parameter false keluar methode dengan mengembalikan nilai true end preloadScreen method setCombo set properties combobox sesuai dengan parameter yang diterima end setCombo method buttonClicked jika button Next diklik panggil method preloadScreen layar berikutnya panggil screen berikutnya end jika jika button Back diklik panggil screen sebelumnya end jika jika button Cancel di klik panggil screen pertama

Page 60: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

86

end jika end buttonClicked method setConvert jika convert karakter dipilih panggil method setCombo dengan parameter true panggil method loadComboSource panggil method loadComboDest selain itu panggil method setCombo dengan parameter false bersihkan combobox end jika end method setConvert method loadComboSource buat koneksi database query data karakter asal sesuai plugin yang dipakai loop selama masih ada data tambahkan data ke combobox end loop tutup koneksi database end loadComboSource method loadComboDest buat koneksi database query data karakter tujuan sesuai plugin yang dipakai loop selama masih ada data tambahkan data ke combobox end loop tutup koneksi database end loadComboDest method saveParam jika include error object dipilih set variabel includeerrorobject=1 selain itu set variabel includeerrorobject=1 end jika jika convert karakter diplih set variable convert=1 jika jumlah karakter asal !=0

set variable karakter asal sesuai dengan nilai combobox karakter asal

end jika jika jumlah karakter tujuan !=0

set variable karakter tujuan sesuai dengan nilai combobox karakter tujuan

end jika selain itu set variable convert=0 set karakter convert dengan string kosong end jika end saveParam end ConfigurationScreen

Page 61: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

87

class ConfirmReadJobScreen deklarasi attribute constructor panggil method super panggil method initScreen end constructor method initScreen inisialisasi layout end initScreen method perloadScreen set text textfield sesuai dengan data task write yang akan diproses keluar method dengan mengembalikan nilai true end preloadScreen method buttonClicked jika button Next diklik panggil method preloadScreen layar berikutnya panggil screen berikutnya end jika jika button Back diklik panggil screen sebelumnya end jika jika button Cancel di klik panggil screen pertama end jika end buttonClicked end ConfirmReadJobScreen

class ConfirmWriteJobScreen deklarasi attribute constructor panggil method super panggil method initScreen end constructor method initScreen inisialisasi layout end initScreen method perloadScreen set text textfield sesuai dengan data task write yang akan diproses keluar method dengan mengembalikan nilai true end preloadScreen method buttonClicked jika button Next diklik panggil method preloadScreen layar berikutnya panggil screen berikutnya end jika jika button Back diklik panggil screen sebelumnya end jika jika button Cancel di klik

Page 62: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

88

panggil screen pertama end jika end buttonClicked end ConfirmWriteJobScreen

class DatabaseSchemaScreenScreen deklarasi attribute constructor panggil method super set data task dan table sesuai dengan parameter yang diterima panggil method initScreen end constructor method initScreen inisialisasi layout end initScreen method loadTable buat koneksi database query data table sesuai dengan table yang dikirim set data jtable dengan memanggil class TableModel dan mengirimkan data hasil query tutup koneksi database keluar method dengan mengembalikan jtable yang dimasukkan ke dalam jscrollpane end loadTable method loadSource buka file source script data sesuai dengan task yang dipilih set text script data pada text area tutup file script data end loadSource method loadDest buka file destination script data sesuai dengan task yang dipilih set text script data pada text area tutup file script data end loadDest method buttonClicked sembunyikan layar ini end buttonClicked class TableModel deklarasi attribute constructor ambil metadata dari resultset yang diterima set jumlah kolom data tersebut loop sebanyak jumlah kolom tambahkan nama header kolom ke varable vector end loop loop selama masih ada data deklarasi vector rowdata loop sebanyak jumlah kolom tambahkan data ke vector rowdata end loop tambahkan rowdata ke variable vector table

Page 63: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

89

end loop end constructor method getColumnCount keluar method dengan mengembalikan jumlah kolom data end getColumnCount method getRowCount keluar method dengan mengembalikan jumlah baris data end getRowColumn method getValueAt

set variable data dengan data pada vector table pada indeks kolom dan baris yang diinginkan

keluar method dengan mengembalikan variable data end getValueAt method isCellEditable keluar method dengan mengembalikan nilai false end isCellEditable method getColumnName keluar method dengan mengembalikan nama header kolom end getColumnName end TableModle end DatabaseSchemaScreenScreen

class HelpScreen deklarasi attribute constructor panggil method super panggil method initScreen panggil method loadParam end constructor method initScreen inisialisasi layout end initScreen method preloadScreen jika method loadParam tidak mengembalikan nilai true keluar method dengan mengembalikan nilai false end jika keluar method dengan mengembalikan nilai true end preloadScreen method loadParam buka file readme set text file ke text area tutup file keluar method dengan mengembalikan nilai true end loadParam method buttonClicked sembunyikan layar ini end buttonClicked end HelpScreen

Page 64: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

90

class ShowLogScreen deklarasi attribute constructor panggil method super panggil method initScreen end constructor method initScreen inisialisasi layout end initScreen method perloadScreen jika method loadParam mengembalikan nilai false keluar method dengan mengembalikan nilai false selain itu keluar methid engan mengembalikan nilai true end jika end preloadScreen method buttonClicked jika button Next diklik panggil method preloadScreen layar berikutnya panggil screen berikutnya end jika jika button Back diklik panggil screen sebelumnya end jika jika button Exit di klik keluar dari program end jika end buttonClicked method loadParam buat koneksi database set variable task sesuai nilai variable global panggil method loadLog tutup koneksi database keluar method dengan mengembalikan nilai true end loadParam method loadLog set variable log file name sesuai dengan nilai combo log type yang dipilih buka file sesuai log file name masukkan text ke dalam text area tutup file end loadLog end ShowLogScreen

class ShowResultScreen deklarasi attribute constructor panggil method super panggil method initScreen end constructor

Page 65: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

91

method initScreen inisialisasi layout end initScreen method perloadScreen jika method loadParam tidak mengembalikan nilai true keluar method dengan nilai false selain itu keluar method dengan nilai true end jika end preloadScreen method buttonClicked jika button Next diklik panggil method preloadScreen layar berikutnya panggil screen berikutnya end jika jika button Back diklik panggil screen sebelumnya end jika jika button Exit di klik keluar dari program end jika end buttonClicked method addNode buat koneksi database query nama database sesuai task buat root tree dengan nilai nama datbase query nama table yang ada pada pada database sesuai task tambahkan ke tree tutup koneksi database keluar method dengan mengembalikan tree end addNode method loadParam buat jtree dengan memanggil method addNode set image pada jtree keluar method dengan mengembalikan nilai true end loadParam end ShowResultScreen

Class Logger deklarasi attribute constructor buat referensi ke file log secara fisik end constructor method setText set logToScreen = parameter text area yang dikirim end setText method write tulis parameter message ke log file dan log screen end write

Page 66: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

92

method writeToFile tulis parameter message ke log file end writeToFile method writeToScreen tulis parameter message ke log screen end writeToScreen method closeLog tutup referensi ke file log secara fisik end closeLog end Logger

class MetaDataEngine deklarasi attribute constructor buat koneksi ke database migrasi set variable kode readwrite, task dan log sesuai parameter yang diterima end constructor method run jika mode read panggil method readDb dengan parameter data task end jika jika mode write panggil method writeDb dengan parameter data task end jika stop end run method readDb dapatkan nama classname untuk plugin yang digunakan tulis log panggil method recordDb dengan mengirimkan data task dan classname plugin deklarasi class DataEngine tulis log panggil method readTable dari class DataEngine dengan parameter false tulis log panggil method readTable dari class DataEngine dengan parameter false tulis log tutup koneksi database panggil method setBut dari class ProcessReadJobScreen keluar method dengan mengembalikan nilai true end readDb method recordDB deklarasi class sesuai dengan plugin classname yang dikirim query data task sesuai dengan kode task panggil method setParam dari class plugin dengan parameter data task query data mapping data type sesuai dengan plugin yang digunakan panggil method setMapping dari class plugin dengan parameter data mapping data type jika convert kan dilakukan

panggil method setMappingName dari class plugin dengan parameter data karakter convert

end jika

Page 67: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

93

tulis log set vector dengan memanggil method readTable dari class plugin loop sebanyak jumlah kolom keseluruhan jika table berbeda dari table sebelumnya atau table pertama tambahkan data table ke trobject end jika tambahkan data kolom table ke table trobjectcolumn jika table merupakan table error update trobject dengan mengubah error=1 end jika end loop tulis log tulis log set vector dengan memanggil method readView dari class plugin loop sebanyak jumlah view tambahkan data view ke trobject potong deskripsi view sebanyak 250 karakter simpan setiap potongan ke table trobjectdetail sesuai urutannya jika view merupakan view error update trobject dengan mengubah error=1 end jika end loop tulis log tulis log set vector dengan memanggil method readStoredProcedure dari class plugin loop sebanyak jumlah stored procedure tambahkan data stored procedure ke trobject potong deskripsi stored procedure sebanyak 250 karakter simpan setiap potongan ke table trobjectdetail sesuai urutannya jika stored procedure merupakan stored procedure error update trobject dengan mengubah error=1 end jika end loop tulis log tulis log set vector dengan memanggil method readUserDefinedFunction dari class plugin loop sebanyak jumlah user defined funtion tambahkan data user defined function ke trobject potong deskripsi user defined function sebanyak 250 karakter simpan setiap potongan ke table trobjectdetail sesuai urutannya jika user defined function merupakan user defined function error update trobject dengan mengubah error=1 end jika end loop tulis log tulis log set vector dengan memanggil method readTrigger dari class plugin loop sebanyak jumlah trigger tambahkan data trigger ke trobject potong deskripsi trigger sebanyak 250 karakter simpan setiap potongan ke table trobjectdetail sesuai urutannya

Page 68: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

94

jika trigger merupakan trigger error update trobject dengan mengubah error=1 end jika end loop tulis log tulis log set vector dengan memanggil method readUserAccess dari class plugin loop sebanyak jumlah user jika user berbeda dari user sebelumnya atau user pertama tambahkan data user ke trobject end jika tambahkan data hak akses user ke table trobjectcolumn end loop tulis log end recordDB method writeDB dapatkan nama classname untuk plugin yang digunakan dan task reference nya tulis log panggil method sendDb dengan mengirimkan data task dan classname plugin deklarasi class DataEngine tulis log panggil method writeTable dari class DataEngine dengan parameter false tulis log panggil method writeTable dari class DataEngine dengan parameter false tulis log tutup koneksi database panggil method setBut dari class ProcessReadJobScreen keluar method dengan mengembalikan nilai true end writeDB method sendDB deklarasi class sesuai dengan plugin classname yang dikirim query data task sesuai dengan kode task panggil method setParam dari class plugin dengan parameter data task query data mapping data type sesuai dengan plugin yang digunakan panggil method setMapping dari class plugin dengan parameter data mapping data type jika convert kan dilakukan

panggil method setMappingName dari class plugin dengan parameter data karakter convert

end jika tulis log query data table dari trobjectcolumn dengan kode task dan task detail reference masukkan data table ke dalam attribute table loop sebanyak jumlah kolom keseluruhan jika table pertama tambahkan data table ke trobject set nama table sesuai data table deklarasi data per table end jika jika nama table berbeda dari table sebelumnya

panggil method writeTable dari class plugin dengan parameter nama table dan data per table

Page 69: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

95

bersihkan data per table tambahkan data table ke trobject end jika tambahkan data kolom table ke data per table tambahkan data kolom table ke trobjectcolumn end loop

panggil method writeTable dari class plugin dengan parameter nama table dan data table terakhir

panggil method createConstraint dari class plugin tulis log tulis log query data deskripsi view dari trobjectdetail masukkan data view ke dalam attribute view loop sebanyak jumlah view jika view pertama set string deskripsi="" set nama view sesuai dengan data view tambahkan data view ke trobject end jika jika view sama dengan nama view sebelumnya set string deskripsi dengan menambahkan text view tambahkan data deskripsi view ke trobjectdetail selain itu

panggil method writeView dari class plugin dengan parameter nama view dan string deskripsi

bersihkan string deskripsi tambahkan data view ke trobject set string deskripsi dengan menambahkan text view end jika end loop tulis log tulis log query data deskripsi stored procedure dari trobjectdetail masukkan data stored procedure ke dalam attribute stored procedure loop sebanyak jumlah stored procedure jika stored procedure pertama set string deskripsi="" set nama stored procedure sesuai dengan data stored procedure tambahkan data stored procedure ke trobject end jika jika stored procedure sama dengan nama stored procedure sebelumnya set string deskripsi dengan menambahkan text stored procedure tambahkan data deskripsi stored procedure ke trobjectdetail selain itu

panggil method writeStoredProcedure dari class plugin dengan parameter nama stored procedure dan string deskripsi

bersihkan string deskripsi tambahkan data stored procedure ke trobject set string deskripsi dengan menambahkan text stored procedure end jika end loop

Page 70: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

96

tulis log tulis log query data deskripsi user defined function dari trobjectdetail masukkan data user defined function ke dalam attribute user defined function loop sebanyak jumlah user defined function jika user defined function pertama set string deskripsi="" set nama user defined function sesuai dengan data user defined function tambahkan data user defined function ke trobject end jika jika user defined function sama dengan nama user defined function sebelumnya set string deskripsi dengan menambahkan text user defined function tambahkan data deskripsi user defined function ke trobjectdetail selain itu

panggil method writeUserDefinedFunction dari class plugin dengan parameter nama user defined function dan string deskripsi

bersihkan string deskripsi tambahkan data user defined function ke trobject set string deskripsi dengan menambahkan text user defined function end jika end loop tulis log tulis log query data deskripsi trigger dari trobjectdetail masukkan data trigger ke dalam attribute trigger loop sebanyak jumlah trigger jika trigger pertama set string deskripsi="" set nama trigger sesuai dengan data trigger tambahkan data trigger ke trobject end jika jika trigger sama dengan nama trigger sebelumnya set string deskripsi dengan menambahkan text trigger tambahkan data deskripsi trigger ke trobjectdetail selain itu

panggil method writeTrigger dari class plugin dengan parameter nama trigger dan string deskripsi

bersihkan string deskripsi tambahkan data trigger ke trobject set string deskripsi dengan menambahkan text trigger end jika end loop tulis log tulis log query data user dari truseraccess masukkan data hak user ke attribute hak user dan data user ke attribute user panggil method createUser dari class plugin dengan parameter attribute user panggil method granUser dari class plugin dengan parameter attributte hak akses tulis log end sendDB method setChar

Page 71: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

97

jika akan dikonvert set attribute isConvert=true end jika set karakter konvert end setChar end MetaDataEngine

Class SqlserverPlugin deklarasi attribute method closeCon tutup koneksi ke database end closeCon method openCon buka koneksi ke database end openCon method convert isError = false deklarasi parser sqlserver dan sql 99 parse meta data dengan parser sql 99 jika error parse dengan parser sqlserver jika error isError = true kembalikan meta data selain itu proses convert jika error isError = true kembalikan meta data selain itu kembalikan meta data hasil konversi end jika end jika selain itu kembalikan meta data end jika end convert method readStoredProcedure query nama stored procedure loop sebanyak nama stored procedure tulis ke log query deskripsi stored procedure panggil method convert dengan parameter deskripsi stored procedure simpan hasil query ke attribute result end loop kembalikan attribute result end readStoredProcedure method readTable query nama table

Page 72: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

98

loop sebanyak nama table tulis ke log query nama column yang merupakan primary key simpan hasil query ke attribute primaryHash query nama column yang merupakan foreign key simpan hasil query ke attribute foreignHash query nama column loop sebanyak nama column set isNum = false jika tipe data column ada di attribute mapping mapping tipe data ke tipe data yang sesuai jika tipe data numerik set isNum = true end jika jika mapping tidak valid set errorColumn = true end jika end jika jika default column ada format nilai default end jika jika column ada di attribute primaryHash set primary = true end jika jika column ada di attribute foreignHash set foreign = true end jika simpan semu keterangan column ke attribute result end loop end loop kembalikan attribute result end readTable method readTrigger query nama table loop sebanyak nama table query nama trigger loop sebanyak nama trigger tulis ke log query deskripsi trigger panggil method convert dengan parameter deskripsi trigger simpan hasil query ke attribute result end loop end loop kembalikan attribute result end readTrigger method readUserAccess query nama table yang valid simpan hasil query ke validTable query hak akses loop sebanyak hak akses jika table tidak ada di dalam validTable

Page 73: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

99

lanjut ke loop berikutnya end jika jika hak akses = 'insert' atau 'update' atau 'delete' atau 'select' tulis ke log simpan hasil ke attribute result end jika end loop kembalikan attribute result end readUserAccess method readUserDefinedFunction query nama user defined function loop sebanyak nama user defined function tulis ke log query deskripsi user defined function panggil method convert dengan parameter deskripsi user defined function simpan hasil query ke attribute result end loop kembalikan attribute result end readUserDefinedFunction method readView query nama view loop sebanyak nama view tulis ke log query deskripsi view panggil method convert dengan parameter deskripsi view simpan hasil query ke attribute result end loop kembalikan attribute result end view method replaceObjectName ubah karakter sesuai attribute mappingName kembalikan nama objek yang sudah di mapping end replaceObjectName method setMapping set mapping = parameter yang dikirim end setMapping method setMappingName set mappingName = parameter yang dikirim end setMappingName method setParam set semua parameter yang diperlukan end setParam end SqlserverPlugin

Class MysqlPlugin deklarasi attribute constructor inisialisasi attribute end constructor

Page 74: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

100

method setParam set dbName = parameter job ke-0 set dbIpAddr = parameter job ke-1 set dbPort = parameter job ke-2 set dbUserName = parameter job ke-3 set dbPassword = parameter job ke-4 set log = parameter job ke-5 inisalisasi attribute panggil method loadDriver panggil method openCon membuat database baru menggunakan database baru end setParam method openCon membuat koneksi ke database end openCon method closeCon menutup koneksi ke database end closeCon method getDbName kembalikan nilai dbName end getDbName method getDbIpAddr kembalikan nilai dbIpAddr end getDbIpAddr method getDbPort kembalikan nilai dbPort end getDbPort method getDbUserName kembalikan nilai dbUserName end getDbUserName method getDbPassword kembalikan nilai dbPassword end getDbPassword method loadDriver meload driver MySQL end loadDriver method runQuery execute perintah sql dari parameter query tulis hasil ke log panggil method freeResource end runQuery method freeResource tutup resultset tutup statement end freeResource method printSQLError tampilkan pesan kesalahan

Page 75: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

101

end printSQLError method createDatabase set sqlCommand = "CREATE DATABASE " + databaseName jalankan perintah sqlCommand end createDatabase method writeTable set jml = ukuran dari parameter columnDesc set tableName = parameter nama tabel set createSql = "CREATE TABLE " + tableName + "(" inisialisasi variabel primary key for i = 0 dan i < jml set isi= deskripsi kolom ke-i set createSql =createSql + isi ke-0 set createSql =createSql + " " + isi ke-1 jika isi ke-2 = 0 set createSql =createSql + "(" + isi ke-2 + ")" end jika jika isi ke-3 = 1 set createSql =createSql + " NOT NULL " end jika jika isi ke-4 != "" set createSql =createSql + " DEFAULT " + isi ke-4 end jika jika isi ke-5 = 1 set createSql =createSql + " UNIQUE " end jika jika isi ke-6 = 1 tambahkan isi ke-0 ke primary key end jika set fk = "" jika isi ke-7 != null dan isi ke-8 != null

set fk = "ALTER TABLE " + tableName + " ADD FOREIGN KEY (" + isi ke-0 + ") REFERENCES " + isi ke-7 + "(" + isi ke-8 + ")"

end jika jika isi ke-9 !=null set action = "NO ACTION" jika isi ke-9 =1 set action = "RESTRICT" end jika jika isi ke-9 =2 set action = "CASCADE" end jika jika isi ke-9 =3 set action = "SET NULL" end jika set fk =fk + " ON UPDATE " + action end jika jika isi ke-10 !=null

Page 76: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

102

set action = "NO ACTION" jika isi ke-10 =1 set action = "RESTRICT" end jika jika isi ke-10 =2 set action = "CASCADE" end jika jika isi ke-10 =3 set action = "SET NULL" end jika set fk =fk + " ON DELETE " + action end jika jika fk != "" tambakan fk ke foreign key end jika set createSql =createSql + ","

end for

jika primary key > 0 set createSql =createSql + " PRIMARY KEY(" for i = 0 dan i < jumlah primary key set createSql =createSql + primary Key ke-i + ","

end for

set createSql = createSql +")" end jika set createSql += createSql +")" panggil method runQuery dengan parameter createSql end writeTable method createConstraints jika jumlah foreign key >0 for i = 0 dan i < jumlah foreign key panggil method runQuery dengan parameter foreignKey ke-i

end for

end jika end createConstraints method writeView panggil method runQuery dengan parameter viewDesc end writeView method writeTrigger panggil method runQuery dengan parameter trigerDesc end writeTrigger method writeStoredProcedure panggil method runQuery dengan parameter storedProcedureDesc end writeStoredProcedure method writeUserDefinedFunction panggil method runQuery dengan parameter userDefinedFunctionDesc end method

Page 77: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

103

method createUser set jml = ukuran deskripsi user for i=0 dan i<jml ambil deskripsi user ke-i bentuk perintah sql create user panggil methos runQuery dengan parameter createUser end for end createUser method grantUser set jml = ukuran user akses for i = 0 dan i < jml ambil user akses ke-i set privType = "" jika isi ke-2 =1 privType = privType +"INSERT," end jika jika isi ke-3 =1 privType = privType "UPDATE," end jika jika isi ke-4 =1 privType = privType "DELETE," end jika jika isi ke-5 =1 privType = privType "SELECT," end jika bentuk perintah sql grantuser panggil method runQuery dengan parameter grantUser end for end grantUser end MysqlPlugin

Class DataEngine deklarasi attribute constructor inisialisasi attribute panggil method loadDriver dengan parameter driver cloudscape buka koneksi ke database migrasi query keterangan task ke tabel msjob databaase migrasi loop selama masih ada data simpan di deskripsi database end loop tutup konesksi ke database migrasi end constructor method loadDriver load driver sesuai parameter end loadDriver

Page 78: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

104

method getJobId kembalikan nilai attribute jobid end getJobId method getJobSeq kembalikan nilai attribut job sequence end getJobSeq method getRefJobId kembalikan nilai attribute reference job id end getRefJobId method getRefJobSeq kembalikan nilai attribut reference job sequence end getRefJobSeq method openConDbMig buka koneksi ke database migrasi end openConDbMig method closeDbMig tutup koneksi ke database migrasi end closeDbMig method readTable panggil method openConDbMig jika error query nama objek, nama kolom dari tabel trobjectColumn yang error loop selama masih ada data simpan nama tabel dan kolom ke end loop panggil method readData dengan parameter error selain itu query nama objek, nama kolom dari tabel trobjectColumn yang tidak error loop selama masih ada data simpan nama tabel dan kolom ke end loop panggil method readData dengan parameter tidak error end jika panggil method closeDbMig end readTable method readData jika error panggil method createQuery di class DataReader untuk data error panggil method getData di class DataReader untuk data error selain itu panggil method createQuery di class DataReader untuk data tidak error panggil method getData di class DataReader untuk data tidak error end jika end readData method writeTable panggil method openConDbMig

Page 79: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

105

jika error query nama objek, nama kolom dari tabel trobjectColumn yang error loop selama masih ada data simpan nama tabel dan kolom ke end loop panggil method writeData dengan parameter error selain itu query nama objek, nama kolom dari tabel trobjectColumn yang tidak error loop selama masih ada data simpan nama tabel dan kolom ke end loop panggil method writeData dengan parameter tidak error end jika panggil method closeDbMig end writeTable method writeData jika error panggil method getData di class DataWriter untuk data error selain itu panggil method getData di class DataWriter untuk data tidak error end jika end writeData end DataEngine

Class DataReader deklarasi attribute constructor inisialisasi attribute end constructor method createQuery ambil nama-nama tabel loop sebanyak nama-nama tabel bentuk sintaks sql SELECT untuk tiap-tiap nama tabel simpan ke dalam query end loop end createQuery method getData loop sebanyak jumlah query jalankan query select dari query di database SqlServer loop sebanyak jumlah data bentuk sintaks SQL insert into tulis sintaks SQL insert into ke dalam file dengan nama sesuai nama tabel end loop end loop end getData end DataReader

Page 80: BAB 3 ANALISIS DAN PERANCANGAN MIGRASI DATABASEthesis.binus.ac.id/doc/Bab3/2006-2-01257-IF-Bab 3.pdfMigrasi database adalah proses pemindahan suatu database dari satu DBMS ke ... 5

106

Class DataWriter deklarasi attribute constructor inisialisasi attribute end constructor method getData loop sebanyak jumlah tabel ambil nama file insert into untuk tabel buka file asal untuk script insert into tabel buat file tujuan untuk script insert into tabel loop selama isi file asal masih ada baca isi file asal bentuk ulang script agar tidak mengandung kolom-kolom yang error tulis ke file tujuan baca data berikutnya dari file asal end loop tutup file asal untuk script insert into tabel tutup file tujuan untuk script insert into tabel end loop end getData end DataReader