0% menganggap dokumen ini bermanfaat (0 suara)
667 tayangan111 halaman

Modul Sistem Basis Data

Teks ini membahas pengertian basis data sebagai kumpulan data yang penting bagi organisasi untuk kepentingan bisnis dan pengambilan keputusan. Basis data dapat dianalogikan sebagai lemari arsip yang mengelompokkan dan mengatur data secara terstruktur untuk memudahkan pengelolaan dan pengambilan informasi. Teks ini juga menjelaskan hubungan yang erat antara sistem informasi dan basis data.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
667 tayangan111 halaman

Modul Sistem Basis Data

Teks ini membahas pengertian basis data sebagai kumpulan data yang penting bagi organisasi untuk kepentingan bisnis dan pengambilan keputusan. Basis data dapat dianalogikan sebagai lemari arsip yang mengelompokkan dan mengatur data secara terstruktur untuk memudahkan pengelolaan dan pengambilan informasi. Teks ini juga menjelaskan hubungan yang erat antara sistem informasi dan basis data.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 111

KATA PENGANTAR

Bismillaahirrahmaanirrahiim

Alhamdulillahirobbil‘alamiin serta Puji dan Syukur penulis panjatkan kehadirat


Allah SWT atas segala Rahmat dan Ridho-Nya penulis dapat menyelesaikan Modul
Pembelajaran mata kuliah Sistem Basis Data ini sebagai salah satu bahan referensi
untuk mendukung proses belajar mengajar mahasiswa.
Modul ini dirancang khusus untuk membantu mahasiswa memahami hal-hal yang
berkaitan dengan Sistem Basis Data yang merupakan salah satu mata kuliah yang ada
di Program Studi Sistem Informasi, Universitas Bina Sarana Informatika.
Tujuan penulis membuat modul pembelajaran ini dimaksudkan sebagai literatur
teori dasar tentang Sistem Basis Data. Isi modul ini disesuaikan dengan silabus mata
kuliah untuk pembahasan dalam satu semester.
Dalam penulisan dan menyelesaikan Modul Pembelajaran ini, penulis banyak
mendapat masukan dari berbagai pihak, dan secara khusus dalam kesempatan ini,
dengan segala kerendahan dan keikhlasan hati penulis mengucapkan rasa hormat dan
terima kasih yang sebesar-besarnya kepada :
1. Orang tua serta Saudara tercinta yang telah banyak memberikan bantuan dan
dorongan selama penulis menyelesaikan penulisan modul ini
2. Istri dan Anak-anak ku tercinta yang selalu memberikan dorongan dan motivasi bagi
penulis selama penyelesaian Modul ini.
3. Rekan-rekan dan Sahabat baik berada didalam maupun diluar lingkungan saya yang
telah memberi kritik, komentar maupun saran yang membangun untuk perbaikannya,
penulis mengucapkan terima kasih. Saran dan kritik yang sangat membantu dan
berguna adalah untuk penyelesaian isi dari modul ini.

Dengan izin dan ridho Allah SWT, semoga Modul Pembelajaran ini dapat memberikan
manfaat khususnya bagi penulis pribadi dan dapat memberikan sumbangsih ilmu bagi
mahasiswa dan orang lain yang membutuhkannya, dengan harapan akan semakin
berkembang wawasan dan keberagaman ilmu khususnya di bidang Sistem Basis Data.

Semua yang baik sumbernya dari Sang Maha Ilmu, Allah SWT...
Semua yang kurang baik sumbernya dari kealpaan dan kekhilafan hamba sebagai
makhluk-Nya...

Pontianak, Maret 2019


Penulis

Dedi Saputra, S.Pd, M.Kom

ii
DAFTAR ISI

KATA PENGANTAR ...................................................................................... ii


DAFTAR ISI ................................................................................................... iii
BAB I KONSEP DASAR BASIS DATA (DATABASE) .................................. 1
1.1 Pengenalan Basis Data (Database) ................................................... 1
1.2 Konsep Dasar Basis Data .................................................................. 2
1.3 Operasi Dasar Basis Data.................................................................. 4
1.4 Sistem Basis Data .............................................................................. 5
1.5 Data Base Management System (DBMS) .......................................... 6
1.6 Komponen Sistem Basis Data ........................................................... 7
1.7 Komponen Sebuah DBMS ................................................................. 8
1.8 Keuntungan dan Kekurangan DBMS ............................................... 11
BAB II BASIS DATA RELATIONAL & PERANCANGAN BASIS DATA..... 13
2.1 Basis Data Relational ....................................................................... 13
2.2 Perancangan Basis Data ................................................................. 18
2.3 Studi Kasus ...................................................................................... 19
BAB III MODEL DATA ................................................................................. 21
BAB IV ENTITY RELATIONSHIP DIAGRAM (ERD) ................................... 28
BAB V TEKNIK NORMALISASI................................................................... 43
5.1 Pengertian Normalisasi .................................................................... 43
5.2 Anomaly ........................................................................................... 44
5.3 Atribut dan Ketergantungan Fungsi ................................................. 44
5.4 Bentuk Normalisasi .......................................................................... 45
BAB VI TEKNIK NORMALISASI LANJUTAN.............................................. 46
6.1 Langkah-Langkah Pembuatan Normalisasi ..................................... 46
6.2 Studi Kasus ...................................................................................... 48
BAB VII BAHASA QUERY FORMAL ........................................................... 52
7.1 Pengertian Bahasa Query Formal .................................................... 52
7.2 Operator Aljabar Relational .............................................................. 52

iii
BAB VIII BAHASA QUERY TERAPAN ........................................................ 62
8.1 Structured Query Language (SQL) .................................................. 62
8.2 Data Manipulation Language (DML) ................................................ 66
8.3 Data Access/ Data Control Language (DCL) ................................... 70
BAB IX BAHASA QUERY TERAPAN LANJUTAN...................................... 73
9.1 Join .................................................................................................. 73
9.2 Fungsi Agregat ................................................................................. 76
9.3 Sub Query ........................................................................................ 79
BAB X BASIS DATA TERDISTRIBUSI ........................................................ 82
10.1 Pengertian Basis Data Terdistribusi ................................................. 82
10.2 Topologi Distribusi Data ................................................................... 82
10.3 Keuntungan dan Kerugian Basis Data Terdistribusi ......................... 84
10.4 Fragmentasi Data ............................................................................ 85
BAB XI PERANCANGAN DAN IMPLEMENTASI MENGGUNAKAN DB
DESIGNER .................................................................................................... 90
BAB XII LINGKUNGAN BASIS DATA .......................................................... 98
12.1 Konkurensi (CONCURRENCY) ........................................................ 98
12.2 Locking........................................................................................... 100
12.3 Timestamping .................................................................................102
12.4 Crass dan Recovery .......................................................................102
12.5 Security .......................................................................................... 103
12.6 Pemberian wewenang dan view .....................................................103
12.7 Integrity .......................................................................................... 104

DAFTAR PUSTAKA ....................................................................................105

iv
BAB I
KONSEP DASAR BASIS DATA (DATABASE)

1.1 Pengenalan Basis Data (Database)

Data didalam organisasi merupakan sumber daya yang penting yang digunakan
untuk kepentingan organisasi, sehingga penting untuk menyusun basis data yang baik
dan benar agar mampu memenuhi kebutuhan akan informasi bagi para pemakai dan
pengambil keputusan. Hal ini tidak dapat dipungkiri, karena setiap harinya kita selalu
memerlukan dan menggunakan data dalam merencakan segala sesuatu,
mempertimbangkan hal apapun, dan mengambil keputusan dalam kehidupan kita.
Pemahaman yang komprehensif tentang basis data akan memberikan kerangka
kerja,arah berpikir, bersikap dan bertindak secara obyektif dalam menghadapi
perkembangan, kemajuan ilmu pengetahuan dan teknologi. Sebagai contoh, Mahasiswa
pastinya memerlukan data antara lain nilai tugas, nilai ujian tengah semester, nilai ujian
akhir semester, nilai indeks prestasi sementara, nilai indeks prestasi kumulatif, biaya
kuliah, jadwal kuliah serta data-data yang lainnya yang berkaitan dengan kegiatan
perkuliahan.
Sekarang, dapatkah kita bayangkan kebutuhan suatu perusahaan atau organisasi
terhadap data yang diperlukan bagi kepentingan bisnisnya? Saat ini, baik perusahaan
kecil sampai perusahaan besar, pada umumnya telah memiliki informasi dan aplikasi,
yang sangat memerlukan data. Artinya, antara sistem informasi dengan data memiliki
hubungan yang sangat erat dan tidak dapat dipisah-pisahkan satu sama lainnya. Hal
yang penting yang perlu diperhatikan adalah jika kita berbicara mengenai data, maka
akan muncul istilah database atau basis data.
Basis data (database) dapat dibayangkan sebagai sebuah almari arsip. Jika kita
memiliki sebuah lemari arsip dan bertugas untuk mengelolanya, maka kemungkinan
besar kita akan melakukan hal-hal seperti : memberi map pada kumpulan arsip, memberi
penomoran dengan pola tertentu yang nilainya unik pada setiap map, lalu menempatkan
arsip-arsip tersebut dengan urutan tertentu didalam lemari. Kalaupun hal-hal tersebut
tidak seluruhnya dilakukan, paling tidak, semua lemari arsip menerapkan suatu aturan
tertentu bagaimana keseluruhan arsip-arsip tadi disusun. Yang paling sederhana, tentu
menyusun arsip-arsip tadi sesuai kronologisnya dan tanpa pengelompokkan. Hampir
tidak akan pernah kita jumpai adanya lemari arsip yang tidak memiliki aturan dalam
penyusunan arsip-arsip didalamnya.
Mengapa hal-hal itu kita lakukan? Jawabannya sederhana : kita berharap agar
pada suatu saat nanti, sewaktu kita bermaksud untuk mencari dan mengambil arsip dari
lemari maka kita akan dapat melakukannya dengan mudah dan cepat (Fathansyah, 2012).
Basis Data (Database), pada saat ini sangat berdampak besar pada perkembangan
ekonomi dan masyarakat. Sistem basis data berkaitan penting dalam pengembangan
bidang rekayasa perangkat lunak, dan database menjadi kerangka kerja yang mendasari
sistem informasi dan secara mendasar merubah cara banyak organisasi beroperasi.

1
Contoh Penggunaan Basis Data pada aplikasi: aplikasi pengelolaan nomor telepon,
aplikasi pembayaran gaji perusahaan, dan lain-lain.
Berikut contoh penggunaan basis data : peminjaman pada perpustakaan : Ketika kita
melakukan peminjaman di perpustakaan, kemungkinan besar basis data diakses.
Petugas akan memasukkan kode buku atau menggunakan mesin pembaca, mesin ini
dihubungkan dengan aplikasi database barang untuk mengetahui data buku tersebut.
Aplikasi itu kemudian akan mengurangi jumlah stok buku tersebut dan menampilkan
jumlah stok yang ada kepada petugas. Jika jumlah stok buku yang ada sudah di bawah
ambang batas bawah stok, maka sistem database akan secara otomatis
menginformasikan kepada petugas bahwa peminjaman sudah tidak bisa dilakukan. Atau,
jika pembaca menanyakan ketersediaan sebuah buku , maka petugas bisa melakukan
pemeriksaan stok buku dan lokasi penyimpanan buku, dengan menjalankan aplikasi yang
menentukan ketersediaan buku dari basis data.

Gambar 1. Contoh Penggunaan Basis Data


Peminjaman Buku Pada Perpustakaan

Gambar diatas merupakan file-file yang disimpan dalam basis data pada harddisk. Basis
data Perpustkaan berisi beberapa file atau tabel seperti Tabel Buku, Tabel anggota,
Tabel Peminjaman dan Tabel Pengembalian.

1.2 Konsep Dasar Basis Data


Pengertian Basis Data menurt Para Ahli :

1. Menurut Jogiyanto
Definisi database menurut Jogiyanto adalah sekumpulan informasi atau data yang
saling terkait satu dengan yang lainnya, yang dimana data itu tersimpan di luar komputer.
Untuk memanipulasi data tersebut tentu dibutuhkan software tertentu atau software
secara khusus.

2
2. Menurut Abdul Kadir
Pengertian basis data menurut Abdul Kadir adalah sebuah pengorganisasian dari
kumpulan data yang juga saling terkait. Hal itu akan saling memudahkan segala aktivitas
yang ada untuk mendapatkan informasi
3. Menurut S. Atte
Pengertian basis data menurut S. Atte adalah koleksi dari beberapa data yang saling
terkait dan ada di dalam sebuah organisasi/enterprise dengan penggunaan yang cukup
beragam.
4. Menurut Fabbri dan Schwab
Definisi database menurut Fabbri dan Schwab adalah sistem berkasi yang sifatnya
terpadu yang memang dirancang secara khusus, supaya bisa meminimalisir
pengulangan atau yang disebut dengan redundancy data.
5. Menurut Toni Fabbri
Pengertian basis data menurut Toni Fabbri adalah sebuah sistem yang ada pada
beberapa file data yang dimana file data tersebut terintegrasi, dan memiliki sebuah
primary key yang tujuannya adalah untuk melakukan proses pengulangan data.
6. Menurut Gordon C. Everest
Database adalah kumpulan data yang sifatnya analisis, terbagi, mekanis, dan juga
terdefinisi dengan cara yang formal dan bisa dikontrol. Pengontrolan data itu terpusat di
suatu organisasi tertentu.
7. Menurut C.J Date
Pengertian dari database menurut C.J Date adalah koleksi informasi atau data
operasional yang memang sengaja disimpan serta dipakai oleh sistem aplikasi dari suatu
organisasi tertentu.

Definisi Basis Data (Database) Menurut (Fathansyah, 2012) menyampaikan bahwa :


Basis data terdiri dari dua kata , yaitu Basis dan Data. Basis kurang lebih dapat diartikan
sebagai markas atau gudang, tempat bersarang atau berkumpul. Sedangkan Data
adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia
(pegawai, siswa, pembeli, pelanggan), barang, hewan, peristiwa, konsep, keadaan dan
sebagainya yang diwujudkan dalam bentuk angka, huruf, symbol, teks, gambar, bunyi
atau kombinasinya.
Sedangkan menurut (Indrajani, 2009) menyampaikan bahwa, ada beberapa definisi
tentang data, antara lain :
a. Data adalah fakta atau observasi mentah yang biasanya mengenai fenomena fisik
atau transaksi bisnis.
b. Lebih khusus lagi, data adalah ukuran objektif dari atribut (karakteristik) dari entitas
seperti orang, tempat, benda atau kejadian.
c. Representasi fakta yang mewakili suatu objek seperti pelanggan, karyawan,
mahasiswa, dan lain-lain, yang disimpan dalam bentuk angka, huruf, symbol, teks,
gambar, bunyi dan kombinasinya.

Menurut (Fathansyah, 2012), sebagai satu kesatuan istilah, Basis Data (database) dapat
didefinisikan dalam sejumlah sudut pandang seperti :

3
a. Himpunan kelompok data(arsip) yang saling berhubungan yang diorganisasi
sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah.
b. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian
rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai
kebutuhan.
c. Kumpulan file/tabel/arsip yang saling berhubungan yang disimpan dalam media
penyimpanan elektronis.

Prinsip dan Tujuan Basis Data


Basis data dan lemari arsip sesungguhnya memiliki prinsip kerja dan tujuan yang
sama. Prinsip utamanya adalah pengaturan data/arsip. Dan tujuan utamanya adalah
kemudahan dan kecepatan dalam pengambilan kembali data/arsip. Perbedaannya hanya
terletak pada media penyimpanan yang digunakan, jika lemari dari besi atau kayu
sebagai media penyimpanan, maka basis data menggunakan media penyimpanan
elektronis seperti cakram magnetis (magnetic disk) (Fathansyah, 2012). Hal ini
merupakan konsekuensi yang logis, karena lemari arsip langsung dikelola oleh manusia,
sementara basis data dikelola melalui mesin pinter elektronis (komputer). Yang sangat
ditonjolkan dalam basis data adalah pengaturan, pemilahan, pengelompokkan,
pengorganisasian data yang akan disimpan sesuai dengan fungsi atau jenisnya.
Pemilahan, pengelompokkan, pengorganisasian ini dapat berbentuk sejumlah tabel
terpisah atau dalam bentuk pendefinisian kolom-kolom (field) dalam setiap tabel. Seperti
contoh Gambar 1, Basis data Perpustakaan berisi beberapa tabel didalamnya, yaitu tabel
Anggota, tabel Buku, tabel Peminjaman dan tabel Pengembalian.

1.3 Operasi Dasar Basis Data


Di dalam sebuah disk, kita dapat menempatkan beberapa (lebih dari satu) basis
data. Sementara dalam sebuah basis data, kita dapat menempatkan satu atau lebih tabel.
Pada tabel ini sesungguhnya data disimpan dan ditempatkan. Setiap basis data
umumnya dibuat untuk mewakili sebuah semesta data yang spesifik. Misalnya ada basis
data kepegawaian, basis data akademik, basis data inventori, dan sebagainya. Karena
itu, operasi-operasi dasar yang dapat kita lakukan berkenaan dengan basis data menurut
(Fathansyah, 2012) dapat meliputi:
1. Pembuatan basis data baru (create database), yang identik dengan pembuatan
lemari arsip yang baru.
2. Penghapusan basis data (drop database), yang identik dengan perusakan lemari
arsip (sekaligus berserta isinya, jika ada).
3. Pembuatan tabel baru ke suatu basis data (create table), yang identik dengan
penambahan map arsip ke sebuah lemari arsip yang telah ada
4. Penghapusan tabel dari suatu basis data (drop table), yang identik dengan
perusakan map arsip lama yang ada di sebuah lemari arsip
5. Penambahan atau pengisian data baru ke sebuah tabel di sebuah basis data (insert),
yang identik dengan penambahan lembaran arsip ke sebuah map arsip
6. Pengambilan data dari sebuah tabel (query), yang identik dengan pencarian
lembaran arsip dari sebuah map arsip

4
7. Pengubahan data dari sebuah tabel (update), yang identik dengan perbaikan isi
lembaran arsip yang ada di sebuah map arsip
8. Pengahpusan data dari sebuah tabel (delete), yang identik dengan penghapusan
sebuah lembaran arsip yang ada di sebuah map arsip

1.4 Sistem Basis Data


