Pada program kali ini kita akan menggunakan oracle database sebagai programnya, pada dasarnya perintah-perintah yang ada pada oracle tidak beda dari mysql. Untuk pertemuan kali ini saya akan mencoba menggunakan perintah commit, savepoint dan rollback. Savepoint digunakan untuk membuat sebuah titik/checkpoint dari suatu database, sehingga jika di panggil, maka data akan tetap seperti saat sebelum savepoint tersebut dieksekusi. Commit digunakan untuk membuat data tidak dapat diubah kembali meskipun menggunakan perintah rollback. Rollback digunakan untuk kembali ke posisi dimana kita menentukan savepoint ataupun saat kita menetukan commit.

Pada program diatas pertama kita membuat sebuah table bernama tblbarang, dengan nilai kd_brg, nm_brg dan harga. Kemudian kita memasukkan 3 data terlebih dahulu, dengan menggunakan perintah insert into. Setelah itu kita cek table yang telah kita buat, dengan menggunakan perintah select, select * untuk menampilkan semua data yang ada pada table tersebut. Kemudian commit untuk membuat data tersebut menjadi paten, jika dirubah, user hanya perlu melakukan rollback, dan akan kembali ke 3 data tersebut. Setelah di commit, masukkan data kembali check dengan select, dan data menjadi 4 sekarang, lalu kemudian lakukan rollback kemudian check lagi, maka datanya sekarang hanya ada 3, karena sudah di commit pada saat data tersebut 3.

Kemudian masukkan data lagi, check data, sekarang menjadi 4 lagi, kemudian buat sebuah savepoint dengan nama test. Kemudian update data dengan perintah update from nm_tabel set nama yg akan dirubah , check data lagi, maka data pertama tersebut akan berubah nilainya, harga pada barang TV Tunner akan berubah menjadi 180000. Kemudian untuk kembali ke savepoint yang kita buat tadi, menggunakan perintah rollback to test. Untuk kembali ke data pada savepoint test. Lalu check data lagi, maka sekarang datanya akan kembali ke data sebelumnya dimana harga barang TV Tunner menjadi 185000. Kemudian kita masukan data lagi, buat savepoint lagi dengan nama test1, lalu masukkan data lagi, dan buat save point 2, sekarang kita check, maka datanya akan berjumlah 6, kemudian kita rollback ke test1. lalu di check dengan select, maka datanya hanya akan ada 4. kemudian kita gunakan rollback to test2 untuk ke savepoint test2. tetapi tidak akan tampil output, karena kita telah kembali ke savepoint test1 yang belum terisi dengan savepoint test2.

Listing Program :

create table tblbarang (kd_brg varchar (3) primary key not null, nm_brg varchar (10) not null, harga varchar (7) not null);
Insert into tblbarang values (‘M02’, ‘Mouse’, 55000);
Insert into tblbarang values (‘K01’, ‘Monitor’, 1250000);
Insert into tblbarang values (‘K01’, ‘Keyboard’, 125000);
Select * from tblbarang;

Commit;
Insert into tblbarang values (‘S01’, ‘Speaker’, 175000);
Select * from tblbarang;

Rollback;
Select * from tblbarang;

Insert into tblbarang values (‘T01’, ‘TV Tunner’, 185000);
Select * from tblbarang;

Savepoint test;
Update from tblbarang set harga=’180000’ where nm_brg=’TV Tunner’;
Select * from mahasiswa;

Rollback to test;
Select* from mahasiswa;

Insert into tblbarang values (‘S01’, ‘Speaker’, 195000);
Select* from mahasiswa;

Savepoint test1;
Insert into tblbarang values (‘H01’, ‘HDD Ext’, 550000);
Select* from mahasiswa;

Savepoint test2;
Rollback to test1;
Select * from mahasiswa;

Rollback to test2;
Select * from mahasiswa