Selasa, 01 Desember 2015

SISTEM BASIS DATA

1        1.      Basis Data VS Sistem Basis Data
a.       Apa Itu Basis Data?
Kumpulan terpadu dari berkas data (integrated collection of data) yang memiliki kaitan satu dengan lainnya, dan dibuat untuk memenuhi kepentingan banyak pemakai pada suatu organisasi.
Basis data terbagi menjadi 2 kata yaitu basis dan data. Basis dapat diartikan markas,  gudang,  tempat  berkumpulnya.  Sedangkan Data  merupakan representasi  fakta  dunia  yang  nyata  yang  mewakili  sesuatu  objek  seperti manusia ( pegawai, siswa, pembeli, dll), barang, hewan, peristiwa, dll.

Basis data sendiri dapat diartikan dalam sejumlah sudut pandang:
1)    Himpunan  kelompok  data  (arsip)  yang  saling  berhubungan  yang diorganisasi   sedemikian  rupa  agar  kelak  dapat  dimanfaatkan  kembali dengan cepat dan mudah.
2)      Kumpulan  data  yang  saling  berhubungan  yang  disimpan  secara bersama sedemikian rupa dan tanpa pengulanagan (redundansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan.
3)      Kumpulan  file  /tabel/arsip  saling  berhubungan  yang  disimpan  dalam media penyimpanan elektronis.

Basis  data  memiliki  prinsip  utama  yaitu Pengaturan data  /  arsip,  untuk mendukung kemudahan dan kecepatan dalam pengolahan data. Hal  penting  yang  harus  diperhatikan,  bahwa  basis  data  bukan  hanya sekedar  penyimpanan  data  secara  elektronik  maupun  non  elektronik. Misalnya  secara  elektronik,  kita  menyimpa  file  berupa  teks  atau  numerik kedalam sebuah media disk, ini tidak bisa disebut sebagai basis data. Karena didalamnya tidak terdapat hal utama yang ditonjolkan dalam basis data, yaitu pengaturan/ pemilahan/ pengelompokaan/ pengorganisasian.



b.      Apa Itu Sistem Basis Data?
Sistem Basis Data adalah suatu sistem menyusun dan mengelola record-record menggunakan computer untuk menyimpan atau merekam serta memelihara data operasional lengkap sebuah organisasi/perusahaan sehingga mampu menyediakan informasi yang optimal yang diperlukan pemakai untuk proses mengambil keputusan. Salah satu cara menyajikan data untuk mempermudah modifikasi adalah dengan cara pemodelan data. Model yang akan dipergunakan pada pelatihan ini adalah Entity Relationship Model. Model Entity Relationship adalah representasi logika dari data pada suatu organisasi atau area bisnis tertentu dengan menggunakan Entity dan Relationship.

2    2.    Integritas Data
Integritas data adalah jaminan konsistensi data terhadap semua status konstrain yang diberlakukan terhadap data, sehingga memberikan jaminan keabsahan data itu sendiri. Integritas data sangat erat kaitannya dengan akurasi dan kebenaran data. Informasi yang disimpan pada basis data akan bagus jika DBMS turut membantu mencegah adanya yang salah yang masuk ke basis data.
Batasan Integritas data(Data Integrity Constraint) adalah syarat yang di spesifikasikan pada basis data untuk membatasi data yang dapat disimpan di dalam basis data. DBMS akan memaksakan batasan integritas data, sehingga hanya mengijinkan basis data yang legal yang bisa disimpan di DBMS. Integrasi data mengacu ke konsistensi dan akurasi data yang disimpan dalam basis data. Integritas data dapat di kelompokkan menjadi dua bagian :
a.       Integritas data yang berada didalam relasi, yaitu Integritas Entitas(Entity Integrity) dan Integritas Domain (Domain Intgerity).
b.      Integritas data yang berada diluar relasi, yaitu integritas referensial (Referential Integrity).
c.        
Jenis-jenis Integritas data secara garis besar meliputi :
a)      Integritas Entitasa (Entity Integrity)
Integritas entitas mendefinisikan sebuah baris sebagai sebuah entitas yang unik untuk suatu tabel. Integritas entitas memaksa integritas dari column atau primary key dari suatu tabel melalui index, unique, constraints, primary key, dimana primary key tidak boleh null. Didalam integritas entitas tidak ada baris yang duplikat didalam tabel.
b)      Integritas Domain (Domain Integrity)
Integritas domain merupakan validasi dari masukan untuk sebuah kolom. Dapat memaksa integritas domain dengan membatasi tipe (melalui tipe data), format (melalui check contraint dan rules), atau range nilai-nilai yang mungkin (melalui foreign key constrains, check constrains, default definition dan rules). Jenis domain yang dapat dimiliki oleh suatu atribut :
1)      Karakter bebas
2)      Alphanumerik
3)      Alphabet
4)      Numerik

