Anda di halaman 1dari 92

6

PERTEMUAN 1
SISTEM BASIS DATA

Database Management System


Database
(DBMS)
Software yang digunakan untuk
Kumpulan data yang saling
mendefinisikan, membuat, mengelola
berhubungan
database serta
Aplikasi Database Sistem Database

Program aplikasi yang berinteraksi


Sekumpulan program aplikasi yang
dengan database pada waktu tertentu
berinteraksi dengan database sekaligus
ketika program tersebut dijalankan.
DBMS dan database itu sendiri.

Contoh penerapan:

• SIPADU STIS sebagai sistem database memuat berbagai aplikasi basis data
seperti aplikasi daftar dosen, aplikasi jadwal perkuliahan, dsb.
• Shopee sebagai sistem database didalamnya memuat aplikasi transfer,
shopeefood, dan spaylater
• Instagram dengan memanfaatkan software DBMS bernama PostgreSQL,
mampu mengolah informasi user agar tersimpan di database secara terstruktur
sehingga tidak memungkinkan pesan tertukar.
Ilustrasi sistem database

Sistem berbasis file (setiap program mendefinisikan dan mengelola sendiri datanya
masing-masing)
Sebelum digunakannya DBMS, pada zaman dahulu digunakan sistem berbasis file
atau pengarsipan. ‘pendekatan berbasis file’ mengacu pada situasi di mana data
disimpan dalam satu atau lebih file komputer terpisah yang ditentukan dan dikelola
oleh program aplikasi yang berbeda. Misalnya, detail pelanggan dapat disimpan
dalam satu file, pesanan di file lain, dll.

7
Keterbatasan pendekatan file based
1. Pemisahan dan isolasi data
• Setiap program mengelola datanya sendiri
• Pengguna salah satu program bisa jadi tidak peduli dengan data bermanfaat
dan potensial yang digunakan oleh program lain
2. Duplikasi Data
• Data yang sama berada pada program yang berbeda
• Boros ruang dan berpotensi adanya nilai atau format data yang berbeda
untuk item data yang sama
• Boros waktu dan uang untuk memasukkan data lebih dari sekali
• Berpeluang kehilangan integritas
3. Program – Data dependence
4. Incompatible file formats (Program-program ditulis dalam bahasa yang
berbeda)
5. Fixed Queries of application programs (Jika ada kebutuhan baru, diperlukan
program baru)
Keterbatasan utama :
• Pendefinisian data di-embed di program aplikasi, tidak disimpan secara terpisah
dan independen
• Tidak ada kontrol atas akses dan manipulasi data selain yang sudah ditentukan
oleh program aplikasi
Pada pendekatan berbasis file hanya mengelola akses fisik sedangkan database
mengelola akses fisik dan logis ke data. Perbedaan model logis dan fisik adalah
sebagai berikut

Model logical Model physical

untuk mengumpulkan informasi diperlukan untuk perancangan basis data


tentang kebutuhan bisnis dan tidak yang sebenarnya.
melibatkan perancangan basis data

8
model basis data logis untuk suatu Menggunakan perangkat lunak dan
aplikasi dapat digunakan di berbagai perangkat keras khusus dan memiliki
perangkat lunak dan implementasi indeks dan kendala.
basis data

Pemodelan basis data logis meliputi; pemodelan basis data fisik meliputi;
ERD, diagram proses bisnis, dan diagram model server, dokumentasi
dokumentasi umpan balik desain basis data, dan dokumentasi umpan
pengguna; balik pengguna.

PENDEKATAN DATABASE
Kumpulan data dan deskripsi dari data yang berhubungan secara logika yang
dibagikan. Karena definisi/struktur data di definisikan di database bukan di kode
program aplikasi, maka akan memungkinkan program–data independence
Contoh relasi data secara logic (logically related)
Misal database suatu kantor yang menyimpan informasi kantor cabang (branch) dan
staff

❑ Entities: mahasiswa, dosen, mata kuliah

❑ Property: NIM, Kode dosen, kode matkul, jumlah SKS

❑ Relationship: dosen mengajar matkul, mahasiswa mempelajari matkul


Database system

Fungsi dalam DBMS


1. Mendefinisikan database menggunakan Data Definition Language (DDL)
2. Memanipulasi/modifikasi atau query/baca data dalam database menggunakan
Data Manipulation Language (DML)
⮚ Menyediakan fasilitas untuk inquiry umum dari data atau biasa disebut
query language.
⮚ Query language paling umum dan standar adalah SQL (Structured
Query Language).

9
3. Akses terkontrol ke database dengan menyediakan:
⮚ Security system: mencegah unauthorized user untuk mengakses database
⮚ Integrity system: memelihara konsistensi data yang disimpan
⮚ Concurrency control system: memungkinkan akses database secara
bersamaan
⮚ Recovery control system: me-restore database ke keadaan sebelumnya
jika terjadi kerusakan software/hardware
⮚ User-accessible catalog: menyimpan deskripsi-deskripsi data dalam
database
4. Views mechanism: memungkinkan user masing-masing untuk memiliki view
(subset database) dari suatu database. View bersifat dinamis, artinya perubahan
yang dilakukan pada relasi dasar yang mempengaruhi atribut View langsung
akan tercermin dalam hasil View. Kegunaan views diantaranya:
⮚ Mengurangi complexity: view sesuai kebutuhan
⮚ Menyediakan suatu level security
⮚ Menyediakan mekanisme untuk kustomisasi tampilan database: misal
mengganti label field tertentu sesuai kebutuhan tiap-tiap user
⮚ Menyajikan struktur database yang konsisten dan tidak berubah, bahkan
jika database yang mendasarinya berubah (contoh: penambahan tabel,
field baru, relationship berubah, dll)
Ilustrasi Views
Branch Staff

Contoh: pada akhir tahun, manager meminta untuk membuat tabel laporan
daftar staff yang hanya terdiri dari informasi last name, position, branch no,
dan city. (bukan keseluruhan atribut pada relasi Branch dan Staff)

Bentuk Views yang diinginkan:

lName Position BranchNo city

10
Keuntungan DBMS

❖ Mengontrol data redundancy


❖ Konsistensi data (menyimpan data dalam satu tempat)
❖ Mendapatkan informasi yang lebih untuk jumlah data yang sama
❖ Berbagi (sharing) data (database dimiliki oleh oragnisasi, bukan divisi tertentu)
❖ Meningkatkan data integrity (constraints) – validitas dan konsistensi data yang
disimpan
❖ Meningkatkan security
❖ Enforcement of standards (data formats, naming conventions, document
standards, prosedur dan aturan untuk update dan akses)
❖ Economy of scale (menggabungkan dan mengelola data dalam satu tempat akan
menghemat biaya)
❖ Menyeimbangkan kebutuhan-kebutuhan users yang bertentangan (karena
database dikelola oleh DBA yang dapat mengambil keputusan sesuai kebutuhan
users)
❖ Meningkatkan aksesibilitas dan respons data (dapat diakses melalui program,
query language, atau report writers)
❖ Meningkatkan produktivitas (DBMS menyediakan fungsi-fungsi untuk kode
program sehingga memudahkan pembuatan program)
❖ Meningkatkan pemeliharaan melalui independensi data (karena database dan
program aplikasi independen/terpisah)
❖ Meningkatkan concurrency (DBMS dapat mengelola akses database secara
bersamaan)
❖ Meningkatkan layanan backup and recovery (mengurangi resiko kegagalan
dalam proses backup recovery)
Kekurangan DBMS

◼ Kompleksitas (harus mengerti fungsi-fungsi yang kompleks dari sisi database


design, kebijakan akses, dll)
◼ Size (karena menyediakan fungsi-fungsi yang kompleks dan banyak, DBMS
membutuhkan memory yang lebih besar)

◼ Biaya DBMS (biaya bervariasi tergantung dari fungsionalitas yang disediakan,


jumlah user yang mengakses, biaya pemeliharaan, dll)

◼ Performa (DBMS dibangun untuk aplikasi secara general, bukan seperti


program aplikasi yang spesifik bertugas untuk fungsi tertentu. Sehingga
kemungkinan tidak akan secepat file-based system)

◼ Dampak kegagalan yang lebih tinggi (sentralisasi sumber daya meningkatkan


kerentanan sistem, jika ada kegagalan akan berpengaruh ke keseluruhan sistem)

11
Komponen Environment DBMS

a) Hardware (single PC atau jaringan computer)


b) Software (DBMS, operating system, network software, program aplikasi)
c) Data (Operasional data yang dimiliki organisasi serta deskripsi data tersebut
yang disebut schema)
d) Procedures (Instruksi dan aturan-aturan yang harus diaplikasikan pada design
dan penggunaan database dan DBMS (login, start/stop DBMS, backup, dll)
e) People, terdiri atas :
1. Data Administrator (DA): bertugas mengelola data sebagai sumber daya
(DB planning, merancang , conceptual/logical DB, development and
maintenance of standards, policies and procedures, dll)
2. Database Administrator (DBA): bertugas dalam implementasi fisik
database di DBMS (physical DB design & implementation, security and
integrity control, dll)
3. Database Designers (Logical and Physical):
⮚ Conceptual/logical DB design
o Logical designer mengidentifikasi entities, atribut/properties,
relationship, dan constraints
o Logical designer harus memahami data dan business rules (aturan-
aturan data)
⮚ Physical DB design
designer akan memutuskan bagaimana
mengimplementasikan/merealisasikan logical design secara fisik.
Contohnya: memetakan logical design ke tabel-tabel dan constraints di
DBMS
4. Application Programmers : Membuat program yang mengakses database
(retrieve/baca, insert, update & delete data)
5. End Users
⮚ Naïve users: tidak perlu tahu tentang DBMS atau database, mereka
mengakses data di database melalui program aplikasi
⮚ Sophisticated users: familiar dengan struktur database dan fasilitas-
fasilitas yang disediakan DBMS, mereka mengakses data di database
menggunakan query language seperti SQL
LATIHAN PERTEMUAN 1 DAN PEMBAHASAN
https://drive.google.com/file/d/1hrcgcSlhSNrpIl0oK3Jznlg_QYR_omOo/view?us
p=share_link

12
PERTEMUAN 2
RELATIONAL MODEL
A. Model database
Suatu konsep yang menggambarkan relationships antar data dan batasan-batasan
(constraint) data dalam suatu database (logical structure of database) dan
bagaimana data akan disimpan, disusun, dan dimanipulasi dalam sebuah sistem
database. Tiga model database yang paling umum:
- Model database hirarki (Hierarchical model)
- Model database Jaringan (Network model)
- Model database Relasi (Relational model)
B. Relational Database Model
Yang dimaksud relasi dalam relational model mengacu ke bagaimana tabel
dalam database itu bisa saling terkait secara logical. Berikut istilah dalam
relational model:
1. Relasi: tabel dengan banyak kolom dan baris (relasi digunakan pada logical
structure).
2. Atribut: nama dari sebuat kolom dalam sebuah relasi (menyimpan informasi
mengenai sebuah objek dalam database).
3. Domain: kumpulan nilai untuk satu atau lebih atribut.
▪ Setiap atribut dalam sebuah relasi didefinisikan sebuah domain
▪ Setiap atribut mungkin memiliki domain yang beda
▪ 2 atau lebih atribut mungkin memiliki domain yang sama
4. Tuple: sebuah baris dalam sebuah relasi (tidak terurut dan tidak berpengaruh
ke relasi).
5. Derajat: banyaknya atribut (kolom) dalam sebuah relasi.
⮚ Unary relation: relasi dengan 1 atribut
⮚ Binary relation: relasi dengan 2 atribut
⮚ Ternary relation: relasi dengan 3 atribut
⮚ N-ary relation: relasi dengan lebih dari 3 atribut
6. Kardinalitas: banyaknya tuple (baris) dalam sebuah relasi.
7. Relational schema: suatu relasi (yang mempunyai nama) yang didefinisikan
oleh sekumpulan pasangan atribut dan domainnya.
8. Relational database schema adalah sekumpulan relation schema masing-
masing dengan nama yang unik.
Jika R1, R2, . . . , Rn adalah sekumpulan schema, maka database schema,
atau bisa juga disebut relational schema, R, dapat dituliskan sebagai:
R = {R1, R2, . . . , Rn}

13
Istilah lain yang memiliki makna sama

Formal terms Alternative 1 Alternative 2

Relation Table File

Tuple Row Record

Attribute Column Field

Ilustrasi komponen dalam relational model:


Contoh 1.

Skema database: Mahasiswa (NIM, Nama, Alamat, Jenis Kelamin)


Contoh 2.

C. Relational Keys
Relational key adalah alat untuk satu atau lebih atribut untuk mengidentifikasi
sama atau tidaknya tuple/baris dalam suatu relasi. Berdasarkan jenisnya ada:
1. Superkey: sebuah atribut, atau sekumpulan atribut, yang secara unik
mengidentifikasi sebuah tuple/baris dalam sebuah relasi (yang dapat
membedakan setiap baris data dalam tabel secara unik dan tidak bernilai
kosong).
2. Candidate key: sebuah superkey minimal (memiliki jumlah atribut paling
sedikit), yaitu superkey yang tidak merupakan bagian atribut dari suatu
superkey lain. Candidate key K memiliki karakteristik:

14
◼ Dalam setiap tuple pada sebuah relasi, nilai-nilai dari candidate key K
secara unik mengidentifikasi tuple tersebut (uniqueness, bisa berupa
kode).

◼ Tidak ada subset dari candidate key K yang mempunyai sifat


uniqueness (irreducibility) – artinya sudah paling minimal jumlah
atributnya (tidak bisa dikurangi lagi atributnya)

3. Primary key: candidate key yang dipilih untuk mengidentifikasikan tupel


secara unik dalam relasi.
4. Alternate keys: candidate key yang tidak dipilih sebagai primary key.
5. Foreign key: atribut dengan domain yang sama yang menjadi primary key
pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai
atribut biasa (disebut foreign key). Ketika sebuah atribut muncul di lebih
dari satu relasi, biasanya kemunculannya mewakili hubungan (relationship)
antara tuple dari dua relasi.

15
Skema database (primary key di-underline):
Branch(branchNo, street, city, postcode)
Staff(staffNo, fName, lName, position, sex, DOB, salary, branchNo)
D. Integrity Constraints dalam database
Karena setiap atribut memiliki domain yang terkait, terdapat
aturan/batasan/contraints (disebut domain constraints) yang membatasi
himpunan nilai yang diperbolehkan untuk atribut pada relasi.
Ada batasan/aturan/constraints yang berlaku untuk seluruh database seperti:
Null
▪ Merepresentasikan nilai untuk atribut yang saat ini tidak diketahui atau tidak
berlaku untuk tuple/baris tersebut
▪ Untuk data yang tidak lengkap atau exceptional/pengecualian/berbeda
dengan data lainnya
▪ Merepresentasikan ketiadaan nilai tetapi tidak sama dengan nol atau spasi
yang merupakan suatu nilai
Entity Integrity
▪ Berlaku untuk primary keys
▪ Tidak ada komponen primary key yang bernilai null pada relasi dasar (base
relation). Base relation adalah relasi yang mempresentasikan suatu entitas.
Referential Integrity
▪ Berlaku untuk foreign keys
▪ Jika foreign key ada pada suatu relasi, nilai FK tersebut harus cocok/match
dengan nilai di relasi asalnya atau FK tersebut harus bernilai NULL
▪ Contoh: nilai FK branchNo di relasi Staff harus terisi dengan B005, B007,
B003, B004, B002, tidak boleh B025 karena tidak ada di relasi asalnya yaitu
Branch. Atau boleh NULL jika memang tidak match
General Constraints
▪ Aturan tambahan yang ditentukan oleh pengguna atau administrator
database yang menentukan atau membuat aturan-aturan/batasan untuk
kebutuhan perusahaan
▪ Contoh: di relasi Staff, untuk atribut sex (jenis kelamin) harus satu karakter
F atau M, atribut staffNo harus tidak lebih dari 4 karakter
Contoh relational model untuk aplikasi perpustakaan
buku(kodeBuku, judul, penulis, penerbit, tahunTerbit)

16
peminjam(noAnggota, noKTP, nama, alamat, pekerjaan, tglDaftar)
pegawai (noPegawai, nama, alamat)
peminjaman(kodeBuku, noAnggota, tglPinjam, tglKembali, biayaPinjam,
noPegawai)
Identifikasi relational key, atribut, dan domain
Relasi peminjam: Relasi buku: Relasi peminjaman

Candidate keys: Candidate keys: Candidate keys:


noAnggota, noKTP kodeBuku kodeBuku + noAnggota
+ tglPinjam
Primary key: noAnggota Primary key: kodeBuku
Primary key: kodeBuku
Foreign key: - Foreign key: -
+ noAnggota + tglPinjam
Foreign key: kodeBuku,
noAnggota, noPegawai

#Contoh relational model perkuliahan

Relation Schema (Skema tabel) *ingat primary key di-underline :


