• Tidak ada hasil yang ditemukan

Laporan Pemprograman Basis Data Transaks

N/A
N/A
Protected

Academic year: 2018

Membagikan "Laporan Pemprograman Basis Data Transaks"

Copied!
20
0
0

Teks penuh

(1)

Laporan Pemprograman Basis Data

“Transaksi”

Disusun oleh:

Meyla Yan Sari

IK – 3B

3.34.13.1.10

PROGAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK ELEKTRO

(2)

I.

Tujuan Instruksional Khusus

Setelah melakukan praktek ini, mahasiswa diharapkan mampu : 1. Mengetahui dan memahami apa itu Transaksi

2. Dapat membuat transaksi dan mengoprasikan transaksi

3. Dapat mengakses transaksi melalui program yang dibuat melalui visual studio melalui ado.net

II.

Dasar Teori

Pengenalan Transaksi

Transaksi merupakan sekumpulan operasi hanya dianggap berhasil jika seluruh operasi berhasil. Jika salah satu operasi yang dilakukan gagal maka transaksi dianggap gagal. Contoh umum dari transaksi adalah proses transfer uang. Dalam proses transfer terjadi 2 sub proses yaitu pengurangan saldo pada akun pengirim dan penambahan saldo di akun penerima. Jika salah satu proses tidak berjalan semestinya maka proses yang sudah dilakukan akan di ulang atau di gagalkan sehingga keadaan akun pengirim dan penerima tidak terdapat perubahan.

Penggunaan transaksi terdapat pada proses berikut :

1. Dalam proses batch dimana proses CRUD harus terjadi dalam 1 kesatuan proses.

2. Proses perubahan nilai pada tabel dimana perubahan harus konsisten terhadap tabel lain.

3. Ketika terjadi perubahan data pada 2 database atau lebih secara bersamaan. 4. Perubahan data secara bersamaan pada server yang berbeda.

(3)

Memahami ACID

Sebuah transaksi harus memenuhi standar ACID yaitu automicity, consistency, isolation, dan durability.

Automicity: sebuah transaksi harus merupakan proses tunggal yang berjalan bersamaan dalam sebuah proses, bukan proses yang berjalan secara terpisah. Hal ini untuk menjamin bahwa semua proses yang dilakukan berhasil. Ketika terdapat proses yang gagal maka proses tersebut akan dikembalikan ke keadaan sebelumnya.

Consistency: proses transaksi harus memiliki kemampuan untuk menjaga konsistensi database setelah transaksi dilakukan. Dimana ketika proses gagal, transaksi dapat mengembalikan keadaan database.

Isolation: transaksi lain harus terpisah dari proses transaksi lain. Ketika sebuah transaksi berjalan, maka transaksi tersebut tidak boleh mempengaruhi transaksi lain. Pengolahan data yang dilakukan pada sebuah transaksi harus terisolasi dari modifikasi transaksi lain.

Durability: perubahan data yang berhasil dilakukan bersifat permanen. Pada log transaksi harus terjaga, sehingga ketika terjadi kegagalan transaksi database dapat dikembalikan pada keadaan awal. Setiap transaksi yang dilakukan berhasil, sebuah baris dimasikkan ke log transaksi.

Tipe Transaksi

Terdapat tiga tipe utama transaksi, tiga tipe itu adalah Retrieval transaction: mengambil data yang ditampilkan

Update transaction: memasukkan record baru, menghapus, dan mengubah record yang ada.

Mixed tansaction: menggabungkan antara transaksi retrieval dan update.

Transaksi lokal SQL

(4)

Autocommit transactions: model transaksi dasar pada SQL server. Transaksi ini memliki tipe standar yaitu berhasil jika proses yang dilakukan berhasil seluruhnya, jika tidak maka transaksi digagalkan.

Explicit transactions: model transaksi yang waktu berjalan dan berheti diatur seluruhnya oleh pengguna. Ketika transaksi berjalan, transaksi lain yang berjalan dihentikan digantikan transaksi ini, ketika berhenti maka transaksi sebelunya akan berjalan kembali.

Implicit transactions: model transaksi ini akan mengubah database ketika transaksi dilakukan. Setelah mengubah database transaksi akan menguci perubahan sampai perintah commit atau rollback dijalankan. Jika perintah commit atau rollback belum diterima hingga pengguna memutus koneksi. Data akan otomatis dikembalikan.

Batch-scoped transactions: sebuah koneksi dapat dikategorikan pada mode batch-scoped ketika transaksi yang berjalan dengan disertai fitur MARS yang aktif. Fitur ini memungkinkan pada sebuah koneksi database menjalankan beberapa perintah bersamaan.

Transaksi terdistribusi SQL

Transaksi tipe ini adalah transaksi dengan melibatkan beberapa resource yang bekerja bersamaan. Resource-resource ini dikendalikan dengan transaction manager. Transaksi yang dijalankan oleh resource manager memiliki 2 fase proses, yaitu :

