Bahan Ajar Database
Database 1
Dian Tri Wiyanti, S.Si, M.Cs
Prodi Staterkom FMIPA
Universitas Negeri
Semarang
1
IDENTITAS MATA KULIAH
1. NAMA MATA KULIAH : DATABASE 1
2. CAPAIAN PEMBELAJARAN LULUSAN
a. CP Sikap : Menginternalisasi semangat kemandirian, kejuangan,
dan kewirausahaan.
b. CP Pengetahuan : Menguasai prinsip dasar, mampu melaksanakan
dan menyampaikan hasil-hasil kajian di bidang Matematika,
Statistika, atau Komputasi yang akurat dalam bentuk laporan atau
kertas kerja.
c. CP
Ketrampilan
:
Merekonstruksi,
memodifikasi,
menganalisis/berpikir secara terstruktur, mengkaji keakuratan dan
mengintepretasikan
serta mengkomunikasikan secara lisan
maupun tulisan dengan tepat dan jelas terhadap permasalahan
matematis dari suatu fenomena.
3. CAPAIAN PEMBELAJARAN MATA KULIAH :
Memahami konsep matematika terapan yang dapat diaplikasikan
dengan pemrograman komputer untuk keperluan pada bidangbidang tertentu.
REFERENSI
[1] Sutanta, E., 2011, Basis Data dalam Tinjauan Konseptual,
Penerbit Andi, Yogyakarta.
[2] Kadir, A., 2003, Konsep dan Tuntunan Praktis Basis Data,
Penerbit Andi, Yogyakarta.
DAFTAR MATERI
PERTEMUAN
MATERI POKOK
SUMBER
1
Pendahuluan
[1] [2]
2
Definisi Basis Data dan Sistem Basis
Data
[1] [2]
3
Tujuan Pengembangan dan Keuntungan
Basis Data
[1] [2]
4
Batasan Aturan Basis Data
[1] [2]
5
Arsitektur Basis Data
[1] [2]
6
Pemodelan Data
[1] [2]
7
Model Data Entity Relationship
[1] [2]
8
Model Data Semantic
[1] [2]
9
Model Data Hierarchycal
[1] [2]
10
Model Data Network
[1] [2]
11
Model Data Relational
[1] [2]
12
Schema dan Subschema Basis Data
[1] [2]
13
Aspek Pengembangan Basis Data
[1] [2]
Contoh :
Catatan
identitas
pegawai
• Apa itu data...?
Catatan
transaksi
• Apa itu informasi...?
pembelian
Contoh :
Catatan
Daftar pegawai
transaksi
Unit
berdasarkan
input
penjualan
Pengolah
departemen
Pendahuluan
Daftar pegawai
berdasarkan
golongan
Unit
Rekapitulasi
Penyimp
transaksi
pembelian/penju an
alan pada akhir
bulan
Output
Pengertian Database...?
• Database adalah kumpulan data yang saling
terkait yang disusun agar mudah untuk diakses.
Database
Akademik Mahasisw
a Registrasi
Matakulia
h Nilai
Matakulia
h
Pemanfaatan Basis Data
• Mudah untuk memperoleh informasi tertentu.
• Dalam
aplikasi,
mampu
untuk
mendapatkan
jawaban
pertanyaan-pertanyaan seperti:
• Berapa jumlah mahasiswa yang mengikuti kuliah “Basis
Data”?
• Siapa saja yang lulus pada periode Maret tahun ini?
• Berapa persentase mahasiswa yang tidak melakukan
registrasi pada semester lalu?
• Berapa jumlah SKS yang diperoleh oleh mahasiswa
dengan NIM 12345?
Model Relasional
• Salah satu model database yang terkenal adalah
model relasional.
• Data disusun dalam bentuk tabel-tabel.
• Antar dua tabel bisa punya hubungan.
Contoh :
Contoh Informasi yang Bisa Diperoleh
Istilah dasar :
Database
Akademi
Mahasis
k
wa
Registras
i
Matakuli
ah Nilai
Matakuli
ah
Ada
3 tabel
Karakteristik dalam Relasi
• Tidak ada baris yang kembar.
• Urutan baris tidak penting.
• Setiap atribut memiliki nama yang unik.
• Letak atribut bebas.
• Setiap atribut memiliki nilai tunggal dan jenisnya
sama untuk semua baris.
Pengertian Tidak Ada Baris
Kembar
• Baris punya identitas yang membuat dua buah
baris tidak kembar.
• Identitas tersebut dinamakan “primary key”.
Pengertian Urutan Baris Tidak Penting
NO_MHS
KODE_MK
NILAI
NO_MHS
KODE_MK
NILAI
55
DB001
A
57
DB001
A
55
PI001
B
55
PI001
B
56
DB001
B
56
DB001
B
57
DB001
A
55
DB001
A
57
DB002
A
57
DB002
A
Setiap Atribut Memiliki Nama Unik
Nama
atribut
unik
TIDAK
Nama
atribut
UNIK
unik
NO_SISWA
TES_1
TES_2
NO_SISWA
TES
TES
12
75
80
12
75
80
13
76
78
13
76
78
14
89
58
14
89
58
15
60
90
15
60
90
16
75
86
16
75
86
Letak Atribut Bebas
NO_SISWA
TES_1
TES_2
TES_2
TES_1
NO_SISWA
12
75
80
80
75
12
13
76
78
78
76
13
14
89
58
58
89
14
15
60
90
90
60
15
16
75
86
86
75
16
Urutan kolom tidak penting
Setiap Atribut Memiliki Nilai Tunggal
Semua
atribut
bernilai
tunggal
NO_SISWA
12
13
14
15
16
TES_1
75
76
89
60
75
Nilai
TIDAK
TUNGGAL
TES_2
NO_SISWA
TES
12
75
80
13
76
78
14
89
58
15
60
90
16
75
86
80
78
58
90
86
Setiap Atribut Berjenis Sama untuk
Semua Baris
Semua
atribut
bernilai
tunggal
Jenis tidak
sama
NO_SISWA
TES_1
TES_2
NO_SISWA
TES_1
TES_2
12
75
80
12
75
80
13
76
78
13
78
14
89
58
Tujuh
puluh
enam
14
89
58
15
60
90
15
60
90
16
75
86
16
75
86
Apa Primary Key-nya? (1)
NO_KTP
NO_KK
NAMA
?
?
?
Apa Primary Key-nya? (2)
KODE_DEPARTEMEN
NAMA_DEPARTEMEN
1
Akunting
2
EDP
3
Pemasaran
4
Produksi
Apa Primary Key-nya? (3)
NO_FAKTUR
KODE_ITEM
JUMLAH
456
K-1
2
457
K-5
1
459
K-1
3
459
K-2
1
460
K-8
5
Apa Primary Key-nya? (4)
SEMESTER
TAHUN
NO_MHS
KODE_MKULIAH
SKS
1
2007
1189
M-01
3
1
2007
1189
M-02
2
1
2007
1190
M-01
3
1
2007
1190
M-02
2
1
2007
1190
M-03
3
Apa yang Salah? (1)
NO_FAKTUR
ITEM
ITEM
ITEM
456
Pensil
457
Buku
Penggaris
Spidol
459
Buku
Pensil
460
Spidol
461
Buku
Spidol
Penghapus
Apa yang Salah? (2)
NO_PEGAWAI
SEX
BAHASA_ASING
12345
L
ARAB
12346
W
12347
L
INGGRIS
12348
W
INGGRIS
JERMAN
12349
W
SPANYOL
Apa yang Salah? (3)
NO_PEGAWAI
SEX
BAHASA_ASING
12345
L
ARAB
12346
W
12347
L
INGGRIS
12348
W
INGGRIS
12348
W
JERMAN
Praktikum MySQL
Dasar MySQL
Abdul Kadir
Overview MySQL
• MySQL merupakan
Database Server yang
bersifat :
• Open Source
• Multiplatform
• Berbasis database
relasional
• Bisa dipakai untuk database
pribadi atau pada level
korporat berskala kecil
hingga besar
• Selain bersifat free, ada
juga yang bersifat komersial
Overview MySQL
(Lanjutan…)
• Menggunakan
SQL untuk
mendukung
pengaksesan
data (query)
Per mint aan ber upa
per nyat aan seper t i:
SE LEC T * FR OM bintang;
Klien
S er ver
H asil dar i
per mint aan
Dasar SQL
• SQL = Structured Query Language
• Digunakan untuk mengakses basis data
relasional
• Bersifat standar; bisa dipakai untuk basis
data relasional lainnya
• Perintah SQL dapat dibagi menjadi DDL dan
DML
Perintah DDL
• DDL = Definition Data Language
• Digunakan untuk kepentingan penciptaan
database, tabel, hingga penghapusan
database atau tabel
• Contoh:
•
•
•
•
CREATE DATABASE
CREATE TABLE
DROP TABLE
ALTER TABLE
Perintah DML
• DML = Data Manipulation Language
• Digunakan untuk memanipulasi data
• Contoh:
•
•
•
•
SELECT – mengambil data
DELETE – menghapus data
INSERT – menyisipkan data
UPDATE – mengubah data
Persiapan Pemakaian
MySQL
• Lakukan instalasi MySQL terlebih dulu
• MySQL memiliki sejumlah tool; salah satu
di antaranya adalah:
• program mysql, yang dipakai untuk
mengakses database dari sisi klien
• Program mysqladmin, untuk mengelola
MySQL dari sisi administrator sistem
Masuk ke Direktori Program
• Masuk ke prompt DOS
• Ketik perintah:
cd c:\”Program Files”\MysQL\”MySQL Server 5.0”
• Berikan perintah cd bin
Mengatur Password root
• root adalah pemakai dengan wewenang
paling tinggi dan digunakan untuk admin
sistem
• Perintah untuk mengubah password root:
mysqladmin –uroot password rahasia
Masuk ke Program Klien
mysql
• Berikan perintah:
mysql –uroot –p
• Ketikkan password dan tekan Enter
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -uroot -prahasia
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 5.0.15-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Pembuatan Database dan
Tabel
Database: Pegawai
Tabel: Pribadi
Tabel: Pekerjaan
Tabel: Bagian
Field:
Field:
Field:
-NIP
-NIP
-Kode_Bag
-Nama
-Tgl_Masuk
-Nama_Bag
-Tgl_Lahir
-Kode_Bag
-Sex
-Gaji
-Alamat
-Kota
Membuat Database Pegawai
• Berikan perintah pada prompt
mysql:
CREATE DATABASE Pegawai;
mysql> CREATE DATABASE Pegawai;
Query OK, 1 row affected (0.09 sec)
mysql>
Memilih Database
• Berikan perintah:
USE Pegawai;
Nama
Database
Membuat Tabel Pribadi
• Berikan perintah:
CREATE TABLE Pribadi (Nip CHAR(5) NOT NULL PRIMARY
KEY, Nama VARCHAR(35) NOT NULL, Tgl_lahir DATE, Sex
ENUM('P','W'), Alamat VARCHAR(35), Kota VARCHAR(15));
Penjelasan Tipe Data
KARAKTER
• CHAR: Teks dengan maksimal 255 karakter
• VARCHAR: Teks maksimal 255 karakter
dan bersifat variabel
• TEXT: Teks dengan panjang maksimal
65535
Penjelasan Tipe Data
BILANGAN
•
•
•
•
•
•
•
TINYINT: Bilangan 1 byte
SMALLINT: Bilangan 2 byte
INT atau INTEGER Bilangan 4 byte
BIGINT: Bilangan 8 byte
FLOAT: Bilangan pecahan (4 byte)
DOUBLE atau REAL: Bilangan pecahan (8 byte)
DECIMAL(M, D) atau NUMERIC(M, D): Bilangan
pecahan
Penjelasan Tipe Data
LAIN-LAIN
• DATE: Tanggal
• DATETIME: Waktu (tanggal dan jam)
• TIME : Jam
• ENUM(‘nilai1’, ‘nilai2’, …): Nilai
enumerasi
• BOOLEAN: tipe benar atau salah
Kata Tambahan
• NOT NULL : Tidak boleh kosong
• PRIMARY KEY: Kunci primer
• AUTO_INCREMENT: Nilai naik secara
otomatis tanpa diisi
Penambahan Data
• Penambahan data dilakukan dengan
menggunakan pernyataan INSERT
• Bentuk dasar :
INSERT INTO nama_tabel (nama_field,
nama_field, …) VALUES (nilai, nilai, …);
• Contoh:
INSERT INTO Pribadi(Nip, Nama, Tgl_lahir, Sex, Alamat, Kota)
VALUES ('12345', 'A. Hamzah Sianturi', '1965/12/23',
'P', 'Jl. Kudus 1', 'Yogya');
Melihat Isi Tabel
• Perintah SELECT
• Bentuk Umum:
SELECT * FROM Nama_Tabel
• Contoh:
SELECT * FROM Pribadi
Penambahan Data (Lanjutan…)
• Tambahkan data berikut:
NIP
Tanggal lahir
12346
12/01/1978
12347
Nama
Udin
Alamat
Jl. Masjid 47
Kota
Sleman
Siti Umayani
Jenis
Kelamin
Pria
Wanita
12348
14/03/1969
Dian Arum
Jl. Arumdalu 23
Bantul
Wanita
12349
13/05/1966
Bagus
Karangwaru I/3
Magelang
Pria
12350
01/02/1975
Intan
Jl. Sawo 108
Yogya
Wanita
12351
05/04/1971
Edi Damhudi
Ngampilan 2A
Sleman
Pria
12352
29/04/1969
Sinta
Jl. Kertosono 87
Klaten
Wanita
12353
04/07/1971
Sueb
Jl. Astina 4A
Yogya
Pria
12354
05/05/1978
Joned
Jl. Karyacita 9
Yogya
Pria
• Untuk data yang kosong, tuliskan NULL
Penambahan Data dengan
Field Tertentu
• Contoh tanpa mengisi Tanggal lahir, alamat
dan kota
INSERT INTO Pribadi(Nip, Nama, Sex)
VALUES ('12355', 'Andini', 'W');
Pengaruh Kunci Primer
• Cobalah berikan pernyataan berikut:
INSERT INTO Pribadi(Nip, Nama, Tgl_lahir, Sex, Alamat,
Kota)
VALUES ('12345', ‘Dona Harun', '1978/01/01',
‘W', 'Jl. Kreasi 77', 'Yogya');
• Apa yang terjadi? Kenapa?
Pengaruh NOT NULL
• Cobalah berikan pernyataan berikut:
INSERT INTO Pribadi(Nip, Sex)
VALUES ('12360', ‘W');
• Apa yang terjadi? Kenapa?
Pengaruh ENUM
• Cobalah perintah berikut:
INSERT INTO Pribadi(Nip, Nama, Kelamin)
VALUES ('12361', 'Edi harahap', 'L');
• Apa yang terjadi? Kenapa?
• Cek dengan SELECT; apakah data
tersimpan?
Melihat Struktur Tabel
• Gunakan perintah:
DESC nama_tabel
• Contoh:
• DESC Pribadi;
+-----------+---------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+---------------+------+-----+---------+-------+
| Nip
| char(5)
| NO
| PRI |
|
|
| Nama
| varchar(35)
| NO
|
|
|
|
| Tgl_lahir | date
| YES |
| NULL
|
|
| Sex
| enum('P','W') | YES |
| NULL
|
|
| Alamat
| varchar(35)
| YES |
| NULL
|
|
| kota
| varchar(20)
| YES |
| NULL
|
|
+-----------+---------------+------+-----+---------+-------+
6 rows in set (0.16 sec)
Mengganti Nama Field
• Perintah yang digunakan adalah ALTER
TABLE
• Contoh:
ALTER TABLE Pribadi
CHANGE sex kelamin ENUM('P','W');
• Cek struktur tabel setelah Anda melakukan
perintah di atas
Mengganti Ukuran/Tipe Field
• Perintah yang digunakan adalah ALTER
TABLE
• Contoh:
ALTER TABLE Pribadi
CHANGE kota kota VARCHAR(20);
• Cek struktur tabel setelah Anda melakukan
perintah di atas
Menambahkan DEFAULT
• DEFAULT pada struktur tabel digunakan
untuk memberikan nilai bawaan pada
suatu field kalau nilai bersangkutan tidak
dimasukkan
• Contoh:
ALTER TABLE Pribadi CHANGE kelamin
kelamin ENUM('P','W') DEFAULT 'P';
Menambahkan DEFAULT
(Lanjutan…)
• Sekarang cobalah berikan perintah:
INSERT INTO Pribadi(Nip, Nama)
VALUES (‘12370’, ‘Fahmi Idris’);
• PERHATIKAN, apa isi field Kelamin untuk
NIP 12370’?
Pengubahan Data
• Perintah yang digunakan adalah UPDATE
• Bentuk dasar:
UPDATE nama_tabel SET nama_field = nilai, nama_field =
nilai, … WHERE nama_field = nilai
• Contoh mengubah Udin menjadi Udinsah:
UPDATE Pribadi SET Nama= 'Udinsah'
WHERE NIP = '12346';
• Ujilah dengan SELECT untuk melihat hasil perubahan
Penghapusan Data
• Perintah DELETE
• Bentuk dasar:
DELETE FROM nama_tabel WHERE
nama_field = nilai
• Contoh:
DELETE FROM Pribadi
WHERE Nip = '12355';
• Ujilah dengan SELECT untuk melihat efek
perintah di atas
Penghapusan Tabel
• Gunakan DROP TABLE
• Untuk mempraktekkan, buatlah sebuah
table bernama RIWAYAT, dengan isi berupa
sebuah field (misalnya Nip bertipe
CHAR(5))
• Kemudian, lihatlah daftar tabel dengan
memberikan perintah:
SHOW TABLES;
Penghapusan Tabel
(Lanjutan…)
• Berikan perintah:
DROP TABLE Riwayat;
• Kemudian, lihatlah daftar tabel dengan
memberikan perintah:
SHOW TABLES;
Apa sudah terhapus?
Latihan Membuat Tabel
Bagian
• Buatlah tabel Bagian dengan struktur
seperti berikut:
• Kode_Bag, CHAR, 1 karakter, primary key
• Nama_Bag, VARCHAR, 20 karakter, harus diisi
• Isikan data sebagai berikut:
•
•
•
•
•
1
2
3
4
5
untuk
untuk
untuk
untuk
untuk
EDP
Pemasaran
Produksi
SDM
Akunting
Latihan Membuat Tabel
Pekerjaan
Buatlah tabel Pekerjaan dengan struktur
seperti berikut:
•
•
•
•
NIP, CHAR, 5 karakter, primary key
Tgl_Masuk, DATE
Kode_Bag, 1 karakter, harus diisi
Gaji, bilangan
Isikan data sebagai berikut:
•
•
•
•
•
•
12345, 02/02/1992, 3, 2juta
12346, 02/02/1992, 1, 1,5juta
12347, 02/02/1992, 2, 1,2juta
12348, 02/02/1992, 4, 1,5juta
12349, 02/02/1992, 5, 1,2juta
Lengkapi sendiri sampai NIP 12354
Latihan Penggunaan Tipe
Memo
• Buatlah tabel bernama Riwayat
• Isi Field:
• NIP
• Keterangan (bertipe Memo)
• Isikan data untuk NIP yang tersedia pada tabel
Pribadi (12345 sampai dengan 12354)
• Isikan Keterangan dengan daftar riwayat
pendidikan, misalnya sbb:
SD Muhammadiyah I, Yogya
SMP Negeri I, Yogya
SMA Negeri III, Semarang
Latihan Gabungan
• Masukkan data berikut ke Tabel Pribadi:
•
•
•
•
NIP: 12390
Nama: Asti Damayanti
Tanggal Lahir: 2 Februari 1983
Jenis kelamin: Wanita
• Ubahlah Tanggal lahir Asti Damayanti
menjadi 23 Pebruari 1973
• Cek hasilnya
Latihan Gabungan
(Lanjutan…)
• Hapuslah record yang berisi data Asti
Damayanti dengan menyebutkan namanya
(bukan NIP)
• Ubahlah nama field Keterangan pada
tabel Riwayat menjadi Ket
Latihan Gabungan
(Lanjutan…)
• Menambahkan Field:
ALTER TABLE Pribadi ADD Bisa_Bhs_Asing
BOOLEAN DEFAULT FALSE;
• Buatlah agar field baru tersebut bernilai
TRUE untuk NIP=12345, 12347, dan 12350
Klausa WHERE pada SELECT
• Bentuk: WHERE kondisi
• Contoh:
SELECT Nama FROM Pribadi WHERE Nip = “12345”;
SELECT Nama FROM Pribadi WHERE Kelamin = ‘P’;
SELECT Nama FROM Pribadi WHERE Kelamin = ‘W’;
SELECT Nama FROM Pribadi WHERE Bisa_Bhs_asing = TRUE;
SELECT Nama FROM Pribadi WHERE Bisa_Bhs_asing = FALSE;
Operator Relasional
• = Sama dengan
• > Lebih dari
• < Kurang dari
• >= Lebih dari atau sama dengan
• ‘1970/12/25’;
Klausa WHERE pada SELECT
• Bentuk: WHERE kondisi
• Contoh:
SELECT Nip FROM Pekerjaan WHERE Gaji < 2000000;
Latihan
• Tampilkan pegawai yang lahir sebelum tahun 1980
• Tampilkan nama pegawai yang NIP-nya tidak sama
dengan “12345”
• Tampilkan nama pegawai yang NIP-nya sesudah
“12347”
Operator And
• AND digunakan sebagai kriteria “DAN”
• Penggunaan: operand AND operand
• Contoh:
SELECT NIP FROM Pribadi WHERE Tgl_lahir >= ‘1970/01/01’ AND
Tgl_lahir
Dian Tri Wiyanti, S.Si, M.Cs
Prodi Staterkom FMIPA
Universitas Negeri
Semarang
1
IDENTITAS MATA KULIAH
1. NAMA MATA KULIAH : DATABASE 1
2. CAPAIAN PEMBELAJARAN LULUSAN
a. CP Sikap : Menginternalisasi semangat kemandirian, kejuangan,
dan kewirausahaan.
b. CP Pengetahuan : Menguasai prinsip dasar, mampu melaksanakan
dan menyampaikan hasil-hasil kajian di bidang Matematika,
Statistika, atau Komputasi yang akurat dalam bentuk laporan atau
kertas kerja.
c. CP
Ketrampilan
:
Merekonstruksi,
memodifikasi,
menganalisis/berpikir secara terstruktur, mengkaji keakuratan dan
mengintepretasikan
serta mengkomunikasikan secara lisan
maupun tulisan dengan tepat dan jelas terhadap permasalahan
matematis dari suatu fenomena.
3. CAPAIAN PEMBELAJARAN MATA KULIAH :
Memahami konsep matematika terapan yang dapat diaplikasikan
dengan pemrograman komputer untuk keperluan pada bidangbidang tertentu.
REFERENSI
[1] Sutanta, E., 2011, Basis Data dalam Tinjauan Konseptual,
Penerbit Andi, Yogyakarta.
[2] Kadir, A., 2003, Konsep dan Tuntunan Praktis Basis Data,
Penerbit Andi, Yogyakarta.
DAFTAR MATERI
PERTEMUAN
MATERI POKOK
SUMBER
1
Pendahuluan
[1] [2]
2
Definisi Basis Data dan Sistem Basis
Data
[1] [2]
3
Tujuan Pengembangan dan Keuntungan
Basis Data
[1] [2]
4
Batasan Aturan Basis Data
[1] [2]
5
Arsitektur Basis Data
[1] [2]
6
Pemodelan Data
[1] [2]
7
Model Data Entity Relationship
[1] [2]
8
Model Data Semantic
[1] [2]
9
Model Data Hierarchycal
[1] [2]
10
Model Data Network
[1] [2]
11
Model Data Relational
[1] [2]
12
Schema dan Subschema Basis Data
[1] [2]
13
Aspek Pengembangan Basis Data
[1] [2]
Contoh :
Catatan
identitas
pegawai
• Apa itu data...?
Catatan
transaksi
• Apa itu informasi...?
pembelian
Contoh :
Catatan
Daftar pegawai
transaksi
Unit
berdasarkan
input
penjualan
Pengolah
departemen
Pendahuluan
Daftar pegawai
berdasarkan
golongan
Unit
Rekapitulasi
Penyimp
transaksi
pembelian/penju an
alan pada akhir
bulan
Output
Pengertian Database...?
• Database adalah kumpulan data yang saling
terkait yang disusun agar mudah untuk diakses.
Database
Akademik Mahasisw
a Registrasi
Matakulia
h Nilai
Matakulia
h
Pemanfaatan Basis Data
• Mudah untuk memperoleh informasi tertentu.
• Dalam
aplikasi,
mampu
untuk
mendapatkan
jawaban
pertanyaan-pertanyaan seperti:
• Berapa jumlah mahasiswa yang mengikuti kuliah “Basis
Data”?
• Siapa saja yang lulus pada periode Maret tahun ini?
• Berapa persentase mahasiswa yang tidak melakukan
registrasi pada semester lalu?
• Berapa jumlah SKS yang diperoleh oleh mahasiswa
dengan NIM 12345?
Model Relasional
• Salah satu model database yang terkenal adalah
model relasional.
• Data disusun dalam bentuk tabel-tabel.
• Antar dua tabel bisa punya hubungan.
Contoh :
Contoh Informasi yang Bisa Diperoleh
Istilah dasar :
Database
Akademi
Mahasis
k
wa
Registras
i
Matakuli
ah Nilai
Matakuli
ah
Ada
3 tabel
Karakteristik dalam Relasi
• Tidak ada baris yang kembar.
• Urutan baris tidak penting.
• Setiap atribut memiliki nama yang unik.
• Letak atribut bebas.
• Setiap atribut memiliki nilai tunggal dan jenisnya
sama untuk semua baris.
Pengertian Tidak Ada Baris
Kembar
• Baris punya identitas yang membuat dua buah
baris tidak kembar.
• Identitas tersebut dinamakan “primary key”.
Pengertian Urutan Baris Tidak Penting
NO_MHS
KODE_MK
NILAI
NO_MHS
KODE_MK
NILAI
55
DB001
A
57
DB001
A
55
PI001
B
55
PI001
B
56
DB001
B
56
DB001
B
57
DB001
A
55
DB001
A
57
DB002
A
57
DB002
A
Setiap Atribut Memiliki Nama Unik
Nama
atribut
unik
TIDAK
Nama
atribut
UNIK
unik
NO_SISWA
TES_1
TES_2
NO_SISWA
TES
TES
12
75
80
12
75
80
13
76
78
13
76
78
14
89
58
14
89
58
15
60
90
15
60
90
16
75
86
16
75
86
Letak Atribut Bebas
NO_SISWA
TES_1
TES_2
TES_2
TES_1
NO_SISWA
12
75
80
80
75
12
13
76
78
78
76
13
14
89
58
58
89
14
15
60
90
90
60
15
16
75
86
86
75
16
Urutan kolom tidak penting
Setiap Atribut Memiliki Nilai Tunggal
Semua
atribut
bernilai
tunggal
NO_SISWA
12
13
14
15
16
TES_1
75
76
89
60
75
Nilai
TIDAK
TUNGGAL
TES_2
NO_SISWA
TES
12
75
80
13
76
78
14
89
58
15
60
90
16
75
86
80
78
58
90
86
Setiap Atribut Berjenis Sama untuk
Semua Baris
Semua
atribut
bernilai
tunggal
Jenis tidak
sama
NO_SISWA
TES_1
TES_2
NO_SISWA
TES_1
TES_2
12
75
80
12
75
80
13
76
78
13
78
14
89
58
Tujuh
puluh
enam
14
89
58
15
60
90
15
60
90
16
75
86
16
75
86
Apa Primary Key-nya? (1)
NO_KTP
NO_KK
NAMA
?
?
?
Apa Primary Key-nya? (2)
KODE_DEPARTEMEN
NAMA_DEPARTEMEN
1
Akunting
2
EDP
3
Pemasaran
4
Produksi
Apa Primary Key-nya? (3)
NO_FAKTUR
KODE_ITEM
JUMLAH
456
K-1
2
457
K-5
1
459
K-1
3
459
K-2
1
460
K-8
5
Apa Primary Key-nya? (4)
SEMESTER
TAHUN
NO_MHS
KODE_MKULIAH
SKS
1
2007
1189
M-01
3
1
2007
1189
M-02
2
1
2007
1190
M-01
3
1
2007
1190
M-02
2
1
2007
1190
M-03
3
Apa yang Salah? (1)
NO_FAKTUR
ITEM
ITEM
ITEM
456
Pensil
457
Buku
Penggaris
Spidol
459
Buku
Pensil
460
Spidol
461
Buku
Spidol
Penghapus
Apa yang Salah? (2)
NO_PEGAWAI
SEX
BAHASA_ASING
12345
L
ARAB
12346
W
12347
L
INGGRIS
12348
W
INGGRIS
JERMAN
12349
W
SPANYOL
Apa yang Salah? (3)
NO_PEGAWAI
SEX
BAHASA_ASING
12345
L
ARAB
12346
W
12347
L
INGGRIS
12348
W
INGGRIS
12348
W
JERMAN
Praktikum MySQL
Dasar MySQL
Abdul Kadir
Overview MySQL
• MySQL merupakan
Database Server yang
bersifat :
• Open Source
• Multiplatform
• Berbasis database
relasional
• Bisa dipakai untuk database
pribadi atau pada level
korporat berskala kecil
hingga besar
• Selain bersifat free, ada
juga yang bersifat komersial
Overview MySQL
(Lanjutan…)
• Menggunakan
SQL untuk
mendukung
pengaksesan
data (query)
Per mint aan ber upa
per nyat aan seper t i:
SE LEC T * FR OM bintang;
Klien
S er ver
H asil dar i
per mint aan
Dasar SQL
• SQL = Structured Query Language
• Digunakan untuk mengakses basis data
relasional
• Bersifat standar; bisa dipakai untuk basis
data relasional lainnya
• Perintah SQL dapat dibagi menjadi DDL dan
DML
Perintah DDL
• DDL = Definition Data Language
• Digunakan untuk kepentingan penciptaan
database, tabel, hingga penghapusan
database atau tabel
• Contoh:
•
•
•
•
CREATE DATABASE
CREATE TABLE
DROP TABLE
ALTER TABLE
Perintah DML
• DML = Data Manipulation Language
• Digunakan untuk memanipulasi data
• Contoh:
•
•
•
•
SELECT – mengambil data
DELETE – menghapus data
INSERT – menyisipkan data
UPDATE – mengubah data
Persiapan Pemakaian
MySQL
• Lakukan instalasi MySQL terlebih dulu
• MySQL memiliki sejumlah tool; salah satu
di antaranya adalah:
• program mysql, yang dipakai untuk
mengakses database dari sisi klien
• Program mysqladmin, untuk mengelola
MySQL dari sisi administrator sistem
Masuk ke Direktori Program
• Masuk ke prompt DOS
• Ketik perintah:
cd c:\”Program Files”\MysQL\”MySQL Server 5.0”
• Berikan perintah cd bin
Mengatur Password root
• root adalah pemakai dengan wewenang
paling tinggi dan digunakan untuk admin
sistem
• Perintah untuk mengubah password root:
mysqladmin –uroot password rahasia
Masuk ke Program Klien
mysql
• Berikan perintah:
mysql –uroot –p
• Ketikkan password dan tekan Enter
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -uroot -prahasia
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 5.0.15-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Pembuatan Database dan
Tabel
Database: Pegawai
Tabel: Pribadi
Tabel: Pekerjaan
Tabel: Bagian
Field:
Field:
Field:
-NIP
-NIP
-Kode_Bag
-Nama
-Tgl_Masuk
-Nama_Bag
-Tgl_Lahir
-Kode_Bag
-Sex
-Gaji
-Alamat
-Kota
Membuat Database Pegawai
• Berikan perintah pada prompt
mysql:
CREATE DATABASE Pegawai;
mysql> CREATE DATABASE Pegawai;
Query OK, 1 row affected (0.09 sec)
mysql>
Memilih Database
• Berikan perintah:
USE Pegawai;
Nama
Database
Membuat Tabel Pribadi
• Berikan perintah:
CREATE TABLE Pribadi (Nip CHAR(5) NOT NULL PRIMARY
KEY, Nama VARCHAR(35) NOT NULL, Tgl_lahir DATE, Sex
ENUM('P','W'), Alamat VARCHAR(35), Kota VARCHAR(15));
Penjelasan Tipe Data
KARAKTER
• CHAR: Teks dengan maksimal 255 karakter
• VARCHAR: Teks maksimal 255 karakter
dan bersifat variabel
• TEXT: Teks dengan panjang maksimal
65535
Penjelasan Tipe Data
BILANGAN
•
•
•
•
•
•
•
TINYINT: Bilangan 1 byte
SMALLINT: Bilangan 2 byte
INT atau INTEGER Bilangan 4 byte
BIGINT: Bilangan 8 byte
FLOAT: Bilangan pecahan (4 byte)
DOUBLE atau REAL: Bilangan pecahan (8 byte)
DECIMAL(M, D) atau NUMERIC(M, D): Bilangan
pecahan
Penjelasan Tipe Data
LAIN-LAIN
• DATE: Tanggal
• DATETIME: Waktu (tanggal dan jam)
• TIME : Jam
• ENUM(‘nilai1’, ‘nilai2’, …): Nilai
enumerasi
• BOOLEAN: tipe benar atau salah
Kata Tambahan
• NOT NULL : Tidak boleh kosong
• PRIMARY KEY: Kunci primer
• AUTO_INCREMENT: Nilai naik secara
otomatis tanpa diisi
Penambahan Data
• Penambahan data dilakukan dengan
menggunakan pernyataan INSERT
• Bentuk dasar :
INSERT INTO nama_tabel (nama_field,
nama_field, …) VALUES (nilai, nilai, …);
• Contoh:
INSERT INTO Pribadi(Nip, Nama, Tgl_lahir, Sex, Alamat, Kota)
VALUES ('12345', 'A. Hamzah Sianturi', '1965/12/23',
'P', 'Jl. Kudus 1', 'Yogya');
Melihat Isi Tabel
• Perintah SELECT
• Bentuk Umum:
SELECT * FROM Nama_Tabel
• Contoh:
SELECT * FROM Pribadi
Penambahan Data (Lanjutan…)
• Tambahkan data berikut:
NIP
Tanggal lahir
12346
12/01/1978
12347
Nama
Udin
Alamat
Jl. Masjid 47
Kota
Sleman
Siti Umayani
Jenis
Kelamin
Pria
Wanita
12348
14/03/1969
Dian Arum
Jl. Arumdalu 23
Bantul
Wanita
12349
13/05/1966
Bagus
Karangwaru I/3
Magelang
Pria
12350
01/02/1975
Intan
Jl. Sawo 108
Yogya
Wanita
12351
05/04/1971
Edi Damhudi
Ngampilan 2A
Sleman
Pria
12352
29/04/1969
Sinta
Jl. Kertosono 87
Klaten
Wanita
12353
04/07/1971
Sueb
Jl. Astina 4A
Yogya
Pria
12354
05/05/1978
Joned
Jl. Karyacita 9
Yogya
Pria
• Untuk data yang kosong, tuliskan NULL
Penambahan Data dengan
Field Tertentu
• Contoh tanpa mengisi Tanggal lahir, alamat
dan kota
INSERT INTO Pribadi(Nip, Nama, Sex)
VALUES ('12355', 'Andini', 'W');
Pengaruh Kunci Primer
• Cobalah berikan pernyataan berikut:
INSERT INTO Pribadi(Nip, Nama, Tgl_lahir, Sex, Alamat,
Kota)
VALUES ('12345', ‘Dona Harun', '1978/01/01',
‘W', 'Jl. Kreasi 77', 'Yogya');
• Apa yang terjadi? Kenapa?
Pengaruh NOT NULL
• Cobalah berikan pernyataan berikut:
INSERT INTO Pribadi(Nip, Sex)
VALUES ('12360', ‘W');
• Apa yang terjadi? Kenapa?
Pengaruh ENUM
• Cobalah perintah berikut:
INSERT INTO Pribadi(Nip, Nama, Kelamin)
VALUES ('12361', 'Edi harahap', 'L');
• Apa yang terjadi? Kenapa?
• Cek dengan SELECT; apakah data
tersimpan?
Melihat Struktur Tabel
• Gunakan perintah:
DESC nama_tabel
• Contoh:
• DESC Pribadi;
+-----------+---------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+---------------+------+-----+---------+-------+
| Nip
| char(5)
| NO
| PRI |
|
|
| Nama
| varchar(35)
| NO
|
|
|
|
| Tgl_lahir | date
| YES |
| NULL
|
|
| Sex
| enum('P','W') | YES |
| NULL
|
|
| Alamat
| varchar(35)
| YES |
| NULL
|
|
| kota
| varchar(20)
| YES |
| NULL
|
|
+-----------+---------------+------+-----+---------+-------+
6 rows in set (0.16 sec)
Mengganti Nama Field
• Perintah yang digunakan adalah ALTER
TABLE
• Contoh:
ALTER TABLE Pribadi
CHANGE sex kelamin ENUM('P','W');
• Cek struktur tabel setelah Anda melakukan
perintah di atas
Mengganti Ukuran/Tipe Field
• Perintah yang digunakan adalah ALTER
TABLE
• Contoh:
ALTER TABLE Pribadi
CHANGE kota kota VARCHAR(20);
• Cek struktur tabel setelah Anda melakukan
perintah di atas
Menambahkan DEFAULT
• DEFAULT pada struktur tabel digunakan
untuk memberikan nilai bawaan pada
suatu field kalau nilai bersangkutan tidak
dimasukkan
• Contoh:
ALTER TABLE Pribadi CHANGE kelamin
kelamin ENUM('P','W') DEFAULT 'P';
Menambahkan DEFAULT
(Lanjutan…)
• Sekarang cobalah berikan perintah:
INSERT INTO Pribadi(Nip, Nama)
VALUES (‘12370’, ‘Fahmi Idris’);
• PERHATIKAN, apa isi field Kelamin untuk
NIP 12370’?
Pengubahan Data
• Perintah yang digunakan adalah UPDATE
• Bentuk dasar:
UPDATE nama_tabel SET nama_field = nilai, nama_field =
nilai, … WHERE nama_field = nilai
• Contoh mengubah Udin menjadi Udinsah:
UPDATE Pribadi SET Nama= 'Udinsah'
WHERE NIP = '12346';
• Ujilah dengan SELECT untuk melihat hasil perubahan
Penghapusan Data
• Perintah DELETE
• Bentuk dasar:
DELETE FROM nama_tabel WHERE
nama_field = nilai
• Contoh:
DELETE FROM Pribadi
WHERE Nip = '12355';
• Ujilah dengan SELECT untuk melihat efek
perintah di atas
Penghapusan Tabel
• Gunakan DROP TABLE
• Untuk mempraktekkan, buatlah sebuah
table bernama RIWAYAT, dengan isi berupa
sebuah field (misalnya Nip bertipe
CHAR(5))
• Kemudian, lihatlah daftar tabel dengan
memberikan perintah:
SHOW TABLES;
Penghapusan Tabel
(Lanjutan…)
• Berikan perintah:
DROP TABLE Riwayat;
• Kemudian, lihatlah daftar tabel dengan
memberikan perintah:
SHOW TABLES;
Apa sudah terhapus?
Latihan Membuat Tabel
Bagian
• Buatlah tabel Bagian dengan struktur
seperti berikut:
• Kode_Bag, CHAR, 1 karakter, primary key
• Nama_Bag, VARCHAR, 20 karakter, harus diisi
• Isikan data sebagai berikut:
•
•
•
•
•
1
2
3
4
5
untuk
untuk
untuk
untuk
untuk
EDP
Pemasaran
Produksi
SDM
Akunting
Latihan Membuat Tabel
Pekerjaan
Buatlah tabel Pekerjaan dengan struktur
seperti berikut:
•
•
•
•
NIP, CHAR, 5 karakter, primary key
Tgl_Masuk, DATE
Kode_Bag, 1 karakter, harus diisi
Gaji, bilangan
Isikan data sebagai berikut:
•
•
•
•
•
•
12345, 02/02/1992, 3, 2juta
12346, 02/02/1992, 1, 1,5juta
12347, 02/02/1992, 2, 1,2juta
12348, 02/02/1992, 4, 1,5juta
12349, 02/02/1992, 5, 1,2juta
Lengkapi sendiri sampai NIP 12354
Latihan Penggunaan Tipe
Memo
• Buatlah tabel bernama Riwayat
• Isi Field:
• NIP
• Keterangan (bertipe Memo)
• Isikan data untuk NIP yang tersedia pada tabel
Pribadi (12345 sampai dengan 12354)
• Isikan Keterangan dengan daftar riwayat
pendidikan, misalnya sbb:
SD Muhammadiyah I, Yogya
SMP Negeri I, Yogya
SMA Negeri III, Semarang
Latihan Gabungan
• Masukkan data berikut ke Tabel Pribadi:
•
•
•
•
NIP: 12390
Nama: Asti Damayanti
Tanggal Lahir: 2 Februari 1983
Jenis kelamin: Wanita
• Ubahlah Tanggal lahir Asti Damayanti
menjadi 23 Pebruari 1973
• Cek hasilnya
Latihan Gabungan
(Lanjutan…)
• Hapuslah record yang berisi data Asti
Damayanti dengan menyebutkan namanya
(bukan NIP)
• Ubahlah nama field Keterangan pada
tabel Riwayat menjadi Ket
Latihan Gabungan
(Lanjutan…)
• Menambahkan Field:
ALTER TABLE Pribadi ADD Bisa_Bhs_Asing
BOOLEAN DEFAULT FALSE;
• Buatlah agar field baru tersebut bernilai
TRUE untuk NIP=12345, 12347, dan 12350
Klausa WHERE pada SELECT
• Bentuk: WHERE kondisi
• Contoh:
SELECT Nama FROM Pribadi WHERE Nip = “12345”;
SELECT Nama FROM Pribadi WHERE Kelamin = ‘P’;
SELECT Nama FROM Pribadi WHERE Kelamin = ‘W’;
SELECT Nama FROM Pribadi WHERE Bisa_Bhs_asing = TRUE;
SELECT Nama FROM Pribadi WHERE Bisa_Bhs_asing = FALSE;
Operator Relasional
• = Sama dengan
• > Lebih dari
• < Kurang dari
• >= Lebih dari atau sama dengan
• ‘1970/12/25’;
Klausa WHERE pada SELECT
• Bentuk: WHERE kondisi
• Contoh:
SELECT Nip FROM Pekerjaan WHERE Gaji < 2000000;
Latihan
• Tampilkan pegawai yang lahir sebelum tahun 1980
• Tampilkan nama pegawai yang NIP-nya tidak sama
dengan “12345”
• Tampilkan nama pegawai yang NIP-nya sesudah
“12347”
Operator And
• AND digunakan sebagai kriteria “DAN”
• Penggunaan: operand AND operand
• Contoh:
SELECT NIP FROM Pribadi WHERE Tgl_lahir >= ‘1970/01/01’ AND
Tgl_lahir