- Tabel Mahasiswa (NIM, nama_mhs, kelas, kd_minat)
- Tabel Nilai (NIM+Kode_MK, Nilai_Pr, Nilai_Kuis, Nilai_UTS, Nilai_UAS)
- Tabel Peminatan (Kd_minat, nama_minat)
- Tabel Matakuliah (Kode_MK, nama_matkul)
Relational Key

Relasi Mahasiswa Relasi Nilai


Superkey: NIM, nama_mhs, NIM+ Superkey:
kelas, NIM+ kd_minat, nama_mhs + NIM+ Kode_MK
kelas, nama_mhs + kd_minat NIM + Kode_MK + Nilai_Pr
Candidate key: NIM, nama_mhs NIM + Kode_MK + Nilai_kuis

17
*Foreign key: kd_minat NIM + Kode_MK + Nilai_Pr +
(*karena kd_minat merupakan primary Nilai_kuis
key dari relasi Mata kuliah)
Candidate key: Kode_MK+NIM
*Foreign key: Kode_MK dan NIM
Relasi Peminatan Relasi Matakuliah
superkey: kd_minat, nama_minat, superkey: kode_MK, nama matkul,
kd_minat + nama_minat Kode_MK+ nama matkul
candidate key: kd_minat, nama_minat candidate key: Kode_MK, nama
Foreign key: - matkul
Foreign key:-

LATIHAN SOAL PERTEMUAN 2


https://drive.google.com/file/d/1WJkfj2K04aoNfB2o95mNg4SsuHKXgWZ6/vie
w?usp=share_link

PERTEMUAN 3
ER MODELING
A. Entity Relationship Diagram (Erd)
Diagram ER merupakan model data konseptual, yang merepresentasikan data
dalam suatu organisasi dalam bentuk objek-objek dan hubungannya. ERD
digunakan untuk mendapatkan sistem database yang rapi dan terstruktur.

Simbol-simbol dalam ERD


o Persegi panjang menggambarkan entitas
o Belah ketupat menggambarkan relasi
o Lingkaran menggambarkan atribut
o Garis menggambarkan hubungan

18
B. Entity Type
Sekelompok objek dengan properties/karakteristik yang sama dan
keberadaannya independent. Objeknya bisa real (ada wujud fisiknya) atau bisa
juga konseptual (abstrak).
Contoh Entity Type

Entitas terbagi menjadi 2 bagian yaitu:

✔ Entitas kuat: entitas yang tidak memiliki ketergantungan terhadap entitas


lainnya, dapat berdiri sendiri.
✔ Entitas lemah: entitas yang memiliki ketergantungan terhadap entitas lain
dalam sebuah relasi.
Komponen Entitas ini dapat digambarkan pada ERD dengan memenuhi aturan
sebagai berikut:
1. Digambarkan dengan persegi panjang (untuk entitas lemah, digambarkan
dengan symbol persegi panjang kecil di dalam persegi panjang besar) yang
biasanya merupakan kata benda tunggal
2. Huruf pertama menggunakan uppercase (huruf kapital)

Entity Weak entity

C. Relationship Types

◼ Relationship types: Kumpulan asosiasi/hubungan yang bermakna antara


satu atau lebih entity types

◼ Relationship occurrence: Hubungan yang dapat diidentifikasi secara unik


antara entity occurrences dari entity types yang berelasi

19
Semantic network sulit dipahami karena tingkat detailnya, sehingga
digunakan model ER Diagram yang lebih mudah dimengerti.
Nama relationship hanya untuk satu arah (maknanya hanya untuk satu arah,
tidak bermakna untuk arah sebaliknya)

Degree of a Relationship (Jumlah jenis entitas yang berpartisipasi dalam


suatu hubungan relasi)

Recursive/Unary relationship: Suatu hubungan relasi di mana satu jenis


entitas yang sama berpartisipasi lebih dari satu kali dalam peran yang
berbeda

20
D. Atribut dan Kunci

◼ Attribute: Property/karakteristik dari suatu entity type atau relationship type

◼ Attribute Domain: Kumpulan nilai yang diperbolehkan untuk satu atau lebih
attribute
Jenis Attribute:
 Simple/Atomic Attribute
- Atribut terdiri dari satu komponen yang independen
- Misalnya: position dan salary dari entity Staff
 Composite Attribute
- Atribut terdiri dari beberapa komponen, masing-masing independen
- Misalnya: atribut address dari entity Branch yang dapat dibagi lagi
menjadi street, city, dan postcode 🡨 keputusan untuk membagi menjadi
atribut-atribut yang berbeda atau satu atribut tergantung pada
kebutuhan data
 Single-valued Attribute
- Atribut yang memiliki nilai tunggal untuk setiap entity occurrence
- Misalnya: setiap entity occurrence Branch akan hanya memiliki satu
nilai untuk atribut branchNo (contoh: B003)
 Multi-valued Attribute
- Atribut yang dapat menyimpan beberapa nilai untuk setiap entity
occurrence
- Misalnya: setiap entity occurrence Branch dapat memiliki beberapa
nilai untuk atribut telNo (misal branch nomor B003 dapat memiliki
nomor telepon 0141-339-2178 dan 0141-339-4439)
 Derived Attribute
- Atribut yang diturunkan dari nilai sebuah atribut atau sekumpulan
atribut lain yang terkait, tidak harus dalam entity yang sama
- Misalnya: atribut duration yang dihitung dari atribut rentStart dan
rentFinish; atribut totalStaff yang dihitung dengan menghitung jumlah
entity occurrence Staff

21
E. Hubungan relasi kompleks
Jumlah kemunculan anggota/objek dari masing-masing jenis entitas yang
berpartisipasi dalam hubungan relasi dengan jumlah yang tetap (n)

#Contoh 1 (Hubungan relasi one-to-one 1:1)

1..1 Manages 0..1

◼ Setiap staff (Manager) mengelola minimum 0 branch dan maksimum 1


branch(tuliskan 0..1)

◼ Setiap branch dikelola oleh minimum 1 staff (Manager) dan maksimum 1


staff (Manager) (tuliskan 1..1)
#Contoh 2 (relasi 1:*)

#Contoh 3 (relasi *:*)

22
Kardinalitas: jumlah maksimum kemunculan dalam suatu hubungan relasi (di
akhir/ sebelah kanan)

Partisipasi: Menentukan apakah semua atau hanya sebagian saja dari suatu
jenis entitas berpartisipasi dalam suatu hubungan relasi (di awal/di sebelah kiri)
A. Permasalahan Dalam Model ER
1. Fan Trap: Sebuah model menggambarkan sebuah relationship antara entity
types, tetapi jalur antara entity occurrences ambigu

Ilustrasi Fan Trap

Penyelesaian

2. Chasm Trap: Sebuah model menyiratkan adanya relationship antara entity


types, tetapi tidak ada jalur antara entity occurrences

23
Ilustrasi Chasm Trap

Penyelesaian

LATIHAN PERTEMUAN 3
https://drive.google.com/file/d/1qYYlI5pJScfoU_yhqWcsnr_Mm3fep98n/view?us
p=share_link

PERTEMUAN 4
MENURUNKAN RELASI UNTUK MODEL DATA LOGIS
Dalam membuat model data logis diperlukan entitas (entity), atribut (attributes),
dan relasi (relationships).

Gambar 1. Komponen Diagram ER


1. Entitas (Entity)
Entitas adalah objek dalam bentuk fisik maupun konsep yang dapat
dibedakan dengan objek lainnya. Contoh entitas termasuk Pelanggan,
Barang, Toko Eceran, Situs Web, Pesanan Pembelian, Transaksi Ritel,dll..
Dalam diagram entitas, tipe entitas direpresentasikan sebagai persegi

24
panjang. Setiap tipe entitas memiliki frase kata benda tunggal yang unik dan
ditetapkan sebagai namanya. Dalam model data relasional, setiap tipe
entitas diidentifikasi secara unik oleh kunci primer (primary key). Primary
key adalah satu atau lebih atribut yang digunakan secara unik untuk
mengidentifikasi dan membedakan setiap tipe entitas satu sama lain.
a. Jenis entitas yang kuat
Entitas mandiri yang keberadaannya tidak bergantung pada keberadaan
entitas yang lainnya. Entitas kuat memiliki primary key. Hubungan
antara dua entitas kuat disebut sebagai relationship.
Contoh:
Entitas kuat → staff (staffNo, fName, IName, position, sex, DOB)
Primary key: staffNo
b. Jenis entitas yang lemah
Entitas yang keberadaannya sangat bergantung pada keberadaan entitas
yang lainnya (entitas yang kuat). Apabila entitas kuat dihilangkan, maka
secara otomatis entitas lemah akan terhapus. Entitas yang lemah
memiliki partial key yang secara unik membedakan entitas yang lemah.
Primary key dari entitas yang lemah adalah kunci komposit yang
terbentuk dari primary key entitas kuat dan partial key entitas lemah.
Entitas kuat memiliki hubungan dengan entitas lemah melalui
identifying relationship.
Contoh:
Entitas lemah → Preference (prefType, maxRent)
Primary key: tidak ada
2. Relasi (Relationship)
Suatu relasi mengidentifikasi, menamai, dan mendefinisikan
asosiasi antara dua tipe entitas. Jenis entitas dibagi dua, yaitu entitas induk
dan entitas anak. Entitas induk membagikan identitasnya dengan entitas
anak. Entitas anak mewarisi kunci utama dari tipe entitas induk dan disebut
sebagai tipe entitas dependen. Atribut yang dibagikan dari induk ke tipe
entitas anak disebut foreign key.
Dalam model data relasional ada dua cara entitas induk dan anak
dapat dihubungkan. Cara tersebut adalah sebagai berikut
- Hubungan identifikasi (identifying relationship), artinya primary key
entitas anak mewarisi primary key entitas induknya dan keberadaan
entitas anak bergantung pada keberadaan entitas induknya. Jika tipe
entitas induk dihapus maka entitas anak juga ikut terhapus
- Hubungan yang tidak mengidentifikasi (non-identifying relationship),
artinya, primary key entitas induk diwarisi oleh entitas anak sebagai
non-primary key attribute. Ini berarti bahwa entitas anak
mereferensikan tipe entitas induknya tetapi tidak bergantung pada
keberadaan induknya. Dari sudut pandang basis data relasional, ini

25
berarti bahwa atribut yang diwariskan mungkin nol atau tidak ada
artinya.

a. Jenis hubungan biner one-to-one (1:1)


Relasi dimana suatu baris tabel A hanya berhubungan dengan suatu
baris tabel B. Perhatikan gambar dibawah ini

Gambar 2. Relasi (hubungan) biner one-to-one

- Partisipasi wajib di kedua sisi hubungan 1:1


Entitas yang terlibat dalam satu relasi digabung dan dipilih
salah satu primary key-nya untuk menjadi primary key relasi baru,
sedangkan yang lain digunakan sebagai kunci alternatif.
Contoh:
Tabel ClientPref (ClientNo, fName, telNo,prefType, maxRent,
staffNo) adalah gabungan dari tabel Client(clientNo, fName,IName,
telNo, StaffNo) dan tabel Prefrence (prefType, maxRent).
Primary key: ClientNo
Foreign key: staffNo, reference Staff(staffNo)
- Partisipasi wajib pada satu sisi hubungan 1:1
Contoh:
Jika “Preferensi” klien memiliki partisipasi parsial di sisi “Klien”
● Client(clientNo, fName,IName, telNo, StaffNo)
Primary key: clientNo
Foreign key: staffNo, references Staff(staffNo)
● Preference (clientNo, prefType, maxRent, date, comment)
Primary key: clientNo
Foreign key: clientNo, references Client (clientNo)
- Partisipasi opsional di kedua sisi hubungan 1:1
Penunjukan entitas induk dan anak dapat dipilih sesuai
kebutuhan kecuali dapat diketahui sebelumnya hubungan lebih
lanjut mengenai entitas yang berkaitan.

26
Contoh:
Salinan primary key berupa entitas Staff dapat dibuat ke
entitas Mobil atau sebaliknya dengan asumsi bahwa tidak semua
Staff memiliki mobil sehinga dapat diputuskan Staff sebagai entitas
induk dan Mobil sebagai entitas anak.
b. Jenis hubungan biner one-to-many (1:*)
Relasi One to Many adalah relasi dimana suatu baris di table A memiliki
relasi di beberapa baris di table B. Perhatikan gambar berikut

Gambar 3. Relasi biner one-to-many


Pada gambar di atas terlihat hubungan antara tabel penjual dan tabel
produk, dimana 1 penjual memiliki beberapa produk. contohnya penjual
bernama fahmi memiliki 2 produk yaitu pecel lele, dan tempe penyet.
Untuk setiap entitas di “satu sisi” (tabel penjual) ditetapkan sebagai
entitas induk dan entitas di “sisi banyak” (tabel produk) ditetapkan
sebagai entitas anak. Maka dari itu, untuk mewakili hubungan ini,
dibuatlah Salinan atribut primary key dari entitas induk ke dalam relasi
yang mewakili entitas anak dan akan bertindak sebagai foreign key (id
_penjual).
Contoh:
Hasil pemetaan dari relasi Staff Registers Client
- Staff (staffNo, fName, lName, position, sex, DOB)
Primary key: staffNo
- Client (clientNo, fName, lName, telNo, staffNo)
Primary key: clientNo, Alternate key: telNo
Foreign key: staffNo, references: Staff(staffNo)

c. Jenis hubungan biner many-to-many (*:*)


Relasi dimana setiap lebih dari satu baris data dari tabel A berhubungan
dengan lebih dari satu baris data pada tabel B. Artinya, kedua tabel

27
masing-masing dapat mengakses banyak data dari tabel yang
direlasikan. Maka dari itu, relasi Many to Many butuh tabel C sebagai
perantara tabel A dan tabel B.

Gambar 4. Relasi biner many-to-many


Salinan atribut primary key dari entitas yang berpartisipasi dalam
hubungan relasi baru bertindak sebagai foreign key. Foreign key ini
akan bertindak sebagai primary key pada relasi baru tersebut.
d. Hubungan rekursif one-to-one (1:1)
1) Kasus 1: partisipasi wajib di kedua sisi
Mewakili hubungan rekursif sebagai relasi tunggal dengan dua
Salinan primary key.
2) Kasus 2: partisipasi opsional di kedua sisi
Relasi baru dibentuk yang di dalamnya memiliki dua atribut yang
merupakan salinan primary key. Salinan primary key tersebut
bertindak sebagai foreign key dan harus diganti Namanya untuk
menunjukkan tujuan masing-masing dalam hubungannya.
3) Partisipasi wajib hanya di satu sisi
Dapat diperlakukan sebagai kasus 1 atau kasus 2.
e. Jenis hubungan superclass/subclass
Entitas superclass merupakan entitas sebagai class dasar atau biasa
disebut sebagai entitas induk. Entitas subclass merupakan class anak
atau turunan dari superclass atau biasa disebut sebagai entitas anak.
Karakteristik Hubungan Superclass/Subclass sebagai berikut.
1) Hubungan superclass/subclass adalah one-to-one (1:1)
1) Superclass mungkin memiliki subclass yang berbeda
2) Tidak semua anggota superclass membutuhkan anggota dari sebuah
subclass
3) Merupakan atribut Inheritance (konsep pewarisan sebuah class
dalam menurunkan property dan method yang dimilikinya kepada
class lain. Contoh superclass kepada subclass)

28
4) Dapat melihat hubungan yang hanya berasosiasi dengan tipe staff
tertentu dan tidak dengan staff secara umum
Berikut disajikan tabel tentang representasi hubungan
superclass/subclass.

Tabel 1. Guidelines for Representation of Superclass/Subclass


Relationship

Participation
Disjoint constraint Relations required
constraint
(tampilan horizontal)
(tampilan vertikal)

Mandatory Nondisjoint [And] Single relation

Two relation: one


relation for superclass
Optional Nondisjoit [And]
and one relation for all
subclass

Many relations: one


relation for each
Mandatory Disjoint [Or]
combined superclass/
subclass

Many relatios: one


relation for superclass
Optional Disjoint [Or]
and one for each
subclass

Contoh:
Class Pegawai {nama;gaji}
Class Manajer {nama;gaji;departemen}
Class Manajer adalah perluasan dari Class Pegawai karena
data member yang digunakan identic dengan Class Pegawai, hanya
saja ada tambahan data member departemen.
f. Jenis hubungan kompleks
Bentuk relasi baru yang berisikan salinan atribut primary key (untuk
bertindak sebagai foreign key) yang berpartisipasi dalam hubungan
kompleks tersebut.

29
Gambar 5. Jenis hubungan kompleks
3. Atribut (Atributtes)
Atribut adalah elemen dari entitas yang berfungsi mendeskripsikan
karakter dari entitas. Contoh entitas Pegawai memiliki atribyt berupa
Nomor Induk Pegawai, Nama. Alamat, Nomor Telepon, Gaji Pokok, dan
lainnya. Setiap diagram hubungan entitas bisa terdapat lebih dari satu
atribut.

Gambar 6. Contoh atribut


