Senin, 14 Juli 2014

CDM Sistem Informasi Reservasi Kamar Hotel





Keterangan :

Diatas merupakan CDM (Conseptual Data Model) dari Sistem Informasi Reservasi Kamar Hotel. Entity dari terdiri dari Klien, Pelanggan_private, Perusahaan, Petugas, Order, Fasilitas, Kamar, Restoran, Check_in, Check_out, Pembayaran dan Maintence.
Berikut ini relasi antara entity dalam Sistem Informasi Reservasi Kamar Hotel :

a. Entity Pelanggan berelasi one to many ke entity Petugas, banyak pelanggan dapat  melakukan pemesanan yang di tangani oleh satu petugas.
b. Entity Pelanggan berelasi one to many ke entity Petugas, banyak pelanggan dapat  melakukan check_in yang di tangani oleh satu petugas.
c. Entity Pelanggan berelasi one to many ke entity Petugas, banyak pelanggan dapat  melakukan check_out yang di tangani oleh satu petugas.
d. Entity Pelanggan berelasi one to many ke entity Petugas, banyak pelanggan dapat  melakukan pembayaran yang di tangani oleh satu petugas.
e. Entity Pelanggan berelasi many to many ke entity Promo, banyak pelanggan mendapatkan banyak promo.
f. . Entity Petugas berelasi one to many ke entity Pemesanan, satu petugas dapat  menyimpan banyak data pemesanan.
g. Entity Petugas berelasi one to many ke entity Check_in, dimana satu petugas dapat menyimpan banyak data check_in.
h. Entity Petugas berelasi one to many ke entity Check_out, dimana satu petugas dapat menyimpan banyak data check_out.
i. Entity Petugas berelasi one to many ke entity Pembayaran, dimana satu petugas dapat menyimpan banyak data pembayaran.
j. Entity Petugas berelasi one to many ke entity Fasilitas, dimana satu petugas dapat menyiapkan beberapa fasilitas .
Entity Pelanggan merupakan supertype dari Pelanggan_pribadi dan Perusahaan. Jadi entity Pelangggan_pribadi dan entity Perusahaan sebagai subtype dari entity Pelanggan.
Entity Fasilitas merupakan supertype dari Kamar dan Restoran. Sedangkan entity Kamar dan Restoran sebagai subtype dari entity Fasilitas.







1.        Rencana SP (Stored Procedure)

Di dalam Sistem Informasi Reservasi Kamar Hotel, rencana SP kami meliputi hampir semua entity kecuali entity Keterlambatan. Jadi rencana SP di dalam Sistem Informasi Reservasi Kamar Hotel yaitu meliputi :

a.       Procedure : UPDATEPELANGGAN
Input        : identitas
Proses       : identitas akan dicari pada table pelanggan. Bila ada maka data bisa diupdate jika tidak ada maka langsung untuk menginputkan data baru.
Output      : Data terbaru

b.      Procedure : UPDATEFASILITAS
Input          : id_fasilitas
Proses        : id_fasilitas akan dicari pada table fasilitas. Bila ada maka data bisa diupdate jika tidak ada maka langsung untuk menginputkan data baru.
Output       : Data terbaru

c.       Procedure : DELETEPETUGAS
Input          : NIP
Proses        : NIP akan dicari pada table petugas. Setelah data yang dicari itu ditemukan maka data yang terpilih akan di delete.
Output       : Data Petugas dihapus

d.      Procedure : INSERTPEMESANAN
Input          : id_pemesanan
Proses        : id_pemesanan akan dicari pada table pemesanan. Untuk menambahkan data pemesanan.
Output       : Data Pemesanan baru
e.       Procedure : INSERTPEMBAYARAN
Input          : id_pembayaran
Proses        : id_pembayaran akan dicari pada table pembayaran. Untuk menambahkan data pembayaran.
Output       : Data Pembayaran baru


2. Rencana Function
Rencana Function dalam Sistem Informasi Reservasi Kamar Hotel kami adalah :

a.       Function       : CHECKLAMAPENGINAPAN
Input            : id_CHECK_IN dan id_CHECK_OUT
Proses           : Untuk mencari lama penginapan dilakukan proses pengurangan dari tabel check out dan check in
Output         : Data Lama penginapan

b.      Function       : CHECKTOTALPEMESANAN
Input            : id_Pemesanan
Proses           : Untuk mengetahui banyaknya total pemesanan kamar hotel per periode tertentu pada tabel pemesanan.
Output          : data Total Pemesanan

c.       Function       : CHECKTOTALPEMBAYARAN
Input            : id_Pembayaran
Proses           : Untuk mengetahui banyaknya total pembayaran kamar hotel per periode tertentu pada tabel pembayaran.
Output          : data Total Pembayaran