Menurut (Fathansyah, 2012), sistem adalah sebuah tatanan (keterpaduan) yang
terdiri atas sejumlah komponen fungsional (dengan satuan fungsi dan tugas khusus)
yang saling berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu
proses tertentu. Sebuah kendaraan dapat mewakili sebuah sistem yang terdiri atas
komponen pemantik/starter (untuk memulai pengapian), komponen pengapian (untuk
pembakaran BBM yang membuat torak bekerja), komponen penggerak/torak (untuk
menggerakkan roda), komponen pengereman (untuk memperlambat dan menghentikan
gerakan torak dan roda), komponen pelistrikan (untuk mengaktifkan speedometer, lampu,
dan lain-lain) yang secara bersama-sama melaksanakan fungsi kendaraan secara
umum, yakni sebagai sarana transportasi.
Basis data hanyalah sebuah objek yang pasif. Ia ada karena ada pembuatnya. Ia
tidak akan pernah berguna jika tidak ada penegelolanya atau penggeraknya. Yang
menjadi pengelola atau penggeraknya secara langsung adalah program/aplikasi
(software). Gabungan keduanya (basis data dan pengelolaannya) menghasilkan sebuah
sistem. Karena itu, secara umum menurut (Fathansyah, 2012), Sistem Basis Data
merupakan sistem yang terdiri atas kumpulan tabel data yang saling berhubungan (dalam
sebuah basis data di sebuah sistem computer) dan sekumpulan program (yang biasa
disebut dnegan DBMS (Database Management System) yang memungkinkan beberapa
pemakai dan atau program lain untuk mengakses dan memanipulasi tabel- tabel tersebut.

5
Gambar 2. Sistem Basis Data

1.5 Data Base Management System (DBMS)


DBMS adalah perangkat lunak yang memungkinkan pemakai untuk mendefinisikan,
mengelola, dan mengontrol akses ke basis data. DBMS yang mengelola basis data
relational disebut dengan Relational DBMS (RDBMS ) Contoh perangkat lunak yang
termasuk DBMS: dBase, FoxBase, Rbase, Microsoft-Access, Borland Paradox / Borland
Interbase, MS-SQL Server, Oracle, Informix, Sybase, MySQL, dll.

Gambar 3. Contoh Komputer Mengakses Database


Penjelasan Gambar diatas menunjukkan bagaimana sebuah komputer

6
mengakses sebuah database : Database menampung semua data, dimulai dari anggota,
data buku sampai dengan data transaksi peminjaman dan pengembalian, Sehingga
anggota dapat melihat data buku yang tersedia dalam perpustakaan begitu pula anggota
dapat melihat buku apa saja yang sudah dipinjam dan waktu pengembaliannya. Begitu
pula dengan petugas dapat melihat fungsi yang sama pula.

1.6 Komponen Sistem Basis Data


Menurut (Fathansyah, 2012), dalam sebuah basis data, secara lengkap akan
terdapat komponen-komponen utama sebagai berikut:
1. Perangkat Keras (Hardware)
Perangkat keras yang biasanya terdapat dalam sebuah sistem basis data adalah
a. Komputer (satu untuk sistem stand alone atau lebih dari satu untuk sistem
jaringan)
b. Memori sekunder yang on line (Harddisk)
c. Memori sekunder yang off line (Tape atau removable disk) untuk keperluan
backup data
d. Media/perangkat komunikasi (untuk sistem jaringan)

2. Sistem Operasi (Operating System)


Sistem operasi merupakan program yang mengaktifkan sistem komputer,
mengendalikan seluruh sumber daya (resource) dalam komputer dan melakukan
operasi-operasi dasar dalam komputer (operasi I/O, pengelolaan file, dan lain-lain).
Sejumlah sistem operasi yang banyak digunakan seperti : MS-DOS, MS-Windows,
Linux (untuk komputer stand alone atau komputer client dalam sistem jaringan) atau
Novel-Netware, MS-Windows server, Unix, Linux (untuk komputer server dalam
sistem jaringan komputer)

3. Basis Data (Database)


Sebuah sistem basis data dapat memiliki beberapa basis data. Setiap basis data
berisi sejumlah objek basis data (seperti tabel, indeks, dan lain-lain).

4. Sistem (Aplikasi/Perangkat Lunak) Pengelola Basis Data (DBMS)


Pengelolaan basis data secara fisik tidak dilakukan oleh pemakai secara langsung,
tetapi ditangani oleh sebuah perangkat lunak (sistem) yang khusus. Perangkat lunak
inilah (disebut DBMS) yang akan menentukan bagaimana data diorganisasi,
disimpan, diubah dan diambil kembali. Ia juga menerapkan mekanisme pengamanan
data, pemakaian data secara bersama, pemaksaan keakuratan/konsistensi data, dan
sebagainya.

5. Pemakai (User)
Ada beberapa jenis atau tipe pemakai terhadap suatu sistem basis data yang
dibedakan berdasarkan cara mereka berinteraksi terhadap sistem :
a. Programmer Aplikasi
Pemakai yang berinteraksi dengan basis data melalui Data Manipulation Language

7
(DML), yang disertakan (embedded) dalam program yang ditulis dalam bahasa
pemrograman induk (seperti C, C++, Pascal, PHP, Java, dan lain-lain).
b. User Mahir (Casual User)
Pemakai yang berinteraksi dengan sistem tanpa menulis modul program. Mereka
menyatakan query (untuk akses data) dengan bahasa query yang telah disediakan
oleh DBMS.
c. User Umum (End User/Naïve user)
Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu
program aplikasi permanen (executable program) yang telah disediakan sebelumnya.
d. User Khusus (Specialized User)
Pemakai yang meulis aplikasi basis data non konvensional, tetapi untuk keperluan-
keperluan khsusus, seperti aplikasi Artificial Intelligence, Sistem Pakar, Pengolahan
citra, dan lain-lain, yang bias saja mengakses basis data dengan atau tanpa DBMS
yang bersangkutan.

6. Aplikasi (Perangkat Lunak) lain


Aplikasi (perangkat lunak) ini bersifat optional. Artinya, ada atau tidaknya
tergantung pada kebutuhan kita.

1.7 Komponen DBMS

Gambar 4. Komponen DBMS

Menurut (Ladjamudin, 2004), kelima komponen tersebut dapat diklasifikasikan menjadi:


a. Hardware dan Software yang berfungsi sebagai mesin.
b. People dan Procedure yang merupakan manusia dan tatacara menggunakan
mesin.
c. Data merupakan jembatan penghubung antara manusia dan mesin agar terjadi
suatu proses pengolahan data.

1. Hardware ( Perangkat Keras)


DBMS dan software aplikasinya membutuhkan perangkat keras (hardware) untuk
bias bekerja dan berfungsi dengan baik. Perangkat keras tersebut dapat berupa Personal

8
Computer (PC) yang stand alone sampai kepada suatu mainframe yang terkoneksi dalam
suatu jaringan. Perankat keras umumnya akan menyesuaikan diri dengan kebutuhan
suatu organisasi dan DBMS. Beberapa DBMS hanya bias dijalankan pada beberapa
perangkat keras dan sistem operasi, sementara lainnya dapat digunakan secara umum
oleh perangkat keras dan sistem operasi apa saja.

2. Software (Perangkat Lunak)


Komponen perangkat lunak terdiri dari perangkat lunak DBMS itu sendiri bersama
dengan sistem operasi, juga termasuk didalamnya adalah perangkat lunak jaringan. Jika
DBMS tersebut digunakan pada suatu jaringan dan program-program aplikasi. Bahasa
pemrograman/program aplikasi dapat dikategorikan sebagai berikut :
▪ Bahasa pemrograman generasi ketiga, seperti C++, Fortran, PASCAL, dan lain-
lain.
▪ Bahasa pemrograman generasi keempat, seperti SQL, Oracle, Sybase, LISP,
Informaix, dan lain-lain.

3. Data
Data merupakan komponen yang sangat penting dalam sebuah DBMS. Basis Data terdiri
dari data-data operasional dan meta data (data mengenai data). Struktur basis data
dinamakan skema. Data didalam basis data mempunyai sifat terpadu (integrated) dan
berbagi (shared). Terpadu berarti bahwa berkas-berkas data yang ada pada basis data
daling terkait, tetapi kemubaziran data tidak akan terjadi atau hanya terjadi sedikit sekali.
Sedangkan berbagi data berarti bahwa data dapat dipakai oleh sejumlah pengguna.
Artinya sesuatu data dapat diakses oleh sejumlah pengguna dalam waktu bersamaan

Gambar 5. Contoh Komputer Mengakses Basis Data

Skema :
a. Tabel Buku (kode buku, judul buku, dst)
b. Tabel Anggota (kode anggota, nama anggota, dst)
c. Tabel Peminjaman (Kode pinjam, tgl pinjam, dst)
d. Tabel Pengembalian (kode kembali, tgl kembali, dst)

4. Procedure (Prosedur)
Prosedur menghubungkan berbagai perintah, dan aturan-aturan yang akan menentukan
9
rancangan dan penggunaan basis data. User (pengguna/pemakai) dari sistem dan staff
yang akan mengatur dan merancang basis data berdasarkan prosedur-prosedur yang
didokumentasikan. Dokumen tersebut berisi tentang bagaimana cara menggunakan dan
menjalankan suatu sistem. Instruksi- instruksi ini dapat terjadi dari :
a. Log on ke DBMS.
b. Gunakan fasilitas-fasilitas DBMS yang standar, atau program aplikasi.
c. Memulai dan mengakhiri DBMS.
d. Buatkan backup dari basis data tersebut.
e. Tangani masalah-masalah hardware dan software.
f. Ubahlah struktur tabel, dan lain-lain.

5. People (Pengguna/User)
People atau pengguna akan berinteraksi dengan mesin (software dan hardware) melalui
berbagai prosedur dan aturan-aturan formal yang berlaku. People adalah seseorang
yang menginginkan agar persoalannya dikerjakan oleh komputer. Pengguna dapat
dikategorikan ke dalam empat golongan, yaitu :

1. Data Administrator (DA) dan Database Administrator (DBA)


Data Administrator (DA) akan bertanggungjawab dalam mengelola sumber daya data
berupa:
• Perencanaan basis data
• Pemeliharaan dan peremajaan suatu standarisasi formal yang berlaku
• Menentukan kebijakan-kebijakan, prosedur formal, merancang basis data logic.
• Data administrator akan berkonsultasi dengan Manajer Senior, untuk
meyakinkan bahwa alur pengembangan basis data akan sangat mendukung dan
sejalan dengan target dari enterprise/perusahaan/organisasi tersebut.
Database Administratot (DBA) akan bertanggungjawab dalam mengelola sumber
daya fisik dari sistem basis data berupa :
▪ Bertanggungjawab terhadap seluruh informasi yang berada didalam database.
▪ Bertanggungjawab terhadap startegi pengaksesan data dan
mengorganisasikan file didlaam media penyimpanan.
▪ Sebagai media penghubung/perantara dengan user.
▪ Memiliki otoritas pengecekan dan menjalankan prosedur validasi.
▪ Bertanggungjawab terhadap strategi backup dan peremajaan data.
▪ Mengontrol performasi data dan berhak memberi tanggapan atas usulan-usulan
perubahan dan peremajaan data.

2. Database Designer
Dalam suatu proyek basis data yang besar dan kompleks kita dapat membagi database
designer menjadi dua kelompok, yaitu:
▪ Logical database designer (perancang basis data logic)Logical database designer
bertugas mengidentifikasikan data seperti entitas dan atribut), kardinalitas relasi
dari data tersebut dan bagaimana data tersebut disimpan didalam media
penyimpanan sekunder. Logical database designer harus memiliki pemahaman
10
yang menyeluruh tentang organisasi data dan aturan-aturan bisnis.
▪ Physical database designer (perancang basis data fisik)
Physical database designer mengambil model data logical dan
memutuskan/menentukan bagaimana model data logic tersebut
diimplementasikan ke dalam model data fisik. Pekerjaannya antara lain meliputi:
a. Melakukan mapping terhadap model data logical ke dalam sekumpulan tabel
atau relasi yang terintegrasi.
b. Melakukan pemilihan atau menentukan struktur media penyimpanan, dan
metode pengaksesan data agar dapat menghasilkan tampilan yang menarik
dalam kegiatan-kegiatan basis data dan pengolahan data.
c. Merancang dan menentukan standarisasi keaamanan data.

3. Programmer Aplikasi (Application Programmer)


Ketika basis data telah diimplementasikan, programmer aplikasi yang akan membuat
berbagai fungsi dan prosedur dalam sistem komputer yang akan digunakan oleh end
user. Biasanya programmer aplikasi akan mengerjakan spesifikasi modul yang
dirancang oleh sistem analis.

4. End User
1) Naïve User (User Umum)
Naïve user adalah mereka yang dapat mengenali DBMS. Mereka mengakses
basis data melalui program aplikasi yang telah tertulis secara khusus yang
memungkinkan untuk dioperasikan sesederhana mungkin. Mereka mengakses
basis data dengan menginput atau memasukkan perintah-perintah sederhana dari
sistem menu. Artinya, mereka tidak perlu mengetahui lebih banyak tentang basis
data atau DBMS.
2) Sophisticated User (User Mahir)
Sophisticated User adalah mereka yang sangat familiar dengan struktur basis data
dan fasilitas-fasilitas yang ditawarkan oleh DBMS. Sophisticated User dapat
menggunakan bahasa query tingkat tinggi seperti SQL untuk menampilkan atau
membuat operasi-operasi yang diinginkan. Beberapa Sophisticated User akan
membuat sendiri program aplikasi yang mereka butuhkan.

1.8 Keuntungan dan Kekurangan DBMS


Keuntungan DBMS, sebagai berikut :
a. Pengontrolan kerangkapan data
b. Konsistensi data
c. Lebih banyak informasi dari jumlah data yang sama
d. Sharing data
e. Peningkatan integrasi data
f. Peningatan keamanan
g. Penegakan standar layanan
11
Kekurangan DBMS, sebagai berikut :
a. Kompleksitas
b. Ukuran
c. Biaya DBMS
d. Biaya Peangkat keras tambahan
e. Biaya konversi teknologi
f. Performa
g. Dampak kegagalan yang lebih besar

12
BAB II
BASIS DATA RELATIONAL & PERANCANGAN BASIS DATA

2.1 Basis Data Relational


A. Pengertian Basis Data Relational
Basis data relasional adalah basis data yang mempresentasikan data dalam bentuk
tabel-tabel, dimana tabeltabel tersebut dihubungkan oleh nilai-nilai yang sama/umum
pada kolom-kolom terkait. Menurut (Fathansyah, 2012), meyampaikan bahwa model
basis data relasional sering pula disebut dengan model relasional atau basis data
relasional. Model basis data ini diperkenalkan pertama kali oleh E.F. Codd. Model basis
data menunjukkan suatu mekanisme yang digunakan untuk mengorganisasi data secara
fisik dalam disk yang akan berdampak pula pada bagaimana kita mengelompokkan dan
membentuk keseluruhan data yang berterkait dalam sistem yang sedang kita tinjau.
Sedangkan menurut (Hariyanto, 2004), mendefinisikan Basis data relasional
merupakan kumpulan sejumlah berhingga relasi. Basis data relasional juga merupakan
himpunan skema (metadata) dan humpunan instan skema (data-data).
Komponen Penyusun Basis Data.
Untuk mengilustrasikan Basis data relasional secara lebih nyata, berikut ini kita ambil
sebuah contoh basis data sederhana yang berkaitan dengan perpustakaan. Kita sebut
saja basis data tersebut sebagai Basis Data Perpustakaan. Basis Data Perpustakaan
terdiri dari empat tabel, yaitu tabel Anggota, tabel Buku, tabel Peminjaman dan tabel
Pengembalian. Basis data perpustakaan memiliki skema sebagai berikut :

Gambar 6. Skema Tabel

13
Gambar 7. Contoh Tabel Anggota

Gambar 8. Contoh Tabel Buku

Skema :
▪ Tabel Buku : kode buku (3) , judul buku (20)
▪ Tabel Anggota : kode anggota (3), nama anggota (25)
▪ Tabel Peminjaman : Kode pinjam (5), tgl pinjam (date), kode anggota (3)
▪ Tabel Pengembalian : Kode kembali (5), tgl kembali (date), kode anggota (3)

Adapun Komponen Penyusun Basis Data ada empat, sebagai berikut:


a. Tabel
Tabel memiliki nama dan terdiri atas baris dan kolom. Tabel pada suatu basis data
tidak boleh memilki nama yang sama (unik). Tabel disebut juga dengan Relation atau
File. Pada gambar diatas terdiri dari 4 tabel yaitu, tabel anggota, tabel buku, tabel
peminjaman, tabel pengembalian. Menurut (Ladjamudin, 2004), tabel atau relasi
memiliki karakteristik, sebagai berikut:
▪ Nama relasi yang digunakan dalam suatu basis data haruslah berbeda satu
dengan yang lainnya.
▪ Masing-maisng atribut suatu relasi terdiri dari simple attribute dan bernilai tunggal.
▪ Masing-masing atribut dalam suatu relasi memiliki yang nama yang unik atau
berbeda dengan lainnya.
▪ Semua nilai dari suatu atribut haruslah berasal dari domain yang sama.
▪ Tidak ada tuple yang ganda.
▪ Tuple-tuple boleh tidak berurutan.
▪ Atribut-atributnya tidak perlu berurutan.
▪ Semua elemen data pada suatu kolom tertentu dalam relasi yang sama harus
mempunyai jenis yang sama.

b. Kolom/Atribut
Kolom memiliki nama. Kolom yang terdapat dalam suatu tabel tidak boleh memiliki nama

14
yang sama. Urutan nama boleh sembarang dan tidak mempengaruhi makna dari tabel.
Nama lain kolom adalah Field atau Atribut. Pada gambar diatas, contoh kolom pada tabel
Buku yaitu kode buku dan judul buku.

3) Baris/Tuple
Berisikan data dari sebuah objek. Baris pada sebuah tabel harus unik, dapat diletakkan
dalam urutan bebas dan tidak mempengaruhi makna dari tabel. Baris disebut juga dengan
Record atau tuple. Pada slide diatas tabel anggota dapat menyimpan tiga obyek (yaitu
tiga data anggota).

4) Domain
Domain adalah sekumpulan nilai-nilai yang dapat disimpan pada satu atau lebih kolom.
Sebuah domain bisa dimiliki oleh satu kolom atau lebih, tetapi sebuah kolom hanya
memiliki satu domain. Karena domain membatasi dan mengatur nilai yang dapat disimpan
maka disebut domain constraint. Pada gambar diatas, kolom yaitu kode anggota hanya
berisi 3 nilai saja, yaitu “A01”.

B. Relational Keys
Relational Keys adalah identifikasi satu atau sekelompok kolom yang nilainya dapat
membedakan secara unik tuple-tuple tersebut. Menurut (Ladjamudin, 2005),
menyampaikan bahwa Key adalah elemen record yang dipakai untuk menemukan record
tersebut pada waktu akses, atau bias juga digunakan untuk mengidentifikasi suatu entity
atau record atau baris.

Gambar 9. Contoh Tabel Relational

15
Menurut (Pahlevi, 2013) terdapat 5 Relational Keys, sebagai berikut :
a. Superkey
Adalah satu atau kelompok kolom yang nilainya secara unik membedakan tuple-tuple
pada suatu tabel. Pada gambar diatas di masing-masing tabel terdapat lebih dari
satu superkey, yaitu :
1) Tabel anggota : kode anggota, nama anggota
2) Tabel buku : kode buku, judul, stok buku
3) Tabel peminjaman : kode pinjam, tgl pinjam, kode buku, kode anggota, juml, tgl
kembali
4) Tabel pengembalian : kode kembali, kode pinjam

Pada gambar diatas di masing-masing tabel terdapat lebih dri satu superkey, yaitu :
Tabel anggota :
▪ Kolom kode anggota,
▪ Kolom no faktur dan kolom nama anggota
Tabel buku :
▪ Kolom kode buku
▪ Kolom kombinasi kode buku, judul, stok buku Dst.

