Kamis, 01 Mei 2014

TRANSAKSI


Transaksi adalah satu atau beberapa aksi program aplikasi yang mengakses/mengubah isi basis data. Transaksi merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data.  DBMS yang kita gunakan harus menjamin bahwa setiap transaksi harus dapat dikerjakan secara utuh atau tidak sama sekali.  Tidak boleh ada transaksi yang hanya dikerjakan sebagian, karena dapat menyebabkan inkonsistensi basis data.  Untuk itu transaksi selalu merubah basis data dari satu kondisi konsisten ke kondisi konsisten lain.
Sebuah transaksi berpeluang untuk ‘mengganggu’ integritas basis data yang dapat membuat kondisi/hubungan antar data tidak seperti seharusnya.  Untuk menjamin agar integritas dapat tetap terpelihara maka setiap transaksi harus memiliki sifat-sifat:
1.      Atomik, dimana semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.
2.      Konsisten, dimana eksekusi transaksi secara tunggal harus dapat menjamin data tetap konsisten setelah transaksi berakhir.
3.      Terisolasi, jika pada sebuah sistem basis data terdapat sejumlah transaksi yang dilaksanakan secara bersamaan, maka semua transaksi yang dilaksanakan pada saat yang bersamaan tersebut harus dapat dimulai dan bisa berakhir.
4.      Bertahan, dimana perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem menjadi mati.


Operasi Transaksi Pada Oracle

Commit berfungsi untuk menandakan bahwa transaksi telah dilaksanan.
Rollback berfungsi untuk memberitahukan bahwa transaksi harus diulang karena adanya suatu kegagalan.

Berikut contohnya:
Pertama marilah kita buat tabel yang bernama “dicoba”.

Setelah itu marilah kita isi datanya serta membuat sequencenya:



Terus mari kita mainkan commit dan rollbacknya. Sebelumnya mari kita buka SQL Command Line dengan latar yang berbeda, seperti gambar dibawah ini:
--saya memakai warna hitam dan abu-abu. 



Pastikan kita login dengan user yang sama.



Masih sama ya? Belom ada perbedaan, oke mari kita bikin mereke berbeda..
Isi data berikut di Command Line yang latarnya warna hitam. 



Next mari kita tampilkan table tersebut di SQL Command Line  yang berwarna hitam.

Jangan lupa di SQL Command Line latar abu-abu kita tampilkan datanya.



          Beda yaa??? Cieee bisa beda,, wkwkwkwk..
            Why??? Jawabannya adalah karena transaksi memasukkan data pada Command Line berlatar hitam belum sepenuhnya berakhir. Untuk menandakan bahwa proses memasukkan data tersebut telah berakhir dan sukses, maka kita perlu menyatakan bahwa transaksi tersebut telah commit.


Gini cara commitnya:



Setelah itu kita coba tampilkan data di Command Line yang berlatar abu-abu, pasti datanya sudah bertambah seperti yang ada di Command Line yang hitam. Cieee sama.. sehati.. hehe..



Save Point
Save point seperti sebuah check point saat kita bermain game. Fungsi dari save point adalah supaya pada saat kita ingin rollback atau ada transaksi yang gagal, transaksi tidak berjalan dari awal kembali, tetapi dari save poin yang telah kita buat. Untuk membuat sebuah save point, caranya adalah : 
SAVEPOINT[nama save point];

Setelah dibuat save pointnya kita dapat rollback ke save point tersebut dengan cara : 

ROLLBACK TO[nama save point]; 


Isolasi Transaksi
Dalam transaksi database, ada 3 hal yang harus dicegah yaitu. 
·         Dirty Read 
Transaksi membaca data dari hasil transaksi lainnya yang gagal. Kedua transaksi tersebut 
berjalan bersamaan. 
·         Non-Repeatable Read 
Transaksi membaca ulang data yang telah di baca sebelumnya karena data tersebut telah 
di modifikasi oleh transaksi lainnya. 
·          Phantom Read
Transaksi membaca sebuah data yang telah hilang akibat dari transaksi yang lainnya. 

