49

Databases

Embed Size (px)

DESCRIPTION

Databases. Pertemuan 3. TIB13 – Pemrograman Java 2 - 3. Materi. Database Basics SQL Scripts untuk DDL dan DML Operasi CRUD Operasi antar tabel. Tujuan Instruksional Khusus. Mahasiswa dapat merancang database sederhana sesuai kasus masing-masing kelompok. - PowerPoint PPT Presentation

Citation preview

Page 1: Databases
Page 2: Databases

MateriDatabase BasicsSQL Scripts untuk DDL dan DMLOperasi CRUD Operasi antar tabel

Page 3: Databases

Tujuan Instruksional KhususMahasiswa dapat merancang database

sederhana sesuai kasus masing-masing kelompok

Page 4: Databases

Database BasicsDatabase adalah suatu kumpulan data yang

saling berhubungan yang diorganisasi sedemikian rupa sehingga kelak dapat dimanfaatkan dengan cepat dan mudah dan disimpan  dalam media penyimpanan tertentu. 

Database dapat dianggap sebagai suatu tempat untuk sekumpulan berkas data terkomputerisasi .

Maksud dari database adalah untuk menyimpan semua data yang diinginkan dalam satu lokasi, sehingga pencarian data menjadi lebih mudah dan redundant dapat tereliminasi

Page 5: Databases

Database BasicsAkses Data mencakup pemerolehan data maupun

pemanipulasian seperti menambah , mengubah , dan menghapus data.

Dalam implementasinya, data berbentuk tabel. Tabel merupakan obyek database yang memuat record (row/baris) dimana masing-masing record tersebut merupakan gabungan dari beberapa sifat data yang identik.

Nilai-nilai  yang terkandung  dalam sifat data tersebut  disebut field.

Page 6: Databases

Database Basics

Record

Field/Column

Page 7: Databases

SQL Scripts untuk DDL dan DMLStructured Query Language (SQL)

merupakan standar dalam pengaksesan database relasional.

Secara umum, SQL terbagi menjadi dua kategori pernyataan yaitu : 1. DDL (Data Definition Language) 2. DML (Data Manipulation Language).

Page 8: Databases

Data Definition LanguageDDL adalah perintah-perintah yang biasa

digunakan untuk mendefinisikan skema ke DBMS. Skema adalah deskripsi lengkap tentang struktur

field, record dan hubungan data pada basis data. Tugas utama skema adalah menjabarkan struktur basis data kepada DBMS

Secara detail beberapa hal yang perlu dijabarkan pada DBMS adalah : nama database, nama record dan field-field, nama field kunci, nama indeks dan field yang menjadi indeks

Page 9: Databases

DDL (lanjutan)Indeks merupakan suatu mekanisme yang lazim

digunakan pada basis data, yang memungkinkan pengambilan data dapat dilakukan dengan cepat.

DDL juga dipakai untuk mendefinisikan subskema. Subskema adalah view dari basis data.

Subskema merupakan himpunan bagian dari skema, dengan kata lain, subskema bisa mencakup sebagian atau seluruh skema.

Sebuah basis data hanya bisa mempunyai sebuah skema, tetapi bisa memiliki banyak subskema, tergantung oleh jumlah pengguna basis data.

Page 10: Databases

Data Manipulation LanguageDML adalah perintah-perintah yang

digunakan untuk mengubah, memanipulasi data pada basis data.

Tindakan seperti menghapus, mengubah dan mengambil data menjadi bagian dari DML.

Secara khusus bagian DML ada yang disebut dengan DQL atau Query berarti pertanyaan atau permintaan.

Page 11: Databases

Contoh Penggunaan DDL, DML dan DQLDDL – Menciptakan Database bernama dbPenggajianCREATE DATABASE dbPenggajian

DML – Memilih DatabaseUse dbPenggajian

DDL – Menciptakan tabel tLoginCREATE TABLE tLogin ( UserID varchar(10) NOT NULL, Password varchar(32) NOT NULL, PRIMARY KEY (UserID)) ENGINE=MyISAM;

Page 12: Databases

Contoh Penggunaan DDL, DML dan DQL (lanjutan)

