BASIS DATA
MENGENAL “ MySQL, Data
Definition Language (DDL), Data Manipulation Language (DML), Diagram Entity
Relationship ( Diagram E-R) , Aggregasi-Grouping”
A. Mengenal
MySQL
MySQL adalah Sebuah program database
server yang mampu menerima dan mengirimkan datanya sangat cepat, multi user
serta menggunakan peintah dasar SQL ( Structured Query Language ).
MYSQL
mengenal beberapa tipe data field yaitu:
·
Tipe data numerik Tipe data numerik
dibedakan dalam dua macam kelompok, yaitu integer dan floating point. Integer
digunakan untuk data bilangan bulat sedangkan floating point digunakan untuk
bilangan desimal.
·
Tipe data string String adalah rangkaian
karakter
·
Tipe data char() dan varchar() Tipe data
char() dan varchar() pada prinsipnya sama, perbedaannya hanya terletak pada
jumlah memori yang dibutuhkan untuk penyimpanannya
·
Tipe data tanggal Untuk tanggal dan jam,
tersedia tipe-tipe data field berupa :
DATETIME,
DATE,
TIMESTAMP,
TIME dan
YEAR.
DATETIME,
DATE,
TIMESTAMP,
TIME dan
YEAR.
1.
Data
Definition Language (DDL)
DDL berfungsi menspesifikasikan skema atau struktur basisdata, hasil
pernyataan DDL adalah himpunan definisi
data yang disimpan secara khusus pada data dictionary (data directory ).
Secara umum, DDL yang digunakan
meliputi perintah sebagai berikut:
·
CREATE; digunakan untuk membuat objek
yang baru;
·
ALTER; digunakan untuk mengubah objek
yang sudah ada dan juga melakukan perubahan struktur tabel yang telah dibuat, baik menambah Field ( Add ),
mengganti nama Field ( Change ) ataupun
menamakannya kembali ( Rename ), dan
menghapus Field ( Drop ).
·
DROP; digunakan untuk menghapus objek
yang sudah ada;
2.
Data
Manipulation Language (DML)
DML berisi sekumpulan operasi manipulasi
data pada basisdata, DML biasa disebut bahasa query yaitu bahasa untuk meminta
informasi dari basisdata karena komponen
paling kompleks di DML adalah operaasi query
·
INSERT : Digunakan untuk memasukkan data
pada Tabel Database
·
UPDATE : Digunakan untuk pengubahan
terhadap data yang ada pada Tabel Database
·
DELETE : Digunakan untuk Penhapusan data
pada tabel Database
3.
Diagram
Entity Relationship ( Diagram E-R)
Diagram E-R digunakan untuk
menggambarkan secara sistematis hubungan antar entity-entity yang ada dalam
suatu sistem database menggunakan simbol-simbol sehingga lebih mudah dipahami.
Simbol-simbol yang boleh digunakan adalah :
·
Persegi Panjang , berfungsi untuk menyatakan
suatu entity.
·
Elips , berfungsi untuk menyatakan attribute,
jika diberi garis bawah menandakan bahwa attribute tersebut merupakan
attribute/field kunci.
·
Belah Ketupat, menyatakan jenis relasi.
·
Garis , penghubungan antara relasi dengan
entity dan antara entity dengan attribute.
Kardinalitas :
1. Satu Ke Banyak
2. Banyak Ke Satu
3. Banyak Ke Banyak
Kardinalitas :
1. Satu Ke Banyak
2. Banyak Ke Satu
3. Banyak Ke Banyak
4.
Agregasi
Agregasi
adalah enkapsulasi dari entitas entitas yang berelasi (*n-n). Pada umumnya
terbentuk dari kardinalitas relasi banyak ke banyak. Didalam konsep agregasi
terdapat istilah enkapsulasi relasi dari kedua entitas.
Enkapsulasi di perlukan karena kedua himpunan entitas yang ber-relasi tersebut merupakan 1 kesatuan yang tidak bisa di pisah. Notasi agregasi di gambarkan dengan gambar persegi panjang yang membungkus himpunan entitas yang saling ber-relasi.
Enkapsulasi di perlukan karena kedua himpunan entitas yang ber-relasi tersebut merupakan 1 kesatuan yang tidak bisa di pisah. Notasi agregasi di gambarkan dengan gambar persegi panjang yang membungkus himpunan entitas yang saling ber-relasi.
1.
AVG()
Fungsi ini digunakan untuk menghasilkan nilai
rata-rata sekelompok nilai dari sebuah kolom (field) numerik.
2.
COUNT()
Fungsi ini digunakan untuk menghasilkan
nilai jumlah data (baris/record) dari sekelompok data tabel maupun view
3.
MAX()
Fungsi ini digunakan untuk menghasilkan
nilai tertinggi sekelompok nilai dari sebuah kolom (field) numerik
4.
MIN()
Fungsi ini digunakan untuk menghasilkan nilai
terendah dari sebuah kolom (field) numerik.
5.
SUM()
Fungsi ini digunakan untuk menghasilkan nilai
total jumlah sekelompok dari sebuah kolom (field) numerik.
6.
ROUND()
Fungsi ini digunakan untuk melengkapi
bidang numerik dengan jumlah desimal yang ditentukan.
7.
STDDEV_POP()
Fungsi ini digunakan untuk menghasilkan
nilai standart deviasi populasi.
8.
VAR_POP()
Fungsi ini digunakan untuk menghasilkan
nilai standart varian populasi.
5.
Grouping
grouping merupakan fungsi untuk
mengelompokkan suatu data tabel berdasarkan salah satu field yang diperlukan
dari tabel tersebut.
1.
Order By
Order by adalah perintah yang digunakan
untuk menampilkan data secara terurut berdasarkan nilai tertentu
2.
Group By
Group by merupakan perintah yang
digunakan untuk mengelompokan beberapa data pada perintah SELECT
3.
Having
Fungsi
Having 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
4.
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.
Langkah-Langkah Membuat Database Perbankan :
--1. Buatlah DDL untuk sebuah database Perbankan!
create database perbankan;
use perbankan;
--2. Buatlah DDL untuk entitas nasabah dengan atribut no_rek, nama_nasabah, alamat_nasabah, no_kontak!
create table pelanggan(
no_rek int(5) primary key,
nama_nasabah varchar(15) not null,
alamat_nasabah varchar(25) not null,
no_kontak int(15) not null
);
--Untuk Menampilkan
desc pelanggan;
--3. Buatlah DDL untuk entitas rekening dengan atribut no_rek, nama_bank!
create table rekening(
no_rek int(5) primary key,
nama_bank varchar(10) not null
);
--Untuk Menampilkan
desc rekening;
--4. Buatlah DDL untuk entitas cabang dengan atribut id_cabang, nama_cabang, alamat_cabang, kontak_cabang!
create table cabang(
id_cabang int(5) primary key,
nama_cabang varchar(25) not null,
alamat_cabang varchar(25) not null,
kontak_cabang varchar(15) not null
);
--Untuk Menampilkan
desc cabang;
--5. Buatlah DDL untuk relasi transaksi dengan atribut no_rek, tgl_transaksi, debet, kredit, saldo!
create table transaksi(
no_rek int(5) primary key,
tgl_transaksi date not null,
debet varchar(15) not null,
kredit varchar(15) not null,
saldo varchar(20) not null,
foreign key(no_rek) references pelanggan(no_rek),
foreign key(no_rek) references rekening(no_rek)
);
--Untuk Menampilkan
desc transaksi;
--6. Buatlah DDL untuk mengubah nama tabel pelanggan menjadi nasabah!
alter table pelanggan rename to nasabah;
--Untuk Menampilkan
desc nasabah;
--7. Buatlah DDL untuk mengubah nama kolom No_kontak pada tabel nasabah menjadi kontak_nasabah
alter table nasabah change column no_kontak kontak_nasabah int(15);
--Untuk Menampilkan
desc nasabah;
--8. Buatlah DDL untuk menambah kolom pekerjaan pada tabel nasabah!
alter table nasabah add pekerjaan varchar(15) after alamat_nasabah;
--Untuk Menampilkan
desc nasabah;
--9. Buatlah DDL untuk mengubah tipe data kontak_nasabah pada tabel nasabah menjadi varchar!
alter table nasabah modify column kontak_nasabah varchar(15);
--Untuk Menampilkan
desc nasabah;
--10. Masukkan data-data ke dalam masing-masing tabel !
insert into nasabah values
(10001,'Sri Mulya','Jl Mawar Merah','Mahasiswa','089736616051'),
(20002,'Erwin','Jl Melati','Polisi','081373332031'),
(30003,'Amelia','Jl Kamboja','Wirausahawan','081267552031'),
(40004,'Lusi Ana','Jl Raya','Bidan','089267322231'),
(50005,'Irsyad','Jl Kenanga','Dokter','087867152111');
insert into rekening values
(10001,'BCA'),
(20002,'BCA'),
(30003,'BCA'),
(40004,'BCA'),
(50005,'BCA');
insert into cabang values
(11111,'BCA Unit Setiabudi','Jl Setiabudi',1211112),
(22222,'BCA Unit Sukajadi','Jl Sukajadi',1212224),
(33333,'BCA Unit Dago Atas','Jl Dago Raya',1213336),
(44444,'BCA Unit Lembang','Jl Lembang Dingin',1214448),
(55555,'BCA Unit Cibiru','Jl Cibiru Panas',1215510);
insert into transaksi values
(10001,'2015-01-09','Rp. 1500.000','Rp. 100.000','Rp. 1400.000'),
(20002,'2015-01-25','Rp. 7000.000','Rp. 2500.000','Rp. 4500.000'),
(30003,'2015-02-06','Rp. 8500.000','Rp. 3500.000','Rp. 5000.000'),
(40004,'2015-03-15','Rp. 6500.000','Rp. 1500.000','Rp. 5000.000'),
(50005,'2015-03-19','Rp. 9500.000','Rp. 2500.000','Rp. 7000.000');
--11. Tampilkan data-data pada setiap tabel yang ada di dalam database!
select *from nasabah;
select *from rekening;
select *from cabang;
select *from transaksi;
--12. Tampilkan nama_nasabah,alamat_nasabah,kontak_nasabah dari tabel nasabah!
select nama_nasabah,alamat_nasabah,kontak_nasabah FROM nasabah;
--13. Tampilkan nama_nasabah, nama_cabang,saldo
select nasabah.nama_nasabah, cabang.nama_cabang, transaksi.saldo
from nasabah, cabang, transaksi
where nasabah.no_rek=transaksi.no_rek;
--14. Tampilkan nama_nasabah,nama_bank dan saldo yang melakukan transaksi sebelum bulan februari 2015
select nasabah.nama_nasabah, rekening.nama_bank, transaksi.saldo
from nasabah, rekening, transaksi
where nasabah.no_rek=transaksi.no_rek and rekening.no_rek=transaksi.no_rek and tgl_transaksi<'2015-02-01';
--15. Tampilkan nama_nasabah, alamat_nasabah, no_rek, dan debet yang melakukan transaksi pada bulan januari hingga maret 2015 dengan urutan transaksi dari yang paling lama!
select nasabah.nama_nasabah, nasabah.alamat_nasabah, rekening.no_rek, rekening.nama_bank, transaksi.debet, transaksi.tgl_transaksi
from nasabah,rekening, transaksi
where nasabah.no_rek=transaksi.no_rek and rekening.no_rek=transaksi.no_rek and tgl_transaksi between '2015-01-01' and '2015-03-30';
--16. Tampilkan nama_nasabah, alamat_nasabah, nama_cabang, dan alamat_cabang yang rekeningnya memiliki no_rek berakhiran 3
select nasabah.nama_nasabah, nasabah.alamat_nasabah, cabang.nama_cabang, cabang.alamat_cabang, rekening.no_rek
from nasabah, rekening, cabang, transaksi
where nasabah.no_rek=transaksi.no_rek and rekening.no_rek=transaksi.no_rek and rekening.no_rek LIKE '%3';
--17. Tampilkan rata-rata saldo dengan dua angka bilangan desimal!
select round(avg(saldo),2) rata_rata from transaksi;
--18. Tampilkan jumlah transaksi!
select count(no_rek)from transaksi;
--19. Tampilkan debet terbanyak!
select max(debet) from transaksi;
--20. Tampilkan kredit terkecil!
select min(kredit) from transaksi;
--21. Tampilkan jumlah saldo seluruhnyal!
select sum(saldo) from transaksi;
--22. Tampilkan no_rek(tran), nama_nasabah, nama_cabang,debet,kredit,saldo dan tanggal transaksi lalu kelompokan berdasarkan no_rek dan nama nasabah.
SELECT transaksi.no_rek, nasabah.nama_nasabah, cabang.nama_cabang, transaksi.debet, transaksi.kredit, transaksi.saldo, transaksi.tgl_transaksi
from nasabah, transaksi, cabang
where nasabah.no_rek=transaksi.no_rek GROUP BY no_rek, nama_nasabah;
--23. Tampilkan nama_cabang, nama nasabah, tanggal tansaksi lalu urutkan dari tanggal yang paling lama.
select nasabah.no_rek, cabang.id_cabang, cabang.nama_cabang, nasabah.nama_nasabah, transaksi.tgl_transaksi
from nasabah, transaksi, cabang
where nasabah.no_rek=transaksi.no_rek order by tgl_transaksi asc;
--24. Tampilkan no_Rek, tanggal transaksi, nama nasabah, debet, dan saldo lalu urutkan dari saldo terbesar.
select rekening.no_Rek, transaksi.tgl_transaksi, nasabah.nama_nasabah, transaksi.debet, transaksi.saldo
from nasabah, transaksi, rekening
where nasabah.no_rek=transaksi.no_rek and rekening.no_rek=transaksi.no_rek order by saldo desc;
--25. Buat view dari tabel hasil soal nomor sembilan dengan nama view v_reNasabah
create view v_reNasabah as select rekening.no_Rek, transaksi.tgl_transaksi, nasabah.nama_nasabah, transaksi.debet, transaksi.saldo
from nasabah, transaksi, rekening
where nasabah.no_rek=transaksi.no_rek and rekening.no_rek=transaksi.no_rek
order by saldo desc;
--26. Tampilkan isi view v_reNasabah.
select * from v_reNasabah;
--27. Buat view dengan nama v_dttransaksi yang berisi nama_nasabah, nama cabang, saldo dan debet.
create view v_dtTransaksi as select a.nama_nasabah, b.nama_cabang, c.saldo, c.debet
from nasabah as a, cabang as b, transaksi as c
where a.no_rek=c.no_rek;
--28. Tampilkan view v_dtRTransaksi lalu kelompokan berdasarkan nama nasabah dan urukan berdasarkan saldo terbanyak.
select * from v_dtTransaksi
group by nama_nasabah
order by saldo desc;
--29. Tampilkan isi v_dtTransaksi!
select * from v_dtTransaksi;
--30. hapus view v_reNasabah!
drop view v_reNasabah;
create database perbankan;
use perbankan;
--2. Buatlah DDL untuk entitas nasabah dengan atribut no_rek, nama_nasabah, alamat_nasabah, no_kontak!
create table pelanggan(
no_rek int(5) primary key,
nama_nasabah varchar(15) not null,
alamat_nasabah varchar(25) not null,
no_kontak int(15) not null
);
--Untuk Menampilkan
desc pelanggan;
--3. Buatlah DDL untuk entitas rekening dengan atribut no_rek, nama_bank!
create table rekening(
no_rek int(5) primary key,
nama_bank varchar(10) not null
);
--Untuk Menampilkan
desc rekening;
--4. Buatlah DDL untuk entitas cabang dengan atribut id_cabang, nama_cabang, alamat_cabang, kontak_cabang!
create table cabang(
id_cabang int(5) primary key,
nama_cabang varchar(25) not null,
alamat_cabang varchar(25) not null,
kontak_cabang varchar(15) not null
);
--Untuk Menampilkan
desc cabang;
--5. Buatlah DDL untuk relasi transaksi dengan atribut no_rek, tgl_transaksi, debet, kredit, saldo!
create table transaksi(
no_rek int(5) primary key,
tgl_transaksi date not null,
debet varchar(15) not null,
kredit varchar(15) not null,
saldo varchar(20) not null,
foreign key(no_rek) references pelanggan(no_rek),
foreign key(no_rek) references rekening(no_rek)
);
--Untuk Menampilkan
desc transaksi;
--6. Buatlah DDL untuk mengubah nama tabel pelanggan menjadi nasabah!
alter table pelanggan rename to nasabah;
--Untuk Menampilkan
desc nasabah;
--7. Buatlah DDL untuk mengubah nama kolom No_kontak pada tabel nasabah menjadi kontak_nasabah
alter table nasabah change column no_kontak kontak_nasabah int(15);
--Untuk Menampilkan
desc nasabah;
--8. Buatlah DDL untuk menambah kolom pekerjaan pada tabel nasabah!
alter table nasabah add pekerjaan varchar(15) after alamat_nasabah;
--Untuk Menampilkan
desc nasabah;
--9. Buatlah DDL untuk mengubah tipe data kontak_nasabah pada tabel nasabah menjadi varchar!
alter table nasabah modify column kontak_nasabah varchar(15);
--Untuk Menampilkan
desc nasabah;
--10. Masukkan data-data ke dalam masing-masing tabel !
insert into nasabah values
(10001,'Sri Mulya','Jl Mawar Merah','Mahasiswa','089736616051'),
(20002,'Erwin','Jl Melati','Polisi','081373332031'),
(30003,'Amelia','Jl Kamboja','Wirausahawan','081267552031'),
(40004,'Lusi Ana','Jl Raya','Bidan','089267322231'),
(50005,'Irsyad','Jl Kenanga','Dokter','087867152111');
insert into rekening values
(10001,'BCA'),
(20002,'BCA'),
(30003,'BCA'),
(40004,'BCA'),
(50005,'BCA');
insert into cabang values
(11111,'BCA Unit Setiabudi','Jl Setiabudi',1211112),
(22222,'BCA Unit Sukajadi','Jl Sukajadi',1212224),
(33333,'BCA Unit Dago Atas','Jl Dago Raya',1213336),
(44444,'BCA Unit Lembang','Jl Lembang Dingin',1214448),
(55555,'BCA Unit Cibiru','Jl Cibiru Panas',1215510);
insert into transaksi values
(10001,'2015-01-09','Rp. 1500.000','Rp. 100.000','Rp. 1400.000'),
(20002,'2015-01-25','Rp. 7000.000','Rp. 2500.000','Rp. 4500.000'),
(30003,'2015-02-06','Rp. 8500.000','Rp. 3500.000','Rp. 5000.000'),
(40004,'2015-03-15','Rp. 6500.000','Rp. 1500.000','Rp. 5000.000'),
(50005,'2015-03-19','Rp. 9500.000','Rp. 2500.000','Rp. 7000.000');
--11. Tampilkan data-data pada setiap tabel yang ada di dalam database!
select *from nasabah;
select *from rekening;
select *from cabang;
select *from transaksi;
--12. Tampilkan nama_nasabah,alamat_nasabah,kontak_nasabah dari tabel nasabah!
select nama_nasabah,alamat_nasabah,kontak_nasabah FROM nasabah;
--13. Tampilkan nama_nasabah, nama_cabang,saldo
select nasabah.nama_nasabah, cabang.nama_cabang, transaksi.saldo
from nasabah, cabang, transaksi
where nasabah.no_rek=transaksi.no_rek;
--14. Tampilkan nama_nasabah,nama_bank dan saldo yang melakukan transaksi sebelum bulan februari 2015
select nasabah.nama_nasabah, rekening.nama_bank, transaksi.saldo
from nasabah, rekening, transaksi
where nasabah.no_rek=transaksi.no_rek and rekening.no_rek=transaksi.no_rek and tgl_transaksi<'2015-02-01';
--15. Tampilkan nama_nasabah, alamat_nasabah, no_rek, dan debet yang melakukan transaksi pada bulan januari hingga maret 2015 dengan urutan transaksi dari yang paling lama!
select nasabah.nama_nasabah, nasabah.alamat_nasabah, rekening.no_rek, rekening.nama_bank, transaksi.debet, transaksi.tgl_transaksi
from nasabah,rekening, transaksi
where nasabah.no_rek=transaksi.no_rek and rekening.no_rek=transaksi.no_rek and tgl_transaksi between '2015-01-01' and '2015-03-30';
--16. Tampilkan nama_nasabah, alamat_nasabah, nama_cabang, dan alamat_cabang yang rekeningnya memiliki no_rek berakhiran 3
select nasabah.nama_nasabah, nasabah.alamat_nasabah, cabang.nama_cabang, cabang.alamat_cabang, rekening.no_rek
from nasabah, rekening, cabang, transaksi
where nasabah.no_rek=transaksi.no_rek and rekening.no_rek=transaksi.no_rek and rekening.no_rek LIKE '%3';
--17. Tampilkan rata-rata saldo dengan dua angka bilangan desimal!
select round(avg(saldo),2) rata_rata from transaksi;
--18. Tampilkan jumlah transaksi!
select count(no_rek)from transaksi;
--19. Tampilkan debet terbanyak!
select max(debet) from transaksi;
--20. Tampilkan kredit terkecil!
select min(kredit) from transaksi;
--21. Tampilkan jumlah saldo seluruhnyal!
select sum(saldo) from transaksi;
--22. Tampilkan no_rek(tran), nama_nasabah, nama_cabang,debet,kredit,saldo dan tanggal transaksi lalu kelompokan berdasarkan no_rek dan nama nasabah.
SELECT transaksi.no_rek, nasabah.nama_nasabah, cabang.nama_cabang, transaksi.debet, transaksi.kredit, transaksi.saldo, transaksi.tgl_transaksi
from nasabah, transaksi, cabang
where nasabah.no_rek=transaksi.no_rek GROUP BY no_rek, nama_nasabah;
--23. Tampilkan nama_cabang, nama nasabah, tanggal tansaksi lalu urutkan dari tanggal yang paling lama.
select nasabah.no_rek, cabang.id_cabang, cabang.nama_cabang, nasabah.nama_nasabah, transaksi.tgl_transaksi
from nasabah, transaksi, cabang
where nasabah.no_rek=transaksi.no_rek order by tgl_transaksi asc;
--24. Tampilkan no_Rek, tanggal transaksi, nama nasabah, debet, dan saldo lalu urutkan dari saldo terbesar.
select rekening.no_Rek, transaksi.tgl_transaksi, nasabah.nama_nasabah, transaksi.debet, transaksi.saldo
from nasabah, transaksi, rekening
where nasabah.no_rek=transaksi.no_rek and rekening.no_rek=transaksi.no_rek order by saldo desc;
--25. Buat view dari tabel hasil soal nomor sembilan dengan nama view v_reNasabah
create view v_reNasabah as select rekening.no_Rek, transaksi.tgl_transaksi, nasabah.nama_nasabah, transaksi.debet, transaksi.saldo
from nasabah, transaksi, rekening
where nasabah.no_rek=transaksi.no_rek and rekening.no_rek=transaksi.no_rek
order by saldo desc;
--26. Tampilkan isi view v_reNasabah.
select * from v_reNasabah;
--27. Buat view dengan nama v_dttransaksi yang berisi nama_nasabah, nama cabang, saldo dan debet.
create view v_dtTransaksi as select a.nama_nasabah, b.nama_cabang, c.saldo, c.debet
from nasabah as a, cabang as b, transaksi as c
where a.no_rek=c.no_rek;
--28. Tampilkan view v_dtRTransaksi lalu kelompokan berdasarkan nama nasabah dan urukan berdasarkan saldo terbanyak.
select * from v_dtTransaksi
group by nama_nasabah
order by saldo desc;
--29. Tampilkan isi v_dtTransaksi!
select * from v_dtTransaksi;
--30. hapus view v_reNasabah!
drop view v_reNasabah;
" TERIMA KASIH "
Mengnal DDL (Data Definition Language)
BalasHapus