3. Rencana Trigger

Rencana Trigger dalam Sistem Informasi Reservasi Kamar Hotel  kami gunakan pada entity yang meliputi :

a.        UPDATEGAJI ON Petugas
Trigger ini digunakan untuk mengontrol pada tabel Petugas setelah Petugas mendapatkan jabatan baru. Maka gaji pada tabel petugas harus di update.

b.      CONTROLCHECKOUT
Trigger ini digunakan untuk mengontrol apabila pelanggan melebihi batas waktu penyewaan kamar.





View.
        View Pada Sistem Informasi Reservasi Kamar Hotel yang kelompok kami kerjakan adalah sebagai berikut :
 Tabel Pemesanan
Planning View : pada system pemesanan kamar hotel, kita akan membuat planning view “PEMESANAN” dan “PELANGGAN”.

CREATE VIEW view_pemesanan AS SELECT b.id_pemesanan, b.tgl_pemesanan, b.jumlah_pemesanan, b.Total_pemesanan, a.id_pelanggan,  a.nama_pelanggan

Tgl_Pemesanan
Id_Pemesanan
Identitas
Nama_Pelanggan
Jumlah_Pemesanan
Total_Pemesanan







Tabel Pembayaran
Planning View : pada system pemesanan kamar hotel, kita akan membuat planning view “PELANGGAN” dan “PEMBAYARAN

CREATE VIEW view_pembayaran AS SELECT b.id_pembayaran, b.tanggal_pembayaran, b.Tgl_check_in, b.Tgl_check_out, b.harga_fasilitas, b.jumlah_pembayaran, a.id_pelanggan
Tgl_Pembayaran
Id_Pembayaran
Identitas
Tgl_Check in
Tgl_Check out
Harga_Fasilitas
Jml_Pembayaran









Tabel Fasilitas
Planning View : pada system pemesanan kamar hotel, kita akan membuat planning view “FASILITAS” dan “PEGAWAI

CREATE VIEW pengecekan_kamar AS SELECT b.id_fasilitas, b.jenis_fasilitas, b.harga_fasilitas, a.NIP, a.nama_pegawai
Id_Fasilitas
Jenis_Fasilitas
Harga_fasilitas
NIP
Nama_Pegawai








JOIN

Join adalah kata kunci yang di gunakan pada sql/ansi untuk melakukan query dua tabel atau lebih yang di dasarkan hubungan anatar kolom tertentu dalam tabel. Ada beberapa perintah join yaitu :

1. INNER JOIN – ON
Penggunaan relasi INNER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan record – record yang bersesuaian saja. Sedangkan syntak ON berfungsi menampilkan kedua table lengkap dengan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua)
Syntak :
select*from [Tabel_1] inner join [Tabel_2] on [Tabel_1].[field yang berelasi] = [Tabel_2].[field yang berelasi];

2. INNER JOIN – USING
Sama seperti keterangan diatas, penggunaan relasi INNER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan record – record yang bersesuaian saja. Sedangkan syntak USING berfungsi menampilkan kedua table dengan field yang direlasikan hanya ditampilkan satu kali di awal table atau terletak paling kiri.
Syntak :
select*from [Tabel_1] inner join [Tabel_2] using([field yang berelasi]);

3. LEFT OUTER JOIN – ON
Penggunaan relasi LEFT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KIRI. Sedangkan syntak ON berfungsi menampilkan kedua table lengkap dengan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua)
Syntak :
select*from [Tabel_1] left outer join [Tabel_2] on [Tabel_1].[field yang berelasi] = [Tabel_2].[field yang berelasi];
4. LEFT OUTER JOIN – USING
Sama seperti keterangan sebelumnya, penggunaan relasi LEFT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KIRI. Sedangkan syntak USING berfungsi menampilkan kedua table lengkap dengan field yang direlasikan hanya ditampilkan satu kali saja di awal table atau di sebelah kiri
Syntak :
select*from [Tabel_1] left outer join [Tabel_2] using([field yang berelasi]);

5. NATURAL LEFT OUTER JOIN
Seperti keterangan sebelumnya, penggunaan relasi LEFT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KIRI. Sedangkan syntak NATURAL mempunyai fungsi sama dengan USING yaitu menampilkan field yang bersesuaian satu kali saja di awal table
Syntak :
select*from [Tabel_1] natural left outer join [Tabel_2];

6. RIGHT OUTER JOIN - ON
Penggunaan relasi RIGHT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KANAN dan table kedua (dituliskan setelah join) ditampilkan lebih dulu setelah field yang direlasikan. Sedangkan syntak ON berfungsi menampilkan kedua table lengkap dengan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua)
Syntak :
select*from [Tabel_1] right outer join [Tabel_2] on [Tabel_1].[field yang berelasi] = [Tabel_2].[field yang berelasi];

