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 )
record-record
yang bersesuaian.