Prepare phase: ketika transaction manager menerima permintaan, manager mengirimkan perintah persiapan kepada semua resource manager. Lalu resource manager melakukan berbagai persiapan. Setelah selesai, resource manager mengirim informasi berhasil atau gagal proses persiapan.

(5)

III.

Alat dan Bahan

1. PC Processor minimal Pentium IV, RAM minimal 512 MB 2. Ms Sql Server

3. Ms Visual Studio

IV.

Langkah Kerja/Percobaan

1. Langkah pertama adalah membuka / menjalankan MS Sql Server management studio

2. lalu koneksikanMS Sql Server management studio dengan database server 3. Setelah itu klik new query dan masukkan kode dibawah ini simpan dengan

nama SQLQuery1.sql dan ambil gambar create procedure sp_Trans_Test

@newcustid nchar(5),

@newcompname nvarchar(40),

@oldcustid nchar(5)

as

declare @inserr int

declare @delerr int

declare @maxerr int

set @maxerr = 0

begin transaction

-- Add a customer

insert into customers (customerid, companyname)

values(@newcustid, @newcompname)

-- Save error number returned from Insert statement

set @inserr = @@error

if @inserr > @maxerr

(6)

-- Delete a customer

delete from customers

where customerid = @oldcustid

-- Save error number returned from Delete statement

set @delerr = @@error

if @delerr > @maxerr

set @maxerr = @delerr

-- If an error occurred, roll back

if @maxerr <> 0 begin

rollback

print 'Transaction rolled back'

end

else

begin

commit

print 'Transaction committed'

end

print 'INSERT error number:' + cast(@inserr as nvarchar(8))

print 'DELETE error number:' + cast(@delerr as nvarchar(8))

return @maxerr

4. klik new query dan masukkan kode dibawah ini simpan dengan nama SQLQuery2.sql dan ambil gambar

exec sp_Trans_Test 'a ', 'a ', 'z '

(7)

select * from customers

6. klik new query dan masukkan kode dibawah ini simpan dengan nama SQLQuery4.sql dan ambil gambar

exec sp_Trans_Test 'aa ', 'aa ', 'z ' select * from customers

7. klik new query dan masukkan kode dibawah ini simpan dengan nama SQLQuery5.sql dan ambil gambar

exec sp_Trans_Test 'a', 'a ', 'aa ' select * from Customers

8. klik new query dan masukkan kode dibawah ini simpan dengan nama SQLQuery6.sql dan ambil gambar

exec sp_Trans_Test 'aaa', 'aaa ', 'ALFKI'

9. klik new query dan masukkan kode dibawah ini simpan dengan nama SQLQuery7.sql dan ambil gambar

exec sp_Trans_Test 'a ', 'a ', 'ALFKI'

10. Untuk proses percobaan pengaksesan transaksi melalui ado.net dari program yang dibuat melalui ms visual studio adalah sebagai berikut:

(8)

b. Lalu rename form1.vb menjadi transaction.vb dan tambahkan komponen seperti berikut ini

Item properties

Button1 Text : execute

Label1 Text : New Customer ID

Label2 Text : New Company ID

Label3 Text : Old Customer ID

Textbox1 Text :

Textbox2 Text :

Textbox3 Text :

c. Kemudian tambahkan kode pada action event button click Imports System.Data.SqlClient

Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Dim conn As New SqlConnection

(9)

initial catalog=Northwind; integrated security=True"

Catch ex As System.Data.SqlClient.SqlException

sqltrans.Rollback()

(10)

ControlChars.Lf + ex.Message, "rollback transaction")

Catch ex As Exception

MessageBox.Show("System Error" + ControlChars.Lf + ex.Message, "Error")

Finally akademik melalui program berbasis .net, dengan ketentuan sebagai berikut :

a. Terdapat 3 tabel utama pada database yaitu :

1. Tabel mahasiswa dengan 3 entitas yaitu nim, nama, email dengan 5 data.

Membuat tabel mahasiswa : create table makul(

kode_mk varchar(5) primary key,

nama varchar(30),

sks varchar(1) )

Memasukkan data ke tabel mahasiswa :

insert into mahasiswa (nim, nama, email)

values ('3.34.12.0.01','ajeng yonafalah','ajengyona@gmail.com'), ('3.34.12.0.03','ayin nabhan ulinnuha','ayinnabhan@gmail.com'), ('3.34.12.0.08','dhimas yudangga adinugraha','dhimas.pedas@gmail.com')

2. Tabel nilai dengan 3 entitas yaitu nim, kode_mk, nilai dengan 9 data. Antara tabel nilai dengan tabel mahasiswa dan matakuliah memiliki kostrait.

(11)

create table nilai(

nim varchar(12) references mahasiswa(nim),

kode_mk varchar(5) references makul(kode_mk),

nilai varchar(1) )

Memasukkan data ke tabel nilai :

insert into nilai (nim, kode_mk, nilai)

3. Tabel makul dengan 3 entitas yaitu kode_mk, nama, sks dengan 3 data.

Membuat tabel makul : create table mahasiswa(

nim varchar(12) primary key,

nama varchar(50),

email varchar(30) )

Memasukkan data ke tabel makul :

