Anda di halaman 1dari 17

PETUNJUK MENGERJAKAN

1. Perhatikan petunjuk mengerjakan pada perikop ini


2. Studi Kasus yang digunakan adalah DreamHome Lease
3. Nama Database yang dibuat harus bernama db_dreamhomelease_Kelas_NoKelompok.
Contoh : untuk Kelas A kelompok 1 nama databasenya: db_dreamhomelease_A_1
4. Nama Tabel yang digunakan bebas (menyesuaikan dengan isi tabel)
5. Isilah dengan record minimal 10 untuk setiap tabel yang dibuat
6. Tugas ini merupakan tugas kelompok namun untuk pengumpulan secara individu
7. Laporan dikumpulkan dalam bentuk .pdf dengan format nama :
TugasBesar_Kelas_kelompok_nim_nama. Contoh :
TugasBesar_A_Kelompok01_12345_Sena
8. Apabila terdapat kesamaan konten laporan, record maka keduanya dianggap tidak
mengerjakan
LAPORAN TUGAS BESAR
BASIS DATA

Kelompok 2

Alfan Adi Chandra 19104026


Narantyo Maulana A.N 19104048
Reva Rahardian 19104076

S1SE03B

PROGRAM STUDI
SOFTWARE ENGINEERING
INSTITUT TEKNOLOGI TELKOM PURWOKERTO
2021
DAFTAR ISI

KATA PENGANTAR .................................................................................................................. i

DAFTAR ISI................................................................................................................................. ii

BAB 1 PENDAHULUAN ............................................................................................................ 1

1.1. Latar Belakang ....................................................................................................................... 1

BAB 2 LANDASAN TEORI........................................................................................................ 2

2.1. Pengertian Basis Data ............................................................................................................ 2


2.2. Data Definition Language ..................................................................................................
2.2.1. Create Database ......................................................................................................
2.2.2. .....
2.2.3. dst
2.3. Data Manipulation Language .............................................................................................
2.3.1. Insert .......................................................................................................................
2.3.2. .....
2.3.3. dst
2.4. Normalisasi ........................................................................................................................

BAB 3 PEMBAHASAN............................................................................................................

3.1. Studi Kasus DreamHome Lease ........................................................................................


3.2. Normalisasi ........................................................................................................................
3.2.1. Tabel Tidak Normal (Tabel Universal) ..................................................................
3.2.2. dst
3.3. ER Diagram .......................................................................................................................
3.4. Data Definition Language ..................................................................................................
3.4.1. Membuat Database .................................................................................................
3.4.2. Membuat Tabel ......................................................................................................
3.5. Data Manipulation Language .............................................................................................
3.5.1. Insert Data ..............................................................................................................
3.5.2. Update Data ............................................................................................................
3.5.3. Delete Data .............................................................................................................
3.5.4. Select ......................................................................................................................
3.6. Memfilter Data ...................................................................................................................
3.7. Mengurutkan Data .............................................................................................................
3.8. Fungsi Agregat ...................................................................................................................
3.9. Mengelompokkan Data ......................................................................................................
3.10. SQL JOIN .........................................................................................................................
RUBIK PENILAIAN

KOMPONEN JUMLAH PROSENTASE RUBIK PENILAIAN


