Upload
others
View
19
Download
0
Embed Size (px)
Citation preview
IMPLEMENTASI TRANSACTION MANAGEMENT
PADA DATABASE SISTEM INVENTORY
(Studi Kasus : PT. Mega Andalan Kalasan)
Tugas Akhir
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Jurusan Teknik Informatika
Oleh:
Caecilia Ika Wahyu A
NIM : 025314070
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2007
IMPLEMENTATION OF TRANSACTION MANAGEMENT IN
INVENTORY SISTEM DATABASE
(Case Study : PT. Mega Andalan Kalasan)
A Thesis
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Teknik Degree
In Informatics Engineering
By:
Caecilia Ika Wahyu A. Student Number : 025314070
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY
YOGYAKARTA 2007
ii
PERNYATAAN
Dengan ini saya sebagai penulis tugas akhir menyatakan dengan
sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian
karya orang lain, kecuali pemikiran, metode atau hasil penelitian orang lain yang
diambil disebutkan dengan jelas sebagai acuan.
Yogyakarta, 20 September 2007
(Caecilia Ika Wahyu)
v
HALAMAN PERSEMBAHAN
Skripsi ini Kupersembahkan untuk :
Yesus Kristus dan Bunda Maria yang selalu mengasihi dan membimbing
aku dalam setiap perjalanan hidupku
Almarhum Ayahku yang telah memberikan pendampingan dari aku kecil
hingga Dewasa.
Ibuku atas Cinta dan perhatiannya yang diberikan kepadaku Semenjak
Kecil Hingga Dewasa
Adikku yang menjadi semangat hidupku di perantauan.
Seseorang yang selalu ada untukku baik dalam suka maupun duka
Dan Seluruh Sahabat-sahabatku yang memberikan kasih dan persahabatan
yang indah
vi
HALAMAN MOTTO
Kita patut dan layak berusaha tapi hanya Tuhan
yang menentukan
Semua kehendak-NYA indah pada waktunya
vii
ABSTRAKSI
Setiap ada penambahan dan pengurangan data stok material pada
database sistem inventory Raw Material pada Unit Komponen Logam yang
dimiliki oleh PT. Mega Andalan Kalasan seringkali terjadi ketidak konsistenan
data dikarenakan data tersebut digunakan oleh banyak pengguna secara hampir
bersamaan.
Oleh karenanya diperlukan teknologi Transaction Management untuk
melakukan pengelolaan transaksi, sehingga transaksi yang berlangsung dapat
dilaksanakan dengan baik dan database dapat terjaga konsistensinya. Teknologi
ini diimplementasikan dengan menggunakan bahasa pemrograman SQL pada
mesin DBMS SQLServer 2000.
Hasilnya adalah transaksi-transaksi tersebut dapat berjalan berurutan dan
saling menunggu, sehingga konsistensi basis data dapat terjaga namun pada
implementasi ini masih memiliki kelemahan yaitu tidak adanya peringatan pada
user apabila transaksi-transaksi saling bertabrakan dan terjadi kegagalan proses
sehingga memerlukan pengulangan eksekusi terhadap transaksi tersebut.
viii
ABSTRACT
Every addition and reduction of data stock from material table in system
database inventory Raw Material at Unit Komponen Logam has owned by PT.
Mega Andalan Kalasan often happen inconsistency data because of the data used
by lot of users at the same time.
For the reason needed transaction management technology to manage
transaction, so that transaction goes on can be executed better. This technology is
implemented by SQL programming language in DBMS SQL Server 2000.
The result is that transaction can wait succesively and awaiting each other,
so that database consistency can awake, but in this implementation still have
weakness that is commemoration inexistence for user. If transaction is collision on
each other and happened failure of process and needing to restart that transaction.
ix
KATA PENGANTAR
Puji dan syukur penulis haturkan kepada Tuhan Yang Maha Kuasa, karena
dengan rahmat-Nya penulis dapat menyelesaikan Laporan Tugas Akhir ini dengan
baik. Penulisan tugas Akhir ini ditujukan untuk memenuhi salah satu syarat
memperoleh gelar Sarjana Teknik Jurusan Teknik Informatika.
Penulis juga mengucapkan banyak terima kasih kepada pihak-pihak yang
telah membantu dalam menyelesaikan penulisan tugas akhir ini baik dalam
memberikan bimbingan, kritik maupun saran antara lain kepada :
1. Ir. Gregorius Heliarko SJ, SS, BST, MA, M.Sc., selaku Dekan Fakultas
Sains dan Teknologi Universitas Sanata Dharma.
2. Ibu Agnes Maria Polina, S.Kom, M.Sc. selaku Ketua Jurusan Teknik
Informatika Universitas Sanata Dharma.
3. Bapak JB. Budi Darmawan, S.T., M.Sc. selaku dosen pembimbing Tugas
Akhir yang telah banyak membantu dan memberikan bimbingan kepada
penulis.
4. Ibu Ridowati Gunawan, Pak Wawan, Pak Yudi, Pak Wisnu Selaku dosen
Penguji TA.
5. Seluruh Dosen Universitas Sanata Dharma, khususnya Dosen Teknik
Informatika, yang telah mengajarkan banyak ilmu kepada penulis.
6. Ibu Natasya (Kepala IT PT MAK), Mas Arief, Mas Santo (Staff IT PT
MAK), terimakasih atas bantuannya selama melakukan penelitian dan
pengambilan data contoh di PT. Mega Andalan Kalasan.
x
7. Bapak Nur Haryanto,S.T. selaku pembimbing Tugas Akhir di bagian IT
PT Mega Andalan Kalasan..
8. Ibunda penulis atas doa, semangat, dan dukungan selama penulis
mengerjakan Laporan Tugas Akhir.
9. Gwendy yang telah memberikan semangat kepada penulis untuk
menyelesaikan Laporan Tugas Akhir ini.
10. Adeku Dwi yang telah memberikan dukungan dan dorongan serta
semangat untuk menyelesaikan Tugas Akhir ini.
11. Sahabat-sahabat yang telah banyak membantu, Yudho, Anahoy, Che, Tere,
Nur, Dian terima kasih atas semuanya.
12. Rekan- Rekan dari Dria Manunggal, terimakasih atas pinjaman Internet
gratisnya.
13. Rekan-rekan Teknik Informatika, khususnya angkatan 2002 yang selama
ini membantu, mendukung dan mendorong penulis untuk menyelesaikan
laporan tugas akhir ini.
14. Teman-teman kos Caritas, ad’ Dwi Moon, ad’ Siska Cemplux, Kak Enink,
Monic, Siska Doraemon, Fanny, Angga, Siska Klaten, Putri, Vuri,
Anggun, Kak Desi, Mbak Diah, Viche, Kak Susan, Kak Ina terima kasih
atas dukungan dan persahabatan kalian.
15. Pihak-pihak lain yang tidak dapat penulis sebutkan satu per satu yang telah
banyak membantu penulis dalam menyelesaikan laporan tugas akhir ini.
xi
Akhir kata, penulis berharap semua pihak dapat memberikan kritik dan
saran yang membangun di masa mendatang. Semoga laporan tugas akhir yang
sederhana dan jauh dari sempurna ini dapat memberi manfaat bagi semua pihak
yang membutuhkan.
Yogyakarta, September 2007
Penulis
xii
DAFTAR ISI
HALAMAN JUDUL …………………………………………………. ii
HALAMAN PERSETUJUAN …………………………………………….. iii
HALAMAN PENGESAHAN …………………………………….. iv
HALAMAN PERNYATAAN KEASLIAN KARYA …………………….. v
HALAMAN PERSEMBAHAN …………………………………………… vi
HALAMAN MOTTO ……………………………………………………… vii
ABSTRAKSI ……………………………………………………………… viii
ABSTRACT ………………………………………………………………. ix
KATA PENGANTAR ……………………………………………………… x
DAFTAR ISI ……………………………………………………………….. xiii
DAFTAR GAMBAR ……………………………………………………… xvii
DAFTAR TABEL ………………………………………………………… xix
BAB I PENDAHULUAN ……………………………………………... 1
1.1 Latar Belakang Masalah …………………………………....... 1
1.2 Rumusan Masalah …………………………………………. 2
1.3 Batasan Masalah …………………………………………… 2
1.4 Tujuan Penelitian …………………………………………... 3
1.5 Manfaat Penelitian …………………………………………. 3
1.6 Metodologi Penelitian ……………………………………… 3
1.7 Sistematika Penulisan ………………… 5
BAB II LANDASAN TEORI …………………………………………... 7
xiii
2.1 Sistem, Informasi, dan Sistem Informasi ………………….. 7
2.1.1 Sistem ………………………………………………… 7
2.1.2 Informasi ……………………………………………… 7
2.1.3 Sistem Informasi ……………………………………… 8
2.2 Basis Data ………………………………………………….. 8
2.3 Transaction Management ………………………………… 9
2.3.1 Transaction Support …………………………………. 9
2.3.2 Concurrency Control …………………………………. 13
2.3.2.1 Serializability dan Recoverability …………… 20
2.3.2.2 Metode Penguncian (Locking Methods)……… 21
2.3.2.3 Deadlock ……………………………………... 22
2.3.2.4 Metode Penandaan Waktu (Timestamping)….. 22
2.3.2.5 Granularity Dari Data Item..……………………. 23
2.3.3 Database Recovery .......................................................... 23
2.3.3.1 Kebutuhan Recovery ........................................... 23
2.3.3.2 Transaction and Recovery ................................... 25
2.3.3.3 Recovery Facilities ............................................. 25
2.3.3.4 Recovery Rechniques .......................................... 26
2.3.3.5 Advanced Transaction Models ............................ 27
2.4 Pemodelan Data .................... .................................................. 28
2.4.1 Conceptual Design ......................................................... 28
2.4.2 Logical Design ..... ......................................................... 28
2.4.3 Physical Design ............................................................. 29
xiv
2.5 Pemodelan Proses ................... ................................................. 29
2.6 SQL Server 2000 ................... .................................................. 30
2.6.1 Trigger ................... ......................................................... 30
2.6.2 Store Procedure ...... ........................................................ 31
2.6.3 Isolation Level ...... .......................................................... 31
BAB III ANALISIS DAN PERANCANGAN SISTEM ………………… 33
3.1 Analisis Sistem ...........................………………...……….. 33
3.1.1 Gambaran Umum Sistem Yang Akan Dibuat ……..…... 32
3.1.2.1 Proses Pengumpulan Kebutuhan …………….... 34
3.1.2.2 Use Case Diagram……………………………... 35
3.1.2.3 Pemodelan Proses (Data Flow Diagram) …….. 36
3.1.2.4 Pemodelan Data (Conceptual Database Design) 46
3.2 Perancangan Sistem ………………………………………... 47
3.2.1 Desain Database ……………………………………… 47
3.2.2 Desain Tabel …………………………………………. 48
BAB IV IMPLEMENTASI DAN ANALISA HASIL ................................. 53
4.1 Karakteristik Sistem ................................................................. 53
4.2 Kebutuhan Sisem ...................................................................... 53
4.3 Aplikasi Yang Digunakan .................................................... 54
4.3.1 Store Procedure Untuk Pemakaian Material ................... 54
4.3.2 Store Procedure Untuk Penerimaan Material ………….. 56
4.4 Pengujian Transaction Management ………………………… 59
4.5 Kelebihan Sistem ……………………………………………. 63
xv
4.6 Kekurangan Sistem ………………………………………….. 63
BAB V PENUTUP ……………………………………………………….. 64
5. 1 Kesimpulan ……………………………………………….… 64
5.2 Saran ……………………………………………………..…. 64
DAFTAR PUSTAKA …………………………………………………….… 65
xvi
DAFTAR GAMBAR
Gambar 2.1 Diagram transisi keadaan sebuah transaksi ……………………... 11
Gambar 3.1 Use Case Diagram …………………………………………….. 35
Gambar 3.2 Context Diagram ………………………………………………. 36
Gambar 3.3 Diagram Berjenjang ..................................................................... 37
Gambar 3.4 Diagram Berjenjang lanjutan …..……………………………… 38
Gambar 3.5 Diagram Berjenjang lanjutan …..……………………………… 39
Gambar 3.6 Overview Diagram Level 0 ………….………………………….. 40
Gambar 3.7 Overview Diagram Level 1 Proses 3 ….………………………… 41
Gambar 3.8 Overview Diagram Level 1 Proses 4 …………………………… 41
Gambar 3.9 Overview Diagram Level 1 Proses 5 ……………………………. 42
Gambar 3.10 Overview Diagram Level 1 Proses 6 …………………………. 43
Gambar 3.11 Overview Diagram Level 1 Proses 7 …………………………. 43
Gambar 3.12 Overview Diagram Level 1 Proses 8 ………………….……... 44
Gambar 3.13 Overview Diagram Level 1 Proses 9 ……………………….... 44
Gambar 3.14 Overview Diagram Level 1 Proses 10 ……………………….. 45
Gambar 3.15 Entity Relationship Diagram ………………………………… 46
Gambar 3.16 Logical Database Design ……………..……………………… 47
Gambar 4.1 Store Procedure Pemakaian Material ............................................. 54
Gambar 4.1 Store Procedure Penerimaan Material…………………………… 57
Gambar 4.3 Perintah Delay Untuk Memberi Jeda Waktu …………………… 59
Gambar 4.4 Perintah Eksekusi Store Procedure Pemakaian Material ……….. 60
xvii
Gambar 4.5 Contoh Transaksi Berhasil Dilaksanakan …….. ……………….. 61
Gambar 4.6 Data Material Yang Stoknya Telah Berubah ...…….…………… 61
Gambar 4.7 Contoh Transaksi Yang Digagalkan ...………….……………..... 62
Gambar 4.8 Data Stock Material Yang Hanya Diubah Oleh Transaksi
Pemakaian Material …....……...........................................................................
63
xviii
DAFTAR TABEL
Tabel 2.1 Tabel Contoh Masalah Hilangnya Data …………………………. 14
Tabel 2.2 Tabel Contoh Transaksi Yang Belum Dilaksanakan ......................... 16
Tabel 2.3 Tabel Contoh Analisis Yang Tidak Konsisten ................................. 18
Tabel 3.1 Tabel Material ……..……………………………………………… 48
Tabel 3.2 Tabel Group Head ……..…………………………………………. 48
Tabel 3.3 Tabel Gudang .…………………………………………………… 49
Tabel 3.4 Tabel Vendor ……………….…………………………………… 49
Tabel 3.5 Tabel Penerimaan ..........………………….……………………… 50
Tabel 3.6 Tabel Detail Penerimaan Material ..……………………………… 50
Tabel 3.7 Tabel Pemakaian Material …………………………………………. 51
Tabel 3.8 Tabel NTAG Out ...............…………………..…………………….. 52
Tabel 3.9 Tabel NTAG In ....……… 52
Tabel 3.10 Tabel NTAG In .………………………………………………… 52
xix
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Dunia teknologi informasi berkembang dengan pesat, dimana
perkembangan teknologi informasi ini sesuai dengan kebutuhan akan
pemecahan permasalahan mengenai berbagai kendala yang dihadapi dalam
sebuah perusahaan. Permasalahan-permasalahan yang dihadapi misalnya tidak
konsistennya database, kehilangan data saat data tersebut diubah yang
mengakibatkan informasi yang diberikan menjadi tidak sesuai.
Dengan adanya teknologi sistem informasi serta manajemen basis data
yang baik diharapkan permasalahan-permasalahan tersebut dapat diselesaikan
dengan baik sehingga menghasilkan informasi yang tepat, cepat dan akurat.
PT Mega Andalan Kalasan merupakan sebuah perusahaan yang bergerak
dalam bidang produksi peralatan rumah sakit. Di dalam usahanya untuk
memenuhi kebutuhan produksi, perusahaan ini memerlukan sistem informasi
inventory yang baik dan handal terutama pada unit komponen logam untuk
database sistem inventory raw material. Namun yang terjadi pada unit tersebut
adalah beberapa informasi yang dibutuhkan oleh pengguna sering tidak akurat
sehingga menghambat kinerja pengguna. Oleh karenanya diterapkan
Transaction Management pada database sistem inventory untuk mengatasi
permasalahan tersebut, sehingga database tersebut dapat mempertahankan
1
kosistensinya, yang diharapkan mampu memberikan informasi yang sesuai
kepada pengguna.
1.2 Rumusan masalah
Dari latar belakang masalah di atas maka dapat dirumuskan sebagai
berikut:
Bagaimana menerapkan transaction management pada database sistem
inventory dengan data contoh yang diambil dari Gudang Raw Material
Komponen Logam PT. Mega Andalan Kalasan.
1.3 Batasan Masalah
Dalam mengimplementasikan sistem inventory ini terdapat berbagai
batasan sebagai berikut :
1. Data contoh yang diambil adalah data dari sistem inventory gudang
Raw Material unit Komponen Logam yang dimiliki oleh PT. Mega
Andalan Kalasan.
2. Tidak membahas mengenai Sistem Informasi dan hanya berfokus
pada penerapan Transaction Management dengan menggunakan
Store procedure.
3. Tidak membahas mengenai keamanan jaringan.
4. Implementasi sistem ini menggunakan bahasa pemrograman SQL
pada mesin DBMS SQL Server.2000.
2
1.4 Tujuan Penelitian
Adapun tujuan dari penulisan tugas akhir ini adalah untuk menerapkan
Transaction Management pada database sistem inventory dengan
menggunakan store procedure. Sehingga dapat membantu staf gudang Raw
Material unit Komponen Logam di PT Mega Andalan Kalasan dalam
mengatasi permasalahan hilangnya data yang diubah dan untuk menjaga
konsistensi basis data pada sistem inventory, dengan menggunakan bahasa
pemrograman SQL dalam database SQL Server 2000.
1.5 Manfaat Penelitian
Manfaat penelitian yang dilakukan adalah untuk menerapkan prinsip
Transaction Management pada database sistem inventory. Sehingga dapat
membantu staf gudang Raw Material unit Komponen Logam di PT Mega
Andalan Kalasan dalam mengatasi permasalahan hilangnya data yang diubah
dan untuk menjaga konsistensi basis data pada sistem inventory.
1.6 Metodologi Penelitian
Metode pengumpulan data untuk mengembangkan sistem inventory pada
Tugas Akhir adalah metodologi terstruktur (Whitten, J.L., Bentley, L.D.,
Barlow, V.M., 2004).
3
Alat dan teknik yang digunakan dalam penelitian ini adalah :
1. Studi Literatur
Mempelajari bahan-bahan tertulis baik berupa buku ataupun makalah
yang berkaitan dengan prinsip Transaction Management pada
database dan bahasa pemrograman SQL pada DBMS SQL Server
2000 yang akan digunakan dalam mengembangkan sistem.
2. Wawancara
Teknik pengumpulan data yang dilakukan dengan cara tanya jawab
dan bertatap muka langsung dengan nara sumber yaitu dalam hal ini
adalah staf unit IT pada PT. Mega Andalan Kalasan untuk
mendapatkan informasi mengenai Sistem informasi inventori Raw
Material unit Komponen Logam yang dimiliki oleh PT. Mega Andalan
Kalasan.
3. Survei dan pengambilan data contoh di PT. Mega Andalan Kalasan
Melakukan survei dan pengambilan data contoh pada unit Komponen
Logam dengan data contoh adalah data gudang Raw Material yang
dimiliki oleh PT. Mega Andalan Kalasan.
4. Analisa dan perancangan sistem
Analisa dan perancangan system yang digunakan adalah metode
terstruktur menurut Jeffrey L.Whitten antara lain :
1. Pemodelan persyaratan sistem menggunakan use case diagram
Diagram ini menggambarkan interaksi antara sistem dengan sistem
eksternal dan pengguna.
4
2. Pemodelan proses
Pemodelan proses meliputi pembuatan diagram konteks, diagram
dekomposisi, overview diagram.
3. Pemodelan data
Pemodelan database dengan menggunakan Entity Relationship
diagram
4. Desain menu pengguna sistem
Desain menu pengguna sistem meliputi desain masukkan dan
keluaran dari sistem yang akan dibuat.
5. Analisis dan evaluasi program
1.7 Sistematika Penulisan
Bab I. Pendahuluan
Pada bab ini akan menjelaskan mengenai latar belakang masalah,rumusan
masalah, batasan masalah, tujuan penelitian, metodologi penelitian, dan
sistematika penulisan
Bab II. Landasan Teori
Dalam bab ini akan menjelaskan dasar teori mengenai konsep sistem
informasi dan transaction management pada database yang akan menjadi
acuan bagi penulisan skripsi.
Bab III. Analisa dan Perancangan Sistem
Pada bab ini berisi pembahasan, analisa sistem, dan perancangan desain
sistem secara terperinci.
5
Bab IV. Implementasi Sistem dan Analisa Hasil
Pada bab ini berisi mengenai implementasi dan analisa hasil dari
penerapan Transaction management pada database sistem inventory.
Bab VI. Kesimpulan dan Saran
Pada bab ini menjelaskan tentang kesimpulan yang diambil dari penulisan
tugas akhir ini serta saran yang diberikan
6
BAB II
LANDASAN TEORI
2.1 Sistem, Informasi, dan Sistem Informasi
2.1.1 Sistem
Sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk
mencapai suatu tujuan tertentu (Jogiyanto, 1999). Definisi tersebut lebih
dapat diterima, karena pada kenyataannya suatu sistem terdiri dari
beberapa elemen atau subsistem. Elemen-elemen tersebut tidak dapat
berdiri sendiri-sendiri dalam suatu sistem tetapi harus saling berinteraksi
dan saling berhubungan untuk membentuk satu kesatuan sehingga tujuan
sistem dapat tercapai. Maka suatu sistem harus mempunyai tujuan tertentu
agar elemen masukan, elemen pengolah dan elemen keluaran dapat
ditentukan dengan tepat.
2.1.2 Informasi
Informasi adalah data yang diolah menjadi bentuk yang lebih berguna
dan lebih berarti bagi yang menerimanya ( Jogiyanto, 1999). Informasi
sangat penting dalam suatu organisasi. Suatu sistem yang kurang
mendapatkan informasi akan menjadi kecil dan akhirnya akan habis.
Informasi-informasi yang diperoleh dari suatu sistem dapat digunakan
dalam pengambilan sebuah keputusan serta dalam melakukan tindakan
selanjutnya, sehingga dibutuhkan informasi yang akurat, tepat pada
waktunya dan bermanfaat bagi penggunanya. Selain itu informasi harus
7
memiliki nilai informasi yang dapat ditentukan oleh dua hal yaitu manfaat
dan biaya mendapatkannya. Suatu informasi dikatakan bernilai jika
manfaatnya lebih efektif dibandingkan dengan biaya untuk mendapatkan
informasi tersebut. Suatu informasi yang diperoleh mungkin memiliki
beberapa kegunaaan sehingga digunakan tidak hanya oleh satu pihak saja
di dalam suatu organisasi melainkan digunakan bersama-sama.
2.1.3 Sistem Informasi
Sistem informasi adalah suatu sistem di dalam suatu organisasi yang
mempertemukan kebutuhan pengolahan transaksi harian, mendukung
operasi, bersifat manajerial dan kegiatan strategi dari suatu organisasi dan
menyediakan pihak luar tertentu dengan laporan-laporan yang diperlukan
(Robert A. Leitch dan K. Roscoe Davis, 1993).
2.2 Basis Data
Basis data atau database adalah kumpulan data yang diatur dan
diorganisasikan dalam suatu cara yang sistematis, untuk mengurangi
duplikasi data dan memberikan fasilitas pada sejumlah pengguna pada
beberapa aplikasi. Sedangkan DBMS (Database Management System)
adalah suatu cara yang paling efisien untuk mengelola atau memproses
database.
database adalah kumpulan data yang saling berelasi, berisi informasi
untuk pemakainya (F. Korth 1986). Sedangkan DBMS adalah kumpulan
8
data yang saling berelasi dan set program untuk mengakses (mengambil,
mengubah, menambah) data tersebut
2.3 Transaction Management
Transaction Management pada basis data memiliki fungsi agar basis
data dapat diandalkan atau dipercaya. Yang termasuk di dalamnya adalah
transaction support, concurrency control, dan database recovery.
Transaction support adalah jaminan yang diberikan oleh DBMS supaya
empat sifat penting dari transaksi yaitu atomicity, consistency, isolation,
dan durability dalam mempertahankan data saat menghadapai akses yang
konkuren dan kegagalan sistem dapat dipertahankan.
2.3. 1 Transaction Support
Transaksi adalah sebuah tindakan atau serangkaian tindakan yang
dilakukan oleh pengguna tunggal atau program aplikasi yang membaca
atau mengubah isi dari basis data (Connoly, T., Begg, C., 2005).
Transaksi adalah suatu unit kerja logis pada basis data yang dapat
berupa satu program utuh, sebagian dari program atau suatu perintah
tunggal seperti perintah INSERT atau UPDATE dalam perintah SQL.
Sebuah transaksi sebaiknya selalu mentransformasikan basis data dari satu
keadaaan konsisten ke keadaan konsisten yang lain, meskipun konsistensi
mungkin saja dilanggar pada saat proses transaksi.
9
Sebuah transaksi dapat mempunyai satu atau dua hasil, jika sukses
seluruhnya, transaksi dapat dikatakan telah dilakukan (commited) dan
database mencapai suatu keadaan konsisten yang baru, Sebaliknya jika
gagal, transaksi akan dibatalkan. Jika transaksi dibatalkan, maka basis data
harus dikembalikan ke keadaan konsisten seperti sebelum transaksi
tersebut dimulai. Transaksi tersebut disebut rolled back atau undone.
Sebuah transaksi yang telah dilakukan (commited transaction) tidak
dapat dibatalkan. Jika diputuskan transaksi yang telah dilakukan memiliki
suatu kesalahan maka harus dilakukan transaksi pengganti (compensating
transaction) untuk mengembalikan pengaruhnya.
Pernyataan BEGIN TRANSACTION, COMMIT dan ROLLBACK
adalah pernyataan dari Data Manipulation Language (DML) yang memiki
fungsi untuk membatasi transaksi-transaksi. Jika pernyataan tersebut tidak
digunakan maka transaksi dianggap sebagai transaksi tunggal (single
transaction) dimana dianggap COMMIT saat program selesai dijalankan
dengan benar, dan ROLLBACK jika gagal.
10
Diagram transisi keadaan sebuah transaksi dapat dilihat seperti berikut :
Gambar 2.1 Diagram transisi keadaan sebuah transaksi
Ada lima keadaan di dalam transaksi antara lain :
1. ACTIVE (aktif).
2. PARTIALLY COMMITED (sebagian dilaksanakan) kondisi ini terjadi
setelah statement terakhir dieksekusi. Pada saat ini ada kemungkinan
ditemukan bahwa transaksi melanggar serializability atau melanggar
integrity constraint, maka transaksi harus dibatalkan, dengan demikian
transaksi tersebut akan menuju keadaan gagal (failed state) dan harus
dibatalkan. Jika transaksi sukses, maka beberapa perubahan ( update)
dapat disimpan secara aman dan transaksi menuju ke keadaan
COMMITED.
3. COMMITED (dilaksanakan).
4. FAILED (gagal) keadaan ini terjadi jika transaksi tidak dapat
dilaksanakan atau transaksi dibatalkan pada saat keadaan aktif (active
state), hal ini disebabkan karena pembatalan transaksi oleh user atau
concurency control protocol membatalkan transaksi untuk memastikan
serializability.
11
5. ABORTED (dibatalkan).
Ada empat hal yang harus dimiliki semua transaksi, yang disebut sifat
ACID yaitu :
1. Atomicity yaitu sebuah transaksi adalah suatu unit yang tidak dapat
dibagi, yaitu dilakukan secara menyeluruh atau tidak sama sekali. Hal
ini dijamin oleh DBMS pada sub sistem recovery.
2. Consistency yaitu sebuah transaksi harus mengubah basis data dari
satu keadaan konsisten (consistent state) ke keadaan konsisten lain.
Consistency menjadi tanggung jawab bersama antara DBMS dan
pengembang program aplikasi.
3. Isolation adalah keadaan dimana transaksi-transaksi melakukan
eksekusi secara bebas atau tidak tergantung satu sama lain. Sehingga
apabila ada efek yang timbul dari sebuah transaksi yang belum selesai
sebaiknya tidak perlu diketahui transaksi lain.
4. Durability adalah hasil dari suatu transaksi yang sukses dicatat secara
permanen dalam basis data dan tidak boleh hilang oleh suatu kesalahan
apapun.
12
2.3.2 Concurrency Control
Concurrency control adalah proses pengelolaan operasi-operasi yang
berjalan bersama pada database tanpa mengganggu satu sama lain
(Connoly, T., Begg, C., 2005) . Tujuan dari concurrency control adalah
untuk menjadualkan transaksi sedemikian rupa dalam suatu cara sehingga
menghindari gangguan satu sama lain. Hal ini dibutuhkan karena dalam
transaksi mungkin terjadi masalah-masalah seperti masalah hilangnya data
yang diubah, masalah pembacaan yang salah dan masalah analisa yang
tidak konsisten.
a. Masalah hilangnya data yang diubah (the lost update problem)
Masalah hilangnya data yang diubah atau the lost update problem
adalah suatu operasi update yang sukses oleh seorang user dan dapat
dikesampingkan oleh user yang lain. Contohnya dapat dilihat pada
tabel 2.1.
13
tabel 2.1 contoh masalah hilangnya data
Waktu T1 T2 balx
t1 Begin transaction 100
t2 Begin transaction Read (balx) 100
t3 Read (balx) balx = balx + 100 100
t4 balx = balx -10 Write (balx) 200
t5 Write (balx) commit 90
t6 commit 90
t1 : transaksi T2 dimulai
t2 : transaksi t1 dimulai, pada saat yang hampir bersamaan T2
membaca balance yang isinya adalah £100.
t3 : transaksi T1 membaca balance yang berisi £100. Pada saat
yang hampir bersamaan T2 menambah balance dengan £100
dan menyimpannya dalam balx, sehingga balx menjadi £200,
namun karena T2 belum memberikan perintah write balx, maka
T2 masih mengenal balx sebesar £ 100.
t4 : transaksi T1 mengurangi balance sebesar £10 dan
menyimpannya dalam balx , sehingga balx menjadi £90. Pada
saat yang hampir bersamaan T2 melaksanakan instruksi write
balx, sehingga balx sekarang berisi £200
14
t5 : transaksi T1 melaksanakan instruksi write balx yang berisi £90.
Pada saat yang bersamaan T2 menyatakan transaksinya commit
atau telah dilakukan, jadi nilai balx yang commit adalah £90.
t6 : transaksi T1 menyatakan transaksinya commit atau telah
dilakukan, jadi nilai balx yang telah commit adalah £90.
Dari contoh tersebut tampak bahwa nasabah menderita kerugian
£100. Untuk itu diperlukan solusi untuk mencegah hilangnya
perubahan data dengan melarang transaksi T1 membaca nilai balx,
sampai transaksi T2 selesai melakukan perubahan data.
b. Masalah transaksi yang belum dilaksanakan (the uncommitted
dependency problem) atau masalah pembacaan yang salah (the dirty
read problem)
Permasalahan ini terjadi jika saat suatu transaksi diijinkan membaca
hasil suatu transaksi lain sebelum transaksi lain tersebut selesai
dilakukan. Contohnya dapat dilihat pada tabel 2.2.
15
tabel 2.2 contoh masalah transaksi yang belum dilaksanakan
Waktu T3 T4 balx
t1 Begin transaction 100
t2 Read (balx) 100
t3 balx = balx + 100 100
t4 Begin transaction Write (balx) 200
t5 Read (balx) … 200
t6 balx = balx -10 rollback 100
t7 Write (balx) 190
t8 commit 190
t1 : transaksi T4 dimulai
t2 : transaksi T4 membaca balance yang isinya adalah £100.
t3 : transaksi T4 menambah balance dengan £100.
t4 : transaksi T3 baru dimulai. Transaksi T4 menyimpan hasil
perhitungan tadi sehingga balx menjadi £200.
t5 : transaksi T3 membaca balx yang bernilai £200. Transaksi T4
tidak melakukan proses apapun.
t6 : transaksi T3 melakukan pengurangan terhadap balx yang
diketahuinya bernilai £200 dengan £10. Pada saat yang sama
transaksi T4 membatalkan perubahan yang terakhir dilakukannya
yaitu mengubah balx yang berisi £100 menjadi £200 sekaligus
16
mengakhiri prosesnya, sehingga balx berisi £100 lagi tanpa
diketahui transaksi T3.
t7 : melalui instruksi write balx , transaksi T3 menyimpan hasil
pengurangan pada balx tadi sehingga balx berisi £190.
t8 : T3 menyatakan transaksinya commit.
Dari contoh tersebut tampak bahwa nilai balx yang dibaca transaksi
T3 adalah salah (£190) seharusnya £90. Nilai balx yang salah
tersebut disebut dirty data. T3 membaca nilai yang belum selesai
diproses oleh T4 oleh karenanya terjadi kesalahan pembacaan. Untuk
mengatasinya maka T3 dicegah untuk tidak membaca nilai balx
sampai didapatkan hasil yang pasti dari T4 baik karena commit
ataupun abort.
c. Masalah analisis yang tidak konsisten (the inconsistent analysis
problem)
Problem ini terjadi ketika transaksi pertama membaca beberapa
nilai dari basis data tetapi transaksi kedua mengubah nilai-nilai
tersebut selama proses transaksi pertama belum selesai. Contohnya
dapat dilihat pada tabel 2.3.
17
tabel 2.3 contoh analisis yang tidak konsisten
Waktu T5 T6 balx baly balz sum t1 Begin
transaction 100 50 25
t2 Begin transaction
Sum = 0 100 50 25 0
t3 Read (balx) Read(balx) 100 50 25 0
t4 balx = balx -10 Sum=sum+balx 100 50 25 100 t5 Write (balx) Read ( baly) 90 50 25 100
t6 Read (balz) Sum= sum+baly 90 50 25 150
t7 balz = balz -10 90 50 25 150
t8 Write (balz) 90 50 25 150
t9 commit 90 50 25 150
t10 Sum= sum+ balz 90 50 25 185
t11 Write sum 90 50 25 185
t12 commit 90 50 25 185
t1 : Transaksi T6 dimulai.
t2 : Transaksi T5 dimulai, transaksi T6 mengubah nilai sum
menjadi 0.
t3 : Transaksi membaca nilai balx yang berisi £100, demikian pula
transaksi T6 juga membaca nilai balx yang berisi £100.
t4 : Tansaksi T5 mengurangi balx dengan nilai £10, sedangkan
transaksi T6 melakukan penjumlahan variabel sum dengan nilai
balx , dimana balx yang dikenalnya beisi £100, padahal balx
seharusnya bernilai £90.
t5 : Transaksi T5 menyimpan hasil perhitungan balx yang berisi
£90. Transaksi T6 membaca baly yang berisi £50. Pada saat ini
18
nilai balx yang diketahui transaksi T5 dan T6 sudah berbeda,
T5 mengetahui nilai balx= £90 sedangkan T6 mengetahui nilai
balx = £100. Sedangkan variabel sum seharusnya berisi £90
bukan £100
t6 : Transaksi T5 membaca balz berisi £25, sedangkan transaksi T6
menjumlahkan nilai sum sebelumnya yang berisi £100,
(seharusnya yang benar berisi £90) dengan nilai dari baly
sebesar £50 sehingga mendapatkan sum bernilai £150
(seharusnya bernilai £140).
t7 : Transaksi T5 menambahkan balz dengan £10, sedangkan
transaksi T6 tidak melakukan apapun.
t8 : Transaksi T5 menyimpan hasil perhitungan sebelumnya yaitu
balz = £35, dan transaksi T6 tidak melakukan apapun.
t9 : Transaksi T5 selesai ditandai dengan commit. Transaksi T6
membaca balz yang sudah ditambah £10 oleh transaksi T5
sehingga balz = 35.
t10 : Transaksi T6 menjumlahkan variabel sum dengan nilai dari
balz sehingga nilai sum menjadi 185.
t11 : Transaksi T6 menuliskan data sum sehingga data sum
menjadi 185.
t12 : Transaksi T6 selesai ditandai dengan commit.
Pada saat T4, transaksi T5 mengurangi balx dengan nilai £10 jadi
nilai balx menjadi £90 pada saat pernyataan write di t5. Namun karena
19
transaksi T6 melakukan penjumlahan variabel sum dengan nilai balx
pada saat t4 maka nilai balx yang dikenalnya masih berisi £100. Jadi
sehurusnya proses (read balx) dilakukan setelah transaksi T5
menyelesaikan perubahannya. Sehingga transaksi T6 juga mengalami
kekeliruan pada saat t6 karena nilai sum saat itu diketahui bernilai
£100 akibat dari transaksi T6 pada saat t4. Untuk menghindarinya
transaksi T6 dicegah untuk membaca balx sampai t9 saat transaksi T5
telah menyelesaikan perubahannya.
2.3.2.1 Serializability dan Recoverability
Serializability merupakan suatu cara untuk memaksimalkan
concurrency dalam sIstem, sehingga DBMS multi-user dapat memproses
transaksi secara bersama-sama tanpa gangguan. Serializability memiliki
tujuan untuk mendapatkan nonserial schedule yang mengijinkan transaksi-
transaksi mengeksekusi secara bersama-sama tanpa gangguan satu sama
lain sehingga akan menghasilkan basis data yang sama hasilnya seperti
jika diproses secara serial. Dalam serializability urutan operasi baca dan
tulis menjadi penting karena :
1. Jika dua transaksi hanya baca data saja, maka mereka tidak
akan menimbulkan konfik, dan urutan menjadi tidak penting.
2. Jika dua transaksi mempunyai baik baca maupun tulis pada
data yang berbeda, keduanya tidak akan menimbulkan konflik
dan urutan menjadi hal yang tidak penting.
20
3. Jika suatu transaksi melakukan tulis data dan transaksi lain
melakukan baca data atau tulis data pada saat yang sama, maka
urutan eksekusi menjadi penting.
Serializability identik dengan penjadwalan yang memelihara
kekonsistenan basis data, dengan mengasumsikan bahwa tak ada transaksi-
transaksi dalam penjadwalan tersebut yang gagal. Sehingga diperlukan
recoverability transaksi-transaksi dalam sutu penjadwalan, jika suatu
transaksi gagal, dibutuhkan untuk dapat mengembalikan pengaruh
transaksi ke keadaan semula.
Recoverable schedule adalah suatu penjadwalan dimana untuk setiap
pasang transaksi Ti dan Tj., jika Tj membaca sebuah item data yang
sebelumnya ditulis oleh Ti, maka operasi commit dari Ti yang telah
dilaksanakan diperlukan sebelum operasi commit dari Tj.
2.3.2.2 Metode Penguncian (Locking Methods)
Penguncian atau locking adalah suatu prosedur yang digunakan
untuk mengendalikan akses yang bersamaan pada suatu data. Saat sebuah
transaksi sedang mengakses database, suatu kunci atau lock boleh
menolak akses dari transaksi lain untuk mencegah hasil yang tidak benar.
Locking mempunya sifat dasar yaitu sebuah transaksi harus dinyatakan
sebagai shared untuk proses baca (read) dan sepenuhnya terkunci
(exclusive lock) untuk proses tulis (write). Karena operasi baca tidak
menimbulkan konflik, maka diijinkan lebih dari satu transaksi untuk
21
melakukan lock bersama secara serentak pada saat yang sama. Sedangkan
exclusive lock tidak memperbolehkan transaksi-transaksi yang lain dapat
membaca atau mengubah item data apabila sebuah transaksi sedang
melakukan exclusive lock.
2.3.2.3 Deadlock
Deadlock adalah suatu jalan buntu yang disebabkan oleh dua atau
lebih transaksi yang mana masing-masing transaksi sama-sama menunggu
locks dilepaskan oleh transaksi lain yang sedang menggunakannya. Jika
sekali deadlock terjadi, transaksi-transaksi yang terlibat tak dapat
menyelesaikan problemnya, oleh karena itu DBMS harus mengenali
deadlock yang terjadi dan mematahkannya. Oleh karenanya DBMS harus
membatalkan satu atau lebih transaksi, dalam hal ini termasuk
membatalkan semua perubahan yang telah dilakukan oleh transaksi
dibatalkan.
2.3.2.4 Metode Penandaan Waktu (Timestamping)
Timestamp adalah suatu pengenal unik yang dibuat oleh
menunjukkan waktu dimulainya suatu transaksi. Timestamp dapat dibuat
dengan menggunakan sistem clock atau jam pada saat transaksi dimulai,
atau lebih umum dengan cara menaikkan counter waktu setiap saat
transaksi baru dimulai.
22
Timestamping adalah suatu concurency control protocol yang
mengurutkan transaksi-transaksi dalam suatu cara sedemikian rupa yaitu
apabila terjadi konflik maka transaksi yang lebih dulu atau transaksi
dengan timestamp yang lebih kecil akan mendapatkan prioritas.
Dengan timestamping, jika sebuah transaksi mencoba untk
membaca atau menulis suatu data, maka baca atau tulis data tersebut hanya
diijinkan diproses jika perubahan terakhir dari data tersebut telah
dilakukan oleh transaksi sebelumnya. Jika tidak, maka transaksi yang
meminta baca atau tulis tersebut akan diulang dan diberikan timestamp
yang baru untuk mencegah transaksi tersebut diulang terus menerus.
2.3.2.5 Granularity Dari Data Item
Granularity adalah ukuran dari data item yang dipilih sebagai unit
proteksi dari protocol concurrency control.
2.3.3 Database Recovery
Database recovery merupakan proses yang mengembalikan kondisi
database ke kondisi yang benarpada saat terjadi kegagalan proses.
2.3.3.1 Kebutuhan Recovery
Penyimpanan data pada umumnya terdiri dari empat jenis yaitu main
memory, magnetic disk, magnetic tape dan optical disk. Main memory
termasuk media penyimpanan yang volatile, sedang yang lain termasuk
23
nonvolatile. Main memory juga sebagai primary storage sedangkan disk
dan tape merupakan secondary memori. Stable storage menggambarkan
informasi yang direplikasi di dalam beberapa nonvolatile media storage
dengan independent failure mode, yang biasanya menggunakan RAID
(Redundant Array of Independent Disk).
Ada banyak tipe failure yang dapat mempengaruhi proses database,
sehingga setiap jenis kegagalan memiliki alasan yang berbeda-beda.
Beberapa diantaranya disebabkan oleh main memory saja, sementara yang
lain termasuk penyimpanan non-volatile (secondary).
Penyebab failure diantaranya seperti berikut :
1. System crash yang disebabkan oleh hardware atau software
yang error, sehingga data di memori utama hilang.
2. Media failure, seperti head yang crash atau media yang tidak
dapat dibaca, akibatnya kehilangan data pada bagian dari
penyimpanan secondary.
3. Application Software error, seperti error logika pada program
yang mengakses database, sehingga menyebabkan satu atau
lebih transaksi gagal.
4. Natural physical disaster, seperti kebakaran dan bencana alam.
5. Kerusakan atau kecelakaan yang tidak disengaja pada data atau
fasilitas oleh operator atau user.
6. Sabotase atau korupsi yang disengaja atau kerusakan dari data,
baik hardware atau software.
24
Apapun penyebab kegagalannya , ada dua efek prinsip yang perlu
diperhatikan, yaitu kehilangan memori utama, termasuk database
buffer dan kehilangan copy disk dari database. Oleh karena banyaknya
kemungkinan terjadinya kegagalan pada memori utama maupun pada
disk maka perlu adanya recovery terhadap basis data.
2.3.3.2 Transaction and Recovery
Transaksi adalah basic unit untuk recovery dalam system database.
Role dari recovery manager adalah harus menjamin dua dari empat ACID
yaitu atomicity dan durability jika terjadi failure.
Recovery manager harus memastikan bahwa recovery dari kegagalan,
pengaruhnya akan keseluruhan transaksi yang merekam database secara
permanent atau tidak mempengaruhi sama sekali.
2.3.3.3 Recovery Facilities
DBMS pada umumnya menyediakan fasilitas untuk recovery antara lain :
1. Mekanisme backup. Mekanisme ini adalah dengan membuat
salinan database atau backup secara periodik.
2. Fasilitas Logging. Mekanismenya adalah dengan membuat catatan
terhadap keadaan tertentu dari transaksi dan perubahan database.
Log file mencatat record-record transaksi yang mengidentifikasi
awal atau akhir dari transaksi baik setelah dan sesudah image dari
suatu operasi write. Log berisi informasi tentang seluruh update ke
25
database yang terdiri dari data transaction record dan checkpoint
record. Transaction record berisi identitas transaksi, tipe data dari
log record, identitas dari data item yang dipengaruhi oleh aksi dari
database, nilai sebelum perubahan atau before- image data item,
nilai setelah perubahan atau after-image dari data item, informasi
management log.
3. A checkpoint facility melakukan update terhadap database
sehingga kemajuannya dibuat permanen.
4. Recovery Manager adalah dengan membuat sistem untuk
mengembalikan atau restore database ke state yang konsisten
setelah terjadinya kegagalan.
2.3.3.4 Recovery Techniques
Ada tiga teknik yang dapat digunakan untuk melakukan recovery.
Untuk kasus dimana database tidak dapat dimusnahkan tetapi dalam
kondisi yang konsisten dapat digunakan teknik- teknik seperti berikut ini :
1. Deferred Update atau penundaan update. Mekanismenya adalah
dengan melakukan write hanya pada log saja dan log record
digunakan untuk menentukan apakah transaksi perlu untuk di redo,
tetapi tidak memerlukan undo write lagi.
2. Immediate Update atau segera melakukan update. Mekanismenya
adalah dengan membuat update pada basis datanya setelah log
record ditulis.
26
Alternatif teknik recovery yang lain adalah dengan menggunakan
shadow paging
2.3.3.5 Advanced Transaction Models
Advanced transaction models digunakan untuk transaksi yang
menggunakan aplikasi database yang lebih kompleks. Seperti yang
digunakan untuk Computer-Aided-Design, Computer Aided Manufacture
dan Computer Aided Software Engineering.
Yang termasuk dalam advanced transaction models antara lain :
1. Nested Transaction Model
Nested transaction model adalah sebuah transaksi yang dilihat
sebagai kumpulan subtask yang saling berelasi atau subtransaction,
setiap subtask mungkin juga berisi subtransaction. Nested
transaction model memiliki beberapa keuntungan seperti :
modularitas, sangat baiknya level dari granularity dari concurrency
control dan recovery, intra transaction parallelism dan intra
transaction recovery.
2. Sagas
Sagas adalah urutan dari (flat) transaksi yang dapat
meninggalkan transaksi yang lain.
3. Multilevel transaction
4. Dynamically Restructing Transaction
5. Workflow model
27
2.4 Pemodelan Data
Pemodelan data adalah sebuah teknik untuk mengorganisasikan dan
mendokumentasikan data dari system (Whitten, J.L., Bentley, L.D.,
Barlow, V.M., 2004). Pada pemodelan data dibagi menjadi tiga tahap yaitu
tahap conceptual design, logical design, physical design.
2.4.1 Conceptual Design
Pada tahap conceptual design ini menggambarkan isi dari basis data
sebelum data diimplementasikan pada sistem informasi yang
sesungguhnya serta tidak mempertimbangkan efisiensi program-program
yang memanfaatkan data tersebut. Pada tahap ini menghasilkan conceptual
schema yang mengacu pada suatu conceptual model yaitu Entity
Relationship Model.
2.4.2 Logical Design
Pada tahap logical design ini dilakukan penterjemahan dari conceptual
schema ke model data yang sesuai dengan DBMS yang akan digunakan.
Pada tahap ini menghasilkan logical schema basis data yang mengacu pada
suatu logical data model yaitu Relational Model.
Terdapat dua langkah utama dalam logical design yaitu :
1. Restrukturisasi ER Diagram
28
Pada restrukturisasi ER Diagram ini melakukan beberapa
tahapan yaitu analisa redundansi, menghilangkan generalisasi,
memecah atau menyatukan entitas-entitas dan relasi-relasi serta
menetapkan kata kunci atau primary key
2. Mengubah dari ER Diagram ke Relational model.
2.4.3 Physical Design
Pada tahap physical design ini logical schema dilengkapi dengan
detail-detail implementasi secara fisik sesuai dengan DBMS yang
digunakan.
2.5 Pemodelan Proses
Pemodelan proses adalah sebuah teknik yang digunakan untuk
mengelola dan mendokumentasikan proses sistem. Salah satu model
proses yang digunakan adalah DFD atau Data Flow Diagram. Data flow
Diagram merupakan model proses yang digunakan untuk menggambarkan
aliran data melalui sebuah sistem dan tugas atau pengolahan yang
dilakukan oleh sistem. Data flow diagram menggambarkan penyimpanan
data dan proses yang mentransformasikan data yang menunjukkan
hubungan antara data pada sistem dan proses pada sistem.
29
2.6 SQL Server 2000
SQL Server adalah satu produk DBMS yang dibuat oleh Microsoft
yang memiliki keunggulan-keunggulan dalam pengelolaan database. SQL
adalah sebuah databasae relasional yang dirancang untuk mendukung
aplikasi dengan arsitektur client/server, dimana database terdapat pada
komputer pusat yang disebut server, dan informasi digunakan bersama-
sama oleh beberapa pengguna yang menjalankan aplikasi di dalam
komputer lokalnya yang disebut client (Ramalho, José, 2001).
2.6.1 Trigger
Trigger adalah prosedur tersimpan yang secara otomatis dijalankan
apabila data di dalam tabel berubah karena eksekusi perintah SQL
INSERT, UPDATE, atau DELETE (Ramalho, José, 2001). Salah satu dari
penggunaannya yang paling umum adalah untuk menerapkan pembatasan
yang lebih kompleks dari yang telah diijinkan melalui pembatasan cek,
yang berfungsi membatasi informasi yang disisipkan ke dalam kolom.
30
2.6.2 Store Procedure
Store procedure merupakan sekumpulan perintah-perintah SQL yang
tersimpan dengan nama tertentu dan diproses sebagai sebuah kesatuan
(Arief, M Rudyanto,2006)
2.6.3 Isolation Level
Isolation level mengontrol tingkat dimana transaksi tertentu terbuka
terhadap tindakan transaksi lain yang melakukan eksekusi secara konkuren
(Ramakrishnan, R., Gehrke, J.,2003 ). Dengan memilih satu dari empat
kemungkinan pengaturan level isolasi, pengguna dapat memperoleh
konkurensi lebih besar yang mengakibatkan peningkatan paparan transaksi
pada perubahan uncommited transaksi lain. Pilihan level isolasinya
diantaranya Serializable, Repeatable Read,Read Commited,Read
Uncommited
Serializable merupakan tingkat isolasi tertinggi karena level isolasi ini
menjamin bahwa transaksi hanya membaca perubahan yang dibuat oleh
transaksi yang telah commit. Serta menempatkan lock pada kelompok data
, mencegah pengguna lain untuk meng-update atau menambah data sampai
transaksi selesai. Serializable memiliki pengaturan yang sama dengan
pengaturan HOLDLOCK pada semua tabel dalam semua pernyataan
SELECT dalam sebuah transaksi.
Repeatable Read menempatkan lock pada semua kumpulan data yang
digunakan dalam query, mencegah pengguna lain meng-update data, tetapi
31
kolom phantom yang baru dapat dimasukkan ke dalam kumpulan data oleh
user yang lain dan termasuk pembacaan yang berikutnya pada transaksi
yang berlangsung.
Read Uncommitted merupakan level isolasi yang
mengimplementasikan pembacaan kotor (dirty read) atau penguncian level
isolasinya adalah nol, dimana tidak memperoleh share lock sebelum
membaca objek. Dan tidak ada exclusive lock yang dipertahankan. Jika
opsi ini digunakan, ada kemungkinan untuk membaca transaksi yang
belum commit atau data yang kotor (dirty data), nilai-nilai yang terdapat
dalam data dapat diubah dan baris-baris dapat kelihatan atau hilang di
dalam kumpulan data sebelum transaksi berakhir. Opsi ini memiliki efek
yang sama dengan pengaturan NOLOCK pada semua tabel dalam semua
pernyataan SELECT dalam sebuah transaksi.
Read COMMITTED secara spesifik share lock ditahan ketika data
sedang dibaca untuk mencegah pembacaan yang salah (dirty read), tetapi
data dapat diubah sebelum transaksi berakhir, hasilnya dalam data yang
nonrepeatable reads atau phantom. Opsi ini merupakan opsi default dalam
SQL Server.
32
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
3.1.1 Gambaran Umum Sistem Yang Akan Dibuat
Sistem yang diusulkan adalah suatu sistem informasi berbasis client
server seperti yang sudah dimiliki oleh PT Mega AndalanKalasan yang
dapat mendukung kegiatan pencatatan pemasukkan dan pengeluaran
material pada gudang unit Raw Material Komponen Logam di PT Mega
Andalan Kalasan.
Sistem Informasi ini dibuat supaya operator gudang dapat
memasukkan data transaksi material dengan lebih detail dan lebih cepat.
Selain itu Kepala Unit dapat melihat langsung data stok material melalui
laporan- laporan yang telah disediakan.
Sistem informasi ini diharapkan dapat mengatasi permasalahan yang
dihadapi oleh PT Mega Andalan kalasan mengenai kehilangan data,
karena pada sistem ini diterapkan transaction management untuk menjaga
kondisi basis data tetap konsisten. Selain itu sistem yang baru ini
melakukan pemrosesan data langsung pada sistem basis data yang terdapat
pada komputer server dengan menggunakan metode store procedure.
Tujuannya adalah agar mempercepat jalannya proses perhitungan pada
aplikasi dan untuk menjalankan perintah-perintah yang mendukung
transaction management sehingga diperoleh hasil basis data yang tetap
33
konsisten sehingga data yang dihasilkan dapat dipercaya. Sistem ini juga
dilengkapi dengan peringatan-peringatan jika terjadi kegagalan pada saat
pemprosesan data.
Pada sistem inventori raw material KL ini menerapkan pula isolation
level Serializable yang diharapkan data lebih konsisten karena data hanya
dapat diubah oleh user yang memiliki exclusive lock. Namun user yang
lain masih dapat membaca data yang sama. Sehingga diharapkan sistem
yang ini dapat mendukung untuk penggunaan multi user.
3.1.2.1 Proses Pengumpulan Kebutuhan
Pihak yang terlibat atau menggunakan system informasi tersebut antara
lain :
1. Admin
2. Operator Gudang
3. Kepala Unit
34
3.1.2.2 Use Case Diagram
Use case diagram dari system yang baru dapat dilihat pada gambar 4.1
Update Data Group Head
Update Data Detil Gudang
Update Data Vendor
Update Data Material
Pengolahan Data Penerimaan Material
Pengolahan Data Pemakaian Material
Laporan
LoginAdmin
Operator Gudang
Ubah Password
Kepala Unit
LogOut
Gambar 3.1 Use Case Diagram
35
Overview Diagram Level 0
11p
Logout
8p
Pengolahan data NTAG
7p
Pengolahan datapenerima
an Material
6p
Pengolahan data Material
5p
Pengolahan data vendor
4pPengolahan
data detil gudang
3p
Pengolahan Data Group
Head
2pUbah
password
1p
Login
Operator Gudang
Admin
Kepala Unit
D1 Data material
D2 Data Vendor
D3 Data User
D4 Data Gudang
Validasi loginUsername,password
Username,passwordUsername,password
Username,passwordUsername,password
Laporan status stock material
Username,password
Username,password lama,password baru
Data group headD5 Data group head
Data group head
Data gudang
Data gudang
Data gudang
Data vendorData vendor
Data materialData material
Data vendor
D6 Data NTAG In
D8 Data Penerimaan Material
Data material
D7 Data NTAG Out
Data penerimaan material
Data NTAG Out
D9 Data pemakaian MaterialData pemakaian
material
Data pemakaian material
Data pemakaian material
Status log Out
Status log outStatus logOut
Data NTAG Out
Data NTAG IN
Data NTAG Out
Data Group Head
Validasi login
Validasi login
Validasi login
Data Group Head
Data gudang
Data vendor
Data material
Data penerimaan material, sisa stok
Data NTAG Out,sisa stok
Data pemakaian material, sisa stok
Validasi login
Validasi login
Validasi login
Validasi login
Validasi login
Validasi login
Validasi login
Validasi login
10p
Laporan
Update data stok material
update data stok material
9p
Pengolahan data
pemakaian material
Data Penerimaan
material
Update data stok material
D1 Data material
Update data stock material
Data penerimaan material, data pemakaian material,sisa stock
Laporan pemakaian material, laporan penerimaan material, laporan stock Material
Data Penerimaan
material
Gambar 3.6 Overview diagram level 0
40
Overview Diagram Level 1 Proses 3
Operator Gudang
3.1p
Masukkan data Group
Head
3.2p
Ubah Data Group Head
D5 Data Group Head
Data Group Head
Data Group Head
Data Group HeadData Group Head
Data Group Head Data Group Head
Kode Group Head
3.3p
Hapus Data Group Head
Kode group Head
Data group HeadData group Head
Kode Group HeadKode group Head
Gambar 3.7 Overview diagram level 1 proses 3
Overview Diagram Level 1 Proses 4
Gambar 3.8 Overview diagram level 1 proses 4
41
Overview Diagram Level 1 Proses 5
5.1p
Input data Vendor
5.2p
Ubah Data Vendor
5.3p
Hapus data Vendor
D2 Data Vendor
Operator Gudang
Kode vendor, nama vendor,alamat vendor,telepon,
sertifikasi,kontak
Kode vendor, nama vendor,alamat vendor,telepon,
sertifikasi,kontak
D2 Data VendorData Vendor
Kode vendor
Data VendorKode vendor
Data Vendor
Kode vendor, nama vendor,alamat vendor,telepon,
sertifikasi,kontak
Data vendorData vendor
Data vendorKode vendor, nama vendor,
alamat vendor,telepon,sertifikasi,kontak
Gambar 3.9 Overview diagram level 1 proses 5
42
Overview Diagram Level 1 Proses 6
Gambar 3.10 Overview diagram level 1 proses 6
Overview Diagram Level 1 Proses 7
Gambar 3.11 Overview diagram level 1 proses 7
43
Overview Diagram Level 1 Proses 8
Gambar 3.12 Overview diagram level 1 proses 8
Overview Diagram Level 1 Proses 9
Gambar 3.13 Overview diagram level 1 proses 9
44
3.1.2.4 Pemodelan Data (Conceptual Database Design)
Entity Relationship Diagram (ERD)
Gambar 3.15 Entity Relationship Diagram
46
3.2.2 Desain Tabel
Berikut ini merupakan desain tabel yang digunakan :
1. Tabel Material
Primary Key : Kode Material
Secondary Key : GH
Tabel 3.1 Material
Field Name Data Type Field Size
Description
GH Char 2 Identitas Group Head Kode Material char 6 Identitas Material Spesifikasi Varchar 50 Nama Material dalam bahasa
Indonesia Panjang numeric 9(18,3) Panjang masing-masing
material Lebar numeric 9(18,3) Lebar masing-masing material Tebal numeric 9(18,3) Tebal masing-masing material Diameter Luar
numeric 9(18,3) Diameter luar masing-masing material
Diameter Dalam
numeric 9(18,3) Diameter dalam masing-masing material
Stock numeric 9(18,3) Jumlah stok Stock Min numeric 9(18,3) Jumlah stok minimum Satuan Varchar 6 Satuan jumlah tiap material Tanggal Update
Smalldatetime 4 Tanggal sewaktu memasukkan data
2. Tabel Group Head
Primary Key : GH
Tabel 3.2 Group Head
Field Name
Data Type
Field Size
Description
GH Char 2 Identitas Group Head NamaGH Varchar 50 Keterangan tiap identitas group
Head
48
3. Tabel Gudang
Primary Key : Kode
Tabel 3.3 Gudang
Field Name Data Type
Field Size
Description
KodeGudang Char 2 Identitas gudang NamaGudang Varchar 50 Nama gudang tempat penyimpanan
material
4. Tabel Vendor
Primary Key : Kode Vendor
Tabel 3.4 Vendor
Field Name Data Type
Field Size
Description
Kode Vendor Char 2 Identitas Vendor NamaVendor Varchar 50 Nama Vendor Alamat Varchar 150 Alamat Vendor Telepon Varchar 50 No telepon vendor Sertifikasi Varchar 50 Sertifikasi vendor Kontak Varchar 50 Nama kontak yang dapat
dihubungi
49
5. Tabel Penerimaan
Primary Key : Nomor GR
Secondary Key : Kode Vendor
Tabel 3.5 Penerimaan Material
Field Name Data Type Field Size
Description
NomorGR Varchar 15 Identitas Data Penerimaan Material
Tgldatang smalldatetime 4 Tanggal sewaktu material datang
NomorOP varchar 8 Nomor Order Pembelian KodeVendor Char 2 Identitas Vendor
6. Tabel Detail Penerimaan Material
Primary Key : Nomor GR
Tabel 3.6 Detail Penerimaan Material
Field Name Data Type
Field Size
Description
Nomor GR Int 4 Identitas pemakaian material
Kode Material
Varchar 6 Identitas material
QTY Numeric 9 Jumlah Material yang Datang Harga money 8 Harga material per satuan Total Harga Numeric 17 Total Harga Material yang datang Keterangan Varchar 125 Keterangan mengenai penerimaan
material
50
7. Tabel Pemakaian Material
Primary Key : No_id_pemakaian
Secondary Key : Kode Material, Nomor GR, Kode Vendor
Tabel 3.7 Pemakaian Material
Field Name Data Type Field Size
Description
No_id Pemakaian
Int 4 Identitas pemakaian material
Nomor GR Varchar 15 Identitas detail pemakaian material
Tanggal Pakai Smalldatetime 4 Tanggal sewaktu memasukkan data
Kode Material Varchar 6 Identitas material Tanggal Datang
Smalldatetime 4 Tanggal sewaktu material datang
Nomor OP varchar 12 Nomor Order Pembelian Kode Vendor Varchar 2 Identitas Vendor PDMM Numeric 9(18,3) Jumlah pemakaian dalam mili
meter QTY Numeric 9(18,3) Jumlah material yang
dibutuhkan Total pakai Numeric 9(18,3) Jumlah pemakaian total Harga Money 8 Harga satuan material yang
dipakai Keperluan Varchar 50 Keterangan mengenai
pemakaian material
51
8. Tabel NTAG Out
Primary Key : NO NTAG
Secondary Key : No_id_Pemakaian, Gudang Tujuan
Tabel 3.8 NTAG Out
Field Name Data Type Field Size
Description
Tanggal Smalldatetime 4 Tanggal sewaktu memasukkan data
No NTAG Varchar 12 Identitas NTAG Out No_id_Pemakaian varchar 6 Identitas pemakaian
material Gudang Tujuan Char 2 Identitas Gudang
9. Tabel NTAG In
Primary Key : NO NTAG
Secondary Key: Nomor GR, Gudang Asal
Tabel 3.9 NTAG IN
Field Name Data Type Field Size
Description
Tanggal Smalldatetime 4 Tanggal sewaktu memasukkan data
No NTAG Varchar 12 Identitas NTAG In NomorGR varchar 15 Identitas penerimaan material Gudang Asal
Char 2 Identitas gudang
52
BAB I V
IMPLEMENTASI SISTEM DAN ANALISA HASIL
4.1 Karakteristik Sistem
Pada sistem inventori gudang Komponen Logam di PT. Mega Andalan
Kalasan terdapat pengguna sistem yaitu Kepala unit dan operator gudang
dimana user Kepala unit dapat melihat data laporan pemakaian material serta
laporan - laporan yang lain yang berkaitan dengan stok raw material yang
terdapat pada gudang KL. Sedangkan user operator gudang dapat melakukan
pengolahan data yang terdapat di dalam sistem.
Untuk Menjaga data Stok di material tetap konsisten maka pada aplikasi
Sistem inventori Raw Material KL ditambahkan dengan store procedure yang
memiliki fungsi transaction management dimana store procedure ini berguna
untuk menjaga konsistensi data material terutama pada menu penambahan
data pemakaian material dan menu penambahan data penerimaan material.
4.2 Kebutuhan Sistem
Untuk melakukan pengujian transaction management pada sistem,
dibutuhkan beberapa sistem penunjang, antara lain :
Server
1. Sistem operasi windows 2000 server atau windows 2003 server
2. DBMS SQL Server 2000
53
Client
1. Sistem operasi windows 98 atau windows 2000 atau windows XP
4.3 Aplikasi Yang Digunakan
Dalam proses implementasi untuk transaction management digunakan
mesin DBMS SQL Server 2000 untuk menyimpan tabel yang diperlukan dan
sekaligus untuk melakukan penulisan store procedure yang memiliki fungsi
transaction management. Store procedure yang dibuat memiliki isolation level
Serializable.
4.3.1 Store Procedure untuk pemakaian material
Dalam sistem ini terdapat store procedure yang digunakan untuk
menambahkan data pemakaian material yang didalamnya terdapat fungsi
transaction management yang berguna untuk menjaga data stok di tabel
material dalam database sistem inventory Raw Material Gudang
Komponen Logam. Store Procedurenya dapat dilihat seperti pada gambar
4.1.
--SP_pemakaian_stock CREATE procedure sp_pemakaian_stock @KodeMaterial varchar(6), @Tanggal smalldatetime, @Keperluan varchar(125), @NoGR varchar(15), @PDMM numeric(9), @QTY numeric(9) as declare @Loop int,@Loop1 int, @stock numeric, @No_Id_Pemakaian int, @TotalPakai numeric(9),@Panjang numeric(9) ,@tgldatang smalldatetime,@NoOP varchar(12),@Koven char(2),@Harga money set Xact_abort on set transaction isolation level serializable
54
begin transaction select @No_Id_Pemakaian=max(No_Id_Pemakaian)+1 from PemakaianMaterial select Kodematerial from Material select @tgldatang=p.TglDatang, @NoOP=p.NomorOP, @Koven=p.KodeVendor, @Harga=dp.Harga from penerimaanmaterial p,detailpenerimaanmaterial dp where dp.KodeMaterial=@KodeMaterial and dp.NoGR = @NoGR and p.NoGR=dp.NoGR set @Loop = 0 while @Loop < 100000 Begin set @Loop = @Loop+1 end update Material set Stock = Stock where Kodematerial = @KodeMaterial select @stock = Stock, @Panjang = Panjang from material where KodeMaterial = @KodeMaterial set @TotalPakai = ((@PDMM*@QTY)/@Panjang) If @stock <= @TotalPakai or @TotalPakai <= 0 begin raiserror ('Data stock material tidak mencukupi',16,1) end else begin Update material set Stock = @stock - @TotalPakai, TanggalUpdate = @Tanggal where KodeMaterial=@KodeMaterial insert into PemakaianMaterial(No_Id_Pemakaian,KodeMaterial, TanggalPakai,tgldatang,KodeVendor,NomorOP,NoGR,Harga, Keperluan,PDMM, QTY, TotalPakai) values (@No_id_Pemakaian,@KodeMaterial, @Tanggal,@tgldatang, @Koven, @NoOP,@NoGR ,@Harga ,@Keperluan,@PDMM, @QTY,@TotalPakai) if @@error <> 0 begin rollback transaction raiserror ('Data tidak bisa disimpan',16,1) end end commit transaction
Gambar 4.1 Store Procedure Pemakaian material
55
Dari gambar 4.1 dapat dilihat bagaimana transaction management
diterapkan dengan menggunakan perintah yang dicetak tebal. Perintah Set
Xact_abort on berfungsi untuk melakukan pembatalan transaksi apabila
terjadi kegagalan. Sedangkan perintah untuk Transaction managementnya
adalah Set transacton isolation level serializable , dan untuk memulai
transaksi digunakan perintah Begin transaction serta untuk mengakhirinya
digunakan perintah commit Transaction. Untuk melakukan penguncian
pada tabel material adalah dengan melakukan update pada kolom dan baris
yang akan diubah yaitu kolom stok dengan kode material tertentu.
Perintahnya adalah Update Material set stock =stock where Kodematerial
= @Kodematerial. Dengan melakukan perintah ini maka kolom tersebut
akan diunci sehingga apabila ada transaksi lain yang akan mengubah
kolom tersebut tidak akan diijinkan sampai transaksi yang telah
mendapatkan kunci selesai melakukan perubahan data. Untuk mengubah
data material digunakan perintah berikut :
Update material set Stock = @stock - @TotalPakai, TanggalUpdate = @Tanggal where KodeMaterial=@KodeMaterial
4.3.2 Store Procedure untuk penerimaan material
Dalam sistem ini juga terdapat store procedure yang digunakan untuk
menambahkan data material yang masuk dalam store procedure ini juga
terdapat fungsi transaction management yang berguna untuk menjaga data
stok di material. Store Procedurenya dapat dilihat seperti pada gambar 4.2.
56
--SP_tambah_stock CREATE procedure SP_Tambah_stock @NoGR varchar(15), @QTY numeric,@Harga numeric,@Keterangan varchar, @Tanggal smalldatetime, @NoOP varchar(8),@KodeVendor varchar(2) , @KodeMaterial varchar(6) --, as declare @stock numeric, @mLoop int set xact_abort on Set Transaction isolation level serializable begin transaction select Stock from Material select NoGR from PenerimaanMaterial select NoGR, KodeMaterial from DetailPenerimaanMaterial select @stock = stock from Material where kodematerial=@KodeMaterial SET @mLoop = 0 BEGIN WHILE @mLoop <100000 SET @mLoop = @mLoop + 1 END update material set Stock=Stock where KodeMaterial=@KodeMaterial select @stock = stock from material where kodematerial = @KodeMaterial begin update material set stock=stock+@QTY, TanggalUpdate=@Tanggal where KodeMaterial=@KodeMaterial insert into penerimaanmaterial (NoGR,TglDatang,NomorOP,KodeVendor) values(@NoGR,@Tanggal,@NoOP,@KodeVendor) insert into detailpenerimaanMaterial (NoGR,KodeMaterial,QTY,Harga,Keterangan) values(@NoGR,@KodeMaterial,@QTY,@Harga,@keterangan) if @@error <> 0 begin rollback transaction raiserror ('Data tidak bisa disimpan',16,1) end end commit transaction
Gambar 4.2 Store procedure penerimaan material
Sama dengan yang dilakukan pada transaksi pemakaian material pada
transaksi penerimaan material pun terdapat perintah yang dicetak tebal
57
58
yang berfungsi untuk menerapkan transaction management seperti pada
gambar 4.2. Perintah Set Xact_abort on berfungsi untuk melakukan
pembatalan transaksi apabila terjadi kegagalan. Sedangkan perintah untuk
Transaction managementnya adalah Set transacton isolation level
serializable , dan untuk memulai transaksi digunakan perintah Begin
transaction serta untuk mengakhirinya digunakan perintah commit
Transaction. Untuk melakukan penguncian pada tabel material adalah
dengan melakukan update pada kolom dan baris yang akan diubah yaitu
kolom stok dengan kode material tertentu. Perintahnya adalah Update
Material set stock =stock where Kodematerial = @Kodematerial. Dengan
melakukan perintah ini maka kolom tersebut akan diunci sehingga apabila
ada transaksi lain yang akan mengubah kolom tersebut tidak akan
diijinkan sampai transaksi yang telah mendapatkan kunci selesai
melakukan perubahan data. Untuk melakukan perubahan data stok
material karena ada transaksi penerimaan material maka digunakan
perintah seperti berikut :
select @stock = stock from material where kodematerial =
@KodeMaterial
begin
update material set stock=stock+@QTY, TanggalUpdate=@Tanggal
where KodeMaterial=@KodeMaterial
4.4 Pengujian Transaction Management
59
Pengujian dilakukan pada sebuah komputer stand alone yang terpasang
mesin DBMS SQLServer 2000. Pengujian dilakukan pada Menu Query
Analizer yang dimiliki oleh mesin DBMS SQLServer 2000, dimana store
procedure yang dibuat dieksekusi melalui Query Analizer sehingga database
dapat melakukan ubah data pada Tabel Material di kolom stok. Store
procedure yang digunakan untuk mengubah data memiliki kemampuan
melakukan transaction management sehingga data stok tetap konsisten.
Store Procedure yang dibuat adalah Store procedure pada Tabel
pemakaian material dimana apabila tabel ini diisi dengan data pemakaian
maka data material akan berubah. Agar saling bertabrakan maka diberikan
delay sebelum melakukan perubahan data yaitu sebelum data material diubah.
Perintahnya dapat dilihat seperti pada gambar 4.3.
set @Loop = 0
while @Loop < 100000
Begin
set @Loop = @Loop+1
end
Gambar 4.3 Perintan Delay untuk memberi jeda waktu
Pada saat transaksi input data pemakaian maka strore procedure
pemakaian akan dilakukan. Dengan melakukan perintah Execute
SP_Pemakaian_stok dimana perintah ini menjalankan nama procedure
tersebut diikuti dengan parameter yang berfungsi untuk menyimpan data yang
akan dimasukkan ke tabel pemakaian material. Perintah eksekusinya dapat
dilihat pada gambar 4.4.
execute Sp_pemakaian_stock
@KodeMaterial = "A0304",
@Tanggal ="2007/09/06",
@PDMM = 6000,
@QTY = 5,
@keperluan = "coba data",
@NoGR = "01/01/VIII/07"
Gambar 4.4 perintah eksekusi store procedure pemakaian material
Apabila terdapat dua atau lebih transaksi maka transaksi tersebut akan
saling menunggu hingga lock dilepaskan. Hal ini dapat dilihat sebagai berikut
ketika dilakukan simulasi penambahan data pemakaian material oleh transaksi
pemakaian material dan penambahan data penerimaan material oleh transaksi
penerimaan material maka transaksi - transaksi tersebut akan saling menunggu
hingga transaksi yang pertama yaitu pemakaian material selesai melakukan
ubah data stok pada tabel material dan melepaskan lock yang dimilikinya. Hal
ini dapat terlihat seperti pada gambar 4.5 dimana transaksi pertama yaitu
pemakaian stok material berhasil melakukan perubahan data tanpa pesan
kesalahan.
60
Gambar 4.5 contoh transaksi berhasil dilaksankan
Pada gambar berikut dapat dilihat bahwa transaksi isi data material yang
pertama yaitu pengurangan data stok pada tabel material dikarenakan ada
pemakaian material dapat dilakukan tanpa ada pesan kesalahan dan data stock
pada tabel material dapat diubah.yang dapat dilihat seperti pada gambar 4.6
Gambar 4.6 Data material yang stoknya telah berubah
61
Sedangkan transaksi yang kedua tidak berhasil dilaksankan karena
transaksi yang pertama masih memakai lock pada kolom stok di tabel material
sehingga transaksi tersebut akan digagalkan yang tampak seperti gambar 4.7
Gambar 4.7 Contoh transaksi yang digagalkan
Karena transaksi kedua digagalkan maka data stock pada tabel material
hanya diubah oleh transaksi yang pertama saja. Yang dapat dilihat seperti pada
gambar 4.8. Dan transaksi penerimaan material dapat dilaksanakan apabila
dilakukan pengulangan eksekusi terhadap transaksi tersebut.
62
Gambar 4.8 Data stok tabel material yang hanya diubah oleh transaksi
pemakaian material
4.5 Kelebihan Sistem
Kelebihan dari sistem ini adalah sistem dibuat dengan menggunakan
teknologi transaction management sehingga dapat mengatasi permasalahan
multi user. Sehingga apabila ada dua pengguna atau lebih yang melakukan
perubahan data stok material secara bersamaan maka salah satu transaksi
tersebut akan digagalkan dan data stok material tetap terjaga konsistensinya.
4.6 Kekurangan Sistem
Pada sistem ini belum terdapat pesan kesalahan apabila terjadi tabrakan
anatara dua tansaksi atau lebih sehingga user tidak tahu bahwa transaksi
tersebut saling bertabrakan. Sehingga user perlu mengeksekusi ulang transaksi
tersebut.
63
BAB V
PENUTUP
5.1 Kesimpulan
1. Penerapan Transaction Management pada sistem Inventory Raw Material
gudang Komponen Logam pada Studi Kasus di PT Mega Andalan Kalasan
ini menggunakan Level isolasi serializable dan menggunakan perintah
SQL untuk menuliskan Store Procedure yang diperlukan.
2. Dengan adanya Transaction management pada tabel pemakaian material
maka ketika melakukan simulasi perubahan data stok pada tabel material
oleh dua transaksi atau lebih dapat saling menunggu sesuai urutan yang
pertama mendapatkan lock sehingga data stok material tetap konsisten.
5.2 Saran
1. Perlu ditambahkan pesan kesalahan apabila terjadi tabrakan antaa dua
transaksi atau lebih sehingga pengguna dapat mengetahui bahwa dua
transaksi tersebut saling bertabrakan.
64
DAFTAR PUSTAKA
Hartono,Jogiyanto,MBA,Ph.D., Analisis &Disain Sistem Informasi : Pendekatan
Terstruktur Teori dan Praktek aplikasi Bisnis, Andi Offset, Yogyakarta :
1999
Polina, AM., Bahan Kuliah Basis Data I, FT USD, Yogyakarta : 2004
Polina, AM., Bahan Kuliah Basis Data III, FT USD, Yogyakarta : 2003
Gunawan, Ridowati, Bahan Kuliah Rekayasa Perangkat Lunak II, FT USD,
Yogyakarta : 2004
Gunawan, Ridowati, Bahan Kuliah Basis data II, FT USD, Yogyakarta : 2004
Whitten, Jeffrey L.; Bentley, Lonnie D.; Dittman, Kevin C., Metode Disain &
Analisis Sistem edisi 6, andi Offset, Yogyakarta : 2004
Ramakrishnan, Raghu.; Gehrke, Johannes., Sistem Manajemen Database edisi 3,
Andi Offset, Yogyakarta : 2003
Ramalho, José., SQL Server 7.0, Elex Media Komputindo, Jakarta :2001
Connolly, T., Begg, C., DATABASE SYSTEM A Pratical Approach To Design,
Implementation And Management, Addison Wesley : 2002.
Mangkulo, Hengky Alexander, Belajar Sendiri Aplikasi Database Menggunakan
ADO VB 6.0 dan SQL Server 2000, Elex Media Komputindo, Jakarta :
2004
Arief, M Rudyanto, Pemrograman Basis Data Menggunakan Transact-SQL
dengan Microsoft SQL Server 2000, Andi Offset, Yogyakarta : 2006
65