Database 1
Dian Tri Wiyanti, S.Si, M.Cs Prodi Staterkom FMIPA
Universitas Negeri
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 bidang-bidang tertentu.
Memahami dengan cerdas dasar-dasar pemrograman dan dapat
membuat program dari sebuah masalah terutama dalam bidang Matematika menggunakan software MySql dan bahasa pemrograman PHP dengan bertanggung jawab sesuai dengan nilai-nilai konservasi.
REFERENSI
[1] Sutanta, E., 2011, Basis Data dalam Tinjauan Konseptual, 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]
Pendahuluan
• Apa itu data...?
• Apa itu informasi...?
input PengolahUnit Output
Unit Penyimp an Contoh : Catatan identitas pegawai Catatan transaksi pembelian Catatan transaksi penjualan Contoh :
Daftar pegawai
berdasarkan departemen
Daftar pegawai
berdasarkan golongan
Rekapitulasi
transaksi
Pengertian Database...?
• Database adalah kumpulan data yang saling
terkait yang disusun agar mudah untuk diakses.
Database
Akademik Mahasisw a Registrasi
Matakulia h Nilai
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
Model Relasional
• Salah satu model database yang terkenal adalah
model relasional.
• Data disusun dalam bentuk tabel-tabel.
Istilah dasar :
Database Akademi
k Mahasis
wa
Registras i
Matakuli ah Nilai
Matakuli ah
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
Pengertian Tidak Ada Baris
Kembar
• Baris punya identitas yang membuat dua buah
baris tidak kembar.
Pengertian Urutan Baris Tidak Penting
NO_MHS KODE_MK NILAI
55 DB001 A
55 PI001 B
56 DB001 B
57 DB001 A
57 DB002 A
NO_MHS KODE_MK NILAI
57 DB001 A
55 PI001 B
56 DB001 B
55 DB001 A
Setiap Atribut Memiliki Nama Unik
NO_SISWA TES_1 TES_2
12 75 80
13 76 78
14 89 58
15 60 90
16 75 86
NO_SISWA TES TES
12 75 80
13 76 78
14 89 58
15 60 90
16 75 86
Letak Atribut Bebas
NO_SISWA TES_1 TES_2
12 75 80
13 76 78
14 89 58
15 60 90
16 75 86
TES_2 TES_1 NO_SISWA
80 75 12
78 76 13
58 89 14
90 60 15
86 75 16
Setiap Atribut Memiliki Nilai Tunggal
NO_SISWA TES_1 TES_2
12 75 80
13 76 78
14 89 58
15 60 90
16 75 86
Setiap Atribut Berjenis Sama untuk
Semua Baris
NO_SISWA TES_1 TES_2
12 75 80
13 76 78
14 89 58
15 60 90
16 75 86
Semua atribut bernilai tunggal
NO_SISWA TES_1 TES_2
12 75 80
13 Tujuh
puluh enam
78
14 89 58
15 60 90
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
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
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
Apa yang Salah? (1)
NO_FAKTUR ITEM ITEM ITEM
456 Pensil
457 Buku Penggaris Spidol
459 Buku Pensil
460 Spidol
Apa yang Salah? (2)
NO_PEGAWAI SEX BAHASA_ASING
12345 L ARAB
12346 W
12347 L INGGRIS
12348 W INGGRIS
JERMAN
Apa yang Salah? (3)
NO_PEGAWAI SEX BAHASA_ASING
12345 L ARAB
12346 W
12347 L INGGRIS
12348 W INGGRIS
Praktikum MySQL
Dasar MySQL
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
Overview MySQL
(Lanjutan…)
• Menggunakan
SQL untuk mendukung pengaksesan data (query)
H asil dar i per mint aan
Klien S er ver Per mint aan ber upa
per nyat aan seper t i:
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
Perintah DDL
• DDL = Definition Data Language
• Digunakan untuk kepentingan penciptaan
database, tabel, hingga penghapusan database atau tabel
• Contoh:
• CREATE DATABASE • CREATE TABLE
Perintah DML
• DML = Data Manipulation Language • Digunakan untuk memanipulasi data • Contoh:
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
Masuk ke Direktori Program
• Masuk ke prompt DOS • Ketik perintah:
cd c:\”Program Files”\MysQL\”MySQL Server 5.0”
Mengatur Password root
• root adalah pemakai dengan wewenang
paling tinggi dan digunakan untuk admin sistem
• Perintah untuk mengubah password root:
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.
Pembuatan Database dan
Tabel
Database: Pegawai
Tabel: Pribadi
Field: -NIP -Nama -Tgl_Lahir -Sex -Alamat -Kota
Tabel: Pekerjaan
Field: -NIP
-Tgl_Masuk -Kode_Bag -Gaji
Tabel: Bagian
Field:
[image:37.960.215.836.110.484.2]Membuat Database Pegawai
• Berikan perintah pada prompt
mysql:
CREATE DATABASE Pegawai;
mysql> CREATE DATABASE Pegawai; Query OK, 1 row affected (0.09 sec)
Memilih Database
• Berikan perintah:
USE Pegawai;
Nama
Membuat Tabel Pribadi
• Berikan perintah:
Penjelasan Tipe Data
KARAKTER
• CHAR: Teks dengan maksimal 255 karakter • VARCHAR: Teks maksimal 255 karakter
dan bersifat variabel
• TEXT: Teks dengan panjang maksimal
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
Penjelasan Tipe Data
LAIN-LAIN
• DATE: Tanggal
• DATETIME: Waktu (tanggal dan jam) • TIME : Jam
• ENUM(‘nilai1’, ‘nilai2’, …): Nilai
enumerasi
Kata Tambahan
• NOT NULL : Tidak boleh kosong • PRIMARY KEY: Kunci primer
• AUTO_INCREMENT: Nilai naik secara
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',
Melihat Isi Tabel
• Perintah SELECT
• Bentuk Umum:
SELECT * FROM Nama_Tabel
• Contoh:
Penambahan Data (Lanjutan…)
• Tambahkan data berikut:
• Untuk data yang kosong, tuliskan NULL Pria
Yogya Jl. Karyacita 9
Joned 05/05/1978
12354
Pria Yogya
Jl. Astina 4A Sueb
04/07/1971 12353
Wanita Klaten
Jl. Kertosono 87 Sinta 29/04/1969 12352 Pria Sleman Ngampilan 2A Edi Damhudi 05/04/1971 12351 Wanita Yogya
Jl. Sawo 108 Intan 01/02/1975 12350 Pria Magelang Karangwaru I/3 Bagus 13/05/1966 12349 Wanita Bantul
Jl. Arumdalu 23 Dian Arum 14/03/1969 12348 Wanita Siti Umayani 12347 Pria Sleman
Penambahan Data dengan
Field Tertentu
• Contoh tanpa mengisi Tanggal lahir, alamat
dan kota
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');
Pengaruh NOT NULL
• Cobalah berikan pernyataan berikut:
INSERT INTO Pribadi(Nip, Sex) VALUES ('12360', ‘W');
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
Melihat Struktur Tabel
• Gunakan perintah:
DESC nama_tabel
• Contoh:
• DESC Pribadi;
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
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
Menambahkan DEFAULT
• DEFAULT pada struktur tabel digunakan
untuk memberikan nilai bawaan pada
suatu field kalau nilai bersangkutan tidak dimasukkan
• Contoh:
Menambahkan DEFAULT
(Lanjutan…)
• Sekarang cobalah berikan perintah:
INSERT INTO Pribadi(Nip, Nama) VALUES (‘12370’, ‘Fahmi Idris’);
• PERHATIKAN, apa isi field Kelamin untuk
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';
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
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:
Penghapusan Tabel
(Lanjutan…)
• Berikan perintah:
DROP TABLE Riwayat;
• Kemudian, lihatlah daftar tabel dengan
memberikan perintah:
SHOW TABLES;
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 untuk EDP
• 2 untuk Pemasaran • 3 untuk Produksi • 4 untuk SDM
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
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
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
Latihan Gabungan
(Lanjutan…)
• Hapuslah record yang berisi data Asti
Damayanti dengan menyebutkan namanya (bukan NIP)
• Ubahlah nama field Keterangan pada
Latihan Gabungan
(Lanjutan…)
• Menambahkan Field:
ALTER TABLE Pribadi ADD Bisa_Bhs_Asing BOOLEAN DEFAULT FALSE;
• Buatlah agar field baru tersebut bernilai
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;
Operator Relasional
• = Sama dengan • > Lebih dari
• < Kurang dari
Susunan Tanggal
• Format: ‘Tahun/Bulan/Tanggal’ • Contoh:
Klausa WHERE pada SELECT
• Bentuk: WHERE kondisi • Contoh:
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
Operator And
• AND digunakan sebagai kriteria “DAN” • Penggunaan: operand AND operand
• Contoh:
Latihan
• Tampilkan Nama pegawai pria yang tinggal di Yogya • Tampilkan Nama pegawai pria yang TIDAK tinggal di
Yogya
• Tampilkan Nama pegawai wanita yang lahir sebelum
Operator Or
• OR digunakan sebagai kriteria “ATAU” • Penggunaan: operand OR operand
• Contoh:
Latihan
• Tampilkan Nama pegawai untuk yang NIP-nya 12345
atau 12346
• Tampilkan Nama pegawai yang tinggal di Yogya atau
Operator Not
• Untuk menyatakan “TIDAK” atau “BUKAN” • Penggunaan: NOT kondisi
• Contoh:
Latihan
• Ubahlah pernyataan berikut dengan menggunakan NOT:
Latihan Campuran
1. Siapa saja pegawai pria yang tidak tinggal di Yogya
2. Siapa saja pegawai wanita yang NIP-nya di bawah 12351 3. Siapa saja yang tidak lahir pada tahun 1971
Operator BETWEEN
• BETWEEN untuk menyatakan suatu jangkauan • Contoh:
SELECT Nama, Tgl_lahir FROM Pribadi WHERE Tgl_lahir BETWEEN ‘1971/01/01’ AND ‘1971/12/31’;
• Cek pula:
SELECT Nama, Tgl_lahir FROM Pribadi WHERE Tgl_lahir
Operator IN dan NOT IN
• IN digunakan untuk melakukan pencocokan terhadap
suatu daftar nilai
• Contoh:
SELECT Nama, Kota FROM Pribadi WHERE Kota IN ("Bantul", "Yogya", "Klaten");
• NOT IN berarti “tidak cocok dengan” • Contoh:
Operator LIKE dan NOT LIKE
• LIKE digunakan untuk mencari data menurut awalan,
akhiran, atau penggalan suatu kata atau suku-kata
• Contoh:
SELECT Nama FROM Pribadi WHERE Nama LIKE "A%";
digunakan untuk mencari nama yang berawalan dengan A
Wildcard untuk LIKE
• Tanda seperti % dinamakan wildcard
• Wildcard % Cocok dengan nol, satu, atau sejumlah
karakter apa saja
• Contoh:
SELECT Nama FROM Pribadi WHERE Nama LIKE “%i”;
Wildcard untuk LIKE (lanjutan…)
• Contoh %:
SELECT Nama FROM Pribadi WHERE Nama LIKE “%s%”;
Wildcard untuk LIKE (lanjutan…)
• Wildcard _ (underscore) digunakan untuk mencocokkan
dengan sebuah karakter apa saja
• Contoh:
SELECT Nama FROM Pribadi WHERE Nama LIKE “%i_n%";
Operator REGEXP
• REGEXP hanya ada pada MySQL
• Wildcard [ ] digunakan untuk mencocokkan dengan
sebuah karakter apa saja yang terdapat dalam tanda tsb
• Contoh:
SELECT Nama FROM Pribadi WHERE Nama REGEXP “^[SDA]”;
Wildcard untuk REGEXP
• $ pada REGEXP berarti berakhiran • Contoh:
SELECT Nama FROM Pribadi WHERE Nama REGEXP “[IA]$”;
Latihan
• Tampilkan nama pegawai yang mengandung AN
• Tampilkan nama pegawai yang TIDAK mengandung
AN
• Tampilkan nama pegawai yang mengandung huruf d
dan kemudian di belakangnya (di posisi manapun) ada H
• Tampilkan nama pegawai yang berawalan S dan
Menampilkan Data Secara
Unik
Klausa DISTINCT
berguna untuk
menampilkan data dengan
menghilangkan yang kembar
Contoh:
Menampilkan Data Secara
Unik
Untuk menghilangkan
NULL:
SELECT DISTINCT Kota
Mengurutkan Data
Klausa ORDER BY berguna untuk
mengurutkan data
Contoh:
SELECT Nama FROM Pribadi ORDER BY Nama;
Mengurutkan Data
(lanjutan…)
Pengurutan dapat dilakukan melalui dua
buah field atau lebih
Contoh:
SELECT Kelamin, Nama FROM Pribadi ORDER BY Kelamin, Nama;
Pengelompokan dengan
GROUP BY
GROUP BY berguna untuk melakukan
pengelompokan data
Contoh:
Klausa HAVING
Berguna untuk menentukan kondisi bagi
GROUP BY
Contoh:
Fungsi Agregat
AVG untuk memperoleh nilai rata-rata COUNT untuk menghitung cacah data MAX untuk menghasilkan nilai terbesar MIN untuk menghasilkan nilai terkecil
Fungsi Agregat (Lanjutan…)
Menghitung gaji rata-rata
SELECT AVG(Gaji) FROM Pekerjaan;
Menghitung gaji per bagian
SELECT Kode_Bag, AVG(Gaji) FROM Pekerjaan GROUP BY Kode_Bag;
Menghitung gaji terbesar
SELECT MAX(Gaji) FROM Pekerjaan;
Menghitung total gaji
Memberi Nama Field
Gunakan AS untuk memberi alias field Contoh:
Query dengan Beberapa
Tabel
Contoh:
SELECT Pribadi.NIP, Pribadi.Nama, Pekerjaan.Gaji
FROM Pribadi, Pekerjaan
Latihan
1. Bagaimana mendapatkan jumlah pegawai?
2. Berapa jumlah pegawai yang bekerja di departemen Akunting?
3. Bagaimana cara mendapatkan data yang meliputi:
NIP
Nama pegawai Gaji
Nama bagian tempat pegawai bekerja
4. Ulangi soal di atas dengan hasil khusus yang gajinya di atas 1 juta.