Apa itu Basis Data?


9e765-datapicSebelumnya ,ketika kita mau belajar Basis Data, kita harus tau dulu, Apa itu  Database?  Database adalah suatu susunan/kumpulan data operasional lengkap dari suatu organisasi/perusahaan yang diorganisir/dikelola dan simpan secara terintegrasi dengan menggunakan metode tertentu dengan  menggunakan komputer sehingga mampu menyediakan informasi yang diperlukan pemakainya.

Data Definition Language (DDL)

     Untuk menggunakan keperluan seperti mengubah, mendifinisikan,serta menghapus sesuatu yang berada dalam basis data beserta dengan objek-objek (table, vies, user, index, dsb) yang digunakan, kita memerlukan  suatu bahasa yang mampu mengenali keperluan kita tadi didalam pembuatan sebuah aplikasi basis data. Bahasa ini dikenal sebagai Data Difinition Language.

Pada dasarnya DDL ini memiliki tiga perintah yang umum digunakan dan seringkali digunakan pada

MYSQL, seperti 

  1. Create : digunakan untuk membuat objek yang baru
  2. Alter : digunakan untuk mengubah objek yang sudah ada
  3. Drop : digunakan untuk menghapus objek yang sudah ada

Sehingga kita dapat mengkombinasikan dengan memilih salahsatu dari ketiga perintah

yang umum diatas dengan perintah yang umum lainnya seperti tabel berikut ini :

Create

l CREATE DATABASE

l CREATE FUNCTION

l CREATE INDEX

l CREATE PROCEDURE

l CREATE TABLE

l CREATE TRIGGER

l CREATE VIEW

Alter/Rename

  • ALTER DATABASE
  • ALTER FUNCTION
  • ALTER PROCEDURE
  • ALTER TABLE
  • ALTER VIEW
  • RENAME TABLE

Drop

  • DROP DATABASE
  • DROP FUNCTION
  • DROP INDEX
  • DROP PROCEDURE
  • DROP TABLE
  • DROP TRIGGER
  • DROP VIEW

Adapun tipe data yang dapat digunakan adalah sebagai berikut:

Tipe Data Bilangan

Tinyint :

Digunakan untuk menyimpan data bilangan bulat positif dan negatif. Jangkauan :

 -128 s.d.   127.Ukuran : 1 byte (8 bit).

Smallint :

Digunakan untuk menyimpan data bilangan bulat positif dan negatif.Jangkauan :

-8.388.608 s.d. 8.388.607. Ukuran : 3 byte (24 bit).

INT 

Digunakan untuk menyimpan data bilangan bulat positif dan negatif. Jangkauan :

-2.147.483.648 s.d. 2.147.483.647. Ukuran : 4 byte (32 bit).

BIGINT

Digunakan untuk menyimpan data bilangan bulat positif dan negatif. Jangkauan :

± 9,22 x 1018. Ukuran : 8 byte (64 bit).

FLOAT

Digunakan untuk menyimpan data bilangan pecahan positif dan negatif presisi

 tunggal. Jangkauan : -3.402823466E+38 s.d. -1.175494351E 38, 0,

dan 1.175494351E-38 s.d. 3.402823466E+38. Ukuran : 4 byte (32 bit).

DOUBLE

Digunakan untuk menyimpan data bilangan pecahan positif dan negatif presisi ganda.

REAL

Merupakan sinonim dari DOUBLE

DECIMAL

Digunakan untuk menyimpan data bilangan pecahan positif dan negatif. Jangkauan :

 -1.79…E+308 s.d. -2.22…E-308, 0, dan 2.22…E-308 s.d. 1.79…E+308.

Ukuran : 8 byte (64 bit).

Tipe Data Jam, Tanggal, dan Hari

DATE

Digunakan untuk menyimpan data tanggal. Jangkauan : 1000-01-01 s.d. 9999-12-31.

 (YYYY-MMDD) Ukuran : 3 byte.

TIME

Digunakan untuk menyimpan data waktu. Jangkauan : -838:59:59 s/d +838:59:59

(HH:MM:SS) Ukuran : 3 byte.

DATETIME

Digunakan untuk menyimpan data tanggal dan waktu. Jangkauan :

 ‘1000-01-01 00:00:00’ s.d. ‘9999- 12-31 23:59:59’. Ukuran : 8 byte.

TIMESTAMP

Kombinasi tanggal dan jam saat tabel/data diakses dengan jangkauan ‘1970-01-01 00:00:00’ s.d. ‘2037 ’.

YEAR 

Digunakan untuk menyimpan data tahun dari tanggal. Jangkauan : 1900 s.d. 2155. Ukuran : 1 byte.

Tipe Data Lainnya:

CHAR

Digunakan untuk menyimpan data string ukuran tetap. Jangkauan : 0 s.d. 255 karakter

