62
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1
Analisis Kebutuhan Sistem Hal pertama yang perlu dilakukan dalam analisis kebutuhan sistem adalah menentukan dan mengungkapkan kebutuhan sistem. Kebutuhan sistem terbagi menjadi dua yaitu kebutuhan sistem fungsional dan kebutuhan sistem nonfungsional, yang diperlukan untuk menemukan tujuan yang hendak dicapai (Whitten, 2004, p212). 3.1.1
Kebutuhan Fungsional Kebutuhan fungsional komponen concurrency control ini meliputi: •
Sistem memberi akses kepada multi user untuk mengakses database pada saat bersamaan dengan mengimplementasikan konsep clientserver.
•
Sistem dapat menerima permintaan query berupa transaksi yang terdiri atas satu atau banyak operasi di dalamnya.
•
Sistem dapat menganalisis sintaks select, insert, update, dan delete dari single table.
•
Sistem dapat melakukan proses parsing untuk memisahkan sebuah transaksi ke dalam satu atau banyak operasi.
•
Sistem dapat menentukan tabel, kolom, dan record yang diminta untuk diakses sesuai syarat kondisi query pada operasi.
63 •
Sistem dapat membedakan permintaan akses read dan write pada setiap operasi di dalam transaksi.
•
Sistem dapat membandingkan tabel dan record yang sedang diakses dengan tabel dan record yang diminta untuk diakses.
•
Sistem dapat membandingkan lock yang diminta oleh operasi dengan lock yang sedang dipakai oleh transaksi lain pada tabel dan record yang sama.
•
Sistem dapat membedakan operasi mana yang akan diberi akses dan operasi mana yang tidak diberi akses (menunggu).
•
Sistem dapat membuat sebuah operasi di dalam transaksi menunggu lock yang diminta.
•
Sistem dapat mengirim XML query kepada recovery manager untuk melakukan eksekusi berupa select, insert, update, dan delete ke dalam database sesuai schedule yang telah ditentukan.
•
Sistem dapat membuat serial schedule dan nonserial schedule.
•
Sistem dapat mengatur jika hanya ada satu transaksi pada suatu waktu, maka transaksi itu akan langsung dieksekusi.
•
Sistem dapat menerima sinyal commit dari recovery manager yang menandakan bahwa transaksi telah selesai dieksekusi sehingga sistem melakukan penjadwalan ulang transaksi berikutnya.
•
Sistem
dapat
mengimplementasikan
mekanisme
timeout
untuk
menangani deadlock. •
Transaksi yang dikirimkan oleh client dapat dilakukan per operasi.
64 •
Sistem dapat menerima sintaks commit ataupun rollback yang dikirimkan oleh client.
•
Sistem dapat menerima sinyal backup dari backup restore manager yang menandakan bahwa akan dilakukan proses backup sehingga sistem akan membuat semua transaksi berstatus wait selama proses backup berlangsung.
•
Sistem dapat menerima sinyal restore dari backup restore manager yang menandakan bahwa akan dilakukan proses restore sehingga sistem akan menghapus data semua transaksi agar proses restore dapat dilakukan.
3.1.2
Kebutuhan Non Fungsional -
Sistem berjalan di atas sistem operasi Windows XP Service Pack 2.
-
Data yang dibaca dari sistem dalam bentuk XML.
65 3.2
Perancangan Sistem 3.2.1
Use Case Diagram
66
Gambar 3. 1 Use Case Diagram Concurrency Control System pada RDBMS
67 3.2.1.1
Deskripsi Use Case AcceptNewTransaction
Use Case Name
AcceptNewTransaction
Source
Requirement
Actor
Concurrency Control Manager
Description
Use case ini menggambarkan penerimaan transaksi oleh concurrency control system. Transaksi yang diterima akan disimpan di dalam ScheduleTransaction.
Preconditions
• Server sudah running, ada client yang connect ke server dan mengirimkan query .
Postconditions
• Transaksi yang baru masuk sudah disimpan kedalam ScheduleTransaction.
Normal Flow
Actor Action
System Response
Langkah 1 :
Langkah 2 :
Concurrency control manager Sistem melakukan pengecekan menerima
adanya
transaksi sintaks. Sintaks yang dikirim
yang siap untuk diproses.
harus
mengikuti
aturan
penulisan. Jika sintaks yang dikirim tidak mengikuti aturan penulisan, maka server akan mengirimkan kepada
pesan
client.
berikutnya dijalankan.
Use
tidak
error case akan
68 Langkah 3 : Jika sintaks yang dikirim telah mengikuti
aturan
penulisan,
maka sistem akan menyimpan TransactionQuery
ke
dalam
ScheduleTransaction. Langkah 4 : Sistem
akan
memberi
TransactionId untuk transaksi tersebut. Langkah 5 : Sistem akan menyimpan waktu kedatangan transaksi tersebut. Alternate Flow
Actor Action Langkah 1 :
3.2.1.2
System Response Alt. Langkah 2 :
Deskripsi Use Case MakeTransactionOperation
Use Case Name
MakeTransactionOperation
Source
Requirement
Actors
Concurrency Control Manager
Description
Use case ini menggambarkan pemisahan satu transaksi menjadi
69 satu
atau
banyak
operasi
yang
disimpan
di
dalam
ScheduleOperation. Preconditions
• Transaksi yang baru masuk sudah disimpan kedalam ScheduleTransaction.
Postconditions
• TransactionQuery sudah dipisahkan ke dalam satu atau banyak operasi dan disimpan di dalam ScheduleOperation.
Normal Flow
Actor Action Langkah 1 :
System Response Langkah 2 : Sistem
membaca
TransactionQuery yang ada di dalam ScheduleTransaction. Langkah 3 : Sistem
melakukan
proses
parsing yang meliputi analisis sintaks
dari
transaksi
yang
diterima. Sintaks yang dapat dianalisis
meliputi
select,
insert, update, dan delete. Langkah 4 : Sistem
memisahkan
TransactionQuery menjadi satu atau banyak OperationQuery di dalam transaksi.
70 Langkah 5 : Sistem
memasukkan
OperationQuery
tersebut
ke
dalam ScheduleOperation. Langkah 6 : Sistem
menuliskan
TransactionId ke dalam setiap operasi di dalam transaksi. Langkah 7 : Sistem
menentukan
OperationId
untuk
setiap
operasi di dalam transaksi. Langkah 8 : Sistem
menentukan
ScheduleOperationId
untuk
setiap
dalam
operasi
di
transaksi. Langkah 9 : Sistem
membaca
OperationQuery
setiap untuk
mendefinisikan tabel, kolom, dan record yang akan diakses. Langkah 10 :
71 Sistem
mengeset
OperationStatus setiap operasi tersebut adalah wait. Langkah 11 : Sistem mencatat TimeArrival dari operasi tersebut. Alternate Flow
Actor Action
System Response
Langkah 1 :
3.2.1.3
Alt. Langkah 2 :
Deskripsi Use Case IdentifyKeyNeeded
Use Case Name
IdentifyKeyNeeded
Source
Requirement
Actors
Concurrency Control Manager
Description
Use case ini membaca OperationQuery yang terdapat dalam operasi dan menentukan lock yang diperlukan.
Preconditions
• TransactionQuery
sudah
dipecah-pecah
ke
dalam
OperationQuery dan disimpan di dalam ScheduleOperation. • ScheduleTransaction dan ScheduleOperation sudah terisi minimal oleh satu transaksi yang terdiri atas satu atau banyak operasi. Postconditions
• Operasi di dalam transaksi telah memiliki KeyRequested.
72 Normal Flow
Actor Action Langkah 1 :
System Response Langkah 2 : Sistem
membaca
OperationQuery yang terdapat di dalam operasi. Langkah 3 : Sistem membedakan jenis lock yang diperlukan oleh operasi di dalam transaksi. Langkah 4 : Jika operasi tersebut hanya perlu membaca database, maka sistem
menentukan
bahwa
KeyRequested dari operasi itu adalah shared lock. Langkah 5 : Jika
operasi
tersebut
perlu
akses menulis, maka sistem menentukan
bahwa
KeyRequested dari operasi itu adalah exclusive lock. Alternate Flow
Actor Action Langkah 1 :
System Response Langkah 2 :
73 3.2.1.4
Deskripsi Use Case CheckKeyUsedList
Use Case Name
CheckKeyUsedList
Source
Requirement
Actors
Concurrency Control Manager
Description
Use case ini membaca dan membandingkan daftar lock yang sedang dipakai di KeyUsedList dengan KeyRequested pada operasi dan mengubah status menjadi wait atau executed tergantung kondisi yang ada.
Preconditions
• Operasi di dalam transaksi telah memiliki KeyRequested.
Postconditions
• Sistem telah selesai melakukan pembandingan lock yang sedang dipakai dengan KeyRequested dan menentukan status dari operasi di dalam transaksi.
Normal Flow
Actor Action Langkah 1 :
System Response Langkah 2 : Sistem membaca daftar lock yang sedang dipakai didalam KeyUsedList. Langkah 3 : Sistem mendefinisikan variabel status yang akan dibutuhkan pada saat pengecekan. Langkah 4 : Jika
KeyUsedList
masih
74 kosong,
maka
sistem
akan
menentukan bahwa lock yang diminta oleh operasi yang baru masuk akan diberikan. Sistem mengubah
variabel
status
menjadi executed. Langkah 5 : Jika
KeyUsedList
tidak
kosong,
maka
akan
sistem
melakukan pengecekan dengan cara membandingkan. Langkah 6 : Sistem membandingkan daftar lock
yang
sedang
dipakai
didalam KeyUsedList dengan KeyRequested. Langkah 7 : Jika tabel dan record yang diminta untuk diakses tidak terdapat di dalam KeyUsedList, maka sistem mengubah variabel status executed. .
menjadi
bernilai
75 Langkah 8 : Jika tabel dan record yang diminta untuk diakses terdapat di dalam KeyUsedList, maka sistem
akan
melakukan
pengecekan lock. Langkah 9 : Jika tabel dan record yang diminta untuk diakses terdapat di dalam KeyUsedList, dan kunci yang dipakai adalah shared lock, maka sistem akan mengecek KeyRequested untuk tabel dan record tersebut. Jika RequestedKey adalah shared lock, maka sistem mengubah nilai variabel status menjadi executed. Langkah 10 : Jika tabel dan record yang diminta untuk diakses terdapat di dalam KeyUsedList, dan kunci yang dipakai adalah
76 shared lock, maka sistem akan mengecek KeyRequested untuk tabel dan record tersebut. Jika RequestedKey adalah exclusive lock, maka sistem mengubah nilai variabel status menjadi wait. Langkah 11 : Jika tabel dan record yang diminta untuk diakses terdapat di dalam KeyUsedList, dan kunci yang dipakai adalah exclusive lock, maka sistem mengubah nilai variabel status menjadi wait. Langkah 12 : Sistem
akan
melakukan
pengecekan pada semua lock yang
ada
di
dalam
KeyUsedList sampai variabel status terisi dengan wait atau executed. Alternate Flow
Actor Action
System Response
77 Langkah 1 :
3.2.1.5
Langkah 2 :
Deskripsi Use Case DefineOperationStatus
Use Case Name
DefineOperationStatus
Source
Requirement
Actors
Concurrency Control Manager
Description
Use case ini membaca status dari operasi di dalam transaksi dan mengubah OperationStatus di dalam ScheduleOperation untuk operasi tertentu menjadi wait atau executed tergantung isi variabel status pada use case CheckKeyUsedList.
Preconditions
• Sistem telah selesai melakukan pembandingan lock yang sedang dipakai di dalam KeyUsedList dengan KeyRequested pada operasi dan menentukan status dari operasi di dalam transaksi.
Postconditions
• OperationStatus
telah
didefinisikan
di
dalam
ScheduleOperation. Normal Flow
Actor Action Langkah 1 :
System Response Langkah 2 : Sistem membaca isi variabel status dari operasi di dalam transaksi
pada
CheckKeyUsedList.
use
case
78 Langkah 3 : Status
yang
sudah
dimasukkan OperationStatus
dibaca menjadi
ke
ScheduleOperation
dalam sesuai
ScheduleOperationId
yang
dibaca
case
pada
use
CheckKeyUsedList. Alternate Flow
Actor Action Langkah 1 :
3.2.1.6
System Response Alt. Langkah 2 :
Deskripsi Use Case MakeOperationWaitForRequestedKey
Use Case Name
MakeOperationWaitForRequestedKey
Source
Requirement
Actors
Concurrency Control Manager
Description
Use case ini membuat operasi menunggu untuk mendapatkan RequestedKey.
Preconditions
• Sistem telah selesai mendefinisikan OperationStatus di dalam ScheduleOperation.
79 Postconditions Normal Flow
• Operasi yang berstatus wait akan menunggu. Actor Action Langkah 1 :
System Response Langkah 2 : Sistem
membaca
OperationStatus pada operasi didalam ScheduleOperation. Langkah 3 : Jika OperationStatus operasi tersebut adalah wait, sistem akan membuat operasi tersebut menunggu lock yang diminta. Langkah 4 : Sistem mencatat waktu operasi tersebut mulai menunggu. Langkah 5 : Sistem memulai timer yang menandakan operasi
awal
sebuah
menunggu
untuk
menjalankan teknik timeout. Langkah 6 : Dalam selang waktu tertentu, sistem
akan
KeyUsedList
mengecek kembali.
80 Pengecekan kembali dilakukan apabila terjadi reload terhadap KeyUsedList.
Pengecekan
kembali dilakukan mulai dari use case CheckKeyUsedList. Alternate Flow
Actor Action Langkah 1 :
3.2.1.7
System Response Alt. Langkah 2 :
Deskripsi Use Case EntryOperationKeyToList
Use Case Name
EntryOperationKeyToList
Source
Requirement
Actors
Concurrency Control Manager
Description
Use case ini menyimpan lock yang diminta operasi ke dalam KeyUsedList.
Preconditions
• Sistem telah selesai mendefinisikan OperationStatus.
Postconditions
• Sistem menyimpan lock yang diminta di dalam KeyUsedList.
Normal Flow
Actor Action Langkah 1 :
System Response Langkah 2 : Sistem
membaca
81 OperationStatus pada operasi didalam ScheduleOperation. Langkah 3 : Jika OperationStatus operasi tersebut
adalah
executed,
sistem akan menyimpan lock yang diminta operasi ke dalam KeyUsedList. Langkah 4 : Sistem
akan
memberikan
KeyUsedListId untuk masingmasing record. Langkah 5 : Sistem
akan
mencatat
ScheduleOperationId setiap record. Alternate Flow
Actor Action Langkah 1 :
System Response Alt. Langkah 2 :
pada
82 3.2.1.8
Deskripsi Use Case PassXMLQueryToBeExecuted
Use Case Name
PassXMLQueryToBeExecuted
Source
Requirement
Actors
Concurrency Control Manager
Description
Use case ini membaca detail operasi yang sudah dipilah-pilah dan mengirimkannya kepada recovery manager.
Preconditions
• Status operasi telah didefinisikan didalam ScheduleOperation. • RequestedKey dari operasi yang OperationStatus nya executed telah dicatat di dalam KeyUsedList.
Postconditions
• Sistem
telah
mengirimkan
operasi
yang
memiliki
OperationStatus berupa executed kepada recovery manager. Normal Flow
Actor Action Langkah 1 :
System Response Langkah 2 : Sistem
membaca
OperationQuery pada operasi yang memiliki OperationStatus berupa executed. Langkah 3 : Sistem pada
mengirimkan operasi
dijalankan
tersebut
recovery manager. Langkah 4 :
yang
query akan kepada
83 Sistem
akan
mencatat
TimeExecuted
sesuai
ScheduleOperationId
untuk
operasi tersebut. Langkah 5 : Jika masih terdapat operasi di dalam sebuah transaksi, sistem akan
menjalankan
kembali
proses untuk setiap operasi. Proses ini dilakukan mulai dari use case IdentifyKeyNeeded. Alternate Flow
Actor Action Langkah 1 :
3.2.1.9
System Response Langkah 2 :
Deskripsi Use Case ReloadKeyUsedList
Use Case Name
ReloadKeyUsedList
Source
Requirement
Actors
Concurrency Control Manager
Description
Use case ini menghapus semua lock yang sudah selesai digunakan oleh sebuah transaksi.
Preconditions
• Sistem telah mengirim query XML yang akan dijalankan
84 kepada recovery manager. • Sistem menerima adanya sinyal CommitTransaction dengan TransactionId tertentu dari recovery manager. Postconditions
• Semua lock transaksi sesuai TransactionId yang dikirimkan oleh recovery manager dihapus dari KeyUsedList.
Normal Flow
Actor Action
System Response Langkah 2 :
Langkah 1 :
Concurrency control manage Sistem membaca TransactionId menerima
adanya
CommitTransaction TransactionId
sinyal yang dikirim oleh recovery dengan manager.
tertentu
recovery manager.
dari Langkah 3 : Sistem menghapus semua lock didalam
KeyUsedList
yang
sudah selesai digunakan oleh sebuah
transaksi
TransactionId
yang
sesuai dikirim
oleh recovery manager. Alternate Flow
Actor Action Langkah 1 :
System Response Alt. Langkah 2 :
85 3.2.1.10 Deskripsi Use Case ReloadScheduleOperation Use Case Name
ReloadScheduleOperation
Source
Requirement
Actors
Concurrency Control Manager
Description
Use case ini menghapus semua operasi dari sebuah transaksi yang telah selesai dijalankan.
Preconditions
• Sistem telah menerima adanya sinyal CommitTransaction dengan TransactionId tertentu dari recovery manager. • Sistem telah menghapus semua lock yang sudah selesai digunakan dari KeyUsedList sesuai TransactionId yang dikirim oleh recovery manager.
Postconditions
• Semua operasi di dalam transaksi yang telah selesai dijalankan telah dihapus dari ScheduleOperation sesuai TransactionId yang dikirim oleh recovery manager.
Normal Flow
Actor Action Langkah 1 :
System Response Langkah 2 : Sistem membaca TransactionId yang dikirim oleh recovery manager. Langkah 3 : Sistem
menghapus
semua
operasi
di
sebuah
dalam
transaksi yang tertulis didalam
86 ScheduleOperation TransactionId
yang
sesuai dikirim
oleh recovery manager. Alternate Flow
Actor Action Langkah 1 :
System Response Alt. Langkah 2 :
3.2.1.11 Deskripsi Use Case ReloadScheduleTransaction Use Case Name
ReloadScheduleTransaction
Source
Requirement
Actors
Concurrency Control Manager
Description
Use case ini menghapus transaksi dari ScheduleTransaction yang telah selesai dieksekusi.
Preconditions
• Sistem telah menerima adanya sinyal CommitTransaction dengan TransactionId tertentu dari recovery manager. • Sistem telah menghapus semua lock yang sudah selesai digunakan dari KeyUsedList sesuai TransactionId yang dikirim oleh recovery manager. • Sistem telah menghapus semua operasi didalam transaksi yang telah
selesai
dijalankan
dari
ScheduleOperation
sesuai
87 TransactionId yang dikirim oleh recovery manager. Postconditions
• Sistem telah menghapus transaksi yang telah selesai dijalankan dari ScheduleTransaction sesuai TransactionId yang dikirim oleh recovery manager.
Normal Flow
Actor Action Langkah 1 :
System Response Langkah 2 : Sistem membaca TransactionId yang dikirim oleh recovery manager. Langkah 3 : Sistem menghapus transaksi yang
tertulis
di
dalam
ScheduleTransaction TransactionId
yang
sesuai dikirim
oleh recovery manager. Alternate Flow
Actor Action Langkah 1 :
System Response Langkah 2 :
3.2.1.12 Deskripsi Use Case MakeAllTransactionWaitingDuringBackupOperation Use Case Name
MakeAllTransactionWaitingDuringBackupOperation
Source
Requirement
88 Actors
Concurrency Control Manager
Description
Use case ini menerima adanya sinyal backup dari backup restore manager, sehingga semua transaksi yang ada harus menunggu sampai proses backup selesai.
Preconditions
• Sistem telah menerima adanya sinyal backup dari backup restore manager.
Postconditions
• Sistem telah mengubah semua status transaksi menjadi wait selama proses backup. • Menerima sinyal bahwa proses backup telah selesai dari backup restore manager, sehingga mekanisme penjadwalan dapat dijalankan kembali.
Normal Flow
Actor Action Langkah
System Response
1 : Concurrency Langkah 2 :
control
manager
adanya
sinyal
menerima Sistem akan membuat status
backup
backup restore manager.
dari dari
transaksi
yang
baru
diterima menjadi wait. Langkah 3 : Sistem akan membuat semua operasi di dalam transaksi yang berstatus wait tetap wait selama proses backup berlangsung. Langkah 4 : Sistem akan membuat semua
89 transaksi
yang
sedang
dieksekusi telah selesai ditulis ke dalam database dengan menunggu sinyal yang dikirim oleh
recovery
manager
sistem
mengirim
sebelum
sinyal kepada backup restore manager untuk memulai proses backup. Langkah 5: Sistem membuat semua operasi di
dalam
transaksi
akan
berstatus wait selama proses backup berlangsung. Langkah 6: Sistem menerima sinyal dari backup restore manager bahwa proses backup telah selesai, sehingga sistem akan kembali menjalankan
mekanisme
penjadwalan transaksi. Alternate Flow
Actor Action Langkah 1 :
System Response Langkah 2 :
90 3.2.1.13 Deskripsi Use Case RemoveAllScheduleToRestoreDatabase Use Case Name
RemoveAllScheduleToRestoreDatabase
Source
Requirement
Actor
Concurrency Control Manager
Description
Use case ini menerima adanya sinyal restore dari backup restore manager, sehingga semua data yang ada didalam KeyUsedList, ScheduleOperation, dan ScheduleTransaction akan dihapus.
Preconditions
• Sistem telah menerima adanya sinyal restore dari backup restore manager.
Postconditions
• Sistem telah menghapus semua data yang ada di dalam KeyUsedList, ScheduleOperation, dan ScheduleTransaction. • Menerima sinyal bahwa proses restore telah selesai dari backup restore manager, sehingga mekanisme penjadwalan dapat dijalankan kembali.
Normal Flow
Actor Action Langkah 1 :
System Response Langkah 2 :
Concurrency control manager Jika ada transaksi yang sedang menerima adanya sinyal untuk dieksekusi, baik yang sedang melakukan restore database berstatus allowed maupun wait, dari backup restore manager.
sistem
akan
melakukan
rollback
terhadap
semua
transaksi
yang
sedang
dieksekusi
tersebut.
Sistem
91 mengirimkan sinyal rollback kepada
recovery
sehingga
recovery
manager, manager
dapat melakukan proses undo terhadap transaksi tersebut. Langkah 3 : Sistem akan menghapus semua data
yang
ada
didalam
ScheduleOperation,
dan
KeyUsedList,
ScheduleTransaction. Langkah 4 : Sistem mengirim sinyal kepada backup restore manager untuk memulai
proses
restore
database. Langkah 5 : Sistem akan membuat status dari semua operasi di dalam transaksi yang baru diterima menjadi wait selama proses restore sedang berlangsung. Langkah 6 :
92 Sistem menerima sinyal dari backup restore manager bahwa proses restore telah selesai, sehingga sistem akan kembali menjalankan
mekanisme
penjadwalan transaksi. Alternate Flow
Actor Action Langkah 1 :
System Response Langkah 2 :
93 3.2.2
Class Diagram
Gambar 3. 2 Class Diagram Concurrency Control System pada RDBMS
94 3.2.3
false
Diagram Alir (Flow Chart)
EXIT = false
true
Terima querydan dimasukkan ke dalam ScheduleTran saction
Transaksi yang mengalami rollback beserta semua operasi didalamnya akan dihapus dari KeyUsedList, dihapus dari ScheduleOperation, dan dihapus dari ScheduleTransaction.
Memilah transaksi ke dalam operasi-operasi dan dimasukkan ke dalam ScheduleOperation
true
Terjadi Rollback karena permintaan user
Tentukan kunci untuk operasi
false
Operasi membutuhkan akses menulis ke database
false
true
Request Exclusive Lock (read and write)
Request Shared Lock (read only) true
KeyUsedList kosong
false
Transaksi yang mengalami rollback beserta semua operasi didalamnya akan dihapus dari KeyUsedList, dihapus dari ScheduleOperation, dan dihapus dari ScheduleTransaction. Transaksi akan mengalami restart
Tabel dan record yang direquest untuk diakses terdapat di KeyUsedList (Sedang diakses transaksi lain)
true false false false
Terjadi timeout
true
true
OperationStatus diubah menjadi WAIT
KeyRequested dari operasi adalah Shared Lock (read only)
false
true
Key yang dipakai di KeyUsedList adalah Shared Lock (read only) true
Masih terdapat operasi dalam satu transaksi yang mengecek kebutuhan kunci false
Query tersebut dikirim kepada Recovery Manager untuk dieksekusi
Kunci yang direquest dimasukkan ke KeyUsedList
OperationStatus diubah menjadi EXECUTED
Transaksi dan semua operasi didalamnya yang telah selesai di execute dengan status commit akan dihapus dari KeyUsedList, dihapus dari ScheduleOperation, dan dihapus dari ScheduleTransaction
Gambar 3. 3 Flow Chart untuk Concurrency Control System pada RDBMS
95 3.2.4
Module Schedule
BEGINNING : Cek apakah EXIT = FALSE Jika EXIT = TRUE , goto EXIT Jika EXIT = FALSE BEGIN Terima query yang masuk Masukkan query ke dalam ScheduleTransaction Memilah transaksi ke dalam operasi-operasi Masukkan operasi-operasi ke dalam ScheduleOperation LOOP1: Cek apakah terjadi rollback dari permintaan user Jika terjadi rollback dari permintaan user BEGIN Terima sinyal rollback dari permintaan user Remove semua lock dari KeyUsedList untuk transaksi tsb Remove semua operasi transaksi tersebut Remove Transaksi tersebut Transaksi tersebut tidak mengalami restart GOTO BEGINNING END ELSE BEGIN Tentukan lock yang diminta oleh operasi Jika membutuhkan akses membaca dan menulis BEGIN OperationKeyRequested adalah Exclusive lock (X)
96 END ELSE BEGIN OperationKeyRequested adalah Shared lock (S) END Cek apakah KeyUsedList kosong Jika KeyUsedList kosong BEGIN OperationStatus diubah menjadi EXECUTED GOTO NEXT END ELSE BEGIN LOOP2 : Cek table dan record direquest terdapat di KeyUsedList Jika terdapat di KeyUsedList BEGIN Cek OperationKeyRequested Jika OperationKeyRequested adalah Shared lock(S) BEGIN Cek lock yang digunakan pada KeyUsedList Jika lock yang digunakan adalah Shared lock(S) BEGIN operationStatus menjadi EXECUTED
97 GOTO NEXT END ELSE BEGIN operationStatus menjadi WAIT Cek apakah terjadi timeout Jika terjadi timeout BEGIN Remove KeyUsed dari KeyUsedList untuk transaksi tsb Remove semua operasi transaksi tersebut Remove Transaksi tersebut Transaksi tersebut akan mengalami restart GOTO BEGINNING END ELSE BEGIN GOTO LOOP2 END END END ELSE BEGIN operationStatus menjadi WAIT GOTO LOOP2 END
98 END ELSE BEGIN operationStatus menjadi EXECUTED GOTO NEXT END END NEXT : OperationKeyRequested dimasukkan ke dalam KeyUsedList Query dikirim
ke Recovery Manager untuk dieksekusi
Cek apakah masih ada operasi di dalam satu transaksi tersebut Jika masih ada operasi lain di dalam satu transaksi tersebut BEGIN GOTO LOOP1 END ELSE BEGIN Remove KeyUsed dari KeyUsedList untuk transaksi tsb Remove semua operasi transaksi tersebut Remove Transaksi tersebut GOTO BEGINNING END EXIT : Keluar dari program END MODULE
99 3.2.5
Perancangan Layar 3.2.5.1 Perancangan Layar pada Menu Utama Server
Gambar 3. 4 Rancangan layar menu utama Server
Rancangan Layar ini berjudul Server. Layar ini terdiri dari beberapa bagian. Bagian pertama adalah Connection. Pada bagian ini terdapat tiga button yaitu button Start, Restart, dan Stop. Button start digunakan untuk mengaktifkan server, button restart digunakan untuk memulai kembali server dengan state awal, sedangkan button stop digunakan untuk menonaktifkan server. Bagian kedua adalah client list. Bagian ini digunakan untuk menampilkan daftar client yang telah terhubung dengan server. Bagian terakhir adalah menu File dan Help.
100 3.2.5.2 Perancangan Layar pada Menu File Server
Gambar 3. 5 Rancangan layar menu File Server Rancangan ini berjudul Server untuk pilihan menu File yang berisi satu menu drop-down yaitu Exit untuk keluar dari aplikasi.
3.2.5.3 Perancangan Layar pada Menu Timeout Server
Gambar 3. 6 Rancangan layar menu Timeout Server Rancangan ini berjudul Server untuk pilihan menu Time Out yang berisi satu menu drop-down yaitu Time Out.
101 3.2.5.4 Perancangan Layar pada Menu Drop-Down Timeout Server
Gambar 3. 7 Rancangan layar menu Drop-Down Timeout Server Rancangan ini berjudul Time Out. Rancangan layar ini berguna untuk mengganti lama waktu time out pada server.
3.2.5.5 Perancangan Layar pada Menu Help Server
Gambar 3. 8 Rancangan layar menu Help Server Rancangan ini berjudul Server untuk pilihan menu Help yang berisi dua menu drop-down yaitu Help dan About. Help berisi petunjuk penggunaan aplikasi server, sedangkan About berisi informasi mengenai penulis.
102
3.2.5.6 Perancangan Layar pada Menu Utama Client
Gambar 3. 9 Rancangan layar pada menu utama Client Rancangan layar ini berjudul Main yang terdiri dari beberapa menu drop-down File, Edit, Font, Window,dan Help.
103
3.2.5.7 Perancangan Layar pada Menu File Client
Gambar 3. 10 Rancangan layar pada menu File Client Rancangan ini berjudul Main untuk pilihan menu File yang berisi delapan menu drop-down yaitu Connect, Disconnect, Disconnect All, New, Save, Open, Save as , dan Exit.
104
3.2.5.8 Perancangan Layar pada Menu Drop-Down Connect Client
Gambar 3. 11 Rancangan layar pada menu Drop-Down Connect Client Rancangan ini berjudul Form Connect. Rancangan layar ini berguna untuk meminta IP server yang ingin dituju.
105
3.2.5.9 Perancangan Layar pada Client setelah terhubung pada Server
Gambar 3. 12 Rancangan layar Client setelah terhubung pada Server Rancangan ini berjudul Form Client. Rancangan layar ini berguna untuk mengirimkan query ke server dan menerima hasil proses penjadwalannya dari server.
106
3.2.5.10
Perancangan Layar pada Menu Edit Client
Gambar 3. 13 Rancangan layar pada menu Edit Client Rancangan ini berjudul Main untuk pilihan menu Edit yang berisi delapan menu drop-down yaitu Copy, Cut, Paste, Undo, Redo, Select All, Find dan Replace.
107
3.2.5.11
Perancangan Layar pada Menu Font Client
Gambar 3. 14 Rancangan layar pada menu Font Client Rancangan ini berjudul Main untuk pilihan menu Font yang berisi satu menu drop-down yaitu Font.
108
3.2.5.12
Perancangan Layar pada Menu Window Client
Gambar 3. 15 Rancangan layar pada menu Window Client Rancangan ini berjudul Main untuk pilihan menu Window yang berisi tiga menu drop-down yaitu Cascade, Horizontal, dan Vertikal.
109
3.2.5.13
Perancangan Layar pada Menu Help Client
Gambar 3. 16 Rancangan layar pada menu Help Client
Rancangan ini berjudul Main untuk pilihan menu Help yang berisi dua menu drop-down yaitu About dan Help.