3        3.      Transaksi & Concrruency
a.       Transaksi
Transaksi adalah suatu atomic operasi berupa lojik pekerjaan maupun lojik recovery (pemulihan) yang bisa terdiri dari beberapa intruksi. Tujuan dari transaksi adalah menjaga database dari kehilangan data dan kerusakan, seperti system crash dan pengaksesan data yang sama secara bersamaan oleh dua aplikasi yang berbeda yang menimbulkan gangguan.
Ada dua jenis transaksi yang paling penting dalam sistem basis data adalah :
1)      Commit, memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system).
2)      Rollback, memberi tanda bahwa transaksi gagal. Semua update harus di-undo.

Ada empat elemen transaksi yang disingkat dengan ACID :
·         Atomicity :semua berhasil atau semua gagal
·         Consistency : transaksi mempertahankan konsistensi database
·         Isolation : transaksi terisolasi satu dengan yang lain
·         Durability : setelah commit update harus survive di database

b.      Concurency
Concurency adalah sebuah mekanisme pada system basis data yang mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama tanpa adanya gangguan. Concurency Control Mechanism (CCM) dibutuhkan agar transaksi tidak saling mengganggu. Lojik recovery atau system recovery database dilakukan ketika terjadi kegagalan media, kegagalan system atau kesalahan pada transaksi. Sistem recovery menggunakan fungsi rollback dan checkpoint. Checkpoint adalah interval tertentu pada perjalanan transaksi basis data yang menyimpan keadaan basis data saat itu. Checkpoint dapat dilakukan untuk me-recovery database secara backward (undo) maupun forward (redo). 3 masalah yang ada dalam Concurrency :
·         Lost Update Problem yaitu terjadi ketika dua user mengupdate dua buah data yang sama
·         Uncommitted dependency problem yaitu terjadi ketika user yang satu me-retrieve data dan user yang lain me-rollback data tersebut
·         Incosistent analysis problem yaitu terjadi ketika user yang satu meretrieve data dan user yang lain mengupdate data tersebut.
c.       Locking
Locking terjadi jika suatu transaksi ingin record atau resource tidak berubah dalam waktu tertentu. Jenis Lock terdiri dari :
·         Exclusive Lock (Xlock) atau write lock yaitu locking yang hanya bisa di gunakan untuk mengupdate dan membaca transaksi
·         Shared Lock (Slock) atau read lock yaitu locking yang hanya bisa di gunakan untuk membaca transaksi.

4        4.      XML
a.       Apa itu XML?
XML didesain untuk mempu menyimpan data secara ringkas dan mudah diatur. Kata kunci utama XML adalah data (jamak dari datum) yang jika diolah bisa memberikan informasi.
XML menyediakan suatu cara terstandarisasi namun bisa dimodifikasi untuk menggambarkan isi dari dokumen. Dengan sendirinya, XML dapat digunakan untuk menggambarkan sembarang view database, tetapi dengan suatu cara yang standar.

b.      Tipe file XML?
§  XML, merupakan standar format dari struktur berkas (file).
§  XSL, merupakan standar untuk memodifikasi data yang diimpor atau diekspor.
§  XSD, merupakan standar yang mendefinisikan struktur database dalam XML.

c.       Keunggulan XML
§  Pintar (Intelligence). XML dapat menangani berbagai tingkat (level) kompleksitas.
§  Dapat beradaptasi. Dapat mengadaptasi untuk membuat bahasa sendiri. Seperti Microsoft membuaat bahasa MSXML atau Macromedia mengembangkan MXML.
§  Mudah pemeliharaannya.
§  Sederhana. XML lebih sederhana.
§  Mudah dipindah-pindahkan (Portability). XML mempunyai kemudahan perpindahan (portabilitas) yang lebih bagus.