VARCHAR

Digunakan untuk menyimpan data string ukuran dinamis. Jangkauan : 0 s.d. 255 karakter

 (versi 4.1), 0 s.d. 65.535 (versi 5.0.3).

TINYBLOB, TINYTEXT

L+1 byte, dengan L<28. Tipe data TEXT atau BLOB dengan panjang maksimum 255 karakter.

MEDIUMLOB, MEDIUMTEXT

L+2 byte, dengan L<224. Tipe TEXT atau BLOB dengan panjang maksimum 1677215 karakter.

LONGLOB, LONGTEXT

L+2 byte, dengan L<32. Tipe TEXT atau BLOB dengan panjang maksimum 4294967295 karakter.

ENUM 

Digunakan untuk enumerasi (kumpulan data).

SET 

Digunakan untuk combination (himpunan data). Jangkauan : sampai dengan 255 string anggota.

KASUS DATA DEFINITION LANGUAGE (DDL)

  1. CREATE
  2. Pembuatan Database

Nama Database adalah yang dapat mewakili suatu kejadian dapat berupa nama organisasi atau

 perusahaan.

Sintaks : CREATE DATABASE nama_database

Contoh : Buat database dengan nama KAMPUS

CREATE DATABASE KAMPUS

  1. Pembuatan Tabel

Sintaks : CREATE TABLE nama_table ( nama_kolom1 tipe_data_kolom1, nama_kolom2,  tipe_data_kolom2,…)

Contoh :

Buat struktur tabel dengan nama tabel MHS dengan data NIM char(8),

NAMA char(25), ALAMAT char(30)

CREATE TABLE MHS (NIM char(8) not null,

NAMA char(25) notnull, ALAMAT char(30) notnull)

  1. Pembuatan Index

Sintaks : CREATE [UNIQUE] INDEX nama_index ON nama_table (nama_kolom) ;

Contoh :

Buat index data mahasiswa berdasarkan NIM dengan nama MHSIDX

Dimana NIM tidak boleh sama

CREATE UNIQUE INDEX MHSIDX ON MHS(NIM)

  1. Pembuatan View

Sintaks : CREATE VIEW nama_view [ (nama_kolom1,….) ] AS SELECT statement [WITH  CHECK OPTION] ;

Contoh :

Buat view dengan nama MHSVIEW yang berisi semua data mahasiswa

CREATE VIEW MHSVIEW AS SELECT * FROM MHS

  1. DROP (MENGHAPUS)
  2. Menghapus Database Sintaks : DROP DATABASE nama_db ;
  3. Menghapus Tabel Sintaks : DROP TABLE nama_table ;
  4. Menghapus Index Sintaks : DROP INDEX nama_index ;
  5. Menhapus View Sintaks : DROP VIEW nama_view ;

Contoh :

DROP DATABASE KAMPUS;

DROP TABLE MHS;

DROP INDEX MHSIDX;

DROP VIEW MHSVIEW;

  1. ALTER TABLE (MERUBAH STRUKTUR TABEL)

Sintaks : ALTER TABLE nama_tabel

ADD nama_kolom jenis_kolom

[FIRST | AFTER nama_kolom]

CHANGE [COLUMN] oldnama newnama

MODIFY nama_kolom jenis kolom, …

DROP nama_kolom

RENAME newnama_tabel

Contoh :

  1. Tambahkan kolom JKEL dengan panjang 1 char pada tabel MHS

ALTER TABLE MHS ADD JKEL char(1);

  1. Ubah panjang kolom JKEL menjadi 15 char

ALTER TABLE MHS MODIFY COLUMN JKEL char(15);

  1. Hapus kolom JKEL dari data table MHS

ALTER TABLE MHS DROP JKEL;

ENTITY-RELATIONSHIP DIAGRAM (ERD)

  1. ENTITAS

Entitas yaitu suatu obyek yang dapat dibedakan dengan objek lainnya

Contoh :

Database Nilai entitas: mahasiswa, Matapelajaran

Database Administrasi Pasien entitas:  pasien, dokter, obat.

  1. ATRIBUT

Atribute/field yaitu setiap entitas mempunyai atribut atau suatu sebutan untuk

mewakili suatu entitas.

Contoh :

Entity siswa field = Nim, nama_siswa,alamat,dll

Entity nasabah field=Kd_nasabah,nama_nasabah,dll

  1. Relasi

Relasi dikenal sebagai hubungan yang terjadi antara satu atau lebih entitas. Relasi pada ER-D  direpresentasikan dalam bentuk bangun datar belah ketupat.

contoh :

mengontrak, transaksi, dan mengepalai.

  1. 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.

Picture1

1 supir hanya bisa mengemudikan 1taksi, dan

