UNIKOM (2010)
Disusun Oleh : Andri Heryandi, M.T. (andri@unikom.ac.id)
Jenis aplikasi
2
Ada 2 jenis aplikasi yang biasa dibuat, yaitu
Aplikasi database berbasis desktop
Dibangun dengan Delphi, Java, C++, Visual Basic, dll
Aplikasi database berbasis web
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Aplikasi Berbasis Desktop
3
Aplikasi contoh akan dibangun menggunakan Delphi
MEMBUAT KONEKSI KE
SERVER DATABASE
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Aplikasi Berbasis Desktop
5
Tempatkan komponen AdoConnection (ada di
Aplikasi Berbasis Desktop
6
Klik AdoConnection, pilih properti ConnectionString
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Aplikasi Berbasis Desktop
7
Aplikasi Berbasis Desktop
8
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Aplikasi Berbasis Desktop
9
Aplikasi Berbasis Desktop
10
Atur konfigurasi seperti pada gambar di bawah ini. IP Server:Port Listener/NamaDatabaseServer
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Aplikasi Berbasis Desktop
11
Klik tombol “Test connection”
Jika berhasil akan menampilkan layar seperti pada
gambar di bawah ini.
Aplikasi Berbasis Desktop
12
Atur property Connected dari ADOConnection
UNIKOM (2010)
Disusun Oleh : Andri Heryandi, M.T. (andri@unikom.ac.id)
MENAMPILKAN DATA
Menampilkan Data
14
Tempatkan sebuah ADOQuery (ada di component
palette ADO) pada form
Klik ADOQuery1 untuk mengatur propertinya Ganti property Name menjadi QTabungan
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Menampilkan Data
15
Isilah properti SQL dengan
Menampilkan Data
16
Aturlah property Active dari QTabungan menjadi
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Menampilkan Data
17
Tempatkan sebuah DataSource (ada di component
palette Data Access)
Atur property Name menjadi DSTabungan
Menampilkan Data
18
Tempatkan sebuah DBGrid (ada di component palette
Data Controls)
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Menampilkan Data
19
Lakukan hal yang sama untuk menampilkan tabel
TblTransaksi. Atur properti sebagai berikut :
Komponen AdoQuery
CONNECTION : ADOConnection1 NAME : QTransaksi
SQL : SELECT * FROM TblTransaksi Active : TRUE
Komponen DataSource
Menampilkan Data
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Menampilkan Data
21
Membuat Tombol Refresh Data Tabungan
Tempatkan sebuah Tombol di atas dbgrid Tabungan Ganti Caption : Refresh
Menampilkan Data
22
Membuat Tombol Refresh Data Transaksi
Tempatkan sebuah Tombol di atas dbgrid Transaksi Ganti Caption : Refresh
UNIKOM (2010)
Disusun Oleh : Andri Heryandi, M.T. (andri@unikom.ac.id)
MEMANGGIL STORED
PROCEDURE
Memanggil Stored Procedure
24
Tempatkan sebuah ADOStoredProc
Isi property CONNECTION : ADOConnection1 Ganti property NAME : TambahTabungan
Isi property PROCEDURENAME : TambahTabungan
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Memanggil Stored Procedure
25
Untuk melihat parameter yang dibutuhkan, klik
property Parameters.
Memanggil Stored Procedure
26
Buatlah tempat untuk pengisian data tabungan baru,
misalnya :
Tempatkan sebuah GroupBox, ganti Caption : Tambah
Tabungan
Tempatkan 3 Label dan 3 TextBox dan 1 Button
TextBox1 diberi nama ENama TextBox2 diberi nama EKota TextBox3 diberi nama ESaldo Untuk label sesuaikan captionnya
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Memanggil Stored Procedure
27
Isilah event OnClick pada Button1 dengan
procedure TForm1.Button1Click(Sender: TObject); begin
Memanggil Stored Procedure
28
Ulangi langkah-langkah memanggil stored
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Memanggil Stored Procedure
29
Isilah event OnClick pada Button Transaksi Cash
procedure TForm1.Button3Click(Sender: TObject); begin
With TransaksiCash.Parameters do begin
ParamByName('pNoRek').Value:=ECashNoRek.Text; ParamByName('pBesar').Value:=ECashBesar.Text; end;
TransaksiCash.ExecProc;
Memanggil Stored Procedure
30
Isilah event OnClick pada Button Transaksi Transfer
procedure TForm1.Button4Click(Sender: TObject); begin
With TransaksiTransfer.Parameters do begin ParamByName('pNoRek1').Value:=ETransferNoRek1.Text; ParamByName('pNoRek2').Value:=ETransferNoRek2.Text; ParamByName('pBesar').Value:=ETransferBesar.Text; end; TransaksiTransfer.ExecProc;
UNIKOM (2010)
Disusun Oleh : Andri Heryandi, M.T. (andri@unikom.ac.id)
MEMBUAT APLIKASI
WEB DENGAN
Aplikasi berbasis web
2
Dalam perkuliahan ini akan dicontohkan pembuatan aplikasi berbasis web menggunakan PHP
Syarat :
Web Server : Apache, IIS
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Aplikasi berbasis web
3
Konfigurasi PHP
Edit file php.ini. Biasanya file ini berada pada folder
PHP.
Cari “extension=php_oci8.dll”
Hilangkan tanda titik koma (;) pada awal barisnya. Simpan konfigurasi PHP-nya.
Aplikasi berbasis web (ora1.php)
4
Buat file php untuk mengakses database. Simpan
dalam folder webnya (biasanya dalam folder htdocs atau www).
<?php
$c = oci_connect('username', 'password',
'localhost:1521/dbora.serverora.com'); $s = oci_parse($c, 'select * from TblTabungan');
oci_execute($s);
while ($res = oci_fetch_array($s, OCI_ASSOC)) { echo $res['NOREK'] .' - '.$res['NAMA']. "<br>"; }
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Aplikasi berbasis web (ora1.php)
5
Aplikasi berbasis web (ora2.php)
6
<?php
$c = oci_connect('username', 'password',
'localhost:1521/dbora.serverora.com'); $s = oci_parse($c, 'select * from TblTabungan');
oci_execute($s);
while ($res = oci_fetch_row($s)) {
echo $res[0] .' - '.$res[1]. "<br>"; }
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Aplikasi berbasis web (ora1.php)
7
Aplikasi berbasis web (ora3.php)
8
<?php
$c = oci_connect('db97025', 'db97025',
'localhost:1521/dbora.serverora.com'); $s = oci_parse($c,"BEGIN
TambahTabungan(:nama,:kota,:saldo); END;"); $nama='Test Nama'; // boleh dari form $kota='Test Kota'; // boleh dari form $saldo=25555; // boleh diambil dari form oci_bind_by_name($s,':nama',$nama);
oci_bind_by_name($s,':kota',$kota); oci_bind_by_name($s,':saldo',$saldo); $res=oci_execute($s);
if($res)
echo "Tabungan berhasil disimpan<br>"; else
UNIKOM (2010)
Disusun Oleh : Andri Heryandi, M.T. (andri@unikom.ac.id)
DATABASE
Definisi Transaction
2
Sebuah unit logik dari suatu pekerjaan yang terdiri
dari 1 atau banyak statement SQL
Merupakan sebuah unit yang atomic, sehingga
hanya ada 2 kemungkinan yang terjadi yaitu : Data ter-commit (semua perubahan data tersimpan
secara permanen )
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Contoh Kasus
3
Transaksi transfer antar rekening. Ada 3 SQL yang
harus dieksekusi yaitu :
Menyimpan data transaksi ke tabel transaksi (INSERT) Melakukan pengurangan saldo ke rekening pengirim
(UPDATE)
Melakukan penambahan saldo ke rekening penerima
(UPDATE)
Semua SQL harus tereksekusi semua atau
Statement dalam Transaksi
4
COMMIT : Melakukan penyimpanan perubahan
data.
ROLLBACK : Melakukan pembatalan perubahan
data.
SAVEPOINT : Memberi tanda suatu posisi
perubahan data.
ROLLBACK TO savepoint : Melakukan pembatalan
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Awal Transaksi
5
Suatu transaksi database diawali dengan adanya
pemanggilan statement Data Manipulation Language (DML) seperti
Akhir Transaksi
6
Transaksi berakhir ketika terjadi salah satu hal berikut :
Pemanggilan statement COMMIT Pemanggilan statement ROLLBACK
Pemanggilan statement Data Definition Language (DDL)
seperti CREATE, ALTER, DROP. Hal ini akan mengakibatkan COMMIT.
Keluar dari SQL*PLUS secara normal. Hal ini akan
mengakibatkan COMMIT
Keluar dari SQL*PLUS secara abnormal atau kegagalan
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Kondisi Data Sebelum
COMMIT/ROLLBACK
7
Perubahan data dapat dikembalikan (restore) ke
kondisi sebelum DML pertama dieksekusi (commit terakhir).
User yang login akan dapat melihat data hasil
perubahan, tetapi user lain tidak.
Jika user melakukan DML terhadap baris data,
Kondisi data setelah COMMIT
8
Semua perubahan data tersimpan secara
permanen.
Semua SAVEPOINT dihapus
Semua lock dilepas. Sehingga user lain dapat
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Kondisi data setelah ROLLBACK
9
Semua perubahan data dibatalkan. Data kembali
ke kondisi sebelum awal transaksi.
Demo Transaksi
10
Login ke oracle
Buat sebuah tabel. Misalnya tabel Rekening
CREATE TABLE rekening(
NoRek INTEGER PRIMARY KEY, Nama VARCHAR(10),
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi
11
Beri beberapa contoh data
INSERT INTO rekening VALUES(1,'Ade',1000); INSERT INTO rekening VALUES(2,'Badra',2000); INSERT INTO rekening VALUES(3,'Cecep',3000); COMMIT;
Demo Transaksi
12
Buka 2 koneksi ke database dengan cara membuka
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi
13
Eksekusi SQL pada kedua SQL*PLUS.
Demo Transaksi
14
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (1)
15
Mendemonstrasikan transaksi database dimana suatu perubahan data yang dilakukan oleh seorang user tidak dapat diakses oleh user lain sebelum melakukan
Demo Transaksi (1)
16
Lakukan penambahan data baru pada SQLPlus 1
INSERT INTO rekening
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (1)
17
Demo Transaksi (1)
18
Eksekusi SQL pada kedua SQL*PLUS.
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (1)
19
Demo Transaksi (1)
20
Lakukan COMMIT di koneksi pertama.
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (1)
21
Demo Transaksi (1)
22
Eksekusi SQL pada kedua SQL*PLUS.
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (1)
23
Setelah COMMIT pada koneksi 1, maka semua perubahan yang telah dilakukan jadi dapat dilihat oleh user lain. Semua koneksi
Demo Transaksi (2)
24
Mendemonstrasikan transaksi database dimana suatu perubahan data yang dilakukan oleh seorang user
akan mengunci (lock) baris-baris yang berubah
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (2)
25
Lakukan update pada koneksi 1.
Demo Transaksi (2)
26
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (2)
27
Eksekusi SQL berikut di kedua koneksi.
Demo Transaksi (2)
28
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (2)
29
Eksekusi SQL berikut di kedua koneksi kedua yang
akan mengupdate data pada baris yang dikunci.
UPDATE rekening
Demo Transaksi (2)
30
User ke-dua akan menunggu sampai baris yang dikunci
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (2)
31
Lakukan COMMIT di koneksi pertama.
Demo Transaksi (2)
32
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (2)
33
Eksekusi SQL berikut di kedua koneksi.
Demo Transaksi (2)
34
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (2)
35
Lakukan COMMIT di koneksi kedua.
Demo Transaksi (2)
36
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (2)
37
Eksekusi SQL berikut di kedua koneksi.
Demo Transaksi (2)
38
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (3)
39
Demo Transaksi (2)
40
Eksekusi SQL berikut pada koneksi 1
INSERT INTO rekening
VALUES(6,'Ferdi',6000); SAVEPOINT SP1;
DELETE FROM rekening WHERE NoRek<5; SAVEPOINT SP2;
1
2
3
4
Penyisipan data baru dengan nomor rekening 6
Titik aman SP1. Setelah data ditambah 1 baris
Hapus data yang nomor rekening < 5
Titik aman SP2. Setelah
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (2)
41
Eksekusi SQL berikut pada koneksi 1
Demo Transaksi (2)
42
Eksekusi SQL berikut pada koneksi 1
Oracle-academy@unikom oleh : Andri Heryandi, M.T. (2010)
Demo Transaksi (2)
43
Eksekusi SQL berikut pada koneksi 1
Demo Transaksi (2)
44
Eksekusi SQL berikut pada koneksi 1