insert into makul (kode_mk, nama, sks)

values ('mk001','pdb','3'),

(12)

b. Buat prosedur tersimpan untuk menjalankan transaksi secara langsung melalui mysql server.

create procedure sp_trans_mhs

@newnim nchar(12),

@newnama nchar(50),

@newemail nchar(30),

(13)

commit

print 'berhasil'

end

print 'kesalahan insert:' + cast(@ins as nvarchar(8))

print 'kesalahan delete:' + cast(@del as nvarchar(8))

return @err

c. Lakukan testing transaksi: 1. SQLQuery8.sql

exec sp_trans_mhs '3.34.12.0.06','desyana sholikhah',

'desy@gmail.com','3.34.12.0.02'

2. SQLQuery9.sql

exec sp_trans_mhs '3.34.12.0.06','desyana sholikhah',

'desy@gmail.com','3.34.12.0.02'

3. SQLQuery10.sql

exec sp_trans_mhs '3.34.12.0.06','desyana sholikhah',

'desy@gmail.com','3.34.12.0.01'

d. Buat aplikasi berbasis vb.net dengan rancangan gui sebagai berikut : 1. Rancangan gui sebagai berikut :

2. Tambahkan komponen sebagai berikut :

Item properties

Button1 Text : execute

Groupbox 1 Text : insert Groupbox 2 Text : delete

Label1 Text : nama

(14)

Label3 Text : email

3. Kemudian masukkan kode sebagai berikut : Imports System.Data.SqlClient

Public Class Form1

Dim conn As New SqlConnection

Dim adp As SqlDataAdapter

Dim ds As New DataSet

Private Sub Form1_Load(sender As Object, e As

EventArgs) Handles MyBase.Load

DataGridView1.DataSource = ds.Tables("tabel1")

End Sub

Private Sub Button1_Click(sender As Object, e As

EventArgs) Handles Button1.Click

Dim sqlins As String = "insert into mahasiswa (nim, nama, email) values(@nim, @nama, @email)"

Dim sqldel As String = "delete from mahasiswa where nim = @oldnim"

(15)

Try Catch ex As System.Data.SqlClient.SqlException

sqltrans.Rollback()

MessageBox.Show("transaksi gagal" +

ControlChars.Lf + ex.Message, "hapus transaksi") Catch ex As Exception

(16)

ControlChars.Lf + ex.Message, "Error") Finally

tampildata()

End Try

End Sub

(17)

V.

Lembar Kerja

No Praktik Hasil Program 1 SQLQuery1.sql

Query untuk membuat prosedur tersimpan berisi transaksi tambah dan hapus data tabel customer

2 SQLQuery2.sql Query untuk memasukkan data dan menghapus data melalui sp_trans_test

3 SQLQuery3.sql Query untuk menampilkan data tabel customers

(18)

Query untuk menjalankan traksaksi pada prosedur sp_trans_test

5 SQLQuery5.sql Query untuk tes transaksi ketika proses

penambahan data gagal

6 SQLQuery6.sql Query untuk tes transaksi ketika proses hapus data gagal

7 SQLQuery7.sql

Query untuk tes transaksi ketika proses tambah dan hapus data gagal

(19)

Gbr2: Pada gbr1: proses

transaksi yang dilakukan berhasil

(20)

VI.

Kesimpulan

Gambar

tabel customer

Referensi

Dokumen terkait

The band size of PCR-RAPD product using OPA-2 primer in t hree generat ions of kissing gouramy.. Ke terang an ( Not e ): Ukuran p ita meru p akan p red iksi be rd asarkan p an jang

3.7.2 Ajk ini diminta untuk mengumpulkan data murid yang sering tidak hadir ke sekolah untuk tindakan lanjut kepada guru Bimbingan dan Kaunseling, GPK HEM dan Guru Besar.

Instrumen yang dikembangkan seharusnya menggambarkan variabel, skala, instrumentasi, dan manipulasi eksperimental yang ekuivalen, yang dimaksud dengan variabel yang

EFFECT OF SECURITY, PRIVACY, BRAND NAME, WORD OF MOUTH, EXPERIENCE, AND INFORMATION ON WEB SITE TRUST, AND EFFECT OF WEB SITE TRUST ON BRAND COMMITMENT AND RISK PERCEPTION

Prevalensi penyakit periodontal pada masyarakat di Kecamatan Medan Selayang cukup tinggi yaitu 86,1% dari 137 orang sampel menderita penyakit periodontal (tabel 5) bila

Bagian yang menarik dari tanaman anthurium adalah spathe yang merupakan modifikasi dari daun, bentuk, warna dan ukuran spathe ini sangat beragam tergantung spesies dan

Pemberian ekstrak tanaman serai dapur (Cymbopogon citratus) memberikan pengaruh terhadap intensitas serangan serangga hama pada tanaman kacang panjang ( Vigna sinensis

Dari hasil penelitian dapat disimpulkan bahwa secara keseluruhan tentang identifikasi faktor penyebab kesulitan belajar kelas tinggi di SD Iqra’ Muara Bulian dipengaruhi