NILAI
Normalisasi Minimal sampai A (80-100): Normalisasi sampai 3NF
3NF dan benar setiap/sebagian langkahnya
10 % B (65-79): Normalisasi tidak sampai
3NF dan/atau salah setiap langkahnya
E(0): Normalisasi salah
ER Diagram Menyesuaikan A (80-100): ER Diagram sesuai
normalisasi dengan hasil normalisasi
5% B (65-79): ER Diagram tidak sesuai
dengan hasil normalisasi
E(0): tidak ada ER Diagram
DDL (Database Menyesuaikan A (80-100): Setiap tabel terealisasi
dan Tabel) normalisasi B (65-79): Tidak semua tabel
5%
terealisasi
E(0): Tidak ada tabel yang terealisasi
Constraint PK Sesuai dengan A (80-100): Terdapat PK pada semua
Tabel tabel
5% B (65-79): Ada tabel yang tidak
memiliki PK
E(0): Semua tabel tidak ada PK
Constraint FK Sesuai dengan A (80-100): Terdapat FK pada tabel
Tabel B (65-79): Ada tabel yang tidak
5%
memiliki FK
E(0): Semua tabel tidak ada FK
Data 10 Record A (80-100): minimal 10 record data
(Minimal) tiap tabel
B (65-79): Terdapat tabel yang
10 %
memiliki jumlah data kurang dari 10
record
E(0): Tidak ada record pada tabel
Update 3 Perintah A (80-100): Terdapat min 3 Perintah
(Minimal) 10 % B (65-79): Kurang dari 3 perintah
E(0): Tidak ada perintah
Delete 3 Perintah A (80-100): Terdapat min 3 Perintah
(Minimal) 10 % B (65-79): Kurang dari 3 perintah
E(0): Tidak ada perintah
Select 2 Perintah A (80-100): Terdapat min 2 Perintah
(Minimal) 5% B (65-79): Kurang dari 2 perintah
E(0): Tidak ada perintah
Filter Data 3 Perintah A (80-100): Terdapat min 3 Perintah
(Minimal) 10 % B (65-79): Kurang dari 3 perintah
E(0): Tidak ada perintah
Mengurutkan Data 2 Perintah A (80-100): Terdapat min 2 Perintah
5%
(Minimal) B (65-79): Kurang dari 2 perintah
E(0): Tidak ada perintah
Fungsi Agregat 3 Perintah A (80-100): Terdapat min 3 Perintah
(Minimal) B (65-79): Kurang dari 3 perintah
10 % E(0): Tidak ada perintah
SQL Join 3 Perintah A (80-100): Terdapat min 3 Perintah
(Minimal) B (65-79): Kurang dari 3 perintah
10 % E(0): Tidak ada perintah
Kata Pengantar

Puji syukur diucapkan kehadirat Allah SWT atas segala rahmatNya sehingga penulis dapat
menyelesaikan makalah mata kuliah “Basis Data” ini dengan tersusun secara baik dan sampai selesai.
Tidak lupa kami mengucapkan terimakasih yang sebesar-besarnya kepada Ibu/Bapak selaku dosen
pembimbing mata kuliah Pengantar Basis Data dan terhadap pihak yang telah berkontribusi dengan baik
pikiran maupun materinya.

Penulis sangat berharap semoga makalah ini dapat menambah pengetahuan dan pengalaman bagi
pembaca. Bahkan kami berharap lebih jauh lagi agar makalah ini bisa pembaca praktekkan dalam
kehidupan sehari-hari.

Bagi kami sebagai penyusun merasa bahwa masih banyak kekurangan dalam penyusunan
makalah ini karena keterbatasan pengetahuan dan pengalaman Kami. Untuk itu kami sangat
mengharapkan kritik dan saran yang membangun dari pembaca demi kesempurnaan makalah ini.

Purwokerto, 17-01-2021

Penulis
BAB I

PENDAHULUAN

1.1 Latar Belakang

Semakin berkembangnya teknologi informasi pada saat ini sangat membantu setiap pekerjaan
manusia.Seperti dalam hal pengumpulan data, setiap orang dalam suatu institusi atau perusahaan pasti
tidak bisa lepas dari menggunakan DBMS (Database Management System). Dari yang sederhana seperti
menggunakan Microsoft Access sampai dengan menggunakan DBMS yang cukup kompleks seperti
Oracle.DBMS ini bertujuan untuk mempermudah dalam hal penyimpanan data maupun dalam hal
manipulasi data, yang nantinya data tersebut dapat digunakan kembali apabila diperlukan.

Selain teknologi pengumpulan data yang terus berkembang, teknologi penyimpanan data pun
terus mengalami peningkatan. Dahulu biasanya suatu media penyimpanan seperti Harddisk mempunyai
kapasitas dalam ukuran Giga, tetapi sekarang banyak ditemui kapasitas Harddisk yang sampai pada
ukuran Tera.
BAB II

