BELAJAR DATABASE
MYSQL DASAR
Entity Relationship Diagram (ERD) dan Operasi Dasar MySQL
INTRODUCTION
FAHMI
RIZALUL
BACKEND DEVELOPER, FREELANCER
YANG AKAN DIPELAJARI
Apa itu database? Bagaimana merancang Bagaimana membuat
database? database?
Kumpulan data yang disimpan secara sistematis di dalam
APA ITU komputer yang dapat diolah atau dimanipulasi menggunakan
DATABASE ? perangkat lunak (program aplikasi) untuk menghasilkan informasi.
Pendefinisian basis data meliputi spesifikasi berupa tipe data,
struktur data dan juga batasan-batasan pada data yang kemudian
disimpan.
APA ITU MYSQL ?
Database Management System yang menggunakan perintah dasar
SQL (Structured Query Language) yang sangat populer.
GRATIS dengan lisensi GNU General Public License (GPL) sehingga
dapat Anda pakai untuk keperluan pribadi atau komersil tanpa harus
membayar lisensi yang ada.
ENTITY
RELATIONSHIP
DIAGRAM
ENTITY RELATIONSHIP DIAGRAM (ERD)
MERANCANG
DATABASE Pengertian dari ERD (Entity Relationship Diagram) adalah suatu
model untuk menjelaskan hubungan antar data dalam basis data
berdasarkan objek-objek dasar data yang mempunyai hubungan
antar relasi.
MERANCANG ENTITAS
DATABASE
SEKOLAH
SISWA GURU
KELAS PELAJARAN
MERANCANG ATRIBUT
DATABASE
NAMA
TANGGAL
LAHIR
SISWA
JENIS
KELAMIN
…
MERANCANG GARIS DAN RELASI
DATABASE
TANGGAL TANGGAL
LAHIR LAHIR
NAMA JENIS NAMA JENIS
KELAMIN KELAMIN
SISWA GURU
KELAS
KODE NAMA
KELAS KELAS
RELASI
RELASI APA ITU RELASI?
Hubungan antar entitas
Relasi menunjukkan adanya hubungan diantara sejumlah
entitas yang berasal dari himpunan entitas yang berbeda
GURU mengajar SISWA
RELASI KARDINALITAS RELASI
Menjunjukkan jumlah maksimum entitas yag dapat berelasi
dengan entitas pada himpunan yang lain
1 n
GURU mengajar SISWA
Contoh: 1 Guru mengajar beberapa siswa
RELASI JENIS RELASI
• Satu ke Satu (One to One)
1 1
SUAMI menikahi ISTRI
• Satu ke Banyak (One to Many)
1 n
KELAS berisi SISWA
• Banyak ke Satu (Many to One)
n 1
PEGAWAI bekerja DEPARTEMENT
• Banyak ke Banyak (Many to Many)
n n
SISWA mempelajari PELANAJARAN
DATABASE
SCHEMA
DATABASE SCHEMA
NAMA
siswa
ID ALAMAT
* id : int(11)
nama : varchar(20)
SISWA
alamat : varchar(50)
Menggambarkan konsep Menggambarkan logic database design
DATABASE ATRIBUT SIMPEL
SCHEMA
NAMA siswa
ID ALAMAT
* id : int(11)
nama : varchar(20)
SISWA
alamat : varchar(50)
DATABASE ATRIBUT MULTI-VALUE 1:N
SCHEMA NAMA
ID NOMOR
TELEPON 1 orang bisa memiliki beberapa
Nomor telepon
ORANG
orang nomor_telepon
* orang_id : int(11) * phone_id : int(11)
orang_nama : varchar(20) nomor : varchar(20)
orang_id : int(11)
FOREIGN KEY
DATABASE Relasi 1:1
SCHEMA
NAMA NAMA
DEPAN DEPAN
ID NAMA ID NAMA
SUAMI BELAKANG ISTRI BELAKANG
SUAMI menikahi ISTRI
DATABASE Relasi 1:1
SCHEMA
suami istri
* id_suami : int(11) * id_istri : int(11)
nama_depan : varchar(20) nama_depan : varchar(20)
nama_belakang : varchar(50) nama_belakang : varchar(50)
id_istri : int(11)
DATABASE Relasi 1:1
SCHEMA
suami istri
* id_suami : int(11) * id_istri : int(11)
nama_depan : varchar(20) nama_depan : varchar(20)
nama_belakang : varchar(50) nama_belakang : varchar(50)
id_suami: int(11)
DATABASE 1:N Relationship
SCHEMA NAMA
DEPAN
ID NAMA
BELAKANG
orang
ORANG
* orang_id : int(11)
1
nama_depan : varchar(20)
memiliki rumah
nama_belakang : varchar(20)
* rumah_id : int(11)
N
RUMAH alamat : varchar(20)
1 orang bisa nomor_rumah : varchar(20)
ID NOMOR memiliki beberapa
RUMAH RUMAH rumah orang_id : int(11)
ALAMAT
DATABASE N:N Relationship
SCHEMA PEMBELI
invoice
NO
INVOICE TANGGAL
* no_invoice : int(11)
INVOICE pembeli : varchar(20)
produk_invoice
tanggal : date(10)
* row_id : int(11)
memiliki
no_invoice : int(11)
produk
PRODUK
* produk_id : int(11) produk_id : int(11)
nama_produk: varchar(20)
ID HARGA
PRODUK
NAMA harga : decimal(11,2)
PRODUK
1 orang bisa memiliki beberapa
Nomor telepon
DATABASE SCHEMA LANJUTAN
nama_siswa
Nilai? id_pelajaran nama_pelajaran
id_siswa alamat
n n
siswa mengambil pelajaran
n
n 1
siswa pelajaran_siswa pelajaran
* id_siswa : int(11) * row_id : int(11) * id_pelajaran : int(11)
nama_siswa : varchar(20) id_siswa : int(11) nama_pelajaran : varchar(20)
alamat : varchar(50) id_pelajaran : int(11)
nilai: int(3)
Mengumpulkan requirement dari user
PROSES
Membuat ERD PEMBUATAN
DATABASE
Mengubah ERD menjadi Schema
MENGUMPULKAN REQUIREMENT DARI USER
PROSES
PEMBUATAN
DATABASE
SEKOLAH
SISWA PELAJARAN
GURU RUANG
MEMBUAT ERD
MERANCANG nama_siswa
id_pelajaran nama_pelajaran
DATABASE
id_siswa alamat
n n
siswa mengambil pelajaran
n
n 1
Pelajaran_siswa
membimbing Id_siswa Id_pelajaran menggunakan
1
1
1 ruang
guru mengajar
nama_ruang
id_ruang
id_guru alamat
nama_guru
MEMBUAT SCHEMA
MERANCANG
DATABASE
BUAT DATABASE
MERANCANG DATABASE
- CREATE DATABASE nama_database
- CREATE TABLE nama_table …
- INSERT INTO nama_table …
STUDI KASUS
PEMBUATAN
DATABASE
PERPUSTAKAAN
USER REQUIREMENT
Membuat database perpustakaan
#1 Pengunanya petugas dan member
Setiap buku memiliki 1 kategori
Setiap peminjaman dapat lebih dari 1 buku
MEMBUAT ERD
PERPUSTAKAAN
MEMBER PETUGAS BUKU
#2 KATEGORI PEMINJAMAN
MEMBUAT ERD
Tanggal Tanggal
ktp pinjam kembali judul
alamat penerbit
nama nomor id
id penulis
1 n n n
member melakukan peminjaman memiliki buku
n n
Buku peminjaman
1
petugas mengecek memiliki
id Nomor_ Buku id 1
pinjam
password
nama kode
kategori
nama
id
kategori
UBAH ERD MENJADI SCHEMA
#3
UBAH SCHEMA MEJADI SQL
CREATE TABLE `member` (
`member_id` int(11) NOT NULL AUTO_INCREMENT,
`member_nama` varchar(255) NULL,
`member_ktp` varchar(255) NULL,
#4
`member_alamat` varchar(255) NULL,
PRIMARY KEY (`member_id`)
);
UBAH SCHEMA MEJADI SQL
CREATE TABLE `petugas` (
`petugas_id` int(11) NOT NULL AUTO_INCREMENT,
`petugas_nama` varchar(255) NULL,
`petugas_kode` varchar(255) NULL,
#4
`petugas_password` varchar(255) NULL,
PRIMARY KEY (`petugas_id`)
);
UBAH SCHEMA MEJADI SQL
CREATE TABLE `buku` (
`buku_id` int(11) NOT NULL
AUTO_INCREMENT,
`buku_judul` varchar(255) NULL,
#4
`buku_penerbit` varchar(255) NULL,
`buku_penulis` varchar(255) NULL,
`kategori_id` int(11) NULL,
PRIMARY KEY (`buku_id`),
CONSTRAINT `fk_buku_kategori_1` FOREIGN
KEY (`kategori_id`) REFERENCES `kategori`
(`kategori_id`)
);
UBAH SCHEMA MEJADI SQL
CREATE TABLE `kategori` (
`kategori_id` int(11) NOT NULL
AUTO_INCREMENT,
`kategori_nama` varchar(255) NULL,
#4
PRIMARY KEY (`kategori_id`)
);
UBAH SCHEMA MEJADI SQL
CREATE TABLE `peminjaman` (
`peminjaman_no` int(11) NOT NULL
AUTO_INCREMENT,
`tanggal_pinjam` date NULL,
#4
`tanggal_kembali` date NULL,
`member_id` int(11) NULL,
`petugas_id` int(11) NULL,
PRIMARY KEY (`peminjaman_no`),
CONSTRAINT `fk_peminjaman_member_1`
FOREIGN KEY (`member_id`) REFERENCES
`member` (`member_id`),
CONSTRAINT `fk_peminjaman_petugas_1`
FOREIGN KEY (`petugas_id`) REFERENCES
`petugas` (`petugas_id`)
);
UBAH SCHEMA MEJADI SQL
CREATE TABLE `buku_peminjaman` (
`row_id` int(11) NOT NULL AUTO_INCREMENT,
`peminjaman_no` int(11) NULL,
`buku_id` int(11) NULL,
#4
PRIMARY KEY (`row_id`),
CONSTRAINT `fk_buku_peminjaman_buku_1`
FOREIGN KEY (`buku_id`) REFERENCES `buku`
(`buku_id`),
CONSTRAINT
`fk_buku_peminjaman_peminjaman_1`
FOREIGN KEY (`peminjaman_no`) REFERENCES
`peminjaman` (`peminjaman_no`)
);
SAYA FAHMI RIZALUL
TERIMAKASIH