Seperti halnya HTML, XML juga menggunakan elemen yang ditandai dengan tag pembuka (diawali dengan ‘<’ dan diakhiri dengan ‘>’), tag penutup(diawali dengan ‘</ ‘diakhiri ‘>’) dan atribut elemen(parameter yang dinyatakan dalam tag pembuka misal <form name=”isidata”>). Hanya bedanya, HTML medefinisikan dari awal tag dan atribut yang dipakai didalamnya, sedangkan pada XML kita bisa menggunakan tag dan atribut sesuai kehendak kita. Untuk lebih jelasnya lihat contah dibawah:


<pesan>
<dari>MIS Manager</dari>
<buat>HRD Manager</buat>
<buat>Bagian rekrut</buat>
<buat>Computer Suport team</buat>
<subyek>Permohonan Tenaga kerja baru</subyek>
<isi>Mohon diberikan tenaga kerja baru untuk mengisi lowongan di
Departemen MIS</isi>
</pesan>


      5.      Back end programming
Back end programming merupakan suatu program yang bekerja dibelakang atau yang tidak dilihat oleh user. Contohnya dalam sistem basis data itu seperti PL/SQL. PL/SQL itu dirancang khusus untuk pengolahan mulus dari perintah SQL. Ini memberikan sintaks khusus untuk tujuan ini dan mendukung persis datatypes sama seperti SQL. Server-side PL / SQL disimpan dan disusun dalam Oracle Database dan berjalan dalam executable Oracle. Secara otomatis mewarisi ketahanan, keamanan, dan portabilitas Oracle Database.
a.       Kelebihan PL/SQL
Blok PL/SQL juga mempunyai kelebihan tersendiri. Beberapa kelebihannya, antara lain adalah :
·         Integritas ketat dengan SQL
·         Performa yang lebih baik
·         Produktifitas yang lebih tinggi
·         Portabilitas penuh
·         Keamanan ketat
·         Akses ke paket-paket yang telah di tentukan
·         Dapat mendukung pemograman berorientasi objek dan mendukung pengembangan halaman dan aplikasi web dan server pages (PSPs).



b.      Struktur PL/SQL
Blok PL/SQL mempunyai struktur yang dibagi menjadi 3 bagian. Berikut
·         Declaration Section (DECLARE)
·         Execution Section (BEGIN, END)
·         Exception Section (EXCEPTION)

c.       Komponen Utama PL/SQL
PL/SQL mempunyai komponen utama. Ada 3 komponen utama dalam blok PL/SQL, antara lain adalah :
1)      Annonymous Blok ->cAnonymous block ini tidak dibuat (CREATE) dan tak disimpan pada database, biasanya dijalankan dari dalam aplikasi.
2)      Strored Subprogram -> PL/SQL Block ini yang dipanggil dengan sekumpulan parameter. PL/SQL memiliki dua jenis subprogram yaitu: procedure dan function. Secara umum procedure digunakan untuk melaksanakan aksi dan function digunakan untuk komputasi suatu nilai.
3)      Trigger -> blok PL/SQL yang disimpan dalam database dan akan diaktivasi ketika kita melakukan statement-statement SQL (DELETE, UPDATE, dan INSERT) pada sebuah tabel. Trigger itu mempunyai event, nah event itu telah yang menandakan bahwa trigger harus dijalankan.

4)      Cursor
Cursor itu sama seperti select pada SQL. Cursor mempunyai 3 macam, yaitu antara lain :
·         Cursor yang bertipe data refcursor dan dapat digunakan untuk semua query
·         Cursor yang memiliki query
·         Cursor yang memilik query dan sekaligus berparameter.

     Referensi:

  • Diktat Mata Kuliah Sistem Basis Data Budi Laksono Putro,
  • PPT Materi Sistem Basis Data Yudi Wibisono,
  • Buku Elektronik Sistem Basis Data karangan Linda Marlinda,
  • Buku Basis Data karangan Fathansyah,
  • Modul Praktikum Sistem Basis Data Ilmu Komputer UPI,

Rabu, 08 April 2015

Belajar Basis Data yuk guys :D

Basis Data

Pangkalan data atau basis data adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut.Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi.

1. Data Definition Language
Data Definition Language (DDL) adalah bahasa basis data yang digunakan untuk mendefinisikan, mengubah, dan menghapus basis data serta objek-objek yang diperlukan, seperti table, view, user, index dan sebagainya. DDL biasa digunakan oleh Data Base Administrator (DBA) dalam pembuatan sebuah aplikasi basis data.

