1 54 BAB 3 ANALISIS DAN PERANCANGAN 3.1 Analisis Kebutuhan Sistem Hal pertama yang perlu dilakukan dalam analisis kebutuhan sistem adalah menentukan d...
Analisis Kebutuhan Sistem Hal pertama yang perlu dilakukan dalam analisis kebutuhan sistem adalah menentukan dan mengungkapkan kebutuhan sistem. Kebutuhan sistem terbagi menjadi dua yaitu kebutuhan sistem fungsional dan kebutuhan sistem nonfungsional, yang diperlukan untuk menemukan tujuan yang hendak dicapai (Whitten, 2004, p212).
3.1.1
Kebutuhan Fungsional Dibagi menjadi dua bagian yaitu fasilitas Data Definition Language (DDL) dan Data Manipulation Language (DML) a. Data Definition Language (DDL) •
Sistem ini menyediakan fasilitas untuk membuat basis data baru.
•
Sistem ini menyediakan fasilitas untuk mengubah struktur pada basis data yang ada.
•
Sistem ini menyediakan fasilitas untuk menghapus basis data yang ada.
•
Sistem ini menyediakan fasilitas untuk membuat tabel baru dalam sebuah basis data.
•
Sistem ini menyediakan fasilitas untuk mengubah struktur pada tabel yang ada.
55 •
Sistem ini menyediakan fasilitas untuk menghapus tabel yang ada.
•
Sistem ini menyediakan fasilitas untuk membuat indeks baru.
•
Sistem ini menyediakan fasilitas untuk menghapus indeks yang sudah ada.
b. Data Manipulation Language (DML) •
Sistem ini menyediakan fasilitas untuk menambahkan data pada sebuah tabel yang ada.
•
Sistem ini menyediakan fasilitas untuk menampilkan data pada sebuah tabel yang ada.
•
Sistem ini menyediakan fasilitas untuk menghapus data pada sebuah tabel yang ada.
•
Sistem ini menyediakan fasilitas untuk mengubah data pada sebuah tabel yang ada.
56
System create_database
create_table
create_index
alter_database
alter_table
drop_database
drop_table TransactionManager drop_index
select_data
update_data
delete_data
insert_data
shrink_data
Gambar 3.1 Rancangan Use Case o Use case create_database Actors TransactionManager
57 Description Use case ini menggambarkan proses jika ada permintaan untuk membuat basis data baru. Postconditions •
Basis data tersedia pada struktur RDBMS.
•
Informasi basis data tersedia pada file katalog basis data.
•
File XML basis data tersedia dalam physical storage.
Normal Flow 1. TransactionManager mengirim permintaan pembuatan basis data, yang terdiri atas nama basis data, lokasi basis data di physical storage, nama folder untuk data, nama folder untuk log. 2. Sistem mengecek tidak boleh ada nama yang sama dalam satu server. 3. Sistem mengecek panjang nama basis data tidak boleh lebih dari 59 karakter dan nama tidak mengandung karakter *, <, >, /, \, ?, |, :, ”. 4. Sistem mengecek lokasi yang dikirimkan tersedia dan ukuran yang tersedia pada physical storage lebih besar atau sama dengan ukuran file basis data awal. 5. Sistem mengalokasikan basis data baru dalam physical storage (dalam bentuk XML file) dan menambahkan informasi basis data pada katalog basis data. 6. Sistem mengirimkan status selesai membuat basis data baru. Alternate Flow
58 Alt-Step 2 : Jika nama basis data telah ada dalam server, maka sistem mengirimkan status gagal membuat basis data. Alt-Step 3 : Jika nama basis data lebih dari 59 karakter atau mengandung karakter *, <, >, /, \, ?, |, :, ”, maka sistem mengirimkan status gagal membuat basis data. Alt-Step 4 : Jika lokasi yang dikirimkan tidak tersedia atau ukuran pada physical storage dari lokasi yang dikirimkan lebih kecil dari ukuran file basis data yang dikirim, maka sistem mengirimkan status gagal membuat basis data. o Use case create_table Actors Transaction Manager Description Use case ini menggambarkan proses jika ada permintaan untuk membuat tabel baru. Preconditions •
Basis data telah ada.
•
Lokasi basis data yang akan digunakan tersedia pada physical storage.
Postconditions •
Tabel tersedia dalam RDBMS.
•
Informasi tabel tersedia pada file katalog tabel.
59 •
File XML tabel untuk data dan informasi tersedia dalam physical storage.
Normal Flow 1. TransactionManager mengirim permintaan pembuatan tabel baru, yang terdiri atas nama basis data, nama tabel, nama kolom, tipe data kolom, panjang kolom (untuk tipe data char), jumlah angka di belakang koma (untuk tipe data float), status apakah kolom boleh diisi data kosong, status apakah kolom merupakan primary key, status apakah kolom merupakan foreign key, kode tabel tujuan jika ada foreign key, dan kode kolom tujuan jika ada foreign key. 2. Sistem mengecek tidak boleh ada nama tabel yang sama dalam sebuah basis data. 3. Sistem mengecek panjang nama tabel tidak lebih dari 64 karakter. 4. Sistem mengecek nama kolom untuk tabel tersebut tidak boleh ada yang sama. 5. Sistem mengecek jika tabel memiliki foreign key, maka kolom yang dituju merupakan primary key dan memiliki tipe data yang sama. 6. Sistem mengecek tipe data kolom adalah tipe data yang disediakan sistem. 7. Sistem mengalokasikan tabel baru dalam physical storage meliputi pembuatan file untuk data dan informasi tabel serta menambahkan informasi tabel pada katalog tabel. 8. Sistem mengirimkan status selesai membuat tabel baru. Alternate Flow
60 Alt-Step 2 : Jika nama tabel telah ada dalam basis data yang dikirim, maka sistem mengirimkan status gagal membuat tabel. Alt-Step 3 : Jika panjang nama tabel lebih dari 64 karakter, maka sistem mengirimkan status gagal membuat tabel. Alt-Step 4 : Jika nama kolom ada yang sama, maka sistem mengirimkan status gagal membuat tabel. Alt-Step 5 : Jika ada foreign key dan kolom yang dituju bukan primary key atau tipe data berbeda maka sistem mengirimkan status gagal membuat tabel. Alt-Step 6 : Jika tipe data yang diterima tidak dikenal, maka sistem mengirimkan status gagal membuat tabel. o Use case create_index Actors Transaction Manager Description Use case ini menggambarkan proses jika ada permintaan untuk membuat indeks baru. Preconditions •
Basis data telah ada.
•
Lokasi basis data yang akan digunakan tersedia pada physical storage.
•
Tabel telah ada.
Postconditions
61 •
Indeks tersedia dalam RDBMS.
•
Informasi indeks tersedia pada file katalog indeks.
•
File XML indeks untuk nilai indeks tersedia dalam physical storage
Normal Flow 1. TransactionManager mengirim permintaan pembuatan indeks baru, yang terdiri atas nama basis data, nama tabel, nama indeks, nama kolom yang akan dijadikan acuan indeks. 2. Sistem mengecek tidak boleh ada nama indeks yang sama dalam sebuah tabel. 3. Sistem mengecek panjang nama indeks tidak boleh lebih dari 64 karakter. 4. Sistem
mengalokasikan
indeks
di
physical
storage
dengan
menambahkan informasi pada katalog indeks dan menyimpan nilai dari kolom yang dijadikan indeks dan menyimpan kode record dari nilai tersebut dalam file indeks. Jika katalog indeks untuk basis data yang dikirim belum ada, maka akan dibuat katalog indeks. 5. Sistem mengirimkan status selesai membuat indeks . Alternate Flow Alt-Step 2 : Jika nama indeks telah ada dalam tabel, maka sistem mengirimkan status gagal membuat indeks. Alt-Step 3 : Jika panjang nama indeks lebih dari 64 karakter, maka sistem mengirimkan status gagal membuat indeks. o Use case alter_database
62 Actors Transaction Manager Description Use case ini menggambarkan proses jika ada permintaan untuk mengubah struktur basis data. Preconditions •
Basis data telah ada.
•
Lokasi basis data yang akan digunakan tersedia pada physical storage.
Postconditions •
Informasi basis data pada katalog basis data merupakan informasi yang baru.
•
File XML basis data tersedia dalam physical storage sesuai informasi yang baru.
Normal Flow 1. TransactionManager mengirim permintaan perubahan struktur basis data, yang terdiri atas nama basis data lama, nama basis data baru, lokasi basis data di physical storage, nama folder untuk data, nama folder untuk log. 2. Sistem mengecek jika nama basis data diubah maka nama basis data yang baru tidak boleh ada yang sama dalam satu server.
63 3. Sistem mengecek jika nama basis data diubah maka panjang nama basis data yang baru tidak boleh lebih dari 59 karakter dan tidak mengandung karakter *, <, >, /, \, ?, |, :, ”. 4. Sistem mengecek jika lokasi diubah maka lokasi baru tersedia dan ukuran yang tersedia pada physical storage lebih besar atau sama dengan ukuran file basis data baru. 5. Sistem melakukan perubahan informasi untuk file pada physical storage, meliputi mengubah nama file XML untuk perubahan nama basis data, mengubah nama folder untuk data dan log untuk perubahan nama folder untuk data dan log, memindahkan file ke lokasi baru untuk perubahan lokasi fisik maupun perubahan informasi pada katalog basis data. 6. Sistem mengirimkan status selesai melakukan perubahan struktur basis data. Alternate Flow Alt-Step 2 : Jika nama basis data baru sudah ada dalam server, maka sistem mengirimkan status gagal melakukan perubahan struktur basis data. Alt-Step 3 : Jika nama basis data baru lebih dari 59 karakter atau mengandung karakter * ,< ,> ,/ ,\ ,? ,| ,: ,” , maka sistem mengirimkan status gagal melakukan perubahan struktur basis data. Alt-Step 4 : Lokasi yang dikirimkan tidak tersedia atau ukuran pada physical storage dari lokasi yang dikirimkan lebih kecil dari ukuran file
64 basis data yang dikirim, maka sistem mengirimkan status gagal melakukan perubahan struktur basis data. o Use case alter_table Actors Transaction Manager Description Use case ini menggambarkan proses jika ada permintaan untuk mengubah struktur tabel. Preconditions •
Basis data telah ada.
•
Lokasi basis data yang akan digunakan tersedia pada physical storage.
•
Tabel sudah ada
Postconditions •
Informasi tabel pada katalog tabel merupakan informasi yang baru.
•
File data tersedia dalam physical storage sesuai informasi yang baru.
Normal Flow 1. TransactionManager mengirim permintaan perubahan tabel untuk perubahan pada kolom yang telah ada, yang terdiri atas nama basis data, nama tabel, nama kolom baru, status apakah kolom boleh diisi data kosong, status apakah kolom merupakan primary key, status apakah kolom merupakan foreign key, kode tabel tujuan jika ada foreign key, dan kode kolom tujuan jika ada foreign key.
65 2. Sistem mengecek untuk perubahan nama kolom, nama kolom baru tidak boleh ada yang sama dalam tabel tersebut. 3. Sistem mengecek untuk penambahan kolom baru, nama kolom tidak boleh ada yang sama dalam tabel tersebut dan tipe data kolom harus merupakan tipe data yang disediakan sistem. 4. Sistem mengecek untuk penghapusan kolom, nama kolom harus ada dan bukan merupakan primary key. 5. Sistem mengecek untuk penambahan primary key, data harus unik. 6. Sistem mengecek untuk penambahan foreign key, kolom tujuan harus merupakan primary key dan data harus valid dengan kolom tujuan. 7. Sistem melakukan pada physical storage, baik penambahan kolom baru ataupun memberikan status dihapus pada kolom. 8. Sistem mengirimkan status berhasil melakukan perubahan pada struktur tabel. Alternate Flow Alt-Step 2 : Jika nama kolom ada yang sama atau tipe data yang diterima tidak dikenal, maka sistem mengirimkan status gagal melakukan perubahan pada struktur tabel. Alt-Step 3 : Jika nama kolom yang dikirim merupakan primary key, maka sistem mengirimkan status gagal melakukan perubahan pada struktur tabel. Alt-Step 4 : Jika data pada kolom yang dijadikan primary key ada yang sama, maka sistem mengirimkan status gagal melakukan perubahan pada struktur tabel.
66 Alt-Step 5 : Jika data pada kolom yang dijadikan foreign key ada yang tidak valid atau sesuai dengan kolom tujuan, maka sistem mengirimkan status gagal melakukan perubahan pada struktur tabel. o Use case drop_database Actors Transaction Manager Description Use case ini menggambarkan proses jika ada permintaan untuk menghapus basis data. Preconditions •
Basis data telah ada.
•
Lokasi basis data yang akan digunakan tersedia pada physical storage.
Postconditions •
Folder data dan log untuk basis data yang dikirim tidak tersedia lagi pada physical storage.
•
Informasi mengenai basis data tidak tersedia pada katalog basis data.
•
Basis data tidak tersedia dalam RDBMS.
Normal Flow 1. TransactionManager mengirim permintaan penghapusan basis data, yang terdiri atas nama basis data. 2. Sistem mengecek nama basis data yang dikirim tersedia pada server.
67 3. Sistem menghapus basis data pada physical storage dengan menghapus folder data dan log untuk basis data yang dikirim serta menghapus informasi basis data pada katalog basis data. 4. Sistem mengirimkan status berhasil menghapus basis data. Alternate Flow Alt-Step 2 : Jika nama basis data yang dikirim tidak tersedia pada server, maka sistem mengirimkan status gagal menghapus basis data. o Use case drop_table Actors Transaction Manager Description Use case ini menggambarkan proses jika ada permintaan untuk menghapus tabel. Preconditions •
Basis data telah ada.
•
Lokasi basis data yang akan digunakan tersedia pada physical storage.
•
Tabel sudah ada.
Postconditions •
File informasi dan data tabel tidak tersedia lagi pada physical storage.
•
Informasi status tabel pada katalog tabel telah diubah ke status dihapus.
•
Tabel tidak tersedia dalam RDBMS.
68 Normal Flow 1. TransactionManager mengirim permintaan penghapusan tabel, yang terdiri atas nama basis data, nama tabel. 2. Sistem mengecek nama tabel yang dikirim tersedia pada basis data. 3. Sistem mengecek tabel yang akan dihapus bukanlah tabel yang dituju untuk foreign key. 4. Sistem menghapus tabel pada physical storage, dengan menghapus file informasi dan data serta mengubah status pada katalog tabel. 5. Sistem mengirimkan status berhasil menghapus tabel. Alternate Flow Alt-Step 2 : Jika nama tabel yang dikirim tidak tersedia, maka sistem mengirimkan pesan gagal menghapus tabel. Alt-Step 3 : Jika tabel yang dihapus merupakan tabel tujuan untuk foreign key, maka sistem mengirimkan pesan gagal menghapus tabel. o Use case drop_index Actors Transaction Manager Description Use case ini menggambarkan proses jika ada permintaan untuk menghapus indeks. Preconditions •
Basis data telah ada.
69 •
Lokasi basis data yang akan digunakan tersedia pada physical storage.
•
Tabel telah ada.
•
Indeks telah ada.
Postconditions •
File nilai indeks tidak tersedia pada physical storage.
•
Informasi status indeks pada katalog indeks telah diubah ke status dihapus.
Normal Flow 1. TransactionManager mengirim permintaan penghapusan indeks, yang terdiri atas nama basis data, nama tabel, nama indeks. 2. Sistem mengecek nama tabel tersedia pada basis data. 3. Sistem mengecek nama indeks tersedia pada tabel. 4. Sistem menghapus indeks pada physical storage, dengan menghapus file nilai indeks dan mengubah status pada katalog indeks. 5. Sistem mengirimkan pesan berhasil menghapus indeks. Alternate Flow Alt-Step 2 : Jika nama tabel yang dikirim tidak tersedia, maka sistem mengirimkan status gagal menghapus indeks. Alt-Step 3 : Jika nama indeks yang dikirim tidak tersedia, maka sistem mengirimkan status gagal menghapus indeks. o Use case select_data Actors
70 Transaction Manager Description Use case ini menggambarkan proses jika ada permintaan untuk melihat data. Preconditions •
Basis data telah ada.
•
Lokasi basis data yang akan digunakan tersedia pada physical storage.
•
Tabel sudah ada.
Normal Flow 1. TransactionManager mengirim permintaan untuk menampilkan data yang terdiri atas nama tabel, nama kolom, kondisi. 2. Sistem mengecek nama tabel yang dikirim tersedia pada basis data. 3. Sistem mengecek nama kolom yang dikirim tersedia pada tabel. 4. Sistem mencari data pada tabel yang dikirim yang memenuhi kondisi. 5. Sistem mengirimkan data ke TransactionManager. Alternate Flow Alt-Step 2 : Jika nama tabel yang dikirim tidak tersedia, maka sistem mengirimkan status gagal menampilkan data. Alt-Step 3 : Jika nama kolom yang dikirim tidak tersedia pada tabel, maka sistem mengirimkan status gagal menampilkan data. o Use case update_data Actors
71 Transaction Manager Description Use case ini menggambarkan proses jika ada permintaan untuk mengubah data. Preconditions •
Basis data telah ada.
•
Lokasi basis data yang akan digunakan tersedia pada physical storage.
•
Tabel sudah ada.
Postconditions •
Data pada file data merupakan data yang terbaru.
Normal Flow 1. TransactionManager mengirim permintaan perubahan data pada sebuah tabel, yang terdiri atas : nama basis data, nama tabel, nama kolom, nilai baru, kondisi. 2. Sistem mengecek nama tabel yang dikirim tersedia pada basis data. 3. Sistem mengecek nama kolom yang dikirim tersedia pada tabel. 4. Sistem mengecek nilai baru yang akan dimasukkan harus sesuai dengan tipe data kolom. 5. Sistem mengecek untuk kolom primary key, nilainya tidak boleh ada duplikasi.
72 6. Sistem mengecek untuk kolom yang berhubungan dengan tabel lain (foreign key), maka nilai harus valid (sesuai dengan tabel yang dituju). 7. Sistem mengalokasikan perubahan data pada physical storage, dengan memberi status pada baris data yang ada dan menambahkan baris data baru sesuai dengan nilai yang dikirim. 8. Sistem mengirimkan status berhasil mengubah data. Alternate Flow Alt-Step 2 : Jika nama tabel yang dikirim tidak tersedia, maka sistem mengirimkan status gagal mengubah data. Alt-Step 3 : Jika nama kolom yang dikirim tidak terdapat pada tabel yang dimaksud, maka sistem mengirimkan status gagal mengubah data. Alt-Step 4 : Jika data yang dikirim, tipenya tidak sesuai dengan tipe data kolom tersebut, maka sistem mengirimkan status gagal mengubah data. Alt-Step 5
: Jika data yang dikirim untuk kolom primary key, jika
datanya tidak unik, maka sistem mengirimkan status gagal mengubah data. Alt-Step 6 : Jika data yang dikirim untuk kolom yang berhubungan dengan tabel lain (foreign key), jika nilai tidak valid (tidak sesuai dengan tabel yang dituju), maka sistem akan mengirimkan status gagal mengubah data. o Use case delete_data Actors Transaction Manager
73 Description Use case ini menggambarkan proses jika ada permintaan untuk menghapus data. Preconditions •
Basis data telah ada.
•
Lokasi basis data yang akan digunakan tersedia pada physical storage.
•
Tabel sudah ada.
Postconditions •
Data tidak dapat diakses.
•
Informasi jumlah baris data pada katalog tabel merupakan jumlah terbaru.
Normal Flow 1. TransactionManager mengirim permintaan untuk menghapus data pada sebuah tabel, yang terdiri atas : nama basis data, nama tabel, kondisi. 2. Sistem mengecek nama tabel yang dikirim tersedia pada basis data. 3. Sistem mengecek tabel yang datanya akan dihapus tidak dijadikan tabel tujuan dalam foreign key. 4. Sistem menghapus data pada physical storage yang memenuhi kondisi dengan mengubah status pada file data dan mengubah jumlah baris pada katalog tabel. 5. Sistem mengirimkan pesan berhasil menghapus data.
74 Alternate Flow Alt-Step 2 : Jika nama tabel yang dikirim tidak tersedia, maka sistem mengirimkan status gagal menghapus data. Alt-Step 3 : Jika tabel yang datanya akan dihapus merupakan tabel tujuan dalam foreign key, maka sistem mengirimkan status gagal menghapus data. o Use case insert_data Actors Transaction Manager Description Use case ini menggambarkan proses jika ada permintaan untuk mamasukkan (menambah) data baru. Preconditions •
Basis data telah ada.
•
Lokasi basis data yang akan digunakan tersedia pada physical storage.
•
Tabel sudah ada.
Postconditions •
Data baru tersedia dalam file data untuk tabel.
•
Informasi jumlah baris data pada katalog tabel merupakan jumlah terbaru.
Normal Flow
75 1. TransactionManager mengirim permintaan untuk menambah data pada sebuah tabel, yang terdiri atas nama tabel, nama kolom, nilai yang ingin disimpan. 2. Sistem mengecek nama tabel yang dikirim tersedia pada basis data. 3. Sistem mengecek nama kolom yang dikirim tersedia pada tabel. 4. Sistem mengecek tipe data nilai sesuai dengan tipe data tiap kolom. 5. Sistem mengecek untuk kolom primary key, nilainya tidak boleh ada duplikasi. 6. Sistem mengecek untuk kolom yang berhubungan dengan tabel lain (foreign key), maka nilai harus valid (sesuai dengan tabel yang dituju). 7. Sistem menambahkan nilai ke dalam physical storage, meliputi menambahkan data baru pada file data dan mengubah jumlah baris data pada katalog tabel. 8. Sistem mengirimkan status berhasil memasukkan data baru. Alternate Flow Alt-Step 2 : Jika nama tabel yang dikirim tidak tersedia, maka sistem mengirimkan status gagal memasukkan data baru. Alt-Step 3 : Jika nama kolom yang dikirim tidak terdapat pada tabel yang dimaksud, maka sistem mengirimkan status gagal memasukkan data baru. Alt-Step 4 : Jika data yang dikirim, tipenya tidak sesuai dengan tipe data kolom tersebut, maka sistem mengirimkan status gagal memasukkan data baru.
76 Alt-Step 5
: Jika data yang dikirim untuk kolom primary key, jika
datanya tidak unik, maka sistem mengirimkan status gagal memasukkan data baru. Alt-Step 6 : Jika data yang dikirim untuk kolom yang berhubungan dengan tabel lain (foreign key), jika data tidak valid (tidak sesuai dengan tabel yang dituju), maka sistem akan mengirimkan status gagal memasukkan data baru. o Use case shrink_data Actors Transaction Manager Description Use case ini menggambarkan proses untuk menghapus data dari physical storage. Jadi dalam proses ini data yang sudah dihapus, baik tabel, basis data, indeks, kolom maupun data, akan benar-benar dihapus dari physical storage. Postconditions •
Data dalam physical storage hanya ada data yang masih bisa diakses.
Normal Flow 1. TransactionManager mengirim permintaan membersihkan data yang tidak terpakai dari physical storage untuk basis data tertentu. 2. Sistem akan menulis semua data yang ada dalam physical storage yang memiliki status aktif. 3. Sistem akan mengirim status berhasil melakukan shrink.
77 3.1.2
Kebutuhan Non Fungsional a. Sistem dikembangkan untuk digunakan pada sistem operasi Windows. b. Sistem dikembangkan dengan menggunakan format penyimpanan XML.
3.2
Perancangan 3.2.1
Perancangan Struktur 3.2.1.1 Rancangan Struktur RDBMS secara Konseptual
Database -kodeDatabase : Long -namaDatabase : String -userCreated : String -timeCreated : Date -size : int -maxSize : int -growthIncrement : int -namaLogFile : String -namaPhyscalFile : String -pathPhysicalFile : String
Cell -kodeField : Long -kodeRecord : Long -isiCell : String
1
Table -kodeDatabase : Long -kodeTable : Long -namaTable : String
1..*
-
1..* 1
-
1..*
-
1
-
ForeignKey -kodeForeignKey : Long -kodeTableTujuan : Long -kodeFieldTujuan : Long
-
Field -kodeTabel : Long -kodeField : Long -namaField : String -kodeTipeData : Long -length : Integer -allowNull : Boolean -primaryKey : Boolean -kodeForeignKey : Long
-
1
1..*
1
-
-
1..* 1..*
Index -kodeIndex : Long -namaIndex : String -kodeTabel : Long -kodeField : Long
1..*
1 1
TipeData -kodeTipeData : Long -namaTipeData : String -size : Byte
Gambar 3.2 Rancangan Struktur RDBMS secara Konseptual
78 3.2.1.2 Rancangan Struktur RDBMS secara Logikal
Database -kodeDatabase : Long -namaDatabase : String -userCreated : String -timeCreated : Date -size : int -maxSize : int -growthIncrement : int -namaLogFile : String -namaPhyscalFile : String -pathPhysicalFile : String
1
1..*
Table -kodeDatabase : Long -kodeTable : Long -namaTable : String
1
-
Index -kodeIndex : Long -namaIndex : String 1..* Cell -kodeField : Long -kodeRecord : Long -isiCell : String
-
-
1..*
1
Field -kodeTabel : Long -kodeField : Long -namaField : String -kodeTipeData : Long -length : Integer -allowNull : Boolean -primaryKey : Boolean -kodeForeignKey : Long
1 -
1 1..*
-
-
-
1 1..*
Attrib Indexed Field -KodeIndex : Long -KodeTabel : Long -KodeField : Long
1..* -
1
1..*
-
ForeignKey -kodeForeignKey : Long -kodeTableTujuan : Long -kodeFieldTujuan : Long
1 1
TipeData -kodeTipeData : Long -namaTipeData : String -size : Byte
Gambar 3.3 Rancangan Struktur RDBMS secara Logikal 3.2.2
Rancangan Format File XML dan Deskripsi Data Organisasi File yang diharapkan adalah di root folder terdapat beberapa file yang berfungsi sebagai template, serta menyimpan informasi basis data dan tipe data yang ada, antara lain : a. SysCatalog
79 Menerangkan format data penyimpanan dan deskripsi tipe data setiap objek yang ada. Di dalamnya terdapat : •
SysDatabase untuk mendeskripsikan tentang format basis data.
•
SysTable untuk mendeskripsikan tentang format tabel.
•
SysField untuk mendeskripsikan tentang format kolom.
•
SysRecord untuk mendeskripsikan tentang format dari baris.
•
SysTipeData untuk mendeskripsikan tentang format tipe data.
•
SysIndex untuk mendeskripsikan tentang format indeks. <SystemCatalog> <sysDatabase kodeDatabase=Long> String <userCreated>String DateDateStringString <pathPhysicalFile>String Integer <sysTable kodeTable=Long status=Byte> String <userCreated>String
SysTypes Menerangkan format untuk penyimpanan informasi dari setiap basis data.
<userCreated>
d. SysIndexes
83 Menerangkan format untuk penyimpanan indeks yang dibuat di dalam satu tabel dari suatu basis data.
e. SysIndexValues Menerangkan format untuk penyimpanan data tabel sesuai indeks yang ada.
84 f. SysTables Menerangkan format untuk penyimpanan informasi dari setiap tabel.
<precision> <primaryKey>
g. SysValues Menerangkan format untuk penyimpanan data dari setiap baris dari suatu tabel.
85
h. Databases Berisi objek-objek basis data yang ada, dengan detilnya antara lain: •
Kode Database, sebagai atribut, dengan kisaran nilai dari 1 sampai 99.
•
Nama Database, dengan panjang nama maksimal 59 karakter.
•
User Created, dengan panjang nama maksimal 16 karakter.
•
Time Created, dengan format mm/dd/yyyy.
•
Time Last Modified, dengan format mm/dd/yyyy.
•
Nama Log File, dengan panjang nama maksimal 64 karakter ( default : nama log file didapat dari nama basis data + _Log ).
•
Nama Physical File, dengan panjang nama maksimal 64 karakter ( default : nama physical file didapat dari nama basis data + _Data ).
•
Path Physical File, dengan panjang nama maksimal 128 karakter.
•
Count Table, jumlah tabel yang dimiliki basis data, dengan kisaran nilai dari 1 sampai 99. <userCreated>
86 <pathPhysicalFile>
Selanjutnya setiap basis data dibuatkan folder atau direktori untuk menyimpan informasi basis data tersebut, informasi setiap tabel, nilai setiap tabel, indeks, yang terdiri atas : a. “Info“ + (Nama Basis Data) Menerangkan informasi dari tabel-tabel yang terdapat dalam database tersebut, dengan detil dari tabel sebagai berikut : • kodeTable, sebagai atribut, dengan kisaran nilai dari 1 sampai 99. • status, sebagai atribut, dengan nilai 0 (deleted), 1 (active), 2 (updated). • namaTable, dengan panjang nama maksimal 64 karakter. • userCreated, dengan panjang nama maksimal 16 karakter. • timeCreated, dengan format mm/dd/yyyy. • timeLastModified, dengan format mm/dd/yyyy. • countField, jumlah kolom yang dimiliki setiap tabel, dengan kisaran nilai dari 1 sampai 99.
87 • countRecord, jumlah baris yang dimiliki setiap tabel, dengan kisaran nilai dari 1 sampai 9999. b. “Info“ + “-“ + (Kode Basis Data) + “-“ + (Kode Tabel) Menerangkan informasi dari kolom-kolom yang terdapat dalam suatu tabel, dengan detil dari kolom adalah sebagai berikut : • kodeField, sebagai atribut, dengan kisaran nilai dari 1 sampai 99. • status, sebagai atribut, dengan nilai 0 (deleted), 1 (active), 2 (updated). • namaField, dengan panjang nama maksimal 64 karakter. • kodeTipeData, dengan kisaran nilai antara 1 sampai 99. • precision, dengan kisaran nilai 0 sampai 4. • allowNull, dengan nilai antara true atau false. • primaryKey, dengan nilai antara true atau false. • foreignKey, dengan detailnya yaitu : kodeForeignKey, dengan kisaran nilai 0 sampai 99, nilai 0 berarti tidak terdapat hubungan ke tabel lain. kodeTableTujuan, dengan kisaran nilai 0 sampai 99, nilai 0 berarti tidak terdapat hubungan ke tabel lain. kodeFieldTujuan, dengan kisaran nilai 0 sampai 99, nilai 0 berarti tidak terdapat hubungan ke kolom dari tabel lain. c. “Data“ + “-“ + (Kode Basis Data) + “-“ + (Kode Tabel) Menerangkan nilai data dari suatu tabel dengan data tiap baris, detilnya sebagai berikut :
88 • kodeRecord, sebagai atribut, dengan kisaran nilai antara 1 sampai 9999. • status, sebagai atribut, dengan nilai 0 (deleted), 1 (active), 2 (updated). • Setiap baris memuat nilai-nilai dari kolom, panjang data dari setiap kolom dialokasikan sesuai dengan tipe data awal kolom itu dibuat. Untuk informasi dalam kolom ditambahkan : kodeField, dengan kisaran nilai antara 1 sampai 99. length, panjang nilai data, dengan kisaran nilai antara 1 sampai 999. d. “Index“ + (Nama Basis Data) Menerangkan indeks yang dimiliki dalam sebuah basis data, detilnya sebagai berikut : • kodeIndex, sebagai atribut, dengan kisaran nilai antara 1 sampai 99. • namaIndex, dengan panjang nama maksimal 64 karakter • kodeTable, sebagai atribut, dengan kisaran nilai antara 1 sampai 99 dan menerangkan kolom apa saja yang digunakan dalam indeks. Disimpan dengan detil berupa : kodeField, dengan kisaran nilai antara 1 sampai 99. e. “Index“ + “-“ + (Kode Basis Data) + “-“ + (Kode Indeks)
89 Menerangkan nilai data dari suatu indeks, dimana nilai data sudah dikelompokkan menurut nilai dari kolom yang dijadikan indeks, detilnya sebagai berikut : • kodeIndex, sebagai atribut, dengan kisaran nilai antara 1 sampai 99. • kodeTable, sebagai atribut, dengan kisaran nilai antara 1 sampai 99. • kodeField, dengan kisaran nilai antara 1 sampai 99, di dalam setiap kolom yang dijadikan indeks, disimpan distinct data, data unik dengan detil sebagai berikut : isiCell, nilai dari kolom. kodeRecord, menyimpan kode-kode baris yang memiliki nilai yang sama dari isiCell. 3.2.3
Perancangan Proses 3.2.3.1 Rancangan Proses create_database
90 Start
Accept request to create a new database
No
Unique name?
Yes
Error - End
No
Amount char of name<=59 and name not consist of *,<,>,/,\,?,|,:," ?
Yes
No
Physical location is valid and having space >= initialize database size ?
Yes
Allocate new database in physical storage based on physical location
Add new database in catalog
Gambar 3.4 Diagram Alir create_database
Success - End
91 3.2.3.2 Rancangan Proses create_table Start
accept request to create a new table
Unique name? No Yes
Amount char of name <= 64 ?
No
Yes
Error - End
No
Each column name is unique ?
Yes
No
Destination column of foreign key is a primary key ? Yes
No Correct data type for each column ?
Yes
Create table file info and data
Add new table in catalog
Update count table in catalog
Success - End
Gambar 3.5 Diagram Alir create_table
92 3.2.3.3 Rancangan Proses create_index Start
Accept request to create a new index
No
Error - End
Unique name ?
Yes
No
Amount char of name <= 64 ?
Yes
Create index file
Add new index in catalog
Gambar 3.6 Diagram Alir create_index
Success - End
93 3.2.3.4 Rancangan Proses alter_database Start
Accept request to alter a database
New database name is unique ?
No
Yes
Error - End
No
Amount char of new name<=128 and new name not consist of *,<,>,/,\,?,|,:," ?
Yes
No
New physical location is valid and having space >= initialize database size ?
Yes
Allocate the change of database in physical storage
Gambar 3.7 Diagram Alir alter_database
Success - End
94 3.2.3.5 Rancangan Proses alter_table Start
Accept request to alter a table
For change field name, new field name is unique? No Yes
For add new field, new field name is unique and data type is valid?
No
Yes
Error - End
Yes
For delete field, field is a primary key field?
No
No
For add primary key, if record count>0, data is unique?
Yes No
For add foreign key, if record count>0, data is valid?
Yes
Allocate change in file info an data
Allocate change in catalog
Success - End
Gambar 3.8 Diagram Alir alter_table
95 3.2.3.6 Rancangan Proses drop_database Start
Accept request to drop a database
Error - End
No
Database exists ?
Yes
Flag database in catalog
Delete database file and folder
Gambar 3.9 Diagram Alir drop_database
Success - End
96 3.2.3.7 Rancangan Proses drop_table Start
Accept request to drop a table
No
Table exists ?
Yes
Error - End
Yes
Table is a destination of foreign key ?
No
Flag table in catalog
Delete table file info and data
Gambar 3.10 Diagram Alir drop_table
Success - End
97 3.2.3.8 Rancangan Proses drop_index Start
Accept request to drop an index
No
Error - End
No
Table exists ?
Yes
Index exists
Yes
Flag index in catalog
Delete file index
Success - End
Gambar 3.11 Diagram Alir drop_index
98 3.2.3.9 Rancangan Proses select_data Start
Accept request to select data
No
Error - End
No
Find table ?
Yes
Find column ?
Yes
Find data
Send data to Tracsaction Manager
Gambar 3.12 Diagram Alir select_data
Success - End
99 3.2.3.10 Rancangan Proses update_data Start
Accept request to update data
Table exists ?
No
Yes
No
Column exists ?
Yes
Error - End
No
Correct data type ?
Yes
No
Unique data for primary key column ?
No
Yes
Valid data for foreign key column ?
Yes
Flag data in physical storage
Add data in physical storage
Gambar 3.13 Diagram Alir update_data
Success - End
100 3.2.3.11 Rancangan Proses delete_data Start
Accept request to delete data
No
Error - End
Yes
Table exists ?
Yes
Tabel is a destination of foreign key ?
No
Flag data in physical storage
Update count record in catalog
Success - End
Gambar 3.14 Diagram Alir delete_data
101 3.2.3.12 Rancangan Proses insert_data Start
Accept request to insert data
Table exists ? No Yes
No
Field exists ?
Yes
Error - End
No
Correct data type for each column ?
Yes
No
Unique data for primary key column ?
Yes No Valid data for foreign key colomn ?
Yes
Insert data to physical storage
Update count record in catalog
Gambar 3.15 Diagram Alir insert_data
Success - End
102 3.2.3.13 Rancangan Proses shrink_data Start
Accept request to shrink data
Overwrite index catalog
Overwrite table catalog
Overwrite data value
Success - End
Gambar 3.16 Diagram Alir shrink_data
3.2.4
Perancangan Layar 3.2.4.1 Rancangan Layar Menu Utama
Create Database Table Index
Alter
Drop
Database Table
Data
Database Table
Browse Select
Index
Update Delete Insert
Others Shrink Data
Window untuk task yang ingin dilakukan
Gambar 3.17 Rancangan Layar Menu Utama
103
Rancangan layar awal pada saat aplikasi pertama kali dijalankan, dengan pilihan menu Create dengan submenu Database, Table, dan Index, menu Alter dengan submenu Database dan Table, menu Drop dengan submenu Database, Table, Index, menu Data dengan submenu Browse, Select, Update, Delete, dan Insert, serta menu Others dengan submenu Shrink Data.
3.2.4.2 Rancangan Layar pada Menu create_database Database Name Location
…
Data Files Transaction Log Create
Cancel
Gambar 3.18 Rancangan Layar Menu create_database
Rancangan layar pada saat menu Create Database dipilih. Layar ini terdiri atas empat textbox untuk memasukkan nilai Database Name, Location, Data Files, dan Transaction Log, di sebelah textbox Location terdapat button untuk mencari lokasi pada komputer serta button Create dan Cancel.
104 3.2.4.3 Rancangan Layar pada Menu create_table T
Database Table Name a b
No. of Fields Field Name
Data Type
Generate
Precision
Allow Primary Length Null Key
T
a b
a b
T
a b
a b
T
a b
a b
Create
Foreign Key
3 3 3
T
T
T
T
T
T
Cancel
Gambar 3.19 Rancangan Layar Menu create_table
Rancangan layar pada saat menu Create Table dipilih. Layar ini terdiri atas combobox untuk pilihan Database, textbox untuk masukan nilai Table Name, NumericUpDown untuk masukan nilai No. Of Fields, button disebelahnya untuk memunculkan jumlah field sesuai nilai No. Of Fields, textbox untuk masukan nilai Field Name, combobox untuk pilihan Data Type, NumericUpDown untuk masukan nilai Length, dan Precision, checkbox untuk status Allow Null, checkbox untuk status Primary Key, checkbox untuk status Foreign Key, combobox untuk pilihan Table Reference dan Field Reference serta button Create dan Cancel.
105 3.2.4.4 Rancangan Layar pada Menu create_index T
Database Index Name
T
Table Columns
T
a Add b Remove from List
Create
Cancel
Gambar 3.20 Rancangan Layar Menu create_index
Rancangan layar pada saat menu Create Index dipilih. Layar ini terdiri dari combobox untuk pilihan Database, combobox untuk pilihan Table, textbox untuk pilihan Index Name, combobox untuk pilihan Columns yang akan dimasukkan ke Listbox, button Add dan Remove from List serta button Create dan Cancel.
106 3.2.4.5 Rancangan Layar pada Menu alter_database T
Database Name Location
…
Data Files Transaction Log OK
Cancel
Gambar 3.21 Rancangan Layar Menu alter_database
Rancangan layar pada saat menu Alter Database dipilih. Layar ini terdiri atas combobox untuk pilihan Database, empat textbox untuk masukan nilai Database Name, Location, Data Files, dan Transaction Log, di sebelah textbox Location terdapat button untuk mencari lokasi pada komputer button OK dan Cancel.
107 3.2.4.6 Rancangan Layar pada Menu alter_table T
Database Table Name Show Column Field Name
Data Type
Add Column
AllowPrimary Length PrecisionNull Key T
T
T
T
T
T
T
T
T OK
Foreign Key Remove
3 3 3
T
T
T
T
T
T
3
Cancel
Gambar 3.22 Rancangan Layar Menu alter_table
Rancangan layar pada saat menu Alter Table dipilih. Layar ini terdiri atas combobox untuk pilihan Database, textbox untuk masukan nilai Table Name, button Show Column dan Add Column, textbox untuk masukan nilai Field Name, combobox untuk pilihan Data Type, NumericUpDown untuk masukan nilai Length, dan Precision, checkbox untuk status Allow Null, checkbox untuk status Primary Key, checkbox untuk status Foreign Key, combobox untuk pilihan Table Reference dan Field Reference, checkbox untuk pilihan menghapus kolom serta button OK dan Cancel.
108 3.2.4.7 Rancangan Layar pada Menu drop_database T
Select Database Drop
Cancel
Gambar 3.23 Rancangan Layar Menu drop_database
Rancangan layar pada saat menu Drop Database dipilih. Layar ini terdiri dari combobox untuk pilihan Database serta button Drop dan Cancel.
3.2.4.8 Rancangan Layar pada Menu drop_table Select Database
T
Select Table
T Drop
Cancel
Gambar 3.24 Rancangan Layar Menu drop_table
Rancangan layar pada saat menu Drop Table dipilih. Layar ini terdiri dari combobox untuk pilihan Database, combobox untuk pilihan Table serta button Drop dan Cancel.
109 3.2.4.9 Rancangan Layar pada Menu drop_index Select Database
T
Select Table
T
Select Index
T Cancel
Drop
Gambar 3.25 Rancangan Layar Menu drop_index
Rancangan layar pada saat menu Drop Table dipilih. Layar ini terdiri dari combobox untuk pilihan Database, combobox untuk pilihan Table, combobox untuk pilihan Index serta button Drop dan Cancel.
3.2.4.10 Rancangan Layar pada Menu select_data Database
T
Select
T
From T
Where Execute
Cancel
T Verify
Gambar 3.26 Rancangan Layar Menu select_data
110 Rancangan layar pada saat menu Select Data dipilih. Layar ini terdiri dari combobox untuk pilihan Database, combobox untuk pilihan Table, kondisi yang terdiri dari combobox untuk pilihan Field, combobox untuk pilihan Condition Filter, textbox untuk masukkan nilai kondisi serta button Execute, Cancel dan Verify.
Database Name
Table Name
Field 1
Field 2
Field 3
Field 4
Close
Gambar 3.27 Rancangan Layar Hasil select_data
Rancangan layar pada saat button Execute Select Data dijalankan. Layar ini terdiri dari label untuk Database Name dan Table Name, Table GridView untuk tampilan data dari tabel, serta button Close.
111 3.2.4.11 Rancangan Layar pada Menu update_data Database
T
Update Table
T T
Set Add
Remove a b T
Where Execute
Cancel
T Verify
Gambar 3.28 Rancangan Layar Menu update_data
Rancangan layar pada saat menu Update Data dipilih. Layar ini terdiri dari combobox untuk pilihan Database, combobox untuk pilihan Table, combobox untuk pilihan Field, textbox untuk masukkan nilai baru, listbox yang berisi daftar Field dengan assign nilai baru, button Add dan Remove, kondisi yang terdiri dari combobox untuk pilihan Field, combobox untuk pilihan Condition Filter, textbox untuk masukkan nilai kondisi serta button Execute, Cancel dan Verify.
112 3.2.4.12 Rancangan Layar pada Menu delete_data T
Database
T
Delete Table T
Where Execute
T Cancel
Gambar 3.29 Rancangan Layar Menu delete_data
Rancangan layar pada saat menu Delete Data dipilih. Layar ini terdiri dari combobox untuk pilihan Database, combobox untuk pilihan Table, kondisi yang terdiri dari combobox untuk pilihan Field, combobox untuk pilihan Condition Filter, textbox untuk masukkan nilai kondisi serta button Execute, dan Cancel.
3.2.4.13 Rancangan Layar pada Menu insert_data Database
T
Insert Table
T
Column
Data Types
Execute
Values
Cancel
113 Gambar 3.30 Rancangan Layar Menu insert_data
Rancangan layar pada saat menu Insert Data dipilih. Layar ini terdiri dari combobox untuk pilihan Database, combobox untuk pilihan Table, label field-field dan data type yang terdapat pada tabel, textbox untuk masukkan nilai baru, serta button Execute,dan Cancel.
3.2.4.14 Rancangan Layar pada Menu shrink_data T
Select Database Shrink
Cancel
Gambar 3.31 Rancangan Layar Menu shrink_data
Rancangan layar pada saat menu Shrink Data dipilih. Layar ini terdiri dari combobox untuk pilihan Database serta button Shrink dan Cancel.