Jenis-jenis atribut adalah sebagai berikut.
a. Atribut Komposit yaitu atribut yang dapat dipecah menjadi bagian-
bagian yang lebih kecil dan tetap bermakna. Contoh:
Nama: nama_depan, nama_tengah, nama_belakang atau
nama_depan, nama_belakang.
Alamat : jalan, kota, kode_pos.
Jalan : no_jalan, nama_jalan, nomor apartemen.
b. Atribut Sederhana yaitu atribut yang tidak dapat dipecah menjadi
bagian-bagian yang lebih kecil yang masih memiliki makna.
Contoh: Jenis_kelamin (yang berisi pria dan wanita)
c. Atribut Turunan merupakan nilai atribut dalam suatu entitas yang
bisa dihitung atau diturunkan dari nilai suatu atribut atau sejumlah
atribut yang tersimpan dalam database atau dari nilai lain (misalnya
jam sistem atau tanggal sistem). Biasanya atribut turunan ini tidak
muncul dalam tabel database.
Contoh:

30
Usia, nilainya dapat diperoleh dari atribut Tanggal_Lahir.
Lama_Bekerja, nilainya dapat dihitung berdasarkan
Tanggal_Mulai_Bekerja.
d. Atribut Tersimpan merupakan atribut yang nilainya tidak bisa
didapatkan dari atribut-atribut lain dan benar-benar tersimpan pada
database.
e. Atribut Bernilai-tunggal (singled-valued attribute) adalah atribut
yang nilai atributnya hanya satu untuk setiap entitas.
f. Atribut Bernilai-banyak (multi-valued attribute) adalah atribut yang
nilai atributnya bisa lebih dari satu untuk setiap entitas.
Contoh:
Pada Branch user view
Branch (branchNo, street, city, postcode)
Primary key: branchNo
Telephone (telNo, branchNo) → Telephone adalah contoh multi
valued attribute
Primary key: telNo
Foreign key: branchNo, reference: Branch(branchNo)

Ringkasan

PERTEMUAN 5 & 6
NORMALISASI
A. Gambaran Umum Normalisasi
Normalisasi merupakan teknik dekomposisi suatu tabel menjadi beberapa tabel
untuk menghindari anomali ketika melakukan manipulasi. Normalisasi
bertujuan untuk :
1) Menghilangkan data yang tidak perlu (redundancy data)

31
2) Mencegah anomali data. Misalnya pada proses create, update, insert, dan
delete.
3) Mengurangi kompleksitas
Normalisasi dilakukan dengan teknik berikut :

• Data diuraikan dalam bentuk tabel


• Dilakukan analisis berdasarkan syarat setiap bentuk normal
• Jika belum memenuhi persyaratan bentuk normal, tabel dipecah menjadi
beberapa tabel hingga memenuhi kriteria optimal.
Tahapan normalisasi digambarkan dalam diagram berikut :

B. Dependensi
Untuk melakukan tahapan normalisasi di atas, dependensi harus dihilangkan.
Dependensi digambarkan dalam definisi berikut : Jika A dan B adalah atribut
(bisa lebih dari satu, masing-masing) dalam relasi R, B disebut memiliki
dependensi fungsional terhadap A jika dan hanya jika tiap nilai A memiliki
asosiasi dengan sebuah nilai di B. Dinotasikan dengan A→B. A disebut
determinan/penentu dan B disebut dependent/yang ditentukan.
1) Dependensi fungsional

staffNo → position
staffNo ← position (tidak bisa, karena position tidak unik)
staffNo → sName
staffNo ← sName
2) Dependensi fungsional penuh
Jika A dan B adalah atribut (bisa lebih dari satu, masing-masing) dalam relasi
R, B disebut memiliki dependensi fungsional penuh terhadap A jika B
memiliki dependensi fungsional terhadap A tetapi bukan terhadap subset
manapun dari A.
3) Dependensi transitif
Jika A, B, dan C adalah atribut (bisa lebih dari satu, masing-masing) dalam
relasi R, dimana A→B dan B→C, maka bisa dikatakan bahwa C memiliki

32
dependensi fungsional transitif terhadap A via B (hanya jika A tidak memiliki
dependensi fungsional terhadap B atau C).
Contoh : dari relasi Staff Branch dapat diketahui
staffNo→sName, position, salary, branchNo, bAddress
branchNo→bAddress
bAddress memiliki dependensi transitif terhadap staffNo via branchNo.
C. Bentuk Normalisasi
Tahapan normalisasi digambarkan dalam bagan berikut :

Misalnya kita memiliki data sebagai berikut :

1) Transformasi atribut ke dalam format tabel (Bentuk Tidak Normal/UNF)

2) Eliminasi nilai NULL pada grup yang berulang (sehingga satu sel hanya untuk satu
nilai), identifikasi PK, dan identifikasi seluruh dependensinya sehingga diperoleh
Bentuk Normal Pertama (1NF).
Identifikasi PK dan dependensi dilakukan dengan cara :
• Cari semua dependensi fungsional
• Cari determinan yang menentukan semua atribut lainnya (pilih sebagai PK)
• Tentukan jenis dependensi fungsional lainnya berdasarkan determinan PK

33
Sehingga diperoleh :

fd1 clientNo, propertyNo → rentStart, rentFinish (Primary key)

fd2 clientNo → cName (Partial dependency)

fd3 propertyNo → pAddress, rent, ownerNo, (Partial dependency)


oName
fd4 ownerNo → oName (Transitive
dependency)

fd5 clientNo, rentStart → propertyNo, pAddress, (Candidate Key)


rentFinish, rent, ownerNo, oName

fd6 propertyNo, rentStart → clientNo, cName, (Candidate Key)


rentFinish
3) Lakukan eliminasi dependensi fungsional parsial dan tentukan atribut yang memiliki
dependensi terhadap atribut lain sehingga diperoleh Bentuk Normal Kedua (2NF).

Sehingga diperoleh :

Client
fd2 clientNo → cName (Primary Key)

Rental

34
fd1 clientNo, propertyNo → rentStart, rentFinish (Primary Key)

fd5 clientNo, rentStart → propertyNo, pAddress, (Candidate Key)


fd6 rentFinish, rent, ownerNo, oName (Candidate Key)
propertyNo, rentStart → clientNo, cName,
rentFinish
PropertyOwner
fd3 propertyNo → pAddress, rent, ownerNo, oName (Primary Key)

fd4 ownerNo → oName (Transitive


dependency)

4) Lakukan eliminasi dependensi transitif dan tentukan kembali dependensi antaratribut


sehingga diperoleh Bentuk Normal Ketiga (3NF) sebagai berikut :

Sebagai kesimpulan, langkah-langkah yang sudah dilakukan di atas dapat


dirangkum dalam bagan berikut:

35
PERTEMUAN 7
SQL: DATA DEFINITION LANGUAGE
A. Structured Query Language (SQL)
1. Definisi SQL
° Structured Query Language (SQL) [biasa dibaca S-Q-L atau sequel]
merupakan bahasa yang digunakan untuk berkomunikasi dengan basis
data.
° SQL berisi perintah-perintah yang digunakan untuk mendefinisikan dan
memanipulasi data.
° SQL digunakan oleh DBAs, management, application developers, dan
jenis user yang lain
° SQL mudah untuk dipelajari karena:
- Ini non-prosedural – kita menentukan informasi apa yang kita
butuhkan, daripada bagaimana mendapatkannya;
- Free-format
- Terdiri dari kata-kata bahasa Inggris standar
2. Tujuan SQL:
° Membuat basis data dan struktur relasi
° Melakukan input, perubahan, dan penghapusan data dari suatu relasi
° Melakukan pencarian sederhana maupun kompleks
3. Sejarah SQL
1970 EF Codd mempublikasikan paper tentang relational model
hasil penelitian di Lab IBM di San Jose
1974 D Chamberlein membuat Bahasa Structured English Query
Language (SEQUEL)
1976 Versi revisi SEQUEL/2 dan nama diganti dengan SQL
1982 ANSI membuat Relational Database Language (RDL)
berdasar pada konsep paper IBM
1983 ISO bergabung dengan ANSI untuk membuat standar untuk
SQL
4. Standarisasi SQL
° SQL diadopsi sebagai suatu standar oleh ANSI pada 1986, siebut sebagai
SQL-86
° Standar terbaru dibuat pada tahun 2019: SQL:2019 menggunakan paten
ISO/IEC 9075
° SQL menggunakan standar bahasa inggris

36
5. Tipe Data SQL
Tipe Data Deklarasi

boolean BOOLEAN

character CHAR VARCHAR

bit BIT BIT VARYING

exact number NUMERIC DECIMAL INTEGER SMALLINT BIGINT

approximate numeric FLOAT REAL DOUBLE PRECISION

datetime DATE TIME TIMESTAMP

interval INTERVAL

large objects CHARACTER LARGE OBJECT BINARY LARGE OBJECT

6. Penulisan SQL
° Pernyataan pada SQL tedriri dari reserved words dan user-devined words
▪ Reserved words  kata kunci yang memiliki makna khusus, tidak boleh
digunakan sebagai nama objek database
Contoh: CREATE, TABLE, PRIMARY KEY, INSERT, SELECT,
FROM, ALTER

▪ User-devined words  kata yang dibuat pengguna yang


merepresentasikan tabel, kolom, view, indeks, dll
° Pernyataan di SQL bersifat case-insensitive, yang berarti huruf dapat
ditulis berupa huruf kecil maupun huruf besar.
▪ Kecuali karakter pada data harus dituliskan secara tepat, sebagai contoh
pencarian nama “SMITH” dengan menggunakan string “Smith”, tidak
akan ditemukan.
▪ Literal  konstanta dalam SQL statements
Literal non-numerik dituliskan dalam kutipan tunggal (contoh:
‘London’)
Literal numerik dituliskan tanpa kutipan (contoh: 650)
° Lebih mudah dibaca (tapi tidak harus) dengan indent dan baris seperti:
▪ Setiap pernyataan baru harus dimulai pada baris baru
▪ Awal pernyataan harus sejajar dengan awal pernyataan lainnya
▪ Jika pernyataan memiliki beberapa bagian, setiap pernyataan harus
muncul pada baris terpisah dan diberi indentasi di bawah awal
pernyataan.
7. Komponen SQL
° DDL (Data Definition Language)  untuk membuat struktur database dan
mekanisme aksesnya (yaitu mendefinisikan user yang dapat
mengaksesnya)

37
° DML (Data Management Language)  untuk mendapatkan dan
melakukan pembaruan data (digunakan untuk mengisi dan query tabel).
B. SQL Data Definition Language
° SQL DDL memungkinkan untuk pembuatan dan penghapusan objek
database seperti schemas, domains, tables, views, dan indexes.
° DDL juga digunakan untuk membuat hubungan antar tabel, mendefinisikan
batasan integritas basis data dan pengaturan keamanan.
° Hasil dari kompilasi perintah DDL adalah berupa sekumpulan tabel yang
disebut sebagai katalog sistem
° Pernyataan SQL DDL yang utama:
CREATE SCHEMA DROP SCHEMA
CREATE/ALTER DOMAIN DROP DOMAIN
CREATE/ALTER TABLE DROP TABLE
CREATE VIEW DROP VIEW

note:
Create : membuat
Alter : update
Drop : menghapus
° Menurut ISO standard, relasi dan objek database lain ada dalam sebuah
environment
° Setiap environment berisi satu atau lebih catalog, dan setiap catalog terdiri
dari sekumpulan schema
° Schema merupakan kumpulan related database objects
° Objek dalam schema dapat berupa tables, views, domains, assertions,
collations, translations, and character sets. Semua memiliki owner user
yang sama.
C. SQL untuk Integrity Constrains
Lima jenis integrity constrains:
° Required data (NULL)
° Domain constraints
° Entity integrity
° Referential integrity
° General constraints
Constrains tersebut dapat dispesifikasikan dalam CREATE and ALTER TABLE

1. Required Data
Beberapa kolom dalam tabel mungkin harus mempuanyai nilai yang valid,
untuk itu harus mendefinisikan bahwa kolom tersebut tidak boleh NULL

38
position VARCHAR(10) NOT NULL;

2. Domain constraints
Setiap kolom berelasi dengan sebuah domain. Untuk memastikan bahwa
kolom tersebut memenuhi definisi/aturan domain yang berelasi, dapat
ditambahkan dengan fungsi CHECK.
CHECK (searchCondition)

Contoh:
jnsKelamin CHAR NOT NULL CHECK (jnsKelamin IN
(‘L’, ‘P’))

3. Entity integrity
Primary Key suatu tabel harus mempunyai nilai yang unique dan not null
untuk setiap barisnya.
PRIMARY KEY (clientNo, propertyNo)

Untuk memastikan bahwa suatu kolom unik, maka bisa gunakan UNIQUE:
clientNo VARCHAR (5) NOT NULL,

propertyNo VARCHAR (5) NOT NULL,

UNIQUE (clientNo, propertyNo)

4. Referential integrity
° Foreign key adalah column atau sekumpulan columns yang
menghubungkan setiap row pada child table yang berisi foreign key ke
row di parent table yang berisi primary key yang sesuai nilainya.
° Integritas referensial artinya, jika foreign key mempunyai nilai, maka
nilai tersebut harus mengacu pada row yang ada pada parent table.
° ISO standard untuk definisi foreign key pada CREATE and ALTER
TABLE yaitu:
FOREIGN KEY(branchNo) REFERENCES Branch

° Setiap akan INSERT/UPDATE suatu nilai foreign key di child table


dengan nilai yang tidak cocok dengan di parent table, maka akan
ditolak
° Setiap operasi untuk UPDATE/DELETE suatu nilai primary key di
parent table yang berelasi dengan suatu foreign key di child table maka
harus ditambahkan pada definisi foreign key, yaitu CASCADE, SET
NULL, SET DEFAULT, dan NO ACTION.
Jika menghapus atau mengupdate baris data dalam parent table, maka:

▪ CASCADE  data dalam child table secara otomatis akan terhapus


atau terupdate mengikuti baris dalam parent table

39
▪ SET NULL  data dalam child table secara otomatis akan teupdate
menjadi NULL pada kolom table yang berelasi
▪ SET DEFAULT  setiap foreign key dalam child table akan
diberikan nilai default (jika foreign key memiliki pengaturan
default)
▪ NO ACTION  data dalam child table tidak akan terjadi perubahan
° Contoh untuk tabel PropertyForRent (dalam textbook):
FOREIGN KEY (staffNo) REFERENCES Staff ON DELETE
SET NULL

jika terdapat baris yang dihapus dari tabel Staff, maka pada FK
StaffNo yang berelasi dalam tabel PropertyForRent akan diset
NULL
FOREIGN KEY (ownerNo) REFERENCES Owner ON UPDATE
CASCADE

jika terdapat baris yang diupdate dari tabel Owner, maka pada FK
OwnerNo yang berelasi dalam tabel PropertyForRent akan diset
sama seperti baris yang diupdate dalam tabel Owner.
5. General constraints
° General constrains merupakan aturan-aturan yang ditentukan sesuai
kebutuhan perusahaan.
° Dapat menggunakan CHECK/UNIQUE dan CREATE ASSERTION
ketika CREATE dan ALTER TABLE
CREATE ASSERTION AssertionName

CHECK(searchCondition)

° Berbeda dengan CHECK / UNIQUE, ASSERTION dapat digunakan


di lebih dari satu tabel
CREATE ASSERTION StaffNotHandlingTooMuch

CHECK (NOT EXISTS (SELECT staffNo

FROM PropertyForRent

GROUP BY staffNo

HAVING COUNT(*) > 100))

Pernyataan tersebut memiliki makna bahwa staff diberikan aturan


untuk tidak mengelola lebih dari 100 properti sekaligus.
D. Data Definition
1. Create Schema
CREATE SCHEMA [Name | AUTHORIZATION Creatorldentifier]

40
DROP SCHEMA Name [RESTRICT | CASCADE ]

° Dengan RESTRICT (default), bahwa sebelum dihapus schema harus


kosong atau operasi gagal.
° Dengan CASCADE, operasi ini akan juga menghapus seluruh objek
database di dalam schema tersebut. Jika operasi penghapusan objek-objek
tersebut gagal, maka DROP SCHEMA juga akan gagal.
Contoh:
CREATE SCHEMA SqlTests AUTHORIZATION Smith

2. Create Table
CREATE TABLE TableName

