Modul Sistem Basis Data
Modul Sistem Basis Data
Bismillaahirrahmaanirrahiim
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...
ii
DAFTAR ISI
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
iv
BAB I
KONSEP DASAR 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 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. 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.
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.
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
5
Gambar 2. Sistem Basis Data
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.
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.
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.
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
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 :
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.
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.
12
BAB II
BASIS DATA RELATIONAL & PERANCANGAN BASIS DATA
13
Gambar 7. Contoh Tabel Anggota
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)
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.
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)
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
18
Gambar 10. Tahap Analisis dan Perancangan
B. Tahap Implementasi
Tahapan ini mengimplementasikan rancangan basis data yang telah dibuat.
Implementasi menggunakan aplikasi klien yang disediakan oleh DBMS terpilih.
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
21
Gambar 11. Contoh Tabel Relational
b. Model Entity Relationship yang berisi komponen himpunan entitas, relasi, yang
dilengkapi atribut-atribut, dapat digambarkan menggunakan Diagram Entity
Relationship (Diagram E-R).
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:
23
c. Model Berorientasi Object (Object-Oriented 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:
Menunjukkan atribut
Contoh :
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 :
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 :
BAB IV
27
ENTITY RELATIONSHIP DIAGRAM (ERD)
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 :
28
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.
30
One to One (1:1)
Setiap anggota entitas A hanya boleh berhubungan dengan satu anggota entitas B,
begitu pula sebaliknya.
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
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
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
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
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 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:
One To Many
Contoh :
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)
Many To Many
Contoh :
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
38
Membuat ERD
Langkah-langkah pembuatan ERD dan LRS:
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
39
Langkah 3 : Menggambar ERD Sementara
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
41
Langkah 8 : Transformasi ERD ke LRS
42
BAB V
TEKNIK NORMALISASI
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.
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.
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.
BAB VI
45
TEKNIK NORMALISASI LANJUTAN
46
d. Tiap atribut hanya memiliki satu pengertian.
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:
47
▪ Sistem Perpustakaan
48
a. Bentuk Normal Kesatu
Gambar 6.3 Bentuk Normal Kesatu
49
Bentuk Normal Ketiga
▪ Sistem Pembelian
50
Bentuk Normal Kesatu
51
BAB VII
BAHASA QUERY FORMAL
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.
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);
Tampilkan data mata kuliah yang memiliki kode 360 atau yang memilki sks 4.
Query : σ KD_MK=“360” V SKS=4 (MATAKULIAH);
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 :
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);
(MAHASISWA X REGISTRASI)
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
Kita cari terlebih dahulu, NIM yang sama antara table Mahasiswa dengan table registrasi,
hasilnya sebagai berikut :
Kemudian, baru kita tampilkan NAMA_MHS beserta KD_MK nya, yang memiliki alamat di
depok atau jenis kelaminnya Laki-laki, hasilnya sebagai berikut :
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 :
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.
Jika dilakukan query sebagai berikut : πKOTA (Mahasiswa) ᴗ πKOTA(Dosen) Hasil dari
Query diatas adalah:
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
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
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 :
THETA JOIN
NATURAL JOIN
Operasi menggabungkan operasi selection dan cartesian product dengan suatu kriteria
pada kolom yang sama.
60
Contoh : S1 θ No_id R1
DIVISION
61
BAB VIII
BAHASA QUERY TERAPAN
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
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
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
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;
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 :
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;
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 :
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
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
NIM NAMA
10296126 Astuti
31296500 Budi
10296001 Fintri
21198002 Julizar
10296832 Nurhayati
50096487 Pipit
41296525 Prananigrum
21196353 Quraish
69
ALAMAT
Bekasi
Bogor
Depok
Jakarta
ALAMAT
Bogor
Depok
Jakarta
GRANT
Digunakan untuk memberikan hak akses.
Sintaks :
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
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 :
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 :
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.
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
Menggabungkan dua tabel dimana diantara dua tabel datanya bersesuaian dan juga
semua record pada tabel sebelah kanan.
Contoh, jika ada query seperti dibawah ini :
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
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.
Hasilnya: 8
SUM
Digunakan untuk menghitung total dari kolom yang mempunyai tipe data numerik.
Contoh : Menghitung total sks dari tabel MATAKULIAH.
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
FINAL
60
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
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
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.
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
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);
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
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 :
Keuntungan:
Reliability rendah
Biaya dapat ditekan Kerugian : Control manajement tidak terjamin
83
Keuntungan:
Bersifat sentral
Control manajement terjamin Kerugian : Kalau node pusat rusak maka semua akan
rusak
d. 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
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
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
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.
86
Gambar 69. Contoh Fregmentasi Campuran
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 2 = NIM,Kode_MK,Nil_Akhir,Grade,Tuple_ID π
NIM,Kode_MK,Nil_Akhir,Grade,Tuple_ID (Ujian)
88
Tabel 50. 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
89
BAB XI
PERANCANGAN DAN IMPLEMENTASI
MENGGUNAKAN DB DESIGNER
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.
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.
90
Tampilan Jendela DB Designer
Menggunakan Komponen TABEL dan RELASI Klik komponen Tabel pada toolbar
seperti di gambar berikut :
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 :
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.
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.
Klik di tabel langganan kemudian klik di tabel faktur, sehingga muncul komponen relasi
yang menghubungkan kedua tabel tsb.
93
Langkah berikutnya membuat relasi M-M antara faktur dengan barang dengan cara klik
komponen n-m Relation pada toolbar seperti di gambar berikut
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.
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
Melakukan Sinkronisasi :
• Buat user baru bernama dbo dengan password ”owner”. Ketikkan 3 perintah dibawah
ini.
95
Gambar 84. Membuat User Baru
• Lalu pilih MySQL sebagai database dan kemudian klik New Database Connection
96
Gambar 87. Pilih New Database Connection
97
• Klik Execute untuk 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
98
BAB XII
LINGKUNGAN BASIS DATA
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.
99
transaksi tersebut dibatalkan (rollback).
Nilai saldo menjadi tidak benar disebabkan terjadi RollBack pada T7 yang membatalkan
transaksi sebelumnya (T6), sehingga saldo seharusnya tetap 2.000.000
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.
101
Tabel 59. 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
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.
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
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).
Bell, D. (2003). UML basics: An introduction to the Unified Modeling Language. The
Rational Edge.
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.
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.
107