Media Pembelajaran
1. Bahan Bacaan : Buku Basis Data untuk SMK/MAK Kelas XI Semester 1
Judul bacaan : Basis Data untuk SMK/MAK Kelas XI Semester 1
Link :
https://drive.google.com/file/d/1otAxTTIMsmWJc_ZsqX4qNRGtopotybnA/view?
usp=sharing
2. Video Referensi :
https://www.youtube.com/watch?v=diW-O_iwk4o Tautan
Video ERD : https://www.youtube.com/watch?
v=exbubj9xDV0
Tautan Video Normalisasi Database :
https://www.youtube.com/watch?v=XGqL-5nGDPg
K. Materi Pembelajaran
A. KONSEP BASIS DATA
Secara harfiah, basis data terdiri dari dua kata, yaitu basis dan data. Basis dapatdidefinisikan sebagai
suatu markas atau gudang, tempat bersarang atau berkumpul. Sedangkan data, dapat diartikan sebagai
representasi dari fakta dunia yang mewakili suatu objek (manusia, barang, peristiwa, keadaan, dsb) yang
direkam dalam bentukangka, huruf, simbol, teks, gambar, bunyi, atau kombinasinya.
Sehingga, dapat ditarik kesimpulan bahwa basis data adalah kumpulan data yang saling berhubungan
yang disimpan dalam suatu media penyimpanan tertentu yang dirancang untuk memenuhi kebutuhan
informasi. Jika dibayangkan, basis data sama halnya dengan lemari penyimpanan arsip yang berfungsi
untuk menyimpan sejumlah data yang telah dikelompokkan dan diatur pada tempat yang telah ditentukan.
Bedanya, jika lemari arsip menggunakan lemari besi atau kayu, maka basis data menggunakan media
penyimpanan elektronik.
Gambar 2. Lemari Arsip dan Basis Data
Komponen utama sistem basis data terdiri dari 6 (enam) komponen pokok, yaitusebagai berikut:
1. Perangkat keras komputer
2. Perangkat lunak komputer
3. Sistem operasi
4. Basis data lain yang berhubungan
5. Sistem pengelola basis data (DBMS)
6. Pengguna (user), terdiri dari:
a. Database Administrator, bertanggung jawab atas pengelolaan basis data
b. Database Designer, merancang dan mengembangkan program aplikasi yang
menggunakan basis data
c. Application Programmer, mengoperasikan program aplikasi yang dibuatdengan
menggunakan manipulasi data
d. End User (Pengguna)
Dalam basis data, terdapat level arsitektur basis data yang ditunjukkan padagambar berikut.
Keterangan :
a. Skema Internal, bagian dimana data disimpan secara fisik di dalam komputer.
b. Skema Konseptual, menggambarkan data apa yang disimpan dan hubungan antardata
tersebut.
c. Skema Eksternal, menggambarkan tampilan basis data melalui DBMS yangdigunakan oleh
user.
B. TUJUAN PENGGUNAAN BASIS DATA
Tujuan dari penggunaan basis data terdiri dari kecepatan dan kemudahan (speed), efisiensi ruang
penyimpanan (space), keakuratan (accuracy), ketersediaan (availability), kelengkapan
(completeness), keamanan (security), dan kebersamaan (shareability).
1. Kecepatan dan Kemudahan (Speed), penggunaan basis data memungkinkan untuk melakukan
pengelolaan data dengan cepat dan mudah.
2. Efisiensi Ruang Penyimpanan (Space), penggunaan basis data mampu mengurangi
redudansi/pengulangan data.
3. Keakuratan (Accuracy), melalui basis data keakuratan data akan lebih terjamin dengan
menerapkan aturan tertentu, misalnya tipe data dan keunikan data yangdigunakan.
4. Ketersediaan (Availability), dapat melakukan pemilahan data yang sudah tidak digunakan dan data
yang masih digunakan, dengan cara melakukan penghapusan atau pemindahan data ke media
penyimpanan lain.
5. Kelengkapan (Completeness), agar data yang dikelola lengkap dan relatif dengankebutuhan
pemakai, maka dapat dilakukan penambahan record data, melakukan perubahan struktur basis
data, menambahkan field, atau menambah tabel.
6. Keamanan (Security), pada setiap pengguna basis data dapat dibedakan atau ditentukan pengguna
mana saja yang bisa mengakses dan proses apa saja yang bisa dilakukan.
7. Kebersamaan Pemakai (Shareability), basis data memungkinkan untuk digunakan pada lingkungan
multiuser, dengan tetap menghindari terjadinya inkonsistensi data.
Dalam KBBI, hierarki diartikan sebagai urutan tingkatan atau jenjang. Sehingga, hierarki basis data
adalah urutan tingkatan dalam basis data. Adapun hierarki basis data dapat dilihat pada Gambar.
Keterangan :
1. Basis data merupakan kumpulan data yang saling berhubungan.
2. Tabel adalah himpunan seluruh record data yang bertipe sama.
3. Record merupakan gabungan sejumlah elemen data yang saling terkait. Istilah lain dari record
adalah baris atau tupel.
4. Field merupakan satuan data terkecil yang tidak dapat dipecah lagi menjadi unitlain yang
bermakna. Field dapat juga disebut dengan kolom.
NIS Nama Alamat Kota Jurusan
Tab2:e1l Dandy Jl. Melati II Malang
4 6 RPL
7
2146 Jihan Jl. Bangau Malang RPL
8 V
2146 Aldo Jl. Malang TKJ
Jupiter I
9
Gambar 5. Tabel, Record, dan Field
Keterangan :
: Tabel
Pada gambar di atas menampilkan Tabel Siswa.
: Record / Baris / Tupel
Pada tabel di atas terdapat 5 buah field, yaitu field NIS, Nama, Alamat,Kota, dan Jurusan.
KONSEP ERD
Entity Relationship Diagram (ERD) adalah suatu bentuk diagram yang menjelasakan
hubungan antar objek data yang mempunyai hubungan/relasi. ERD digunakan untuk
memodelkan struktur data dan hubungan antar data, dan untuk menggambarkannya
digunakan notasi, simbol, bagan, dan lain sebagainya. ERD memungkinkan kita
menggambarkan konteks objek dan hubungannya, dan digunakan secara luas untuk
mengembangkan desain database awal.
Berikut adalah komponen dan simbol yang digunakan dalam ERD :
2. Entitas Lemah, merupakan entitas yang bergantung dengan entitas lain. Contohnya
adalah entitas tunjangan yang bergantung terhadap entitas pegawai. Entitas lemah
digambarkan dengan bentuk persegi panjang dengan dua garis.
ATRIBUT
Atribut merupakan karakteristik dari entitas atau relasi, yang memberikan penjelasan
detail tentang entitas atau relasi. Dalam penerapannya, atribut merupakan field atau kolom
dari sebuah tabel. Contohnya adalah entitas siswa yang memiliki atribut nama, alamat, NIS,
tanggal lahir, dll. Berdasarkan karakteristik atau sifatnya, atribut dapat dikelompokkan
menjadi :
4. Simple Attribute dan Composite Attribute
Simple Attribute, merupakan atribut yang tidak bisa dipecah lagi menjadi atribut
lain. Contoh: atribut jenis kelamin.
Composite Attribute, merupakan atribut yang bisa dipecah lagi menjadi
beberapa atribut. Contoh: atribut nama yang bisa dipecah menjadi atribut nama
depan, nama tengah, dan nama belakang.
Atribut komposit digambarkan dengan cara seperti di bawah ini.
nilai. Contohnya adalah atribut hobi, yang memungkinkan 1 orang memiliki lebih
dari 1 hobi. Multivalue atributte digambarkan dengan cara seperti di bawah ini
6. Mandatory Attribute, merupakan atribut yang nilainya tidak boleh kosong (not null)
7. Derivied Attribute (Atribut Turunan), adalah atribut yang nilainya diperoleh dari
pengolahan atau dapat diturunkan dari atribut atau tabel lain yang
berhubungan. Contoh: atribut usia diturunkan dari atribut tanggal lahir. Derivied atributte
digambarkan dengan cara seperti di bawah ini.
8. Key Attribute, merupakan suatu atribut yang menandakan kunci dari suatu entitas
yang bersifat unik. Key attribute adalah satu atau beberapa atribut yang mempunyai
nilai unik sehingga dapat digunakan untuk membedakan data pada suatu baris/record
dengan baris lain pada suatu entitas. Key atribut dibagi menjadi :
Super Key, merupakan atribut yang dapat membedakan data secara
unik.Contoh: nis, nama, alamat, dll.
Candidat Key, merupakan atribut yang dapat menjadi primary key. Contoh:
nim, nik, nis, nip, dll.
Alternate Key, merupakan atribut yang tidak menjadi primary key dan
sebelumnya termasuk dalam candidat key.
Primary Key, merupan atribut yang menjadi kunci utama.
Foreign Key, merupakan atribut yang menjadi kunci tamu.
Perhatikan!
Penjelasan:
Diagram di atas menunjukkan entitas siswa memiliki beberapa atribut,yaitu
sebagai berikut :
Hint
One/Satu Many/Banyak
Normalisasi adalah teknik memecah data menggunakan cara–cara tertentu untuk mencegah
timbulnya permasalahan pengolahan data dan meminimalkan redundansi data pada suatu
database sehingga basis data dapat bekerja dengan optimal.
Tujuan dari normalisasi database adalah :
1. Menghilangkan redudansi data
2. Mengurangi kompleksitas
3. Mempermudah dalam manipulasi/pemodifikasian data
Manfaat yang diperoleh dari hasil proses normalisasi adalah :
1. Basis data menjadi mudah diakses
2. Data mudah dikelola
3. Meminimalkan tempat penyimpanannya
Ciri-ciri tabel yang ternormalisasi adalah :
1. Jumlah atribut bersifat minimal, sesuai dengan kebutuhan data.
2. Atribut yang berhubungan dekat (disebut functional dependency) ditempatkan
dalam tabel yang sama.
Bentuk Normal
Pertama (1NF)
4. Menghilangkan ketergantunganparsial
Bentuk Normal
Kedua (2NF)
2. Menghilangkan ketergantungantransitif
Bentuk Normal
Ketiga (3NF)
5. Menghilangkan ketergantungan
multivalue
Bentuk Normal
Keempat (4NF)
6. Menghilangkan join
Bentuk Normal
Kelima (5NF)
Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF). Biasanya
hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan
tabel-tabel yang berkualitas baik. Urutan normalisasiadalah sebgai berikut 1NF, 2NF, 3NF,
BCNF, 4NF, 5NF.
No. Proyek Nama Proyek No. Pegawai Nama Pegawai Golonga Gaji
n
PG001 Adnan A 7.500.000
P0001 PRR PG009 Lucas B 6.000.000
PG010 Syafiq B 6.000.000
PG002 Mahendra A 7.500.000
P0002 PMD PG007 Dion B 6.000.000
PG017 Farzan C 4.000.000
Tabel Proyek
No. Proyek Nama Proyek
P0001 PRR
P0002 PMD
Tabel Pegawai
No. Pegawai Nama Pegawai Golonga Gaji
n
PG001 Adnan A 7.500.000
PG002 Mahendra A 7.500.000
PG007 Dion B 6.000.000
PG009 Lucas B 6.000.000
PG010 Syafiq B 6.000.000
PG017 Farzan C 4.000.000
Dari hasil normalisasi 2NF di atas, pada tabel pegawai masih ditemukan adanya
ketergantungan transitif pada tabel pegawai. Field gaji bergantung pada field golongan, field
golongan bergantung pada no_pegawai.
Sehingga, pada tabel pegawai perlu dilakukan dekomposisi, yakni dengan
memecahnya menjadi 2 buah tabel, yaitu tabel pegawai dan tabel golongan.Sehingga,
jika tabel 2NF di atas dilakukan normalisasi 3NF, maka akan berubah menjadi seperti
berikut :
Tabel Proyek
No. Proyek Nama Proyek
P0001 PRR
P0002 PMD
Tabel Pegawai
No. Pegawai Nama Pegawai Golonga
n
PG001 Adnan A
PG002 Mahendra A
PG007 Dion B
PG009 Lucas B
PG010 Syafiq B
PG017 Farzan C
Tabel Golongan
Golonga Gaji
n
A 7.500.000
B 6.000.000
C 4.000.000
Pada tabel pegawai masih disertakan field golongan, agar tabel pegawai dan tabel
golongan saling terhubung.
MySQL merupakan salah satu DBMS (Database Management System) yang
banyak digunakan oleh pemula untuk mengakses data di dalam database. Pada
dasarnya, untuk menjalankan MySQL, bahasa yang digunakan tetap
menggunakan bahasa SQL. Tidak hanya untuk MySQL, untuk DBMS lainnya pun
akan tetap menggunakan bahasa SQL. Sehingga itulah kenapa SQL masih
menjadi salah satu bahasa pemrograman favorit meskipun telah ada sejak
tahun 1986.
MySQL yang pertama kali diluncurkan pada tahun 1995, terbagi menjadi
dua jenis lisensi, yaitu Free Software (bersifat gratis) dan Shareware (software
berpemilik dengan penggunaan yang terbatas. Untuk menggunakan MySQL, kita
akan membutuhkan beberapa command yang tergabung ke beberapa
kelompok seperti DDL, DML, DCL, dan TCL. Dalam artikel ini, kita akan
membahas perintah-perintah apa saja sih yang termasuk ke masing-masing
kelompok. Yuk, simak pembahasannya!
SQL Bertingkat
Subquery (disebut juga subselect atau nested select/query atau inner-select) adalah query
SELECT yang ada di dalam perintah SQL lain misalnya SELECT, INSERT, UPDATE, atau
DELETE.
“Dapatkan data mahasiswa yang alamatnya sama dengan mahasiswa dengan nim 104”
Secara normal, diperlukan dua tahapan untuk menyelesaikan kasus di atas. Pertama adalah
mendapatkan alamat dari mahasiswa yang memiliki nim 104. Langkah selanjutnya, baru kita bisa
mengetahui data mahasiswa yang alamatnya sama dengan mahasiswa dengan nim 104.
Adapun dengan memanfaatkan subquery, maka penyelesaian kasus di atas hanya memerlukan
sebuah query (akan dijelaskan nanti). Pada hakekatnya, subquery sangat berguna ketika sebuah
query didasarkan pada nilai-nilai yang tak diketahui.
Materi SQL bertingkat dapat kita sebut dengan istilah
SubQuery. Sintaks formal subquery diperlihatkan sebagai
berikut:
SELECT A1, A2, ..., An
FROM r1, r2, r3, ..., rm
WHERE P
a. Scalar Subquery
Subquery baris tunggal (scalar ) hanya mengembalikan hasil satu baris data.
Bentuk subquery ini diperlihatkan seperti Gambar 1.
Subquery baris tunggal dapat menggunakan operator baris tunggal =, >, >=, <, <=, atau <>.
b. Multiple-Row Subquery
Subquery baris ganda (multiple-row) mengembalikan lebih dari satu baris data. Bentuk subquery
ini diperlihatkan seperti Gambar 2.
Subquery baris ganda dapat menggunakan operator komparasi IN, ANY/SOME, atau
ALL.
c. Multiple-Column Subquery
Subquery kolom ganda (multiple-column) mengembalikan lebih dari satu baris dan satu
kolom data. Bentuk subquery ini diperlihatkan seperti Gambar 3.
Fungsi dan Store Prosedur
Store procedure dan function adalah rangkaian program yang disimpan dalam
database dan dapat dipanggil oleh program lain atau melalui SQL Prompt. Store
procedure ditulis dalam bentuk suatu script.
Untuk membuat stored procedure/function pada database digunakan
pernyataan CREATE PROCEDURE atau CREATE FUNCTION.
Keuntungan :
1. Cepat, kompilasi dilakukan didatabase (kadang disebut “pre-
compilation”) sehingga mengurangi traffic
2. Adanya pemisahan antara database dan access logic dengan
application logic sehingga program aplikasi menjadi lebih sederhana dan
lebih ringkas
3. Berupa obyek dalam database, sehingga menghilangkan
ketergantungan terhadap bahasa program yang digunakan
4. Bersifat portable, jika bisa berjalan didatabase tersebut maka dipastikan
jika database bisa terinstall dimanapun maka store procedure pasti bisa
dijalankan
Dari contoh diatas terlihat bahwa parameter “x” (sebagai OUT) digunakan untuk
menampung hasil dari perintah routine_body. Pernyataan “into x”, inilah
yang mengakibatkan “x” menyimpan informasi nama (sebagai kolom yang ter-
select). Untuk menjalankan procedure digunakan ststemen call. Pernyataan
“call pMHS(@Nama)” menghasilkan informasi yang kemudian disimpan pada
parameter “@Nama”. Kemudian untuk menampilkan informasi ke layar digunakan
pernyataan “select @Nama”.
Function
Contoh :