{(columName dataType [NOT NULL] [UNIQUE]

[DEFAULT defaultOption] [CHECK (searchCondition)] [, .


. .]}

[PRIMARY KEY (listOfColumns),]

{[UNIQUE (listOfColumns)] [, . . .]}

{[FOREIGN KEY (listOfForeignKeyColumns)

REFERENCES ParentTableName
[(listOfCandidateKeyColumns)]

[MATCH {PARTIAL | FULL}

[ON UPDATE referentialAction]

[ON DELETE referentialAction]] [, . . .]}

{[CHECK (searchCondition)] [, . . .]})

° Membuat sebuah tabel dengan satu atau lebih kolom dengan tipe data yang
telah dispesifikasikan
° Dengan NOT NULL, sistem/DBMS akan menolak setiap usaha untuk
insert nilai NULL pada kolom tersebut
° Kita dapat menspesifikasikan nilai DEFAULT untuk suatu kolom (DDL
ini tidak ada di Ms Access)
° Primary Key harus NOT NULL
° Pernyataan FOREIGN KEY akan menspesifikasikan FK bersama dengan
ketentuan-ketentuannya.
3. Create Domain (Tidak ada di Ms Access)
CREATE DOMAIN OwnerNumber AS VARCHAR(5)

CHECK (VALUE IN (SELECT ownerNo FROM PrivateOwner));

CREATE DOMAIN StaffNumber AS VARCHAR(5)

41
CHECK (VALUE IN (SELECT staffNo FROM Staff));

CREATE DOMAIN PNumber AS VARCHAR(5);

CREATE DOMAIN PRooms AS SMALLINT

CHECK(VALUE BETWEEN 1 AND 15);

CREATE DOMAIN PRent AS DECIMAL(6,2)

CHECK(VALUE BETWEEN 0 AND 9999.99);

4. Create Table (Contoh dengan DOMAIN)


CREATE TABLE PropertyForRent (

propertyNo PNumber NOT NULL,

rooms PRooms NOT NULL, DEFAULT 4,

rent PRent NOT NULL DEFAULT 600,

ownerNo OwnerNumber NOT NULL,

staffNo StaffNumber,

branchNo BranchNumber NOT NULL,

PRIMARY KEY (propertyNo),

FOREIGN KEY (staffNo) REFERENCES Staff ON DELETE SET


NULL ON UPDATE CASCADE);

5. Alter Table
° Add kolom baru ke tabel
° Drop kolom dari tabel
° Add constraint pada tabel
° Drop constraint pada tabel
° Set default untuk kolom
° Drop default untuk kolom

Contoh:
° Ubah tabel Staff dengan menghapus default ‘Assistant’ untuk kolom
position

42
ALTER TABLE Staff

ALTER position DROP DEFAULT;

° Ubah tabel PropertyForRent dengan men-set default untuk kolom


rooms adalah 2
ALTER TABLE PropertyForRent

ALTER rooms SET DEFAULT 2;

° Hapus constraint dari tabel PropertyForRent yaitu staff tidak


diperbolehkan untuk mengelola lebih dari 100 properties pada satu
waktu
ALTER TABLE PropertyForRent

DROP CONSTRAINT StaffNotHandlingTooMuch;

° Tambah kolom baru ke tabel Client


ALTER TABLE Client

ADD COLUMN phone VARCHAR(20);

6. Drop Table
DROP TABLE TableName [RESTRICT | CASCADE]

° Dengan RESTRICT, jika ada objek-objek lain yang tergantung pada


tabel tersebut maka SQL tidak akan memperbolehkannya
° Dengan CASCADE, SQL akan juga menghapus semua objek-objek
yang tergantung pada tabel yang akan dihapus
Contoh:
DROP TABLE PropertyForRent;

E. Data Manipulation (Sekilas)


Komponen SQL statements terdiri dari DDL dan DML (Data Manipulation
Language). DDL digunakan untuk membuat struktur database dan mekanisme
aksesnya (yaitu mendefinisikan user yang dapat mengaksesnya), seperti yang
sudah dibahas di atas. Sedangkan DML digunakan untuk mengisi dan query
tabel. Manipulasi data dapat dilakukan dengan empat cara, yaitu select, insert,
update, dan delete.
1. SELECT – untuk query data di dalam database
2. INSERT – untuk insert data ke dalam suatu tabel
3. UPDATE – untuk update data di dalam tabel
4. DELETE – untuk delete data dari suatu tabel

LATIHAN PERTEMUAN 7
https://drive.google.com/file/d/1c9H_DU6mP3Wmm6pMWIaLwNkzU1fD0a5D/
view?usp=share_link

43
UJIAN TENGAH SEMESTER GENAP TAHUN AKADEMIK
2019/2020

1. Di antara atribut berikut ini, atribut yang paling tepat digunakan sebagai
primary key adalah…
a. Nama Lengkap
b. Tanggal lahir
c. Email
d. Alamat
2. Sebuah tabel disebut memenuhi bentuk 1st NF jika tabel tersebut tidak
terdapat…
a. Determinan
b. Repeating grups
c. Nilai null pada primary key
d. Functional dependencies
3. Banyaknya atribut dari sebuah entitas atau relasi dalam basis data disebut…
a. Atribut
b. Degree
c. Tuple
d. Record
4. Berikut yang tidak termasuk komponen dari lingkungan Database Management
System adalah…
a. Softwere
b. Hardwere
c. Relation
d. People
5. sebuah program aplikasi yang berjalan dan berintegrasi dengan basis data pada
suatu titik saat dijalankan disebut…
a. Database
b. Database Management System (DBMS)
c. Database Application
d. Database Systems
6. Membuat sebuah program aplikasi yang mengakses database (untuk
mengambil, menambah, memperbaharui, tau menghapus data) merupakan
peran dari….
a. Application Programmers
b. Database Administrator
c. Aplication Designers
d. Database designer
7. Berikut kekurangan dari penyimpanan dengan file-file approach, kecuali…

44
a. Ketergantungan antara program dan data
b. Tambahan biaya untuk perangkat keras yang digunakan
c. Tambahan biaya dan waktu untuk mengimput data lebih dari satu kali
d. Penyimpanan data terpisah dan terisolasi satu sama lain
8. Manakah dari pernyataan dibawah ini yang menjelaskan tentang primary key
dengan tepat?
a. Primary key adalah field pertama dalam suatu record database
b. Primary key adalah data utama yang harus ada pada DBMS
c. Primary key adalah field yang menggunakan tipe data otomatis
d. Primary key digunakan untuk menentukan suatu nilai unik untuk
mengidentifikasi record
9. Perhatikan data pada atribut A, B, C dibawah ini :
A B C
1 1 1
1 2 1
2 1 1

Berdasarkan data di atas, jika terdapat sebuah hubungan antar atribut {A,B} - >
{C} maka hubungan antar atribut tersebut bersifat:
a. Full function dependency
b. Partial dependency
c. Transitive dependency
d. Tidak ada dependency
10. Sintak mana yang tepat untuk membuat tabel?
a. CREATE PEGAWAI TABLE ( NoPeg INT(3), NamaPeg VARCHAR(50),
Pekerjaan VARCHAR(20), TanggalKontrak DATE,);
b. CREATE PEGAWAI TABLE { NoPeg INT(3), NamaPeg VARCHAR(50),
Pekerjaan VARCHAR(20), TanggalKontrak DATE,};
c. CREATE TABLE PEGAWAI ( NoPeg INT(3), NamaPeg VARCHAR(50),
Pekerjaan VARCHAR(20), TanggalKontrak DATE ); ]
d. A, B, C Benar
11. Bagaimana cara menambahkkan kolom Alamat dan TTL pada tabel
PEGAWAI.?
a. ALTER TABLE PEGAWAI
ADD Alamat VARCHAR 100, TTL Date;
b. ALTER TABLE PEGAWAI
ADD (Alamat VARCHAR 100), (TTL Date);
c. ALTER TABLE PEGAWAI
ADD (Alamat VARCHAR 100, TTL Date);
d. ALTER TABLE PEGAWAI
ADD (Alamat (VARCHAR 100), TTL (Date);

45
12. Sintak mana yang tepat untuk meng-insert dua baris dibawah ini ke tabel
PEGAWAI!
NoPeg NamaPeg Pekerjaan TanggalKontrak
31 Adi Pengawas Gudang 14-02-2018
32 Bayu Staf Pengiriman 22-04-2018

a. INSERT INTO PEGAWAI (31, ‘Adi’, ‘Pengawas Gudang’, ’14-02-2018’),


(32, ‘Bayu’, ‘Staf Pengiriman’, ’22-04-2018’);
b. INSERT INTO TABLE PEGAWAI VALUES (31, ‘Adi’, ‘Pengawas
Gudang’, ’14-02-2018’), (32, ‘Bayu’, ‘Staf Pengiriman’, ’22-04-2018’);
c. INSERT INTO PEGAWAI VALUES (31, ‘Adi’, ‘Pengawas Gudang’, ’14-
02-2018’), (32, ‘Bayu’, ‘Staf Pengiriman’, ’22-04-2018’);
d. INSERT INTO PEGAWAI VALUES (31, ‘Adi’, ‘Pengawas Gudang’, ’14-
02-2018’, 32, ‘Bayu’, ‘Staf Pengiriman’, ’22-04-2018’);
13. Berikut adalah Aggregate function yang didukung oleh SQL, kecuali :
a. SUM
b. VARIANCE
c. COUNT
d. MAX
14. Subquery tidak mungkin muncul di clausa…
a. Select
b. From
c. Where
d. Group by
15. Yang boleh muncul di select tanpa diikuti clausa group by kecuali :
a. Nama kolom saja
b. Fungsi agregat saja
c. Nama kolom dan konstanta
d. Nama kolom dan fungsi agregat
16. Operator mana yang digunakan untuk melakukan pencocokan pola?
a. BETWEEN operator
b. EXISTS operator
c. DISTINCT operator

46
d. LIKE operator
17. Berikut ini yang merupakan entitas yang bersifat konseptual adalah…
a. Produk
b. Penjualan
c. Pegawai
d. Penyedia
18. Fungsi agregat boleh muncul di clausa…
a. Select
b. From
c. Where
d. Group by
19. Untuk mengubah record menjadi bernilai pada kolom section ID menjadi
NULL.
a. Drop sectionID from Section
b. Delete SectionID from Section
c. Update Section SET sectionID =NULL
d. Update Section SET sectionID IS NULL
20. Perhatikan gambar berikut ini:

Mana yang pasti benar

47
a. Insert into grade_report values (17,112,’B’)
b. Insert into grade_ report values (17,85,B)
c. Insert into grade_report (Studentnumber, sectionidentifier) values (17,112)
d. Insert into grade_report values (17,85,’B’)
SOAL ESAI
21. Perhatikan tabel kunjungan pasien di bawah ini
No TglKunjungan NoPas UmurPas AlmtPas NoKlinik JenisKlinik Diagnosa
J001 2/1/2020 P1 35 Jatinegara K1 Umum Gejala flu
J001 2/2/2020 P1 35 Jatinegara K2 THT Radang
J002 10/1/2020 P2 17 Tebet K2 THT Sinusitis
J003 13/1/2020 P3 27 Cawang K3 Obyn Kehamilan
Pertanyaan berdasarkan data pada tabel di atas
a. Tentukan function dependency dari tabel di atas. (10 poin)
b. lakukan dekomposisi agar tabel di atas memenuhi bentuk normal yang
ketiga (3st NF) (15 poin)
22. Berdasarkan tabel pada soal nomer 20, buat perintah SQL untuk mengubah
course name yang di ajar King pada section 85 menjadi “Discrete Mathematic”.
(10 poin)
23. Sebutkan dan jelaskan kelebihan da kelemahan dari peenggunaan Database
Management System! (10 poin)
24. Diberikan dua tabel sebagai berikut :
Nama Tabel: Location

Nama Tabel:Countries

48
Berdasarkan tabel Locations dan Countries diatas
a. Tuliskan sintak SQL untuk menampilkan jumlah locations untuk setiap negara
dan tuliskan outputnya dengan format di bawah ini (10 poin) country_id
country_name region_id number_of_locations
b. Tuliskan sintak untuk menampilkan jumlah baris yang tidak memiliki nilai pada
kolom state_province ! (5 poin)

49
PEMBAHASAN SOAL UTS GENAP 2019/2020

PILIHAN GANDA
1. Tidak ada yang tepat
2. B
3. B
2. C
3. C
4. A
5. D
6. D
7. A
8. D
9. A
10. C
11. B
12. A
13. D
14. D
15. B
16. A
17. B
18. D
19. C
20. A
ESSAY
21. Jawab
a) tabel kunjungan pasien

No TglKunjungan NoPas UmurPas AlmtPas NoKlinik JenisKlinik Diagnosa


J001 2/1/2020 P1 35 Jatinegara K1 Umum Gejala flu
J001 2/2/2020 P1 35 Jatinegara K2 THT Radang
J002 10/1/2020 P2 17 Tebet K2 THT Sinusitis
J003 13/1/2020 P3 27 Cawang K3 Obyn Kehamilan
Function Dependency
No → TglKunjungan, NoPas, NoKlinik, Diagnosa NoPas, UmurPas,
AlamatPas Noklinik → Jenisklinik
No, NoPas → Noklinik, Diagnosa
b) Dekomposisi

50
1NF
No TglKunjungan NoPas UmurPas AlmtPas NoKlinik JenisKlinik Diagnosa
J001 2/1/2020 P1 35 Jatinegara K1 Umum Gejala flu
J001 2/2/2020 P1 35 Jatinegara K2 THT Radang
J002 10/1/2020 P2 17 Tebet K2 THT Sinusitis
J003 13/1/2020 P3 27 Cawang K3 Obyn Kehamilan

2NF

NoKlinik JenisKlinik
K1 Umum
K2 THT
K2 THT
K3 Obgyn
3NF
Pasien

NoPas UmurPas AlmtPas Diagnosa


P1 35 Jatinegara Gejala flu
P1 35 Jatinegara Radang
P2 17 Tebet Sinusitis
P3 27 Cawang Kehamilan
Poliklinik

NoKlinik JenisKlinik
K1 Umum
K2 THT
K2 THT
K3 Obgyn
Kunjungan

No TglKunjungan NoKlinik
J001 2/1/2020 K1
J001 2/2/2020 K2
J002 10/1/2020 K2
J003 13/1/2020 K3
Diagnosa
IdDiagnosa Diagnosa
1 Gejala Flu
1 Radang
2 Sinusitis
3 Kehamilan

51
Rekam Medis
No TglKunjungan NoPas UmurPas AlmtPas NoKlinik JenisKlinik Diagnosa
J001 2/1/2020 P1 35 Jatinegara K1 Umum Gejala flu
J001 2/2/2020 P1 35 Jatinegara K2 THT Radang
J002 10/1/2020 P2 17 Tebet K2 THT Sinusitis
J003 13/1/2020 P3 27 Cawang K3 Obyn Kehamilan
22. SELECT CourseName
FROM COURSE
WHERE CourseNumber IN ( SELECT CourseNumber FROM SECTION
WHERE Instructor='King' AND (CourseName='Discrete Mathematic') )
23. Kelebihan DBMS :
• Mengontrol kelebihan data
• Konsistensi data
• Lebih banyak informasi dari jumlah data yang sama
• Pembagian data
• Mengembangkan integritas data
• Peningkatan keamanan
• Pelaksanaan standar
• Meningkatkan aksesibilitas data dan responsive
• Meningkatkan produktivitas
• Meningkatkan maintenance melalui data independen
• Meningkatkan jasa backup dan recovery
Kekurangan DBMS :
o Kompleks
o Ukuran yang besar
o Biaya mahal (Biaya tambahan hardware dan biaya pengubahan)
o Performa (DBMS dikembangkan untuk aplikasi umum dibandingkan untuk
filebased system)
o Dampak kegagalan lebih tinggi

52
UJIAN TENGAH SEMESTER GENAP TAHUN AKADEMIK
2020/2021
Hari/Tanggal : Selasa / 23 Maret 2021
Waktu : 60 menit
Sistem Ujian : Tutup buku

1. Tuliskan perintah SQL untuk mendapatkan hasil daftar unit kerja serta jumlah
karyawan pada tiap unit kerja

a. SELECT u.kode_unit, nama_unit, SUM(*) FROM DaftarUnit u,


DaftarKaryawan k WHERE u.kode_unit = k.kode_unit GROUP BY
u.kode_unit
b. SELECT u.kode_unit, nama_unit, COUNT(*) FROM DaftarUnit u,
DaftarKaryawan k WHERE u.kode_unit = k.kode_unit GROUP BY
u.kode_unit
c. SELECT u.kode_unit, nama_unit, COUNT(*) FROM DaftarUnit u,
DaftarKaryawan k WHERE u.kode_unit = k.kode_unit GROUP BY
u.kode_unit, nama_unit
d. SELECT u.kode_unit, nama_unit, COUNT(*) FROM DaftarUnit u,
DaftarKaryawan k GROUP BY u.kode_unit WHERE u.kode_unit =
k.kode_unit
2. Penulisan syntax DDL yang benar adalah….
a. CREATE TABLE pinjam (noPinjam CHAR(4) PRIMARY KEY,
noAnggota CHAR(7), noBuku CHAR(8), tglPinjam date, tglKembali date);
b. ALTER TABLE pinjam (noPinjam CHAR(4) PRIMARY KEY, noAnggota
CHAR(7), noBuku CHAR(8), tglPinjam date, tglKembali date);
c. SELECT * FROM pinjam;

53
d. CREATE TABLE pinjam VALUES (noPinjam CHAR(4) PRIMARY
KEY, noAnggota CHAR(7), noBuku CHAR(8), tglPinjam date, tglKembali
date);
3. Jika satu entity occurrence sebuah entity dapat direlasikan dengan banyak
entity occurrence pada entity lain, dan juga sebaliknya, maka relationship-nya
adalah…
a. Many-to-many
b. One-to-many
c. One-to-one
d. Many-to-one
4. Perhatikan gambar berikut

