Anda di halaman 1dari 17

Nama : Nabila Eka Putri

NIM : 19037047
D3 Statistika (Ganjil)
UJIAN AKHIR SEMESTER (Take Home)
BASIS DATA
1. Jelaskan jenis-jenis anomali beserta contohnya!
Jawab :
 Anomali Pengubahan  Adalah masalah yang timbul saat terjadi perubahan
terhadap sejumlah data yang mubazir, tetapi tidak seluruhnya diubah.

Contoh : Jika PT. Kencan pindah ke Surabaya, kemudian perubahan data hanya
dilakukan pada data pertama, sedangkan data yang lain tetap, maka akan terjadi
inkonsistensi data pada PT. Kencana. Jika hasil data setelah diubah menjadi
seperti table ke 2 , maka orang akan bingung apakah PT. Kencana ada dua? satu
di bandung dan satu lagi di surabaya, padahal PT. Kencana hanya ada satu dan
sudah pindah tempat ke Surabaya

Supplier Kota Barang Jumlah


CV. Jaya Abadi Jakarta Printer 50
PT.Kencana Bandung Leptop 30
PT.Sumber Jaya Bogor Hard Disk 50
PT.Kencana Bandung Mouse 100

Supplier Kota Barang Jumlah


CV. Jaya Abadi Jakarta Printer 50
PT.Kencana Surabaya Leptop 30
PT.Sumber Jaya Bogor Hard Disk 50
PT.Kencana Bandung Mouse 100

Solusi Untuk Contoh Kasus Anomali Peremajaan, supplier dan kota dijadikan


dalam satu tabel dalam tabel 1.3, dengan kode_supplier sebagai primary keynya.
Kemudian barulah kode_suplier dipakai untuk melengkapi tabel 1.4. Dengan cara
seperti ini kita hanya perlu merubah kota pada tabel 1.3, dan otomatis semua data
akan berubah. Untuk penjelasan ini akan dibahas lebih detail pada artikel
normalisasi.
Kode_supplier Supplier Kota
01 CV. Jaya Abadi Jakarta
02 PT.Kencana Surabaya
03 PT.Sumber Jaya Bogor
Tabel 1.3
Kode_supplier Barang Jumlah
01 Printer 50
02 Laptop 30
03 Hard Disk 50
02 Mouse 100
Tabel 1.4
 Anomali Penyisipan, Adalah masalah yang timbul saat melakukan penambahan
data. Dan data itu adalah Primary Key atau elemen kunci. Contoh : tabel dibawah
menunjukkan bahwa jenis kursus bahasa hanya ada 3, dan kursus bahasa lain
tidak akan dapat ditambah kecuali jika ada siswa yang mengambil kursus
tersebut. 

No_Siswa Kursus
S01 B. Inggris
S02 B. Mandarin
S03 B.Inggris
S04 B.Jepang
Tabel2.1
Solusi Untuk Anomali Penyisipan, solusinya adalah membuat 2 tabel berbeda, 1
tabel untuk data siswa dan satu lagi tabel untuk kursus. Contoh sperti tabel 2.2
dan 2.3. Untuk dapat menambahkan data kursus bahasa yang baru kita hanya
perlu menambahkan data pada tabel 2.3. Sehingga datanya lebih dinamis dan
mencegah dari kolom pada tabel yang tidak terisi. Untuk tabel 2.1, kita dapat
menggunakannya sebagai gabungan dari tabel 2.2 dan 2.3. Untuk penjelasan lebih
lanjut tentang pemecahan tabel dapat dilihat lebih detail di pembahasan
normalisasi.

No_Siswa Nama
S01 Ahmad
S02 Joko
S03 Eko
S04 Wahyu
Tabel 2.2
Kd_kursus Kursus
01 B.Inggris
02 Mandarin
03 B.Jepang
04 B.Jerman
Tabel 2.3
 Anomali Penghapusan, Adalah masalah yang timbul saat melakukan
penghapusan data, dan data lain ikut terhapus atau hilang.
Contoh : Jika siswa dengan no_siswa S02 batal mengambil kursus, sehingga
datanya dihapus, maka data yang menyatakan biaya kursus bahasa mandarin juga
akan terhapus.

No_Sisswa Kursus Biaya


S01 B.Inggris 100000
S02 B.Mandarin 150000
S03 B.Inggris 100000
S04 B.Jerman 200000
Tabel 3.1
Solusi Anomali Penghapusan, tabel perlu dipecah seperti kasus anomali
penyisipan. contoh tabelnya seperti  3.2 dan 3.3 hanya saja pada tabel kursus
ditambah dengan biaya. Pada tabel 3.1 diatas bisa lebih dirampingkan lagi dengan
membuang kolom kursus dan biaya dan digantikan dengan kd_kursus. Maka jika
data siswa S02 dihapus maka biaya kursus bhsa mandarin tidak terhapus karena
tersimpan di dalam tabel lain.
No_Siswa Nama
S01 Ahmad
S02 Joko
S03 Eko
S04 Wahyu
Tabel 3.2
Kd_Kursus Kursus Biaya
01 B.Inggris 100000
02 B.Mandarin 150000
03 B.Jepang 200000
04 B.Jerman 300000
Tabel 3.3

2. Jelaskan apa yang dimaksud dengan normalisasi, 1NF, 2NF, dan 3NF!
Jawab :
 Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data
yang mengelompokkan atribut dari suatu relasi sehingga membentuk struktur
relasi yang baik (tanpa redudansi). Normalisasi adalah proses pembentukan
struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.

 First Normal Form (1NF)


Bentuk normal yang pertama atau 1NF mensyaratkan beberapa kondisi dalam
sebuah database, berikut adalah fungsi dari bentuk normal pertama ini.
o Menghilangkan duplikasi kolom dari tabel yang sama.
o Buat tabel terpisah untuk masing-masing kelompok data terkait dan
mengidentifikasi setiap baris dengan kolom yang unik (primary key).

 Second normal form (2NF)


Syarat untuk menerapkan normalisasi bentuk kedua ini adalah data telah dibentuk
dalam 1NF, berikut adalah beberapa fungsi normalisasi 2NF.
o Menghapus beberapa subset data yang ada pada tabel dan menempatkan
mereka pada tabel terpisah.
o Menciptakan hubungan antara tabel baru dan tabel lama dengan
menciptakan foreign key.
o Tidak ada atribut dalam tabel yang secara fungsional bergantung pada
candidate key tabel tersebut.

 Third Normal Form (3NF)


Normalisasi database dalam bentuk 3NF bertujuan untuk menghilangkan seluruh
atribut atau field yang tidak berhubungan dengan primary key. Dengan demikian
tidak ada ketergantungan transitif pada setiap kandidat key. Syarat dari bentuk
normal ketiga atau 3NF adalah :
o Memenuhi semua persyaratan dari bentuk normal kedua.
o Menghapus kolom yang tidak tergantung pada primary key.

3. Jelaskan jenis-jenis operasi dalam aljabar relasional!


Jawab :
 Select
Operasi select berfungsi untuk menyeleksi tuple-tuple yang memenuhi predikat
yang diberikan dari sebuah tabel relasi. Simbol sigma “σ” digunakan untuk
menunjukkan operasi select. Predikat muncul sebagai subscript dari σ dan kondisi
yang diinginkan yang ditulis dalam predikat. Argumen diberikan dalam tanda
kurung yang mengikuti σ dan berisi tabel relasi yang dimaksud.
 Project
Operasi project berfungsi untuk memilih nilai atribut-atribut tertentu saja dari
sebuah tabel relasi. Simbol phi “Π” digunakan untuk menunjukkan operasi
project. Predikat muncul sebagai subscript dari Π dan hanya nama atribut yang
diinginkan yang ditulis dalam predikat. Argumen diberikan dalam tanda kurung
yang mengikuti Π dan berisi tabel relasi yang dimaksud.
 Union
Operasi union berfungsi untuk mendapatkan gabungan nilai atribut dari sebuah
tabel relasi dengan nilai atribut dari tabel relasi lainnya. Simbol “∪” digunakan
untuk menunjukkan operasi union. Operasi union bernilai benar bila terpenuhi 2
kondisi, yaitu : Derajat dari 2 tabel relasi yang dioperasikan harus sama dan
domain dari atribut yang dioperasikan juga harus sama.

 Set Difference
Operasi set difference berfungsi untuk mendapatkan nilai yang ada dalam sebuah
tabel relasi, tapi tidak ada dalam tabel relasi lainnya. Simbol “-“ digunakan untuk
menunjukkan operasi set difference.
  Cartesian Product
Operasi cartesian product berfungsi untuk mengkombinasikan informasi yang ada
dalam 2 tabel relasi dan menghasilkan sebuah tabel relasi yang baru. Simbol “x“
digunakan untuk menunjukkan operasi set difference.
 Set Intersection
Operasi set intersection berfungsi untuk mendapatkan nilai yang ada dalam
sebuah tabel relasi dan juga ada dalam tabel relasi lainnya. Simbol “∩“ digunakan
untuk menunjukkan operasi set intersection.
 Natural Join
Operasi natural join memungkinkan kita untuk menggabungkan operasi select dan
cartesian product menjadi hanya 1 operasi saja. Simbol “⋈“ digunakan untuk
menunjukkan operasi natural join. Operasi natural join hanya menghasilkan tupel
yang mempunyai nilai yang sama pada 2 atribut yang bernama sama pada 2 tabel
relasi yang berbeda.
 Division
Operasi division berfungsi untuk query yang memasukkan frase “untuk
semua/seluruh”. Simbol “÷“ digunakan untuk menunjukkan operasi division.
 Theta Join
Operasi theta join berfungsi jika kita ingin mengkombinasikan tupel dari 2 tabel
relasi dimana kondisi dari kombinasi tersebut tidak hanya kesamaan nilai dari 2
atribut bernama sama, tetapi kondisi yang diinginkan juga bisa menggunakan
operator relasional (≤, <, =, >, ≥). Operasi theta join merupakan ekstensi dari
natural join.

Operasi Notasi Fungsi


Seleksi/ Selection σpredicate(R) Menghasilkan relasi yang hanya berisi
tupel R yang memenuhi predikat yang
ditentukan.
Projeksi/ Projection Π a ,. .. ,a (R)
1 n
n (R) menghasilkan relasi yang berisi
subset vertikal R, mengekstraksi nilai
atribut yang ditentukan dan menghasikan
duplikat.
Gabumgan/ Union R ∪S Menghasilkan relasi yang berisi semua
tupel R, atau S, atau keduanya R dan S,
tupel duplikat dihilangkan. R dan S harus
kompatibel dengan gabungan.
Tetapan Perbedaan/ Set R−S Menghasilkan relasi yang berisi semua
Difference tupel di R yang tidak ada di S. R dan S
harus kompatibel dengan union.
Irisan/ Intersection R∩S Menghasilkan relasi yang berisi semua
tupel di R dan S. R dan S harus
kompatibel dengan union.
Perkalian Kartesian/ R×S Menghasilkan relasi yang merupakan
Cartesian product rangkaian dari setiap tupel relasi R dengan
setiap tupel relasi S.
Penggabungan Theta/ Theta R ⨝f S Menghasilkan relasi yang berisi tupel
join yang memenuhi predikat F dari produk
kartesius dari R dan S.
Equijoin R ⨝f S Menghasilkan relasi yang berisi tupel
yang memenuhi predikat F (yang hanya
berisi perbandingan kesetaraan) dari
produk Cartesian dari R dan S.
Penggabungan Alami/ R⨝S Equijoin dari dua relasi R dan S pada
Natural join semua atribut umum x. Satu kemunculan
setiap atribut umum dieliminasi.
Penggabungan Luar/ Outer R⋊ S Gabungan di mana tupel dari R yang tidak
join memiliki nilai yang cocok dalam atribut
umum S juga disertakan dalam relasi
hasil.
Semi Join R ⊳F S Menghasilkan relasi yang berisi tupel R
yang ikut bergabung dalam R dengan S
yang memenuhi predikat F.
Divisi/Division R÷S Menghasilkan relasi yang terdiri dari
himpunan tupel dari R yang didefinisikan
di atas atribut C yang cocok dengan
kombinasi setiap tupel di S, di mana C
adalah himpunan atribut yang ada di R
tetapi tidak di S.
Agregat/Agregate Menerapkan daftar fungsi agregat, AL, ke
relasi R untuk mendefinisikan relasi di
atas daftar agregat. AL berisi satu atau
lebih pasangan (<fungsi_agregat>,
<atribut>).
Mengelompokkan/Groupin Mengelompokkan tupel relasi R dengan
g atribut pengelompokan, GA, dan
kemudian menerapkan daftar fungsi
agregat AL untuk mendefinisikan relasi
baru. AL berisi satu atau lebih pasangan
(<aggregate_function>, <attribute>).
Relasi yang dihasilkan berisi atribut
pengelompokan, GA, bersama dengan
hasil dari setiap fungsi agregat.

4. Jelaskan apa kegunaan dari SQL!