Perntah yang umum di DDL adalah:

Berikut adalah contoh perintah DDL yang digunakan pada MySQL. Klik pada link untuk melihat rincian penggunaan dari perintah tersebut.
  • Pembuatan (CREATE)
    • CREATE DATABASE
    • CREATE FUNCTION
    • CREATE INDEX
    • CREATE PROCEDURE
    • CREATE TABLE
    • CREATE TRIGGER
    • CREATE VIEW
  • Perubahan (ALTER & RENAME)
    • ALTER DATABASE
    • ALTER FUNCTION
    • ALTER PROCEDURE
    • ALTER TABLE
    • ALTER VIEW
    • RENAME TABLE
  • Penghapusan (DROP)
    • DROP DATABASE
    • DROP FUNCTION
    • DROP INDEX
    • DROP PROCEDURE
    • DROP TABLE
    • DROP TRIGGER
    • DROP VIEW
2. Data Manipulation Language
Data Manipulation Language (DML) adalah bahasa/perintah SQL yang berfungsi untuk memanipulasi data yang ada di dalam basis data(database), dan digunakan untuk mengambil, memasukkan, memodifikasi, bahkan menghapus informasi/isi yang ada didalam database tersebut. Beberapa kegunaan DML adalah sebagai berikut :
a. Pengambilan informasi yang disimpan dalam basis data (Select)
b. Penyisipan informasi baru ke basis data (Insert)
c. Penghapusan informasi dari basis data (Delete)
d. Modifikasi informasi yang disimpan dalam basis data (Update)


3. ER-D (Entity Relationship Diagram)
ER-D merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar data yang mempunyai hubungan antar relasi. ER-D untuk memodelkan struktur data dan hubungan antar data, untuk menggambarkannya digunakan beberapa notasi dan simbol.    
  Menurut salah satu para ahli, Brady dan Loonam (2010), Entity Relationship diagram (ER-D) merupakan teknik yang digunakan untuk memodelkan kebutuhan data dari suatu organisasi, biasanya oleh System Analys dalam tahap analisis persyaratan proyek pengembangan system. Sementara seolah-olah teknik diagram atau alat peraga memberikan dasar untuk desain database relasional yang mendasari sistem informasi yang dikembangkan. ERD bersama-sama dengan detail pendukung merupakan model data yang pada gilirannya digunakan sebagai spesifikasi untuk database.
Adapun komponen ER-Diagram adalah sebagai berikut:
a. Entitas
Entitas didefinisikan sebagai individu yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain. Sederhananya, entitas dikenal sebagai suatu objek yang dapat dibedakan dengan objek lainnya di dalam dunia nyata. Entitas di dalam ER-D direpresentasikan oleh bangun datar persegi panjang. Adapun beberapa contoh entitas adalah sebagai berikut: siswa, pegawai, guru, mobil, dan seterusnya

b. Atribut
Atribut merupakan karakteristik dari entity atau relationship yang menyediakan penjelasan detail tentang entity atau relationship tersebut. Atribut di dalam ER-D direpresentasikan dalam bentuk bangun datar oval.
Adapun beberapa contoh atribut adalah sebagai berikut:
nomor_induk_siswa, nama, alamat, dan seterusnya.
c. Relasi
Relasi didefinisikan sebagai hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Sederhananya, relasi dikenal sebagai hubungan yang terjadi antara satu atau lebih entitas. Relasi pada ER-D direpresentasikan dalam bentuk bangun datar belah ketupat. Adapun beberapa contoh relasi adalah sebagai berikut: mengontrak, transaksi, dan mengepalai.
d. Kardinalitas
Kardinalitas relasi menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas lain. Adapun kardinalitas yang terjadi diantara dua himpunan entitas adalah sebagai berikut:

a. One to One
Kardinalitas ini terjadi apabila entitas (aku) berhubungan dengan paling banyak satu entitas (kamu), begitu pun sebaliknya. Sederhananya, relasi tabel one-to-one merupakan relasi 2 tabel dengan primary key (pk) dan foreign key (fk) dengan meletakkan kolom one-to-one ke tabel baru. Sebenarnya relasi ini jarang digunakan.