a. SELECT * FORM DaftarNama;


b. SELECT id, nama FROM DaftarNama;
c. SELECT * FROM TABLE DaftarNama;
d. SELECT * FROM DaftarNama;
5. Manakah pernyataan yang tidak benar dari ERD di bawah ini?

a. Seorang pasien dapat menjadwalkan minimal 1 appointment dan maksimal


banyak appointment
b. Multiplicity pada relationship “Mempunyai” 0..1 terdiri dari cardinality
adalah 0 dan participation adalah 1
c. Participation constraint pada relationship antara Patient dan Appointment
merupakan mandatory participation
d. Ada pasien yang tidak memiliki medical history

54
6. Pada Integrity Constraint, apabila kita menghapus suatu data di tabel induk
yang menjadi referensi pada tabel anaknya, kemudian data pada tabel anak
tersebut juga ikut terhapus, Integrity constraint yang seperti ini disebut....
a. SET DEFAULT
b. CASCADE
c. SET NULL
d. NO ACTION
7. Bahasa SQL yang digunakan untuk mengambil dan mengupdate data disebut
… dan perintah yang termasuk adalah ...
a. Data Modification Language, CREATE, UPDATE, INSERT
b. Data Manipulation Language, SELECT, INSERT, DELETE
c. Data Modification Language, SELECT, INSERT, DELETE
d. Data Manipulation Language, UPDATE, INSERT, DROP
8. Diketahui suatu tabel: Perintah SQL untuk menampilkan informasi lengkap
semua mahasiswa yang berasal dari Jabar dan Jatim adalah
Mahasiswa(nim,nama,tgl_lahir, asal_daerah,no_telp)
a. SELECT * FROM Mahasiswa WHERE asal_daerah='Jabar',
asal_daerah='Jatim';
b. SELECT * FROM Mahasiswa WHERE asal_daerah='Jabar' OR
asal_daerah='Jatim';
c. SELECT * FROM Mahasiswa WHERE asal_daerah='Jabar' AND
asal_daerah='Jatim';
d. SELECT * FROM Mahasiswa WHERE asal_daerah='Jabar' JOIN
asal_daerah='Jatim';
9. Hasil query dari SELECT alamatKota FROM penduduk WHERE alamatKota
LIKE ‘%ng’ adalah ..
a. Padangsidempuan, Padangsiantar
b. Bengkalis, Bengkulu
c. Tangerang, Bandung
d. Ngawi, Nganjuk

55
10. Misal P, Q, R dan S adalah atribut-atribut pada suatu tabel. Berdasarkan data
yang ada pada gambar, manakah yang disebut sebagai transitive dependency…
a. Q -> R dan R -> S
b. P -> Q dan Q -> R
c. P -> R dan R -> S
d. R-> S dan S -> Q
11. Nomor 11

a. PRIMARY KEY = (nip)


b. PRIMARY KEY (nip)
c. PK = (nip)
d. PK (nip)
12. Jika Database Administrator ingin mengubah sebuah atribut biasa menjadi
atribut yang menjadi FOREIGN KEY pada relasi pinjam maka syntax yang
benar adalah…
a. ALTER TABLE pinjam ADD FOREIGN KEY REFERENCES
anggota(noAnggota) ON DELETE CASCADE;
b. ALTER TABLE pinjam ADD FOREIGN KEY (noAnggota)
REFERENCES anggota(noAnggota);
c. MODIFY TABLE pinjam ADD FOREIGN KEY REFERENCES
anggota(noAnggota) ON DELETE CASCADE;
d. ALTER TABLE pinjam ADD FOREIGN KEY (noAnggota)
REFERENCES anggota ON DELETE CASCADE;
13. Relasi (tabel) yang memenuhi bentuk normal yang pertama (1NF) adalah relasi
yang TIDAK terdapat unsur....
a. Partial Dependency

56
b. Functional Dependency
c. Determinan
d. Kelompok yang berulang
14. Operator yang digunakan dalam SQL untuk membandingkan nilai NULL
adalah…
a. HAVING
b. IS
c. IN
d. = (EQUAL)
15. Bentuk normal yang menghilangkan partial funcional dependecies adalah…
a. 2NF
b. 3NF
c. UNF
d. 1NF
16. Saat mengisi biodata, mahasiswa boleh tidak mengisi data tentang berat badan,
maka isian ini akan disimpan ke dalam basis data dalam bentuk
a. NULL
b. 0
c. Spasi
d. "NULL"
17. Apa yang terjadi jika sintaks ini dieksekusi? DROP TABLE Ujian;
a. Tabel Ujian akan dimasukkan ke dalam kotak sampah
b. Tabel Ujian dan datanya akan dihapus
c. Data tabel Ujian akan dihapus, namun tabel Ujian masih tetap ada
d. Tabel Ujian akan dihapus, namun datanya masih tetap ada
18. Manakah dari hal-hal berikut ini yang tidak bisa diubah atau diperbarui dengan
perintah UPDATE
a. Mengubah nilai semua baris pada suatu kolom
b. Mengubah baris NULL dengan suatu nilai

57
c. Mengubah nilai beberapa kolom
d. Mengubah tipe data suatu kolom
19. Pada perancangan basis data, bentuk normal yang ke berapa yang menjadi
pertimbangan suatu rancangan basis data dikatakan cukup...
a. 4NF
b. 3NF
c. 2NF
d. 5NF
20. Berikut adalah kelemahan dari sistem berbasis file, KECUALI:
a. berpeluang kehilangan integritas data antar program aplikasi
b. item data yang sama bisa mempunyai tipe data yang berbeda di antara
program aplikasi
c. pengelolaan data independen antar program aplikasi
d. item data yang sama bisa mempunyai nilai data yang berbeda di antara
program aplikasi
21. Diketahui sebuah tabel Film dengan atribut judulFilm dan durasi. Apa yang
akan ditampilkan dari pernyataan SQL di bawah ini?
a. Daftar film dengan durasi yang paling pendek
b. Daftar semua film
c. Daftar film dengan durasi yang paling lama
d. Daftar semua film kecuali film dengan durasi paling pendek
22. Sebuah ER Diagram yang memuat entitas-entitas, relationship antar entitas
tersebut, atribut-atribut dalam setiap entitas, serta primary dan foreign key-nya
adalah perancangan database pada tingkat….
a. Schema
b. Logical
c. Physical
d. Conceptual
23. Diketahui suatu entity X dengan sampel data seperti pada tabel bawah ini. x1,
x2, dan x3 merupakan entity occurrence dari entity type X. Apakah jenis atribut
dari Atribut2 dan Atribut3?

58
a. Atribut2 adalah Composite Attribute, Atribut3 Single-valued Attribute
b. Atribut2 adalah Single-valued Attribute, Atribut3 Multi-valued Attribute
c. Atribut2 adalah Multi-valued Attribute, Atribut3 Single-valued Attribute
d. Atribut2 adalah Derived Attribute, Atribut3 Multi-valued Attribute
24. Tuliskan perintah SQL untuk mendapatkan hasil daftar karyawan yang bekerja
di unit Marketing:

a. SELECT id, nama, umur FROM DaftarUnit u, DaftarKaryawan k WHERE


u.kode_unit = k.kode_unit AND u.kode_unit = 'C01'
b. SELECT u.id, k.nama, k.umur FROM DaftarUnit u, DaftarKaryawan k
WHERE u.kode_unit = k.kode_unit AND u.kode_unit = 'C01'
c. SELECT id, nama, umur FROM DaftarUnit u, DaftarKaryawan k WHERE
u.kode_unit = k.kode_unit
d. SELECT u.kode_unit, nama_unit, COUNT(*) FROM DaftarUnit u,
DaftarKaryawan k WHERE u.kode_unit = k.kode_unit GROUP BY
u.kode_unit
25. Penulisan relation instance yang benar dari Tabel Pinjam sebagai berikut,
kecuali…

59
a. {noPinjam:P001, noAnggota:0123456, noBuku:33557711,
tglPinjam:10032021, tglKembali:17032021}
b. {noPinjam:P002, noAnggota: 0123457, noBuku: 22662312, tglPinjam:
11032021, tglKembali: 18032021}
c. {noPinjam: P003, noAnggota: 34235673, noBuku: 0123458, tglPinjam:
12032021, tglKembali: 19032021}
d. {noPinjam: P005, noAnggota: 0123460, noBuku: 85634533, tglPinjam:
14032021, tglKembali: 21032021}

26. Dalam ER model dan relational model, manakah pernyataan berikut yang tidak
benar?
a. Dalam satu baris data pada tabel relasional, satu atribut dapat memiliki lebih
dari satu nilai
b. Dalam satu baris data pada tabel relasional, satu atribut dapat memiliki satu
nilai atau nilai NULL
c. Sebuah atribut dari sebuah entity dapet merupakan gabungan (composite)
beberapa atribut lain
d. Sebuah entity dapat memiliki lebih dari satu atribut
27. Keuntungan menggunakan sistem manajemen basis data adalah:
a. perfoma selalu lebih baik
b. dampak kegagalan lebih rendah
c. integritas data antar aplikasi lebih terjaga
d. kontrol terhadap redundansi data rendah
28. Pada saat melakukan query, apabila kita tidak melakukan pengurutan dengan
klausa ORDER BY, maka data akan ditampilkan secara...
a. diurutkan secara Ascending
b. sesuai urutan perintah query sebelumnya
c. Acak
d. diurutkan secara descending
29. Diketahui ERD sebagai berikut. Jika seorang pelanggan dapat mendaftar untuk
langganan majalah setiap tahunnya, Apakah peran atribut pelangganNo dan
majalahNo pada entity Subscription?

60
a. Sebagai atribut primary key dan foreign key
b. Sebagai atribut foreign key
c. Sebagai derived attribute
d. Hanya atribut biasa
30. Perintah SQL “ALTER TABLE” digunakan untuk tujuan dibawah ini kecuali…
a. Menghapus sebuah record dalam sebuah tabel
b. Menambah sebuah kolom dalam sebuah tabel
c. Menambah batasan dalam sebuah tabel
d. Menghapus sebuah kolom dalam sebuah tabel
31. Bahasa SQL yang digunakan untuk mendefinisikan struktur database disebut ...
dan perintah yang termasuk adalah ...,
a. Data Driven Language, CREATE, ALTER, DROP
b. Data Definition Language, CREATE, ALTER, DELETE
c. Data Manipulation Language, SELECT, INSERT, UPDATE
d. Data Definition Language, CREATE, DROP, ALTER
32. Diketahui pernyataan untuk membuat sebuah tabel database sebagai berikut.
Manakah pernyataan berikut yang benar?

a. Jika dilakukan update data pada tabelB, maka baris data pada
tabelA yang bersesuaian juga akan ikut berubah
b. Jika dilakukan penghapusan data pada tabelA, maka baris
data pada tabelB yang bersesuaian akan tetap atau tidak
berubah
c. Jika dilakukan penghapusan data pada tabelA, maka baris
data pada tabelB yang bersesuaian juga akan ikut terhapus
d. Jika dilakukan update data pada tabelA, maka baris data pada
tabelB yang bersesuaian juga akan ikut berubah
33. Manakah urutan yang benar dari sebuah pernyataan SQL?
a. SELECT, GROUP BY, WHERE, ORDER BY, HAVING
b. SELECT, WHERE, GROUP BY, HAVING, ORDER BY
c. SELECT, HAVING, WHERE, GROUP BY, ORDER BY
d. SELECT, WHERE, HAVING, ORDER BY, GROUP BY
34. Ciri dari model basis data relasional adalah, kecuali...
a. data dalam suatu relasi dikelompokkan dalam atribut
b. tiap atribut memiliki domain data yang sama
c. data disimpan dalam relasi berbentuk tabel

61
d. tiap relasi dapat memiliki primary key lebih dari satu
35. Perintah pada command line psql yang digunakan untuk melihat daftar tabel,
pindah database, dan melihat daftar database secara berturut-turut adalah..
a. \c, \dt namadatabase, \l
b. \dt, \c, \l namadatabase
c. \dt, \l, c namadatabase
d. \dt, \c namadatabase, \l
36. Perintah SQL yang digunakan untuk menghitung jumlah penduduk dari tabel
penduduk menurut kabupaten/kota adalah
a. SELECT idPenduduk, SUM (idPenduduk) FROM penduduk GROUP
BY kabkota;
b. SELECT kabkot FROM Penduduk GROUP BY idPenduduk;
c. SELECT idPenduduk, COUNT (kabkot) FROM penduduk GROUP BY
kabkot;
d. SELECT kabkot, COUNT (idPenduduk) FROM penduduk GROUP BY
kabkota;
37. Tentukan atribut yang dapat menjadi candidate key dari tabel penduduk berikut
serta berapa degree dan kardinalitasnya secara berurutan..

a. tglLahir, 8, dan 5
b. NIK, 5, dan 8
c. noHP, 5, dan 8
d. NIK, 8, dan 5
38. Dari gambar berikut, atribut minimal yang dapat digunakan sebagai primary
key adalah....

a. B
b. A
c. A,B
d. A, C

62
39. Suatu tabel memiliki atribut A1, A2, A3, A4, A5 diketahui memiliki functional
dependencies A1 -> A2, A3, A4, A5 dan A4 -> A5. Tabel ini dalam bentuk
normal ke....
a. 1NF
b. 2NF
c. 4NF
d. 3NF
40. Perintah SQL Create View untuk melihat detil dokter yang berada pada RS
cabang kota Semarang adalah..
a. CREATE VIEW doktersemarang AS SELECT * FROM cabang where
kotaRS =’Semarang’;
b. CREATE VIEW doktersemarang AS SELECT * FROM dokter where
kotaRS =’Semarang’;
c. CREATE VIEW doktersemarang BY SELECT * FROM dokter where
kotaRS=’Semarang’;
d. CREATE VIEW AS doktersemarang SELECT * FROM dokter
where kotaRS=’Semarang’;
41. Pernyataan berikut yang TIDAK BENAR terkait dengan normalisasi data
adalah
a. Dapat menghemat ruang penyimpan
b. Dilakukan dengan teknik bottom-up
c. Menghilangkan adanya anomali pada basis data
d. Proses query menjadi lebih mudah
42. Sebuah perusahaan mempunyai beberapa lokasi parkir yang dapat digunakan
oleh pegawai- pegawainya yang mempunyai mobil. Setiap lokasi parkir dibagi
menjadi beberapa zona parkir didalamnya. Setiap pegawai hanya dapat
menggunakan satu zona untuk memarkir mobilnya. Semua proses di atas akan
dicatat dalam sebuah database.Multiplicity pada ERD di bawah ini yang paling
tepat untuk kebutuhan perusahaan di atas adalah

a. A = 1..1, B = 1..*, C = 0..1, D = 0..*


b. A = 1..*, B = 1..1, C = 0..*, D = 1. 1
c. A = 1..1, B = 1..1, C = 1..1, D = 1..*

63
d. A = 1..*, B = 0..*, C = 0..1, D = 1..*
43. Dari gambar berikut, manakah yang menunjukkan full functional dependency

a. B -> C, A
b. B, C -> A
c. A, C -> B
d. A, B -> C dan
44. Manakah pernyataan SQL yang tepat untuk mengambil daftar mahasiswa
dengan alamat KTP di Tangerang dan Bogor tetapi domisilinya di Jakarta?
a. SELECT nama, ktp, domisili FROM mahasiswa WHERE ktp =
‘Tangerang’ OR ktp = ‘Bogor’ OR domisili = ‘Jakarta’;
b. SELECT nama, ktp, domisili FROM mahasiswa WHERE ktp =
‘Tangerang’ AND ktp = ‘Bogor’ AND domisili = ‘Jakarta’;
c. SELECT nama, ktp, domisili FROM mahasiswa WHERE ktp =
‘Tangerang’ AND ktp = ‘Bogor’ OR domisili = ‘Jakarta’;
d. SELECT nama, ktp, domisili FROM mahasiswa WHERE ktp =
‘Tangerang’ OR ktp = ‘Bogor’ AND domisili = ‘Jakarta’;
45. Jika diketahui relational database schema adalah sebagai berikut. Manakah
SQL yang paling tepat untuk mengubah data pegawai dimana semua pegawai
di department Finance (deptName = ‘Finance’) dipindahkan ke department
HRD?

a. UPDATE department SET deptname = ‘HRD’ WHERE deptname =


‘Finance’;
b. UPDATE employee set deptno = (SELECT deptno FROM
department WHERE deptname = 'HRD') WHERE deptno =
(SELECT deptno FROM department WHERE deptname =
'Finance');
c. UPDATE employee set deptno = (SELECT deptno FROM
department WHERE deptname = 'HRD') WHERE deptname =
'Finance');
d. UPDATE employee set deptno = 'HRD' WHERE deptno =
'Finance'; UPDATE department set deptname = 'HRD'
WHERE deptname = 'Finance';
46. Manakah pernyataan yang tidak benar tentang entity ERD di bawah ini?

