Anda di halaman 1dari 12

LAPORAN PRAKTIKUM

BASIS DATA II
Disusun untuk Memenuhi Tugas Matakuliah Basis Data Komputer
yang dibimbing oleh Bapak M. Zainal Arifin, S.Si, M.Kom

Oleh :
Ilham Akbar Ramadhan
160535611830

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
S1 TEKNIK INFORMATIKA
SEPTEMBER 2017
MODUL BASISDATA
TRANSACTION

I. TUJUAN

1. Memahami konsep dan urgensi transaksi dalam kehidupan sehari-hari,


2. Mampu mengimplementasikan transaksi basis data,
3. Mampu menyelesaikan operasi-perasi sensitif dengan memanfaatkan
transaksi basis data.

II. LATIHAN

1. Transaksi di MySQL

Penjelasan :
Perintah untuk melihat variabel seperti ‘have_innodb’ dalam sql. Dalam sistem operasi linux yang
muncul akan bertulisan “empty set” itu sama saja dengan have_innodb yes.

2. Tabel Transaksi

Setelah Query OK, maka gunakan perintah “use dtransaksi;” karena untuk menggunakan
databases tersebut. Berikutnya adalah membuat tabel dengan query berikut.

Selanjutnya adalah alter tabel, mengubah engine tabel non_trans menjadi innodb.

Penjelasan
Queri create database merupakan queri untuk membuat database dengan nama dtransaksi.
Setelah itu menggunakan queri “use dtransaksi” untuk menggunakan database dtransaksi
tersebut, setelah membuat dan menggunakan database tersebuut, membuat tabel dalam
database tersebut dengan perintah queri “create tabke” dan memasukkan isi dalam tabel
tersebut contohnya nama menggunakan tipe data varchar dengan rentang nilai 10 dan tidak
boleh kosong, jadi harus di isi. Primary key digunakan dalam nama serta engine dalam tabel
tersebut adalah innodb. Langkah selanjutnya mengganti engine tabel non_trans menjadi
innodb.
3. Implementasi Transaksi
Menambahkan 2 baris dalam tabel tersebut

Queri untuk memeriksa penambahan data

Untuk keluar dari terminal menggunakan queri berikut

Login kembali ke mysql dan gunakan tabel dtransaksi tersebut. Dan gunakan queri ini untuk
melihat tabel tersebut.

Penjelasan :
Queri start transaction digunakan untuk memulai transaksi dalam mysql, lalu menambahkan
beberapa baris dalam tabel tersebut dengan perintah insert into trans_demo, baris pertama
terisi oleh mysql dan baris kedua terisi oleh oracle, untuk memeriksa penambahan data
gunakan queri select * from (nama tabel), untuk keluar dari mysql gunakan perintah exit,
login kembali dan cek pada tabel tersebut lagi. Dan lihat hasilnya akan empty set karena
tidak diterapkanya transaksi dengan memanggil commit, lalu kembali membuat beris lagi
dan menggunakan queri commit, setelah dikeluar dan dicek ternyata ada barisnya.
3. B. Autocommit Mode

Setelah diganti value @@autocommit nya dari1 ke 0 maka setelah di cek akan berganti ke 0

Setelah queri penambahan baris diatas selanjutnya adlah keluar dari mysql, lalu masuk ke
mysql lagi untuk mengecek nilai @@autocommit dan jumlah baris

Penjelasan autocommit :
Ketika autocommit nilainya diubah menjadi 0 maka dia akan tidak menyimpan hasil
transaksi, contohnya pada saat memasukkan baris ke trans_demo dengan nama baris db2
setelah keluar dari mysql maka baris yang tadi dimasukkan tidak akan disimpan karena
autocommit diubah ke 0, dan lagi nilai autocommit berubah menjadi 1 setelah keluar tadi.
Selama autocommit belum dikembalikan ke 1, maka mode transaksi basis data akan selalu
aktif, sehingga tidak diperlukan lagi pemanggilan start transaction.
4. Rollback Transaksi
Memulai transaksi

Melihat isi dari trans_demo

Menambahkan baris data

Menambahkan kembali baris data yang sama

Pembatalan rangkaian perintah dalam satu transaksi

Hasul

Penjelasan :
Rollback merupakan perintah untuk membatalkan transaksi secara pemaksaan. Sebagai
contoh pada kasus diatas, setelah menambahkan baris data dan menambahkan baris data yang
sama maka akan bentrokm dan cara memaksa atau menghapus menggunakan rollback,
setelah di rollback maka baris data akan hilang setelah dicek. Ketika transaksi tersebut sudah
di commit maka tidak dapat lagi memaksa pembatalan melalui rollback.
5. Checkpointing

Memulai transaksi data

Memeriksa nilai tabel di trans_demo

Menambahkan baris data

Penandaan perintah pertama

Menambahkan baris data baru

Memeriksa nilai tabel

Perintah untuk kembali ke savepoint

Menambahkan baris data baru

Menerapkan transaksi
Memeriksa kembali nilai trans_demo

Penjelasan :
Savepoint digunakan untuk menandai perintah jika ingin rollback, jika kita sering main game
petualang kita akan menemukan lokasi checkpoint. Savepoint seperti itu dalam game, jadi
jika rollback maka kita akan kembali ke savepoint. Setelah penulisan queri save point lalu
penambahan baris data “sqlite” setelah penambahan baris data tersebut memasukkan queri
rollback to savepoint maka akab kembali sebelum penambahan baris baru sqlite. Lalu
menambahkan baris baru lagi db2 lali transaksi disimpan (commit). Setelah itu memeriksa
kembali nilai trans_demo dan baris data sqlite tidak ada tetapi baris data db2 ada.