Adapun beberapa alasan relasi ini digunakan adalah sebagai berikut:
·         Memindahkan data ke tabel lain memungkinkan untuk membuat query yang lebih cepat;
·         Mengisolasi dan menghindarkan nilai NULL pada tabel utama;
·         Membuat sebagian data susah diakses.

Mari kita lihat contoh perancangannya:

 

b. One to Many dan Many to One
Kardinalitas One to Many terjadi apabila entitas (aku) berhubungan dengan banyak entitas (kamu, dia_1, dia_n), tetapi tidak berlaku sebaliknya, dalam artian entitas (kamu, dia_1, dia_n) hanya berhubungan dengan satu entitas (aku). Kardinalitas Many to One terjadi apabila entitas (saya_1, saya_2, saya_n) berhubungan dengan satu entitas (kamu), tetapi tidak berlaku sebaliknya, dala artian entitas (kamu) berhubungan dengan banyak entitas (saya_1, saya_2, saya_n).
Relasi One to Many terjadi apabila sebuah data yang ada pada tabel pertama memiliki beberapa data yang sama pada tabel kedua. Pada relasi ini hanya diizinkan sebuah data pada tabel pertama dan tabel kedua boleh memiliki beberapa data yang sama dengan tabel pertama. Relasi Many to One berlaku sebaliknya. 

c. Many to many
Kardinalitas Many to Many terjadi apabila banyak entitas (saya, dia_1, dia_n) berhubungan dengan banyak entitas (kamu, kamuu, kamuuu). Relasi Many to Many terjadi apabila sebuah data yang ada pada tabel pertama memiliki beberapa data yang sama pada table kedua, dan sebuah data yang ada pada tabel kedua juga memiliki beberapa data yang sama pada tabel pertama. Pada relasi ini, table pertama dan kedua diizinkan memiliki beberapa data yang sama dengan kedua table tersebut. Mari kita simak perancangan berikut yang melibakan entitas dosen, mahasiswa, dan relasi mengajar.

 
Contoh ERD Jual Beli



4. Fungsi Aggregasi
    Fungsi aggregasi adalah fungsi matematika sederhana dalam SQL. Biasanya fungsi aggregasi ini digunakan pada bagian SELECT untuk melakukan perhitungan dengan melibatkan sekumpulan data atau nilai.

a.   AVG()
Fungsi ini digunakan untuk menghasilkan nilai rata-rata sekelompok nilai dari sebuah kolom (field) numerik.
Perintah umum:

SELECT AVG(nama_field) From nama_tabel;

b.  COUNT()
Fungsi ini digunakan untuk menghasilkan nilai jumlah data (baris/record) dari sekelompok data tabel maupun view.
Perintah umum:
SELECT COUNT(nama_field) From nama_tabel;

c. MAX()
Fungsi ini digunakan untuk menghasilkan nilai tertinggi sekelompok nilai dari sebuah kolom (field) numerik.
Perintah umum:
SELECT MAX(nama_field) From nama_tabel;

d. MIN()
Fungsi ini digunakan untuk menghasilkan nilai terendah dari sebuah kolom (field) numeric
Perintah umum:
SELECT MIN(nama_field) From nama_tabel;

e. SUM()
Fungsi ini digunakan untuk menghasilkan nilai total jumlah sekelompok dari sebuah kolom (field)
numerik..
Perintah umum:
SELECT SUM(nama_field) From nama_tabel;

f. ROUND()
Fungsi ini digunakan untuk melengkapi bidang numerik dengan jumlah desimal yang ditentukan.
Perintah umum:
SELECT ROUND(nama_field,jumlah_decimal) From nama_tabel;

g. STDDEV_POP()
Fungsi ini digunakan untuk menghasilkan nilai standart deviasi populasi.
Perintah umum:
SELECT STDDEV_POP(nama_field) From nama_tabel;

h. VAR_POP()
Fungsi ini digunakan untuk menghasilkan nilai standart varian populasi.
Perintah umum:
SELECT VAR_POP(nama_field) From nama_tabel;

5. Fungsi Grouping

a. Order By
Order by adalah perintah yang digunakan untuk menampilkan data secara terurut berdasarkan nilai tertentu. Order by dikelompok menjadi 2 jenis yaitu ascending (data diurutkan dari yang terkecil ke terbesar) dan descending(data diurutkan dari yang terbesar ke terkecil).

b. Group By
Group by merupakan perintah yang digunakan untuk mengelompokan beberapa data pada perintah SELECT;
Perintah Umum :
SELECT *FROM(nama_tabel) GROUP BY atribut;