64
a. Objek-objek yang memiliki atribut-atribut yang sama dikelompokan
sebagai entity type
b. Strong dan weak entity type mempunyai primary keys untuk
mengidentifikasi entity occurrence secara unik
c. Strong entity type keberadaannya independent
d. Setiap weak entity harus direlasikan dengan entity lain
47. Berikut yang bukan merupakan sintaks DDL adalah:
a. ALTER TABLE
b. CREATE TABLE
c. DROP TABLE
d. DELETE TABLE
48. Perhatikan gambar berikut

a. SELECT * FORM DaftarNama;


b. SELECT id, nama FROM DaftarNama;
c. SELECT * FROM DaftarNama WHERE umur > 18;
d. SELECT * FROM DaftarNama WHERE umur = 19;
49. Jika terdapat foreign key dalam sebuah relasi maka nilai foreign key harus
cocok dengan nilai candidate key dari beberapa tuple pada relasi asalnya
disebut..
a. Referential Integrity
b. User Defined Integrity
c. Entity Integrity
d. Domain Integrity

65
50. Tabel berikut adalah hasil join dari perintah query..

a. SELECT d.idDokter, d.alamatDokter, rs.idRS, rs.alamat RS FROM dokter


d, rs FULL JOIN rs ON alamatDokter = alamatRS;
b. SELECT d.idDokter, d.alamatDokter, rs.idRS, rs.alamat RS FROM dokter
d, rs RIGHT JOIN rs ON alamatDokter = alamatRS;
c. SELECT d.idDokter, d.alamatDokter, rs.idRS, rs.alamat RS FROM dokter
d, rs INNER JOIN rs ON alamatDokter = alamatRS;
d. SELECT d.idDokter, d.alamatDokter, rs.idRS, rs.alamat RS FROM dokter
d, rs LEFT JOIN rs ON alamatDokter = alamatRS;

66
PEMBAHASAN UTS GENAP TAHUN AKADEMIK 2020/2021

1. a. SELECT u.kode_unit, nama_unit, SUM(*) FROM DaftarUnit u,


DaftarKaryawan k WHERE u.kode_unit = k.kode_unit GROUP BY
u.kode_unit
Penjelasan:
● SELECT: Menentukan kolom mana yang akan muncul dalam output
● FROM: Menentukan relasi / tabel yang akan digunakan
● WHERE: Memfilter tupel / baris
● GROUP BY: Membentuk kelompok baris dengan nilai kolom yang sama
● SUM: akan menghasilkan jumlah nilai suatu kolom
● COUNT: akan menghasilkan banyaknya(count) suatu nilai dalam kolom

2. a. CREATE TABLE pinjam (noPinjam CHAR(4) PRIMARY KEY, noAnggota


CHAR(7), noBuku CHAR(8), tglPinjam date, tglKembali date);
penjelasan:
- Alter table: untuk mengubah tabel dengan fungsi add/drop kolom atau
constraints
- Create table: Membuat sebuah tabel dengan satu atau lebih kolom dengan
tipe data yang telah dispesifikasikan

3. a. Many-to-many
penjelasan:
● One to many: relasi dimana suatu baris di table A memiliki relasi di
beberapa baris di table B.
● One to one: relasi dimana suatu baris tabel A hanya berhubungan dengan
suatu baris tabel B.
● Many to one: Setiap baris data dari tabel pertama dapat dihubungkan ke satu
baris atau lebih data dan tabel ke dua hanya memilih satu. Contohnya:
banyak mahasiswa bisa berhubungan dengan satu mata kuliah

4. d. SELECT * FROM DaftarNama;


Penjelasan: tanda * digunakan sebagai singkatan untuk “all column”

5. b. Multiplicity pada relationship “Mempunyai” 0..1 terdiri dari cardinality


adalah 0 dan participation adalah 1
Penjelasan: Pernyataan yang benar seharusnya adalah. Multiplicity pada
relationship “Mempunyai” 0..1 terdiri dari cardinality adalah 1 dan participation
adalah 0 (kardinalitas: jumlah max, participation: jumlah min)

67
6. b. CASCADE
Penjelasan:

◼ CASCADE: Jika kita menghapus atau mengupdate baris data dalam tabel
parent secara otomatis akan juga menghapus atau mengupdate baris yang
sesuai dalam tabel child.

◼ SET NULL: Jika kita menghapus atau mengupdate baris data dalam tabel
parent secara otomatis akan mengupdate baris pada tabel child menjadi
NULL pada kolom yang berelasi. Hal ini dapat dilakukan jika kolom foreign
key di tabel child tidak memiliki pengaturan NOT NULL.

◼ SET DEFAULT: Jika kita menghapus baris data pada tabel parent maka
setiap FK di tabel child akan diberikan nilai default. Hal ini dapat dilakukan
jika foreign key memiliki pengaturan DEFAULT.

◼ NO ACTION: Tidak ada tindakan yang dilakukan pada baris data tabel
child saat baris data di tabel parent dihapus atau diupdate. Penghapusan
pada tabel parent akan ditolak. (default)
7. b. Data Manipulation Language, SELECT, INSERT, DELETE
Penjelasan: DML digunakan untuk mengisi dan query tabel. SQL DML (Data
Manipulation Language) statements terdiri dari:

◼ SELECT – untuk query data di dalam database

◼ INSERT – untuk insert data ke dalam suatu tabel

◼ UPDATE – untuk update data di dalam tabel

◼ DELETE – untuk delete data dari suatu table


8. c. SELECT * FROM Mahasiswa WHERE asal_daerah='Jabar' AND
asal_daerah='Jatim';
penjelasan: And dan Or merupakan operator subquery yang artinya operasi ini
bisa digunakan apabila dalam 1 tabel yang sama. Sedangkan Join digunakan
untuk menghubungkan atribut pada 2 tabel yang berbeda.

9. c. Tangerang, Bandung
penjelasan: query tersebut untuk menampilkan alamat kota yang berakhiran
‘ng’. Untuk menampilkan alamat kota yang berawalan “Nga”, querynya
adalah: SELECT alamatKota FROM penduduk WHERE alamatKota LIKE
‘Nga%’. Query ini juga berlaku untuk menampilkan kota
Padangsidempuan,Padangsiantar serta Bengkalis, Bengkulu

68
10. c. P -> R dan R -> S
Penjelasan:

P Q R S

6 7 7 5

4 1 2 3

3 7 2 3

4 2 2 3

11. b. PRIMARY KEY (nip)


Penjelasan:
Penulisan syntax yang benar untuk relational key adalah sebagai berikut:

- Primary key: PRIMARY KEY(Atribut PK)


- Foreign key: FOREIGN KEY(Atribut FK) REFERENCES tabel. Contoh :
FOREIGN KEY(branchNo) REFERENCES Branch

12. b. ALTER TABLE pinjam ADD FOREIGN KEY (noAnggota) REFERENCES


anggota(noAnggota);
Penjelasan: Jawaban yang benar adalah jawaban B. Jawaban D kurang tepat
karena pada soal hanya ditanyakan cara mengubah atribut menjadi FK saja,
bukan ditanyakan juga terkait perintah untuk delete/update.

13. d. Kelompok yang berulang


Penjelasan:
- UNF: Transfer atribut ke bentuk tabel. Masih memungkinkan adanya
kelompok berulang
- First Normal Form: sebuah tabel dimana setiap irisan antara baris dan kolom
berisikan satu dan hanya satu nilai. Pada relasi ini sudah tidak ada unsur
kelompok berulang (repeating groups)
- Second Normal Form (2NF): setiap atribut non-primary-key bersifat fully
functionally dependent pada primary key. Pada relasi ini sudah tidak ada
unsur Partial Dependencies
- Third Normal Form (3NF): sebuah relasi dalam bentuk 1NF dan 2NF dan
dimana tidak terdapat atribut non-primary-key yang bersifat transitively
dependent pada primary key. Pada relasi ini sudah tidak ada unsur
Transitive Dependencies

69
14. c. IN
Penjelasan:
- IN digunakan untuk mencari apakah nilai suatu atribut ada di dalam
himpunan nilai lain yang bertipe sama. Dalam kasus diatas apakah sama-
sama bernilai “NULL”
- IS NULL digunakan untuk menguji apakah suatu atribut bernilai NULL
atau tidak,
- HAVING digunakan untuk memfilter grup yang memenuhi beberapa
kondisi
- EQUAL (=) digunakan untuk menguji persamaan dengan nilai yang bukan
NULL
15. a. 2NF
Penjelasan:
- 1NF menghilangkan repeating group
- 2NF menghilangkan partial dependency
- 3NF menghilangkan transitive dependency
16. a. NULL
Penjelasan: bentuk 0 dan spasi masih dapat menggambarkan suatu nilai
sehingga apabila tidak ada nilainya seharusnya diisi NULL
17. b. Tabel Ujian dan datanya akan dihapus
Penjelasan: Untuk jawaban c (Data tabel Ujian akan dihapus, namun tabel Ujian
masih tetap ada) adalah dengan menggunakan syntax TRUNCATE
18. d. Mengubah tipe data suatu kolom
19. b. 3NF
20. c. pengelolaan data independen antar program aplikasi
21. b. Daftar semua film (termasuk durasi paling pendek)
22. d. conceptual
Perbedaan logical, physical, dan conceptual adalah sebagai berikut
o Desain Conceptual database
Identify entity types
Identify relationship types
Identify and associate attributes with entity
Determine attribute domains
Check model for redudancy
o Desain logical Database
Model data konseptual yang dibangun pada fase sebelumnya diperhalus dan
dipetakan pada model data logikal. Pada fase ini, dibangun sebuah model
data logical yang menggambarkan view tertentu, serta normalisasi
dilakukan juga dilakukan pada tahap ini
o Desain Fisik Database

70
Mendeskripsikan base relation, organisasi file, dan indeks yang digunakan
untuk mencapai efisiensi akses kedalam data, dan associated integrity
constraints yang lainya dan security measures.
23. b. Atribut2 adalah Single-valued Attribute, dan Atribut3 adalah Multi-valued
Attribute
Penjelasan:
Misalkan tabel tersebut berisi:

NAMA ALAMAT NO TELPON

ANDI BIDARACINA 08576431

ANDI BIDARACINA 08596504

NOVI KEBON SAYUR 08234165

DINTA CAWANG 08566832

DINTA CAWANG 08297685

(Tabel 1NF)
Dapat terlihat bahwa ANDI memiliki ALAMAT yang berjenis single value
attribute karena hanya beralamat di BIDARACINA, akan tetapi ia memiliki
multi valued attribute no telpon karena dia memiliki 2 nomor telpon.
24. b. SELECT u.id, k.nama, k.umur FROM DaftarUnit u, DaftarKaryawan k
WHERE u.kode_unit = k.kode_unit AND u.kode_unit = 'C01'
25. c. {noPinjam: P003, noAnggota: 34235673, noBuku: 0123458, tglPinjam:
12032021, tglKembali: 19032021}
Penjelasan: penulisan yang benar adalah {noPinjam: P003, noAnggota:
0123458, noBuku: 34235673, tglPinjam: 12032021, tglKembali: 19032021}
26. a. Dalam satu baris data pada tabel relasional, satu atribut dapat memiliki lebih
dari satu nilai
Penjelasan: Pada tabel relasional, setiap atribut hanya dapat memiliki satu nilai
pada setiap baris data atau tupel.
27. c. integritas data antar aplikasi lebih terjaga
Penjelasan: salah satu keuntungan DMBS adalah meningkatkan data integrity
(constraints) – validitas dan konsistensi data yang disimpan
28. b. sesuai urutan perintah query sebelumnya
Penjelasan: klausa order by bukan merupakan klausa yang mandatory atau tidak
wajib ada. Oleh karena itu, jika tidak terdapat klausa order by dalam query kita,
data akan terurut mengikuti perintah query sebelumnya.

71
29. B. Sebagai atribut foreign key
Penjelasan: Atribut pelangganNo dan majalahNo dalam entity Subscription
akan perperan sebagai foreign key karena entity subscription merupakan child
table yangmana atribut tersebut representative terhadap parent table, yaitu entity
Pelanggan dan Majalah.
30. A. Menghapus sebuah record dalam sebuah tabel
Penjelasan: kegunaan ALTER TABLE adalah:
° Add kolom baru ke tabel
° Drop kolom dari tabel
° Add constraint pada tabel
° Drop constraint pada tabel
° Set default untuk kolom
° Drop default untuk kolom
31. D. Data Definition Language, CREATE, DROP, ALTER
Penjelasan: Data Definition Language: untuk membuat struktur database dan
mekanisme aksesnya (yaitu mendefinisikan user yang dapat mengaksesnya).
Yang termasuk petintah DDL: create, alter, drop.
32. D. Jika dilakukan update data pada tabelA, maka baris data pada
tabelB yang bersesuaian juga akan ikut berubah
Penjelasan: Dalam hal ini, tabelB merupakan child table dan tabelA
merupakan parent table. Dimana jika dilakukan penghapusan pada
tabelA, maka data yang bersesuaian pada tabelB akan diset null, dan
jika dilakukan update pada tabelA, maka data bersesuaian pada tabel
Bakan terupdate mengikuti tabelA.
33. B. SELECT, WHERE, GROUP BY, HAVING, ORDER BY
Penjelasan:
SELECT [DISTINCT | ALL]
{* | [columnExpression [AS newName]] [,...] }
FROM TableName [alias] [, ...]
[WHERE condition]
[GROUP BY columnList] [HAVING condition]
[ORDER BY columnList]
34. D. tiap relasi dapat memiliki primary key lebih dari satu
Penjelasan: Setiap relasi dalam model basis data relasional memiliki sebuah
primary key, yaitu kolom atau kombinasi kolom yang secara unik
mengidentifikasi setiap baris dalam tabel. Tiap relasi hanya dapat memiliki satu
primary key, dan primary key ini berguna untuk menghindari duplikasi data dan
mempercepat proses pencarian data dalam tabel.

72
35. D. \dt, \c namadatabase, \l
Penjelasan:
\dt : melihat daftar tabel
\c <database> : pindah ke database yang diinginkan
\l : melihat database di server PostgreSQL
36. D. SELECT kabkot, COUNT (idPenduduk) FROM penduduk GROUP BY
kabkota;
Penjelasan: Untuk menghitung jumlah penduduk, yang dilakukan adalah select
kabupaten/kota dan jumlah penduduknya yang dikelompokkan menurut
kabupaten/kota
kabkot count (idPenduduk)

37. D. NIK, 8, dan 5


Penjelasan: Candidate key dari tabel penduduk adalah NIK, dengan degree
(jumlah atribut dalam relasi) sebanyak 8, dan kardinalitas (banyaknya tuple atau
baris) sebanyak 5
38. a. B
Penjelasan: Syarat primary key adalah unik, atribut yang unik dari entitas
tersebut adalah atribut B.
39. D. 3NF
Penjelasan: Untuk menentukan bentuk normalisasi tabel, kita harus memeriksa
dependensi fungsional dalam tabel tersebut.
Tabel yang diberikan memiliki atribut A1, A2, A3, A4, dan A5, dengan
dependensi fungsional A1 -> A2, A3, A4, A5 dan A4 -> A5.
Karena setiap atribut hanya bergantung pada A1 dan A4, tabel ini sudah dalam
bentuk 2NF.
Namun, atribut A4 memiliki dependensi fungsional pada atribut A5, yang
berarti tabel ini belum dalam bentuk 3NF. Untuk mengubah tabel ini menjadi
bentuk 3NF, kita perlu memisahkan atribut A5 ke dalam tabel terpisah.
Sehingga tabel tersebut menjadi dua tabel dengan skema sebagai berikut:
Tabel 1:
A1 (PK)
A2
A3
A4

73
Tabel 2:
A4 (PK)
A5
Dalam bentuk ini, setiap atribut bergantung pada kunci utama (PK), sehingga
tabel ini sudah dalam bentuk 3NF.
40. b. CREATE VIEW doktersemarang AS SELECT * FROM dokter where
kotaRS
Penjelasan:
° doktersemarang adalah nama view yang kita buat.
° SELECT * FROM dokter WHERE kotaRS = 'Semarang' adalah query yang
akan dijalankan pada view doktersemarang.
° WHERE kotaRS = 'Semarang' digunakan untuk memfilter data dokter yang
hanya berada pada cabang RS kota Semarang.
41. B. Dilakukan dengan teknik bottom-up
Penjelasan: Normalisasi dilakukan dengan Teknik bottom-up dan top-down
42. a. A = 1..1, B = 1..*, C = 0..1, D = 0..*
43. B -> C, A
44. D. SELECT nama, ktp, domisili FROM mahasiswa WHERE ktp =
‘Tangerang’ OR ktp = ‘Bogor’ AND domisili = ‘Jakarta’;
Penjelasan: Memilih alamat mahasiswa sesuai KTP Tangerang dan Bogor (or),
dan mana dari mahasiswa tersebut yang berdomisili di Jakarta (and)
45. C. UPDATE employee set deptno = (SELECT deptno FROM
department WHERE deptname = 'HRD') WHERE deptname =
'Finance');
Penjelasan: UPDATE employee SET deptno = (SELECT deptno FROM
department WHERE deptname = 'HRD') WHERE deptname = 'Finance';
Pernyataan SQL di atas mengubah nilai deptno pada setiap baris tabel Employee
yang memiliki nilai deptName = 'Finance', sehingga mereka sekarang terdaftar
di departemen HRD. Nilai deptno diubah dengan menggunakan subquery untuk
mencari nomor departemen untuk HRD dan kemudian menggunakannya
sebagai nilai yang diperbarui untuk setiap baris pegawai yang ditemukan.
46. D. Setiap weak entity harus direlasikan dengan entity lain
Penjelasan: Meskipun weak entity type bergantung pada strong entity type,
tidak semua weak entity type harus direlasikan dengan entity lain. Ada beberapa
kasus di mana sebuah weak entity type dapat eksis secara mandiri, misalnya
sebagai atribut dari sebuah strong entity type atau sebagai tabel terpisah yang
memuat informasi tambahan mengenai entitas. Sebagai contoh, weak entity
type "Product Detail" dapat berdiri sendiri sebagai tabel yang mencatat
informasi tambahan mengenai produk seperti tanggal pembuatan dan tanggal
kadaluarsa.
47. D. DELETE TABLE