b. Candidate Key
Adalah superkey di mana tidak ada satupun himpunan bagian dari superkey tersebut
menjadi superkey lagi. Tidak semua superkey menjadi candidate key. Candidate key
yang terdiri dari dua kolom atau lebih disebut sebagai composite key. Pada gambar
diatas masing-masing tabel terdapat lebih candidate key atau bukan candidate key,
yaitu :
1) Tabel anggota :
a) Kolom kode anggota : candidate key
Kolom kode anggota dan kolom nama anggota = bukan candidate key
b) Tabel buku :
Kolom kode buku = candidate key
Kolom kombinasi kode buku, judul, stok buku : bukan candidate key

2) Tabel Peminjaman :
a) Kolom kode pinjam, kode buku, kode anggota : candidate key
b) Kolom kombinasi kode pinjam, kode buku, kode anggota, jumlah : bukan
candidate key

3) Tabel Buku :
a) Kolom kode buku merupakan candidate key
b) Kolom kombinasi kode buku, judul buku, stok buku bukan
candidate key

4) Tabel pengembalian

16
a) Kolom kode kembali, kode pinjam merupakan candidate key
b) Kolom kombinasi kode kembali, kode pinjam bukan candidate key

c. Primary Key
Adalah (satu) candidate key yang dipilih (di antara candidate key lain) untuk
membedakan tuple-tuple scara unik dalam tabel. Jika dalam satu tabel hanya terdapat
satu candidate key (misal tabel anggota dan tabel buku), maka key tersebut menjadi
primary key. Tetapi jika terdapat lebih dari satu candidate key (misal tabel penjualan dan
tabel pengembalian), maka salah satu candidate key tersebut dpat dijadikan primary key.
Primary key masing-masing tabel pada gambar diatas adalah
1) Tabel anggota : kode anggota
2) Tabel buku : kode buku
3) Tabel peminjaman : kode pinjam
4) Tabel pegembalian : kode kembali

d. Alternate Key
Adalah candidate key yang tidak dijadikan sebagai primary key. Misal pada tabel
pengembalian jika kita memilih kode kembali sebagai primary key, maka kode pinjam
dapat dijadikan alternate key.

e. Foreign Key
Adalah satu atau kelompok kolom yang nilainya sama atau terkait dengan candidate
key pada tabel lain atau pada tabel yang sama. Misal pada tabel peminjaman ada
kolom kode anggota yang terhubung dengan tabel anggota, maka kode anggota
adalah foreign key. Kolom-kolom yang saling terkait ini sangat penting dalam operasi
join. Pada tabel pengembalian ada kolom kode pinjam yang terhubung dengan tabel
peminjaman, maka kode pinjam disini juga sebagai foreign key.

C. Skema tabel
Adalah informasi dasar yang mendeskripsikan tabel yang terdiri atas nama tabel dan
sekumpulan pasangan kolom domain.

Contoh :
▪ Skema Tabel Anggota (kode anggota, nama )
▪ Skema Tabel Buku (kode buku, judul)
▪ Skema Tabel Peminjaman (kode pinjam, tgl pinjam, tgl kembali, juml, kode
anggota, kode buku)
▪ Skema Tabel Pengembalian (kode kembali, kode pinjam)

D. Skema Basis Data


Adalah sekumpulan skema tabel dengan masing-masing tabel memiliki nama yang
berbeda.

17
Contoh : Skema Basis Data Perpustakaan :
▪ Tabel anggota (kode anggota, nama)
▪ Tabel buku (kode buku, judul, stok buku),
▪ Tabel peminjaman (kode pinjam,tgl pinjam, kode buku, tgl kembali, kode
anggota, juml) dan
▪ Tabel Pengembalian (kode kembali, kode pinjam).

E. Integrity Constraint
Pada penjelasan diatas telah dibahas mengenai domain constraints. Terdapat empat
contraints/batasan lain yang menjaga integritas data yang disimpan pada basis data :
1) Null Adalah nilai pada suatu kolom (tuple) masih belum diketahui (unknown). Ini bisa
berarti nilai tersebut tidak dapat diterapkan pada kolom tersebut. Namun, null tidak
sama dengan nilai numerik nol atau string “-”; nol dan spasi adalah nilai, tetapi null
menunjukkan tidak adanya nilai. Misal dalam sebuah tabel ada sebuah data yang
belum diketahui boleh dituliskan null, akan tetapi hal tersebut tidak berlaku untuk
primary key. Karena kolom primary key bersifat unik, jika primary key menyimpan null
maka sifat unik dari kolom tersebut akan hilang karena bisa saja beberapa tuple
memiliki nilai null.
2) Entity integrity
Adalah batasan atau aturan yang menyatakan bahwa kolom-kolom primary key tidak
boleh menyimpan null. Seperti di jelaskan sebelumnya primary key digunakan untuk
mendefinisikan secara unik sebuah tuple.

F. Referential integrity
Adalah batasan yang menyatakan jika suatu tabel memiliki kolom foreign key maka
nilai pada foreign key tersebut harus sesuai dengan nilai kolom candidate key dan
jika tidak demikian maka foreign key dapat dituliskan null. Dua keadaan penulisan
null tidak perlu dilakukan :
1) Pada saat kolom tersebut diberikan batasan tidak boleh diberikan null.
2) Pada saat kolom tersebut juga merupakan bagian dari primary key.

G. General constraints
Adalah batasan /aturan tambahan yang ditetapkan oleh pemakai atau administrator basis
data sesuai aturan/batasan yang ada pada suatu organisasi. Contoh :
1) Peminjaman buku tidak diijinkan jika stok buku hanya satu
2) Jika anggota masih memiliki buku yang belum dikembalikan maka tidak di
perbolehkan untuk meminjam kembali

2.2 Perancangan Basis Data


Proses pembangunan basis data terdiri dari dua tahapan utama :
A. Tahap analisis dan perancangan
Adalah tahapan pemetaan atau pembuatan model dari dunia nyata menggunakan
notasi perancangan basis data tertentu serta pembuatan deskripsi implementasi basis
data.

18
Gambar 10. Tahap Analisis dan Perancangan

Tahapan analisis dan perancangan dibagi menjadi tiga, yaitu :


1. Perancangan basis data secara konsep
Merupakan proses pembuatan data model dan tidak bergantung pada seluruh
aspek fisik basis data.
2. Perancangan Basis Data Secara Logis
Merupakan proses pembuatan data model berdasarkan data model tertentu, tetapi
tidak bergantug pada DBMS tertentu dan implementasi fisik basis data.
3. Perancangan Basis Data Secara Fisik
Merupakan proses pembuatan deskripsi implementasi basis data pada media
penyimpanan sekunder (disk). Deskripsi ini menjelaskan tabeltabel dasar,
organisasi file, indeks untuk mendapatkan ases data secara efisien, dan semua
integrity contraints, dan langkah-lagkah keamanan.

B. Tahap Implementasi
Tahapan ini mengimplementasikan rancangan basis data yang telah dibuat.
Implementasi menggunakan aplikasi klien yang disediakan oleh DBMS terpilih.

2.3 Studi Kasus


Perpustakaan Smart adalah perpustakaan umum yang anggotanya pelajar, mahasiswa
dan masyarakat yang didirikan oleh Walikota Jakarta Barat. Keberadaan perpustakaan
berlokasi di Walikota yang aplikasi pelayanan masih bersifat tradisional.
Prosesnya :

Setiap calon anggota yang akan menjadi anggota harus mengisi formulir dengan biaya
administrasi Rp.10.000,-. Anggota dapat meminjam buku maksimal 3 buku Untuk masa
peminjaman selama 1 minggu (7 hari). Keterlambatan pengembalian dikenakan denda

19
sesuai dengan kondisi denda, diantaranya. Diantaranya : Denda keterlambatan
pengembalian dikenakan biaya administrasi Rp.500 perharinya (bukti surat denda
terlampir) Denda Buku perpustakaan rusak maka dikenakan biaya revisi buku
perpustakaan(biaya ini dikenakan setelah buku diperbaiki).(bukti surat denda terlampir)
Denda Buku Hilang, maka dikenakan biaya penggantian seharga buku tersebut.(bukti
surat denda terlampir) Perpustakaan smart dapat menerima sumbangan dari donatur
statusnya (anggota atau masyrakat luas). Buat Database dan Tabel-tabelnya?

20
BAB III
MODEL DATA

Pengertian Model Data


Sebagaimana telah disebutkan di bab sebelumnya, upaya perancangan basis data
dapat juga kita tempuh dengan secara langsung membuat sebuah model dari awal sekali.
Langkah ini biasanya ditempuh dari kelangkaan data/fakta yang kita miliki. Di sisi lai,
sebuah model dinyatakan dalam bentuk diagram awal akan lebih mudah untuk
dievaluasi/dianalisis untuk kemudian dilakukan perbaikan-perbaikan untuk mendapatkan
sebuah model data yang lebih permanen dan lebih mendekati kenyataan sesungguhnya.
Menurut (Fathansyah, 2012), model data dapat didefinisikan sebagai kumpulan
perangkat konseptual untuk menggambarkan data, hubungan data, semantic (makna)
data dan batasan data. Oleh karena yang ingin ditunjukkan adalah makna dari data dan
keterhubungannya dengan data lain, maka model data ini lebih tepat jika disebut Model
Data Lojik.
Jenis-jenis Model Data
1. Model Data Berdasarkan Object
Menurut (Ladjamudin, 2005), Model data berbasis objek menggunakan konsep entitas,
atribut dan hubungan antar entitas (relationship). Entity adalah sesuatu apa saja yang
ada didalam sistem, nyata maupun abstrak dimana data tersimpan atau dimana terdapat
data. Entitas diberi nama dengan kata benda dan dapat dikelompokkan dalam empat
jenis nama, yaitu nama orang, benda, lokasi, kejadian (terdapat unsur waktu
didalamnya), sedangkan atribut merupakan relasi fungsional dari satu objek set ke objek
set yang lain. Relationship adalah hubungan alamiah yang terjadi antara entitas. Model
data berbasi objek memiliki beberapa bentuk, sebagai berikut :
a. Model Keterhubungan Entitas (Entity-Relationship Model )
Pengertian Model Keterhubungan Entitas (Entity Relationship Model / ER Model)
Model Keterhubungan Entitas (Entity-Relationship Model ) merupakan model yang paling
populer digunakan dalam perancangan basis data. Entity-Relationship Model merupakan
Model untuk menjelaskan hubungan antar data dalam basis data berdasarkan suatu
persepsi bahwa real world terdiri dari objek- object dasar yang mempunyai hubungan
atau relasi antara objek- objek tersebut. Komponen utama pembentuk Model Entity-
Relationship, yaitu: Entitas (Entity) dan Relasi (Relation). Kedua komponen ini
dideskripsikan lebih lanjut melalui sejumlah Atribut/Properti.

21
Gambar 11. Contoh Tabel Relational

Dari tabel diatas kita dapat menentukan :

Entitas: Buku, Anggota, Peminjaman.


Atribut : Tabel Buku (kode buku, judul, stok buku), Tabel Anggota (kode anggota, nama)
dan Tabel Peminjaman (kode pinjam, tgl pinjam, kode buku, kode anggota, juml,
tgl kembali).
Relasi : hubungan antara kode buku di tabel buku dengan kode buku di tabel
peminjaman. Begitu pula dengan kode anggota.

b. Model Entity Relationship yang berisi komponen himpunan entitas, relasi, yang
dilengkapi atribut-atribut, dapat digambarkan menggunakan Diagram Entity
Relationship (Diagram E-R).

Simbol dasar yang digunakan :

Tabel 1.Simbol Dasar Entity Relationship Diagram

Menyatakan Himpunan Entitas

Menunjukan Himpunan Relasi

Menyatakan Atribut (Atribut key

digaris bawahi)

Penghubung/Link

22
Mapping Kardinalitas
Dalam Diagram E-R aturan terpenting adalah Kardinalitas relasi/ Mapping Cardinalities
yang menentukan jumlah entity yang dapat dikaitkan dengan entity lainnya melalui
relationship-set.
Jenis Mapping Cardinalities:

Relasi satu ke satu (one-to-one) Contoh :

Gambar 12. Relasi one to one

Relasi satu ke banyak (one-to-Many)

Gambar 13. Relasi one to many

Relasi banyak ke banyak (many-to-many)

Gambar 14. Relasi many to many

23
c. Model Berorientasi Object (Object-Oriented Model )

Gambar 15. Model Berorientasi Object

Penggambaran model berbasis objek menggunakan UML. UML Digambarkan dengan 2


Jenis, menurut (Sukamto & Shalahuddin, 2018):
1. Structural Diagram
▪ Class Diagram, Menggambarkan struktur sistem dari segi pendefinisian kelas-
kelas yang akan dibuat untuk mebangun sistem.
▪ Object Diagram, Menggambarkan struktur sistem dari segi penamaan objek dan
jalannya objek dalam sistem.
▪ Component Diagram, Dibuat untuk menunjukkan organisasi dan ketergantungan
diantara kumpulan komponen dalam sebuah sistem.
▪ Deployment Diagram, Menunjukkan konfigurasi komponen dalam proses eksekusi
aplikasi.
2. Behaviour Diagram
▪ Use case Diagram, Merupakan pemodelan untuk kelakuan (behavior) sistem
informasi yang akan dibuat.
▪ Sequence Diagram, Mendeskripsikan waktu hidup objek dan message yang
dikirimkan dan diterima antar objek.
▪ Communication Diagram, Penyederhanaan dari diagram kolaborasi (collaboration
diagram). Collaboration diagram sudah tidak muncul pada UML versi 2.x.
▪ Statechart Diagram, Menggambarkan perubahan status atau transisi status dari
sebuah mesin atau sistem atau objek.

Activity Diagram, Menggambarkan workflow (aliran kerja) atau aktivitas dari
sebuah sistem atau proses bisnis atau menu yang ada pada perangkat lunak.
d. Model Data Semantik (Semantic Data Model )

24
Hampir sama dengan Entity Relationship model dimana relasi antara objek dasar tidak
dinyatakan dengan simbol tetapi menggunakan kata- kata (Semantic). Sebagai contoh,
dengan masih menggunakan relasi pada Bank X sebagaimana contoh sebelumnya,
dalam semantic model adalah seperti terlihat pada gambar di atas. Tanda-tanda yang
menggunakan dalam semantic model adalah:

Tabel 2. Simbol Model Data Semantik

Menujukkan adanya relasi

Menunjukkan atribut

Contoh :

Gambar 16. Contoh Model Data Semantik

e. Model Data Fungsional (Functional Data Model )


Model Data Berdasarkan Record, Model ini berdasarkan pada record untuk
menjelaskan kepada user tentang hubungan logic antar data dalam basis data.

Perbedaan dengan model data berbasis objek adalah pada record based data model
disamping digunakan untuk menguraikan struktur logika keseluruhan dari suatu
database, juga digunakan untuk menguraikan implementasi dari sistem database (higher
level description of implementation)
Jenis-Jenis Model Data Berbasis Record :

1. Model Relational
Dimana data serta hubungan antar data direpresentasikan oleh sejumlah tabel dan
masingmasing tabel terdiri dari beberapa kolom yang namanya unique. Model ini
berdasarkan notasi teori himpunan (set theory), yaitu relation.
Contoh : database penjualan terdiri dari 3 tabel, sebagai berikut :
▪ Tabel Supllier
▪ Tabel Suku Cadang
▪ Tabel Pengiriman

25
Gambar 17. Contoh Model Data Relational

2. Model Hirarki
Dimana data serta hubungan antar data direpresentasikan dengan record dan link
(pointer), dimana record-record tersebut disusun dalam bentuk tree (pohon), dan masing-
masing node pada tree tersebut merupakan record/grup data elemen dan memiliki
hubungan cardinalitas 1:1 dan 1:M.
Contoh :

Gambar 18. Contoh Model Data Hirarki


3. Model Jaringan

26
Distandarisasi tahun 1971 oleh Database Task Group (DBTG) atau disebut juga model
CODASYL (Conference on Data System Language), mirip dengan hirarkical model
dimana data dan hubungan antar data direpresentasikan dengan record dan links.
Perbedaannya terletak pada susunan record dan linknya yaitu network model menyusun
record-record dalam bentuk graph dan menyatakan hubungan cardinalitas 1:1, 1:M dan
N:M.
Contoh :

Gambar 19. Contoh Model Data Jaringan

BAB IV

27
ENTITY RELATIONSHIP DIAGRAM (ERD)

Pengertian ERD (Entity Relationship Diagram)


ERD (Entity Relationship Diagram) adalah suatu model untuk menjelaskan hubungan
antar data dalam basis data berdasarkan objek-objek dasar data yang mempunyai
hubungan antar relasi.ERD untuk memodelkan struktur data dan hubungan antar data,
untuk menggambarkannya digunakan beberapa notasi dan simbol.
Menurut salah satu para ahli, Brady dan Loonam (2010), Entity Relationship Diagram
(ERD) merupakan teknik yang digunakan untuk memodelkan kebutuhan data dari suatu
organisasi, biasanya oleh System Analys dalam tahap analisis persyaratan proyek
pengembangan system. Sementara seolah-olah teknik diagram atau alat peraga
memberikan dasar untuk desain database relasional yang mendasari sistem informasi
yang dikembangkan. ERD bersama-sama dengan detail pendukung merupakan model
data yang pada gilirannya digunakan sebagai spesifikasi untuk database. Atau
pengertian sempitnya adalah sebuah konsep yang mendeskripsikan hubungan antara
penyimpanan (database) dan didasarkan pada persepsi dari sebuah dunia nyata yang
terdiri dari sekumpulan objek yaitu disebut sebagai entity dan hubungan atau relasi antar
objek- objek tersebut.

Tahapan ERD :
• Tahap pertama pada desain sistem informasi menggunakan model ER adalah
menggambarkan kebutuhan informasi atau jenis informasi yang akan disimpan dalam
database. Teknik pemodelan data dapat digunakan untuk menggambarkan setiap
ontologi (yaitu gambaran dan klasifikasi dari istilah yang digunakan dan hubungan
anatar informasi) untuk wilayah tertentu.
• Tahap berikutnya disebut desain logis, dimana data dipetakan ke model data yang
logis, seperti model relasional. Model data yang loguis ini kemudian dipetakan menjadi
model fisik , sehingga kadang-kadang, Tahap kedua ini disebut sebagai “desain fisik”.

Metodologi ERD :

Tabel 3. Metode ERD

28
Simbol-simbol ERD :

Gambar 20. Simbol-simbol ERD

a. Entitas

29
Entiti merupakan objek yang mewakili sesuatu yang nyata dan dapat dibedakan dari
sesuatu yang lain. Simbol dari entiti ini biasanya digambarkan dengan persegi panjang.
b. Atribut
Setiap entitas pasti mempunyai elemen yang disebut atribut yang berfungsi untuk
mendes-kripsikan karakteristik dari entitas tersebut. Isi dari atribut mempunyai sesuatu
yang dapat mengidentifikasikan isi elemen satu dengan yang lain. Gambar atribut diwakili
oleh simbol elips.
• Atribut Key
Atribut Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan
semua baris data ( Row/Record ) dalam tabel secara unik. Dikatakan unik jika pada atribut
yang dijadikan key tidak boleh ada baris data dengan nilai yang sama
Contoh : Nomor pokok mahasiswa (NPM), NIM dan nomor pokok lainnya
• Atribut simple
atribut yang bernilai atomic, tidak dapat dipecah/ dipilah lagi
Contoh : Alamat, penerbit, tahun terbit, judul buku.
• Atribut Multivalue
nilai dari suatu attribute yang mempunyai lebih dari satu (multivalue) nilai dari atrribute
yang bersangkutan
Contoh : dari sebuah buku, yaitu terdapat beberapa pengarang.
• Atribut Composite
Atribut composite adalah suatu atribut yang terdiri dari beberapa atribut yang lebih kecil
yang mempunyai arti tertentu yang masih bisah dipecah lagi atau mempunyai sub
attribute.
Contoh : dari entitas nama yaitu nama depan, nama tengah, dan nama belakang
• Atribut Derivatif
Atribut yang tidak harus disimpan dalam database Ex. Total. atau atribut yang dihasilkan
dari atribut lain atau dari suatu relationship. Atribut ini dilambangkan dengan bentuk
oval yang bergaris putus-putus