c. Having
Fungsi Having terkait dengan GROUP BY dan AGREGASI. Biasanya digunakan untuk menentukan kondisi tertentu pada group by dan kondisi tersebut berkaitan dengan fungsi agrgasi. Fungsi HAVING sebenarnya memiliki kemiripan dengan WHERE dalam penggunaannya. HAVING digunakan dalam SQL karena WHERE tidak dapat digunakan dengan fungsi agregasi.
Perintah Umum
SELECT atribut FROM nama_tabel GROUP BY atribut HAVING fungsi_agregasi

d. View
View dapat disebut sebagai sebuah table semu/bayangan. Data-data pada table view dapat merupakan gabungan dari data pada tabe-tabel lain. View dapat digunakan untuk membatasi pengaksesan atas sebuah table tertentu, jadi user hanya boleh melihat table yang berisi data-data secara spesifik.
Perintah umum:
CREATE VIEW NAMA_VIEW AS<QUERY>
Untuk Menampilkan :
SELECT * FROM Nama_Tabel_semu_yg_telah_dibuat;



 Yuk Kita Praktekan penggunaan syntaxnya gimana :D

Nah ini membuat database Reservasi Tiket :D

CREATE DATABASE Pesan_Tiket_Pesawat; (Membuat Database)
USE Pesan_Tiket_Pesawat (Menggunakan Database Pesawat)

(Membuat Tabel pesewat)
create table pesawat(
kd_pesawat varchar (10) primary key,
nama_pesawat varchar (20) not null,
kelas varchar(15) not null,
harga_tiket int(15) not null);

(Membuat Tabel Penumpang)
create table penumpang(
ktp_penumpang varchar(30) primary key,
nama_penumpang varchar(30) not null,
alamat_penumpang varchar(30) not null,
kontak_penumpang varchar(30) not null);

(Membuat Tabel Karyawan)
create table karyawan(
id_karyawan varchar(10) primary key,
nama_karyawan varchar(20) not null,
alamat_karyawan varchar(20) not null,
kontak_karyawan varchar(20) not null);

(Membuat Tabel reservasi)
create table reservasi(
id_reservasi int auto_increment primary key,
kd_pesawat varchar (10) not null,
ktp_penumpang varchar(30) not null,
id_karyawan varchar(10) not null,
tgl_transaksi date not null,
jml_tiket int(5) not null,
foreign key(kd_pesawat) references pesawat(kd_pesawat),
foreign key(ktp_penumpang) references penumpang(ktp_penumpang),
foreign key(id_karyawan) references karyawan (id_karyawan));

(Mengisi Tabel pesewat)
insert into pesawat values
('BB-896','Batik Api','Eksekutif',1600000),
('GA-654','Perkutut Indonesia','Eksekutif',1700000),
('IW-184','Sayap Api','Bisnis',1200000),
('JT-300','Singa Air','Ekonomi',470000),
('QG-122','Desalink','Ekonomi',512000),
('QZ-751','Air Asean','Ekonomi',400000),
('SJ-232','Sriwijaya Api','Bisnis',970000);

Nah Ini loh Hasil membuat tabel pesawat








(Mengisi Tabel penumpang)
insert into penumpang values
('0437121105660005','Novika Andhani','Karangpawitan','08979968239'),
('2930031209780002','Fambi Alda T','Sukaregang','089669454410'),
('2930080212770003','Indra Kosasih','KiaraKoneng','081137493724'),
('3940991111680004','Rianti Kesumawati','Taroggong','085585859394'),
('4382321310650004','Reza Mughni Anugrah','Cisurupan','089884936759'),
('4392112912670003','Dhani Romadon','Panorama','085154354376'),
('4395102209990001','Widianto Wiwi','Jl. H. Abdul','081184934343'),
('4402112305670003','Ahmad Kamal','Jl. Sangkurian','081634454643'),
('4823060810790002','Jefri Omega','Banjarejo','089984037475'),
('4948061702950005','Misbah Nasirudin','Jl. Palesiran','085685973958'),
('5464092309790001','Wiguna Manda','Jl. Sukawening','085185837639'),
('8463032404970001','Lutfi Amalia Latifah','Wanaraja','081292932939');

Nah Ini lho hasil Membuat tabel Penumpangnya

