III. TUGAS

1. Tugas 1
Membuat tabel tabungan dengan baris no_rek menggunakan tipedata integer tidak boleh
kosong, jumlah menggunakan tipedata double tidak boleh kosong, trans_id menggunakan tipe
data integer tidak boleh kosong, tabel ini menggunakan engine innodb.

Memasukkan data dalam tabel tabungan. Pada bagian pertama merupakan no_rek, yang kedua
merupakan saldo atau jumlah unag, yang ketiga adalah trans_id
Untuk menangani transfer antar rekeneing menggunakan queri diatas.

Memulai transaksi

Pemangguilan stored proceure transfer,, mengirimkan jumlah dari rekening 11 ke rekening 12


sejumlah 400000
Sisa saldo rekening

Penyimpanan transaksi

Penjelasan :
Dalam soal ini stored procedure digunakan untuk mentransfer dari rekening satu ke rekening lainya.
Menggunakan DELIMITER, jika menggunakan DELIMITER jangan lupa menambahkan $$, contoh
“DELIMITER $$” lalu membuat procedure transfer dengan isi norekawal menggunakan tipedata
integer, norektujuan menggunakan integer dan transfer1 menggunakan tipedata integer juga.stored
procedure menggunakan “begin” jika menggunakan begin jangan lupa menutup dengan “end”,
didalam stored procedure merubah tabel tersebut mengatur jumlah tersebut dikurangi transfer1,
karena dalam transfer jumlah saldo kita akan berkurang sesuai dengan nominal yang akan kita
transfer, dalam procedure ini no_rek sama seperti norekawal, ketika kita transfer maka nomor
rekening yang kita transfer jumlah saldonya akan bertambah. Sebagai contoh kita transfer dari
rekening 11 ke rekening 12 dengan nominal 400000, maka jumlah dari rekening 11 akan berkurang
400000 dan rekening 12 akan bertamah 400000
2. Tugas 2
Dalam soal ini stored procedure digunakan untuk menangani penarikan tabungan, dengan
syarat saldo mencukupi, saldo minimal 50000, jumlah penarikan uang minimal 50000 dan
maksimal 500000

Untuk stored procedure penarikan uang kita menggunakan queri berikut

Memulai transaksi

Memeriksa tabel tabungan

Pemanggilan stored procedure penarikan

Memeriksa kembali tabel tabungan

Mencoba juka menarik uang sebesar 1000


Penjelasan :
Menggunakan DELIMITER $$, membuat procedure penarikan diantaranya norek
menggunakan tipe data integer dan ambil juga menggunakan tipe data integer.
Mendeklarasikan a menggunakan tipe data integer. Dalam penarikan jumlah pengambilan
minimal 50000 dan maksimal 500000, dalam procedur ditulis menggunakan lebih dari
samadengan dan kurang dari samadengan. Dalam penarikan jumlah uang yang akan diambil
akan berkurang dalam saldo rekeningnya, jika pengambilan tersebut dibawah 50000 ( 49.999
kebawah ) maka tidak akan bisa mengambil dan saldo akan tetap. Jika pengambilan diatas
500.000 ( 500.001 keatas ) maka tidak akan bisa mengambil dan saldo akan tetap.
3. Tugas 3
Dalam soal ini stored procedure digunakan untuk penarikan uang tetapi dibatasi 2x, dan
minimal menyisakan saldo 50000.

Untuk procedure penarikan uang yang dibatasi kita bisa menggunakan queri dibawah ini
Memeriksa tabel tabungan

Memanggil stored procedure tadi dan melakukan penarikan uang 250000 sebanyak 2 kali,
dan memeriksa tabel tabungan.

Melakukan penarikan lagi sejumlah 50000 sebanyak 1 kali dan memeriksa tabel tabungan.
Dan melakukan penarikan lagi sejumlah 50000 sebayak 1 kali,
Penjelasan :
Menggunakan delimiter $$, membuat procedure lagi beserta norek menggunakan tipe data
integer, ambil menggunakan tipe data integer dan jml menggunakan tipe data integer,
mendeklarasikan a dan b menggunakan tipedata integer, mengatur b = 0 dan menggunakan
perulangan while. Penarikan minimal 50000 dan maksimal 500000, a harus lebih dari sama
dengan pengambilan. Sebagai contoh dalam penarikan diatas, kita melakukan penarikan
sejumlah 250000x2 dan saldo akan berkurang 100000, dan jika kita melakukan penarikan
lagi dengan jumlah 50000 akan tetap bisa karena kita harus menyisahkan minimal saldo
50000. Ketika saldo 50000 dan kita melakukan penarikan maka tidak akan berkurang saldo
tersebut karena minimal menyisihkan saldo berjumlah 50000.
IV. KESIMPULAN
Pengimplementasian basis data sangat banyak didunia ini, sebagai contoh pengimplementasian
dalam penarikan tunai di atm. Dalam atm terdapat nomor rekening, jumlah saldo, transfer uang,
dan lain lain. Pengimplementasian ini digunakan dalam soal soal diatas.
Pengimplementasian ini membuat kita lebih mengerti cara kerja atm. Dibutuhkan juga stored
procedure dalam melakukan penarikan atau transfer uang dalam mysql ini.
Ketika menggunakan DELIMITER harus menggunakan $$ sebagai pendampingnya. Dan dalam
stored procedure ketika menggunakan begin harus ditutup menggunakan END

Anda mungkin juga menyukai