c. Hubungan / Relasi
Hubungan antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda.

Gambar 21. Kardinalitas ERD

30
One to One (1:1)
Setiap anggota entitas A hanya boleh berhubungan dengan satu anggota entitas B,
begitu pula sebaliknya.

Gambar 22. One to One

One to many (1: M / Many)


Setiap anggota entitas A dapat berhubungan dengan lebih dari satu anggota entitas B
tetapi tidak sebaliknya.

Gambar 23. One to Many

Many to Many (M:M)


Setiap entitas A dapat berhubungan dengan banyak entitas himpunan entitas B dan
demikian pula sebaliknya

Gambar 24. Many to Many

Contoh Kasus 1 :
Pada saat mendaftar menjadi anggota perpustakaan Fakultas, dicatatlah nama, nomor
mahasiswa dan alamat mahasiswa. Setelah itu mereka baru bisa meminjam buku di
perpustakaan. Buku-buku yang dimiliki perpustakaan banyak sekali jumlahnya. Tiap buku
31
memiliki data nomor buku, judul, pengarang, penerbit, tahun terbit. Satu buku bisa ditulis
oleh beberapa pengarang. Tentukan entitas, atribut dan relasi dari deskripsi di atas,
dengan menggambar ERD nya.
Jawab:
Entitas : Mahasiswa, KAP (Kartu Anggota Perpustakaan), Buku
Atribut : Nama, no.mahasiswa, Alamat mahasiswa, No.buku, Judul, Pengarang,
Penerbit dan tahun terbit.
Relasi : Daftar dan Pinjam
Gambar ERD dalam peminjaman buku di perpustakaan

Gambar 25. ERD Contoh Kasus 1

contoh Kasus 2 :
Seperti soal nomor 1, namun ada beberapa tambahan penjelasan seperti berikut :
Mahasiswa kadang-kadang terlambat mengembalikan buku, sehingga dikenakan denda.
Besarnya denda adalah Rp 500,- per hari keterlambatan. Mahasiswa dianggap terlambat
jika mengembalikan buku lebih lama dari 1 minggu.
Gambarkan ERDnya:

32
Gambar 26. ERD contoh kasus 2

Contoh Kasus 3 :
Sebuah perusahaan mempunyai beberapa bagian. Masing-masing bagian mempunyai
pengawas dan setidaknya satu pegawai. Pegawai ditugaskan paling tidak di satu bagian
(dapat pula dibeberapa bagian). Paling tidak satu pegawai mendapat tugas di satu
proyek.
Tetapi seorang pegawai dapat libur dan tidak dapat tugas di proyek.
Menentukan entitas
Entitasnya : pengawas, bagian, pegawai, proyek
Menentukan relasi dengan matrik relasi

Tabel 4. Contoh Kasus 3

Hubungkan entitas sesuai dengan matrik relasi yang dibuat

33
Gambar 27. Hubungan Entitas contoh kasus 3

Mengisi kardinalitas
Dari gambaran permasalahan dapat diketahui bahwa:
• masing-masing bagian hanya punya satu pengawas
• seorang pengawas bertugas di satu bagian
• masing-masing bagian ada minimal satu pegawai
• masing-masing pegawai bekerja paling tidak di satu bagian
• masing-masing proyek dikerjakan paling tidak oleh satu pegawai

Mengisi kardinalitas
Menentukan kunci utama :
Kunci utamanya: Nomor Pengawas, Nama Bagian, Nomor Pegawai, Nomor Proyek

34
Gambar 28. Hubungan Entitas

Menentukan Kunci Utama


Menggambar ERD berdasarkan kunci
Ada dua relasi many to many pada ERD sementara, yaitu antara bagian dengan pegawai,
pegawai dengan proyek, oleh sebab itu kita buat entitas baru yaitu bagian -pegawai dan
pegawai-proyek Kunci utama dari entitas baru adalah kunci utama dari entitas lain yang
akan menjadi kunci tamu di entitas yang baru.

Gambar 29. ERD berdasarkan Kunci

35
Menggambar ERD berdasarkan kunci
Menentukan atribut
Atribut yang diperlukan adalah: nama bagian, nama proyek, nama pegawai, nama
pengawas, nomor proyek, nomor pegawai, nomor pengawas
Memetakan atribut
▪ Bagian : Nama bagian
▪ Proyek: Nama proyek
▪ Pegawai:Nama pegawai
▪ Pengawas: Nama pengawas
▪ Proyek-Pegawai : Nomor proyek, Nomor pegawai
▪ Pengawas: Nomor pengawas

Menggambar ERD dengan atribut

Gambar 30. ERD berdasarkan Atribut

Periksa apakah masih terdapat redundasi. ERD akhir: untuk pemodelan data pada sistem.

36
Logical Record Structured (LRS)
Merupakan representasi dari struktur record-record pada tabel-tabel yang terbentuk dari
hasil relasi antar himpunan entitas.
Menentukan Kardinalitas, Jumlah Tabel dan Foreign Key (FK)

One To One
Contoh :

Gambar 31. Contoh One To One

Gambar di atas menunujukan relasi dengan kardinalitas 1-1, karena: 1 supir hanya bisa
mengemudikan 1taksi, dan 1 taksi hanya bisa dikemudikan oleh 1 supir. Relasi 1-1 akan
membentuk 2 tabel:

▪ Tabel Supir (nosupir, nama, alamat)


▪ Tabel Taksi (notaksi, nopol, merk, tipe)

Gambar 32. Contoh LRS

One To Many
Contoh :

Gambar 33. Contoh One to Many

37
Gambar di atas menunujukan relasi dengan kardinalitas 1-M, karena: 1 Dosen bisa
membimbing banyak Kelas, dan 1 Kelas hanya dibimbing oleh 1 Dosen. Relasi 1-M akan
membentuk 2 tabel:
▪ Tabel Dosen (nip, nama, alamat)
▪ Tabel Kelas (kelas, jurusan, semester, jmlmhs)

Gambar 34. Contoh LRS

Many To Many
Contoh :

Gambar 35. Contoh Many to Many

Gambar di atas menunjukan relasi dengan kardinalitas M-M, karena: 1 Mahasiswa bisa
belajar banyak Mata Kuliah, dan 1 Mata Kuliah bisa dipelajari oleh banyak Mahasiswa.
Relasi M-M akan membentuk 3 tabel:
▪ Tabel Mahasiswa (nim, nama, alamat)
▪ Tabel Mtkuliah (kdmk, nmmk, sks)
▪ Tabel Nilai (nim, kdmk, nilai) menggunakan super key/composite key

Gambar 36. Contoh LRS

38
Membuat ERD
Langkah-langkah pembuatan ERD dan LRS:

▪ Tentukan entity-entity yang diperlukan


▪ Tentukan relationship antar entity-entity
▪ Menggambar ERD Sementara
▪ Mengisi kardinalitas
▪ Menentukan kunci utama
▪ Menggambar ERD Berdasarkan Kunci
▪ Tentukan attribute-attribute
▪ Transformasi ERD ke LRS Menggambar LRS Contoh :

Sebuah perusahaan mempunyai beberapa bagian. Masing-masing bagian mempunyai


pengawas dan setidaknya satu pegawai. Pegawai harus ditugaskan pada paling tidak
satu bagian, tetapi dapat pula beberapa bagian. Paling tidak satu pegawai mendapat
tugas sebuah proyek. Namun, seorang pegawai dapat libur dan tidak mendapat tugas
proyek.

Deskripsi Permasalahan :
1) Masing-masing bagian hanya mempunyai satu pengawas
2) Seorang pengawas hanya bertugas pada satu bagian
3) Masing-masing bagian memiliki paling tidak satu pegawai
4) Masing-masing pegawai bekerja paling tidak pada satu bagian
5) Masing-masing proyek dikerjakan oleh paling tidak satu pegawai
6) Seorang Pengawas bisa mendapat tugas 0 atau beberapa proyek

Langkah 1 : Menentukan Entitas Entitas yang dibutuhkan adalah bagian Pegawai,


Pengawas, dan Proyek
Langkah 2 : Menentukan Relasi dengan matriks relasi

Gambar 37. Hasil Langkah kedua

39
Langkah 3 : Menggambar ERD Sementara

Gambar 38. Hasil Langkah ketiga

Langkah 4 : Mengisi Kardinalitas

Gambar 39. Hasil Langkah keempat

Langkah 5 : Menentukan Kunci Utama Kunci Utama, Nama Bagian, Nomor Pengawas,
Nomor Pegawai, Nomor Proyek.
Langkah 6 : Menggambarkan ERD berdasarkan kunci

Karena ada dua relasi many-to-many pada ERD sementara, yaitu antara Bagian dan
Pegawai, serta Pegawai dan Proyek. Oleh karena itu dibuatkan entitas baru yaitu Bagian-
Pegawai dan Pegawai-Proyek. Kunci utama Bagian-Pegawai adalah gabungan Nama
Bagian dan Nomor Pegawai. Kunci utama Pegawai-Proyek adalah gabungan Nomor

40
Pegawai dan Nomor Proyek

Gambar 40. ERD berdasarkan Kunci

Langkah 7: Menentukan Atribut yang diperlukan

Gambar 41. Hasil Langkah ketujuh

41
Langkah 8 : Transformasi ERD ke LRS

Gambar 42. Transformasi ERD ke LRS

LRS Yang Terbemtuk :

Gambar 43. LRS yang Terbentuk

42
BAB V
TEKNIK NORMALISASI

5.1 Pengertian Normalisasi


Perancangan basis data seringkali diasosiasikan dengan pembuatan model
Entity Relationship (model ER), dimana kelompok-kelompok data dan relasi antar
kelompok data tersebut diwujudkan dalam bentuk diagram. Hal itu tidak salah, karena
model memang merupakan representasi nyata dalam sebuah perancangaa. Menurut
(Fathansyah, 2012), Normalisasi merupakan cara pendekatan lain dalam membangun
desain lojik basis data relasional yang tidak secara langsung berkaitan dengan model
data, tetapi dengan menerapkan sejumlah aturan dan kriteria standar untuk
menghasilkan struktur tabel yang normal.
Namun demikian, dalam pelaksanaannya desain lojik basis data relasional
didasari oleh transformasi secara hati-hati dari model ER ke bentuk fisik akan
menghasilkan hasil yang mirip. Menurut (Ladjamudin, 2004), menyampaikan beberapa
definisi normalisasi, sebagai berikut :
1 Normalisasi adalah suatu proses memperbaiki/membangun dengan model data
relasional, dan secara umum lebih tepat dikoneksikan dengan model data logika.
2 Normalisasi adalah proses pengelompokkan data kedalam bentuk tabel atau relasi
atau file untuk menyatakan entitas dan hubungan mereka sehingga terwujud satu
bentuk database yang mudah untuk dimodifikasi.
3 Normalisasi dapat berguna dalam menjawab 2 pertanyaan mendasar yaitu : “Apa
yang dimaksud dengan desain database logical?” dan “Apa yang dimaksud dengan
desain databse fisikal yang baik? What is a physical good logical database design?
4 Normalisasi adalah suatu proses untuk mengidentifikasi tabel kelompok atribut yang
memiliki ketergantungan yang sangat tinggi antara satu atribut dengan atribut yang
lainnya.
5 Normalisasi bias disebut juga sebagai proses pengelompokkan atribut-atribut dari
suatu relasi sehingga membnetuk WELL STRUCTURED RELATION.
6 WELL STRUCTURED RELATION adalah sebuah relasi yang jumlah kerangkapan
datanya sedikit (minimum Amount Of Redundancy), serta memberikan kemungkinan
bagi user untuk melakukan INSERT, DELETE, dan MODIFY terhadap baris-baris data
pada relation tersebut, yang tidak berakibat terjadinya ERROR atau
INKONSESTENSI DATA, yang disebabkan oleh operasi-operasi tersebut.

Keuntungan dari normalisasi, yaitu :

1 Meminimalkan ukuran penyimpanan yang diperlukan untuk menyimpan data.


2 Meminimalkan resiko inkonsistensi data pada basis data
3 Meminimalkan kemungkinan anomali pembaruan
4 Memaksimalkan stabilitas struktur data

43
5.2 Anomaly
Menurut (Ladjamudin, 2004) Anomaly merupakan penyimpangan- penyimpangan atau
error atau inkonsistensi data yang terjadi pada saat dilakukan proses insert, delete
maupun update dalam suatu basis data. Terdapat 3 jenis Anomaly (Penyimpangan),
sebagai berikut :

Insertion Anomaly
Merupakan error atau kesalahan yang terjadi sebagai akibat operasi insert record/tuple
pada sebuah relation.
Contoh :
Ada matakuliah baru (CS-600) yang akan diajarkan, maka matakuliah tersebut tidak bias
diinsert / disisipkan ke dalam relasi Matakuliah sampai ada Mahasiswa yang mengambil
matakuliah tersebut.

Deletion Anomaly
Merupakan error atau kesalahan yang terjadi sebagai akibat operasi delete record/tuple
pada sebuah relation.
Contoh :
Mahasiswa dengan NIM : 12100001 memutuskan untuk batal ikut matakulia dengan kode
CS-400, karena ia merupakan satu-satunya peserta matakuliah tersebut, maka bila
record tersebut dihapus akan berakibat hilangnya informasi matakuliah CS-400.

Update Anomaly
Merupakan error atau keslaahan yang terjadi sebagai akibat inkonsistensi data yang
terjadi sebagai akibat dari operasi update record/tuple dari sebuah relation.
Contoh :
Bila biaya kuliah untuk matakuliah CS-200 akan dinaikkan menjadi 75 menjadi 100, maka
harus dilakukan beberapa kali modifikasi terhadap record- record mahasiswa yang
mengambil matakuliah tersebut, agar data tetap konsisten.

Menurut (Ladjamudin, 2004) terdapat problem-problem pada relation yang sudah


dinormalisasi, yaitu :
▪ Performance problem, Merupakan masalah terhadap performa database.
▪ Referential Integrity Problem, Masalah yang timbul terhadap referensi antar data-data
diantara dua tabel atau lebih

5.3 Atribut dan Ketergantungan Fungsi


Beberapa konsep yang harus diketahui dalam Normalisasi, adalah : Field/ Atribut Kunci.
Key Field / atribute kunci dalam database: Super key, Candidate key, Primary key,
Alternate key, Foreign key.

1. Kebergantungan Fungsi.
▪ Ketergantungan Fungsional (Fungsional Dependent)

44
Keterkaitan antar hubungan antara 2 atribute pada sebuah relasi. Dituliskan dengan cara
:A B, yang berarti : Atribute B fungsionality Dependent terhadap atribute A atau Isi
(value) atribute A menentukan isi atribute B Definisi dari functional dependent : Diketahui
sebuah relasi R, atribute Y dari R adalah FD pada atribute X dari R ditulis R.X R.Y jika
dan hanya jika tiap harga X dalam R bersesuaian dengan tepat satu harga Y dalam R.

▪ Fully Functionaly Dependent (FFD)


Suatu rinci data dikatakan fully functional dependent pada suatu kombinasi rinci data jika
functional dependent pada kombinasi rinci data dan tidak functional dependent pada
bagian lain dari kombinasi rinci data. Definisi dari FDD: Atribute Y pada relasi R adalah
FFD pada atribute X pada relasi R jika Y FD pada X tida FD pada himpunan bagian dari
X
Contoh:

PersonID, Project, Project_budget time_spent_byperson_ onProject (bukan FFD)


PersonID, Project time_spent_byperson_onProject (FDD).

2. Kebergantungan Partial
Sebagian dari kunci dapat digunakan sebagai kunci utama:
▪ Ketergantungan Transitif, Menjadi atribute biasa pada suatu relasi tetapi menjadi
kunci pada relasi lain
▪ Determinan Suatu atribute (field) atau gabungan atribute dimana beberapa atribute
lain bergantung sepenuhnya pada atribute tersebut.

5.4 Bentuk Normalisasi


Aturan-aturan normalisasi dinyatakan dengan istilah bentuk normal. Bentuk normal
adalah suatu aturan yang dikenakan pada relasi-relasi dalam basis data dan harus
dipenuhi oleh relasi-relasi tersebut pada level-level normalisasi.
Beberapa level yang biasa digunakan pada normalisasi adalah:

1) Bentuk normal pertama (1NF)


2) Bentuk normal kedua (2NF)
3) Bentuk normal ketiga (3NF)
4) Bentuk normal Boyce-Codd (BCNF)
5) Bentuk normal keepat (4NF)
6) Bentuk Normal kelima (5NF)

BAB VI

45
TEKNIK NORMALISASI LANJUTAN

6.1 Langkah-Langkah Pembuatan Normalisasi

Gambar 44.. Langkah-langkah pembuatan normalisasi

1. Bentuk Tidak Normal (Unnormalized Form)


Bentuk tidak normal adalah bentuk tabel yang belum ternormalisasi. Tabel yang belum
ternormalisasi adalah tabel yang memiliki atribut yang berulang. Menurut (Ladjamudin,
2004), bentuk tidak normal meupakan kumpulan data yang akan direkam, tidak ada
keharusan mengikuti form tertentu, dapat saja data tidakmlengkap atau terduplikasi. Data
dikumpulkan apa adanya sesuai dengan saat menginput.

2. Bentuk Normal Pertama (First Normal Form / 1NF)


Menurut (Ladjamudin, 2004), pada tahap ini dilakukan penghilangan grup elemen yang
berulang agar menjadi satu harga tunggal yang berinteraksi diantara setiap baris pada
suatu tabel, dan setiap atribut harus mempunyai nilai data yang atomic (atomic value).
Atom adalah zat terkecil yang masih memiliki sifat induknya, bila dipecah lagi maka ia
tidak memiliki sifat induknya.
Syarat bentuk normal kesatu, antar lain:
a. Setiap data dibentuk dlaam flat file, data dibentuk dalam satu record demi satu record
nilai dari field berupa “atomic value”
b. Tidak ada set atribut yang berulang atau bernilai ganda
c. Telah ditentukannya candidate key

46
d. Tiap atribut hanya memiliki satu pengertian.

3. Bentuk Normal Kedua

Menurut (Ladjamudin, 2004), bentuk normal kedua didasari konsep full functional
dependency (ketergantungan fungsional sepenuhnya) yang dapat didefinisikan sebagai
berikut: Jika A dan B adalah atribut-atribut dari suatu relasi. B dikatakan full functional
dependency terhadap A, jika B adalah tergantung fungsional terhadap A, tetapi tidak
secara tepat memiliki ketergantungan fungsional dari subset atau himpunan bagian dari
A.
Syarat bentuk normal kedua:

a. Bentuk data telah memnuhi kriteria bentuk normal kesatu


b. Atribut bukankunci haruslah memiliki ketergantungan fungsional sepenuhnya pada
kunci utama atau primary key