(Mengisi Tabel karyawan)
insert into karyawan values
('PB003','Andi Rahmandi','Jl. Kuda Liar','085829384928'),
('PB007','Irsyad Ramadan','Gang Pahlawan','087483748373'),
('PJ015','Arief Novianto','Gang Kelinci','085643332262'),
('PJ023','Hazmi Ramadan','Jl. Batu','077984839574'),
('PJ033','Rizki Cahyana','Gang cempaka 01','081123049382'),
('PJ050','Risda Zaidah','Gang Buntu','080011333432'),
('PJ087','Abdul Aziz','Jl. Sempit','099832573924'),
('PJ092','Nurhidayanti','Gang Motor','086434353432');

(Mengisi Tabel Reservasi)
insert into reservasi values
(null,'BB-896','3940991111680004','PJ015','2015-03-25',2),
(null,'QG-122','4392112912670003','PB003','2015-03-01',1),
(null,'QG-122','4948061702950005','PJ033','2015-03-05',1),
(null,'BB-896','4395102209990001','PJ015','2015-03-17',1),
(null,'BB-896','5464092309790001','PJ015','2015-03-17',1),
(null,'BB-896','4823060810790002','PJ033','2015-03-04',1),
(null,'BB-896','3940991111680004','PJ033','2015-03-04',1),
(null,'QG-122','4392112912670003','PJ033','2015-03-10',1),
(null,'QG-122','8463032404970001','PJ033','2015-03-10',1),
(null,'QZ-751','4823060810790002','PJ023','2015-03-01',2),
(null,'QZ-751','4392112912670003','PJ023','2015-03-01',2),
(null,'JT-300','3940991111680004','PJ033','2015-03-15',1),
(null,'JT-300','4395102209990001','PJ033','2015-03-15',1),
(null,'IW-184','2930080212770003','PB007','2015-03-14',2),
(null,'IW-184','3940991111680004','PB007','2015-03-14',2),
(null,'QG-122','2930080212770003','PJ015','2015-03-07',2),
(null,'QG-122','5464092309790001','PJ015','2015-03-07',2);





















select round(AVG(harga_tiket),2) as rata_rata from pesawat ;

select count(id_reservasi) from reservasi;

select max(harga_tiket) from pesawat;

select min(harga_tiket) from pesawat;

select sum(jml_tiket) from reservasi;

select a.id_reservasi, b.nama_penumpang, c.nama_pesawat, c.kelas, c.harga_tiket, a.jml_tiket, a.tgl_transaksi
from reservasi a, penumpang b, pesawat c
where b.ktp_penumpang=a.ktp_penumpang and c.kd_pesawat=a.kd_pesawat
group by id_reservasi, nama_pesawat ;

select a.nama_pesawat,b.nama_penumpang,c.nama_karyawan,d.tgl_transaksi
from pesawat a,penumpang b,karyawan c,reservasi d
where a.kd_pesawat=d.kd_pesawat and b.ktp_penumpang=d.ktp_penumpang and c.id_karyawan=d.id_karyawan order by tgl_transaksi;

select a.id_reservasi, a.tgl_transaksi, b.nama_penumpang, a.jml_tiket, a.jml_tiket*c.harga_tiket total_harga
from reservasi a, penumpang b, pesawat c
where b.ktp_penumpang=a.ktp_penumpang and c.kd_pesawat=a.kd_pesawat
order by a.jml_tiket*c.harga_tiket desc;

create view V_rePelanggan as select a.id_reservasi, a.tgl_transaksi, b.nama_penumpang, a.jml_tiket, a.jml_tiket*c.harga_tiket total_harga
from reservasi as a, penumpang as b, pesawat as c 
where b.ktp_penumpang=a.ktp_penumpang and c.kd_pesawat=a.kd_pesawat order by a.jml_tiket*c.harga_tiket desc;


create view V_dtReservasi as select a.nama_pesawat, b.nama_penumpang, c.nama_karyawan, d.jml_tiket
from pesawat as a, penumpang as b, karyawan as c, reservasi as d
where a.kd_pesawat=d.kd_pesawat and b.ktp_penumpang=d.ktp_penumpang and c.id_karyawan=d.id_karyawan;



select * from V_dtReservasi group by nama_pesawat order by jml_tiket desc;







 

Blogger news

Blogroll

About

Fambi Alda Triansyah 1401217 fambiefourze@gmail.com 0896694544XX