74
Penjelasan: Sintaks dari DDL ada 3, yaitu create, alter, dan drop

48. D. SELECT * FROM DaftarNama WHERE umur = 19;


Penjelasan: Output yang diperoleh adalah data dengan umur 19, sehingga
digunakan query dengan klausa WHERE umur = 19
49. A. Referential Integrity
50. A. SELECT d.idDokter, d.alamatDokter, rs.idRS, rs.alamat RS FROM dokter
d, rs FULL JOIN rs ON alamatDokter = alamatRS

75
UJIAN TENGAH SEMESTER GENAP 2021/2022

1. Berikut ini adalah tabel mahasiswa dan tabel nilai. Primary key tabel-tabel ini
adalah

a. namaMahasiswa, noMahasiswa dan Kode_matkul


b. noMahasiswa dan namamahasiswa, noMahasiswa dan kode_matkul
c. noMahasiswa dan namaMahasiswa, noMahasiswa
d. noMahasiswa, Kode_matkul dan Nilai
e. noMahasiswa, noMahasiswa
2. Sistem suatu perusahaan menetapkan bahwa tidak semua pegawai dapat
menempati rumah dinas, jika dapat menempati maksimal hanya satu rumah
dinas. Sebuah rumah dinas dapat ditempati maksimal satu nama pegawai atau
bisa kosong. Berikut adalah pernyataan yang benar yaitu...
a. Hubungan dari entitas rumah dinas dan pegawai adalah hubungan one to
one dengan partisipasi wajib di kedua sisi
b. Atribut kunci utama dari entitas induk tidak perlu menjadi atribut kunci
asing pada entitas anak
c. Penurunan relasi untuk menentukan yang mana entitas induk dan anak
bebas ditentukan
d. Hubungan dari entitas rumah dinas dan pegawai adalah hubungan one to
many
3. Anomali apa saja yang dapat terjadi pada tabel mahasiswa berikut?

a. Insertion dan deletion

76
b. Modification dan deletion
c. Insertion, modification dan deletion
d. Insertion dan modification
4. Pernyataan berikut yang merupakan full functional dependency dari tabel di
bawah ini adalah?

a. (kodeBuku, noBuku) → judul


b. (kodeBuku, noBuku) → tahunTerbit
c. (kodeBuku, noBuku) → penulis
d. (kodeBuku, noBuku) → kodeStatus
5. Urutan syntax DML yang benar adalah…
a. Where
Group By
Select
b. From
Order By
Having
c. Where
Group By
Select
d. From
Group By
Having
6. Pernyataan berikut yang benar tentang penurunan relasi untuk hubungan one-
to-one biner (binary) maupun rekursif adalah
a. Hubungan tersebut bisa langsung diturunkan dengan menggabungkan
entitas-entitas yang berpartisipasi dalam hubungan tersebut
b. Participation constraint pada hubungan tersebut menjadi pertimbangan
untuk cara penurunannya
c. Multiplicity dan disjoint constraint menjadi pertimbangan untuk cara
penurunannya
d. Cardinality constraint pada hubungan tersebut menjadi pertimbangan untuk
cara penurunannya
7. Diketahui CREATE TABLE tabel (atribut1 char(4), atribut2 numeric, primary
key atribut1); Jika kita ingin membuat atribut2 menjadi foreign key, pengaturan
foreign key mana yang diijinkan?

77
a. SET NULL
b. CASCADE
c. SET DEFAULT
d. NO ACTION
8. Admin SIPADU ingin mengakses data di SIPADU STIS yang disimpan di
database. Admin tersebut juga berperan sebagai dosen yang mempunyai akses
ke web SIPADU untuk dosen. Dengan apa saja admin SIPADU tersebut bisa
mengakses data,kecuali?
a. sistem database
b. database
c. DBMS
d. aplikasi database
e. skema
9. Informasi atau karakteristik yang dimiliki oleh setiap objek disebut:
a. hubungan
b. atribut
c. data
d. entitas
e. skema
10. Tabel berikut memenuhi bentuk normal ...

a. 3NF
b. 1NF
c. 2NF
d. UNF
11. Dalam fasilitas DBMS, Data Manipulation Language direpresentasikan dalam..
a. Schema database
b. Table definition
c. Sintaks structured query language
d. Domain atribut entitas
12. Penurunan relasi sebuah hubungan many-to-many antara entitas Penulis dan
Buku adalah sebagai berikut. Apakah peran atribut penulisID dan bukuISBN
pada relasi Royalti?

78
a. Sebagai atribut foreign key
b. Sebagai atribut alternate key
c. Sebagai atribut primary key dan foreign key
d. Sebagai derived attribute
13. Pada sistem sebuah rumah sakit ditentukan setiap perawat mendampingi hanya
satu dokter dan setiap dokter dapat didampingi banyak perawat. Penurunan
relasi dari hubungan entitas dokter dan perawat yang benar kecuali...
a. Entitas dokter dijadikan entitas induk
b. atribut kunci utama entitas dokter disalin sebagai kunci asing pada entitas
perawat
c. Entitas dokter tidak mempunyai atribut kunci asing
d. Entitas perawat tidak memiliki kunci utama
14. Admin SIPADU ingin mengakses data di SIPADU STIS yang disimpan di
database. Admin tersebut tidak punya peran apapun selain admin SIPADU
STIS. Dengan apa saja admin SIPADU tersebut bisa mengakses data, kecuali?
a. database
b. aplikasi database
c. DBMS
d. skema
e. sistem database
15. Jumlah kardinalitas dari tabel berikut adalah...

a. 25
b. 5
c. 4
d. 20
16. Diketahui CREATE TABLE tabel (atribut1 char(4), atribut2 numeric, primary
key atribut1); Jika kita ingin membuat atribut1 menjadi foreign key, pengaturan
foreign key mana yang diijinkan?
a. NO ACTION
b. CASCADE
c. SET NULL
d. SET DEFAULT

79
17. Jumlah maksimum kemunculan dalam suatu hubungan relasi disebut
a. Complexity
b. Kardinalitas
c. Partisipasi
d. Multiplicity
e. General constraint
18. Manakah dari definisi berikut yang paling menggambarkan entitas?
a. Data disimpan dalam kolom tabel
b. Data tentang data
c. Sebuah hubungan tunggal
d. Item tentang informasi yang disimpan
19. Manakah dari berikut ini yang paling menggambarkan batasan integritas
referensial ON DELETE CASCADE?
a. Jika kunci induk dihapus, tidak ada pengujian yang dilakukan untuk
integritas referensial.
b. Jika kunci induk dihapus, semua kunci turunan yang dirujuk oleh kunci
induk akan dihapus secara otomatis.
c. Jika kunci induk dihapus, semua kunci anak secara otomatis disetel ke nilai
yang ditentukan.
d. Jika ada kunci anak yang mereferensikan kunci induk, rekaman yang berisi
kunci induk tidak dapat dihapus.
20. Dampak dari ciri pendekatan basis data yang memisahkan antara data dengan
aplikasi adalah sbb, kecuali..
a. Kemudahan penambahan report querypada aplikasi sesuai
kebutuhanorganisasi
b. Meminimalkan cost/biaya maintenance
c. Kemudahan dalam mengelola data,termasuk kemudahan dalamperubahan
struktur data
d. Aplikasi dapat dengan mudahmenyesuaikan struktur data dalamsebuah
database
21. Konsep "data abstraction" dalam pendekatan basis data adalah..
a. atribut dari sebuah entitas
b. Sebuah entits yang memiliki constrain spesifik
c. Pemisahan yang jelas antara data dengan aplikasi
d. User hanya disuguhi representasi objek dari sisi definisi global/external
22. Jenis integritas relasional mana yang dilanggar jika kunci utama dalam
database memiliki nilai NULL?
a. Entity integrity
b. Domain constraints
c. Domain integrity
d. Referential integrity

80
23. Dalam DML, ketika output baris data hasil query grouping ingin difilter
menurut nilai fungsi agregatnya, sintaks yang dapat digunakan adalah:
a. EXIST
b. ANY/SOME
c. WHERE
d. HAVING
24. Ciri kueri data manipulation langguage dengan penggunaan full outer join
adalah, kecuali..
a. Tabel yang masing-masing di-joinkan, menampilkan semua row baik yang
match dengan atribut join maupun tidak
b. Tabel yang dijoinkan, jika tidak match dengan atribut join tabel asal, nilai
atribut pada row akan diset null
c. Tabel asal yang akan di-joinkan dengan tabel lain, jika tidak match dengan
atribut join, nilai atribut pada row akan diset null
d. Tabel yang masing-masing di-joinkan hanya menampilkan row yang
match dengan atribut join
25. Urutan syntax DML yang benar adalah
a. Having
From
b. Group By
Having
c. Having
Form
d. Order By
Select
26. Perhatikan tabel yang memiliki relational berikut. Kolom yang merupakan
foreign key adalah?

a. Dept_Name
b. Department.Dept_ID

81
c. Employee.Dept_ID
d. Dept_Mngr
27. Perhatikan tabel Product berikut. Baris pertama keluaran dari perintah:
SELECT ProdID FROM Product ORDER BY Category DESC, Price;
adalah…

a. 3
b. 1
c. 6
d. 2

28. Berikut adalah urutan dari tahap normalisasi yang benar..


a. Bentuk tidak normal, BCNF, 1 NF, 2NF, 3NF, 4NF
b. Bentuk tidak normal, 1 NF, 2NF, 3NF, 4NF, BCNF
c. Bentuk tidak normal, 1 NF, 2NF, 3NF, BCNF, 4NF
d. BCNF, Bentuk tidak normal, 1 NF, 2NF, 3NF, 4NF
29. Hasil dari perintah DELETE FROM product; adalah...
a. Semua baris data menjadi NULL
b. Menghapus semua data product
c. Menghapus tabel product
d. Tidak dapat dieksekusi tanpa menggunakan klausa WHERE
30. Gambar di bawah ini menunjukkan

a. recursive relationship
b. chasm trap
c. ternary relationship

82
d. fan trap
31. Untuk melakukan normalisasi pada tabel berikut perlu ditentukan terlebih
dahulu fungsional dependensi (fd)_, berikut yang merupakan fd (partial)
kecuali...

a. a -> b
b. a,c,e -> f
c. a, c ->d
d. a,c,e,g,j,k,l -> m,n
32. Berikut ini pernyataan yang benar tentang jenis entitas lemah (weak entity
type) adalah
a. Primary key entitas lemah diidentifikasi setelah relationship dengan entitas
lain dipetakan
b. Entitas lemah mempunyai primary key dari atribut entitas tersebut
c. Keberadaan entitas lain bergantung pada entitas lemah
d. Entitas lemah berpartisipasi sebagai parent/owner entity dalam suatu
relationship
33. Sebuah ER Diagram dari hasil penurunan relasi yang memuat relasi-relasi,
hubungan antar relasi tersebut, atribut-atribut dalam setiap relasi, serta primary
dan foreign key-nya adalah perancangan database pada tingkat
a. Logical
b. Conceptual
c. Physical
d. Schema
34. Pilihlah 2 (dua) dari pernyataan berikut yang merupakan manfaat normalisasi!
a. Memaksimalkan efisiensi kapasitas penyimpanan
b. Membantu meningkatkan kecepatan akses database
c. Meningkatkan keamanan database
d. Mengurangi kemungkinan terjadinya inkonsistensi data

83
35. Dalam lingkungan DBMS, terdapat user yang selain mengelola database
melalui sistem aplikasi database, dia juga familiar terhadap DBMS dan DML,
sehingga kadang user ini langsung mengakses database untuk melihat report-
report yang spesifik dan detail, yang mungkin sistem aplikasi database belum
menyediakan jenis report tersebut, aktor semacam ini secara spesifik disebut..
a. Sophisticated users
b. Database Administrator
c. Database Client
d. Data Adminsitrator
36. Keluaran dari perintah SQL berikut SELECT COUNT(DISTINCT Category)
FROM product; adalah...

a. Pasta Gigi
b. 1
c. 3
d. 6
37. Null merepresentasikan
a. Nilai nol
b. Pengecualian
c. Ketiadaan nilai
d. Nilai belum diketahui
e. Spasi
38. Pilih pernyataan yang benar tentang properti relasi
a. Nama relasi berbeda dari semua nama relasi lainnya dalam skema relasional
b. Setiap sel relasi berisi satu atau lebih nilai
c. Urutan atribut memiliki arti penting

84
d. Setiap atribut memiliki nama yang berbeda
e. Setiap tupel berbeda; tidak ada tupel duplikat
39. VIEW pada basis data disebut juga sebagai
a. Tabel virtual
b. Tabel kompleks
c. Tabel sederhana
d. Tabel actual
40. Kita bisa membuat tampilan yang berbeda dari tabel yang ada di database,
dengan data yang tetap berasal dari tabel yang ada di database. Apakah nama
objek tersebut?
a. tabel
b. report
c. view
d. relasi
e. skema
41. Ketergantungan fungsional transitif dihilangkan pada tahapan normalisasi...
a. 2NF
b. 3NF
c. 1NF
d. BCNF
42. Atribut yang terdiri dari beberapa atribut yang lebih kecil dengan arti tertentu
disebut
a. derived attribute
b. composite attribute
c. strong attribute
d. multivalued attribute
e. weak attribute
43. Pernyataan berikut yang tidak benar tentang ERD pertandingan di bawah ini
adalah

85
a. Sebuah team bisa saja tidak berpartisipasi dalam suatu pertandingan
b. Participation constraint pada relationship antara Player dan Team
merupakan mandatory participation
c. Seorang pemain hanya bisa bermain mewakili satu team saja
d. Multiplicity pada relationship “Mengikuti” 0..* terdiri dari cardinality
adalah 0 dan participation adalah * (many)
44. Suatu perusahaan asuransi kendaraan mengelola data entitas kendaraan,
pelanggan, dan kecelakaan. Masing-masing pelanggan dapat mendaftarkan
satu atau lebih kendaraannya pada perusahaan asuransi ini. Jika suatu hari
terjadi kecelakaan, maka setiap kejadian akan dicatat untuk nantinya di klaim
oleh pelanggan. Semua proses kegiatan perusahaan akan dicatat dalam sebuah
database. Multiplicity pada ERD di bawah ini yang paling tepat untuk
kebutuhan perusahaan di atas adalah

a. A = 1..1, B = 1..*, C = 0..1, D = 0..*


b. A = 1..1, B = 1..1, C = 1..1, D = 1..*
c. A = 1..*, B = 0..*, C = 0..1, D = 1..*
d. A = 1..*, B = 1..1, C = 0..*, D = 1..1

45. Berikut ini pernyataan yang benar tentang primary key adalah
a. Harus atomik
b. Harus unik
c. Tidak boleh null
d. Harus terdiri dari satu atribut
e. Boleh null
46. Nasabah suatu Bank dapat melakukan transaksi penerimaan atau pembayaran
tunai pada suatu Counter di bank tersebut. Proses tersebut digambarkan dalam
ER Model di bawah ini. Akan tetapi, kita kesulitan untuk menentukan Nasabah
mana saja yang mengambil uang tunai di suatu Counter walaupun ada
relationship antara entitas Nasabah dan Counter melalui entitas Bank. Masalah
pada perancangan ER model di atas disebut

a. Loop problem
b. Chasm trap
c. Fan trap

86
d. Categorization problem
47. Diketahui CREATE TABLE tabel (atribut1 char(4), atribut2 numeric not null,
primary key atribut1); Jika kita ingin membuat atribut2 menjadi foreign key,
pengaturan foreign key mana yang diijinkan?
a. SET DEFAULT
b. SET NULL
c. NO ACTION
d. CASCADE
48. Mana query yang SALAH
a. select * from table where count(a)>1 and b>2;
b. select count(*) from table where a>1 and b>2;
c. select * from table group by a having count(a)>1
d. select * from table where a>1 and b>2;
49. Dari model data konseptual pada gambar berikut, jika diturunkan menjadi
model data logis, relasi berikut akan memiliki foreign key, kecuali?