Untuk mencegah 3 hal tersebut, maka dalam Oracle terdapat 2 level isolasi yang dapat diimplementasikan, yaitu : 
·         Read Commited 
Transaksi hanya dapat melihat perubahan data setelah transaksi lain telah commit pada 
data tersebut. (Seperti dalam contoh commit) 
·         Serializable 
      Adalah level isolasi yang menyediakan isolasi transaksi yang paling ketat. Level ini mengemulasikan eksekusi transaksi secara serial, menjadikan transaksi dieksekusi satu setelah yang lainnya,seperti secara serial, bukan secara bersamaan (pararel). Tetapi aplikasi yang menggunakan level isolasi ini harus bersedia untuk mengulangi transaksi dikarenakan kegagalan pengserialan transaksi. 

     Saat transaksi berada pada level serializable, sebuah query SELECT hanya melihat data yang di COMMIT sebelum transaksi di mulai; transaksi tersebut tidak akan pernah melihat baik data yang belum di COMMIT atau perubahan data yang terjadi selama eksekusi transaksi oleh transaksi lain yang berjalan pada waktu bersamaan (e.g. saat transaksi ini berjalan, ada transaksi lain yang melakukan COMMIT pada data). Jika pada transaksi dengan level isolasi Serializable mengandung DML (Data Manipulatin Language) yang mencoba untuk meng-update suatu data yang mungkin sudah di update pada sebuah transaksi yang belum di commit pada awal transaksi Serializable, maka perintah DML tersebut akan gagal. 

         Untuk mengaplikasikan level isolasi Serializable, adalah dengan menggunakan perintah : 

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
Isolai level ini mencegah terjadinya Phantom Read. 

Locking Protocol
Pada transaksi database, dikenal istilah locking yang berfungsi untuk menjaga integritas data. Terdapat dua buah metode locking yaitu : 
·         Shared Lock (S-LOCK) 
Jika transaksi memiliki shared lock pada suatu data, transaksi tersebut hanya bisa melakukan pembacaan. 
·         Exclusive Lock (X-LOCK) 
Bagi transaksi yang memiliki exclusive lock pada suatu data, transaksi tersebut dapat melakukan perubahan dan pembacaan terhadap data tersebut. 
Untuk shared lock, dapat dimiliki oleh beberapa transaksi dalam satu waktu, namun untuk exclusive lock, hanya dapat dimiliki oleh satu transaksi pada satu waktu. 
Penguncian Level Tabel
Penguncian yang berfungsi untuk mengunci suatu tabel untuk mencegah perubahan atau penghapusan tabel selama ada transaksi yang menggunakan tabel tersebut. Untuk melakukan perintah penguncian tabel, adalah sebagai berikut. 

LOCK TABLE [nama tabel]; 
Penguncian Level Baris

Penguncian yang dilakukan pada baris (ROW) yang sedang digunakan oleh suatu transaksi sampai transaksi tersebut selesai dilakukan. Penguncian level baris hanya berlaku untuk operasi UPDATE dan DELETE. 
Deadlock

Merupakan situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu Lock dilepas sebelum di mulai (Yudi Wibisono). 



Kamis, 27 Februari 2014

Instalasi Oracle + CRUD Instalasi Netbeans +jsp

Oke guys, langsung saja kita ke topik kita yang pertama, yaitu ORACLE. Basis data Oracle adalah basis data relasional yang terdiri dari kumpulan data dalam suatu sistem manajemen basis data RDBMS. Perusahaanperangkat lunak Oracle memasarkan jenis basis data ini untuk bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan merkperangkat keras komputer (platform). Basis data Oracle ini pertama kali dikembangkan oleh Larry Ellison, Bob Miner dan Ed Oates lewat perusahaan konsultasinya bernama Software Development Laboratories (SDL) pada tahun 1977. Pada tahun 1983, perusahaan ini berubah nama menjadi Oracle Corporation sampai sekarang.
Kali ini kita akan menggunakan oracle 10g Express. Langkah-langkah instalasinya adalah :

1.    Buka terlebih dahulu installer (mentahan) Oracle 10g Express Edition anda. Dan akan tampil layar seperti berikut :

2.    Dan akan muncul tampilan seperti berikut, dan klik next.

3.    Centang bagian yang telah ditandai dan next.