1 taksi hanya bisa dikemudikan oleh 1 supir.

b.Picture2

Gambar di atas menunujukan relasi dengan kardinalitas 1-M, karena:

1 Dosen bisa membimbing banyak Kelas, dan

1 Kelas hanya dibimbing oleh 1 Dosen

 c.Picture3

Gambar di atas menunujukan relasi dengan kardinalitas M-M, karena:
1 Mahasiswa bisa belajar banyak Mata Kuliah, dan
1 Mata Kuliah bisa dipelajari oleh banyak Mahasiswa.
Relasi M-M akan membentuk 3 tabel:
Tabel Mahasiswa (nim, nama, alamat)
Tabel Mtkuliah (kdmk, nmmk, sks)
Tabel Nilai (nim, kdmk, nilai) Ú menggunakan super key/composite

PENGENALAN DML

Data Manipulation Language (DML) adalah bahasa/perintah SQL yang berfungsi untuk  memanipulasi data yang ada di dalam basis data(database),

Beberapa manfaat atau kegunaan dari DML

diantaranya adalah sebagai berikut :

  1. Pengambilan informasi yang disimpan dalam basis data (Select)
  2. Penyisipan informasi baru ke basis data (Insert)
  3. Penghapusan informasi dari basis data (Delete)
  4. Modifikasi informasi yang disimpan dalam basis data (Update)
  1. Insert

Sintaks : INSERT INTO Nama_tabel [(nama_kolom1,…)]

Contoh :

Masukan data mhs dengan NIM 1407286 Handini beralamat di Palembang INSERT INTO

MHS VALUES(“1407286”,”Handini”,“Palembang”);

  1. Update

Sintaks : UPDATE nama_tabel

SET nama_kolom = value_1

WHERE kondisi ;

Contoh :

Ubah alamat menjadi “Bandung” untuk mahasiswa yang memiliki NIM “1407286”

UPDATE MHS

SET ALAMAT=”Bandung”

WHERE NIM=” 1407286”;

  1. Delete

Sintaks : DELETE FROM nama_table

WHERE kondisi

Contoh :

Hapus data mahasiswa yang mempunyai NIM “1407281”

DELETE FROM MHS

WHERE NIM=” 1407281”

  1. Select

Sintaks : SELECT [DISTINCT | ALL] nama_kolom

FROM nama_tabel

[ WHERE condition ]

[ GROUP BY column_list ]

[HAVING condition ]

[ ORDER BY column_list [ASC | DESC]]

Contoh :

  1. Tampilkan semua data mahasiswa

SELECT NIM,NAMA,ALAMAT FROM MHS;

Atau

SELECT * FROM MHS;

AGGREGASI DAN GROUPING

Apa itu 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.

MENGGUNAKAN FUNGSI AGGREGATE :

  1. COUNT

Digunakan untuk menghitung jumlah menghitung jumlah record mahasiswa dari tabel     MAHASISWA

SELECT COUNT(*) FROM MAHASISWA

  1. SUM

digunakan untuk menghitung total dari kolom yang mempunyai tipe data numerik.

SELECT SUM(SKS) AS ‘TOTAL SKS’ FROM MATAKULIAH

  1. AVG

Digunakan untuk menghitung rata-rata dari data-data dalam sebuah kolom.

SELECT AVG(FINAL) AS ‘FINAL’ FROM Nilai

  1. MIN

Digunakan untuk menghitung nilai minimal dalam sebuah kolom.

SELECT MIN(FINAL) FROM Nilai

  1. MAX

Diguankan untuk menghitung nilai maksimum dalam sebuah kolom

SELECT MAX(MID) FROM Nilai.

SUBQUERY

      Adalah subselect yang dapat digunakan di klausa WHERE dan HAVING dipernyataan  select luar untuk menghasilkan tabel akhir. Aturan-aturan untuk membuat subquery, yaitu :

  1. Klausa Order By tidak boleh digunakan di subquery, Order By hanya dapat digunakan

di pernyataan Select luar.

  1. Klausa subquery Select harus berisi satu nama kolom tunggal atau ekspresi kecuali  untuk subquery-subquery menggunakan kata kunci EXIST
  2. Secara default nama kolom di subquery mengacu ke nama tabel di klausa FROM dari

subquery tersebut.

4 Saat subquery adalah salah satu dua operan dilibatkan di pembandingan, subquery  harus

muncul disisi kanan pembandingan

Penggunanaan ANY dan ALL

Jika subquery diawali kata kunci ALL, syarat hanya akan bernilai TRUE jika dipenuhi

semua nilai yang dihasilkan subquery itu.

Jika subquery diawali kata kunci ANY, syaratnya akan bernilai TRUE jika dipenuhi

sedikitnya satu nilai yang dihasilkan subquery tersebut.