a. C
b. D
c. B
d. A
50. Pada suatu ER model yang telah dilakukan penurunan relasi, pernyataan
berikut yang tidak benar adalah
a. Sebuah atribut dari suatu relasi dapat mempunyai lebih dari satu nilai
(multi-valued)
b. Hubungan many-to-many antar relasi sudah tidak ada
c. Hubungan kompleks telah direpresentasikan menjadi relasi baru
d. Setiap atribut dalam suatu relasi bukan merupakah atribut gabungan
(composite)

87
PEMBAHASAN UTS GENAP 2021/2022

1. B. noMahasiswa dan namamahasiswa, noMahasiswa dan kode_matkul


Penjelasan:
Relational Key Tabel 1
Superkey: noMhs+namaMhs, noMhs, tgl_lhr, namaMhs, namaMhs+tgl_lhr,
dst
Candidate key: noMhs, namaMhs, tgl_lhr, noMhs+namaMHs
Primary key: noMhs + namaMhs
Alternate key: namaMhs, tgl_lhr
Foreign Key: -

Relational Key Tabel 1


Superkey: noMhs+kd_matkul, noMhs+nilai, noMhs+kd_Matkul+Nilai, dst
Candidate key: noMhs + kd_matkul,
Primary key: noMhs + kd_matkul
Alternate key: -
Foreign Key: noMahasiswa
2. C. Penurunan relasi untuk menentukan yang mana entitas induk dan anak bebas
ditentukan
Penjelasan:
- Hubungan dari entitas rumah dinas dan pegawai adalah hubungan one to
one dengan partisipasi OPTIONAL di kedua sisi
- Karena hubungannya optional participation 1:1 maka penunjukkan entitas
induk dan anak bebas ditentukan
- Hubungan dari entitas rumah dinas dan pegawai adalah hubungan one to
one

pegawai Rumah dinas


0..1 0..1
3. C. Insertion, modification dan deletion
Penjelasan:
- Insertion: bisa terjadi anomaly atribut lain bernilai null pada saat insert nama
baru
- Deletion: Jika salah satu kelas dihapus, maka rincian NIM dari kelas
tersebut hilang dari database
- Modification: Untuk update alamat Tata misalnya, kita juga harus
mengupdate semua baris data di cabang Tata

88
4. D. (kodeBuku, noBuku) → kodeStatus
Penjelasan: KodeStatus hanya bisa ditentukan oleh kodeBuku DAN noBuku.
5. D. From, Group By, Having
6. B. Participation constraint pada hubungan tersebut menjadi pertimbangan untuk
cara penurunannya.
Penjelasan:
Participation constraint digunakan untuk memutuskan apakah
merepresentasikan relationship tersebut dengan cara
▪ Menggabungkan entitas ke dalam satu relasi? Atau
▪ Membuat dua relasi dan memasukkan Salinan dari PK ke relasi lainnya?
Pertimbangan pada participation constraint ini ada 3 yaitu:
- Mandatory participation (all) pada kedua sisi hubungan 1:1
- Mandatory participation (all) pada satu sisi hubungan 1:1
- Optional participation (only some) pada kedua sisi hub 1:1
7. NO ACTION
Penjelasan: NO ACTION: Tidak ada tindakan yang dilakukan pada baris data
tabel child saat baris data di tabel parent dihapus atau diupdate. Penghapusan
pada tabel parent akan ditolak. (default)
8. E. skema
Penjelasan: sistem SIPADU menggunakan pendekatan database sehingga
untuk mengakses SIPADU adalah dengan DBMS, Database, aplikasi database,
sistem database.
9. B. atribut
penjelasan:
hubungan: digunakan pada logical structure
data: kumpulan fakta
entitas: merepresentasikan objek nyata
skema: Operasional data yang dimiliki organisasi serta deskripsi data tersebut
10. B. 1NF

89
Penjelasan: 1NF→Setiap irisan antara baris dan kolom berisikan HANYA 1
nilai
11. C. Sintaks structured query language
Penjelasan: DML menggunakan SQL untuk memanipulasi data, sedangkan
untuk mendefinisikan database menggunakan DDL (Data Definition
Language)
12. C. Sebagai atribut primary key dan foreign key.
Penjelasan: atribut nilaiRoyalti tidak bisa berdiri sendiri dan menjadi PK, maka
atribut penulisID dan bukuISBN yang menjadi PK relasi royalty.
13. D. Entitas perawat tidak memiliki kunci utama Penjelasan: Kasus tersebut
merupakan one to many (1:*) binary relationship.

Dokter 1..1 1..* perawat

▪ entitas di ‘sisi satu (1)’ dari hubungan tersebut ditetapkan sebagai entitas
parent, maka entitas dokter adalah entitas induk. Sedangkan entitas di ‘sisi
banyak (*)’ ditetapkan sebagai entitas child, yaitu entitas perawat.
▪ atribut kunci utama entitas induk disalin sebagai kunci asing pada entitas
anak
▪ Entitas Induk tidak memiliki foreign key
▪ Entitas perawat memiliki Primary Key dan Foreign key
14. D. Skema
15. C. 4
Penjelasan: Kardinalitas merupakan banyaknya tuple (baris) dalam sebuah
relasi/table.Maka dari table tersebut terdapat 4 baris
16. CASCADE
17. B. Kardinalitas
Penjelasan:
- Complexity: kompleksitas dalam database
- Partisipasi: Menentukan apakah semua atau hanya beberapa entity
occurrence berpartisipasi dalam relationship (lihat angka sebelah kiri =
min/at least)
- Multiplicity: Constraint utama dari relationship (jumlah (atau rentang)
kemungkinan kemunculan (occurrences) entity type yang mungkin terkait

90
dengan satu kemunculan (occurrences) entity type lain dalam relationship
tertentu)
- General constraint: integrity constraints dibuat di level DBMS, dimana
database administrator yang mengatur rule sesuai tata kelola organisasi,
18. A. Data disimpan dalam kolom tabel
Penjelasan:
Setiap karakteristik spesifik objek/entitas dalam dunia nyata direpresentasikan
dalam bentuk field/kolom pada database
19. B. Jika kunci induk dihapus, semua kunci turunan yang dirujuk oleh kunci induk
akan dihapus secara otomatis.
20. B. Meminimalkan cost/biaya maintenance
Penjelasan: Pendekatan basis data membutuhkan biaya yang banyak seperti
untuk biaya pemeliharaan, dsb sehingga tidak bisa meminimalkan cost dengan
pendekatan database
21. D. User hanya disuguhi representasi objek dari sisi definisi global/external
22. A. Entity integrity
Penjelasan:
- Domain constraints:Setiap kolom berelasi dengan sebuah domain. Kita
dapat menambahkan fungsi CHECK untuk memastikan bahwa kolom
tersebut memenuhi definisi/aturan domain yang berelasi.
- Referential integrity: jika ada foreign key dalam sebuah relation, foreign key
tersebut harus cocok dengan nilai candidate key di tuple pada home relation
atau seluruh foreign key harus null,
23. C. WHERE
Penjelasan:
- Exist: memeriksa keberadaan adanya baris dalam table hasil subquery
(subquery dapat berisi sejumlah kolom)
- Where: Memfilter tupel / baris
- Having: Filter grup yang memenuhi beberapa kondisi
24. D. Tabel yang masing-masing di-joinkan hanya menampilkan row yang match
dengan atribut join
25. B. group by, having
26. C. Employee.Dept_ID

91
Foreign key adalah atribut dengan domain yang sama yang menjadi primary
key pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai
atribut biasa (disebut foreign key).
Dalam kasus ini, atribut Dept_ID milik Employee Relation merujuk pada
Dept_ID pada Department Relation.
27. A. Category DESC, Price
Akan diurutkan berdasarkan Category terlebih dahulu secara descending
(menurun), kemudian dilanjutkan diurutkan berdasarkan Price secara default
(ascending atau menaik).

ProdID Name Category Price

3 Indomilk 950 ml Susu 15500

2 Ultramilk 1000 ml Susu 17200

5 Diamond UHT 1000 ml Susu 18000

6 Close Up 160 gr Pasta Gigi 19000

4 Mie Sedap Goreng Mi instan 2250

1 Indomie Goreng Mi instan 2350

28. C
Tahapan normalisasi adalah sebagai berikut :

29. A. Semua baris data menjadi NULL


Penjelasan: Perintah dari DELETE FROM product; akan menyisakan bentuk
table saja, sedangkan data di dalam table hilang (terhapus) sehingga bernilai
null.
30. D. Fan Traps
Penjelasan: Ketika ada model yang menunjukkan hubungan relasi antar jenis
entitas, terdapat jalur hubungan yang ambigu. Gambar di atas menunjukkan
hubungan relasi antar jenis entitas yang ambigu.

92
31. D. a,c,e,g,j,k,l -> m,n
Penjelasan: Opsi a, b, dan c merupakan fd (partial), sedangkan opsi d bukan
merupakan fd (partial).
32. A. Primary key entitas lemah diidentifikasi setelah relationship dengan entitas
lain dipetakan
Penjelasan: Primary key dari entitas lemah diturunkan sebagian atau
seluruhnya dari setiap entitas pemilik/parent. Jadi, identifikasi PK dari entitas
yang lemah tidak dapat dilakukan sampai semua hubungan dengan entitas
pemilik/parent telah dipetakan
33. A.Logika: Proses membangun model data yang berdasarkan model data
tertentu Model data konseptual di perbaiki dan dipetakan ke model data logika.
● turunkan relasi dari entitas.
● normalisasi relasi yang ada.
34. A & B
Tujuan normalisasi:
Manfaat menggunakan database yang memiliki himpunan relasi yang sesuai
(memenuhi karakteristik-karakteristik yang telah disebutkan sebelumnya)
adalah database tersebut akan:
° Memudahkan pengguna untuk mengakses dan memelihara data
° Menggunakan ruang penyimpanan (storage space) yang minimal
35. A. Sophisticated users: familiar dengan struktur database dan fasilitas-fasilitas
yang disediakan DBMS, mereka mengakses data di database menggunakan
query language seperti SQL
36. C

Category

Mi instan

Susu

Pasta Gigi

Distinc akan mengeliminasi nilai Category yang duplikat.


37. C. ketiadaan nilai
Penjelasan:

93
Null
° Merepresentasikan nilai untuk atribut yang saat ini tidak diketahui atau tidak
berlaku untuk tuple.
° Berkaitan dengan data yang tidak lengkap atau pengecualian.
° Merepresentasikan ketiadaan nilai dan tidak sama dengan nol atau spasi,
yang merupakan nilai.
38. Jawaban yang benar adalah:
a. Nama relasi berbeda dari semua nama relasi lainnya dalam skema relasional
- Benar. Setiap relasi dalam skema relasional harus memiliki nama yang
unik dan berbeda dari nama relasi lainnya dalam skema.
b. Setiap sel relasi berisi satu atau lebih nilai - Salah. Setiap sel relasi hanya
boleh berisi satu nilai saja, kecuali jika relasi tersebut adalah relasi multi-
nilai (multi-valued relation).
c. Urutan atribut memiliki arti penting - Benar. Urutan atribut dalam suatu
relasi sangat penting dan memiliki arti, karena setiap atribut memiliki posisi
tertentu dalam tupel relasi.
d. Setiap atribut memiliki nama yang berbeda - Benar. Setiap atribut dalam
sebuah relasi harus memiliki nama yang berbeda dan unik, untuk
membedakan satu atribut dari atribut lainnya dalam relasi.
e. Setiap tupel berbeda; tidak ada tupel duplikat - Benar. Setiap tupel dalam
sebuah relasi harus unik dan berbeda satu sama lain, tidak diperbolehkan
adanya duplikat tupel dalam sebuah relasi.
39. A. Relasi Virtual
View adalah relasi virtual yang tidak selalu ada dalam database tetapi dapat
dihasilkan atas permintaan dari pengguna tertentu pada suatu waktu
40. C. View
View adalah sebuah objek database yang memungkinkan kita untuk membuat
tampilan alternatif atau pemetaan virtual dari data yang tersimpan dalam tabel
atau relasi. Dengan menggunakan view, kita dapat menampilkan data dari satu
atau lebih tabel dengan cara yang berbeda atau mengkombinasikan beberapa
tabel menjadi satu tampilan yang baru, tanpa mengubah struktur atau isi data
pada tabel aslinya. Data yang ditampilkan dalam view adalah data yang tetap
berasal dari tabel yang ada di database, namun dengan tampilan atau format
yang berbeda. View sangat berguna dalam mempermudah pengambilan data,

94
memproteksi data, serta memudahkan pengguna dalam memahami dan
menganalisis data secara efektif.
41. B.3NF
Mengubah 2NF ke 3NF:
° Identifikasi primary key dalam 2NF
° Identifkasi functional dependency dalam relasi
° Jika terdapat transitive dependency terhadap primary key, maka hapus
dengan menempatkannya dalam relasi yang baru bersama dengan Salinan
determinannya
42. D. Multi-valued Attribute
Atribut yang dapat menyimpan beberapa nilai untuk setiap entity occurrence
Misalnya: setiap entity occurrence Branch dapat memiliki beberapa nilai untuk
atribut telNo (misal branch nomor B003 dapat memiliki nomor telepon 0141-
339-2178 dan 0141-339-4439)
43. D. Multiplicity pada relationship “Mengikuti” 0..* terdiri dari cardinality
adalah 0 dan participation adalah * (many)
Penjelasan:
Multiplicity sebenarnya terdiri dari 2 constraint yang terpisah: cardinality dan
participation constraint
° Cardinality
Menjelaskan jumlah maksimum kemungkinan relationship occurrence
untuk entity yang berpartisipasi dalam relationship atau bisa juga diartikan
jumlah maksimum (berapa kali) satu entity occurrence berpartisipasi dalam
relationship (lihat angka sebelah kanan = max/at most)
° Participation
Menentukan apakah semua atau hanya beberapa entity occurrence
berpartisipasi dalam relationship (lihat angka sebelah kiri = min/at least)
44. A. A = 1..1, B = 1..*, C = 0..1, D = 0..*
45. B. Harus Unik
Primary key: candidate key yang dipilih untuk mengidentifikasikan tupel
secara unik dalam relasi
46. B. Chasm Trap

95
Chasm Traps: Ketika ada model yang menunjukkan adanya hubungan relasi
antar jenis entitas, tetapi tidak ada jalur yang menghubungkannya
47. A. SET DEFAULT
Karena atribut 2 tidak boleh null, maka harus diset default agar data tidak null,
karena akan error jika ada data yang hilang/null.
48. A. select * from table where count(a)>1 and b>2;
Query count bisa jika didahului having, bukan where.
49. A. C

Entitas Induk Multiplicity types Multiplicity Entitas Anak

B 1..* Many to many 0..* A

A 0..* one to many 0..1 C

D 1..* one to many 0..1 B

E 0..1 Mandatory 1..1 B


participation
ALL pada
SATU sisi

C 1..1 Mandatory 1..1 E


participation
ALL pada
KEDUA SISI
Hubungan yang memiliki Foreign key diantaranya adalah sebagai berikut:
- mandatory participation all pada satu sisi hubungan 1:1
- one to many binary relationship (1:*)
Hubungan mandatory participation all pada kedua sisi tidak memiliki foreign
key karena penurunan relasi yang dilakukan adalah dengan menggabungkan
tabel
50. B. Hubungan many-to-many antar relasi sudah tidak ada
Jawaban yang tidak benar adalah b. Hubungan many-to-many antar relasi
belum tentu hilang setelah dilakukan penurunan relasi.
Penurunan relasi adalah proses mengubah model Entity-Relationship (ER)
menjadi struktur relasional dalam database. Dalam proses ini, setiap entitas
dalam ER model direpresentasikan sebagai sebuah relasi dalam database, dan
setiap hubungan antara entitas direpresentasikan sebagai kunci asing di dalam
relasi yang sesuai. Pernyataan b tidak benar, karena hubungan many-to-many
antar relasi dapat direpresentasikan dalam database sebagai sebuah tabel

96
asosiasi, yang menghubungkan dua atau lebih tabel relasi. Oleh karena itu,
hubungan many-to-many dapat tetap ada setelah dilakukan penurunan relasi,
tergantung pada bagaimana model ER awalnya dirancang dan bagaimana
penurunan relasi dilakukan.

HALO! PEMBAHASAN YANG DITAMPILKAN DALAM MODUL INI


BELUM DIVALIDASI OLEH DOSEN MATKUL YANG
BERSANGKUTAN. OLEH KARENA ITU, DISARANKAN UNTUK TIDAK
MENJADIKAN JAWABAN DI MODUL INI SEBAGAI SATU-SATUNYA
PATOKAN. MESKIPUN DEMIKIAN, SEMOGA BISA MEMBANTU
BELAJAR TEMAN-TEMAN, YA. SEMANGAT!

97

Anda mungkin juga menyukai