7. RIGHT OUTER JOIN – USING
Penggunaan relasi RIGHT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KANAN dan table kedua (dituliskan setelah join) ditampilkan
lebih dulu setelah field yang direlasikan. Sedangkan syntak USING berfungsi menampilkan kedua table lengkap dengan field yang direlasikan hanya ditampilkan satu kali saja di awal table atau di sebelah kiri
Syntak :
select*from [Tabel_1] right outer join [Tabel_2] using([field yang berelasi]);

8. NATURAL RIGHT OUTER JOIN
Penggunaan relasi RIGHT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KANAN dan table kedua (dituliskan setelah join) ditampilkan lebih dulu setelah field yang direlasikan. Sedangkan syntak NATURAL mempunyai fungsi sama dengan USING yaitu menampilkan field yang bersesuaian satu kali saja di awal table
Syntak :
select*from [Tabel_1] natural right outer join [Tabel_2];

9. WHERE
Penggunaan syntak WHERE sama dengan penggunaan INNER JOIN – ON yaitu menampilkan kedua table yang direlasikan dengan menampilkan record – record yang bersesuaian saja dan menampilkan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua) seperti pada gambar di bawah. Keuntungannya dibandingkan dengan INNER JOIN – ON adalah dengan penggunaan WHERE penulisan syntak untuk relasi dengan banyak table lebih mudah.
Syntak :
select*from [Tabel_1],[Tabel_2] where [Tabel_1].[field yang berelasi] = [Tabel_2].[field yang berelasi];

10. STRAIGHT JOIN
Penggunaan relasi STRAIGHT JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record adalah hasil kali jumlah record table pertama dengan jumlah record tapi kedua
Syntak :
select*from [Tabel_1] straight join [Tabel_2];
11. CROSS JOIN
Penggunaan relasi CROSS JOIN sama dengan STRAIGHT JOIN yaitu untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record adalah hasil kali jumlah record table pertama dengan jumlah record tapi kedua
Syntak :
select*from [Tabel_1] cross join [Tabel_2];

12. UNION
Penggunaan relasi UNION adalah untuk menggabung hasil dari syntak LEFT OUTER JOIN dengan RIGHT OUTER JOIN
Syntak :
select*from [Tabel_1] natural left outer join [Tabel_2]
union
select*from [Tabel_1] natural right outer join [Tabel_2] ;

13. FULL JOIN
Penggunaan FULL JOIN adalah untuk menampilkan kedua table dengan record – record yang bersesuaian saja. Field yang berelasi ditampilkan sekali di awal table atau paling kiri.
Syntak :
select*from [Tabel_1] full join [Tabel_2] using([field yang berelasi]);


JOIN

Sedangkan JOIN yang akan kelompok kami buat adalah INNER JOIN yaitu untuk menampilkan kedua table yang direlasikan dengan menampilkan record – record yang bersesuaian saja. Sedangkan syntak ON berfungsi menampilkan kedua table lengkap dengan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua). Serta Tabel yang kami lakukan join adalah tabel Pemesanan dan tabel Pembayaran. Tabel Pemesanan diambil dari joinkan tabel pelanggan dan tabel fasilitas.
Tabel Pembayaran diambil dari joinkan tabel pelanggan, tabel fasilitas, tabel check_out dan tabel check_in





Join

Menggunakan inner join
Untuk menampilkan pelanggan dari tabel pembayaran yang di Join kan dengan tabel pemesanan.
Input :
select*from pelanggan inner join pemesananan on pelanggan.identitas = pemesaanan.identitas;

(menampilkan table pelanggan dan table pemesanan  yang direlasikan dengan menampilkan record – record yang bersesuaian saja. Sedangkan syntak ON berfungsi menampilkan kedua table lengkap dengan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua) seperti contoh di bawah )


Menampilkan tabel pelanggan dan tabel pemesanan yang direlasikan serta menampilkan record-record yang bersesuaian.


Menggunakan inner join
Untuk menampilkan penjualan dari tabel presensi yang di Join kan dengan tabel pembelian.
Input :
select*from pelanggan inner join pembayaran on pelanggan.identitas = pembayaran.identitas;

(menampilkan table pelanggan dan table pembayaran  yang direlasikan dengan menampilkan record – record yang bersesuaian saja. Sedangkan syntak ON berfungsi menampilkan kedua table lengkap dengan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua) seperti contoh di bawah )


Menampilkan tabel pelanggan dan tabel pembayaran yang direlasikan serta menampilkan
record-record yang bersesuaian.