BAB 3 ANALISIS DAN PERANCANGAN SISTEM

dokumen-dokumen yang mirip
BAB 4 IMPLEMENTASI DAN EVALUASI

Gambar Layar pertama untuk pemecahan masalah Lost Update

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2006/2007

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

BAB 4 IMPLEMENTASI DAN EVALUASI

BAB 1 PENDAHULUAN. satu hal yang sangat dominan dan terjadi dengan sangat pesat. Informasi

BAB 3 RANCANGAN PROGRAM APLIKASI

BAB 3 ANALISIS DAN PERANCANGAN. menentukan dan mengungkapkan kebutuhan sistem. Kebutuhan sistem terbagi menjadi

BAB 3 ANALISIS DAN PERANCANGAN

BAB 4 IMPLEMENTASI DAN EVALUASI

SISTEM BASIS DATA 2. WAHYU PRATAMA, S.Kom., MMSI.

BAB III ANALISA DAN PERANCANGAN SISTEM. permasalahan yang ada sebagai dasar untuk membuat sebuah solusi yang

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB 4 IMPLEMENTASI DAN EVALUASI. sistem aplikasi basis data pada CV. Lumbung Rejeki yaitu : Monitor : SVGA 17. : Optical Mouse.

PENGONTROLAN BERBASIS KOMPUTER

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Berikut adalah navigation diagram ketika memilih new dari layar staff management:

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. sequential (waterfall). Metode ini terdiri dari empat tahapan, yaitu: analisis,

BAB 4 IMPLEMENTASI DAN EVALUASI. maka diperlukan suatu jaringan LAN yang terhubung antara komputer yang satu

BAB III ANALISA DAN DESAIN SISTEM

Gambar 4.40 Layar Pelanggan

RECOVERY SYSTEM. Sistem Basis Data. Gentisya Tri Mardiani, S.Kom., M.Kom

SMK BHAKTI NUSANTARA BOJA

BAB 4 PERANCANGAN, RENCANA IMPLEMENTASI, DAN EVALUASI

DATABASE CONTROL 1. SECURITY DATABASE. Suzan Agustri 81

Gambar 16 Menu Item Data Transformation Service-Fact L 46

BAB III ANALISA DAN PERANCANGAN SISTEM

RECOVERY SYSTEM. Sistem Basis Data. Gentisya Tri Mardiani, S.Kom

BAB 4 PERANCANGAN SISTEM DAN EVALUASI. perancangan diagram UML (use case, activity, class, dan sequence), perancangan

Gambar 4.17 Instalasi Modem Nokia 6100 Install From Disk

BAB III ANALISIS DAN PERANCANGAN

Praktikum MONITORING AND RESOLVING LOCK CONFLICTS. Tujuan :

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB 4 IMPLEMENTASI DAN EVALUASI. Optimation dengan rancangan layar sebagai berikut :

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISIS DAN PERANCANGAN

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI. misalnya EyeSpyFx. Aplikasi ini memiliki fitur untuk melakukan pemantauan keamanan

Gambar 4.76 User Interface Login

BAB 4 IMPLEMENTASI DAN EVALUASI. Untuk membantu dalam proses pemantauan jaringan switch backbone

BAB 2 LANDASAN TEORI. Istilah komputer (computer) berasal dari bahasa latin computere yang berarti

Syarat Menjalankan Program pada aplikasi Desktop. Prosedur Menjalankan Program Pada aplikasi Desktop

BAB 3 PERANCANGAN SISTEM

