BAB 4 RANCANGAN SISTEM YANG DIUSULKAN
4.1
Perancangan Basis Data Tahap perancangan basis data dilakukan sesuai dengan kebutuhan informasi
yang telah diidentifikasi pada PT. JAS. Perancangan basis data tersebut dibagi menjadi 3 tahapan utama: perancangan basis data konseptual, perancangan basis data logikal, perancangan basisdata fisikal. 4.1.1
Perancangan Basis Data Konseptual Perancangan basisdata konseptual merupakan suatu proses yang digunakan
untuk merancang model data konseptual dengan menggunakan informasi yang diperoleh dari PT. JAS. 4.1.1.1
Identifikasi Tipe Entitas Tahap ini bertujuan untuk menentukan entitas utama yang diperlukan
dalam perancangan basis data konseptual
Entity Name Consignees
Description Istilah
umum
Aliases yang Company
Occurance Setiap
consignees
dapat
menggambarkan peru-
mempunyai lebih dari satu
sahaan pengguna laya-
account dan dapat mengirim-
nan kargo PT. JAS.
kan banyak barang yang ber-
Consignees dapat beru-
beda sehingga dapat mempu-
pa shipper/agent pada
nyai lebih dari satu AWB.
104
105 outgoing cargo serta berupa penerima barang pada
incoming
cargo. AWB
Istilah
umum
untuk AirWayBill
Setiap AWB mempunyai satu
dokumen yang diguna-
commodities. dapat mempu-
kan sebagai bukti kon-
nyai banyak kwitansi. Satu
trak pengangkutan ba-
AWB juga dapat mempunyai
rang (kargo) oleh pesa-
satu atau banyak Shipment
wat.
dan dapat mempunyai lebih dari
satu
dokumen
yang
terkait dengan AWB tertentu. Shipment
Istilah umum untuk da- Shipment
Setiap barang yang dikirim
ta pengiriman barang
dalam jumlah besar sehingga
sejenis
tidak
yang
dibagi
mungkin
dilakukan
menjadi beberapa pe-
dalam satu penerbangan dapat
nerbangan.
dibagi shipment
menjadi
beberapa
yang
berbeda.
Dalam satu shipment terdapat beberapa ULD. Setiap shipment mempunyai satu flight. Dan setiap shipment mempunyai satu AWB Documents
Istilah umum
surat DocumentDeli
Setiap dokumen menandakan
pengambilan dokumen veryOrder
bahwa terdapat barang baru
kargo (Document Deli-
telah masuk (incoming) dan
very Order), pengam-
setiap dokumen dihasilkan
bilan
oleh satu user dan hanya
barang
(Cargo
Delivery Order), atau
mempunyai satu AWB.
pemberitahuan barang telah tiba (Notice of Arrival). ULD
Istilah
umum
untuk UnitLoadDevic
Setiap
barang
mempunyai
106 menyebut bagian dari es
ULD
pesawat
akan
gantung pada volume dan
barang
bentuk barang. Setiap ULD
yang
ditempatkan cargo.
yang
berbeda
ter-
dapat dimiliki oleh satu atau lebih Shipment.
Airports
Flights
Istilah umum untuk da- Airports
Setiap airport dapat memiliki
ta bandara baik domes-
banyak penerbangan (Flight).
tik maupun internasio-
Setiap AWB dapat dihasilkan
nal.
oleh satu airport.
Istilah data
Airlines
umum
untuk Flights
pesawat
Setiap Flight dapat mem-
yang
punyai banyak shipment. Dan
digunakan untuk me-
pada setiap flight terdapat
ngangkut barang.
banyak ULD didalamnya.
Istilah Data
umum
untuk Airlines
perusahaan
pe-
nerbangan yang terlibat dalam
proses
kargo
umum
untuk Commodities
Setiap Flight dapat mempunyai satu
Airline yang
terbagi atas banyak Shipment.
bandara. Commodities
Istilah
AWB dapat memiliki banyak
jenis barang yang di
barang dan setiap dokumen
kirim melalui pesawat.
hanya memuat satu commodities.
Accounts
Istilah
umum
untuk Accounts
Setiap account terpakai apa-
akun yang dimiliki oleh
bila
pelanggan
perusahaan
pembayaran dengan tipe de-
untuk transaksi pemba-
posit. Satu account dapat me-
yaran secara deposit.
lakukan banyak transaksi de-
customer
melakukan
posit TrDeposit
Istilah
umum
untuk TrDeposit
Satu consignees dapat mem-
transaksi yang dilaku-
punyai
kan secara deposit oleh
Setiap Trdeposit dihasilkan
suatu customer
apabila suatu account mela-
banyak
kukan transaksi.
Trdeposit.
107 Invoice
Istilah
umum
yang Invoices
Setiap Invoice yang terbentuk
kwi-
memiliki satu AWB yang
tansi yang terbentuk da-
dapat dibuat oleh satu orang
ri pembayaran untuk
pengguna
layanan kargo.
invoice
menggambarkan
satu
sistem. dapat
Setiap
mempunyai
CCB-Invoice.
Setiap
Invoice yang tercipta hanya dapat
menggunakan
satu
Currency dan Setiap Invoice mempuyai satu account. PayMethods
Istilah
umum
untuk Pay Method
Setiap invoice yang tercipta
menjelaskan cara pem-
hanya menggunakan satu cara
bayaran
pembayaran.
yang
telah
ditetapkan sebelumnya CCBInvoice
Istilah
umum
menjelaskan yang
untuk CCBInvoices kwitansi
terbentuk
pembayaran
dari
layanan
Setiap
CCBInvoice
yang
tercipta terdapat satu Invoice dan satu AWB yang memiliki satu commodities.
kargo diluar jasa yang dihasilkan
oleh
PT.
JAS, seperti pengangkutan
barang
dalam
jumlah besar. CurrEx-change
Istilah
umum
menjelaskan
untuk CurrExchange
rekaman History
Setiap Currency Exchange dapat
menampilkan
satu
history nilai tukar mata
currency terhadap currency
uang
lainnya.
asing
terhadap
IDR. Currency
Istilah
umum
untuk Currency
Satu currency dapat diguna-
deskripsi semua mata
kan oleh lebih dari satu
uang yang digunakan
service dan memiliki lebih
pada
dari satu Currency Exchange.
layanan
Soekarno-Hatta.
kargo
108 Services
Istilah umum jasa-jasa Services
Setiap services mempunyai
yang dihasilkan oleh
satu service categories
perusahaan dan dikenai
dapat memiliki lebih dari satu
biaya.
invoice. Satu AWB dapat memiliki
lebih
dari
dan
satu
service. ServiceCategor
Istilah
ies
menjelaskan
Users
umum
yang ServiceCategor
jasa-jasa ies
Satu service categories dapat memiliki
lebih
dari
satu
yang dikenai biaya.
service.
Istilah
Setiap user dapat mempunyai
umum
pengguna
untuk Users
yang
me-
lebih dari satu peran (role)
nggunakan aplikasi pa-
dan dapat melakukan akses
da waktu tertentu.
lebih dari satu menu. Setiap invoice dapat dibuat oleh satu user.
Employees
Istilah data kargo
umum
untuk Employees
seluruh
pekerja
pada
Bandara
Satu employees merupakan satu user jika sedang dalam menggunakan aplikasi.
SoekarNo-Hatta. TrShift
Istilah
umum
menggambarkan
yang TrShift
Setiap Trshift dimiliki oleh
data
satu
pergantian shift staff
user
dan
dapat
menghasilkan lebih dari satu laporan mengenai traksaksi yang
terjadi
pada
jangka
waktu shift tersebut. Menu
Istilah
umum
untuk Menu
menu-menu aplikasi.
Setiap menu terpilih dapat diakses oleh satu user dan dapat dipilih menjadi menu favorite untuk menu yang paling sering diakses.
Roles
Istilah
umum
untuk Roles
Setiap Role dapat dimiliki
hak-hak yang dimiliki
oleh lebih dari satu user. Dan
users.
setiap role dapat memiliki
109 lebih dari satu menu.
Tabel 4.1 Tabel Identifikasi Tipe Entitas
4.1.1.2
Identifikasi Tipe Relationship Tahap ini bertujuan untuk menentukan hubungan-hubungan yang
penting diantara berbagai entitas yang telah didefinisikan. Langkah-langkah utama dalam identifikasi tipe relasional adalah sebagai berikut:
110 a. Model Konseptual ERD Tanpa Primary Key
Gambar 4.1 Entity Relationship Diagram Konseptual
111 b. Menentukan batasan multiplicity dari tipe relasional Entity Name
Multiplicity
Relationship
Entity name
Multiplicity
Consignees
1..1
AsConsignee
AWB
1..*
Consignees
1..1
AsAgent
AWB
1..*
Consignees
1..1
Has
Accounts
0..*
Airports
1..1
ListedIn
AWB
1..*
AWB
1..1
Has
Shipment
1..*
Flights
1..1
ListedIn
Shipment
1..*
Airlines
1..1
Has
Flights
1..*
Airlines
1..1
Has
ULD
1..*
Commodities
1..1
ListedIn
AWB
1..*
Users
1..1
Make
AWB
0..*
AWB
1..1
Has
Shipment
1..*
ULD
1..*
Load
Shipment
1..*
AWB
1..1
Has
Documents
0..*
PayMethodss
1..1
UsedBy
Invoices
1..*
Services
1..*
ListedIn
Invoices
1..*
ServiceCategories
1..1
Has
Services
1..*
Shipment
1..*
PaidBy
Invoice
1..*
Currency
1..1
UsedBy
Service
1..*
Currency
1..1
Has
CurrExchange
1..*
Accounts
0..1
Pay
Invoices
1..*
Accounts
1..1
Has
TrDeposit
1..*
Users
1..1
Make
TrDeposit
0..*
Employees
1..1
Has
Users
0..1
Users
1..1
Has
TrShift
1..*
Users
1..*
Has
Roles
1..*
Users
1..*
HasFavorite
Menus
1..*
Roles
1..*
HasAccessFor
Menus
1..*
Menus
1..1
ParenstOf
Menus
1..*
Tabel 4.2 Tabel Identifikasi Tipe Relationship
112 4.1.1.3
Identifikasi Atribut, Tipe, dan Domain Entitas Tahap ini bertujuan untuk menghubungkan atribut dengan entitas atau
tipe relasi yang sesuai. Dari dokumen-dokumen yang didapatkan dari sistem yang berjalan, dapat diperoleh atribut-atribut untuk masing-masing entitas yang telah didefinisikan diatas Entity Name Consignees
Attribute consigneeID
Data type
Description ID
and length
Nulls
Multi Valued
No
No
50 variables No
No
consignee Numeric
yang secara unik (presisi 7) mengidentifikasi setiap consignee (shipper,
agent,
atau penerima barang) consigneeName
Nama consignee
character consigneeTaxNo
Nomor
NPWP 15 variables Yes
perusahaan
No
pe- character
langgan (consignee) consigneeAddres
Alamat perusaha- 100 variables No
s
an consignee
character
consigneePostalCod Kode pos perusa- 5
variables YES
e
haan consignee
consigneeCity
Kota perusahaan 50 variables No consignee
consigneeState
No
character No
character
Provinsi perusa- 20 variables No haan consignee
No
character
No
113 consignee-
Negara perusaha- 50 variables No
Country
an
No
consignee character
(Default value = ’ Indonesia’) additionalInfo
Keterangan tam- 100 variables Yes
No
bahan dari con- character signee yang bersangkutan phoneNo
Nomor
telepon 25 variables No
Yes
consignee terma- character suk kode area, kode negara, dan extension Airport
airportCode
Kode bandara
3 character
No
No
airportName
Nama bandara
50 variables No
No
character airportAddress
Alamat bandara
50 variables Yes
No
character airportCity
Kota bandara
50 variables Yes
No
character airportCountry
Negara letak ban- 50 variables Yes dara
Commodities
commodityID
character
Kode dari jenis Numeric barang
No
No
No
50 variables No
No
(presisi 5)
(commodity) NOG
Nature Of Goods
character initialFunc description
Inisial Jenis Ba- 5
variables Yes
rang
character
Keterangan
150 variables Yes character
No No
114 Flights
flightNo
Nomor
pener- 8
bangan additionalInfo airlinePrefix
No
character
Keterangan tam- 150 variables Yes bahan
Airlines
variables No
No
character
Nomor kode awal 3 character maskapai
yang
dipakai
pada
No
No
AWB initialFunc
Inisial maskapai 5 pesawat
airlineName
Nama
variables Yes
No
character maskapai 50 variables No
pesawat
character
airlineTaxNumbe
Nomor
NPWP 15 variables Yes
r
perusahaan
No No
character
consignee airlineAddress
Alamat perusaha- 100 variables No an consignee
additionalInfo airlineCountry
No
character
Keterangan Tam- 150 variables Yes bahan
character
Negara Maskapai
30 variables No
No No
character AWB
AWBNo
Nomor AWB
13 variables No
No
character houseNo
Nomor
house 5
variables No
No
(Default value = character ’0’) type
Tipe AWB
additional Info
Keterangan tam- 150 variables Yes bahan
createdTime
4 character
No No
character
Waktu pembuat- Date an
No
and No
Time (mm/dd/yyyy hh24:mi:ss)
No
115 Shipment
shipmentSeq
Urutan Shipment
No
Numeric
No
(presisi 4) flightDate
Tanggal
pener- Date (mm/dd Yes
bangan calcStartDate
No
/yyyy)
Tanggal
mulai Date
pengiriman
and No
No
Time (mm/dd/yyyy hh24:mi:ss)
weight
Berat satuan tem- Numeric pat
(presisi
No
No
No
No
No
No
9
skala 2) volume
satuan Numeric
Volume tempat
(presisi
9
skala 2) pieces description
Jumlah
satuan Numeric
tempat
(presisi 7)
Keterangan
150 variables Yes
No
character Users
employeeID
Kode User
10
variable No
No
characters password
Password user
15 variables No
No
character hint
Kata jika
pembantu 50 variables Yes user
No
lupa character
password maxForms
Form
No
maksimal Numeric
No
yang dapat di- (presisi 3) akses changePassTime
Waktu kan
melaku- Date
and Yes
perubahan Time
password
(mm/dd/yyyy hh24:mi:ss)
No
116 createdTime
Waktu pembuat- Date an data
and No
No
Time (mm/dd/yyyy hh24:mi:ss)
TrShift
trShiftNo
Nomor
hitory 8 character
No
No
and No
No
shift startTime
Waktu mulai shift
Date Time
(mm/dd/yyyy hh24:mi:ss) endTime
Waktu akhir shift
Date
and No
No
Time (mm/dd/yyyy hh24:mi:ss) Roles
roleID
Kode Role
No
No
20 variables No
No
Numeric (presisi 3)
roleName
Nama Role
character description
Keterangan role
150 variables Yes
No
character initialFunc
Inisial dari role
5
variables No
No
character Menu
menuID
Kode menu
No
No
40 variables No
No
Numeric (presisi 3)
menuName
Nama Menu
character fileName
Nama file
6 character
No
No
version
Versi
3 character
No
No
description
Keterangan
150 variables Yes
No
character menuType
Tipe menu
1
character No
(M atau F)
No
117 Employees
employeeID
Kode karyawan
10 variables No
No
characters employeeName
Nama karyawan
50 variables No
No
character employeeTaxNo
Nomor
NPWP 15 variables Yes
karyawan employeeAddress
Alamat
character Karya- 100 variables No
wan employeePhone employeeEmail
No No
character
Nomor
telepon 20 variables No
karyawan
character
Email karyawan
30 variables Yes
YES No
character salary
Gaji karyawan
No
Numeric (presisi
YES
15,
skala 2) hireDate
Tanggal Masuk
Date
and Yes
No
Time (mm/dd /yyyy) additionalInfo Documents
Keterangan tam- 150 variables Yes bahan Karyawan
character
DOCNo
Nomor dokumen
10 character
additionalInfo
Ketarangan tam- 150 variables Yes bahan
character
type
Tipe Dokumen
3 character
createdTime
Waktu
pembua- Date
tan
No
No No No
No
No
and No
No
Time (mm/dd/yyyy hh24:mi:ss)
ULD
ULDNo
Kode ULD
10 character
No
ULDType
Tipe ULD
35 variables Yes
No No
character description
Keterangan ULD
150 variables Yes character
No
118 Services
serviceID
Kode service
No
No
35 variables No
No
Numeric (presisi 3)
serviceName
Nama service
character module
Modul
4
variables No
No
character UOM
Unit of Measure
10 variables No
No
character tariff
Tarif service
No
Numeric (presisi
No
15,
skala 2) tariffDesc
Deskripsi Tarif
150 variables Yes
No
character includeTax
Flag (Y/T) pe- 1
character No
No
nanda apakah bi- (Y atau T) aya service termasuk pajak atau tidak additionalInfo
Keterangan tam- 150 variables Yes bahan
defaultServ
No
character
Flag (Y/T) pe- 1
character No
No
nanda apakah ter- (Y atau T) masuk
service
default atau tidak ServiceCategories
categoryCode categoryName description
Accounts
accountID
No
No
service
(presisi 3)
Nama
kategori 30 variables No
No
service
character
Kode
kategori Numeric
Keterangan kate- 150 variables Yes gori service
character
Kode account
10 variables No character
No No
119 accountName
Nama account
50 variables No
No
character balance
Balance
No
Numeric (presisi
No
15,
skala 2) description
Keterangan
150 variables Yes
No
character TrDeposit
trnNo
Nomor transaksi
30 variables No
No
character depositTime
Waktu atan
pembu- date and time No
No
TrDeposit (mm/dd/yy
(transaksi
hh24:mi:ss)
deposit) value
Nilai transaksi
No
Numeric (presisi
No
15,
skala 2) description Currency
Keterangan tran- 150 variables Yes
No
saksi
character
currCode
Kode currency
3 character
No
No
currName
Nama currency
30 variables No
No
character description CurrExchange
currExNo
Keterangan
150 variables Yes
Currency
character
Nomor Currency 9 character
No
No
No
No
No
and No
No
Exchange currValue
Nilai currency
Numeric (presisi
9,
skala 2) startDate
Tanggal currency
mulai Date
Time (mm/dd /yyyy)
120 endDate
Tanggal
akhir Date
and No
No
Time (mm/dd
currency
/yyyy) Invoices
invoiceNo
Nomor invoice
status
Status
taxRate
10 character
dari 5
No
No
variables No
No
invoice
character
Pajak
Numeric
Yes
No
Yes
No
Yes
No
Yes
No
Keterangan tam- 150 variables Yes
No
(presisi
9,
skala 2) stampDuty
Materai
Numeric (presisi
9,
skala 2) allInAmount
Biaya
Numeric
keseluruhan
(presisi
15,
skala 2) truckingCharge
Biaya
Numeric
pengankutan
(presisi
9,
skala 2) additionalInfo payDate
bahan
character
Tanggal bayar
Date
and No
No
Time (mm/dd/yyyy hh24:mi:ss) createdTime
Tanggal pembu- Date atan invoice
and No
No
Time (mm/dd/yyyy hh24:mi:ss)
CCBInvoices
CCBdue
Biaya Handling
No
Numeric (presisi skala 2)
9,
No
121 CCBStampDuty
Materai CCB
Numeric (presisi
Yes
No
Yes
No
No
No
9,
skala 2) CCBTax
Pajak CCB
Numeric (presisi
9,
skala 2) PayMethods
payMethodCode
Kode Cara Bayar
3 character
description
Keterangan
150 variables Yes
No
character additionalInfo
Keterangan
150 variables Yes
tambahan
character
No
Tabel 4.3 Tabel Identifikasi Atribut pada Tiap Entitas 4.1.1.4
Mentukan Domain Atribut Tahap ini bertujuan untuk menentukan domain dari atribut yang ada
pada model data konseptual yang telah dibuat. Entity Name Consignees
Attribute consigneeID
Domain Berupa angka dengan maksimal 7 digit dengan jangkauan (1-9999999)
consigneeName
Berupa variabel karakter dengan maksimal 50 karakter, termasuk spasi
consigneeTaxNo
Berupa 15 variabel karakter, termasuk titik, dengan format x.xxx.xxx.x.xxx , dimana x merupakan angka [0-9]
consigneeAddress
Berupa variabel karakter dengan maksimal 100 karakter, termasuk spasi
consigneePostalCode
Berupa angka 5 digit
consigneeCity
Berupa variabel karakter dengan maksimal 50 karakter, termasuk spasi
122 consigneeState
Berupa variabel karakter dengan maksimal 20 karakter, termasuk spasi
consigneeCountry
Berupa variabel karakter dengan maksimal 50 karakter, termasuk spasi
additionalInfo
Berupa variabel karakter dengan maksimal 100 karakter, termasuk spasi
phoneNo
Berupa
variabel
angka
dengan
jumlah
maksimal 25 digit Airport
airportCode
Berupa 3 karakter huruf
airportName
Berupa variabel karakter dengan maksimal 50 karakter, termasuk spasi
airportAddress
Berupa variabel karakter dengan maksimal 50 karakter, termasuk spasi
airportCity
Berupa variabel karakter dengan maksimal 50 karakter, termasuk spasi
airportCountry
Berupa variabel karakter dengan maksimal 50 karakter, termasuk spasi
Commodities
commodityID
Berupa angka dengan maksimal 5 digit dengan jangkauan (1-99999)
NOG
Berupa variabel karakter dengan maksimal 50 karakter, termasuk spasi
initialFunct
Berupa variabel karakter dengan maksimal 5 karakter, termasuk spasi
description
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
Flights
flightNo
Berupa variable karakter dengan maksimal 8 karakter, dimana 3 karakter pertama berupa huruf dan 4 karakter akhir berupa angka [0-9]
additionalInfo
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
Airlines
airlinePrefix
Berupa karakter angka tiga digit dengan format xxx, dimana x merupakan angka [0-9]
123 initialFunc
Berupa variabel karakter dengan maksimal 5 karakter
airlineName
Berupa variabel karakter dengan maksimal 50 karakter, termasuk spasi
airlineTaxNumber
Berupa 15 variabel karakter, termasuk titik, dengan format x.xxx.xxx.x.xxx , dimana x merupakan angka [0-9]
airlineAddress
Berupa variabel karakter dengan maksimal 100 karakter, termasuk spasi
additionalInfo
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
airlineCountry
Berupa variabel karakter dengan maksimal 30 karakter, termasuk spasi
AWB
AWBNo
Berupa variabel karakter dengan maksimal 13 karakter, termasuk spasi, dengan format ’aaa bbbb cccc’ (untuk AWB impor dan ekspor) atau ’aaaa bbb’ (untuk domestik), dimana a, b, dan c merupakan angka [0-9]
houseNo
Berupa variabel karakter dengan jumlah maksimal 5 digit, dimana semua karakter harus berupa angka
type
Berupa 3 karakter (IMP untuk AWB impor, EXP untuk AWB ekspor, DOI untuk domestik incoming, dan DOO untuk domestik outgoing.
additional Info
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
createdTime
Berupa tanggal dan waktu dengan format mm/dd/yyyy hh:mm:ss
Shipment
shipmentSeq
Berupa angka bulat dengan jangkauan (1-999)
flightDate
Berupa tanggal dengan format mm/dd/yyyy
calcStartDate
Berupa tanggal dan waktu dengan format mm/dd/yyyy hh24:mi:ss
124 weight
Berupa angka desimal dengan maksimum presisi 9 dan jumlah desimal 2
volume
Berupa angka desimal dengan maksimum presisi 9 dan jumlah desimal 2
pieces
Berupa angka bulat dengan maksimum presisi 7
description
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
Users
employeeID
Berupa karakter angka dengan maksimal 10 digit
password
Berupa variabel karakter dengan maksimal 15 karakter
hint
Berupa variabel karakter dengan maksimal 50 karakter, termasuk spasi
maxForms
Berupa angka bulat dengan maksimum presisi 3
changePassTime
Berupa tanggal dan waktu dengan format mm/dd/yyyy hh24:mi:ss
createdTime
Berupa tanggal dan waktu dengan format mm/dd/yyyy hh24:mi:ss
TrShift
trShiftNo
Berupa 8 karakter dengan format xxxxxxx, dimana x merupakan angka [0-9], contoh: 100000001
startTime
Berupa tanggal dan waktu dengan format mm/dd/yyyy hh24:mi:ss
endTime
Berupa tanggal dan waktu dengan format mm/dd/yyyy hh24:mi:ss
Roles
roleID
Berupa angka dengan maksimal 3 digit dengan jangkauan (1-999)
roleName
Berupa variabel karakter dengan maksimal 20 karakter, termasuk spasi
description
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
125 initialFunc
Berupa variabel karakter dengan maksimal 5 karakter
Menu
menuID
Berupa angka dengan maksimal 3 digit dengan jangkauan (1-999)
menuName
Berupa variabel karakter dengan maksimal 40 karakter, termasuk spasi
fileName
Berupa 6 karakter dengan format xxyyyy, dimana xx merupakan inisial modul, dan yyyy berupa angka [0-9]
version
Berupa angka dengan jumlah maksimal 4 digit dengan format ’a.a’ dimana a berupa angka [0-9], contoh: 1.0
description
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
menuType
Berupa sebuah karakter ’F’ untuk tipe form, dan karakter ’M’ untuk tipe menu
Employees
employeeID
Berupa karakter angka dengan maksimal 10 digit
employeeName
Berupa variabel karakter dengan maksimal 50 karakter, termasuk spasi
employeeTaxNo
Berupa 15 karakter, termasuk titik, dengan format x.xxx.xxx.x.xxx , dimana x merupakan angka
employeeAddress
Berupa variabel karakter dengan maksimal 100 karakter, termasuk spasi
employeePhone
Berupa
variabel
angka
dengan
jumlah
maksimal 25 digit employeeEmail
Berupa variabel karakter dengan maksimal 30 karakter
salary
Berupa angka desimal dengan maksimum presisi 15 dan jumlah desimal 2
hireDate
Berupa tanggal dengan format mm/dd/yyyy
126 additionalInfo
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
Documents
DOCNo
Berupa 10 karakter dengan jumlah karakter 10 digit, dengan format axxxxxxxxx, dimana a berupa karakter abjad dan x berupa angka [09]
additionalInfo
Berupa 3 karakter (NOA untuk dokumen Notice of Arrival, DDO untuk dokumen Document Delivery Order, dan CDO untuk dokumen Cargo Delivery Order)
type
Berupa variabel karakter dengan maksimal 3 karakter
createdTime
Berupa tanggal dengan format dd/mm/yyyy hh24:mi:ss
ULD
ULDNo
Berupa
10
karakter
dengan
format
aaaxxxxxaa, dimana a berupa karakter abjad dan x berupa angka, contoh: ABC12345XY ULDType
Berupa variabel karakter dengan maksimal 35 karakter, termasuk spasi
description
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
Services
serviceID
Berupa angka dengan maksimal 3 digit dengan jangkauan (1-999)
serviceName
Berupa variabel karakter dengan maksimal 35 karakter, termasuk spasi
module
Berupa variabel karakter dengan maksimal 4 karakter
UOM
Berupa variabel karakter dengan maksimal 10 karakter, termasuk spasi
tariff
Berupa angka desimal dengan maksimum presisi 15 dan jumlah desimal 2
tariffDesc
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
127 IncludeTax
Berupa sebuah karakter ’Y’ untuk ya, dan karakter ’T’ untuk tidak
additionalInfo
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
defaultServ
Berupa sebuah karakter ’Y’ untuk ya, dan karakter ’T’ untuk tidak
ServiceCategories
categoryCode
Berupa angka dengan maksimal 3 digit dengan jangkauan (1-999)
categoryName
Berupa variabel karakter dengan maksimal 30 karakter, termasuk spasi
description
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
Accounts
accountID
Berupa variabel karakter dengan maksimal 10 karakter
accountName
Berupa variabel karakter dengan maksimal 50 karakter, termasuk spasi
balance
Berupa angka desimal dengan maksimum presisi 15 dan jumlah desimal 2
description
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
TrDeposit
trnNo
Berupa 8 karakter dengan format xxxxxxx, dimana x merupakan angka [0-9], contoh: 100000001
depositDate
Berupa tanggal dan waktu dengan format dd/mm/yyyy hh24:mi:ss
value
Berupa angka desimal dengan maksimum presisi 15 dan jumlah desimal 2
description
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
Currency
currCode
Berupa 3 karakter huruf
currName
Berupa variabel karakter dengan maksimal 30 karakter, termasuk spasi
128 description
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
CurrExchange
currExNo
Berupa 9 karakter dengan format xxxxxxx, dimana x merupakan angka [0-9]
currValue
Berupa angka desimal dengan maksimum presisi 15 dan jumlah desimal 2
Invoices
startDate
Berupa tanggal dengan format mm/dd/yyyy
endDate
Berupa tanggal dengan format mm/dd/yyyy
invoiceNo
Berupa karakter dengan jumlah karakter 10 digit, dengan format axxxxxxxxx, dimana a berupa karakter abjad dan x berupa angka [09], contoh: E0000000978
status
Berupa variabel karakter dengan maksimal 5 karakter
taxRate
Berupa angka desimal dengan maksimum presisi 9 dan jumlah desimal 2
stampDuty
Berupa angka desimal dengan maksimum presisi 9 dan jumlah desimal 2
allInAmount
Berupa angka desimal dengan maksimum presisi 15 dan jumlah desimal 2
truckingCharge
Berupa angka desimal dengan maksimum presisi 9 dan jumlah desimal 2
additionalInfo
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
payDate
Berupa tanggal dengan format mm/dd/yyyy hh24:mi:ss
createdTime
Berupa tanggal dan waktu dengan format mm/dd/yyyy hh24:mi:ss
CCBInvoices
CCBdue
Berupa angka desimal dengan maksimum presisi 9 dan jumlah desimal 2
CCBStampDuty
Berupa angka desimal dengan maksimum presisi 9 dan jumlah desimal 2
129 CCBTax
Berupa angka desimal dengan maksimum presisi 9 dan jumlah desimal 2
PayMethods
payMethodCode
Berupa 3 karakter huruf
description
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
additionalInfo
Berupa variabel karakter dengan maksimal 150 karakter, termasuk spasi
Tabel 4.4 Tabel Identifikasi Domain dari Tiap Attribut 4.1.1.5
Identifikasi Candidate Key dan Primary Key Tahapan ini bertujuan untuk mengidentifikasi candidate key untuk
masing-masing tipe entitas. Apabila terdapat lebih dari satu candidate key maka akan dipilih salah satunya untuk menjadi primary key. Dari entitas-entitas yang telah diidentifikasi pada tahap sebelumnya, didapatkan candidate key dan primary key masing-masing entitas yang tercantum dalam tabel 4.5. Entity Name
Candidate Key
Primary Key
Consignees
consigneeID
consigneeID
AWB
AWBNo, houseNo
AWBNo, houseNo
Shipment
-
-
ULD
ULDNo
ULDNo
Documents
DOCNo
DOCNo
Airports
airportCode
airportCode
Airlines
airlinePrefix
airlinePrefix
130 Flights
flightNo
flightNo
Commodities
commodityID
commodityID
Accounts
accountID
accountID
TrDeposit
trnNo
trnNo
PayMethods
payMethodCode
payMethodCode
Invoices
invoiceNo
invoiceNo
CCBInvoices
-
-
CurrExchange
currExNo
currExNo
Currency
currCode
currCode
Services
serviceID
serviceID
ServicesCategories serviceCategoryID
serviceCategoryID
Users
-
-
Employees
employeeID
employeeID
TrShift
trShiftNo
trShiftNo
Menu
menuID
menuID
Roles
roleID
roleID
Tabel 4.5 Tabel Identifikasi Candidate Key dan Primary Key
131
Gambar 4.2 Entity Relationship Diagram Konseptual dengan Primary Key
132 4.1.1.6 Pengecekan Redundansi pada Model Pada tahap ini dilakukan pemeriksaaan redundansi baik pada relasi maupun entitas pada model konseptual yang telah dirancang untuk memenuhi kebutuhan dan menghilangkan redundansi tersebut. a. Memeriksa kembali hubungan one-to-one
Gambar 4.3 Hubungan one-to-one Employee dan Users
Tertunjuk pada gambar 4.4, entitas Employees dan Users tidak redundan dan keduanya tidak dapat digabungkan menjadi satu entitas, karena tidak semua Employees memiliki Users.
Gambar 4.4 Hubungan one-to-one Invoice dan CCBInvoice Tertunjuk pada gambar, entitas Invoice dan CCBInvoice tidak redundan dan keduanya tidak dapat digabungkan menjadi satu entitas, karena tidak semua Invoice memiliki CCBInvoice.
133 b.
Menghilangkan hubungan/relasi redundant Tidak ada hubungan yang redundant (berlebih).
4.1.1.7
Validasi Model Konseptual dengan Transaksi Tahap ini bertujuan untuk memastikan bahwa model data konseptual
yang telah dirancang mendukung seluruh transaksi yang perlu dilakukan. Pendekatan yang dilakukan adalah dengan mendeskripsikan transaksi penting yang harus didukung basis data yang baru serta mencamtumkan jalur transaksi pada model data konseptual yang telah dirancang. Transaksi-transaksi yang terjadi pada layanan kargo bandara SoekarnoHatta pada PT. JAS adalah sebagai berikut: a. Pendataan AWB (cargo outgoing dan incoming) b. Pendataan Manifest (cargo outgoing dan incoming) c. Pembuatan laporan manifest (cargo outgoing) d. Pembuatan dan pendataan Notice of Arrival (cargo incoming) e. Pembuatan dan pendataan Document Delivery Order (cargo incoming) f. Pembuatan dan pendataan Cargo Delivery Order (cargo incoming) g. Pembuatan dan pendataan kwitansi h. Pembuatan dan pendataan kwitansi tambah bayar i. Pembuatan dan pendataan kwitansi CCB j. Pembuatan faktur pajak untuk pelanggan k. Pendataan pergantian shift staff kargo l. Pendataan nilai tukar mata uang asing terhadap IDR m. Pembuatan laporan rekapitulasi harian
134 n. Pembuatan laporan cargo charges o. Pemberian hak akses tertentu pada pengguna aplikasi sesuai dengan pekerjaannya p. Menambah saldo deposit q. Pendataan user (pengguna aplikasi) baru
135
Gambar 4.5 Penggunaan Pathway Untuk Mengecek Model Data Konseptual
136 4.1.2
Perancangan Basis Data Logikal Pada tahap ini, model data konseptual pada tahapan sebelumnya akan
dipetakan menjadi suatu model data logikal yang tidak bergantung pada DBMS (Database Management System) tertentu.. 4.1.2.1
Membentuk Relasi untuk Model Data Logikal Pada tahap ini dilakukan pembentukan relasi untuk model data logikal
berdasarkan pada relasi yang sudah dibentuk pada model data konseptual sebelumnya. 1. Relasi dua arah one-to-one (1:1) Untuk relasi (1:1) dengan mandatory pada Employees, masukkan EmployeeID ke entitas Users sehingga membentuk relasi Has
Employees (employeeID, employeeName,
Users (employeeID, password, hint,
employeeTaxNo, employeeAddress,
maxForm, changePassTime,
employeePhone, employeeEmail, salary,
createdTime )
hireDate, additionalInfo) PrimaryKey employeeID
PrimaryKey employeeID ForeignKey employeeID
Untuk relasi (1:1) dengan mandatory pada Invoice, masukkan InvoiceNo ke entitas CCBInvoice sehingga membentuk relasi Has
137 Invoice (invoiceNo, status, stampDuty,
CCBInvoices (invoiceNo, CCBDue,
taxRate, allInAmount, truckingCharge,
CCBStampDuty, CCBTax)
additionalInfo, payDate, createdTime)
PrimaryKey invoiceNo
PrimaryKey invoiceNo ForeignKey invoiceNo references Invoice (invoiceNo)
2. Relasi dua arah one-to-many (1:*) Masukkan consigneeID ke entitas AWB sehingga membentuk relasi AsConsignee (1:*)
Consignees (consigneeID, consigneeName,
AWB (AWBNo, houseNo,
consigneeTaxNo, consigneeAddress,
consigneeID, additionalInfo, type,
consigneePostalCode, consigneeCity,
createdTime)
consigneeState, consigneeCountry, additionalInfo) PrimaryKey consigneeID
PrimaryKey AWBNo, houseNO ForeignKey consigneeID references Consignees (consigneeID)
Masukkan consigneeID ke entitas AWB sehingga membentuk relasi AsAgent (1:*)
138 Consignees (consigneeID, consigneeName,
AWB (AWBNo, houseNo, agentID,
consigneeTaxNo, consigneeAddress,
consigneeID, additionalInfo, type,
consigneePostalCode, consigneeCity,
createdTime)
consigneeState, consigneeCountry, additionalInfo) PrimaryKey consigneeID
PrimaryKey AWBNo, houseNO ForeignKey agentID references Consignees (consigneeID) ForeignKey consigneeID references Consignees (consigneeID)
Masukkan airportCode ke entitas AWB sehingga membentuk relasi ListedIn (1:*)
Airports
(airportCode,
airportName, AWB (AWBNo, houseNo,
airportAddress, airportCity, airportCountry)
airportCode, agentID, consigneeID, additionalInfo, type, createdTime)
PrimaryKey airportCode
PrimaryKey AWBNo, HouseNo ForeignKey airportCode references Airports (airportCode) ForeignKey agentID references Consignees (consigneeID) ForeignKey consigneeID references Consignees (consigneeID)
139
Masukkan commodityID ke entitas AWB sehingga membentuk relasi ListedIn (1:*)
Commodity (commodityID, NOG,
AWB (AWBNo, houseNo,
initialFunc, description)
commodityID, airportCode, agentID, consigneeID, additionalInfo, type, createdTime)
PrimaryKey commodityID
PrimaryKey AWBNo, houseNo ForeignKey commodityID references Commodities (commodityID) ForeignKey airportCode references Airports (airportCode) ForeignKey agentID references Consignees (consigneeID) ForeignKey consigneeID references Consignees (consigneeID)
Masukkan employeeID ke entitas AWB sehingga membentuk relasi Make (1:*)
Users (employeeID, password, hint,
AWB (AWBNo, houseNo,
maxForm, changePassTime, createdTime)
employeeID, commodityID, airportCode, agentID, consigneeID,
140 additionalInfo, type, createdTime) PrimaryKey employeeID
PrimaryKey AWBNo, houseNo ForeignKey employeeID references users (employeeID) ForeignKey commodityID references Commodities (commodityID) ForeignKey airportCode references Airports (airportCode) ForeignKey agentID references Consignees (consigneeID) ForeignKey consigneeID references Consignees (consigneeID)
Masukkan AWBNo, houseNo ke entitas Shipment sehingga membentuk relasi Has (1:*)
AWB (AWBNo, houseNo, employeeID,
Shipment (shipmentSeq, AWBNo,
commodityID, airportCode, agentID,
houseNo, calcStartDate, weight,
consigneeID, additionalInfo, type,
volume, pieces, flightDate,
createdTime)
description)
PrimaryKey AWBNo, houseNo
PrimaryKey shipmentSeq, AWBNo, houseNo
141 ForeignKey employeeID references users
ForeignKey AWBNo, houseNo
(employeeID)
references AWB (AWBNo,
ForeignKey commodityID references
houseNo)
Commodities (commodityID) ForeignKey airportCode references Airports (airportCode) ForeignKey agentID references Consignees (consigneeID) ForeignKey consigneeID references Consignees (consigneeID)
Masukkan AWBNo, houseNo ke entitas Documents sehingga membentuk relasi Has (0:*)
AWB (AWBNo, houseNo, employeeID,
Documents (DOCNo, AWBNo,
commodityID, airportCode, agentID,
houseNo, additionalInfo, type,
consigneeID, additionalInfo, type,
createdTime)
createdTime) PrimaryKey AWBNo, houseNo
PrimaryKey DOCNo
ForeignKey employeeID references users
ForeignKey AWBNo, houseNo
(employeeID)
references AWB (AWBNo,
ForeignKey commodityID references
houseNo)
Commodities (commodityID)
142 ForeignKey airportCode references Airports (airportCode) ForeignKey agentID references Consignees (consigneeID) ForeignKey consigneeID references Consignees (consigneeID)
Masukkan airlinePrefix ke entitas Flights sehingga membentuk relasi Has (1:*)
Airlines (airlinePrefix, airlineName,
Flights (flightNo, airlinePrefix,
initialFunc, airlineTaxNo, airlineAddress,
additionalInfo)
airlineCountry, additionalInfo) PrimaryKey airlinePrefix
PrimaryKey flightNo ForeignKey airlinePrefix references Airlines (airlinePrefix)
Masukkan airlinePrefix ke entitas ULD sehingga membentuk relasi Has (1:*)
Airlines (airlinePrefix, airlineName,
ULD (ULDNo, airlinePrefix,
initialFunc, airlineTaxNo, airlineAddress,
ULDType, description)
airlineCountry, additionalInfo) PrimaryKey airlinePrefix
PrimaryKey flightNo ForeignKey airlinePrefix references
143 Airlines (airlinePrefix)
Masukkan flightsNo ke entitas Shipment sehingga membentuk relasi ListedIn (1:*)
Flights (flightNo, airlinePrefix,
Shipment (shipmentSeq, AWBNo,
additionalInfo)
houseNo, flightNo, calcStartDate, weight, volume, pieces, flightDate, description)
PrimaryKey flightNo
PrimaryKey shipmentSeq, AWBNo, houseNo ForeignKey flightNo references flights (flightNo) ForeignKey AWBNo, houseNo references AWB (AWBNo, houseNo)
Masukkan employeeID ke entitas trShift sehingga membentuk relasi Has (1:*)
Users (employeeID, password, hint
TrShift (trShiftNo, employeeID,
changePassTime, , maxForm, createdTime)
startTime, endTime)
PrimaryKey employeeID
PrimaryKey trShiftNo
ForeignKey employeeID
ForeignKey employeeID references
144 references Employees (employeeID)
Users (employeeID)
Masukkan EmployeeID ke entitas Documents sehingga membentuk relasi Make (0:*)
Users (employeeID, password,
Documents (DOCNo, employeeID,
hint,changePassTime, maxForm,
AWBNo, houseNo, additionalInfo,
createdTime)
type,createdTime)
PrimaryKey employeeID
PrimaryKey DOCNo
ForeignKey employeeID references
ForeignKey AWBNo, houseNo
Employees (employeeID)
references AWB (AWBNo, houseNo)
Masukkan employeeID ke entitas Invoice sehingga membentuk relasi Make (0:*)
Users (employeeID, password, hint,
Invoice (invoiceNo, employeeID,
maxForm, changePassTime, createdTime)
status, stampDuty, taxRate, allInAmount, truckingCharge, additionalInfo, discount, discountDescription, payDate, CreatedTime)
PrimaryKey employeeID
PrimaryKey invoiceNo
ForeignKey employeeID references Users
ForeignKey employeeID references
145 (employeeID)
Users (employeeID)
Masukkan payMethodCode ke entitas Invoice sehingga membentuk relasi UsedBy (1:*)
PayMethods (payMethodCode, description,
Invoice (invoiceNo,
additionalInfo)
payMethodCode, employeeID, status, stampDuty, taxRate, allInAmount, truckingCharge, additionalInfo discount, discountDescription, payDate, createdTime)
PrimaryKey employeeID
PrimaryKey invoiceNo ForeignKey payMethodCode references payMethods (payMethodCode) ForeignKey employeeID references Users (employeeID)
Masukkan accountID ke entitas Invoices sehingga membentuk relasi Pay (1:*)
Accounts (accountID, consigneeID,
Invoice (invoiceNo, accountID,
accountName, balance, description)
payMethodCode, employeeID,
146 status, stampDuty, taxRate, allInAmount, truckingCharge, additionalInfo, discount, discountDescription, payDate, createdTime) PrimaryKey accountID
PrimaryKey invoiceNo
ForeignKey consigneeID references
ForeignKey accountID references
Consignees (consigneeID)
Accounts (accountID) ForeignKey payMethodCode references PayMethods (payMethodCode) ForeignKey employeeID references Users (employeeID)
Masukkan accountID ke entitas TrDeposit sehingga membentuk relasi Has (1:*)
Accounts (accountID, consigneeID,
TrDeposit (trnNo, accountID, value,
accountName, balance, description)
depositTime, description)
PrimaryKey accountID
PrimaryKey trnNo
ForeignKey consigneeID references
ForeignKey accountID references
Consignees (consigneeID)
Accounts (accountID)
Masukkan currCode ke entitas Service sehingga membentuk relasi UsedBy (1:*)
147
Currency (currCode, currName, value,
Service (serviceID, currCode,
description)
serviceName, module, UOM, tariff, tariffDesc, includeTabx, additionalInfo)
PrimaryKey currCode
PrimaryKey serviceID ForeignKey currCode references Currency (currCode) ForeignKey categoryCode references ServiceCategories (categoryCode)
Masukkan currCode ke entitas CurrExchange sehingga membentuk relasi Has (1:*)
Currency (currCode, currName, description)
CurrExchange (currExNo, currCode, currValue, startDate, endDate)
PrimaryKey currCode
PrimaryKey currExNo ForeignKey currCode references Currency (currCode)
Masukkan categoryCode ke entitas Services sehingga membentuk relasi Has (1:*)
148 ServiceCategories (categoryCode,
Services (serviceID, categoryCode,
categoryName, description)
serviceName, module, UOM, tariff, tariffDesc,iIncludeTax, additionalInfo)
PrimaryKey categoryCode
PrimaryKey serviceID ForeignKey categoryCode references ServiceCategories (categoryCode) ForeignKey currCode references Currency (currCode)
3. Relasi rekursif one-to-one (1:1) Pada diagram model data konseptual yang telah dirancang tidak ditemukan relasi yang memiliki hubungan rekursif one-to-one (1:1).
4. Relasi rekursif one-to-many (1:*) Memetakan employeeID ke supervisorID pada entitas Employees sehingga membentuk relasi Rekursif Supervises (0:*)
Employees (employeeID, supervisorID,
Employees (employeeID,
employeeName, employeeTaxNo,
supervisorID, employeeName,
employeeAddress, employeePhone,
employeeTaxNo, employeeAddress,
149 employeeEmail, salary, hireDate,
employeePhone, employeeEmail,
additionalInfo)
salary, hireDate, additionalInfo)
PrimaryKey employeeID
PrimaryKey employeeID ForeignKey supervisorID references Employees (employeeID)
Memetakan menuID ke mainMenuID pada entitas Menus sehingga membentuk relasi Rekursif ParentOf (0:*)
Menu (menuID, mainMenuID menuName,
Menu (menuID, mainMenuID
fileName,version, description, menuType)
menuName,fileName, version, description, menuType)
PrimaryKey menuID
PrimaryKey menuID ForeignKey mainMenuID references Menu (menuID)
5. Relasi dua arah many-to-many (*:*) Users (employeeID, password, hint,
Roles (roleID,roleName,
maxForm, changePassTime, createdTime)
description, createdTime, initalFunc)
PrimaryKey employeeID
PrimaryKey roleID
ForeignKey employeeID references
150 Employees (employeeID)
UserRole (employeeID, roleID) PrimaryKey employeeID, roleID ForeignKey employeeID references Users (employeeID) ForeignKey RoleID references Roles (roleID)
Users (employeeID, password, hint,
Menu (menuID, mainMenuID
maxForm, changePassTime, createdTime)
menuName, fileName,version, description, menuType)
PrimaryKey employeeID
PrimaryKey menuID
ForeignKey employeeID references
ForeignKey mainMenuID
Employees (employeeID)
references Menu (menuID)
UserMenu (employeeID, menuID) PrimaryKey employeeID, menuID ForeignKey employeeID references Users (employeeID) ForeignKey menuID references Menu (menuID)
Roles (roleID, roleName, description,
Menu (menuID, mainMenuID
createdTime, initalFunc)
menuName,fileName,version,
151 description, menuType) PrimaryKey roleID
PrimaryKey menuID ForeignKey mainMenuID references Menu (menuID)
RoleMenu (roleID, menuID) PrimaryKey roleID, menuID ForeignKey roleID references Roles (roleID) ForeignKey MenuID references Menu (MenuID)
Shipment (shipmentSeq, AWBNo, houseNo,
ULD (ULDNo, ULDType,
flightNo, calcStartDate, weight, volume,
description)
pieces, paidFlag, flightDate, flightDate, description) PrimaryKey shipmentSeq, AWBNo, houseNo
PrimaryKey ULDNo
ForeignKey flightNo references Flights
ForeignKey airlinePrefix
(flightNo)
references Airlines (airlinePrefix)
ForeignKey AWBNo references AWB (AWBNo)
ULDShipment (AWBNo, houseNo, shipmentSeq, ULDNo, AdditionalInfo)
152 PrimaryKey AWBNo, houseNo, shipmentSeq, ULDNo ForeignKey AWBNo, houseNo, shipmentSeq references Shipment (AWBNo, houseNo, shipmentSeq) ForeignKey ULDNo references ULD (ULDNo)
Invoice (invoiceNo, currCode, accountID,
Services (serviceID, categoryCode,
AWBNo, employeeID,
currCode, serviceName, module,
status,stampDuty,taxRate, allInAmount,
UOM, tariff, tariffDesc,
truckingCharge, additionalInfo, discount,
includeTax, additionalInfo,
discountDescription, payDate, createdTime)
defaultServ)
PrimaryKey invoiceNo
PrimaryKey serviceID
ForeignKey currCode references Currency
ForeignKey categoryCode
(currCode)
references ServiceCategories (categoryCode)
ForeignKey accountID references Accounts
ForeignKey currCode references
(accountID)
Currency (currCode)
ForeignKey AWBNo, houseNo references AWB (AWBNo, houseNo) ForeignKey employeeID references Users (employeeID)
InvoiceDetail (serviceSeq, invoiceNo, serviceID, charge, discount,
153 discountDescription, enddate, chgqty, attribute) PrimaryKey invoiceNo, serviceSeq ForeignKey InvoiceNo references Invoice (invoiceNo) ForeignKey serviceID references Services (serviceID)
Shipment (shipmentSeq, AWBNo, houseNo,
Invoice (invoiceNo, accountID,
flightNo, calcStartDate, weight, volume,
employeeID, payMethodCode
chargeWeight, paidFlag, flightDate,
status, stampDuty, taxRate,
description)
allInAmount, truckingCharge, additionalInfo, discount, discountDescription, payDate, createdTime)
PrimaryKey shipmentSeq, AWBNo, houseNo
PrimaryKey invoiceNo
ForeignKey flightNo references Flights
ForeignKey currCode references
(flightNo)
Currency (currCode)
ForeignKey AWBNo, houseNo references
ForeignKey accountID references
AWB (AWBNo, houseNo)
Accounts (accountID) ForeignKey payMethodCode references PayMethods (payMethodCode) ForeignKey employeeID references Users (employeeID)
154
PaidShipment (AWBNo, houseNo, shipmentSeq, invoiceNo) PrimaryKey AWBNo, HouseNo, shipmentSeq,invoiceNo ForeignKey AWBNo, HouseNo, shipmentSeq references Shipment (AWBNo, shipmentSeq) ForeignKey invoiceNo references Invoice(invoiceNo)
6. Relasi yang bersifat kompleks Pada diagram model data konseptual yang telah dirancang tidak ditemukan relasi yang bersifat kompleks (lebih dari dua arah).
7. Menghilangkan atribut muti-value Masukkan consigneeID ke entitas baru ConsigneePhones
Consignees (consigneeID, consigneeName,
ConsigneePhones (phoneNo,
consigneeTaxNo, consigneeAddress,
consigneeID, description)
consigneePostalCode, consigneeCity, consigneeState, consigneeCountry, additionalInfo) PrimaryKey consigneeID
PrimaryKey phoneNo ForeignKey consigneeID references
155 Consignees (consigneeID)
Masukkan EmployeeID ke entitas baru EmployeePhones
Employees (employeeID, employeeName,
EmployeePhones (phoneNo,
employeeTaxNo, employeeAddress,
employeeID, description)
employeeEmail, salary, hireDate, additionalInfo) PrimaryKey employeeID
PrimaryKey phoneNo ForeignKey employeeID references Employees (employeeID)
4.1.2.2
Validasi Relasi Dengan Normalisasi Tujuan dari tahap ini adalah memastikan bahwa relasi yang dibentuk
untuk model data logikal telah memiliki bentuk normal 3NF. Metode yang digunakan adalah dengan memastikan setiap atribut pada tiap entitas memiliki functional dependency terhadap primary key serta tidak memiliki partital dependency maupun transitive dependency. 1. Consignees 1NF Pada tabel Consignees tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF.
156 Consignees
(@consigneeID,
consigneeAddress,
consigneeName,
consigneePostalCode,
consigneeTaxNo, consigneeCity,
consigneeState, consigneeCountry, additionalInfo)
2NF Pada tabel Consignees tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. Consignees
(@consigneeID,
consigneeAddress,
consigneeName,
consigneePostalCode,
consigneeTaxNo, consigneeCity,
consigneeState, consigneeCountry, additionalInfo)
3NF Pada tabel Consignees tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. Consignees
(@consigneeID,
consigneeAddress,
consigneeName,
consigneePostalCode,
consigneeTaxNo, consigneeCity,
consigneeState, consigneeCountry, additionalInfo)
2. ConsigneePhones 1NF Pada tabel ConsigneePhones tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF.
157 ConsigneePhones (@phoneNo, consigneeID, description) 2NF Pada tabel ConsigneePhones tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. ConsigneePhones (@phoneNo, #consigneeID, description) Consignees
(@consigneeID,
consigneeAddress,
consigneeName,
consigneePostalCode,
consigneeTaxNo, consigneeCity,
consigneeState, consigneeCountry, additionalInfo)
3NF Pada tabel ConsigneePhones tidak ditemukan atribut Non-primarykey yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. ConsigneePhones (@phoneNo, #consigneeID, description) Consignees
(@consigneeID,
consigneeAddress,
consigneeName,
consigneePostalCode,
consigneeTaxNo, consigneeCity,
consigneeState, consigneeCountry, additionalInfo)
3. Accounts 1NF Pada tabel Accounts tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF.
158 Accounts
(@accountID,
consigneeID,
accountName,
balance,
description)
2NF Pada tabel Accounts tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. Accounts (@accountID, #consigneeID, accountName, balance, description) Consignees
(@consigneeID,
consigneeAddress,
consigneeName,
consigneePostalCode,
consigneeTaxNo, consigneeCity,
consigneeState, consigneeCountry, additionalInfo)
3NF Pada tabel Accounts tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. Accounts (@accountID, #consigneeID, accountName, balance, description) Consignees
(@consigneeID,
consigneeAddress,
consigneeName,
consigneePostalCode,
consigneeState, consigneeCountry, additionalInfo)
consigneeTaxNo, consigneeCity,
159 4. TrDeposit 1NF Pada tabel TrDeposit tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. TrDeposit (@trnNo, accountID, employeeID, value, depositTime, description)
2NF Pada tabel TrDeposit tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. TrDeposit (@trnNo, #accountID, #employeeID, value, description) Accounts (@accountID, accountName, balance, description) Users (@employeeID, password, hint, maxForm, changePassTime, createdTime)
3NF Pada tabel TrDeposit tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. TrDeposit (@trnNo, #accountID, #employeeID, value, description) Accounts (@accountID, accountName, balance, description) Users (@employeeID, password, hint, maxForm, changePassTime, createdTime)
160 5. Airports 1NF Pada tabel Airports tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. Airports (@airportCode, airportName, airportAddress, airportCity, airportCountry)
2NF Pada tabel Airports tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. Airports (@airportCode, airportName, airportAddress, airportCity, airportCountry)
3NF Pada tabel Airports tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. Airports (@airportCode, airportName, airportAddress, airportCity, airportCountry)
161 6. Airlines 1NF Pada tabel Airlines tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. Airlines (@airlinePrefix, airlineName, airlineTaxNo, airlineAddress, additionalInfo, airlinePrefix, airlineCountry)
2NF Pada tabel Airlines tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. Airlines (@airlinePrefix, airlineName, airlineTaxNo, airlineAddress, additionalInfo, airlineCountry)
3NF Pada tabel Airlines tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. Airlines (@airlinePrefix, airlineName, airlineTaxNo, airlineAddress, additionalInfo, airlineCountry)
162 7. Flights 1NF Pada tabel Flights tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. Flights (@flightNo, airlinePrefix, additionalInfo)
2NF Pada tabel Flights tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. Flights (@flightNo, # airlinePrefix, additionalInfo) Airlines (@airlinePrefix, airlineName, airlineTaxNo, airlineAddress, additionalInfo, airlineCountry)
3NF Pada tabel Flights tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. Flights (@flightNo, #airlinePrefix, additionalInfo) Airlines (@airlinePrefix, airlineName, airlineTaxNo, airlineAddress, additionalInfo, airlineCountry)
163 8. Commodities 1NF Pada tabel Commodities tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. Commodities (@commodityID, NOG, description, initialFunc)
2NF Pada tabel Commodities tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. Commodities (@commodityID, NOG, initialFunc, description)
3NF Pada tabel Commodities tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. Commodities (@commodityID, NOG, description, initialFunc)
9. Users 1NF Pada tabel Users tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. Users (@employeeID, password, hint, maxForm, changePassTime, createdTime)
164
2NF Pada tabel Users tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. Users (@#employeeID, password, hint, maxForm, changePassTime, createdTime) Employees
(@employeeID,
employeeName,
employeeTaxNo,
employeeAddress,employeeEmail, salary, hireDate, additionalInfo)
3NF Pada tabel Users tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. Users (@#employeeID, password, hint, maxForm, changePassTime, createdTime) Employees
(@employeeID,
employeeName,
employeeTaxNo,
employeeAddress, employeeEmail, salary, hireDate, additionalInfo)
10. AWB 1NF Pada tabel AWB tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF.
165 AWB
(@AWBNo,
commodityID,
@houseNo,
agentID,
employeeID,
consigneeID,
airportCode,
additionalInfo,
type,
createdTime)
2NF Pada tabel AWB tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. AWB
(@AWBNo,
#commodityID,
@houseNo,
#agentID,
#employeeID,
#consigneeID,
#airportCode,
additionalInfo,
type,
createdTime) Consignees
(@consigneeID,
consigneeAddress,
consigneeName,
consigneePostalCode,
consigneeTaxNo, consigneeCity,
consigneeState, consigneeCountry, additionalInfo) Airports (@airportCode, airportName, airportAddress, airportCity, airportCountry) Commodities (@commodityID, NOG, description, initialFunc) Users (@employeeID, password, hint, maxForm, changePassTime, createdTime)
3NF Pada tabel AWB tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF.
166 AWB
(@AWBNo,
#commodityID,
@houseNo,
#agentID,
#employeeID,
#consigneeID,
#airportCode,
additionalInfo,
type,
createdTime) (@consigneeID,
Consignees
consigneeAddress,
consigneeName,
consigneePostalCode,
consigneeTaxNo, consigneeCity,
consigneeState, consigneeCountry, additionalInfo) Airports (@airportCode, airportName, airportAddress, airportCity, airportCountry) Commodities (@commodityID, NOG, description, initialFunc) Users (@employeeID, password, hint, maxForm, changePassTime, createdTime)
11. Shipment 1NF Pada tabel Shipment tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. Shipment
(@shipmentSeq,
calcStartDate,
weight,
@AWBNo,
volume,
pieces,
@houseNo, paidFlag,
flightNo, flightDate,
description)
2NF Pada tabel Shipment tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF.
167 Shipment (@shipmentSeq, @#AWBNo, @#houseNo, #flightNo, calcStartDate,
weight,
volume,
pieces,
paidFlag,
flightDate,
description) AWB (@AWBNo, @houseNo, additionalInfo, type, createdTime) Flights (@FlightNo, airlinePrefix, additionalType)
3NF Pada tabel Shipment tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. Shipment (@shipmentSeq, @#AWBNo, @#houseNo, #flightNo, calcStartDate,
weight,
volume,
pieces,
paidFlag,
flightDate,
description) AWB (@AWBNo, @houseNo, additionalInfo, type, createdTime) Flights (@flightNo, airlinePrefix, additionalInfo)
12. PaidShipment 1NF Pada tabel PaidShipment tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. PaidShipment @invoiceNo)
(@AWBNo,
@houseNo,
@shipmentSeq,
168 2NF Pada tabel PaidShipment tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. PaidShipment
(@#AWBNo,
@#houseNo,
@#shipmentSeq,
@#invoiceNo) Shipment (@shipmentSeq, @AWBNo, @houseNo, calcStartDate, weight, volume, pieces, paidFlag, flightDate, description) Invoice (@invoiceNo, status, stampDuty, taxRate, allInAmount, truckingCharge,
additionalInfo,
discount,
discountDescription,
payDate, createdTime)
3NF Pada tabel PaidShipment tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. PaidShipment
(@#AWBNo,
@#houseNo,
@#shipmentSeq,
@#invoiceNo) Shipment (@shipmentSeq, @AWBNo, @houseNo, calcStartDate, weight, volume, pieces, paidFlag, flightDate, description) Invoice (@invoiceNo, status, stampDuty, taxRate, allInAmount, truckingCharge,
additionalInfo,
payDate, createdTime)
discount,
discountDescription,
169 13. ULD 1NF Pada tabel ULD tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. ULD (@ULDNo, airlinePrefix, ULDType, Description)
2NF Pada tabel ULD tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. ULD (@ULDNo, # airlinePrefix, ULDType, Description) Airlines (@airlinePrefix, airlineName, airlineTaxNo, airlineAddress, additionalInfo, airlineCountry) 3NF Pada tabel ULD tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. ULD (@ULDNo, # airlinePrefix, ULDType, Description) Airlines (@airlinePrefix, airlineName, airlineTaxNo, airlineAddress, additionalInfo, airlineCountry)
170 14. ULDShipment 1NF Pada tabel ULDShipment tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. ULDShipment (@AWBNo, @houseNo, @ShipmentSeq, @ULDNo, AdditionalInfo)
2NF Pada tabel ULDShipment
tidak ditemukan partial dependency
sehingga telah memenuhi aturan 2NF. ULDShipment
(@#AWBNo,
@#houseNo,
@#ShipmentSeq,
@#ULDNo, AdditionalInfo) ULD (@ULDNo, ULDType, Description) Shipment (@ShipmentSeq, @AWBNo, @HouseNo, CalcStartDate, Weight, Volume, ChargeWeight, PaidFlag)
3NF Pada tabel ULDShipment tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. ULDShipment
(@#AWBNo,
@#houseNo,
@#ULDNo, AdditionalInfo) ULD (@ULDNo, ULDType, Description)
@#ShipmentSeq,
171 Shipment (@ShipmentSeq, @AWBNo, @HouseNo, CalcStartDate, Weight, Volume, ChargeWeight, PaidFlag)
15. Currency 1NF Pada tabel Currency tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. Currency (@currCode, currName, description)
2NF Pada tabel Currency tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. Currency (@currCode, currName,value, description)
3NF Pada tabel Currency tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. Currency (@currCode, currName,value, description)
172 16. CurrExchange 1NF Pada tabel CurrExchange tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. CurrExchange
(@currExNo,
currCode,
currValue,
startDate,
endDate)
2NF Pada tabel CurrExchange tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. CurrExchange (@currExNo, #currCode, currValue, startDate, endDate) Currency (@currCode, currName,value, description)
3NF Pada tabel CurrExchange tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. CurrExchange (@currExNo, #currCode, currValue, startDate, endDate) Currency (@currCode, currName,value, description)
173 17. ServiceCategories 1NF Pada tabel ServiceCategories tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. ServiceCategories (@categoryCode, categoryName, description)
2NF Pada tabel ServiceCategories tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. ServiceCategories (@categoryCode, categoryName, description)
3NF Pada tabel ServiceCategories tidak ditemukan atribut Non-primarykey yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. ServiceCategories (@categoryCode, categoryName, description)
18. Services 1NF Pada tabel Services tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. Services (@serviceID, categoryCode, serviceName, module, UOM, tariff, tariffDesc, includeTax, additionalInfo)
174 2NF Pada tabel Services tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. Services (@serviceID, #categoryCode, serviceName, module, UOM, tariff, tariffDesc, includeTax, additionalInfo) ServiceCategories (@categoryCode, categoryName, description)
3NF Pada tabel Services tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. Services (@serviceID, #categoryCode, serviceName, module, UOM, tariff, tariffDesc, includeTax, additionalInfo) ServiceCategories (@categoryCode, categoryName, description)
19. Invoice 1NF Pada tabel Invoice tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. Invoice (@InvoiceNo, paymethodCode, accountID, employeeID, status,
stampDuty,
taxRate,
additionalInfo, createdTime)
allInAmount,
truckingCharge,
175 2NF Pada tabel Invoice tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. Invoice (@InvoiceNo, #paymethodCode, #accountID, #employeeID, status,
stampDuty,
taxRate,
allInAmount,
truckingCharge,
additionalInfo, createdTime) PayMethods (@payMethodCode, description, additionalInfo) Users (@employeeID, password, hint, maxForm) Accounts (@accountID, accountName, balance, description)
3NF Pada tabel Invoice tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. Invoice (@InvoiceNo, paymethodCode, #accountID, #employeeID, status,
stampDuty,
taxRate,
allInAmount,
truckingCharge,
additionalInfo, createdTime) PayMethods (@payMethodCode, description, additionalInfo) Users (@employeeID, password, hint, maxForm) Accounts (@accountID, accountName, balance, description)
176 20. InvoiceDetail 1NF Pada tabel InvoiceDetail tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. InvoiceDetail
(@invoiceNo,
@serviceSeq,
serviceID,
charge,
startDate, endDate, chgqty, discount, discountDescription, attribute)
2NF Pada tabel InvoiceDetail tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. InvoiceDetail (@#invoiceNo, @serviceSeq, #serviceID, charge, startDate, endDate, chgqty, discount, discountDescription, attribute) Invoice (@invoiceNo, status, stampDuty, taxRate, allInAmount, truckingCharge, additionalInfo, createdTime, payDate) Services
(@serviceID,
serviceName,
module,
UOM,
tariff,
TariffDesc, IncludeTax, AdditionalInfo, defaultServ)
3NF Pada tabel InvoiceDetail tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. InvoiceDetail (@#invoiceNo, @serviceSeq, #serviceID, charge, startDate, endDate, chgqty, discount, discountDescription, attribute)
177 Invoice (@invoiceNo, status, stampDuty, taxRate, allInAmount, truckingCharge, additionalInfo, createdTime, payDate) Services
(@serviceID,
serviceName,
module,
UOM,
tariff,
TariffDesc, IncludeTax, AdditionalInfo, defaultServ)
21. PaidShipment 1NF Pada tabel paidShipment tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. PaidShipment
(@invoiceNo,
@shipmentSeq,
@AWBNo,
@houseNo)
2NF Pada tabel paidShipment tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. PaidShipment
(@#invoiceNo,
@#shipmentSeq,
@#AWBNo,
@#houseNo) Invoice (@invoiceNo, status, stampDuty, taxRate, allInAmount, truckingCharge, additionalInfo, createdTime, payDate) Shipment (@ShipmentSeq, @AWBNo, @HouseNo, CalcStartDate, Weight, Volume, ChargeWeight, PaidFlag)
178 3NF Pada tabel PaidShipment tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. PaidShipment
(@#invoiceNo,
@#shipmentSeq,
@#AWBNo,
@#houseNo) Invoice (@invoiceNo, status, stampDuty, taxRate, allInAmount, truckingCharge, additionalInfo, createdTime, payDate) Shipment (@ShipmentSeq, @AWBNo, @HouseNo, CalcStartDate, Weight, Volume, ChargeWeight, PaidFlag)
22. PayMethods 1NF Pada tabel PayMethods tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. PayMethods (@payMethodCode, description, additionalInfo)
2NF Pada tabel PayMethods tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. PayMethods (@payMethodCode, description, additionalInfo)
179 3NF Pada tabel PayMethods tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. PayMethods (@payMethodCode, description, additionalInfo)
23. CCBInvoice 1NF Pada tabel CCBInvoice tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. CCBInvoice (@invoiceNo, CCBDue, CCBStampDuty, CCBTax)
2NF Pada tabel CCBInvoice tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. CCBInvoice (@#invoiceNo, CCBDue, CCBStampDuty, CCBTax) Invoice (@invoiceNo, status, stampDuty, taxRate, allInAmount, truckingCharge, additionalInfo, createdTime, payDate)
3NF Pada tabel CCBInvoice tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF.
180 CCBInvoice (@#invoiceNo, CCBDue, CCBStampDuty, CCBTax) Invoice (@invoiceNo, status, stampDuty, taxRate, allInAmount, truckingCharge, additionalInfo, createdTime, payDate)
24. Employees 1NF Pada tabel Employees tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. Employees
(@employeeID,
employeeTaxNo,
supervisorID,
employeeAddress,
employeeName,
employeeEmail,
salary,
hireDate, additionalInfo)
2NF Pada tabel Employees tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. Employees
(@employeeID,
employeeTaxNo,
#supervisorID,
employeeAddress,
employeeName,
employeeEmail,
salary,
hireDate, additionalInfo) Employees
(@employeeID,
employeeName,
employeeTaxNo,
employeeAddress, employeeEmail, salary, hireDate, additionalInfo)
181 3NF Pada tabel Employees tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. Employees
(@employeeID,
employeeTaxNo,
#supervisorID,
employeeAddress,
employeeName,
employeeEmail,
salary,
hireDate, additionalInfo) Employees
(@employeeID,
employeeName,
employeeTaxNo,
employeeAddress, employeeEmail, salary, hireDate, additionalInfo)
25. EmployeePhones 1NF Pada tabel EmployeePhones tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. EmployeePhones (@phoneNo, employeeID, description)
2NF Pada tabel EmployeePhones tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. EmployeePhones (@phoneNo, #employeeID, description) Employees
(@employeeID,
employeeName,
employeeTaxNo,
employeeAddress, employeeEmail, salary, hireDate, additionalInfo)
182 3NF Pada tabel EmployeePhones tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. EmployeePhones (@phoneNo, #employeeID, description) Employees
(@employeeID,
employeeName,
employeeTaxNo,
employeeAddress, employeeEmail, salary, hireDate, additionalInfo)
26. TrShift 1NF Pada tabel TrShift tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. TrShift (@trShiftNo, employeeID, startTime, endTime)
2NF Pada tabel TrShift tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. TrShift (@trShiftNo, #employeeID, startTime, endTime) Employees
(@employeeID,
employeeName,
employeeTaxNo,
employeeAddress, employeeEmail, salary, hireDate, additionalInfo)
183 3NF Pada tabel TrShift tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. TrShift (@TrShiftNo, #EmployeeID, StartTime, EndTime) Employees
(@employeeID,
employeeName,
employeeTaxNo,
employeeAddress, employeeEmail, salary, hireDate, additionalInfo)
27. Roles 1NF Pada tabel Roles tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. Roles (@RoleID, RoleName, Description, InitialFunc)
2NF Pada tabel Roles tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. Roles (@RoleID, RoleName, Description, Initialfunc)
3NF Pada tabel Roles tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF.
184 Roles (@RoleID, RoleName, Description, InitialFunc)
28. Menu 1NF Pada tabel Menu tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. Menu (@MenuID, MainMenuID MenuName, FileName, Version, Description, menuType, seq)
2NF Pada tabel Menu tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. Menu (@MenuID, #MainMenuID, MenuName, FileName, Version, Description, menuType, seq) Menu (@MenuID, MainMenuID, MenuName, FileName, Version, Description, menuType, seq)
3NF Pada tabel Menu tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. Menu (@MenuID, #MainMenuID, MenuName, FileName, Version, Description, menuType, seq)
185 Menu (@MenuID, MainMenuID, MenuName, FileName, Version, Description, menuType, seq) 29. UserRole 1NF Pada tabel UserRole tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. UserRole (@EmployeeID, @RoleID)
2NF Pada tabel UserRole tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. UserRole (@#EmployeeID, @#RoleID) Users (@EmployeeID, Password, Hint, MaxForm) Roles (@RoleID, RoleName, Description, Initialfunc)
3NF Pada tabel UserRole tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. UserRole (@#EmployeeID, @#RoleID) Users (@EmployeeID, Password, Hint, MaxForm) Roles (@RoleID, RoleName, Description, InitialFunc)
186 30. RoleMenu 1NF Pada tabel RoleMenu tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. RoleMenu (@RoleID, @MenuID)
2NF Pada tabel RoleMenu tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. RoleMenu (@#RoleID, @#MenuID) Roles (@RoleID, RoleName, Description, InitialFunc) Menu (@MenuID, MainMenuID, MenuName, FileName, Version, Description, , menuType, seq)
3NF Pada tabel RoleMenu tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. RoleMenu (@#RoleID, @#MenuID) Roles (@RoleID, RoleName, Description, InitialFunc) Menu (@MenuID, MainMenuID, MenuName, FileName, Version, Description, menuType, seq)
187 31. UserMenu 1NF Pada tabel UserMenu tidak ditemukan perulangan sehingga telah memenuhi aturan 1NF. UserMenu (@EmployeeID, @MenuID)
2NF Pada tabel UserMenu tidak ditemukan partial dependency sehingga telah memenuhi aturan 2NF. UserMenu (@#EmployeeID, @#MenuID) Users (@EmployeeID, Password, Hint, MaxForm) Menu (@MenuID, MainMenuID, MenuName, FileName, Version, Description, menuType, seq)
3NF Pada tabel UserMenu tidak ditemukan atribut Non-primary-key yang memiliki ketergantungan transitif (transitive dependency) pada primary key sehingga telah memenuhi aturan 3NF. UserMenu (@#EmployeeID, @#MenuID) Users (@EmployeeID, Password, Hint, MaxForm) Menu (@MenuID, MainMenuID, MenuName, FileName, Version, Description, menuType, seq)
188
Gambar 4.6 Model Data Logikal Global
189 4.1.2.3
Validasi Relasi Terhadap Transaksi Pengguna Tahap ini bertujuan untuk memastikan model data logikal yang
dirancang dapat memenuhi semua transaksi yang telah divalidasi pada model data konseptual pada tahap sebelumnya. Pendekatan yang dilakukan adalah dengan mencantumkan jalur transaksi yang telah didefinisikan (tahap perancangan konseptual) pada model data logikal yang telah dirancang. Transaksi-transaksi yang terjadi pada layanan kargo bandara Soekarno-Hatta pada PT. JAS adalah sebagai berikut: a. Pendataan AWB (cargo outgoing dan incoming) b. Pendataan Manifest (cargo outgoing dan incoming) c. Pembuatan laporan manifest (cargo outgoing) d. Pembuatan dan pendataan Notice of Arrival (cargo incoming) e. Pembuatan dan pendataan Document Delivery Order (cargo incoming) f. Pembuatan dan pendataan Cargo Delivery Order (cargo incoming) g. Pembuatan dan pendataan kwitansi h. Pembuatan dan pendataan kwitansi tambah bayar i. Pembuatan dan pendataan kwitansi CCB j. Pembuatan faktur pajak untuk pelanggan k. Pendataan pergantian shift staff kargo l. Pendataan nilai tukar mata uang asing terhadap IDR
190 m. Pembuatan laporan rekapitulasi harian n. Pembuatan laporan cargo charges o. Pemberian hak akses tertentu pada pengguna aplikasi sesuai dengan pekerjaannya p. Menambah saldo deposit q. Pendataan user (pengguna aplikasi) baru
191
Gambar 4.7 Model Data Logikal Dengan Validasi Transaksi Pengguna
192 4.1.2.3
Pengecekan Integritas Constraint Pada tahap ini dilakukan pengecekan constraint integritas agar
basis data tetap konsisten. Consignees
(consigneeID,
consigneeName,
consigneeTaxNo,
consigneeAddress,
consigneePostalCode, consigneeCity, consigneeState, consigneeCountry, additionalInfo) Primary key consigneeID ConsigneePhones (phoneNo, consigneeID, description) Primary key phoneNo Foreign key consigneeID references Consignees (consigneeID) ON UPDATE CASCADE ON DELETE CASCADE Accounts (accountID, consigneeID, accountName, balance, description) Primary key accountID Foreign key consigneeID references Consignees (consigneeID) ON UPDATE CASCADE ON DELETE CASCADE TrDeposit (trnNo, accountID, employeeID, value, depositTime, description) Primary key trnNo Foreign key accountID references Accounts (accountID) ON UPDATE CASCADE ON DELETE SET NULL Foreign key employeeID references Users (employeeID) ON UPDATE CASCADE ON DELETE SET NULL
193 AWB (AWBNo, houseNo, employeeID, commodityID, airportCode, agentID, consigneeID, additionalInfo, type, createdTime) Primary key AWBNo, houseNo Foreign key employeeID references Users (employeeID) ON UPDATE CASCADE ON DELETE SET NULL Foreign key commodityID references Commodities (commodityID) ON UPDATE CASCADE ON DELETE SET NULL Foreign key airportCode references Airports (airportCode) ON UPDATE CASCADE ON DELETE SET NULL Foreign key consigneeID references Consignees (consigneeID) ON UPDATE CASCADE ON DELETE SET NULL Foreign key agentID references Consignees (consigneeID) ON UPDATE CASCADE ON DELETE SET NULL Shipment (shipmentSeq, AWBNo, houseNo, flightNo, calcStartDate, weight, volume, pieces, flightDate, description) Primary key shipmentSeq, AWBNo, houseNo Foreign key AWBNo, houseNo references AWB (AWBNo, houseNo) ON UPDATE CASCADE ON DELETE CASCADE Foreign key FlightNo references Flights (flightNo) ON UPDATE CASCADE ON DELETE SET NULL Airports
(airportCode,
airportCountry) Primary key airportCode
airportName,
initialFunc,
airportAddress,
airportCity,
194 Flights (flightNo, airlinePrefix, additionalInfo) Primary key flightNo Foreign key airlinePrefix references Airlines (airlinePrefix) ON UPDATE CASCADE ON DELETE SET NULL Airlines
(airlinePrefix,
airlineName,
initialFunc,
airlineTaxNo,
airlineAddress,
additionalInfo, airlineCountry) Primary key airlinePrefix Commodities (commodityID, NOG, description, initialFunc) Primary key commodityID Documents
(AWBNo,
DOCNo,
houseNo,
employeeID,
additionalInfo,
createdTime) Primary key DOCNo Foreign key AWBNo, houseNo references AWB (AWBNo, houseNo) ON UPDATE CASCADE ON DELETE CASCADE Foreign key EmployeeID references Employees (EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE ULD (ULDNo, Prefix, ULDType, description) Primary key ULDNo Foreign key airlinePrefix references Airlines (airlinePrefix) ON UPDATE CASCADE ON DELETE SET NULL
type,
195 ULDShipment (AWBNo, houseNo, shipmentSeq,ULDNo, additionalInfo) Primary key AWBNo, shipmentSeq,ULDNo Foreign key AWBNo, houseNo, shipmentSeq references Shipment (AWBNo, houseNo, shipmentSeq) ON UPDATE CASCADE ON DELETE CASCADE Foreign key ULDNo references ULD (ULDNo) ON UPDATE CASCADE ON DELETE CASCADE PayMethods (payMethodCode, description, additionalInfo) Primary key payMethodCode PaidShipment (invoiceNo, shipmentSeq, AWBNo, houseNo) Primary key invoiceNo, shipmentSeq, AWBNo, houseNo Foreign key AWBNo, houseNo, shipmentSeq references Shipment (AWBNo, houseNo, shipmentSeq) ON UPDATE CASCADE ON DELETE CASCADE Foreign key invoiceNo references Invoice (invoiceNo) ON UPDATE CASCADE ON DELETE CASCADE
196 Invoice (invoiceNo, payMethodCode, accountID, employeeID, status, stampDuty, taxRate, allInAmount, truckingCharge, additionalInfo, createdTime, payDate) Primary key invoiceNo Foreign key payMethodCode references payMethod (payMethodCode) ON UPDATE CASCADE ON DELETE SET NULL Foreign key accountID references Accounts (accountID) ON UPDATE CASCADE ON DELETE SET NULL Foreign key employeeID references Users (employeeID) ON UPDATE CASCADE ON DELETE SET NULL InvoiceDetail (invoiceNo, serviceSeq, serviceID, charge, endDate, chgqty, discount, discountDescription, attribute) Primary key invoiceNo, serviceSeq Foreign key invoiceNo references Invoice (invoiceNo) ON UPDATE CASCADE ON DELETE CASCADE Foreign key serviceID references Services (serviceID) ON UPDATE CASCADE ON DELETE SET NULL CCBInvoice (invoiceNo, CCBDue, CCBStampDuty, CCBTax) Primary key invoiceNo Foreign key invoiceNo references Invoice (invoiceNo) ON UPDATE CASCADE ON DELETE CASCADE
197 CurrExchange (currExNo, currCode, currValue, startDate, endDate) Primary key currExNo Foreign key currCode references Currency (currCode) ON UPDATE CASCADE ON DELETE SET NULL Currency (currCode, currName, description) Primary key currCode Services (serviceID, categoryCode, serviceName, module, UOM, tariff, TariffDesc, IncludeTax, AdditionalInfo, defaultServ, currCode) Primary key serviceID Foreign key categoryCode references ServiceCategories (categoryCode) ON UPDATE CASCADE ON DELETE CASCADE Foreign key currCode references Currency (currCode) ON UPDATE CASCADE ON DELETE SET NULL ServiceCategories (categoryCode, categoryName, description) Primary key categoryCode Users (employeeID, password, hint, maxForm, changePassTime, createdTime) Primary key employeeID Foreign key employeeID references Employees (employeeID) ON UPDATE CASCADE ON DELETE CASCADE
198 Employees
(employeeID,
supervisorID,
employeeName,
employeeAddress, employeeEmail, salary, hireDate, additionalInfo) Primary key employeeID Foreign key supervisorID references Employees (supervisorID) ON UPDATE CASCADE ON DELETE SET NULL EmployeePhones (phoneNo, employeeID, description) Primary key phoneNo Foreign key employeeID references Employees (employeeID) ON UPDATE CASCADE ON DELETE CASCADE TrShift (trShiftNo, employeeID, startTime, endTime) Primary key trShiftNo Foreign key EmployeeID references Employees (employeeID) ON UPDATE CASCADE ON DELETE CASCADE UserRole (employeeID, roleID) Primary key employeeID Foreign key employeeID references Users (employeeID) ON UPDATE CASCADE ON DELETE CASCADE Foreign key roleID references Roles (roleID) ON UPDATE CASCADE ON DELETE CASCADE Roles (roleID, roleName, description, initialFunc, createdTime) Primary key roleID
employeeTaxNo,
199 RoleMenu (roleID, menuID) Primary key roleID, menuID Foreign key menuID references Menu (menuID) ON UPDATE CASCADE ON DELETE CASCADE Foreign key roleID references Roles (roleID) ON UPDATE CASCADE ON DELETE CASCADE Menu (menuID, mainMenuID, menuName, fileName, version, description, menuType) Primary key menuID Foreign key mainMenuID references Menu (menuID) ON UPDATE CASCADE ON DELETE CASCADE UserMenu (employeeID, menuID) Primary key employeeID Foreign key employeeID references Users (employeeID) ON UPDATE CASCADE ON DELETE CASCADE Foreign key menuID references Menu (menuID) ON UPDATE CASCADE ON DELETE CASCADE
4.1.3 Pemilihan DBMS Pertimbangan DBMS yang akan digunakan untuk implementasi perancangan basis data yang diusulkan adalah Oracle Database 10g release 2 dan IBM DB2 9.1 sebagai DBMS yang memiliki skalabilitas yang sesuai untuk penampungan data-data pada sistem yang diusulkan.
200 Berdasarkan hasil penelitian Comparative Management Cost Studies (CMCS) yang membandingkan Oracle Database 10g dengan IBM DB2 9.1 (http://www.oracle.com/database/docs/oracle10g-vs-db2-9.1-cmcs.pdf), didapatkan hasil analisis perbandingan Oracle Database 10g dan DB2 9.1: 1. DBA (Database Administrator) dapat melakukan tugas-tugas administratif dengan waktu 38% lebih cepat jika menggunakan Oracle Database 10g dibandingkan DB2 2. Oracle Database 10g memerlukan langkah-langkah 35% lebih sedikit dibanding DB2 dalam melakukan tugas-tugas standard RDBMS 3. Keuntungan dari produktivitas DBA menghasilkan $31,654 per DBA per Hari untuk pemilihan Oracle Database 10g 4. Dalam performa dan tuning, Oracle Database 10g menggunakan waktu 76% lebih cepat dan 50% kompleksitas yang lebih mudah dibandingkan dengan DB2 5. Dalam backup dan recovery, Oracle Database 10g menggunakan waktu 50% lebih cepat dan 62% langkah yang lebih sedikit dibandingkan DB2 6. Instalasi DB2 menggunakan waktu 78% lebih cepat dibandingkan Oracle Database 10g karena komponen yang digunakan lebih sedikit Dengan mempertimbangkan hasil diatas, DBMS yang dipilih adalah Oracle Database 10g dengan kelebihan sebagai berikut: 1. Diperlukannya komunikasi dengan sistem informasi utama PT. JAS yang juga menggunakan Oracle Database 10g. Dengan penggunaan DBMS yang sama, diharapkan komunikasi data akan lebih mudah
201 2. Fitur heterogenous support yang dimiliki Oracle memungkinkan komunikasi data antar sistem Oracle dan non-Oracle 3. Oracle Database 10g merupakan DBMS skala besar yang dapat mendukung penampungan data sistem yang diusulkan 4. Tingkat keamanan tinggi serta operasi backup dan recovery yang mudah
Spesifikasi minimum untuk instalasi Oracle Database 10g: Physical memory (RAM) 512 MB recommended Virtual memory
Double the amount of RAM
Temp disk space
Hard disk space 1.5 GB
Video adapter
256 colors
Tabel 4.6 Tabel Spesifikasi minimum instalasi Oracle Database 10g 4.1.4 Perancangan Fisikal Perancangan basis data fisikal merupakan suatu proses untuk menghasilkan deskripsi database relasional yang meliputi relasi dasar, organisasi file, index, constraint, dan mekanisme keamanan akses data untuk diimplementasikan pada DBMS (Database management System). 4.1.4.1 Desain Relasi Dasar Pada tahapan ini dilakukan representasi relasi dasar yang diidentifikasi dalam model data logikal global.
202 Consignees Domain ConsigneeId
numeric value, precision 7
Domain ConsigneeName
variable length character string, length 50
Domain ConsgineeTaxNumber
variable length character string, length 15
Domain ConsigneeAddress
variable length character string, length 100
Domain ConsigneePostalCode
variable length character string, length 5
Domain ConsigneeCity
variable length character string, length 50
Domain ConsigneeState
variable length character string, length 20
Domain ConsigneeCountry
variable length character string, length 50
Domain AdditionalInfo
variable length character string, length 100
Consignees ( consigneeId
ConsigneeId
NOT NULL,
consigneeName
ConsigneeName
NOT NULL,
consgineeTaxNo
ConsgineeTaxNumber,
consigneeAddress
ConsigneeAddress
consigneePostalCode
ConsigneePostalCode,
consigneeCity
ConsigneeCity
NOT NULL,
consigneeState
ConsigneeState
NOT NULL,
consigneeCountry
ConsigneeCountry
NOT NULL DEFAULT
NOT NULL,
‘INDONESIA’ , additionalInfo
AdditionalInfo,
PRIMARY KEY consigneeId );
203 ConsigneePhones Domain PhoneNumber
variable length character string, length 25
Domain ConsigneeId
numeric value, precision 7
Domain Description
variable length character string, length 150
Consignees ( phoneNo
PhoneNumber
NOT NULL,
consigneeID
ConsigneeId
NOT NULL,
description
Description,
PRIMARY KEY phoneNo, FOREIGN KEY consigneeID REFERENCES Consignees (consigneeID) ON UPDATE CASCADE ON DELETE CASCADE );
Account Domain AccountID
variable length character string, length 10
Domain ConsigneeID
numeric value, precision 7
Domain AccountName
variable length character string, length 50
Domain AccountBalance
numeric value, precision 15, scale 2
Domain Description
variable length character string, length 150
Account( accountID
AccountID
NOT NULL,
consigneeID
ConsigneeID
NOT NULL,
accountName
AccountName
NOT NULL,
balance
AccountBalance
NOT NULL,
204 description
Description,
PRIMARY KEY accountID, FOREIGN KEY consigneeID REFERENCES Consignees (consigneeID) ON UPDATE CASCADE ON DELETE SET NULL );
TrDeposit Domain TransactionNumber
fixed length character string, length 8
Domain AccountID
variable length character string, length 10
Domain EmployeeID
variable length character string, length 10
Domain TransactionValue
numeric value, precision 15, scale 2
Domain DepositTime
date (mm/dd/yy hh24:mi:ss)
Domain Description
variable length character string, length 150
TrDeposit ( trnNo
TransactionNumber
NOT NULL,
accountID
AccountID
NOT NULL,
employeeID
AccountID
NOT NULL,
accounted
EmployeeID
NOT NULL,
Value
TransactionValue
NOT NULL,
depositTime
TransactionValue
NOT NULL DEFAULT SYSDATE,
description PRIMARY KEY trnNO,
Description
205 FOREIGN KEY accountID REFERENCES Accounts (accountID) ON UPDATE CASCADE ON DELETE SET NULL ) FOREIGN KEY employeeID REFERENCES Users (employeeID) ON UPDATE CASCADE ON DELETE SET NULL );
AWB Domain AWBNumber
fixed length character string, length 13
Domain HouseNumber
variable length character string, length 5
Domain EmployeeID
variable length character string, length 10
Domain CommodityID
numeric value, precision 5
Domain AirportCode
fixed length character string, length 3
Domain AgentID
numeric value, in the range 1-9999999
Domain ConsigneeID
numeric value, precision 7
Domain AdditionalInfo
variable length character string, length 150
Domain AWBType
fixed length character string, length 4
Domain CreatedTime
date (mm/dd/yy hh24:mi:ss)
AWB ( AWBNo
AWBNumber
NOT NULL,
houseNo
HouseNumber
NOT NULL DEFAULT ‘0’,
employeeID
EmployeeID
NOT NULL,
commodityCode
CommodityCode
NOT NULL,
airportCode
AirportCode
NOT NULL,
206 agentID
AgentID,
consigneeID
ConsigneeID
additionalInfo
AdditionalInfo,
type
AWBType
NOT NULL,
createdTime
CreatedTime
NOT NULL DEFAULT
NOT NULL,
SYSDATE, PRIMARY KEY AWBNo, houseNo, FOREIGN KEY employeeID REFERENCES Users (employeeID) ON UPDATE CASCADE ON DELETE SET NULL, FOREIGN KEY commodityCode REFERENCES Commodities (commodityCode) ON UPDATE CASCADE ON DELETE SET NULL, FOREIGN KEY airportCode REFERENCES Airports (airportCode) ON UPDATE CASCADE ON DELETE SET NULL, FOREIGN KEY consigneeID REFERENCES Consignees (consigneeID) ON UPDATE CASCADE ON DELETE SET NULL, FOREIGN KEY agentID REFERENCES Consignees (consigneeID) ON UPDATE CASCADE ON DELETE SET NULL );
Shipment Domain ShipmentSequence
numeric value, precision 4
Domain AWBNumber
variable length character string, length 13
Domain HouseNumber
variable length character string, length 5
Domain FlightNumber
variable length character string, length 8
207 Domain CalculationStartDate
date (mm/dd/yy hh24:mi:ss)
Domain Weight
numeric value, precision 9, scale 2
Domain Volume
numeric value, precision 9, scale 2
Domain Pieces
numeric value, precision 7
Domain FlightDate
date (mm/dd/yyyy)
Domain Description
variable length character string, length 150
Shipment ( shipmentSeq
ShipmentSequence
NOT NULL DEFAULT 1,
AWBNo
AWBNumber
NOT NULL,
houseNo
HouseNumber
NOT NULL,
flightNo
FlightNumber
NOT NULL,
calcStartDate
CalculationStartDate
NOT NULL,
weight
Weight
NOT NULL,
volume
Volume
NOT NULL,
pieces
Pieces
NOT NULL,
flightDate
FlightDate
description
Description
PRIMARY KEY ShipmentSeq, AWBNO, houseNo FOREIGN KEY AWBNo, houseNo REFERENCES AWB (AWBNo, houseNo) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY FlightNO REFERENCES Flights (FlightNO) ON UPDATE CASCADE ON DELETE SET NULL );
208 Airports Domain AirportCode
fixed length character string, length 3
Domain AirportName
variable length character string, length 50
Domain AirportAddress
variable length character string, length 50
Domain AirportCity
variable length character string, length 50
Domain AirportCountry
variable length character string, length 50
Airports ( airportCode
AirportCode
NOT NULL,
airportName
AirportName
NOT NULL,
airportAddress
AirportAddress,
airportCity
AirportCity,
airportCountry
AirportCountry,
PRIMARY KEY airportCode);
Flights Domain FlightNumber
variable length character string, length 8
Domain AirlinePrefix
fixed length character string, length 3
Domain AdditionalInfo
variable length character string, length 150
Flights( flightNo
FlightNumber
NOT NULL,
airlinePrefix
AirlinePrefix
NOT NULL,
additionalInfo
AdditionalInfo,
209 PRIMARY KEY flightNO, FOREIGN KEY airlinePrefix REFERENCES Airlines (airlinePrefix) ON UPDATE CASCADE ON DELETE SET NULL);
Airlines Domain AirlinePrefix
fixed length character string, length 3
Domain AirlineInitialFunc
variable length character string, length 5
Domain AirlineName
variable length character string, length 50
Domain AirlineTaxNumber
fixed length character string, length 15
Domain AirlineAddress
variable length character string, length 100
Domain AdditionalInfo
variable length character string, length 150
Domain AirlineCountry
variable length character string, length 30
Airlines ( airlinePrefix
AirlinePrefix
initialFunc
AirlineInitialFunc,
airlineName
AirlineName
airlineTaxNo
AirlineTaxNumber,
airlineAddress
AirlineAddress
additionalInfo
AdditionalInfo,
airlinePrefix
AirlinePrefix
NOT NULL,
airlineCountry
AirlineCountry
NOT NULL,
PRIMARY KEY airlineCode );
NOT NULL,
NOT NULL,
NOT NULL,
210 Commodities Domain CommodityID
numeric value, precision 5
Domain NOG
variable length character string, length 50
Domain Description
variable length character string, length 150
Domain CommodityInitialFunc
variable length character string, length 5
Commodities ( commodityID
CommodityID
NOT NULL,
NOG
NOG
NOT NULL,
description
Description,
initialFunc
CommodityInitialFunc,
PRIMARY KEY commodityCode );
Documents Domain DocumentNumber
fixed length character string, length 10
Domain AWBNumber
variable length character string, length 13
Domain HouseNumber
variable length character string, length 5
Domain EmployeeId
variable length character string, length 10
Domain AdditionalInfo
variable length character string, length 150
Domain DocumentType
fixed length character string, length 3
Domain CreatedTime
date (mm/dd/yy hh24:mi:ss)
Documents ( AWBNo
AWBNumber
NOT NULL,
211 DOCNO
DocumentNumber
NOT NULL,
houseNo
HouseNumber
NOT NULL,
employeeID
EmployeeId
NOT NULL,
additionalInfo
AdditionalInfo,
type
DocumentType
NOT NULL,
createdTime
CreatedTime
NOT NULL,
PRIMARY KEY DOCNO, FOREIGN KEY AWBNO, houseNo REFERENCES AWB (AWBNO, houseNo) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY empoyeeID REFERENCES employees (employeeID) ON UPDATE CASCADE ON DELETE CASCADE );
ULD Domain ULDNumber
fixed length character string, length 10
Domain AirlinePrefix
fixed length character string, length 3
Domain ULDType
variable length character string, length 35
Domain Description
variable length character string, length 150
ULD ( ULDNo
ULDNumber
NOT NULL,
airlinePrefix
airlinePrefix
NOT NULL,
ULDType
ULDType,
description
Description,
PRIMARY KEY ULDNO,
212 FOREIGN KEY airlinePrefix REFERENCES Airlines (airlineCPrefix) ON UPDATE CASCADE ON DELETE SET NULL);
ULDShipment Domain AWBNumber
variable length character string, length 13
Domain HouseNumber
variable length character string, length 5
Domain ShipmentSequence
numeric value, precision 4
Domain ULDNumber
fixed length character string, length 10
Domain AdditionalInfo
variable length character string, length 150
ULDShipment ( AWBNo
AWBNumber
NOT NULL,
houseNo
HouseNumber
NOT NULL,
ShipmentSeq
ShipmentSequence
NOT NULL,
ULDNo
ULDNumber
NOT NULL,
AdditionalInfo
AdditionalInfo,
PRIMARY KEY AWBNo, shipmentSeq,ULDNo, FOREIGN KEY AWBNo, houseNo, shipmentSeq REFERENCES Shipment (AWBNo, houseNo, shipmentSeq) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY ULDNo REFERENCES ULD (ULDNo) ON UPDATE CASCADE ON DELETE CASCADE );
213 PayMethods Domain PayMethodCode
fixed length character string, length 3
Domain Description
variable length character string, length 150
Domain AdditionalInfo
variable length character string, length 150
PayMethods ( payMethodCode
PayMethodCode
description
Description,
additionalInfo
AdditionalInfo,
NOT NULL,
PRIMARY KEY payMethoId );
PaidShipment Domain InvoiceNumber
fixed length character string, length 10
Domain ShipmentSequence
numeric value, precision 4
Domain AWBNumber
variable length character string, length 13
Domain HouseNumber
variable length character string, length 5
PaidShipment ( invoiceNo
InvoiceNumber
NOT NULL,
shipmentSeq
ShipmentSequence
NOT NULL,
AWBNo
AWBNumber
NOT NULL,
houseNo
HouseNumber
NOT NULL,
PRIMARY KEY invoiceNo, shipmentSeq, AWBNo, houseNo, FOREIGN KEY AWBNo, houseNo, shipmentSeq REFERENCES Shipment (AWBNo, houseNo, shipmentSeq)
214 ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY invoiceNo REFERECES Invoice (invoiceNo) ON UPDATE CASCADE ON DELETE CASCADE );
Invoice Domain InvoiceNumber
fixed length character string, length 15
Domain PayMethodCode
fixed length character string, length 3
Domain AccountID
variable length character string, length 10
Domain EmployeeID
variable length character string, length 10
Domain InvoiceStatus
variable length character string, length 5
Domain StampDuty
numeric value, precision 9, scale 2
Domain TaxRate
numeric value, precision 9, scale 2
Domain AllInAmount
numeric value, precision 15, scale 2
Domain TruckingCharge
numeric value, precision 9, scale 2
Domain AdditionalInfo
variable length character string, length 150
Domain CreatedTime
date (mm/dd/yy hh24:mi:ss)
Domain PayDate
date (mm/dd/yy hh24:mi:ss)
Invoice ( invoiceNO
InvoiceNumber
NOT NULL,
payMethodCode
PayMethodCode
NOT NULL,
accountID
AccountID
NOT NULL,
employeeID
EmployeeID
NOT NULL,
status
InvoiceStatus
NOT NULL,
215 stampDuty
StampDuty,
taxRate
TaxRate,
allInAmount
AllInAmount,
truckingCharge
TruckingCharge,
additionalInfo
AdditionalInfo,
createdTime
CreatedTime
NOT
NULL
DEFAULT
SYSDATE, payDate
PayDate
NOT NULL,
PRIMARY KEY invoiceNO, FOREIGN KEY payMethodCode REFERENCES payMethod (payMethodCode) ON UPDATE CASCADE ON DELETE SET NULL, FOREIGN KEY accountID REFERENCES Accounts (accountID) ON UPDATE CASCADE ON DELETE SET NULL, FOREIGN KEY employeeID REFERENCES Users (employeeID) ON UPDATE CASCADE ON DELETE SET NULL);
InvoiceDetail Domain InvoiceNumber
fixed length character string, length 10
Domain ServiceSequence
numeric value, precision 3
Domain ServiceID
numeric value, precision 3
Domain Charge
numeric value, precision 15, scale 2
Domain StartDate
date (mm/dd/yy)
Domain EndDate
date (mm/dd/yy)
216 Domain ChgQty
numeric value, precision 9, scale 2
Domain Discount
numeric value, precision 7, scale 2
Domain DiscountDescription
variable length character string, length 150
Domain Attributes
variable length character string, length 150
InvoiceDetail ( invoiceNo
InvoiceNumber
NOT NULL,
serviceSeq
ServiceSequence
NOT NULL,
serviceID
ServiceID
NOT NULL,
charge
Charge
NOT NULL,
startDate
StartDate
NOT NULL,
endDate
EndDate
NOT
NULL
SYSDATE, chgQty
ChgQty
discount
Discount,
discountDescription
DiscountDescription,
attributes
Attributes,
NOT NULL,
PRIMARY KEY invoiceNo, serviceSeq, FOREIGN KEY invoiceNo REFERENCES Invoice (invoiceNo) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY serviceID REFERENCES Services (serviceID) ON UPDATE CASCADE ON DELETE SET NULL );
DEFAULT
217 CCBInvoice Domain InvoiceNumber
fixed length character string, length 10
Domain CCBDue
numeric value, precision 9, scale 2
Domain CCBStampDuty
numeric value, precision 9, scale 2
Domain CCBTax
numeric value, precision 9, scale 2
CCBInvoice ( InvoiceNO
InvoiceNumber
NOT NULL,
CCBDue
CCBDue
NOT NULL,
CCBStampDuty
CCBStampDuty,
CCBTax
CCBTax,
PRIMARY KEY invoiceNO, FOREIGN KEY invoiceNO REFERENCES invoice (InvoiceNO) ON UPDATE CASCADE ON DELETE CASCADE);
CurrExchange Domain
CurrencyExchange- fixed length character string, length 9
Number Domain CurrencyCode
fixed length character string, length 3
Domain CurrencyValue
numeric value, precision 9, scale 2
Domain StartDate
date (mm/dd/yyyy)
Domain EndDate
date (mm/dd/yyyy)
CurrExchange ( currExNO
CurrencyExchange-
NOT NULL,
218 Number currCode
CurrencyCode
NOT NULL,
currValue
CurrencyValue
NOT NULL,
startDate
StartDate
NOT NULL,
endDate
EndDate
NOT NULL,
PRIMARY KEY currExNO, FOREGN KEY currCode references Currency (currCode) ON UPDATE CASCADE ON DELETE SET NULL);
Currency Domain CurrencyCode
fixed length character string, length 3
Domain CurrencyName
variable length character string, length 30
Domain Description
variable length character string, length 150
Currency ( currCode
CurrencyCode
NOT NULL,
currName
CurrencyName
NOT NULL,
description
Description,
PRIMARY KEY currCode);
Services Domain ServiceID
numeric value, precision 3
Domain CategoryCode
numeric value, precision 3
219 Domain ServiceName
variable length character string, length 35
Domain Module
variable length character string, length 4
Domain UOM
variable length character string, length 10
Domain tariff
numeric value, precision 15,2
Domain TariffDescription
variable length character string, length 150
Domain IncludeTax
single character , “T” or “Y”
Domain AdditionalInfo
variable length character string, length 150
Domain DefaultService
single character, “T” or “Y”
Domain CurrencyCode
variable length character string, length 3
Services ( serviceID
ServiceID
NOT NULL,
categoryCode
CategoryCode
NOT NULL,
serviceName
ServiceName
NOT NULL,
module
Module
NOT NULL,
UOM
UOM
NOT NULL,
tariff
Tariff
NOT NULL,
tariffDesc
TariffDescending,
includeTax
IncludeTax
additionalInfo
AdditionalInfo,
defaultServ
DefaultService
NOT NULL,
currCode
CurrencyCode
NOT NULL,
NOT NULL,
PRIMARY KEY serviceID, FOREIGN KEY categoryCode REFERENCES ServiceCategories (categoryCode)
220 ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY currCode REFERENCES Currency (currCode) ON UPDATE CASCADE ON DELETE SET NULL);
ServiceCategories Domain CategoryCode
numeric value, precision 3
Domain CategoryName
variable length character string, length 30
Domain Description
variable length character string, length 150
ServiceCategories ( categoryCode
CategoryCode
NOT NULL,
categoryName
CategoryName
NOT NULL,
description
Description,
PRIMARY KEY categoryCode );
Users Domain EmployeeID
variable length character string, length 10
Domain Password
variable length character string, length 15
Domain Hint
variable length character string, length 50
Domain MaximumForm
numeric value, precision 3
Domain ChangePasswordTime
date (mm/dd/yyyy hh:mm:ss)
Domain CreatedTime
date (mm/dd/yyyy hh:mm:ss)
Users (
221 employeeID
EmployeeID
NOT NULL,
password
Password
NOT NULL,
hint
Hint,
maxForm
MaximumForm
changePassTime
ChangePasswordTime,
createdTime
CreatedTime
NOT NULL,
NOT NULL,
PRIMARY KEY employeeID, FOREIGN KEY employeeID REFERENCES Employees (employeeID) ON UPDATE CASCADE ON DELETE CASCADE);
Employees Domain EmployeeID
variable length character string, length 10
Domain SupervisorID
variable length character string, length 10
Domain EmployeeName
variable length character string, length 50
Domain EmployeeTaxNumber
variable length character string, length 15
Domain EmployeeAddress
variable length character string, length 100
Domain EmployeeEmail
variable length character string, length 30
Domain EmployeeSalary
numeric value, precision 15, scale 2
Domain EmployeeHireDate
date (mm/dd/yyyy)
Domain AdditionalInfo
variable length character string, length 150
Employees ( employeeID
EmployeeID
supervisorID
SupervisorID,
NOT NULL,
222 employeeName
EmployeeName
NOT NULL,
employeeTaxNO
EmployeeTaxNumber,
employeeAddress
EmployeeAddress
employeeEmail
EmployeeEmail,
salary
EmployeeSalary
NOT NULL,
hireDate
EmployeeHireDate
NOT NULL,
additionalInfo
AdditionalInfo,
NOT NULL,
PRIMARY KEY employeeID, FOREIGN KEY supervisorID REFERENCES Employees (supervisorID) ON UPDATE CASCADE ON DELETE CASCADE);
EmployeePhone Domain PhoneNumber
variable length character string, length 20
Domain EmployeeID
variable length character string, length 10
Domain Description
variable length character string, length 150
EmployeePhone ( phoneNo
PhoneNumber
NOT NULL,
employeeID
EmployeeID
NOT NULL,
description
Description,
PRIMARY KEY phoneNO, FOREIGN KEY employeeID REFERENCES Employees (employeeID) ON UPDATE CASCADE ON DELETE CASCADE);
223 TrShift Domain TransactionShiftNum-
fixed length character string, length 8
ber Domain EmployeeID
variable length character string, length 10
Domain StartTime
date (mm/dd/yyyy hh:mm:ss)
Domain EndTime
date (mm/dd/yyyy hh:mm:ss)
Trshift ( trShiftNO
TransactionShiftNumber NOT NULL,
employeeID
EmployeeID
NOT NULL,
startTime
StartTime
NOT NULL,
endTime
EndTime
NOT NULL,
PRIMARY KEY trShiftNO, FOREIGN KEY employeeID REFERENCES Users (employeeID) ON UPDATE CASCADE ON DELETE CASCADE );
UserRole Domain EmployeeID
variable length character string, length 10
Domain RoleID
numeric value, precision 3
UserRole( employeeID
EmployeeID
NOT NULL,
roleID
RoleID
NOT NULL,
PRIMARY KEY employeeID, FOREIGN KEY employeeID REFERENCES Users (employeeID)
224 ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY roleID REFERENCES Roles (roleID) ON UPDATE CASCADE ON DELETE CASCADE);
Roles Domain RoleID
numeric value, precision 3
Domain RoleName
variable length character string, length 20
Domain Descriptiom
variable length character string, length 150
Domain RoleInitialFunction
variable length character string, length 5
Roles ( roleID
RoleID
NOT NULL,
roleName
RoleName
NOT NULL,
description
Description,
initialFunc
RoleInitialFunction
NOT NULL,
createdTime
CreatedTime
NOT NULL,
PRIMARY KEY roleID );
RoleMenu Domain RoleID
numeric value, precision 3
Domain MenuID
numeric value, precision 3
RoleMenu ( roleID
RoleID
NOT NULL,
menuID
MenuID
NOT NULL,
225 PRIMARY KEY roleID, menuID, FOREIGN KEY menuID REFERENCES Menu (menuID) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY roleID REFERENCES Roles (roleID) ON UPDATE CASCADE ON DELETE CASCADE);
Menu Domain MenuID
numeric value, precision 3
Domain MainMenuID
numeric value, precision 3
Domain MenuName
variable length character string, length 40
Domain FileName
variable length character string, length 6
Domain Version
variable length character string, length 4
Domain Description
variable length character string, length 150
Domain MenuType
single character , “F” or “M”
Menu ( menuID
MenuID
NOT NULL,
mainMenuID
MainMenuID
NOT NULL,
menuName
MenuName
NOT NULL,
fileName
FileName
NOT NULL,
version
Version
NOT NULL,
description
Description,
menuType
MenuType
NOT NULL,
226 PRIMARY KEY menuID, FOREIGN KEY mainMenuID REFERENCES Menu (menuID) ON UPDATE CASCADE ON DELETE CASCADE);
UserMenu Domain EmployeeID
variable length character string, length 10
Domain MenuID
numeric value, precision 3
UserMenu ( employeeID
EmployeeID
NOT NULL,
menuID
MenuID
NOT NULL,
PRIMARY KEY employeeID, FOREIGN KEY employeeID REFERENCES Users (employeeID) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY menuID REFERENCES Menu (menuID) ON UPDATE CASCADE ON DELETE CASCADE);
4.1.4.2
Merancang representasi dari derived data Pada tahapan ini dilakukan identifikasi atribut-atribut derived (dapat
dikalkulasi) yang sering digunakan pada transaksi berdasarkan model data logikal yang telah dirancang. Data yang diturunkan antara lain: a. total pada tabel Invoice
227 Merepresentasikan total charge pada seluruh invoice dikurangi dengan total discount seluruh invoice ditambah dengan ppn dan materai yang terhitung pada waktu tertentu. b. discValue pada tabel InvoiceDetail Merepresentasikan total charge pada seluruh invoice dikurangi dengan total discount seluruh invoice ditambah dengan ppn dan materai yang terhitung pada waktu tertentu. c. days pada tabel InvoiceDetail Merepresentasikan total hari perhitungan yang dapat dihitung dari enddate pada InvoiceDetail dikurangi calcstartDate pada Shipment 4.1.4.3 Merancang Batasan umum 1. AWBNO harus berisi 13 karakter atau 7 karakter, dengan format yang dibatasi xxx xxxx xxxx atau xxx xxxx dimana x merupakan angka (0-9) CONSTRAINT InvalidAWB CHECK (REGEXP_LIKE (awb,'^[0-9][0-9][0-9] [0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9]$') OR REGEXP_LIKE (awb,'^[0-9][0-9][0-9][0-9] [0-9][0-9][0-9]$')) 2. Tanggal endDate yang dimasukkan pada entitas InvoiceDetail tidak boleh sebelum tanggal calcStartDate pada Shipment CONSTRAINT InvalidInvoiceEndDate CHECK (enddate > (SELECT s.calcstartdate FROM shipment s, invoice i, paidshipment ps, invoicedetail id WHERE
228 ps.awbno = s.awbno AND ps.houseno = s.houseno AND ps.shipmentseq = s.shipmentseq AND ps.invoiceno = i.invoiceno AND i.invoiceno = id.invoiceno ORDER BY s.calcstartdate DESC)) 3. Tanggal startDate yang dimasukkan pada entitas CurrExchange harus lebih besar dari tanggal endDate sebelumnya CONSTRAINT InvalidCurrencyEndDate CHECK (startdate > (SELECT enddate FROM currexchange WHERE rownum = 1 ORDER BY startdate DESC)) 4. Tanggal startDate pada currency harus lebih besar dari endDate terakhirCONSTRAINT InvalidEndDate CHECK (NOT EXIST (SELECT calcstartdate FROM awb WHERE calcstartdate > SYSDATE)) 5. House harus berupa angka dan lebih kecil atau sama dengan 5 digit CONSTRAINT InvalidHouse CHECK (REGEXP_LIKE (house,’^[0-9]*$’) AND LENGTH(house) <= 5)
229 6. Nomor ID karyawan (employeeID) harus berupa angka dan lebih kecil atau sama dengan 10 digit CONSTRAINT InvalidEmployeeID CHECK
(REGEXP_LIKE
(employeeid,’^[0-9]*$’)
AND
LENGTH(employeeid) <= 5) 7. Kode mata uang (currencyCode) harus berupa huruf dan lebih kecil atau sama dengan 3 karakter CONSTRAINT InvalidCurrencyCode CHECK
(REGEXP_LIKE
(currcode,’^[a-z]*$’,i)
LENGTH(currcode) <= 3) 4.1.4.4 Merancang organisasi file dan index 4.1.4.4.1 Menganalisis transaksi Memetakan seluruh jalur Transaksi Tinjauan Administrator a.
Memasukkan data pengguna / user
b.
Memasukkan data role
c.
Memasukkan data menu
d.
Menempatkan menu ke role
e.
Menempatkan role ke pengguna / user
f.
Membuat menu favorite
g.
Memasukkan data airline
h.
Memasukkan data airport
AND
230 i.
Memasukkan data consignees
j.
Memasukkan data komoditi
k.
Memasukkan data mata uang
l.
Memasukkan data nilai tukar uang
m.
Memasukkan data metode pembayaran
n.
Memasukkan data kategori service
o.
Memasukkan data service
p.
Memasukkan data ULD
q.
Menghapus / mengubah data penguna
r.
Menghapus / mengubah menu
s.
Menghapus / mengubah data role
t.
Menghapus / mengubah data airline
u.
Menghapus / mengubah data airport
v.
Menghapus / mengubah data consignees
w.
Menghapus / mengubah data kontak consignees
x.
Menghapus / mengubah data komoditi
y.
Menghapus / mengubah data mata uang
z.
Menghapus / mengubah data nilai tukar uang
aa.
Menghapus / mengubah data metode pembayaran
bb.
Menghapus / mengubah data kategori service
cc.
Menghapus / mengubah data service
dd.
Menghapus / mengubah data ULD
ee.
Melihat data pengguna
231 ff.
Melihat data menu
gg.
Melihat data role
hh.
Melihat penempatan menu ke role
ii.
Melihat penempatan role ke pengguna
jj.
Melihat data airline
kk.
Melihat data airport
ll.
Melihat data consignees
mm.
Melihat data komoditi
nn.
Melihat data mata uang
oo.
Melihat data nilai tukar uang
pp.
Melihat data metode pembayaran
qq.
Melihat data kategori service
rr.
Melihat data service
ss.
Melihat data ULD
Tinjauan Staff Acceptance tt.
Membuat menu favorite
uu.
Memasukkan data AWB
vv.
Memasukkan data jam kerja
ww.
Mengubah data AWB
xx.
Melihat data AWB
yy.
Melihat data jam kerja
Tinjauan Kasir zz.
Membuat menu favorite
232 aaa.
Membuat dan memasukkan data kwitansi
bbb.
Membuat dan memasukkan data kwitansi tambah bayar
ccc.
Memasukkan data jam kerja
ddd.
Melakukan pembatalan kwitansi
eee.
Melihat data kwitansi
fff.
Melihat data jam kerja
Tinjauan Staff Document ggg.
Membuat menu favorite
hhh.
Memasukkan data manifest
ooo.
Membuat dan memasukkan Notice OF Arrifal
ppp.
Membuat dan memasukkan Document Delivery Order
qqq.
Membuat dan memasukkan Cargo Delivery Order
lll.
Memasukkan data jam kerja
mmm. Mengubah/menghapus data manifest nnn.
Mengubah data partshipment AWB
ooo.
Menampilkan laporan manifest
ppp.
Melihat data jam kerja
Tinjauan Manager Cargo www. Menampilkan laporan rekapitulasi kwitansi berdasarkan modul ekspor,impor, atau domestik rrr.
Menampilkan laporan rekapitulasi kwitansi PT Cardindo Citra Buana berdasarkan modul ekspor,impor, atau domestik
sss.
Menampilkan laporan pembatalan kwitansi
233 ttt.
Melihat data saldo deposit consignee
Transaksi/Relasi
a I
R
b U
D
I
R
c U
D
I
R
Consignees ConsigneePhones Account TrDeposit AWB Shipment Airport Flight Airlines Commodities Documents ULD ULDShipment PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency Services ServiceCategrories Users Employees EmployeesPhones
X X X
X
X
U
D
234 TrShift UserRole Roles
X
RoleMenu Menu
X
UserMenu I = Insert, R = Read, U = Update, D = Delete Tabel 4.7 Tabel Transaksi
d
e
f
Transaksi/Relasi I Consignees ConsigneePhones Account TrDeposit AWB Shipment Airport Flight Airlines Commodities Documents ULD ULDShipment PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency
R
U
D
I
R
U
D
I
R
U
D
235 Services ServiceCategrories Users
X
X
X
Employees EmployeesPhones TrShift UserRole
X
Roles
X
RoleMenu
X
X
Menu
X
X
UserMenu
X
I = Insert, R = Read, U = Update, D = Delete Tabel 4.8 Tabel Transaksi
g
Transaksi/Relasi I
R
h U
D
I
R
i U
D
I
Consignees
X
ConsigneePhones
X
Account TrDeposit AWB Shipment Airport
X
Flight Airlines Commodities Documents ULD ULDShipment PayMethods Invoice
X
R
U
D
236 InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency Services ServiceCategrories Users
X
X
X
Employees EmployeesPhones TrShift UserRole Roles RoleMenu Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.9 Tabel Transaksi
j
k
l
Transaksi/Relasi I Consignees ConsigneePhones Account TrDeposit AWB Shipment Airport Flight Airlines Commodities
X
R
U
D
I
R
U
D
I
R
U
D
237 Documents ULD ULDShipment PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange
X
Currency
X
Services ServiceCategrories Users
X
X
X
Employees EmployeesPhones TrShift UserRole Roles RoleMenu Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.10 Tabel Transaksi
m
n
o
Transaksi/Relasi I Consignees ConsigneePhones Account TrDeposit AWB
R
U
D
I
R
U
D
I
R
U
D
238 Shipment Airport Flight Airlines Commodities Documents ULD ULDShipment PayMethods
X
Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency Services
X
ServiceCategrories
X
Users
X
X
X
Employees EmployeesPhones TrShift UserRole Roles RoleMenu Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.11 Tabel Transaksi p
q
r
Transaksi/Relasi I Consignees ConsigneePhones
R
U
D
I
R
U
D
I
R
U
D
239 Account TrDeposit AWB Shipment Airport Flight Airlines Commodities Documents ULD
X
ULDShipment PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency Services ServiceCategrories Users
X
X
X
X
X
Employees EmployeesPhones TrShift UserRole Roles RoleMenu
X
X
Menu
X
X
UserMenu
X
X
I = Insert, R = Read, U = Update, D = Delete Tabel 4.12 Tabel Transaksi
240 s
t
u
Transaksi/Relasi I
R
U
D
I
R
U
D
I
R
U
D
X
X
Consignees ConsigneePhones Account TrDeposit AWB Shipment Airport Flight Airlines
X
X
Commodities Documents ULD ULDShipment PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency Services ServiceCategrories Users
X
X
Employees EmployeesPhones TrShift UserRole
X
X
Roles
X
X
RoleMenu
X
X
Menu
X
241 UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.13 Tabel Transaksi
v
w
x
Transaksi/Relasi I
R
Consignees
U
D
X
X
I
R
ConsigneePhones
U
D
X
X
I
R
U
D
X
X
Account TrDeposit AWB Shipment Airport Flight Airlines Commodities Documents ULD ULDShipment PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency Services ServiceCategrories Users Employees EmployeesPhones TrShift
X
X
X
242 UserRole Roles RoleMenu Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.14 Tabel Transaksi
y
z
aa
Transaksi/Relasi I
R
U
D
I
R
U
D
I
R
U
D
X
X
Consignees ConsigneePhones Account TrDeposit AWB Shipment Airport Flight Airlines Commodities Documents ULD ULDShipment PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency Services
X X
X
X
243 ServiceCategrories Users
X
X
X
Employees EmployeesPhones TrShift UserRole Roles RoleMenu Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.15 Tabel Transaksi
bb
cc
dd
Transaksi/Relasi I
R
U
D
I
R
U
D
I
R
U
D
X
X
Consignees ConsigneePhones Account TrDeposit AWB Shipment Airport Flight Airlines Commodities Documents ULD ULDShipment PayMethods Invoice InvoiceDetail
244 CCBInvoice PaidShipment CurrExchange Currency Services
X
ServiceCategrories
X
Users
X
X
X
X
X
Employees EmployeesPhones TrShift UserRole Roles RoleMenu Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.16 Tabel Transaksi
ee Transaksi/Relasi Consignees ConsigneePhones Account TrDeposit AWB Shipment Airport Flight Airlines Commodities Documents
I
R
ff U
D
I
R
gg U
D
I
R
U
D
245 ULD ULDShipment PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency Services ServiceCategrories Users
X
Employees
X
EmployeesPhones
X
X
X
TrShift UserRole Roles
X
RoleMenu Menu
X
UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.17 Tabel Transaksi
hh
Transaksi/Relasi I Consignees ConsigneePhones Account TrDeposit AWB Shipment
R
U
ii D
I
R
jj U
D
I
R
U
D
246 Airport Flight Airlines
X
Commodities Documents ULD ULDShipment PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency Services ServiceCategrories Users
X
X
X
Employees EmployeesPhones TrShift UserRole
X
Roles RoleMenu
X
Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.18 Tabel Transaksi
kk
ll
mm
Transaksi/Relasi I Consignees
R
U
D
I
R X
U
D
I
R
U
D
247 ConsigneePhones
X
Account TrDeposit AWB Shipment Airport
X
Flight Airlines Commodities
X
Documents ULD ULDShipment PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency Services ServiceCategrories Users
X
X
Employees EmployeesPhones TrShift UserRole Roles RoleMenu Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.19 Tabel Transaksi
X
248
nn
oo
pp
Transaksi/Relasi I
R
U
D
I
R
U
D
I
R
Consignees ConsigneePhones Account TrDeposit AWB Shipment Airport Flight Airlines Commodities Documents ULD ULDShipment PayMethods
X
Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency
X X
Services ServiceCategrories Users Employees EmployeesPhones TrShift UserRole Roles RoleMenu
X
X
X
U
D
249 Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.20 Tabel Transaksi
qq
Transaksi/Relasi I
R
U
rr D
I
R
ss U
D
I
R
Consignees ConsigneePhones Account TrDeposit AWB Shipment Airport Flight Airlines Commodities Documents ULD ULDShipment
X
PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency Services
X
ServiceCategrories
X
Users
X
Employees
X
X
U
D
250 EmployeesPhones TrShift UserRole Roles RoleMenu Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.21 Tabel Transaksi
tt
uu
vv
Transaksi/Relasi I
R
U
D
I
Consignees
R X
ConsigneePhones ConsigneeRole
X
Account TrDeposit AWB
X
Shipment
X
Airport
X
Flights
X
Airlines
X
Commodities
X
Documents ULD ULDShipment PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment
U
D
I
R
U
D
251 CurrExchange Currency Services ServiceCategrories Users
X
X
X
Employees EmployeesPhones TrShift
X
UserRole Roles RoleMenu Menu
X
UserMenu
X
I = Insert, R = Read, U = Update, D = Delete Tabel 4.22 Tabel Transaksi
ww Transaksi/Relasi Consignees
I
R
U
X
xx D
I
R X
ConsigneePhones ConsigneeRole
X
Account TrDeposit AWB
X
Shipment
X
X
Airport
X
X
Flight
X
X
Airlines
X
X
Commodities
X
X
Documents ULD
X
X
yy U
D
I
R
U
D
252 ULDShipment PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency Services ServiceCategrories Users
X
X
X
Employees EmployeesPhones TrShift
X
UserRole Roles RoleMenu Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.23 Tabel Transaksi
zz
aaa
bbb
Transaksi/Relasi I
R
U
D
I
R
U
D
I
R
Consignees ConsigneePhones Account
X
X
TrDeposit
X
X
AWB
X
X
Shipment
X
X
Airport
U
D
253 Flight Airlines Commodities Documents ULD ULDShipment PayMethods
X
X
Invoice
X
X
X
InvoiceDetail
X
X
X
CCBInvoice
X
X
PaidShipment
X
X
X
CurrExchange
X
X
Currency
X
X
Services
X
X
ServiceCategrories
X
X
X
X
Users
X
Employees EmployeesPhones TrShift UserRole Roles RoleMenu Menu
X
UserMenu
X
I = Insert, R = Read, U = Update, D = Delete Tabel 4.24 Tabel Transaksi
ccc Transaksi/Relasi Consignees ConsigneePhones
I
R
U
ddd D
I
R
U
eee D
I
R
U
D
254 Account TrDeposit AWB
X
Shipment
X
Airport Flight Airlines Commodities Documents ULD ULDShipment PayMethods Invoice
X
X
X
InvoiceDetail
X
CCBInvoice
X
PaidShipment
X
CurrExchange Currency Services ServiceCategrories Users
X
Employees EmployeesPhones TrShift
X
UserRole Roles RoleMenu Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.25 Tabel Transaksi
255 fff
ggg
hhh
Transaksi/Relasi I
R
U
D
I
R
U
D
I
R
Consignees ConsigneePhones Account TrDeposit
X
AWB
X
Shipment Airport Flight Airlines Commodities Documents ULD
X
ULDShipment
X
PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency Services ServiceCategrories Users
X
X
Employees EmployeesPhones TrShift
X
UserRole Roles RoleMenu Menu
X
X
U
D
256 UserMenu
X
I = Insert, R = Read, U = Update, D = Delete Tabel 4.26 Tabel Transaksi
iii
jjj
kkk
Transaksi/Relasi I
R
U
D
I
R
U
D
I
R
Consignees ConsigneePhones Account TrDeposit AWB
X
X
X
Shipment Airport Flight Airlines Commodities Documents
X
X
X
ULD ULDShipment PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency Services ServiceCategrories Users Employees EmployeesPhones
X
X
X
U
D
257 TrShift UserRole Roles RoleMenu Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.27 Tabel Transaksi
lll Transaksi/Relasi
I
R
mmm U
D
I
R
U
nnn D
I
R
U
Consignees ConsigneePhones Account TrDeposit AWB
X
X
Shipment
X
X
ULD
X
X
ULDShipment
X
Airport Flight Airlines Commodities Documents
PayMethods Invoice InvoiceDetail CCBInvoice PaidShipment CurrExchange Currency
X
X
X
D
258 Services ServiceCategrories Users
X
Employees EmployeesPhones TrShift
X
UserRole Roles RoleMenu Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.28 Tabel Transaksi
ooo
Transaksi/Relasi I
R
U
ppp D
I
R
U
qqq D
I
R
Consignees ConsigneePhones Account TrDeposit AWB
X
X
Shipment
X
X
Airport Flight
X
Airlines Commodities Documents ULD
X
ULDShipment
X
PayMethods Invoice
X
U
D
259 InvoiceDetail
X
CCBInvoice PaidShipment CurrExchange Currency Services
X
ServiceCategrories Users
X
Employees EmployeesPhones TrShift
X
UserRole Roles RoleMenu Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.29 Tabel Transaksi
rrr
sss
ttt
Transaksi/Relasi I
R
U
D
I
R
U
D
I
R
Consignees ConsigneePhones Account
X
TrDeposit
X
AWB
X
Shipment
X
Airport Flight Airlines Commodities
X
U
D
260 Documents ULD ULDShipment PayMethods Invoice
X
X
InvoiceDetail CCBInvoice
X
PaidShipment
X
CurrExchange Currency Services ServiceCategrories Users Employees EmployeesPhones TrShift UserRole Roles RoleMenu Menu UserMenu
I = Insert, R = Read, U = Update, D = Delete Tabel 4.30 Tabel Transaksi 4.1.4.4.2 Memilih Organisasi File Tahap Pemilihan organisasi file tidak dilakukan karena DBMS yang digunakan (Oracle Database 10g) memiliki manajemen organisasi file sendiri.
261 4.1.4.4.3 Memilih Index Pada tahap ini dilakukan pemilihan index untuk meningkatkan performa sistem. Tipe index yang digunakan adalah primary index agar data terurut berdasarkan atribut primary key sebagai berikut: Entitas
Atribut
Nama Index
Acoounts
accountID
AccountPrimaryInd
Airlines
airlinePrefix
AirlinesPrimaryInd
Airports
airportCode
AirportsPrimaryInd
AWB
AWBNO
AWBPrimaryInd
houseNO CCBInvoice
invoiceNO
CCBInvoicePrimaryInd
Consignees
phoneNO
ConsigneePhonesPrimaryInd
Consignees
consigneeID
ConsigneesPrimaryInd
CurrExchange
currExNO
CurrExchangePrimaryInd
Documents
docNO
DocumentsPrimaryInd
EmployeePhones
phoneNO
EmployeePhonesPrimaryInd
Employees
employeeID
EmployeesPrimaryInd
Flights
flightNO
FlightsPrimaryInd
Invoice
invoiceNO
InvoicePrimaryInd
InvoiceDetail
invoiceNO
InvoiceDetailPrimaryInd
serviceSeq PaidShipment
invoiceNO
PaidShipmentPrimaryInd
shipmentSeq AWBNO houseNO Services
serviceID
ServicesPrimaryInd
Shipment
AWBNO
ShipmentPrimaryInd
houseNO shipmentSeq
262 TrDeposit
trnNO
TrDepositPrimaryInd
TrShift
trShiftNO
TrShiftPrimaryInd
ULD
ULDNO
ULDPrimaryInd
ULDShipment
AWBNO
ULDShipmentPrimaryInd
houseNO shipmentSeq ULDNO UserMenu
employeeID
UserMenuPrimaryInd
menuID UserRole
employeeID
UserRolePrimaryInd
roleID Users
employeeID
UsersPrimaryInd
Tabel 4.31 Tabel Primary Index 4.1.4.4.4 Memperkirakan Kebutuhan Disk space Pada tahap ini dilakukan estimasi jumlah disk space yang diperlukan dalam implementasi basis data. Nama Entitas Consignees
Atribut consigneeID
Deskripsi ID consignee secara
yang Number
unik
Ukuran 7
meng-
identifikasi consignee
Tipe Data
se-tiap (shipper,
agent, atau penerima barang) consigneeName
Nama consignee
consgineeTaxNo
Nomor perusahaan (consignee)
Varchar
50
NPWP Varchar
15
pelanggan
263 consigneeAddress
Alamat
perusahaan Varchar
100
consignee consigneePostalCode
Kode pos perusahaan Varchar
5
consignee consigneeCity
Kota
perusahaan Varchar
50
perusahaan Varchar
20
perusahaan Varchar
50
consignee consigneeState
Provinsi consignee
consigneeCountry
Negara consignee
(Default
value = ’ Indonesia’) additionalInfo
Keterangan tambahan
Varchar
100
totalRowSize = 3 + ∑ (6 + 51 + 16 + 101+ 6 + 51 + 21 + 51 + 101) = 3 + 404 = 407 noRowsPerBlock = ROUNDDOWN (7292/407) = 17 Jumlah data Consignee yang dimiliki saat ini adalah = 182.000 Consignee Total kebutuhan baris dalam 1 tahun adalah = 182.000 + 350 = 182.350 Total kebutuhan blok data adalah = 182.350 / 17 = 10.727 Maka, total kebutuhan disk space adalah 10128 * 8192 = 85.816 KB
Tabel 4.32 Tabel Estimasi Penggunaan Kapasitas pada Consignees
Nama Entitas ConsigneeP
Atribut
Deskripsi
phoneNo
Nomor Telepon
consigneeID
ID
Tipe Data
Ukuran
Varchar
25
hone perusahaan Number
7
consignee description
Keterangan
totalRowSize = 3 + ∑ (26 + 6 + 151) = 3 + 183 = 186 noRowsPerBlock = ROUNDDOWN (7292/186) = 39
Varchar
150
264 Jumlah data Consignee yang dimiliki saat ini adalah = 182.000 Consignee Total kebutuhan baris dalam 1 tahun adalah = 182.000 + 350 = 182.350 Total kebutuhan blok data adalah = 182.350 / 39 = 4.676 Maka, total kebutuhan disk space adalah 4.676 * 8192 = 37.408 KB
Tabel 4.33 Tabel Estimasi Penggunaan Kapasitas pada ConsigneesPhone
Nama
Atribut
Entitas Account
Deskripsi
Tipe Data
Ukuran
accountID
Kode account
Varchar
10
consigneeID
Kode consignee
Number
7
accountName
Nama account
Varchar
50
balance
Balance
Number
15,2
description
Keterangan
Varchar
150
totalRowSize = 3 + ∑ (11 + 6 + 51 + 10 + 151 ) = 3 + 229 = 232 noRowsPerBlock = ROUNDDOWN (7292/232) = 31 Jumlah data Account yang dimiliki saat ini adalah = 50 Account Setiap tahun, jumlah Account yang bertambah sekitar = 3 Account Total kebutuhan baris dalam 1 tahun adalah = 50 + 3 = 53 Total kebutuhan blok data adalah = 53 / 31 = 2 Maka, total kebutuhan disk space adalah 2 * 8192 = 16 KB
Tabel 4.34 Tabel Estimasi Penggunaan Kapasitas pada Account
Nama
Atribut
Entitas TrDeposit
Deskripsi
Tipe Data
Ukuran
trnNo
Nomor transaksi
Varchar
8
accountID
Kode account
Varchar
10
employeeID
Kode karyawan
Varchar
10
265 value
Nilai transaksi
Number
15,2
depositTime
Tanggal transaksi
Date
7
description
Keterangan transaksi
Varchar
150
totalRowSize = 3 + ∑ (9 + 11 + 11 + 10 + 8 + 150) = 3 + 199 = 202 noRowsPerBlock = ROUNDDOWN (7292/202) = 36 Setiap hari, jumlah transaksi deposit yang terjadi sekitar = 5 TrDeposit Total kebutuhan baris dalam 1 tahun adalah = 5*365 = 1.825 Total kebutuhan blok data adalah = 1.825 / 36 = 51 Maka, total kebutuhan disk space adalah 51 * 8192 = 408 KB
Tabel 4.35 Tabel Estimasi Penggunaan Kapasitas pada TrDeposit
Nama
Atribut
Entitas AWB
Deskripsi
Tipe Data
Ukuran
AWBNo
Nomor AWB
Varchar
13
houseNo
Nomor house
Varchar
5
employeeID
Kode karyawan
Varchar
10
commodityID
Kode komoditi
Number
5
airportCode
Kode airport
Char
3
agentID
Kode agent
Number
7
consigneeID
Kode consignee
Number
7
additionalInfo
Keterangan tambahan
Varchar
150
type
Tipe AWB
Char
4
createdTime
Tanggal pembuatan
Date
7
totalRowSize = 3 + ∑ (14 + 6 + 11 + 5 + 4 + 6 + 6 + 151 + 4 + 8) = 3 + 215=218 noRowsPerBlock = ROUNDDOWN (7292/218) = 33 Setiap hari, jumlah AWB yang di data sekitar = 1.000 AWB Total kebutuhan baris dalam 1 tahun adalah = 1.000*365 = 365.000 Total kebutuhan blok data adalah = 365.000 / 33 = 11.061
266 Maka, total kebutuhan disk space adalah 11.061 * 8192 = 88.488 KB
Tabel 4.36 Tabel Estimasi Penggunaan Kapasitas pada AWB
ama
Atribut
Entitas Shipment
Deskripsi
Tipe Data
Ukuran
shipmentSeq
Urutan Shipment
Number
4
AWBNO
Nomor AWB
Varchar
13
houseNo
Nomor house
Varchar
5
flightNo
Nomor penerbangan
Varchar
8
calcStartDate
Perhitungan
tanggal Date
7
awal weight
Berat
Number
9,2
volume
Volume
Number
9,2
pieces
Pieces
Number
7
flightDate
Flight date
Date
8
description
Keterangan
Varchar
150
totalRowSize = 3 + ∑ (4 + 14 + 6 + 9 + 8 + 7 + 7 + 6 + 8 + 150) = 3 + 219 = 222 noRowsPerBlock = ROUNDDOWN (7292/222) = 32 Setiap hari, jumlah data Shipment yang di data sekitar = 1.000 Shipment Total kebutuhan baris dalam 1 tahun adalah = 1.000*365 = 365.000 Total kebutuhan blok data adalah = 365.000 / 32 = 11.407 Maka, total kebutuhan disk space adalah 11.407 * 8192 = 91.256 KB
Tabel 4.37 Tabel Estimasi Penggunaan Kapasitas pada Shipment
Nama Entitas Airports
Atribut airportCode
Deskripsi Kode bandara
Tipe Data
Ukuran
Char
3
267 airportName
Nama bandara
Varchar
50
airportAddress
Alamat bandara
Varchar
50
airportCity
Kota bandara
Varchar
50
airportCountry
Negara bandara
Varchar
50
totalRowSize = 3 + ∑ (4 + 51 + 51 + 51 + 51 ) = 3 + 208 = 211 noRowsPerBlock = ROUNDDOWN (7292/211) = 34 Jumlah data Airports yang dimiliki saat ini adalah = 10.400 Airports Total kebutuhan baris adalah = 10.400 baris Total kebutuhan blok data adalah = 10.400 / 34 = 306 Maka, total kebutuhan disk space adalah 306 * 8192 = 2.448 KB
Tabel 4.38 Tabel Estimasi Penggunaan Kapasitas pada Airports
Nama Entitas Flights
Atribut
Deskripsi
Tipe Data
Ukuran
Varchar
8
flightNo
Nomor penerbangan
airlinePrefix
Nama awal maskapai Char
3
pesawat (airline) additionalInfo
Keterangan tambahan
Varchar
150
totalRowSize = 3 + ∑ (9 + 4 + 151) = 3 + 164 = 167 noRowsPerBlock = ROUNDDOWN (7292/167) = 43 Jumlah data Flights yang dimiliki saat ini adalah = 40.000 Flights Total kebutuhan baris adalah = 40.000 baris Total kebutuhan blok data adalah = 40.000 / 43 = 931 Maka, total kebutuhan disk space adalah 931 * 8192 = 7.448 KB
Tabel 4.39 Tabel Estimasi Penggunaan Kapasitas pada Flights
Nama
Atribut
Deskripsi
Tipe Data
Ukuran
268 Entitas Airlines
airlinePrefix
Prefix
maskapai Char
3
pesawat (airline) airlineName
Nama
maskapai Varchar
50
pesawat (airline) airlineTaxNo
Nomor
pajak Varchar
maskapai
15
pesawat
(airline) airlineAddress
Alamat
maskapai Varchar
100
pesawat (airline) additionalInfo
Keterangan tambahan
airlineCountry
Negara
Varchar
maskapai Varchar
150 30
airline totalRowSize = 3 + ∑ (4 + 51 + 16 + 101 + 151 + 31) = 3 + 354 = 357 noRowsPerBlock = ROUNDDOWN (7292/357) = 20 Jumlah data Airlines yang dimiliki saat ini adalah = 400 Airlines Total kebutuhan baris adalah = 400 baris Total kebutuhan blok data adalah = 400 / 20 = 20 Maka, total kebutuhan disk space adalah 20 * 8192 = 160 KB
Tabel 4.40 Tabel Estimasi Penggunaan Kapasitas pada Airlines
Nama
Atribut
Entitas Commodities
Deskripsi
Tipe Data
Ukuran
commodityID
Kode komoditi
Number
5
NOG
Nature of goods
Varchar
50
description
Keterangan
Varchar
150
initialFunc
Initial function
Varchar
5
totalRowSize = 3 + ∑ (5 + 50 + 150 + 5) = 3 + 210 = 213 noRowsPerBlock = ROUNDDOWN (7292/213) = 34
269 Jumlah data Commodities yang dimiliki saat ini adalah = 80 Commodities Total kebutuhan baris adalah = 80 baris Total kebutuhan blok data adalah = 80 / 34 = 3 Maka, total kebutuhan disk space adalah 3 * 8192 = 24 KB
Tabel 4.41 Tabel Estimasi Penggunaan Kapasitas pada Commodities
Nama
Atribut
Entitas Documents
Deskripsi
Tipe Data
Ukuran
AWBNo
Nomor AWB
Varchar
13
DOCNo
Nomor dokumen
Char
10
houseNo
Nomor House
Varchar
5
employeeID
Nomor
pekerja Varchar
10
(employee) additionalInfo
Keterangan tambahan
Varchar
150
type
Tipe dokumen
Char
3
createdTime
Tanggal pembuatan
Date
7
totalRowSize = 3 + ∑ (14 + 11 + 6 + 11 + 151 + 4 + 8) = 3 + 205 = 208 noRowsPerBlock = ROUNDDOWN (7292/208) = 35 Setiap Hari, data Documents yang didata sekitar = 2.500 Total kebutuhan baris dalam 1 tahun adalah = 2.500 * 365 = 912.500 baris Total kebutuhan blok data adalah = 912.500 / 35 = 26.072 Maka, total kebutuhan disk space adalah 26.072 * 8192 = 208.576 KB
Tabel 4.42 Tabel Estimasi Penggunaan Kapasitas pada Documents
Nama Entitas ULD
Atribut ULDNO
Deskripsi Nomor ULD
Tipe Data
Ukuran
Char
12
270 airlinePrefix
Kode awal maskapai Char
3
pesawat ULDType
Tipe ULD
Varchar
35
description
Keterangan
Varchar
150
totalRowSize = 3 + ∑ (13 + 4 + 36 + 151) = 3 + 204 = 207 noRowsPerBlock = ROUNDDOWN (7292/207) = 35 Jumlah data ULD yang dimiliki saat ini adalah = 16.620 ULD Total kebutuhan baris adalah = 16.620 baris Total kebutuhan blok data adalah = 16.620 / 35 = 475 Maka, total kebutuhan disk space adalah 475 * 8192 = 3.800 KB
Tabel 4.43 Tabel Estimasi Penggunaan Kapasitas pada ULD
Nama Entitas ULDShipment
Atribut
Deskripsi
Tipe Data
Ukuran
AWBNO
Nomor AWB
Varchar
13
houseNo
Nomor house
Varchar
5
ShipmentSeq
Urutan shipment
Number
4
ULDNO
Nomor ULD
Char
10
AdditionalInfo
Keterangan tambahan
Varchar
150
totalRowSize = 3 + ∑ (14 + 6 + 4 + 11 + 151) = 3 + 186 = 189 noRowsPerBlock = ROUNDDOWN (7292/189) = 39 Setiap hari, jumlah data ULDShipment yang di data sekitar = 1.000 ULDShipment Total kebutuhan baris dalam 1 tahun adalah = 1.000*365 = 365.000 Total kebutuhan blok data adalah = 365.000 / 39 = 9.359 Maka, total kebutuhan disk space adalah 9.359 * 8192 = 74.872 KB
Tabel 4.44 Tabel Estimasi Penggunaan Kapasitas pada ULDShipment
271 Nama Entitas PayMethods
Atribut PayMethodCode
Deskripsi ID
metode
Tipe Data pem- Char
Ukuran 3
bayaran Description
keterangan
Varchar
150
AdditionalInfo
keterangan tambahan
Varchar
150
totalRowSize = 3 + ∑ (4 + 151 + 151) = 3 + 306 = 309 noRowsPerBlock = ROUNDDOWN (7292/309) = 23 Jumlah data PayMethods yang dimiliki saat ini adalah = 4 PayMethod Total kebutuhan baris adalah = 4 baris Total kebutuhan blok data adalah = 4 / 23 = 1 Maka, total kebutuhan disk space adalah 1 * 8192 = 8 KB
Tabel 4.45 Tabel Estimasi Penggunaan Kapasitas pada PayMethods
Nama Entitas PaidShipment
Atribut
Deskripsi
Tipe Data
Ukuran
InvoiceNo
Nomor invoice
Char
10
ShipmentSeq
Urutan Shipment
Number
4
AWBNo
Nomor AWB
Varchar
13
houseNo
Nomor house
Varchar
5
totalRowSize = 3 + ∑ (11 + 4 + 14 + 6) = 3 + 35 = 38 noRowsPerBlock = ROUNDDOWN (7292/38) = 191 Setiap hari, jumlah data PaidShipment yang di data sekitar = 1.000 PaidShipment Total kebutuhan baris dalam 1 tahun adalah = 1.000*365 = 365.000 Total kebutuhan blok data adalah = 365.000 / 191 = 1.911 Maka, total kebutuhan disk space adalah 1.911 * 8192 = 15.288 KB
Tabel 4.46 Tabel Estimasi Penggunaan Kapasitas pada PaidShipment
272 Nama
Atribut
Entitas Invoice
Deskripsi
Tipe Data
Ukuran
Char
10
invoiceNo
Nomor invoice
payMethodCode
Kode metode pem- Char
3
bayaran accountID
Kode account
Varchar
10
employeeID
Kode employee
Varchar
10
status
Status invoice
Varchar
5
stampDuty
Materai
Number
9,2
taxRate
Tax rate
Number
9,2
allInAmount
All in amount
Number
15,2
truckingCharge
Biaya angkut
Number
9,2
additionalInfo
Keterangan tambahan
Varchar
150
payDate
Tanggal bayar
Date
7
createdTime
Tanggal pembuatan
Date
7
total
Total pembayaran
Number
9,2
totalRowSize = 3 + ∑ (11 + 4 + 11 + 11 + 6 + 7 + 7 + 10 + 7 + 151 + 8 + 8 + 7) = 3 + 248 = 251 noRowsPerBlock = ROUNDDOWN (7292/251) = 29 Setiap hari, jumlah data Invoice yang di data sekitar = 1.000 Invoice Total kebutuhan baris dalam 1 tahun adalah = 1.000*365 = 365.000 Total kebutuhan blok data adalah = 365.000 / 29 = 12.587 Maka, total kebutuhan disk space adalah 12.587 * 8192 = 100.696 KB
Tabel 4.47 Tabel Estimasi Penggunaan Kapasitas pada Invoice
273 Nama
Atribut
Entitas InvoiceDetail
Deskripsi
Tipe Data
Ukuran
invoiceNO
Nomor invoice
Char
10
serviceSeq
Service sequence
Number
4
serviceID
Service ID
Number
3
charge
Charge
Number
15,2
discount
Discount
Number
7,2
discountDescription
Keterangan discount
Varchar
150
startDate
Tanggal awal
Date
7
endDate
Tanggal akhir
Date
7
chgqty
Charge weight
Number
9,2
days
Jumlah
Number
4
discValue
Jumlah diskon
Number
15,2
attribute
Atribut
Varchar
150
totalRowSize = 3 + ∑ (11 + 4 + 4 + 10 + 6 + 151 + 8 + 8 + 7 + 4 + 10 +151 ) = 3 + 374 = 377 noRowsPerBlock = ROUNDDOWN (7292/377) = 19 Setiap hari, jumlah data InvoiceDetail yang di data sekitar = 3.000 InvoiceDetail Total kebutuhan baris dalam 1 tahun adalah = 3.000*365 = 1.095.000 Total kebutuhan blok data adalah = 1.095.000 / 19 = 57.632 Maka, total kebutuhan disk space adalah 57.632 * 8192 = 461.056 KB
Tabel 4.48 Tabel Estimasi Penggunaan Kapasitas pada InvoiceDetail
Nama Entitas CCBInvoice
Atribut
Deskripsi
Tipe Data
Ukuran
InvoiceNO
Nomor invoice
Char
10
CCBDue
CCB due
Number
9,2
CCBStampDuty
Materai CCB
Number
9,2