LANDASAN TEORI

2.1 Pengertian Basis Data

Basis data (bahasa Inggris: database), atau sering pula dieja basis data, adalah kumpulan informasi
yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu
program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan
untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database
management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi.Untuk mengelola dan
memanggil query basis data agar dapat disajikan dalam berbagai bentuk yang diinginkan dibutuhkan
perangkat lunak yang disebut Sistem Manajemen Basis Data atau juga disebut Database Management
System (DBMS).

Penggabungan Database Management System (DBMS) dengan Basis Data akan membentuk satu
kesatuan yang disebut Sistem Basis Data. Sistem Basis Data adalah suatu sistem penyusunan dan
pengelolaan record-record dengan menggunakan komputer, dengan tujuan untuk menyimpan atau
merekam serta memelihara data operasional lengkap sebuah organisasi/perusahaan sehingga mampu
menyediakan informasi yang diperlukan pemakai untuk kepentingan proses pengambilan keputusan.

2.2 Data Definition Language

DDL (Data Definition Languange) merupakan sekumpulan set perintah yang bertujuan untuk
mendefinisikan atribut – atribut database, tabel, atribut kolom (field), maupun batasan – batasan terhadap
suatu atribut dan relasi/hubungan antar tabel. Yang termasuk dalam kelompok perintah DDL adalah :
CREATE, ALTER, dan DROP.

2.2.1 CREATE

Create merupakan perintah DDL yang digunakan untuk membuat database maupun tabel. Nama
database maupun tabel tidak boleh mengandung spasi (space). Nama database tidak boleh sama antar
database.
Contoh : CREATE DATABASE db_rentalmobil;
Membuat Database yang bernama db_rentalmobil
2.2.2 ALTER

Alter merupakan perintah DDL yang digunakan untuk mengubah nama/struktur tabel.
Contoh : ALTER TABLE ‘transaksi’ ADD ‘lama_sewa’ int (20);
Membuat field baru bernama ‘lama_sewa’

2.2.3 DROP

Drop merupakan perintah DDL yang digunakan untuk menghapus database,tabel ataupun field.
Contoh : DROP DATABASE test;
Menghapus Database bernama test

2.3 Data Manipulation Language

Data Manipulation Language (DML) Kelompok perintah (query) yang berfungsi untuk
memanipulasi data dalam database. Data dalam basis data dapat dimanipulasi dengan cara, pemasukkan
data (insert), penghapusan data (delete), pengubahan data (update), dan pengambilan data (select).

2.3.1 Insert

Perintah INSERT bertujuan untuk menambahkan record data pada suatu tabel. Terdapat beberapa cara
untuk menambahkan record, yaitu:

• Cara 1

Menambahkan record dengan mengisi data pada setiap kolom

INSERT INTO namatabel VALUES (nilai1, nilai2, nilai-n);

Contoh : INSERT INTO paket_cucian VALUES (7000,8000,5000);


Menambahkan record pada tabel paket_cucian tanpa menulis field
• Cara 2

menambahkan baris dengan hanya mengisi pada kolom tertentu:

INSERT INTO namatabel (field1, field2, field-n) VALUES (nilai1, nilai2, nilai-n);

Contoh : INSERT INTO paket_cucian (reguler,sks,hanya_setrika) VALUES (10000,12000,7000);


Menambahkan record pada tabel paket_cucian dengan menulis field

Ket : Jika data bertipe string, date, atau time (contoh : Dr. Black, basis data, 1984-03-18) maka pemberian
nilainya diapit menggunakan tanda petik tunggal (‘Didi’) atau petik ganda (“Basis Data”). Jika data
bertipe numerik (29, 4) maka pemberian nilainya tidak diapit tanda petik tunggal maupun ganda.

2.3.2 Delete

Perintah DELETE digunakan untuk menghapus satu baris, baris dengan kondisi tertentu maupun seluruh
baris. Syntax yang digunakan:

DELETE FROM namatabel [WHERE kondisi];

Pernyataan kondisi dalam tanda [ ] bersifat pilihan/opsional untuk menghapus suatu baris dengan kondisi
tertentu yang dipersyaratkan. Keyword 'where' berfungsi sebagai selector/pemilih.

Contoh : DELETE FROM paket_cucian WHERE reguler=10000


Menghapus record yang memiliki data reguler sebesar 10000
2.3.3 Update

Perintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa kolom pada suatu tabel.
Syntax yang digunakan:

UPDATE namatabel SET field1=nilai1, field2=nilai2 [WHERE kondisi];

Perintah dalam tanda [ ] bersifat pilihan/opsional untuk mengubah suatu baris dengan kondisi tertentu
yang dipersyaratkan.

Contoh : UPDATE paket_cucian SET reguler=8000 WHERE sks=8000; Mengubah record reguler
menjadi 8000 yang memiliki sks sebesar 8000

2.3.4 Select

Perintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkan dengan
beberapa tabel lainnya.

• Menampilkan data semua kolom dengan menggunakan asterisk (*):

SELECT * FROM namatabel;

Contoh : SELECT * FROM paket_cucian;


Menampilkan semua record dari semua field Table paket_cucian
• Menampilkan data untuk field/kolom tertentu:

SELECT field1, field2, field-n FROM namatabel;

Contoh : SELECT reguler,sks FROM paket_cucian;


Menampilkan semua record dari field tertentu pada table

• Menampilkan data dengan kondisi tertentu menggunakan klausa WHERE:

SELECT * FROM namatabel WHERE kondisi;

Contoh : SELECT * FROM data_cucian WHERE id_cucian=’CC001’;


Menampilkan record pada tabel data_cucian yang memiliki id_cucian = CC001

• Menampilkan data untuk field/kolom tertentu dari 2 tabel atau lebih:

SELECT namatabel1.field1, namatabel2.field2, namatabel2.field-n FROM namatabel1, namatabel2


WHERE namatabel1.primarykey = namatabel2.foreignkey;

Contoh : SELECT laporan_pencucian.nama_konsumen,data_kasir.nama_kasir FROM


laporan_pencucian,data_kasir WHERE laporan_pencucian.id_kasir = data_kasir.id_kasir;
Menampilkan data untuk field dari 2 tabel

• Menampilkan semua data dari 2 tabel atau lebih:

SELECT * FROM namatabel1, namatabel2 WHERE namatabel1.primarykey =namatabel2.foreignkey;

Contoh : SELECT * FROM laporan_pencucian,data_kasir WHERE laporan_pencucian.id_kasir =


data_kasir.id_kasir;
Menampilkan semua record dari 2 tabel

2.3.5 Operator

Beberapa operator perbandingan/relasi yang dapat digunakan pada klausa WHERE adalah

“=” (sama dengan)

“>” (lebih dari)

“<” (kurang dari)

“<>” (tidak sama dengan) “>=” (lebih dari sama dengan)

“<=” (kurang dari sama dengan).

Operator logika yang dapat digunakan pada klausa WHERE yaitu AND, OR, NOT, BETWEEN-
AND, IN dan LIKE.

2.4 Normalisasi

Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan
cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible. Normalisasi
dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu
sudah baik, yaitu dapat dilakukan proses insert, update, delete, dan modifikasi pada satu atau beberapa
atribut tanpa mempengaruhi integritas data dalam relasi tersebut.
2.4.1 Tujuan Normalisasi Database

Tujuan utama dari normalisasi database adalah:


1. Menghilangkan dan mengurangi redudansi data.
2. Memastikan dependensi data (data berada pada tabel yang tepat).

Jika sebuah database belum dinormalisasi, kemungkinan terburuk yang akan merugikan sistem adalah:

1. INSERT Anomali
Situasi dimana tidak memungkinkan untuk memasukkan beberapa jenis data secara langsung di
database.
2. UPDATE Anomali
Situasi dimana nilai yang diubah mengakibatkan ketidakkonsistenan database, artinya data yang
diubah tidak sesuai dengan yang diinginkan.
3. DELETE Anomali
Penghapusan data tidak sesuai yang diharapkan, artinya data yang seharusnya tidak terhapus
malah terhapus.