`BAB III ANALISIS DAN PERANCANGAN SISTEM. Material Requirement Planning (MRP) berbasis web pada CV. Mitra Techno Sains.

BAB 3 PERANCANGAN PROGRAM. objek, analisis blob, SMS service, dan video saving. Deteksi objek adalah proses untuk

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. digunakan, kemudian dilanjutkan dengan rancangan sistem aplikasi berupa cetak biru

BAB II LANDASAN TEORI

BAB 4 RANCANGAN YANG DIUSULKAN

BAB 4 PERANCANGAN SISTEM

Penguncian pada Concurrency Control

BAB 3 PERANCANGAN PROGRAM APLIKASI

Tampilan layar menu login

BAB 2 LANDASAN TEORI

BAB IV ANALISA DAN PEMBAHASAN. diberikan dari kerja praktek ini adalah proses entry data alat tulis kantor yang

BAB IV ANALISA DAN DESAIN

Lampiran 1. Notasi UML. Generalization. Aggregation. Association 0..* 1..* L.1. Class(generalization) Class(Specialization) Class(Specialization)

BAB IV ANALISIS DAN PERANCANGAN SISTEM. Kegiatan analisis sistem yang berjalan dilakukan dengan analisis yang

Praktikum 6 SubForm dan Kode VBA

TSI Perbankan MANAJEMEN DATA LOCK. Obyektif : 1. Mengetahui konsep lock 2. Mengetahui konsep share pada file database. AS/400 hal. B.

Gambar Notifikasi via

BAB 3 PERANCANGAN PROGRAM APLIKASI

BAB 4 IMPLEMENTASI DAN EVALUASI. Pelaksanaan implementasi sistem bank soal pada Binus School Serpong. melibatkan beberapa elemen utama, yaitu:

LAMPIRAN 1 DATA KECELAKAAN KERJA

BAB 2 LANDASAN TEORI. Istilah komputer ( computer ) berasal dari bahasa latin computere yang berarti

Gambar Rancangan Layar Halaman Kuis Guru (Langkah Dua)

BAB III ANALISIS DAN PERANCANGAN

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

BAB V IMPLEMENTASI SISTEM. tersebut siap diterapkan atau diimplementasikan. Tahap Implementasi Sistem

BAB II LANDASAN TEORI

BAB 3 ANALISIS DAN PERANCANGAN SOLUSI. seniman, penyanyi, penulis, dan musisi). Istilah ini digunakan untuk

BAB 3 ANALISIS DAN PERANCANGAN

BAB III ANALISA SISTEM

Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle.

BAB V IMPLEMENTASI SISTEM DAN PENGUJIAN SISTEM

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

Use Case Spesification

BAB III PERANCANGAN DAN PEMBUATAN

Gambar 4.62 Layar Menu Penjualan Transaksi

KONEKSI NETBEANS DENGAN DATABASE SQLITE

APLIKASI MANAJEMEN PERKANTORAN E */**


selanjutnya (menampilkan serial number yang tersedia). Back : untuk kembali ke halaman sebelumnya. Halaman yang akan muncul adalah sebagai berikut

BAB III ANALISIS DAN DESAIN SISTEM

BAB 4 IMPLEMENTASI DAN EVALUASI. menjalankan aplikasi traffic monitoring dan SMS server. Terdiri dari Sierra Aircard 875

BAB III ANALISA DAN PERANCANGAN SISTEM

L-1 USER MANUAL PROGRAM GUI. User Manual Program GUI menjelaskan cara penggunaan program GUI.

PENDAHULUAN PENDAHULUAN TRANSAKSI TRANSAKSI TRANSAKSI 24/04/2016 TEKNIK RECOVERY

BAB 4 ANALISIS, SIMULASI, DAN PEMBAHASAN. Pendekatan Bayes dalam mengestimasi parameter digunakan dalam fungsi kerugian

BAB IV PEMBAHASAN. tangan pada tempat yang disediakan (form absen). Admin atau pegawai pengurus

Pemrograman dengan C++ Builder 2004 Taryana S Pendahuluan C++ Builder adalah sebuah aplikasi yang digunakan untuk pengembangan dengan

Gambar 3.1 Perancangan Sistem

Tutorial Spektra Accounting System

BAB III ANALISA DAN PERANCANGAN

DHCP Server Administrator

BAB IV IMPLEMENTASI DAN PENGUJIAN SERVER MMOG

BAB 4 IMPLEMENTASI DAN EVALUASI. Untuk menjalankan alat bantu normalisasi ini dibutuhkan sarana perangkat keras

Memulai IGOS Nusantara

BAB IV ANALISA DAN PERANCANGAN

Pertemuan 2. Struktur Sistem Operasi

Transkripsi:

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

Gambar 3. 1 Use Case Diagram Concurrency Control System pada RDBMS 66

67 3.2.1.1 Deskripsi Use Case AcceptNewTransaction Use Case Name Source Actor Description AcceptNewTransaction Requirement Concurrency Control Manager 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 Normal Flow ScheduleTransaction. Langkah 1 : Concurrency control manager menerima adanya transaksi yang siap untuk diproses. Langkah 2 : Sistem melakukan pengecekan sintaks. Sintaks yang dikirim harus mengikuti aturan penulisan. Jika sintaks yang dikirim tidak mengikuti aturan penulisan, maka server akan mengirimkan pesan error kepada client. Use case berikutnya tidak akan dijalankan.

68 Alternate Flow 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. Langkah 1 : Alt. Langkah 2 : 3.2.1.2 Deskripsi Use Case MakeTransactionOperation Use Case Name Source Actors Description MakeTransactionOperation Requirement Concurrency Control Manager 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 Langkah 1 : 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 operasi di dalam transaksi. Langkah 9 : Sistem membaca setiap OperationQuery untuk mendefinisikan tabel, kolom, dan record yang akan diakses. Langkah 10 :

71 Sistem mengeset Alternate Flow OperationStatus setiap operasi tersebut adalah wait. Langkah 11 : Sistem mencatat TimeArrival dari operasi tersebut. Langkah 1 : Alt. Langkah 2 : 3.2.1.3 Deskripsi Use Case IdentifyKeyNeeded Use Case Name Source Actors Description IdentifyKeyNeeded Requirement Concurrency Control Manager 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 Langkah 1 : 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 Alternate Flow KeyRequested dari operasi itu adalah exclusive lock. Langkah 1 : Langkah 2 :

73 3.2.1.4 Deskripsi Use Case CheckKeyUsedList Use Case Name Source Actors Description CheckKeyUsedList Requirement Concurrency Control Manager 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 Postconditions Operasi di dalam transaksi telah memiliki KeyRequested. Sistem telah selesai melakukan pembandingan lock yang sedang dipakai dengan KeyRequested dan menentukan status dari operasi di dalam transaksi. Normal Flow Langkah 1 : 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 sistem akan 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 menjadi bernilai executed..

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

77 Langkah 1 : Langkah 2 : 3.2.1.5 Deskripsi Use Case DefineOperationStatus Use Case Name Source Actors Description DefineOperationStatus Requirement Concurrency Control Manager 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 Langkah 1 : Langkah 2 : Sistem membaca isi variabel status dari operasi di dalam transaksi pada use case CheckKeyUsedList.

78 Langkah 3 : Status yang sudah dibaca dimasukkan menjadi OperationStatus ke dalam ScheduleOperation ScheduleOperationId sesuai yang Alternate Flow dibaca pada use case CheckKeyUsedList. Langkah 1 : Alt. Langkah 2 : 3.2.1.6 Deskripsi Use Case MakeOperationWaitForRequestedKey Use Case Name Source Actors Description MakeOperationWaitForRequestedKey Requirement Concurrency Control Manager Use case ini membuat operasi menunggu untuk mendapatkan RequestedKey. Preconditions Sistem telah selesai mendefinisikan OperationStatus di dalam ScheduleOperation.

79 Postconditions Operasi yang berstatus wait akan menunggu. Normal Flow Langkah 1 : 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 awal sebuah operasi menunggu untuk menjalankan teknik timeout. Langkah 6 : Dalam selang waktu tertentu, sistem akan mengecek KeyUsedList kembali.

80 Pengecekan kembali dilakukan apabila terjadi reload terhadap KeyUsedList. Pengecekan Alternate Flow kembali dilakukan mulai dari use case CheckKeyUsedList. Langkah 1 : Alt. Langkah 2 : 3.2.1.7 Deskripsi Use Case EntryOperationKeyToList Use Case Name Source Actors Description EntryOperationKeyToList Requirement Concurrency Control Manager Use case ini menyimpan lock yang diminta operasi ke dalam KeyUsedList. Preconditions Postconditions Sistem telah selesai mendefinisikan OperationStatus. Sistem menyimpan lock yang diminta di dalam KeyUsedList. Normal Flow Langkah 1 : 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 pada Alternate Flow setiap record. Langkah 1 : Alt. Langkah 2 :

82 3.2.1.8 Deskripsi Use Case PassXMLQueryToBeExecuted Use Case Name Source Actors Description PassXMLQueryToBeExecuted Requirement Concurrency Control Manager 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 Langkah 1 : Langkah 2 : Sistem membaca OperationQuery pada operasi yang memiliki OperationStatus berupa executed. Langkah 3 : Sistem mengirimkan query pada operasi yang akan dijalankan tersebut kepada recovery manager. Langkah 4 :

83 Sistem akan mencatat TimeExecuted ScheduleOperationId sesuai untuk Alternate Flow 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. Langkah 1 : Langkah 2 : 3.2.1.9 Deskripsi Use Case ReloadKeyUsedList Use Case Name Source Actors Description ReloadKeyUsedList Requirement Concurrency Control Manager 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 Langkah 1 : Concurrency control manage menerima adanya sinyal Langkah 2 : Sistem membaca TransactionId yang dikirim oleh recovery CommitTransaction dengan manager. TransactionId tertentu dari recovery manager. Langkah 3 : Sistem menghapus semua lock Alternate Flow didalam KeyUsedList yang sudah selesai digunakan oleh sebuah transaksi sesuai TransactionId yang dikirim oleh recovery manager. Langkah 1 : Alt. Langkah 2 :

85 3.2.1.10 Deskripsi Use Case ReloadScheduleOperation Use Case Name Source Actors Description ReloadScheduleOperation Requirement Concurrency Control Manager 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 Langkah 1 : Langkah 2 : Sistem membaca TransactionId yang dikirim oleh recovery manager. Langkah 3 : Sistem menghapus semua operasi di dalam sebuah transaksi yang tertulis didalam

86 ScheduleOperation sesuai Alternate Flow TransactionId yang dikirim oleh recovery manager. Langkah 1 : Alt. Langkah 2 : 3.2.1.11 Deskripsi Use Case ReloadScheduleTransaction Use Case Name Source Actors Description ReloadScheduleTransaction Requirement Concurrency Control Manager 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 Langkah 1 : Langkah 2 : Sistem membaca TransactionId yang dikirim oleh recovery manager. Langkah 3 : Sistem menghapus transaksi yang tertulis di dalam ScheduleTransaction sesuai Alternate Flow TransactionId yang dikirim oleh recovery manager. Langkah 1 : Langkah 2 : 3.2.1.12 Deskripsi Use Case MakeAllTransactionWaitingDuringBackupOperation Use Case Name Source MakeAllTransactionWaitingDuringBackupOperation Requirement

88 Actors Description Concurrency Control Manager 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 Langkah 1 : Concurrency Langkah 2 : control manager menerima adanya sinyal backup dari backup restore manager. Sistem akan membuat status 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 sebelum sistem mengirim 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 Alternate Flow penjadwalan transaksi. Langkah 1 : Langkah 2 :

90 3.2.1.13 Deskripsi Use Case RemoveAllScheduleToRestoreDatabase Use Case Name Source Actor Description RemoveAllScheduleToRestoreDatabase Requirement Concurrency Control Manager 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 Langkah 1 : Concurrency control manager menerima adanya sinyal untuk melakukan restore database dari backup restore manager. Langkah 2 : Jika ada transaksi yang sedang dieksekusi, baik yang sedang berstatus allowed maupun wait, sistem akan melakukan rollback terhadap semua transaksi yang sedang dieksekusi tersebut. Sistem

91 mengirimkan sinyal rollback kepada recovery manager, sehingga recovery manager dapat melakukan proses undo terhadap transaksi tersebut. Langkah 3 : Sistem akan menghapus semua data yang ada didalam KeyUsedList, ScheduleOperation, dan 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 Alternate Flow penjadwalan transaksi. Langkah 1 : Langkah 2 :

93 3.2.2 Class Diagram Gambar 3. 2 Class Diagram Concurrency Control System pada RDBMS

94 3.2.3 Diagram Alir (Flow Chart) false EXIT = false true Terima querydan dimasukkan ke dalam ScheduleTran saction Memilah transaksi ke dalam operasi-operasi dan dimasukkan ke dalam ScheduleOperation Transaksi yang mengalami rollback beserta semua operasi didalamnya akan dihapus dari KeyUsedList, dihapus dari ScheduleOperation, dan dihapus dari ScheduleTransaction. true Terjadi Rollback karena permintaan user false Tentukan kunci untuk operasi false Operasi membutuhkan akses menulis ke database true Request Shared Lock (read only) Request Exclusive Lock (read and write) true false KeyUsedList kosong Transaksi yang mengalami rollback beserta semua operasi didalamnya akan dihapus dari KeyUsedList, dihapus dari ScheduleOperation, dan dihapus dari ScheduleTransaction. Transaksi akan mengalami restart false Tabel dan record yang direquest untuk diakses terdapat di KeyUsedList (Sedang diakses transaksi lain) false true KeyRequested dari operasi adalah Shared Lock (read only) true false true true Terjadi timeout OperationStatus diubah menjadi WAIT false Key yang dipakai di KeyUsedList adalah Shared Lock (read only) true false Masih terdapat operasi dalam satu transaksi yang mengecek kebutuhan kunci 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 NEXT : END 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.