1411600511 - Nur Alia Syafitri
UNIVERSITAS BUDI LUHUR Magister Ilmu Komputer Jl. Ciledug Raya, Petukangan Utara, Jakarta Selatan, 12260 DKI Jakarta, Indonesia. Telp : 021-585 3753 Fax : 021-585 3752.
1.
Bahasa Query Komersial SQL memiliki 3 kelompok perintah, sebutkan dan jelaskan fungsi masing-masing kelompok tersebut dan berikan contoh perintah-perintah yang terdapat pada masing-masing kelompok. Jawab: Bahasa query komersial adalah bahasa query yang dirancang sendiri oleh programmer sehingga menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly). Bahasa query komersial dikelompokan menjadi 3, yaitu a. Data Definition Language (DDL) Query ini digunakan untuk mendefinisikan struktur atau skema basis data. Dengan perintah ini, maka kita dapat membuat tabel, mengubah strukturnya, menghapus tabel, membuat indeks untuk tabel, dan lain-lain yang berkenaan dengan pembentukan struktur database. Contoh: Pembuatan Database Sintaks : CREATE DATABASE nama_database Kasus : Buat database dengan nama PT.XYZ CREATE DATABASE PT.XYZ; b.
Data Manipulation Language (DML) Query ini digunakan untuk melakukan manipulasi data dalam database, menambahkan (insert), mengubah (update), menghapus (delete), mengambil dan mencari data(query). Perintah SQL standar seperti : select, insert, update, delete, create, drop dapat digunakan untuk menyelesaikan tugas yang diberikan berhubungan dengan data suatu database. Contoh: INSERT Sintaks : INSERT INTO Nama_tabel [(nama_kolom1,…)] Kasus : Masukan data matakuliah Berkas Akses dengan kode KK222 dan besarnya 2 INSERT INTO MKUL VALUES(“KK222”,”Berkas Akses”, 2);
Select Kasus :Tampilkan semua data nilai dimana nilai MID lebih besar sama dengan 60 atau nilai finalnya lebih besar 75. SELECT * FROM NILAI WHERE MID >= 60 OR FINAL > 75
c.
Data Control Language (DCL) Query ini digunakan untuk memberikan hak otorisasi mengakses database, megalokasikan space,
pendefinisian
space,
dan
audit
penggunaan database.
Secara
umum
DCL merupakan bahasa yang digunakan untuk melakukan pengelolaan user agar dapat mengakses dan memanipulasi database, terutama perintah GRANT dan REVOKE. Perintah COMMIT
dan
ROLLBACK merupakan kelengkapan
fasilitas
dalam
pembuatan
aplikasi yang memungkinkan suatu transaksiyang terjadi untuk dapat segera disimpan atau dibatalkan. Contoh : Kasus : Berikan hak akses kepada Adi untuk menampikan nilai final test pada table Nilai. GRANT SELECT (FINAL) ON NILAI TO ADI 2.
Desain sebuah database relasional mempunyai tujuan untuk menghasilkan sebuah database yang terdiri dari relasi-relasi yang terstruktur dengan baik (well-structured relations) dengan ciri-ciri, dimana setiap relasi sudah berbentuk normal (Normal Form). Berdasarkan kaidahkaidah yang sudah anda pelajari, sebutkan dan jelaskan tahap-tahap normalisasi mulai dari relasi yang belum normal, menjadi relasi bentuk normal ketiga (third normal form), berikan contoh untuk masing-masing tahap tersebut. Jelaskan juga definisi dari setiap istilah yang
digunakan dalam tahapan normalisasi tersebut seperti primary key, foreign key, composite key, referential integrity constraint, anomaly, repeating group, functional dependency, partial dependency, transitive dependency, dan lain-lain. Jawab: Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible. Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert, update, delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut.
Bentuk Tidak Normal Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikukti
format
tertentu,
dapat
saja
data
tidak
lengkap
atau
terduplikasi.
Data dikumpulkan apa adanya sesuai dengan saat menginput. Contoh:
Untuk mentransformasikan tabel yang belum ternomalisasi di atas menjadi tabel yang memenuhi kriteria 1NF adalah kita harus merubah seluruh atribut yang multivalue menjadi atribut single value, dengan cara menghilangkan repeating group pada tabel di atas. Repeating Group adalah No_Property, Alamat_Property,Tgl_Pinjam, Tgl_Selesai, Biaya, No_Pemilik, Nama_Pemilik
Bentuk Normal ke Satu(1NF) Pada
tahap ini dilakukan
penghilangan
beberapa
group elemen
yang berulang
agar menjadi satu harga tunggal yang berinteraksi di antara setiap baris pada suatu tabel, dan setiap atribut harus mempunyai nilai data yang atomic (bersifat atomic value). Atom adalah zat terkecil yang masih memiliki sifat induknya, bila terpecah lagi maka ia tidak memiliki sifat induknya. Syarat : a.
Tidak ada set atribut yang berulang atau bernilai ganda.
b.
Telah ditentukannya primary key untuk tabel atau relasi.
c.
Tiap atribut hanya memiliki satu pengertian.
d.
Tiap atribut yang dapat memiiki banyak nilai sebenarnya menggambarkan entitas atau relasi yang terpisah.
Langkah pertama yang dilakukan pada Tabel Pelanggan Biaya (pada Tabel belum normal) tersebut adalah menghilangkan elemen data yang berulang dengan data-data Pelanggan yang sesuai pada setiap baris. Hasil dari tabel yang telah memenuhi bentuk normal pertama di atas, kita dapat mengidentifikasi primary key untuk relasi
Pelanggan_Biaya yang masih memiliki composite key (No_Pelanggan, No_Property). Pada kasus ini kita akan memperoleh primary key yang bersifat composite key. Relasi Pelanggan_Biaya dapat didefinisikan sebagai berikut. Pelanggan_Biaya =(No_Pelanggan, No_Property, Nama, Alamat_Property, Tgl_Pinjam, Tgl_Selesai, Biaya,No_Pemilik, Nama_Pemilik)
Bentuk Normal ke Dua(2NF) Bentuk normal kedua didasari atas konsep full functional dependency (ketergantungan fungsional sepenuhnya) yang dapat didefinisikan sebagai berikut. Jika A adalah atributatribut dari suatu relasi, B dikatakan full functional dependency (memiliki ketergantungan fungsional terhadap A, tetapi tidak secara tepat memiliki ketergantungan fungsional dari subset (himpunan bagian) dari A. Syarat : a.
Bentuk data telah memenuhi kriteria bentuk normal ke satu.
b.
Atribut bukan kunci(non-key attribute) haruslah memiliki ketergantungan fungsional sepenuhnya pada primary key
Bentuk Normal ke Tiga(3NF) Walaupun relasi 2-NF memiliki redudansi yang lebih sedikit dari pada relasi 1-NF, namun relasi tersebut masih mungkin mengalami kendala bila terjadi anomaly peremajaan (update) terhadap relasi tersebut. Misalkan kita akan melakukan update terhadap nama dari seorang Pemilik (pemilik), seperti Durki (No_Pemilik: CO93), kita harus melakukan update terhadap dua baris dalam relasi Property_Pemilik (lihat Tabel normal kedua, (c) relasi Property_Pemilik). Jika kita hanya mengupdate satu baris saja, sementara baris yang lainnya tidak, maka data didalam database tersebut akan inkonsisten / tidak teratur. Anomaly
update
ini
disebabkan
oleh
suatu
ketergantungan
transitif
(transitive
dependency). Kita harus menghilangkan ketergantungan tersebut dengan melakukan normalisasi ketiga (3-NF). Syarat : a.
Bentuk data telah memenuhi kriteria bentuk normal ke dua.
b.
Atribut
bukan
kunci(non-key
attribute)
tidak
boleh
memiliki
ketergantungan
fungsional terhadap atribut bukan kunci lainnya. Seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja. Seluruh atribut non-primary key pada relasi Property_Pemilik di atas terlihat memiliki ketergantungan fungsional (functional dependency) terhadap primary key, kecuali Nama_Pemilik yang masih memiliki ketergantungan fungsional (functional dependency) terhadap No_Pemilik. Inilah contoh ketergantungan dari transitif (transitive dependency), yang terjadi ketika atribut non-primary key (Nama_Pemilik) bergantung secara fungsi terhadap satu atau lebih atribut non-primary key lainnya (No_Pemilik). Kita harus menghilangkan ketergantungan transitif (transitive dependency) tersebut dengan menjadikan relasi Property_Pemilik menjadi 2 relasi / tabel dengan format / bentuk sebagai berikut : Relasi / Tabel Property_Untuk_Pemilik yang terdiri dari atribut-atribut: No_property, Alamat_Property, Biaya, No_Pemilik {No_property sebagai primary key} Dan relasi Pemilik yang terdiri dari atribut-atribut: No_Pemilik, Nama_Pemilik {No_Pemilik sebagai primary key}
Istilah – istilah dalam normalisasi: Primary key adalah suatu aturan yang berguna untuk memastikan bahwa setiap baris data didalam suatu tabel bersifat unik (berbeda antara isi baris satu dengan yang lainnya) Foreign key untuk mendefinisikan kolom-kolom pada suatu tabel yang nilainya mengacu ke tabel lain,jadikolom foreign key nilainya harus diambil dari nilai kolom pada tabel lain Composite key adalah key yang terdiri dari 2 atau lebih atribut yang secara unik mengidentifikasi suatu kejadian entitas Referential integrity constraint digunakan untuk menjaga konsistensi baris-baris data antara dua buah tabel Anomaly adalah suatu keadaan data yang tidak normal, pada umumnya tidak adanya konsistensi data Repeating group adalah terdapat elemen data yang berulang
Functional dependency adalah relasi yang menggambarkan ketergantungan antar attribut dalam suatu relasi Partial dependency adalah ketergantungan parsial atau sebagian Transitive dependency adalah kondisi dimana terdapat tiga atribut A,B,C. Kondisinya adalah A ⇒ B dan B ⇒ C. Maka C dikatakan sebagai transitive dependency terhadap A melalui B. 3.
Model sebuah database dapat digambarkan dengan menggunakan E-R model, jelaskan aturan-aturan pemetaan dalam melakukan transformasi dari model E-R menjadi relasi-relasi database yang terintegrasi, serta berikan contoh untuk masing-masing transformasi tersebut. Jelaskan definisi dari setiap istilah yang digunakan, seperti entity, relationship, attribute, composite attribute, weak entity, strong entity, specialization, generalization, aggregation, mapping relationship cardinality, unary relationship, binary relationship, ternary relationship, dan lain-lain, serta berikan contohnya. Jawab: Entity Relationship Diagram (ERD) merupakan diagram yang digunakan untuk merancang suatu basis data, untuk memperlihatkan hubungan atau relasi antar entitas atau objek yang terlihat beserta atributnya. Metode pembuatan ERD Ada beberapa langkah dalam membuat ERD, yaitu 1.
Menentukan Entity Disini kita dituntut untuk menentukan dengan cermat sebuah entity yang ada dalam suatu proyek atau masalah. Entity berguna untuk menentukan peran, kejadian, lokasi, hal nyata dan konsep penggunaan untuk database
2.
Menentukan Relasi Setelah kita berhasil membuat Entity, langkah selanjutnya adalah menentukan relasi antar entity. Relasi apa yang terdapat antara Entity A dan B, apakah entity A dan B memiliki relasi “one to one”, “one to many”, atau “many to many”.
3.
Gambar ERD sementara Jika sudah mengetahui Entity beserta Relasinya, sekarang kita buat dulu gambar ERD sementara. Entity digambarkan dengan persegi, relasi digambarkan dengan garis.
4.
Isi kardinalitas Kardinalitas menentukan jumlah kejadian satu entitas untuk sebuah kejadian pada entitas yang berhubungan. 5. Tentukan Primary Key (Kunci Utama) Menentukan Primary Key pada masing-masing entity. Primary Key adalah atribut pada entity yang bersifat unik. Jadi setiap entity hanya memiliki satu Primary Key saja. Tentukan pula Foreign Key (Kunci Tamu) pada masing-masing Entity. Foreign Key adalah Primary Key yang ada dalam Entity yang lain. Contoh pada Entity Pengarang misalnya terdapat atribut kode buku, yang mana, kode buku merupakan Primary Key dari Entity buku. 6. Gambar ERD berdasarkan Primary Key Menghilangkan relasi “many to many” dan memasukkan Primary dan Foreign Key pada masing-masing entitas. Relasi many to many antar entity perlu dihilangkan dengan cara menambah atribut baru antara 2 entity yang memiliki relasi many to many. 7.
Menentukan Atribut Jika sudah melakukan step diatas, sekarang saatnya menentukan atribut pada masing-masing Entitas. Telitilah dalam menentukan atribut.
8.
Pemetaan Atribut Apabila atribut telah ditentukan, sekarang pasang atribut dengan entitas yang sesuai.
9.
Gambar ERD dengan Atribut Mengatur ERD seperti langkah 6 dengan menambahkan atribut dan relasi yang ditemukan.
10. Periksa hasil apakah ERD sudah menggambarkan system yang akan dibangun Istilah-istilah dalam entity relationship diagram
Entity adalah sekumpulan orang, tempat, obyek, dan sebagainya yang menunjukkan dimana data dapat disimpan Relationship adalah menunjukkan hubungan antara sejumlah entitas yang berbeda Attribute adalah sesuatu yang menjelaskan entitas atau hubungan sehingga atribut dikatakan elemen data dari entitas dan relasi composite attribute adalah atribut yang terdiri dari beberapa atribut yang lebih kecil yang mempunyai arti tertentu weak entity adalah entity yang tidak memiliki atribut yang unik yang dapat dijadikan key sehingga membutuhkan atribut entity dari entity lainnya strong entity adalah entity yang memiliki atribut yang unik yang dapat dijadikan key dimana satu atau banyak atributnya digunakan oleh entity lainnya Specialization adalah suatu proses desain top-down dengan mendesain subgrouping didalam didalam himpunan entitas yang berbeda dari himpunan entitas. Generalization adalah proses desain bottom-up dengan mengkombinasikan jumlah himpunan entitas yang digunakan secara bersama sama Aggregation adalah hubungan antara satu object dengan object lainnya dimana object satu dengan object lainnya sebenarnya terpisah namun disatukan mapping relationship cardinality adalah menggambarkan tingkat hubungan yang terjadi, dilihat dari suatu kejadian diantara entitas tersebut unary relationship adalah menghubungkan satu entitas (dirinya sendiri) binary relationship adalah menghubungkan dua entitas ternary relationship adalah menghubungkan tiga entitas 4.
Dari aplikasi database yang telah anda pilih dan sepakati sesuai dengan bidang kerja anda, bersama kelompok yang sudah dibentuk pada kuliah Manajemen Data ini, buatlah: a. Diagram proses bisnis dengan menggunakan activity diagram atau system flowchart Jawab: a. Activity Diagram Proses Pemesanan (Booking) Pelanggan
Bagian Administrasi
Memesan (booking) studio musik
memberitahukan waktu sewa dan lamanya menyewa studio
memeriksa jadwal penyewa
mengkonfirmasi jadwal penyewaan
memberitahukan nama PIC/Band, no telepon, dan bayar DP
[belum dipesan]
[sudah dipesan]
mencatatnya pada form pemakaian studio
membuat kwitansi booking studio musik
terima kwitansi booking studio musik
b.
serahkan kwitansi booking studio musik
Activity Diagram Proses Bermain Musik dan Pembayaran
Pelanggan
Bermain musik
Bagian Administrasi
Memberikan tanda jika waktu sudah habis
ingin meminta waktu tambahan
mengecek jadwal pemesanan
melanjutkan bermain musik hingga waktu tambahan selesai
[tidak bentrok]
[bentrok]
memberikan tanda jika waktu sudah habis
cek alat musik
[ada kerusakan]
bayar sewa dan denda
[tidak ada kerusakan]
bayar sewa
terima bayaran sewa studio musik
buat kwitansi pembayaran sewa studio musik
terima kwitansi pembayaran sewa studio musik
serahkan kwitansi pembayaran sewa studio musik
c.
Activity Diagram Proses Bermain Musik dan Pembayaran (Datang Langsung)
Pelanggan
Bagian Administrasi
meminta bermain musik tanpa booking
mengecek jadwal pemesanan [bentrok] [tidak bentrok]
bertanya apakah ingin booking atau tidak memberikan waktu dan lamanya sewa, serta nama PIC/Band, nomor telepon dan bayar DP
[ya]
[tidak]
membuat kwitansi booking studio musik terima kwitansi booking studio musik
serahkan kwitansi booking studio musik
Bermain musik
Memberikan tanda jika waktu sudah habis ingin meminta waktu tambahan mengecek jadwal pemesanan
melanjutkan bermain musik hingga waktu tambahan selesai
[tidak bentrok]
[bentrok]
memberikan tanda jika waktu sudah habis
cek alat musik
[ada kerusakan]
bayar sewa dan denda
[tidak ada kerusakan] bayar sewa
terima bayaran sewa studio musik
buat kwitansi pembayaran sewa studio musik
terima kwitansi pembayaran sewa studio musik
serahkan kwitansi pembayaran sewa studio musik
d.
Activity Diagram Proses Pemesanan (Booking) Pelanggan
Bagian Administrasi
memesan (booking) peralatan lighting, audio & video system yang akan disewa
menyebutkan peralatan lighting, audio & video system yang akan disewa, serta kapan waktu pemakaiannya dan dimana akan dipergunakannya
terima rincian alat yang akan dipakai dan biaya [tidak sepakat]
Menyebutkan Biaya
[sepakat]
melakukan negosiasi
membayar DP
terima bayaran DP buat kwitansi booking sewa alat-alat
terima kwitansi booking sewa alat-alat
Mencatat booking sewa alat
e.
Activity Diagram Proses Pengiriman Alat-alat
Pelanggan
Bagian Administrasi
memberikan surat masuk/keluar barang
terima surat masuk/keluar barang
Teknisi
PIC Lokasi
buat surat jalan
serahkan surat jalan dan surat masuk/keluar barang
terima surat jalan dan surat masuk/keluar barang
mengirim alat-alat ke lokasi penyewaan
memperlihatkan surat keluar/masuk barang
f.
Activity Diagram Proses Pembayaran
melihat surat keluar/masuk barang
Pelanggan
[lewat waktu]
Bagian Administrasi
[tidak lewat waktu]
Bayar denda kelebihan waktu penyewaan
g.
bayar sisa biaya sewa lighting, audio & video system
buat kwitansi sisa biaya sewa lighting,audio & video system
terima kwitansi sisa pembayaran sewa lighting, audio & video system
menyerahkan kwitansi pembayaran sewa lighting, audio & video system
Activity Diagram Proses Pembuatan Laporan Keuangan Bagian Administrasi
Pemilik
buat laporan keungan
serahkan laporan keuangan
b.
terima laporan keuangan
Lakukan analisa database dasar terhadap kebutuhan akan data oleh pengguna, kemudian buatlah model E-R dari database yang anda rancang, lengkap dengan attribute dan mapping/relationship cardinalitynya. Lampirkan contoh dokumen masukan dan dokumen keluaran yang anda analisa. Jawab:
Entity Relational Diagram Dokumen Keluaran:
Dokumen Masukan
c.
Lakukan transformasi terhadap model E-R tersebut menjadi relational database sehingga terbentuk logical database dan physical database Jawab:
Logical Database
Physical database
a. No
Nama file Nama Field
: Pelanggan Jenis
Lebar
Desimal
keterangan
1 2 3
Kd_pelanggan Nm_pelanggan Alamat
Varchar Varchar Varchar
5 30 100
-
4
No_tlp
Varchar
12
-
Berisi 5 digit kode pelanggan {P0001} Nama Pelanggan Alamat pelanggan Nomor telepon pelanggan {(999)999999999}
b. No 1 2 3 4 5
Nama file Nama Field
No_booking Kd_pelanggan Tgl_booking DP Tot_biaya_sewa
c. No 1 2 3 4
Nama file Nama Field
No_kwitansi No_booking Tgl_kwitansi Jml_bayar
d.
Nama file
: Booking Jenis Lebar Varchar Varchar Date Double Double
: Kwitansi Jenis Lebar Varchar Varchar Date Double
: Bayar
Desimal
6 5 10 10 10
6 6 10 10
-
Desimal -
keterangan Berisi 6 digit nomor booking {B00001} Berisi 5 digit kode pelanggan {P0001} Tanggal booking {dd-mm-yyyy} Down Payment {9.999.999.999} Total Biaya Penyewaan {9.999.999.999}
keterangan Berisi 6 digit nomor kwitansi {KW0001} Berisi 6 digit nomor booking {B00001} Tanggal kwitansi {dd-mm-yyyy} Jumlah bayar {9.999.999.999}
No 1 2 3 4 5
Nama Field No_kwitansi Kd_jenis_denda Keterangan Biaya TotalBiaya
e. No 1 2
Jenis
Lebar
Desimal
Varchar Varchar Varchar Double Double
6 5 100 10 10
-
Nama file Nama Field
: jenisbayar Jenis Lebar
Kd_jenis_byr Nm_jenis_byr
f. No
Varchar Varchar
Nama file Nama Field
1 2 3 4 5
No_booking Tgl_sewa Jam_masuk Jam_keluar Durasi
6
Hrg_sewa_per_jam
7
Ket_studio
g.
-
keterangan Berisi 5 digit kode jenis bayar {JD001} Nama jenis denda
Lebar
Desimal
keterangan
6 10 8 8 2
-
Double
10
-
Varchar
100
-
Berisi 6 digit nomor booking {B00001} Tanggal sewa studio {dd-mm-yyyy} Jam masuk studio {hh:mm:ss} Jam keluar studio {hh:mm:ss} Durasi penyewaan studio musik Harga sewa studio per jam {9.999.999.999} Keterangan studio
Varchar Date Time Time Integer
Nama file Nama Field
No
Desimal
5 30
: Studio Jenis
keterangan Berisi 6 digit nomor kwitansi {KW0001} Berisi 5 digit kode jenis denda {JD001} Keterangan Denda Biaya Denda {9.999.999.999} Total biaya denda {9.999.999.999}
: Tambah Jenis
Lebar
Desimal
1
No_booking
Varchar
6
-
2 3
Kd_alat Jml_tambah
Varchar Integer
5 2
-
4
Hrg_sewa_tambahan
Double
10
-
h. No
Nama file Nama Field
1 2 3 4 5
Kd_alat Nm_alat Merk Jml_alat Hrg_sewa
i.
1 2 3 4
Varchar Date Date Date Time Varchar Varchar Varchar Varchar Varchar Date Date Varchar
Nama file Nama Field
No_booking Kd_alat Jml_alat Hrg_sewa_alat
: Sewa Jenis Varchar Varchar Integer Double
k. Nama file No Nama Field 1 2
No_polisi Nm_kendaraan
Lebar
Desimal
5 30 50 2 8
-
: SewaAlat Jenis Lebar
No_booking Tgl_awal_pakai Tgl_akhir_pakai Tgl_loading Jam_loading Nm_acara Almt_acara Nm_CP No_tlp_CP Keterangan Tgl_jth_tempo Tgl_lunas Status
j. No
Varchar Varchar Varchar Integer Double
Nama file Nama Field
No 1 2 3 4 5 6 7 8 9 10 11 12 13
: Alat Jenis
6 10 10 10 8 50 100 30 12 100 10 10 11
-
Desimal
6 5 2 8
-
Varchar Varchar
keterangan Berisi 5 digit Kode Alat {A0001} Nama alat Merk alat Jumlah alat Harga sewa {9.999.999.999}
Desimal
Lebar
: Kendaraan Jenis
keterangan Berisi 6 digit nomor booking {B00001} Berisi 5 digit Kode Alat {A0001} Jumlah penambahan alat Harga sewa tambahan alat {9.999.999.999}
keterangan Berisi 6 digit nomor booking {B00001} Tanggal awal pakai alat {dd-mm-yyyy} Tanggal akhir pakai alat {dd-mm-yyyy} Tanggal loading {dd-mm-yyyy} Jam loading {hh:mm:ss} Nama acara Alamat acara Nama Contact Person Nomor telepon Contact Person Keterangan sewa alat Tanggal jatuh tempo pelunasan sewa Tanggal pelunasan sewa Status {Lunas; Belum Lunas}
keterangan Berisi 6 digit nomor booking {B00001} Berisi 5 digit Kode Alat {A0001} Jumlah alat Harga sewa alat {99.999.999}
Lebar
Desimal
9 30
-
keterangan Nomor polisi Nama kendaraan
3
l. No 1 2 3 4
Nama file Nama Field
m. Nama file Nama Field No_SJ NIP Jabatan
Varchar Varchar Varchar Date
Jenis
1 2 3 4 5 6
NIP Nm_pegawai Jen_kel Alamat No_tlp Jabatan
o. No 1 2 3
Jenis
Nama file Nama Field
No_SJ Kd_alat Jml_alat
d.
6 5 20
Desimal
5 30 10 100 12 20
: Antar Jenis Lebar Varchar Varchar Integer
-
6 5 2
-
Jenis kendaraan
Keterangan Berisi 6 digit nomor surat jalan {SJ0001} Berisi 6 digit nomor booking {B00001} Nomor polisi Tanggal surat jalan {dd-mm-yyyy}
Desimal -
: Pegawai Lebar
Varchar Varchar Varchar Varchar Varchar Varchar
20
6 6 9 10
: Tugas Lebar
Varchar Varchar Varchar
n. Nama file Nama Field
No
Varchar
: SuratJalan Jenis Lebar
No_SJ No_booking No_polisi Tgl_SJ
No 1 2 3
Jenis_kendaraan
keterangan Berisi 6 digit nomor surat jalan {SJ0001} Berisi 5 digit Nomor Induk Pegawai {NIP01} Tugas pegawai
Desimal -
keterangan Berisi 5 digit Nomor Induk Pegawai {NIP01} Nama pegawai Jenis kelamin pegawai Alamat pegawai Nomor telepon pegawai {(999)999999999)} Jabatan pegawai
Desimal -
keterangan Berisi 6 digit nomor surat jalan {SJ0001} Berisi 5 digit Kode Alat {A0001} Jumlah alat
Dari relasi-relasi yang terbentuk pada physical database, implementasikan database tersebut dengan menggunakan SQL untuk create table dan append datanya CREATE DATABASE db_onesolution;
CREATE TABLE `alat` ( `Kd_alat` varchar(5) NOT NULL DEFAULT '', `Nm_Alat` varchar(30) DEFAULT NULL, `Merk` varchar(50) DEFAULT NULL, `Jml_alat` int(2) DEFAULT NULL, `Hrg_sewa` double(10,2) DEFAULT NULL, PRIMARY KEY (`Kd_alat`) )
INSERT INTO `alat` VALUES ('A0001','Mixer','Yamaha MG32-14FX',1,50000); INSERT INTO `alat` VALUES ('A0002','Compressor','DBX 1074',1,35000); INSERT INTO `alat` VALUES ('A0003','Equalizer','DBE 1231',2,150000); INSERT INTO `alat` VALUES ('A0004','Equalizer','DBE 231',2,100000); INSERT INTO `alat` VALUES ('A0005','Active Crossover','Samson',1,120000); INSERT INTO `alat` VALUES ('A0006','Active Crossover','Behringer',1,110000); INSERT INTO `alat` VALUES ('A0007','Mic Wireless','Seinnheizer EW300',2,60000); INSERT INTO `alat` VALUES ('A0008','Mic Wireless','AMX',2,90000); INSERT INTO `alat` VALUES ('A0009','Mic Wire','Seinnheizer 965',2,65000); INSERT INTO `alat` VALUES ('A0010','Mic Drum','BBE 7pcs',1,85000); INSERT INTO `alat` VALUES ('A0011','DI Box','Samson S',1,175000); INSERT INTO `alat` VALUES ('A0012','DI Box','Samson S Plus',1,200000); INSERT INTO `alat` VALUES ('A0013','DVD Player','Pionner',1,95000); INSERT INTO `alat` VALUES ('A0014','Stand Mic','Targa',2,25000); INSERT INTO `alat` VALUES ('A0015','Stand
CREATE TABLE `antar` ( `No_SJ` varchar(15) NOT NULL DEFAULT '', `Kd_Alat` varchar(5) NOT NULL DEFAULT '', `Jml_alat` int(2) DEFAULT NULL, PRIMARY KEY (`No_SJ`,`Kd_Alat`) )
CREATE TABLE `bayar` ( `No_kwitansi` varchar(6) NOT NULL DEFAULT '', `Kd_jenis_byr` varchar(5) NOT NULL DEFAULT '', `Keterangan` varchar(100) DEFAULT NULL, `Biaya` double(10,2) DEFAULT NULL, `TotalBiaya` double(10,2) DEFAULT NULL, PRIMARY KEY (`No_kwitansi`,`Kd_jenis_byr`) )
CREATE TABLE `booking` ( `No_booking` varchar(6) NOT NULL DEFAULT '', `Kd_pelanggan` varchar(5) NOT NULL DEFAULT '', `Tgl_booking` date DEFAULT NULL, `DP` double(10,2) DEFAULT NULL, `Tot_biaya_sewa` double(10,2) DEFAULT NULL, PRIMARY KEY (`No_booking`,`Kd_pelanggan`) )
Book','Targa',1,25000); INSERT INTO `alat` VALUES ('A0016','Stik Drum','Pearl',3,3000); INSERT INTO `alat` VALUES ('A0017','Power','Mackie 1400',1,280000); INSERT INTO `alat` VALUES ('A0018','Power ','Amcrown 1200',1,310000); INSERT INTO `alat` VALUES ('A0019','Power','AXL Audio A15',1,275000); INSERT INTO `alat` VALUES ('A0020','Power','Amcrown 600',2,250000); INSERT INTO `alat` VALUES ('A0021','Monitor Active','ESI',4,400000); INSERT INTO `alat` VALUES ('A0022','Monitor Passive','Peavey Black Widow',2,350000); INSERT INTO `antar` VALUES ('SJ0001','A0001',1); INSERT INTO `antar` VALUES ('SJ0001','A0004',2); INSERT INTO `antar` VALUES ('SJ0001','A0007',1); INSERT INTO `antar` VALUES ('SJ0002','A0001',1); INSERT INTO `antar` VALUES ('SJ0002','A0004',1); INSERT INTO `antar` VALUES ('SJ0002','A0007',2); INSERT INTO `antar` VALUES ('SJ0002','A0017',1); INSERT INTO `bayar` VALUES ('KW0001','JB004','',0,0); INSERT INTO `bayar` VALUES ('KW0002','JB002','Senar gitar putus',15000,15000); INSERT INTO `bayar` VALUES ('KW0003','JB004','',0,0); INSERT INTO `bayar` VALUES ('KW0004','JB004','',0,0); INSERT INTO `bayar` VALUES ('KW0005','JB004','',0,0); INSERT INTO `bayar` VALUES ('KW0006','JB004','',0,0); INSERT INTO `bayar` VALUES ('KW0007','JB004','',0,0); INSERT INTO `booking` VALUES ('B00001','P0007','2014-06-26',25000,83000); INSERT INTO `booking` VALUES ('B00002','P0006','2014-06-26',10000,40000); INSERT INTO `booking` VALUES ('B00003','P0002','2014-06-26',30000,83000); INSERT INTO `booking` VALUES ('B00004','P0001','2014-06-26',200000,310000); INSERT INTO `booking` VALUES ('B00005','P0008','2014-06-26',300000,580000); INSERT INTO `booking` VALUES ('B00006','P0005','2014-06-27',10000,40000); INSERT INTO `booking` VALUES ('B00007','P0012','2014-06-27',50000,183000); INSERT INTO `booking` VALUES ('B00008','P0010','2014-06-27',275000,550000); INSERT INTO `booking` VALUES
CREATE TABLE `jenisbayar` ( `Kd_jenis_byr` varchar(5) NOT NULL DEFAULT '', `Nm_jenis_byr` varchar(30) DEFAULT NULL, PRIMARY KEY (`Kd_jenis_byr`) )
CREATE TABLE `kendaraan` ( `No_polisi` varchar(10) NOT NULL DEFAULT '', `Nm_kendaraan` varchar(30) DEFAULT NULL, `Jenis_kendaraan` varchar(20) DEFAULT NULL, PRIMARY KEY (`No_polisi`) ) CREATE TABLE `kwitansi` ( `No_kwitansi` varchar(6) NOT NULL DEFAULT '', `Tgl_kwitansi` date DEFAULT NULL, `Jml_bayar` double(10,2) DEFAULT NULL, `No_booking` varchar(6) NOT NULL DEFAULT '', PRIMARY KEY (`No_kwitansi`,`No_booking`) )
CREATE TABLE `pegawai` ( `NIP` varchar(5) NOT NULL DEFAULT '', `Nm_pegawai` varchar(30) DEFAULT NULL, `Jen_kel` varchar(10) DEFAULT NULL, `Alamat` varchar(100) DEFAULT NULL, `No_tlp` varchar(12) DEFAULT NULL, `Jabatan` varchar(20) DEFAULT NULL, PRIMARY KEY (`NIP`) )
CREATE TABLE `pelanggan` ( `Kd_pelanggan` varchar(5) NOT NULL DEFAULT '', `Nm_pelanggan` varchar(30) DEFAULT NULL, `Alamat` varchar(100) DEFAULT NULL, `No_tlp` varchar(12) DEFAULT NULL, PRIMARY KEY (`Kd_pelanggan`) )
('B00009','P0003','2014-06-28',10000,40000); INSERT INTO `jenisbayar` VALUES ('JB001','Over Time'); INSERT INTO `jenisbayar` VALUES ('JB002','Kerusakan Alat'); INSERT INTO `jenisbayar` VALUES ('JB003','Terlambat Melunasi Biaya Sewa'); INSERT INTO `jenisbayar` VALUES ('JB004','Tidak Ada'); INSERT INTO `kendaraan` VALUES ('B6545NJH','Daihatsu Grandmax','Picked Up'); INSERT INTO `kendaraan` VALUES ('B7765BPG','Isuzu ELF','Truk Box'); INSERT INTO `kendaraan` VALUES ('B8876NGF','Isuzu ELF','Truk Lost Box'); INSERT INTO `kwitansi` VALUES ('KW0001','2014-06-26',58000,'B00001'); INSERT INTO `kwitansi` VALUES ('KW0002','2014-06-27',45000,'B00002'); INSERT INTO `kwitansi` VALUES ('KW0003','2014-06-27',53000,'B00003'); INSERT INTO `kwitansi` VALUES ('KW0004','2014-06-28',30000,'B00006'); INSERT INTO `kwitansi` VALUES ('KW0005','2014-06-28',133000,'B00007'); INSERT INTO `kwitansi` VALUES ('KW0006','2014-06-28',30000,'B00009'); INSERT INTO `kwitansi` VALUES ('KW0007','2014-06-29',110000,'B00004'); INSERT INTO `pegawai` VALUES ('NIP01','Jhonny Wiyandri','Laki-laki','Jl. Gajah Mungkur Raya No 47, Perumnas 2, Tangerang','0817822221','Pemilik'); INSERT INTO `pegawai` VALUES ('NIP02','Mistinah','Perempuan','Jl. Gajah Mungkur Raya No 47, Perumnas 2, Tangerang','02155653175','Administrasi'); INSERT INTO `pegawai` VALUES ('NIP03','Jimmy','Laki-laki','Jl Salak 3 No 54, Perumnas 1 Tangerang','087744352311','Teknisi'); INSERT INTO `pegawai` VALUES ('NIP04','Bahri','Laki-laki','Bojong Nangka','085744535561','Teknisi'); INSERT INTO `pegawai` VALUES ('NIP05','Oman','Laki-laki','Kota Bumi, Tangerang','081354558990','Teknisi'); INSERT INTO `pegawai` VALUES ('NIP06','Aminudin','Laki-laki','Kota Bumi, Tangerang','081223324478','Teknisi'); INSERT INTO `pegawai` VALUES ('NIP07','Dani ','Laki-laki','Jl Rusa 2 Tangerang','085764458765','Teknisi'); INSERT INTO `pelanggan` VALUES ('P0001','Kurtubi','Jl. Cimone Permai 3 No 43, Tangerang','081376674521'); INSERT INTO `pelanggan` VALUES ('P0002','Yudi','Perumnas 3, Kelapa Dua, Tangerang','087889007645'); INSERT INTO `pelanggan` VALUES ('P0003','Muksin','Jl Besi Raya No 87, Perumnas
CREATE TABLE `sewa` ( `No_booking` varchar(6) NOT NULL DEFAULT '', `Kd_alat` varchar(5) NOT NULL DEFAULT '', `Jml_alat` int(2) DEFAULT NULL, `hrg_sewa_alat` double(10,2) DEFAULT NULL, PRIMARY KEY (`No_booking`,`Kd_alat`) )
CREATE TABLE `sewaalat` ( `No_booking` varchar(6) NOT NULL DEFAULT '', `Tgl_awal_pakai` date DEFAULT NULL, `Tgl_akhir_pakai` date DEFAULT NULL, `Tgl_loading` date DEFAULT NULL, `Jam_loading` time DEFAULT NULL, `Nm_Acara` varchar(50) DEFAULT NULL, `Almt_acara` varchar(100) DEFAULT NULL, `Nm_CP` varchar(30) DEFAULT NULL, `No_tlp_CP` varchar(12) DEFAULT NULL,
2, Tangerang','085688783221'); INSERT INTO `pelanggan` VALUES ('P0004','Cafetea','Jl. Borneo Raya No 15, Tangerang','089976653456'); INSERT INTO `pelanggan` VALUES ('P0005','DFL','Jl. Mawar 3 No 98, Tangerang','089688987665'); INSERT INTO `pelanggan` VALUES ('P0006','Hadi','Perumnas 2 Tangerang','081382364483'); INSERT INTO `pelanggan` VALUES ('P0007','Aulya','Bintaro','08126546778'); INSERT INTO `pelanggan` VALUES ('P0008','Meddy','Curug Raya, Tangerang','08187657899'); INSERT INTO `pelanggan` VALUES ('P0009','Global TV','Jakarta Barat','02167765654'); INSERT INTO `pelanggan` VALUES ('P0010','Denny Hamzah','Jl. Semangka 3 No 2, Perumnas 2, Tangerang','089987786453'); INSERT INTO `pelanggan` VALUES ('P0011','Yudho M','Taman Cibodas, Tangerang','081567898787'); INSERT INTO `pelanggan` VALUES ('P0012','May J','Jl. Danau Batur','081233453220'); INSERT INTO `pelanggan` VALUES ('P0013','Joko Tingkir','Jl kelapa dua, tangerang','081209909887'); INSERT INTO `sewa` VALUES ('B00004','A0001',1,50000); INSERT INTO `sewa` VALUES ('B00004','A0004',2,200000); INSERT INTO `sewa` VALUES ('B00004','A0007',1,60000); INSERT INTO `sewa` VALUES ('B00005','A0001',1,50000); INSERT INTO `sewa` VALUES ('B00005','A0003',2,300000); INSERT INTO `sewa` VALUES ('B00005','A0006',1,110000); INSERT INTO `sewa` VALUES ('B00005','A0007',2,120000); INSERT INTO `sewa` VALUES ('B00008','A0001',1,50000); INSERT INTO `sewa` VALUES ('B00008','A0004',1,100000); INSERT INTO `sewa` VALUES ('B00008','A0007',2,120000); INSERT INTO `sewa` VALUES ('B00008','A0017',1,280000); INSERT INTO `sewaalat` VALUES ('B00004','2014-06-28','2014-06-29','2014-0627','23:00:00','Pesta Ulang Tahun','Hotel Imperial Lippo','Diki','08120383848','dsgfg','2014-0702','2014-06-29','Lunas'); INSERT INTO `sewaalat` VALUES ('B00005','2014-07-05','2014-07-05','2014-0704','22:00:00','Kawinan','Karawaci Tangerang','Genta','087887766776','fgdfdh','201
`Keterangan` varchar(100) DEFAULT NULL, `Tgl_jth_tempo` date DEFAULT NULL, `Tgl_lunas` date DEFAULT NULL, `Status` varchar(11) DEFAULT NULL, PRIMARY KEY (`No_booking`) ) CREATE TABLE `studio` ( `No_booking` varchar(6) NOT NULL DEFAULT '', `Tgl_sewa` date DEFAULT NULL, `Jam_masuk` time DEFAULT NULL, `Jam_keluar` time DEFAULT NULL, `Durasi` int(2) DEFAULT NULL, `Hrg_sewa_per_jam` double(10,2) DEFAULT NULL, `Ket_studio` varchar(100) DEFAULT NULL, PRIMARY KEY (`No_booking`) ) CREATE TABLE `suratjalan` ( `No_SJ` varchar(15) NOT NULL DEFAULT '', `Tgl_SJ` date DEFAULT NULL, `No_booking` varchar(6) NOT NULL DEFAULT '', `No_polisi` varchar(10) NOT NULL DEFAULT '', PRIMARY KEY (`No_SJ`,`No_booking`,`No_polisi`) ) CREATE TABLE `tambah` ( `No_booking` varchar(6) NOT NULL DEFAULT '', `Kd_alat` varchar(5) NOT NULL DEFAULT '', `Jml_tambah` int(2) DEFAULT NULL, `Hrg_sewa_tambahan` double(10,2) DEFAULT NULL, PRIMARY KEY (`No_booking`,`Kd_alat`) ) CREATE TABLE `tugas` ( `No_SJ` varchar(15) NOT NULL DEFAULT '', `NIP` varchar(5) NOT NULL DEFAULT '', `Jabatan` varchar(20) DEFAULT NULL, PRIMARY KEY (`No_SJ`,`NIP`) )
e.
4-07-08','2014-06-29','Belum Lunas'); INSERT INTO `sewaalat` VALUES ('B00008','2014-07-01','2014-07-01','2014-0701','15:00:00','wedding anniv','Ciledug','Jack','081598781766','kjshf','20 14-07-04','0000-00-00','Belum Lunas'); INSERT INTO `studio` VALUES ('B00001','201406-26','21:00:00','23:00:00',2,40000,'gerrrr'); INSERT INTO `studio` VALUES ('B00002','201406-27','13:00:00','14:00:00',1,40000,'skdjhg'); INSERT INTO `studio` VALUES ('B00003','201406-27','15:00:00','17:00:00',2,40000,'testt'); INSERT INTO `studio` VALUES ('B00006','201406-28','15:00:00','16:00:00',1,40000,'ertry'); INSERT INTO `studio` VALUES ('B00007','201406-28','12:00:00','15:00:00',3,40000,'fghgj'); INSERT INTO `studio` VALUES ('B00009','201406-28','19:00:00','20:00:00',1,40000,'hjl'); INSERT INTO `suratjalan` VALUES ('SJ0001','2014-06-27','B00004','B6545NJH'); INSERT INTO `suratjalan` VALUES ('SJ0002','2014-06-30','B00008','B7765BPG');
INSERT INTO `tambah` VALUES ('B00001','A0016',1,3000); INSERT INTO `tambah` VALUES ('B00003','A0016',1,3000); INSERT INTO `tambah` VALUES ('B00007','A0007',1,60000); INSERT INTO `tambah` VALUES ('B00007','A0016',1,3000); INSERT INTO `tugas` VALUES ('SJ0001','NIP01','Pemilik'); INSERT INTO `tugas` VALUES ('SJ0001','NIP05','Teknisi'); INSERT INTO `tugas` VALUES ('SJ0002','NIP04','Teknisi'); INSERT INTO `tugas` VALUES ('SJ0002','NIP06','Teknisi');
Buatlah query untuk mencari informasi dari minimal 2 relasi/tabel yang telah dibuat, yang sebelumnya sudah anda tentukan relasi yang anda entry datanya, dimana setiap anggota kelompok tidak boleh melakukan query yang sama. (Lampirkan hasil querynya)
select `booking`.`No_booking` AS `no_booking`,(`sewa`.`Jml_alat` * `sewa`.`hrg_sewa_alat`) AS `Total_sewa` from (`booking` join `sewa` on((`booking`.`No_booking` = `sewa`.`No_booking`))) order by `sewa`.`No_booking`;
f.
Buatlah query untuk mencari informasi dari minimal 3 relasi/tabel yang telah dibuat, yang sebelumnya sudah anda tentukan relasi yang anda entry datanya, dimana setiap anggota kelompok tidak boleh melakukan query yang sama. (Lampirkan hasil querynya)
select `kwitansi`.`No_kwitansi` AS `No_kwitansi`,`kwitansi`.`Tgl_kwitansi` `Tgl_kwitansi`,`pelanggan`.`Nm_pelanggan` AS `Nm_pelanggan`,`bayar`.`TotalBiaya` `TotalBiaya`,`booking`.`Tot_biaya_sewa` AS `Tot_biaya_sewa`,`studio`.`No_booking` `No_booking`
AS AS AS
from ((((`kwitansi` join `booking` on((`kwitansi`.`No_booking` = `booking`.`No_booking`))) join `pelanggan` on((`pelanggan`.`Kd_pelanggan` = `booking`.`Kd_pelanggan`))) join `bayar` on((`kwitansi`.`No_kwitansi` = `bayar`.`No_kwitansi`))) join `studio` on((`studio`.`No_booking` = `booking`.`No_booking`)));