4. Bentuk Normal Ketiga


Definisi bentuk normal ketiga: Suatu relasi dikatakan dalam bentuk normal ketiga (3NF)
jika memiliki syarat, sebagai berikut :
a. Berada dalam bentuk normal kedua
b. Setiap atribut bukan kunci haruslah tidak memiliki dependensi transitif
(ketergantungan transitif) terhadap kunci primer, dengan kata lain suatu atribut bukan
kunci tidak boleh memiliki ketergantungan fungsional terhadap atribut bukan kunci
lainnya, selruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan
fungsional terhadap primary key di relasi itu saja.

5. Bentuk Normal Boyce Codd (BCNF)


Definisi bentuk normal Boyce-Codd: Suatu relasi disebut memenuhi bentuk normal
Boyce-Codd jika dan hanya jika semua penentu (determinan) adalah kunci kandidat
(atribut yang bersifat unik) BCNF merupakan bentuk normal sebagai perbaikan terhadap
3NF. Suatu relasi yang memenuhi BCNF selalu memenuhi 3NF, tetapi tidak untuk
sebaliknya.

6. Bentuk Normal Keempat


Bentuk normal keempat berkaitan dengan sifat Ketergantungan Banyak-Nilai
(Multivalued Depedency) pada suatu tabel yang merupakan pengembangan dari
ketergantungan fungsional.

7. Bentuk Normal Kelima


Bentuk normal kelima merupakan nama lain dari ProjectJoin Normal Form (PNJF) yaitu
berhubungan dengan ketergantungan relasi antar tabel (Join Dependency)

6.2 Studi Kasus

47
▪ Sistem Perpustakaan

Gambar 45. Contoh Tabel Sistem Perpustakaan

Bentuk TIdak Normal

Gambar 46. Bentuk Tidak Normal

48
a. Bentuk Normal Kesatu
Gambar 6.3 Bentuk Normal Kesatu

Gambar 47. Contoh Tabel Normal Kesatu

Bentuk Normal Kedua

Gambar 48. Bentuk Normal Kedua

49
Bentuk Normal Ketiga

Gambar 49. Bentuk Normal Ketiga

▪ Sistem Pembelian

Gambar 50. Faktur Pembelian


Bentuk Tidak Normal

Gambar 51. Bentuk Tidak Normal

50
Bentuk Normal Kesatu

Gambar 52. Bentuk Normal Kesatu

Bentuk Normal Kedua

Gambar 53. Bentuk Normal Kedua

Bentuk Normal Ketiga

Gambar 54. Bentuk Normal Ketiga

51
BAB VII
BAHASA QUERY FORMAL

7.1 Pengertian Bahasa Query Formal


Menurut (Fathansyah, 2012), bahasa query merupakan bahasa yang termasuk dalam
kategori bahasa tingkat tinggi (high level language) yang digunakan user untuk
mendapatkan informasi atau data dari basis data. Bahasa query dikelompokkan menjadi
dua, yaitu :
1) Bahasa procedural
User meminta sistem untuk melakukan serangkain operasi terhadap basis data dalam
rangka mendapatkan data atau informasi yang diingunkan.
2) Bahasa non procedural
User menunjukkan data atau informasi yang diinginkan tanpa menyatakan suatu cara
atau prosedur tertentu untuk memperoleh data atau informasi tersebut.

Menurut (Ladjamudin, 2004) dalam bahasa Query Formal, ada dua dasar pembentukan
bahasa Query, yaitu:
▪ Aljabar Relasional
Merupakan salah satu bahasa manipulasi untuk database relasional. Aljabar relasional
merupakan kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu
atau lebih relasi untuk menghasilkan satu relasi yang baru. Aljabar relasional termasuk
dalam kategori bahasa procedural yang menyediakan seperangkat operasi untuk
memanipulasi data.

▪ Kalkulus Relasional
Merupakan bahasa manipulasi teoritis yang non procedural. Artinya bahasa ini
mengekspresikan “what to do or what characteristics are required”dan tidak
mengekspresikan “how to do it” seperti pada bahasa query procedural. Kalkulus relasional
dilandasi dengan teori predicate calculus yang menggunakan fungsi sebagai suatu
ekspresi logic. Predikat adalah suatu fungsi yang dapat mengambil nilai benar atau salah
tergantung dari subsitusi nilai argument dari fungsi tersebut. Jadi, bila semua argument
dari sebuah fungsi disubsitusi dengan suatu nilai, maka fungsi tersebut menjadi suatu
ekspresi yang disebut preposisi, yaitu suatu ekspresi yang hanya berniali benar atau
salah.

7.2 Operator Aljabar Relational


Operator pada aljabar relational dibagi menjadi 2 kelompok:
a) Operator dasar untuk fundamental operational
Operator dasar terdiri dari : selection, projection, cartesian product, set difference dan
union.
b) Operator tambahan untuk additional operasional
Operator tambahan terdiri dari setvintersection, theta join, natural join dan division.

52
Contoh :

Tabel dibawah ini adalah contoh untuk mengerjakan perintah-perintah Aljabar relasional:
Relasi MATAKULIAH
Tabel 5. Contoh Relasi Matakuliah

Relasi MAHASISWA
Tabel 6. Contoh Relasi Mahasiswa

Relasi REGISTRASI
Tabel 7. Contoh Relasi Registrasi

Relasi DOSEN
Tabel 8. Contoh Relasi Matakuliah

53
Operator Dasar
▪ Selection ( σ ) Lower Case Omega
Operasi selection menyeleksi tupel-tupel pada sebuah relation yang memenuhi
predicate/syarat yang sudah ditentukan.
Sintaks : σ predicate/syarat (tabel) ;
Contoh :
Mencari tuple-tuple dari MAHASISWA yang memiliki jenis kelamin laki-laki
Query : σ J_KEL=“LAKI-LAKI” (MAHASISWA);

Hasil query diatas sebagai berikut :

Tabel 9. Contoh Tuple Mahasiswa

NIM NAMA_MHS ALAMAT J_KEL


1105090222 HAFIDZ DEPOK LAKI-LAKI

1105091002 RAFFA DEPOK LAKI-LAKI

1104030885 ARIF P.LABU LAKI-LAKI

1205097589 ARIS DEPOK LAKI-LAKI

110709 BAMBANG SALEMBA LAKI-LAKI

Tampilkan data mata kuliah yang memiliki kode 360 atau yang memilki sks 4.
Query : σ KD_MK=“360” V SKS=4 (MATAKULIAH);

Hasil query diatas sebagai berikut :

Tabel 10. Contoh Hasil Query

KD_MK NAMA_MK SKS NIP


207 LOGIKA&ALGO 4 199910486

360 SISTEM BASIS3 200209817


DATA
547 APSI 4 200109601

305 PEMR. PASCAL 2 200703073

54
▪ Projection ( π )
Operator projection beroperasi pada sebuah relation, yaitu membentuk relation baru
dengan mengcopy atribute-atribute dan domain-domain dari relation tersebut
berdasarkan argumen-argumen pada operator tersebut.
Sintask : π A1,A2,A3…..An (nama tabel); dimana a adalah Atribut.
Contoh : Tampilkan nama beserta gaji dari dosen
Query : π nama_dos,gaji (DOSEN); Hasil dari query diatas adalah :

Tabel 11. Contoh Tabel Nama_Gaji

NAMA_DOS GAJI
BILLY 3500000
MARDIANA 4000000
INDIYANI 4500000
SURYANI 4250000
DWINITA 3500000
MALAU 2750000
IRGIANI 3500000

▪ Cartesian product ( X )
Operator dengan dua relasi untuk menghasilkan tabel hasil perkalian kartesian. Operator
ini merupaka binary operation yaitu operator yang beroperasi pada dua relasi. Operator
Cartesian product menggunakan symbol X.
Sintaks : R1 X R2, dimana R adalah relasi.

Operator Cartesian product akan merangkaikan setiap tuple dari R1 dan setiap tuple dari
R2, sehingga jika R1 terdiri dari n tuple dan R2 terdiri dari m tuple, maka hasil relasi R =
R1 X R2 akan terdiri dari mn tuple.
Sebagai ilustrasi :

Misal diatas, ibu ada dua himpunan yaitu A dan B, hasil dari Cartesian product dari AXB
adalah seperti diatas. Jadi seperti di relasikan satu-satu yaa. Misal 1 dengan 5 kemudian
7, hasilnya (1,5) dan (1,7), begitupun untuk 2 dan 3. Jika ini diterapkan dengan table,
maka operasi perhitungannya akan sama.

55
Contoh :

Hasil Cartesian Product antara Tabel Mahasiswa dengan Tabel Registrasi (Mahasiswa X
Registrasi);

Tabel 12. Contoh Tabel Relasi Mahasiswa

Tabel 13. Contoh Tabel Registrasi

(MAHASISWA X REGISTRASI)

Tabel 14. Contoh Tabel Relasi Mahasiswa XRegistrasi

NIM NAMA_MHS ALAMAT J_KEL KD_MK NIM


1105090222 HAFIDZ DEPOK LAKI-LAKI 360 1105090222
1105090222 HAFIDZ DEPOK LAKI-LAKI 545 1206090501
1105090222 HAFIDZ DEPOK LAKI-LAKI 547 1105095000
1105091002 RAFFA DEPOK LAKI-LAKI 360 1105090222
1105091002 RAFFA DEPOK LAKI-LAKI 545 1206090501
1105091002 RAFFA DEPOK LAKI-LAKI 547 1105095000
1105095000 NAIA DEPOK PEREMPUAN 360 1105090222
1105095000 NAIA DEPOK PEREMPUAN 545 1206090501
1105095000 NAIA DEPOK PEREMPUAN 547 1105095000
1104030885 ARIF P.LABU LAKI-LAKI 360 1105090222
1104030885 ARIF P.LABU LAKI-LAKI 545 1206090501
1104030885 ARIF P.LABU LAKI-LAKI 547 1105095000
1206090501 LENI KP MELAYU PEREMPUAN 360 1105090222
1206090501 LENI KP MELAYU PEREMPUAN 545 1206090501
1206090501 LENI KP MELAYU PEREMPUAN 547 1105095000

56
1206090582 WAHYUNI TANGERANG PEREMPUAN 360 1105090222
1206090582 WAHYUNI TANGERANG PEREMPUAN 545 1206090501
1206090582 WAHYUNI TANGERANG PEREMPUAN 547 1105095000
1205097589 ARIS DEPOK LAKI-LAKI 360 1105090222
1205097589 ARIS DEPOK LAKI-LAKI 545 1206090501
1205097589 ARIS DEPOK LAKI-LAKI 547 1105095000
1106094586 YANI CILEDUG PEREMPUAN 360 1105090222
1106094586 YANI CILEDUG PEREMPUAN 545 1206090501
1106094586 YANI CILEDUG PEREMPUAN 547 1105095000
110709 BAMBANG SALEMBA LAKI-LAKI 360 1105090222
110709 BAMBANG SALEMBA LAKI-LAKI 545 1206090501
110709 BAMBANG SALEMBA LAKI-LAKI 547 1105095000

Tampilkan NAMA_MHS (dari Tabel Mahasiswa), KD_MK(dari Tabel Registrasi) dimana


Alamat = “DEPOK” atau J_KEL=”LAKI- LAKI”
Maka query nya adalah :

Π NAMA_MHS, KD_MK ( σ ALAMAT = “DEPOK” ٧ J_KEL = “LAKI-LAKI” ٨


MAHASISWA.NIM = REGISTRASI.NIM)
(MAHASISWA X REGISTRASI)

Hasil Query diatas adalah :

Kita cari terlebih dahulu, NIM yang sama antara table Mahasiswa dengan table registrasi,
hasilnya sebagai berikut :

Tabel 15. Contoh Hasil Query

NIM NAMA_MHS ALAMAT J_KEL KD_MK NIM


1105090222 HAFIDZ DEPOK LAKI-LAKI 360 1105090222
1105095000 NAIA DEPOK PEREMPUAN 547 1105095000
KMP.
1206090501 LENI PEREMPUAN 545 1206090501
MELAYU

Kemudian, baru kita tampilkan NAMA_MHS beserta KD_MK nya, yang memiliki alamat di
depok atau jenis kelaminnya Laki-laki, hasilnya sebagai berikut :

Tabel 16. Contoh Tabel Tampilan


NAMA_MHS KD_MK
HAFIDZ 360
NAIA 547

57
Union ( ∪ ) Operasi untuk menghasilkan gabungan tabel dengan

syarat kedua tabel memiliki atribut yang sama yaitu domain atribut ke-i masing-masing
tabel harus sama RUS={ X I X E R atau X E S}.
Contoh :

Sintaks yang digunakan dalam operasi union ini adalah :

R S = {x | x R atau X S}

Operasi ini dapat dilaksanakan apabila R dan S mempunyai atribut yang sama sehingga
jumlah komponennya sama. Jadi yang akan kita gabungkan dari tabel-tabel tersebut,
harus memiliki atribut yang sama dalam table tersebut.

Tabel 17. Contoh Tabel Dosen

Tabel 18. Contoh Tabel Mahasiswa

Jika dilakukan query sebagai berikut : πKOTA (Mahasiswa) ᴗ πKOTA(Dosen) Hasil dari
Query diatas adalah:

Tabel 19. Contoh Tabel Hasil Query

Set difference ( - )
Operasi untuk mendapatkan tabel disuatu relasi tapi tidak ada di relasi lainnya. Dengan
kata lain operator ini berfungsi untuk mengeliminasi entity atau record dari suatu tabel
yang ada pada tabel yang lainnya. R – S = { X I X E R dan X E S }.
Operasi ini dapat dilaksanakan apabila R dan S mempunyai atribut yang tidak sama yang
akan ditampilkan, artinya adalah atribut R yang tidak ada di S akan ditampilkan,
sedangkan atribut yang sama tidak ditampilkan.

58
Contoh :
Tabel 20. Contoh Tabel Tabel Kuliah_S1

Tabel 21. Contoh Tabel Kuliah_D3

Jika diberikan query sebagai berikut :

nama_kul (Kuliah_S1) - nama_kul (Kuliah_D3), maka hasilnya adalah :

Tabel 22. Contoh Tabel Hasil Query

Contoh lain :

Tampilkan nama dari mahasiswa yang tinggal di depok tetapi bukan berjenis kelamin
perempuan.
Query I : tampilkan nama yang tinggal di depok
πnama_mhs(σalamat=“DEPOK” (MAHASISWA)) ;
Query II : tampilkan nama yang berjenis kelamin perempuan πnama_mhs(σj_kel
=“PEREMPUAN” (MAHASISWA)) ; Tampilkan query I minus query II
: πnama_mhs(σalamat=“DEPOK”(MAHASISWA))
- πnama_mhs(σj_kel=“PEREMPUAN”
(MAHASISWA));
Operator Tambahan Relasi R1
Tabel 23. Contoh Tabel Operator Tambahan Relasi R1

59
Tabel 24. Contoh Tabel Operator Tambahan Relasi S1

Tabel 25. Contoh Tabel Operator Tambahan Relasi S2

SET INTERSECTION ( ∩ )

Operasi untuk menghasilkan irisan dua tabel dengan syarat kedua tabel memiliki atribut
yang sama, domain atribut ke-i kedua tabel tersebut sama.
Sintaks : R = R1∩ R2; dan akan menghasilkan relasi R dengan elemen yang terdapat di
R1 dan juga terdapat di R2.
Contoh : S1 ∩ S2 Hasilnya :

Tabel 26. Contoh Tabel SET INTERSECTION

No_Id Nama Rating Umur


58 Rara 10 35

THETA JOIN

Operasi yang menggabungkan operasi cartesian product dengan operasi selection


dengan suatu kriteria.
Contoh : S1 S1.No_id< R1.No_id R1
Hasilnya

Tabel 27. Contoh Tabel THETA JOIN

NATURAL JOIN

Operasi menggabungkan operasi selection dan cartesian product dengan suatu kriteria
pada kolom yang sama.

60
Contoh : S1 θ No_id R1

Tabel 28. Contoh Tabel hasil NATURAL JOIN

DIVISION

Merupakan operasi pembagian atas tuple-tuple dari 2 relation.

Tabel 29. Contoh Tabel DIVISION

61
BAB VIII
BAHASA QUERY TERAPAN

8.1 Structured Query Language (SQL)


Pengenalan SQL

Bahasa Query Formal yang sudah kita bahas sebelumnya, menjadi dasar dalam
pembentukan bahasa query terapan. Dengan bahasa query formal itulah, algoritma dan
sintaks dari ekspresi-ekspresi dalam bahasa query terapan disusun. Penguasaan
terhadap bahasa query formal akan sanagat memudahkan kita dalam mempelajari dan
menguasai pemakaian bahasa query terapan.
Bahasa query yang paling popular tentu saja adalah SQL (Sturctured Query
Language), karena bahasa ini diakomodasi oleh hampir semua DBMS. Menurut
(Fathansyah, 2012) menyampaikan bahwa SQL merupakan bahasa query yang paling
banyak digunakan oleh DBMS dan diterapkan dalam berbagai development tools dan
program aplikasi ketika berinteraksi dengan Basis Data. Bahasa ini dibangun dengan
dasar Aljabar Relational dan sedikit Kalkulus Relational.
Menurut (Indrajani, 2009), SQL mudah dipelajari karena merupakan bahasa non
procedural, cukup menspesifikasikan informasi apa yang dibutuhkan daripada
bagaimana mendapatkannya.
1. SQL Sebagai Subbahasa

Menurut (Ladjamudin, 2004), Penyebuatan SQL sebagai bahasa query


sebenarnya tidak tepat sebab kemampuan SQL tidak terbatas hanya untuk query
(memperoleh data), tetapi juga mencakup kemampuan seperti : pendefinisian struktur
data, pebgubahan data, pengaturan sekuritasn, dan lain-lain. Terkadang SQL dikatakan
sebagai subbahasa data. Adapun alas an SQL dikatanakn sebagai subbahasa data adalah
karena SQL tidak mendukung persyaratan bahasa yang lengkap, sekalipun SQL dipakai
untuk mengakses basis data. SQL tidak menyediakan hal-hal seperti : pernyataan
pengujian kondisi dan pernyataan pengulangan atau iterasi.
Subdivisi SQL:

a. Data Definition Language (DDL)


Query-query ini digunakan untuk mendefinisikan struktur atau skema basis data.
b. Data Manipulation Language (DML)
Query-query ini digunakan untuk manajemen data dalam basis data.

