Jumat, 03 April 2015

BASIS DATA MENGENAL “ MySQL, Data Definition Language (DDL), Data Manipulation Language (DML), Diagram Entity Relationship ( Diagram E-R) , Aggregasi-Grouping”



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.


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


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.

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.





"MEMBUAT DATABASE PERBANKAN"
 






 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; 





" TERIMA KASIH "
 
Lokasi: United States

1 komentar: