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
TUJUAN
Memahami konsep dan urgensi transaksi dalam kehidupan sehari-hari,
Mampu mengimplementasikan transaksi basis data,
Mampu menyelesaikan operasi-perasi sensitif dengan memanfaatkan
transaksi basis data.
LATIHAN
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.
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.
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.
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.
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.
TUGAS
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
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.
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.
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