Matakuliah
Tahun
: Konsep object-oriented
: 2009
DEALING WITH PERSISTANCE DATA
Pertemuan 16
Dealing with Persistance Data
Problem yang ada di persistensi data
•
•
Yang dimaksud dengan persistensi data adalah
keberadaan data setelah program yang menciptakan
data tersebut selesai di eksekusi
Problem tersebut dapat diselesaikan dengan berbagai
cara:
1. Input data setiap program dieksekusi
2. Tulis data sebagai bagian dari code program;
3. Buat data kedalam database
• Contoh dibawah ini adalah cara yang kedua
{
knownCard = new Card[8]; // assign memory for valid cards
// add 6 staff cards
knownCard[0] = new StaffCard(“Fred”,”Sales”,”17-11-1999”,1);
knownCard[1] = new StaffCard(“Sue”,”Sales”,”21-03-2001”,2);
knownCard[2] = new StaffCard(“Frank”,”Research”,”03-06-2000”,3);
knownCard[3] = new StaffCard(“Mary”,”Testing”,”29-02-2000”,4);
knownCard[4] = new StaffCard(“Bill”,”Research”,”05-12-2000”,5);
knownCard[5] = new StaffCard(“Jill”,”Testing”,”13-01-2000”);
// add 2 visitor card
knownCard[6] = new VisitorCard();
knownCard[7] = new VisitorCard();
}
• Menulis data kedalam program mempunyai kekurangan
– Ketika daftar kartu perlu diupdate
– Ketika user yang menggunakan sistem mempunyai kemampuan
untuk akses dan memodifikasi program.
Perbedaan tipe database
• Object oriented database VS relational database
Microsoft Access
• Sebuah contoh relational database
• Tables: Sebuah bagian dari database untuk menyimpan
data, disamping itu ada beberapa komponen lain di
Microsoft Access selain table yaitu queries, form,
reports, semuanya tergantung kepada data/table
didalam database.
• Query adalah suatu mekanisme untuk melihat isi
database beradasarkan kondisi tertentu. Data didalam
query tidak dapat diupdate.
Small table of customer in access database
CustNo
Name
FirstName
Street
Town
PostCode
PhoneNo
1
Leary
John
14 High S
Hansford
SG74DG
1231212
2
Trip
Christ
2 Long A
Boxeth
SG74DF
2334553
3
Jones
Ellen
67 Bow rd
Hansford
SG54DH
4545454
4
Brown
Lisa
124 High
Hansford
SG54D7
4445555
5
James
Bob
21 Park
Boxeth
SG74D8
4335454
Result of a query requesting details of customer who live in hansford
CustNo
Name
FirstName
Street
Town
PostCode
PhoneNo
1
Leary
John
14 High S
Hansford
SG74DG
1231212
3
Jones
Ellen
67 Bow rd
Hansford
SG54DH
4545454
4
Brown
Lisa
124 High
Hansford
SG54D7
4445555
• Form: Sebuah table adalah bagian
terpernting dari database tetapi
table tidak user friendly ketika
ingin dilihat dan dimanipulasi
datanya. Form memberikan
tampilan yang menarik kelayar
dan user friendly. Dan
memberikan akses ke data untuk
ditampilkan, ditambah dan diubah
Implementasi Model Object Oriented
• Mengkonversi sebuah class diagram menjadi
sebuah/beberapa tables
Konversi sebuah class diagram menjadi
sebuah/beberapa table
• Beberapa penjelasan sebagai panduan dalam
mengkonversi sebuah class diagram menjadi table-table,
akan dijelaskan dengan beberapa contoh
•
Dapat dilihat dari diagram ini a greeting card bisa terdapat didalam 1
atau banyak order, atau tidak dipesan sama sekali. Dan sebuah order
harus ada pesanan minimal sebuah kartu; Sebuah pesanan hanya
dimiliki oleh seorang customer, tetapi seorang customer dapat memiliki
beberapa pesanan sekaligus, dalam system ini ada dua tipe customer
yaitu individual dan wholesale(perusahan)
Customer
1
1..*
Order
0..*
1..*
Individual
Wholesale
GreetingCard
Individual classes
• Dasar mengkonversi class diagram kedalam bentuk
sekumpulan table. Adalah sebuah class dapat dijadikan
satu atau lebih table. Perlu ditambahnya sebuah key
untuk menghubungkannya..
• Operasi tidak dimasukkan kedalam tabel.
GreetingsCard
Name
Size
Unit prize
Message
Picture
The greetingsCard class
can implemented into table
like this
GreetingsCard
CardID
CardNama
CardSize
UnitPrize
Message
Pictutre
1
Forgot again
6x4
1.00
Don’t Forget
Forget.bmp
2
The Camp
6x4
1.00
Go Champ
Champ.bmp
3
Waves
6x6
2.00
Great Waves
waves.bmp
4
Mona Lisa
6x6
1.00
ML1.bmp
5
Mona Lisa
6x6
2.00
ML2.bmp
6
Miss u
6x6
1.00
Miss U Much
MissU.bmp
Asosiasi
• Bagaimana sebuah class diagram yang memiliki
asosiasi dikonversi kesebuah tabel ?
Asosiasi Many to many
Order
Dari asosiasi ini ada tercipta 2 table :
grettingsCard and Order
0..*
1..*
GreetingsCard
GreetingsCard table
CardID
CardNama
CardSize
UnitPrize
Message
Pictutre
1
Forgot again
6x4
1.00
Don’t Forget
Forget.bmp
2
The Camp
6x4
1.00
Go Champ
Champ.bmp
3
Waves
6x6
2.00
Great Waves
waves.bmp
4
Mona Lisa
6x6
1.00
ML1.bmp
5
Mona Lisa
6x6
2.00
ML2.bmp
6
Miss u
6x6
1.00
Miss U Much
MissU.bmp
Order table
Date
OrderID
OrderCost
DeliveryCharge
TotalCost
99-20
10-1-2003
1.00
1.00
2.00
99-21
11-1-2003
1.00
1.00
2.00
99-22
11-1-2003
1.00
2.00
3.00
CardOrder table
CardId
OrderId
1
99-20
2
99-21
3
99-22
Dari asosiasinya perlu buat sebuah
tabel untuk mengkoneksikan tabel
order dengan tabel greeting_card
kita memberikan nama CardOrder
(sebagai contoh)
Asosiasi One to many
• Didalam kasus asosiasi one to many,
Implementasinya dapat memiliki 2 pilihan
– Buat tabel terpisah seperti pada asosiasi many to
many
– Tambahkan foreign key dalam tabel yang memiliki
many class / record.
Customer
1
1..*
Order
Solution 1
Customer
CustNo
Name
FirstName
Street
Town
PostCode
PhoneNo
1
Leary
John
14 High S
Hansford
SG74DG
1231212
2
Trip
Christ
2 Long A
Boxeth
SG74DF
2334553
3
Jones
Ellen
67 Bow rd
Hansford
SG54DH
4545454
4
Brown
Lisa
124 High
Hansford
SG54D7
4445555
5
James
Bob
21 Park
Boxeth
SG74D8
4335454
Order
OrderID
Date
OrderCost
DeliveryCharge
TotalCost
99-20
10-1-2003
1.00
1.00
2.00
99-21
11-1-2003
1.00
1.00
2.00
99-22
11-1-2003
1.00
2.00
3.00
Buat tabel customerOrder untuk mewakili asosiasi
one to many
CustomerOrder
CardId
OrderId
1
99-20
2
99-21
3
99-22
Solution 2
Customer
CustNo
Name
FirstName
Street
Town
PostCode
PhoneNo
1
Leary
John
14 High S
Hansford
SG74DG
1231212
2
Trip
Christ
2 Long A
Boxeth
SG74DF
2334553
3
Jones
Ellen
67 Bow rd
Hansford
SG54DH
4545454
4
Brown
Lisa
124 High
Hansford
SG54D7
4445555
5
James
Bob
21 Park
Boxeth
SG74D8
4335454
Add a foreign key in table Order
Order
OrderID
CustNo
Date
OrderCost
DeliveryCharge
TotalCost
99-20
1
10-1-2003
1.00
1.00
2.00
99-21
2
11-1-2003
1.00
1.00
2.00
99-22
3
11-1-2003
1.00
2.00
3.00
Tambahkan foreign key untuk table order
Agregasi
• Untuk mengkonversikan class yang memilik hubungan
agregasi lakukan seperti asosiasi one to many
Inheritance
•
Dalam kasus inheritance ada 3 cara untuk
mengimplementasikan relationship didalam relatonal
database.
1.
2.
3.
Mapping tiap class untuk menjadi sebuag tabel dengan
menambahkan atau menggunakan kode bersama untuk
menghubungkan tabel yang satu dengan tabel yang lain
Implementasikan tabel hanya untuk sub classes (dalam
hal ini individual and wholesale
Kombinasikan semua class kedalam sebuah tabel
Customer
-name
-address
Option 2
Individual
Wholesale
-PreviusCard
-contactname
-discount
Individual Customer
CustNo
Name
FirstName
Street
Town
PostCode
PhoneNo
PreviusCard
1
Leary
John
14 High S
Hansford
SG74DG
1231212
50
2
Trip
Christ
2 Long A
Boxeth
SG74DF
2334553
150
3
Jones
Ellen
67 Bow rd
Hansford
SG54DH
4545454
30
4
Brown
Lisa
124 High
Hansford
SG54D7
4445555
30
5
James
Bob
21 Park
Boxeth
SG74D8
4335454
10
Wholesale Customer
CustNo
Name
Street
Town
PostCode
Contact
Discount
1
Westons
14 High S
Hansford
SG74DG
Ray
20
2
Wings
2 Long A
Boxeth
SG74DF
Sisca
10
3
Jones & Son
67 Bow rd
Hansford
SG54DH
Boy
15
© Copyright 2026 Paperzz