2. Pengelompokkan SQL
a. Data Definition Language (DDL
Menurut (Ladjamudin, 2004), DDL merupakan kelompok perintah yang berfungsi untuk
mendefinisikan atribut-atribut basis data, tabel, atribut (kolom), batasan-batasan terhadap
suatu atribut, serta hubungan antar tabel. Yang termasuk dalam kelompok DDL ini adalah
CREATE, ALTER dan DROP.
CREATE

62
Pembuatan Database

Sintaks : CREATE DATABASE nama_database

Nama Database adalah yang dapat mewakili suatu kejadian dapat berupa nama
organisasi atau perusahaan.
Contoh : Buat database dengan nama KAMPUS Query :
CREATE DATABASE KAMPUS

Pembuatan Tabel

Sintaks : CREATE TABLE nama_table ( nama_kolom1


tipe_data_kolom1, nama_kolom2 tipe_data_kolom2,….) Keterangan :
a. Nama tabel merupakan nama tabel yang baru, panjangnya tidak dapat lebih dari 8
karakter, tidak memakai spasi, berisi huruf maupun angka.
b. Nama Kolom adalah nama untuk kolom yang baru, panjangnya tidak dapat lebih dari
10 karakter, tidak memiliki spasi, berisi huruf dan angka.
c. Tipe Data adalah jenis data yang nilainya akan dimasukkan dalam kolom yang telah
ditentukan.

Contoh :
i. Char (n) : karakter string sebanyak N karakter, max 254 char, dan isinya ditulis
dengan tanda (‘) atau (“)
ii. Integer, digunakan untuk bilangan bulat sebanyak 11 digit
iii. Small int, untuk bilangan angka sebanyak 6 digit
iv. Decimal(p,q), untuk bilnagan angka sebanyak p digit dengan tempat desimal q
v. Float(x,y), untuk bilangan angka (floating point sebanyak x digit dengan y digit dari
tidak desimal)

Sebagai tambahan, setiap kolom pada pendefinisian tabel dapat dilengkapi dengan
UNIQUE, NULL, NOT NULL dan NOT UNIQUE.
NULL, menyatakan bahwa nilai kolom bisa tidak diisi (default)
NOT NULL, menyatakan bahwa nilai kolom harus diisi
UNIQUE, menyatakan bahwa nilai pada kolom tidak boleh ada yang sama
NOT UNIQUE, menyatakan bahwa nilai pada kolom boleh kembar

Contoh : Buat struktur tabel dengan nama tabel Mahasiswa dengan data NIM char(8),
NAMA char(25), ALAMAT char(30) Query : CREATE TABLE Mahasiswa (NIM
char(8) not null, NAMA char(25) notnull, ALAMAT char(30) notnull)
Perintah ini maksudnya adalah membuat tabel Mahasiswa dimana NIM wajib diisi, NAMA
wajib diisi, ALAMAT wajib diisi.

Pembuatan Index
Indeks biasa diciptakan dengan tujuan sebagai berikut :
o Indeks dapat meningkatkan kinerja

63
o Indeks menjamin bahwa suatu kolom bersifat unik.

Dengan adanya indeks, maka pencarian suatu data yang berdasarkan kolom yang
diindeks akan dapat dilakukan dengan cepat. Namun kelebihan ini tentu saja juga dibayar
dengan suatu kelemahan. Pengindeksan memperlambat proses penambahan dan
penghapusan baris pada tabel, karena saat terjadi penambahan atau penghapusan baris,
indeks perlu diperbaharui.
Sintaks : CREATE [UNIQUE] INDEX nama_index ON
nama_table (nama_kolom) ;
Keterangan :

(1) Unique adalah pilihan perincian yang dapat digunakan untuk menguatkan nilai data
didalam kolom nama index menjadi unik.
(2) Nama_index adalah nama index yang akan diciptakan
(3) Nama_Tabel adalah nama tabel yang berisi kolom index akan dibuat (nama tabel
yang akan mengindeks)
(4) Nama_kolom (asc atau dec) adalah nama dari kolom tempat index akan
dibuat.(nama kolom untuk mengindeks)

Contoh: Buat index data Mahasiswa berdasarkan NIM dengan nama MHSIDX
Dimana NIM tidak boleh sama
Query : CREATE UNIQUE INDEX MHSIDX ON

Mahasiswa(NIM)

Pembuatan View
Pembuatan View lebih bersifat memanipulasi data daripada pernyataan definisi data,
harus menggunakan SELECT untuk mengerjakan perintah ini.
Sintaks : CREATE VIEW nama_view [ (nama_kolom1,….) ] AS SELECT statement [WITH
CHECK OPTION] ;
Keterangan :
▪ nama_view harus dimulai dengan huruf, bilangan, dan garis bawah, panjangnya
harus kurang dari 9 huruf
▪ Nama_kolom merupakan sebuah nama kolom optimal yang harus diberikan kepada
satu kolom view.
▪ Pernyataan SELECT, berupa pernyataan select apa saja kecuali bahwa :
a) Pernyataan tersebut tidak boleh berisi sebuah klause UNION
b) Tidak boleh berisi klausa ORDER BY
c) Tidak boleh berisi klausa SAVE TO TEMP

[With Check Option] adalah klausa optimal yang menyebabkan semua update dan
penyisipan ke view akan diperiksa untuk mengetahui apakah semua itu memenuhi
definisi view.
Contoh : Buat view dengan nama MHSVIEW yang berisi semua data mahasiswa
Query : CREATE VIEW MHSVIEW AS SELECT * FROM

64
Mahasiswa

DROP
1. DROP DATABASE ( menghapus database) Sintaks:
DROP DATABASE nama_database;
Contoh : Menghapus Database KAMPUS
Query : DROP DATABASE KAMPUS;

2. DROP TABLE ( menghapus tabel) Sintaks:


DROP TABLE nama_table;

Contoh : Mengahapus Tabel MHS


Query : DROP TABLE MHS

3. DROP INDEX ( menghapus index) Sintaks:


DROP INDEX nama_index;

Contoh : Menghapus Index MHSIDX


Query : DROP INDEX MHSIDX;

4. DROP View( Menghapus View) Sintaks:


Drop View nama_view;

Contoh : Menghapus View MHSVIEW


Query : DROP VIEW MHSVIEW

Hasil dari bentuk drop tabel adalah

a) Semua record dalam tabel akan dihapus


b) Index dan view di tabel akan hilang
c) Deskripsi tabel akan hilang.

ALTER TABLE

Digunakan untuk merubah struktur dari tabel yang telah dibuat dalam database.
Perubahan struktur yang dapat dilakukan adalah menambah kolom baru, merubah nama
kolom, merubah tipe data, menambah kunci, mengahapus kolom yang ada.
Sintaks :

ALTER TABLE nama_tabel ADD nama_kolom jenis_kolom [FIRST | AFTER


nama_kolom]
CHANGE [COLUMN] oldnama newnama MODIFY nama_kolom jenis kolom, … DROP
nama_kolom
RENAME newnama_tabel Keterangan :
▪ ADD digunakan untuk menambah kolom baru Sintaks :

65
ALTER TABLE nama_tabel ADD nama_kolom jenis_kolom [FIRST | AFTER
nama_kolom];
FIRST : Penambahan kolom baru diletakkan pada urutan kolom
pertama
AFTER : Penambahan kolom baru diletakkan setelah kolom
yang ditunjuk
Jika ingin menambah kolom Primary Key maka Sintaksnya : ALTER TABLE nama_tabel
ADD PRIMARY KEY nama_kolom;

▪ CHANGE digunakan untuk merubah nama kolom Sintaks :


ALTER TABLE nama_tabel CHANGE [COLUMN] oldnama newnama ;

▪ MODIFY digunakan untuk merubah tipe data kolom Sintaks :


ALTER TABLE nama_tabel MODIFY nama_kolom jenis kolom ;

▪ DROP digunakan untuk menghapus nama kolom Sintaks :


ALTER TABLE DROP nama_kolom ;

▪ RENAME digunakan untuk mengganti nama tabel.


Sintaks :

ALTER TABLE newnama_tabel; Contoh :


a. Tambahkan kolom JKEL dengan panjang 1 char pada tabel Mahasiswa
Query : ALTER TABLE Mahasiswa ADD JKEL char(1);
b. Ubah panjang kolom JKEL menjadi 15 char
Query : ALTER TABLE Mahasiswa MODIFY COLUMN JKEL char(15);
c. Hapus kolom JKEL dari data table MHS
Query : ALTER TABLE Mahasiswa DROP JKEL;

8.2 Data Manipulation Language (DML)


Menurut (Ladjamudin, 2004), DML adalah kelompok perintah yang berfungsi untuk
memanipulasi data dalam basis data, misalnya untuk pengambilan, penyisipan,
pengubahan dan penghapusan. Yang termasuk dalam kelompok DML adalah SELECT
(memilih data), INSERT (menambah data), DELETE (menghapus data) dan UPDATE
(menguah data)

INSERT
Digunakan untuk penambahan record baru kedalam sebuah tabel. Sintaks: INSERT
INTO Nama_tabel [(nama_kolom1,…)] values (nilai atribut1, …)
Contoh: Masukan data Mahasiswa dengan Nim 10296832, Nama Nurhayati beralamat di
Jakarta
Query : INSERT INTO Mahasiswa (Nim, Nama, Alamat) values
(“10296832”,”Nurhayati”,“Jakarta”);

DELETE

66
Digunakan untuk menghapus record dari sebuah tabel. Sintaks: DELETE FROM
nama_table WHERE kondisi Keterangan :

nama_tabel : nama tabel yang baris2 nya ingin dihapus


WHERE, klausa yang menentukan baris2 yang akan dihapus Contoh: Hapus data
Mahasiswa yang mempunyai NIM “21198002” Query : DELETE FROM Mahasiswa
WHERE NIM=” 21198002”

UPDATE
Digunakan untuk mengubah nilai atribut pada suatu record dari sebuah tabel.
Sintaks:
UPDATE nama_tabel SET nama_kolom = value_1 WHERE kondisi ; Keterangan :
nama_tabel adalah nama tabel yang akan di update
SET untuk menentukan kolom yang akan diubah dan nilai penggantinya
WHERE kondisi adalah klausa yang menetapkan baris2 yang akan di update
Contoh: Ubah alamat menjadi “Depok” untuk mahasiswa yang memiliki NIM “10296832”
Query : UPDATE Mahasiswa SET ALAMAT=”Depok” WHERE NIM=” 10296832”;

SELECT
Digunakan untuk menampilkan isi tabel.
Sintaks: SELECT [DISTINCT | ALL] nama_kolom FROM nama_tabel [ WHERE condition
] [ GROUP BY column_list ] [HAVING condition
] [ ORDER BY column_list [ASC | DESC]] Keterangan :
SELECT, memilih data yang akan ditampilkan berdasarkan atribut
DISTINCT, menghilangkan duplikasi
FROM, mendefinisikan tabel yang akan digunakan dalam query
WHERE, menentukan syarat yang akan dipilih
GROUP BY, mengelompokkan data yang mempunyai nilai sama
HAVING, syarat data yang dikelompokkan digunakan bersama GROUP BY
ORDER BY, mengurutkan data Contoh :

67
Gambar 55. Contoh Tabel Mahasiswa, Tabel Nilai. Tabel Matakuliah

Tampilkan semua data Mahasiswa


Query : SELECT NIM,NAMA,ALAMAT FROM Mahasiswa;
Atau SELECT * FROM Mahasiswa;
Hasilnya :

Tabel 30. Contoh Hasil Query

Tampilkan Mata Kuliah yang SKS nya 2

Query : SELECT NAMA_MK FROM MataKuliah WHERE SKS=2


Hasilnya :

Tabel 31. Contoh Hasil Query

68
Tampilkan semua data nilai dimana nilai MID lebih besar sama dengan 60 atau nilai
finalnya lebih besar 75.
Query : SELECT * FROM Nilai WHERE MID >= 60 OR FINAL > 75
Hasilnya :
Tabel 32. Contoh Hasil Query

Menampilkan NIM beserta NAMA yang diuruttkan berdasarkan NAMA


Query : SELECT NIM, NAMA FROM Mahasiswa ORDER BY NAMA;
Hasilnya:
Tabel 33. Contoh Hasil Query

NIM NAMA

10296126 Astuti

31296500 Budi

10296001 Fintri

21198002 Julizar

10296832 Nurhayati

50096487 Pipit

41296525 Prananigrum

21196353 Quraish

Mengelompokkan Alamat Mahasiswa


Query : SELECT ALAMAT FROM Mahasiswa GROUP BY ALAMAT;
Hasilnya :
Tabel 34. Contoh Hasil Query

69
ALAMAT

Bekasi

Bogor

Depok

Jakarta

Query : SELECT NAMA, ALAMAT FROM Mahasiswa GROUP BY ALAMAT HAVING


COUNT (ALAMAT ) > 1; Klausa HAVING disediakan untuk mendukung klausa GROUP
BY. Kegunaannya adalah untuk menentukan kondisi bagi GROUP BY. Kelompok yang
memenuhi kondisi HAVING saja yang akan dihasilkan. Perintah dengan HAVING diatas
hanya akan menghasilkan baris untuk ALAMAT yang NAMA mahasiswa lebih dari satu.
Hasilnya :

Tabel 35. Contoh Hasil Query

ALAMAT

Bogor

Depok

Jakarta

8.3 Data Access (Data Control Language / DCL)


Menurut (Ladjamudin, 2004), DCL berisi perintah-perintah untuk mengendalikan
pengaksesan data. Pengendalian dapat dilakukan per tabel, per kolom maupun per
operasi. Yang termasuk dalam kelompok DCL atau Data Access adalah GRANT
(memberi kendali pengaksesan data) dan REVOKE (mencabut kemampuan
pengaksesan data)

GRANT
Digunakan untuk memberikan hak akses.
Sintaks :

GRANT hak_akses ON nama_db TO nama_pemakai [IDENTIFIED BY] [PASSWORD]


‘Password’ [WITH GRANT OPTION]; atau

70
GRANT hak_akses ON [nama_db]nama_tabel TO nama_pemakai [IDENTIFIED BY]
[PASSWORD] ‘Password’ [WITH GRANT OPTION];
Contoh: Berikan hak akses kepada Adi untuk menampikan nilai final test pada tabel Nilai.
Query : GRANT SELECT (FINAL) ON NILAI TO ADI;

REVOKE
Digunakan untuk mencabut kembali hak akses yang sudah diberikan. Sintaks :
REVOKE hak_akses ON nama_db FROM nama_pemakai ; atau REVOKE hak_akses
ON nama_tabel FROM nama_pemakai ;
Contoh: Tarik kembali dari Adi hak akses untuk menampilkan nilai final test
Query : REVOKE SELECT (FINAL) ON NILAI FROM ADI;

Data Integrity
Data Integrity merupakan perintah yang digunakan untuk mengembalikan data sebelum
terjadi kerusakan.Yang termasuk di dalam kelompok Data Integrity adalah RECOVER
TABLE.
Sintaks :
RECOVER TABLE nama_tabel;

Contoh : Kembalikan keadaan data mahasiswa seperti pada saat sebelum terjadi
kerusakan
Query : RECOVER TABLE MHS ;

Data Auxiliary
Data Auxiliary merupakan perintah yang digunakan untuk mengubah data maupun kolom
pada tabel. Yang termasuk dalam kelompok Data auxiliary adalah SELECT INTO
OUTFILE, LOAD, RENAME TABLE

SELECT … INTO OUTFILE ‘filename’


Digunakan untuk mengekspor data dari tabel ke file lain. Sintaks :
SELECT … INTO OUTFILE ‘Nama File’ [FIELDS | COLUMNS] [TERMINATED BY
'string'] [[OPTIONALLY] ENCLOSED BY
'char'] [ESCAPED BY 'char'] ] ;

Contoh: Ubah semua data mahasiswa ke bentuk ASCII dan disimpan ke file teks di
directory/home/adi dengan pemisah antar kolom ‘|’
Query : SELECT * FROM MHS INTO OUTFILE “/home/adi/teks” FIELDS TERMINATED
BY “|”;

