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