DML – Memasukan data ke tabel tLoginINSERT INTO tlogin (`UserID`, `Password`) VALUES(‘moly', '1234'), (‘pegasus', ‘1235'),(‘mercury', ‘1236');

DQL – Menampilkan seluruh data dari tabel tLoginSELECT * FROM tLogin;

DDL – Menghapus tabel tLoginDROP tLogin;

Page 13: Databases

Operasi CRUDCRUD merupakan singkatan dari Create

Read Update Delete. Operasi CRUD merupakan operasi yang total

membutuhkan sebuah database.

Page 14: Databases

Perintah Dasar MySQLMengakses MySQL pertama kali

Untuk menjalankan MySQL pertama kali cukup dengan mengetikkan perintah MySQL pada Command Prompt sebagai berikut :C:\>mysql\bin>mysql –u root –h localhost

atau jika menggunakan XAMPPC:\>XAMPP\mysql\bin>mysql –u root –h localhost

Page 15: Databases

Perintah Dasar MySQL (lanjutan)Lokasi MySQL berada pada direktori C:\mysql\bin.

Parameter mysql digunakan agar System Prompt berpindah ke MySQL Prompt, dan parameter -u (User) menunjuk kepada nama user yang akan login ke MySQL, parameter -h (Host) adalah menunjuk kepada mesin server yang menjalankan MySQL. Biasanya juga ditambahkan parameter -p (Password) adalah menunjuk kepada password dari user yang akan login, jika menggunakan password.

Page 16: Databases

Perintah Dasar MySQL (lanjutan)Setelah memasukan Nama User, dan Host tekan enter

sehingga hasilnya sebagai berikut :

Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 27 Server version: 5.1.30-community MySQL Community Server (GPLType ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql>

Page 17: Databases

Perintah Dasar MySQL (lanjutan)MySQL menampilkan selamat datang dilengkapi dengan

nomor urut koneksi ke server MySQL (Connection id is 27) dan versi MySQL yang digunakan (version : 5.1.30-community).

Sebagai tanda bahwa MySQL server dalam keadaan siap menjalankan tugasnya akan tampil MySQL Prompt yang ditandai dengan mysql>

Page 18: Databases

Perintah Dasar MySQL (lanjutan)Menampilkan Database menggunakan perintah SHOW

Databases;

Contoh :mysql> SHOW DATABASES;+-----------------------+| Database |+-----------------------+| information_schema || mysql || test |+-----------------------+3 rows in set (0.00 sec)

Page 19: Databases

Perintah Dasar MySQL (lanjutan)Perintah Show Databases akan menghasilkan atau

menampilkan daftar database yang terdapat pada RDBMS MySQL

Baris ‘3 rows in set (0.00 sec)’ menampilkan informasi tentang jumlah baris atau jumlah database yang dihasilkan oleh perintah MySQL (Show Databases), yang dilengkapi dengan jumlah waktu dalam satuan detik yang digunakan untuk memproses perintah MySQL tersebut.

Page 20: Databases

Perintah Dasar MySQL (lanjutan)Perintah untuk membuat database baru

adalah : Create Database Nama_Database;  

mysql> CREATE DATABASE dbMhs; Query OK, 1 row affected (0.02 sec)

Page 21: Databases

Perintah Dasar MySQL (lanjutan)Memilih atau menentukan database

Untuk menentukan atau memilih database yang akan digunakan (contoh dbMhs) adalah dengan cara memberi perintah USE/CONNECT Nama_Database;

mysql> USE dbMhs;Database changed

Atau :

mysql> CONNECT dbMhs;Connection id: 3Current database: dbMhs

Page 22: Databases

Perintah Dasar MySQL (lanjutan)Perintah untuk membuat tabel baru adalah

Create Table Nama_Table;

mysql> CREATE TABLE tMhs ( nim varChar(12) Not Null, nama varChar(20) Not Null);Query OK, 0 rows affected (0.09 sec)

Page 23: Databases

Perintah Dasar MySQL (lanjutan)Pada tabel tMhs tersebut dibuat 2 field yang masing-

masing field diikuti oleh beberapa atribut, berikut penjelasan masing masing field :1. nim adalah field yang menampung data-data

nim mahasiswa dengan tipe data varchar dan lebar data sebanyak 12 digit maksimal.

2. nama adalah field yang menampung data-data nama mahasiswa dengan tipe data varchar dan lebar data sebanyak 20 digit.

Page 24: Databases

Perintah Dasar MySQL (lanjutan)Perintah untuk menampilkan struktur tabel ada dua

macam yaitu :mysql> SHOW COLUMNS FROM tMhs; atau mysql> DESCRIBE tMhs;

+------------+-------------+------+-----+---------+----------+

| Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+----------+

| nim | varchar(12) | | | | |

| nama | varchar(20) | | | | |

+------------+-------------+------+-----+---------+----------+

2 rows in set (0.00 sec)

Page 25: Databases

Perintah Dasar MySQL (lanjutan)Perintah mengisi data

Pada MySQL terdapat beberapa cara mengisi data ke dalam table antara lain sebagai berikut :

INSERT INTO Nama_Tabel Set Kolom1 = ‘Data_Kolom1’, Kolom2 = ‘Data_Kolom2’;

mysql> INSERT INTO tMhs Set nim = ‘2005-12-001’,

nama = ‘Prasti’;Query OK, 1 row affected (0.00 sec)

Page 26: Databases

Perintah Dasar MySQL (lanjutan)Perintah mengisi data

Berikut adalah cara lain dalam memasukan data ke dalam suatu table :

mysql> INSERT INTO tMhs VALUES(‘2002-12-003’,’Jeniffer’);

Query OK, 1 row affected (0.00 sec)

Page 27: Databases

Perintah Dasar MySQL (lanjutan)Menampilkan Data

Data yang kita masukan ke dalam tabel dapat di tampilkan menggunakan perintah sebagai berikut :

SELECT * FROM Nama_Tabel;

mysql> SELECT * FROM tMhs; +---------------+---------------+ | nim | nama | +---------------+---------------+ | 2002-12-001 | Prasti | | 2002-12-003 | Jeniffer | +---------------+---------------+ 2 row in set (0.02 sec)

Page 28: Databases

Perintah Dasar MySQL (lanjutan)Mengubah Struktur Tabel

Kadang-kadang dalam pembuatan suatu table ada field-field masih kurang sehingga perlu adanya penambahan satu atau lebih field dalam sebuah table. Untuk itu tidak perlu membuat table baru, karena MySQL telah menyedia-kan perintah untuk menambah atau menyisipkan field diantara field-field yang telah ada pada suatu table.

Page 29: Databases

Perintah Dasar MySQL (lanjutan)mysql> ALTER TABLE tMhs --> Add jurusan varChar(15) Not Null;

Query OK, 1 row affected (0.06 sec)Records: 1 Duplicates: 0 Warnings: 0

mysql> DESCRIBE tMhs;+------------+-------------+------+-----+---------+----------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+----------+

| nim | varchar(12) | | | | |

| nama | varchar(20) | | | | |

| jurusan | varchar(12) | | | | |

+------------+-------------+------+-----+---------+----------+

3 rows in set (0.02 sec)

Page 30: Databases

Perintah Dasar MySQL (lanjutan)Secara default setiap field yang baru ditambahkan akan

menempati posisi terakhir seperti pada contoh di atas. Jika Anda ingin menempatkan diantara field yang ada misalnya field harus berada pada urutan ke 3 maka tambahkan perintah AFTER kemudian nama field sebelumnya.

mysql> ALTER TABLE tMhs Add fakultas varChar(20) Not Null AFTER nim;Query OK, 1 row affected (0.06 sec)Records: 1 Duplicates: 0 Warnings: 0

mysql> DESCRIBE tMhs;

Page 31: Databases

Perintah Dasar MySQL (lanjutan)Sebaliknya jika field-field yang Anda buat ternyata

tidak berguna semuanya sehingga harus dihilangkan dari struktur table maka perintahnya adalah sebagai berikut :

mysql> ALTER TABLE tMhs DROP fakultas;Query OK, 1 row affected (0.05 sec)Records: 1 Duplicates: 0 Warnings: 0

mysql> DESCRIBE tMhs;

Page 32: Databases

Perintah Dasar MySQL (lanjutan)Mengubah Data

User bisa saja salah dalam menginputkan data ke dalam table, sehingga perlu adanya pengubahan data dalam field-field tertentu. Atau ada field baru ditambahkan ke dalam table sehingga datanya harus dimasukkan. Untuk keperluan ini MySQL telah menyediakan perintah sebagai berikut :

UPDATE Nama_Tabel SET Kolom = ‘Pengubahan_Data’WHERE kriteria;

Page 33: Databases

Perintah Dasar MySQL (lanjutan)Mengubah Data

Contoh :mysql> UPDATE tMhsSet nim = ‘2002-12-002’ WHERE nama = ‘Prasti’;

Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0

 Untuk melihat hasil pengubahan ketikan perintah berikut : 

mysql> Select * FROM tMhs;

Page 34: Databases

Perintah Dasar MySQL (lanjutan)Menampilkan data dengan kriteria tertentu dapat

dilakukan dengan menambahkan perintah WHERE.mysql> SELECT * FROM tMhs

WHERE nama = ’Prasti’;

Menampilkan data pada kolom tertentu. Kadang-kadang kita hanya membutuhkan data-data tertentu saja tanpa harus menampilkan semua isi data pada setiap kolom(field). Adapun perintahnya adalah Select Kolom1, Kolom2 From Nama_Tabel;

Page 35: Databases

Perintah Dasar MySQL (lanjutan)Adapun perintahnya adalah :Select Kolom1, Kolom2 From Nama_Tabel;

Contoh :

mysql> SELECT nim, nama FROM tMhs;+---------------+--------------+| nim | nama |+---------------+--------------+| 2002-12-002 | Prasti || 2002-12-003 | Jeniffer |+---------------+--------------+2 rows in set (0.00 sec)

Page 36: Databases

Perintah Dasar MySQL (lanjutan)Menampilkan data secara berurutan.

Bila kita ingin menampilkan data secara berurut cukup dengan menambahkan perintah ORDER BY sehinggga penulisan perintahnya adalah sebagai berikut :

SELECT * FROM Nama_Tabel ORDER BY Kolom_Yang_Akan_Diurut Jenis_Pengurutan

Page 37: Databases

Perintah Dasar MySQL (lanjutan)Jenis pengurutan ada dua yaitu Ascending (urut naik) dan

Descending (urut turun). Contoh di bawah ini menggunakan jenis pengurutan Ascending, perhatikan nama berurut naik (alphabet) sedangkan pada kolom nim menjadi tidak berurutan karena yang diurutkan adalah kolom nama.mysql> SELECT * FROM tMhs ORDER BY nama ASC;

+-------------+------------+| nim | nama |+-------------+------------+| 2002-12-003 | Jeniffer || 2002-12-002 | Prasti |+-------------+------------+2 rows in set (0.00 sec)

Page 38: Databases

Perintah Dasar MySQL (lanjutan)Perintah untuk menghapus data adalah :DELETE FROM Nama_Tabel WHERE KRITERIA

mysql> DELETE FROM tMhs WHERE nama = ‘Prasti’;Query OK, 1 row affected (0.03 sec)

Catatan :MySQL tidak akan menanyakan konfirmasi ulang kepada Anda untuk menghapus atau membatalkan penghapusan data. Untuk itu pastikan bahwa data yang akan dihapus adalah data yang tepat. Sebab data yang telah dihapus tidak dapat dikembalikan dengan cara apapun (tidak ada perintah Undo atau Undelete seperti pada windows).

Page 39: Databases

Perintah Dasar MySQL (lanjutan)Menghapus tabel dan Database

Penghapusan tabel dan database dilakukan dengan perintah DROP Contoh Menghapus tabel :mysql> DROP TABLE tMhs;Query OK, 0 row affected (0.00 sec)

Contoh Menghapus database :mysql> DROP DATABASE dbMhs;Query OK, 0 row affected (0.01 sec)

Page 40: Databases

Perintah Dasar MySQL (lanjutan)Keluar dari MySQL

Untuk keluar dari MySQL kita dapat menggunakan salah satu dari perintah berikut ini :1. mysql> Quit

Bye

2. mysql> Exit

Bye

3. mysql> \q

Bye

Page 41: Databases

Operasi antar tabelPada kenyataannya bahwa pembuatan sebuah

system pasti tidak menggunakan satu table saja. Tentu ada operasi antar table disana.

Hal ini memungkinkan untuk menampilkan data dari beberapa table dalam satu tampilan sekaligus.

Penggabungan antar table ini disebut dengan JOIN, sedangkan hubungan antar table disebut dengan RELASI.

Dalam melakukan relasi antar table, maka perlu adanya join key yang nantinya akan menentukan record antar table dapat saling berhubungan.

Page 42: Databases

Operasi antar tabelUntuk memahami operasi antar tabel, maka

siapkan database dengan 3 buah tabel sbb :Nama database : dbPegawaiNama Tabel :

1. tInfoPrib2. tBagian 3. tPekerjaan

Page 43: Databases

Operasi antar tabelTable tInfoPrib:

CREATE TABLE tInfoPrib (

Nip VARCHAR( 5 ) NOT NULL ,

Nama VARCHAR( 25 ) NOT NULL ,

Kota VARCHAR( 15 ) NULL ,

TglLahir DATE NOT NULL ,

JK CHAR( 1 ) NOT NULL ,

PRIMARY KEY ( Nip )

);

Page 44: Databases

Operasi antar tabelTable tBagian :

CREATE TABLE tBagian (

KodeBag CHAR( 1 ) NOT NULL ,

NamaBag CHAR( 15 ) NOT NULL ,

UNIQUE ( NamaBag )

);

Page 45: Databases

Operasi antar tabelTable tPekerjaan :

CREATE TABLE tPekerjaan (

Nip VARCHAR( 5 ) NOT NULL ,

KodeBag CHAR( 1 ) NOT NULL ,

Gaji INT NOT NULL ,

PRIMARY KEY ( Nip )

);

Page 46: Databases

Operasi antar tabelmysql> Select tInfoprib.nip, tInfoprib.nama, tpekerjaan.gaji

-> From tInfoprib, tpekerjaan

-> WHERE tInfoPrib.nip=tpekerjaan.nip;

Hasil :+-------+------------------+---------+

| nip | nama | gaji |

+-------+------------------+---------+

| 12345 | Dian Permana | 1200000 |

| 12346 | Tamara Febrianti | 1000000 |

| 12347 | Dara Permatasari | 1200000 |

| 12348 | Dita Nurafni | 1200000 |

| 12349 | Dhani Akbar | 1000000 |

| 12350 | Aan Setiawan | 1000000 |

| 12351 | Raul Sitompul | 1400000 |

| 12352 | Rahmanda | 1000000 |

| 12353 | Niken | 1000000 |

+-------+------------------+---------+

9 rows in set (0.00 sec)

Page 47: Databases

Operasi antar tabelmysql> Select tPekerjaan.Nip, tBagian.NamaBag As Departemen

-> From tPekerjaan, tBagian

-> WHERE tpekerjaan.kodebag = tbagian.kodebag;

Hasil :+-------+------------+

| Nip | Departemen |

+-------+------------+

| 12345 | Produksi |

| 12346 | Pemasaran |

| 12347 | Akuntansi |

| 12348 | SDM |

| 12349 | Pemasaran |

| 12350 | Produksi |

| 12351 | Produksi |

| 12352 | Pemasaran |

| 12353 | Pemasaran |

| 12354 | Pemasaran |

+-------+------------+

10 rows in set (0.05 sec)

Page 48: Databases

Operasi antar tabelmysql> SELECT i.Nip, i.Nama, p.Gaji

-> FROM tInfoprib i, tPekerjaan p

-> WHERE i.nip=p.nip;

Hasil :+-------+------------------+---------+

| Nip | Nama | Gaji |

+-------+------------------+---------+

| 12345 | Dian Permana | 1200000 |

| 12346 | Tamara Febrianti | 1000000 |

| 12347 | Dara Permatasari | 1200000 |

| 12348 | Dita Nurafni | 1200000 |

| 12349 | Dhani Akbar | 1000000 |

| 12350 | Aan Setiawan | 1000000 |

| 12351 | Raul Sitompul | 1400000 |

| 12352 | Rahmanda | 1000000 |

| 12353 | Niken | 1000000 |

+-------+------------------+---------+

9 rows in set (0.00 sec)

Page 49: Databases

Operasi antar tabelmysql> SELECT i.Nip, i.Nama, p.Gaji

-> FROM tInfoprib i, tPekerjaan p

-> WHERE i.nip=p.nip AND i.jk ='W';

Hasil :+-------+------------------+---------+

| Nip | Nama | Gaji |

+-------+------------------+---------+

| 12346 | Tamara Febrianti | 1000000 |

| 12347 | Dara Permatasari | 1200000 |

| 12348 | Dita Nurafni | 1200000 |

| 12352 | Rahmanda | 1000000 |

| 12353 | Niken | 1000000 |

+-------+------------------+---------+

5 rows in set (0.00 sec)