2.4.2 Normalisasi Database

Normalisasi adalah salah satu pendekatan logical design dari suatu database relational, dan
tampaknya sedikit memiliki kemiripan dengan model ER. Disain database relational dengan pendekatan
normalisasi dan disain ER yang teliti akan menghasilkan database relational yang hampir identik, pada
kenyataannya dua pendekatan (normalisasi dan disain ER) tersebut saling memperkuat. Normalisasi
database terdiri dari banyak bentuk, dalam ilmu basis data ada setidaknya 9 bentuk normalisasi yang ada
yaitu 1NF, 2NF, 3NF, EKNF, BCNF, 4NF, 5NF, DKNF, dan 6NF. Namun dalam prakteknya dalam
dunia industri bentuk normalisasi ini yang paling sering digunakan ada sekitar 5 bentuk.

1. Bentuk Tidak Normal


2. Bentuk Normal 1NF

Sebuah tabel bisa dikategorikan sebagai tabel 1NF jika di setiap baris record hanya memiliki 1
value. Hasil transformasi dari Unnormalized Form ke 1NF bisa di lihat dibawah ini :

3. Bentuk Normal 2NF

Sebuah tabel bisa dikategorikan sebagai tabel 2NF jika tabel sudah dalam keadaan 1NF
dan setiap kolom didalam tabel itu functional dependency kepada semua key (Full Dependency),
bukan hanya kepada salah satu key (Partial Dependency). Berarti kita harus menentukan terlebih
dahulu key yang ada di dalam tabel. Dari tabel diatas kita bisa menentukan bahwa ada dua
candidat key yang tersedia dalam tabel diatas, yaitu :

ID_Mahasiswa + Kode_Matkul, dan ID_Mahasiswa + Nama_Matkul.


Setelah dipilih dari kedua candidate key, maka yang paling efisien untuk menjadi Primary Key
adalah :
ID_Mahasiswa + Kode_Matkul. Kemudian tentukan Functional Dependency yang ada
didalam tabel.

Full Dependency ID_Mahasiswa + Kode_Matkul Nama_Matkul Nilai_Matkul Partial


Dependency ID_Mahasiswa Nama_Mahasiswa Alamat_Mahasiswa ID_Dosen Nama_Dosen
Status_Dosen Partial Dependency Kode_Matkul Nama_Matkul Transitive Dependency
ID_Dosen Nama_Dosen Status_Dosen

Setelah mendapatkan semua Functional Dependency di dalam tabel, maka untuk


mengubah tabel 1NF menjadi 2NF kita harus memindahkan kolom yang bergantung hanya
kepada salah satu dari key (Partial Dependency) ke dalam tabel baru.
4. Bentuk Normal 3NF

Sebuah tabel bisa dikategorikan sebagai tabel 3NF jika tabel sudah dalam 2NF dan setiap
kolom yang bukan key harus functional dependency dengan primary key nya. Kita bisa melihat
didalam Tabel Nilai dan Tabel Matkul sudah memenuhi persyaratan 3NF. Tetapi didalam Tabel
Mahasiswa terdapat kolom yang bergantung bukan kepada key nya (Transitive Dependency) yaitu
Nama_Dosen dan Status_Dosen.

Ini menunjukan bahwa Tabel Mahasiswa belum memenuhi persyaratan menjadi 3NF.
Nama_Dosen dan Status_Dosen itu functional dependency kepada ID_Dosen yang kita ketahui
bahwa ID_Dosen itu bukanlah sebuah primary key. Maka untuk membuat Tabel Nilai kedalam
bentuk 3NF, kita harus menempatkan kolom yang functional dependency bukan kepada key nya
(Transitive Dependency) kedalam tabel yang baru. Berikut tabel yang sudah menjadi 3NF :

Anda mungkin juga menyukai