LOAD
Digunakan untuk mengimpor data dari file lain ke tabel. Sintaks :
LOAD DATA INFILE “ nama_path” INTO TABLE nama_tabel [ nama_kolom] ; [FIELDS |
COLUMNS] [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char'] ];
Contoh: Memasukkan data-data dari file teks yang berada pada direktori “/home/adi” ke

71
dalam tabel MHS_2. Dimana pemisah antara kolom dalam file teks adalah tab (\t) :
Query : LOAD FROM “/home/adi/teks” INTO MHS_2 FILELDS TERMINATED BY ‘\t’;

RENAME TABLE
Digunakan untuk mengganti nama tabel. Sintaks :
RENAME TABLE OldnamaTabel TO NewNamaTabel Contoh : RENAME TABLE MHS
TO MAHASISWA

BAB IX

72
BAHASA QUERY TERAPAN LANJUTAN

9.1 Join
Menurut (Ladjamudin, 2004) menyampaikan bahwa Join merupakan operasi yang
digunakan untuk menggabungkan dua tabel atau lebih dengan hasil berupa gabungan
dari kolom-kolom yang berasal dari tabel-tabel tersebut. Contoh, diketahui ada dua tabel
yaitu Tabel Mahasiswa dan Tabel Nilai, sebagai berikut :

Gambar 56.. Tabel JOIN

Ada beberapa tipe Join, yaitu :

a. INNER JOIN
Menggabungkan dua tabel dimana diantara dua tabel datanya bersesuaian. Jika ada
Query sebagai berikut :
Nilai INNER JOIN Mahasiswa ON Nilai.NIM = Mahasiswa.NIM; Maka Hasil gabungannya
adalah :

Tabel 36. INNER JOIN

NIM KD_MK MID FINAL NIM NAMA ALAMAT

10296832 KK021 60 75 10296832 Nurhayati Jakarta

10296126 KD132 70 90 10296126 Astuti Jakarta

31296500 KK021 55 40 31296500 Budi Depok

41296525 KU122 90 80 41296525 Prananigrum Bogor

21196353 KU122 75 75 21196353 Quraish Bogor

50096487 KD132 80 0 50096487 Pipit Bekasi

Kemudian jika diberikan query sebagai berikut:

73
SELECT Nilai.NIM, Mahasiswa.NAMA, Nilai.KD_MK, Nilai.MID FROM Nilai INNER JOIN
Mahasiswa ON Nilai.NIM = Mahasiswa.NIM; Maka Hasilnya adalah :
LEFT JOIN atau LEFT OUTER JOIN

Menggabungkan dua tabel dimana diantara dua tabel datanya bersesuaian dan juga
semua record pada tabel sebelah kiri.

Tabel 37. LEFT JOIN

Contoh : Jika ada query sebagai berikut :


Mahasiswa LEFT OUTER JOIN Nilai ON Nilai.NIM = Mahasiswa.NIM Maka Hasil
gabungannya adalah sebagai berikut :

Tabel 38. LEFT OUTER JOIN

NIM NAMA ALAMAT NIM KD_MK MID FINAL

10296832 Nurhayati Jakarta 10296832 KK021 60 75

10296126 Astuti Jakarta 10296126 KD132 70 90

31296500 Budi Depok 31296500 KK021 55 40

41296525 Prananigrum Bogor 41296525 KU122 90 80

50096487 Pipit Bekasi 50096487 KD132 80 0

21196353 Quraish Bogor 21196353 KU122 75 75

10296001 Fintri Depok NULL NULL NULL NULL

21198002 Julizar Jakarta NULL NULL NULL NULL

74
Kemudian jika diberikan query sebagai berikut :
SELECT Mahasiswa.NIM, Mahasiswa.NAMA, Nilai.KD_MK, Nilai.MID FROM Mahasiswa
LEFT OUTER JOIN Nilai ON Nilai.NIM = Mahasiswa.NIM; Maka Hasilnya

Tabel 39.Hasil LEFT OUTER JOIN


:
NIM NAMA KD_MK MID

10296832 Nurhayati KK021 60

10296126 Astuti KD132 70

31296500 Budi KK021 55

41296525 Prananigrum KU122 90

50096487 Pipit KD132 80

21196353 Quraish KU122 75

10296001 Fintri NULL NULL

21198002 Julizar NULL NULL

RIGHT JOIN atau RIGHT OUTER JOIN

Menggabungkan dua tabel dimana diantara dua tabel datanya bersesuaian dan juga
semua record pada tabel sebelah kanan.
Contoh, jika ada query seperti dibawah ini :

Nilai RIGHT OUTER JOIN Mahasiswa ON Nilai.NIM = Mahasiswa.NIM; Maka Hasilnya :

Tabel 40.Hasil RIGHT OUTER JOIN

NIM KD_MK MID FINAL NIM NAMA ALAMAT


10296832 KK021 60 75 10296832 Nurhayati Jakarta
10296126 KD132 70 90 10296126 Astuti Jakarta
31296500 KK021 55 40 31296500 Budi Depok
41296525 KU122 90 80 41296525 Prananigru Bogor
m

75
50096487 KD132 80 0 50096487 Pipit Bekasi
21196353 KU122 75 75 21196353 Quraish Bogor
NULL NULL NULL NULL 10296001 Fintri Depok
NULL NULL NULL NULL 21198002 Julizar Jakarta

Kenudian, jika diberikan query sebagai berikut :

SELECT Mahasiswa.NIM, Mahasiswa.NAMA, Nilai.KD_MK, Nilai.MID FROM Nilai


RIGHT OUTER JOIN Mahasiswa ON Nilai.NIM = Mahasiswa.NIM;
Maka Hasilnya :
Tabel 41.Hasil RIGHT OUTER JOIN

NIM NAMA KD_MK MID


10296832 Nurhayati KK021 60
10296126 Astuti KD132 70
31296500 Budi KK021 55
41296525 Prananigrum KU122 90
50096487 Pipit KD132 80
21196353 Quraish KU122 75
10296001 Fintri NULL NULL
21198002 Julizar NULL NULL

9.2 Fungsi Agregat

Disamping menampilkan nilai-nilai atribut yang ada didalam tabel, sering pula ada
kebutuhan untuk menampilkan data-data agregasi, seperti banyaknya record, total nilai
suatu atribut, rata-rata nilai atribut, nilai atribut terbesar atupun nilai atribut terkecil. Berikut
yang termasuk fungsi agregasi :

COUNT
Digunakan untuk menghitung jumlah atau untuk mendapatkan nilai banyaknya record
hasil query.

76
Contoh : Menghitung jumlah record mahasiswa dari tabel.

Gambar 57. Contoh Record Mahasiswa

Query : SELECT COUNT(*) FROM MAHASISWA;

Hasilnya: 8

SUM
Digunakan untuk menghitung total dari kolom yang mempunyai tipe data numerik.
Contoh : Menghitung total sks dari tabel MATAKULIAH.

Gambar 58. Contoh Query Record Mahasiswa

Query : SELECT SUM(SKS) AS ‘TOTAL SKS’ FROM


MATAKULIAH;
Hasilnya ;
Total SKS

Gambar 59. Contoh Query SUM

AVG
Digunakan untuk menghitung rata-rata dari datadata dalam sebuah kolom.
Contoh : Menghitung Nilai Rata-rata Nilai Final dari Tabel Nilai

77
Gambar 60. Contoh Tabel Query AVG

Query : SELECT AVG(FINAL) AS ‘FINAL’ FROM Nilai;


Hasilnya :

FINAL

60

Gambar 61. Contoh Query AVG

MIN
Digunakan untuk menghitung nilai minimal dalam sebuah kolom. Contoh : Menghitung
Minimal Nilai Final dari Tabel Nilai Query : SELECT MIN(FINAL) FROM Nilai;
Hasilnya :
FINAL

Gambar 62. Contoh Query MIN

MAX
Digunakan untuk menghitung nilai maksimum dalam sebuah kolom Contoh :
Menghitung maksimal nilai MID dari tabel Nilai Query : SELECT MAX(MID) FROM Nilai;
Hasilnya :
MID

90

Gambar 63. Contoh Query MAX

78
9.3 SubQuery
Pengenalan Subquery
Menurut (Ladjamudin, 2004), subquery berarti query didalam query. Dengan menggunakan
subquery, maka hasil dari query akan menjadi bagian dari query diatasnya. Subquery
terletak didalam klausa WHERE atau HAVING. Pada klausa WHERE, subquery
digunakan untuk memilih baris-baris tertentu, yang kemudian digunakan untuk query.
Sedangkan pada klausa HAVING, subquery digunakan untuk memilih kelompok baris,
yang kemudian digunakan oleh query.

Tabel 42. Contoh Tabel Pengarang

KD_PENG NAMA KOTA


P01 Ashadi Yogyakarta
P02 Rian Yogyakarta
P03 Suadi Marwan Bandung
P04 Siti Halimah Solo
P05 Amir Hamzah Kudus
P06 Suparman Jakarta
P07 Jaja Bandung
P08 Sama Bogor

Tabel 43. Contoh Tabel Buku

KD_BUKU JUDUL KD_PENG


B01 Pengantar BasisP02
Data
B02 Pemrograman C++ P01
B03 Sistem Pakar P03
B04 Visual C++ P05
B05 Pemrograman P01
Pascal
B06 Pemrograman P07
Delphi

79
Sebagai contoh, diinginkan untuk menampilkan daftar kode pengarang dan nama
pengarang (berdasarkan tabel Pengarang) yang kode pengarangnya tercantum pada
tabel Buku. Maka query nya :
SELECT KD_PENG, NAMA FROM Pengarang WHERE KD_PENG IN (SELECT
KD_PENG FROM BUKU);
Pada query diatas, SELECT KD_PENG FROM BUKU disebut dengan subquery,
sedangkan SELECT KD_PENG, NAMA berkedudukan sebagai query. Hasil dari query
diatas :
Tabel 44. Contoh Tabel Query

KD_PENG NAMA
P01 Ashadi
P02 Rian
P03 Suadi Marwan
P05 Amir Hamzah
P07 Jaja

Aturan Membuat Subquery


Aturan-aturan untuk membuat subquery, yaitu
• Klausa Order By tidak boleh digunakan di subquery, Order By hanya dapat
digunakan di pernyataan Select luar.
• Klausa subquery Select harus berisi satu nama kolom tunggal atau ekspresi
kecuali untuk subquery-subquery menggunakan kata kunci EXIST

Secara default nama kolom di subquery mengacu ke nama tabel di klausa FROM dari
subquery tersebut. Saat subquery adalah salah satu dua operan dilibatkan di
pembandingan, subquery harus muncul di sisi kanan pembandingan.
Penggunaan ANY dan ALL
Digunakan berkaitan dengan subquery. Jika subquery diawali kata kunci ANY, syaratnya
akan bernilai TRUE jika dipenuhi sedikitnya satu nilai yang dihasilkan subquery tersebut
atau dapat pula dikatakan menghasilkan TRUE kalau paling tidak salah satu
perbandingan dengan hasil subquery menghasilkan nilai TRUE.
Contoh :

Menampilkan semua nim yang nilai mid nya bukan yang terkecil

SELECT nim FROM Nilai WHERE MID > ANY ( SELECT MID FROM Nilai);

Sedangkan jika subquery diawali kata kunci ALL, maka syarat hanya akan bernilai TRUE
jika dipenuhi semua nilai yang dihasilkan subquery itu.

80
Contoh :

SELECT NIM FROM Nilai WHERE MID >= ALL (SELECT MID FROM Nilai);

Penggunaan EXIST dan NOT EXIST EXIST


EXIST akan mengirim nilai TRUE jika dan hanya jika terdapat sedikitnya satu baris di
tabel hasil yang dikirim oleh subquery dan EXIST mengirim nilai FALSE jika subquery
mengirim tabel kosong. Untuk NOT EXIST kebalikan dari EXIST.
Contoh :

SELECT NIM, NAMA FROM Mahasiswa WHERE EXISTS (SELECT * FROM Nilai
WHERE NIM=Nilai.NIM);
Contoh Subquery
Ambil nilai mid dan final dari mahasiswa yang bernama Astuti.

SELECT MID, FINAL FROM NILAI WHERE NIM=( SELECT NIM FROM MAHASISWA
WHERE NAMA=‘Astuti’)
• Ambil nilai kode matakuliah, mid dan final dari mahasiswa yang tinggal di jakarta.
SELECT KD_MK, MID, FINAL FROM NILAI WHERE NIM IN(SELECT NIM FROM
MAHASISWA WHERE ALAMAT = ‘Jakarta’)
• Ambil nama-nama mahasiswa yang mengikuti ujian. SELECT NAMA FROM
MAHASISWA WHERE EXISTS (SELECT NIM FROM NILAI WHERE NILAI.NIM=
MAHASISWA.NIM)
• Ambil nama-nama mahasiswa yang tidak mengikuti ujian. SELECT NAMA FROM
MAHASISWA WHERE NOT EXISTS (SELECT NIM FROM NILAI WHERE NILAI.NIM=
MAHASISWA.NIM)

81
BAB X
BASIS DATA TERDISTRIBUSI

10.1 Pengertian Basis Data Terdistribusi


Tujuan utama di balik peerkembangan sistem basis data adalah suatu keinginan
untuk mengintegrasikan berbagai data-data operasional dari suatu organisasi dan
menyediakan pengaksesan data yang terkontrol. Walaupun integrasi dan pengontrolan
pengaksesan data akan mengimplikasikan suatu sentralisasi data dan sistem. Pada
kenyataannya perkembangan jaringan computer mengarah kepada model kerja yang
desentralisasi. Desentralisasi tersebut akan memperkenalkan struktur organisasi banyak
perusahaan, yang secara logis terdistribusi ke dalam divisi-divisi, departemen-
departemen, proyek-proyek, dan lain-lain, dan secara fisik terdistribusi ke dalam offices
(kantor-kantor), plants (bangunan-bangunan untuk pekerjaan produksi suatu
perusahaan), factories (pabrik-pabrik), dan lain-lain, dimana masing-masing unit akan
merancang dan membiayai pengolahan data mereka masing-masing.
Perkembangan sistem basis data terdistribusi akan merefleksikan dan
mencerminkan struktur organisasional tersebut, membuat data diseluruh unit dapat
diakses dengan baik dan menyimpan data-data penting dan sering digunakan ke tempat-
tempat yang paling sering digunakan dan mudah ditemukan, serta meningkatkan
kemampuan data untuk digunakan secara bersama-sama berikut efisiensi
pengaksesannya.
Menurut (Ladjamudin, 2004) menyampaikan bahwa Basis Data Terdistribusi yaitu
kumpulan data logic yang saling berhubungan, secara fisik trdistribusi dalam jaringan
komputer, yang tidak tergantung dari program aplikasi, dan dapat digunakan oleh banyak
aplikasi sekarang maupun pada masa yang akan datang. DBMS teristribusi adalah sistem
software yang memungkinkan ditatanya suatu basis data terdistribusi bagi setiap pemakai
(user). Menurut (Ladjamudin, 2004), DBMS terdistribusi memiliki beberapa karakteristik
antara lain:
1. Kumpulan data-data logic (yang dapat digunakan secara bersama) terdistribusi
pada beberapa unit computer yang berbeda.
2. Komputer tersebut terkoneksi ke dalam suatu jaringan komunikasi
3. Data pada masing-masing unit computer (work-station) terkontrol oleh suatu DBMS.
4. DBMS pada masing-masing bagian dapat menangani aplikasi-aplikasi local, secara
otomatis.
5. Masiing-masing DBMS berpartisipasi paling tidak pada sati aplikasi global.

10.2 Topologi Distribusi Data


Menurut (Fathansyah, 2012), sebuah sistem basis data terdistribusi hanya mungkin
dibangun dalam sebuah sistem jaringan komputer. Dalam sebuah sistem jaringan
computer kita mengenal adanya Topologi., yang akan menentukan bagaimana
konfigurasi/ keterhubungan antara satu simpul jaringan (node/site) dengan simpul- simpul
lainnya. Setiap simpul, dalam kaitannya dengan sistem basis data terdistribusi mewakili

82
sebuah server, yang memiliki disk dengna sistem data sendiri (lokal). Setiap server ini
juga membuat sebuah LAN (Local area Network) sendiri untuk mengamodasi sejumlah
workstation dan sekaligus user lokal.
Bentuk-Bentuk Topologi Terdistribusi :

a. Fully Connected Network

Gambar 64. Fully Connected Network


Keuntungan:
Kalau salah satu node rusak, yang lainnya masih dapat berjalan Kerugian : Control
manajement tidak terjamin

b. Partialy Conncted Network

Gambar 65. Partially Connected Network

Keuntungan:
Reliability rendah
Biaya dapat ditekan Kerugian : Control manajement tidak terjamin

c. Tree Structured network

Gambar 66. Tree Structured Network

83
Keuntungan:
Bersifat sentral
Control manajement terjamin Kerugian : Kalau node pusat rusak maka semua akan
rusak

d. Ring Network

Gambar 67. Ring Network

Keuntungan :
Apabila ada satu node yang rusak maka yang lain masih berjalan Kerugian :
Control manajemen kurang terjamin kearena bersifat desentralisasi.

e. Star Network

Gambar 68. Star Network


Keuntungan:
Control manajement lebih terjamin, karena bersifat sentral dan reliability rendah
Kerugian: Kalau ada node pusat rusak maka yang lainnya rusak juga.

10.3 Keuntungan dan Kerugian Basis Data Terdistribusi


Keuntungan Basis Data Terdistribusi
a. Secara alami mengikuti struktur organisasi
b. Adanya otonomi lokal
c. Sifatnya dapat dipakai secara bersama
d. Peningkatan ketersediaan
e. Peningkatan kehandalan
f. Peningkatan kinerja
g. Ekonomis
h. Pertumbuhan yang modular

84
Kerugian Basis Data Terdistribusi
a. Harga software mahal (Biaya)
b. Kompleksitas
c. Kelemahan dalam keamanan
d. Sulitnya menjaga keutuhan data
e. Kurangnya standar
f. Kurangnya pengalaman
g. Perancangan basisdata lebih kompleks

10.4 Fragmentasi Data


Pengertian Fragmentasi
Fragmentasi merupakan sebuah proses pembagian atau pemetaan database
dimana database dipecah-pecah berdasarkan kolom dan baris yang kemudian disimpan
didalam site atau unit komputer yang berbeda dalam suatu jaringan data, sehingga
memungkinkan untuk pengambilan keputusan terhadap data yang telah terbagi.
Fragmentasi data merupakan langkah yang diambil untuk menyebarkan data dalam basis
data terdistribusi.
Menurut (Hariyanto, 2004), alasan-alasan diperlukannya fragmentasi, yaitu :
a. Penggunaan
Umumnya, aplikasi-aplikasi beroperasi dengan terhadap suatu view tertentu bukan
seluruh relasi. Dengan demikian untuk melakukan distribusi data maka beralasan
untuk bekerja dengan suatu subset relasi (fragmen).
b. Efisiensi
Data yang disimpan dekat dengan aplikasi yang sering menggunakannya. Data yang
tidak diperlukan oleh aplikasi local tidak disimpan di situs itu.
c. Paralleslisme
Dengan fragmen-fragmen sebagai unit distribusi, transaksi dapat dibagi menjadi
beberapa subquery yang beroperasi pada fragmen-fragmen itu. Fragmentasi harus
meningkatkan derajat konkurensi atau paralelisme sistem.
d. Keamanan
Data yang tidak diperlukan oleh aplikasi local tidak disimpan di situs itu. Dengan cara
ini, data tidak tersedia untuk pemakai-pemakai yang tidak diotorisasi.

Aturan Fragmentasi
Beberapa Peraturan Yang Harus Didefinisikan Ketika Mendefinisikan Fragment, adalah :
a. Kondisi lengkap (Completeness )
Sebuah unit data yang masih dalam bagian dari relasi utama, maka data harus
berada dalam satu fragmen. Ketika ada relasi, pembagian datanya harus menjadi
satu kesatuan dengan relasinya.
b. Rekontruksi (Reconstruction )
Sebuah relasi asli dapat dibuat kembali atau digabungkan kembali dari sebuah
fragmen. Ketika telah dipecah-pecah, data masih memungkinkan untuk digabungkan
kembali dengan tidak mengubah struktur data.
c. Disjointness

85
Data didalam fragmen tidak boleh diikutkan dalam fragmen lain agar tidak terjadi
redundancy data, kecuali untuk atribut primary key dalam fragmentasi vertical

Menurut (Hariyanto, 2004), kerugian fragmentasi yaitu :

a. Kinerja
Kinerja aplikasi yang memerlukan data dari fragmen-fragmen yang berlokasi terpisah
dapat lebih lambat.
b. Integritas
Kendali integritas dapat lebih sulit jika data dan kebergantungan fungsional
difragmentasi dan berlokasi di situs-situs yang berbeda.

Jenis-Jenis Fragmentasi
1. Fragmentasi horizontal
Terdiri dari tuple dari fragment global yang kemudian dipecah-pecah atau disekat
menjadi beberapa sub-sets. Fragmentasi horizontal berisikan tuple2 yang dipartisikan
dari sebuah relasi global ke dalam sejumlah subset r1,r2…rn, tiap2 subset berisi tuple
dari r, setiap tuple dari r harus memiliki satu fragment sehingga relasi yang asli dapat
disusun kembali.
2. Fragmentasi vertikal
Membagi atribut-atribut dari fragment global yang tersedi a menjadi beberapa grup.
Penambahan tuple-id didalam fragmentasi vertikal. Fragmentasi vertikal
disempurnakan dengan menambahkan sebuah atribut yang disebut tuple
identifier(tuple-id) ke dalam skema r. Sebuah tuple-id adalah sebuah alamat logik dari
sebuah tuple. Setiap tuple didalam r harus memiliki sebuah alamat yang unuk, yaitu
atribute tuple-id sebagai kunci penambahan skema.
3. Fragmentasi campuran
Relasi r (global) dibagi2 kedalam sejumlah relasi fragment r1, r2..rn. Tiap2
fragmentasi diperoleh sebagai hasil baik dari skema fragmentasi horizontal ataupun
fragmentasi vertikal di relasi r atau dari sebuah fragmentasi r yang diperoleh
sebelumnya.

Cara yang sederhana untuk membangun fragmentasi campuran sbb :


1. Menggunakan fragmentasi horizontal pada fragmentasi vertikal
2. Menggunakan fragmentasi vertical pada fragmentasi horizontal Contoh
Penggunaan Fragmentasi :
Kasus Jenis-Jenis Fragmentasi Ujian (NIM, Nama_Mhs, Kode_MK, Mt_Kuliah, Nil_Akhir,
Grade )

86
Gambar 69. Contoh Fregmentasi Campuran

Fragmentasi Horizontal terbagi menjadi 3 fragment yang berbeda berdasarkan Mt_Kuliah


Relasi Mt_Kuliah=“Sistem Basis Data”
Mt_Kuliah=“Sistem Basis Data” (Ujian)

Tabel 45. Contoh Fregmentasi

Relasi Mt_Kuliah=“Peranc. Sistem”


Mt_Kuliah=“Peranc. Sistem” (Ujian)

Tabel 46. Contoh Fregmentasi

Relasi Mt_Kuliah=“Visual Basic”


Mt_Kuliah=“Visual Basic” (Ujian)
Tabel 47. Contoh Fregmentasi

87
Contoh Fragmentasi Vertical
Fragment di atas memenuhi kondisi jika Nama_Mhs dan Mt_Kuliah adalah hal-hal yang
memenuhi syarat Fragmentasi vertical: berdasarkan dekomposisi-nya dengan
menambahkan tupel_id
Tabel 48. Contoh Fregmentasi Vertical

Relasi 1 = NIM, Nama_Mhs, Mt,Kuliah, Nil_Akhir, Grade, Tuple_ID π


NIM,Nama_Mhs,Mt,Kuliah,Nil_Akhir,Grade,Tuple_ID (UJian )

Tabel 49. Contoh Fregmentasi

Relasi 2 = NIM,Kode_MK,Nil_Akhir,Grade,Tuple_ID π
NIM,Kode_MK,Nil_Akhir,Grade,Tuple_ID (Ujian)

88
Tabel 50. Contoh Fregmentasi

Contoh Fragmentasi Campuran


Terdapat relasi berdasarkan Mata Kuliah yang sama Relasi 1a.
π NIM, Nama_Mhs, Mt_Kuliah, Nil_Akhir, Grade, Tuple_ID ( σ Mt_Kuliah = “Sistem Basis
Data” (Ujian))
Tabel 51. Contoh Fregmentasi

Relasi 1b.
π NIM, Nama_Mhs, Mt_Kuliah, Nil_Akhir, Grade, Tuple_ID( σ Mt_Kuliah= “Peranc.
Sistem” (Ujian))
Tabel 52. Contoh Fregmentasi Relasi 1b

Relasi 1c

π NIM, Nama_Mhs, Mt_Kuliah, Nil_Akhir, Grade, Tuple_ID( σ Mt_Kuliah= “Visual Basic”


(Ujian))
Tabel 53. Contoh Fregmentasi Relasi 1c

89
BAB XI
PERANCANGAN DAN IMPLEMENTASI
MENGGUNAKAN DB DESIGNER

11.1 Perancangan dan Implementasi Basis Data Menggunakan SQL

Structured Query Language atau SQL mungkin merupakan poin penting dalam sebuah
studi teknik komputer jaringan. Keberadaan SQL sebagai sebuah bahasa pemrograman
memiliki sejarah dan perkembangan yang panjang. Kalangan awam maupun pemula
dalam dunia IT biasa mengartikan SQL adalah bahasa yang digunakan dalam
mengakses data. Khususnya untuk data yang memiliki basis relasional. Tentu saja
bahasa komputer dalam data basis relasional ini berdasarkan standar yang dikeluarkan
oleh American National Standard Institute (ANSI). Standardisasi SQL sudah ada sejak
tahun 1986 dan memang diinisiasi oleh ANSI.

Gambar 70. Perancangan dan Implementasi Basis Data Menggunakan SQL

Perangkat Lunak Bantu untuk Perancangan Basis Data Pada perangkat lunak bantu telah
tersedia komponen-komponen (notasi-notasi) perancangan basis data. Salah satu
perangkat lunak bantu untuk keperluan semacam itu adalah DBDesigner yang
dioptimalkan untuk MySQL Database.

Gambar 71. DB Designer 4

90
Tampilan Jendela DB Designer

Gambar 72. Tampilan awal DB Designer

Contoh Penggunaan DBDesigner

Menggunakan Komponen TABEL dan RELASI Klik komponen Tabel pada toolbar
seperti di gambar berikut :

Gambar 73.. Komponen Tabel dan Relasi DB Designer

91
Letakan komponen tersebut pada page area sehingga muncul komponen Tabel
(Table_01) pada page area, kemudian klik kanan komponen tersebut sehingga muncul
menu dan pilihlah Edit Object seperti berikut :

Gambar 74. Pembuatan tabel DB Designer

Menu Edit Object akan menampilkan jendela Table Editor. Pada Table Editor kita bisa
menentukan properties dari tabel seperti nama tabel, tipe data, primary key dsb. Ubah dan
simpanlah properties tabel (Table _01) menjadi tabel faktur (struktur tabel seperti pada
pembahasan LRS tanpa ada FK) seperti berikut.

Gambar 75. Membuat Properties

Ulangi langkah-langkah menggunakan komponen Table di atas (tabel faktur) untuk tabel
barang dan langganan (struktur tabel seperti pada pembahasan LRS tanpa ada FK).
Sehingga ada 3 komponen Table seperti gambar berikut :

92
Gambar 76. Tabel Barang, Tabel Langganan, Tabel Faktur

Langkah berikutnya membuat relasi 1-M antara langganan dengan faktur dengan cara
klik komponen 1-n Relation pada toolbar seperti di gambar berikut.

Gambar 77. Membuat Relasi One to one antar Tabel

Klik di tabel langganan kemudian klik di tabel faktur, sehingga muncul komponen relasi
yang menghubungkan kedua tabel tsb.

Gambar 78. Tampilan Relasi One to Many antar Tabel

93
Langkah berikutnya membuat relasi M-M antara faktur dengan barang dengan cara klik
komponen n-m Relation pada toolbar seperti di gambar berikut

Gambar 79. Membuat Relasi Many to Many antar Tabel

Klik di tabel faktur kemudian klik di tabel barang, sehingga muncul komponen relasi yang
disertai munculnya tabel baru (faktur_has_barang) dan FK (Nfak & NBrg) berada pada
tabel tsb, seperti gambar berikut.

Gambar 80. Tampilan Relasi Many to Many antar Tabel

Edit properties tabel faktur_has_barang yaitu dengan mengganti nama menjadi tabel
transaksi dan menambahkan field Qty dan HrgTran. Sehingga menjadi seperti gambar
berikut.

94
Gambar 82. Menambahkan Atribut Pada Tabel

Untuk mengekspor hasil rancangan database ke dalam database digunakan Database


Synchronization. Database yang digunakan pada contoh ini adalah MySQL. Sebelum
melakukan sinkronisasi, kita perlu membuat koneksi ke database MySQL terlebih dahulu.
Jika remote connection dengan root diperbolehkan maka gunakan user root. Jika tidak
maka kita butuh membuat user baru terlebih dahulu. Berikut ini adalah cara bagaimana
membuat user baru yaitu db_owner.

Melakukan Sinkronisasi :

• Lakukan login terlebih dahulu ke MySQL dengan memasukkan password root.

Gambar 83. Tampilan Login

• Buat user baru bernama dbo dengan password ”owner”. Ketikkan 3 perintah dibawah
ini.

95
Gambar 84. Membuat User Baru

• Buat Database baru yaitu dbpenjualan

Gambar 85. Membuat Database

Mengekspor Tabel Hasil Rancangan Ke Server Database Mengekspor tabel ke server


database bisa dilakukan dari menu Database Database Sychronisastion seperti
gambar berikut :

Gambar 86. Melakukan Sinkronisasi

• Lalu pilih MySQL sebagai database dan kemudian klik New Database Connection

96
Gambar 87. Pilih New Database Connection

Gambar 88. Tampilan New Database Connection


• Masukkan Nilai berikut: Connection Name : MySQL Hostname : localhost Database
Name : dbpenjualan UserName : dbo Password : owner Lalu klik OK
• Klik Connect untuk terkoneksi ke MySQL

Gambar 89. Tampilan Koneksi ke MySQL

97
• Klik Execute untuk mengeksekusi sinkronisasi

Gambar 90. Mengeksekusi Sinkronisasi

• Setelah tampil jendela seperti di atas, selanjutnya klik tombol EXECUTE untuk
mengekspor tabel ke server database MySQL dan akan tampil progress report
seperti berikut

Gambar 91.Tampilan Behasil Ekspor tabel Ke MySQL

98
BAB XII
LINGKUNGAN BASIS DATA

12.1 Konkurensi (CONCURRENCY)


Ada 3 masalah yang disebabkan oleh Concurrency :
a. Masalah kehilangan modifikasi (Lost Update Problem )
Masalah ini timbul jika dua transaksi mengakses item database yang sama yang
mengakibatkan nilai dari database tersebut menjadi tidak benar.

Tabel 53. Lost Update Problem

Data transaksi pada rekening bersama (Ika dan Susi)

Tabel 54. Lost Update Problem

Nilai saldo menjadi tidak benar disebabkan transaksi Susi membaca nilai saldo sebelum
transaksi Ika mengubah nilai tersebut dalam database, sehingga nilai yang sudah di
update yang dihasilkancdari transaksi Ika menjadi hilang.

b. Masalah Modifikasi Sementara (uncommited Update Problem)


Masalah ini timbul jika transaksi membaca suatu record yang sudah dimodifikasi oleh
transaksi lain tetapi belum terselesaikan (uncommited), terdapat kemungkinan kalau

99
transaksi tersebut dibatalkan (rollback).

Tabel 55. Lost Update Problem

Contoh uncommited Update Problem

Tabel 56. Lost Update Problem

Nilai saldo menjadi tidak benar disebabkan terjadi RollBack pada T7 yang membatalkan
transaksi sebelumnya (T6), sehingga saldo seharusnya tetap 2.000.000

c. Masalah Analisa yang tidak konsisten (Problem of inconsistency Analysis) Masalah


ini timbul jika sebuah transaksi membaca suatu nilai tetapi transaksi yang kedua
mengupdate beberapa nilai tersebut selama eksekusi transaksi pertama.

Tabel 57. Lost Update Problem

100
Transaksi A menjumlahkan nilai 1, nilai 2 dan nilai 3 Transaksi B nilai 1 + 10, nilai 3 –
10

12.2 Locking
LOCKING adalah salah satu mekanisme pengontrol concurrency.
KONSEP DASAR :
Ketika sebuah transaksi memerlukan jaminan kalau record yang diinginkan tidak akan
berubah secara mendadak, maka diperlukan kunci untuk record tersebut FUNGSI
Locking berfungsi untuk menjaga record tersebut agar tidak dimodifikasi oleh transaksi
lain.

Jenis- Jenis Lock :


a. Share (S)
Kunci ini memungkinkan pengguna dan para pengguna konkuren yang lain dapat membaca
record tetapi tidak mengubahnya.
b. Exclusive (X)
Kunci ini memungkinkan pengguna untuk membaca dan mengubah record. Sedangkan
pengguna konkuren lain tidak diperbolehkan membaca ataupun mengubah record tersebut.

Tabel 58. Lock

101
Tabel 59. Lock

Tabel 60. Lock

Tabel 61. Lock

102
Tabel 62. Lock

12.3 Timestamping
TIMESTAMPING Adalah salah satu alternatif mekanisme kontrol konkurensi yang dapat
menghilangkan masalah dead lock.
Dua masalah yang timbul pada Timestamping :
1. Suatu transaksi memerintahkan untuk membaca sebuah item yang sudah di
update oleh transaksi yang belakangan.
2. Suatu transaksi memerintahkan untuk menulis sebuah item yan nilainya sudah
dibaca atau ditulis oleh transaksi yang belakangan

12.4 Crass dan Recovery


PENGERTIAN :
Crash adalah suatu failure atau kegagalan dari suatu sistem

PENYEBAB DARI KEGAGALAN ADALAH :


1. Disk Crash yaitu informasi yang ada di disk akan hilang
2. Power failure yaitu informasi yang disimpan pada memori utama dan register
akan hilang
3. Software Error yaitu output yang dihasilkan tidak betul dan sistem databasenya
sendiri akan memasuki suatu kondisi tidak konsisten

Berdasarkan Jenis storage


1. Volatile storage, biasanya informasi yang terdapat pada volatile akan hilang, jika
terjadi kerusakan sistem (system crash) contoh: RAM
2. Non Volatile Storage, biasanya informasi yang terdapat pada non volatile
strorage tidak akan hilang jika terjadi kerusakan sistem contoh: ROM
3. Stable Storage, informasi yang terdapat dalam stable storage tidak pernah
hilang. contoh: Harddisk RAID

103
Jenis-jenis kegagalan
1. Logical Error, program tidak dapat lagi dilaksanakan disebabkan oleh kesalahan
input, data tidak ditemukan, over flow
2. System Error, sistem berada pada keadaan yang tidak diinginkan, seperti terjadi
deadlock, sebagai akibat program tidak dapat dilanjutkan namun setelah beberapa
selang waktu program dapat dijalankan kembali.
3. System Crash,kegagalan fungsi perangkat keras, menyebabkan hilangnya data
pada volatile storage, tetapi data pada non volatile storage masih tetap ada.
4. Disk Failure, hilangnya data dari sebuah blok disk disebabkan oleh kerusakan
head atau kesalahan pada waktu pengoperasian transfer data

12.5 Security
SECURITY adalah suatu proteksi data terhadap perusakan data dan pemakaian oleh
pemakai yang tidak mempunyai ijin.

BEBERAPA MASALAH SECURITY SECARA UMUM :


1. Di dalam suatu perusahaan siapa yang diijinkan untuk mengakses suatu sistem
2. Bila sistem tersebut menggunakan password, bagaimana kerahasian dari
password tersebut dan berapa lama password tersebut harus diganti
3. Di dalam pengontrolan hardware, apakah ada proteksi untuk penyimpanan data
(data storage)

DUA KATEGORI PENYALAHGUNAAN DATABASE :


1. Katagori yang tidak disengaja Contoh: Anomali yang disebabkan oleh
pendistribusian data pada beberapa komputer
2. Katagori yang disengaja Contoh: Insert, Delete & Update oleh pihak yang tidak
berwenang

BEBERAPA TINGKATAN MASALAH SECURITY :


1. Phisical, berkaitan dengan pengamanan lokasi fisik database
2. Man, berkaitan dengan wewenang user
3. Sistem operasi, berkaitan dengan kemanan sistem operasi yang digunakan dalam
jaringan
4. Sistem database, sistem dapat mengatur hak akses user

12.6 Pemberian wewenang dan view


KONSEP VIEW adalah cara yang diberikan pada seorang pemakai untuk mendapatkan
model database yang sesuai dengan kebutuhan perorangan.

Database relational membuat pengamanan pada level :


1. Relasi, seorang pemakai diperbolehkan atau tidak mengakses langsung suatu
relasi
2. View, seorang pemakai diperbolehkan atau tidak mengakses data yang terdapat
pada view

104
3. Read Authorization, data dapat dibaca tapi tidak boleh dimodifikasi
4. Insert Authorozation, pemakai boleh menambah data baru, tetapi tidak dapat
memodifikasi data yang sudah ada
5. Update Authorization, pemakai boleh memodifikasi tetapi tidak dapat menghapus
data
6. Delete Authorization, pemakai boleh menghapus data
7. Index Authorization, pemakai boleh membuat atau menghapus index
8. Resource Authorization, mengizinkan pembuatan relasi – relasi baru
9. Alternation Authorization, mengizinkan penambahan atau penghapusan atribute
dalam satu relasi
10. Drop Authorization, pemakai boleh menghapus relasi yang ada

12.7 Integrity
Integrity Berarti memeriksa keakuratan dan validasi data

BEBERAPA JENIS INTEGRITY :


1. Integrity Konstains, memberikan suatu sarana yang memungkinkan pengubahan
database oleh pemakai berwenang sehingga tidak akan menyebabkan data
inkonsistensi
2. Integrity Rule (pada basisdata relational), terbagi menjadi: - Integrity Entity, contoh:
tidak ada satu komponen kunci primer yang bernilai kosong (null) - Integrity
Referensi, suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut
tunggal pada domain yang bersangkutan

104
DAFTAR PUSTAKA
Adhani, M., Abdillah, L. A., & Widayati, Q. (2015). Analisa dan perancangan sistem
informasi penerimaan siswa baru dan pembayaran SPP menggunakan Zachman
Framework.
Seminar Nasional Informatika 2015 (SNIf2015). Universitas Potensi Utama

Akbar, F., Setiaji, S., Ishak, R., Saputra, D., & Masruri, B. (2020). RANCANG BANGUN
SISTEM INFORMASI KARANG TARUNA MENGGUNAKAN METODE
WATERFALL. Jurnal Khatulistiwa Informatika, 8(1).

Al Fatta, H. (2007). Analisis dan Perancangan Sistem Informasi untuk keunggulan


bersaing perusahaan dan organisasi modern. Penerbit Andi.

Bell, D. (2003). UML basics: An introduction to the Unified Modeling Language. The
Rational Edge.

Fathansyah. (2012). Basis Data. Informatika.

Gaol Jimmy, L. (2008). Sistem Informasi Manajemen: Pemahamanan Aplikasi. PT


Grasindo.

Hariyanto, B. (2004). Sistem Manajemen Basis Data (Pemodelan, Perancangan dan


Terapannya). Informatika.

Hidayatullah, P., & Kawistara, J. K. (2015). Pemograman Web. Informatika. Indrajani.


(2009). Sistem Basis Data Dalam Paket Five In One. PT Elex Media Komputindo.

Ibrahim, N., Ibrahim, R., Saringat, M. Z., Mansor, D., & Herawan, T. (2011). Definition of
Consistency Rules between UML Use Case and Activity Diagram. International
Conference on Ubiquitous Computing and Multimedia Applications, 498–508.
Springer.

Jogiyanto, H. M. (2017). Analisis dan Desain (Sistem Informasi Pendekatan Terstruktur


Teori dan Praktek Aplikasi Bisnis). Penerbit Andi.

Kendall, K. E., & Kendall, J. E. (2018). Analisis dan Perancangan sistem. Jakarta: PT
INDEKS Kelompok GRAMEDIA.

Ladjamudin, A. B. Bin. (2005). Analisis dan Desain Sistem Informasi. Graha Ilmu.

Pahlevi, S. M. (2013). Tujuh Langkah Praktis Pembangunan Basis Data. 2013. PT Elex
Media Komputindo.

Li, Q., & Chen, Y.-L. (2009). Entity-relationship diagram. In Modeling and Analysis of
Enterprise and Information Systems (pp. 125–139). Springer.
Mulyani, S. (2017). Metode Analisis dan Perancangan Sistem. Abdi Sistematika.

106
Nidhra, S., & Dondeti, J. (2012). Black box and white box testing techniques-a literature
review. International Journal of Embedded Systems and Applications (IJESA), 2(2),
29–50.

Pahlevi, S. M. (2013). Tujuh Langkah Praktis Pembangunan Basis Data. 2013. PT Elex
Media Komputindo.

Quatrani, T., & Evangelist, U. M. L. (2003). Introduction to the Unified modeling language.
A Technical Discussion of UML, 6(11), 3.

Raymond Jr, M. (2001). Sistem Informasi Manajemen Studi Sistem Informasi Berbasis
Komputer. Versi Bahasa Indonesia, Edisi Ketujuh Jilid II, PT. Prenhallindo, Jakarta.

Saputra, D., Irmayani, W., & Martias, M. (2019). PERANCANGAN SISTEM PELAYANAN
KESEHATAN (SIYANA) PADA PUSKESMAS MENSIKU DESA BINJAI HULU
KABUPATEN SINTANG KALIMANTAN BARAT. Jurnal Mantik Penusa, 3(3).

Saputra, D., Irmayani, W., Martias, M., Sidauruk, J., Haryani, H., Jayanti, W. E., Rahman,
A. (2020). Application of Web-Based Competency Test (UKSI) with Framework
Code Igniter (CI). International Journal of Advanced Science and Technology,
29(No.4 (2020)), 4500–4520. Retrieved from
http://sersc.org/journals/index.php/IJAST/article/view/24856

Sukamto, R. A., & Shalahuddin, M. (2018). Rekayasa Perangkat Lunak (Edisi Revisi).
Bandung: Informatika Bandung.

Sutabri, T. (2012). Analisis sistem informasi. Penerbit Andi.

107

Anda mungkin juga menyukai