4.    Silahkan dipilih lokasi penyimpanan oracle anda (jika anda mau ganti) di bagian yang telah ditandai. Dan next.


5.    Berikutnya silahkan isi password anda demi keamanan data broooh.

6.    Dan sekarang klik install.

7.    Tunggu aja broh sampe beressss…

8.    Dan akhirnya yang ditunggu dating juga J, klik finish.


Tahap penginstalan sudah selesai, sekarang kita launching oraclenya, pertama kita buka dulu aplikasi Go To Database Home Page di all program.

            Sekarang silahkan masukan username sama passwordnya. Dan login.



Dan ini halaman utamanya broh


Dan pilih SQL Commands yang telah di tandai berikut ini




Dan inilah tampilan dari sql command line:



Sekarang waktunya untuk menggunakan SQL*Plus.

Silahkan klik aplikasinya di : all program: Run SQL Command Line


  1.    Silahkan connect ke system dan isi passwordnya
  2.    Untuk melihat isi table, berikut syntaxnya brohhh..


3.    Untuk disconnect gini caranya :



Sekarang kita belajar tentang CRUD sederhana di oracle database homepage.

   1.    Harus login terlebih daulu sebagai system.
   2.    Harus membuat database baru terlebih dahulu.
   3.    Disini kita juga bisa membuat user baru brohh..
   4.    Untuk membuat user baru pilih administrator.


5.    Lalu pilih database users dan create!!!

6.    Silahkan isi datanya dan create. Disini ane bikin user dengan nama “testing”

7.    Silahkan logout dan login sebagai akun testing.

8.    Setelah login silahkan ikuti instruksi berikut.



9.    Sekarang kita buat tabel, disini ane akan bikin tabel jomblo nih, 
kebetulan ane lagi jomblo siapa tau ada yang prihatin dan 
mau sama ane,, hehehe :D
RUN!!!

10. Silahkan di buka tabel jomblo  dengan cara kembali ke home, object browser.

11. Selanjutnya silahkan ke data=>insert row untuk menambahkan data.
Isi datanya, create untuk membuat satu kali, dan create and create another untuk membuat lebih dari satukali broh.

12. Dan ini data yang telah dibuat:


13. Sekarang edit, silahkan di klik ada gambar pensil ama kertas di sebelah id.


Klik apply changes untuk jika telah diubah.

14.  Sekarang hapus, silahkan pilih data yang akan dihapus dan klik delete.
Uda gak jomblo lagi, tapi single. Single itu prinsip, jomblo itu nasib, hehehe :D

15. Sekarang kita bermain dengan SQL Command Line. 
Caranya sama dengan sql gitu-gitu mblo..




Sekarang kita beranjak ke instalasi netbeans

1.    Sebelumnya pastikan di PC anda sudah ada aplikasi JDK, gak tau JDK ya?? 
Ya udah cari aja di mbah google. Hehehe :D. Mari kita buka installer netbeansnya mblo.

2.    Klick customize
3.    Centang semuanya..
Dan ok.
Lalu next.

4.    Jangan lupa di centang yaa..
Next blo..

5.    Pilih instruksi berikut dan next.


6.    Next

7.    Next deui..

8.    Next again..

9.    Install mblo!!!

10. Tunggu aja ya mblo, jodoh gak kemana-mana kok.. hahahaha :D


11. Dan FINISH












Sekarang membuat JSP sederhana.

1.    Silahkan buka aplikasi netbeansnya mblo.

2.    Silahkan pilih new project.


3.    Sekarang pilih java web, web application dan next.

4.    Sekarang silahkan ganti project name sesuai yang anda inginkan 
dan lokasi filenya silahkan diganti sesuka hatimu.
Dan next.

5.    Untuk kali ini gunakan Apache Tomcat 7.0.11
Next.

6.    Sekarang finish aja mblo.


Jika sudah maka akan muncul file index.jsp seperti berikut:
Dan play bro untuk menjalankan index.jsp nya di browser.


Jika tidak ada masalah dalam compilenya maka akan muncul jendela browser  berikut :


Cukup sekian dan terima kasih, SALAM JOMBLO..
@syandi_mufti