Implementasi transaction management pada database sistem inventory : studi kasus PT Mega Andalan Kalasan - USD Repository

  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

IMPLEMENTATION OF TRANSACTION MANAGEMENT IN

  

(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

  

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)

  

HALAMAN PERSEMBAHAN

Skripsi ini Kupersembahkan unt uk :

Yesus Kristus dan Bunda Maria y ang selalu mengasihi dan membimbing

ak u dalam setiap perjalanan hidupk u

  

Almarhum Ay ahk u y ang telah memberik an pendampingan dari ak u k ecil

hingga Dewasa.

  

Ibuk u atas Cinta dan perhatianny a y ang diberik an k epadak u Semenjak

Kecil Hingga Dewasa

Adik k u y ang menjadi semangat hidupk u di perantauan.

  

Seseorang y ang selalu ada untuk k u baik dalam suk a maupun duk a

Dan Seluruh Sahabat-sahabatk u y ang memberik an k asih dan persahabatan

y ang indah

HALAMAN MOTTO

  

Kita patut dan layak berusaha tapi hanya Tuhan

yang menentukan

Semua kehendak-NYA indah pada waktunya

  

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.

  

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.

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

  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.

  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

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

  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.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.6 Kekurangan Sistem ………………………………………….. 63 BAB V PENUTUP ………………………………………………………..

  64 5. 1 Kesimpulan ……………………………………………….…

  64 5.2 Saran ……………………………………………………..….

  64 DAFTAR PUSTAKA …………………………………………………….…

  65

  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 ….………………………… 41Gambar 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…………………………… 57Gambar 4.3 Perintah Delay Untuk Memberi Jeda Waktu ……………………

  59

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

  63 Pemakaian Material …....……........................................................................... 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 ................................. 18Tabel 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 ...............…………………..…………………….. 52Tabel 3.9 Tabel NTAG In ....………

  52 Tabel 3.10 Tabel NTAG In .…………………………………………………

  52

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 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.

  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).

  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

  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

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

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 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 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.

  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.

  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

  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.

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.

tabel 2.1 contoh masalah hilangnya data

  Waktu T1 T2 bal x t1 Begin transaction 100 t2 Begin transaction Read (bal x ) 100 t3 Read (bal x) bal x = bal x + 100 100 t4 bal x = bal x -10 Write (bal x ) 200 t5 Write (bal x ) 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 bal x , sehingga bal x menjadi £200, namun karena T2 belum memberikan perintah write bal x , maka T2 masih mengenal bal x sebesar £ 100. t4 : transaksi T1 mengurangi balance sebesar £10 dan menyimpannya dalam bal x , sehingga bal x menjadi £90. Pada saat yang hampir bersamaan T2 melaksanakan instruksi write bal x , sehingga bal x sekarang berisi £200 t5 : transaksi T1 melaksanakan instruksi write bal x yang berisi £90.

  Pada saat yang bersamaan T2 menyatakan transaksinya commit atau telah dilakukan, jadi nilai bal

  x yang commit adalah £90.

  t6 : transaksi T1 menyatakan transaksinya commit atau telah dilakukan, jadi nilai bal x 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 bal

  x

  , 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.

