JobSheet Basis Data 2021
JobSheet Basis Data 2021
PERANCANGAN
BASIS DATA
MKK-23207
Disusun Oleh
Putu Indah Ciptayani, S.Kom. M.Cs
Job Sheet 1
A. Standar Kompetensi
Mahasiswa mampu merancangkan basis data relasional dan menggunakan
bahasa basis data dalam pengelolaannya
B. Kompetensi Dasar
Setelah mempelajari materi ini, mampu merancangkan serta memodelkan
basis data dalam bentuk ERD menggunakan aplikasi pendukung
perancangan ERD dan memetakannya ke dalam tabel-tabel basis data.
C. Indikator
1. Mahasiswa mampu menentukan entitas dan atributnya
2. Mahasiswa mampu menentukan jenis atribut
3. Mahasiswa mampu menentukan relasi dan kekangan kardinalitas antar
entitas
4. Mahasiswa mampu menggambarkan rancangan ERD ke dalam
software penunjang
5. Mahasiswa mampu memetakan ERD ke dalam tabel-tabel database
D. Peralatan
1. Seperangkat computer yang sudah terinstal Microsoft Visio, MySQL,
Web Server Apache dengan browser atau SQLYog
2. Buku Ajar
3. Job sheet
4. Kertas A4 dan tinta printer untuk mencetak diagram pada praktikum
E. Teori
1. Entity Set
Sebuah database dimodelkan dengan sekumpulan entitas dan
relasi antar entitasnya. Entitas merupakan objek yang berwujud dan
dapat dibedakan dengan objek lainnya.
Contoh, dalam database akademik ada entitas mahasiswa, dosen
dan matakuliah.
Entity set (himpunan entitas) merupakan sekumpulan entitas yang
memiliki tipe sama, misalnya sekumpulan entitas mahasiswa disebut
sebagai entity set mahasiswa, sedangkan sekumpulan entitas matakuliah
disebut sebagai entity set matakuliah.
1
Perancangan Basis Data
Contoh :
Mahasiswa Matakuliah
2. Atribut
Atribut adalah properti yang dimiliki oleh semua anggota dari entity
set. Sebuah entitas akan memiliki atribut, misalnya entitas mahasiswa memiliki
atribut NIM, nama_mahasiswa, alamat_mahasiswa, telp_mahasiswa,
tanggal_lahir. Entitas matakuliah misalnya memiliki atribut kode_matakuliah,
nama_matakuliah dan SKS.
Terdapat beberapa jenis atribut, yaitu sebagai berikut:
a. Atribut sederhana : yaitu atribut yang tidak bisa dipecah lagi dan
hanya bernilai tunggal. Contohnya yaitu NIM, agama,
jenis_kelamin. Penggambaran atribut ini adalah dengan symbol
elips
b. Atribut komposit : yaitu atribut yang nilai dapat dipecah-pecah.
Misalnya : nama dapat dipecah menjadi nama depan dan nama
belakang, alamat dapat dipecah menjadi nama_jalan, kecamatan,
kota, provinsi, kode_pos. Atribut ini digambarkan dengan elips yang
bercabang
c. Atribut bernilai banyak : yaitu sebuah atribut yang nilainya bisa
lebih daripada satu. Misalnya : hobby (mahasiswa bisa saja punya
lebih daripada satu hobby), telp (mahasiswa bisa saja punya lebih
daripada satu telp). Atribut ini digambarkan dengan double-lined
ellipse
d. Atribut turunan : yaitu atribut yang nilainya dapat
diturunkan/dihitung dari atribut lainnya. Misalnya umur dapat
dihitung dari atribut tanggal_lahir, subtotal dapat dihitung dari
jumlah dikalikan dengan harga. Atribut ini digambarkan dengan
elips bergaris putus-putus.
Contoh penggambaran atribut dari entitas mahasiswa dapat dilihat sebagai
berikut:
2
Perancangan Basis Data
Nama_depan Nama_belakang
hobby
Mahasiswa umur
telp
Alamat Kode_pos
Nama_jalan
kecamatan kota provinsi
3. Kunci/Key
Kunci merupakan atribut yang bernilai unik. Misalnya : mahasiswa
memiliki NIM yang tidak akan sama dengan mahasiswa yang lainnya. Kunci
juga bisa tersusun dari dua atau lebih atribut. Terdapat beberapa jenis
kunci yaitu:
• Super key : satu atau beberapa atribut yang memiliki nilainya secara
unik menggambarkan setiap entitas.
• Candidate key : super key dengan panjang minimal
• Primary key : kunci utama tabel yang dipilih dari salah satu candidate
key. Dalam sebuah entity set bisa saja terdapat lebih dari satu buah
candidate key, akan tetapi nantinya akan dipilih salah satu saja yang
3
Perancangan Basis Data
Contoh :
Nama_pegawai
NIP telp
Pegawai jabatan
Dalam contoh ERD di atas, maka bisa disusun kunci-kunci sebagai berikut:
• Super key : {NIP}, {NIP, Nama_pegawai}, {telp}
• Candidate key : {NIP}, {telp}
• Primary key : {NIP}
Catatan :
- Telp bisa menjadi super key karena nonor telp antara satu pegawai
dan lainnya tidak sama
- Nama_pegawai saja tidak bisa menjadi super key karena bisa jadi ada
pegawai yang memiliki nama sama, demikian juga dengan jabatan.
Namun saat NIP bergabung dengan nama_pegawai, ini akan menjadi
perpaduan yang unik (tidak mungkin ada NIP dan nama pegawai yang
sama)
- Untuk pengambilan candidate key maka akan diambil super key
terpendek yaitu
- Untuk pemilihan primary key harus dipastikan yang paling unik,
sederhana dan tidak akan berubah-ubah. Telp memang unik, tapi bisa
jadi nomor telp seorang pegawai akan berubah, sehingga NIP akan
lebih baik untuk primary key.
Sebuah entitas yang kuat harus memiliki kunci primer. Kunci primer
dilambangkan dengan atribut bergaris bawah, seperti contoh berkut :
Nama_depan Nama_belakang
hobby Nama_pegawai
Mahasiswa umur NIP
telp
Alamat Kode_pos Pegawai
Nama_jalan
kecamatan kota provinsi jabatan telp
4
Perancangan Basis Data
Konselor Ruangan
supervisor
menangani
Pegawai memimpin
bawahan
Client
1 1
Mahasiswa memiliki Skripsi
5
Perancangan Basis Data
5. Entitas Lemah
Entitas lemah merupakan entitas yang keberadaannya bergantung
pada entitas lainnya dan tidak memiliki primary key. Keberadaan entitas
lemah bergantung pada entitas kuat lainnya yang disebut identifying entity.
Relasi antara entitas lemah ke identifying entity-nya bersifat many-to-one.
Entitas lemah dilambangkan dengan kotak bergaris ganda. Meskipun tidak
memiliki primary key, namun entitas lemah hendaknya memiliki
discriminator. Discriminator (atau partial key) dari sebuah weak entity set
merupakan sekumpulan atribut yang dapat membedakan seluruh entitas
dari anggota entitas lemah lainnya. Contoh entitas lemah misalnya keluarga
pegawai yang ditanggung oleh perusahaan tempat pegawai berkerja.
NIP Nama_pegawai Nama_keluarga Tanggal_lahir
hubungan
1 n
Pegawai menanggung Keluarga_Pegawai
6
Perancangan Basis Data
7
Perancangan Basis Data
Maka PID dan port akan terisi dan teks pada tombol akan berubah
menjadi “Stop” apabila proses berhasil. Jika tidak terjadi perubahan, maka
berati proses gagal.
8
Perancangan Basis Data
c. Untuk membuat sebuah basis data, maka Anda perlu menekan tab
Database, kemudian ketikkan nama database dan klik Create.
9
Perancangan Basis Data
1 2
Jika berhasil maka akan muncul teks “Database has been created” atau
teks dalam Bahasa Indonesia “Database telah dibuat” dan Anda dapat
melihat pada sisi sebelah kiri
10
Perancangan Basis Data
f. Sebelum membuat tabel, pemahaman akan tipe data pada MySQL harus
dipahami terlebih dahulu
Tipe Data Date and Time : menyimpan data dalam bentuk waktu
baik tanggal lengkap sampai dengan detik ataupun tahunnya
saja.
Contoh : tanggal lahir
11
Perancangan Basis Data
12
Perancangan Basis Data
1 2
2
i. Setelah menekan Save, maka Anda akan menemui tampilan sebagai
berikut:
13
Perancangan Basis Data
Keterangan :
- Untuk menghapus tabel Anda bisa menekan drop
- Untuk bisa melihat data Anda bisa menekan Browse
- Untuk bisa mengubah struktur data (tipe data dan nama kolom
tabel) Anda bisa menekan Structure
- Untuk mengisi data, Anda bisa menekan Insert
j. Misalnya ingin membuat tabel dengan kunci tamu (foreign key) seperti
tabel barang di bawah ini:
Field Tipe Data Keterangan
Kode_barang VARCHAR PRIMARY KEY, NOT NULL
(10)
Nama_barang VARCHAR
(30)
Stock SMALLINT
Harga INT
Tgl_kadaluwarsa DATE
Kode_kategori INT FOREIGN KEY REFERENCES
kategori_barang.kode_kategori
1
2
14
Perancangan Basis Data
m. Untuk menambahkan kunci tamu (foreign key) pada tabel barang, klik
Structure pada tabel barang
15
Perancangan Basis Data
16
Perancangan Basis Data
F. Keselamatan Kerja
1. Ikuti langkah kerja yang ada pada job sheet
2. Perhatikan keamanan instalasi listrik saat menghidupkan dan
mematikan computer
3. Pastikan lingkungan kerja (meja, kursi dan computer) bersih, baik
sebelum maupun sesudah penggunaan
4. Jika ada hal yang kurang jelas, tanyakan kepada dosen pengampu
G. Langkah Kerja
17
Perancangan Basis Data
1. Contoh Kasus 1
a. Bacalah study kasus berikut
Bangunlah basis data untuk kasus pencatatan data mahasiswa suatu
kampus, dimana pada kasus ini dipersempit yang dicatat hanyalah
matakuliah yang dipelajari oleh mahasiswa selama masa
perkuliahannya, data skripsi yang dimiliki oleh mahasiswa dan project-
project yang pernah dikerjakannya. Adapu detail kasus (aturan bisnis)
adalah sebagai berikut:
1) Setiap mahasiswa memiliki data NIM, nama depan, nama
belakang, tanggal lahirnya, umur, alamat berupa : nama jalan,
kecamatan, kota, provinsi dan kode pos, untuk kepentingan
identifikasi minat dan bakat maka hobby mahasiswa juga didata
dan boleh lebih daripada satu hobby. NIM mahasiswa
merupakan kode unik dengan panjang karakter yaitu 10.
2) Setiap mahasiswa akan mempelajari beberapa matakuliah
selama masa studinya, dimana data matakuliah berupa nama
matakuliah, sks dank ode matakuliah. Setiap akhir periode
pembelajaran maka mahasiswa akan mendapatkan nilai berupa
nilai angka dan nilai huruf. Nilai angka bisa disimpan hingga 2
digit di belakang koma, sedangkan nilai huruf berupa A, AB, B
sampai dengan E. Kode matakuliah memiliki panjang karakter
yang tepat 7 karakter.
3) Setiap mahasiswa akan mempunyai skripsi sebagai syarat
kelulusannya. Satu mahasiswa hanya mempunyai satu skripsi
saja, sedangkan satu skripsi akan dimiliki oleh satu mahasiswa
saja. Data skripsi yang dicatat berupa kode skripsi, judul skripsi
dan abstraknya
4) Kampus seringkali mengadakan lomba untuk mengerjakan
project-project tertentu, dimana mahasiswa yang mengerjakan
project akan didanai. Setiap projet memiliki judul dank ode
project. Setiap project hanya boleh dikerjakan oleh satu orang
mahasiswa, sedangkan seorang mahasiswa boleh saja
mengerjakan beberapa project.
18
Perancangan Basis Data
19
Perancangan Basis Data
Judul_project
Kode_project
Tabel mahasiswa
20
Perancangan Basis Data
Tabel Matakuliah
Nama Kolom Tipe Data Keterangan
Kode_matakuliah CHAR(7) PRIMARY KEY, NOT NULL
Nama_matakuliah VARCHAR (40)
SKS TINYINT
Tabel skripsi
Nama Kolom Tipe Data Keterangan
Kode_skripsi INT PRIMARY KEY, NOT NULL,
AUTO_INCREMENT
Judul_skripsi VARCHAR (120)
Abstrak VARCHAR (500)
NIM VARCHAR(10) FOREIGN KEY REFERENCES
mahasiswa.NIM
Tabel project
Nama Kolom Tipe Data Keterangan
Kode_project INT PRIMARY KEY, NOT NULL,
AUTO_INCREMENT
Judul_project VARCHAR (120)
Dana_project INT
NIM CHAR(10) FOREIGN KEY REFERENCES
mahasiswa.NIM
Tabel hobby_mahasiswa
Nama Kolom Tipe Data Keterangan
NIM VARCHAR(10) PRIMARY KEY, NOT NULL, FOREIGN
KEY REFERENCES mahasiswa.NIM
Hobby VARCHAR (30) PRIMARY KEY, NOT NULL
Tabel nilai_mahasiswa
Nama Kolom Tipe Data Keterangan
21
Perancangan Basis Data
2. Contoh Kasus 2
a. Bacalah study kasus berikut
Bangunlah basis data untuk kasus berikut. Sebuah perusahaan ingin
mencatat keluarga yang ditanggung oleh para pegawainya. Adapun
keluarga yang dimaksudkan adalah suami/istri dan anak-anaknya.
Adapu detail kasus (aturan bisnis) adalah sebagai berikut:
1) Setiap pegawai akan didata NIP dan namanya. NIP memiliki
panjang tepat 18 karakter.
2) Data keluarga yang dicatat berupa nama, tanggal lahir dan
hubungannya dengan pegawai. Satu keluarga berhubungan
hanya dengan satu orang pegawai saja.
22
Perancangan Basis Data
hubungan
1 n
Pegawai menanggung Keluarga_Pegawai
Tabel pegawai
Nama Kolom Tipe Data Keterangan
NIP CHAR(18) PRIMARY KEY, NOT NULL
Nama_pegawai VARCHAR (60)
Tabel keluarga_pegawai
Nama Kolom Tipe Data Keterangan
Nama_keluarga CHAR(18) PRIMARY KEY, NOT NULL
Tanggal_lahir DATE
Hubungan ENUM (Istri,
Suami, Anak)
NIP CHAR(18) PRIMARY KEY, NOT NULL, FOREIGN
KEY REFERENCES pegawai.NIP
23
Perancangan Basis Data
H. Evaluasi
Susunlah ERD dari kasus berikut dan kemudian bangunlah database dari hasil
pemetaan ERD ke dalam MySQL!
24
Perancangan Basis Data
Job Sheet 2
A. Standar Kompetensi
Mahasiswa mampu merancangkan basis data relasional dan menggunakan
bahasa basis data dalam pengelolaannya
B. Kompetensi Dasar
Setelah mempelajari materi ini, mahasiswa diharapkan mampu memahami
konsep normalisasi dan merancang basis data sesuai konsep normalisasi data.
C. Indikator
1. Mahasiswa mampu memahami berbagai jenis ketergantungan
fungsional
2. Mahasiswa mampu merancang basis data sesuai konsep normalisasi
D. Peralatan
1. Seperangkat computer yang sudah terinstal MySQL, Apache Web
Server dan browser atau SQLYog
2. Buku Ajar
3. Job sheet
4. Kertas A4 dan tinta printer untuk mencetak diagram pada praktikum
E. Teori
Normalisasi merupakan suatu proses yang digunakan untuk menentukan
pengelompokkan atribut-atribut dalam sebuah relasi sehingga diperoleh
relasi yang terstruktur baik. Relasi yang terstruktur baik adalah relasi yang
memenuhi 2 kondisi :
1. Mengandung redundansi sesedikit mungkin
2. Memungkinkan baris-baris dalam relasi disisipkan, dimodifikasi dan
dihapus tanpa menimbulkan kesalahan atau ketidakonsistenan
Normalisasi dilaksanakan melalui sejumlah langkah. Setiap langkah
berhubungan dengan bentuk normal tertentu. Bentuk normal adalah suatu
keadaan yang dihasilkan oleh penerapan aturan-aturan sederhana yang
berhubungan dengan dependensi fungsional terhadap relasi tersebut.
Dalam normalisasi, dikenal istilah anomali. Anomali adalah masalah yang
timbul dalam relasi ketika terjadi operasi pemutakhiran data dalam relasi.
Masalah yang terjadi misalnya pengubahan data yang membuat
25
Perancangan Basis Data
Tabel lainnya yang akan digunakan sebagai contoh adalah tabel dosen :
No_Dosen Nama_Dosen Jenis_Kel Pendidikan Thn_Lulus
D41 Ika P S1 1987
D41 Ika P S2 1990
D42 Iko L S1 1987
D42 Iko L S2 1992
D42 Iko L S3 1999
D43 Ike L s1 1994
26
Perancangan Basis Data
1. Dependensi Fungsional
Kadang dikenal dengan istilah dependensi saja. Merupakan kekangan
antara dua buah atribut atau dua buah himpunan atribut. Sebuah atribut Y
dikatakan mempunyai ketergantungan fungsional terhadap X apabila setiap
nilai dalam X berhubungan dengan satu nilai yang sama dalam Y. Dependensi
Y terhadap X dinotasikan dengan X→Y. Notasi X→ Y dibaca dengan salah satu
bentuk
X panah Y
X menentukan Y
Y tergantung secara fungsional terhadap X
Atribut di sebelah kiri panah biasa disebut penentu atau determinan,
sedangkan atribut di sebelah kanan panah disebut dengan dependen atau yang
tergantung.
Contoh dependensi fungsional pada tabel barang_pemasok adalah :
Kode_Barang→Nama_Brg
Kode_Barang→Hrg
Kode_Barang→Kode_Pemasok
Kode_Barang→Nama_Pemasok
Nama_Brg→Kode_Barang
Kode_Pemasok→Nama_Pemasok
Nama_Pemasok→Kode_Pemasok
Sebuah atribut bisa bergantung pada lebih dari satu atribut. Contoh :
{X,Y}→Z
Artinya atribut Z mempunyai dependensi terhadap pasangan X dan Y.
2. Dependensi Sepenuhnya
27
Perancangan Basis Data
3. Dependensi Parsial
Suatu atribut Y dikatakan memiliki dependensi parsial terhadap X apabila
memenuhi dua kondisi berikut :
• Y adalah atribut non kunci primer dan X adalah kunci primer
• Y memiliki dependensi fungsional terhadap bagian dari X tetapi
tidak terhadap keseluruhan dari X
Contoh pada tabel dosen:
No_Dosen→Jenis_Kel (di mana No_Dosen merupakan bagian dari kunci
primer {No_Dosen,Pendidikan})
4. Dependensi Transitif
Suatu atribut Z dikatakan memiliki dependensi transitif terhadap X
apabila memenuhi dua kondisi berikut :
• Z memiliki dependensi fungsional terhadap Y
• Y memiliki dependensi fungsional terhadap X
Dinotasikan : X→Y→Z
Contoh :
• Kode_barang→Kode_Pemasok
• Kode_Pemasok→Nama_Pemasok
Maka dapat ditulis :
• Kode_Barang→Kode_Pemasok→Nama_Pemasok
5. Diagram dependensi
Dependensi dapat digambarkan ke dalam diagram. Untuk tabel
barang_pemasok dan tabel dosen, diagram dependensi dapat digambarkan
sebagai berikut:
28
Perancangan Basis Data
Setelah 1NF terbentuk, maka tentukan kunci primer. Pada contoh di atas
yang menjadi kunci primer adalah NomorPegawai dan NomorKlien. Tabel 1NF
di atas masih terkena anomali penyisipan, anomali pengubahan dan anomali
penghapusan, sehingga harus dilakukan normalisasi lebih lanjut.
29
Perancangan Basis Data
Tabel Pegawai_Klien pada contoh di atas menjadi bentuk 2NF sebagai berikut:
Pegawai(NomorPegawai,NamaPegawai)
Klien(NomorKlien,NamaKlien)
Pegawai_Klien(NomorPegawai,NomorKlien)
30
Perancangan Basis Data
Suatu keadaan yang menyaratkan relasi harus sudah berada dalam bentuk
normal kedua dan tidak mengandung dependensi transitif. Contohnya pada
relasi barang_pemasok yaitu :Kode_barang → Kode_Pemasok →
Nama_Pemasok. Cara mendekomposisinya :
Bentuk tabel yang mewakili dependensi fungsional yang tidak
melibatkan kunci primer dalam relasi semula. Determinannya mejadi
kunci primer tabel yang dibentuk
Bentuk tabel yang berisi kunci primer tabel semula. Kemudian
pindahkan semua atribut bukan kunci primer yang bergantung pada
kunci primer tetapi tidak bergantung pada determinan lain ke tabel
tersebut. Jadikan atribut yang menjadi kunci primer tabel semula
sebagai kunci primer tabel baru. Atribut yang berasal dari determinan
yang menjadi perantara akan bertindak sebagai kunci asing/tamu
Contoh :
R(A,B,C,D)
Kunci (A)
B→C
A→B
R1(B,C)
R2(A,D,B)
Dari diagram tersebut jelas terlihat bahwa tabel tersebut sudah memenuhi
bentuk 2NF, karena tidak terdapat dependensi parsial. Namun masih terdapat
dependensi transiti segingga belum memenuhi bentuk 3 NF. 3NF untuk tabel
barang_pemasok:
Pemasok(Kode_Pemasok,Nama_Pemasok,Kota)
Barang(KodeBarang,NamaBrg,Kode_Pemasok)
F. Keselamatan Kerja
1. Ikuti langkah kerja yang ada pada job sheet
31
Perancangan Basis Data
G. Langkah Kerja
Gambarkan diagram dependensi dari kasus berikut, kemudian lakukan
normalisasi hingga 3NF.
32
Basis Data
33
Basis Data
1. Ubah setiap sel menjadi atomic dan tidak ada data ganda, sehingga
memenuhi bentuk 1NF.
Diagram dependensi :
34
Basis Data
H. Evaluasi
Temukan sebuah kasus, buatlah aturan bisnis selengkap mungkin, lalu
berikan contoh data dan lakukan normalisasi hingga 3NF. Lalu buatlah
database dengan nama NIM_jobsheet2. Simpanlah tabel-tabel hasil
normalisasi ke dalam database tersebut.
35
Basis Data
Job Sheet 3
A. Standar Kompetensi
Mahasiswa mampu merancangkan basis data relasional dan menggunakan
bahasa basis data dalam pengelolaannya
B. Kompetensi Dasar
Setelah mempelajari materi ini, mahasiswa mampu memahami konsep dasar
Structure Query Language dan mampu menerapkan bahasa query DDL.
C. Indikator
1. Mahasiswa mampu memahami perintah DDL
2. Mahasiswa mampu menggunakan DDL dalam membangun basis data
D. Peralatan
1. Seperangkat computer yang sudah terinstal MySQL, Apache Web
Server dan browser atau SQLYog
2. Buku Ajar
3. Job sheet
4. Kertas A4 dan tinta printer untuk mencetak diagram pada praktikum
E. Teori
36
Basis Data
a. Membuat database
CREATE DATABASE <nama database>;
Contoh :
CREATE DATABASE tutorial1;
b. Melihat database
SHOW DATABASES;
37
Basis Data
Contoh :
CREATE TABLE mahasiswa
(NIM char(10),
Nama_mahasiswa varchar(100),
Gaji_orang_tua INT,
Tgl_lahir DATE
);
Contoh :
CREATE TABLE ruangan
( Kode_ruang INT AUTO_INCREMENT,
Nama_ruangan VARCHAR(50),
PRIMARY KEY(Kode_ruangan)
);
Contoh :
SHOW COLUMNS FROM ruangan;
Contoh :
ALTER TABLE ruangan
ADD nama_gedung VARCHAR(100);
b) Menghapus kolom
38
Basis Data
Contoh :
ALTER TABLE ruangan
DROP nama_gedung;
c) Mengubah kolom
Untuk mengubah kolom bisa dilakukan dengan sintaks MODIFY
atau CHANGE.
MODIFY
ALTER TABLE <nama tabel>
MODIFY field tipe data baru;
Contoh :
ALTER TABLE ruangan
MODIFY Nama_ruangan VARCHAR(50);
CHANGE
ALTER TABLE <nama tabel>
CHANGE <nama field lama> <nama field baru> tipe data baru;
Contoh :
ALTER TABLE ruangan
MODIFY Nama_ruangan Nama VARCHAR(50);
Contoh :
RENAME TABLE ruangan to ruang;
j. Menghapus tabel
DROP TABLE <nama tabel>
Contoh :
DROP ruangan;
39
Basis Data
k. Menghapus database
DROP DATABASE <nama database>
Contoh :
DROP DATABASE Tutorial1;
F. Keselamatan Kerja
1. Ikuti langkah kerja yang ada pada job sheet
2. Perhatikan keamanan instalasi listrik saat menghidupkan dan
mematikan computer
3. Pastikan lingkungan kerja (meja, kursi dan computer) bersih, baik
sebelum maupun sesudah penggunaan
4. Jika ada hal yang kurang jelas, tanyakan kepada dosen pengampu
G. Langkah Kerja
Catatan : pada Jobsheet ini, kita akan mempelajari cara menggunakan
SQLYog untuk mengakses MySQL.
1. Bukalah XAMPP Control Panel dan start MySQL
40
Basis Data
Keterangan :
Host : localhost (karena Anda mengakses dari komputer local)
Username : root (user default, kecuali Anda memiliki username lain dan
ingin login dengan username tersebut)
Password : dikosongkan (secara default password kosong, namun jika
Anda telah mengubah atau membuat password pada saat instalasi, maka
isikanlah password tersebut)
Post : 3306 (sesuai dengan port saat Anda start MySQL di XAMPP Control
Panel)
41
Basis Data
4. Untuk memulai ketiklah perintah seperti berikut lalu klik tombol Execute
Query atau tekan tombol F9
42
Basis Data
Keterangan : error tersebut berarti bahwa database sudah ada, dan Anda
tidak boleh membuat database dengan nama yang sama lagi
7. Untuk melihat database yang baru saja Anda buat, dapat dilakukan dengan
cara :
43
Basis Data
Klik
kanan
di root
dan
Lihat di pilih
bagian sini, Refresh
dan jika atau
tidak ada tekan
maka F5
lakukan
refresh
8. Untuk bekerja dengan database Anda, klik dua kali pada nama database
hingga font berukuran tebal, seperti gambar berikut:
44
Basis Data
Klik
dua
kali
9. Selain dengan cara itu, Anda juga bisa mengetikkan perintah seperti di
bawah ini, lalu block/sorot dan tekan F9 dari keyboard atau bisa juga
menekan tombol Execute Query (Play):
10. Untuk membuat sebuah tabel, coba ketiklah perintah di bawah ini lalu
blok dan tekan F9
45
Basis Data
12. Untuk melihat tabel yang terbentuk maka Anda dapat mengetikkan
perintah berikut lalu pastikan Anda blok dan tekan F9 setiap ingin melihat
hasil dari query Anda:
Jika perintah Anda benar, maka Anda akan melihat tampilan berikut
pada bagian Result
13. Ketikkan perintah berikut untuk membuat tabel baru bernama ruangan
dengan primary key berupa kode ruangan, lalu blok dan tekan F9
14. Ketikkan perintah berikut untuk melihat hasil tabel yang terbentuk
46
Basis Data
15. Jika ingin melihat tabel-tabel yang terbentuk, maka ketiklah perintah
berikut :
17. Sekarang coba mengubah tipe data nama gedung menjadi karakter
dengan panjang maksimal 50. Ketiklah perintah berikut :
47
Basis Data
20. Jika ingin menambahkan primary key pada tabel yang telah dibuat
sebelumnya, misalnya pada tabel mahasiswa, maka ketiklah perintah
berikut:
48
Basis Data
Catatan :
1. Sebuah kolom yang menjadi kunci tamu, otomatis akan dijadikan
index pada tabel dengan nama index sesuai dengan nama foreign key
2. Jika versi SQLYog Anda tidak bisa melihat relasi antar tabel, Anda
bisa melihatnya melalui phpMyAdmin seperti cara yang dilakukan
pada Jobsheet 2 dan 3.
23. Misalnya Anda ingin menghapus foreign key yang terbentuk, anggap saja
misalnya salah, maka Anda dapat mengetikkan perintah berikut:
49
Basis Data
Keterangan :
Sebenarnya tanpa DROP index, maka relasi antar tabel akan otomatis
terputus, namun index yang otomatis dibuat pada saat ADD FOREIGN KEY
tidak bisa serta merta hilang, sehingga jika ingin menghapusnya harus
menyertakan perintah DROP INDEX.
24. Untuk menyimpan semua perintah SQL yang sudah Anda buat, bisa
dilakukan dengan cara klik File kemudian Save.
H. Evaluasi
1. Buatlah sebuah basis data bernama latihan_jobsheet3
2. Buatlah sebuah tabel (bebas), dengan ketentuan sebagai berikut :
a. Jumlah kolom minimal 3
b. Jenis tipe data yang digunakan minimal 2 (ketetapatan pemilihan
tipe data juga akan dinilai)
c. Tabel memiliki primary key
50
Basis Data
51
Basis Data
Job Sheet 4
A. Standar Kompetensi
Mahasiswa mampu merancangkan basis data relasional dan menggunakan
bahasa basis data dalam pengelolaannya
B. Kompetensi Dasar
Setelah mempelajari materi ini, mahasiswa mampu melakukan manipulasi
data (penggunaan query Data Manipulations Language)
C. Indikator
1. Mahasiswa mampu memahami perbedaan DML dengan DDL
2. Mahasiswa mampu menggunakan DML untuk menambahkan data ke
dalam tabel
3. Mahasiswa mampu menggunakan DML untuk memperbarui data
4. Mahasiswa mampu menggunakan DML untuk menghapus data
5. Mahasiswa mampi menggunakan DML untuk mengambil data dari
dalam tabel
D. Peralatan
1. Seperangkat computer yang sudah terinstal MySQL, Apache Web
Server dan browser atau SQLYog
2. Buku Ajar
3. Job sheet
4. Kertas A4 dan tinta printer untuk mencetak diagram pada praktikum
E. Teori
1. Data Manipulation Language (DML)
DML digunakan untuk operasi-operasi yang berkaitan dengan data di dalam
tabel. DML berbeda dengan DDL, dimana DDL hanya berkaitan dengan struktur
tabel, sedangkan DML berhubungan dengan pengelolaan data di dalam tabel yang
sudah dibangun dengan DDL. Pengelolaan data yang dimaksudkan di sini dapat
berupa:
a. Penyisipan data baru dengan perintah INSERT INTO
b. Pengubahan data lama dengan perintah UPDATE
c. Penghapusan data dengan perintah DELETE
52
Basis Data
2. Perintah SELECT
Perintah ini digunakan untuk mengambil data atau menampilkan data dari
dalam tabel. Bentuk perintah SELECT yang paling sederhana yaitu tanpa filter dan
pengurutan adalah sebagai berikut:
SELECT kolom1, kolom2,…. Kolom_n
FROM nama_tabel
Catatan:
Anda bisa mengganti nama kolom dengan asterisk (*) jika ingin
menampilkan semua kolom sesuai urutan pada tabel.
Contoh :
a. Jika ingin menampilkan kolom NIP dan nama pegawai maka dapat
dilakukan dengan sintaks berikut:
SELECT NIP, nama
FROM pegawai;
b. Jika ingin menampilkan semua data pegawai dapat dilakukan dengan
sintaks berikut:
SELECT *
FROM pegawai;
53
Basis Data
Contoh :
a. Jika ingin menambah data NIP dan nama seorang pegawai ke dalam tabel
pegawai maka dapat dilakukan dengan sintaks berikut:
INSERT INTO pegawai (NIP, nama)
VALUES ('1234','Rika Andara');
b. Jika ingin menambah data lengkap seorang pegawai ke dalam tabel
pegawai maka dapat dilakukan dengan sintaks berikut:
INSERT INTO pegawai (NIP, nama,gaji,tgl_lahir)
VALUES ('1235','Ratna S',5000000 ,'1990-05-15');
Atau bisa juga
INSERT INTO pegawai
VALUES ('1235','Ratna S',5000000,'1990-05-15');
c. Jika ingin menambahkan data lengkap dengan urutan yang tidak sesuai
kolom tabel maka tidak boleh langsung melompat ke VALUES setelah
INSERT INTO :
INSERT INTO pegawai (NIP, tgl_lahir,gaji, nama)
VALUES ('1236','1992-08-24', 4000000,'Rudi Hardy');
d. Jika ingin menambahkan beberapa data sekaligus secara lengkap, dapat
dilakukan juga dengan cara:
INSERT INTO pegawai (NIP, nama,gaji,tgl_lahir)
VALUES ('1237','Budi Karya',5500000 ,'1991-05-17'),
('1238','Ria Tanaya',6000000 ,'1991-11-07'),
('1239','Eddy Santoso',5500000 ,'1991-05-27');
Catatan :
- Untuk keamanan dalam pengolahan tipe data tanggal, agar
menghindari kesalahan format maka gunakanlah format (YYYY-
MM-dd) atau tahun-bulan-hari. Misalnya 25 Agustus 2019 ditulis
2019-08-25
- Untuk data bertipe number (INT, FLOAT dan sebagainya dapat
ditulis dengan atau tanpa tanda petik tunggal)
4. Perintah UPDATE
Perintah ini digunakan untuk memperbarui atau mengubah data. Bentuk
perintah ini adalah sebagai berikut:
UPDATE nama_tabel
SET kolom1 = nilai1, kolom2 = nilai2, …., kolom_n = nilai_n
WHERE <syarat>;
Catatan:
Sintaks WHERE tidak harus selalu ditulis dan perintah UPDATE tetap
bisa berjalan tanpa error, namun hal ini akan mengubah seluruh data
di dalam tabel.
Contoh:
54
Basis Data
a. Jika ingin mengubah data semua pegawai menjadi bergaji 5000000 maka
dapat dilakukan dengan sintaks berikut:
UPDATE pegawai
SET gaji = 5000000;
b. Jika ingin megubah gaji pegawai dengan NIP 1234 menjadi sebesar
6000000 maka dapat dilakukan dengan sintaks berikut:
UPDATE pegawai
SET gaji = 6000000
WHERE NIP = '1234'
c. Jika ingin mengubah data pegawai yang gajinya 6000000 menjadi
bernama Indra dan gaji barunya menjadi 6500000, maka dapat
dilakukan dengan sintaks:
UPDATE pegawai
SET nama='Indra', gaji = 6500000
WHERE gaji = 6000000;
5. Perintah DELETE
Perintah ini digunakan untuk menghapus data di dalam tabel. Adapun bentuk
perintah ini adalah sebagai berikut:
DELETE FROM nama_tabel
WHERE <syarat>
Catatan:
Sintaks WHERE tidak harus selalu ditulis dan perintah DELETE tetap
bisa berjalan tanpa error, namun hal ini akan menghapus seluruh data
di dalam tabel.
Contoh:
a. Jika ingin menghapus data pegawai yang memiliki nama Indra maka
dapat dilakukan dengan sintaks berikut:
DELETE FROM pegawai
WHERE nama= 'Indra';
b. Jika ingin menghapus semua data pegawai dapat dilakukan dengan
sintaks berikut:
DELETE FROM pegawai;
F. Keselamatan Kerja
1. Ikuti langkah kerja yang ada pada job sheet
2. Perhatikan keamanan instalasi listrik saat menghidupkan dan
mematikan computer
3. Pastikan lingkungan kerja (meja, kursi dan computer) bersih, baik
sebelum maupun sesudah penggunaan
4. Jika ada hal yang kurang jelas, tanyakan kepada dosen pengampu
G. Langkah Kerja
Lakukanlah langkah-langkah berikut ini:
1. Buka XAMPP Control Panel dan Start MySQL
2. Jika Anda ingin menggunakan phpMyAdmin, start juga Apache
55
Basis Data
Catatan:
Kolom kode_ruang tidak perlu diisi karena tipe datanya adalah
INT AUTO_INCREMENT, jadi otomatis terisi.
Jangan lupa eksekusi dengan blok kemudian tekan F9, sehingga query
akan dieksekusi dan Anda mendapatkan perintah berhasil sebagai
berikut:
Arti pesan :
1. Sukses dan tanpa error (1 success, 0 errors)
2. Ada 4 data yang disimpan (4 rows affected)
56
Basis Data
57
Basis Data
58
Basis Data
H. Evaluasi
Buatlah sebuah database dengan format nama : jobsheet4_nim. Kemudian buatlah
sebuah tabel yang terdiri dari minimal 6 kolom. Lalu lakukan beberapa hal berikut:
1. Tambahkan 10 buah data ke dalam tabel tersebut
2. Tampilkan hasil penambahan data
3. Buatlah contoh perubahan 3 buah data
4. Tampilkan hasil setiap perubahan
5. Buatlah contoh penghapusan 2 buah data
6. Tampilkan hasil setiap perubahan
Kerjakan semua tugas tersebut dengan perintah DDL dan DML, simpan hasil DDL
dan DML Anda ke dalam sebuah file berekstensi .sql dengan format nama
jobsheet4_nim.sql.
59
Basis Data
Filter Data
Kelas/Sem : IIIB/3
Pertemuan 17 dan 18
Th Ajaran : 2021/2022
Job Sheet 5
A. Standar Kompetensi
Mahasiswa mampu merancangkan basis data relasional dan menggunakan
bahasa basis data dalam pengelolaannya
B. Kompetensi Dasar
Setelah mempelajari materi ini, mahasiswa diharapkan mampu melakukan
pemrosesan Query Lanjut untuk melakukan pencarian data
C. Indikator
1. Mahasiswa mampu menggunakan klausa WHERE untuk melakukan
filter data
2. Mahasiswa mampu menggunakan operator perbadingan di dalam
klausa WHERE
3. Mahasiswa mampu menggunakan operator logika untuk filter dengan
kriteria lebih daripada satu
4. Mahasiswa mampu menggunakan operator LIKE untuk filter data
berupa teks
5. Mahasiswa mampu menggunakan klausa ORDER BY untuk pengurutan
data
D. Peralatan
1. Seperangkat computer yang sudah terinstal MySQL, Apache Web Server
dan browser atau SQLYog
2. Buku Ajar
3. Job sheet
4. Kertas A4 dan tinta printer untuk mencetak diagram pada praktikum
E. Teori
1. Filter Data
Filter data digunakan untuk menampilkan data tertentu. Filter data
diperlukan karena seringkali data di dalam tabel berjumlah banyak dan user
hanya ingin melihat data tertentu saja. Misalnya user hanya ingin melihat pegawai
perempuan saja, user hanya ingin melihat pegawai dengan gaji lebih daripada 10
juta. Filter data menggunakan klausa WHERE yang mana klausa WHERE
diletakkan setelah FROM. Bentuk umum klausa WHERE adalah sebagai berikut:
SELECT kolom1, kolom2,…, kolom_n
60
Basis Data
FROM nama_tabel
WHERE <syarat>
Tabel berikut bernama tabel pegawai dan akan digunakan sebagai contoh
untuk teori DML di jobsheet ini pada pembahasan berikutnya.
Tabel pegawai
Field Tipe Data Keterangan
NIP CHAR(4) PRIMARY KEY, NOT NULL
Nama VARCHAR(40)
Gaji INT
Tgl_lahir DATE
Contoh: Jika ingin menampilkan pegawai dengan NIP 1234 maka dapat
dilakukan dengan sintaks :
SELECT * FROM pegawai
WHERE NIP = '1234';
2. Operator Perbandingan
Dalam melakukan filter dengan WHERE, terdapat syarat yang harus
dituliskan. Penulisan syarat ini menggunakan operator perbandingan yaitu:
Operator Arti
= Sama dengan
<> Tidak sama dengan
< Lebih kecil dari
> Lebih besar dari
<= Lebih kecil atau sama dengan
>= Lebih besar atau sama dengan
61
Basis Data
3. Operator Logika
Syarat pada klausa WHERE bisa juga berupa syarat yang kompleks atau lebih
daripada satu. Untuk mengatasi hal ini maka diperlukan operator logika sebagai
berikut:
a. AND : Operator untuk menampung kriteria, di mana dua buah kriteria
harus dipenuhi
b. OR : Operator untuk menampung kriteria, dimana salah satu atau kedua
kriteria harus dipenuhi.
c. NOT : merupakan operator membalik nilai kebenaran kriteria
Catatan :
Untuk data rentang (interval), selain bisa menggunakan operator AND
seperti di atas, juga bisa menggunakan BETWEEN dan AND
Catatan :
Meskipun pada soal diminta Rika, Riyan dan Hanif, namun secara
logika, operator AND tidak bisa digunakan karena tidak mungkin ada
satu orang bernama Rika, Riyan sekaligus Hanif. Operator yang tepat
adalah menggunakan OR, agar setiap orang yang bernama Rika, Riyan
ataupun Hanif akan tampil.
Untuk operator OR yang menghubungkan kriteria dengan kolom yang
sama bisa diganti dengan IN
62
Basis Data
Catatan :
Untuk kasus OR di atas, tidak bisa menggunakan IN karena kriteria
melibatkan 2 kolom yang berbeda yaitu nama dan tgl_lahir.
4. Operator LIKE
Operator LIKE dapat digunakan untuk melakukan filter data pada data
yang bertipe teks/string. Misalnya jika ingin mencari nama pegawai yang
berisi kata Ida, atau diawali kata Wayan dan lain sebagainya. Bentuk dari
operator LIKE ini adalah sebagai berikut:
SELECT kolom1, kolom2, …, kolom_n
FROM nama_tabel
WHERE kolom LIKE '…..';
5. Pengurutan Data
Untuk hasil filter data yang banyak, kadangkala dibutuhkan pengurutan
data. Pengurutan data bisa dilakukan dengan klausa ORDER BY. Klausa ini
diletakkan pada bagian akhir perintah SQL. Bentuk umum ORDER BY adalah
sebagai berikut:
SELECT kolom1, kolom2, …, kolom_n
63
Basis Data
FROM nama_tabel
WHERE kolom LIKE '…..'
ORDER BY kolom1 ASC/DESC, kolom2 ASC/DESC, …., kolom_n ASC/DESC;
Keterangan:
a. Pengurutan bisa dilakukan dengan satu atau lebih kolom
b. ASC : artinya ascending atau pengurutan menaik (dapat juga tidak
dituliskan dalam SQL)
c. DESC : artinya descending atau pengurutan menurun (harus
dituliskan dalam SQL)
Atau
SELECT * FROM pegawai
ORDER BY nama ASC;
c. Tampilkan nama pegawai dan urutkan berdasarkan tanggal lahir dari usia
termuda hingga tertua
SELECT nama FROM pegawai
ORDER BY tgl_lahir DESC;
F. Keselamatan Kerja
1. Ikuti langkah kerja yang ada pada job sheet
2. Perhatikan keamanan instalasi listrik saat menghidupkan dan
mematikan computer
3. Pastikan lingkungan kerja (meja, kursi dan computer) bersih, baik
sebelum maupun sesudah penggunaan
4. Jika ada hal yang kurang jelas, tanyakan kepada dosen pengampu
G. Langkah Kerja
Ikuti langkah-langkah kerja berikut:
1. Buka XAMPP Control Panel dan Start MySQL
2. Jika Anda ingin menggunakan phpMyAdmin, start juga Apache
3. Bukalah phpMyAdmin atau SQLYog
64
Basis Data
8. Tampilkan mahasiswa yang gaji orang tuanya antara 8 juta hingga 11 juta
dan tidak lahir di tanggal 1 Maret 2000. Urutkan hasilnya dari gaji
terendah ke tertinggi
65
Basis Data
Hasilnya adalah kosong karena tidak ada data mahasiswa dengan NIM
berupa angka 20 pada karakter ke-3 dan 4
H. Evaluasi
1. Gunakan DDL dan buatlah database bernama jobsheet5_nim
2. Gunakan DDL untuk membuat sebuah tabel kegiatan dengan struktur
sebagai berikut:
Field Tipe Data Keterangan
Id_kegiatan INT PRIMARY KEY, AUTO_INCREMENT
Nama_kegiatan VARCHAR(100)
Ketua_panitia VARCHAR(40)
Jumlah_panitia TINYINT
Jumlah_peserta SMALLINT
Lokasi_kegiatan VARCHAR(50)
Jumlah_dana INT
Tanggal_mulai DATE
Tanggal_selesai DATE
66
Basis Data
67
Basis Data
Job Sheet 6
A. Standar Kompetensi
Mahasiswa mampu merancangkan basis data relasional dan menggunakan
bahasa basis data dalam pengelolaannya
B. Kompetensi Dasar
Setelah mempelajari materi ini, mahasiswa diharapkan mampu
menggunakan fungsi agregat untuk mengolah data berkelompok
C. Indikator
1. Mahasiswa mampu menggunakan fungsi agregat
2. Mahasiswa mampu melakukan pengelompokkan data berdasarkan
keperluan
3. Mahasiswa mampu membangun ekspresi SQL yang melibatkan field hasil
kalkulasi
D. Peralatan
1. Seperangkat computer yang sudah terinstal MySQL, Apache Web Server
dan browser atau SQLYog
2. Buku Ajar
3. Job sheet
4. Kertas A4 dan tinta printer untuk mencetak diagram pada praktikum
E. Teori
1. Fungsi Agregat
Fungsi agregat merupakan fungsi yang melakukan pemrosesan pada
sekelompok data numerik (kecuali COUNT) dan mengembalikan sebuah nilai
tunggal. Fungsi agregat terdiri dari:
a) SUM : digunakan untuk menjumlahkan sekelompok data
b) COUNT : digunakan untuk melakukan perhitungan jumlah data
c) AVG : digunakan untuk melakukan perhitungan rata-rata sekelompok
data
d) MAX : digunakan untuk mendapatkan nilai terbesar dari sekelompok data
e) MIN : digunakan untuk mendapatkan nilai terkecil dari sekelompok data
68
Basis Data
di dalam GROUP BY. Bentuk umum SQL dengan fungsi agregat adalah sebagai
berikut:
SELECT kolom1, …, kolom_n, fungsi_agregat1(field1),…,
fungsi_agregat_n(field_n)
FROM nama_tabel
WHERE <syarat> -- jika ada
GROUP BY kolom1, …, kolom_n;
Keterangan :
- AS digunakan sebagai alias untuk memberi nama kolom agar lebih
mudah dimengerti oleh pembaca informasi hasil SQL
- Jika tidak menggunakan GROUP BY maka data hanya akan
menampilkan departmen yang dibaca paling atas yaitu Keuangan dan
jumlahnya adalah 6 yaitu jumlah semua data. Oleh sebab itu penting
melakukan GROUP BY agar data dikelompokkan per departemen
b) Tampilkan jumlah pegawai dari setiap kota
SELECT kota, COUNT(NIP) AS jumlah_pegawai
FROM pegawai
GROUP BY kota;
c) Tampilkan rata-rata gaji per department
SELECT departemen, AVG(gaji) AS rata_gaji
FROM pegawai
GROUP BY departemen;
d) Tampilkan jumlah gaji yang harus dibayarkan pada departemen
Akuntansi
SELECT departemen, SUM(gaji) AS total_gaji
FROM pegawai
WHERE departemen = 'Akuntansi '
GROUP BY departemen;
e) Tampilkan gaji terbesar dan terkecil dari setiap departemen
69
Basis Data
2. Klausa HAVING
Terdapat klausa tambahan yang biasanya muncul saat penggunaan fungsi
agregat, yaitu klausa HAVING. HAVING memiliki fungsi yang sama dengan
WHERE, yaitu untuk melakukan filter. Perbedaannya adalah HAVING khusus
digunakan untuk melakukan filter pada data yang memuat fungsi agregat di
dalamnya, sedangkan WHERE adalah untuk sisanya. Bentuk pernyataan SQL
dengan fungsi agregat adalah sebagai berikut:
70
Basis Data
FROM pegawai
GROUP BY departemen;
F. Keselamatan Kerja
1. Ikuti langkah kerja yang ada pada job sheet
2. Perhatikan keamanan instalasi listrik saat menghidupkan dan
mematikan computer
3. Pastikan lingkungan kerja (meja, kursi dan computer) bersih, baik
sebelum maupun sesudah penggunaan
4. Jika ada hal yang kurang jelas, tanyakan kepada dosen pengampu
G. Langkah Kerja
Ikutilah langkah-langkah kerja berikut:
1. Buka XAMPP Control Panel dan Start MySQL
2. Jika Anda ingin menggunakan phpMyAdmin, start juga Apache
3. Bukalah phpMyAdmin atau SQLYog
4. Gunakan database jobsheet6 yang sudah dikerjakan pada Evaluasi Job
Sheet 5
5. Menampilkan rata-rata dana per kegiatan
71
Basis Data
72
Basis Data
H. Evaluasi
1. Buatalah database jobsheet6_nim dengan DDL
2. Buatlah sebuah tabel nilai berikut dengan DDL
Field Tipe Data Keterangan
NIM CHAR(4) PRIMARY KEY
Nama_mhs VARCHAR(60)
Kode_matkul CHAR(7) PRIMARY KEY
Nama_matkul VARCHAR(60)
Nilai_uts FLOAT
Nilai_uas FLOAT
Nilai_quiz FLOAT
73
Basis Data
Job Sheet 7
A. Standar Kompetensi
Mahasiswa mampu merancangkan basis data relasional dan menggunakan
bahasa basis data dalam pengelolaannya
B. Kompetensi Dasar
Setelah mempelajari materi ini, mahasiswa diharapkan mampu
menggunakan fungsi-fungsi bawaan pada MySQL untuk mempermudah
beberapa pemrosesan data sesuai dengan tipenya
C. Indikator
1. Mahasiswa mampu menggunakan fungsi-fungsi bawaan pada MySQL
D. Peralatan
1. Seperangkat computer yang sudah terinstal MySQL, Apache Web Server
dan browser atau SQLYog
2. Buku Ajar
3. Job sheet
4. Kertas A4 dan tinta printer untuk mencetak diagram pada praktikum
E. Teori
MySQL menyediakan banyak built-in function. Built-in function
merupakan fungsi-fungsi yang disediakan oleh MySQL untuk mempermudah
manipulasi data yang akan ditampilkan kepada pengguna. Misalnya jika
pengguna ingin menghitung umur dari tanggal lahir seseorang, maka hanya
perlu menggunakan fungsi DATE_DIFF antara tanggal sekarang dengan
tanggal lahirnya. Modul ini akan membahas beberapa fungsi umum yang
sering digunakan. Untuk fungsi yang lebih lengkap dapat dilihat pada
dokumentasi MySQL.
1. Fungsi String
a. CONCAT : digunakan untuk menggabungkan beberapa string/teks.
String atau teks dalam hal ini dapat berupa statis text atau field yang
bertipe teks.
Contoh :
74
Basis Data
75
Basis Data
k. REPLACE : untuk mengganti suatu sub string dengan pola string yang
baru.
Contoh :
SELECT REPLACE("SQL Tutorial", "SQL", "HTML"); Hasil : HTML
Tutorial
l. STRCMP : melakukan perbandingan dari dua buah string
Contoh :
SELECT STRCMP("SQL Tutorial", "SQL Tutorial"); → membandingkan
string. Jika sama maka hasilnya 0, jika tidak sama maka bukan 0. Hasil :
0 (karena sama)
m. SUBSTR : menampilkan substring pada string tertentu dimulai dari
karakter tertentu sesuai nilai parameter, dan sepanjang nilai yang
dinyatakan dalam parameter. Fungsinya sama dengan MID
Contoh :
SELECT SUBSTR("SQL Tutorial", 5, 3) AS sub_kalimat; →untuk
mengambil karakter mulai dr 5 sebanyak 3 (seperti MID). Hasil : Tut
n. TRIM : menghapus semua spasi di sisi kiri dan kanan suatu string
Contoh :
SELECT TRIM(" SQL Tutorial ") AS hasil; Hasil : SQL Tutorial
2. Fungsi Matematika
a. ABS : mengembalikan nilai absolut (positif) dari suatu nilai
Contoh :
SELECT ABS(-243.5); Hasil:243.5
b. CEIL : mengembalikan nilai pembulatan ke atas dalam bentuk bilangan
bulat
Contoh :
SELECT CEIL(25.75); Hasil : 26
c. FLOOR : mengembalikan nilai pembulatan ke bawah dalam bentuk
bilangan bulat
Contoh :
SELECT FLOOR(25.75); Hasil : 25
d. ROUND : mengembalikan hasil pembulatan bilangan ke nilai yang
terdekat dengan jumlah digit di belakang koma sesuai dengan
parameter yang didefinisikan
Contoh :
SELECT ROUND(135.375, 2); Hasil : 135.38
e. DIV : mengembalikan hasil pembagian berupa bilangan bulat dengan
pembulatan ke bawah
Contoh :
SELECT 10 DIV 6; Hasil : 1
f. GREATEST : mengembalikan nilai terbesar dari suatu deret bilangan
yang dimasukkan ke dalam parameter
Contoh :
SELECT GREATEST(3, 12, 34, 8, 25); Hasil : 34
76
Basis Data
3. Fungsi Tanggal
a. ADDDATE : menampilkan hasil berupa tanggal sesuai dengan interval
yang diinputkan. Interval yang digunakan biasanya sebagai berikut:
• SECOND : detik
• MINUTE : menit
• HOUR : jam
• DAY : hari
• WEEK : minggu
• MONTH : bulan
• YEAR : tahun
Contoh:
SELECT ADDDATE("2017-06-15", INTERVAL 10 DAY); Pada contoh
akan ditambahkan 10 hari. Hasil 2017-06-25.
b. DATE_ADD : memiliki fungsi yang sama dengan ADDDATE
Contoh :
SELECT DATE_ADD("2017-06-15", INTERVAL 10 DAY); Hasil 2017-06-
25.
c. CURDATE : menampilkan tanggal saat ini
Contoh :
SELECT CURDATE();
d. CURTIME : menampilkan jam saat ini
Contoh :
SELECT CURTIME();
e. NOW : menampilkan waktu saat ini (tanggal dan jam sampai detik)
Contoh :
SELECT NOW();
f. CURRENT_TIMESTAMP : menampilkan tanggal dan waktu hari ini,
sama seperti NOW
Contoh :
SELECT CURRENT_TIMESTAMP();
g. DATE : menampilkan bagian tanggal dari suatu timestamp.
77
Basis Data
Contoh :
SELECT DATE("2017-06-15 09:08:40"); → mengambil tanggal saja.
Hasil : 2017-06-15
h. DATEDIFF : menghitung selisih tanggal dalam satuan hari
Contoh :
SELECT DATEDIFF("2017-06-25", "2017-06-15"); → menghitung
selisih tanggal dalam hari. Hasil 10
i. DATE_SUB : mengurangi tanggal dengan interval tertentu. Interval yang
digunakan sama seperti pada DATE_ADD
Contoh :
SELECT DATE_SUB("2017-06-15", INTERVAL 10 DAY); Hasil 2017-06-
05
j. DAY : mengambil bagian hari pada suatu tanggal
Contoh :
SELECT DAY("2017-06-15"); →mengambil bagian hari pada suatu
tanggal. Hasil: 15
k. DAYNAME : menampilkan nama hari dari tanggal tertentu
Contoh :
SELECT DAYNAME("2018-04-27"); Hasil : Friday
l. DAYOFWEEK : menampilkan urutan hari dalam satu minggu dari
tanggal, dengan perhitungan bahwa Minggu adalah hari ke-1.
Contoh :
SELECT DAYOFWEEK("2018-04-27"); Hasil → 6 (karena Jumat adalah
hari ke-6 dalam sebuah minggu)
m. DAYOFYEAR : menghitung urutan hari dalam satu tahun
Contoh :
DAYOFYEAR("2017-02-15"); Hasil : 46 karena tanggal 15 Febrari
adalah hari 46 dalam tahun 2017
n. MONTH : mengambil bagian bulan pada suatu tanggal
Contoh :
SELECT MONTH("2017-06-15"); Hasil : 06
o. MONTHNAME : menampilkan nama bulan dari suatu tanggal
Contoh :
SELECT MONTHNAME("2017-06-15"); Hasil: June
p. YEAR : mengambil bagian tahun pada suatu tanggal
Contoh :
SELECT YEAR("2017-06-15"); Hasil : 2017
q. DATE_FORMAT : menampilkan tanggal dengan format tertentu agar
lebih mudah dimengerti oleh pengguna awam
Format yang biasanya digunakan adalah sebagai berikut :
• %Y : 4 digit tahun
• %y : 2 digit tahun
• %M : nama bulan
• %m : bulan 01-12
• %c : bulan 1-12
78
Basis Data
• %d : tanggal 01-31
• %e : tanggal 1-31
Contoh :
SELECT DATE_FORMAT("2017-06-15", "%Y"); → memformat sebuah
tanggal agar tampilannya sesuai kebutuhan. Hasil : 2017
F. Keselamatan Kerja
1. Ikuti langkah kerja yang ada pada job sheet
2. Perhatikan keamanan instalasi listrik saat menghidupkan dan
mematikan computer
3. Pastikan lingkungan kerja (meja, kursi dan computer) bersih, baik
sebelum maupun sesudah penggunaan
4. Jika ada hal yang kurang jelas, tanyakan kepada dosen pengampu
G. Langkah Kerja
Ikutilah langkah-langkah kerja berikut:
1. Buka XAMPP Control Panel dan Start MySQL
2. Jika Anda ingin menggunakan phpMyAdmin, start juga Apache
3. Bukalah phpMyAdmin atau SQLYog
4. Buatlah database latihan_jobsheet7
79
Basis Data
80
Basis Data
13. Menampilkan tanggal masuk pegawai dalam format seperti : 1 April 2018
81
Basis Data
H. Evaluasi
1. Buatlah database dengan nama jobsheet7_nim dengan DDL
2. Buatlah tabel konsultasi dengan struktur tabel berikut:
Field Tipe Data Keterangan
Id_konsultasi INT PRIMARY KEY
AUTO_INCREMENT
Nama_client VARCHAR(60)
Gelar_depan VARCHAR(10)
Gelar_belakang VARCHAR(10)
Tgl_konsultasi DATE
Biaya_konsul_perjam INT
Lama_konsultasi TINYINT
82
Basis Data
Job Sheet 8
A. Standar Kompetensi
Mahasiswa mampu merancangkan basis data relasional dan menggunakan
bahasa basis data dalam pengelolaannya
B. Kompetensi Dasar
Setelah mempelajari materi ini, mahasiswa mampu memahami konsep dan
menggunakan Multitable-Query
C. Indikator
1. Mahasiswa memahami perbedaan dari setiap bentuk JOIN
2. Mahasiswa mampu melakukan manipulasi data dari beberapa tabel
dengan menggunakan bentuk JOIN yang sesuai.
D. Peralatan
1. Seperangkat computer yang sudah terinstal MySQL, Apache Web Server
dan browser atau SQLYog
2. Buku Ajar
3. Job sheet
4. Kertas A4 dan tinta printer untuk mencetak diagram pada praktikum
E. Teori
Database terdiri dari tabel-tabel yang saling terelasi. Kebutuhan informasi
pengguna akhir lebih sering melibatkan beberapa tabel dibandingkan hanya
satu tabel saja. Untuk itu sangat penting sekali untuk bisa membuat perintah
pengambilan data dari beberapa tabel sesuai dengan kriteria dari pengguna.
Untuk mengambil data dari beberapa tabel bisa digunakan JOIN. Terdapat
beberapa jenis JOIN, dimana masing-masing memiliki kegunaan yang
berbeda-beda. Agar dapat memanfaatkan jenis-jenis JOIN dengan tepat, maka
pemahaman terhadap masing-masing jenis JOIN sangat penting sekali.
Join digunakan untuk menggabungkan 2 buah tabel. Dalam database
relasional, bekerja dengan banyak tabel sangat seringkali dibutuhkan dalam
manipulasi data. Untuk mengambil data dari beberapa tabel, bisa digunakan
JOIN. JOIN akan menggabungkan data dari dua buah tabel dan membentuk
sebuah relasi, relasi inilah yang kemudian bisa dijoinkan lagi dengan tabel
yang lainnya.
83
Basis Data
Bentuk :
SELECT kolom1, kolom2,…, kolom_n
FROM tabel1 INNER JOIN tabel2
ON tabel1.kolom_a = tabel2.kolom_b
Keterangan:
Kolom_a dan kolom_b merupakan kolom-kolom yang merelasikan kedua tabel.
Nama kolom bisa berbeda, namun tipe data harus sama.
Bentuk :
SELECT kolom1, kolom2,…, kolom_n
FROM tabel1 LEFT JOIN tabel2
ON tabel1.kolom_a = tabel2.kolom_b
Keterangan:
84
Basis Data
Bentuk :
SELECT kolom1, kolom2,…, kolom_n
FROM tabel1 RIGHT JOIN tabel2
ON tabel1.kolom_a = tabel2.kolom_b
Keterangan:
Kolom_a dan kolom_b merupakan kolom-kolom yang merelasikan kedua tabel.
Nama kolom bisa berbeda, namun tipe data harus sama.
5. NATURAL JOIN
Natural join sebenarnya menghasilkan data yang sama dengan inner join.
Penggunaan natural join yaitu tanpa adanya kata kunci ON dan kedua tabel
yang dijoinkan harus memiliki sebuah kolom dengan nama dan tipe yang
sama.
Bentuk :
SELECT kolom1, kolom2,…, kolom_n
FROM tabel1 JOIN tabel2
Contoh
Tabel mahasiswa Tabel hobby
NIM Nama NIM Hobby
1 Teta 2 Menulis
2 Yota 2 Menggambar
3 Eta 4 Mengamati
85
Basis Data
INNER JOIN :hanya menghasilkan NIM yang sama (ada di kedua tabel) yaitu
mahasiswa dengan NIM 2
SELECT *
FROM mahasiswa INNER JOIN hobby
ON mahasiswa.NIM=hobby.NIM
LEFT OUTER JOIN : menghasilkan seluruh data dari tabel mahasiswa (di kiri
pernyataan JOIN), meskipun NIM-nya tidak terdapat pada tabel hobby. Untuk
mahasiswa yang tidak dicatat pada tabel hobby, akan diisi NULL
SELECT *
FROM mahasiswa LEFT JOIN hobby
ON mahasiswa.NIM=hobby.NIM
RIGHT OUTER JOIN: menghasilkan seluruh data dari tabel hobby (di kanan
pernyataan JOIN), meskipun NIM-nya tidak terdapat pada tabel mahasiswa.
Untuk NIM yang tidak dicatat pada tabel mahasiswa, akan diisi NULL
SELECT *
FROM mahasiswa RIGHT JOIN hobby
ON mahasiswa.NIM=hobby.NIM
NATURAL JOIN : sama seperti INNER JOIN, namun kolom yang berelasi harus
memiliki nama yang sama.
SELECT *
FROM mahasiswa JOIN hobby
86
Basis Data
F. Keselamatan Kerja
1. Ikuti langkah kerja yang ada pada job sheet
2. Perhatikan keamanan instalasi listrik saat menghidupkan dan
mematikan computer
3. Pastikan lingkungan kerja (meja, kursi dan computer) bersih, baik
sebelum maupun sesudah penggunaan
4. Jika ada hal yang kurang jelas, tanyakan kepada dosen pengampu
G. Langkah Kerja
1. Buatlah database bernama jobsheet8_nim dengan tabel-tabel berikut
(Anda bebas menggunakan wizard atau DDL).
87
Basis Data
88
Basis Data
89
Basis Data
90
Basis Data
G. Evaluasi
1. Buatlah database perusahaan dengan tabel-tabel terelasi seperti berikut:
2. Silakan isikan data pada setiap tabel, isilah dengan data bebas, dimana
setiap tabel dapat diisi dengan minimal 4 buah data.
3. Buatlah perintah SQL untuk menampilkan data-data yang diperlukan pada
soal berikut! (Karena isian data bebas dan berbeda pada setiap orang,
hasil eksekusi query mungkin berbeda dan mungkin kosong. Hal tersebut
tidak masalah, karena yang akan dicek adalah kebenaran perintah SQL-
nya)
a. Tampilkan data nama project dan di cabang mana saja project
tersebut berada!
b. Tampilkan jumlah project yang dimiliki setiap cabang, lalu urutkan
berdasarkan jumlah project dari kecil ke besar!
c. Tampilkan nama-nama pegawai yang mengerjakan project dengan
nama berisi kata Jembatan dan dengan dana melebihi 1Milyar!
91
Basis Data
d. Tampilkan jumlah jam kerja per pegawai, per project untuk cabang
Denpasar. Urutkan berdasarkan cabang A-Z, lalu nama pegawai A-Z!
e. Tampilan jumlah anak yang dimiliki oleh setiap pegawai! Tampilkan
termasuk yang jumlah anaknya nol! Anak bisa dicek berdasarkan
hubungan!
f. Tampilkan nama pegawai yang bekerja pada project yang berisi kata
gedung dan memiliki pengalaman berisi kata gedung!
g. Tampilkan no_peg, nama pegawai yang mengerjakan project dengan
dana antara 100juta hingga 500juta dan berlokasi di Gianyar.
Tampilkan data yang sama hanya satu kali saja!
h. Tampilkan nama cabang, kontak, nama projct untuk setiap project
yang dikerjakan oleh pegawsi berinisial Gede!
i. Tampilkan anggota keluarga dan nama pegawai dari pegawai dengan
nama berisi kata Indra, Indro dan Indri!
j. Tampilkan jumlah pegawai yang bekerja pada setiap project!
92
Basis Data
Job Sheet 9
A. Standar Kompetensi
Mahasiswa mampu merancangkan basis data relasional dan menggunakan
bahasa basis data dalam pengelolaannya
B. Kompetensi Dasar
Setelah mempelajari materi ini, mahasiswa diharapkan mampu
menggunakan sub query.
C. Indikator
1. Mahasiswa mampu memahami penggunaan klausa-klausa umum dalam
sub query
2. Mahasiswa mampu memanipulasi data dengan sub query
D. Peralatan
1. Seperangkat computer yang sudah terinstal MySQL, Apache Web Server
dan browser atau SQLYog
2. Buku Ajar
3. Job sheet
4. Kertas A4 dan tinta printer untuk mencetak diagram pada praktikum
E. Teori
Subquery berarti query di dalam query. Dengan menggunakan subquery,
hasil query akan menjadi bagian dari query lain. Dalam sub query, akan ada
main query dan sub query. Ilustrasinya dapat dilihat sebagai berikut:
93
Basis Data
3. Klausa WHERE
Subquery bisa berada atau bersarang di dalam statement SELECT,
INSERT, UPDATE, atau DELETE atau di dalam subquery yang lainnya.
Kebanyakan subquery biasanya ditambahkan di dalam klausa WHERE.
Ada dua tipe subquery yaitu:
1. Single-row sub query : dimana sub query hanya menghasilkan
satu baris data saja. Ada beberapa operator yang digunakan
pada tipe ini yaitu: =, <, <=, >, >=, <>
2. Multi-row sub query : dimana sub query menghasilkan
beberapa baris data. Ada beberapa operator yang digunakan
untuk tipe ini yaitu : IN, SOME, ANY, ALL.
F. Keselamatan Kerja
1. Ikuti langkah kerja yang ada pada job sheet
2. Perhatikan keamanan instalasi listrik saat menghidupkan dan
mematikan computer
3. Pastikan lingkungan kerja (meja, kursi dan computer) bersih, baik
sebelum maupun sesudah penggunaan
4. Jika ada hal yang kurang jelas, tanyakan kepada dosen pengampu
G. Langkah Kerja
1. Buatlah database bernama jobsheet9_nim, lalu tambahkan tabel-tabel
berikut:
94
Basis Data
Tabel posisi
Tabel pemain_cadangan
Tabel pemain_utama
95
Basis Data
96
Basis Data
97
Basis Data
Dengan demikian data yang akan ditampilkan adalah data nama pemain
dengan posisi 2, 3 dan 4
Perhatikan hasil sub query adalah sebagai berikut, maka yang akan
ditampilkan oleh query utama adalah semua pemain utama dengan rating
bukan 4 dan 5.
98
Basis Data
Hasil dari sub query adalah 3 dan 5, sehingga jika ada pemain cadangan
yang memiliki rating 4 atau 5 akan ditampilkan, karena 4 dan 5 lebih besar
daripada 3. Penggunaan ANY tidak mengharuskan hasil lebih besar dari
semua hasil subquery.
99
Basis Data
Hasil dari sub query adalah 4 dan 5, sehingga akan ditampilkan pemain
utama dengan rating 4 dan 5. Penggunaan =ANY memiliki makna yang
sama dengan klausa IN.
11. Berikut ini adalah contoh penggunaan SOME. SOME memiliki makna yang
sama dengan ANY.
12. Berikut ini adalah contoh penggunaan ALL. ALL dapat digunakan dengan
operator perbandingan di depannya. OR bermakna bahwa semua hasil di
dalam sub query harus dipenuhi tanpa terkecuali.
100
Basis Data
Karena hasil sub query adalah 4 dan 5, maka data pemain utama yang
dihasilkan adalah pemain utama dengan rating di bawah 4 dan di bawah
5, yaitu 1, 2 atau 3.
13. Berikut merupakan contoh lain penggunaan ALL yang ditempel dengan
operator <>.
Hasil dari sub query adalah rating pemain utama yang posisinya 3, yaitu
ratin 3 dan 5. Dengan demkian maka query utama akan menampilkan
pemain cadangan yang ratingnya tidak sama dengan 3 dan tidak sama
dengan 5, sehingga yang ditampilkan hanya pemain dengan rating 2 saja,
karena pada tabel cadangan adanya rating 2, 3 dan 5 (coba lihat isi tabel
pemain_cadangan).
101
Basis Data
H. Evaluasi
Buatlah database dengan nama jobsheet9_tugas_NIM. Lalu buatlah minimal 3
tabel yang saling terelasi. Isikan data ke dalam tabel-tabel Anda. Buatlah 2
contoh penggunaan subquery dengan operator perbandingan, 1 contoh
penggunaan ANY, 1 contoh penggunaan IN, 1 contoh penggunaan some dan 1
contoh penggunaan ALL.
102
Basis Data
103
Basis Data
Job Sheet 10
A. Standar Kompetensi
Mahasiswa mampu merancangkan basis data relasional dan menggunakan
bahasa basis data dalam pengelolaannya
B. Kompetensi Dasar
Setelah mempelajari materi ini, mahasiswa diharapkan mampu
menggunakan view.
C. Indikator
1. Mahasiswa mampu membuat view
D. Peralatan
1. Seperangkat computer yang sudah terinstal MySQL, Apache Web
Server dan browser atau SQLYog
2. Buku Ajar
3. Job sheet
4. Kertas A4 dan tinta printer untuk mencetak diagram pada praktikum
E. Teori
View merupakan virtual tabel yang menampilkan hasil dari perintah
SELECT yang dituliskan pada saat pembuatannya. View mirip seperti sebuah
tabel, di mana view berisi kolom dan baris data. Meskipun terlihat sama,
namun tidak seperti tabel, view tidak benar-benar menyimpan data. Data yang
ditampilkan oleh view sebenarnya berasal dari satu atau beberapa tabel yang
ada di dalam database. Penggunaan klausa WHERE, JOIN atau lainnya dapat
digunakan pada sebuah view, dengan cara yang sama seperti pada sebuah
tabel.
Cara pembuatan sebuah view adalah sebagai berikut:
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
104
Basis Data
FROM table_name
WHERE condition;
F. Keselamatan Kerja
1. Ikuti langkah kerja yang ada pada job sheet
2. Perhatikan keamanan instalasi listrik saat menghidupkan dan
mematikan computer
3. Pastikan lingkungan kerja (meja, kursi dan computer) bersih, baik
sebelum maupun sesudah penggunaan
4. Jika ada hal yang kurang jelas, tanyakan kepada dosen pengampu
G. Langkah Kerja
1. Gunakan database job sheet 8 untuk latihan dan bukalah query editor baru
2. Ketikkan perintah berikut untuk membuat view jurusan_mhs
105
Basis Data
H. Evaluasi
Buatlah view untuk semua soal pada job sheet 8 evaluasi nomor 3!
106
Basis Data
107
Basis Data
Job Sheet 11
A. Standar Kompetensi
Mahasiswa mampu merancangkan basis data relasional dan menggunakan
bahasa basis data dalam pengelolaannya
B. Kompetensi Dasar
Setelah mempelajari materi ini, mahasiswa diharapkan mampu
menggunakan procedure dan fungsi.
C. Indikator
1. Mahasiswa mampu membuat procedure dan fungsi
2. Mahasiswa mampu memanggil procedure dan fungsi
D. Peralatan
1. Seperangkat computer yang sudah terinstal MySQL, Apache Web
Server dan browser atau SQLYog
2. Buku Ajar
3. Job sheet
4. Kertas A4 dan tinta printer untuk mencetak diagram pada praktikum
E. Teori
Stored procedure merupakan perintah-perintah yang telah dibuat
sebelumnya dan nantinya bisa dipanggil, sehingga perintah-perintah tersebut
dapat digunakan berulang-ulang. Apabila ada perintah SQL yang seringkali
digunakan berulang-ulang, maka ada baiknya dibuatkan prosedur, sehingga
lebih menghemat waktu penulisan perintah. Sama halnya dengan prosedur
pada bahasa pemrograman, prosedur dalam SQL juga dapat berisi parameter.
Cara pembuatan sebuah prosedur adalah sebagai berikut:
CREATE PROCEDURE procedure_name (paramater jika ada)
sql_statement
108
Basis Data
F. Keselamatan Kerja
1. Ikuti langkah kerja yang ada pada job sheet
2. Perhatikan keamanan instalasi listrik saat menghidupkan dan
mematikan computer
3. Pastikan lingkungan kerja (meja, kursi dan computer) bersih, baik
sebelum maupun sesudah penggunaan
4. Jika ada hal yang kurang jelas, tanyakan kepada dosen pengampu
G. Langkah Kerja
1. Gunakan database job sheet 8 untuk latihan dan bukalah query editor baru
2. Ketikkan perintah berikut untuk membuat stored procedure untuk
menambahkan data mahasiswa
Keterangan :
• Delimiter adalah akhir dari sebuah perintah dalam SQL. Dalam
sebuah prosedur, seringkali ada banyak perintah, dan harus
diakhiri oleh delimiter yaitu semicolon (;) sebagai delimiter default,
oleh sebab itu, maka untuk mengakhiri prosedur, perlu dibuatkan
delimiter baru, misalnya tanda dolar (bisa juga tanda lain seperti $$
atau //)
• Sebelum membuat prosedur, set dulu delimiter dengan perintah
DELIMITER $ (pada baris 1), lalu kembalikan delimiter dengan
perintah DELIMITER ; (pada baris 9)
• Prosedur di atas memiliki 4 buah paramater
• Parameter disesuaikan dengan kebutuhan, misalnya jika ingin
menginput seluruh kolom pada mahasiswa, dan seluruh kolom
diinput oleh pengguna, maka jumlah paramter adalah 4 buah
dengan tipe data sesuai dengan tipe setiap kolom yang mau
ditambahkan
109
Basis Data
Coba perhatikan, apakah terjadi error? Jika iya, maka jelaskan mengapa!
4. Ketikkan perintah berikut untuk mengubah prosedur
sp_INSERT_mahasiswa
110
Basis Data
12. Ketikkan perintah berikut untuk memanggil fungsi penerjemah nilai angka
H. Evaluasi
Gunakan database pada soal evaluasi job sheet 8 untuk mengerjakan soal-soal
berikut:
1. Buatlah prosedur untuk menambahkan data ke dalam tabel pegawai!
2. Buatlah prosedur untuk mengubah nama pegawai berdasarkan pada nip-
nya!
3. Buatlah prosedur untuk menampilkan jumlah keluarga yang dimiliki oleh
setiap pegawai!
111
Basis Data
6. Tampilkan nama project, dana dan status dananya. Tampilkan status dana
dengan memanggil fungsi yang dibuat pada soal nomor 5
112
Basis Data
113
Basis Data
Job Sheet 12
A. Standar Kompetensi
Mahasiswa mampu merancangkan basis data relasional dan menggunakan
bahasa basis data dalam pengelolaannya
B. Kompetensi Dasar
Setelah mempelajari materi ini, mahasiswa diharapkan mampu
menggunakan trigger
C. Indikator
1. Mahasiswa mampu menggunakan trigger
D. Peralatan
1. Seperangkat computer yang sudah terinstal MySQL, Apache Web Server
dan browser atau SQLYog
2. Buku Ajar
3. Job sheet
4. Kertas A4 dan tinta printer untuk mencetak diagram pada praktikum
E. Teori
Trigger merupakan sekumpulan aksi yang dijalankan secara otomatis
ketika sebuah operasi tertentu dilakukan pada tabel. Operasi yang dimaksud
misalnya INSERT, UPDATE atau DELETE data pada tabel tertentu. Trigger
sangat berguna pada aksi-aksi seperti memastikan aturan, melakukan validasi
atau mencatat log.
Perintah untuk membuat trigger adalah sebagai berikut:
114
Basis Data
Keterangan :
trigger_time : kapan trigger akan dijalankan. Ada 2 jenis time yaitu : BEFORE
dan AFTER. Tentu saja ini mengindikasikan trigger akan
dijalankan sebelum atau sesudah terjadinya perubahan pada
tabel.
trigger_event : jenis operasi apa yang akan membuat trigger dijalankan.
Operasi yang dimaksud bisa INSERT, UPDATE atau DELETE.
table_name : nama tabel yang akan dimodifikasi oleh operasi pada
trigger_event. Trigger hanya bisa dibuat pada tabel permanen,
bukan temporary table ataupun view.
trigger_body : perintah SQL yang akan dilakukan saat trigger berjalan
F. Keselamatan Kerja
1. Ikuti langkah kerja yang ada pada job sheet
2. Perhatikan keamanan instalasi listrik saat menghidupkan dan
mematikan computer
3. Pastikan lingkungan kerja (meja, kursi dan computer) bersih, baik
sebelum maupun sesudah penggunaan
4. Jika ada hal yang kurang jelas, tanyakan kepada dosen pengampu
G. Langkah Kerja
1. Bukalah aplikasi SQLYog
2. Buat database northwind dengan langkah berikut:
3. Lakukan import pada file northwind.sql yang diberikan oleh pengampu
mata kuliah Anda, dengan mengikuti langkah berikut:
2 3
115
Basis Data
5. Cari direktori penyimpanan file northwind.sql, lalu pilih file dan klik
Open
6. Klik Execute
116
Basis Data
117
Basis Data
Keterangan :
NEW : menunjukkan item yang baru saja diisi. Dalam contoh di atas
adalah kolom Quantity yang baru saja diisi ke dalam tabel order details
dan productID yang baru diisi ke dalam tabel order details
Selain NEW, ada juga istilah OLD. OLD mengacu pada data lama, misalnya
kolom lama yang akan diubah atau dihapus.
9. Ketikkan perintah SQL berikut untuk mengetahui stok barang saat ini
11. Eksekusi kembali perintah SQL pada soal 9, dan perhatikan apakah stok
barang berkode 1 telah berkurang sebanyak 2 buah!
H. Evaluasi
1. Buatlah trigger untuk menangani perubahan stok product apabila terjadi
pengubahan data pada order details!
2. Buatlah trigger untuk menangani perubahan stok product apabila terjadi
penghapusan data pada order details!
3. Buatlah sebuah tabel bernama log_shippers dengan kolom-kolom sebagai
berikut:
ID INT AUTO INCREMENT, ShipperID INT, waktu DATETIME, aksi
VARCHAR(20)
118
Basis Data
dengan isian shipperID sesuai data yang dihapus, waktu berisi waktu saat
hapus data dan aksi berisi nilai HAPUS DATA
119