Anda di halaman 1dari 5

STUDI KASUS DAN PEMBAHASAN PEMESANAN TIKET BIOSKOP SECARA ONLINE

Dunia perfilman semakin hari semakin mengalami perkembangan yang sangat pesat. Mulai dari sound effect, gambar, dan lain sebagainya. Kini, industri perfilman mulai didukung pula oleh teknologi yang semakin canggih. Dalam pembahasan kali ini, kita akan membahas tentang database tiket bioskop. Dimana di dalamnya menyipan data-data tiket sesuai dengan film yang akan tayang. Pada tahap selanjutnya dapat pula diketahui hasil penjualan tiket tersebut. Sebagai contoh, pada suatu bioskop di kota Bandung, sebutlah namanya adalah bioskop twelve. Bioskop tersebut menerima layanan pemesanan tiket lewat online dan pembayaran dilakukan melalui bank. Pada kasus ini, objek-objek yang diperlukan dalam database antara lain: pembeli, film, kategori, studio, tiket, jadwal, memesan dan kursi. Dimana objek-objek tersebut kemudian dijadikan suatu entitas dalam pembuatan ERD (Entitiy Relationship Diagram). Pembeli mencakup id pembeli, nama, jenis kelamin, no kontak, email, dan alamat. Film mencakup id film, judul, dan kategori. Kategori mencakup id kategori, nama kategori. Studio mencakup kode studio dan nama studio. Kemudian tiket mencakup kode tiket, harga, stok. Selanjutnya jadwal yang mencakup id jadwal, id film, kode studio, tanggal, jam mulai, dan jam selesai. Lalu ada memesan yang mencakup id pesan, id pembeli, kode tiket, banyak, total harga, dan tanggal pesan. Dan yang terkahir kursi yang mencakup id kursi dan nama. Cakupan yang ada di dalam entitas tersebut kemudian akan dijadikan atribut. Setelah diketahui entitas dan atribut, maka selanjutnya kita menentukan relasi antar entitas dari semua entitas yang telah tersedia. Tentulah di sini tidak semua entitas saling berhubungan langsung antara satu dengan lainnya. Tapi antar satu entitas dengan entitas yang lainnya menunjukan adanya hubungan. Pemodelan seperti tersebut disebut dengan diagram entitas atau sering kita sebut dengan ERD (Entitiy Relationship Diagram). Berikut di bawah ini merupakan ERD dari pemesanan tiket online di suatu bioskop yang dalam hal ini adalah bioskop twelve:

Setelah pembuatan ERD selesai, selanjutnya kita lanjut ke langkah selanjutnya, yaitu melakukan integritas data yang salah satunya adalah constraint. Dari sekian banyaknya atribut yang terdapat pada setiap entitas yang telah ditentukan, setiap atribut tentunya harus memiliki type data yang sesuai untuk digunakan dalam pemrogramannya. Berikut kita buat struktur tabelnya terlebih dahulu kemudian kita juga tentukan constraintnya, dimana constraint ini salah satu untuk menjaga data (integritas data): Tabel pemesan Nama kolom Tipe data Keterangan id_pemesan int Primary key nama varchar2(25) no_kontak number email varchar2(30) alamat varchar2(50) jk varchar2(10) Constraint: constraint pk_id_pemesan primary key (id_pemesan), constraint check_jk check(jk = 'laki-laki' or jk = 'perempuan')

Tabel film Nama kolom Tipe data Keterangan id_film int Primary key judul varchar2(40) kategori varchar2(5) Constraint: constraint pk_id_film primary key (id_film) Tabel kategori Nama kolom Tipe data Keterangan id_kategori varchar2(5) Primary key nama varchar2(20) Constraint: constraint pk_id_kategori primary key (id_kategori) Tabel studio Nama kolom Tipe data Keterangan kode_studio varchar2(5) Primary key nama_studio varchar2(20) id_kursi int Constraint: constraint pk_kode_studio primary key (kode_studio), constraint fk_id_kursi foreign key(id_kursi) references kursi(id_kursi) Tabel tiket Nama kolom Tipe data Keterangan kode_tiket varchar2(6) Primary key stok int harga float id_kursi int Constraint: constraint pk_kode_tiket primary key (kode_tiket), constraint check_stok check(stok<=40), constraint check_stok check(harga>0), constraint fk_id_kursi foreign key(id_kursi) references kursi(id_kursi) Tabel kursi Nama kolom Tipe data Keterangan id_kursi int Primary key nama_kursi varchar2(20) Constraint: constraint pk_id_kursi primary key (id_kursi)