tabel 2.2 contoh masalah transaksi yang belum dilaksanakan

  Waktu T3 T4 bal x t1 Begin transaction 100 t2 Read (bal x ) 100 t3 bal x = bal x + 100 100 t4 Begin transaction Write (bal x ) 200 t5 Read (bal x) … 200 t6 bal x = bal x -10 rollback 100 t7 Write (bal x ) 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 bal x menjadi £200. t5 : transaksi T3 membaca bal x yang bernilai £200. Transaksi T4 tidak melakukan proses apapun. t6 : transaksi T3 melakukan pengurangan terhadap bal x yang diketahuinya bernilai £200 dengan £10. Pada saat yang sama transaksi T4 membatalkan perubahan yang terakhir dilakukannya yaitu mengubah bal x yang berisi £100 menjadi £200 sekaligus mengakhiri prosesnya, sehingga bal x berisi £100 lagi tanpa diketahui transaksi T3. t7 : melalui instruksi write bal , transaksi T3 menyimpan hasil

  x pengurangan pada bal x tadi sehingga bal x berisi £190.

  t8 : T3 menyatakan transaksinya commit. Dari contoh tersebut tampak bahwa nilai bal x yang dibaca transaksi T3 adalah salah (£190) seharusnya £90. Nilai bal x 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 bal x 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.

  • 10

  90

  dengan nilai £10, sedangkan transaksi T6 melakukan penjumlahan variabel sum dengan nilai bal x , dimana bal x yang dikenalnya beisi £100, padahal bal x seharusnya bernilai £90. t5 : Transaksi T5 menyimpan hasil perhitungan bal x yang berisi

  x

  50 25 185 t1 : Transaksi T6 dimulai. t2 : Transaksi T5 dimulai, transaksi T6 mengubah nilai sum menjadi 0. t3 : Transaksi membaca nilai bal x yang berisi £100, demikian pula transaksi T6 juga membaca nilai bal x yang berisi £100. t4 : Tansaksi T5 mengurangi bal

  90

  50 25 185 t12 commit

  90

  50 25 185 t11 Write sum

  90

  50 25 150 t10 Sum= sum+ bal z

  90

  50 25 150 t9 commit

  90

  50 25 150 t8 Write (bal z )

  z

tabel 2.3 contoh analisis yang tidak konsisten

  = bal

  z

  50 25 150 t7 bal

  90

  y

  Sum= sum+bal

  z)

  50 25 100 t6 Read (bal

  90

  25 t3 Read (bal x) Read(bal x ) 100 50 25 t4 bal x = bal x -10 Sum=sum+bal x 100 50 25 100 t5 Write (bal x ) Read ( bal y )

  Sum = 0 100 50

  25 t2 Begin transaction

  Waktu T5 T6 bal x bal y bal z sum t1 Begin transaction 100 50

  £90. Transaksi T6 membaca bal yang berisi £50. Pada saat ini nilai bal x yang diketahui transaksi T5 dan T6 sudah berbeda, T5 mengetahui nilai bal x = £90 sedangkan T6 mengetahui nilai bal = £100. Sedangkan variabel sum seharusnya berisi £90

  x

  bukan £100 t6 : Transaksi T5 membaca bal z berisi £25, sedangkan transaksi T6 menjumlahkan nilai sum sebelumnya yang berisi £100, (seharusnya yang benar berisi £90) dengan nilai dari bal y sebesar £50 sehingga mendapatkan sum bernilai £150 (seharusnya bernilai £140). t7 : Transaksi T5 menambahkan bal z dengan £10, sedangkan transaksi T6 tidak melakukan apapun. t8 : Transaksi T5 menyimpan hasil perhitungan sebelumnya yaitu bal = £35, dan transaksi T6 tidak melakukan apapun.

  z

  t9 : Transaksi T5 selesai ditandai dengan commit. Transaksi T6 membaca bal z yang sudah ditambah £10 oleh transaksi T5 sehingga bal z = 35. t10 : Transaksi T6 menjumlahkan variabel sum dengan nilai dari bal sehingga nilai sum menjadi 185.

  z

  t11 : Transaksi T6 menuliskan data sum sehingga data sum menjadi 185. t12 : Transaksi T6 selesai ditandai dengan commit. Pada saat T4, transaksi T5 mengurangi bal x dengan nilai £10 jadi transaksi T6 melakukan penjumlahan variabel sum dengan nilai bal x pada saat t4 maka nilai bal x yang dikenalnya masih berisi £100. Jadi sehurusnya proses (read bal ) dilakukan setelah transaksi T5

  x

  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 bal x 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