Jawab :
Keberadaan SQL dalam mengelola sebuah database memberikan fungsi tersendiri. Bagi
seorang admin, adanya SQL dapat memungkinkan kita untuk mengakses maupun
mengubah database.Kita pun bisa menjalankan sebuah query maupun mengambil data
yang dibutuhkan. Termasuk pula memperbarui atau menyisipkan data dalam database.
SQL juga bisa digunakan untuk menghapus sebuah data pada database. Fungsi lainnya
SQL adalah untuk membuat sebuah prosedur baru dan ini akan tersimpan dalam sebuah
database. Selain itu juga bisa mengatur hak akses dalam tabel, prosedur, maupun hal-hal
penting lainnya. Berikut ini kegunaan dari SQL?
a. Memungkinkan untuk mengakses dan memanipulasi data

b. Dapat mengeksekusi query terdapat database

c. Dapat mengambil data dari database

d. Dapat menyisipkan data dalam database

e. Dapat memperbarui data dalam database

f. Dapat menghapus data dari database

g. Dapat membuat database baru

h. Dapat membuat table baru dalam database

i. Dapat membuat prosedur yang tersimpan didalam database

j. Dapat menggabungkan beberapa table didalam database

k. Dapat mengatur hak akses pada table, prosedur, dll

5. Berikut merupakan tabel unnormalized pasien terkonfirmasi Covid-19


(Note: Tabel tersambung/dalam satu tabel)
a. Buatlah ER Diagram tabel diatas!
Jawab :

b. Lakukan proses normalisasi pada tabel tersebut serta jelaskan tahapan-tahapan


normalisasi yang dilakukan!
Jawab :
 Normalisasi 1NF :

No Nama Gender Umur Kd Kel WN Kd Provinsi


Pasie Kel Umur Pro
n Umur v
4 Delvi Perempua 34 KU0 30-39 WNI 31 DKI
n 4 Jakarta
4 Delvi Perempua 34 KU0 30-39 WNI 31 DKI
n 4 Jakarta
13 Rico Laki-laki 16 KU0 10-19 WNI 31 DKI
2 Jakarta
15 Fadli Laki-laki 43 KU0 40-49 WNI 32 Jawa
5 Barat
15 Fadli Laki-laki 43 KU0 40-49 WNI 32 Jawa
5 Barat
25 Aline Perempua 53 KU0 50-59 WNA 51 Bali
n 6

ID Periksa Tgl Hsl Status Tgl ID RS Nama RS Kota RS


Hsl Periksa Status
Periks
a
PR0005 06- Positif Dalam 06- RS00 RSPI Jakarta Utara
Mar Perawatan Mar 3 Sulianto
Saroso
PR0008 15- Negati Sembuh 15- RS00 RSPI Jakarta Utara
Mar f Mar 3 Sulianto
Saroso
PR0023 09- Negati Sembuh 09- RS00 RSPI Jakarta Utara
Mar f Mar 3 Sulianto
Saroso
PR0025 09- Positif Dalam 09- RS00 RS Jakarta Timur
Mar Perawatan Mar 9 Persahabatan
PR0025 09- Positif Meninggal 12- RS00 RS Jakarta Timur
Mar Mar 9 Persahabatan
PR0073 10- Positif Meninggal 15- RS03 RS Sanglah Denpasar
Mar Mar 7

 Normalisasi 2NF :
Tabel Data Pasien

No Pasien Nama Gender Umur Kd Kel Umur Kel Umur WN


4 Delvi Perempuan 34 KU04 30-39 WNI
13 Rico Laki-laki 16 KU02 10-19 WNI
15 Fadli Laki-laki 43 KU05 40-49 WNI
25 Aline Perempuan 53 KU06 50-59 WNA
Tabel Asal Pasien
Kd Prov Provinsi
31 DKI Jakarta
32 Jawa Barat
51 Bali

Tabel Status Pasien


ID Periksa Tgl Hsl Periksa Hsl Periksa
PR0005 06-Mar Positif
PR0008 15-Mar Negatif
PR0023 09-Mar Negatif
PR0025 09-Mar Positif
PR0073 10-Mar Positif

Tabel Rumah Sakit


ID RS Nama RS Kota RS
RS003 RSPI Sulianti Saroso Jakarta Utara
RS009 RS Persahabatan Jakarta Timur
RS037 RS Sanglah Denpasar

Tabel Pasien Terkonfirmasi Covid-19