Tabel jadwal Nama kolom Tipe data Keterangan id_jadwal int Primary key tanggal date jam_mulai varchar2(8) jam_selesai varchar2(8) id_film int id_pemesan int Constraint: constraint pk_id_jadwal primary key (id_jadwal), constraint fk_id_pemesan foreign key(id_pemesan) references pemesan(id_pemesan), constraint fk_id_film foreign key(id_film) references film(id_film), constraint check_jam_mulai check(jam_mulai<jam_selesai) Tabel memesan Nama kolom Tipe data Keterangan id_memesan int Primary key tanggal_pesan date banyak int total_harga float Constraint: constraint pk_id_memesan primary key (id_memesan), constraint check_banyak check(banyak<6), constraint check_total_harga check(total_harga>0),

Selanjutnya adalah dibuatlah program untuk pemesanan tiket bioskop online tersebut. Namun, setelah kita membuat programnya maka kita harus benar-benar memperhatikan proses transaksi di dalamnya. Apa itu transaksi? Transaksi merupakan suatu aksi/perbuatan yang dilakukan oleh program bertujuan untuk mengakses atau mengubah data yang terdapat di database. Data yang baik adalah data yang tidak hilang dan tidak rusak. Maka dari itu, transaksi ini harus dilindungi dari kehilangan dan kerusakan data. Setiap instruksi yang dimasukkan harus dijamin dikerjakan semua untuk menjamin konsistensi dari data itu sendiri. Ada 2 operasi penting yang ada dalam transaksi, yaitu: o Commit : ini menandakan bahwa transaksi sudah selesai o Rollback : ini menandakan bahwa transaksi yang dilakukan gagal, dan harus diulang. Dalam penggunaannya, sistem pemesanan tiket online ini tentulah digunakan leh banyak orang secara bersamaan. Maka ada 3 hal yang harus dicegah dalam transaksi basis data: o Dirty Read : Transaksi membaca data dari hasil transaksi lainnya yang gagal. Kedua transaksi tersebut berjalan bersamaan.

o Nonrepeatable Read : Transaksi membaca ulang data yang telah di baca sebelumnya karena data tersebut telah di modifikasi oleh transaksi lainnya. o Phantom Read : Transaksi membaca sebuah data yang telah hilang akibat dari transaksi yang lainnya. Untuk mendukung keberhasilan proses transaksi tersebut, maka di dalamnya diperlukan back end programming. Yang termasuk di dalamnya adalah stored procedure, function dan trigger. Misal dalam kasus di atas, dapat digunakan sebuah trigger untuk mengurangi jumlah tiket apabila tiket pada suatu jadwal sudah dipesan oleh beberapa pembeli. Dan selanjutnya akan terus berkurang apabila tiket tersebut terus dipesan. Sebenarnya tak hanya itu yang dapat dilakukan oleh trigger, tapi trigger ini juga dapat memodifikasi data, modifikasi data yang dilakukan pada tabel yaitu berupa perintah Insert, Update dan Delete. Setelah pemesan selesai melakukan pemesanan secara online, tentu pemesan harus melakukan pembayaran terhadap tiket yang telah dipesan tersebut. Pemesan melakukan pembayaran melalui bank dengan cara menyebutkan/memasukkan kode transaksi yang telah didapat dari proses pemesanan tadi. Pemesan selanjutnya mengirim uang ke rekening bioskop sejumlah harga yang harus dibayar. Lalu bagaimana bisa data bank dan bioskop dapat dicocokan? Tentulah bisa, di sinilah peran XML untuk menghubungkan kedua database yang berbeda itu. Dan kode transaksi yang dimasukkan tadi sebagai kunci penghubungnya. Setelah itu, kita harus benar-benar menjaga keamanannya untuk menjauhkan database dari ancaman, serangan baik itu sengaja maupun tidak. Dan kita juga harus menjauhkannya dari orang yang tidak memiliki kewenangan terhadap database tersebut.