No Pasien Kd Prov ID Periksa Status Tgl ID RS
Status
4 31 PR0005 Dalam Perawatan 06- RS003
Mar
4 31 PR0008 Sembuh 15- RS003
Mar
13 31 PR0023 Sembuh 09- RS003
Mar
15 32 PR0025 Dalam Perawatan 09- RS009
Mar
15 32 PR0025 Meninggal 12- RS009
Mar
25 51 PR0073 Meninggal 15- RS037
Mar

 Normalisasi 3NF :
Tabel Data Pasien
No Pasien Nama Gender Umur Kd Kel WN
Umur
4 Delvi Perempuan 34 30-39 WNI
13 Rico Laki-laki 16 10-19 WNI
15 Fadli Laki-laki 43 40-49 WNI
25 Aline Perempuan 53 50-59 WNA
Tabel Umur
Kd Kel Umur Kel Umur
KU04 30-39
KU02 10-19
KU05 40-49
KU06 50-59

Tabel Asal Pasien


Kd Prov Provinsi
31 DKI Jakarta
32 Jawa Barat
51 Bali

Tabel Status Pasien


ID Periksa Tgl Hsl Periksa Hsl Periksa
PR0005 06-Mar Positif
PR0008 15-Mar Negatif
PR0023 09-Mar Negatif
PR0025 09-Mar Positif
PR0073 10-Mar Positif

Tabel Rumah Sakit


ID RS Nama RS Kota RS
RS003 RSPI Sulianti Saroso Jakarta Utara
RS009 RS Persahabatan Jakarta Timur
RS037 RS Sanglah Denpasar

Tabel Pasien Terkonfirmasi Covid-19


No Pasien Kd Prov ID Periksa Status Tgl ID RS
Status
4 31 PR0005 Dalam Perawatan 06- RS003
Mar
4 31 PR0008 Sembuh 15- RS003
Mar
13 31 PR0023 Sembuh 09- RS003
Mar
15 32 PR0025 Dalam Perawatan 09- RS009
Mar
15 32 PR0025 Meninggal 12- RS009
Mar
25 51 PR0073 Meninggal 15- RS037
Mar

c. Lakukan proses normalisasi pada tabel tersebut serta jelaskan tahapan-tahapan


normalisasi yang dilakukan!
Jawab :

Tabel Data Pasien :

Tabel umur :

Tabel Asal Pasien :

Tabel Status Pasien :


Tabel Rumah Sakit :

Tabel Pasien Terkonfirmasi Covid-19 :

INSERT INTO Data_Pasien VALUES (4,"Delvi","Perempuan",34,"30-39","WNI"),


(13,"Rico","Laki-Laki",16,"10-19","WNI"), (15,"Fadli","Laki-Laki",43,"40-49","WNI"),
(25,"Aline","Perempuan",53,"50-59","WNA")

INSERT INTO Umur VALUES ("KU04","30-39"), ("KU02","10-19"), ("KU05","40-49"),


("KU06","50-59")
INSERT INTO Asal_Pasien VALUES (31,"DKI Jakarta"), (32,"Jawa Barat"), (51,"Bali")

INSERT INTO Status_Pasien VALUES ("PR005","06-Mar","Positif"), ("PR008","15-


Mar","Negatif"),("PR0023","09-Mar","Negatif"),("PR0025","09-Mar","Positif"),
("PR0073","10-Mar","Positif")

INSERT INTO Rumah_Sakit VALUES ("RS003","RSPI Yulianti Saroso","Jakarta Utara"),


("RS009","RS Persahabatan","Jakarta Timur"), ("RS037","RS Sanglah","Denpasar")
INSERT INTO Pasien_Terkonfirmasi_COVID19 VALUES (4,31,"PR0005","Dalam
Perawatan","06-Mar","RS003"),(4,31,"PR0008","Sembuh","15-Mar","RS003"),
(13,31,"PR0023","sembuh","09-Mar","RS003"),(15,32,"PR0025","Dalam
Perawatan","09-Mar","RS009"),(15,32,"PR0025","Meninggal","12-Mar","RS009"),
(25,51,"PR0073","Meninggal","15-Mar","RS037")

d. Buatlah aljabar relasional dan SQL untuk pernyataan berikut:


i. Daftar semua rumah sakit.
Jawab :

ii. Daftar semua pasien dengan status pemeriksaan terakhir sembuh.


Jawab :

iii. Sebutkan provinsi semua pasien.


Jawab :

iv. Jumlah pasien dengan status terakhir sembuh, dalam perawatan, dan
meninggal.
Jawab :

v. Jumlah pasien terkonfirmasi Covid-19.


Jawab :

Anda mungkin juga menyukai